use of forestry.api.core.IErrorState 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);
}
}
}
use of forestry.api.core.IErrorState in project ForestryMC by ForestryMC.
the class LedgerManager method drawLedgers.
public void drawLedgers() {
int yPos = 8;
for (Ledger ledger : ledgers) {
ledger.update();
if (!ledger.isVisible()) {
continue;
}
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
ledger.setPosition(gui.getSizeX(), yPos);
ledger.draw();
yPos += ledger.getHeight();
}
List<IErrorState> errorStates = new ArrayList<>(errorSource.getErrorStates());
yPos = 8;
int index = 0;
for (ErrorLedger errorLedger : errorLedgers) {
if (index >= errorStates.size()) {
errorLedger.setState(null);
continue;
}
IErrorState errorState = errorStates.get(index++);
errorLedger.setState(errorState);
errorLedger.update();
if (!errorLedger.isVisible()) {
continue;
}
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
errorLedger.draw(-errorLedger.getWidth(), yPos);
yPos += errorLedger.getHeight();
}
GlStateManager.color(1, 1, 1, 1);
}
Aggregations