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;
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)
{

View File

@@ -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");

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.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"));
}
}

View File

@@ -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

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