aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/objects
AgeCommit message (Collapse)Author
2023-06-07Remove GT_FluidStack (#2063)miozune
2023-06-05Code cleanup (#2040)chill
* remove redundant suppressions * prettify commented code * improve comments The integer comment contradicted the code, so I deleted it. * delete commented-out code * update bitwise int flip from XOR to the dedicated tilda operator The flip was a 32-bit XOR, which is an int-flip. That XOR was replaced with an equivalent tilda operator. * convert a field to inline This field was used only once, so put it straight to where it is used. * remove fluid fix since no-one uses Forge version 1355 or earlier * unwrap switches where fitting In some places, we suppress IntelliJ's inspection RedundantLabeledSwitchRuleCodeBlock - we don't want to unwrap some of the suggested cases because we want to keep the consistency in a switch statement for the sake of readability. * fuse "collect" into Stream API * fix javadocs * remove unnecessary public modifiers from an interface Members of an interface are public by default. * move common parts outside of if * suppress OverrideOnly warning in a javadoc * remove unused lock * suppress warnings about unchecked casts These warnings require non-trivial fixes that are yet to arrive. For now, let's suppress them to reduce the warning-bloat. * remove outdated comment * remove final modifier from private methods Because they are private, it is hard to accidentally overwrite them. Therefore, the final modifier is redundant in this case. * refactor getIcon The first 'if' doesn't cover only tMeta == 9 && mConnectedMachineTextures, therefore the second if can be unrolled. The last switch is redundant because all tMeta values are covered by switches, but let's keep SOLID_STEEL as a fallback just in case. * explain what the casings are and why block casings are split * suppress switch-to-if suggestion * remove unnecessary null check The null is handled in doGenerateItem() * address redundant local variables * rename variables in onTick * suppress warning about accessing static member via instance * rephrase exception * rephrase javadoc * address field-can-be-final warnings * remove empty methods * enum cannot inherit, so protected is redundant * remove redundant throws * update imports to be not wildcard * remove unnecessary try-catch * update for loop * remove redundant code in order to use the diamond operator * update instanceof to use pattern variables * replace blank lines with <p> in javadocs * fix dangling javadocs * suppress warning about unreachable methods in javadocs * remove redundant operation * add the descriptions of parameters in javadocs Also fix javadocs along the way. * relax returned type in javadoc That was done in order to make the docs reflect the code more often. Otherwise, people may forget to change the returned type again with another change. * make long conversion explicit Integer multiplication can give a wrong result if one of the parts is not explicitly cast to long. Let's cast one of the parts where applicable. * remove unary plus * simplify unary minus * use addAll instead of forEach,add It was suggested by IntelliJ to replace the iteration with a bulk operation to improve performance. * replace .asList with .singletonList for consistency * simplify toArray calls Explanation from IntelliJ: There are two styles to convert a collection to an array: * A pre-sized array, for example, c.toArray(new String[c.size()]) * An empty array, for example, c.toArray(new String[0]) In older Java versions, using a pre-sized array was recommended, as the reflection call necessary to create an array of proper size was quite slow. However, since late updates of OpenJDK 6, this call was intrinsified, making the performance of the empty array version the same, and sometimes even better, compared to the pre-sized version. Also, passing a pre-sized array is dangerous for a concurrent or synchronized collection as a data race is possible between the size and toArray calls. This may result in extra nulls at the end of the array if the collection was concurrently shrunk during the operation. * split StringBuilder append Explanation by IntelliJ: Reports String concatenation used as the argument to appends. Such calls may profitably be turned into chained append calls on the existing StringBuilder saving the cost of an extra StringBuilder allocation. This inspection ignores compile-time evaluated String concatenations, in which case the conversion would only worsen performance. * annotate overriding methods with @Nonnull where needed The method that was overridden has @Nonnull so the method that is overriding should also have @Nonnull. * remove set adding itself to itself * remove null check because findField either works or blows up cpw.mods.fml.relauncher.ReflectionHelper::findField either returns a non-null value or throws a RuntimeException, so no need to check of null. * remove slot comparison with tInventory.length slot max value is 127 when tInventory.length is set to 256, which results in that the condition is always true and unnecessary. * remove aOutput2 null check As GT_Values.NI is null, there is no need to check aOutput2 for null again * suppress the suggestion to delete tMeta < 13 mConnectedMachineTextures can change, so tMeta range is not guaranteed * remove aCoverVariable % 3 < 2 the if above already limits the result of % 3 to "2", so the condition "less than 2" is always false. * unwrap "if" because bonus is unchanged Unwrap if because even if the bonus is a variable, it hasn't been changed for the past 8 years and is unlikely to be changed in the future. * reformat javadoc * improve ignoring an exception Make them either more clear or concise * fixup fix typo * update deprecated calls of newInstance() * remove testing BaseMetaTileEntity GregTech_API.constructBaseMetaTileEntity() checks the creation by itself, logging and throwing a runtime error if failed. * unwrap hatch-fill for do_SolarSalt To reach this branch, do_coolant needs to be false and we need to still be in the function, which means that do_SolarSalt was set to true in the previous top-tier "if". * remove always-false input-bus checks of MTE PlasmaForge size() is non-negative, and the values it is compared to are final and 0. * length and size are non-negative Therefore, there's no need to check their negativity * aOutput is guaranteed to be positive * tThereWasARecipe is always false when reached in its first occurrence * convert an assert into if Only tStack 2 is checked for null because if it isn't null then tStack1 also isn't null based on the "if" above. Also IntelliJ was sure that tStack is not null for some reason. On a side note, assertions work only either with a specified flag or in debug runs. Therefore, it is dangerous to rely on them. * simplify stone-gravel-cobble if tBlock != Blocks.stone because of the if at the start of the method. for the last else-if, tBlock == Blocks.gravel because of the check slightly above the change. * interDimensional is always true because of the first if * convert an example to javadoc * remove always-false statements * replace referential string equality with equals If we compare strings by "==", we compare references to them, which is not what we usually want. I wasn't sure if String Pool works here, so I played it save with equals(). * use Automatic Resource Management for AutoCloseable ByteBufOutputStream * add todo to swap from sleep to event bus * null is checked by instanceof * merge switch branches * add a TODO to use clamp() * new String declaration is redundant * use getOrDefault for a map * replace StringBuilder with concatenation where fitting Using a StringBuilder to concatenate two string will not make the program faster or more understandable, so I swapped it to concatenation. * remove unnecessary continue * flip if * remove redundant returns * unwrap ifs It's checked at the top "if" that aType == IItemRenderer.ItemRenderType.INVENTORY, so all aType.equals(IItemRenderer.ItemRenderType.INVENTORY below are always true. * remove checking all GT VERSIONs except the API one * remove version check from GT_Mod and delete respective VERSION fields Aside from GregTech_API.VERSION, these fields are not used anywhere in the project, so only GregTech_API.VERSION was kept. The idea and the usage check were done by miozune.
2023-05-28make private fields final where possible (#2028)chill
2023-05-24Adjust overrides to allow opening machine GUI (#2019)Maxim
2023-05-07Add docs to mute (#1960)chill
* XSTR: fix typo * XSTR: remove commented-out code * MultiTileEntity: explain hatches and reword comments * Move the note on hatches from MTE to Controller * Remove wrongly-located javadoc * XSTR: reword to be easier understood
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-10Update spotless config to 0.2.2Raven Szewczyk
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-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-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-02-10Rfg cleanup (#1726)Raven Szewczyk
* Update buildscript, add all recently added gradle.properties entries * Dependency version bumps and cleanup * Bump eternal singularity version * Update buildscript * Make AE2 a required dependency * Switch version to class generation from token replacement
2023-01-30[ci skip] spotlessApply with the new settingsJason Mitchell
2023-01-04force compound to be grouped together in chemical formula (#1630)Glease
* force compound to be grouped together in chemical formula Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> * patch up glass chemical formula Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> * merge two toString Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
2022-11-25Rewrite GUIs with ModularUI (#1381)miozune
* Base work for ModularUI compat * Remove useless interface * Add almost all the widgets * Invert method * Refactor NEI stack placement positions * NEI handlers on ModularUI * Add some more docs * AdvDebugStructureWriter * Fix NEI progressbar not working * PrimitiveBlastFurnace * clean * derp * clean * spotlessApply * Boilers * Buffers * clean * N by N slots containers * Fix boilers not having bucket interaction Put opening UI to individual MetaTEs * Maintenance Hatch * clean * spotlessApply * Add dependency * IndustrialApiary * Adapt to ModularUI change * Base work for covers & fix crash with MP * Fix crash with server * Rewrite base work for covers * Send initial cover data on cover GUI open so that the time of showing incorrect data will be eliminated * Covers part 1 * Rename package: ModularUI -> modularui * Rename class: GT_UIInfo -> GT_UIInfos * Fix build * Covers part2 * Fix missing client check with tile UI & fix title overlap * CoverTabLine * Move cover window creators to inner class * Fix crash with null base TE * Close GUI when tile is broken * Color cover window with tile colorization * Change signature of addUIWidgets * FluidFilter cover, FluidDisplaySlotWidget, BasicTank, BasicGenerator, Output Hatch, MicrowaveEnergyTransmitter, Teleporter, DigitalChest, DigitalTank * Add title tab * Move package: modularui -> modularui/widget * Programmed circuit + IConfigurationCircuitSupport * clean * VolumetricFlask * Remove integrated circuit overlay from recipe input slots * Input Hatch & Quadruple Input Hatch * Multiblock * Deprecate old cover GUI * BasicMachines * Finish BasicMachine & NEI * Expand DTPF NEI to 9 slots * Fix ME input bus on MP * Move AESlotWidget to public class * Move GT_Recipe_Map constructors with mNEIUnificateOutput to setter method * Move SteamTexture.Variant to outer enum * Switch to remote repository * oops * Update MUI * Update MUI * Minor refactor for change amount buttons * Display items and fluids that exceed usual count * blah * use +=, why didn't I do this * Update MUI * Move ModularUI to Base (#1510) * Move ModularUI to Base * Move most of the ModularUI functionality to `BaseTileEntity` (and `CoverableTileEntity`) * `CommonMetaTileEntity` delegates ato the MetaTileEntity * Added several interfaces (with defaults) to indicate if a tile/metatile override/implement certain behaviors. * Moved `IConfigurationCircuitSupport` interface such that it will work with BaseTileEntity or a MetaTileEntity * Address reviews Co-authored-by: miozune <miozune@gmail.com> * Update MUI * Minor changes to NEI * Return :facepalm: * IGetTabIconSet override * Some more changes to NEI * Merge texture getter interfaces to new class GUITextureSet * Remove BBF structure picture as it's auto-buildable now * Make unified title tab style of texture angular * Expose some boiler texture getters for addon * Fix crash with cover GUI on pipe * Lower the number of recipe per page for DTPF & update MUI * Update MUI * Fix crash with middle-clicking slot on circuit selection GUI * Fix circuit selection window not syncing item from base machine * Merge GT_NEI_AssLineHandler into GT_NEI_DefaultHandler * Update MUI * Add in TecTech multi message * Allow changing the way of binding player inventory * Update MUI * Update MUI * Update MUI * Update MUI * Update MUI * Make MUI non-transitive to allow addons to use their own version * Force enable mixin * Format fluid amount tooltip * Add GUITextureSet.STEAM * Add guard against null ModularWindow creation * Add constructors for Muffler Hatch with inventory * Fix output slot on digital chest and tank allowing insertion * Don't log null ModularWindow * Add default implementation for IHasWorldObjectAndCoords#openGUI * Make openGTTileEntityUI accept MultiTE & cleanup Co-authored-by: Jason Mitchell <mitchej@gmail.com>
2022-10-01Underground Fluid Fix (Fluorine, Liquid Air) (#1418)chochem
* underground fluid fix * spotless
2022-10-01no-more-duplicate-key (#1424)iouter
2022-09-05feat(API): Implements a featured API for GT_Fluid (#1345)Léa Gris
* feat(API): Implements a featured API for GT_Fluid *** Rationale The current implementation, which is based on the `GT_Fluid` object, does not allow for the evolution of the functionalities, or the variation of the fluid-related implementations in GregTech. *** Objectives This replacement API should free from these constraints, by providing : 1. The separation of responsibilities of the different tasks and steps: - The definition and progressive construction of an `IGT_Fluid`, - Registration of the `IGT_Fluid`, - Configuration of related equipment, such as containers, - Propagation of properties of an `IGT_Fluid` to related services such as Materials 2. The separation of interfaces exposed to the API from their internal implementations to allow: - Evolve the implementations in the most transparent way possible - To have internal GregTech implementations or outsourced implementations coexist in its extensions. *** Specificity of this new API - Provides a new interface to build and interact with fluid related records - Deprecates the old `api/objects/GT_Fluid` object and the `common/GT_Proxy.addFluid` record methods * fix(conversations): addresses @Glease review comments https://github.com/GTNewHorizons/GT5-Unofficial/pull/1345#pullrequestreview-1096261703 * ./gradlew :spotlessApply * fix(review): add review comments from @eigenraven Added missing final qualifiers on methods parameters. https://github.com/GTNewHorizons/GT5-Unofficial/pull/1345#pullrequestreview-1096318523 * fix(review) address remaining review comments from @eigenraven
2022-08-27Update buildscript & apply spotless (#1306)Raven Szewczyk
* Update dependencies * Update buildscript, apply spotless
2022-08-16change sAllFluidStacks collection to be weak reference (#1246)Glease
2022-04-18Multitileentity precursor (#963)Jason Mitchell
* Refactors * Refactor CoverableTileEntity a bit more, pull out a CommonMetaTileEntity * Add an IDebugableTileEntity interface instead of checking various subclasses * Move more redstone related things to CoverableTileEntity * Add IGTENet * Final and dead code removal * Address a few comments, fix a few comments, remove some more dead code, and add some more finals. * fix bad rebase
2022-02-04Texture Shenanigans (#915)Jason Mitchell
* Texture Shenanigans - Get rid of all the TODOs and run everything through the new Texture API in a backwards compatible way. * allow bw runclient to run * Add obf name Co-authored-by: bombcar <github@bombcar.com>
2022-02-04Translation related fixes (#920)Glease
* Translation related fixes * Rename trans to transItem
2021-12-23Optimize OrePrefixes.contains and OrePrefixes.add (#832)Glease
1. Convert global map mCachedResults to an instance field. 2. Convert the post add null check to a builtin null check via GT_ArrayList 3. Use new GT_ItemStack2 (which has a slightly better hash function than stackToInt)
2021-12-18Fix derp in BaseMetaPipeEntity during git merge (#824)Glease
Also added a bunch of fallback overrides to GT_Cover_None in the case of my stupid programming errors again
2021-11-16underground oil and pollution persistence form reworkGlease
Signed-off-by: Glease <4586901+Glease@users.noreply.github.com>
2021-10-18Optimize away potentially expensive NBT copy in getAssociationGlease
2021-08-16Removed useless concurrency for some mapsTimeConqueror
2021-08-03Removed ArrayIterator and NonNullIterator, because they're redundantTimeConqueror
2021-08-03GT_Recipe: speedupTimeConqueror
2021-05-24feat(glow): iconset machines glow supportLéa Gris
- Add glow support for all sides and states of iconset machines (same as with basicmachines). Automated code cleanup with IDEA of: - Optiimise all imports (remove unused, sort) - Reorder all modifiers to the canonical preferred order (as stated in the Java Language Specification) - Add all missing @Override annotations
2021-05-21feat(render): implementation-free api texture factoryLéa Gris
Provides an implementation-free API Texture factory an builder. Deprecates gregtech.api.objects.GT_*Texture.java classes Once all GregTech add-on will be migrated to the new implemnetation-free API, changes to the implementation will not affect the add-on. For now, this API allow rendering of in-world glow textures. In-inventory/hand rendering of glow texture require implementation changes that are postponed until no add-on uses the deprecated embedded implementation API.
2021-05-21fix(render): move new textures rendering to new packageLéa Gris
Old textures rendering are kept in api/objects for backward compatibility. The old textures rendering does not handle glow textures or independant inventory tessellation. The old textures will only work with the old GT_Renderer_Block class New textures rendering with own tessellation in inventory and handling of glow emisssive textures are moved to the api/render package. These must not be used with the Old GT_Renderer_Block class or it will crash with: Already Tessellating Exception from the Tessellator class
2021-05-21fix(render): flickering off-world rendered multitexture with glowLéa Gris
Isolated each Quad drawn ITexture layer rendering in own Tessellation context when rendering item blocks off world (inventory, in-hand, dropped item).
2021-05-21fix(render): really not render glow if turned off in configLéa Gris
2021-05-21feat(render): glowing texture rendererLéa Gris
Implement a glowing texture renderer class Add option to not render glowing textures
2021-04-27fix(textfiles): add missing neline at end of filesLéa Gris
git and diff tools will complain if text file does not end with a newline. Fixed all text files in the repository with Linux bash shell: ```sh git ls-files -z | while IFS= read -rd '' f; do mime="$(file --brief --mime "$f")"; if [ -z "${mime##text/*}" ]; then tail -c1 "$f" | read -r _ || printf '\n' >>"$f"; fi; done ```
2021-03-25Enabled autoloading for oil drillsrepo_alt
Fixed chunk coordinates for self-loaded machine (in the first session)
2021-02-16feat(render): tile ambient occlusionLéa Gris
Render smooth lighting ambient occlusion on all Gregtech tiles: - Ores - Machines - Pipes, Cables, Wires, Frames Add new Client-side configuration entry in Gregtech.cfg. If false, the flat lighting rendering of older versions is used. ```yml render { B:TileAmbientOcclusion_true=true } ```
2021-02-08Better quantum chest integrationrepo_alt
https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/7448
2021-01-05fix(rendering): bottom side orientationLéa Gris
- Fix bottom side texture orientation to not flip texture. Special thanks to @GregoriusT who raised awareness of potential issue with texture where direction matters (like button panels or texts). - Implement a flipped bottom texture rendering to have ore blocks use the very same orientation as dumb blocks ore textures from other mods. - Refactor GT_SidedTexture to use GT_RenderedTexture for rendering, rather than duplicate the rendering code of it.
2020-12-31Implemented ReverseRecipesbartimaeusnek
2020-12-12fix(rendering): UV Mapping on tilesLéa Gris
- Fix all faces use the same UV mapping and orientation to be same as standard vanilla full blocks Vanilla blocks's face rendering. - Fix the orientation of bottom-face's arrow overlay with fixed UV of the `GT_MetaTileEntity_Buffer` type machines (filters, buffers, regulators) - Fix UV mapping of item pipes restrictor overlay - Fix UV mapping of fluid pipes blocked input overlay orientation on all sides - Fix UV mappiong of thick covers - Remove the now useless and broken custom UVMapped vertices at the bottom face. ![](https://i.imgur.com/MImsbQY.png)
2020-04-06Commented texture pagingTechnus
2020-02-23OP command to toggle debug flagsrepo_alt
2020-02-15removed unused importsDream-Master
changed subversion to 33
2019-12-28Chunkloading support for multiblock miner (#227)repo-alt
* WIP, doesn't do anything yet, up to RFC * Initial attempt at Chunk manager * Added chunkloading support to multiblock miner. * moved basic miner-independent chunkloading-related stuff up tier, to be more reusable Co-authored-by: Richard Hendricks <richardhendricks@pobox.com>
2019-12-23Removed hard dep on AE2bartimaeusnek
Signed-off-by: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com>
2018-09-08Various fixesbartimaeusnek
+Added GT-FML-Log +Added an Exception if a Nq reactor without recipe map is created +Added the ability to add ReinforcedGlass in the CleanroomWalls (https://github.com/GTNewHorizons/NewHorizons/issues/3584) +Added a config option for changing the ReinforcedGlass percentage +Renamed Materials2 -> GTNH_ExtraMaterials and fixed it
2018-08-26Final version of Alkalus's type filter fix. #3367Richard Hendricks