aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/util
AgeCommit message (Collapse)Author
2023-06-03Chemical reactor recipe map fix (#2046)chochem
* minor stuff * disable some optimizations
2023-06-01some gtmodhandler improvements (#2043)chochem
* remove terrible naming conflict * ra2 for the alloysmelter+furnace combo
2023-05-28make private fields final where possible (#2028)chill
2023-05-28simplify ifs (#2027)chill
2023-05-28Add new mode for void protection & implement it for more multis (#2024)miozune
* Void protection improvements * Rename methods: isXXXButtonEnabled -> supportsXXX * Adjust texture for forbidden * Add MultiBlockFeatureSupportDumpers * Fix oversight in PCBFactory * Revert void protection support for PA * Rename class: ControllerWithButtons -> ControllerWithOptionalFeatures
2023-05-28simplify logic expressions (#2026)chill
2023-05-26Add void protection mode to fluid and ore drillers (#2023)miozune
* Refactor GT_ParallelHelper part 1 * Refactor GT_ParallelHelper part 2 * Move void protection logic to separated class * Clean doc * Fix inverted logic in VoidProtectionHelper * Add void protection mode to fluid and ore drillers
2023-05-24Adjust overrides to allow opening machine GUI (#2019)Maxim
2023-05-24Fixed mixer recipe map ending up without programmed circuits (#2020)Maxim
2023-05-23Speedup Recycler recipe lookup (#2016)miozune
2023-05-19Debug for recipe collisions (#2008)chochem
* add collision debug * fix npe * try better names * unwrap nested ifs * do it for the other too * follow some code writing suggestions * add more info to panic crash * code polishing
2023-05-19Yet another round of ra2 conversions (#2006)chochem
* lathe and saplings * toolhead oreproc recipes * fluid solidification * reverse macerating * autoclave combs * implosion compressor * assembler recipes * assembling line * slicer recipes * minor fixes * attempted cell to fluid fix * minor fix 2
2023-05-17More RA2 conversion for automatic gt recipes (#2000)chochem
* fully convert all wiremill recipes and clean up unnecessary duplicate code * fully convert all polarizer recipes * fully convert all canner recipes * RA2 for oredict plank recipes * RA2 for oredict stoneCobble recipes * convert some assembler recipes to RA2 * fix * fix2 * remove recipes that were never in the game
2023-05-15Various GT recipe fixes (#1990)chochem
* null checks for cables * actually fix drillhead recycling * revert old incorrect drill fix * fix netherstar cables
2023-05-13More ReverseArcSmelting fixes (#1979)chochem
* null check and removal for reversearcfurnace * max 9 not 10 outputs
2023-05-10Slight adjustment for TPM NEI (#1972)miozune
2023-05-06Exploring some various ForgeDirection fixes (#1950)Jason Mitchell
* Fix mFacing NPEs * Default facing fixes (#1945) * QuickFixes incomplete facing fixes * fix Neither UP nor DOWN conditions as offsetY == 0 is not valid test * fix neither up nor down again * Still not fixed: use ForgeDirection.flag for clarty killed more ordinal siding. * get ride of offset testing --------- Co-authored-by: Jakub <53441451+kuba6000@users.noreply.github.com> Co-authored-by: Jason Mitchell <mitchej@gmail.com> * bit logic fix * Fix single block machine facings * Predict the machine facing direction clientside before the server packet arrives * Fix isFacingValid logic --------- Co-authored-by: Léa Gris <lea.gris@noiraude.net> Co-authored-by: Jakub <53441451+kuba6000@users.noreply.github.com> Co-authored-by: Martin Robertz <dream-master@gmx.net> Co-authored-by: Raven Szewczyk <git@eigenraven.me>
2023-05-06Show energy flow amperage and correct voltage tier in WAILA for machine ↵Wilhelm Schuster
blocks (#1955) Previously, WAILA just showed voltage tier based on total energy flow. This was problematic for machines that accept multiple amps such as the Arc Furnace. Even though it can accept up to 3A of input, increasing the total input voltage by one tier, it obviously cannot accept that voltage from a single source.
2023-05-05fix (#1951)BlueWeabo
2023-05-01bs+saMartin Robertz
2023-04-30Some more ra2 fixes (#1932)chochem
* multiple RA2 fixes * revert the revert of my work why do I have to fix shit multiple times * more fixes * and more * these dont exist and are always null * sa * better check * and another forgotten null check * fix turbine blades
2023-04-26arc furnace fix (#1921)chochem
2023-04-24Mask direction patches (#1908)Léa Gris
* Fix wrong wrenching direction for EAST * Fix Remove useless casting * Impr upgrade from magic numbers to EnumMap and remove misplaced fix
2023-04-23Forge direction (#1895)Jason Mitchell
* ForgeDirection Also refactor the clusterfuck that was `getCoordinateScan` Co-authored by: Jason Mitchell <mitchej@gmail.com> * Fix rendering of Frame Boxes Frame boxes needed their own implementation of getTexture with int connexion mask, which is returning an error texture for the MetaTileEntity, because pipes (FrameBox **is** a pipe) do use this method to return different textures based on connexion status. --------- Co-authored-by: Léa Gris <lea.gris@noiraude.net>
2023-04-22MuTE overhaul and ACR (#1883)Maxim
* complex controller start * Added methods to get input fluids and items * Added logic to complex parallel mute * Added ACR and fixed many, many, many, many bugs * Added void protection setting to checkRecipe * do not init nbt, if mteID and mteRegistry are the same * Improved GUI design * Force structure check when pressing power switch * ACR Textures * Added T1 structure * Added perfect OC * Added WAILA * fix mutes resetting their nbt * Fix ACR GUI * fix npe * Added void protection for MuTEs * Fixed ACR starting recipe while another one is ongoing * nbt saving * maybe fix structure breaking * Fix complex machine disabling on startup * correctly update input tanks * move casings over * Changed logic of casings to change mode and facing in one go by sneaking * Fixed the casing target not resetting * Added side only annotations * don't leave it empty * Added power logic and tiered blocks to ACR * Change facing to wrench side if casing mode is currently none * lasers anyone? * Added ACR item chaining * Remove unncessary item lists * Use HashSet for process whitelists * Optimize list capacities * Fix potential recipe voiding bug * Rename methods for consistancy * Fix NPE * Duct tape fix structure check * allow MuTEs to connect to cables * Added separate tank inventories for input separation (#1887) * Fixed unregistering tank function * Fixed input busses not being automatable * Added fluid chaining * Fixed saving of input tanks * Forbid inventory registering with empty name * Display all input tanks in controller GUI * Fixed fluid hatch GUI height * Reset casing lists when checking the structure * Make inventory GUI size consistant * Make use of the tooltip cache * rename thing clean up * Forgot to put tooltip into map * Added tooltip to ACR * Reset whitelists when one whitelist window was opened * Refined scanner string * Fixed progress times * Fixed MuTE not consuming fluids * Properly register controller inventories * switch to ForgeDirection * switch to new Renderer * Added missing contains check on registerInventory * Fixed output tanks not registering * Fixed upgrade tank loading * fix machines not having active/inactive textures * fix overlays not loading correctly * Don't register controller directly * Remove magic strings all * fix active not setting to inactive * allow glow * item renderer * fix glow * MuTE improved hatch GUI and fluid output locking (#1889) * Allow output hatches to be fluid locked * Reworked hatch GUI * Check target before trying to open GUI * Make ACR GUI easier to look at * fix covers not rendering on mutes * fix covers not displaying above the item/fluid in/out * new folder texture structure * Reduce network traffic caused by covers * Fixed WAILA fluid locking display * Don't save everything to the itemstack NBT * Added possibility to save NBT of MuTE to its itemstack * fix textures, but make sacrifices * mah textures * Removed the need for all textures to be present * Added glow texture for active coke oven * Removed unncesssary upgrade casing textures * shorten nbt tags --------- Co-authored-by: BlueWeabo <76872108+BlueWeabo@users.noreply.github.com> Co-authored-by: Martin Robertz <dream-master@gmx.net> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-21Recipes ra2 (#1872)boubou19
* Recipes RA2 fixes * Use \uXXXX for non-ASCII characters * Misc cleanup (#1888) * migrate away from addThermalCentrifugeRecipe * split recipes of GT_Block_Stones_Abstract * migrate away from addForgeHammerRecipe * migrate away from addChemicalBathRecipe * remove "DisableOldChemicalRecipes" and its usage, as it's disabled by default in NH and it increases recipe complexity for nothing * Remove underground biomes ore classes, as it's not present in NH * migrate away from addFluidCannerRecipe * migrate away from addFluidExtractionRecipe * migrate away from addChemicalRecipe * migrate away from addMultiblockChemicalRecipe * deprecate addChemicalRecipeForBasicMachineOnly * migrate away from addCentrifugeRecipe * spotlessApply * fixing wrong merge conflict solving * Add Tengam materials (#1891) * Add Tengam materials * Change new recipes to consume 15/16 Amp * Remove now redundant `break` statements * fix comb chances? * fix centrifuge code not working --------- Co-authored-by: glowredman <35727266+glowredman@users.noreply.github.com> Co-authored-by: Martin Robertz <dream-master@gmx.net>
2023-04-21Stellar catalyst + catalyst fixes + new materials class (#1893)GDCloud
* add catalyst * pu plasma recipe * increase plasma mixer input slots * noOptimize + mixer recipe + voltage fix * noOptimize + PLE recipe * TPM recipe * spotlessApply (#1894) Co-authored-by: GitHub GTNH Actions <> * add two more plasma recipes * replace neptunium & fermium plasma * spotless * fix stellar plasma amount * new materials class --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-20Account for EU discounts when calculating OCs/parallels in multis (#1901)xSkewer
2023-04-12Fixed recipe lock not setting difference correctly (#1879)Maxim
2023-04-10Update spotless config to 0.2.2Raven Szewczyk
2023-04-09fix RA2 universal chemical target using inverted dispatch rule (#1861)Glease
* fix RA2 universal chemical target using inverted dispatch rule * add noOptimize
2023-04-09Misc (#1844)boubou19
* add debug code in ItemList * added debug code in getModItem
2023-04-08Kill Disassembler 🔪 (#1855)Connor-Colenso
* Kill disassembler * Kill disassembler * Change arc furnace to fulfil Dreams request. --------- Co-authored-by: GTNH-Colen <54497873+GTNH-Colen@users.noreply.github.com>
2023-04-08improve ra2 debug mode (#1845)boubou19
Co-authored-by: Glease <4586901+Glease@users.noreply.github.com>
2023-04-04Modid work (#1833)boubou19
* add all mods founds in NHCore * depracte old strings * add ars magica 2 * more enum work * use a switch * spotless * more mod id rework * more mod id rework * more mod id rework * should be last * spotless * rename to make more sense * add path attribute * add getResourcePath to enum * spotless
2023-04-03Fix RA2 bugs (#1830)boubou19
* fix pulverizer chances mistakes * fix block version of the PBF * use properly RA2 for PBF recipes * spotlessApply (#1831) Co-authored-by: GitHub GTNH Actions <> * enable lots of materials by default * fixes, documentation, and minor api contract update * spotless --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Glease <4586901+Glease@users.noreply.github.com>
2023-04-01Jabel, Generic injection and mostly automatic code cleanup (#1829)Raven Szewczyk
* Enable Jabel&Generic injection, fix type error caused by this * add missing <> * Infer generic types automatically * Parametrize cast types * Use enhanced for loops * Unnecessary boxing * Unnecessary unboxing * Use Objects.equals * Explicit type can be replaced with `<>` * Collapse identical catch blocks * Add SafeVarargs where applicable * Anonymous type can be replaced with lambda * Use List.sort directly * Lambda can be a method reference * Statement lambda can be an expression lambda * Use string switches * Instanceof pattern matching * Text block can be used * Migrate to enhanced switch * Java style array declarations * Unnecessary toString() * More unnecessary String conversions * Unnecessary modifiers * Unnecessary semicolons * Fix duplicate conditions * Extract common code from if branches * Replace switches with ifs for 1-2 cases * Inner class may be static * Minor performance issues * Replace string appending in loops with string builders * Fix IntelliJ using the wrong empty list method * Use Long.compare * Generic arguments: getSubItems * Generic arguments: getSubBlocks * Raw types warnings * Fix remaining missing generics * Too weak variable type leads to unnecessary cast * Redundant type casts * Redundant array length check * Redundant vararg arrays * Manual min/max implementations * A couple missed inspections * Goodbye explosion power ternary ladder * Apply spotless * Get rid of the other two big ternary ladders * Binary search explosion power * Don't overcomplicate things
2023-04-01update spotless formatting (#1827)boubou19
2023-04-01Recipe Adder v2 (#1770)Glease
* add everything * fixes * migrate plasma forge recipes * syntax update * make chances array length differ a fatal error * time constants + long eut overload * migrate extruder recipes * migrate electromagnetic separator recipes * migrate wiremill recipes * migrate forming press recipes * migrate bender recipes * add doc to clarify the three itemInputs * migrate alloy smelter recipes * migrate arc furnace recipes * added ModIDs enum * sort ModIDs * migrate autoclave recipes * migrated some assembler recipes * split a bit more assembler recipes * migrate canner recipes * migrate brewing recipes * ic2 mod check in canner recipes * use some loops to reduce the amount of recipes to migrate * add requested helper methods * migrate vacuum freezer recipes * migrate thermal centrifuge recipes * format smelter recipes only, doesn't go through normal GT recipe * migrated slicer recipes * migrated sifter recipes * Use proper enum now * remove more constants * cleaning cutting recipes before migration * remove tons of dead commented recipes * migrate pyrolyse recipes * use ModIDs enum more * migrate printer recipes * add a less confusing way to specify value of specialItem * migrate pulverizer recipes * less confusing special item specification * even more ModIDs enum usage * fix auto * import confusing Minecraft enum value with Minecraft client object * migrated blast furnace recipes * migrated Centrifuge recipes * migrated assembler recipes * migrated implosion compressor recipes * migrated extractor recipes * migrated mixer recipes * remove useless code * mgrate universal chemical recipes * refactor chemical recipes * migrate single block only chem reactor recipes * migrate chem reactor recipes * reworked circuit assembler recipes before migrating them * migrated circuit assembler recipes * fix merge conflict for assembler recipes * remove leftover of the merge conflicts * fix weird translation glitch * example of assembly line recipe using RA2 * bugfixes for assline * remove specialValue usage in blast furnace recipes * fix more bugs * add nooptimize to where it make sense * add recipe descriptions * Materials.Superconductor -> Materials.SuperconductorUHV * remove useless Object creations * remove explicit long casts * migrate assemblyline recipes * migrate chemical bath recipes * migrate compressor recipes * move smelting recipe where it belongs * migrated cutting machine recipes * migrated fermenter recipes (unhide alcohol) * remove explicit long casts * migrate fluid canner recipes * migrate fluid heater recipes * migrated fusion recipes * migrated lathe recipes * migrated laser engraver recipes * migrated packager recipes * migrated forge hammer recipes * migrated TPM recipes * exit early and reduced indents * migrated fluid extractor recipes * migrated fluid solidifier recipes * migrated electrolyzer recipes * migrated crop processing recipes * migrated default polymerization recipes * migrate distillery recipes * migrate matter amplifier recipes * add metadata identifier for fusion ignition threshold * migrate fuel recipes * update bs (cherry picked from commit c2d931c9b6caa0376e9d50591894cd849021104d) * spotless (cherry picked from commit 1060f5357fb95e28bfae1f052025f55dabc21a0f) * guard against null itemstacks * wrong translation * fix empty arrays being accessed * add 0 duration and 0 EU/t for fuel recipes * fix typo in matter amplifier recipes * spotless apply --------- Co-authored-by: boubou19 <miisterunknown@gmail.com> Co-authored-by: Martin Robertz <dream-master@gmx.net>
2023-03-31Add night upgrade to Industrial Apiary (#1821)Jakub
* Bump forestry * Add night upgrade to Industrial Apiary * Add texture Co-Authored-By: Runakai1 <48415331+Runakai1@users.noreply.github.com> * Update dependencies.gradle --------- Co-authored-by: Runakai1 <48415331+Runakai1@users.noreply.github.com>
2023-03-30Implementation of A more useful Lava Boiler (#1814)Léa Gris
* Fix Missing null/empty checks on boilers base class Would cause a deadlock on empty boilers unable to start, as it tried to transfer null or empty FuildStack. * Fix Sound coordinates so it can be centered on block * WIP Lava Boiler Improuvements * :spotlessapply * Add GUI slot block background textures * Restrict ash slot to remove items only (disallow inserting items there) * Finalize GUI and Obsidian Production mechanic * Fix still output Obisidian from cooled Lava even when no more Lava available * Lava Boiler Textures: Improves GUI and TOP - Fluid slot now has Steam themed textures - Item slot block background gets a smaller icon that hides behind actual item blocks - Boiler TOP is now a drain texture instead of pump * Add null check
2023-03-29Update production upgrades formula in Industrial Apiary (#1820)Jakub
2023-03-14fix (#1796)BlueWeabo
2023-02-27implement save & load for single recipe lock (#1771)Glease
* implement save & load for single recipe lock * fix fat finger * fix NPE * disable machine if old locked recipe is gone * address reviews * spotless
2023-02-26Multiblock Sounds (#1768)Maxim
* Added methods to allow multiblocks to play sounds * Implemented first few sounds * Added sound to PA * Introduced static variables for sound indexes
2023-02-26fix (#1773)BlueWeabo
2023-02-26Add a completely new system for late/endgame content (#1754)BlueWeabo
* basic work * typo fixes * make an enum folder * location enums * space project manager * implement the space project teams * commands * move things around and new things * upgrade work * requirement work * if possible use an upgrades values * cleanup * more helpers in command * fix AOOBE * fix world saved data * builder for requirements * add command autocomplete * fix command npe * mark world saved data dirty * switch to saving to json string. this is fine * fix npe * fix files not saving correctly. serialization * spotless * part 1 of fixing json saving * working json file saving * rename fields * full implementation of SP_Upgrade * fixes * cleanup * texture prep * documentation part 1 * documentation part 2 and rework of json saving * fix the missed conversions * set texture when copying * more interface usage and fixes * rework saving. * Added rudimentary NEI handler for projects * Revert "Added rudimentary NEI handler for projects" This reverts commit 6d8210e25b27fee7dc1865d1afa91708a8d9b875. * address NPEs * some textures * higher quality textures, put in the moon as a temp texture * add a check to create a team if one smt weird happens * command work * add ability to localize the space bodies * Added disabled button and toggle button * Added possibility to not render the original stacksize of item stacks in NEI * Added NEI handler * Fixes item count on tooltip always rendering as 1 * Fix refactor * 5 new body textures * fix misspelled texture name --------- Co-authored-by: minecraft7771 <maxim235@gmx.de>
2023-02-25fix (#1772)BlueWeabo
2023-02-24Better casing amount on tooltips (#1766)Maxim
* Added more functions to more precisely input casing amount * Implement new tooltip casing adder * Only display variable size if sized are actually different * Addressed review
2023-02-23Fix mutating ItemData NBT (#1762)D-Cysteine
* Fix mutating ItemData NBT Fix for a very old bug where we were overwriting NBT in stored `ItemData` every time we called `GT_OreDictUnificator.get()` or `GT_OreDictUnificator.get_nocopy()` Maybe fixes: * https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/12678 Please review this carefully, since it's very difficult to properly test changes to this part of the codebase. In `get_nocopy()`, since we now make a copy, I was able to set stack size too. Also I removed `assert rStack != null` since it is already checked by `GT_Utility.isStackInvalid()`. In `isInputStackEqual()`, I just deleted `rStack.setTagCompound()` since the only reference to `rStack` is in `GT_Utility.areStacksEqual()`, which has `aIgnoreNBT == true` so setting NBT does nothing. * Don't copy if no NBT is present