aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/interfaces/tileentity
AgeCommit message (Collapse)Author
2023-05-01bs+saMartin Robertz
2023-04-23Forge direction (#1895)Jason Mitchell
* ForgeDirection Also refactor the clusterfuck that was `getCoordinateScan` Co-authored by: Jason Mitchell <mitchej@gmail.com> * Fix rendering of Frame Boxes Frame boxes needed their own implementation of getTexture with int connexion mask, which is returning an error texture for the MetaTileEntity, because pipes (FrameBox **is** a pipe) do use this method to return different textures based on connexion status. --------- Co-authored-by: Léa Gris <lea.gris@noiraude.net>
2023-04-22MuTE overhaul and ACR (#1883)Maxim
* complex controller start * Added methods to get input fluids and items * Added logic to complex parallel mute * Added ACR and fixed many, many, many, many bugs * Added void protection setting to checkRecipe * do not init nbt, if mteID and mteRegistry are the same * Improved GUI design * Force structure check when pressing power switch * ACR Textures * Added T1 structure * Added perfect OC * Added WAILA * fix mutes resetting their nbt * Fix ACR GUI * fix npe * Added void protection for MuTEs * Fixed ACR starting recipe while another one is ongoing * nbt saving * maybe fix structure breaking * Fix complex machine disabling on startup * correctly update input tanks * move casings over * Changed logic of casings to change mode and facing in one go by sneaking * Fixed the casing target not resetting * Added side only annotations * don't leave it empty * Added power logic and tiered blocks to ACR * Change facing to wrench side if casing mode is currently none * lasers anyone? * Added ACR item chaining * Remove unncessary item lists * Use HashSet for process whitelists * Optimize list capacities * Fix potential recipe voiding bug * Rename methods for consistancy * Fix NPE * Duct tape fix structure check * allow MuTEs to connect to cables * Added separate tank inventories for input separation (#1887) * Fixed unregistering tank function * Fixed input busses not being automatable * Added fluid chaining * Fixed saving of input tanks * Forbid inventory registering with empty name * Display all input tanks in controller GUI * Fixed fluid hatch GUI height * Reset casing lists when checking the structure * Make inventory GUI size consistant * Make use of the tooltip cache * rename thing clean up * Forgot to put tooltip into map * Added tooltip to ACR * Reset whitelists when one whitelist window was opened * Refined scanner string * Fixed progress times * Fixed MuTE not consuming fluids * Properly register controller inventories * switch to ForgeDirection * switch to new Renderer * Added missing contains check on registerInventory * Fixed output tanks not registering * Fixed upgrade tank loading * fix machines not having active/inactive textures * fix overlays not loading correctly * Don't register controller directly * Remove magic strings all * fix active not setting to inactive * allow glow * item renderer * fix glow * MuTE improved hatch GUI and fluid output locking (#1889) * Allow output hatches to be fluid locked * Reworked hatch GUI * Check target before trying to open GUI * Make ACR GUI easier to look at * fix covers not rendering on mutes * fix covers not displaying above the item/fluid in/out * new folder texture structure * Reduce network traffic caused by covers * Fixed WAILA fluid locking display * Don't save everything to the itemstack NBT * Added possibility to save NBT of MuTE to its itemstack * fix textures, but make sacrifices * mah textures * Removed the need for all textures to be present * Added glow texture for active coke oven * Removed unncesssary upgrade casing textures * shorten nbt tags --------- Co-authored-by: BlueWeabo <76872108+BlueWeabo@users.noreply.github.com> Co-authored-by: Martin Robertz <dream-master@gmx.net> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-10Update spotless config to 0.2.2Raven Szewczyk
2023-04-01Jabel, Generic injection and mostly automatic code cleanup (#1829)Raven Szewczyk
* Enable Jabel&Generic injection, fix type error caused by this * add missing <> * Infer generic types automatically * Parametrize cast types * Use enhanced for loops * Unnecessary boxing * Unnecessary unboxing * Use Objects.equals * Explicit type can be replaced with `<>` * Collapse identical catch blocks * Add SafeVarargs where applicable * Anonymous type can be replaced with lambda * Use List.sort directly * Lambda can be a method reference * Statement lambda can be an expression lambda * Use string switches * Instanceof pattern matching * Text block can be used * Migrate to enhanced switch * Java style array declarations * Unnecessary toString() * More unnecessary String conversions * Unnecessary modifiers * Unnecessary semicolons * Fix duplicate conditions * Extract common code from if branches * Replace switches with ifs for 1-2 cases * Inner class may be static * Minor performance issues * Replace string appending in loops with string builders * Fix IntelliJ using the wrong empty list method * Use Long.compare * Generic arguments: getSubItems * Generic arguments: getSubBlocks * Raw types warnings * Fix remaining missing generics * Too weak variable type leads to unnecessary cast * Redundant type casts * Redundant array length check * Redundant vararg arrays * Manual min/max implementations * A couple missed inspections * Goodbye explosion power ternary ladder * Apply spotless * Get rid of the other two big ternary ladders * Binary search explosion power * Don't overcomplicate things
2023-04-01update spotless formatting (#1827)boubou19
2023-04-01Implement Power Logic, Pollution Logic and Processing Logic for MuTEs and ↵BlueWeabo
many other things (#1823) * update bs 2 * fuel consumption and energy implementation. clean up * don't register XD * some clean up * coke oven work * semi-working coke oven somehow i broke the activating of the multiblock * power logic * PowerLogic * clean up, saving loading nbt * small cleanup and pollution * pollution working :P * Energy mostly working, wallsharing * processing logic * fix npe and deregister * review requests * missed one * remove extra 0
2023-03-14Untangle IEnergyConnected and IHasWorldObjectAndCoords to allow FMP tiles to ↵repo-alt
support IEnergyConnected (#1794)
2023-01-30[ci skip] spotlessApply with the new settingsJason Mitchell
2023-01-20MTE Inventory updates (#1496)Jason Mitchell
* MTE Inventory updates * Separate Input/Output inventory * Use a LinkedHashMap to ensure inventory orders are deterministic * Input/Output work on either Input/Output inventories * MTE Inventory * Add GT_Packet_MultiTileEntity * More dyanmic packet with packetFeatures * Add IMTE_HasModes for MultiBlockPart * Help with MTE Inventory (#1613) * convert inventory to use ItemStackHandler * Update MUI * inventories * move Iteminventory to its own method Co-authored-by: miozune <miozune@gmail.com> * Update MUI * Update MUI * Add IMultiBlockPart * Mte fluid inventory (#1639) * first work on fluid inventory * make gui work with numbers not dividable by 4 * use math.min * add outputfluids saving * actually working * Update MUI Co-authored-by: miozune <miozune@gmail.com> * Ticking Covers! * Parts now register covers with the controller * Controllers now tick covers on parts * Break cover ticking out into `tickCoverAtSide` Fix some inventory methods on MultiBlockController * Filter on tickable covers * Improve GUIs for MTEs (#1650) * working controller GUI * locked inventory selection work * input and output locking of inventories Co-authored-by: miozune <miozune@gmail.com> * spotless * CoverInfo refactor (#1654) * Add `CoverInfo` and deprecate the old fields to hold cover information * Disable MTE registration * Fix NPE - Return EMPTY_INFO for SIDE_UNKNOWN Temporarily add back old NBT saving in case of a revert so covers aren't lost. * Actually save the old NBT data, instead of empty Co-authored-by: BlueWeabo <76872108+BlueWeabo@users.noreply.github.com> Co-authored-by: miozune <miozune@gmail.com>
2023-01-02add callhook for pre block destroy (#1625)Glease
* add callhook for pre block destroy Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> * spotless Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
2022-11-25Rewrite GUIs with ModularUI (#1381)miozune
* 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 <miozune@gmail.com> * 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 <mitchej@gmail.com>
2022-10-22Added check to API if the block should drop its inventory on break (#1479)Maxim
* Added check to API if the block should drop its inventory on break * Apply spotless * Changed should drop flag to take index argument
2022-08-27Update buildscript & apply spotless (#1306)Raven Szewczyk
* Update dependencies * Update buildscript, apply spotless
2022-08-16Fix Wireless EU not transferring 2A/operation (#1265)Connor-Colenso
* Useless import * Lower case for methods * Double transfer rate for machines using two hatches. Co-authored-by: GTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com>
2022-08-12More wireless fixes/updates (#1206)Connor-Colenso
* Fix possible out-of-bounds error. * Bye bye OpV * Bye bye OpV * Some textures while I'm here * Test * Maybe * New command * Fix forge minecraft shenanigans interfering with saving data. * Localisation of achievements * Add save intervals for energy map. * Refactor as to not use dumb bloat * New interface for wireless hatches * Remove prefix * Big refactor and code cleanup. Also fixes bug with energy not getting added sometimes * Fix typo causing ore dict issues * New interface * Clean up commands a little * Add some colouring and clean up a little. * Update desc * Add more catches for command misuse and colours * Jenkins Co-authored-by: GTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com>
2022-07-18feat(tile): onRandomDisplayTick (#1138)Léa Gris
Adds onRandomDisplayTick method to the IGregTechTileEntity interface that can proxy randomDisplayTick from block. This allows to delegate block particles to the tile, with a client-side-only processing. Includes reference implementation for the Bronze Boiler
2022-07-02Par, var, begone! (#1104)YannickMG
* Renamed parameters of ItemBlock subclasses * Renamed damageDropped and getDamageValue method parameters of Block subclasses * Removed trivially superfluous overrides of Block::quantityDropped, Block::isOpaqueCube and Block::renderAsNormalBlock * Removed trivially superfluous overrides of Block::getItemDropped * Cleaned up a few more block subclass method parameters * Cleaned up obsolete Javadoc * par1 -> block in ItemBlock Constructors * Renamed arguments to drawGuiContainerForegroundLayer * Cleaned up redundant casts * Renamed arguments to drawGuiContainerBackgroundLayer * Renamed arguments to Slot subclass constructors * Renamed arguments to World subclass GT_DummyWorld * Renamed parameters of updateProgressBar * Renamed the rest of the par* parameters outside of GT_MinableOreGenerator which should be deleted * Renamed most var1-var10 and a few more in generally non-dead code * Renamed last varSomething variables * Removed 3 fully dead classes used nowhere in the codebase, with obsolete unused code
2022-04-18Multitileentity precursor (#963)Jason Mitchell
* Refactors * Refactor CoverableTileEntity a bit more, pull out a CommonMetaTileEntity * Add an IDebugableTileEntity interface instead of checking various subclasses * Move more redstone related things to CoverableTileEntity * Add IGTENet * Final and dead code removal * Address a few comments, fix a few comments, remove some more dead code, and add some more finals. * fix bad rebase
2022-01-30Waila handling was all in one place, distribute it now that it's in GT5u ↵Jason Mitchell
proper. (#907)
2021-12-30Refactors for easier reading (#839)Jason Mitchell
* Refactors * Common functionality to base classes * GT Pre/Postload broken into more modular pieces * Extract common (mainly cover related) functionality from BaseMetaTileEntity & BaseMetaPipeEntity
2021-11-23centralized pollution for GT multiesboubou_19
2021-11-17Rename GT_CoverBehavior_New to GT_CoverBehaviorBaseGlease
Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
2021-11-17convert cover data storage to a full nbt tagGlease
Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
2021-10-22Try start processing immediately upon manual fluid manipulationGlease
2021-06-16add graph network to pipes and implement it for powerkorneel vandamme
2021-04-27fix(textfiles): add missing neline at end of filesLéa Gris
git and diff tools will complain if text file does not end with a newline. Fixed all text files in the repository with Linux bash shell: ```sh git ls-files -z | while IFS= read -rd '' f; do mime="$(file --brief --mime "$f")"; if [ -z "${mime##text/*}" ]; then tail -c1 "$f" | read -r _ || printf '\n' >>"$f"; fi; done ```
2021-04-04fix(rendering): multiple rendering fixes and refactor (#494)Léa Gris
* fix(rendering): multiple rendering fixes and refactor - Fix rendering gregtech machines in inventory with correct orientation and lighting. - Fix rendering of pipes connected through covers, no longer z-fight at a distance. - Fix updating of textures when un/holding a soldering-iron. - Refactor of the GT_Renderer_Block class with properly named constants replacing raw literals.
2021-03-30Made it so that machine control covers disable themselves when thecharles
machine runs out of energy
2021-03-20quickfix: remove useless Block argumentLéa Gris
Pipes don't use a block texture, only ore blocks use these and they don't implement IPipeRenderedTileEntity and are not covered either ^^
2021-03-20fix(interface): add default getTextureCoveredLéa Gris
Implement requested change: https://github.com/GTNewHorizons/GT5-Unofficial/pull/469#discussion_r598084051 A default method body is required for older add-ons implementing the old interface without a `getTextureCovered` method, or those would crash when rendering their covered full-size pipes.
2021-03-20feat(cover): handles transparent coversLéa Gris
Add support for transparent covers (glass plate) on all GT Machines: - See pipes, wires, cables through transparent covers - Layer transparent covers over full-block pipes and machines
2021-03-12requested changesLéa Gris
- Fix modifiers order - Fix redundant string literal - Fix indentation - fix missing run()
2021-03-11Implemented Builder Patternbartimaeusnek
2021-03-10Added missingbartimaeusnek
2021-03-10Implemented Requestsbartimaeusnek
2021-03-10Refactor World Eventsbartimaeusnek
World events have way to many parameters, so the code gets unreadable, this commit fixes that behavior.
2020-12-26Adds long distance Item & Fluid pipelines and pipes. Inspired/ported from ↵Jason Mitchell
GT6 under LGPL.
2020-05-04Added cover guis for pump/filtermoller21
2020-04-15Refactor to fixed thread pool executorTechnus
Use actually something made for this task...
2020-03-17Refactored Interfacesbartimaeusnek
Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>
2020-02-25Provide owner's UUID to forge event bus for fake players. Second PR cuz line ↵karpov.evgeniy
endings fixed.
2020-02-15removed unused importsDream-Master
changed subversion to 33
2018-09-19added explosion logbartimaeusnek
+readded GalacticraftFiles for @mitchej123 GC Compat +fixed a typo in IGregTechTileEntity
2018-09-16Work with subclassed GT cables (ie: gt++ cables)Jason Mitchell
2018-09-08GC Energy CompatJason Mitchell
* GT cables now properly fill GalacticCraft machines with Energy IC2/AE2 Energy Compat * Updated IC2 & AE2 energy compatability * Added an option ic2EnergySourceCompat (default is on) to allow GT cables to pull energy directly from IC2 energy sources (nuclear reactors, MSFEs, etc) without the need for a transformer * Filling IC2/AE2 energy buffers will now send multiple amps if needed Misc * Use a set instead of an arraylist for transfer electricity; deprecated backwards compatiable method left in
2018-09-03Pipe/Cable overhaul & Add filter output on fluid filtersJason Mitchell
* Unified connect() method for pipes/wires - each subclass has it's own canConnect(), letsIn(), and letsOut() methods that map to the specifics for that implementation * Shift Clicking while placing a GT machine will now try connecting to the cable/pipe it is placed on * You can open a connection to the air for pipes & wires, allowing the next thing you place down to auto connect (ie: a JABBA barrel) * Distribute Fluids - Modeled after several of the upstream PRs * Fluid regulators on pipes should stop spazzing out now * Fluid filter covers - Now work with filtering output BUG/TODO: * Spray paint doesn't seem to keep wires/pipes from connecting properly * Spray paint on wires/pipes should force a disconnection check
2017-12-16Fix for cables disconnecting on chunk unload & loadJason Mitchell
2017-06-15Merge branch 'unstable_BLOOD' into reMergeTechnus
# Conflicts: # build.properties # src/main/java/gregtech/GT_Mod.java # src/main/java/gregtech/api/enums/Textures.java # src/main/java/gregtech/api/gui/GT_GUIContainer_MultiMachine.java # src/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java # src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java # src/main/java/gregtech/api/metatileentity/BaseMetaTileEntity.java # src/main/java/gregtech/api/metatileentity/MetaPipeEntity.java # src/main/java/gregtech/api/metatileentity/MetaTileEntity.java # src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_BasicMachine.java # src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java # src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Muffler.java # src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java # src/main/java/gregtech/api/objects/GT_UO_DimensionList.java # src/main/java/gregtech/api/util/GT_Utility.java # src/main/java/gregtech/common/GT_Client.java # src/main/java/gregtech/common/GT_Pollution.java # src/main/java/gregtech/common/GT_Proxy.java # src/main/java/gregtech/common/GT_UndergroundOil.java # src/main/java/gregtech/common/GT_Worldgenerator.java # src/main/java/gregtech/common/blocks/GT_Block_Machines.java # src/main/java/gregtech/common/blocks/GT_Material_Casings.java # src/main/java/gregtech/common/covers/GT_Cover_Arm.java # src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java # src/main/java/gregtech/common/covers/GT_Cover_Conveyor.java # src/main/java/gregtech/common/covers/GT_Cover_DoesWork.java # src/main/java/gregtech/common/covers/GT_Cover_Drain.java # src/main/java/gregtech/common/covers/GT_Cover_EUMeter.java # src/main/java/gregtech/common/covers/GT_Cover_EnergyOnly.java # src/main/java/gregtech/common/covers/GT_Cover_PlayerDetector.java # src/main/java/gregtech/common/covers/GT_Cover_Pump.java # src/main/java/gregtech/common/covers/GT_Cover_RedstoneConductor.java # src/main/java/gregtech/common/covers/GT_Cover_RedstoneReceiverInternal.java # src/main/java/gregtech/common/covers/GT_Cover_RedstoneSignalizer.java # src/main/java/gregtech/common/covers/GT_Cover_RedstoneWirelessBase.java # src/main/java/gregtech/common/covers/GT_Cover_Shutter.java # src/main/java/gregtech/common/covers/GT_Cover_Vent.java # src/main/java/gregtech/common/gui/GT_Container_ChestBuffer.java # src/main/java/gregtech/common/gui/GT_Container_Filter.java # src/main/java/gregtech/common/gui/GT_Container_SuperBuffer.java # src/main/java/gregtech/common/gui/GT_Container_TypeFilter.java # src/main/java/gregtech/common/items/behaviors/Behaviour_None.java # src/main/java/gregtech/common/items/behaviors/Behaviour_Prospecting.java # src/main/java/gregtech/common/tileentities/boilers/GT_MetaTileEntity_Boiler_Steel.java # src/main/java/gregtech/common/tileentities/generators/GT_MetaTileEntity_LightningRod.java # src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_MicrowaveEnergyTransmitter.java # src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_Teleporter.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_BronzeBlastFurnace.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_Charcoal_Pit.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_DistillationTower.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Bronze.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_Steel.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeBoiler_TungstenSteel.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrill.java # src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_ProcessingArray.java # src/main/java/gregtech/loaders/load/GT_FuelLoader.java # src/main/java/gregtech/loaders/misc/GT_CoverLoader.java # src/main/java/gregtech/loaders/oreprocessing/ProcessingPlate.java # src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java # src/main/java/gregtech/loaders/preload/GT_Loader_MetaTileEntities.java # src/main/java/gregtech/nei/GT_NEI_DefaultHandler.java
2017-06-01Cherry-Pick c12e474Technus
https://github.com/GTNewHorizons/GT5-Unofficial/commit/c12e474c23ca02fb3479312850f6ae07e623d8b9