use of ic2.api.tile.IEnergyStorage in project TUMAT by canitzp.
the class ElectricalUnits method renderTileEntity.
@Override
public TooltipComponent renderTileEntity(WorldClient world, EntityPlayerSP player, TileEntity tileEntity, EnumFacing side, TooltipComponent component, boolean shouldCalculate) {
if (ConfigBoolean.SHOW_EU.value && tileEntity instanceof IEnergyStorage) {
InfoUtil.syncTileEntity(tileEntity, shouldCalculate, "components");
int current = ((IEnergyStorage) tileEntity).getStored();
int capacity = ((IEnergyStorage) tileEntity).getCapacity();
if (capacity > 0) {
component.add(new EnergyComponent(current, capacity, "EU", TextFormatting.YELLOW), TooltipComponent.Priority.HIGH);
}
}
return component;
}
use of ic2.api.tile.IEnergyStorage in project Flux-Networks by SonarSonic.
the class EnergyUnitsHandler method addEnergy.
@Override
public long addEnergy(long add, TileEntity tile, EnumFacing dir, ActionType actionType) {
if (tile instanceof IEnergyStorage) {
IEnergyStorage sink = (IEnergyStorage) tile;
int before = sink.getStored();
if (!actionType.shouldSimulate()) {
return sink.addEnergy((int) Math.min(sink.getCapacity() - before, add));
} else {
return Math.min(sink.getCapacity() - before, add);
}
} else if (tile instanceof IEnergySink) {
IEnergySink sink = (IEnergySink) tile;
double voltage = EnergyNet.instance.getPowerFromTier(sink.getSinkTier());
double amount = Math.min(add, voltage);
if (actionType.shouldSimulate()) {
return (long) Math.min(amount, sink.getDemandedEnergy());
} else {
return (long) Math.floor(amount - sink.injectEnergy(dir, amount, voltage));
}
}
return 0;
}
use of ic2.api.tile.IEnergyStorage in project TUMAT by canitzp.
the class IndustrialCraft2 method renderTileEntity.
@Override
public TooltipComponent renderTileEntity(WorldClient world, EntityPlayerSP player, TileEntity tileEntity, EnumFacing side, TooltipComponent component, boolean shouldCalculate) {
if (tileEntity instanceof TileEntityBlock) {
InfoUtil.syncTileEntity(tileEntity, shouldCalculate, "components");
if (((TileEntityBlock) tileEntity).hasComponent(Energy.class)) {
Energy energy = ((TileEntityBlock) tileEntity).getComponent(Energy.class);
List<String> desc = new ArrayList<>();
if (ConfigBoolean.SHOW_EU.value) {
if (!(tileEntity instanceof IEnergyStorage)) {
int stored = (int) energy.getEnergy();
int cap = (int) energy.getCapacity();
if (cap > 0) {
if (cap < stored) {
cap = stored;
}
component.add(new EnergyComponent(stored, cap, "EU", TextFormatting.YELLOW), TooltipComponent.Priority.HIGH);
}
}
if (!energy.getSourceDirs().isEmpty()) {
desc.add(Localization.translate("ic2.item.tooltip.PowerTier", energy.getSourceTier()));
} else if (!energy.getSinkDirs().isEmpty()) {
desc.add(Localization.translate("ic2.item.tooltip.PowerTier", energy.getSinkTier()));
}
}
if (tileEntity instanceof TileEntityTransformer) {
desc.add(String.format("%s %.0f %s %s %.0f %s", Localization.translate("ic2.item.tooltip.Low"), EnergyNet.instance.getPowerFromTier(energy.getSinkTier()), Localization.translate("ic2.generic.text.EUt"), Localization.translate("ic2.item.tooltip.High"), EnergyNet.instance.getPowerFromTier(energy.getSourceTier() + 1), Localization.translate("ic2.generic.text.EUt")));
}
component.clear(TooltipComponent.Priority.LOW);
component.add(new DescriptionComponent(desc), TooltipComponent.Priority.LOW);
}
}
if (tileEntity instanceof TileEntityCable) {
InfoUtil.syncTileEntity(tileEntity, shouldCalculate, "cableType", "insulation");
NBTTagCompound nbt = new NBTTagCompound();
tileEntity.writeToNBT(nbt);
if (!nbt.hasNoTags()) {
try {
CableType cableType = CableType.values[nbt.getByte("cableType") & 255];
int insulation = nbt.getByte("insulation") & 255;
ItemStack cable = ItemCable.getCable(cableType, insulation);
component.setName(new TextComponent(InfoUtil.getItemName(cable)));
component.clear(TooltipComponent.Priority.LOW);
component.add(new DescriptionComponent(cable), TooltipComponent.Priority.LOW);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return component;
}
Aggregations