Fix Mimic render ignoring meta (#965)
Also re-implements Waila handler correctly
This commit is contained in:
parent
3956c9f7dd
commit
1f31268669
|
@ -168,7 +168,7 @@ public class BlockMimic extends BlockEnumContainer<EnumMimic> implements IVarian
|
|||
if (stack != null && stack.getItem() instanceof ItemBlock)
|
||||
{
|
||||
Block block = ((ItemBlock) stack.getItem()).getBlock();
|
||||
IBlockState mimicState = block.getStateFromMeta(mimic.metaOfReplacedBlock);
|
||||
IBlockState mimicState = block.getStateFromMeta(stack.getItemDamage());
|
||||
if (block != this)
|
||||
{
|
||||
if (block.getRenderType(mimicState) == EnumBlockRenderType.ENTITYBLOCK_ANIMATED)
|
||||
|
|
|
@ -28,6 +28,7 @@ public class WailaCallbackHandler
|
|||
registrar.registerBodyProvider(new DataProviderAlchemyArray(), BlockAlchemyArray.class);
|
||||
registrar.registerStackProvider(new DataProviderAlchemyArray(), BlockAlchemyArray.class);
|
||||
registrar.registerStackProvider(new DataProviderMimic(), BlockMimic.class);
|
||||
registrar.registerNBTProvider(new DataProviderMimic(), BlockMimic.class);
|
||||
registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumPillarCap.class);
|
||||
registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumPillar.class);
|
||||
registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumStairs.class);
|
||||
|
|
|
@ -19,8 +19,10 @@ public class DataProviderMimic implements IWailaDataProvider
|
|||
@Override
|
||||
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config)
|
||||
{
|
||||
TileMimic mimic = (TileMimic) accessor.getTileEntity();
|
||||
return mimic != null && mimic.getStackInSlot(0) != null ? mimic.getStackInSlot(0) : accessor.getStack();
|
||||
if (accessor.getNBTData().getBoolean("hasItem"))
|
||||
return ItemStack.loadItemStackFromNBT(accessor.getNBTData());
|
||||
|
||||
return new ItemStack(accessor.getBlock(), 1, accessor.getMetadata());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -44,6 +46,11 @@ public class DataProviderMimic implements IWailaDataProvider
|
|||
@Override
|
||||
public NBTTagCompound getNBTData(EntityPlayerMP player, TileEntity te, NBTTagCompound tag, World world, BlockPos pos)
|
||||
{
|
||||
return null;
|
||||
if (te instanceof TileMimic && ((TileMimic) te).getStackInSlot(0) != null)
|
||||
{
|
||||
tag.setBoolean("hasItem", true);
|
||||
((TileMimic) te).getStackInSlot(0).writeToNBT(tag);
|
||||
}
|
||||
return tag;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue