From a8da44fb8f69952dc62c929f7c8884d9dbb1e716 Mon Sep 17 00:00:00 2001 From: LexManos Date: Sat, 9 Mar 2013 10:07:41 -0800 Subject: [PATCH] Fix Multi-part entity children ID issue, mobs with custom spawning must deal with child ids themselves. --- .../cpw/mods/fml/client/FMLClientHandler.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/fml/client/cpw/mods/fml/client/FMLClientHandler.java b/fml/client/cpw/mods/fml/client/FMLClientHandler.java index 8796c2e43..1a9c80b64 100644 --- a/fml/client/cpw/mods/fml/client/FMLClientHandler.java +++ b/fml/client/cpw/mods/fml/client/FMLClientHandler.java @@ -341,6 +341,7 @@ public class FMLClientHandler implements IFMLSidedHandler else { entity = (Entity)(cls.getConstructor(World.class).newInstance(wc)); + int offset = packet.entityId - entity.field_70157_k; entity.field_70157_k = packet.entityId; entity.func_70012_b(packet.scaledX, packet.scaledY, packet.scaledZ, packet.scaledYaw, packet.scaledPitch); if (entity instanceof EntityLiving) @@ -348,6 +349,14 @@ public class FMLClientHandler implements IFMLSidedHandler ((EntityLiving)entity).field_70759_as = packet.scaledHeadYaw; } + Entity parts[] = entity.func_70021_al(); + if (parts != null) + { + for (int j = 0; j < parts.length; j++) + { + parts[j].field_70157_k += offset; + } + } } entity.field_70118_ct = packet.rawX; @@ -360,18 +369,6 @@ public class FMLClientHandler implements IFMLSidedHandler ((IThrowableEntity)entity).setThrower(thrower); } - - Entity parts[] = entity.func_70021_al(); - if (parts != null) - { - int i = packet.entityId - entity.field_70157_k; - for (int j = 0; j < parts.length; j++) - { - parts[j].field_70157_k += i; - } - } - - if (packet.metadata != null) { entity.func_70096_w().func_75687_a((List)packet.metadata);