From 6ed8c45e4b2db4b1482f875f815fc3d49c3f91e5 Mon Sep 17 00:00:00 2001 From: David Vierra Date: Wed, 9 Jan 2013 01:18:37 -1000 Subject: [PATCH] Fixed: TileEntity.copyWithOffset adjusts mob position data for mob spawner blocks --- entity.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/entity.py b/entity.py index 2c8ef0a..453b07f 100644 --- a/entity.py +++ b/entity.py @@ -96,6 +96,22 @@ class TileEntity(object): eTag['x'] = nbt.TAG_Int(tileEntity['x'].value + copyOffset[0]) eTag['y'] = nbt.TAG_Int(tileEntity['y'].value + copyOffset[1]) eTag['z'] = nbt.TAG_Int(tileEntity['z'].value + copyOffset[2]) + if eTag['id'].value == 'MobSpawner': + mobs = [] + mob = eTag.get('SpawnData') + if mob: + mobs.append(mob) + potentials = eTag.get('SpawnPotentials') + if potentials: + mobs.extend(potentials) + + for mob in mobs: + if "Pos" in mob: + pos = Entity.pos(mob) + pos = [p + o for p, o in zip(pos, copyOffset)] + + Entity.setpos(mob, pos) + if eTag['id'].value == "Control": command = eTag['Command'].value