<feed xmlns='http://www.w3.org/2005/Atom'>
<title>github/GT5-Unofficial.git/src/main/java/gregtech/common/gui, 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>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>Infinite Spraycan Additions (#3226)</title>
<updated>2024-09-19T13:53:17+00:00</updated>
<author>
<name>querns</name>
<email>33518699+querns@users.noreply.github.com</email>
</author>
<published>2024-09-19T13:53:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=7ba0fc903e5d14928d2b894b00a7b7dfc65eee18'/>
<id>7ba0fc903e5d14928d2b894b00a7b7dfc65eee18</id>
<content type='text'>
Co-authored-by: Caedis &lt;Caedis@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Caedis &lt;Caedis@users.noreply.github.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>Buff later naqfuels and misc changes (#2847)</title>
<updated>2024-08-09T10:42:41+00:00</updated>
<author>
<name>Sampsa</name>
<email>69092953+S4mpsa@users.noreply.github.com</email>
</author>
<published>2024-08-09T10:42:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=9ae36e785e756bb263453174715a1c7aff9bf1a3'/>
<id>9ae36e785e756bb263453174715a1c7aff9bf1a3</id>
<content type='text'>
* Buff later naqfuels and misc changes

* Buff Mk5 alternate recipe speed</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Buff later naqfuels and misc changes

* Buff Mk5 alternate recipe speed</pre>
</div>
</content>
</entry>
<entry>
<title>Waterline rework (#2577)</title>
<updated>2024-08-03T21:21:44+00:00</updated>
<author>
<name>NotAPenguin</name>
<email>michiel.vandeginste@gmail.com</email>
</author>
<published>2024-08-03T21:21:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=b65ace37de4f585b8089ad413ee877b792da11ca'/>
<id>b65ace37de4f585b8089ad413ee877b792da11ca</id>
<content type='text'>
* Add barebones PurificationPlant class

* Make simple 3x3 structure to form purification plant

* Add base purification unit class and dummy sifter unit MTE

* Make sifter unit form

* Fix accidental wildcard import

* Implement basic linking of units to controller using data stick

* Make linking more robust, save bidirectional links, add scanner output

* add linking range, error message and unregister old controller when re-linking

* Add link status of purification units to waila body

* Disable maintenance issues on purification plant units

* spotless

* Check structure of linked purification units in main controller

* Remove all star imports

* Small refactor to avoid updating status from main controller

* spotless

* Attempt to document current code

* Convert some comments to javadoc

* Implement basic processing cycle, sync it with linked purification units

* Make water purification plant drain power

* Calculate power drain from active units and remove controller power drain

* spotless

* Add very barebones recipemap

* Fix recipemap name in lang file

* spotless

* Fix purification unit recipemap name

* spotless

* more sane amount of max fluid outputs

* add some item outputs to sifter unit

* Very simple recipe processing, may be buggy

* spotless

* Implement recipe failure

* Implement void protection for purification units

* spotless

* buff item output odds slightly

* Add WIP grade 1 structure

* spotless

* Store base success chance in recipe metadata and display it in NEI

* Fill sifter plant with water

* Add comment

* Allow construction sifter unit in survival

* Implement water boost

* Fix water boost allowing output chance to go over 100%

* Implement failed recipes outputting lower tier water

* Fix typo

* Fix deformed purification unit still drawing power

* Slightly refactor recipe check so base class can read result

* Create empty ModularUI container for purification plant

* The great gui struggle part 1

* More gui struggles, we have a button now

* Adjust button text and size

* gui wars: the rise of the sync

* gui wars: a new hope

* fix the sync

* is pengu old enough to know exceeder?

* Fix being able to link the same unit multiple times

* Sync status string to client

* Sign sifter with my name

* Show status somewhat properly

* Adjust sifter base chance and structure

* Fully implement sifter unit

* More tooltip refactoring

* Add structure info to sifter tooltip.

* nitpicking tooltips

* Adding sound to Purification Plant Main Unit.

* fix star imports

* Add basic coagulator unit, add recipemap for it

* Write coagulator tooltip

* comma nitpicking

* more tooltip work

* small refactor to purification plant controller

* start work on custom recipemap frontend

* Fully implement coagulator

* Update structure requirements in tooltips

* Move controller text in structure tooltips to be consistent

* fix NPE on world load

* Add base ph adjustment unit MTE

* Add info to main controller and energy hatch check

* Fixing tooltip of Main Controller &amp; Energy/Exotic Hatch check.

* Create full pH adjustment structure

* disallow any voiding on purification unit

* Small custom RecipeMap frontend for ph adjustment

* Generate random initial pH value

* Implement inserting NaOH and HCl to adjust pH

* Add easter egg

* Implement pH sensor hatch

* Properly consume HCl and round pH value to 2 digits

* Write ph adjustment unit tooltip

* Tooltip nitpicking

* Try to fix some structurelib hints

* More trying to fix hints

* Add industrial strength concrete casing block

* Add water loop sound to the game

* Document random initial pH in tooltip

* Add glass material base

* Fix spotless formatting in Textures docs because I cannot take it anymore

* Add glass texture

* Try adding transparent glass

* Transparent glass working

* Create pH resistant glass and update pH structure to use it

* Create full structure for main purification plant

* Create custom water purification casing block

* Properly balance ferrous wastewater reprocessing and reduce input by a factor 10

* Add pH factor to NEI tooltip and fix coagulator structure

* Structure tooltip for Purification Plant base

* Add GT_Block_Glass2 and properly set maxMeta

* Add Tinted Industrial Glass blocks

* Fix BlockCasing9 not showing custom tooltip

* Register tinted glass as EV glass

* Add sterile water plant casing and revert tooltip change

* Mention required water in sifter tooltip

* Add more textures and casings

* Add more textures, sounds and add structure info for pH adjustment

* Rename sifter unit to clarifier

* Rename coagulation unit to flocculation unit

* Add activated carbon line

* Fix unintended activated carbon recipe

* Add activated carbon filter

* Add polyaluminium chloride + solution

* Add new custom textures by @BlueHero233

* Wip recipe page with new background for flocculation

* Fix flocculation background image mostly

* Finally aligned the slots

* angery mumbles

* Finish flocculation recipe page

* All the recipe pages!

* Add new reworked textures

* Fix ph adjustment being t3 instead of t4

* Fix invisible casing

* apply chembalance to polyaluminium chloride properly

* Fix ferrous wastewater -&gt; flocculation waste liquid

* Move flocculation to grade 3

* create ozonation unit with placeholder blocks

* add new blocks for ozonation with placeholder textures

* Add water to ozonation structure

* Create ozone gas material

* Add ozone recipe

* Add textures for ozone unit

* Add sound loop for ozonation

* fix

* implement ozonation mechanics

* Finalize ozonation tooltip

* Create dummy plasma heater multi

* Update textures for plasma heater

* Add grade 5 recipemap

* Add hatches to plasma heater multi

* Add basic plasma heating unit variables

* Implement plasma heating unit mechanics

* Add plasma heater tooltip

* Add structure info to plasma heater tooltip

* fix ozonation tooltip, add frontend

* Fix positioning on ozonation tooltip and fix plasma heater crash

* Add UV treatment MTE and structure without textures

* Revert accidental addition of debug dependencies

* Add initial version of uv unit textures

* update naquadria casing, add water color gradient

* Some minor cleanup and added docs

* Create lens housing bus

* Add lens bus to UV treatment unit

* Add lens indicator hatch

* Merge GT_MetaGeneratedItem_03.java

* Add lens indicator hatch

* Add the lens cycle, uv treatment recipe map and fix eut of flocculation recipe

* Implement lens swapping mechanic

* Clean up first lens swap

* Fix uv recipemap lang and move lens cycle to recipe

* Write uv treatment tooltip

* Add sounds for uv and plasma steps

* Create empty degasifier class

* Create temporary debug structure for degasifier

* set temp casing index for degasifier

* create degasifier control hatch

* create slightly less temporary but still temporary structure for degasifier

* Start impl of degasifier

* fix fluid consumption and nbt loading of degasifier

* Degasifier implementation should work now

* Rename and reformat some things and start work on degasser tooltiop

* give last bit much lower chance of being on to avoid cheesing

* Finish degasifier tooltip

* Integrate some deleno lore

* hopefully fix all moved casing meta ids after merge

* Create finalized degasser structure

* Integrate more deleno lore

* Add even more lore

* Create placeholder particle catalysts and fetch particle items from gt++

* Fix wrong casing and recipemap localization

* Create parallel config menu

* refactor purification recipecheck slightly

* implement parallel amount on water i/o and power

* add tooltip info about parallel config

* fix text

* update block names in structure tooltips

* create structure tooltip for degasser

* create textureless quark catalyst items

* add the purple glass

* fix lore typos

* fix some casing indices

* remove concrete floor from water plant and reword tooltip

* fix main plant structure and add placeholder structure for t8 step

* fix structurecheck for main plant and add random catalyst generation for t8

* implement basic mechanics for particle extractor (wip)

* Create plasma heater frontend

* implement final mechanics and bugfixes for particle extractor

* add recipes for re-aligning quark catalysts

* add simple recipes for catalyst alignment

* initial replacement of purified water in engraver recipes

* add purified water to all wafer cutting recipes

* fix purified water amounts

* buff quark cyclotron recipe again

* extract t8 unit casings into their own icons

* Write initial tooltip for t8 module

* add purified water to mask recipes

* Add recipe comparator to show low tier purified water recipes first

* add min casing check to waterline multis

* buff ozone production

* update t8 structure

* make purified water optional again for naq wafers

* Fix blockrenderer for purification plant

* fix nei previews

* fix nei

* really fix nei this time

* add t8 lore

* fix hatch recipe locking blocking automation on some steps

* try to solve weirdness with grade 3 recipe

* fix issues with recipecheck

* fix missing null check

* make ph sensor use a strict inequality check

* fix min casings on t5

* significantly nerf purified water usage for beamline masks

* disable void protection for waterline

* small adjustments to t6 unit

* more small adjustments to t6 unit to prevent easy automation cheese

* fix degasser redstone output and missing return statement

* remove water QFT catalyst recipes

---------

Co-authored-by: Tianyou Mei &lt;meitianyou94@gmail.com&gt;
Co-authored-by: OlliedeLeeuw &lt;ollie.riemersma@xs4all.nl&gt;
Co-authored-by: Ollie_de_Leeuw &lt;154506304+OlliedeLeeuw@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>
* Add barebones PurificationPlant class

* Make simple 3x3 structure to form purification plant

* Add base purification unit class and dummy sifter unit MTE

* Make sifter unit form

* Fix accidental wildcard import

* Implement basic linking of units to controller using data stick

* Make linking more robust, save bidirectional links, add scanner output

* add linking range, error message and unregister old controller when re-linking

* Add link status of purification units to waila body

* Disable maintenance issues on purification plant units

* spotless

* Check structure of linked purification units in main controller

* Remove all star imports

* Small refactor to avoid updating status from main controller

* spotless

* Attempt to document current code

* Convert some comments to javadoc

* Implement basic processing cycle, sync it with linked purification units

* Make water purification plant drain power

* Calculate power drain from active units and remove controller power drain

* spotless

* Add very barebones recipemap

* Fix recipemap name in lang file

* spotless

* Fix purification unit recipemap name

* spotless

* more sane amount of max fluid outputs

* add some item outputs to sifter unit

* Very simple recipe processing, may be buggy

* spotless

* Implement recipe failure

* Implement void protection for purification units

* spotless

* buff item output odds slightly

* Add WIP grade 1 structure

* spotless

* Store base success chance in recipe metadata and display it in NEI

* Fill sifter plant with water

* Add comment

* Allow construction sifter unit in survival

* Implement water boost

* Fix water boost allowing output chance to go over 100%

* Implement failed recipes outputting lower tier water

* Fix typo

* Fix deformed purification unit still drawing power

* Slightly refactor recipe check so base class can read result

* Create empty ModularUI container for purification plant

* The great gui struggle part 1

* More gui struggles, we have a button now

* Adjust button text and size

* gui wars: the rise of the sync

* gui wars: a new hope

* fix the sync

* is pengu old enough to know exceeder?

* Fix being able to link the same unit multiple times

* Sync status string to client

* Sign sifter with my name

* Show status somewhat properly

* Adjust sifter base chance and structure

* Fully implement sifter unit

* More tooltip refactoring

* Add structure info to sifter tooltip.

* nitpicking tooltips

* Adding sound to Purification Plant Main Unit.

* fix star imports

* Add basic coagulator unit, add recipemap for it

* Write coagulator tooltip

* comma nitpicking

* more tooltip work

* small refactor to purification plant controller

* start work on custom recipemap frontend

* Fully implement coagulator

* Update structure requirements in tooltips

* Move controller text in structure tooltips to be consistent

* fix NPE on world load

* Add base ph adjustment unit MTE

* Add info to main controller and energy hatch check

* Fixing tooltip of Main Controller &amp; Energy/Exotic Hatch check.

* Create full pH adjustment structure

* disallow any voiding on purification unit

* Small custom RecipeMap frontend for ph adjustment

* Generate random initial pH value

* Implement inserting NaOH and HCl to adjust pH

* Add easter egg

* Implement pH sensor hatch

* Properly consume HCl and round pH value to 2 digits

* Write ph adjustment unit tooltip

* Tooltip nitpicking

* Try to fix some structurelib hints

* More trying to fix hints

* Add industrial strength concrete casing block

* Add water loop sound to the game

* Document random initial pH in tooltip

* Add glass material base

* Fix spotless formatting in Textures docs because I cannot take it anymore

* Add glass texture

* Try adding transparent glass

* Transparent glass working

* Create pH resistant glass and update pH structure to use it

* Create full structure for main purification plant

* Create custom water purification casing block

* Properly balance ferrous wastewater reprocessing and reduce input by a factor 10

* Add pH factor to NEI tooltip and fix coagulator structure

* Structure tooltip for Purification Plant base

* Add GT_Block_Glass2 and properly set maxMeta

* Add Tinted Industrial Glass blocks

* Fix BlockCasing9 not showing custom tooltip

* Register tinted glass as EV glass

* Add sterile water plant casing and revert tooltip change

* Mention required water in sifter tooltip

* Add more textures and casings

* Add more textures, sounds and add structure info for pH adjustment

* Rename sifter unit to clarifier

* Rename coagulation unit to flocculation unit

* Add activated carbon line

* Fix unintended activated carbon recipe

* Add activated carbon filter

* Add polyaluminium chloride + solution

* Add new custom textures by @BlueHero233

* Wip recipe page with new background for flocculation

* Fix flocculation background image mostly

* Finally aligned the slots

* angery mumbles

* Finish flocculation recipe page

* All the recipe pages!

* Add new reworked textures

* Fix ph adjustment being t3 instead of t4

* Fix invisible casing

* apply chembalance to polyaluminium chloride properly

* Fix ferrous wastewater -&gt; flocculation waste liquid

* Move flocculation to grade 3

* create ozonation unit with placeholder blocks

* add new blocks for ozonation with placeholder textures

* Add water to ozonation structure

* Create ozone gas material

* Add ozone recipe

* Add textures for ozone unit

* Add sound loop for ozonation

* fix

* implement ozonation mechanics

* Finalize ozonation tooltip

* Create dummy plasma heater multi

* Update textures for plasma heater

* Add grade 5 recipemap

* Add hatches to plasma heater multi

* Add basic plasma heating unit variables

* Implement plasma heating unit mechanics

* Add plasma heater tooltip

* Add structure info to plasma heater tooltip

* fix ozonation tooltip, add frontend

* Fix positioning on ozonation tooltip and fix plasma heater crash

* Add UV treatment MTE and structure without textures

* Revert accidental addition of debug dependencies

* Add initial version of uv unit textures

* update naquadria casing, add water color gradient

* Some minor cleanup and added docs

* Create lens housing bus

* Add lens bus to UV treatment unit

* Add lens indicator hatch

* Merge GT_MetaGeneratedItem_03.java

* Add lens indicator hatch

* Add the lens cycle, uv treatment recipe map and fix eut of flocculation recipe

* Implement lens swapping mechanic

* Clean up first lens swap

* Fix uv recipemap lang and move lens cycle to recipe

* Write uv treatment tooltip

* Add sounds for uv and plasma steps

* Create empty degasifier class

* Create temporary debug structure for degasifier

* set temp casing index for degasifier

* create degasifier control hatch

* create slightly less temporary but still temporary structure for degasifier

* Start impl of degasifier

* fix fluid consumption and nbt loading of degasifier

* Degasifier implementation should work now

* Rename and reformat some things and start work on degasser tooltiop

* give last bit much lower chance of being on to avoid cheesing

* Finish degasifier tooltip

* Integrate some deleno lore

* hopefully fix all moved casing meta ids after merge

* Create finalized degasser structure

* Integrate more deleno lore

* Add even more lore

* Create placeholder particle catalysts and fetch particle items from gt++

* Fix wrong casing and recipemap localization

* Create parallel config menu

* refactor purification recipecheck slightly

* implement parallel amount on water i/o and power

* add tooltip info about parallel config

* fix text

* update block names in structure tooltips

* create structure tooltip for degasser

* create textureless quark catalyst items

* add the purple glass

* fix lore typos

* fix some casing indices

* remove concrete floor from water plant and reword tooltip

* fix main plant structure and add placeholder structure for t8 step

* fix structurecheck for main plant and add random catalyst generation for t8

* implement basic mechanics for particle extractor (wip)

* Create plasma heater frontend

* implement final mechanics and bugfixes for particle extractor

* add recipes for re-aligning quark catalysts

* add simple recipes for catalyst alignment

* initial replacement of purified water in engraver recipes

* add purified water to all wafer cutting recipes

* fix purified water amounts

* buff quark cyclotron recipe again

* extract t8 unit casings into their own icons

* Write initial tooltip for t8 module

* add purified water to mask recipes

* Add recipe comparator to show low tier purified water recipes first

* add min casing check to waterline multis

* buff ozone production

* update t8 structure

* make purified water optional again for naq wafers

* Fix blockrenderer for purification plant

* fix nei previews

* fix nei

* really fix nei this time

* add t8 lore

* fix hatch recipe locking blocking automation on some steps

* try to solve weirdness with grade 3 recipe

* fix issues with recipecheck

* fix missing null check

* make ph sensor use a strict inequality check

* fix min casings on t5

* significantly nerf purified water usage for beamline masks

* disable void protection for waterline

* small adjustments to t6 unit

* more small adjustments to t6 unit to prevent easy automation cheese

* fix degasser redstone output and missing return statement

* remove water QFT catalyst recipes

---------

Co-authored-by: Tianyou Mei &lt;meitianyou94@gmail.com&gt;
Co-authored-by: OlliedeLeeuw &lt;ollie.riemersma@xs4all.nl&gt;
Co-authored-by: Ollie_de_Leeuw &lt;154506304+OlliedeLeeuw@users.noreply.github.com&gt;
Co-authored-by: Martin Robertz &lt;dream-master@gmx.net&gt;</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>Add messages about the reasons for machine shutdown during processing (#2522)</title>
<updated>2024-03-11T10:06:51+00:00</updated>
<author>
<name>HoleFish</name>
<email>48403212+HoleFish@users.noreply.github.com</email>
</author>
<published>2024-03-11T10:06:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.nea.moe/github/GT5-Unofficial.git/commit/?id=ad49276a25535ff110a3e37934f72dbea8eec258'/>
<id>ad49276a25535ff110a3e37934f72dbea8eec258</id>
<content type='text'>
* ShutDownReason setup

* implement

* fix machine not turn on</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* ShutDownReason setup

* implement

* fix machine not turn on</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

* 