From b38393e29e7928dbd87d599af2fcb9776d5e74ef Mon Sep 17 00:00:00 2001 From: zangamj Date: Tue, 16 Aug 2016 17:01:05 -0400 Subject: [PATCH] Fixed tile entity duplicates --- .../com/zixiken/dimdoors/blocks/BaseDimDoor.java | 13 +++++++++---- .../dimdoors/tileentities/DDTileEntityBase.java | 10 +++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zixiken/dimdoors/blocks/BaseDimDoor.java b/src/main/java/com/zixiken/dimdoors/blocks/BaseDimDoor.java index d0b33843..6fd011e3 100644 --- a/src/main/java/com/zixiken/dimdoors/blocks/BaseDimDoor.java +++ b/src/main/java/com/zixiken/dimdoors/blocks/BaseDimDoor.java @@ -64,11 +64,16 @@ public abstract class BaseDimDoor extends BlockDoor implements IDimDoor, ITileEn } } - @Override + @Override + public boolean hasTileEntity(IBlockState state) {return state.getValue(BlockDoor.HALF) == EnumDoorHalf.LOWER;} + + @Override public void onBlockAdded(World world, BlockPos pos, IBlockState state) { - placeLink(world, pos); - world.setTileEntity(pos, createNewTileEntity(world, 0)); - updateAttachedTile(world, pos); + if(state.getValue(BlockDoor.HALF) == EnumDoorHalf.UPPER) placeLink(world, pos); + else { + world.setTileEntity(pos, createNewTileEntity(world, 0)); + updateAttachedTile(world, pos); + } } //Called to update the render information on the tile entity. Could probably implement a data watcher, diff --git a/src/main/java/com/zixiken/dimdoors/tileentities/DDTileEntityBase.java b/src/main/java/com/zixiken/dimdoors/tileentities/DDTileEntityBase.java index c70e5a1a..ca9562f1 100644 --- a/src/main/java/com/zixiken/dimdoors/tileentities/DDTileEntityBase.java +++ b/src/main/java/com/zixiken/dimdoors/tileentities/DDTileEntityBase.java @@ -1,6 +1,10 @@ package com.zixiken.dimdoors.tileentities; import java.util.Random; + +import net.minecraft.block.state.IBlockState; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.BlockPos; +import net.minecraft.world.World; public abstract class DDTileEntityBase extends TileEntity { @@ -9,5 +13,9 @@ public abstract class DDTileEntityBase extends TileEntity * @return an array of floats representing RGBA color where 1.0 = 255. */ public abstract float[] getRenderColor(Random rand); - + + @Override + public boolean shouldRefresh(World world, BlockPos pos, IBlockState oldState, IBlockState newSate) { + return oldState.getBlock() != newSate.getBlock(); + } }