From 9a2741128a78bb52eba50a631126e090a5a2abd8 Mon Sep 17 00:00:00 2001 From: miozune Date: Sat, 26 Nov 2022 01:45:28 +0900 Subject: Rewrite GUIs with ModularUI (#1381) * Base work for ModularUI compat * Remove useless interface * Add almost all the widgets * Invert method * Refactor NEI stack placement positions * NEI handlers on ModularUI * Add some more docs * AdvDebugStructureWriter * Fix NEI progressbar not working * PrimitiveBlastFurnace * clean * derp * clean * spotlessApply * Boilers * Buffers * clean * N by N slots containers * Fix boilers not having bucket interaction Put opening UI to individual MetaTEs * Maintenance Hatch * clean * spotlessApply * Add dependency * IndustrialApiary * Adapt to ModularUI change * Base work for covers & fix crash with MP * Fix crash with server * Rewrite base work for covers * Send initial cover data on cover GUI open so that the time of showing incorrect data will be eliminated * Covers part 1 * Rename package: ModularUI -> modularui * Rename class: GT_UIInfo -> GT_UIInfos * Fix build * Covers part2 * Fix missing client check with tile UI & fix title overlap * CoverTabLine * Move cover window creators to inner class * Fix crash with null base TE * Close GUI when tile is broken * Color cover window with tile colorization * Change signature of addUIWidgets * FluidFilter cover, FluidDisplaySlotWidget, BasicTank, BasicGenerator, Output Hatch, MicrowaveEnergyTransmitter, Teleporter, DigitalChest, DigitalTank * Add title tab * Move package: modularui -> modularui/widget * Programmed circuit + IConfigurationCircuitSupport * clean * VolumetricFlask * Remove integrated circuit overlay from recipe input slots * Input Hatch & Quadruple Input Hatch * Multiblock * Deprecate old cover GUI * BasicMachines * Finish BasicMachine & NEI * Expand DTPF NEI to 9 slots * Fix ME input bus on MP * Move AESlotWidget to public class * Move GT_Recipe_Map constructors with mNEIUnificateOutput to setter method * Move SteamTexture.Variant to outer enum * Switch to remote repository * oops * Update MUI * Update MUI * Minor refactor for change amount buttons * Display items and fluids that exceed usual count * blah * use +=, why didn't I do this * Update MUI * Move ModularUI to Base (#1510) * Move ModularUI to Base * Move most of the ModularUI functionality to `BaseTileEntity` (and `CoverableTileEntity`) * `CommonMetaTileEntity` delegates ato the MetaTileEntity * Added several interfaces (with defaults) to indicate if a tile/metatile override/implement certain behaviors. * Moved `IConfigurationCircuitSupport` interface such that it will work with BaseTileEntity or a MetaTileEntity * Address reviews Co-authored-by: miozune * Update MUI * Minor changes to NEI * Return :facepalm: * IGetTabIconSet override * Some more changes to NEI * Merge texture getter interfaces to new class GUITextureSet * Remove BBF structure picture as it's auto-buildable now * Make unified title tab style of texture angular * Expose some boiler texture getters for addon * Fix crash with cover GUI on pipe * Lower the number of recipe per page for DTPF & update MUI * Update MUI * Fix crash with middle-clicking slot on circuit selection GUI * Fix circuit selection window not syncing item from base machine * Merge GT_NEI_AssLineHandler into GT_NEI_DefaultHandler * Update MUI * Add in TecTech multi message * Allow changing the way of binding player inventory * Update MUI * Update MUI * Update MUI * Update MUI * Update MUI * Make MUI non-transitive to allow addons to use their own version * Force enable mixin * Format fluid amount tooltip * Add GUITextureSet.STEAM * Add guard against null ModularWindow creation * Add constructors for Muffler Hatch with inventory * Fix output slot on digital chest and tank allowing insertion * Don't log null ModularWindow * Add default implementation for IHasWorldObjectAndCoords#openGUI * Make openGTTileEntityUI accept MultiTE & cleanup Co-authored-by: Jason Mitchell --- src/main/java/gregtech/GT_Mod.java | 1 + src/main/java/gregtech/api/enums/Dyes.java | 4 + src/main/java/gregtech/api/enums/SteamVariant.java | 15 + .../api/gui/GT_ContainerMetaTile_Machine.java | 2 +- .../java/gregtech/api/gui/GT_Container_1by1.java | 1 + .../java/gregtech/api/gui/GT_Container_2by2.java | 1 + .../gregtech/api/gui/GT_Container_2by2_Fluid.java | 97 - .../java/gregtech/api/gui/GT_Container_3by3.java | 1 + .../java/gregtech/api/gui/GT_Container_4by4.java | 1 + .../gregtech/api/gui/GT_Container_BasicTank.java | 3 - .../gregtech/api/gui/GT_Container_DigitalTank.java | 185 -- .../api/gui/GT_Container_MaintenanceHatch.java | 30 - .../api/gui/GT_Container_MultiMachine.java | 1 + .../api/gui/GT_Container_SpecialFilter.java | 123 - .../java/gregtech/api/gui/GT_GUIColorOverride.java | 6 +- .../api/gui/GT_GUIContainerMetaTile_Machine.java | 2 +- .../gregtech/api/gui/GT_GUIContainer_1by1.java | 1 + .../gregtech/api/gui/GT_GUIContainer_2by2.java | 1 + .../api/gui/GT_GUIContainer_2by2_Fluid.java | 32 - .../gregtech/api/gui/GT_GUIContainer_3by3.java | 1 + .../gregtech/api/gui/GT_GUIContainer_4by4.java | 1 + .../api/gui/GT_GUIContainer_BasicMachine.java | 3 - .../api/gui/GT_GUIContainer_DigitalTank.java | 111 - .../api/gui/GT_GUIContainer_MaintenanceHatch.java | 29 - .../api/gui/GT_GUIContainer_MultiMachine.java | 3 +- .../api/gui/GT_GUIContainer_SpecialFilter.java | 18 - src/main/java/gregtech/api/gui/GT_GUICover.java | 1 + .../gregtech/api/gui/GT_GUIDialogSelectItem.java | 1 + src/main/java/gregtech/api/gui/GT_GUIScreen.java | 1 + .../java/gregtech/api/gui/GT_Slot_Holo_ME.java | 10 - .../api/gui/modularui/GT_CoverUIBuildContext.java | 70 + .../gregtech/api/gui/modularui/GT_UIInfos.java | 204 ++ .../gregtech/api/gui/modularui/GT_UITextures.java | 347 ++ .../gregtech/api/gui/modularui/GUITextureSet.java | 150 + .../api/gui/modularui/IDataFollowerWidget.java | 48 + .../gregtech/api/gui/modularui/SteamTexture.java | 74 + .../interfaces/IConfigurationCircuitSupport.java | 44 + .../IConfigurationCircuitSupport.java | 44 - .../interfaces/metatileentity/IMetaTileEntity.java | 64 +- .../api/interfaces/modularui/IAddGregtechLogo.java | 7 + .../interfaces/modularui/IAddInventorySlots.java | 14 + .../api/interfaces/modularui/IAddUIWidgets.java | 8 + .../modularui/IBindPlayerInventoryUI.java | 9 + .../interfaces/modularui/IGetGUITextureSet.java | 9 + .../api/interfaces/modularui/IGetTitleColor.java | 10 + .../interfaces/tileentity/IColoredTileEntity.java | 11 + .../interfaces/tileentity/IGregTechTileEntity.java | 6 +- .../tileentity/IHasWorldObjectAndCoords.java | 12 +- .../api/metatileentity/BaseMetaTileEntity.java | 1 + .../api/metatileentity/BaseTileEntity.java | 412 ++- .../api/metatileentity/CommonMetaTileEntity.java | 128 + .../api/metatileentity/CoverableTileEntity.java | 151 + .../api/metatileentity/MetaPipeEntity.java | 14 + .../api/metatileentity/MetaTileEntity.java | 166 +- .../GT_MetaTileEntity_BasicBatteryBuffer.java | 65 +- .../GT_MetaTileEntity_BasicGenerator.java | 9 +- .../GT_MetaTileEntity_BasicMachine.java | 323 +- .../GT_MetaTileEntity_BasicMachine_Bronze.java | 12 + .../GT_MetaTileEntity_BasicMachine_Steel.java | 15 +- .../GT_MetaTileEntity_BasicTank.java | 92 +- .../implementations/GT_MetaTileEntity_Buffer.java | 95 +- .../GT_MetaTileEntity_Hatch_DataAccess.java | 56 +- .../GT_MetaTileEntity_Hatch_Input.java | 9 +- .../GT_MetaTileEntity_Hatch_InputBus.java | 67 +- .../GT_MetaTileEntity_Hatch_Maintenance.java | 75 +- .../GT_MetaTileEntity_Hatch_Muffler.java | 18 +- .../GT_MetaTileEntity_Hatch_MultiInput.java | 117 +- .../GT_MetaTileEntity_Hatch_Output.java | 85 +- .../GT_MetaTileEntity_Hatch_OutputBus.java | 65 +- .../GT_MetaTileEntity_MultiBlockBase.java | 154 +- .../GT_MetaTileEntity_SpecialFilter.java | 111 +- .../GT_MetaTileEntity_TieredMachineBlock.java | 38 + .../multitileentity/base/BaseMultiTileEntity.java | 10 + .../api/net/GT_Packet_GtTileEntityGuiRequest.java | 7 +- .../api/net/GT_Packet_SetConfigurationCircuit.java | 25 +- .../api/net/GT_Packet_TileEntityCoverGUI.java | 42 +- .../java/gregtech/api/objects/GT_Cover_None.java | 12 - .../java/gregtech/api/util/GT_CoverBehavior.java | 17 +- .../gregtech/api/util/GT_CoverBehaviorBase.java | 156 +- src/main/java/gregtech/api/util/GT_Recipe.java | 3306 ++++++++++++-------- src/main/java/gregtech/common/GT_Proxy.java | 21 +- .../java/gregtech/common/covers/GT_Cover_Arm.java | 350 +-- .../common/covers/GT_Cover_ControlsWork.java | 158 +- .../gregtech/common/covers/GT_Cover_Conveyor.java | 153 +- .../gregtech/common/covers/GT_Cover_DoesWork.java | 136 +- .../gregtech/common/covers/GT_Cover_EUMeter.java | 238 +- .../common/covers/GT_Cover_FacadeBase.java | 158 +- .../common/covers/GT_Cover_FluidLimiter.java | 101 +- .../common/covers/GT_Cover_FluidRegulator.java | 399 +-- .../common/covers/GT_Cover_Fluidfilter.java | 237 +- .../common/covers/GT_Cover_ItemFilter.java | 159 +- .../gregtech/common/covers/GT_Cover_ItemMeter.java | 363 +-- .../common/covers/GT_Cover_LiquidMeter.java | 238 +- .../common/covers/GT_Cover_NeedMaintainance.java | 214 +- .../common/covers/GT_Cover_PlayerDetector.java | 113 +- .../java/gregtech/common/covers/GT_Cover_Pump.java | 153 +- .../covers/GT_Cover_RedstoneWirelessBase.java | 207 +- .../gregtech/common/covers/GT_Cover_Shutter.java | 131 +- .../GT_Cover_AdvancedRedstoneReceiverBase.java | 198 +- .../GT_Cover_AdvancedRedstoneTransmitterBase.java | 101 +- .../GT_Cover_AdvancedWirelessRedstoneBase.java | 271 +- .../redstone/GT_Cover_WirelessFluidDetector.java | 88 +- .../redstone/GT_Cover_WirelessItemDetector.java | 200 +- .../GT_Cover_WirelessMaintenanceDetector.java | 105 +- .../common/gui/GT_ContainerVolumetricFlask.java | 20 - .../gui/GT_Container_AdvDebugStructureWriter.java | 213 -- .../gregtech/common/gui/GT_Container_Boiler.java | 99 - .../gui/GT_Container_BronzeBlastFurnace.java | 31 - .../common/gui/GT_Container_ChestBuffer.java | 102 - .../gregtech/common/gui/GT_Container_Filter.java | 138 - .../common/gui/GT_Container_IndustrialApiary.java | 249 -- .../common/gui/GT_Container_InputBus_ME.java | 121 - .../common/gui/GT_Container_ItemDistributor.java | 83 - .../GT_Container_MicrowaveEnergyTransmitter.java | 188 -- .../common/gui/GT_Container_OutputHatch.java | 53 - .../gui/GT_Container_PrimitiveBlastFurnace.java | 37 - .../common/gui/GT_Container_QuantumChest.java | 70 - .../common/gui/GT_Container_Regulator.java | 177 -- .../common/gui/GT_Container_SuperBuffer.java | 97 - .../common/gui/GT_Container_Teleporter.java | 190 -- .../common/gui/GT_GUIContainerVolumetricFlask.java | 234 -- .../GT_GUIContainer_AdvDebugStructureWriter.java | 76 - .../common/gui/GT_GUIContainer_Boiler.java | 46 - .../gui/GT_GUIContainer_BronzeBlastFurnace.java | 47 - .../common/gui/GT_GUIContainer_ChestBuffer.java | 19 - .../common/gui/GT_GUIContainer_Filter.java | 19 - .../common/gui/GT_GUIContainer_FusionReactor.java | 96 - .../gui/GT_GUIContainer_IndustrialApiary.java | 174 -- .../common/gui/GT_GUIContainer_InputBus_ME.java | 77 - .../gui/GT_GUIContainer_ItemDistributor.java | 21 - ...GT_GUIContainer_MicrowaveEnergyTransmitter.java | 75 - .../common/gui/GT_GUIContainer_OutputHatch.java | 75 - .../gui/GT_GUIContainer_PrimitiveBlastFurnace.java | 81 - .../common/gui/GT_GUIContainer_QuantumChest.java | 46 - .../common/gui/GT_GUIContainer_RecipeFilter.java | 23 - .../common/gui/GT_GUIContainer_Regulator.java | 44 - .../common/gui/GT_GUIContainer_SuperBuffer.java | 19 - .../common/gui/GT_GUIContainer_Teleporter.java | 63 - .../gregtech/common/gui/modularui/UIHelper.java | 222 ++ .../modularui/uifactory/SelectItemUIFactory.java | 221 ++ .../common/gui/modularui/widget/AESlotWidget.java | 40 + .../modularui/widget/CoverCycleButtonWidget.java | 89 + .../widget/CoverDataControllerWidget.java | 138 + .../CoverDataFollower_CycleButtonWidget.java | 38 + .../widget/CoverDataFollower_SlotWidget.java | 102 + .../widget/CoverDataFollower_TextFieldWidget.java | 110 + .../CoverDataFollower_ToggleButtonWidget.java | 84 + .../gui/modularui/widget/DataControllerWidget.java | 162 + .../modularui/widget/FluidDisplaySlotWidget.java | 474 +++ .../modularui/widget/ItemWatcherSlotWidget.java | 47 + .../common/items/GT_IntegratedCircuit_Item.java | 15 +- .../gregtech/common/items/GT_VolumetricFlask.java | 105 +- .../automation/GT_MetaTileEntity_ChestBuffer.java | 37 +- .../automation/GT_MetaTileEntity_Filter.java | 86 +- .../GT_MetaTileEntity_ItemDistributor.java | 32 +- .../automation/GT_MetaTileEntity_RecipeFilter.java | 19 +- .../automation/GT_MetaTileEntity_Regulator.java | 76 +- .../automation/GT_MetaTileEntity_SuperBuffer.java | 18 +- .../automation/GT_MetaTileEntity_TypeFilter.java | 14 + .../boilers/GT_MetaTileEntity_Boiler.java | 114 +- .../boilers/GT_MetaTileEntity_Boiler_Bronze.java | 19 +- .../boilers/GT_MetaTileEntity_Boiler_Lava.java | 19 +- .../boilers/GT_MetaTileEntity_Boiler_Solar.java | 31 +- .../GT_MetaTileEntity_Boiler_Solar_Steel.java | 11 +- .../boilers/GT_MetaTileEntity_Boiler_Steel.java | 19 +- .../GT_MetaTileEntity_AdvDebugStructureWriter.java | 140 +- .../GT_MetaTileEntity_Hatch_InputBus_ME.java | 88 +- .../GT_MetaTileEntity_Hatch_OutputBus_ME.java | 5 + .../basic/GT_MetaTileEntity_CuringOven.java | 28 +- .../basic/GT_MetaTileEntity_Disassembler.java | 12 + .../basic/GT_MetaTileEntity_IndustrialApiary.java | 359 ++- ..._MetaTileEntity_MicrowaveEnergyTransmitter.java | 109 +- .../machines/basic/GT_MetaTileEntity_Miner.java | 26 +- .../machines/basic/GT_MetaTileEntity_Pump.java | 22 +- .../basic/GT_MetaTileEntity_Teleporter.java | 109 +- .../multi/GT_MetaTileEntity_AssemblyLine.java | 8 - .../GT_MetaTileEntity_BrickedBlastFurnace.java | 6 + .../GT_MetaTileEntity_BronzeBlastFurnace.java | 6 + .../multi/GT_MetaTileEntity_Cleanroom.java | 8 - .../GT_MetaTileEntity_ConcreteBackfillerBase.java | 8 - .../multi/GT_MetaTileEntity_DieselEngine.java | 8 - .../multi/GT_MetaTileEntity_DistillationTower.java | 8 - .../GT_MetaTileEntity_ElectricBlastFurnace.java | 8 - .../GT_MetaTileEntity_ExtremeDieselEngine.java | 8 - .../multi/GT_MetaTileEntity_FusionComputer.java | 111 +- .../multi/GT_MetaTileEntity_HeatExchanger.java | 8 - .../GT_MetaTileEntity_ImplosionCompressor.java | 8 - .../multi/GT_MetaTileEntity_LargeBoiler.java | 8 - .../GT_MetaTileEntity_LargeChemicalReactor.java | 8 - .../multi/GT_MetaTileEntity_LargeTurbine.java | 8 - .../multi/GT_MetaTileEntity_MultiFurnace.java | 8 - .../multi/GT_MetaTileEntity_OilCracker.java | 8 - .../multi/GT_MetaTileEntity_OilDrillBase.java | 8 - .../GT_MetaTileEntity_OreDrillingPlantBase.java | 9 - .../multi/GT_MetaTileEntity_PlasmaForge.java | 8 - .../GT_MetaTileEntity_PrimitiveBlastFurnace.java | 99 +- .../multi/GT_MetaTileEntity_ProcessingArray.java | 8 - .../multi/GT_MetaTileEntity_PyrolyseOven.java | 8 - .../multi/GT_MetaTileEntity_VacuumFreezer.java | 8 - .../GT_MetaTileEntity_AlloySmelter_Bronze.java | 12 - .../GT_MetaTileEntity_AlloySmelter_Steel.java | 12 - .../steam/GT_MetaTileEntity_Compressor_Bronze.java | 12 - .../steam/GT_MetaTileEntity_Compressor_Steel.java | 12 - .../steam/GT_MetaTileEntity_Extractor_Bronze.java | 12 - .../steam/GT_MetaTileEntity_Extractor_Steel.java | 12 - .../GT_MetaTileEntity_ForgeHammer_Bronze.java | 14 - .../steam/GT_MetaTileEntity_ForgeHammer_Steel.java | 14 - .../steam/GT_MetaTileEntity_Furnace_Bronze.java | 12 +- .../steam/GT_MetaTileEntity_Furnace_Steel.java | 12 +- .../steam/GT_MetaTileEntity_Macerator_Bronze.java | 12 - .../steam/GT_MetaTileEntity_Macerator_Steel.java | 12 - .../GT_MetaTileEntity_DigitalChestBase.java | 58 +- .../storage/GT_MetaTileEntity_DigitalTankBase.java | 203 +- .../gregtech/loaders/postload/GT_PostLoad.java | 5 +- .../java/gregtech/loaders/preload/GT_PreLoad.java | 4 + .../java/gregtech/nei/GT_NEI_AssLineHandler.java | 548 +--- .../java/gregtech/nei/GT_NEI_DefaultHandler.java | 443 ++- src/main/java/gregtech/nei/IMCForNEI.java | 13 +- src/main/java/gregtech/nei/NEI_GT_Config.java | 4 - 219 files changed, 10892 insertions(+), 9422 deletions(-) create mode 100644 src/main/java/gregtech/api/enums/SteamVariant.java delete mode 100644 src/main/java/gregtech/api/gui/GT_Container_2by2_Fluid.java delete mode 100644 src/main/java/gregtech/api/gui/GT_Container_DigitalTank.java delete mode 100644 src/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java delete mode 100644 src/main/java/gregtech/api/gui/GT_Container_SpecialFilter.java delete mode 100644 src/main/java/gregtech/api/gui/GT_GUIContainer_2by2_Fluid.java delete mode 100644 src/main/java/gregtech/api/gui/GT_GUIContainer_DigitalTank.java delete mode 100644 src/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java delete mode 100644 src/main/java/gregtech/api/gui/GT_GUIContainer_SpecialFilter.java delete mode 100644 src/main/java/gregtech/api/gui/GT_Slot_Holo_ME.java create mode 100644 src/main/java/gregtech/api/gui/modularui/GT_CoverUIBuildContext.java create mode 100644 src/main/java/gregtech/api/gui/modularui/GT_UIInfos.java create mode 100644 src/main/java/gregtech/api/gui/modularui/GT_UITextures.java create mode 100644 src/main/java/gregtech/api/gui/modularui/GUITextureSet.java create mode 100644 src/main/java/gregtech/api/gui/modularui/IDataFollowerWidget.java create mode 100644 src/main/java/gregtech/api/gui/modularui/SteamTexture.java create mode 100644 src/main/java/gregtech/api/interfaces/IConfigurationCircuitSupport.java delete mode 100644 src/main/java/gregtech/api/interfaces/metatileentity/IConfigurationCircuitSupport.java create mode 100644 src/main/java/gregtech/api/interfaces/modularui/IAddGregtechLogo.java create mode 100644 src/main/java/gregtech/api/interfaces/modularui/IAddInventorySlots.java create mode 100644 src/main/java/gregtech/api/interfaces/modularui/IAddUIWidgets.java create mode 100644 src/main/java/gregtech/api/interfaces/modularui/IBindPlayerInventoryUI.java create mode 100644 src/main/java/gregtech/api/interfaces/modularui/IGetGUITextureSet.java create mode 100644 src/main/java/gregtech/api/interfaces/modularui/IGetTitleColor.java delete mode 100644 src/main/java/gregtech/common/gui/GT_ContainerVolumetricFlask.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_AdvDebugStructureWriter.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_Boiler.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_BronzeBlastFurnace.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_Filter.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_IndustrialApiary.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_InputBus_ME.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_ItemDistributor.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_MicrowaveEnergyTransmitter.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_OutputHatch.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_PrimitiveBlastFurnace.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_QuantumChest.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_Regulator.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java delete mode 100644 src/main/java/gregtech/common/gui/GT_Container_Teleporter.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainerVolumetricFlask.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_AdvDebugStructureWriter.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_Boiler.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_BronzeBlastFurnace.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_ChestBuffer.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_Filter.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_FusionReactor.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_IndustrialApiary.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_InputBus_ME.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_ItemDistributor.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_MicrowaveEnergyTransmitter.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_OutputHatch.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_PrimitiveBlastFurnace.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_QuantumChest.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_RecipeFilter.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_Regulator.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_SuperBuffer.java delete mode 100644 src/main/java/gregtech/common/gui/GT_GUIContainer_Teleporter.java create mode 100644 src/main/java/gregtech/common/gui/modularui/UIHelper.java create mode 100644 src/main/java/gregtech/common/gui/modularui/uifactory/SelectItemUIFactory.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/AESlotWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverCycleButtonWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataControllerWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_CycleButtonWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_SlotWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_TextFieldWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/CoverDataFollower_ToggleButtonWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/DataControllerWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/FluidDisplaySlotWidget.java create mode 100644 src/main/java/gregtech/common/gui/modularui/widget/ItemWatcherSlotWidget.java (limited to 'src/main/java/gregtech') diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java index 1f2591f2a2..5a46014ce4 100644 --- a/src/main/java/gregtech/GT_Mod.java +++ b/src/main/java/gregtech/GT_Mod.java @@ -100,6 +100,7 @@ import org.apache.logging.log4j.Logger; guiFactory = "gregtech.client.GT_GuiFactory", dependencies = " required-after:IC2;" + " required-after:structurelib;" + " required-after:gtnhlib;" + + " required-after:modularui;" + " after:dreamcraft;" + " after:Forestry;" + " after:PFAAGeologica;" diff --git a/src/main/java/gregtech/api/enums/Dyes.java b/src/main/java/gregtech/api/enums/Dyes.java index 46207ee781..2a546e6138 100644 --- a/src/main/java/gregtech/api/enums/Dyes.java +++ b/src/main/java/gregtech/api/enums/Dyes.java @@ -125,4 +125,8 @@ public enum Dyes implements IColorModulationContainer { public short[] getRGBA() { return mRGBa; } + + public static Dyes getDyeFromIndex(short index) { + return index != -1 ? Dyes.get(index) : Dyes.MACHINE_METAL; + } } diff --git a/src/main/java/gregtech/api/enums/SteamVariant.java b/src/main/java/gregtech/api/enums/SteamVariant.java new file mode 100644 index 0000000000..333f678900 --- /dev/null +++ b/src/main/java/gregtech/api/enums/SteamVariant.java @@ -0,0 +1,15 @@ +package gregtech.api.enums; + +import java.util.Locale; + +public enum SteamVariant { + BRONZE, + STEEL, + PRIMITIVE, + NONE; + + @Override + public String toString() { + return super.toString().toLowerCase(Locale.ENGLISH); + } +} diff --git a/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java b/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java index f2774bbd38..588fb415c2 100644 --- a/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java +++ b/src/main/java/gregtech/api/gui/GT_ContainerMetaTile_Machine.java @@ -2,7 +2,7 @@ package gregtech.api.gui; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.interfaces.metatileentity.IConfigurationCircuitSupport; +import gregtech.api.interfaces.IConfigurationCircuitSupport; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.util.GT_Utility; diff --git a/src/main/java/gregtech/api/gui/GT_Container_1by1.java b/src/main/java/gregtech/api/gui/GT_Container_1by1.java index 3c65c5e590..882b4d0502 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_1by1.java +++ b/src/main/java/gregtech/api/gui/GT_Container_1by1.java @@ -4,6 +4,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; +@Deprecated public class GT_Container_1by1 extends GT_ContainerMetaTile_Machine { public GT_Container_1by1(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { diff --git a/src/main/java/gregtech/api/gui/GT_Container_2by2.java b/src/main/java/gregtech/api/gui/GT_Container_2by2.java index 92d50b3aae..4267423b75 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_2by2.java +++ b/src/main/java/gregtech/api/gui/GT_Container_2by2.java @@ -4,6 +4,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; +@Deprecated public class GT_Container_2by2 extends GT_ContainerMetaTile_Machine { public GT_Container_2by2(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { diff --git a/src/main/java/gregtech/api/gui/GT_Container_2by2_Fluid.java b/src/main/java/gregtech/api/gui/GT_Container_2by2_Fluid.java deleted file mode 100644 index d2d6249e5b..0000000000 --- a/src/main/java/gregtech/api/gui/GT_Container_2by2_Fluid.java +++ /dev/null @@ -1,97 +0,0 @@ -package gregtech.api.gui; - -import gregtech.api.interfaces.IFluidAccess; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_MultiInput; -import gregtech.api.util.GT_Utility; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -public class GT_Container_2by2_Fluid extends GT_ContainerMetaTile_Machine { - - public GT_Container_2by2_Fluid(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - /** - * Subclasses must ensure third slot (aSlotIndex==2) is drainable fluid display item slot. - * Otherwise, subclasses must intercept the appropriate the slotClick event and call super.slotClick(2, xxx) if necessary - */ - @Override - public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new GT_Slot_Render(mTileEntity, 0, 71, 26)); - addSlotToContainer(new GT_Slot_Render(mTileEntity, 1, 89, 26)); - addSlotToContainer(new GT_Slot_Render(mTileEntity, 2, 71, 44)); - addSlotToContainer(new GT_Slot_Render(mTileEntity, 3, 89, 44)); - } - - @Override - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { - if (aSlotIndex < 4 && aSlotIndex >= 0 && aMouseclick < 2) { - GT_MetaTileEntity_Hatch_MultiInput tTank = - (GT_MetaTileEntity_Hatch_MultiInput) mTileEntity.getMetaTileEntity(); - if (mTileEntity.isClientSide()) { - /* - * See comment in gregtech.api.gui.GT_Container_BasicTank.slotClick on why this is necessary - */ - Slot slot = (Slot) inventorySlots.get(aSlotIndex); - tTank.setFluid(GT_Utility.getFluidFromDisplayStack(slot.getStack()), aSlotIndex); - } - MultiFluidAccess tDrainableAccess = MultiFluidAccess.from(tTank, aSlotIndex); - ItemStack tStackHeld = aPlayer.inventory.getItemStack(); - FluidStack tFluidHeld = GT_Utility.getFluidForFilledItem(tStackHeld, true); - if (tDrainableAccess.isMatch(tFluidHeld, aSlotIndex)) - return handleFluidSlotClick( - tDrainableAccess, aPlayer, aMouseclick == 0, true, !tTank.isDrainableStackSeparate()); - } - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - } - - @Override - public int getSlotCount() { - return 0; - } - - @Override - public int getShiftClickSlotCount() { - return 0; - } - - static class MultiFluidAccess implements IFluidAccess { - private final GT_MetaTileEntity_Hatch_MultiInput mTank; - private final int mSlot; - - public MultiFluidAccess(GT_MetaTileEntity_Hatch_MultiInput aTank, int aSlot) { - this.mTank = aTank; - this.mSlot = aSlot; - } - - public boolean isMatch(FluidStack stack, int slot) { - if (!mTank.hasFluid(stack)) return true; - if (stack == null) return true; - return stack.equals(mTank.getFluid(slot)); - } - - @Override - public void set(FluidStack stack) { - mTank.setFluid(stack, mSlot); - } - - @Override - public FluidStack get() { - return mTank.getFluid(mSlot); - } - - @Override - public int getCapacity() { - return mTank.getCapacity(); - } - - static MultiFluidAccess from(GT_MetaTileEntity_Hatch_MultiInput aTank, int aSlot) { - return new MultiFluidAccess(aTank, aSlot); - } - } -} diff --git a/src/main/java/gregtech/api/gui/GT_Container_3by3.java b/src/main/java/gregtech/api/gui/GT_Container_3by3.java index 282d740347..80f3e213d6 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_3by3.java +++ b/src/main/java/gregtech/api/gui/GT_Container_3by3.java @@ -4,6 +4,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; +@Deprecated public class GT_Container_3by3 extends GT_ContainerMetaTile_Machine { public GT_Container_3by3(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { diff --git a/src/main/java/gregtech/api/gui/GT_Container_4by4.java b/src/main/java/gregtech/api/gui/GT_Container_4by4.java index 0b38a265a6..6aa0717a11 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_4by4.java +++ b/src/main/java/gregtech/api/gui/GT_Container_4by4.java @@ -4,6 +4,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Slot; +@Deprecated public class GT_Container_4by4 extends GT_ContainerMetaTile_Machine { public GT_Container_4by4(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { diff --git a/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java b/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java index dc306ec223..bc0ac72a8b 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java +++ b/src/main/java/gregtech/api/gui/GT_Container_BasicTank.java @@ -6,7 +6,6 @@ import gregtech.api.interfaces.IFluidAccess; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; import gregtech.api.util.GT_Utility; -import gregtech.common.tileentities.storage.GT_MetaTileEntity_DigitalTankBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.ICrafting; @@ -123,8 +122,6 @@ public class GT_Container_BasicTank extends GT_ContainerMetaTile_Machine { public void set(FluidStack stack) { if (mIsFillableStack) mTank.setFillableStack(stack); else mTank.setDrainableStack(stack); - if (mTank instanceof GT_MetaTileEntity_DigitalTankBase) - ((GT_MetaTileEntity_DigitalTankBase) mTank).onEmptyingContainerWhenEmpty(); } @Override diff --git a/src/main/java/gregtech/api/gui/GT_Container_DigitalTank.java b/src/main/java/gregtech/api/gui/GT_Container_DigitalTank.java deleted file mode 100644 index f12f2a2ad0..0000000000 --- a/src/main/java/gregtech/api/gui/GT_Container_DigitalTank.java +++ /dev/null @@ -1,185 +0,0 @@ -package gregtech.api.gui; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import gregtech.api.interfaces.IFluidAccess; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicTank; -import gregtech.api.util.GT_Utility; -import gregtech.common.tileentities.storage.GT_MetaTileEntity_DigitalTankBase; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.ICrafting; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class GT_Container_DigitalTank extends GT_Container_BasicTank { - - public boolean outputFluid = false; - public boolean mLockFluid = false; - public boolean mVoidFluidPart = false; - public boolean mVoidFluidFull = false; - public boolean mAllowInputFromOutputSide = false; - - public Slot slotAutoOutput; - public Slot slotLockFLuid; - public Slot slotVoidOverFlow; - public Slot slotVoidFull; - public Slot slotInputFromOutput; - - public GT_Container_DigitalTank(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override - public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(mTileEntity, 0, 81, 17)); - addSlotToContainer(new GT_Slot_Output(mTileEntity, 1, 81, 44)); - addSlotToContainer(new GT_Slot_Render(mTileEntity, 2, 59, 42)); - addSlotToContainer(slotAutoOutput = new GT_Slot_Holo(mTileEntity, 3, 8, 64, false, true, 1)); - addSlotToContainer(slotLockFLuid = new GT_Slot_Holo(mTileEntity, 4, 26, 64, false, true, 1)); - addSlotToContainer(slotVoidOverFlow = new GT_Slot_Holo(mTileEntity, 5, 152, 8, false, true, 1)); - addSlotToContainer(slotVoidFull = new GT_Slot_Holo(mTileEntity, 6, 152, 26, false, true, 1)); - addSlotToContainer(slotInputFromOutput = new GT_Slot_Holo(mTileEntity, 7, 44, 64, false, true, 1)); - } - - @Override - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { - - GT_MetaTileEntity_DigitalTankBase mte = ((GT_MetaTileEntity_DigitalTankBase) mTileEntity.getMetaTileEntity()); - - if (aSlotIndex == 3) { - mte.mOutputFluid = !mte.mOutputFluid; - if (!mte.mOutputFluid) { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("262", "Fluid Auto Output Disabled")); - } else { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("263", "Fluid Auto Output Enabled")); - } - return null; - } - if (aSlotIndex == 4) { - String inBrackets; - mte.mLockFluid = !mte.mLockFluid; - if (mte.mLockFluid) { - if (mte.mFluid == null) { - mte.setLockedFluidName(null); - inBrackets = GT_Utility.trans("264", "currently none, will be locked to the next that is put in"); - } else { - mte.setLockedFluidName(mte.getDrainableStack().getFluid().getName()); - inBrackets = mte.getDrainableStack().getLocalizedName(); - } - GT_Utility.sendChatToPlayer( - aPlayer, String.format("%s (%s)", GT_Utility.trans("265", "1 specific Fluid"), inBrackets)); - } else { - mte.setLockedFluidName(null); - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("266", "Lock Fluid Mode Disabled")); - } - return null; - } - if (aSlotIndex == 5) { - mte.mVoidFluidPart = !mte.mVoidFluidPart; - if (!mte.mVoidFluidPart) { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("267", "Overflow Voiding Mode Disabled")); - } else { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("268", "Overflow Voiding Mode Enabled")); - } - return null; - } - if (aSlotIndex == 6) { - mte.mVoidFluidFull = !mte.mVoidFluidFull; - if (!mte.mVoidFluidFull) { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("269", "Void Full Mode Disabled")); - } else { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("270", "Void Full Mode Enabled")); - return null; - } - } - if (aSlotIndex == 7) { - mte.mAllowInputFromOutputSide = !mte.mAllowInputFromOutputSide; - if (!mte.mAllowInputFromOutputSide) { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.getTrans("096")); - } else { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.getTrans("095")); - } - return null; - } - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - } - - @Override - public void sendProgressBar() { - GT_MetaTileEntity_DigitalTankBase mte = ((GT_MetaTileEntity_DigitalTankBase) mTileEntity.getMetaTileEntity()); - - for (Object crafter : this.crafters) { - ICrafting player = (ICrafting) crafter; - if (mContent != oContent) { - player.sendProgressBarUpdate(this, 100, mContent & 65535); - player.sendProgressBarUpdate(this, 101, mContent >>> 16); - } - if (outputFluid != mte.mOutputFluid) { - player.sendProgressBarUpdate(this, 103, mte.mOutputFluid ? 1 : 0); - } - if (mLockFluid != mte.mLockFluid) { - player.sendProgressBarUpdate(this, 104, mte.mLockFluid ? 1 : 0); - } - if (mVoidFluidPart != mte.mVoidFluidPart) { - player.sendProgressBarUpdate(this, 105, mte.mVoidFluidPart ? 1 : 0); - } - if (mVoidFluidFull != mte.mVoidFluidFull) { - player.sendProgressBarUpdate(this, 106, mte.mVoidFluidFull ? 1 : 0); - } - if (mAllowInputFromOutputSide != mte.mAllowInputFromOutputSide) { - player.sendProgressBarUpdate(this, 107, mte.mAllowInputFromOutputSide ? 1 : 0); - } - } - - outputFluid = mte.mOutputFluid; - mLockFluid = mte.mLockFluid; - mVoidFluidPart = mte.mVoidFluidPart; - mVoidFluidFull = mte.mVoidFluidFull; - mAllowInputFromOutputSide = mte.mAllowInputFromOutputSide; - } - - @Override - @SideOnly(Side.CLIENT) - public void updateProgressBar(int id, int value) { - super.updateProgressBar(id, value); - switch (id) { - case 103: - outputFluid = (value != 0); - break; - case 104: - mLockFluid = (value != 0); - break; - case 105: - mVoidFluidPart = (value != 0); - break; - case 106: - mVoidFluidFull = (value != 0); - break; - case 107: - mAllowInputFromOutputSide = (value != 0); - break; - } - } - - @Override - protected IFluidAccess constructFluidAccess(GT_MetaTileEntity_BasicTank aTank, boolean aIsFillableStack) { - return new DigitalTankFluidAccess(aTank, aIsFillableStack); - } - - static class DigitalTankFluidAccess extends BasicTankFluidAccess { - - public DigitalTankFluidAccess(GT_MetaTileEntity_BasicTank aTank, boolean aIsFillableStack) { - super(aTank, aIsFillableStack); - } - - @Override - public int getRealCapacity() { - return ((GT_MetaTileEntity_DigitalTankBase) mTank).getRealCapacity(); - } - - @Override - public void verifyFluidStack() {} - } -} diff --git a/src/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java b/src/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java deleted file mode 100644 index fcaf618b56..0000000000 --- a/src/main/java/gregtech/api/gui/GT_Container_MaintenanceHatch.java +++ /dev/null @@ -1,30 +0,0 @@ -package gregtech.api.gui; - -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; - -public class GT_Container_MaintenanceHatch extends GT_ContainerMetaTile_Machine { - - public GT_Container_MaintenanceHatch(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override - public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new GT_Slot_Holo(mTileEntity, 0, 80, 35, false, false, 1)); - } - - @Override - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { - if (aSlotIndex != 0) return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - ItemStack tStack = aPlayer.inventory.getItemStack(); - if (tStack != null) { - ((GT_MetaTileEntity_Hatch_Maintenance) mTileEntity.getMetaTileEntity()).onToolClick(tStack, aPlayer); - if (tStack.stackSize <= 0) aPlayer.inventory.setItemStack(null); - } - return null; - } -} diff --git a/src/main/java/gregtech/api/gui/GT_Container_MultiMachine.java b/src/main/java/gregtech/api/gui/GT_Container_MultiMachine.java index 722057950b..4bfc14ad57 100644 --- a/src/main/java/gregtech/api/gui/GT_Container_MultiMachine.java +++ b/src/main/java/gregtech/api/gui/GT_Container_MultiMachine.java @@ -9,6 +9,7 @@ import net.minecraft.inventory.Slot; *

* The Container I use for all my Basic Machines */ +@Deprecated public class GT_Container_MultiMachine extends GT_ContainerMetaTile_Machine { public GT_Container_MultiMachine(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { super(aInventoryPlayer, aTileEntity); diff --git a/src/main/java/gregtech/api/gui/GT_Container_SpecialFilter.java b/src/main/java/gregtech/api/gui/GT_Container_SpecialFilter.java deleted file mode 100644 index 0622f52865..0000000000 --- a/src/main/java/gregtech/api/gui/GT_Container_SpecialFilter.java +++ /dev/null @@ -1,123 +0,0 @@ -package gregtech.api.gui; - -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_SpecialFilter; -import gregtech.api.util.GT_Utility; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class GT_Container_SpecialFilter extends GT_ContainerMetaTile_Machine { - - private GT_Slot_Render mSpecialSlot; - - public GT_Container_SpecialFilter(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity) { - super(aInventoryPlayer, aTileEntity); - } - - @Override - public void addSlots(InventoryPlayer aInventoryPlayer) { - addSlotToContainer(new Slot(this.mTileEntity, 0, 98, 5)); - addSlotToContainer(new Slot(this.mTileEntity, 1, 116, 5)); - addSlotToContainer(new Slot(this.mTileEntity, 2, 134, 5)); - addSlotToContainer(new Slot(this.mTileEntity, 3, 98, 23)); - addSlotToContainer(new Slot(this.mTileEntity, 4, 116, 23)); - addSlotToContainer(new Slot(this.mTileEntity, 5, 134, 23)); - addSlotToContainer(new Slot(this.mTileEntity, 6, 98, 41)); - addSlotToContainer(new Slot(this.mTileEntity, 7, 116, 41)); - addSlotToContainer(new Slot(this.mTileEntity, 8, 134, 41)); - - addSlotToContainer(mSpecialSlot = new GT_Slot_Render(this.mTileEntity, 9, 35, 23)); - - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 8, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 26, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 44, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 62, 63, false, true, 1)); - addSlotToContainer(new GT_Slot_Holo(this.mTileEntity, 10, 80, 63, false, true, 1)); - } - - @Override - public ItemStack slotClick(int aSlotIndex, int aMouseclick, int aShifthold, EntityPlayer aPlayer) { - if (aSlotIndex < 9) { - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - } - Slot tSlot = (Slot) this.inventorySlots.get(aSlotIndex); - if (tSlot != null) { - if (this.mTileEntity.getMetaTileEntity() == null) { - return null; - } - if (aSlotIndex == 9) { - ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()) - .clickTypeIcon(aMouseclick != 0, aPlayer.inventory.getItemStack()); - return null; - } - if (aSlotIndex == 10) { - ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bOutput = - (!((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bOutput); - if (((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bOutput) { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("116", "Emit Energy to Outputside")); - } else { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("117", "Don't emit Energy")); - } - return null; - } - if (aSlotIndex == 11) { - ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull = - (!((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull); - if (((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bRedstoneIfFull) { - GT_Utility.sendChatToPlayer( - aPlayer, GT_Utility.trans("122", "Emit Redstone if slots contain something")); - } else { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("123", "Don't emit Redstone")); - } - return null; - } - if (aSlotIndex == 12) { - ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvert = - (!((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvert); - if (((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvert) { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("120", "Invert Redstone")); - } else { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("121", "Don't invert Redstone")); - } - return null; - } - if (aSlotIndex == 13) { - ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvertFilter = - (!((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvertFilter); - if (((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bInvertFilter) { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("124", "Invert Filter")); - } else { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("125", "Don't invert Filter")); - } - return null; - } - if (aSlotIndex == 14) { - ((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bNBTAllowed = - (!((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bNBTAllowed); - if (((GT_MetaTileEntity_SpecialFilter) this.mTileEntity.getMetaTileEntity()).bNBTAllowed) { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("126", "Ignore NBT")); - } else { - GT_Utility.sendChatToPlayer(aPlayer, GT_Utility.trans("127", "NBT has to match")); - } - return null; - } - } - return super.slotClick(aSlotIndex, aMouseclick, aShifthold, aPlayer); - } - - @Override - public int getSlotCount() { - return 9; - } - - @Override - public int getShiftClickSlotCount() { - return 9; - } - - public GT_Slot_Render getSpecialSlot() { - return mSpecialSlot; - } -} diff --git a/src/main/java/gregtech/api/gui/GT_GUIColorOverride.java b/src/main/java/gregtech/api/gui/GT_GUIColorOverride.java index 63c7b224b5..f934102eb9 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIColorOverride.java +++ b/src/main/java/gregtech/api/gui/GT_GUIColorOverride.java @@ -13,12 +13,16 @@ public class GT_GUIColorOverride { public GT_GUIColorOverride(String guiTexturePath) { try { + // this is dumb, but CombTypeTest causes cascading class load + // and leads to instantiation of GT_CoverBehaviorBase + if (Minecraft.getMinecraft() == null) return; IResource ir = Minecraft.getMinecraft().getResourceManager().getResource(new ResourceLocation(guiTexturePath)); if (ir.hasMetadata()) { cmSection = (ColorsMetadataSection) ir.getMetadata("colors"); } - } catch (IOException ignore) { + } catch (IOException | NoClassDefFoundError ignore) { + // this is also dumb, but FMLCommonHandler#getEffectiveSide doesn't work during test } } diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java b/src/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java index 0752324678..19aa8fa9a8 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainerMetaTile_Machine.java @@ -9,7 +9,7 @@ import gregtech.api.gui.widgets.GT_GuiTabLine.DisplayStyle; import gregtech.api.gui.widgets.GT_GuiTabLine.GT_GuiTabIconSet; import gregtech.api.gui.widgets.GT_GuiTabLine.GT_ITabRenderer; import gregtech.api.gui.widgets.GT_GuiTooltipManager.GT_IToolTipRenderer; -import gregtech.api.interfaces.metatileentity.IConfigurationCircuitSupport; +import gregtech.api.interfaces.IConfigurationCircuitSupport; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java index 16ef27c941..694b212872 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_1by1.java @@ -5,6 +5,7 @@ import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +@Deprecated public class GT_GUIContainer_1by1 extends GT_GUIContainerMetaTile_Machine { private final String mName; diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java index 909a5b0d6a..069e6f67fe 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2.java @@ -5,6 +5,7 @@ import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +@Deprecated public class GT_GUIContainer_2by2 extends GT_GUIContainerMetaTile_Machine { private final String mName; diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2_Fluid.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2_Fluid.java deleted file mode 100644 index d896349f0a..0000000000 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_2by2_Fluid.java +++ /dev/null @@ -1,32 +0,0 @@ -package gregtech.api.gui; - -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; - -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.StatCollector; - -public class GT_GUIContainer_2by2_Fluid extends GT_GUIContainerMetaTile_Machine { - - private final String mName; - private final int textColor = this.getTextColorOrDefault("title", 0x404040); - - public GT_GUIContainer_2by2_Fluid(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName) { - super(new GT_Container_2by2_Fluid(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "2by2fluid.png"); - mName = aName; - } - - @Override - protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { - fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, ySize - 96 + 2, textColor); - fontRendererObj.drawString(mName, 8, 6, textColor); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float parTicks, int mouseX, int mouseY) { - super.drawGuiContainerBackgroundLayer(parTicks, mouseX, mouseY); - int x = (width - xSize) / 2; - int y = (height - ySize) / 2; - drawTexturedModalRect(x, y, 0, 0, xSize, ySize); - } -} diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java index 97caa08946..2ce72e054c 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_3by3.java @@ -5,6 +5,7 @@ import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +@Deprecated public class GT_GUIContainer_3by3 extends GT_GUIContainerMetaTile_Machine { private final String mName; diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java index 40441e3093..df8e3d137b 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_4by4.java @@ -5,6 +5,7 @@ import static gregtech.api.enums.GT_Values.RES_PATH_GUI; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import net.minecraft.entity.player.InventoryPlayer; +@Deprecated public class GT_GUIContainer_4by4 extends GT_GUIContainerMetaTile_Machine { private final String mName; diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java index 35dcf047a7..50272f4820 100644 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java +++ b/src/main/java/gregtech/api/gui/GT_GUIContainer_BasicMachine.java @@ -22,9 +22,6 @@ import net.minecraft.util.StatCollector; * NEVER INCLUDE THIS FILE IN YOUR MOD!!! *

* The GUI-Container I use for all my Basic Machines - *

- * As the NEI-RecipeTransferRect Handler can't handle one GUI-Class for all GUIs I needed to produce some dummy-classes - * which extend this class */ public class GT_GUIContainer_BasicMachine extends GT_GUIContainerMetaTile_Machine implements NEI_TransferRectHost { private static final int NEEDS_STEAM_VENTING = 64; diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_DigitalTank.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_DigitalTank.java deleted file mode 100644 index 163aaa2929..0000000000 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_DigitalTank.java +++ /dev/null @@ -1,111 +0,0 @@ -package gregtech.api.gui; - -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; - -import gregtech.api.enums.GT_Values; -import gregtech.api.gui.widgets.GT_GuiSlotTooltip; -import gregtech.api.interfaces.IDragAndDropSupport; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.net.GT_Packet_SetLockedFluid; -import gregtech.api.util.GT_Utility; -import gregtech.common.tileentities.storage.GT_MetaTileEntity_DigitalTankBase; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -public class GT_GUIContainer_DigitalTank extends GT_GUIContainerMetaTile_Machine implements IDragAndDropSupport { - - private final String mName; - private final int textColor = this.getTextColorOrDefault("text", 0xFAFAFF); - private final int textColorTitle = this.getTextColorOrDefault("title", 0x404040); - private final int textColorValue = this.getTextColorOrDefault("value", 0xFAFAFF); - - private static final String DIGITALTANK_AUTOOUTPUT_TOOLTIP = "GT5U.machines.digitaltank.autooutput.tooltip"; - private static final String DIGITALTANK_LOCKFLUID_TOOLTIP = "GT5U.machines.digitaltank.lockfluid.tooltip"; - private static final String DIGITALTANK_VOIDOVERFLOW_TOOLTIP = "GT5U.machines.digitaltank.voidoverflow.tooltip"; - private static final String DIGITALTANK_VOIDFULL_TOOLTIP = "GT5U.machines.digitaltank.voidfull.tooltip"; - private static final String DIGITALTANK_INPUTFROMOUTPUT_TOOLTIP = - "GT5U.machines.digitaltank.inputfromoutput.tooltip"; - - public GT_GUIContainer_DigitalTank( - InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, String aName) { - super(new GT_Container_DigitalTank(aInventoryPlayer, aTileEntity), RES_PATH_GUI + "DigitalTank.png"); - mName = aName; - } - - @Override - protected void setupTooltips() { - addToolTip(new GT_GuiSlotTooltip( - getContainer().slotAutoOutput, mTooltipCache.getData(DIGITALTANK_AUTOOUTPUT_TOOLTIP))); - addToolTip(new GT_GuiSlotTooltip( - getContainer().slotLockFLuid, mTooltipCache.getData(DIGITALTANK_LOCKFLUID_TOOLTIP))); - addToolTip(new GT_GuiSlotTooltip( - getContainer().slotVoidOverFlow, mTooltipCache.getData(DIGITALTANK_VOIDOVERFLOW_TOOLTIP))); - addToolTip(new GT_GuiSlotTooltip( - getContainer().slotVoidFull, mTooltipCache.getData(DIGITALTANK_VOIDFULL_TOOLTIP))); - addToolTip(new GT_GuiSlotTooltip( - getContainer().slotInputFromOutput, mTooltipCache.getData(DIGITALTANK_INPUTFROMOUTPUT_TOOLTIP))); - } - - private GT_Container_DigitalTank getContainer() { - return (GT_Container_DigitalTank) mContainer; - } - - @Override - protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { - fontRendererObj.drawString(mName, 8, 6, textColorTitle); - if (mContainer != null) { - fontRendererObj.drawString("Liquid Amount", 10, 20, textColor); - fontRendererObj.drawString( - GT_Utility.parseNumberToString(((GT_Container_DigitalTank) mContainer).mContent), - 10, - 30, - textColorValue); - } - } - - @Override - protected void drawGuiContainerBackgroundLayer(float parTicks, int mouseX, int mouseY) { - super.drawGuiContainerBackgroundLayer(parTicks, mouseX, mouseY); - int x = (width - xSize) / 2; - int y = (height - ySize) / 2; - drawTexturedModalRect(x, y, 0, 0, xSize, ySize); - if (mContainer != null) { - if (((GT_Container_DigitalTank) mContainer).mLockFluid) { - drawTexturedModalRect(x + 25, y + 63, 176, 0, 18, 18); - } - if (((GT_Container_DigitalTank) mContainer).outputFluid) { - drawTexturedModalRect(x + 7, y + 63, 176, 18, 18, 18); - } - if (((GT_Container_DigitalTank) mContainer).mVoidFluidPart) { - drawTexturedModalRect(x + 151, y + 7, 176, 36, 18, 18); - } - if (((GT_Container_DigitalTank) mContainer).mVoidFluidFull) { - drawTexturedModalRect(x + 151, y + 25, 176, 54, 18, 18); - } - if (((GT_Container_DigitalTank) mContainer).mAllowInputFromOutputSide) { - drawTexturedModalRect(x + 43, y + 63, 176, 72, 18, 18); - } - } - } - - @Override - public boolean handleDragAndDropGT( - GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button, boolean isGhost) { - if (!(gui instanceof GT_GUIContainer_DigitalTank) - || !((GT_GUIContainer_DigitalTank) gui).isMouseOverSlot(2, mousex, mousey) - || !isGhost) return false; - FluidStack fluidStack = GT_Utility.getFluidFromContainerOrFluidDisplay(draggedStack); - if (fluidStack == null) return false; - IGregTechTileEntity te = ((GT_GUIContainer_DigitalTank) gui).mContainer.mTileEntity; - GT_MetaTileEntity_DigitalTankBase mte = (GT_MetaTileEntity_DigitalTankBase) te.getMetaTileEntity(); - if (mte == null || !mte.allowChangingLockedFluid(fluidStack.getFluid().getName())) return false; - - GT_Values.NW.sendToServer(new GT_Packet_SetLockedFluid(te, fluidStack)); - draggedStack.stackSize = 0; - // propagate to client too - mte.setLockedFluidName(fluidStack.getFluid().getName()); - return true; - } -} diff --git a/src/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java b/src/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java deleted file mode 100644 index 07ca031345..0000000000 --- a/src/main/java/gregtech/api/gui/GT_GUIContainer_MaintenanceHatch.java +++ /dev/null @@ -1,29 +0,0 @@ -package gregtech.api.gui; - -import static gregtech.api.enums.GT_Values.RES_PATH_GUI; - -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.entity.player.InventoryPlayer; - -public class GT_GUIContainer_MaintenanceHatch extends GT_GUIContainerMetaTile_Machine { - private final int textColor = this.getTextColorOrDefault("text", 0x404040), - textColorTitle = this.getTextColorOrDefault("title", 0x404040); - - public GT_GUIContainer_MaintenanceHatch(InventoryPlayer aInventoryPlayer, IGregTechTileEntity