From 26f63be31f20e979032bd4aa5b2cc23f5351ceaa Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Mon, 6 May 2024 16:16:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AD=90=E5=BC=B9=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/net/mcreator/target/entity/ClaymoreEntity.java | 9 +++++---- .../net/mcreator/target/entity/ProjectileEntity.java | 6 ++++++ .../mcreator/target/procedures/ArrowdamageProcedure.java | 1 + 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/mcreator/target/entity/ClaymoreEntity.java b/src/main/java/net/mcreator/target/entity/ClaymoreEntity.java index d8d7f2717..7a563c2fd 100644 --- a/src/main/java/net/mcreator/target/entity/ClaymoreEntity.java +++ b/src/main/java/net/mcreator/target/entity/ClaymoreEntity.java @@ -35,8 +35,7 @@ import software.bernie.geckolib.core.animation.RawAnimation; import software.bernie.geckolib.core.object.PlayState; import software.bernie.geckolib.util.GeckoLibUtil; -import java.util.List; - +// TODO 重写阔剑地雷 public class ClaymoreEntity extends TamableAnimal implements GeoEntity { public static final EntityDataAccessor SHOOT = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.BOOLEAN); public static final EntityDataAccessor ANIMATION = SynchedEntityData.defineId(ClaymoreEntity.class, EntityDataSerializers.STRING); @@ -87,7 +86,7 @@ public class ClaymoreEntity extends TamableAnimal implements GeoEntity { @Override public MobType getMobType() { - return MobType.UNDEFINED; + return super.getMobType(); } @Override @@ -200,7 +199,9 @@ public class ClaymoreEntity extends TamableAnimal implements GeoEntity { @Override public AgeableMob getBreedOffspring(ServerLevel serverWorld, AgeableMob ageable) { ClaymoreEntity retval = TargetModEntities.CLAYMORE.get().create(serverWorld); - retval.finalizeSpawn(serverWorld, serverWorld.getCurrentDifficultyAt(retval.blockPosition()), MobSpawnType.BREEDING, null, null); + if (retval != null) { + retval.finalizeSpawn(serverWorld, serverWorld.getCurrentDifficultyAt(retval.blockPosition()), MobSpawnType.BREEDING, null, null); + } return retval; } diff --git a/src/main/java/net/mcreator/target/entity/ProjectileEntity.java b/src/main/java/net/mcreator/target/entity/ProjectileEntity.java index e4f9a3cee..da14e7267 100644 --- a/src/main/java/net/mcreator/target/entity/ProjectileEntity.java +++ b/src/main/java/net/mcreator/target/entity/ProjectileEntity.java @@ -176,6 +176,8 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa this.updateHeading(); this.onProjectileTick(); + Vec3 vec = this.getDeltaMovement(); + if (!this.level().isClientSide()) { Vec3 startVec = this.position(); Vec3 endVec = startVec.add(this.getDeltaMovement()); @@ -199,6 +201,10 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa } else { this.onHit(result); } + + this.setPos(this.getX() + vec.x, this.getY() + vec.y, this.getZ() + vec.z); + } else { + this.setPosRaw(this.getX() + vec.x, this.getY() + vec.y, this.getZ() + vec.z); } if (this.tickCount > 200) { diff --git a/src/main/java/net/mcreator/target/procedures/ArrowdamageProcedure.java b/src/main/java/net/mcreator/target/procedures/ArrowdamageProcedure.java index dba09033c..5e41624d4 100644 --- a/src/main/java/net/mcreator/target/procedures/ArrowdamageProcedure.java +++ b/src/main/java/net/mcreator/target/procedures/ArrowdamageProcedure.java @@ -15,6 +15,7 @@ import net.minecraftforge.fml.common.Mod; import javax.annotation.Nullable; +// TODO 把伤害逻辑移植到箭类中 @Mod.EventBusSubscriber public class ArrowdamageProcedure { @SubscribeEvent