Short of a light update bug, I think the Calcinator is done!
This commit is contained in:
parent
07bd30b254
commit
cea970194e
3 changed files with 76 additions and 14 deletions
|
@ -54,7 +54,14 @@ public class BlockCalcinator extends BlockEE implements ITileEntityProvider
|
||||||
@Override
|
@Override
|
||||||
public int getLightValue(IBlockAccess world, int x, int y, int z)
|
public int getLightValue(IBlockAccess world, int x, int y, int z)
|
||||||
{
|
{
|
||||||
// TODO Vary light levels depending on whether or not we are calcinating something
|
if (world.getBlockTileEntity(x, y, z) instanceof TileCalcinator)
|
||||||
|
{
|
||||||
|
if (((TileCalcinator) world.getBlockTileEntity(x, y, z)).getState() == 1)
|
||||||
|
{
|
||||||
|
return 15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return super.getLightValue(world, x, y, z);
|
return super.getLightValue(world, x, y, z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,7 @@ public class TileCalcinator extends TileEE implements IInventory
|
||||||
public int fuelBurnTime; // The fuel value for the currently burning fuel
|
public int fuelBurnTime; // The fuel value for the currently burning fuel
|
||||||
public int itemCookTime; // How long the current item has been "cooking"
|
public int itemCookTime; // How long the current item has been "cooking"
|
||||||
|
|
||||||
public int leftStackSize, leftStackColour;
|
public int leftStackSize, leftStackColour, rightStackSize, rightStackColour;
|
||||||
public int rightStackSize, rightStackColour;
|
|
||||||
|
|
||||||
public TileCalcinator()
|
public TileCalcinator()
|
||||||
{
|
{
|
||||||
|
@ -129,6 +128,26 @@ public class TileCalcinator extends TileEE implements IInventory
|
||||||
this.state = (byte) eventData;
|
this.state = (byte) eventData;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
else if (eventId == 2)
|
||||||
|
{
|
||||||
|
this.leftStackSize = eventData;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (eventId == 3)
|
||||||
|
{
|
||||||
|
this.leftStackColour = eventData;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (eventId == 4)
|
||||||
|
{
|
||||||
|
this.rightStackSize = eventData;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else if (eventId == 5)
|
||||||
|
{
|
||||||
|
this.rightStackColour = eventData;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return super.receiveClientEvent(eventId, eventData);
|
return super.receiveClientEvent(eventId, eventData);
|
||||||
|
@ -164,6 +183,10 @@ public class TileCalcinator extends TileEE implements IInventory
|
||||||
inventory[slotIndex] = ItemStack.loadItemStackFromNBT(tagCompound);
|
inventory[slotIndex] = ItemStack.loadItemStackFromNBT(tagCompound);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
deviceCookTime = nbtTagCompound.getInteger("deviceCookTime");
|
||||||
|
fuelBurnTime = nbtTagCompound.getInteger("fuelBurnTime");
|
||||||
|
itemCookTime = nbtTagCompound.getInteger("itemCookTime");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -184,6 +207,9 @@ public class TileCalcinator extends TileEE implements IInventory
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
nbtTagCompound.setTag("Items", tagList);
|
nbtTagCompound.setTag("Items", tagList);
|
||||||
|
nbtTagCompound.setInteger("deviceCookTime", deviceCookTime);
|
||||||
|
nbtTagCompound.setInteger("fuelBurnTime", fuelBurnTime);
|
||||||
|
nbtTagCompound.setInteger("itemCookTime", itemCookTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -199,6 +225,7 @@ public class TileCalcinator extends TileEE implements IInventory
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
// TODO BUG: When Calcinator begins burning at night, client doesn't immediately reflect that the light level has changed
|
||||||
public void updateEntity()
|
public void updateEntity()
|
||||||
{
|
{
|
||||||
boolean isBurning = this.deviceCookTime > 0;
|
boolean isBurning = this.deviceCookTime > 0;
|
||||||
|
@ -262,7 +289,11 @@ public class TileCalcinator extends TileEE implements IInventory
|
||||||
this.onInventoryChanged();
|
this.onInventoryChanged();
|
||||||
this.state = this.deviceCookTime > 0 ? (byte) 1 : (byte) 0;
|
this.state = this.deviceCookTime > 0 ? (byte) 1 : (byte) 0;
|
||||||
this.worldObj.addBlockEvent(this.xCoord, this.yCoord, this.zCoord, this.getBlockType().blockID, 1, this.state);
|
this.worldObj.addBlockEvent(this.xCoord, this.yCoord, this.zCoord, this.getBlockType().blockID, 1, this.state);
|
||||||
// TODO Send stack sizes and colours on update
|
this.worldObj.addBlockEvent(this.xCoord, this.yCoord, this.zCoord, this.getBlockType().blockID, 2, getLeftStackSize());
|
||||||
|
this.worldObj.addBlockEvent(this.xCoord, this.yCoord, this.zCoord, this.getBlockType().blockID, 3, getLeftStackColour());
|
||||||
|
this.worldObj.addBlockEvent(this.xCoord, this.yCoord, this.zCoord, this.getBlockType().blockID, 4, getRightStackSize());
|
||||||
|
this.worldObj.addBlockEvent(this.xCoord, this.yCoord, this.zCoord, this.getBlockType().blockID, 5, getRightStackColour());
|
||||||
|
this.worldObj.notifyBlockChange(this.xCoord, this.yCoord, this.zCoord, this.getBlockType().blockID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -372,22 +403,46 @@ public class TileCalcinator extends TileEE implements IInventory
|
||||||
@Override
|
@Override
|
||||||
public Packet getDescriptionPacket()
|
public Packet getDescriptionPacket()
|
||||||
{
|
{
|
||||||
int leftStackSize = 0;
|
return PacketTypeHandler.populatePacket(new PacketTileCalcinator(xCoord, yCoord, zCoord, orientation, state, customName, getLeftStackSize(), getLeftStackColour(), getRightStackSize(), getRightStackColour()));
|
||||||
int leftStackColour = Integer.parseInt(Colours.PURE_WHITE, 16);
|
}
|
||||||
|
|
||||||
|
private int getLeftStackSize()
|
||||||
|
{
|
||||||
if (this.inventory[OUTPUT_LEFT_INVENTORY_INDEX] != null)
|
if (this.inventory[OUTPUT_LEFT_INVENTORY_INDEX] != null)
|
||||||
{
|
{
|
||||||
leftStackSize = this.inventory[OUTPUT_LEFT_INVENTORY_INDEX].stackSize;
|
return leftStackSize = this.inventory[OUTPUT_LEFT_INVENTORY_INDEX].stackSize;
|
||||||
leftStackColour = this.inventory[OUTPUT_LEFT_INVENTORY_INDEX].getItem().getColorFromItemStack(this.inventory[OUTPUT_LEFT_INVENTORY_INDEX], 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int rightStackSize = 0;
|
return 0;
|
||||||
int rightStackColour = Integer.parseInt(Colours.PURE_WHITE, 16);
|
}
|
||||||
|
|
||||||
|
private int getLeftStackColour()
|
||||||
|
{
|
||||||
|
if (this.inventory[OUTPUT_LEFT_INVENTORY_INDEX] != null)
|
||||||
|
{
|
||||||
|
return this.inventory[OUTPUT_LEFT_INVENTORY_INDEX].getItem().getColorFromItemStack(this.inventory[OUTPUT_LEFT_INVENTORY_INDEX], 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Integer.parseInt(Colours.PURE_WHITE, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getRightStackSize()
|
||||||
|
{
|
||||||
if (this.inventory[OUTPUT_RIGHT_INVENTORY_INDEX] != null)
|
if (this.inventory[OUTPUT_RIGHT_INVENTORY_INDEX] != null)
|
||||||
{
|
{
|
||||||
rightStackSize = this.inventory[OUTPUT_RIGHT_INVENTORY_INDEX].stackSize;
|
return leftStackSize = this.inventory[OUTPUT_RIGHT_INVENTORY_INDEX].stackSize;
|
||||||
rightStackColour = this.inventory[OUTPUT_RIGHT_INVENTORY_INDEX].getItem().getColorFromItemStack(this.inventory[OUTPUT_RIGHT_INVENTORY_INDEX], 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return PacketTypeHandler.populatePacket(new PacketTileCalcinator(xCoord, yCoord, zCoord, orientation, state, customName, leftStackSize, leftStackColour, rightStackSize, rightStackColour));
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getRightStackColour()
|
||||||
|
{
|
||||||
|
if (this.inventory[OUTPUT_RIGHT_INVENTORY_INDEX] != null)
|
||||||
|
{
|
||||||
|
return this.inventory[OUTPUT_RIGHT_INVENTORY_INDEX].getItem().getColorFromItemStack(this.inventory[OUTPUT_RIGHT_INVENTORY_INDEX], 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Integer.parseInt(Colours.PURE_WHITE, 16);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ tile.ee3:alchemicalFuelBlock.alchemicalCoal.name=Alchemical Coal
|
||||||
tile.ee3:alchemicalFuelBlock.mobiusFuel.name=Mobius Fuel
|
tile.ee3:alchemicalFuelBlock.mobiusFuel.name=Mobius Fuel
|
||||||
tile.ee3:alchemicalFuelBlock.aeternalisFuel.name=Aeternalis Fuel
|
tile.ee3:alchemicalFuelBlock.aeternalisFuel.name=Aeternalis Fuel
|
||||||
tile.ee3:aludel.name=Aludel [WIP]
|
tile.ee3:aludel.name=Aludel [WIP]
|
||||||
tile.ee3:calcinator.name=Calcinator [WIP]
|
tile.ee3:calcinator.name=Calcinator
|
||||||
tile.ee3:chalk.name=Chalk
|
tile.ee3:chalk.name=Chalk
|
||||||
tile.ee3:glassBell.name=Glass Bell [WIP]
|
tile.ee3:glassBell.name=Glass Bell [WIP]
|
||||||
tile.ee3:researchStation.name=Research Station [WIP]
|
tile.ee3:researchStation.name=Research Station [WIP]
|
||||||
|
|
Loading…
Reference in a new issue