package openblocks.client.gui; import com.google.common.collect.ImmutableList; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; import openblocks.common.container.ContainerXPBottler; import openblocks.common.tileentity.TileEntityXPBottler; import openblocks.common.tileentity.TileEntityXPBottler.AutoSlots; import openmods.gui.GuiConfigurableSlots; import openmods.gui.component.BaseComposite; import openmods.gui.component.GuiComponentLabel; import openmods.gui.component.GuiComponentProgress; import openmods.gui.component.GuiComponentTab; import openmods.gui.component.GuiComponentTankLevel; import openmods.gui.logic.ValueCopyAction; import openmods.utils.MiscUtils; public class GuiXPBottler extends GuiConfigurableSlots<TileEntityXPBottler, ContainerXPBottler, TileEntityXPBottler.AutoSlots> { public GuiXPBottler(ContainerXPBottler container) { super(container, 176, 151, "openblocks.gui.xpbottler"); } @Override protected Iterable<AutoSlots> getSlots() { return ImmutableList.of(AutoSlots.input, AutoSlots.xp, AutoSlots.output); } @Override protected void addCustomizations(BaseComposite root) { TileEntityXPBottler te = getContainer().getOwner(); final GuiComponentTankLevel tankLevel = new GuiComponentTankLevel(140, 18, 17, 37, TileEntityXPBottler.TANK_CAPACITY); addSyncUpdateListener(ValueCopyAction.create(te.getFluidProvider(), tankLevel.fluidReceiver())); root.addComponent(tankLevel); final GuiComponentProgress progress = new GuiComponentProgress(72, 33, TileEntityXPBottler.PROGRESS_TICKS); addSyncUpdateListener(ValueCopyAction.create(te.getProgress(), progress.progressReceiver())); root.addComponent(progress); } @Override protected GuiComponentTab createTab(AutoSlots slot) { switch (slot) { case input: return new GuiComponentTab(StandardPalette.blue.getColor(), new ItemStack(Items.glass_bottle, 1), 100, 100); case output: return new GuiComponentTab(StandardPalette.lightblue.getColor(), new ItemStack(Items.experience_bottle), 100, 100); case xp: return new GuiComponentTab(StandardPalette.green.getColor(), new ItemStack(Items.bucket), 100, 100); default: throw MiscUtils.unhandledEnum(slot); } } @Override protected GuiComponentLabel createLabel(AutoSlots slot) { switch (slot) { case input: return new GuiComponentLabel(22, 82, StatCollector.translateToLocal("openblocks.gui.autoextract")); case output: return new GuiComponentLabel(22, 82, StatCollector.translateToLocal("openblocks.gui.autoeject")); case xp: return new GuiComponentLabel(22, 82, StatCollector.translateToLocal("openblocks.gui.autodrink")); default: throw MiscUtils.unhandledEnum(slot); } } }