aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities
diff options
context:
space:
mode:
authormiozune <miozune@gmail.com>2022-11-26 01:56:28 +0900
committerGitHub <noreply@github.com>2022-11-25 17:56:28 +0100
commitcd2ba914a6b5b980ff56347455fcf43a9e3eea3b (patch)
tree9dfba22762592ee292edd9a6c2eb6e4c3d9c6e96 /src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities
parent921527ce3cc5f92b067f180295fa55dae718461f (diff)
downloadGT5-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')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ElectricAutoWorkbench.java134
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/automation/GT_MetaTileEntity_ElectricInventoryManager.java201
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Base.java63
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_Boiler_Solar.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GT_MetaTileEntity_RfConvertor.java13
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntityGeothermalGenerator.java6
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/GregtechMetaTileEntitySolarGenerator.java84
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/generators/creative/GregtechMetaCreativeEnergyBuffer.java13
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_CropHarvestor.java82
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaAtmosphericReconditioner.java69
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaCondensor.java81
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_ChemicalReactor.java26
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_CompactFusionReactor.java13
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/basic/GregtechMetaTileEntity_PocketFusion.java13
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GMTE_AmazonPackager.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/misc/GregtechMTE_TeslaTower.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialAlloySmelter.java17
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialArcFurnace.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCentrifuge.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialChisel.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCokeOven.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialCuttingMachine.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialDehydrator.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialElectrolyzer.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialExtruder.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialFluidHeater.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialForgeHammer.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMacerator.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMixer.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMolecularTransformer.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialMultiMachine.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialPlatePress.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSifter.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialSinter.java5
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialThermalCentrifuge.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialVacuumFreezer.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWashPlant.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IndustrialWireMill.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IronBlastFurnace.java58
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_IsaMill.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/GregtechMetaTileEntity_SpargeTower.java23
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_AssemblyLine.java17
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_DistillationTower.java25
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_EBF.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_HeatExchanger.java18
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/processing/advanced/GregtechMetaTileEntity_Adv_Implosion.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_AutoCrafter.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GT4Entity_ThermalBoiler.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_ElementalDuplicator.java20
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FastNeutronReactor.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_FrothFlotationCell.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_LargeNaqReactor.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_MiniFusionPlant.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMTE_NuclearReactor.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityGeneratorArray.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntityTreeFarm.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_AlloyBlastSmelter.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Cyclotron.java29
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialFishingPond.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_IndustrialRockBreaker.java17
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeRocketEngine.java22
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_LargeSemifluidGenerator.java17
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_MassFabricator.java54
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_Refinery.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/GregtechMetaTileEntity_SolarTower.java15
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/algae/GregtechMTE_AlgaePondBase.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/bedrock/GregtechMetaTileEntity_BedrockMiningPlatformBase.java18
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/chemplant/GregtechMTE_ChemicalPlant.java12
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Gas.java5
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Plasma.java5
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_SCSteam.java5
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_SHSteam.java5
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GT_MTE_LargeTurbine_Steam.java5
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/production/turbines/GregtechMetaTileEntity_LargerTurbineBase.java12
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_MultiTank.java10
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/machines/multi/storage/GregtechMetaTileEntity_PowerSubStationController.java136
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/misc/GT_TileEntity_ComputerCube.java516
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneBase.java17
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneCircuitBlock.java220
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_AdvancedCraftingTable.java211
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_BronzeCraftingTable.java76
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_ConnectableCrate.java59
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredChest.java59
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GT_MetaTileEntity_TieredTank.java12
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaEnergyBuffer.java16
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/GregtechMetaSafeBlock.java37
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/creative/GT_MetaTileEntity_InfiniteItemHolder.java11
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/storage/shelving/GT4Entity_Shelf_Large.java44
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));
+ }
}