detector texture

This commit is contained in:
Raoul Van den Berge
2015-12-29 22:52:07 +01:00
parent 8d93592217
commit 60829d6868
7 changed files with 94 additions and 16 deletions

View File

@@ -1,23 +1,46 @@
package storagecraft.block; 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.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.BlockPos; import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import storagecraft.StorageCraft; import storagecraft.StorageCraft;
import storagecraft.StorageCraftGUI; import storagecraft.StorageCraftGUI;
import storagecraft.tile.TileDetector; import storagecraft.tile.TileDetector;
// @TODO: This texture behaves differently
public class BlockDetector extends BlockMachine public class BlockDetector extends BlockMachine
{ {
public static final PropertyBool POWERED = PropertyBool.create("powered");
public BlockDetector() public BlockDetector()
{ {
super("detector"); 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 @Override
public TileEntity createTileEntity(World world, IBlockState state) public TileEntity createTileEntity(World world, IBlockState state)
{ {

View File

@@ -14,7 +14,6 @@ import storagecraft.StorageCraft;
import storagecraft.StorageCraftGUI; import storagecraft.StorageCraftGUI;
import storagecraft.tile.TileWirelessTransmitter; import storagecraft.tile.TileWirelessTransmitter;
// @TODO: This texture behaves differently
public class BlockWirelessTransmitter extends BlockMachine public class BlockWirelessTransmitter extends BlockMachine
{ {
public static final PropertyBool WORKING = PropertyBool.create("working"); public static final PropertyBool WORKING = PropertyBool.create("working");

View File

@@ -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.DESTRUCTOR), 0, new ModelResourceLocation("storagecraft:destructor", "inventory"));
mesher.register(Item.getItemFromBlock(StorageCraftBlocks.SOLDERER), 0, new ModelResourceLocation("storagecraft:solderer", "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.WIRELESS_TRANSMITTER), 0, new ModelResourceLocation("storagecraft:wireless_transmitter", "inventory"));
mesher.register(Item.getItemFromBlock(StorageCraftBlocks.DETECTOR), 0, new ModelResourceLocation("storagecraft:detector", "inventory"));
} }
} }

View File

@@ -29,7 +29,7 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven
private int mode = MODE_EQUAL; private int mode = MODE_EQUAL;
private int amount = 0; private int amount = 0;
private boolean providesPower = false; private boolean powered = false;
public TileDetector() public TileDetector()
{ {
@@ -49,7 +49,7 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven
{ {
ItemStack slot = inventory.getStackInSlot(0); ItemStack slot = inventory.getStackInSlot(0);
boolean lastProvidesPower = providesPower; boolean lastPowered = powered;
if (slot != null) if (slot != null)
{ {
@@ -64,13 +64,13 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven
switch (mode) switch (mode)
{ {
case MODE_UNDER: case MODE_UNDER:
providesPower = item.getQuantity() < amount; powered = item.getQuantity() < amount;
break; break;
case MODE_EQUAL: case MODE_EQUAL:
providesPower = item.getQuantity() == amount; powered = item.getQuantity() == amount;
break; break;
case MODE_ABOVE: case MODE_ABOVE:
providesPower = item.getQuantity() > amount; powered = item.getQuantity() > amount;
break; break;
} }
@@ -82,24 +82,24 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven
{ {
if (mode == MODE_UNDER && amount != 0) if (mode == MODE_UNDER && amount != 0)
{ {
providesPower = true; powered = true;
} }
else if (mode == MODE_EQUAL && amount == 0) else if (mode == MODE_EQUAL && amount == 0)
{ {
providesPower = true; powered = true;
} }
else else
{ {
providesPower = false; powered = false;
} }
} }
} }
else else
{ {
providesPower = false; powered = false;
} }
if (providesPower != lastProvidesPower) if (powered != lastPowered)
{ {
worldObj.markBlockForUpdate(pos); worldObj.markBlockForUpdate(pos);
worldObj.notifyBlockOfStateChange(pos, StorageCraftBlocks.DETECTOR); 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 @Override
@@ -191,7 +191,7 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven
compare = buf.readInt(); compare = buf.readInt();
mode = buf.readInt(); mode = buf.readInt();
amount = buf.readInt(); amount = buf.readInt();
providesPower = buf.readBoolean(); powered = buf.readBoolean();
} }
@Override @Override
@@ -202,7 +202,7 @@ public class TileDetector extends TileMachine implements IInventory, ISidedInven
buf.writeInt(compare); buf.writeInt(compare);
buf.writeInt(mode); buf.writeInt(mode);
buf.writeInt(amount); buf.writeInt(amount);
buf.writeBoolean(providesPower); buf.writeBoolean(powered);
} }
@Override @Override

View File

@@ -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": {
}
}
}
}