package openblocks.client.gui; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import openblocks.common.Stencil; import openblocks.common.container.ContainerDrawingTable; import openblocks.rpc.IStencilCrafter; import openmods.gui.BaseGuiContainer; import openmods.gui.component.BaseComponent; import openmods.gui.component.GuiComponentIconButton; import openmods.gui.component.GuiComponentSprite; import openmods.gui.component.GuiComponentTextButton; import openmods.gui.listener.IMouseDownListener; import openmods.utils.render.FakeIcon; public class GuiDrawingTable extends BaseGuiContainer<ContainerDrawingTable> { public static final int BUTTON_DRAW = 0; private GuiComponentSprite iconDisplay; private int patternIndex = 0; public GuiDrawingTable(ContainerDrawingTable container) { super(container, 176, 172, "openblocks.gui.drawingtable"); final IStencilCrafter rpcProxy = getContainer().getOwner().createClientRpcProxy(IStencilCrafter.class); GuiComponentIconButton buttonLeft = new GuiComponentIconButton(47, 32, 0xFFFFFF, FakeIcon.createSheetIcon(0, 82, 16, 16), BaseComponent.TEXTURE_SHEET); buttonLeft.setListener(new IMouseDownListener() { @Override public void componentMouseDown(BaseComponent component, int x, int y, int button) { patternIndex--; if (patternIndex < 0) patternIndex = Stencil.VALUES.length - 1; iconDisplay.setIcon(Stencil.VALUES[patternIndex].getBlockIcon()); } }); GuiComponentIconButton buttonRight = new GuiComponentIconButton(108, 32, 0xFFFFFF, FakeIcon.createSheetIcon(16, 82, -16, 16), BaseComponent.TEXTURE_SHEET); buttonRight.setListener(new IMouseDownListener() { @Override public void componentMouseDown(BaseComponent component, int x, int y, int button) { patternIndex++; if (patternIndex >= Stencil.VALUES.length) patternIndex = 0; iconDisplay.setIcon(Stencil.VALUES[patternIndex].getBlockIcon()); } }); GuiComponentTextButton buttonDraw = new GuiComponentTextButton(68, 57, 40, 13, 0xFFFFFF); buttonDraw.setText("Draw").setListener(new IMouseDownListener() { @Override public void componentMouseDown(BaseComponent component, int x, int y, int button) { rpcProxy.craft(Stencil.VALUES[patternIndex]); } }); root.addComponent(buttonDraw); (iconDisplay = new GuiComponentSprite(80, 34, Stencil.values()[0].getBlockIcon(), TextureMap.locationBlocksTexture)) .setColor(0f, 0f, 0f) .setOverlayMode(true) .setEnabled(inventorySlots.getSlot(0).getStack() != null); root.addComponent(iconDisplay); root.addComponent(buttonLeft); root.addComponent(buttonRight); } @Override public void updateScreen() { super.updateScreen(); final Slot slot = inventorySlots.getSlot(0); final ItemStack stack = slot.getStack(); iconDisplay.setEnabled(stack != null && slot.isItemValid(stack)); } }