优化NBT#Headshot
This commit is contained in:
parent
c00da95dbf
commit
6f578f8d65
33 changed files with 44 additions and 43 deletions
|
@ -1,14 +1,15 @@
|
|||
package com.atsuishio.superbwarfare.client.tooltip;
|
||||
|
||||
import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent;
|
||||
import com.atsuishio.superbwarfare.init.ModKeyMappings;
|
||||
import com.atsuishio.superbwarfare.init.ModPerks;
|
||||
import com.atsuishio.superbwarfare.init.ModTags;
|
||||
import com.atsuishio.superbwarfare.perk.AmmoPerk;
|
||||
import com.atsuishio.superbwarfare.perk.Perk;
|
||||
import com.atsuishio.superbwarfare.perk.PerkHelper;
|
||||
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||
import com.atsuishio.superbwarfare.tools.ItemNBTTool;
|
||||
import com.atsuishio.superbwarfare.tools.TooltipTool;
|
||||
import com.atsuishio.superbwarfare.client.tooltip.component.GunImageComponent;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.client.gui.Font;
|
||||
import net.minecraft.client.gui.GuiGraphics;
|
||||
|
@ -64,7 +65,7 @@ public class ClientGunImageTooltip implements ClientTooltipComponent {
|
|||
}
|
||||
|
||||
protected boolean shouldRenderBypassAndHeadshotTooltip() {
|
||||
return ItemNBTTool.getDouble(stack, "BypassesArmor", 0) > 0 || ItemNBTTool.getDouble(stack, "headshot", 0) > 0;
|
||||
return ItemNBTTool.getDouble(stack, "BypassesArmor", 0) > 0 || GunsTool.getGunDoubleTag(stack, "Headshot", 0) > 0;
|
||||
}
|
||||
|
||||
protected boolean shouldRenderEditTooltip() {
|
||||
|
@ -186,7 +187,7 @@ public class ClientGunImageTooltip implements ClientTooltipComponent {
|
|||
* 获取武器爆头倍率文本组件
|
||||
*/
|
||||
protected Component getHeadshotComponent() {
|
||||
double headshot = ItemNBTTool.getDouble(stack, "headshot", 0);
|
||||
double headshot = GunsTool.getGunDoubleTag(stack, "Headshot", 0);
|
||||
return Component.translatable("des.superbwarfare.tips.headshot").withStyle(ChatFormatting.GRAY)
|
||||
.append(Component.literal("").withStyle(ChatFormatting.RESET))
|
||||
.append(Component.literal(new DecimalFormat("##.#").format(headshot) + "x").withStyle(ChatFormatting.AQUA));
|
||||
|
|
|
@ -185,7 +185,7 @@ public class GunEventHandler {
|
|||
ItemStack heldItem = player.getMainHandItem();
|
||||
|
||||
if (!player.level().isClientSide()) {
|
||||
float headshot = (float) heldItem.getOrCreateTag().getDouble("headshot");
|
||||
float headshot = (float) GunsTool.getGunDoubleTag(heldItem, "Headshot", 0);
|
||||
float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) perkDamage(heldItem);
|
||||
float velocity = (float) ((heldItem.getOrCreateTag().getDouble("velocity") + heldItem.getOrCreateTag().getDouble("CustomVelocity")) * perkSpeed(heldItem));
|
||||
int projectileAmount = GunsTool.getGunIntTag(heldItem, "ProjectileAmount", 1);
|
||||
|
@ -322,7 +322,7 @@ public class GunEventHandler {
|
|||
stack.getOrCreateTag().putBoolean("is_empty_reloading", true);
|
||||
playGunEmptyReloadSounds(player);
|
||||
} else {
|
||||
data.putInt("ReloadTime", GunsTool.getGunIntTag(stack, "NormalReloadTime") + 1);
|
||||
data.putInt("ReloadTime", data.getInt("NormalReloadTime") + 1);
|
||||
stack.getOrCreateTag().putBoolean("is_normal_reloading", true);
|
||||
playGunNormalReloadSounds(player);
|
||||
}
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
package com.atsuishio.superbwarfare.item.gun.handgun;
|
||||
|
||||
import com.atsuishio.superbwarfare.ModUtils;
|
||||
import com.atsuishio.superbwarfare.client.PoseTool;
|
||||
import com.atsuishio.superbwarfare.client.renderer.item.TracheliumItemRenderer;
|
||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||
import com.atsuishio.superbwarfare.network.ModVariables;
|
||||
import com.atsuishio.superbwarfare.perk.Perk;
|
||||
import com.atsuishio.superbwarfare.perk.PerkHelper;
|
||||
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||
import com.atsuishio.superbwarfare.tools.TooltipTool;
|
||||
import com.atsuishio.superbwarfare.client.PoseTool;
|
||||
import com.atsuishio.superbwarfare.init.ModItems;
|
||||
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||
import com.atsuishio.superbwarfare.init.ModTags;
|
||||
import com.atsuishio.superbwarfare.item.AnimatedItem;
|
||||
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||
import com.atsuishio.superbwarfare.network.ModVariables;
|
||||
import com.atsuishio.superbwarfare.perk.Perk;
|
||||
import com.atsuishio.superbwarfare.perk.PerkHelper;
|
||||
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||
import com.atsuishio.superbwarfare.tools.TooltipTool;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
|
@ -278,12 +278,12 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
|||
tag.putDouble("CustomVelocity", 15);
|
||||
tag.putDouble("BypassesArmor", 0.4);
|
||||
tag.putDouble("damage", 21);
|
||||
tag.putDouble("headshot", 2.5);
|
||||
GunsTool.setGunDoubleTag(stack, "Headshot", 2.5);
|
||||
} else {
|
||||
tag.putDouble("CustomVelocity", 0);
|
||||
tag.putDouble("BypassesArmor", 0.3);
|
||||
tag.putDouble("damage", 19);
|
||||
tag.putDouble("headshot", 2);
|
||||
GunsTool.setGunDoubleTag(stack, "Headshot", 2);
|
||||
}
|
||||
|
||||
double customZoom = switch (scopeType) {
|
||||
|
|
|
@ -238,7 +238,7 @@ public class FireMessage {
|
|||
|
||||
CompoundTag tag = heldItem.getOrCreateTag();
|
||||
var perk = PerkHelper.getPerkByType(heldItem, Perk.Type.AMMO);
|
||||
float headshot = (float) tag.getDouble("headshot");
|
||||
float headshot = (float) GunsTool.getGunDoubleTag(heldItem, "Headshot", 0);
|
||||
float velocity = 2 * (float) tag.getDouble("speed") * (float) perkSpeed(heldItem);
|
||||
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
|
||||
double damage;
|
||||
|
|
|
@ -55,7 +55,7 @@ public class GunsTool {
|
|||
|
||||
// TODO 临时使用,移植完毕后删除
|
||||
private static final Set<String> STRING_SET = Set.of("EmptyReloadTime", "FireMode", "Weight", "SoundRadius", "BurstSize", "ProjectileAmount",
|
||||
"Spread", "NormalReloadTime");
|
||||
"Spread", "NormalReloadTime", "Headshot");
|
||||
|
||||
public static void initGun(Level level, ItemStack stack, String location) {
|
||||
if (level.getServer() == null) return;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.006,
|
||||
"recoil_y": 0.018,
|
||||
"damage": 2.5,
|
||||
"headshot": 1.5,
|
||||
"Headshot": 1.5,
|
||||
"velocity": 17,
|
||||
"mag": 25,
|
||||
"ProjectileAmount": 12,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.005,
|
||||
"recoil_y": 0.026,
|
||||
"damage": 5,
|
||||
"headshot": 1.5,
|
||||
"Headshot": 1.5,
|
||||
"velocity": 15,
|
||||
"mag": 2,
|
||||
"ProjectileAmount": 12,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"recoil_x": 0.0015,
|
||||
"recoil_y": 0.01,
|
||||
"damage": 7.7,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 44.5,
|
||||
"mag": 30,
|
||||
"Weight": 4,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"recoil_x": 0.002,
|
||||
"recoil_y": 0.012,
|
||||
"damage": 8.5,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 36,
|
||||
"mag": 30,
|
||||
"Weight": 5,
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"CustomZoom": 0.75,
|
||||
"Spread": 4,
|
||||
"headshot": 2.5,
|
||||
"Headshot": 2.5,
|
||||
"damage": 48,
|
||||
"Weight": 3,
|
||||
"BypassesArmor": 0.25
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"recoil_x": 0.0018,
|
||||
"recoil_y": 0.01,
|
||||
"damage": 9.5,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 40,
|
||||
"mag": 55,
|
||||
"Weight": 6,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.004,
|
||||
"recoil_y": 0.013,
|
||||
"damage": 5.5,
|
||||
"headshot": 1.5,
|
||||
"Headshot": 1.5,
|
||||
"velocity": 17,
|
||||
"mag": 17,
|
||||
"Weight": 1,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.004,
|
||||
"recoil_y": 0.013,
|
||||
"damage": 5.5,
|
||||
"headshot": 1.5,
|
||||
"Headshot": 1.5,
|
||||
"velocity": 17,
|
||||
"mag": 17,
|
||||
"Weight": 1,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"recoil_x": 0.0016,
|
||||
"recoil_y": 0.009,
|
||||
"damage": 7.5,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 44,
|
||||
"mag": 30,
|
||||
"Weight": 4,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.004,
|
||||
"recoil_y": 0.04,
|
||||
"damage": 65,
|
||||
"headshot": 3,
|
||||
"Headshot": 3,
|
||||
"velocity": 38,
|
||||
"mag": 1,
|
||||
"Weight": 5,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.002,
|
||||
"recoil_y": 0.063,
|
||||
"damage": 35,
|
||||
"headshot": 3,
|
||||
"Headshot": 3,
|
||||
"velocity": 37.75,
|
||||
"mag": 5,
|
||||
"bolt_action_time": 22,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.006,
|
||||
"recoil_y": 0.018,
|
||||
"damage": 9.5,
|
||||
"headshot": 1.5,
|
||||
"Headshot": 1.5,
|
||||
"velocity": 15,
|
||||
"mag": 7,
|
||||
"Weight": 2,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"recoil_x": 0.0015,
|
||||
"recoil_y": 0.011,
|
||||
"damage": 7,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 44,
|
||||
"mag": 30,
|
||||
"Weight": 4,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.004,
|
||||
"recoil_y": 0.014,
|
||||
"damage": 9,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 43,
|
||||
"mag": 100,
|
||||
"Weight": 8,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.009,
|
||||
"recoil_y": 0.04,
|
||||
"damage": 3,
|
||||
"headshot": 1.5,
|
||||
"Headshot": 1.5,
|
||||
"velocity": 17,
|
||||
"mag": 8,
|
||||
"force_stop_reloading": 1,
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"recoil_x": 0.007,
|
||||
"recoil_y": 0.013,
|
||||
"damage": 38,
|
||||
"headshot": 3,
|
||||
"Headshot": 3,
|
||||
"velocity": 47.2,
|
||||
"mag": 5,
|
||||
"bolt_action_time": 18,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.004,
|
||||
"recoil_y": 0.031,
|
||||
"damage": 16,
|
||||
"headshot": 2.5,
|
||||
"Headshot": 2.5,
|
||||
"velocity": 38,
|
||||
"mag": 8,
|
||||
"force_stop_reloading": 1,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.003,
|
||||
"recoil_y": 0.02,
|
||||
"damage": 8,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 46,
|
||||
"Weight": 10,
|
||||
"FireMode": 2,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"recoil_x": 0.006,
|
||||
"recoil_y": 0.014,
|
||||
"damage": 12,
|
||||
"headshot": 2.5,
|
||||
"Headshot": 2.5,
|
||||
"velocity": 42.5,
|
||||
"mag": 20,
|
||||
"Weight": 5,
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"recoil_x": 0.002,
|
||||
"recoil_y": 0.063,
|
||||
"damage": 33,
|
||||
"headshot": 3,
|
||||
"Headshot": 3,
|
||||
"velocity": 42,
|
||||
"mag": 5,
|
||||
"bolt_action_time": 22,
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"recoil_x": 0.01,
|
||||
"recoil_y": 0.038,
|
||||
"damage": 140,
|
||||
"headshot": 3,
|
||||
"Headshot": 3,
|
||||
"velocity": 36,
|
||||
"mag": 3,
|
||||
"bolt_action_time": 37,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"recoil_x": 0.0013,
|
||||
"recoil_y": 0.009,
|
||||
"damage": 8.25,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 46,
|
||||
"mag": 30,
|
||||
"Weight": 4,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.0018,
|
||||
"recoil_y": 0.012,
|
||||
"damage": 8.75,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 38,
|
||||
"mag": 75,
|
||||
"Weight": 6,
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"recoil_y": 0.018,
|
||||
"damage": 35,
|
||||
"mag": 5,
|
||||
"headshot": 3,
|
||||
"Headshot": 3,
|
||||
"velocity": 70,
|
||||
"bolt_action_time": 22,
|
||||
"Weight": 7,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.004,
|
||||
"recoil_y": 0.015,
|
||||
"damage": 9.5,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 36,
|
||||
"mag": 20,
|
||||
"Weight": 4,
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
"recoil_x": 0.004,
|
||||
"recoil_y": 0.009,
|
||||
"damage": 18,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 42,
|
||||
"mag": 10,
|
||||
"Weight": 5,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.005,
|
||||
"recoil_y": 0.032,
|
||||
"damage": 19,
|
||||
"headshot": 2,
|
||||
"Headshot": 2,
|
||||
"velocity": 24,
|
||||
"mag": 6,
|
||||
"Weight": 2,
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"recoil_x": 0.002,
|
||||
"recoil_y": 0.007,
|
||||
"damage": 6,
|
||||
"headshot": 1.5,
|
||||
"Headshot": 1.5,
|
||||
"velocity": 16,
|
||||
"mag": 13,
|
||||
"Weight": 3,
|
||||
|
|
Loading…
Add table
Reference in a new issue