<feed xmlns='http://www.w3.org/2005/Atom'>
<title>github/GT5-Unofficial.git/src/main/java/gregtech/common/tileentities/machines/multiblock, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/'/>
<entry>
<title>Multi ToolTip unification (#3343)</title>
<updated>2024-10-14T12:46:59+00:00</updated>
<author>
<name>Alexdoru</name>
<email>57050655+Alexdoru@users.noreply.github.com</email>
</author>
<published>2024-10-14T12:46:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=e6c8d35894d561e6aea1cfb7450f00a70c9e01d8'/>
<id>e6c8d35894d561e6aea1cfb7450f00a70c9e01d8</id>
<content type='text'>
Co-authored-by: chochem &lt;40274384+chochem@users.noreply.github.com&gt;
Co-authored-by: GDCloud &lt;gdcloudstrike@gmail.com&gt;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: chochem &lt;40274384+chochem@users.noreply.github.com&gt;
Co-authored-by: GDCloud &lt;gdcloudstrike@gmail.com&gt;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup the codebase (#3311)</title>
<updated>2024-10-02T05:31:08+00:00</updated>
<author>
<name>Alexdoru</name>
<email>57050655+Alexdoru@users.noreply.github.com</email>
</author>
<published>2024-10-02T05:31:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=3b9bd1188e932e6bb8041f7bb9afbf3ce75e26d3'/>
<id>3b9bd1188e932e6bb8041f7bb9afbf3ce75e26d3</id>
<content type='text'>
Co-authored-by: boubou19 &lt;miisterunknown@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: boubou19 &lt;miisterunknown@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>The Great Renaming (#3014)</title>
<updated>2024-09-02T21:17:17+00:00</updated>
<author>
<name>NotAPenguin</name>
<email>michiel.vandeginste@gmail.com</email>
</author>
<published>2024-09-02T21:17:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=1b820de08a05070909a267e17f033fcf58ac8710'/>
<id>1b820de08a05070909a267e17f033fcf58ac8710</id>
<content type='text'>
* move kekztech to a single root dir

* move detrav to a single root dir

* move gtnh-lanthanides to a single root dir

* move tectech and delete some gross reflection in gt++

* remove more reflection inside gt5u

* delete more reflection in gt++

* fix imports

* move bartworks and bwcrossmod

* fix proxies

* move galactigreg and ggfab

* move gtneioreplugin

* try to fix gt++ bee loader

* apply the rename rules to BW

* apply rename rules to bwcrossmod

* apply rename rules to detrav scanner mod

* apply rename rules to galacticgreg

* apply rename rules to ggfab

* apply rename rules to goodgenerator

* apply rename rules to gtnh-lanthanides

* apply rename rules to gt++

* apply rename rules to kekztech

* apply rename rules to kubatech

* apply rename rules to tectech

* apply rename rules to gt

apply the rename rules to gt

* fix tt import

* fix mui hopefully

* fix coremod except intergalactic

* rename assline recipe class

* fix a class name i stumbled on

* rename StructureUtility to GTStructureUtility to prevent conflict with structurelib

* temporary rename of GTTooltipDataCache to old name

* fix gt client/server proxy names</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* move kekztech to a single root dir

* move detrav to a single root dir

* move gtnh-lanthanides to a single root dir

* move tectech and delete some gross reflection in gt++

* remove more reflection inside gt5u

* delete more reflection in gt++

* fix imports

* move bartworks and bwcrossmod

* fix proxies

* move galactigreg and ggfab

* move gtneioreplugin

* try to fix gt++ bee loader

* apply the rename rules to BW

* apply rename rules to bwcrossmod

* apply rename rules to detrav scanner mod

* apply rename rules to galacticgreg

* apply rename rules to ggfab

* apply rename rules to goodgenerator

* apply rename rules to gtnh-lanthanides

* apply rename rules to gt++

* apply rename rules to kekztech

* apply rename rules to kubatech

* apply rename rules to tectech

* apply rename rules to gt

apply the rename rules to gt

* fix tt import

* fix mui hopefully

* fix coremod except intergalactic

* rename assline recipe class

* fix a class name i stumbled on

* rename StructureUtility to GTStructureUtility to prevent conflict with structurelib

* temporary rename of GTTooltipDataCache to old name

* fix gt client/server proxy names</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup (#2803)</title>
<updated>2024-08-15T13:38:58+00:00</updated>
<author>
<name>boubou19</name>
<email>miisterunknown@gmail.com</email>
</author>
<published>2024-08-15T13:38:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=0f990a7cfd78c3ede4db09a893e1e6edff164a2a'/>
<id>0f990a7cfd78c3ede4db09a893e1e6edff164a2a</id>
<content type='text'>
* remove dead code

* use proper materials for tiered circuits

* remove yet another RA1 call

* remove deprecated usage

* small step toward Research station assline recipes migration

* remove dead code

* remove dead code

* remove dead code

* migrate BW recipes

* remove some more RA1 code

* remove bad search and replace + spotlessapply

* yeet deprecated code and change how sieverts for recipes are computed

* fix loading

* fix bad replacements

* spotless apply</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* remove dead code

* use proper materials for tiered circuits

* remove yet another RA1 call

* remove deprecated usage

* small step toward Research station assline recipes migration

* remove dead code

* remove dead code

* remove dead code

* migrate BW recipes

* remove some more RA1 code

* remove bad search and replace + spotlessapply

* yeet deprecated code and change how sieverts for recipes are computed

* fix loading

* fix bad replacements

* spotless apply</pre>
</div>
</content>
</entry>
<entry>
<title>Beamline (#2619)</title>
<updated>2024-07-20T14:35:26+00:00</updated>
<author>
<name>Raven Szewczyk</name>
<email>git@eigenraven.me</email>
</author>
<published>2024-07-20T14:35:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=8b077c28bea7bcc046be1e4b8485d69b4c245a43'/>
<id>8b077c28bea7bcc046be1e4b8485d69b4c245a43</id>
<content type='text'>
* Beamline

* Remove hardcoded dreamcraft items and spotless

* Remove logs and fix auto structure check

* Remove logs and fix auto structure check

* Fix typo and synchrotron high MF scaling

* sa

(cherry picked from commit b2796d95538a1b683b4a98bf6cb0f8fe21404fbd)

* Add multi textures, add structuredesc info, remove test TC input, add synchrotron/input/output recipes

* Spotless

* Prevent mob spawning on casings

* Fix LINAC glass requirement, make synchrotron structure less ugly, add last recipe

* Spotless

* Add placeholder particle textures

* Add some mask recipes I missed

* Spotless apply for branch lanth-beamline for #2619 (#2630)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Add further error messages to LINAC and Synchrotron, fix MM &amp; LaB6 recipes

* Spotless apply for branch lanth-beamline for #2619 (#2648)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Minor changes, add more multi error messages &amp; 9x U-238 SC recipe

* Spotless apply for branch lanth-beamline for #2619 (#2651)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Missed a change

* Spotless apply for branch lanth-beamline for #2619 (#2652)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Update beamline desc

* Remove comments, move coolant fluid check to Util class

* Spotless

* Spotless apply for branch lanth-beamline for #2619 (#2666)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Fix Mu-Metal recipe output amount, tool stats for MM &amp; LaB6

* Spotless

* Fix multi hatch textures

* Spotless apply for branch lanth-beamline for #2619 (#2676)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Increase Synchrotron output rate eut &amp; antenna tier scaling, in general improve output rates, buff all TC recipes' processing time

* Fix misleading BL tooltip

* update

* remove import

* Buff higher-tier wafer recipes for each IC, from a 4x to 3x increase of recipe amount per two wafer tier increases

* Remove RA1 calls in beamline (#2716)

* Spotless apply for branch lanth-beamline for #2619 (#2717)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* fix

* Spotless apply for branch lanth-beamline for #2619 (#2733)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

---------

Co-authored-by: unknown &lt;gtandemmodding@gmail.com&gt;
Co-authored-by: Elisis &lt;jarrad.thomson@gmail.com&gt;
Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Beamline

* Remove hardcoded dreamcraft items and spotless

* Remove logs and fix auto structure check

* Remove logs and fix auto structure check

* Fix typo and synchrotron high MF scaling

* sa

(cherry picked from commit b2796d95538a1b683b4a98bf6cb0f8fe21404fbd)

* Add multi textures, add structuredesc info, remove test TC input, add synchrotron/input/output recipes

* Spotless

* Prevent mob spawning on casings

* Fix LINAC glass requirement, make synchrotron structure less ugly, add last recipe

* Spotless

* Add placeholder particle textures

* Add some mask recipes I missed

* Spotless apply for branch lanth-beamline for #2619 (#2630)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Add further error messages to LINAC and Synchrotron, fix MM &amp; LaB6 recipes

* Spotless apply for branch lanth-beamline for #2619 (#2648)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Minor changes, add more multi error messages &amp; 9x U-238 SC recipe

* Spotless apply for branch lanth-beamline for #2619 (#2651)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Missed a change

* Spotless apply for branch lanth-beamline for #2619 (#2652)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Update beamline desc

* Remove comments, move coolant fluid check to Util class

* Spotless

* Spotless apply for branch lanth-beamline for #2619 (#2666)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Fix Mu-Metal recipe output amount, tool stats for MM &amp; LaB6

* Spotless

* Fix multi hatch textures

* Spotless apply for branch lanth-beamline for #2619 (#2676)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* Increase Synchrotron output rate eut &amp; antenna tier scaling, in general improve output rates, buff all TC recipes' processing time

* Fix misleading BL tooltip

* update

* remove import

* Buff higher-tier wafer recipes for each IC, from a 4x to 3x increase of recipe amount per two wafer tier increases

* Remove RA1 calls in beamline (#2716)

* Spotless apply for branch lanth-beamline for #2619 (#2717)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* fix

* Spotless apply for branch lanth-beamline for #2619 (#2733)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

---------

Co-authored-by: unknown &lt;gtandemmodding@gmail.com&gt;
Co-authored-by: Elisis &lt;jarrad.thomson@gmail.com&gt;
Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>MultiTileEntityBlock work</title>
<updated>2024-07-10T04:38:05+00:00</updated>
<author>
<name>Jason Mitchell</name>
<email>mitchej@gmail.com</email>
</author>
<published>2024-06-29T17:48:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=59766c69f7622309075efd577c9543a8ac24c3f9'/>
<id>59766c69f7622309075efd577c9543a8ac24c3f9</id>
<content type='text'>
* Merge MultiTileEntityBlockRegistryInternal into MultiTileEntityBlock
* Add a hard dep on NEID for meta extension
* Use in world block meta for MuTE ID
* Use one block per MuTE Registry
* Add WeakTargetRef
* Migrate `controller` reference for parts over to a non non cachable WeakTargetRef
* Migrate controller WeakReference usage to WeakTargetRef
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Merge MultiTileEntityBlockRegistryInternal into MultiTileEntityBlock
* Add a hard dep on NEID for meta extension
* Use in world block meta for MuTE ID
* Use one block per MuTE Registry
* Add WeakTargetRef
* Migrate `controller` reference for parts over to a non non cachable WeakTargetRef
* Migrate controller WeakReference usage to WeakTargetRef
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactors</title>
<updated>2024-07-10T04:38:05+00:00</updated>
<author>
<name>Jason Mitchell</name>
<email>mitchej+github@gmail.com</email>
</author>
<published>2024-06-22T07:36:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=3724fbbcb67ee2566419654e31eb88eb5b7f88f6'/>
<id>3724fbbcb67ee2566419654e31eb88eb5b7f88f6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Numeric widget and localized number formatting. (#2532)</title>
<updated>2024-03-13T01:00:02+00:00</updated>
<author>
<name>Abdiel Kavash</name>
<email>19243993+AbdielKavash@users.noreply.github.com</email>
</author>
<published>2024-03-13T01:00:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=26c8407b9d22dbe4e3b98b4e08acfcdbfdd89f45'/>
<id>26c8407b9d22dbe4e3b98b4e08acfcdbfdd89f45</id>
<content type='text'>
* Cover widgets

* Volumetric flask

* Misc textfields

* Update GT_MetaTileEntity_MultiBlockBase.java

* Update GT_MetaTileEntity_MultiBlockBase.java

* Fixes decimal digits

---------

Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Cover widgets

* Volumetric flask

* Misc textfields

* Update GT_MetaTileEntity_MultiBlockBase.java

* Update GT_MetaTileEntity_MultiBlockBase.java

* Fixes decimal digits

---------

Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Merge MuTEMaster into Master (#2431)</title>
<updated>2024-01-05T22:41:00+00:00</updated>
<author>
<name>BlueWeabo</name>
<email>ilia.iliev2005@gmail.com</email>
</author>
<published>2024-01-05T22:41:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=02bedd5c0a96a654c6692edd1b7f2765fd9c46b4'/>
<id>02bedd5c0a96a654c6692edd1b7f2765fd9c46b4</id>
<content type='text'>
* Fix MuTE structure check and power intake (#1975)

* Fixed casing lists being cleared for every checked structure piece

* Fixed power being taken from any side BUT the right one

* ACP Structure - Rebased (#1978)

* Added 2nd structure tier to ACR and make complex parallels depend on it

* Added tier 3 to 8 structure pieces to ACR

* Added disclaimer

* Renamed ACR to ACP because MV CR already is named ACR

* Add autopush functionality to MuTE (#1976) - fix conflict

* Working auto push

* Revert wildcard import

* Addresssed reviews

* Fix reference issue

* Minor MuTE fixes - Rebased (#1983)

* Fixed ACP recipe map

* Fixed controller side being used instead of part side when accessing tanks

* Fix Structure not forming (#1984)

* fix cables not connecting

* fix structure and don't store controller

* Add missing tooltips (#1981)

* Add missing tooltips

* Address blue's change

* Distillation MuTE (#1989)

* Started work on DT MuTE

* Renamed methods so they also make sense when used horizontally

* MuTE Upgrade Casings - Rebased (#1988) - fix conflict

* Added cleanroom upgrade casing

* Added inventory and tank upgrades

* Added tooltips to mute casings

* Added power upgrades

* Set player UUID when placing MuTE

* MuTE fixes (#1991)

* Fixed pipes not connectable to MuTE casings

* Fixed not all things being renamed to ACP

* Fix running in obf

* fix for real yo

* Add a Generic Processing Logic and extract methods - Rebased (#1992)

* add a generic processing logic

* calculate tier in another method

* calculate power logic in another method

* Add Layered Coke Foundry (#1995)

* Add the Foundry class and call it

* Foundry name correction

* Buildable stackable structure

* Fixed min stacks and added motor casings

* checkMachine override for custom checking

* Working checkMachine for all stacks, and recipes

* Fix getOutputFluids

* Change recipe processing to GenericProcessingLogic

* Change inventoryName to protected for override

* Override checkRecipe for multis that consume EU

* Rename class and add inner walls to multi

* Structure update and other fixes

* Fix processing logic being static

* MuTE inventory upgrade logic (#2082)

* Catch potential NPE

* Don't load name when it doesn't exist

* Potentially cause weird non-replicatable issue where registry ends up with different key

* Use proper block removal method

* Validate index before using it

* Don't open controller GUI from inventory upgrade

* semi-working concept

* sync the ID of the inventory upgrade to correctly remove it later

* remove unneeded boolean

---------

Co-authored-by: BlueWeabo &lt;76872108+BlueWeabo@users.noreply.github.com&gt;

* fixed layeredCokeBattery checkMachine to prevent 'already in building state' (#2099)

* MuTE casing structure element (#2105) - fix conflict

* Added class containing MuTE relevant structure elements

* Migrate MuTE to new structure element

* Formatting fix

* Use int array instead of int hashmap, since its expected these arrays will never get long enough to be faster as hashmap

* Delete old code

* Cache MuTEs for non-instance specific actions (#2109)

* Introduce map of cached TEs, which are used to perform actions that don't require a specific instance of the TE. This prevents constant creation of new TEs

* Remove static modifier from map of cached TEs

* First Modular Upgrade Casings Implementation (#2142)

* Base support for Heater MUCs

- Define Heater upgrade casings;
- Create the 5 tiers of Heaters;
- Add method to increase and decrease count.

* Refactor the cache of MUCs in structure

- Change the way that each MUC is counted: since there will be several types, the integer that counted heaters is now a hashmap that divides all MUCs based on their type and tier, to be counted separately from each other.

* Add Insulator MUC

- Add second MUC type (insulator) to test alongside heaters on the Layered Coke Battery.

* Fix MUC count reset

* Refactor MUC implementation into subclass

- Move the new methods and hashmap away from the base classes, and onto a s specific one that won't be used by unrelated multiblocks.

* Remove empty lines

* Refactor MUC implementations into subclasses

* Requested fixes in StackableModularController

* Change hashmap keys to an enum

* Hashmap getter for load order purposes

- Added a getter that generates the default value for the hashmap if it is null, due to problems with load order;

* Apply spotless

* NotNull annotations

* More Additions to MUCs and the LCB (#2215)

* Fix old LCB multi name in some locations

* Refactor mucMap and override checkRecipe

- Refactor mucMap to an array of primitive integers instead of the wrapper type, for ease of use with other methods such as stream;
- Override checkRecipe for custom recipe behavior on MUC multis, to be implemented in a future commit;

* First implementation of bonuses and MUC requirements

- Change EU/t and recipe duration of this multi based on the count of different MUCs in the multi;
- Fail the structure check based on the count of each of the allowed MUCs.

* Parallel count implementation

- Calculate parallels based on the count of base MUCs, the cheapest option amongst the possibilities, in this case heaters;
- Added more abstract methods to require specific values from the multi classes.

* Fix parallel count and processing

- Fixed the handling of parallels by pointing to the corrent maxParallel variable in ProcessingLogic.

* Test of parallels with additional amp input

* Structure fix for the intended LCB

- Changed MUC placements to match what I intended at the beginning, to better test the multi.

* One more comment

* Remove checkRecipe override

* Refactor Item and Fluid to be in separate logic classes (#2178) - fix
conflict

* basics of inventory logic

* mostly working item logic

* working nbt saving/loading

* fluid handler

* FluidSlotHandler WIP

* fluid handler mostly working

* remove fluid handler from gt5u

* prepare for conversion

* use correct imports

* spotless

* more controller logic

* spotless

* final refactor. migration next

* spotless

* add more methods to logic classes

* convert almost everything to use new Logic

* spotless

* make mute casing mode an int

* allow pump cover to work with FluidInventoryLogic

* pumps work

* spotless

* make item inventory logic work with every item input thing

* rework Fluid Inventory Logic to work with all fluid inputs

* spotless

* address annotation reviews

* finish off todos

* missed to dos

* cleanup

Coke oven will get a new GUI when i get to it

* address review

* prevent npes from ControllerXXXLogic

* null checks

* remove accidentally added methods

* fix missed return

* fixes after rebase - fix conflict

* Laser Engraver Multi. (#2223) - fix conflict

* saving.............

* clean up

* savin

* Small fixes + Adding back stuff, Crashes you and spams logs.

* fix stack overflow

* Fixes

* Fixes

---------

Co-authored-by: BlueWeabo &lt;76872108+BlueWeabo@users.noreply.github.com&gt;

* Add TickableTask (#2216)

* Add autopush functionality to MuTE (#1976)

* Working auto push

* Revert wildcard import

* Addresssed reviews

* Fix reference issue

* MuTE Upgrade Casings (#1988)

* Added cleanroom upgrade casing

* Added inventory and tank upgrades

* Added tooltips to mute casings

* Added power upgrades

* Set player UUID when placing MuTE

* Add a Generic Processing Logic and extract methods (#1992)

* add a generic processing logic

* calculate tier in another method

* calculate power logic in another method

* MuTE inventory upgrade logic (#2082)

* Catch potential NPE

* Don't load name when it doesn't exist

* Potentially cause weird non-replicatable issue where registry ends up with different key

* Use proper block removal method

* Validate index before using it

* Don't open controller GUI from inventory upgrade

* semi-working concept

* sync the ID of the inventory upgrade to correctly remove it later

* remove unneeded boolean

---------

Co-authored-by: BlueWeabo &lt;76872108+BlueWeabo@users.noreply.github.com&gt;

* MuTE casing structure element (#2105)

* Added class containing MuTE relevant structure elements

* Migrate MuTE to new structure element

* Formatting fix

* Use int array instead of int hashmap, since its expected these arrays will never get long enough to be faster as hashmap

* Delete old code

* Refactor Item and Fluid to be in separate logic classes (#2178)

* basics of inventory logic

* mostly working item logic

* working nbt saving/loading

* fluid handler

* FluidSlotHandler WIP

* fluid handler mostly working

* remove fluid handler from gt5u

* prepare for conversion

* use correct imports

* spotless

* more controller logic

* spotless

* final refactor. migration next

* spotless

* add more methods to logic classes

* convert almost everything to use new Logic

* spotless

* make mute casing mode an int

* allow pump cover to work with FluidInventoryLogic

* pumps work

* spotless

* make item inventory logic work with every item input thing

* rework Fluid Inventory Logic to work with all fluid inputs

* spotless

* address annotation reviews

* finish off todos

* missed to dos

* cleanup

Coke oven will get a new GUI when i get to it

* address review

* prevent npes from ControllerXXXLogic

* null checks

* Base work

* PollutionTask

* move package

* Fix generics

* Internal -&gt; OverrideOnly

* rebase fix

* Ducttape addPollution

---------

Co-authored-by: Maxim &lt;maxim235@gmx.de&gt;
Co-authored-by: BlueWeabo &lt;ilia.iliev2005@gmail.com&gt;
Co-authored-by: BlueWeabo &lt;76872108+BlueWeabo@users.noreply.github.com&gt;

* Rework a bit of ProcessingLogic to fit MuTEs (#2283) - fix conflicts

* Add a way to enable or disable the crafting buffer on GPL multiblocks (#2218)

* add a way to enable or disable the crafting buffer on GPL multiblocks

* don't register the hatch either

* fix Refractory Capsule (#2219)

* Fix PAs overclocking ulv recipes too much (#2220)

* fix PAs overclocking ulv recipes too much

* make sure we save the returned value

* Fix Digital Tank capacity for Fluid Storage Monitor (#2217)

* Fix Digital Tank capacity for Fluid Storage Monitor

* Annotations

* Blacklist AE2FC drop and packet, and Chisel stones from Recycler (#2222)

* Fix recycler blacklist being sensitive to NBT

* Blacklist AE2FC drop and packet, and Chisel stones

* fix class loader issue

* Add detailed logging for ME hatches (#2224)

* Fix overclock calculator calculating eu/t use for ulv recipe wrong on certain parallel (#2225)

* fix overclock calculator calculating eu/t use for ulv recipe wrong on certain parallel

* make formula into its own method

* Fix drilling rigs, plants and concrete backfiller to fail with multiple energy hatches (#2227)

* max-1-energy-hatch-in-drilling-rigs.-plants-and-concrete-backfiller

* spotlessApply (#2228)

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* revert

---------

Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;

* clear stale crafting input bus list (#2233)

* add ability to remove item data and use it for clay (#2229)

* Update buildscript (#2232)

* Fix server crash with RecipeFilter (#2231)

* Fix server crash with RecipeFilter

* Make client send filtered machines to server

* Use mUniqueIdentifier

* Fix a NPE w/ injecting into super/quantum chests (#2234)

When simulating an injection, if the stackSize &gt; chest's capacity, it
causes a NPE when the internal chest is empty.

Also fixes a potential bug when void overflow is set; the chest should
return null in such a scenario regardless of simulation/modulation.

* Fix lag caused by getRecipeMap for PA (#2236)

* Experimental fix to prevent infinite loop in Grid destruction (#2235)

Co-authored-by: Firenoo &lt;49818773+firenoo@users.noreply.github.com&gt;

* Fix ME Output Bus and Crafting Input Bus overflow when save/load (#2238)

* Remove fire display from singleblock generator (#2240)

* Fix some output slots allowing insertion (#2230)

* fix overlay zfighting by disable depth test (#2226)

* Crafting input - Optimize isEmpty check to reduce lag (#2239)

* Optimize isEmpty check

* rearrage

* remove broken hsla recipe (#2241)

* Correct PCB Factory Energy Hatch description (#2237)

* Correct PCB Factory Energy Hatch description

Changes the PCB factory description (the one seen when holding shift) which currently says "Energy Hatches: 1+"

I believe this is incorrect and that the correct description is 1-2 energy hatches or 1 TT energy hatch.

I believe the PCB factory uses this, which checks for 1-2 or 1 TT:

public boolean checkExoticAndNormalEnergyHatches() {
        if (mExoticEnergyHatches.isEmpty() &amp;&amp; mEnergyHatches.isEmpty()) {
            return false;
        }

        if (!mExoticEnergyHatches.isEmpty()) {
            if (!mEnergyHatches.isEmpty()) {
                return false;
            }

            if (mExoticEnergyHatches.size() != 1) {
                return false;
            }
        }

        return mEnergyHatches.size() &lt;= 2;
    }

* gradlew spotlessApply

* Correct file name on resource pack guide (#2242)

* Fix GT_RecipeConstants.Fuel (#2243)

* Update text (#2246)

* Fix startup tier for fusion NEI (#2249)

* Update the conditionals buttons and tooltips on covers to reflect their actual effects (#2244)

* Update redstone buttons and tooltips to better reflect actual use

* Spotless Apply

* Update GT_Cover_FluidRegulator.java

* Update GT_Cover_FluidRegulator.java

* Typo fix, Icon Improved and interactive blocking ui

- Fixed a typo in the world machine
- Fixed double button situation for conveyor belts.
  - There was never any issue, the testing methodology gave me invalid results.
  - Conveyor behaviour is in line with all the other covers affected by this PR/Branch.
- Updated icon for the machine state to be a miniature machine controller cover.
- Made the block/allow input section more interactive in order to better reflect the actual effect of these buttons.
  - In import mode, it actually blocks the machine from outputting from that side.

* typos

I can't write to save myself sometimes

* Better text alignment

- Better text alignment

* fix typos

I swear I can't write to save myself.

---------

Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;

* Fix Orichalcum and Shadowiron smelting (#2251)

* fix orichalcum and shadowiron smelting

* add Alduorite and Chrysotile

* Fix tier display for Fusion NEI header (#2250)

* fix ulv recipes being broken again when under 1 tick calculation is taken (#2254)

* change way to fix zfighting (#2253)

* Crafting input hatches QoLs (#2200)

* Fixes + Detect Inventory Slot Changes

* support rename + check for updates

* add back onChangeListener + fix npe

* ICustomNameObject TileEntity

* Fix NPEs

* Use IInterfaceTerminalSupport

* fix

* register

* dep

* spotless

* General Crafting Input Hatch QoL fixes (#2212)

* feat: refactor naming &amp;&amp; include circuit and catalyst in default name

* feat: add 4 more slot to solve my ocd

* fix: formatting

* feat: migrate from 4x8 to 4x9

* spotlessApply (#2213)

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* QoLs

* 9 manual items

* spotless

* feat: open master GUI when used, without holding a data-stick (#2221)

* fix destpos

* optimize empty check

* Fix error when fluidInventory.size() == 0

If the fluidInventory size is 0, there is no element to get. Add a check
for it.

* name in waila + fix int overflow

* unnecssary super

* update deps

---------

Co-authored-by: Fox_white &lt;39846845+foxwhite25@users.noreply.github.com&gt;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Co-authored-by: Firenoo &lt;49818773+firenoo@users.noreply.github.com&gt;
Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;

* Use real stack limit (#2256)

* Fix incorrect data stick behaviors for hatches (#2257)

* Fix pcb factory not applying its roughness multiplier when it doesn't OC (#2258)

* fix PCB Factory not applying its roughness multiplier when it doesn't do any overclocks

* spotless

* Remove duplicate obsidian long rod (#2259)

* disable gt obsidian long rod

* cleaner code

* Add hazmat to ThaumicBoots (#2260)

* Add hazmat to ThaumicBoots

does what it says

* fixed

* fix item names (#2263)

* Fix renaming recipe check might ignore NBT equality (#2261)

* Fix GPL ignoring if the recipe is allowed to be cached (#2262)

* Added bricked blast furnace recipe progress to waila. (#2265)

* Added bricked blast furnace recipe progress to waila.

* fixed formatting issues.

* Fix cutter recipes not being added (#2271)

* add processing task

* clean up item logic host

* temporary fix for GT_StructrureMuTE

* use j9+ feature on pollution task

* prepare complex parallel logic for transition

* feature to ProcessingLogicHost

* fix up multiblock bases

* add processing logic for each multi to prepare for transition

* spotless

* removed debug text from wailaBody of GT_MetaTileEntity_Hatch_CraftingInput_ME (#2272)

* Proper recipe selection for output overflow in LCR and other multiblocks (#2247)

* Implement Stream&lt;FindRecipeResult&gt; findRecipesWithResult for GT_RecipeMap

* Change ProcessingLogic.process to actually use new  findRecipesWithResult

* Change ProcessingLogic.process to start finding something only for OUTPUT_FULL result

* Refactor ProcessingLogic.process to make logic more readable

* Replace while with for loop, remove NOT_FOUND return in end of findRecipesWithResult

* Apply spotless

* Make findRecipe use findRecipes, add annotation to GT_Recipe and FindRecipeResult for processRecipe and make method protected, replace wildcard imports

* Remake isRecipeWithOutputFullFound

* Add @Nonnull to methods

* Apply spotless

* Remove Stream version of findRecipeWithResult, replace with predicate one. Add GT_Predicated_Recipe_Map class for utilizing this method. Changes some existent recipe maps to inherit from base class.

* Remove GT_Predicated_Recipe_Map, add Predicate directly to GT_Recipe_Map#findRecipeWithResult. Add AdvancedRecipeValidatorPredicate and FindRecipeWithAdvancedValidatorResult to allow store validation calculations for further use and proper errors displaying.

* Fix InsufficientVoltage errors

* Changes according to review comments. Integrate FindRecipeWithAdvancedValidatorResult to FindRecipeResult, rename AdvancedRecipeValidatorPredicate, encapsulate AdvancedRecipeValidatorPredicate fields, fixes some typos, etc

* Moves InsufficientVoltage check to GT_ParallelHelper. Removes FindRecipeResult#State#INSUFFICIENT_VOLTAGE

* Return an old findRecipeWithResult

* Renames things, call old methods for singleblocks

* Renames things, makes FindRecipeResult ctor private

* Apply spotless

* Move RecipeValidator, fix comments typos

* update deps

* fix up complex processing logic

* add a getter for voiding mode

* fix getAccessibleSlotsFromSide being wrong sometimes

* allow for subtraction of a specific item

* use long for amount

* add a setter for machine host

* initial work on finding recipes and input consumption

* Deprecate PA by removing its controller recipe (#2273)

* Restore PA controller recipe (#2276)

* Restore PA controller recipe

* Remove duplicated recipe

* Add optional description to input hatch constructors (#2278)

* mini fix (#2204)

* [chore] Bump fallback version to 44 (#2274)

* find recipe in theory working

* add some helper methods to inventory logics

* update deps

* use collect not toList

* fix loading crash

* fix complex processing logic using wrong find recipe

* fix up everything and get recipe finding working

* annotate and clean up methods

* spotless

* save things to nbt

* input separation for mutes and fully working processing

* apply mute mode on processing logic

* clean up overrides

---------

Co-authored-by: chochem &lt;40274384+chochem@users.noreply.github.com&gt;
Co-authored-by: miozune &lt;miozune@gmail.com&gt;
Co-authored-by: Pxx500 &lt;81298696+Pxx500@users.noreply.github.com&gt;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Co-authored-by: Glease &lt;4586901+Glease@users.noreply.github.com&gt;
Co-authored-by: firenoo &lt;49818773+firenoo@users.noreply.github.com&gt;
Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;
Co-authored-by: Harry &lt;harryyunull@gmail.com&gt;
Co-authored-by: Eraldoe &lt;Eraldoe@users.noreply.github.com&gt;
Co-authored-by: Jakub &lt;53441451+kuba6000@users.noreply.github.com&gt;
Co-authored-by: Connor-Colenso &lt;52056774+Connor-Colenso@users.noreply.github.com&gt;
Co-authored-by: Guillaume Mercier &lt;C0bra5@users.noreply.github.com&gt;
Co-authored-by: Fox_white &lt;39846845+foxwhite25@users.noreply.github.com&gt;
Co-authored-by: Alastors &lt;78517796+Alastors@users.noreply.github.com&gt;
Co-authored-by: Kyium &lt;43573052+Kyium@users.noreply.github.com&gt;
Co-authored-by: SKProCH &lt;29896317+SKProCH@users.noreply.github.com&gt;
Co-authored-by: Sampsa &lt;69092953+S4mpsa@users.noreply.github.com&gt;
Co-authored-by: Jaiden Baker &lt;jaidencolebaker@gmail.com&gt;

* address minecraft's reviews from #2283

* Refactor MuTE processing logic (#2301) -fix conflicts

* Fix void protection for mutes (#2298) - fix conflicts

* initial variables

* implement working void protection on items and fluids

* Adds a Simple PowerOutput task and cleans up some of the code. (#2303)

* create a power output task which can be used for dynamos

* refactor the controllers and clean up

* add some documentation to power logic

* make a wireless network manager class instead of using an interface

* clean up and add documentation.

* setAmperage to setMaxAmperage

* fix comment

* remove IGlobalWirelessEnergy usage

* getAmperage -&gt; getMaxAmperage

* add todo for future

* Cleanup MuTEMaster code (#2282)

* exit early

* spotless

* better side checking

* make if blocks mutually exclusive

* more exit early

* convert nested ternary operators into if blocks

* remove dead code

* collapse nested if blocks

* add todo to break verylong condition into much smaller ones

* spotless apply

* collapsing nested if blocks and more exit early

* spotless apply

* extract try/catch block to its own utility method

* break down this unreadable condition

* boolean magic (1/5)

* boolean magic (2/5)

Also corrected some logic on the player null check, we want it to be non null

* boolean magic (3/5)

* boolean magic (4/5)

* boolean magic (5/5)

* remove todo

* Fix logic

---------

Co-authored-by: Jason Mitchell &lt;jason@puzzle.io&gt;
Co-authored-by: BlueWeabo &lt;76872108+BlueWeabo@users.noreply.github.com&gt;

* Clean up a lil bit and fix some issues with MuTEs (#2316)

* clean up fixes

* actual fix and remove useless if

* Rework MuTEGUI structure (#2429) - fix conflicts`

Merged to rebase MuTEMaster and fix any non-compile errors and game not launching in there

* some docs on a few methods

* innitial GUI class

* try to implement guis

* almost working - fix comflict

* add UIBuildContext to getGUI method

* make it compile

* sketch gui - fix conflict

* compile and spotless

* add config option to enabling MuTEs

* Spotless apply for branch feature/MuTEMaster for #2431 (#2432)

spotlessApply

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* address reviews on broken processing logic

* spotless

* fix doc and review

---------

Co-authored-by: Maxim &lt;maxim235@gmx.de&gt;
Co-authored-by: RIONDY 'POPlol333' Adam &lt;76914762+POPlol333@users.noreply.github.com&gt;
Co-authored-by: Jason Mitchell &lt;mitchej@gmail.com&gt;
Co-authored-by: Daniel Mendes &lt;70096037+Steelux8@users.noreply.github.com&gt;
Co-authored-by: kstvr32 &lt;109012629+kstvr32@users.noreply.github.com&gt;
Co-authored-by: TheEpicGamer274 &lt;102255081+TheEpicGamer274@users.noreply.github.com&gt;
Co-authored-by: miozune &lt;miozune@gmail.com&gt;
Co-authored-by: chochem &lt;40274384+chochem@users.noreply.github.com&gt;
Co-authored-by: Pxx500 &lt;81298696+Pxx500@users.noreply.github.com&gt;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Co-authored-by: Glease &lt;4586901+Glease@users.noreply.github.com&gt;
Co-authored-by: firenoo &lt;49818773+firenoo@users.noreply.github.com&gt;
Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;
Co-authored-by: Harry &lt;harryyunull@gmail.com&gt;
Co-authored-by: Eraldoe &lt;Eraldoe@users.noreply.github.com&gt;
Co-authored-by: Jakub &lt;53441451+kuba6000@users.noreply.github.com&gt;
Co-authored-by: Connor-Colenso &lt;52056774+Connor-Colenso@users.noreply.github.com&gt;
Co-authored-by: Guillaume Mercier &lt;C0bra5@users.noreply.github.com&gt;
Co-authored-by: Fox_white &lt;39846845+foxwhite25@users.noreply.github.com&gt;
Co-authored-by: Alastors &lt;78517796+Alastors@users.noreply.github.com&gt;
Co-authored-by: Kyium &lt;43573052+Kyium@users.noreply.github.com&gt;
Co-authored-by: SKProCH &lt;29896317+SKProCH@users.noreply.github.com&gt;
Co-authored-by: Sampsa &lt;69092953+S4mpsa@users.noreply.github.com&gt;
Co-authored-by: Jaiden Baker &lt;jaidencolebaker@gmail.com&gt;
Co-authored-by: boubou19 &lt;miisterunknown@gmail.com&gt;
Co-authored-by: Jason Mitchell &lt;jason@puzzle.io&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix MuTE structure check and power intake (#1975)

* Fixed casing lists being cleared for every checked structure piece

* Fixed power being taken from any side BUT the right one

* ACP Structure - Rebased (#1978)

* Added 2nd structure tier to ACR and make complex parallels depend on it

* Added tier 3 to 8 structure pieces to ACR

* Added disclaimer

* Renamed ACR to ACP because MV CR already is named ACR

* Add autopush functionality to MuTE (#1976) - fix conflict

* Working auto push

* Revert wildcard import

* Addresssed reviews

* Fix reference issue

* Minor MuTE fixes - Rebased (#1983)

* Fixed ACP recipe map

* Fixed controller side being used instead of part side when accessing tanks

* Fix Structure not forming (#1984)

* fix cables not connecting

* fix structure and don't store controller

* Add missing tooltips (#1981)

* Add missing tooltips

* Address blue's change

* Distillation MuTE (#1989)

* Started work on DT MuTE

* Renamed methods so they also make sense when used horizontally

* MuTE Upgrade Casings - Rebased (#1988) - fix conflict

* Added cleanroom upgrade casing

* Added inventory and tank upgrades

* Added tooltips to mute casings

* Added power upgrades

* Set player UUID when placing MuTE

* MuTE fixes (#1991)

* Fixed pipes not connectable to MuTE casings

* Fixed not all things being renamed to ACP

* Fix running in obf

* fix for real yo

* Add a Generic Processing Logic and extract methods - Rebased (#1992)

* add a generic processing logic

* calculate tier in another method

* calculate power logic in another method

* Add Layered Coke Foundry (#1995)

* Add the Foundry class and call it

* Foundry name correction

* Buildable stackable structure

* Fixed min stacks and added motor casings

* checkMachine override for custom checking

* Working checkMachine for all stacks, and recipes

* Fix getOutputFluids

* Change recipe processing to GenericProcessingLogic

* Change inventoryName to protected for override

* Override checkRecipe for multis that consume EU

* Rename class and add inner walls to multi

* Structure update and other fixes

* Fix processing logic being static

* MuTE inventory upgrade logic (#2082)

* Catch potential NPE

* Don't load name when it doesn't exist

* Potentially cause weird non-replicatable issue where registry ends up with different key

* Use proper block removal method

* Validate index before using it

* Don't open controller GUI from inventory upgrade

* semi-working concept

* sync the ID of the inventory upgrade to correctly remove it later

* remove unneeded boolean

---------

Co-authored-by: BlueWeabo &lt;76872108+BlueWeabo@users.noreply.github.com&gt;

* fixed layeredCokeBattery checkMachine to prevent 'already in building state' (#2099)

* MuTE casing structure element (#2105) - fix conflict

* Added class containing MuTE relevant structure elements

* Migrate MuTE to new structure element

* Formatting fix

* Use int array instead of int hashmap, since its expected these arrays will never get long enough to be faster as hashmap

* Delete old code

* Cache MuTEs for non-instance specific actions (#2109)

* Introduce map of cached TEs, which are used to perform actions that don't require a specific instance of the TE. This prevents constant creation of new TEs

* Remove static modifier from map of cached TEs

* First Modular Upgrade Casings Implementation (#2142)

* Base support for Heater MUCs

- Define Heater upgrade casings;
- Create the 5 tiers of Heaters;
- Add method to increase and decrease count.

* Refactor the cache of MUCs in structure

- Change the way that each MUC is counted: since there will be several types, the integer that counted heaters is now a hashmap that divides all MUCs based on their type and tier, to be counted separately from each other.

* Add Insulator MUC

- Add second MUC type (insulator) to test alongside heaters on the Layered Coke Battery.

* Fix MUC count reset

* Refactor MUC implementation into subclass

- Move the new methods and hashmap away from the base classes, and onto a s specific one that won't be used by unrelated multiblocks.

* Remove empty lines

* Refactor MUC implementations into subclasses

* Requested fixes in StackableModularController

* Change hashmap keys to an enum

* Hashmap getter for load order purposes

- Added a getter that generates the default value for the hashmap if it is null, due to problems with load order;

* Apply spotless

* NotNull annotations

* More Additions to MUCs and the LCB (#2215)

* Fix old LCB multi name in some locations

* Refactor mucMap and override checkRecipe

- Refactor mucMap to an array of primitive integers instead of the wrapper type, for ease of use with other methods such as stream;
- Override checkRecipe for custom recipe behavior on MUC multis, to be implemented in a future commit;

* First implementation of bonuses and MUC requirements

- Change EU/t and recipe duration of this multi based on the count of different MUCs in the multi;
- Fail the structure check based on the count of each of the allowed MUCs.

* Parallel count implementation

- Calculate parallels based on the count of base MUCs, the cheapest option amongst the possibilities, in this case heaters;
- Added more abstract methods to require specific values from the multi classes.

* Fix parallel count and processing

- Fixed the handling of parallels by pointing to the corrent maxParallel variable in ProcessingLogic.

* Test of parallels with additional amp input

* Structure fix for the intended LCB

- Changed MUC placements to match what I intended at the beginning, to better test the multi.

* One more comment

* Remove checkRecipe override

* Refactor Item and Fluid to be in separate logic classes (#2178) - fix
conflict

* basics of inventory logic

* mostly working item logic

* working nbt saving/loading

* fluid handler

* FluidSlotHandler WIP

* fluid handler mostly working

* remove fluid handler from gt5u

* prepare for conversion

* use correct imports

* spotless

* more controller logic

* spotless

* final refactor. migration next

* spotless

* add more methods to logic classes

* convert almost everything to use new Logic

* spotless

* make mute casing mode an int

* allow pump cover to work with FluidInventoryLogic

* pumps work

* spotless

* make item inventory logic work with every item input thing

* rework Fluid Inventory Logic to work with all fluid inputs

* spotless

* address annotation reviews

* finish off todos

* missed to dos

* cleanup

Coke oven will get a new GUI when i get to it

* address review

* prevent npes from ControllerXXXLogic

* null checks

* remove accidentally added methods

* fix missed return

* fixes after rebase - fix conflict

* Laser Engraver Multi. (#2223) - fix conflict

* saving.............

* clean up

* savin

* Small fixes + Adding back stuff, Crashes you and spams logs.

* fix stack overflow

* Fixes

* Fixes

---------

Co-authored-by: BlueWeabo &lt;76872108+BlueWeabo@users.noreply.github.com&gt;

* Add TickableTask (#2216)

* Add autopush functionality to MuTE (#1976)

* Working auto push

* Revert wildcard import

* Addresssed reviews

* Fix reference issue

* MuTE Upgrade Casings (#1988)

* Added cleanroom upgrade casing

* Added inventory and tank upgrades

* Added tooltips to mute casings

* Added power upgrades

* Set player UUID when placing MuTE

* Add a Generic Processing Logic and extract methods (#1992)

* add a generic processing logic

* calculate tier in another method

* calculate power logic in another method

* MuTE inventory upgrade logic (#2082)

* Catch potential NPE

* Don't load name when it doesn't exist

* Potentially cause weird non-replicatable issue where registry ends up with different key

* Use proper block removal method

* Validate index before using it

* Don't open controller GUI from inventory upgrade

* semi-working concept

* sync the ID of the inventory upgrade to correctly remove it later

* remove unneeded boolean

---------

Co-authored-by: BlueWeabo &lt;76872108+BlueWeabo@users.noreply.github.com&gt;

* MuTE casing structure element (#2105)

* Added class containing MuTE relevant structure elements

* Migrate MuTE to new structure element

* Formatting fix

* Use int array instead of int hashmap, since its expected these arrays will never get long enough to be faster as hashmap

* Delete old code

* Refactor Item and Fluid to be in separate logic classes (#2178)

* basics of inventory logic

* mostly working item logic

* working nbt saving/loading

* fluid handler

* FluidSlotHandler WIP

* fluid handler mostly working

* remove fluid handler from gt5u

* prepare for conversion

* use correct imports

* spotless

* more controller logic

* spotless

* final refactor. migration next

* spotless

* add more methods to logic classes

* convert almost everything to use new Logic

* spotless

* make mute casing mode an int

* allow pump cover to work with FluidInventoryLogic

* pumps work

* spotless

* make item inventory logic work with every item input thing

* rework Fluid Inventory Logic to work with all fluid inputs

* spotless

* address annotation reviews

* finish off todos

* missed to dos

* cleanup

Coke oven will get a new GUI when i get to it

* address review

* prevent npes from ControllerXXXLogic

* null checks

* Base work

* PollutionTask

* move package

* Fix generics

* Internal -&gt; OverrideOnly

* rebase fix

* Ducttape addPollution

---------

Co-authored-by: Maxim &lt;maxim235@gmx.de&gt;
Co-authored-by: BlueWeabo &lt;ilia.iliev2005@gmail.com&gt;
Co-authored-by: BlueWeabo &lt;76872108+BlueWeabo@users.noreply.github.com&gt;

* Rework a bit of ProcessingLogic to fit MuTEs (#2283) - fix conflicts

* Add a way to enable or disable the crafting buffer on GPL multiblocks (#2218)

* add a way to enable or disable the crafting buffer on GPL multiblocks

* don't register the hatch either

* fix Refractory Capsule (#2219)

* Fix PAs overclocking ulv recipes too much (#2220)

* fix PAs overclocking ulv recipes too much

* make sure we save the returned value

* Fix Digital Tank capacity for Fluid Storage Monitor (#2217)

* Fix Digital Tank capacity for Fluid Storage Monitor

* Annotations

* Blacklist AE2FC drop and packet, and Chisel stones from Recycler (#2222)

* Fix recycler blacklist being sensitive to NBT

* Blacklist AE2FC drop and packet, and Chisel stones

* fix class loader issue

* Add detailed logging for ME hatches (#2224)

* Fix overclock calculator calculating eu/t use for ulv recipe wrong on certain parallel (#2225)

* fix overclock calculator calculating eu/t use for ulv recipe wrong on certain parallel

* make formula into its own method

* Fix drilling rigs, plants and concrete backfiller to fail with multiple energy hatches (#2227)

* max-1-energy-hatch-in-drilling-rigs.-plants-and-concrete-backfiller

* spotlessApply (#2228)

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* revert

---------

Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;

* clear stale crafting input bus list (#2233)

* add ability to remove item data and use it for clay (#2229)

* Update buildscript (#2232)

* Fix server crash with RecipeFilter (#2231)

* Fix server crash with RecipeFilter

* Make client send filtered machines to server

* Use mUniqueIdentifier

* Fix a NPE w/ injecting into super/quantum chests (#2234)

When simulating an injection, if the stackSize &gt; chest's capacity, it
causes a NPE when the internal chest is empty.

Also fixes a potential bug when void overflow is set; the chest should
return null in such a scenario regardless of simulation/modulation.

* Fix lag caused by getRecipeMap for PA (#2236)

* Experimental fix to prevent infinite loop in Grid destruction (#2235)

Co-authored-by: Firenoo &lt;49818773+firenoo@users.noreply.github.com&gt;

* Fix ME Output Bus and Crafting Input Bus overflow when save/load (#2238)

* Remove fire display from singleblock generator (#2240)

* Fix some output slots allowing insertion (#2230)

* fix overlay zfighting by disable depth test (#2226)

* Crafting input - Optimize isEmpty check to reduce lag (#2239)

* Optimize isEmpty check

* rearrage

* remove broken hsla recipe (#2241)

* Correct PCB Factory Energy Hatch description (#2237)

* Correct PCB Factory Energy Hatch description

Changes the PCB factory description (the one seen when holding shift) which currently says "Energy Hatches: 1+"

I believe this is incorrect and that the correct description is 1-2 energy hatches or 1 TT energy hatch.

I believe the PCB factory uses this, which checks for 1-2 or 1 TT:

public boolean checkExoticAndNormalEnergyHatches() {
        if (mExoticEnergyHatches.isEmpty() &amp;&amp; mEnergyHatches.isEmpty()) {
            return false;
        }

        if (!mExoticEnergyHatches.isEmpty()) {
            if (!mEnergyHatches.isEmpty()) {
                return false;
            }

            if (mExoticEnergyHatches.size() != 1) {
                return false;
            }
        }

        return mEnergyHatches.size() &lt;= 2;
    }

* gradlew spotlessApply

* Correct file name on resource pack guide (#2242)

* Fix GT_RecipeConstants.Fuel (#2243)

* Update text (#2246)

* Fix startup tier for fusion NEI (#2249)

* Update the conditionals buttons and tooltips on covers to reflect their actual effects (#2244)

* Update redstone buttons and tooltips to better reflect actual use

* Spotless Apply

* Update GT_Cover_FluidRegulator.java

* Update GT_Cover_FluidRegulator.java

* Typo fix, Icon Improved and interactive blocking ui

- Fixed a typo in the world machine
- Fixed double button situation for conveyor belts.
  - There was never any issue, the testing methodology gave me invalid results.
  - Conveyor behaviour is in line with all the other covers affected by this PR/Branch.
- Updated icon for the machine state to be a miniature machine controller cover.
- Made the block/allow input section more interactive in order to better reflect the actual effect of these buttons.
  - In import mode, it actually blocks the machine from outputting from that side.

* typos

I can't write to save myself sometimes

* Better text alignment

- Better text alignment

* fix typos

I swear I can't write to save myself.

---------

Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;

* Fix Orichalcum and Shadowiron smelting (#2251)

* fix orichalcum and shadowiron smelting

* add Alduorite and Chrysotile

* Fix tier display for Fusion NEI header (#2250)

* fix ulv recipes being broken again when under 1 tick calculation is taken (#2254)

* change way to fix zfighting (#2253)

* Crafting input hatches QoLs (#2200)

* Fixes + Detect Inventory Slot Changes

* support rename + check for updates

* add back onChangeListener + fix npe

* ICustomNameObject TileEntity

* Fix NPEs

* Use IInterfaceTerminalSupport

* fix

* register

* dep

* spotless

* General Crafting Input Hatch QoL fixes (#2212)

* feat: refactor naming &amp;&amp; include circuit and catalyst in default name

* feat: add 4 more slot to solve my ocd

* fix: formatting

* feat: migrate from 4x8 to 4x9

* spotlessApply (#2213)

Co-authored-by: GitHub GTNH Actions &lt;&gt;

* QoLs

* 9 manual items

* spotless

* feat: open master GUI when used, without holding a data-stick (#2221)

* fix destpos

* optimize empty check

* Fix error when fluidInventory.size() == 0

If the fluidInventory size is 0, there is no element to get. Add a check
for it.

* name in waila + fix int overflow

* unnecssary super

* update deps

---------

Co-authored-by: Fox_white &lt;39846845+foxwhite25@users.noreply.github.com&gt;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Co-authored-by: Firenoo &lt;49818773+firenoo@users.noreply.github.com&gt;
Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;

* Use real stack limit (#2256)

* Fix incorrect data stick behaviors for hatches (#2257)

* Fix pcb factory not applying its roughness multiplier when it doesn't OC (#2258)

* fix PCB Factory not applying its roughness multiplier when it doesn't do any overclocks

* spotless

* Remove duplicate obsidian long rod (#2259)

* disable gt obsidian long rod

* cleaner code

* Add hazmat to ThaumicBoots (#2260)

* Add hazmat to ThaumicBoots

does what it says

* fixed

* fix item names (#2263)

* Fix renaming recipe check might ignore NBT equality (#2261)

* Fix GPL ignoring if the recipe is allowed to be cached (#2262)

* Added bricked blast furnace recipe progress to waila. (#2265)

* Added bricked blast furnace recipe progress to waila.

* fixed formatting issues.

* Fix cutter recipes not being added (#2271)

* add processing task

* clean up item logic host

* temporary fix for GT_StructrureMuTE

* use j9+ feature on pollution task

* prepare complex parallel logic for transition

* feature to ProcessingLogicHost

* fix up multiblock bases

* add processing logic for each multi to prepare for transition

* spotless

* removed debug text from wailaBody of GT_MetaTileEntity_Hatch_CraftingInput_ME (#2272)

* Proper recipe selection for output overflow in LCR and other multiblocks (#2247)

* Implement Stream&lt;FindRecipeResult&gt; findRecipesWithResult for GT_RecipeMap

* Change ProcessingLogic.process to actually use new  findRecipesWithResult

* Change ProcessingLogic.process to start finding something only for OUTPUT_FULL result

* Refactor ProcessingLogic.process to make logic more readable

* Replace while with for loop, remove NOT_FOUND return in end of findRecipesWithResult

* Apply spotless

* Make findRecipe use findRecipes, add annotation to GT_Recipe and FindRecipeResult for processRecipe and make method protected, replace wildcard imports

* Remake isRecipeWithOutputFullFound

* Add @Nonnull to methods

* Apply spotless

* Remove Stream version of findRecipeWithResult, replace with predicate one. Add GT_Predicated_Recipe_Map class for utilizing this method. Changes some existent recipe maps to inherit from base class.

* Remove GT_Predicated_Recipe_Map, add Predicate directly to GT_Recipe_Map#findRecipeWithResult. Add AdvancedRecipeValidatorPredicate and FindRecipeWithAdvancedValidatorResult to allow store validation calculations for further use and proper errors displaying.

* Fix InsufficientVoltage errors

* Changes according to review comments. Integrate FindRecipeWithAdvancedValidatorResult to FindRecipeResult, rename AdvancedRecipeValidatorPredicate, encapsulate AdvancedRecipeValidatorPredicate fields, fixes some typos, etc

* Moves InsufficientVoltage check to GT_ParallelHelper. Removes FindRecipeResult#State#INSUFFICIENT_VOLTAGE

* Return an old findRecipeWithResult

* Renames things, call old methods for singleblocks

* Renames things, makes FindRecipeResult ctor private

* Apply spotless

* Move RecipeValidator, fix comments typos

* update deps

* fix up complex processing logic

* add a getter for voiding mode

* fix getAccessibleSlotsFromSide being wrong sometimes

* allow for subtraction of a specific item

* use long for amount

* add a setter for machine host

* initial work on finding recipes and input consumption

* Deprecate PA by removing its controller recipe (#2273)

* Restore PA controller recipe (#2276)

* Restore PA controller recipe

* Remove duplicated recipe

* Add optional description to input hatch constructors (#2278)

* mini fix (#2204)

* [chore] Bump fallback version to 44 (#2274)

* find recipe in theory working

* add some helper methods to inventory logics

* update deps

* use collect not toList

* fix loading crash

* fix complex processing logic using wrong find recipe

* fix up everything and get recipe finding working

* annotate and clean up methods

* spotless

* save things to nbt

* input separation for mutes and fully working processing

* apply mute mode on processing logic

* clean up overrides

---------

Co-authored-by: chochem &lt;40274384+chochem@users.noreply.github.com&gt;
Co-authored-by: miozune &lt;miozune@gmail.com&gt;
Co-authored-by: Pxx500 &lt;81298696+Pxx500@users.noreply.github.com&gt;
Co-authored-by: github-actions[bot] &lt;41898282+github-actions[bot]@users.noreply.github.com&gt;
Co-authored-by: Glease &lt;4586901+Glease@users.noreply.github.com&gt;
Co-authored-by: firenoo &lt;49818773+firenoo@users.noreply.github.com&gt;
Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;
Co-authored-by: Harry &lt;harryyunull@gmail.com&gt;
Co-authored-by: Eraldoe &lt;Eraldoe@users.noreply.github.com&gt;
Co-authored-by: Jakub &lt;53441451+kuba6000@users.noreply.github.com&gt;
Co-authored-by: Connor-Colenso &lt;52056774+Connor-Colenso@users.noreply.github.com&gt;
Co-authored-by: Guillaume Mercier &lt;C0bra5@users.noreply.github.com&gt;
Co-authored-by: Fox_white &lt;39846845+foxwhite25@users.noreply.github.com&gt;
Co-authored-by: Alastors &lt;78517796+Alastors@users.noreply.github.com&gt;
Co-authored-by: Kyium &lt;43573052+Kyium@users.noreply.github.com&gt;
Co-authored-by: SKProCH &lt;29896317+SKProCH@users.noreply.github.com&gt;
Co-authored-by: Sampsa &lt;69092953+S4mpsa@users.noreply.github.com&gt;
Co-authored-by: Jaiden Baker &lt;jaidencolebaker@gmail.com&gt;

* address minecraft's reviews from #2283

* Refactor MuTE processing logic (#2301) -fix conflicts

* Fix void protection for mutes (#2298) - fix conflicts

* initial variables

* implement working void protection on items and fluids

* Adds a Simple PowerOutput task and cleans up some of the code. (#2303)

* create a power output task which can be used for dynamos

* refactor the controllers and clean up

* add some documentation to power logic

* make a wireless network manager class instead of us