Search in sources :

Example 1 with ContainerAmadronAddTrade

use of pneumaticCraft.common.inventory.ContainerAmadronAddTrade in project PneumaticCraft by MineMaarten.

the class GuiAmadronAddTrade method updateScreen.

@Override
public void updateScreen() {
    super.updateScreen();
    ContainerAmadronAddTrade container = (ContainerAmadronAddTrade) inventorySlots;
    addButton.enabled = inputNumber.getValue() > 0 && outputNumber.getValue() > 0 && (inputFluid.getFluid() != null || container.getStack(0) != null) && (outputFluid.getFluid() != null || container.getStack(1) != null) && getInputPosition() != null && getOutputPosition() != null;
}
Also used : ContainerAmadronAddTrade(pneumaticCraft.common.inventory.ContainerAmadronAddTrade)

Example 2 with ContainerAmadronAddTrade

use of pneumaticCraft.common.inventory.ContainerAmadronAddTrade in project PneumaticCraft by MineMaarten.

the class GuiAmadronAddTrade method initGui.

@Override
public void initGui() {
    super.initGui();
    ContainerAmadronAddTrade container = (ContainerAmadronAddTrade) inventorySlots;
    addLabel(I18n.format("gui.amadron.addTrade.selling"), guiLeft + 4, guiTop + 5);
    addLabel(I18n.format("gui.amadron.addTrade.buying"), guiLeft + 93, guiTop + 5);
    buttonList.add(new GuiButton(0, guiLeft + 4, guiTop + 20, 85, 20, "Search item..."));
    buttonList.add(new GuiButton(1, guiLeft + 4, guiTop + 42, 85, 20, "Search inv..."));
    buttonList.add(new GuiButton(2, guiLeft + 4, guiTop + 64, 85, 20, "Search fluid..."));
    buttonList.add(new GuiButton(3, guiLeft + 93, guiTop + 20, 85, 20, "Search item..."));
    buttonList.add(new GuiButton(4, guiLeft + 93, guiTop + 42, 85, 20, "Search inv..."));
    buttonList.add(new GuiButton(5, guiLeft + 93, guiTop + 64, 85, 20, "Search fluid..."));
    buttonList.add(addButton = new GuiButton(8, guiLeft + 50, guiTop + 164, 85, 20, "Add Trade"));
    Fluid oldInputFluid = inputFluid != null ? inputFluid.getFluid() : null;
    Fluid oldOutputFluid = outputFluid != null ? outputFluid.getFluid() : null;
    inputFluid = new WidgetFluidFilter(-1, guiLeft + 10, guiTop + 90);
    outputFluid = new WidgetFluidFilter(-1, guiLeft + 99, guiTop + 90);
    inputFluid.setFluid(oldInputFluid);
    outputFluid.setFluid(oldOutputFluid);
    addWidget(inputFluid);
    addWidget(outputFluid);
    GuiButtonSpecial gpsButton1 = new GuiButtonSpecial(6, guiLeft + 10, guiTop + 115, 20, 20, "");
    GuiButtonSpecial gpsButton2 = new GuiButtonSpecial(7, guiLeft + 99, guiTop + 115, 20, 20, "");
    gpsButton1.setTooltipText(Arrays.asList(WordUtils.wrap(I18n.format("gui.amadron.button.selectSellingBlock.tooltip"), 40).split(System.getProperty("line.separator"))));
    gpsButton2.setTooltipText(Arrays.asList(WordUtils.wrap(I18n.format("gui.amadron.button.selectPaymentBlock.tooltip"), 40).split(System.getProperty("line.separator"))));
    gpsButton1.setRenderStacks(new ItemStack(Itemss.GPSTool));
    gpsButton2.setRenderStacks(new ItemStack(Itemss.GPSTool));
    addWidget(gpsButton1);
    addWidget(gpsButton2);
    inputNumber = new WidgetTextFieldNumber(fontRendererObj, guiLeft + 6, guiTop + 145, 40, fontRendererObj.FONT_HEIGHT).setValue(inputNumber != null ? inputNumber.getValue() : 0);
    outputNumber = new WidgetTextFieldNumber(fontRendererObj, guiLeft + 95, guiTop + 145, 40, fontRendererObj.FONT_HEIGHT).setValue(outputNumber != null ? outputNumber.getValue() : 0);
    inputNumber.setTooltip(I18n.format("gui.amadron.addTrade.itemFluidAmount"));
    outputNumber.setTooltip(I18n.format("gui.amadron.addTrade.itemFluidAmount"));
    addWidget(inputNumber);
    addWidget(outputNumber);
    if (searchGui != null) {
        if (isSettingInput) {
            inputFluid.setFluid(null);
            container.setStack(0, searchGui.getSearchStack());
        } else {
            outputFluid.setFluid(null);
            container.setStack(1, searchGui.getSearchStack());
        }
    }
    if (invSearchGui != null) {
        if (isSettingInput) {
            inputFluid.setFluid(null);
            container.setStack(0, invSearchGui.getSearchStack());
        } else {
            outputFluid.setFluid(null);
            container.setStack(1, invSearchGui.getSearchStack());
        }
    }
    if (fluidGui != null) {
        if (isSettingInput) {
            container.setStack(0, null);
            inputFluid.setFluid(fluidGui.getFilter());
        } else {
            container.setStack(1, null);
            outputFluid.setFluid(fluidGui.getFilter());
        }
    }
    if (gpsSearchGui != null) {
        if (isSettingInput) {
            inputPosition = gpsSearchGui.getSearchStack() != null ? ItemGPSTool.getGPSLocation(gpsSearchGui.getSearchStack()) : null;
        } else {
            outputPosition = gpsSearchGui.getSearchStack() != null ? ItemGPSTool.getGPSLocation(gpsSearchGui.getSearchStack()) : null;
        }
    }
    searchGui = null;
    fluidGui = null;
    invSearchGui = null;
    gpsSearchGui = null;
    inputNumberLabel = new WidgetLabel(guiLeft + 52, guiTop + 145, container.getStack(0) != null ? "x" : inputFluid.getFluid() != null ? "mB" : "");
    outputNumberLabel = new WidgetLabel(guiLeft + 149, guiTop + 145, container.getStack(1) != null ? "x" : outputFluid.getFluid() != null ? "mB" : "");
    addWidget(inputNumberLabel);
    addWidget(outputNumberLabel);
}
Also used : WidgetLabel(pneumaticCraft.client.gui.widget.WidgetLabel) ContainerAmadronAddTrade(pneumaticCraft.common.inventory.ContainerAmadronAddTrade) GuiButton(net.minecraft.client.gui.GuiButton) WidgetTextFieldNumber(pneumaticCraft.client.gui.widget.WidgetTextFieldNumber) Fluid(net.minecraftforge.fluids.Fluid) WidgetFluidFilter(pneumaticCraft.client.gui.widget.WidgetFluidFilter) ItemStack(net.minecraft.item.ItemStack)

