diff options
author | miozune <miozune@gmail.com> | 2022-11-26 01:56:28 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-25 17:56:28 +0100 |
commit | cd2ba914a6b5b980ff56347455fcf43a9e3eea3b (patch) | |
tree | 9dfba22762592ee292edd9a6c2eb6e4c3d9c6e96 /src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities | |
parent | 921527ce3cc5f92b067f180295fa55dae718461f (diff) | |
download | GT5-Unofficial-cd2ba914a6b5b980ff56347455fcf43a9e3eea3b.tar.gz GT5-Unofficial-cd2ba914a6b5b980ff56347455fcf43a9e3eea3b.tar.bz2 GT5-Unofficial-cd2ba914a6b5b980ff56347455fcf43a9e3eea3b.zip |
Rewrite GUIs with ModularUI (#440)
* Update GT
* NEI migration & cleanup
Deprecate GTPP_Recipe_Map_Internal#sMappingsEx and delegate to GT_Recipe_Map#sMappings instead
Remove recipe modification check
* Boiler
* Programmed Circuit & Super Bus
* Lower the number of fluid slots for multi mixer NEI
* Solar Generator
* Crop Manager
* Bronze Workbench & Advanced Workbench
* Turbine Housing & Rotor Assembly
* Iron Plated Blast Furnace
* Player Safe
* Advanced Muffler Hatch
* spotlessApply
* Auto Workbench
* Breaker, Control Core, RTG Hatch, Steam Bus, some cleanup
* Fix crash when removing Breaker
* Data Orb Repository
* Charging/Discharging Bus
* Pollution Scrubber
* Storage Crate, Shelf, TieredChest
They're just broken in the first place, don't blame me
* cleanup
* Steam Condenser
It's broken in the first place, never blame me!
* Catalyst Housing, Ball Housing
* Fluid Tank, generators, custom hatches, cleanup
* Computer Cube MKII
Many things are broken in the first place, I swear
* Inventory Manager
* Migrate multiblock dehydrator recipemap to ModularUI
* Overflow cover
* Redstone Circuit Block
* Multiblock
* cleanup
* Update GT
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities')
88 files changed, 1859 insertions, 1222 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ElectricAutoWorkbench.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ElectricAutoWorkbench.java index 79400b68e6..bf56872d52 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ElectricAutoWorkbench.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ElectricAutoWorkbench.java @@ -1,10 +1,19 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.automation; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.SlotGroup; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; import gregtech.api.enums.GT_Values; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; import gregtech.api.enums.Textures.BlockIcons; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.modularui.IAddGregtechLogo; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; @@ -14,22 +23,23 @@ import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.xmod.gregtech.api.gui.automation.GT_Container_ElectricAutoWorkbench; -import gtPlusPlus.xmod.gregtech.api.gui.automation.GT_GUIContainer_ElectricAutoWorkbench; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.ArrayList; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.oredict.OreDictionary; -public class GT_MetaTileEntity_ElectricAutoWorkbench extends GT_MetaTileEntity_BasicTank { +public class GT_MetaTileEntity_ElectricAutoWorkbench extends GT_MetaTileEntity_BasicTank implements IAddGregtechLogo { public int mMode = 0, mCurrentSlot = 0, mThroughPut = 0, mTicksUntilNextUpdate = 20; public boolean mLastCraftSuccessful = false; protected String mLocalName; + private static final int MAX_MODES = 10; + private static final int MAX_THROUGHPUT = 4; + public GT_MetaTileEntity_ElectricAutoWorkbench(final int aID, final int aTier, final String aDescription) { super( aID, @@ -47,18 +57,6 @@ public class GT_MetaTileEntity_ElectricAutoWorkbench extends GT_MetaTileEntity_B } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_ElectricAutoWorkbench(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_ElectricAutoWorkbench(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override public boolean isTransformerUpgradable() { return true; } @@ -140,10 +138,7 @@ public class GT_MetaTileEntity_ElectricAutoWorkbench extends GT_MetaTileEntity_B @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } - aBaseMetaTileEntity.openGUI(aPlayer); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); return true; } @@ -202,27 +197,10 @@ public class GT_MetaTileEntity_ElectricAutoWorkbench extends GT_MetaTileEntity_B && aSide != getBaseMetaTileEntity().getBackFacing(); } - private static final int MAX_MODES = 10; - - public void switchModeForward() { - mMode = (mMode + 1) % MAX_MODES; - switchMode(); - } - - public void switchModeBackward() { - mMode--; - if (mMode < 0) mMode = MAX_MODES - 1; - switchMode(); - } - private void switchMode() { mInventory[28] = null; } - public void switchThrough() { - mThroughPut = (mThroughPut + 1) % 4; - } - @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); @@ -865,4 +843,86 @@ public class GT_MetaTileEntity_ElectricAutoWorkbench extends GT_MetaTileEntity_B new GT_RenderedTexture(TexturesGtBlock.Casing_Adv_Workbench_Crafting_Overlay) }; } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addGregTechLogo(ModularWindow.Builder builder) { + builder.widget(new DrawableWidget() + .setDrawable(getGUITextureSet().getGregTechLogo()) + .setSize(17, 17) + .setPos(118, 22)); + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(SlotGroup.ofItemHandler(inventoryHandler, 3) + .endAtSlot(8) + .build() + .setPos(7, 4)) + .widget(SlotGroup.ofItemHandler(inventoryHandler, 9) + .startFromSlot(9) + .endAtSlot(17) + .canInsert(false) + .background(GT_UITextures.SLOT_DARK_GRAY) + .applyForWidget(SlotWidget::disableShiftInsert) + .build() + .setPos(7, 59)) + .widget(new SlotWidget(inventoryHandler, 18) + .setAccess(true, false) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_OUT) + .setPos(151, 40)) + .widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SLOTS_HOLO_3BY3) + .setPos(62, 4) + .setSize(54, 54)) + .widget(SlotGroup.ofItemHandler(inventoryHandler, 3) + .startFromSlot(19) + .endAtSlot(27) + .phantom(true) + .background(GT_UITextures.TRANSPARENT) + .build() + .setPos(62, 4)) + .widget(SlotWidget.phantom(inventoryHandler, 28) + .disableInteraction() + .setBackground(getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_ARROW_4) + .setPos(151, 4)); + builder.widget(new CycleButtonWidget() + .setGetter(() -> mThroughPut) + .setSetter(val -> mThroughPut = val) + .setLength(MAX_THROUGHPUT) + .setTextureGetter(i -> GTPP_UITextures.OVERLAY_BUTTON_THROUGHPUT[i]) + .setBackground(GT_UITextures.BUTTON_STANDARD) + .setPos(120, 4) + .setSize(18, 18)); + String[] mModeText = new String[] { + "Normal Crafting Table", "???", "1x1", "2x2", "3x3", "Unifier", "Dust", "???", "Hammer?", "Circle" + }; + CycleButtonWidget modeButton = new CycleButtonWidget() + .setGetter(() -> mMode) + .setSetter(val -> { + mMode = val; + switchMode(); + }) + .setLength(MAX_MODES) + .setTextureGetter(i -> GTPP_UITextures.OVERLAY_BUTTON_MODE[i]); + for (int i = 0; i < MAX_MODES; i++) { + modeButton.addTooltip(i, "Mode: " + mModeText[i]); + } + builder.widget(modeButton + .setBackground(GT_UITextures.BUTTON_STANDARD) + .setPos(120, 40) + .setSize(18, 18)); + builder.widget(new DrawableWidget() + .setDrawable(GTPP_UITextures.PICTURE_WORKBENCH_CIRCLE) + .setPos(136, 23) + .setSize(16, 16)) + .widget(new DrawableWidget() + .setDrawable(GTPP_UITextures.PICTURE_ARROW_WHITE_DOWN) + .setPos(155, 23) + .setSize(10, 16)); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ElectricInventoryManager.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ElectricInventoryManager.java index ebce1fcec6..1a15c563ef 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ElectricInventoryManager.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ElectricInventoryManager.java @@ -1,8 +1,21 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.automation; +import com.gtnewhorizons.modularui.api.ModularUITextures; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; +import com.gtnewhorizons.modularui.common.widget.ButtonWidget; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.modularui.IAddGregtechLogo; +import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; @@ -10,17 +23,17 @@ import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.xmod.gregtech.api.gui.automation.GT_Container_ElectricInventoryManager; -import gtPlusPlus.xmod.gregtech.api.gui.automation.GT_GUIContainer_ElectricInventoryManager; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.ArrayList; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraftforge.oredict.OreDictionary; -public class GT_MetaTileEntity_ElectricInventoryManager extends GT_MetaTileEntity_TieredMachineBlock { +public class GT_MetaTileEntity_ElectricInventoryManager extends GT_MetaTileEntity_TieredMachineBlock + implements IAddGregtechLogo, IAddUIWidgets { public int[] mSlotRange = new int[4]; public boolean mWorkedLastTick = false; @@ -43,18 +56,6 @@ public class GT_MetaTileEntity_ElectricInventoryManager extends GT_MetaTileEntit } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_ElectricInventoryManager(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_ElectricInventoryManager(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override public boolean isTransformerUpgradable() { return true; } @@ -146,10 +147,7 @@ public class GT_MetaTileEntity_ElectricInventoryManager extends GT_MetaTileEntit @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } - aBaseMetaTileEntity.openGUI(aPlayer); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); return true; } @@ -600,4 +598,167 @@ public class GT_MetaTileEntity_ElectricInventoryManager extends GT_MetaTileEntit new GT_RenderedTexture(TexturesGtBlock.Casing_InventoryManagaer_Yellow_Redstone) }; } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addGregTechLogo(ModularWindow.Builder builder) { + builder.widget(new DrawableWidget() + .setDrawable(getGUITextureSet().getGregTechLogo()) + .setSize(17, 17) + .setPos(154, 59)); + } + + // Internal copy of values stored in this tile. Client will use these to render stuff. + private final int[] mTargetDirections = new int[12]; + private final int[] mRangeDirections = new int[4]; + private final boolean[] mTargetInOut = new boolean[12]; + private final boolean[] mTargetEnergy = new boolean[4]; + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + for (int i = 0; i < 3; i++) { + builder.widget(new SlotWidget(inventoryHandler, i) + .setBackground(getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_CHEST) + .setPos(154, 4 + i * 18)); + } + + int[] slotXPositions = new int[] {4, 60, 79, 135}; + for (int i = 0; i < 12; i++) { + final int index = i; + builder.widget( + new SlotWidget(new BaseSlot(inventoryHandler, i + 3, true)) { + @Override + protected void phantomClick(ClickData clickData, ItemStack cursorStack) { + super.phantomClick(clickData, cursorStack); + if (clickData.mouseButton != 0 + && cursorStack != null + && getMcSlot().getHasStack()) { + getMcSlot().getStack().setItemDamage(OreDictionary.WILDCARD_VALUE); + } + } + }.setControlsAmount(true) + .disableShiftInsert() + .setBackground(() -> { + if (index % 3 == 0) { + return new IDrawable[] { + GTPP_UITextures.SLOT_INVENTORY_MANAGER[mRangeDirections[index / 3]], + GTPP_UITextures.OVERLAY_SLOT_INVENTORY_MANAGER_COLOR[ + mRangeDirections[index / 3]] + }; + } else if (index % 3 == 1) { + return new IDrawable[] { + GTPP_UITextures.SLOT_INVENTORY_MANAGER[mRangeDirections[index / 3]], + GTPP_UITextures.OVERLAY_SLOT_INVENTORY_MANAGER_ARROW[ + mRangeDirections[index / 3]] + }; + } else { + return new IDrawable[] { + GTPP_UITextures.SLOT_INVENTORY_MANAGER[mRangeDirections[index / 3]] + }; + } + }) + .setPos(slotXPositions[i / 3], 4 + (i % 3) * 18)); + } + for (int i = 0; i < 4; i++) { + final int index = i; + builder.widget(new ButtonWidget() + .setOnClick((clickData, widget) -> switchRangeEnergy(index)) + .setBackground(() -> new IDrawable[] { + mTargetEnergy[index] ? ModularUITextures.ITEM_SLOT : GT_UITextures.BUTTON_STANDARD, + GT_UITextures.OVERLAY_BUTTON_EMIT_ENERGY + }) + .setPos(slotXPositions[i], 59) + .setSize(18, 18)); + } + + int[] buttonXPositions = new int[] {23, 41, 98, 116}; + for (int i = 0; i < 12; i++) { + final int index = i; + builder.widget(new ButtonWidget() + .setOnClick((clickData, widget) -> { + if (index % 3 == 0) { + if (clickData.mouseButton != 0) { + switchSlot1InOut(index / 3); + } else { + iterateSlot1Direction(index / 3); + } + } else if (index % 3 == 1) { + if (clickData.mouseButton != 0) { + switchSlot2InOut(index / 3); + } else { + iterateSlot2Direction(index / 3); + } + } else { + if (clickData.mouseButton != 0) { + switchSlot3InOut(index / 3); + } else { + iterateSlot3Direction(index / 3); + } + } + }) + .setBackground(() -> new IDrawable[] { + GT_UITextures.BUTTON_STANDARD, + GTPP_UITextures.OVERLAY_BUTTON_DIRECTION[mTargetDirections[index]], + mTargetInOut[index] + ? GTPP_UITextures.OVERLAY_BUTTON_TIP_RED + : GTPP_UITextures.OVERLAY_BUTTON_TIP_GREEN + }) + .setPos(buttonXPositions[i / 3], 4 + (i % 3) * 18) + .setSize(18, 18)); + } + for (int i = 0; i < 4; i++) { + final int index = i; + builder.widget(new ButtonWidget() + .setOnClick((clickData, widget) -> iterateRangeDirection(index)) + .setBackground(() -> new IDrawable[] { + GT_UITextures.BUTTON_STANDARD, + GTPP_UITextures.OVERLAY_BUTTON_DIRECTION_GRAY[mRangeDirections[index]] + }) + .setPos(buttonXPositions[i], 59) + .setSize(18, 18)); + } + + for (int i = 0; i < mTargetDirections.length; i++) { + final int index = i; + builder.widget(new FakeSyncWidget.ByteSyncer( + () -> { + if (index % 3 == 0) { + return getSlot1Direction(index / 3); + } else if (index % 3 == 1) { + return getSlot2Direction(index / 3); + } else { + return getSlot3Direction(index / 3); + } + }, + val -> mTargetDirections[index] = val)); + } + for (int i = 0; i < mRangeDirections.length; i++) { + final int index = i; + builder.widget(new FakeSyncWidget.ByteSyncer( + () -> getRangeDirection(index), val -> mRangeDirections[index] = val)); + } + for (int i = 0; i < mTargetInOut.length; i++) { + final int index = i; + builder.widget(new FakeSyncWidget.BooleanSyncer( + () -> { + if (index % 3 == 0) { + return getSlot1InOut(index / 3); + } else if (index % 3 == 1) { + return getSlot2InOut(index / 3); + } else { + return getSlot3InOut(index / 3); + } + }, + val -> mTargetInOut[index] = val)); + } + for (int i = 0; i < mTargetEnergy.length; i++) { + final int index = i; + builder.widget( + new FakeSyncWidget.BooleanSyncer(() -> getRangeEnergy(index), val -> mTargetEnergy[index] = val)); + } + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java index 5bd16c7fb2..277fc8d873 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java @@ -1,9 +1,13 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.generators; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.drawable.UITexture; import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.gui.modularui.GUITextureSet; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -13,9 +17,7 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler; import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_AdvancedBoiler; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_AdvancedBoiler; -import net.minecraft.entity.player.InventoryPlayer; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntityFurnace; import net.minecraftforge.common.util.ForgeDirection; @@ -253,16 +255,6 @@ public class GT_MetaTileEntity_Boiler_Base extends GT_MetaTileEntity_Boiler { } @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_AdvancedBoiler(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_AdvancedBoiler(aPlayerInventory, aBaseMetaTileEntity, "AdvancedBoiler.png"); - } - - @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_Boiler_Base(this.mName, tier, this.mDescription, this.mTextures); } @@ -306,4 +298,49 @@ public class GT_MetaTileEntity_Boiler_Base extends GT_MetaTileEntity_Boiler { } return super.allowCoverOnSide(aSide, aCover); } + + @Override + public GUITextureSet getGUITextureSet() { + return GUITextureSet.DEFAULT; + } + + @Override + protected IDrawable[] getFuelSlotBackground() { + return new IDrawable[] {getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_COAL}; + } + + @Override + protected IDrawable[] getAshSlotBackground() { + return new IDrawable[] {getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_DUST}; + } + + @Override + public int getTitleColor() { + return COLOR_TITLE.get(); + } + + @Override + protected IDrawable getOverlaySlotIn() { + return GT_UITextures.OVERLAY_SLOT_IN; + } + + @Override + protected IDrawable getOverlaySlotOut() { + return GT_UITextures.OVERLAY_SLOT_OUT; + } + + @Override + protected IDrawable getOverlaySlotCanister() { + return GTPP_UITextures.OVERLAY_SLOT_CANISTER_DARK; + } + + @Override + protected UITexture getProgressbarEmpty() { + return GTPP_UITextures.PROGRESSBAR_BOILER_EMPTY; + } + + @Override + protected UITexture getProgressbarFuel() { + return GTPP_UITextures.PROGRESSBAR_FUEL; + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Solar.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Solar.java index ba6b037d76..888cb6a195 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Solar.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Solar.java @@ -9,9 +9,6 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.common.tileentities.boilers.GT_MetaTileEntity_Boiler; import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_AdvancedBoiler; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_AdvancedBoiler; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -81,18 +78,6 @@ public class GT_MetaTileEntity_Boiler_Solar extends GT_MetaTileEntity_Boiler { } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_AdvancedBoiler(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_AdvancedBoiler(aPlayerInventory, aBaseMetaTileEntity, "SolarBoiler.png"); - } - - @Override public MetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) { return new GT_MetaTileEntity_Boiler_Solar(this.mName, this.mTier, this.mDescription, this.mTextures); } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_RfConvertor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_RfConvertor.java index 340a97fccf..e077d5ef90 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_RfConvertor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_RfConvertor.java @@ -23,7 +23,6 @@ import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GregtechMetaEnergyBuffer; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -156,18 +155,6 @@ public class GT_MetaTileEntity_RfConvertor extends GregtechMetaEnergyBuffer impl } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) { if (aBaseMetaTileEntity.isServerSide()) { if (!aBaseMetaTileEntity.isActive()) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java index ba63952baf..520f960ec9 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java @@ -5,6 +5,7 @@ import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.ItemList; import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UIInfos; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -46,10 +47,7 @@ public class GregtechMetaTileEntityGeothermalGenerator extends GT_MetaTileEntity @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } - aBaseMetaTileEntity.openGUI(aPlayer); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); return true; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntitySolarGenerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntitySolarGenerator.java index 660fdb50b6..73c8f0adab 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntitySolarGenerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntitySolarGenerator.java @@ -2,19 +2,22 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.generators; import static gregtech.api.enums.GT_Values.V; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; import gregtech.api.GregTech_API; import gregtech.api.enums.ConfigCategories; +import gregtech.api.enums.SteamVariant; import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UITextures; +import gregtech.api.gui.modularui.GUITextureSet; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GT_RenderedTexture; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_SolarGenerator; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_SolarGenerator; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.generators.GregtechMetaSolarGenerator; -import net.minecraft.entity.player.InventoryPlayer; public class GregtechMetaTileEntitySolarGenerator extends GregtechMetaSolarGenerator { @@ -46,18 +49,6 @@ public class GregtechMetaTileEntitySolarGenerator extends GregtechMetaSolarGener } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_SolarGenerator(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_SolarGenerator(aPlayerInventory, aBaseMetaTileEntity, "SolarBoiler.png"); - } - - @Override public MetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) { return new GregtechMetaTileEntitySolarGenerator(this.mName, this.mTier, this.mDescription, this.mTextures); } @@ -223,4 +214,67 @@ public class GregtechMetaTileEntitySolarGenerator extends GregtechMetaSolarGener super.getSidesActive(aColor)[0], new GT_RenderedTexture(Textures.BlockIcons.MACHINE_CASING_MAGIC_ACTIVE) }; } + + @Override + public SteamVariant getSteamVariant() { + return SteamVariant.BRONZE; + } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(new ProgressBar() + .setProgress(() -> (float) mProcessingEnergy / 1000) + .setTexture( + GT_UITextures.PROGRESSBAR_BOILER_EMPTY_STEAM.get(getSteamVariant()), + GT_UITextures.PROGRESSBAR_BOILER_STEAM, + 10) + .setDirection(ProgressBar.Direction.UP) + .setPos(70, 25) + .setSize(10, 54)) + .widget(new ProgressBar() + .setProgress(() -> (float) getBaseMetaTileEntity().getStoredEU()) + .setTexture( + GT_UITextures.PROGRESSBAR_BOILER_EMPTY_STEAM.get(getSteamVariant()), + GT_UITextures.PROGRESSBAR_BOILER_WATER, + 10) + .setDirection(ProgressBar.Direction.UP) + .setPos(83, 25) + .setSize(10, 54)) + .widget(new ProgressBar() + .setProgress(() -> (float) mSolarCharge / maxProgresstime()) + .setTexture( + GT_UITextures.PROGRESSBAR_BOILER_EMPTY_STEAM.get(getSteamVariant()), + GT_UITextures.PROGRESSBAR_BOILER_HEAT, + 10) + .setDirection(ProgressBar.Direction.UP) + .setPos(96, 25) + .setSize(10, 54)) + .widget(new ProgressBar() + .setProgress(() -> (float) mProcessingEnergy / 1000) + .setTexture(GT_UITextures.PROGRESSBAR_FUEL_STEAM.get(getSteamVariant()), 14) + .setDirection(ProgressBar.Direction.UP) + .setPos(116, 45) + .setSize(14, 14)); + } + + @Override + public GUITextureSet getGUITextureSet() { + return new GUITextureSet() + .setMainBackground(GT_UITextures.BACKGROUND_STEAM.get(getSteamVariant())) + .setItemSlot(GT_UITextures.SLOT_ITEM_STEAM.get(getSteamVariant())) + .setCoverTab( + GT_UITextures.TAB_COVER_STEAM_NORMAL.get(getSteamVariant()), + GT_UITextures.TAB_COVER_STEAM_HIGHLIGHT.get(getSteamVariant()), + GT_UITextures.TAB_COVER_STEAM_DISABLED.get(getSteamVariant())) + .setTitleTab( + GT_UITextures.TAB_TITLE_STEAM.getAdaptable(getSteamVariant()), + GT_UITextures.TAB_TITLE_DARK_STEAM.getAdaptable(getSteamVariant()), + GT_UITextures.TAB_TITLE_ANGULAR_STEAM.getAdaptable(getSteamVariant())) + .setGregTechLogo(GT_UITextures.PICTURE_GT_LOGO_17x17_TRANSPARENT_STEAM.get(getSteamVariant())); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java index fb2af1cd44..9bfaa40972 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java @@ -21,7 +21,6 @@ import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GregtechMetaEnergyBu import java.lang.reflect.Field; import java.lang.reflect.Modifier; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -166,18 +165,6 @@ public class GregtechMetaCreativeEnergyBuffer extends GregtechMetaEnergyBuffer { } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) { if (aBaseMetaTileEntity.isServerSide()) { aBaseMetaTileEntity.increaseStoredEnergyUnits(Integer.MAX_VALUE, true); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_CropHarvestor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_CropHarvestor.java index 417833a2ef..40425646c3 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_CropHarvestor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_CropHarvestor.java @@ -1,7 +1,15 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic; import com.gtnewhorizon.gtnhlib.util.map.ItemStackMap; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget; +import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; +import com.gtnewhorizons.modularui.common.widget.SlotGroup; import gregtech.api.enums.*; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -12,7 +20,7 @@ import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.xmod.gregtech.api.gui.basic.*; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import ic2.api.crops.*; import ic2.core.item.DamageHandler; @@ -25,8 +33,6 @@ import net.minecraft.tileentity.TileEntity; public class GT_MetaTileEntity_CropHarvestor extends GT_MetaTileEntity_BasicTank { - protected String mLocalName; - private static final int SLOT_WEEDEX_1 = 1; private static final int SLOT_WEEDEX_2 = 2; private static final int SLOT_FERT_1 = 3; @@ -43,25 +49,11 @@ public class GT_MetaTileEntity_CropHarvestor extends GT_MetaTileEntity_BasicTank aTier, 21, aDescription); - this.mLocalName = "Crop Manager (" + GT_Values.VN[aTier] + ")"; } public GT_MetaTileEntity_CropHarvestor( final String aName, final int aTier, final String aDescription, final ITexture[][][] aTextures) { super(aName, aTier, 21, aDescription, aTextures); - this.mLocalName = "Crop Manager (" + GT_Values.VN[aTier] + ")"; - } - - @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_CropHarvestor(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_CropHarvestor(aPlayerInventory, aBaseMetaTileEntity, this.mLocalName); } @Override @@ -131,10 +123,7 @@ public class GT_MetaTileEntity_CropHarvestor extends GT_MetaTileEntity_BasicTank @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } - aBaseMetaTileEntity.openGUI(aPlayer); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); return true; } @@ -683,4 +672,55 @@ public class GT_MetaTileEntity_CropHarvestor extends GT_MetaTileEntity_BasicTank super.loadNBTData(aNBT); this.mModeAlternative = aNBT.getBoolean("mModeAlternative"); } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(new CycleButtonWidget() + .setToggle(() -> mModeAlternative, val -> mModeAlternative = val) + .setTexture(GTPP_UITextures.OVERLAY_BUTTON_HARVESTER_MODE) + .addTooltip(0, "Enable Hydration/Fertilizing/Weed-EX") + .addTooltip(1, "Disable Hydration/Fertilizing/Weed-EX") + .setBackground(GT_UITextures.BUTTON_STANDARD) + .setPos(47, 63) + .setSize(18, 18)); + builder.widget(SlotGroup.ofItemHandler(inventoryHandler, 2) + .startFromSlot(SLOT_WEEDEX_1) + .endAtSlot(SLOT_WEEDEX_2) + .applyForWidget(widget -> widget.setFilter(stack -> stack != null + && stack.getItem().getUnlocalizedName().equals("ic2.itemWeedEx")) + .setBackground(getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_WEED_EX)) + .build() + .setPos(7, 13)) + .widget(SlotGroup.ofItemHandler(inventoryHandler, 2) + .startFromSlot(SLOT_FERT_1) + .endAtSlot(SLOT_FERT_4) + .applyForWidget(widget -> widget.setFilter(stack -> stack != null + && stack.getItem().getUnlocalizedName().equals("ic2.itemFertilizer")) + .setBackground( + getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_FERTILIZER)) + .build() + .setPos(7, 31)) + .widget(SlotGroup.ofItemHandler(inventoryHandler, 6) + .startFromSlot(SLOT_OUTPUT_START) + .endAtSlot(SLOT_OUTPUT_START + 6 * 3) + .canInsert(false) + .build() + .setPos(61, 7)); + builder.widget(new ProgressBar() + .setTexture( + GTPP_UITextures.PROGRESSBAR_BOILER_EMPTY, GT_UITextures.PROGRESSBAR_BOILER_WATER, 54) + .setDirection(ProgressBar.Direction.UP) + .setProgress(() -> (float) getFluidAmount() / getCapacity()) + .setSynced(false, false) + .dynamicTooltip(() -> + Collections.singletonList("Water: " + getFluidAmount() + "L / " + getCapacity() + "L")) + .setPos(47, 7) + .setSize(10, 54)) + .widget(new FakeSyncWidget.FluidStackSyncer(this::getDrainableStack, this::setDrainableStack)); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java index 23263bd9fd..19994896e8 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java @@ -2,9 +2,15 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic; import static gregtech.api.enums.GT_Values.V; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.items.GT_MetaGenerated_Tool; @@ -19,15 +25,16 @@ import gtPlusPlus.api.objects.Logger; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.core.item.general.ItemAirFilter; import gtPlusPlus.core.item.general.ItemBasicScrubberTurbine; +import gtPlusPlus.core.recipe.common.CI; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.core.util.minecraft.gregtech.PollutionUtils; -import gtPlusPlus.xmod.gregtech.api.gui.basic.CONTAINER_PollutionCleaner; -import gtPlusPlus.xmod.gregtech.api.gui.basic.GUI_PollutionCleaner; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; +import java.util.Collections; +import java.util.HashMap; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -46,6 +53,14 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi protected boolean mSaveRotor = false; + private static final HashMap<Byte, ItemStack> mConveyorMap = new HashMap<>(); + + static { + for (byte i = 0; i < 9; i++) { + mConveyorMap.put(i, CI.getConveyor(i, 1)); + } + } + public GregtechMetaAtmosphericReconditioner(int aID, String aName, String aNameRegional, int aTier) { super( aID, @@ -713,18 +728,6 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_PollutionCleaner(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_PollutionCleaner(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), this.mGUIName); - } - - @Override public boolean canInsertItem(int aIndex, ItemStack aStack, int aSide) { if (aIndex == SLOT_FILTER) { if (aStack.getItem() instanceof ItemAirFilter) { @@ -893,4 +896,40 @@ public class GregtechMetaAtmosphericReconditioner extends GT_MetaTileEntity_Basi * GT_MetaGenerated_Tool.getPrimaryMaterial(aStackRotor).mToolSpeed * 50); } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(new SlotWidget(inventoryHandler, SLOT_ROTOR) + .setFilter(stack -> { + if (stack.getItem() instanceof ItemBasicScrubberTurbine) { + return true; + } + return stack.getItem() instanceof GT_MetaGenerated_Tool + && stack.getItemDamage() >= 170 + && stack.getItemDamage() <= 179; + }) + .setBackground(getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_TURBINE) + .setPos(52, 24)) + .widget(new SlotWidget(inventoryHandler, SLOT_FILTER) + .setFilter(stack -> stack.getItem() instanceof ItemAirFilter) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_RECYCLE) + .setPos(106, 24)) + .widget(new SlotWidget(inventoryHandler, 7) + .setFilter(stack -> GT_Utility.areStacksEqual(stack, mConveyorMap.get(mTier), true)) + .setPos(124, 62)); + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_INFORMATION) + .dynamicTooltip(() -> Collections.singletonList("Reduction: " + mPollutionReduction + "/s")) + .attachSyncer( + new FakeSyncWidget.IntegerSyncer(() -> mPollutionReduction, val -> mPollutionReduction = val), + builder, + (widget, val) -> widget.notifyTooltipChange()) + .setPos(163, 5) + .setSize(7, 18)); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaCondensor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaCondensor.java index 531c7c5694..17edfd0d4d 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaCondensor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaCondensor.java @@ -1,8 +1,15 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.basic; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; import gregtech.api.enums.Dyes; import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.modularui.IAddGregtechLogo; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GT_RenderedTexture; @@ -10,15 +17,13 @@ import gregtech.api.util.GT_ModHandler; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_SteamCondenser; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_SteamCondenser; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.generators.GregtechMetaBoilerBase; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidHandler; -public class GregtechMetaCondensor extends GregtechMetaBoilerBase { +public class GregtechMetaCondensor extends GregtechMetaBoilerBase implements IAddGregtechLogo { public GregtechMetaCondensor(final int aID, final String aName, final String aNameRegional) { super(aID, aName, aNameRegional, "A Steam condenser - [IC2->Steam]", new ITexture[0]); @@ -77,18 +82,6 @@ public class GregtechMetaCondensor extends GregtechMetaBoilerBase { } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_SteamCondenser(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_SteamCondenser(aPlayerInventory, aBaseMetaTileEntity, "SteelBoiler.png"); - } - - @Override public MetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) { return new GregtechMetaCondensor(this.mName, this.mTier, this.mDescription, this.mTextures); } @@ -177,4 +170,60 @@ public class GregtechMetaCondensor extends GregtechMetaBoilerBase { } return super.fill(aFluid, doFill); } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addGregTechLogo(ModularWindow.Builder builder) {} + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(new SlotWidget(inventoryHandler, 0) + .setPos(43, 25) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_IN)) + .widget(new SlotWidget(inventoryHandler, 1) + .setPos(43, 61) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_OUT)) + .widget(new SlotWidget(inventoryHandler, 2) + .setPos(115, 61) + .setBackground(getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_COAL)) + .widget(new SlotWidget(inventoryHandler, 3) + .setPos(115, 25) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_DUST)) + .widget(new ProgressBar() + .setProgress(() -> mSteam == null ? 0 : (float) mSteam.amount / getCapacity()) + .setTexture( + GTPP_UITextures.PROGRESSBAR_BOILER_EMPTY, GT_UITextures.PROGRESSBAR_BOILER_STEAM, 10) + .setDirection(ProgressBar.Direction.UP) + .setPos(70, 25) + .setSize(10, 54)) + .widget(new ProgressBar() + .setProgress(() -> mFluid == null ? 0 : (float) mFluid.amount / getCapacity()) + .setTexture( + GTPP_UITextures.PROGRESSBAR_BOILER_EMPTY, GT_UITextures.PROGRESSBAR_BOILER_WATER, 10) + .setDirection(ProgressBar.Direction.UP) + .setPos(83, 25) + .setSize(10, 54)) + .widget(new ProgressBar() + .setProgress(() -> (float) mTemperature / maxProgresstime()) + .setTexture(GTPP_UITextures.PROGRESSBAR_BOILER_EMPTY, GT_UITextures.PROGRESSBAR_BOILER_HEAT, 10) + .setDirection(ProgressBar.Direction.UP) + .setPos(96, 25) + .setSize(10, 54)) + .widget(new ProgressBar() + // cap minimum so that one can easily see there's fuel remaining + .setProgress( + () -> mProcessingEnergy > 0 ? Math.max((float) mProcessingEnergy / 1000, 1f / 5) : 0) + .setTexture(GTPP_UITextures.PROGRESSBAR_FUEL, 14) + .setDirection(ProgressBar.Direction.UP) + .setPos(116, 45) + .setSize(14, 14)) + .widget(new DrawableWidget() + .setDrawable(GTPP_UITextures.OVERLAY_SLOT_CANISTER_DARK) + .setPos(43, 43) + .setSize(18, 18)); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_ChemicalReactor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_ChemicalReactor.java index 2ae5e1e54a..b8df5ae9ff 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_ChemicalReactor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_ChemicalReactor.java @@ -10,11 +10,8 @@ import gregtech.api.util.GT_Recipe; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.slots.SlotChemicalPlantInput; -import gtPlusPlus.xmod.gregtech.api.gui.fluidreactor.Container_FluidReactor; -import gtPlusPlus.xmod.gregtech.api.gui.fluidreactor.GUI_FluidReactor; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.List; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; @@ -83,29 +80,6 @@ public class GregtechMetaTileEntity_ChemicalReactor extends GT_MetaTileEntity_Ba } @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - try { - Container_FluidReactor y = new Container_FluidReactor(aPlayerInventory, aBaseMetaTileEntity); - return y; - } catch (Throwable t) { - t.printStackTrace(); - } - return null; - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_FluidReactor( - aPlayerInventory, - aBaseMetaTileEntity, - this.getLocalName(), - this.mGUIName, - GT_Utility.isStringValid(this.mNEIName) - ? this.mNEIName - : (this.getRecipeList() != null ? this.getRecipeList().mUnlocalizedName : "")); - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeList() { return null; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_CompactFusionReactor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_CompactFusionReactor.java index eb52042b9b..39c6bb53dd 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_CompactFusionReactor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_CompactFusionReactor.java @@ -17,7 +17,6 @@ import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.ArrayList; import java.util.Random; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; @@ -681,18 +680,6 @@ public class GregtechMetaTileEntity_CompactFusionReactor extends GT_MetaTileEnti } @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - // TODO Auto-generated method stub - return super.getServerGUI(aID, aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - // TODO Auto-generated method stub - super.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ); - } - - @Override public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { return false; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_PocketFusion.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_PocketFusion.java index 08c9934db8..6ac99404ed 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_PocketFusion.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_PocketFusion.java @@ -18,7 +18,6 @@ import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.ArrayList; import java.util.Random; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; @@ -685,18 +684,6 @@ public class GregtechMetaTileEntity_PocketFusion extends GT_MetaTileEntity_Delux } @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - // TODO Auto-generated method stub - return super.getServerGUI(aID, aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) { - // TODO Auto-generated method stub - super.onScrewdriverRightClick(aSide, aPlayer, aX, aY, aZ); - } - - @Override public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) { return false; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java index 286a76f11b..4030f7cc11 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java @@ -62,16 +62,6 @@ public class GMTE_AmazonPackager extends GregtechMeta_MultiBlockBase<GMTE_Amazon } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "Generic3By3"; - } - - @Override public IStructureDefinition<GMTE_AmazonPackager> getStructureDefinition() { if (STRUCTURE_DEFINITION == null) { STRUCTURE_DEFINITION = StructureDefinition.<GMTE_AmazonPackager>builder() diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java index 8b8d12dbd5..1805c3dba4 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java @@ -75,16 +75,6 @@ public class GregtechMTE_TeslaTower extends GregtechMeta_MultiBlockBase<Gregtech return "Weaponized Lighting Rod"; } - @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - /*@Override public String[] getTooltip() { String casings = getCasingBlockItem().get(0).getDisplayName(); @@ -513,4 +503,9 @@ public class GregtechMTE_TeslaTower extends GregtechMeta_MultiBlockBase<Gregtech // TODO Auto-generated method stub return null; } + + @Override + public boolean doesBindPlayerInventory() { + return false; + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialAlloySmelter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialAlloySmelter.java index cf0ac58ec8..2100ec132a 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialAlloySmelter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialAlloySmelter.java @@ -15,7 +15,6 @@ import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.enums.HeatingCoilLevel; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -29,7 +28,6 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import java.util.ArrayList; import java.util.List; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import org.apache.commons.lang3.ArrayUtils; @@ -73,11 +71,6 @@ public class GregtechMetaTileEntity_IndustrialAlloySmelter return CASING_TEXTURE_ID; } - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine( - aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "MultiFurnace.png"); - } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sAlloySmelterRecipes; } @@ -103,16 +96,6 @@ public class GregtechMetaTileEntity_IndustrialAlloySmelter } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Alloy Smelter"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java index 48ad4eb7cd..2d9574a315 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java @@ -195,16 +195,6 @@ public class GregtechMetaTileEntity_IndustrialArcFurnace } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialExtruder"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return mPlasmaMode ? GT_Recipe.GT_Recipe_Map.sPlasmaArcFurnaceRecipes diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java index 77766449cc..cf41c87018 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java @@ -144,16 +144,6 @@ public class GregtechMetaTileEntity_IndustrialCentrifuge } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialCentrifuge"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GTPP_Recipe.GTPP_Recipe_Map.sMultiblockCentrifugeRecipes_GT; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialChisel.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialChisel.java index 64a57a24e1..1f12e10fca 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialChisel.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialChisel.java @@ -133,21 +133,6 @@ public class GregtechMetaTileEntity_IndustrialChisel return 90; } - @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "ImplosionCompressor"; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { return null; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java index d2828aa880..95a0024284 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java @@ -168,16 +168,6 @@ public class GregtechMetaTileEntity_IndustrialCokeOven } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "CokeOven"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GTPP_Recipe.GTPP_Recipe_Map.sCokeOvenRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java index 23abe86ee1..9f1ba02076 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java @@ -133,16 +133,6 @@ public class GregtechMetaTileEntity_IndustrialCuttingMachine } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialCuttingMachine"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return mCuttingMode ? GT_Recipe.GT_Recipe_Map.sCutterRecipes : GT_Recipe.GT_Recipe_Map.sSlicerRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java index f6d9de7345..d29c9d13e8 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java @@ -169,11 +169,6 @@ public class GregtechMetaTileEntity_IndustrialDehydrator } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override public String getMachineType() { return "Vacuum Furnace / Dehydrator"; } @@ -188,16 +183,6 @@ public class GregtechMetaTileEntity_IndustrialDehydrator return 50; } - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "ElectricBlastFurnace"; - } - public boolean checkRecipe(ItemStack aStack) { return checkRecipeGeneric(getMaxParallelRecipes(), getEuDiscountForParallelism(), 120); } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java index 95130a4218..00cb08ec32 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java @@ -128,16 +128,6 @@ public class GregtechMetaTileEntity_IndustrialElectrolyzer } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialElectrolyzer"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return gregtech.api.util.GTPP_Recipe.GTPP_Recipe_Map.sMultiblockElectrolyzerRecipes_GT; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java index ba69ebed0a..972f180321 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java @@ -137,16 +137,6 @@ public class GregtechMetaTileEntity_IndustrialExtruder } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialExtruder"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sExtruderRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialFluidHeater.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialFluidHeater.java index 7f22ee5057..a4e5b15b61 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialFluidHeater.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialFluidHeater.java @@ -143,16 +143,6 @@ public class GregtechMetaTileEntity_IndustrialFluidHeater } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialThermalCentrifuge"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sFluidHeaterRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialForgeHammer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialForgeHammer.java index e37d473f05..ea3402efb6 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialForgeHammer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialForgeHammer.java @@ -168,16 +168,6 @@ public class GregtechMetaTileEntity_IndustrialForgeHammer } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "MaterialPress"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sHammerRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java index 68241f7001..5aa487344a 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java @@ -187,16 +187,6 @@ public class GregtechMetaTileEntity_IndustrialMacerator } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "MacerationStack"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sMaceratorRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java index 60898f1dc9..2e687e1e25 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java @@ -142,16 +142,6 @@ public class GregtechMetaTileEntity_IndustrialMixer } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialMixer"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return gregtech.api.util.GTPP_Recipe.GTPP_Recipe_Map.sMultiblockMixerRecipes_GT; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMolecularTransformer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMolecularTransformer.java index 82d42c0bc0..29650598e7 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMolecularTransformer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMolecularTransformer.java @@ -187,21 +187,6 @@ public class GregtechMetaTileEntity_IndustrialMolecularTransformer return 44; } - @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GTPP_Recipe_Map.sMolecularTransformerRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java index 145d82f671..4885270bb7 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java @@ -174,16 +174,6 @@ public class GregtechMetaTileEntity_IndustrialMultiMachine } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "Generic3By3"; - } - - @Override public boolean checkRecipe(final ItemStack aStack) { ArrayList<FluidStack> tFluids = getStoredFluids(); // Logger.MACHINE_INFO("1"); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java index 074ea2bbf6..86a9c517a0 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java @@ -139,16 +139,6 @@ public class GregtechMetaTileEntity_IndustrialPlatePress } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "MaterialPress"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return mFormingMode ? GT_Recipe.GT_Recipe_Map.sPressRecipes : GT_Recipe.GT_Recipe_Map.sBenderRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java index 5f4ad64a21..3a7fc25f11 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java @@ -130,16 +130,6 @@ public class GregtechMetaTileEntity_IndustrialSifter } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialSifter"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sSifterRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSinter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSinter.java index 91698e4a0c..95672d5e48 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSinter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSinter.java @@ -45,11 +45,6 @@ extends GT_MetaTileEntity_MultiBlockBase { } @Override - public Object getClientGUI(final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "WireFactory.png"); - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sWiremillRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java index f8c1d0d64d..6359679149 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java @@ -135,16 +135,6 @@ public class GregtechMetaTileEntity_IndustrialThermalCentrifuge } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialThermalCentrifuge"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sThermalCentrifugeRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java index 301e1996cd..ecd1f2403c 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java @@ -184,21 +184,6 @@ public class GregtechMetaTileEntity_IndustrialVacuumFreezer return CASING_TEXTURE_ID; } - @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "VacuumFreezer"; - } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GTPP_Recipe.GTPP_Recipe_Map.sAdvFreezerRecipes_GT; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java index e5cb30d41b..fe8329bf5f 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java @@ -149,16 +149,6 @@ public class GregtechMetaTileEntity_IndustrialWashPlant } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialWashPlant"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return mMode == 0 ? GT_Recipe.GT_Recipe_Map.sOreWasherRecipes diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java index 7107e09bdb..f6bade9ab1 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java @@ -140,16 +140,6 @@ public class GregtechMetaTileEntity_IndustrialWireMill } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "IndustrialWireFactory"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sWiremillRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IronBlastFurnace.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IronBlastFurnace.java index 439ab234cf..03c6f813fc 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IronBlastFurnace.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IronBlastFurnace.java @@ -1,10 +1,17 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.processing; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.OrePrefixes; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GT_ItemStack; @@ -13,18 +20,16 @@ import gregtech.api.util.GT_OreDictUnificator; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_IronBlastFurnace; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_IronBlastFurnace; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public class GregtechMetaTileEntity_IronBlastFurnace extends MetaTileEntity { +public class GregtechMetaTileEntity_IronBlastFurnace extends MetaTileEntity implements IAddUIWidgets { private static final ITexture[] FACING_SIDE = {new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top)}; private static final ITexture[] FACING_FRONT = {new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Redstone_Off) }; @@ -189,25 +194,10 @@ public class GregtechMetaTileEntity_IronBlastFurnace extends MetaTileEntity { @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } - aBaseMetaTileEntity.openGUI(aPlayer); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); return true; } - @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_IronBlastFurnace(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_IronBlastFurnace(aPlayerInventory, aBaseMetaTileEntity); - } - private boolean checkMachine() { final int xDir = ForgeDirection.getOrientation(this.getBaseMetaTileEntity().getBackFacing()).offsetX; @@ -534,4 +524,32 @@ public class GregtechMetaTileEntity_IronBlastFurnace extends MetaTileEntity { public byte getTileEntityBaseType() { return 0; } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(new SlotWidget(inventoryHandler, 0) + .setBackground(getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_INGOT) + .setPos(33, 15)) + .widget(new SlotWidget(inventoryHandler, 1) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_FURNACE) + .setPos(33, 33)) + .widget(new SlotWidget(inventoryHandler, 2) + .setAccess(true, false) + .setBackground(getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_INGOT) + .setPos(85, 24)) + .widget(new SlotWidget(inventoryHandler, 3) + .setAccess(true, false) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_DUST) + .setPos(103, 24)) + .widget(new ProgressBar() + .setTexture(GTPP_UITextures.PROGRESSBAR_ARROW_2, 20) + .setProgress(() -> (float) mProgresstime / mMaxProgresstime) + .setPos(58, 24) + .setSize(20, 18)); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java index a4cba60885..d887e64579 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java @@ -417,16 +417,6 @@ public class GregtechMetaTileEntity_IsaMill extends GregtechMeta_MultiBlockBase< } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Grinding Machine"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java index 7755dc925a..09a2fdf83d 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java @@ -10,7 +10,6 @@ import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructa import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.IHatchElement; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -28,7 +27,6 @@ import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.ArrayList; import java.util.List; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.FluidStack; @@ -160,12 +158,6 @@ public class GregtechMetaTileEntity_SpargeTower extends GregtechMeta_MultiBlockB } @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine( - aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "DistillationTower.png"); - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { if (GTPP_Recipe_Map.sSpargeTowerRecipes.mRecipeList.isEmpty()) { generateRecipes(); @@ -419,21 +411,6 @@ public class GregtechMetaTileEntity_SpargeTower extends GregtechMeta_MultiBlockB } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - - @Override public String getMachineType() { return "Gas Sparger"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_AssemblyLine.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_AssemblyLine.java index 70551220ca..df3990530f 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_AssemblyLine.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_AssemblyLine.java @@ -6,7 +6,6 @@ import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -23,7 +22,6 @@ import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.Gregtech import java.util.ArrayList; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; @@ -118,11 +116,6 @@ public class GregtechMetaTileEntity_Adv_AssemblyLine return 16; } - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine( - aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "AssemblyLine.png"); - } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { return null; } @@ -640,16 +633,6 @@ public class GregtechMetaTileEntity_Adv_AssemblyLine } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Assembly Line"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java index 677d90f448..24588d6d2e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java @@ -12,7 +12,6 @@ import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.IHatchElement; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; @@ -31,7 +30,6 @@ import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.Gregtech import java.util.ArrayList; import java.util.List; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; @@ -262,14 +260,6 @@ public class GregtechMetaTileEntity_Adv_DistillationTower return check; } - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine( - aPlayerInventory, - aBaseMetaTileEntity, - getLocalName() + (mUpgraded ? " T2" : ""), - "MultiblockDisplay.png"); - } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { return mMode.getRecipeMap(); } @@ -396,21 +386,6 @@ public class GregtechMetaTileEntity_Adv_DistillationTower } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "DistillationTower"; - } - - @Override public String getMachineType() { return "Distillery, Distillation Tower"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java index 41a60926b2..5e2b984a69 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java @@ -212,21 +212,6 @@ public class GregtechMetaTileEntity_Adv_EBF extends GregtechMeta_MultiBlockBase< return CASING_TEXTURE_ID; } - @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "ElectricBlastFurnace"; - } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sBlastRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java index 002cffb816..553a6a965c 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java @@ -8,7 +8,6 @@ import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.GregTech_API; import gregtech.api.enums.TAE; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -22,7 +21,6 @@ import gtPlusPlus.core.material.ALLOY; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import net.minecraft.block.Block; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -170,12 +168,6 @@ public class GregtechMetaTileEntity_Adv_HeatExchanger } @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine( - aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeHeatExchanger.png"); - } - - @Override public boolean isCorrectMachinePart(ItemStack aStack) { return true; } @@ -380,16 +372,6 @@ public class GregtechMetaTileEntity_Adv_HeatExchanger } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Heat Exchanger"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java index a005f36b1e..5f4f0466c1 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java @@ -126,21 +126,6 @@ public class GregtechMetaTileEntity_Adv_Implosion return 48; } - @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "ImplosionCompressor"; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GT_Recipe.GT_Recipe_Map.sImplosionRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java index 1cb4520d25..82631d81bf 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java @@ -635,14 +635,4 @@ public class GT4Entity_AutoCrafter extends GregtechMeta_MultiBlockBase<GT4Entity AC_Helper_Utils.removeCrafter(this); super.doExplosion(aExplosionPower); } - - @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "Generic3By3"; - } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java index c499d01937..b21ee6b6ea 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java @@ -25,7 +25,6 @@ import gtPlusPlus.core.material.MISC_MATERIALS; import gtPlusPlus.core.util.minecraft.FluidUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; -import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.Fluid; @@ -39,10 +38,6 @@ public class GT4Entity_ThermalBoiler extends GregtechMeta_MultiBlockBase<GT4Enti private static IStructureDefinition<GT4Entity_ThermalBoiler> STRUCTURE_DEFINITION = null; private int mSuperEfficencyIncrease = 0; - public void onRightclick(EntityPlayer aPlayer) { - getBaseMetaTileEntity().openGUI(aPlayer, 158); - } - public GT4Entity_ThermalBoiler(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); } @@ -359,14 +354,4 @@ public class GT4Entity_ThermalBoiler extends GregtechMeta_MultiBlockBase<GT4Enti } super.onPostTick(aBaseMetaTileEntity, aTick); } - - @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "Generic3By3"; - } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_ElementalDuplicator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_ElementalDuplicator.java index 235aa40fd3..c5e700d711 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_ElementalDuplicator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_ElementalDuplicator.java @@ -313,21 +313,6 @@ public class GregtechMTE_ElementalDuplicator extends GregtechMeta_MultiBlockBase return CASING_TEXTURE_ID; } - @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public boolean requiresVanillaGtGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GTPP_Recipe_Map.sElementalDuplicatorRecipes; } @@ -766,4 +751,9 @@ public class GregtechMTE_ElementalDuplicator extends GregtechMeta_MultiBlockBase return false; } + + @Override + public boolean doesBindPlayerInventory() { + return false; + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FastNeutronReactor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FastNeutronReactor.java index 0d065f6e4b..69d93ce06d 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FastNeutronReactor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FastNeutronReactor.java @@ -24,11 +24,6 @@ extends GregtechMeta_MultiBlockBase } @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new GregtechMTE_FastNeutronReactor(this.mName); @@ -209,10 +204,5 @@ extends GregtechMeta_MultiBlockBase super.onPostTick(aBaseMetaTileEntity, aTick); } - @Override - public boolean hasSlotInGUI() { - return false; - } - } */ diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FrothFlotationCell.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FrothFlotationCell.java index bee968d0e2..d7abb28977 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FrothFlotationCell.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FrothFlotationCell.java @@ -100,11 +100,6 @@ public class GregtechMTE_FrothFlotationCell extends GregtechMeta_MultiBlockBase< } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GTPP_Recipe.GTPP_Recipe_Map.sFlotationCellRecipes; } @@ -187,11 +182,6 @@ public class GregtechMTE_FrothFlotationCell extends GregtechMeta_MultiBlockBase< } @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_LargeNaqReactor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_LargeNaqReactor.java index 57529d1900..92b3729cc2 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_LargeNaqReactor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_LargeNaqReactor.java @@ -82,11 +82,6 @@ public class GregtechMTE_LargeNaqReactor extends GregtechMeta_MultiBlockBase { : new ITexture[]{BlockIcons.getCasingTextureForId(TAE.getIndexFromPage(3, 0))}; } - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), - "AssemblyLine.png"); - } - public GT_Recipe_Map getRecipeMap() { return null; } @@ -460,16 +455,6 @@ public class GregtechMTE_LargeNaqReactor extends GregtechMeta_MultiBlockBase { } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Reactor"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_MiniFusionPlant.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_MiniFusionPlant.java index 8f0a2802d4..bdbedbc36e 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_MiniFusionPlant.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_MiniFusionPlant.java @@ -84,16 +84,6 @@ public class GregtechMTE_MiniFusionPlant extends GregtechMeta_MultiBlockBase { } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Fusion Reactor"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java index 5e342d7451..6cc8d4fc11 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java @@ -171,16 +171,6 @@ public class GregtechMTE_NuclearReactor extends GregtechMeta_MultiBlockBase<Greg return new ITexture[] {Textures.BlockIcons.getCasingTextureForId(TAE.GTPP_INDEX(12))}; } - @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "MatterFabricator"; - } - public final boolean addNuclearReactorEdgeList(IGregTechTileEntity aTileEntity, int aBaseCasingIndex) { if (aTileEntity == null) { return false; diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityGeneratorArray.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityGeneratorArray.java index e4c392f8b5..279ab77b9c 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityGeneratorArray.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityGeneratorArray.java @@ -88,21 +88,6 @@ public class GregtechMetaTileEntityGeneratorArray } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "ProcessingArray"; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { this.mMode = getModeFromInventorySlot(this.getGUIItemStack()); if (this.mMode == MODE_NONE) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java index 51fd573dbc..f5e45fa710 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java @@ -129,21 +129,6 @@ public class GregtechMetaTileEntityTreeFarm extends GregtechMeta_MultiBlockBase< } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "VacuumFreezer"; - } - - @Override public boolean isCorrectMachinePart(final ItemStack aStack) { // is correct part && either not powered tool or have enough power if (TreeFarmHelper.isValidForGUI(aStack) diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java index 45c95d898e..b30f0c0625 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java @@ -164,21 +164,6 @@ public class GregtechMetaTileEntity_AlloyBlastSmelter } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "ElectricBlastFurnace"; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return GTPP_Recipe.GTPP_Recipe_Map.sAlloyBlastSmelterRecipes; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java index c111e7253f..86fd24f682 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java @@ -28,7 +28,6 @@ import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.Gregtech import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.ArrayList; import net.minecraft.block.Block; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; @@ -62,29 +61,6 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return super.getServerGUI(aID, aPlayerInventory, aBaseMetaTileEntity); - // return new CONTAINER_Cyclotron(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return super.getClientGUI(aID, aPlayerInventory, aBaseMetaTileEntity); - // return new GUI_Cyclotron(aPlayerInventory, aBaseMetaTileEntity, getLocalName(), - // Recipe_GT.Gregtech_Recipe_Map.sCyclotronRecipes.mNEIName); - } - - @Override public MetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) { return new GregtechMetaTileEntity_Cyclotron(this.mName); } @@ -440,4 +416,9 @@ public class GregtechMetaTileEntity_Cyclotron extends GregtechMeta_MultiBlockBas } return true; } + + @Override + public boolean doesBindPlayerInventory() { + return false; + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java index 4f1aa5cf95..8fcecf8721 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java @@ -190,16 +190,6 @@ public class GregtechMetaTileEntity_IndustrialFishingPond } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return null; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialRockBreaker.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialRockBreaker.java index 568b59ea6a..fcd7f5b452 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialRockBreaker.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialRockBreaker.java @@ -153,21 +153,6 @@ public class GregtechMetaTileEntity_IndustrialRockBreaker return TAE.GTPP_INDEX(16); } - @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public boolean requiresVanillaGtGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return "ElectricBlastFurnace"; - } - private static final GT_Recipe_Map sFakeRecipeMap = new GT_Recipe_Map( new HashSet<>(0), "gt.recipe.fakerockbreaker", @@ -518,7 +503,7 @@ public class GregtechMetaTileEntity_IndustrialRockBreaker @Override public ArrayList<ItemStack> getStoredInputs() { ArrayList<ItemStack> aInputs = super.getStoredInputs(); - if (this.hasSlotInGUI() && this.getGUIItemStack() != null) { + if (this.getGUIItemStack() != null) { aInputs.add(this.getGUIItemStack()); } return aInputs; diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeRocketEngine.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeRocketEngine.java index 0097422333..cf28aaf456 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeRocketEngine.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeRocketEngine.java @@ -34,7 +34,6 @@ import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.Gregtech import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.ArrayList; import net.minecraft.block.Block; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.Fluid; @@ -194,12 +193,6 @@ public class GregtechMetaTileEntity_LargeRocketEngine return this.getMaxEfficiency(aStack) > 0; } - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return super.getClientGUI(aID, aPlayerInventory, aBaseMetaTileEntity); - } - public static void setAir() { if (sAirFluidStack == null) { sAirFluidStack = FluidUtils.getFluidStack("air", 1); @@ -580,16 +573,6 @@ public class GregtechMetaTileEntity_LargeRocketEngine } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Rocket Engine"; } @@ -603,4 +586,9 @@ public class GregtechMetaTileEntity_LargeRocketEngine public int getEuDiscountForParallelism() { return 0; } + + @Override + public boolean doesBindPlayerInventory() { + return false; + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeSemifluidGenerator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeSemifluidGenerator.java index 6ec3d7470a..523560871f 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeSemifluidGenerator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeSemifluidGenerator.java @@ -17,7 +17,6 @@ import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -32,7 +31,6 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import java.util.ArrayList; import net.minecraft.block.Block; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; @@ -102,11 +100,6 @@ public class GregtechMetaTileEntity_LargeSemifluidGenerator return getMaxEfficiency(aStack) > 0; } - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine( - aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeDieselEngine.png"); - } - @Override public boolean checkRecipe(ItemStack aStack) { ArrayList<FluidStack> tFluids = getStoredFluids(); @@ -321,16 +314,6 @@ public class GregtechMetaTileEntity_LargeSemifluidGenerator } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Semifluid Generator"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_MassFabricator.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_MassFabricator.java index 66c8979e9e..58ef8e52f7 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_MassFabricator.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_MassFabricator.java @@ -11,6 +11,9 @@ import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructa import com.gtnewhorizon.structurelib.structure.IStructureDefinition; import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; +import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import com.gtnewhorizons.modularui.common.widget.TextWidget; import gregtech.api.enums.ConfigCategories; import gregtech.api.enums.Materials; import gregtech.api.enums.TAE; @@ -24,14 +27,11 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.minecraft.ItemUtils; import gtPlusPlus.core.util.minecraft.MaterialUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_MatterFab; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_MatterFab; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.ArrayList; import java.util.List; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.fluids.FluidStack; @@ -134,27 +134,6 @@ public class GregtechMetaTileEntity_MassFabricator } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "MatterFabricator"; - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_MatterFab(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "MatterFabricator.png"); - } - - @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_MatterFab(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override public void onConfigLoad(final GT_Config aConfig) { super.onConfigLoad(aConfig); sDurationMultiplier = aConfig.get( @@ -681,4 +660,31 @@ public class GregtechMetaTileEntity_MassFabricator mMode = aNBT.getInteger("mMode"); super.loadNBTData(aNBT); } + + @Override + protected void drawTexts(DynamicPositionedColumn screenElements, SlotWidget inventorySlot) { + super.drawTexts(screenElements, inventorySlot); + + screenElements + .widget(TextWidget.dynamicString(() -> "Scrap Made: " + mScrapProduced) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0 + && getBaseMetaTileEntity().isActive())) + .widget(TextWidget.dynamicString(() -> "Scrap Used: " + mScrapUsed) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0 + && getBaseMetaTileEntity().isActive())) + .widget(TextWidget.dynamicString(() -> "UUA Made: " + mAmplifierProduced) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0 + && getBaseMetaTileEntity().isActive())) + .widget(TextWidget.dynamicString(() -> "UUA Used: " + mAmplifierUsed) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0 + && getBaseMetaTileEntity().isActive())) + .widget(TextWidget.dynamicString(() -> "UUM Made: " + mMatterProduced) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> getBaseMetaTileEntity().getErrorDisplayID() == 0 + && getBaseMetaTileEntity().isActive())); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java index 9639351fbf..b557272c82 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java @@ -88,16 +88,6 @@ public class GregtechMetaTileEntity_Refinery extends GregtechMeta_MultiBlockBase } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return "MatterFabricator"; - } - - @Override public GT_Recipe_Map getRecipeMap() { return GTPP_Recipe.GTPP_Recipe_Map.sFissionFuelProcessing; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_SolarTower.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_SolarTower.java index 36c6d0bfa5..9b84d2c622 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_SolarTower.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_SolarTower.java @@ -540,16 +540,6 @@ public class GregtechMetaTileEntity_SolarTower extends GregtechMeta_MultiBlockBa } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return null; } @@ -838,4 +828,9 @@ public class GregtechMetaTileEntity_SolarTower extends GregtechMeta_MultiBlockBa "Internal Heat Level: " + this.mHeatLevel, "Connected Solar Reflectors: " + this.mSolarHeaters.size() }; } + + @Override + public boolean doesBindPlayerInventory() { + return false; + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java index 938bd969f2..bf1b923a81 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java @@ -223,11 +223,6 @@ public class GregtechMTE_AlgaePondBase extends GregtechMeta_MultiBlockBase<Gregt } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return null; } @@ -342,11 +337,6 @@ public class GregtechMTE_AlgaePondBase extends GregtechMeta_MultiBlockBase<Gregt } @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java index 50c10bab0d..fd7ebd6044 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java @@ -3,7 +3,6 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.b import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Textures; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.IIconContainer; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; @@ -25,7 +24,6 @@ import gtPlusPlus.core.util.minecraft.OreDictUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechItemList; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import net.minecraft.block.Block; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; @@ -83,12 +81,6 @@ public abstract class GregtechMetaTileEntity_BedrockMiningPlatformBase extends G return this.casingTextureIndex; } - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine( - aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "OreDrillingPlant.png"); - } - public int getAmountOfOutputs() { return 1; } @@ -613,16 +605,6 @@ public abstract class GregtechMetaTileEntity_BedrockMiningPlatformBase extends G } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Miner"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java index 4bdbf5e2d6..145e3c09e9 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java @@ -449,11 +449,6 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase<Gregt } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { if (GTPP_Recipe.GTPP_Recipe_Map.sChemicalPlant_GT.mRecipeList.size() == 0) { generateRecipes(); @@ -564,11 +559,6 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase<Gregt return false; } - @Override - public String getCustomGUIResourceName() { - return null; - } - // Same speed bonus as pyro oven public int getSpeedBonus() { return 50 * (this.mCoilTier - 1); @@ -1022,7 +1012,7 @@ public class GregtechMTE_ChemicalPlant extends GregtechMeta_MultiBlockBase<Gregt @Override public ArrayList<ItemStack> getStoredInputs() { ArrayList<ItemStack> tItems = super.getStoredInputs(); - if (this.hasSlotInGUI() && this.getGUIItemStack() != null) { + if (this.getGUIItemStack() != null) { tItems.add(this.getGUIItemStack()); } for (GT_MetaTileEntity_Hatch_Catalysts tHatch : mCatalystBuses) { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Gas.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Gas.java index 690ddb0919..31715246fc 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Gas.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Gas.java @@ -140,11 +140,6 @@ public class GT_MTE_LargeTurbine_Gas extends GregtechMetaTileEntity_LargerTurbin } @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Large Gas Turbine"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Plasma.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Plasma.java index 13efb8e276..cb011118b8 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Plasma.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Plasma.java @@ -247,11 +247,6 @@ public class GT_MTE_LargeTurbine_Plasma extends GregtechMetaTileEntity_LargerTur } @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Large Plasma Turbine"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_SCSteam.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_SCSteam.java index 694cdf8f6b..c5b4697b1c 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_SCSteam.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_SCSteam.java @@ -94,11 +94,6 @@ public class GT_MTE_LargeTurbine_SCSteam extends GregtechMetaTileEntity_LargerTu } @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Large Supercritical Steam Turbine"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_SHSteam.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_SHSteam.java index c9fd85d00f..d913abf9a8 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_SHSteam.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_SHSteam.java @@ -167,11 +167,6 @@ public class GT_MTE_LargeTurbine_SHSteam extends GregtechMetaTileEntity_LargerTu } @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Large Super-heated Steam Turbine"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Steam.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Steam.java index 70c34c00a6..cb58c8acc5 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Steam.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Steam.java @@ -175,11 +175,6 @@ public class GT_MTE_LargeTurbine_Steam extends GregtechMetaTileEntity_LargerTurb } @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public String getMachineType() { return "Large Steam Turbine"; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GregtechMetaTileEntity_LargerTurbineBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GregtechMetaTileEntity_LargerTurbineBase.java index bc1639a052..08e0f336ce 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GregtechMetaTileEntity_LargerTurbineBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GregtechMetaTileEntity_LargerTurbineBase.java @@ -12,7 +12,6 @@ import com.gtnewhorizon.structurelib.structure.ISurvivalBuildEnvironment; import com.gtnewhorizon.structurelib.structure.StructureDefinition; import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; -import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -38,7 +37,6 @@ import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.Gregtech import java.util.ArrayList; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -262,11 +260,6 @@ public abstract class GregtechMetaTileEntity_LargerTurbineBase return getMaxEfficiency(aStack) > 0; } - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_MultiMachine( - aPlayerInventory, aBaseMetaTileEntity, getLocalName(), "LargeTurbine.png"); - } - public Block getCasingBlock() { return ModBlocks.blockSpecialMultiCasings; } @@ -275,11 +268,6 @@ public abstract class GregtechMetaTileEntity_LargerTurbineBase return ModBlocks.blockSpecialMultiCasings; } - @Override - public final boolean hasSlotInGUI() { - return true; - } - public abstract int getCasingMeta(); public byte getTurbineShaftMeta() { diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_MultiTank.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_MultiTank.java index 4ec9d0347f..d7e4a45191 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_MultiTank.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_MultiTank.java @@ -202,16 +202,6 @@ else { } @Override - public boolean hasSlotInGUI() { - return false; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public GT_Recipe.GT_Recipe_Map getRecipeMap() { return null; } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java index b2cd2b9369..4a02190bf5 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java @@ -13,9 +13,21 @@ import com.gtnewhorizon.structurelib.StructureLibAPI; import com.gtnewhorizon.structurelib.alignment.constructable.ChannelDataAccessor; import com.gtnewhorizon.structurelib.alignment.constructable.ISurvivalConstructable; import com.gtnewhorizon.structurelib.structure.*; +import com.gtnewhorizons.modularui.api.drawable.Text; +import com.gtnewhorizons.modularui.api.forge.PlayerMainInvWrapper; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; +import com.gtnewhorizons.modularui.common.widget.SlotGroup; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import com.gtnewhorizons.modularui.common.widget.TextWidget; import gregtech.api.enums.GT_Values; import gregtech.api.enums.TAE; import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -36,13 +48,11 @@ import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.preloader.asm.AsmConfig; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_PowerSubStation; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_PowerSubStation; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMeta_MultiBlockBase; import javax.annotation.Nullable; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; @@ -141,37 +151,12 @@ public class GregtechMetaTileEntity_PowerSubStationController } @Override - public boolean hasSlotInGUI() { - return true; - } - - @Override - public String getCustomGUIResourceName() { - return null; - } - - @Override public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { // if (mBatteryCapacity <= 0) return false; - if (!aBaseMetaTileEntity.isClientSide()) { - aBaseMetaTileEntity.openGUI(aPlayer); - } + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); return true; } - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_PowerSubStation( - aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "Ergon Energy - Sub Station"); - } - - @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_PowerSubStation(aPlayerInventory, aBaseMetaTileEntity); - } - private void checkMachineProblem(String msg, int xOff, int yOff, int zOff) { final IGregTechTileEntity te = this.getBaseMetaTileEntity(); final Block tBlock = te.getBlockOffset(xOff, yOff, zOff); @@ -838,4 +823,97 @@ public class GregtechMetaTileEntity_PowerSubStationController PlayerUtils.messagePlayer(aPlayer, "Sub-Station is now inputting power into the controller."); } } + + @Override + public boolean doesBindPlayerInventory() { + return false; + } + + @Override + public int getGUIWidth() { + return 196; + } + + @Override + public int getGUIHeight() { + return 191; + } + + @Override + public void addGregTechLogo(ModularWindow.Builder builder) { + builder.widget(new DrawableWidget() + .setDrawable(getGUITextureSet().getGregTechLogo()) + .setSize(17, 17) + .setPos(175, 166)); + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) + .setPos(4, 4) + .setSize(149, 149)) + .widget(new SlotWidget(inventoryHandler, 0).setPos(154, 4)) + .widget(new SlotWidget(inventoryHandler, 1) + .setAccess(true, false) + .setPos(154, 22)) + .widget(SlotGroup.ofItemHandler(new PlayerMainInvWrapper(buildContext.getPlayer().inventory), 9) + .endAtSlot(8) + .build() + .setPos(7, 166)) + .widget(TextWidget.dynamicString(() -> getBaseMetaTileEntity().getErrorDisplayID() == 0 + ? getBaseMetaTileEntity().isActive() ? "Running perfectly" : "Turn on with Mallet" + : "") + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(10, 8)) + .widget(new FakeSyncWidget.BooleanSyncer( + () -> getBaseMetaTileEntity().isActive(), + val -> getBaseMetaTileEntity().setActive(val))) + .widget(new FakeSyncWidget.IntegerSyncer( + () -> getBaseMetaTileEntity().getErrorDisplayID(), + val -> getBaseMetaTileEntity().setErrorDisplayID(val))) + .widget(new TextWidget("In") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(178, 10)) + .widget(new TextWidget("Out") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(176, 28)) + .widget(TextWidget.dynamicString( + () -> "Avg In: " + GT_Utility.formatNumbers(getAverageEuAdded()) + " EU") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(10, 20)) + .widget(TextWidget.dynamicString( + () -> "Avg Out: " + GT_Utility.formatNumbers(getAverageEuConsumed()) + " EU") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(10, 30)) + .widget(new DrawableWidget() + .setDrawable(GTPP_UITextures.PICTURE_ENERGY_FRAME) + .setPos(4, 155) + .setSize(149, 7)) + .widget(new ProgressBar() + .setProgress(this::getProgress) + .setTexture(GTPP_UITextures.PROGRESSBAR_PSS_ENERGY, 147) + .setDirection(ProgressBar.Direction.RIGHT) + .setPos(5, 156) + .setSize(147, 5)) + .widget(new TextWidget("Stored:") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(10, 132)) + .widget(TextWidget.dynamicText(() -> { + int colorScale = (int) (getProgress() * 100 * 2.55); + return new Text(GT_Utility.formatNumbers( + getBaseMetaTileEntity().getStoredEU()) + " EU") + .color(Utils.rgbtoHexValue((255 - colorScale), colorScale, 0)); + }) + .setPos(10, 142)) + .widget(TextWidget.dynamicString(() -> GT_Utility.formatNumbers(getProgress()) + "%") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(70, 155)); + } + + private float getProgress() { + return (float) getBaseMetaTileEntity().getStoredEU() + / getBaseMetaTileEntity().getEUCapacity(); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/misc/GT_TileEntity_ComputerCube.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/misc/GT_TileEntity_ComputerCube.java index 4a24de7c5a..6aec31dc1b 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/misc/GT_TileEntity_ComputerCube.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/misc/GT_TileEntity_ComputerCube.java @@ -4,10 +4,24 @@ import static gregtech.api.enums.GT_Values.V; import static gregtech.api.util.GT_Recipe.GT_Recipe_Map.sScannerFakeRecipes; import Ic2ExpReactorPlanner.SimulationData; +import com.gtnewhorizons.modularui.api.ModularUITextures; +import com.gtnewhorizons.modularui.api.forge.IItemHandlerModifiable; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; +import com.gtnewhorizons.modularui.common.widget.ButtonWidget; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.ProgressBar; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import com.gtnewhorizons.modularui.common.widget.TextWidget; import cpw.mods.fml.common.FMLCommonHandler; import gregtech.api.GregTech_API; import gregtech.api.enums.*; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.modularui.IAddGregtechLogo; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; @@ -17,24 +31,27 @@ import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import gregtech.common.items.behaviors.Behaviour_DataOrb; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.lib.CORE; +import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.xmod.gregtech.api.gui.computer.GT_Container_ComputerCube; -import gtPlusPlus.xmod.gregtech.api.gui.computer.GT_GUIContainer_ComputerCube; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; +import gtPlusPlus.xmod.gregtech.api.gui.widget.DataStickSlotWidget; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import gtPlusPlus.xmod.gregtech.common.computer.GT_Computercube_Description; import gtPlusPlus.xmod.gregtech.common.computer.GT_Computercube_Simulator; import java.util.ArrayList; import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.init.Items; +import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; -public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { +public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank implements IAddGregtechLogo { public static int MODE_MAIN = 0; public static int MODE_REACTOR_PLANNER = 1; @@ -92,20 +109,6 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - Logger.INFO("CC-Sever ID: " + aID); - return new GT_Container_ComputerCube(aPlayerInventory, aBaseMetaTileEntity, mMode); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - Logger.INFO("CC-Client ID: " + aID); - return new GT_GUIContainer_ComputerCube(aPlayerInventory, aBaseMetaTileEntity, mMode); - } - - @Override public String[] getDescription() { return new String[] { this.mDescription, @@ -119,10 +122,7 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } - aBaseMetaTileEntity.openGUI(aPlayer, mMode); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); return true; } @@ -1089,4 +1089,476 @@ public class GT_TileEntity_ComputerCube extends GT_MetaTileEntity_BasicTank { private ItemStack getSpecialSlot() { return this.mInventory[54]; } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addGregTechLogo(ModularWindow.Builder builder) {} + + @Override + public int getGUIWidth() { + return mMode == 5 ? 226 : 176; + } + + @Override + public boolean doesBindPlayerInventory() { + return mMode != 1 && mMode != 5; + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + switch (mMode) { + case 0: + addPage0(builder); + break; + case 1: + addPage1(builder); + break; + case 2: + addPage2(builder); + break; + case 3: + addPage3(builder); + break; + case 4: + addPage4(builder); + break; + case 5: + addPage5(builder); + break; + case 6: + addPage6(builder); + break; + } + + builder.widget(new ButtonWidget() + .setOnClick((clickData, widget) -> { + if (clickData.mouseButton == 0) { + switchModeForward(); + } else if (clickData.mouseButton == 1) { + switchModeBackward(); + } + if (!widget.isClient()) { + GT_UIInfos.openGTTileEntityUI( + getBaseMetaTileEntity(), widget.getContext().getPlayer()); + } + }) + .setBackground(GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_COMPUTER_MODE) + .setPos(156 + (mMode == 5 ? 50 : 0), 4) + .setSize(16, 16)); + } + + private void addPage0(ModularWindow.Builder builder) { + builder.widget(new DrawableWidget() + .setDrawable(GTPP_UITextures.PICTURE_COMPUTER_TOP) + .setPos(32, 4) + .setSize(112, 76)) + .widget(new ProgressBar() + .setProgress(() -> (float) getBaseMetaTileEntity().getStoredEU() + / getBaseMetaTileEntity().getEUCapacity()) + .setTexture(GTPP_UITextures.PROGRESSBAR_COMPUTER_ENERGY, 96) + .setDirection(ProgressBar.Direction.RIGHT) + .setPos(44, 8) + .setSize(96, 5)) + .widget(new TextWidget("Solaris 1.7.10") + .setDefaultColor(Utils.rgbtoHexValue(100, 190, 255)) + .setPos(56, 70)); + } + + private void addPage1(ModularWindow.Builder builder) { + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) + .setPos(4, 103) + .setSize(150, 59)) + .widget(new DrawableWidget() + .setDrawable(ModularUITextures.ITEM_SLOT) + .setPos(4, 4) + .setSize(146, 98)) + .widget(new DrawableWidget() + .setDrawable(GTPP_UITextures.PICTURE_V202) + .setPos(155, 103) + .setSize(17, 5)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> saveNuclearReactor()) + .setBackground(GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_SAVE) + .setPos(156, 54) + .setSize(16, 16)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> loadNuclearReactor()) + .setBackground(GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_LOAD) + .setPos(156, 70) + .setSize(16, 16)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> switchNuclearReactor()) + .setBackground( + GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_NUCLEAR_SWITCH) + .setPos(156, 86) + .setSize(16, 16)); + SlotWidget displaySlot = new NuclearSlotWidget(inventoryHandler, 54, null); + for (int i = 0; i < 9 * 6; i++) { + builder.widget(new NuclearSlotWidget(inventoryHandler, i, displaySlot.getMcSlot()) + .setBackground(GT_UITextures.TRANSPARENT) + .setPos(5 + (i % 9) * 16, 5 + (i / 9) * 16)); + } + builder.widget(displaySlot + .setBackground(getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_ARROW_4) + .setPos(152, 27)); + builder.widget(new TextWidget("Reactorstats:") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 108)) + .widget(TextWidget.dynamicString(() -> GT_Utility.formatNumbers(mEU) + "EU at " + mEUOut + "EU/t") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 120)) + .widget(TextWidget.dynamicString(() -> "HEM: " + (mHEM / 10000.0F)) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 128)) + .widget(TextWidget.dynamicString(() -> + GT_Utility.formatNumbers(mHeat) + "/" + GT_Utility.formatNumbers(mMaxHeat) + "Heat") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 136)) + .widget(TextWidget.dynamicString(() -> "Explosionpower: " + (mExplosionStrength / 100.0F)) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 144)) + .widget(TextWidget.dynamicString(() -> "Runtime: " + ((mProgress > 0) ? (mProgress / 20) : 0) + "secs") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 152)); + } + + private void addPage2(ModularWindow.Builder builder) { + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) + .setPos(48, 4) + .setSize(81, 67)); + builder.widget(new DataStickSlotWidget(inventoryHandler, 54).setPos(7, 27)) + .widget(new SlotWidget(inventoryHandler, 55) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_MICROSCOPE) + .setPos(25, 27)) + .widget(new SlotWidget(inventoryHandler, 56) + .setAccess(true, false) + .setPos(133, 27)) + .widget(new SlotWidget(inventoryHandler, 57) + .setAccess(true, false) + .setPos(151, 27)); + builder.widget(new TextWidget("Scanner") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> mProgress == 0) + .setPos(51, 7)) + .widget(new TextWidget("Can be used to") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> mProgress == 0) + .setPos(51, 24)) + .widget(new TextWidget("scan things") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> mProgress == 0) + .setPos(51, 32)) + .widget(new TextWidget("Currently") + .setDefaultColor(Utils.rgbtoHexValue(200, 20, 20)) + .setEnabled(widget -> mProgress == 0) + .setPos(51, 48)) + .widget(new TextWidget("Disabled") + .setDefaultColor(Utils.rgbtoHexValue(200, 20, 20)) + .setEnabled(widget -> mProgress == 0) + .setPos(51, 56)) + .widget(new TextWidget("Progress:") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> mProgress != 0) + .setPos(51, 24)) + .widget(TextWidget.dynamicString(() -> MathUtils.findPercentage( + mProgress, getBaseMetaTileEntity().getMaxProgress()) + + " %") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setEnabled(widget -> mProgress != 0) + .setPos(51, 32)) + .widget(new FakeSyncWidget.IntegerSyncer(() -> mProgress, val -> mProgress = val)); + } + + private void addPage3(ModularWindow.Builder builder) { + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) + .setPos(4, 4) + .setSize(86, 41)) + .widget(new DrawableWidget() + .setDrawable(GTPP_UITextures.PICTURE_ARROWS_SEPARATE) + .setPos(110, 23) + .setSize(40, 40)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> switchCentrifugePageBackward()) + .setBackground(GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_ARROW_LEFT) + .setPos(88, 65) + .setSize(16, 16)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> switchCentrifugePageForward()) + .setBackground( + GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_ARROW_RIGHT) + .setPos(104, 65) + .setSize(16, 16)) + .widget(SlotWidget.phantom(inventoryHandler, 59) + .disableInteraction() + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_CENTRIFUGE) + .setPos(121, 34)) + .widget(SlotWidget.phantom(inventoryHandler, 60) + .disableInteraction() + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_CANISTER) + .setPos(91, 4)) + .widget(SlotWidget.phantom(inventoryHandler, 61) + .disableInteraction() + .setPos(121, 4)) + .widget(SlotWidget.phantom(inventoryHandler, 62) + .disableInteraction() + .setPos(151, 34)) + .widget(SlotWidget.phantom(inventoryHandler, 63) + .disableInteraction() + .setPos(121, 64)) + .widget(SlotWidget.phantom(inventoryHandler, 64) + .disableInteraction() + .setPos(91, 34)) + .widget(new TextWidget("Centrifuge") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 7)) + .widget(TextWidget.dynamicString(() -> + "Recipe: " + (mMaxHeat + 1) + "/" + GT_Recipe_Map.sCentrifugeRecipes.mRecipeList.size()) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 23)) + .widget(TextWidget.dynamicString(() -> "EU: " + GT_Utility.formatNumbers(mEU)) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 31)); + } + + private void addPage4(ModularWindow.Builder builder) { + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) + .setPos(4, 4) + .setSize(116, 61)) + .widget(new DrawableWidget() + .setDrawable(GTPP_UITextures.PICTURE_ARROWS_FUSION) + .setPos(121, 23) + .setSize(29, 40)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> switchFusionPageBackward()) + .setBackground(GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_ARROW_LEFT) + .setPos(88, 65) + .setSize(16, 16)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> switchFusionPageForward()) + .setBackground( + GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_ARROW_RIGHT) + .setPos(104, 65) + .setSize(16, 16)) + .widget(SlotWidget.phantom(inventoryHandler, 59) + .disableInteraction() + .setPos(121, 4)) + .widget(SlotWidget.phantom(inventoryHandler, 60) + .disableInteraction() + .setPos(121, 64)) + .widget(SlotWidget.phantom(inventoryHandler, 61) + .disableInteraction() + .setPos(151, 34)) + .widget(new TextWidget("Fusionreactor") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 7)) + .widget(TextWidget.dynamicString(() -> "Recipe: " + (mMaxHeat + 1) + "/" + + GT_TileEntity_ComputerCube.sFusionReactorRecipes.size()) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 15)) + .widget(TextWidget.dynamicString(() -> "Start: " + GT_Utility.formatNumbers(mEU) + "EU") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 23)) + .widget(TextWidget.dynamicString(() -> "EU/t: " + GT_Utility.formatNumbers(mEUOut)) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 31)) + .widget(TextWidget.dynamicString(() -> GT_Utility.formatNumbers(mHeat) + " Ticks") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 39)) + .widget(TextWidget.dynamicString(() -> GT_TileEntity_ComputerCube.sFusionReactorRecipes + .get(mMaxHeat) + .mFluidOutputs[0] + .getLocalizedName()) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 55)) + .widget(TextWidget.dynamicString(() -> mEUOut < 0 + ? "IN: " + GT_Utility.formatNumbers(-mEUOut * mHeat) + "EU" + : "OUT: " + GT_Utility.formatNumbers(mEUOut * mHeat) + "EU") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 47)); + } + + private void addPage5(ModularWindow.Builder builder) { + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) + .setPos(4, 4) + .setSize(200, 141)) + .widget(new DrawableWidget() + .setDrawable(() -> mExplosionStrength != 0 ? GTPP_UITextures.PICTURE_COMPUTER_GRID : null) + .setPos(152, 6) + .setSize(50, 50)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> switchDescriptionPageBackward()) + .setBackground(GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_ARROW_LEFT) + .setPos(190, 146) + .setSize(16, 16)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> switchDescriptionPageForward()) + .setBackground( + GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_ARROW_RIGHT) + .setPos(206, 146) + .setSize(16, 16)); + for (int i = 0; i < 5; i++) { + builder.widget(SlotWidget.phantom(inventoryHandler, i + 59) + .disableInteraction() + .setPos(205, 37 + i * 18)); + } + for (int i = 0; i < 9; i++) { + builder.widget(SlotWidget.phantom(inventoryHandler, i + 64) + .disableInteraction() + .setBackground(GT_UITextures.TRANSPARENT) + .setPos(152 + (i % 3) * 16, 6 + (i / 3) * 16)); + } + int descriptionMaxLines = GT_Computercube_Description.sDescriptions.stream() + .sorted((d1, d2) -> d2.mDescription.length - d1.mDescription.length) + .collect(Collectors.toList()) + .get(0) + .mDescription + .length; + for (int i = 0; i < descriptionMaxLines; i++) { + final int index = i; + builder.widget(TextWidget.dynamicString(() -> { + if (mMaxHeat >= 0 && mMaxHeat < GT_Computercube_Description.sDescriptions.size()) { + String[] descriptions = + GT_Computercube_Description.sDescriptions.get(mMaxHeat).mDescription; + if (index < descriptions.length) { + return descriptions[index]; + } + } + return ""; + }) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 7 + index * 8)); + } + } + + private void addPage6(ModularWindow.Builder builder) { + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) + .setPos(4, 4) + .setSize(86, 41)) + .widget(new DrawableWidget() + .setDrawable(GTPP_UITextures.PICTURE_ARROWS_SEPARATE) + .setPos(110, 23) + .setSize(40, 40)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> switchElectrolyzerPageBackward()) + .setBackground(GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_ARROW_LEFT) + .setPos(88, 65) + .setSize(16, 16)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> switchElectrolyzerPageForward()) + .setBackground( + GTPP_UITextures.BUTTON_STANDARD_16x16, GTPP_UITextures.OVERLAY_BUTTON_ARROW_RIGHT) + .setPos(104, 65) + .setSize(16, 16)) + .widget(SlotWidget.phantom(inventoryHandler, 59) + .disableInteraction() + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_CHARGER) + .setPos(121, 34)) + .widget(SlotWidget.phantom(inventoryHandler, 60) + .disableInteraction() + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_CANISTER) + .setPos(91, 4)) + .widget(SlotWidget.phantom(inventoryHandler, 61) + .disableInteraction() + .setPos(121, 4)) + .widget(SlotWidget.phantom(inventoryHandler, 62) + .disableInteraction() + .setPos(151, 34)) + .widget(SlotWidget.phantom(inventoryHandler, 63) + .disableInteraction() + .setPos(121, 64)) + .widget(SlotWidget.phantom(inventoryHandler, 64) + .disableInteraction() + .setPos(91, 34)) + .widget(new TextWidget("Electrolyzer") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 7)) + .widget(TextWidget.dynamicString(() -> "Recipe: " + (mMaxHeat + 1) + "/" + + GT_Recipe_Map.sElectrolyzerRecipes.mRecipeList.size()) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 23)) + .widget(TextWidget.dynamicString(() -> "EU: " + GT_Utility.formatNumbers(mEU)) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(7, 31)); + } + + private class NuclearSlotWidget extends SlotWidget { + + private final Slot displaySlot; + + public NuclearSlotWidget(IItemHandlerModifiable handler, int index, Slot displaySlot) { + super(BaseSlot.phantom(handler, index)); + if (displaySlot != null) { + this.displaySlot = displaySlot; + } else { + this.displaySlot = getMcSlot(); + } + } + + @Override + protected void phantomClick(ClickData clickData, ItemStack cursorStack) { + final int aSlotIndex = getMcSlot().getSlotIndex() + 4; + final Slot tSlot = getMcSlot(); + final ItemStack tStack = tSlot.getStack(); + if (clickData.shift) { + tSlot.putStack(null); + getSimulator().slotClick(aSlotIndex, null); + return; + } + if (clickData.mouseButton == 1) { + tSlot.putStack(null); + } + if (clickData.mouseButton == 0) { + if (tStack == null) { + if (displaySlot.getStack() != null && aSlotIndex != 58) { + tSlot.putStack(displaySlot.getStack().copy()); + getSimulator() + .slotClick( + aSlotIndex, + new GT_ItemStack(displaySlot.getStack().copy())); + } else { + tSlot.putStack(new ItemStack(GT_TileEntity_ComputerCube.sReactorList.get(0).mItem, 1)); + getSimulator().slotClick(aSlotIndex, GT_TileEntity_ComputerCube.sReactorList.get(0)); + } + return; + } + for (int i = 1; i < GT_TileEntity_ComputerCube.sReactorList.size(); i++) { + if (GT_TileEntity_ComputerCube.sReactorList.get(i - 1).mItem == tStack.getItem()) { + tSlot.putStack(new ItemStack(GT_TileEntity_ComputerCube.sReactorList.get(i).mItem, 1, 0)); + getSimulator().slotClick(aSlotIndex, GT_TileEntity_ComputerCube.sReactorList.get(i)); + /*if (tSlot.getStack() != null && tSlot.getStack().getItem() == GT_ModHandler.getIC2Item("reactorIsotopeCell", 1).getItem()) { + tSlot.getStack().setItemDamage(tSlot.getStack().getMaxDamage() - 1); + }*/ + return; + } + } + tSlot.putStack(null); + getSimulator().slotClick(aSlotIndex, null); + return; + } + if (tStack == null) return; + if (tStack.stackSize < tStack.getMaxStackSize()) { + tStack.stackSize++; + return; + } + tStack.stackSize = 1; + } + + @Override + protected void handleDragAndDropServer(ClickData clickData, ItemStack draggedStack) {} + + @Override + public List<String> getExtraTooltip() { + return Collections.emptyList(); + } + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneBase.java index 2f88c6a784..9846813ba0 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneBase.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneBase.java @@ -6,7 +6,6 @@ import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachi import gregtech.api.objects.GT_ItemStack; import gtPlusPlus.core.lib.CORE; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -83,22 +82,6 @@ public abstract class GT_MetaTileEntity_RedstoneBase extends GT_MetaTileEntity_T } @Override - public Object getServerGUI( - int aID, - InventoryPlayer aPlayerInventory, - gregtech.api.interfaces.tileentity.IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public Object getClientGUI( - int aID, - InventoryPlayer aPlayerInventory, - gregtech.api.interfaces.tileentity.IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override public final void onOpenGUI() { super.onOpenGUI(); mOpenerCount++; diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneCircuitBlock.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneCircuitBlock.java index caba805f65..64efa84154 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneCircuitBlock.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneCircuitBlock.java @@ -1,28 +1,38 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.redstone; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.ButtonWidget; +import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import com.gtnewhorizons.modularui.common.widget.TextWidget; import gregtech.api.GregTech_API; import gregtech.api.enums.GT_Values; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.IRedstoneCircuitBlock; import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.ICoverable; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.*; -import gtPlusPlus.xmod.gregtech.api.gui.computer.GT_Container_RedstoneCircuitBlock; -import gtPlusPlus.xmod.gregtech.api.gui.computer.GT_GUIContainer_RedstoneCircuitBlock; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import java.util.*; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.oredict.OreDictionary; public class GT_MetaTileEntity_RedstoneCircuitBlock extends GT_MetaTileEntity_RedstoneBase - implements IRedstoneCircuitBlock { + implements IRedstoneCircuitBlock, IAddUIWidgets { public int mGate = 0, mGateData[] = new int[] {0, 0, 0, 0, 0, 0, 0, 0}; public boolean bOutput = true; @@ -42,18 +52,6 @@ public class GT_MetaTileEntity_RedstoneCircuitBlock extends GT_MetaTileEntity_Re } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_RedstoneCircuitBlock(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_RedstoneCircuitBlock(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override public boolean hasSidedRedstoneOutputBehavior() { return true; } @@ -130,10 +128,7 @@ public class GT_MetaTileEntity_RedstoneCircuitBlock extends GT_MetaTileEntity_Re @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } - aBaseMetaTileEntity.openGUI(aPlayer, 147); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); return true; } @@ -150,10 +145,6 @@ public class GT_MetaTileEntity_RedstoneCircuitBlock extends GT_MetaTileEntity_Re if (mGateData.length != 8) mGateData = new int[] {0, 0, 0, 0, 0, 0, 0, 0}; } - public void switchOutput() { - bOutput = !bOutput; - } - public void switchGateForward(boolean aShift) { try { Set<Integer> tKeys = GregTech_API.sCircuitryBehaviors.keySet(); @@ -499,4 +490,185 @@ public class GT_MetaTileEntity_RedstoneCircuitBlock extends GT_MetaTileEntity_Re public ITexture[] getSidesActive(final byte aColor) { return new ITexture[] {getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_On)}; } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(new DrawableWidget() + .setDrawable(GTPP_UITextures.PICTURE_REDSTONE_CIRCUIT_SCREEN) + .setPos(43, 5) + .setSize(108, 72)); + for (int i = 0; i < 4; i++) { + final int index = i; + builder.widget(new ButtonWidget() + .setOnClick((clickData, widget) -> { + ItemStack tStack = widget.getContext() + .getPlayer() + .inventory + .getItemStack(); + if (tStack == null) { + changeGateData( + index, + clickData.mouseButton == 0 + ? clickData.shift ? +128 : +1 + : clickData.shift ? -128 : -1); + } else { + tStack = GT_Utility.copy(tStack); + if (clickData.mouseButton != 0) tStack.setItemDamage(OreDictionary.WILDCARD_VALUE); + stackGateData(index, tStack); + } + }) + .setBackground(GT_UITextures.BUTTON_STANDARD, GTPP_UITextures.OVERLAY_BUTTON_PLUS_MINUS) + .setPos(7, 5 + i * 18) + .setSize(18, 18)) + .widget(SlotWidget.phantom(inventoryHandler, i + 1) + .disableInteraction() + .setPos(25, 5 + i * 18)); + } + builder.widget(new CycleButtonWidget() + .setToggle(() -> bOutput, val -> bOutput = val) + .setVariableBackground(GT_UITextures.BUTTON_STANDARD_TOGGLE) + .setStaticTexture(GT_UITextures.OVERLAY_BUTTON_EMIT_ENERGY) + .addTooltip("Toggle EU Output") + .setPos(151, 5) + .setSize(18, 18)) + .widget(new CycleButtonWidget() + .setToggle(() -> getBaseMetaTileEntity().isActive(), val -> getBaseMetaTileEntity() + .setActive(val)) + .setVariableBackground(GT_UITextures.BUTTON_STANDARD_TOGGLE) + .setStaticTexture(GTPP_UITextures.OVERLAY_BUTTON_ACTIVE_STATE) + .addTooltip("Toggle Active State") + .setPos(151, 23) + .setSize(18, 18)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> { + if (clickData.mouseButton == 0) switchGateForward(clickData.shift); + else switchGateBackward(clickData.shift); + }) + .setBackground(GT_UITextures.BUTTON_STANDARD, GTPP_UITextures.OVERLAY_BUTTON_CHANGE_MODE) + .addTooltip("Change Redstone Circuit") + .setPos(151, 41) + .setSize(18, 18)); + + builder.widget(new FakeSyncWidget.IntegerSyncer(() -> mGate, val -> mGate = val)); + for (int i = 0; i < mGateData.length; i++) { + final int index = i; + builder.widget(new FakeSyncWidget.IntegerSyncer(() -> mGateData[index], val -> mGateData[index] = val)); + } + + builder.widget(new DrawableWidget() + .setDrawable(() -> { + if (getBaseMetaTileEntity().getErrorDisplayID() > 0) { + if ((getBaseMetaTileEntity().getTimer() / 5) % 2 == 0) { + return GTPP_UITextures.PICTURE_ELECTRICITY_ERROR; + } else { + return null; + } + } else { + return GTPP_UITextures.PICTURE_ELECTRICITY_FINE; + } + }) + .setPos(140, 9) + .setSize(7, 7)) + .widget(new FakeSyncWidget.IntegerSyncer( + () -> getBaseMetaTileEntity().getErrorDisplayID(), + val -> getBaseMetaTileEntity().setErrorDisplayID(val))); + + builder.widget(TextWidget.dynamicString(() -> { + GT_CircuitryBehavior tCircuit = GregTech_API.sCircuitryBehaviors.get(mGate); + if (tCircuit != null) return tCircuit.getName(); + return ""; + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(46, 8)) + .widget(TextWidget.dynamicString(() -> { + GT_CircuitryBehavior tCircuit = GregTech_API.sCircuitryBehaviors.get(mGate); + if (tCircuit != null) return tCircuit.getDescription(); + return ""; + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(46, 19)) + .widget(TextWidget.dynamicString(() -> { + GT_CircuitryBehavior tCircuit = GregTech_API.sCircuitryBehaviors.get(mGate); + if (tCircuit != null) return tCircuit.getDataDescription(mGateData, 0); + return ""; + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(46, 33)) + .widget(TextWidget.dynamicString(() -> { + GT_CircuitryBehavior tCircuit = GregTech_API.sCircuitryBehaviors.get(mGate); + if (tCircuit != null) return tCircuit.getDataDescription(mGateData, 1); + return ""; + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(46, 44)) + .widget(TextWidget.dynamicString(() -> { + GT_CircuitryBehavior tCircuit = GregTech_API.sCircuitryBehaviors.get(mGate); + if (tCircuit != null) return tCircuit.getDataDescription(mGateData, 2); + return ""; + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(46, 55)) + .widget(TextWidget.dynamicString(() -> { + GT_CircuitryBehavior tCircuit = GregTech_API.sCircuitryBehaviors.get(mGate); + if (tCircuit != null) return tCircuit.getDataDescription(mGateData, 3); + return ""; + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(46, 66)) + .widget(TextWidget.dynamicString(() -> { + GT_CircuitryBehavior tCircuit = GregTech_API.sCircuitryBehaviors.get(mGate); + if (tCircuit != null) { + String tString = tCircuit.getDataDisplay(mGateData, 0); + return tString == null ? GT_Utility.parseNumberToString(mGateData[0]) : tString; + } + return ""; + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(99, 33)) + .widget(TextWidget.dynamicString(() -> { + GT_CircuitryBehavior tCircuit = GregTech_API.sCircuitryBehaviors.get(mGate); + if (tCircuit != null) { + String tString = tCircuit.getDataDisplay(mGateData, 1); + return tString == null ? GT_Utility.parseNumberToString(mGateData[1]) : tString; + } + return ""; + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(99, 44)) + .widget(TextWidget.dynamicString(() -> { + GT_CircuitryBehavior tCircuit = GregTech_API.sCircuitryBehaviors.get(mGate); + if (tCircuit != null) { + String tString = tCircuit.getDataDisplay(mGateData, 2); + return tString == null ? GT_Utility.parseNumberToString(mGateData[2]) : tString; + } + return ""; + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(99, 55)) + .widget(TextWidget.dynamicString(() -> { + GT_CircuitryBehavior tCircuit = GregTech_API.sCircuitryBehaviors.get(mGate); + if (tCircuit != null) { + String tString = tCircuit.getDataDisplay(mGateData, 3); + return tString == null ? GT_Utility.parseNumberToString(mGateData[3]) : tString; + } + return ""; + }) + .setSynced(false) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(99, 66)); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_AdvancedCraftingTable.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_AdvancedCraftingTable.java index bb9865c8e5..0b12373236 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_AdvancedCraftingTable.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_AdvancedCraftingTable.java @@ -1,7 +1,19 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.storage; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.api.widget.Interactable; +import com.gtnewhorizons.modularui.common.internal.network.NetworkUtils; +import com.gtnewhorizons.modularui.common.internal.wrapper.BaseSlot; +import com.gtnewhorizons.modularui.common.widget.ButtonWidget; +import com.gtnewhorizons.modularui.common.widget.SlotGroup; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; import gregtech.api.enums.GT_Values; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.modularui.IAddGregtechLogo; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; @@ -9,20 +21,24 @@ import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; +import gtPlusPlus.core.interfaces.IItemBlueprint; import gtPlusPlus.core.item.general.ItemBlueprint; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.xmod.gregtech.api.gui.workbench.GT_Container_AdvancedWorkbench; -import gtPlusPlus.xmod.gregtech.api.gui.workbench.GT_GUIContainer_AdvancedWorkbench; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; +import gtPlusPlus.xmod.gregtech.api.gui.widget.ElectricSlotWidget; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; +import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; +import java.util.List; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import net.minecraft.network.PacketBuffer; -public class GT_MetaTileEntity_AdvancedCraftingTable extends GT_MetaTileEntity_BasicTank { +public class GT_MetaTileEntity_AdvancedCraftingTable extends GT_MetaTileEntity_BasicTank implements IAddGregtechLogo { public boolean mFlushMode = false; @@ -40,18 +56,6 @@ public class GT_MetaTileEntity_AdvancedCraftingTable extends GT_MetaTileEntity_B } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_AdvancedWorkbench(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_AdvancedWorkbench(aPlayerInventory, aBaseMetaTileEntity, mLocalName); - } - - @Override public boolean isTransformerUpgradable() { return true; } @@ -133,10 +137,7 @@ public class GT_MetaTileEntity_AdvancedCraftingTable extends GT_MetaTileEntity_B @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } - aBaseMetaTileEntity.openGUI(aPlayer); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); return true; } @@ -567,4 +568,174 @@ public class GT_MetaTileEntity_AdvancedCraftingTable extends GT_MetaTileEntity_B : new GT_RenderedTexture(TexturesGtBlock.Casing_Workbench_Side) }; } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addGregTechLogo(ModularWindow.Builder builder) {} + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(SlotGroup.ofItemHandler(inventoryHandler, 4) + .endAtSlot(15) + .background(getGUITextureSet().getItemSlot()) + .build() + .setPos(7, 7)); + for (int i = 0; i < 5; i++) { + builder.widget(createElectricSlot(i + 16).setPos(81 + i * 18, 7)); + } + builder.widget(SlotGroup.ofItemHandler(inventoryHandler, 3) + .startFromSlot(21) + .endAtSlot(29) + .background(getGUITextureSet().getItemSlot()) + .applyForWidget(SlotWidget::disableShiftInsert) + .build() + .setPos(81, 27)); + builder.widget(new SlotWidget(inventoryHandler, 33) + .disableShiftInsert() + .addTooltipShift("Extraction Slot") + .addTooltipShift("Things can always be pulled from here") + .setBackground(getGUITextureSet().getItemSlot(), getArrowOverlay()) + .setPos(153, 27)) + .widget(new SlotWidget(inventoryHandler, 34) + .disableShiftInsert() + .addTooltipShift("Free Parking") + .setBackground(getGUITextureSet().getItemSlot(), getParkOverlay()) + .setPos(153, 63)); + + builder.widget( + new SlotWidget(inventoryHandler, 30) { + @Override + public ClickResult onClick(int buttonId, boolean doubleClick) { + if (buttonId == 0 && Interactable.hasShiftDown()) { + syncToServer(99, NetworkUtils.EMPTY_PACKET); + return ClickResult.SUCCESS; + } + return super.onClick(buttonId, doubleClick); + } + + @Override + public void readOnServer(int id, PacketBuffer buf) throws IOException { + if (id == 99) { + setBluePrint(null); + } else { + super.readOnServer(id, buf); + } + } + }.setFilter(stack -> stack.getItem() instanceof IItemBlueprint) + .disableShiftInsert() + .addTooltipShift("Blueprint Slot") + .addTooltipShift("Shift+Lmb Sets to crafting output") + .setBackground(getGUITextureSet().getItemSlot(), getBlueprintOverlay()) + .setPos(135, 27)); + + builder.widget( + new SlotWidget(BaseSlot.phantom(inventoryHandler, 31)) { + @Override + protected void phantomClick(ClickData clickData, ItemStack cursorStack) { + EntityPlayer aPlayer = getContext().getPlayer(); + ItemStack tStack = getMcSlot().getStack(); + if (tStack == null) return; + if (tStack.stackSize <= 0 + && !GT_Utility.areStacksEqual(tStack, aPlayer.inventory.getItemStack())) { + return; + } + ItemStack tStack2, tCraftedStack = getCraftingOutput(); + if (tCraftedStack != null) { + if (clickData.shift) { + for (byte i = 0; i < aPlayer.inventory.mainInventory.length; i++) { + for (byte j = 0; + j < tCraftedStack.getMaxStackSize() / tCraftedStack.stackSize + && canDoCraftingOutput(); + j++) { + if (!GT_Utility.areStacksEqual(tStack2 = getCraftingOutput(), tCraftedStack) + || tStack.stackSize != tStack2.stackSize) return; + aPlayer.inventory.mainInventory[i] = + consumeMaterials(aPlayer, aPlayer.inventory.mainInventory[i]); + } + } + } else { + if (clickData.mouseButton == 0) { + if (canDoCraftingOutput()) + aPlayer.inventory.setItemStack( + consumeMaterials(aPlayer, aPlayer.inventory.getItemStack())); + } else { + for (int i = 0; + i < tCraftedStack.getMaxStackSize() / tCraftedStack.stackSize + && canDoCraftingOutput(); + i++) { + if (!GT_Utility.areStacksEqual(tStack2 = getCraftingOutput(), tCraftedStack) + || tStack.stackSize != tStack2.stackSize) return; + aPlayer.inventory.setItemStack( + consumeMaterials(aPlayer, aPlayer.inventory.getItemStack())); + } + } + } + } + } + + @Override + public boolean handleDragAndDrop(ItemStack draggedStack, int button) { + return false; + } + + @Override + public List<String> getExtraTooltip() { + return Collections.emptyList(); + } + }.setAccess(false, false) + .setHandlePhantomActionClient(true) + .addTooltipShift("Output Slot") + .setBackground(getGUITextureSet().getItemSlot(), getCraftOutputOverlay()) + .setPos(135, 63)); + + builder.widget(new ButtonWidget() + .setOnClick((clickData, widget) -> sortIntoTheInputSlots()) + .addTooltipShift("Flush") + .addTooltipShift("Empty crafting grid back to storage") + .setBackground(getButtonIcon(), getFlushOverlay()) + .setPos(135, 45) + .setSize(18, 18)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> mFlushMode = true) + .addTooltipShift("Automation") + .addTooltipShift("Allows output while") + .addTooltipShift("crafting grid is full") + .setBackground(getButtonIcon(), GTPP_UITextures.OVERLAY_BUTTON_AUTOMATION) + .setPos(153, 45) + .setSize(18, 18)); + } + + protected SlotWidget createElectricSlot(int index) { + return (SlotWidget) new ElectricSlotWidget(inventoryHandler, index) + .setShiftClickPriority(-1) + .setBackground(getGUITextureSet().getItemSlot(), GTPP_UITextures.OVERLAY_SLOT_ELECTRIC_TOOL); + } + + protected IDrawable getArrowOverlay() { + return GTPP_UITextures.OVERLAY_SLOT_ARROW; + } + + protected IDrawable getParkOverlay() { + return GTPP_UITextures.OVERLAY_SLOT_PARK; + } + + protected IDrawable getBlueprintOverlay() { + return GT_UITextures.OVERLAY_SLOT_PAGE_PRINTED; + } + + protected IDrawable getCraftOutputOverlay() { + return GTPP_UITextures.OVERLAY_SLOT_CRAFT_OUTPUT; + } + + protected IDrawable getButtonIcon() { + return GT_UITextures.BUTTON_STANDARD; + } + + protected IDrawable getFlushOverlay() { + return GTPP_UITextures.OVERLAY_BUTTON_FLUSH; + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_BronzeCraftingTable.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_BronzeCraftingTable.java index 9e21e51f07..eae9bb79ba 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_BronzeCraftingTable.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_BronzeCraftingTable.java @@ -1,14 +1,15 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.storage; +import com.gtnewhorizons.modularui.api.drawable.IDrawable; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; import gregtech.api.GregTech_API; +import gregtech.api.enums.SteamVariant; +import gregtech.api.gui.modularui.GUITextureSet; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.objects.GT_ItemStack; -import gtPlusPlus.xmod.gregtech.api.gui.workbench.GT_Container_BronzeWorkbench; -import gtPlusPlus.xmod.gregtech.api.gui.workbench.GT_GUIContainer_BronzeWorkbench; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; public class GT_MetaTileEntity_BronzeCraftingTable extends GT_MetaTileEntity_AdvancedCraftingTable { @@ -23,18 +24,6 @@ public class GT_MetaTileEntity_BronzeCraftingTable extends GT_MetaTileEntity_Adv } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_BronzeWorkbench(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_BronzeWorkbench(aPlayerInventory, aBaseMetaTileEntity, mLocalName); - } - - @Override public boolean isTransformerUpgradable() { return false; } @@ -49,15 +38,6 @@ public class GT_MetaTileEntity_BronzeCraftingTable extends GT_MetaTileEntity_Adv return new GT_MetaTileEntity_BronzeCraftingTable(this.mName, this.mTier, this.mDescription, this.mTextures); } - @Override - public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - @SuppressWarnings("deprecation") @Override public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) { @@ -83,4 +63,50 @@ public class GT_MetaTileEntity_BronzeCraftingTable extends GT_MetaTileEntity_Adv protected boolean isAdvanced() { return false; } + + @Override + public SteamVariant getSteamVariant() { + return SteamVariant.BRONZE; + } + + @Override + public GUITextureSet getGUITextureSet() { + return GUITextureSet.STEAM.apply(getSteamVariant()); + } + + @Override + protected SlotWidget createElectricSlot(int index) { + return (SlotWidget) new SlotWidget(inventoryHandler, index) + .setBackground(getGUITextureSet().getItemSlot()); + } + + @Override + protected IDrawable getArrowOverlay() { + return GTPP_UITextures.OVERLAY_SLOT_ARROW_BRONZE; + } + + @Override + protected IDrawable getParkOverlay() { + return GTPP_UITextures.OVERLAY_SLOT_PARK_BRONZE; + } + + @Override + protected IDrawable getBlueprintOverlay() { + return GTPP_UITextures.OVERLAY_SLOT_PAGE_PRINTED_BRONZE; + } + + @Override + protected IDrawable getCraftOutputOverlay() { + return GTPP_UITextures.OVERLAY_SLOT_CRAFT_OUTPUT_BRONZE; + } + + @Override + protected IDrawable getButtonIcon() { + return GTPP_UITextures.BUTTON_STANDARD_BRONZE; + } + + @Override + protected IDrawable getFlushOverlay() { + return GTPP_UITextures.OVERLAY_BUTTON_FLUSH_BRONZE; + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_ConnectableCrate.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_ConnectableCrate.java index 1c0e682b62..2c29a0a00b 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_ConnectableCrate.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_ConnectableCrate.java @@ -1,9 +1,17 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.storage; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import com.gtnewhorizons.modularui.common.widget.TextWidget; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures.BlockIcons; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; @@ -13,17 +21,14 @@ import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.minecraft.BlockPos; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.data.ArrayUtils; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_SuperChest; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_SuperChest; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; -public class GT_MetaTileEntity_ConnectableCrate extends GT_MetaTileEntity_TieredMachineBlock { +public class GT_MetaTileEntity_ConnectableCrate extends GT_MetaTileEntity_TieredMachineBlock implements IAddUIWidgets { /*sides.put(getUp()); sides.put(getDown()); @@ -373,20 +378,8 @@ public class GT_MetaTileEntity_ConnectableCrate extends GT_MetaTileEntity_Tiered } public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } else { - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_SuperChest(aPlayerInventory, aBaseMetaTileEntity); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_SuperChest(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName()); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); + return true; } public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { @@ -566,4 +559,34 @@ public class GT_MetaTileEntity_ConnectableCrate extends GT_MetaTileEntity_Tiered // TODO Auto-generated method stub super.onMachineBlockUpdate(); } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) + .setPos(7, 16) + .setSize(71, 45)) + .widget(new SlotWidget(inventoryHandler, 0) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_IN) + .setPos(79, 16)) + .widget(new SlotWidget(inventoryHandler, 1) + .setAccess(true, false) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_OUT) + .setPos(79, 52)) + .widget(SlotWidget.phantom(inventoryHandler, 2) + .disableInteraction() + .setBackground(GT_UITextures.TRANSPARENT) + .setPos(59, 42)) + .widget(new TextWidget("Item Amount") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(10, 20)) + .widget(TextWidget.dynamicString(() -> GT_Utility.parseNumberToString(mItemCount)) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(10, 30)); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredChest.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredChest.java index b5dcd8cd73..eb5541ef82 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredChest.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredChest.java @@ -1,21 +1,26 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.storage; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import com.gtnewhorizons.modularui.common.widget.TextWidget; import gregtech.api.enums.Textures.BlockIcons; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; +import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Utility; import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_SuperChest; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_SuperChest; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -public class GT_MetaTileEntity_TieredChest extends GT_MetaTileEntity_TieredMachineBlock { +public class GT_MetaTileEntity_TieredChest extends GT_MetaTileEntity_TieredMachineBlock implements IAddUIWidgets { public int mItemCount = 0; public ItemStack mItemStack = null; private static final double mStorageFactor = (270000.0D / 16); @@ -65,20 +70,8 @@ public class GT_MetaTileEntity_TieredChest extends GT_MetaTileEntity_TieredMachi } public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - return true; - } else { - aBaseMetaTileEntity.openGUI(aPlayer); - return true; - } - } - - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_SuperChest(aPlayerInventory, aBaseMetaTileEntity); - } - - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_SuperChest(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName()); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); + return true; } public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { @@ -219,4 +212,34 @@ public class GT_MetaTileEntity_TieredChest extends GT_MetaTileEntity_TieredMachi public ITexture[][][] getTextureSet(ITexture[] aTextures) { return new ITexture[0][0][0]; } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) + .setPos(7, 16) + .setSize(71, 45)) + .widget(new SlotWidget(inventoryHandler, 0) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_IN) + .setPos(79, 16)) + .widget(new SlotWidget(inventoryHandler, 1) + .setAccess(true, false) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_OUT) + .setPos(79, 52)) + .widget(SlotWidget.phantom(inventoryHandler, 2) + .disableInteraction() + .setBackground(GT_UITextures.TRANSPARENT) + .setPos(59, 42)) + .widget(new TextWidget("Item Amount") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(10, 20)) + .widget(TextWidget.dynamicString(() -> GT_Utility.parseNumberToString(mItemCount)) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(10, 30)); + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java index f46ba27204..3bd7628e79 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java @@ -2,6 +2,7 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.storage; import gregtech.api.enums.GT_Values; import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UIInfos; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -145,11 +146,7 @@ public class GT_MetaTileEntity_TieredTank extends GT_MetaTileEntity_BasicTank { @Override public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) { - if (aBaseMetaTileEntity.isClientSide()) { - // setVars(); - return true; - } - aBaseMetaTileEntity.openGUI(aPlayer); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); return true; } @@ -173,4 +170,9 @@ public class GT_MetaTileEntity_TieredTank extends GT_MetaTileEntity_BasicTank { } } } + + @Override + public boolean useModularUI() { + return true; + } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java index 04c75f52f8..ff63957696 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java @@ -3,8 +3,6 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.storage; import static gregtech.api.enums.GT_Values.V; import gregtech.api.enums.Textures; -import gregtech.api.gui.GT_Container_1by1; -import gregtech.api.gui.GT_GUIContainer_1by1; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -17,7 +15,6 @@ import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.GregtechMetaTileEntity; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -357,7 +354,6 @@ public class GregtechMetaEnergyBuffer extends GregtechMetaTileEntity { Logger.WARNING("Right Click on MTE by Player"); if (aBaseMetaTileEntity.isClientSide()) { return true; - // aBaseMetaTileEntity.openGUI(aPlayer); } Logger.WARNING("MTE is Client-side"); @@ -393,18 +389,6 @@ public class GregtechMetaEnergyBuffer extends GregtechMetaTileEntity { block.getClientGuiElement(1, playerIn, worldIn, (int) playerIn.posX, (int) playerIn.posY, (int) playerIn.posZ);*/ @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_Container_1by1(aPlayerInventory, aBaseMetaTileEntity); - } - - @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GT_GUIContainer_1by1(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName()); - } - - @Override public boolean allowPullStack( final IGregTechTileEntity aBaseMetaTileEntity, final int aIndex, final byte aSide, final ItemStack aStack) { return false; diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaSafeBlock.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaSafeBlock.java index 064312fae2..5115b87da7 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaSafeBlock.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaSafeBlock.java @@ -1,17 +1,23 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.storage; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.ButtonWidget; +import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget; +import com.gtnewhorizons.modularui.common.widget.SlotGroup; +import com.gtnewhorizons.modularui.common.widget.TextWidget; import gregtech.api.enums.Textures; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.modularui.IAddUIWidgets; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.objects.GT_RenderedTexture; import gtPlusPlus.core.lib.CORE; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_SafeBlock; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_SafeBlock; +import gtPlusPlus.xmod.gregtech.api.gui.GTPP_UITextures; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.machines.GregtechMetaSafeBlockBase; -import net.minecraft.entity.player.InventoryPlayer; -public class GregtechMetaSafeBlock extends GregtechMetaSafeBlockBase { +public class GregtechMetaSafeBlock extends GregtechMetaSafeBlockBase implements IAddUIWidgets { public GregtechMetaSafeBlock(final int aID, final String aName, final String aNameRegional, final int aTier) { super(aID, aName, aNameRegional, aTier, 28, "Protecting your items from sticky fingers."); @@ -58,14 +64,25 @@ public class GregtechMetaSafeBlock extends GregtechMetaSafeBlockBase { } @Override - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_SafeBlock(aPlayerInventory, aBaseMetaTileEntity); + public boolean useModularUI() { + return true; } @Override - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_SafeBlock(aPlayerInventory, aBaseMetaTileEntity); + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(SlotGroup.ofItemHandler(inventoryHandler, 9) + .endAtSlot(26) + .build() + .setPos(7, 4)) + .widget(new ButtonWidget() + .setOnClick((clickData, widget) -> bUnbreakable = !bUnbreakable) + .setBackground(GT_UITextures.BUTTON_STANDARD, GTPP_UITextures.OVERLAY_BUTTON_LOCK) + .setPos(43, 62) + .setSize(18, 18)) + .widget(new TextWidget("Safe Status").setPos(76, 61)) + .widget(TextWidget.dynamicString(() -> bUnbreakable ? "Locked" : "Unlocked") + .setSynced(false) + .setPos(82, 73)) + .widget(new FakeSyncWidget.BooleanSyncer(() -> bUnbreakable, val -> bUnbreakable = val)); } } diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/creative/GT_MetaTileEntity_InfiniteItemHolder.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/creative/GT_MetaTileEntity_InfiniteItemHolder.java index 1ca167925c..bff2cad086 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/creative/GT_MetaTileEntity_InfiniteItemHolder.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/creative/GT_MetaTileEntity_InfiniteItemHolder.java @@ -8,7 +8,6 @@ import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.core.util.sys.KeyboardUtils; import gtPlusPlus.xmod.gregtech.common.tileentities.storage.GT_MetaTileEntity_TieredChest; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; public class GT_MetaTileEntity_InfiniteItemHolder extends GT_MetaTileEntity_TieredChest { @@ -63,16 +62,6 @@ public class GT_MetaTileEntity_InfiniteItemHolder extends GT_MetaTileEntity_Tier } @Override - public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override - public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { - return null; - } - - @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTimer) { if (mItemStack != null) { setItemCount(0); diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/shelving/GT4Entity_Shelf_Large.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/shelving/GT4Entity_Shelf_Large.java index 03735ad381..15fa23bf95 100644 --- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/shelving/GT4Entity_Shelf_Large.java +++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/shelving/GT4Entity_Shelf_Large.java @@ -1,5 +1,12 @@ package gtPlusPlus.xmod.gregtech.common.tileentities.storage.shelving; +import com.gtnewhorizons.modularui.api.screen.ModularWindow; +import com.gtnewhorizons.modularui.api.screen.UIBuildContext; +import com.gtnewhorizons.modularui.common.widget.DrawableWidget; +import com.gtnewhorizons.modularui.common.widget.SlotWidget; +import com.gtnewhorizons.modularui.common.widget.TextWidget; +import gregtech.api.gui.modularui.GT_UIInfos; +import gregtech.api.gui.modularui.GT_UITextures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -7,10 +14,7 @@ import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.core.util.sys.KeyboardUtils; -import gtPlusPlus.xmod.gregtech.api.gui.CONTAINER_SuperChest; -import gtPlusPlus.xmod.gregtech.api.gui.GUI_SuperChest; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; @@ -73,21 +77,11 @@ public class GT4Entity_Shelf_Large extends GT4Entity_Shelf { + (itemAmount.equalsIgnoreCase("bad") ? "nothing." : itemName + " x" + itemAmount + "."); PlayerUtils.messagePlayer(aPlayer, itemMessage); } else { - aBaseMetaTileEntity.openGUI(aPlayer); + GT_UIInfos.openGTTileEntityUI(aBaseMetaTileEntity, aPlayer); } return true; } - public Object getServerGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new CONTAINER_SuperChest(aPlayerInventory, aBaseMetaTileEntity); - } - - public Object getClientGUI( - final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) { - return new GUI_SuperChest(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName()); - } - @Override public void saveNBTData(NBTTagCompound aNBT) { aNBT.setInteger("mItemCount", this.mItemCount); @@ -261,4 +255,26 @@ public class GT4Entity_Shelf_Large extends GT4Entity_Shelf { } return super.canInsertItem(aIndex, aStack, aSide); } + + @Override + public boolean useModularUI() { + return true; + } + + @Override + public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) { + builder.widget(new DrawableWidget() + .setDrawable(GT_UITextures.PICTURE_SCREEN_BLACK) + .setPos(7, 16) + .setSize(71, 45)) + .widget(new SlotWidget(inventoryHandler, 0) + .setBackground(getGUITextureSet().getItemSlot(), GT_UITextures.OVERLAY_SLOT_IN) + .setPos(79, 16)) + .widget(new TextWidget("Item Amount") + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(10, 20)) + .widget(TextWidget.dynamicString(() -> GT_Utility.parseNumberToString(mItemCount)) + .setDefaultColor(COLOR_TEXT_WHITE.get()) + .setPos(10, 30)); + } } |