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