Example 3 with ContainerAmadronAddTrade

use of pneumaticCraft.common.inventory.ContainerAmadronAddTrade in project PneumaticCraft by MineMaarten.

the class GuiAmadronAddTrade method actionPerformed.

@Override
public void actionPerformed(GuiButton button) {
    EntityPlayer player = FMLClientHandler.instance().getClient().thePlayer;
    ContainerAmadronAddTrade container = (ContainerAmadronAddTrade) inventorySlots;
    if (button.id < 6 && button.id >= 0) {
        isSettingInput = button.id < 3;
        if (button.id % 3 == 0) {
            searchGui = new GuiSearcher(player);
            searchGui.setSearchStack(container.getStack(isSettingInput ? 0 : 1));
            FMLClientHandler.instance().showGuiScreen(searchGui);
        } else if (button.id % 3 == 1) {
            invSearchGui = new GuiInventorySearcher(player);
            invSearchGui.setSearchStack(container.getStack(isSettingInput ? 0 : 1));
            FMLClientHandler.instance().showGuiScreen(invSearchGui);
        } else if (button.id % 3 == 2) {
            fluidGui = new GuiLogisticsLiquidFilter(this);
            fluidGui.setFilter(isSettingInput ? inputFluid.getFluid() : outputFluid.getFluid());
            FMLClientHandler.instance().showGuiScreen(fluidGui);
        }
    } else if (button.id == 8) {
        Object input;
        if (container.getStack(0) != null) {
            input = container.getStack(0).copy();
            ((ItemStack) input).stackSize = inputNumber.getValue();
        } else {
            input = new FluidStack(inputFluid.getFluid(), inputNumber.getValue());
        }
        Object output;
        if (container.getStack(1) != null) {
            output = container.getStack(1).copy();
            ((ItemStack) output).stackSize = outputNumber.getValue();
        } else {
            output = new FluidStack(outputFluid.getFluid(), outputNumber.getValue());
        }
        AmadronOfferCustom trade = new AmadronOfferCustom(input, output, player);
        ChunkPosition pos = getInputPosition();
        int dimensionId = getInputDimension();
        trade.setProvidingPosition(pos, dimensionId);
        pos = getOutputPosition();
        dimensionId = getOutputDimension();
        trade.setReturningPosition(pos, dimensionId);
        NetworkHandler.sendToServer(new PacketAmadronTradeAdd(trade.invert()));
        player.closeScreen();
    }
    super.actionPerformed(button);
}
Also used : ContainerAmadronAddTrade(pneumaticCraft.common.inventory.ContainerAmadronAddTrade) FluidStack(net.minecraftforge.fluids.FluidStack) ChunkPosition(net.minecraft.world.ChunkPosition) EntityPlayer(net.minecraft.entity.player.EntityPlayer) PacketAmadronTradeAdd(pneumaticCraft.common.network.PacketAmadronTradeAdd) GuiLogisticsLiquidFilter(pneumaticCraft.client.gui.semiblock.GuiLogisticsLiquidFilter) ItemStack(net.minecraft.item.ItemStack) AmadronOfferCustom(pneumaticCraft.common.recipes.AmadronOfferCustom)

Aggregations

ContainerAmadronAddTrade (pneumaticCraft.common.inventory.ContainerAmadronAddTrade)3 ItemStack (net.minecraft.item.ItemStack)2 GuiButton (net.minecraft.client.gui.GuiButton)1 EntityPlayer (net.minecraft.entity.player.EntityPlayer)1 ChunkPosition (net.minecraft.world.ChunkPosition)1 Fluid (net.minecraftforge.fluids.Fluid)1 FluidStack (net.minecraftforge.fluids.FluidStack)1 GuiLogisticsLiquidFilter (pneumaticCraft.client.gui.semiblock.GuiLogisticsLiquidFilter)1 WidgetFluidFilter (pneumaticCraft.client.gui.widget.WidgetFluidFilter)1 WidgetLabel (pneumaticCraft.client.gui.widget.WidgetLabel)1 WidgetTextFieldNumber (pneumaticCraft.client.gui.widget.WidgetTextFieldNumber)1 PacketAmadronTradeAdd (pneumaticCraft.common.network.PacketAmadronTradeAdd)1 AmadronOfferCustom (pneumaticCraft.common.recipes.AmadronOfferCustom)1