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)
|
if (stack != null && stack.getItem() instanceof ItemBlock)
|
||||||
{
|
{
|
||||||
Block block = ((ItemBlock) stack.getItem()).getBlock();
|
Block block = ((ItemBlock) stack.getItem()).getBlock();
|
||||||
IBlockState mimicState = block.getStateFromMeta(mimic.metaOfReplacedBlock);
|
IBlockState mimicState = block.getStateFromMeta(stack.getItemDamage());
|
||||||
if (block != this)
|
if (block != this)
|
||||||
{
|
{
|
||||||
if (block.getRenderType(mimicState) == EnumBlockRenderType.ENTITYBLOCK_ANIMATED)
|
if (block.getRenderType(mimicState) == EnumBlockRenderType.ENTITYBLOCK_ANIMATED)
|
||||||
|
|
|
@ -28,6 +28,7 @@ public class WailaCallbackHandler
|
||||||
registrar.registerBodyProvider(new DataProviderAlchemyArray(), BlockAlchemyArray.class);
|
registrar.registerBodyProvider(new DataProviderAlchemyArray(), BlockAlchemyArray.class);
|
||||||
registrar.registerStackProvider(new DataProviderAlchemyArray(), BlockAlchemyArray.class);
|
registrar.registerStackProvider(new DataProviderAlchemyArray(), BlockAlchemyArray.class);
|
||||||
registrar.registerStackProvider(new DataProviderMimic(), BlockMimic.class);
|
registrar.registerStackProvider(new DataProviderMimic(), BlockMimic.class);
|
||||||
|
registrar.registerNBTProvider(new DataProviderMimic(), BlockMimic.class);
|
||||||
registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumPillarCap.class);
|
registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumPillarCap.class);
|
||||||
registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumPillar.class);
|
registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumPillar.class);
|
||||||
registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumStairs.class);
|
registrar.registerStackProvider(DataProviderPillar.INSTANCE, BlockEnumStairs.class);
|
||||||
|
|
|
@ -19,8 +19,10 @@ public class DataProviderMimic implements IWailaDataProvider
|
||||||
@Override
|
@Override
|
||||||
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config)
|
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config)
|
||||||
{
|
{
|
||||||
TileMimic mimic = (TileMimic) accessor.getTileEntity();
|
if (accessor.getNBTData().getBoolean("hasItem"))
|
||||||
return mimic != null && mimic.getStackInSlot(0) != null ? mimic.getStackInSlot(0) : accessor.getStack();
|
return ItemStack.loadItemStackFromNBT(accessor.getNBTData());
|
||||||
|
|
||||||
|
return new ItemStack(accessor.getBlock(), 1, accessor.getMetadata());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -44,6 +46,11 @@ public class DataProviderMimic implements IWailaDataProvider
|
||||||
@Override
|
@Override
|
||||||
public NBTTagCompound getNBTData(EntityPlayerMP player, TileEntity te, NBTTagCompound tag, World world, BlockPos pos)
|
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