diff --git a/src/main/java/net/mcreator/target/client/model/item/SentinelItemModel.java b/src/main/java/net/mcreator/target/client/model/item/SentinelItemModel.java index a9aa60847..e0f21c7b8 100644 --- a/src/main/java/net/mcreator/target/client/model/item/SentinelItemModel.java +++ b/src/main/java/net/mcreator/target/client/model/item/SentinelItemModel.java @@ -8,10 +8,13 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; +import net.minecraftforge.common.capabilities.ForgeCapabilities; import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; +import java.util.concurrent.atomic.AtomicBoolean; + public class SentinelItemModel extends GeoModel { @Override public ResourceLocation getAnimationResource(SentinelItem animatable) { @@ -89,13 +92,18 @@ public class SentinelItemModel extends GeoModel { shen.setRotX(0.15f * (float) (0.18f * fp + fr)); shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr)); } - shen.setPosX(0.5f * (float)fr * (float)((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilHorizon * fp)); + shen.setPosX(0.5f * (float) fr * (float) ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).recoilHorizon * fp)); CoreGeoBone charge = getAnimationProcessor().getBone("charge"); charge.setRotZ(charge.getRotZ() + times * 0.05f); - if ((stack.getOrCreateTag().getDouble("power") > 0)) { + AtomicBoolean flag = new AtomicBoolean(false); + stack.getCapability(ForgeCapabilities.ENERGY).ifPresent( + iEnergyStorage -> flag.set(iEnergyStorage.getEnergyStored() > 0) + ); + + if (flag.get()) { charge.setScaleX(1); charge.setScaleY(1); } else { @@ -105,8 +113,8 @@ public class SentinelItemModel extends GeoModel { CoreGeoBone root = getAnimationProcessor().getBone("root"); - float PosX = (float)player.getPersistentData().getDouble("gun_move_posX"); - float PosY = (float)player.getPersistentData().getDouble("gun_move_posY"); + float PosX = (float) player.getPersistentData().getDouble("gun_move_posX"); + float PosY = (float) player.getPersistentData().getDouble("gun_move_posY"); double y = player.getPersistentData().getDouble("y"); double x = player.getPersistentData().getDouble("x"); diff --git a/src/main/java/net/mcreator/target/energy/ItemEnergyProvider.java b/src/main/java/net/mcreator/target/energy/ItemEnergyProvider.java new file mode 100644 index 000000000..8cf34e26a --- /dev/null +++ b/src/main/java/net/mcreator/target/energy/ItemEnergyProvider.java @@ -0,0 +1,30 @@ +package net.mcreator.target.energy; + +import net.minecraft.core.Direction; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.capabilities.ICapabilityProvider; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.energy.IEnergyStorage; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + +public class ItemEnergyProvider implements ICapabilityProvider { + private final LazyOptional capability; + + public ItemEnergyProvider(ItemStack stack, int energyCapacity) { + this.capability = LazyOptional.of(() -> new ItemEnergyStorage(stack, energyCapacity)); + } + + @Nonnull + @Override + public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction dire) { + if (cap == ForgeCapabilities.ENERGY) { + return capability.cast(); + } + + return LazyOptional.empty(); + } +} diff --git a/src/main/java/net/mcreator/target/energy/ItemEnergyStorage.java b/src/main/java/net/mcreator/target/energy/ItemEnergyStorage.java new file mode 100644 index 000000000..b0d08b76c --- /dev/null +++ b/src/main/java/net/mcreator/target/energy/ItemEnergyStorage.java @@ -0,0 +1,39 @@ +package net.mcreator.target.energy; + +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.energy.EnergyStorage; + +public class ItemEnergyStorage extends EnergyStorage { + private static final String NBT_ENERGY = "Energy"; + + private final ItemStack stack; + + public ItemEnergyStorage(ItemStack stack, int capacity) { + super(capacity, Integer.MAX_VALUE, Integer.MAX_VALUE); + + this.stack = stack; + this.energy = stack.hasTag() && stack.getTag().contains(NBT_ENERGY) ? stack.getTag().getInt(NBT_ENERGY) : 0; + } + + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + int received = super.receiveEnergy(maxReceive, simulate); + + if (received > 0 && !simulate) { + stack.getOrCreateTag().putInt(NBT_ENERGY, getEnergyStored()); + } + + return received; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + int extracted = super.extractEnergy(maxExtract, simulate); + + if (extracted > 0 && !simulate) { + stack.getOrCreateTag().putInt(NBT_ENERGY, getEnergyStored()); + } + + return extracted; + } +} diff --git a/src/main/java/net/mcreator/target/event/GunEventHandler.java b/src/main/java/net/mcreator/target/event/GunEventHandler.java index 991ad4503..68886c013 100644 --- a/src/main/java/net/mcreator/target/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/target/event/GunEventHandler.java @@ -15,11 +15,11 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; -import net.minecraft.util.Mth; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; @@ -110,11 +110,11 @@ public class GunEventHandler { stack.getOrCreateTag().putDouble("empty", 1); - if (player.getMainHandItem().getItem() == TargetModItems.M_60.get()) { + if (stack.getItem() == TargetModItems.M_60.get()) { stack.getOrCreateTag().putBoolean("bullet_chain", true); } - if (player.getMainHandItem().getItem() == TargetModItems.M_4.get() || player.getMainHandItem().getItem() == TargetModItems.HK_416.get()) { + if (stack.getItem() == TargetModItems.M_4.get() || player.getMainHandItem().getItem() == TargetModItems.HK_416.get()) { if (stack.getOrCreateTag().getDouble("fire_sequence") == 1) { stack.getOrCreateTag().putDouble("fire_sequence", 0); } else { @@ -122,11 +122,11 @@ public class GunEventHandler { } } - if (player.getMainHandItem().getItem() == TargetModItems.DEVOTION.get()) { + if (stack.getItem() == TargetModItems.DEVOTION.get()) { stack.getOrCreateTag().putDouble("fire_increase", stack.getOrCreateTag().getDouble("fire_increase") + 0.334); } - if (player.getMainHandItem().getItem() == TargetModItems.ABEKIRI.get()) { + if (stack.getItem() == TargetModItems.ABEKIRI.get()) { stack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(InteractionHand.MAIN_HAND)); if (player instanceof ServerPlayer serverPlayer && player.level() instanceof ServerLevel serverLevel) { ParticleTool.sendParticle(serverLevel, ParticleTypes.CLOUD, player.getX() + 1.8 * player.getLookAngle().x, player.getY() + player.getBbHeight() - 0.1 + 1.8 * player.getLookAngle().y, @@ -134,18 +134,23 @@ public class GunEventHandler { } } - if (player.getMainHandItem().getItem() == TargetModItems.SENTINEL.get()) { + if (stack.getItem() == TargetModItems.SENTINEL.get()) { stack.getOrCreateTag().putBoolean("zoom_fire", (player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming); - if (stack.getOrCreateTag().getDouble("power") > 3000) { - stack.getOrCreateTag().putDouble("power", stack.getOrCreateTag().getDouble("power") - 3000); - } else { - stack.getOrCreateTag().putDouble("power", 0); - } + + stack.getCapability(ForgeCapabilities.ENERGY).ifPresent( + iEnergyStorage -> iEnergyStorage.extractEnergy(3000, false) + ); + +// if (stack.getOrCreateTag().getDouble("power") > 3000) { +// stack.getOrCreateTag().putDouble("power", stack.getOrCreateTag().getDouble("power") - 3000); +// } else { +// stack.getOrCreateTag().putDouble("power", 0); +// } stack.getOrCreateTag().putDouble("crot", 20); } int zoom_add_cooldown = 0; - if (player.getMainHandItem().getItem() == TargetModItems.MARLIN.get()) { + if (stack.getItem() == TargetModItems.MARLIN.get()) { if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming) { zoom_add_cooldown = 5; stack.getOrCreateTag().putDouble("marlin_animation_time", 15); @@ -163,7 +168,7 @@ public class GunEventHandler { gunShoot(player); } - stack.getOrCreateTag().putBoolean("shoot",true); + stack.getOrCreateTag().putBoolean("shoot", true); } @@ -234,7 +239,7 @@ public class GunEventHandler { } } - stack.getOrCreateTag().putBoolean("shoot",true); + stack.getOrCreateTag().putBoolean("shoot", true); for (int index0 = 0; index0 < (int) stack.getOrCreateTag().getDouble("projectile_amount"); index0++) { gunShoot(player); @@ -533,18 +538,18 @@ public class GunEventHandler { //此处判断空仓换弹的时候,是否在准备阶段就需要装填一发,如M870 if (tag.getDouble("prepare_load_time") != 0 && tag.getInt("ammo") == 0) { playGunPrepareLoadReloadSounds(player); - tag.putInt("prepare_load",(int)tag.getDouble("prepare_load_time")); - player.getCooldowns().addCooldown(stack.getItem(), (int)tag.getDouble("prepare_load_time")); + tag.putInt("prepare_load", (int) tag.getDouble("prepare_load_time")); + player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_load_time")); } else { playGunPrepareReloadSounds(player); - tag.putInt("prepare",(int)tag.getDouble("prepare_time")); - player.getCooldowns().addCooldown(stack.getItem(), (int)tag.getDouble("prepare_time")); + tag.putInt("prepare", (int) tag.getDouble("prepare_time")); + player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("prepare_time")); } tag.putBoolean("force_stop", false); tag.putBoolean("stop", false); - tag.putInt("reload_stage",1); + tag.putInt("reload_stage", 1); tag.putBoolean("reloading", true); tag.putBoolean("start_single_reload", false); @@ -564,21 +569,21 @@ public class GunEventHandler { //检查备弹 var capability = player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables()); if (stack.is(TargetModTags.Items.SHOTGUN) && capability.shotgunAmmo == 0) { - tag.putBoolean("force_stage3_start",true); + tag.putBoolean("force_stage3_start", true); } else if (stack.is(TargetModTags.Items.SNIPER_RIFLE) && capability.sniperAmmo == 0) { - tag.putBoolean("force_stage3_start",true); + tag.putBoolean("force_stage3_start", true); } else if ((stack.is(TargetModTags.Items.HANDGUN) || stack.is(TargetModTags.Items.SMG)) && capability.handgunAmmo == 0) { - tag.putBoolean("force_stage3_start",true); + tag.putBoolean("force_stage3_start", true); } else if (stack.is(TargetModTags.Items.RIFLE) && capability.rifleAmmo == 0) { - tag.putBoolean("force_stage3_start",true); + tag.putBoolean("force_stage3_start", true); } else { - tag.putInt("reload_stage",2); + tag.putInt("reload_stage", 2); } } //强制停止换弹,进入三阶段 if (tag.getBoolean("force_stop")) { - tag.putBoolean("stop",true); + tag.putBoolean("stop", true); } //二阶段 @@ -587,11 +592,11 @@ public class GunEventHandler { && tag.getInt("reload_stage") == 2 && tag.getInt("iterative") == 0 && !tag.getBoolean("stop") - && tag.getInt("ammo") < (int)tag.getDouble("mag")) { + && tag.getInt("ammo") < (int) tag.getDouble("mag")) { playGunLoopReloadSounds(player); - tag.putDouble("iterative", (int)tag.getDouble("iterative_time")); - player.getCooldowns().addCooldown(stack.getItem(), (int)tag.getDouble("iterative_time")); + tag.putDouble("iterative", (int) tag.getDouble("iterative_time")); + player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("iterative_time")); //动画播放nbt if (tag.getDouble("load_index") == 1) { tag.putDouble("load_index", 0); @@ -618,25 +623,25 @@ public class GunEventHandler { if (tag.getInt("iterative") == 1) { //装满结束 - if (tag.getInt("ammo") >= (int)tag.getDouble("mag")) { - tag.putInt("reload_stage",3); + if (tag.getInt("ammo") >= (int) tag.getDouble("mag")) { + tag.putInt("reload_stage", 3); } //备弹耗尽结束 var capability = player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables()); if (stack.is(TargetModTags.Items.SHOTGUN) && capability.shotgunAmmo == 0) { - tag.putInt("reload_stage",3); + tag.putInt("reload_stage", 3); } else if (stack.is(TargetModTags.Items.SNIPER_RIFLE) && capability.sniperAmmo == 0) { - tag.putInt("reload_stage",3); + tag.putInt("reload_stage", 3); } else if ((stack.is(TargetModTags.Items.HANDGUN) || stack.is(TargetModTags.Items.SMG)) && capability.handgunAmmo == 0) { - tag.putInt("reload_stage",3); + tag.putInt("reload_stage", 3); } else if (stack.is(TargetModTags.Items.RIFLE) && capability.rifleAmmo == 0) { - tag.putInt("reload_stage",3); + tag.putInt("reload_stage", 3); } //强制结束 if (tag.getBoolean("stop")) { - tag.putInt("reload_stage",3); + tag.putInt("reload_stage", 3); tag.putBoolean("force_stop", false); tag.putBoolean("stop", false); } @@ -646,15 +651,15 @@ public class GunEventHandler { if ((tag.getInt("iterative") == 1 && tag.getInt("reload_stage") == 3) || tag.getBoolean("force_stage3_start")) { tag.putBoolean("force_stage3_start", false); - tag.putDouble("finish", (int)tag.getDouble("finish_time")); - player.getCooldowns().addCooldown(stack.getItem(), (int)tag.getDouble("finish_time")); + tag.putDouble("finish", (int) tag.getDouble("finish_time")); + player.getCooldowns().addCooldown(stack.getItem(), (int) tag.getDouble("finish_time")); playGunEndReloadSounds(player); } //三阶段结束 if (tag.getInt("finish") == 1) { - tag.putInt("reload_stage",0); + tag.putInt("reload_stage", 0); tag.putBoolean("reloading", false); } } @@ -781,7 +786,11 @@ public class GunEventHandler { } if (tag.getInt("sentinel_charge_time") == 17) { - tag.putDouble("power", Mth.clamp(tag.getDouble("power") + 24000,0,240000)); + stack.getCapability(ForgeCapabilities.ENERGY).ifPresent( + iEnergyStorage -> iEnergyStorage.receiveEnergy(24000, false) + ); + +// tag.putDouble("power", Mth.clamp(tag.getDouble("power") + 24000,0,240000)); player.getInventory().clearOrCountMatchingItems(p -> p.getItem() == TargetModItems.SHIELD_CELL.get(), 1, player.inventoryMenu.getCraftSlots()); } diff --git a/src/main/java/net/mcreator/target/item/gun/SentinelItem.java b/src/main/java/net/mcreator/target/item/gun/SentinelItem.java index d9167ba8e..bd368da26 100644 --- a/src/main/java/net/mcreator/target/item/gun/SentinelItem.java +++ b/src/main/java/net/mcreator/target/item/gun/SentinelItem.java @@ -4,18 +4,21 @@ import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; import net.mcreator.target.TargetMod; import net.mcreator.target.client.renderer.item.SentinelItemRenderer; +import net.mcreator.target.energy.ItemEnergyProvider; import net.mcreator.target.init.TargetModItems; import net.mcreator.target.init.TargetModSounds; import net.mcreator.target.init.TargetModTags; import net.mcreator.target.item.AnimatedItem; -import net.mcreator.target.tools.*; +import net.mcreator.target.tools.GunsTool; +import net.mcreator.target.tools.RarityTool; +import net.mcreator.target.tools.TooltipTool; import net.minecraft.client.Minecraft; import net.minecraft.client.model.HumanoidModel; import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; +import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvent; import net.minecraft.world.InteractionHand; import net.minecraft.world.entity.Entity; @@ -24,13 +27,14 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.AttributeModifier; import net.minecraft.world.entity.ai.attributes.Attributes; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.TooltipFlag; import net.minecraft.world.level.Level; import net.minecraftforge.client.extensions.common.IClientItemExtensions; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.capabilities.ICapabilityProvider; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animation.AnimatableManager; @@ -43,26 +47,49 @@ import software.bernie.geckolib.util.GeckoLibUtil; import java.util.List; import java.util.Set; import java.util.UUID; +import java.util.concurrent.atomic.AtomicInteger; import java.util.function.Consumer; +import java.util.function.Supplier; public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { - private static final String TAG_POWER = "power"; + private final Supplier energyCapacity; + private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); public String animationProcedure = "empty"; public static ItemDisplayContext transformType; public SentinelItem() { super(new Item.Properties().stacksTo(1).rarity(RarityTool.LEGENDARY)); + + this.energyCapacity = () -> 240000; } @Override public boolean isBarVisible(ItemStack pStack) { - return ItemNBTTool.getInt(pStack, TAG_POWER, 0) != 0; + if (!pStack.getCapability(ForgeCapabilities.ENERGY).isPresent()) { + return false; + } + + AtomicInteger energy = new AtomicInteger(0); + pStack.getCapability(ForgeCapabilities.ENERGY).ifPresent( + e -> energy.set(e.getEnergyStored()) + ); + return energy.get() != 0; } @Override public int getBarWidth(ItemStack pStack) { - return Math.round((float) ItemNBTTool.getInt(pStack, TAG_POWER, 0) * 13.0F / 240000F); + AtomicInteger energy = new AtomicInteger(0); + pStack.getCapability(ForgeCapabilities.ENERGY).ifPresent( + e -> energy.set(e.getEnergyStored()) + ); + + return Math.round((float) energy.get() * 13.0F / 240000F); + } + + @Override + public ICapabilityProvider initCapabilities(ItemStack stack, CompoundTag tag) { + return new ItemEnergyProvider(stack, energyCapacity.get()); } @Override @@ -92,7 +119,7 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { transformType = type; } - private PlayState idlePredicate(AnimationState event) { + private PlayState idlePredicate(AnimationState event) { LocalPlayer player = Minecraft.getInstance().player; if (player == null) return PlayState.STOP; ItemStack stack = player.getMainHandItem(); @@ -124,7 +151,6 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.reload_normal")); } - if (stack.getOrCreateTag().getDouble("sentinel_charge_time") < 127 && stack.getOrCreateTag().getDouble("sentinel_charge_time") > 0 && stack.getOrCreateTag().getBoolean("sentinel_is_charging")) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.charge")); } @@ -138,7 +164,7 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { return PlayState.STOP; } - private PlayState procedurePredicate(AnimationState event) { + private PlayState procedurePredicate(AnimationState event) { if (transformType != null && transformType.firstPerson()) { if (!this.animationProcedure.equals("empty") && event.getController().getAnimationState() == AnimationController.State.STOPPED) { event.getController().setAnimation(RawAnimation.begin().thenPlay(this.animationProcedure)); @@ -171,36 +197,28 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { TooltipTool.addSentinelTips(list, stack); } - public static int getCellCount(Player player) { - int sum = 0; - for (int i = 0; i < player.getInventory().getContainerSize(); ++i) { - ItemStack itemstack = player.getInventory().getItem(i); - if (check(itemstack)) { - sum += itemstack.getCount(); - } - } - return sum; - } - - protected static boolean check(ItemStack stack) { - return stack.getItem() == TargetModItems.SHIELD_CELL.get(); - } - @Override public void inventoryTick(ItemStack itemStack, Level world, Entity entity, int slot, boolean selected) { super.inventoryTick(itemStack, world, entity, slot, selected); + var tag = itemStack.getOrCreateTag(); - if (entity instanceof Player player) { - tag.putInt("cell_count", getCellCount(player)); - } + itemStack.getCapability(ForgeCapabilities.ENERGY).ifPresent( + energy -> { + int energyStored = energy.getEnergyStored(); + + System.out.println("Client:" + world.isClientSide + " " + energyStored); + + if (energyStored > 0) { + energy.extractEnergy(5, false); + + tag.putDouble("add_damage", 0.2857142857142857 * tag.getDouble("damage") * tag.getDouble("damageadd")); + } else { + tag.putDouble("add_damage", 0); + } + } + ); - if (tag.getDouble("power") > 0) { - tag.putDouble("add_damage", 0.2857142857142857 * tag.getDouble("damage") * tag.getDouble("damageadd")); - tag.putDouble("power", tag.getDouble("power") - 5); - } else { - tag.putDouble("add_damage", 0); - } if (tag.getDouble("crot") > 0) { tag.putDouble("crot", tag.getDouble("crot") - 1); } diff --git a/src/main/java/net/mcreator/target/network/message/FireMessage.java b/src/main/java/net/mcreator/target/network/message/FireMessage.java index 9fd28456c..3f323f85c 100644 --- a/src/main/java/net/mcreator/target/network/message/FireMessage.java +++ b/src/main/java/net/mcreator/target/network/message/FireMessage.java @@ -1,6 +1,5 @@ package net.mcreator.target.network.message; -import net.mcreator.target.TargetMod; import net.mcreator.target.entity.*; import net.mcreator.target.event.GunEventHandler; import net.mcreator.target.init.*; @@ -49,8 +48,6 @@ public class FireMessage { context.setPacketHandled(true); } - - public static void pressAction(Player player, int type) { Level world = player.level(); @@ -173,7 +170,7 @@ public class FireMessage { } } else { - stack.getOrCreateTag().putBoolean("shoot",true); + stack.getOrCreateTag().putBoolean("shoot", true); for (int index0 = 0; index0 < 10; index0++) { spawnBullet(player); @@ -258,7 +255,7 @@ public class FireMessage { level.addFreshEntity(taserBulletProjectile); } - stack.getOrCreateTag().putBoolean("shoot",true); + stack.getOrCreateTag().putBoolean("shoot", true); stack.getOrCreateTag().putInt("fire_animation", 4); stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1)); @@ -302,7 +299,7 @@ public class FireMessage { serverPlayer.level().playSound(null, serverPlayer.getOnPos(), TargetModSounds.M_79_VERYFAR.get(), SoundSource.PLAYERS, 12, 1); } - stack.getOrCreateTag().putBoolean("shoot",true); + stack.getOrCreateTag().putBoolean("shoot", true); stack.getOrCreateTag().putInt("fire_animation", 2); stack.getOrCreateTag().putInt("ammo", (stack.getOrCreateTag().getInt("ammo") - 1)); @@ -351,7 +348,7 @@ public class FireMessage { serverPlayer.level().playSound(null, serverPlayer.getOnPos(), TargetModSounds.RPG_VERYFAR.get(), SoundSource.PLAYERS, 16, 1); } - tag.putBoolean("shoot",true); + tag.putBoolean("shoot", true); tag.putInt("fire_animation", 2); tag.putInt("ammo", tag.getInt("ammo") - 1); diff --git a/src/main/java/net/mcreator/target/network/message/FireModeMessage.java b/src/main/java/net/mcreator/target/network/message/FireModeMessage.java index a424a6a71..2224e6f36 100644 --- a/src/main/java/net/mcreator/target/network/message/FireModeMessage.java +++ b/src/main/java/net/mcreator/target/network/message/FireModeMessage.java @@ -104,10 +104,18 @@ public class FireModeMessage { && !capability.zooming && !(player.getCooldowns().isOnCooldown(mainHandItem.getItem())) && mainHandItem.getOrCreateTag().getInt("gun_reloading_time") == 0 - && !mainHandItem.getOrCreateTag().getBoolean("sentinel_is_charging") - && tag.getInt("cell_count") > 0) { + && !mainHandItem.getOrCreateTag().getBoolean("sentinel_is_charging")) { - tag.putBoolean("start_sentinel_charge", true); + int count = 0; + for (var inv : player.getInventory().items) { + if (inv.is(TargetModItems.SHIELD_CELL.get())) { + count++; + } + } + + if (count > 0) { + tag.putBoolean("start_sentinel_charge", true); + } } } } diff --git a/src/main/resources/data/target/recipes/claymorecrafting.json b/src/main/resources/data/target/recipes/claymore_crafting.json similarity index 100% rename from src/main/resources/data/target/recipes/claymorecrafting.json rename to src/main/resources/data/target/recipes/claymore_crafting.json