优化空仓换弹nbt

This commit is contained in:
17146 2024-11-02 23:34:22 +08:00
parent c2429e4aae
commit b5563dcaa4
30 changed files with 48 additions and 32 deletions

View file

@ -286,7 +286,7 @@ public class GunEventHandler {
MinecraftForge.EVENT_BUS.post(new ReloadEvent.Pre(player, stack));
if (stack.is(ModTags.Items.OPEN_BOLT)) {
if (tag.getInt("ammo") == 0) {
data.putInt("ReloadTime", (int) tag.getDouble("empty_reload_time") + 2);
data.putInt("ReloadTime", data.getInt("EmptyReloadTime") + 2);
stack.getOrCreateTag().putBoolean("is_empty_reloading", true);
playGunEmptyReloadSounds(player);
} else {
@ -295,7 +295,7 @@ public class GunEventHandler {
playGunNormalReloadSounds(player);
}
} else {
data.putInt("ReloadTime", (int) tag.getDouble("empty_reload_time") + 2);
data.putInt("ReloadTime", data.getInt("EmptyReloadTime") + 2);
stack.getOrCreateTag().putBoolean("is_empty_reloading", true);
playGunEmptyReloadSounds(player);
}

View file

@ -63,7 +63,7 @@ public class ReloadMessage {
CompoundTag tag = stack.getOrCreateTag();
boolean canSingleReload = tag.getDouble("iterative_time") != 0;
boolean canReload = (tag.getDouble("normal_reload_time") != 0 || tag.getDouble("empty_reload_time") != 0) && tag.getDouble("clipLoad") != 1;
boolean canReload = (tag.getDouble("normal_reload_time") != 0 || GunsTool.getGunIntTag(stack, "EmptyReloadTime") != 0) && tag.getDouble("clipLoad") != 1;
boolean clipLoad = tag.getInt("ammo") == 0 && tag.getDouble("clipLoad") == 1;
// 检查备弹

View file

@ -53,12 +53,28 @@ public class GunsTool {
public static void initGun(Level level, ItemStack stack, String location) {
if (level.getServer() == null) return;
gunsData.get(location).forEach((k, v) -> stack.getOrCreateTag().putDouble(k, v));
gunsData.get(location).forEach((k, v) -> {
if (k.equals("EmptyReloadTime")) {
CompoundTag data = stack.getOrCreateTag().getCompound("GunData");
data.putDouble(k, v);
stack.addTagElement("GunData", data);
} else {
stack.getOrCreateTag().putDouble(k, v);
}
});
}
public static void initCreativeGun(ItemStack stack, String location) {
if (gunsData != null && gunsData.get(location) != null) {
gunsData.get(location).forEach((k, v) -> stack.getOrCreateTag().putDouble(k, v));
gunsData.get(location).forEach((k, v) -> {
if (k.equals("EmptyReloadTime")) {
CompoundTag data = stack.getOrCreateTag().getCompound("GunData");
data.putDouble(k, v);
stack.addTagElement("GunData", data);
} else {
stack.getOrCreateTag().putDouble(k, v);
}
});
stack.getOrCreateTag().putInt("ammo", stack.getOrCreateTag().getInt("mag") + stack.getOrCreateTag().getInt("customMag"));
}
}

View file

@ -14,7 +14,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 64,
"empty_reload_time": 85,
"EmptyReloadTime": 85,
"BypassesArmor": 0.05,
"SoundRadius": 18,
"rpm": 360

View file

@ -14,7 +14,7 @@
"auto": 0,
"burst_size": 1,
"normal_reload_time": 66,
"empty_reload_time": 83,
"EmptyReloadTime": 83,
"BypassesArmor": 0.01,
"SoundRadius": 16,
"rpm": 600

View file

@ -16,7 +16,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 52,
"empty_reload_time": 58,
"EmptyReloadTime": 58,
"BypassesArmor": 0.23,
"SoundRadius": 12,
"rpm": 700

View file

@ -16,7 +16,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 54,
"empty_reload_time": 69,
"EmptyReloadTime": 69,
"BypassesArmor": 0.2,
"SoundRadius": 14,
"rpm": 600

View file

@ -15,7 +15,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 73,
"empty_reload_time": 95,
"EmptyReloadTime": 95,
"BypassesArmor": 0.25,
"SoundRadius": 13,
"rpm": 400

View file

@ -14,7 +14,7 @@
"auto": 0,
"burst_size": 1,
"normal_reload_time": 30,
"empty_reload_time": 35,
"EmptyReloadTime": 35,
"BypassesArmor": 0.15,
"SoundRadius": 10,
"rpm": 400

View file

@ -14,7 +14,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 30,
"empty_reload_time": 35,
"EmptyReloadTime": 35,
"BypassesArmor": 0.15,
"SoundRadius": 16,
"rpm": 1300

View file

@ -16,7 +16,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 56,
"empty_reload_time": 64,
"EmptyReloadTime": 64,
"BypassesArmor": 0.25,
"SoundRadius": 14,
"rpm": 900

View file

@ -13,7 +13,7 @@
"burst": 0,
"auto": 0,
"burst_size": 1,
"empty_reload_time": 64,
"EmptyReloadTime": 64,
"BypassesArmor": 0.7,
"SoundRadius": 20,
"rpm": 120

View file

@ -4,7 +4,7 @@
"zoomSpread": 5,
"mag": 1,
"weight": 10,
"empty_reload_time": 78,
"EmptyReloadTime": 78,
"damage": 300,
"BypassesArmor": 1
}

View file

@ -14,7 +14,7 @@
"burst": 0,
"auto": 0,
"burst_size": 1,
"empty_reload_time": 59,
"EmptyReloadTime": 59,
"clipLoad": 1,
"prepare_time": 29,
"iterative_time": 11,

View file

@ -14,7 +14,7 @@
"auto": 0,
"burst_size": 1,
"normal_reload_time": 30,
"empty_reload_time": 35,
"EmptyReloadTime": 35,
"BypassesArmor": 0.2,
"SoundRadius": 10,
"rpm": 400

View file

@ -16,7 +16,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 56,
"empty_reload_time": 64,
"EmptyReloadTime": 64,
"BypassesArmor": 0.25,
"SoundRadius": 14,
"rpm": 850

View file

@ -14,7 +14,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 114,
"empty_reload_time": 133,
"EmptyReloadTime": 133,
"BypassesArmor": 0.25,
"SoundRadius": 15,
"rpm": 600

View file

@ -6,5 +6,5 @@
"velocity": 3.75,
"mag": 1,
"weight": 4,
"empty_reload_time": 64
"EmptyReloadTime": 64
}

View file

@ -18,7 +18,7 @@
"auto": 0,
"burst_size": 1,
"normal_reload_time": 60,
"empty_reload_time": 78,
"EmptyReloadTime": 78,
"BypassesArmor": 0.6,
"SoundRadius": 18,
"rpm": 180

View file

@ -15,7 +15,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 58,
"empty_reload_time": 81,
"EmptyReloadTime": 81,
"BypassesArmor": 0.4,
"SoundRadius": 16,
"rpm": 700

View file

@ -16,7 +16,7 @@
"auto": 0,
"burst_size": 1,
"normal_reload_time": 63,
"empty_reload_time": 92,
"EmptyReloadTime": 92,
"BypassesArmor": 1,
"SoundRadius": 22,
"rpm": 90

View file

@ -14,7 +14,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 58,
"empty_reload_time": 74,
"EmptyReloadTime": 74,
"BypassesArmor": 0.28,
"SoundRadius": 13,
"rpm": 650

View file

@ -6,6 +6,6 @@
"velocity": 4,
"mag": 1,
"weight": 7,
"empty_reload_time": 103,
"EmptyReloadTime": 103,
"BypassesArmor": 1
}

View file

@ -14,7 +14,7 @@
"auto": 1,
"burst_size": 1,
"normal_reload_time": 73,
"empty_reload_time": 95,
"EmptyReloadTime": 95,
"BypassesArmor": 0.23,
"SoundRadius": 14,
"rpm": 600

View file

@ -16,7 +16,7 @@
"auto": 0,
"burst_size": 1,
"normal_reload_time": 59,
"empty_reload_time": 89,
"EmptyReloadTime": 89,
"BypassesArmor": 0.8,
"SoundRadius": 20,
"rpm": 240

View file

@ -14,7 +14,7 @@
"auto": 0,
"burst_size": 1,
"normal_reload_time": 54,
"empty_reload_time": 75,
"EmptyReloadTime": 75,
"BypassesArmor": 0.23,
"SoundRadius": 16,
"rpm": 400

View file

@ -15,7 +15,7 @@
"auto": 0,
"burst_size": 1,
"normal_reload_time": 56,
"empty_reload_time": 70,
"EmptyReloadTime": 70,
"BypassesArmor": 0.45,
"SoundRadius": 17,
"rpm": 400

View file

@ -6,5 +6,5 @@
"velocity": 3,
"mag": 1,
"weight": 1,
"empty_reload_time": 58
"EmptyReloadTime": 58
}

View file

@ -13,7 +13,7 @@
"burst": 0,
"auto": 0,
"burst_size": 1,
"empty_reload_time": 65,
"EmptyReloadTime": 65,
"BypassesArmor": 0.3,
"SoundRadius": 10,
"rpm": 300

View file

@ -14,7 +14,7 @@
"auto": 1,
"burst_size": 3,
"normal_reload_time": 46,
"empty_reload_time": 64,
"EmptyReloadTime": 64,
"BypassesArmor": 0.15,
"SoundRadius": 4,
"rpm": 1200