提取UpStep属性

This commit is contained in:
Light_Quanta 2025-05-20 05:46:36 +08:00
parent a75260754a
commit 8ffada46d8
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
6 changed files with 23 additions and 14 deletions

View file

@ -19,6 +19,9 @@ public class DefaultVehicleData {
@SerializedName("MaxEnergy") @SerializedName("MaxEnergy")
public int maxEnergy = 100000; public int maxEnergy = 100000;
@SerializedName("UpStep")
public float upStep = 0;
// TODO damage modifier // TODO damage modifier
// @SerializedName("DamageModifier") // @SerializedName("DamageModifier")
// private List<DamageModify> damageModifier; // private List<DamageModify> damageModifier;

View file

@ -15,11 +15,9 @@ public class VehicleData {
private VehicleData(VehicleEntity entity) { private VehicleData(VehicleEntity entity) {
this.id = EntityType.getKey(entity.getType()).toString(); this.id = EntityType.getKey(entity.getType()).toString();
this.data = VehicleDataTool.vehicleData.getOrDefault(id, new DefaultVehicleData()); this.data = VehicleDataTool.vehicleData.getOrDefault(id, new DefaultVehicleData());
System.out.println(111);
} }
private static final LoadingCache<VehicleEntity, VehicleData> dataCache = CacheBuilder.newBuilder() public static final LoadingCache<VehicleEntity, VehicleData> dataCache = CacheBuilder.newBuilder()
.weakKeys() .weakKeys()
.build(new CacheLoader<>() { .build(new CacheLoader<>() {
public @NotNull VehicleData load(@NotNull VehicleEntity entity) { public @NotNull VehicleData load(@NotNull VehicleEntity entity) {
@ -47,4 +45,8 @@ public class VehicleData {
return data.maxEnergy; return data.maxEnergy;
} }
public float upStep() {
return data.upStep;
}
} }

View file

@ -59,11 +59,6 @@ public class Tom6Entity extends MobileVehicleEntity implements GeoEntity {
super(type, world); super(type, world);
} }
@Override
public float maxUpStep() {
return 0.5F;
}
@Override @Override
public ThirdPersonCameraPosition getThirdPersonCameraPosition(int index) { public ThirdPersonCameraPosition getThirdPersonCameraPosition(int index) {
return new ThirdPersonCameraPosition(4, 1, 0); return new ThirdPersonCameraPosition(4, 1, 0);

View file

@ -1,7 +1,6 @@
package com.atsuishio.superbwarfare.entity.vehicle.base; package com.atsuishio.superbwarfare.entity.vehicle.base;
import com.atsuishio.superbwarfare.capability.energy.SyncedEntityEnergyStorage; import com.atsuishio.superbwarfare.capability.energy.SyncedEntityEnergyStorage;
import com.atsuishio.superbwarfare.data.vehicle.VehicleData;
import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.IntTag; import net.minecraft.nbt.IntTag;
import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataAccessor;
@ -76,7 +75,7 @@ public abstract class EnergyVehicleEntity extends VehicleEntity {
} }
public int getMaxEnergy() { public int getMaxEnergy() {
return VehicleData.from(this).maxEnergy(); return data().maxEnergy();
} }
} }

View file

@ -174,6 +174,15 @@ public abstract class VehicleEntity extends Entity {
this.gameEvent(GameEvent.ENTITY_DISMOUNT, pPassenger); this.gameEvent(GameEvent.ENTITY_DISMOUNT, pPassenger);
} }
public VehicleData data() {
return VehicleData.from(this);
}
@Override
public float maxUpStep() {
return data().upStep();
}
@Nullable @Nullable
@Override @Override
public Entity getFirstPassenger() { public Entity getFirstPassenger() {
@ -501,7 +510,7 @@ public abstract class VehicleEntity extends Entity {
} }
public float getMaxHealth() { public float getMaxHealth() {
return VehicleData.from(this).maxHealth(); return data().maxHealth();
} }
@Override @Override
@ -546,14 +555,14 @@ public abstract class VehicleEntity extends Entity {
* 呼吸回血冷却时长(单位:tick)设为小于0的值以禁用呼吸回血 * 呼吸回血冷却时长(单位:tick)设为小于0的值以禁用呼吸回血
*/ */
public int maxRepairCoolDown() { public int maxRepairCoolDown() {
return VehicleData.from(this).repairCooldown(); return data().repairCooldown();
} }
/** /**
* 呼吸回血回血量 * 呼吸回血回血量
*/ */
public float repairAmount() { public float repairAmount() {
return VehicleData.from(this).repairAmount(); return data().repairAmount();
} }
@Override @Override

View file

@ -1,5 +1,6 @@
{ {
"ID": "superbwarfare:tom_6", "ID": "superbwarfare:tom_6",
"MaxHealth": 40, "MaxHealth": 40,
"MaxEnergy": 100000 "MaxEnergy": 100000,
"UpStep": 0.5
} }