Search in sources :

Example 1 with ToolConfigBoolean

use of blusunrize.immersiveengineering.api.tool.IConfigurableTool.ToolConfig.ToolConfigBoolean in project ImmersiveEngineering by BluSunrize.

the class GuiModWorkbench method mouseReleased.

@Override
protected void mouseReleased(int mouseX, int mouseY, int state) {
    super.mouseReleased(mouseX, mouseY, state);
    Slot s = inventorySlots.getSlot(0);
    if (s != null && s.getHasStack() && s.getStack().getItem() instanceof IConfigurableTool) {
        ItemStack stack = s.getStack();
        IConfigurableTool tool = ((IConfigurableTool) stack.getItem());
        NBTTagCompound message = new NBTTagCompound();
        ToolConfigBoolean[] boolArray = tool.getBooleanOptions(stack);
        int iBool = 0;
        ToolConfigFloat[] floatArray = tool.getFloatOptions(stack);
        int iFloat = 0;
        for (GuiButton button : this.buttonList) {
            if (button instanceof GuiButtonCheckbox && boolArray != null)
                message.setBoolean("b_" + boolArray[iBool++].name, ((GuiButtonCheckbox) button).state);
            if (button instanceof GuiSliderIE && floatArray != null)
                message.setFloat("f_" + floatArray[iFloat++].name, (float) ((GuiSliderIE) button).sliderValue);
        }
        if (//Only send packets when values have changed
        lastMessage == null || !lastMessage.equals(message))
            ImmersiveEngineering.packetHandler.sendToServer(new MessageTileSync(this.workbench, message));
        lastMessage = message;
    }
}
Also used : ToolConfigBoolean(blusunrize.immersiveengineering.api.tool.IConfigurableTool.ToolConfig.ToolConfigBoolean) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) GuiButton(net.minecraft.client.gui.GuiButton) GuiSliderIE(blusunrize.immersiveengineering.client.gui.elements.GuiSliderIE) IESlot(blusunrize.immersiveengineering.common.gui.IESlot) Slot(net.minecraft.inventory.Slot) IConfigurableTool(blusunrize.immersiveengineering.api.tool.IConfigurableTool) ToolConfigFloat(blusunrize.immersiveengineering.api.tool.IConfigurableTool.ToolConfig.ToolConfigFloat) GuiButtonCheckbox(blusunrize.immersiveengineering.client.gui.elements.GuiButtonCheckbox) ItemStack(net.minecraft.item.ItemStack) MessageTileSync(blusunrize.immersiveengineering.common.util.network.MessageTileSync)

Example 2 with ToolConfigBoolean

use of blusunrize.immersiveengineering.api.tool.IConfigurableTool.ToolConfig.ToolConfigBoolean in project ImmersiveEngineering by BluSunrize.

the class GuiModWorkbench method initGui.

@Override
public void initGui() {
    this.buttonList.clear();
    super.initGui();
    Slot s = inventorySlots.getSlot(0);
    if (s != null && s.getHasStack() && s.getStack().getItem() instanceof IConfigurableTool) {
        ItemStack stack = s.getStack();
        IConfigurableTool tool = ((IConfigurableTool) stack.getItem());
        int buttonid = 0;
        ToolConfigBoolean[] boolArray = tool.getBooleanOptions(stack);
        if (boolArray != null)
            for (ToolConfigBoolean b : boolArray) this.buttonList.add(new GuiButtonCheckbox(buttonid++, guiLeft + b.x, guiTop + b.y, tool.fomatConfigName(stack, b), b.value));
        ToolConfigFloat[] floatArray = tool.getFloatOptions(stack);
        if (floatArray != null)
            for (ToolConfigFloat f : floatArray) this.buttonList.add(new GuiSliderIE(buttonid++, guiLeft + f.x, guiTop + f.y, 80, tool.fomatConfigName(stack, f), f.value));
    }
}
Also used : ToolConfigBoolean(blusunrize.immersiveengineering.api.tool.IConfigurableTool.ToolConfig.ToolConfigBoolean) GuiSliderIE(blusunrize.immersiveengineering.client.gui.elements.GuiSliderIE) IESlot(blusunrize.immersiveengineering.common.gui.IESlot) Slot(net.minecraft.inventory.Slot) IConfigurableTool(blusunrize.immersiveengineering.api.tool.IConfigurableTool) ToolConfigFloat(blusunrize.immersiveengineering.api.tool.IConfigurableTool.ToolConfig.ToolConfigFloat) GuiButtonCheckbox(blusunrize.immersiveengineering.client.gui.elements.GuiButtonCheckbox) ItemStack(net.minecraft.item.ItemStack)

Aggregations

IConfigurableTool (blusunrize.immersiveengineering.api.tool.IConfigurableTool)2 ToolConfigBoolean (blusunrize.immersiveengineering.api.tool.IConfigurableTool.ToolConfig.ToolConfigBoolean)2 ToolConfigFloat (blusunrize.immersiveengineering.api.tool.IConfigurableTool.ToolConfig.ToolConfigFloat)2 GuiButtonCheckbox (blusunrize.immersiveengineering.client.gui.elements.GuiButtonCheckbox)2 GuiSliderIE (blusunrize.immersiveengineering.client.gui.elements.GuiSliderIE)2 IESlot (blusunrize.immersiveengineering.common.gui.IESlot)2 Slot (net.minecraft.inventory.Slot)2 ItemStack (net.minecraft.item.ItemStack)2 MessageTileSync (blusunrize.immersiveengineering.common.util.network.MessageTileSync)1 GuiButton (net.minecraft.client.gui.GuiButton)1 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)1