From 76097c12e415d6516f595d4d9664b1b5389ec0bd Mon Sep 17 00:00:00 2001 From: gnembon Date: Sat, 21 Sep 2019 23:26:05 -0300 Subject: [PATCH] mocked entities don't need to be initialized. --- .../java/carpet/mixins/SpawnHelperMixin.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/java/carpet/mixins/SpawnHelperMixin.java b/src/main/java/carpet/mixins/SpawnHelperMixin.java index af352d57..a9d7ccb5 100644 --- a/src/main/java/carpet/mixins/SpawnHelperMixin.java +++ b/src/main/java/carpet/mixins/SpawnHelperMixin.java @@ -6,14 +6,19 @@ import carpet.utils.SpawnReporter; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityCategory; +import net.minecraft.entity.EntityData; import net.minecraft.entity.EntityType; +import net.minecraft.entity.SpawnType; import net.minecraft.entity.mob.MobEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.nbt.CompoundTag; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Box; import net.minecraft.util.math.MathHelper; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; +import net.minecraft.world.IWorld; +import net.minecraft.world.LocalDifficulty; import net.minecraft.world.SpawnHelper; import net.minecraft.world.World; import net.minecraft.world.chunk.WorldChunk; @@ -109,6 +114,17 @@ public class SpawnHelperMixin return false; } + @Redirect(method = "spawnEntitiesInChunk", at = @At( + value = "INVOKE", + target = "Lnet/minecraft/entity/mob/MobEntity;initialize(Lnet/minecraft/world/IWorld;Lnet/minecraft/world/LocalDifficulty;Lnet/minecraft/entity/SpawnType;Lnet/minecraft/entity/EntityData;Lnet/minecraft/nbt/CompoundTag;)Lnet/minecraft/entity/EntityData;" + )) + private static EntityData spawnEntity(MobEntity mobEntity, IWorld iWorld_1, LocalDifficulty localDifficulty_1, SpawnType spawnType_1, EntityData entityData_1, CompoundTag compoundTag_1) + { + if (!SpawnReporter.mock_spawns) + return mobEntity.initialize(iWorld_1, localDifficulty_1, spawnType_1, entityData_1, compoundTag_1); + return null; + } + @Redirect(method = "spawnEntitiesInChunk", at = @At( value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;squaredDistanceTo(DDD)D"