From 7b1a78560d2faa532ca4b51422ed8bc385264097 Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Fri, 4 Jul 2025 00:42:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8A=95=E5=BC=B9=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E6=95=B0=E6=8D=AE=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../drone_attachment/DroneAttachmentData.java | 22 +++++++++++++++---- .../entity/vehicle/DroneEntity.java | 6 ++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/data/drone_attachment/DroneAttachmentData.java b/src/main/java/com/atsuishio/superbwarfare/data/drone_attachment/DroneAttachmentData.java index 36a7a66e4..6ee108f06 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/drone_attachment/DroneAttachmentData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/drone_attachment/DroneAttachmentData.java @@ -38,18 +38,34 @@ public class DroneAttachmentData implements IDBasedData { return (this.dropPosition != null && this.dropPosition.length < 3) ? new float[]{0, -0.09f, 0} : this.dropPosition; } + @SerializedName("Data") + public JsonObject data; /** * 无人机显示的挂载实体的实体数据 */ @SerializedName("DisplayData") - public JsonObject displayData; + private JsonObject displayData; /** * 无人机投弹实体的实体数据 */ @SerializedName("DropData") - public JsonObject dropData; + private JsonObject dropData; + + public JsonObject displayData() { + if (this.data != null) { + return this.data; + } + return this.displayData != null ? this.displayData : this.dropData; + } + + public JsonObject dropData() { + if (this.data != null) { + return this.data; + } + return this.dropData != null ? this.dropData : this.displayData; + } @Override public String getId() { @@ -75,8 +91,6 @@ public class DroneAttachmentData implements IDBasedData { @SerializedName("ExplosionRadius") public float explosionRadius = 0; - // TODO 其他挂载设置 - // display settings @SerializedName("Scale") diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java index d35349d47..4485d143e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/DroneEntity.java @@ -267,7 +267,7 @@ public class DroneEntity extends MobileVehicleEntity implements GeoEntity { projectile.setOwner(player); } - var tag = TagDataParser.parse(data.dropData, name -> { + var tag = TagDataParser.parse(data.dropData(), name -> { if (player == null) return StringTag.valueOf(name); var uuid = player.getUUID(); @@ -412,8 +412,8 @@ public class DroneEntity extends MobileVehicleEntity implements GeoEntity { var offset = attachmentData.offset(); var rotation = attachmentData.rotation(); - if (attachmentData.displayData != null) { - this.entityData.set(DISPLAY_ENTITY_TAG, TagDataParser.parse(attachmentData.displayData)); + if (attachmentData.displayData() != null) { + this.entityData.set(DISPLAY_ENTITY_TAG, TagDataParser.parse(attachmentData.displayData())); } this.entityData.set(DISPLAY_DATA, List.of(