From 97bab5e46daed8f4f076c8355b62ed9bc53c354b Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Tue, 20 May 2025 05:49:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8=E9=87=8D=E8=BD=BD=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=8C=85=E6=97=B6=E6=AD=A3=E7=A1=AE=E6=B8=85=E7=A9=BA=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/atsuishio/superbwarfare/data/gun/GunData.java | 2 +- .../superbwarfare/data/launchable/LaunchableEntityTool.java | 1 + .../superbwarfare/data/vehicle/VehicleDataTool.java | 2 ++ .../entity/vehicle/base/EnergyVehicleEntity.java | 1 + .../java/com/atsuishio/superbwarfare/tools/GunsTool.java | 5 +++++ 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java b/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java index 877355ef0..dc90d8db7 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/gun/GunData.java @@ -39,7 +39,7 @@ public class GunData { public final CompoundTag attachmentTag; public final String id; - private static final LoadingCache dataCache = CacheBuilder.newBuilder() + public static final LoadingCache dataCache = CacheBuilder.newBuilder() .weakKeys() .build(new CacheLoader<>() { public @NotNull GunData load(@NotNull ItemStack stack) { diff --git a/src/main/java/com/atsuishio/superbwarfare/data/launchable/LaunchableEntityTool.java b/src/main/java/com/atsuishio/superbwarfare/data/launchable/LaunchableEntityTool.java index 0ecd70aa2..da98b758e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/launchable/LaunchableEntityTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/launchable/LaunchableEntityTool.java @@ -25,6 +25,7 @@ public class LaunchableEntityTool { */ public static void initJsonData(ResourceManager manager) { launchableEntitiesData.clear(); + for (var entry : manager.listResources("launchable", file -> file.getPath().endsWith(".json")).entrySet()) { var attribute = entry.getValue(); try { diff --git a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleDataTool.java b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleDataTool.java index 045508126..c7cd04716 100644 --- a/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleDataTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/data/vehicle/VehicleDataTool.java @@ -19,6 +19,8 @@ public class VehicleDataTool { public static void initJsonData(ResourceManager manager) { vehicleData.clear(); + VehicleData.dataCache.invalidateAll(); + for (var entry : manager.listResources(VEHICLE_DATA_FOLDER, file -> file.getPath().endsWith(".json")).entrySet()) { var attribute = entry.getValue(); 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 e05d4e9bb..8bbeb4f88 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 @@ -15,6 +15,7 @@ public abstract class EnergyVehicleEntity extends VehicleEntity { public static final EntityDataAccessor ENERGY = SynchedEntityData.defineId(EnergyVehicleEntity.class, EntityDataSerializers.INT); + // TODO 在数据更新时修改能量相关属性 protected final IEnergyStorage energyStorage = new SyncedEntityEnergyStorage(this.getMaxEnergy(), this.entityData, ENERGY); public EnergyVehicleEntity(EntityType pEntityType, Level pLevel) { diff --git a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java index 09dae5e03..0666dc91e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java +++ b/src/main/java/com/atsuishio/superbwarfare/tools/GunsTool.java @@ -2,6 +2,7 @@ package com.atsuishio.superbwarfare.tools; import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.data.gun.DefaultGunData; +import com.atsuishio.superbwarfare.data.gun.GunData; import com.atsuishio.superbwarfare.network.message.receive.GunsDataMessage; import com.google.gson.Gson; import net.minecraft.nbt.CompoundTag; @@ -28,6 +29,10 @@ public class GunsTool { * 初始化数据,从data中读取数据json文件 */ public static void initJsonData(ResourceManager manager) { + gunsData.clear(); + GunData.dataCache.invalidateAll(); + + // TODO 将枪械ID挪至JSON数据内 for (var entry : manager.listResources("guns", file -> file.getPath().endsWith(".json")).entrySet()) { var id = entry.getKey(); var attribute = entry.getValue();