diff --git a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/DefaultVehicleData.java b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/DefaultVehicleData.java index 9d7284fea..1c2ca5025 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/DefaultVehicleData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/DefaultVehicleData.java @@ -19,6 +19,9 @@ public class DefaultVehicleData { @SerializedName("MaxEnergy") public int maxEnergy = 100000; + @SerializedName("UpStep") + public float upStep = 0; + // TODO damage modifier // @SerializedName("DamageModifier") // private List damageModifier; diff --git a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleData.java b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleData.java index 795704d8c..b16b56bfb 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleData.java @@ -15,11 +15,9 @@ public class VehicleData { private VehicleData(VehicleEntity entity) { this.id = EntityType.getKey(entity.getType()).toString(); this.data = VehicleDataTool.vehicleData.getOrDefault(id, new DefaultVehicleData()); - - System.out.println(111); } - private static final LoadingCache dataCache = CacheBuilder.newBuilder() + public static final LoadingCache dataCache = CacheBuilder.newBuilder() .weakKeys() .build(new CacheLoader<>() { public @NotNull VehicleData load(@NotNull VehicleEntity entity) { @@ -47,4 +45,8 @@ public class VehicleData { return data.maxEnergy; } + public float upStep() { + return data.upStep; + } + } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Tom6Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Tom6Entity.java index fb32c3270..0a3fe2819 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Tom6Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Tom6Entity.java @@ -59,11 +59,6 @@ public class Tom6Entity extends MobileVehicleEntity implements GeoEntity { super(type, world); } - @Override - public float maxUpStep() { - return 0.5F; - } - @Override public ThirdPersonCameraPosition getThirdPersonCameraPosition(int index) { return new ThirdPersonCameraPosition(4, 1, 0); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/EnergyVehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/EnergyVehicleEntity.java index 6373cc2e8..e05d4e9bb 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/EnergyVehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/EnergyVehicleEntity.java @@ -1,7 +1,6 @@ package com.atsuishio.superbwarfare.entity.vehicle.base; import com.atsuishio.superbwarfare.capability.energy.SyncedEntityEnergyStorage; -import com.atsuishio.superbwarfare.data.vehicle.VehicleData; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.IntTag; import net.minecraft.network.syncher.EntityDataAccessor; @@ -76,7 +75,7 @@ public abstract class EnergyVehicleEntity extends VehicleEntity { } public int getMaxEnergy() { - return VehicleData.from(this).maxEnergy(); + return data().maxEnergy(); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java index 6e50e3e19..6996b222a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/base/VehicleEntity.java @@ -174,6 +174,15 @@ public abstract class VehicleEntity extends Entity { this.gameEvent(GameEvent.ENTITY_DISMOUNT, pPassenger); } + public VehicleData data() { + return VehicleData.from(this); + } + + @Override + public float maxUpStep() { + return data().upStep(); + } + @Nullable @Override public Entity getFirstPassenger() { @@ -501,7 +510,7 @@ public abstract class VehicleEntity extends Entity { } public float getMaxHealth() { - return VehicleData.from(this).maxHealth(); + return data().maxHealth(); } @Override @@ -546,14 +555,14 @@ public abstract class VehicleEntity extends Entity { * 呼吸回血冷却时长(单位:tick),设为小于0的值以禁用呼吸回血 */ public int maxRepairCoolDown() { - return VehicleData.from(this).repairCooldown(); + return data().repairCooldown(); } /** * 呼吸回血回血量 */ public float repairAmount() { - return VehicleData.from(this).repairAmount(); + return data().repairAmount(); } @Override diff --git a/src/main/resources/data/superbwarfare/vehicles/tom_6.json b/src/main/resources/data/superbwarfare/vehicles/tom_6.json index 206b6d643..796895ab5 100644 --- a/src/main/resources/data/superbwarfare/vehicles/tom_6.json +++ b/src/main/resources/data/superbwarfare/vehicles/tom_6.json @@ -1,5 +1,6 @@ { "ID": "superbwarfare:tom_6", "MaxHealth": 40, - "MaxEnergy": 100000 + "MaxEnergy": 100000, + "UpStep": 0.5 } \ No newline at end of file