use of forestry.core.tiles.TilePowered in project ForestryMC by ForestryMC.
the class ContainerTile method detectAndSendChanges.
@Override
public void detectAndSendChanges() {
super.detectAndSendChanges();
if (tile instanceof IErrorLogicSource) {
IErrorLogicSource errorLogicSource = (IErrorLogicSource) tile;
ImmutableSet<IErrorState> errorStates = errorLogicSource.getErrorLogic().getErrorStates();
if (previousErrorStates == null || !errorStates.equals(previousErrorStates)) {
PacketErrorUpdate packet = new PacketErrorUpdate(tile, errorLogicSource);
sendPacketToListeners(packet);
}
previousErrorStates = errorStates;
}
if (tile instanceof IPowerHandler) {
EnergyManager energyManager = ((IPowerHandler) tile).getEnergyManager();
int energyManagerData = energyManager.getEnergyStored();
if (energyManagerData != previousEnergyManagerData) {
PacketGuiEnergy packet = new PacketGuiEnergy(windowId, energyManagerData);
sendPacketToListeners(packet);
previousEnergyManagerData = energyManagerData;
}
}
if (tile instanceof TilePowered) {
boolean guiNeedsUpdate = false;
TilePowered tilePowered = (TilePowered) tile;
int workCounter = tilePowered.getWorkCounter();
if (workCounter != previousWorkCounter) {
guiNeedsUpdate = true;
previousWorkCounter = workCounter;
}
int ticksPerWorkCycle = tilePowered.getTicksPerWorkCycle();
if (ticksPerWorkCycle != previousTicksPerWorkCycle) {
guiNeedsUpdate = true;
previousTicksPerWorkCycle = ticksPerWorkCycle;
}
if (guiNeedsUpdate) {
PacketGuiUpdate packet = new PacketGuiUpdate(tilePowered);
sendPacketToListeners(packet);
}
}
}
Aggregations