diff --git a/src/main/java/storagecraft/block/BlockDetector.java b/src/main/java/storagecraft/block/BlockDetector.java index c70180aa0..313977151 100755 --- a/src/main/java/storagecraft/block/BlockDetector.java +++ b/src/main/java/storagecraft/block/BlockDetector.java @@ -1,23 +1,46 @@ package storagecraft.block; +import net.minecraft.block.properties.IProperty; +import net.minecraft.block.properties.PropertyBool; +import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; +import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import storagecraft.StorageCraft; import storagecraft.StorageCraftGUI; import storagecraft.tile.TileDetector; -// @TODO: This texture behaves differently public class BlockDetector extends BlockMachine { + public static final PropertyBool POWERED = PropertyBool.create("powered"); + public BlockDetector() { super("detector"); } + @Override + protected BlockState createBlockState() + { + return new BlockState(this, new IProperty[] + { + DIRECTION, + CONNECTED, + POWERED + }); + } + + @Override + public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos) + { + return super.getActualState(state, world, pos) + .withProperty(POWERED, ((TileDetector) world.getTileEntity(pos)).isPowered()); + } + @Override public TileEntity createTileEntity(World world, IBlockState state) { diff --git a/src/main/java/storagecraft/block/BlockWirelessTransmitter.java b/src/main/java/storagecraft/block/BlockWirelessTransmitter.java index a8275841e..5e3cef71a 100755 --- a/src/main/java/storagecraft/block/BlockWirelessTransmitter.java +++ b/src/main/java/storagecraft/block/BlockWirelessTransmitter.java @@ -14,7 +14,6 @@ import storagecraft.StorageCraft; import storagecraft.StorageCraftGUI; import storagecraft.tile.TileWirelessTransmitter; -// @TODO: This texture behaves differently public class BlockWirelessTransmitter extends BlockMachine { public static final PropertyBool WORKING = PropertyBool.create("working"); diff --git a/src/main/java/storagecraft/proxy/ClientProxy.java b/src/main/java/storagecraft/proxy/ClientProxy.java index fdc39874d..fc3478d35 100755 --- a/src/main/java/storagecraft/proxy/ClientProxy.java +++ b/src/main/java/storagecraft/proxy/ClientProxy.java @@ -114,5 +114,6 @@ public class ClientProxy extends CommonProxy mesher.register(Item.getItemFromBlock(StorageCraftBlocks.DESTRUCTOR), 0, new ModelResourceLocation("storagecraft:destructor", "inventory")); mesher.register(Item.getItemFromBlock(StorageCraftBlocks.SOLDERER), 0, new ModelResourceLocation("storagecraft:solderer", "inventory")); mesher.register(Item.getItemFromBlock(StorageCraftBlocks.WIRELESS_TRANSMITTER), 0, new ModelResourceLocation("storagecraft:wireless_transmitter", "inventory")); + mesher.register(Item.getItemFromBlock(StorageCraftBlocks.DETECTOR), 0, new ModelResourceLocation("storagecraft:detector", "inventory")); } } diff --git a/src/main/java/storagecraft/tile/TileDetector.java b/src/main/java/storagecraft/tile/TileDetector.java index 22371801d..823297994 100755 --- a/src/main/java/storagecraft/tile/TileDetector.java +++ b/src/main/java/storagecraft/tile/TileDetector.java @@ -29,7 +29,7 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven private int mode = MODE_EQUAL; private int amount = 0; - private boolean providesPower = false; + private boolean powered = false; public TileDetector() { @@ -49,7 +49,7 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven { ItemStack slot = inventory.getStackInSlot(0); - boolean lastProvidesPower = providesPower; + boolean lastPowered = powered; if (slot != null) { @@ -64,13 +64,13 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven switch (mode) { case MODE_UNDER: - providesPower = item.getQuantity() < amount; + powered = item.getQuantity() < amount; break; case MODE_EQUAL: - providesPower = item.getQuantity() == amount; + powered = item.getQuantity() == amount; break; case MODE_ABOVE: - providesPower = item.getQuantity() > amount; + powered = item.getQuantity() > amount; break; } @@ -82,24 +82,24 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven { if (mode == MODE_UNDER && amount != 0) { - providesPower = true; + powered = true; } else if (mode == MODE_EQUAL && amount == 0) { - providesPower = true; + powered = true; } else { - providesPower = false; + powered = false; } } } else { - providesPower = false; + powered = false; } - if (providesPower != lastProvidesPower) + if (powered != lastPowered) { worldObj.markBlockForUpdate(pos); worldObj.notifyBlockOfStateChange(pos, StorageCraftBlocks.DETECTOR); @@ -107,9 +107,9 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven } } - public boolean providesPower() + public boolean isPowered() { - return providesPower; + return powered; } @Override @@ -191,7 +191,7 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven compare = buf.readInt(); mode = buf.readInt(); amount = buf.readInt(); - providesPower = buf.readBoolean(); + powered = buf.readBoolean(); } @Override @@ -202,7 +202,7 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven buf.writeInt(compare); buf.writeInt(mode); buf.writeInt(amount); - buf.writeBoolean(providesPower); + buf.writeBoolean(powered); } @Override diff --git a/src/main/resources/assets/storagecraft/blockstates/detector.json b/src/main/resources/assets/storagecraft/blockstates/detector.json new file mode 100755 index 000000000..70abef772 --- /dev/null +++ b/src/main/resources/assets/storagecraft/blockstates/detector.json @@ -0,0 +1,55 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "orientable", + "textures": { + "side": "storagecraft:blocks/detector_unpowered", + "top": "storagecraft:blocks/detector_unpowered", + "front": "storagecraft:blocks/detector_unpowered" + } + }, + "variants": { + "inventory": [ + { + "y": 0 + } + ], + "connected": { + "true": { + }, + "false": { + } + }, + "direction": { + "north": { + "y": 0 + }, + "east": { + "y": 90 + }, + "south": { + "y": 180 + }, + "west": { + "y": 270 + }, + "up": { + "x": 270 + }, + "down": { + "x": 90 + } + }, + "powered": { + "true": { + "textures": { + "side": "storagecraft:blocks/detector_powered", + "top": "storagecraft:blocks/detector_powered", + "front": "storagecraft:blocks/detector_powered" + } + }, + "false": { + } + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/storagecraft/textures/blocks/detectorPowered.png b/src/main/resources/assets/storagecraft/textures/blocks/detector_powered.png similarity index 100% rename from src/main/resources/assets/storagecraft/textures/blocks/detectorPowered.png rename to src/main/resources/assets/storagecraft/textures/blocks/detector_powered.png diff --git a/src/main/resources/assets/storagecraft/textures/blocks/detectorUnpowered.png b/src/main/resources/assets/storagecraft/textures/blocks/detector_unpowered.png similarity index 100% rename from src/main/resources/assets/storagecraft/textures/blocks/detectorUnpowered.png rename to src/main/resources/assets/storagecraft/textures/blocks/detector_unpowered.png