From f0a0e076af00ee41e006819fa121a1372979d7d4 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Sun, 25 Aug 2024 02:08:46 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=81=9A=E6=A0=87=E9=9D=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../renderer/entity/TargetRenderer.java | 5 ++ .../superbwarfare/entity/ClaymoreEntity.java | 5 -- .../superbwarfare/entity/TargetEntity.java | 65 ++++++++----------- 3 files changed, 33 insertions(+), 42 deletions(-) diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/TargetRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/TargetRenderer.java index 3287dbfd2..dba76287c 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/TargetRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/TargetRenderer.java @@ -37,4 +37,9 @@ public class TargetRenderer extends GeoEntityRenderer { protected float getDeathMaxRotation(TargetEntity entityLivingBaseIn) { return 0.0F; } + + @Override + public boolean shouldShowName(TargetEntity animatable) { + return animatable.hasCustomName(); + } } diff --git a/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java index 8fd92772c..bc6c37430 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java @@ -65,11 +65,6 @@ public class ClaymoreEntity extends LivingEntity implements GeoEntity, AnimatedE this.entityData.define(OWNER_UUID, Optional.empty()); } - @Override - public boolean isCustomNameVisible() { - return false; - } - @Override public MobType getMobType() { return super.getMobType(); diff --git a/src/main/java/net/mcreator/superbwarfare/entity/TargetEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/TargetEntity.java index a3f1cdca2..9f622ddcd 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/TargetEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/TargetEntity.java @@ -7,10 +7,9 @@ import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.tools.SoundTool; import net.minecraft.commands.arguments.EntityAnchorArgument; import net.minecraft.core.BlockPos; +import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.protocol.Packet; -import net.minecraft.network.protocol.game.ClientGamePacketListener; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; @@ -22,27 +21,22 @@ import net.minecraft.world.damagesource.DamageTypes; import net.minecraft.world.entity.*; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; -import net.minecraft.world.entity.ai.navigation.FlyingPathNavigation; -import net.minecraft.world.entity.ai.navigation.PathNavigation; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.projectile.ThrownPotion; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.Vec3; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.PlayMessages; import software.bernie.geckolib.animatable.GeoEntity; import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache; import software.bernie.geckolib.core.animation.AnimatableManager; import software.bernie.geckolib.util.GeckoLibUtil; -// TODO 重置靶子 @Mod.EventBusSubscriber -public class TargetEntity extends PathfinderMob implements GeoEntity, AnimatedEntity { +public class TargetEntity extends LivingEntity implements GeoEntity, AnimatedEntity { public static final EntityDataAccessor ANIMATION = SynchedEntityData.defineId(TargetEntity.class, EntityDataSerializers.STRING); public static final EntityDataAccessor DOWN_TIME = SynchedEntityData.defineId(TargetEntity.class, EntityDataSerializers.INT); private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); @@ -55,9 +49,6 @@ public class TargetEntity extends PathfinderMob implements GeoEntity, AnimatedEn public TargetEntity(EntityType type, Level world) { super(type, world); - xpReward = 0; - setNoAi(true); - setPersistenceRequired(); } @Override @@ -67,24 +58,24 @@ public class TargetEntity extends PathfinderMob implements GeoEntity, AnimatedEn this.entityData.define(DOWN_TIME, 0); } - @Override - public Packet getAddEntityPacket() { - return NetworkHooks.getEntitySpawningPacket(this); - } - - @Override - protected PathNavigation createNavigation(Level world) { - return new FlyingPathNavigation(this, world); - } - @Override public MobType getMobType() { return super.getMobType(); } @Override - public boolean removeWhenFarAway(double distanceToClosestPlayer) { - return false; + public Iterable getArmorSlots() { + return NonNullList.withSize(1, ItemStack.EMPTY); + } + + @Override + public ItemStack getItemBySlot(EquipmentSlot pSlot) { + return ItemStack.EMPTY; + } + + @Override + public void setItemSlot(EquipmentSlot pSlot, ItemStack pStack) { + } @Override @@ -127,8 +118,9 @@ public class TargetEntity extends PathfinderMob implements GeoEntity, AnimatedEn @Override public void readAdditionalSaveData(CompoundTag compound) { super.readAdditionalSaveData(compound); - if (compound.contains("DownTime")) + if (compound.contains("DownTime")) { this.entityData.set(DOWN_TIME, compound.getInt("DownTime")); + } } @SubscribeEvent @@ -139,7 +131,6 @@ public class TargetEntity extends PathfinderMob implements GeoEntity, AnimatedEn if (entity == null) return; if (entity instanceof TargetEntity target1) { - event.setCanceled(true); target1.setHealth(target1.getMaxHealth()); @@ -160,16 +151,15 @@ public class TargetEntity extends PathfinderMob implements GeoEntity, AnimatedEn } @Override - public InteractionResult mobInteract(Player player, InteractionHand hand) { - InteractionResult result = InteractionResult.sidedSuccess(this.level().isClientSide()); - super.mobInteract(player, hand); - + public InteractionResult interact(Player player, InteractionHand hand) { if (player.isShiftKeyDown()) { if (!this.level().isClientSide()) { this.discard(); } - player.addItem(new ItemStack(ModItems.TARGET_DEPLOYER.get())); + if (!player.getAbilities().instabuild) { + player.addItem(new ItemStack(ModItems.TARGET_DEPLOYER.get())); + } } else { if (!(player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) { this.lookAt(EntityAnchorArgument.Anchor.EYES, new Vec3((player.getX()), this.getY(), (player.getZ()))); @@ -185,12 +175,12 @@ public class TargetEntity extends PathfinderMob implements GeoEntity, AnimatedEn } } - return result; + return InteractionResult.sidedSuccess(this.level().isClientSide()); } @Override - public void baseTick() { - super.baseTick(); + public void tick() { + super.tick(); if (this.entityData.get(DOWN_TIME) > 0) { this.entityData.set(DOWN_TIME, this.entityData.get(DOWN_TIME) - 1); } @@ -201,6 +191,11 @@ public class TargetEntity extends PathfinderMob implements GeoEntity, AnimatedEn return false; } + @Override + public HumanoidArm getMainArm() { + return HumanoidArm.RIGHT; + } + @Override protected void doPush(Entity entityIn) { } @@ -209,10 +204,6 @@ public class TargetEntity extends PathfinderMob implements GeoEntity, AnimatedEn protected void pushEntities() { } - @Override - protected void checkFallDamage(double y, boolean onGroundIn, BlockState state, BlockPos pos) { - } - @Override public void setNoGravity(boolean ignored) { super.setNoGravity(true);