59,776,492 Downloads Last Updated: Apr 10, 2022 Game Version: 1.18.2   +2

File Details

Filename Mekanism-1.16.5-
Uploaded by bradyaidanc
Uploaded Dec 22, 2021
Game Version 1.16.5   +2
Size 10.63 MB
Downloads 166,057
MD5 bceac3a51dc45968472fa2116aad923a
Supported Modloader Versions
Supported Java Versions
Java 8
Supported Minecraft 1.16 Versions


b31a703 - Start working on 10.1, and add support for our chemicals to CraftTweaker, including expanding CrT's tag integration to be able to handle tags for our chemicals (currently fails due to ZC trying to validate the synthetic methods that get added)
21fd21b - Cleanup some docs and add more helpers to the CrT chemical stacks and make multiply actually multiply instead of setting the amount
3b8dd81 - Draft wrappers for our ingredients, and also make ICrTChemicals implement the various IChemicalProviders to cleanup some code
7f9c6ec - Add base of the classes where our CrT recipe managers will reside. (Currently errors due to CrT trying to instantiate the abstract classes)
322eebc - Add actions that describe the additions to our different recipe types (currently unused)
dc1f980 - Work on cleaning up how we actually create actions and will add recipes to reduce the amounto of duplicate code needed
37b943c - Add recipe validation and addRecipe methods to all our CrT recipe managers
6c379fc - Fix compiling
3e9521b - Add better support for MCIngredientList to CrTItemStackIngredient so that we can properly get and respect the sizes of inner ingredients that may be item stacks, and also add some expansions to add support for implicitly casting from some CrT types to our ingredient wrappers to make it easier/more convenient to call the various recipe managers. (Also add these implicit casts to our chemical support in CrT but without the need for an expansion as we control the base code). Note: Does not compile quite yet
78126b8 - Lots of WIP progress on backend handling/builders for
4dc8ae9 - More WIP progress on and making it properly register things and caching the results of the suppliers for coolants
3b9ae68 - Re-enable some of the pigment handling that was previously commented out
e2b2649 - Re-enable JEI, and get custom chemicals working through CrT ( still has some small extra verification needed in places and more testing needed but it works. Also update CrT so that a method we need exists so the java side can compile again, though ZC still is unhappy with some things
3e36147 - Make chemical attribute tooltips show up in JEI to make it easier to tell what substances have various attributes
a85598c - Start work on figuring out CC integration (heavily WIP)
fa5b543 - Cleanup a bit of stuff with CrT and make it so at least in theory people can pass normal numbers into methods that expect FloatingLongs instead of just strings and have them properly get cast/converted
eeaf226 - Update CraftTweaker, in theory it all works now, but I haven't gone through and documented it all, tested it, or added in a few extra validations
c763c83 - CrT tags aren't wrappers so don't exist so early
f45b18d - Cleanup some of our CrT implementation and add a few QoL methods and work on adding more documentation of what methods do
6705a26 - Document more CrT stuff, I believe the only remaining non documented stuff is the recipe managers themselves
02db934 - Bump min CrT version to fix a few issues, and adjust to the changes in it
04d1488 - Port my highly WIP crafting popup windows for the QIO to the actual 10.1 branch from the one I spent a few hours this summer messing around with
e2480b4 - Start work on figuring out how the container will track the selected crafting grid, and also revamp parts of the way we handle popup windows to more easily allow for popup windows using sidebar buttons on things that aren't tiles
0f842d3 - Refactor package structure for popup windows a bit
2e16ce0 - Rerun formatter to cleanup imports from refactoring popup window packages
7b9bb1e - Work on indexing the crafting windows that popup in preparation of figuring out how to get it working properly with JEI, JEI now shows a debug number when trying to fill the crafting grid of the QIO of which window is selected
39abdd5 - Fix a large majority of the issues with GUI elements not properly persisting data when entering and then leaving JEI's recipe viewing mode, the remaining issues are container side not GUI side
ace92e8 - Fix not fully properly adopting GUI windows when resizing the QIO dashboard
b0bac37 - Slight refactoring how we interact with the guiObj in elements to prevent accidental replacement
499ed23 - Don't run container exit code if our GUI is being switched to the JEI recipe GUI as JEI will switch back to the screen and the containers don't have any "reattached" code ran, only the screen gets reinitialized
c13ae11 - Make the server able to sync the contents of the crafting window slots to the client, currently there is no way to set the contents, but when set they do sync
6c449d6 - Lots and lots of painful work to make it so that the QIO crafting slots can be properly interacted with
35a52b7 - Make the crafting windows actually able to craft, still needs some more work to be done especially related to interacting with the internal QIO inventory instead of only having access to using the contents put in the crafting window
2efde9f - Allow for shift clicking into the QIO's crafting windows and fix not properly keeping track of which window is actually selected when a window gets closed
c45bac8 - Put a bunch more thought into how we will handle refilling the crafting windows from QIO and how we will handle shift clicking and container items. No code implemented, but modified/added a fair number of TODOs related to how it will be implemented
ca5c3ed - Make QIO crafting windows persistent and do some modifications to allow for proper displaying of the crafting windows in the portable QIO dashboard
0ff276b - Provide a way to get the QIO frequency in the crafting windows in preparation of taking it into account for item usage, and fix being able to remove the qio dashboard from the offhand slot if it is in the offhand
ff2c8bc - Work on making crafting in the QIO actually use contents from the QIO, still needs a decent amount of work especially around edge cases, and doesn't handle shift clicking properly at all yet
3a4e991 - Refactor a couple things about how we handle crafting from the crafting windows, and implement handling for crafting via shift clicking. A decent amount of more work is still needed, but it is slowly getting there
abecdb8 - Lots of work towards properly implementing JEI recipe transfer handling. Still needs to check that there is space to move the items around, and tell the server which items it wants it to try and move, but most of the matching logic should be in now. Note: Does not compile yet as it requires
fa9dbd3 - Keep track of where the items for the recipe come from, and send the information/transfer request to the server
c95e4ba - Continue working on server side validation of transfer requests
88f24b8 - Add some more validation about if the player can actually take an item from the slot server side. WIP progress on implementing server side transfer handling of the items
28ea379 - Fix crafting window not always properly updating output slot when it comes to single input recipes, and fix the recipe not properly reinitializing/recalculating on world reload or /reload
49a37cd - Fix off by one index for JEI transferring because of not accounting for JEI using index zero for the output slot, make JEI error transfer logging also log the recipe id, and fix a few issues with how we interact with map entries provided by fast util
106d45c - Bump JEI in dev and add min version of JEI to version required for QIO crafting integration
308082b - Bump CrT version and partially adjust to their new system of handling objects
588eb3a - Fix a couple merge issues and rerun datagen to make sure all the hashes are correct for the changes that have been made in the 10.1 branch
b0b0a7f - Slightly refactor how we implement and register packets to streamline the process and also make it clearer which direction the packet is going, and make it easier to navigate the registered packets by sorting them alphabetically (the fact the ids change doesn't matter as our network protocol requires same mek version on both server and client), and fix registering PacketPortableTeleporter as a packet that is valid both directions under two different ids
6c3066d - Better protection against mods like FTB Chunks that block explosions from happening causing infinite meltdowns by making sure to remove actual blocks that are part of the reactor instead of potentially removing air positions
754d064 - Improve handling to allow shift clicking just crafted contents into the QIO frequency instead of them going into the crafting window, and add some dedicated translation keys for it that take the various numbers into account
0c2c64e - Upgrade gradle to 6.8.2, and update ForgeGradle to 4.0.18. Also fix various gradle deprecation warnings related to gradle 7:
 - maven plugin is deprecated and maven-publish can and should be used instead
 - Duplicate files allowed in zips, also delete some of our duplicate files that are created via datagen and adjust our all jar creation to exclude the files that will be merged instead of overwriting them
689d798 - Remove unneeded standard item model as all it does is redirect to the generated model and rerun datagen
8bb8897 - Update deps, bump min forge version to 36.0.42 and switch from deprecated method of adding entity attributes to new event based method. This is done by adjusting our deferred registration wrapper for entity types to make it so we can easily define what attributes the living entities should have and have them get assigned at the proper time
13be72f - Minor performance improvement to the heat generator when passive lava generation is disabled, and improve config descriptions relating to heat generator settings
99ae2ad - Rerun code formatter
1f877d5 - Go through various IntelliJ IDEA inspections
e5c5360 - Rename PacketUpdateContainerBatch to PacketUpdateContainer and remove old non batch version as after we flattened them at some point it doesn't serve much use anymore due to only being a single byte smaller, also cleanup PacketQIOFillCraftingWindow slightly
cc6306c - Continued work on QIO crafting, mark various TODOs as 10.1 to ensure they aren't forgotten, and also finish implementing the per-user output hiding if the doLimitedCrafting gamerule is enabled
02ed427 - Continue work on the base handling of ComputerMethod based on some misc profiling I did related to MethodHandles and also adding support for various valid implicit casts, and errors when arguments are invalid
9483c0f - Provide computer capabilities where specified (currently not specified anywhere), and rewrite some handling pertaining to how we do annotation scanners:
  - Makes us have to loop the annotation data less times when multiple scanners are active
  - Speeds up scanning of classes that have multiple annotations in them
  - Allows us to abstract a bunch of the annotation scanning logic in a reusable manner
  - Has better handling to continue scanning if parts of it fail instead of it entirely outright failing (it should never fail but this is still a useful change)
  - Reduces memory footprint for sub classes when grabbing parent annotations if that class has no annotations itself as it just uses a direct reference instead of a copy

  Additionally this commit bumps the FG4 version we are using and updates gradle from 6.8.2 to 6.8.3, and fixes us not registering our NSS serializers properly with ProjectE
786186b - Perform a lot more work on our computer integration including testing things. It should now be entirely functional except for the fact we don't declare any methods.
 - Refactor our computer method handling slightly to be able to handle method overloading and adjust our method validator and matcher to account for this
 - Cleanup validation somewhat and fix a couple broken checks
 - Properly ensure our methods are ran on the correct thread, and add support to our annotations to allow specific methods to run on the computer craft lua thread if we deem them thread-safe
 - Adjust our ComputerCraft result wrapper to be able to wrap things like GasStacks into tables so that we can still natively return them from methods and then have ComputerCraft get them in an understandable way
 - Fix some issues with some number types not being properly matched that can be "cast" due to lua in CC only having a concept of integers and doubles, and in fact for what it then converts back as generic objects, only has a concept of doubles. We allow for some implicit casts from doubles to various numerical types including FloatingLongs so that we can use them as parameters, and we also add support for converting strings to character arrays and single length strings to characters
266bb85 - Create a system to allow restricting/filtering what computer methods get applied when binding to a handler to allow for us to define some generic ones in TileEntityMekanism but only have them get applied if the tile supports a given type of thing (for example energy)
74bee65 - Work on implementing a bunch of methods for use by ComputerCraft #6445. Still needs testing and a bit of cleanup, but in theory everything should work fine. Also fix our handling of enums as annotation values not being properly retrieved and instead crashing our enqueueWork
3ccfbde - Fix not exposing mode changing to computers via reactor ports, and expose the logic adapter's settings as well as multiblock settings for reactors
5ed40fb - Perform a bunch of cleanup on how many methods we actually have to define by using a new WrappingComputerMethod annotation to wrap things like slots into stacks, and tanks into their various methods. Also fix a couple minor things related to some computer method implementations that I noticed while going through them
94efc55 - Supply "cleaner" names to the computer peripherals
23dacdc - Update dependencies and bump min forge version to 36.0.45
68437a9 - Fix crash when computercraft is not installed
40fcff6 - Fix the chemical washer's side slot holder rendering in front of the slots instead of behind them, and fix the QIO crafting window slots not highlighting the slot when hovered
8d3668c - Reduce some duplicate code related to looking up recipes based on input handlers
7d41b99 - Replace Hwyla in dev with Jade as Hwyla is EOL and Jade seems to be the continuation. Still compatible with Hwyla
106a5e6 - Given items can't be forced into a logistical sorter only expose the front side as an IItemHandler so that logistical transporters don't show as "connected" to the back face to hopefully make it more clear to people that sorters have to be against an inventory to work properly
9001bb2 - Add toggle to teleportation module to allow teleporting without a block target (aka to air, similar to EnderIO's staff of travelling right clicking air)
c359af9 - Remove configs for ambient lighting, reduce base ambient lighting level and switch to using vanilla's method of declaring the light level. Additionally changes particles from querying the tile to just querying the state
228a1cc - Update ForgeGradle and mappings and also do the following cleanup:
 - Add compat with Per Viam Inevenire (PVI) for our entity types when loaded by adding them to the compat tag PVI provides/checks. This allows our baby mobs and the robit to take advantage of their async ground navigator if present.
 - Adjust robit pathfinder slightly so it doesn't strongly cache the pathfinder and is able to be properly replaced
 - Fix some issues with the Robit's pickup item logic causing it to do a lot more calculations than necessary and not work at all with PVI
 - Make the Robit not path to items that are flagged as not being able to be picked up at all (this makes it not instantly start pathing towards items the player throws but as they can't be picked up yet that lets the robit pickup other items)
 - Remove unneeded ProjectE defaults as latest ProjectE version adds them
 - Mimic vanilla's changes to button rendering
9461455 - Change mappings to mojmap+crowdParams and run the updateMappings task, and go through and perform a bunch of manual validation and fixes where needed. Additionally made the following smaller changes:
 - Fixed BasePacketHandler#sendToReceivers checking the wrong dimension which was revealed by switching to mojmap
 - Define refMaps for mixin properly so that mods like AE2 that we use in datagen don't error out if mappings are different
 - Update forge to include the update to special sources that fixes issues with properly remapping lambda's when building jars (reobf)
d01da44 - Bump min forge version to 36.0.53 and mark our list configs as allowing empty lists and streamline how we create resource location lists and validate their elements
94270a3 - Add in some safety against mods damaging entities with negative numbers #7049
af60261 - Allow using a configurator in wrench mode on structural glass and reactor glass #7045
bf70362 - Update dependencies and also fix D-T Fuel recipe in chemical infuser only producing 1 mB D-T Fuel instead of 2 mB D-T Fuel #7020
1921278 - update to mojmap_augmented with added javadocs merged from crowdsource
d1becb6 - Update forge and bump min version to 36.0.58 as it fixes various issues in forge that if using our previous min version would force people to run into. Also work on cleaning up some of our CraftTweaker integration:
 - Replace some hardcoded string expansions with using typed expansion
 - Fix some issues/improve a bit of stuff related to describing outputs of recipes
 - Add expansions to allow for creating NormalizedSimpleStacks when ProjectE is loaded to complement ProjectE's CraftTweaker integration
 - Move our CraftTweaker ingredient wrappers over to using our proper types and using CraftTweaker's native type exposure system as well as expose FloatingLongs directly via it
 - Declare what the proper sub command is for the bracket dumpers so it doesn't try to guess and come up with things like "slurrys"
00f09e7 - - Add maven repo for customised ForgeGradle
 - Add exclusions to FG added repos
99743c6 - add missed craftweaker exclusion and wrap exclusions in a try/catch block
0771076 - Add three new pigment based machines (and corresponding recipe types), a base dye item, a pigment corresponding to each EnumColor we have (18 in total), and add balloons, plastic blocks, and glow panels for the two EnumColors that don't have corresponding dyes (aqua, and Dark red). This adds up to a total of 36 new blocks/items.
 - Improve a bit of class hierarchy to reduce duplicate code between some existing recipe types and our new ones
 - Refactored how we keep track of blocks/items in Mekanism Additions to require less copy pasted code for definitions by storing them in maps
 - Move various simple models for Mekanism Additions blocks/items to data generation
 - Fix glow plastic slabs and transparent plastic slabs having incorrect loot tables for double slabs
 - Slightly reduce memory impact of colored blocks/items color handlers by properly ensuring that they only create the color handler once for all ones using the same type instead of creating a new one for each block/item
 - Don't allow recoloring recipes to be made with the same type as the output (no orange plastic + orange dye -> orange plastic)
 - Made a couple minor breaking changes to the recipe class hierarchy:
  - Renamed intermediate class ItemStackChemicalToItemStackCachedRecipe to ItemStackConstantChemicalToItemStackCachedRecipe
  - Made MetallurgicInfuserRecipe extend ItemStackChemicalToItemStackRecipe, the methods in the class are deprecated and bounce to the proper ItemStackChemicalToItemStackRecipe methods, MetallurgicInfuserRecipe is now implementing BiPredicate<ItemStack, InfusionStack> instead of BiPredicate<InfusionStack, ItemStack>
  - Deprecated ChemicalInfuserRecipeBuilder in favor of a more generified ChemicalChemicalToChemicalRecipeBuilder
  - Deprecated ItemStackGasToItemStackRecipeBuilder and MetallurgicInfuserRecipeBuilder in favor of a more generified ItemStackChemicalToItemStackRecipeBuilder.
3742893 - Update dependencies, bump min forge version to 36.0.62, and make use of being able to disable vanilla's portal sound when changing dimensions as we play a different sound already and fix the sound we play not always actually playing and fix not applying the recipe condition to some of our new compat recipes relating to painting and thus having the log be spammed when the mods are not present
dff7cb2 - Improve how we spawn entities to have better support if someone decides to registry replace our entities
db17ea6 - Slightly rename a couple of the CC methods on the painting machine, and expose a helper for filled percentage on all of the tanks we expose to CC instead of just some
2960e40 - update ae2 dep
97fcb35 - Perform some cleanup, transitioning over some usages of Pos3D to the super class Vector3d
0e64da0 - Refactor some of our JEI integration:
 - Add gui elements in constructor instead of in a helper method that is called by the super constructor as that way we can ensure all data we require has been set
 - Store references to some GUI elements in private variables so that we can then grab the positioning information directly from them and have it properly update the ingredient rendering positions if we adjust where the elements render
 - Only create timers and gauge overlays for our JEI categories when necessary
 - Make Chemical Crystallizer Category smarter and able to properly show the ore info fr the current recipe
 - Fix gauges not showing the proper color border in JEI, and also fix a couple issues with gauges and configurator hovering not showing tooltips
 - Further improve our JEI categories to make them look closer to what the actually GUIs look like and fix a few elements that were slightly offset
 - Mark various multiblock components as "catalysts" for any recipes that show for that multiblock to make it easier to see the recipes
 - Adjust dimensions slightly of recipe areas to look a bit better
 - Adjust some JEI categories to look more like the actual GUIs for the machines they correspond to
 - Fix Color#blend not working properly which was causing progress bars for things like the SPS and antiprotonic nucleosynthesizer to not render properly
 - Move Metallurgic Infuser dump button from bottom right to bottom left so that it is actually next to the infuse type bar
7819ae9 - Immediately error if the tile could not be retrieved for the container on the client side due to some mod doing screwy things instead of having it crash further down the line
473fec3 - Fix extra word and add in some safety handling against mods doing stupid things, and also enqueue our layer modification given strictly speaking it is not thread safe
c342c60 - Implement modid filters for the QIO, and implement some fixes/improvements to some GUIS/things relating to filters:
 - Fix scroll wheel not properly scrolling filters in the QIO importer and exporter.
 - Make the robit rename popup window take "full" control when open
 - Make the miner's ModID and Tag filters make use of our wildcard matcher that we use for other ModID and Tag filters to allow for more advanced matching
 - Only invalidate QIOFrequency filter caches when they are actually invalid instead of eagerly doing so when it just may be invalid
 - Fix not removing all the correct filter cache data when a QIO drive was removed
 - Cache failed wildcard lookups in the QIO so that we don't have to rebuild the wildcard mapping each time we query it if it won't actually end up with any results
 - Fix QIO importer/exporter being marked as "active" delay sometimes being a lot higher than intended
2344fc9 - Add support for stack size filters to material, modid, and tag filters for logistical sorters and also fix sorters using too large a minimum value if there are multiple filters and the first one fails due to no destination but has a higher required min than the next filter that is valid for a different type of thing
87c3791 - Transition Upgrade GUI to an Upgrade Window instead of a dedicated GUI. Half the time it takes the upgrade window to install upgrades AND make it so it can install an entire stack at a time (stack of eight upgrades install time via GUI is now one second instead of sixteen), and made it so shift clicking on the tile to install upgrades can do an entire stack at a time. Additionally did the following cleanup to some GUIs:
 - Deduplicate some code related to adding upgrade window tabs, redstone control tabs, and security tabs by making them conditionally add based on if the tile has the needed support or not.
 - Fix a few issues related to scroll lists not updating position information properly when moved (such as on a window)
 - Add a concept to GuiElements that only care about their position but don't actually need any drawing/extra checks needed to allow for easier moving of them when the parent container that is just using them as a helper for drawing is moved
 - Fix/improve positioning accuracy of rendering scaled items
 - Fix a few issues related to when there are multiple scrollbars in one GUI the scroll wheel not picking the correct one
 - Make it so button text can scale to fit in the button
 - Create a more advanced system for keeping track on the server of which Gui Window is "selected" for purposes of easier allowing gui windows to have virtual slots that may not always be able to be shift clicked into (Also switched the QIO crafting window selected window system over to this)
 - Fix double clicking to grab all of a stack being able to grab from closed GUI windows
 - Perform some minor misc cleanup to GUIs
897e5b1 - Implement Fuzzy mode for QIO exporter and importer item filters Note: This changes the default configuration for QIO importers from acting as if fuzzy mode is enabled to being disabled unless turned on, no default change to how exporters behave though, with the exception of now being able to manually enable fuzzy mode filtering
3f09823 - Handle null blockstates causing our extension baked model to crash #7078
7f55bf3 - Fix bins not rendering all items quite properly and not rendering at all when covered by things like glass, and apply a proper transformation for when a meka tool is in an item frame so it can render properly in them as well #7073
0892aeb - Prevent all our fluids from being duped by create
b72bfe3 - Update some deps and make some minor tweaks
837d084 - Various improvements to our recipe caching:
 - Clear client recipe cache when disconnecting from a server
 - Create a secondary cache lookup for if an object is a valid input type for purposes of use in validity predicates. This should drastically improve performance when it comes to pipe networks testing to see if an invalid item can be inserted or not. #7084
 - Add in a bit more caching to our cached recipe lookup so that if none of the inventory contents changed it doesn't try to lookup the recipe again as if it didn't have a match the last time we checked, we still shouldn't have a match
 - Add in some missing extra insertion checks to not allow mismatched inputs/secondary inputs in the machine at the same time
 - Fix our client side not properly invalidating our cached recipes after a reload
 - Fix ChemicalStack breaking the equals/hashCode contract that it was doing so due to mimic'ing forge's FluidStack which also breaks this contract
ea0aded - Used unchecked setters on the client side for chemical and fluid stacks as if a recipe got removed so something that was once valid but no longer is gets sent to the client as what the contents are the client renders it properly instead of logging an error
798e76f - Update deps and bump min CraftTweaker and JEI versions and use JEI's newly exposed color helper to properly return what color our various chemicals are when color search is enabled
c48ce30 - Add implicit cast support from crafttweaker's tag with amount to our ingredients
710f292 - Mention chemicals in the dynamic tank's descriptions as dynamic tanks have supported chemicals since V10 (
aef1c3e - Add sawing recipe to convert a melon block back into 9 melon slices (
a2ea5c6 - Improve performance of our transporter pathfinder when building the actual resulting path
03d797a - Update and bump min version of CrT and JEI. Perform a bit of cleanup with our CrT integration and address some of the TODOs I had left, document some things that were missing documentation and also add integration with JEITweaker to allow for adding info to chemicals and also hide built in chemicals (custom chemicals made via CrT should just use the hidden flag while building). And also update our JEI integration to use text components in places that are now able to use text components
ebf2a5d - Have our recipe data generators use the existing file helper to track generated resources, and create a datagenerator for creating crafttweaker script examples and create a bunch of examples using it. Also add in support for CraftTweaker's IIngredientWithAmount
36312a7 - Add in some more convenient recipes relating to granite, diorite, andesite, purpur, and prismarine. Fix example scripts changing order some times based on the datagen run and also not matching the declared order and sort the listed methods in a predetermined order as getMethods does not return a predetermined order
b9bcbdd - Fix checking the wrong stack and then voiding extra items when interacting with a fluid tank using a stack of filled fluid handlers #7104
f133cf5 - Don't allow non creative players to use a gauge dropper to dump tanks in creative blocks #7100
6fdfafc - Fix security desk not persisting inventory when broken and placed again #7111
d8edde8 - Make the teleporter properly respect entities canChangeDimension flag (only false for withers and ender dragons in vanilla), fix teleporter trying to teleport part entities #7107, fix entities sometimes taking damage when teleporting and passengers sometimes not being visible after teleporting to nearby players
b051065 - Fix accidentally not actually resetting invulnerability state
ca83c75 - Fix some issues where player's wouldn't be aligned the correct direction when exiting a portal #7085, also fix some issues where teleporter particles would not end up in the correct spots
72ad6d4 - Add in a better fallback for displaying the owner name that corresponds to a UUID of an item on the client side when the actual name is not necessarily known #7110
9796eef - Bump min JEI version to make it so that recipe names can be easily discovered and also add in support to item to energy recipes for displaying the recipe name
7d83fd5 - Fix being able to open fusion reactor GUI via reactor glass
8e79156 - Fix wrong unit for config comment #7118
d5cac73 - Make a bunch of fixes and improvements to transporter path finding:
 - Fix acceptors being marked as the same destination on different sides if they actually have different transit responses. If they have different responses this means that they expose different slots/care about their side and need to be treated as different acceptors for pathfinding. This makes it so that round robin on sorters can properly alternate for a metallurgic infuser between sending an infuse type item and sending the input item.
 - Fix auto-eject from various blocks being able to insert into transporters set to push, and sorters on round robin not being able to eject into transporters on pull
 - Implement a reverse lookup map allowing for us to further reduce the number of tile lookup calls that our transporter's make during pathfinding
 - Fix round robin on sorters occasionally losing track of which destination it actually was on when some earlier destinations became "invalid" due to being full, and thus causing the indices of destinations to shift #7092
5fa4cf1 - Implement a bunch of small miscellaneous performance improvements based on profiling some of my various test worlds
decb5a2 - Update deps and adjust which CrT method we override to properly notify people attempting to remove by output that it isn't supported
35ebb06 - Separate the teleporter's portal texture into its own texture (
c11a4e1 - Allow installing muffling upgrades in the following generator types: Heat, Bio, Solar, Wind, Gas-Burning, Advanced Solar (, Also fix muffling upgrades installed by sneak right clicking a block not muting the sound
f4b74bc - Adjust the Bio Generator GUI to show the bioethanol in the bar representing it instead of just using another power bar
bfc9da7 - Add some more configs for configuring heat generators and fuelwood heaters (
32599ff - Add a server side config (defaulted to false) for allowing dragging items from JEI into the target slot for filters in the digital miner. Also downgrade JEI in dev by one version so that dragging works again and this could be tested
63bea88 - Fix being able to fire the flamethrower through one thick walls
771daad - Rework/improve configuration cards ( This unfortunately came with two breaking changes, one to the API, and one config cards that were set in the past will have to be set again. Now to the actual changes:
 - Rewrote the config card access interface to merge IConfigCardAccess and ISpecialConfigData into one interface and capability
 - Made it easier for modders to actually implement support for config cards rather than how it was rather unwieldy previously
 - Made it so that we can have configuration cards work on different tiers of the same factory/block instead of having to have a separate configuration card per
 - Added configuration card support to a good number of our other blocks
 This commit also reworked/cleaned up a good amount of stuff related to bounding blocks:
 - Mostly got rid of advanced bounding blocks (they will be fully removed for 1.17 as there isn't a good way to transition existing worlds over for now so they still exist). All bounding blocks are now "advanced"
 - Made it so bounding blocks can give off comparator signals (this allows the digital miner to expose comparator signals through the different horizontal ports it has)
 - Fixed issues with how redstone signals got proxied via bounding blocks
07fa2a9 - Minor cleanup related to how much code is needed for us to print formatted "log" messages to chat
9840442 - Expose our radiation manager and radiation capabilities to the API #6792. Also move setting registry names of empty chemicals out of the API/constructor into the event which is a more proper place so that we can run tests on API accessors without running into crashes
2d438e3 - Improve performance of machines when multiple things change at once by only marking that we need to update comparators and only actually doing so once per tick maximum, this should help factories in particular though most things will probably benefit from it at least some. Also make a couple minor performance improvements to our transport manager predict insert code to further reduce the number of calls to the handlers
d09d55e - Update dependencies, and bump min forge version to make sure the min versions of our optional dependencies are met and also bump min CrT version to one where they have fixed their version so as to avoid confusion of people trying to use versions between our actual minimum and the fixed one due to it reporting the wrong version number
daba2d4 - Fix security tab not showing up on in world QIO dashboards
7dd9b69 - Properly proxy comparator changes on the digital miner to the bounding blocks surrounding it
ce40a58 - Adjust how we handle replacing blocks with the cardboard box so that custom item entities don't end up dropping #7053. If this method causes any other issues (which it hopefully shouldn't) then we can look into it further. Also move bounding block breaking to happening when the tile for the main block is removed to have a slightly cleaner implementation
90e37aa - Persist frequency for QIO components and Teleporters when broken/pick blocked and persist QIO Redstone Adapter settings. Frequency information doesn't always persist properly for pick block if the client doesn't know what the data currently is set to but it should work fine for purposes of breaking
bfa3e5a - Implement Fill Held toggle for Electrolytic Breathing Unit (#7134)
aa77451 - Improve performance of our proxy capabilities by caching our facing direction to reduce cost of checking it from blockstate, and implementing some caching on our config holder level. Also refactored normal holder (non config related) implementation to require less duplicate code between various data types. Also slightly improve performance of getting sides matching a given config type if none of the sides match the given type
4e2cded - Add a way to allow custom chemicals to override their color representation for purposes of things like durability bars if they are not using tints due to having a custom texture
747d861 - Add some more javadocs mentioning the ability to override the color representation and slightly refactor our CrT content creation to add in support for overriding the color representation
883c121 - Add Geiger Unit Module for the Meka Suit (#7150)
a59fe7a - Refactor/rewrite a lot of internals relating to our module system to allow for addons to create custom modules and add them as supported to the Meka-Tool or MekaSuit #6846.
0908692 - Fix inconsistent order of some exposed computer methods #7160
8d38bea - Fix using the wrong symbol for Micro
849917a - Go through our API and add JavaDocs to most of the places that had no JavaDocs. Additionally:
  - Made a couple minor "breaking" changes to our recipe ingredients by changing the access levels of constructors that shouldn't be used directly anyways.
  - (Breaking) Removed IMekWrench as without optional interfaces it doesn't really work as is and doesn't provide enough details to be worth converting into a capability when we already have fallback support for tags
  - Switched some of our recipes to having proper list based output definitions for use in JEI, a few more still need to be transitioned but need to wait until 1.17
  - Validate that no recipe objects are created with invalid values
ef23a56 - Remove clientDispersers from turbine multiblock data as the client already gets synced the bounds of the multiblock so it can be calculated and given we expose getMaxProduction and getMaxFlowRate to computercraft we need to have valid values for dispersers in those methods on the server side
cacdda8 - Update gradle to 6.9, update deps, fix all jar failing to build first run after clean, and generate a source jar to allow for our JavaDocs to actually be viewable
e43293a - Set a tooltype (shovel) for salt that can be used to make it break faster
475259b - Fix datagen having broken when updating deps a couple commits ago and make our CrT datagen use the FQN for floating long as the default example with implicit casting as the secondary ones and also fix a copy paste error making the centrifuge examples not use the correct recipe type
ee4b1a9 - Add in NBT support to our CC argument wrapper and also display NBT for items, fluids, item filters, miner replace items if there is any
c67b466 - refactor EmitUtils to not care about side (& not spam EnumMap)
ef82bac - attempt to reuse collections where possible, and pre-size them appropriately otherwise
962698e - Fix a few javadocs/comments and minorly cleanup a couple things including tests
6bbb1ab - remove repeated string lowercasing during ticks
7e966af - remove ITileComponents for requiring a tick method, call tick methods directly from instance members instead of list looping
012114d - make structural multiblocks only update twice per second
7c08658 - make general multiblocks only try to form twice a second
aa535b3 - remove redundant getFrequency (map lookup)
7c618ee - move CacheSubstance to a generic class to remove some casts and lambdas
9046fb4 - constant capitalisation and import removal
e7ae337 - only add the tile location to the set if the cache instance is updated (either side) to avoid a Set.add every tick
c10eb36 - unbreak save targets
7c98fb2 - rate-limit multiblock force-saving
b699e1e - comment tweak
c4eaf8f - Mark multiblocks as dirty as needed instead of on a timer
bae450f - Minor cleanup to save targets
5a5f76a - Switch component ticking to only happening in server side code instead of each one having to check if it is server side
1c0c821 - Fix some duplicate/overlapping config keys #7180
b1365d3 - Move Chunk3D to the API, convert the backing radiation map for the RadiationManager to a table and expose radiation sources in the API as well as a way to remove them/make them decay faster. This should allow any addons that want to create "active" ways of dissipating radiation to be able to do so
6559d40 - Add some missing gold items to the piglin loved tag
6bb6a0b - Disable our Pressurized Reaction recipe mapper by default as it doesn't really end up adding any values with the default recipes and only ends up causing the EMC value for charcoal to be removed
0a0a9fd - Fix game freezing when trying to shift click an item in the dictionary when a target is already selected #7153
05ff0c9 - Fix digital miner switches extending past the screen #7189 and fix the icons for them being offset by a pixel
793be44 - Add support for healing radiation in living entities not just players #7193. Also remove the about once a second check happening twice for entities and causing them if they get lucky to just not get irradiated for long periods of time
a6df3b7 - Fix sorter not overriding existing filters when using a ocnfiguration card
77dbb3b - Remove accidentally left in debug line and fix a config comment mentioning an old name of another option instead of the new name
6617b7c - Integrate the nutritional liquifier's new model and animations and move the old model to the pigment extractor
469ec02 - - Update deps
 - Fix gradle build not working due to tests not having access to all required classes
 - Bump min CrT version to fix issues with optionals some of our recipe managers run into
 - Move CrT exposed path from mekanism to mods.mekanism to be consistent with other mods
 - Add support for imports in our CrT example datagen
 - Don't allow instantiating expansion classes as there is no reason to allow it
 - Move our Chemicals to being exposed via Natives to CraftTweaker to clean some code up and also fix some issues CrT was having. Currently some methods are not exposed on them due to waiting for another CrT update
968e382 - Fix method reference causing crash on dedicated servers during startup
6c040d8 - Use an event that isn't broken to grab the sound engine that is in use #7204
3e1aa00 - Fix various machines showing the wrong scaling for how much speed multiplies the speed #7206
431292d - Fix accidentally changing where rounding was happening when getting the "cleaned" damage percent number #7199
e667947 - Actually fix some modules causing the server to crash due to client side only code being loaded
fa91e2c - Fix copy paste error
fe66d18 - Address some of the TODOs marked for 10.1:
 - Make chemical registries return empty chemical when an invalid is given instead of null
 - Make percent be part of the translation keys instead of hardcoded as the string
 - Make chemical builder's attribute map be immutable
 - Remove some bounding blocks from tiles that don't have TERs as they aren't needed
5dffa67 - Fix radioactive waste barrel not showing its description and also make it show the capacity and decay rate in the tooltip. Also format some numbers in various places that were not formatted before
7c8ca96 - Create a capability to allow dissipating/refracting lasers across/through armor. Add two new modules: Frost Walker Unit and Laser Dissipation Unit. Refactor how the mekasuit handles damage to not have the "damage effect" happen if it fully blocks the damage and also adjust the damage blocking amounts to be able to be capped via the config for the percentage of damage the MekaSuit can absorb from any one damage instance
492fc0f - Implement a stone/cobblestone generator upgrade for the digital miner for use in replacing blocks Also make the miner's auto eject mimic machines by shuffling the order of items it ejects to hopefully make it less likely to get stuck just ejecting the last item over and over again when there are stacks of other things filling up the miner
92cb41d - Implement an HDPE Reinforced Elytra and an Elytra Unit for the MekaSuit (,
 - Elytra Unit works with both the Jetpack Unit (when not in hover) and the Gravitational Modulating Unit
 - The elytra unit on the MekaSuit also has special handling so that sneaking will exit elytra flight to allow easily switching back to going vertically with a jetpack or free falling if desired
 - Also fixed some issues with functions being performed even when there was not quite enough power for the enhanced version of the function
 - Fix nutritional injection unit wasting food and energy without transferring it all to the player
10d44f8 - Allow scrolling past the MekaTool when mode change is disabled in the module tweaker. Also change default gradle task to just build and remove the legacy fullBuild task that just builds and then deletes the main jar
988da62 - Cleanup a bit of duplicate code in the fluid handler slot and make use of HashedFluid instead of FluidInfo. Also fix fluid and hybrid inventory slots not persisting the draining/filling direction state when a chunk unloads and loads again
0f0f99f - Disable the auto eject button on side config if the config type doesn't support ejecting. Also slightly cleanup how we handle the text rendering of if we can eject or not and add a tooltip explaining that it is talking about auto ejecting not the ability to extract things. Also create a system for disabling specific side config buttons based on if that side is configurable and make use of this feature in the isotopic centrifuge and move the SNA to having a side config and using it as well
a13610c - Update deps and improve compat with ItemPhysic by resetting the age of the items in our transporters #7239
393ba03 - Fix QIO importers and exporters not persisting without filter setting #7221
63177f6 - Prevent crashes caused by security frequencies with no owner #7219
fc0b660 - Update issue templates to have the feature request button redirect to the feature request repo. Closes #7106
dca311b - Improve model for Balloon in the GUI, dropped item form, and in item frames
a18c966 - Improve Fission JEI recipe category to be able to show all valid coolants including custom ones. Implement a JEI recipe category for the boiler. Improve tooltip formatting for chemical attributes, and add tooltips to fuels so people can see what things are actually fuels and how well they perform in the GBG
3b06773 - Don't allow summoning Robit's with the summon command (#7241)
7f2d6ad - Add Warning Textures for later use in the GUI diagnostic system (#7245)
e3b27f8 - Update to FG5 and Gradle 7.1. Also perform a bit of cleanup to our build.gradle based on some concepts that Gradle 7 prefers: lazy initializing our replace resources tasks via register instead of create, lazy withType task configuration, ensuring all tasks have proper dependencies set. Add in a bunch of explicit type declarations to the maven publications block to get rid of IntelliJ's false positive warnings for them. Make datagen configurations extend the base configuration of that module instead of main as the base ones of the module extend main and then if we add explicit integrations to some of the modules they will also get added to the datagen of those modules
e8116a4 - Fix formulaic assemblicator validity check checking the wrong slot bounds #7247
abf4bbd - Transition our issue request template over to using Github's new issue forms system to require that certain elements are filled in properly.
0ce2e5d - Minor tweaks to the issue template
ba354c5 - Updated Warning Textures (#7249)
a8b627b - Slightly refactor how we initialize GUIs and add elements to them to better dynamically handle adding support for our warning tracking system. Also start implementing our warning tracking/gui diagnostic system to help users determine what is wrong with their machine. Rendering is setup but actual usage is not implemented yet
adbdb53 - Fix a couple tiles not calling super for their update methods and thus making things like auto eject not work now that where it gets called was moved
8043799 - Update deps and bump min CrT version so that our integration can be fully functional. Also commit two files accidentally missed in the last commit.
5edf4fb - Workaround potential load order issues #7255
081d66a - Bump hooking up the warning system to 1.17/1.18 when we can make some bigger breaking changes to our API. Also make a small breaking change to our IInputHandler's API for purposes of use of our cached recipe system to slightly reduce lookups and improve performance. Though if the prebuilt methods via InputHelper are being used things will continue to work fine, and all previous existing methods still exist for now.
4124b4b - Fix not validating that there are no minor planes sticking out in the middle of a cuboid face and allowing for weird shaped multiblocks that shouldn't be valid #7174
3a3013b - Update deps
445569d - Fix some issues with input/output as a mode when both input and output are the same target causing simulations to return bad values #7114. Also add in some protection against if a bad simulation is passed so that our transmitters handle it more gracefully and don't create a dupe
8de59c0 - Refactor how we register and handle keybindings to be cleaner and remove the need for them to listen to various events, and also fix in world keybindings (such as mode changing) not working properly when bound to a mouse button
50542d1 - Fix voice server not working #6102, and add a client config to allow for making it so that the push to talk functionality can be toggled into a push to toggle mute state functionality
b84960b - Fix crash with fluid containers that don't have a fluid handler when empty #7000
f67cbf0 - Fix various issues related to multiblocks:
 - Slightly reduce the number of update packets multiblocks send at times.
 - Fix issues with multiblocks when going directly from one valid state to another getting confused which block is master and effectively having more than one master #7015, #7016.
 - Fix only one of the two locations the SPS is supposed to play sound from actually playing it.
 - Fix thermal evaporation plant sometimes not actually producing an output
 - Force the TEC to be the controller block for the Evaporation Plant, and make only the controllers need a TER instead of all evaporation blocks
 - Add some missing elements to SPSCache and improve merging of FissionReactorCaches
3a75157 - Fix energy still being drained with keep inventory when dying before hitting the ground #7264
2baa56f - Fix issue with transmitters client side at spawn at death removing things that shouldn't be removed and logging a warning about unexpected state
9fe5371 - Fix various issues with the formulaic assemblicator:
 - Remove no longer needed brute force repair item recipe variant as the RepairItemRecipe matches just fine and ensures that curses don't get removed
 - Fix formulas for fireworks or other special recipes not properly working depending on how the matches is implemented on the recipe #7262
 - Fix the slot targets we define for transferring recipes in the formulaic assemblicator from JEI not working properly/lining up
 - Fix using passing the wrong dummy inventory to recipes when crafting in auto mode on the formulaic assemblicator #7022
807a081 - Improve performance of the digital miner when actually mining blocks and updating the number of remaining blocks #7263
2bedc94 - Implement Meka-Tool Shearing module (, and MekaSuit Geothermal Generator module. Also refactor the silk touch module to use the system we designed for enchantment based modules for the frost walker boots so as to play nicer with other mods #7243. Also exposed the following abilities to custom modules:
 - Ability to define entity interactions for the Meka-Tool
 - Ability to define custom dispenser behaviors for the Meka-Tool and MekaSuit (equipping to armor stands/players still takes precedent for the MekaSuit)
 - A way to do things when the module's enabled state changes (frost walker module can now be disabled without removing it)
 - A way to more easily create custom modules that can prevent certain types of damage
 Also fix our recipe cache invalidation listener potentially running slightly earlier than it was meant to and module setting syncing to server not being properly validated server side. Make MekaTool and Atomic Disassembler mine at a speed of zero when they don't have any energy
bdc9e39 - Update deps, fix not marking some optional deps as mods we have integration with, and transition our sound data generators over to using forge's new sound datagen instead of our own one
84389b3 - Add dispenser behavior for obsidian TNT and remove accidentally left in debug message for obsidian tnt
00203be - Fix radial menu keybinding not properly handling keybinding modifiers
98939a8 - Fix night vision being removed even if it is at a greater duration than we apply it at, so that means it had a different source #7029
49947bf - Added validation to check if a turbine contains electromagnetic coils (#7268) (#7269)
98e3fde - Bump default charge rate of geothermal generator unit to end up providing a positive charge at max upgrades even through the excess damage that still has to be blocked/negated. Also fix some discrepancies with how the solar recharging unit works compared to our other solar based systems and fix having used the wrong canSeeSky method when porting from 1.12 causing solar panels and wind generators to work when fully under water. Note: Added special handling to allow adv solar generators to be fully water logged and still work as long as the top layer is the top layer of water as the panel is at the top of the block so still visible
cd8d57e - Remove personal chest from chest related item tags to prevent it from working in recipes that allow any chest as users would rather have to make a chest than risk accidentally losing their items stored inside #7276. Also fix the laser tractor beam recipe not persisting stored items
9bb7506 - Add config to disable magnetic attraction particles and tool aoe particles Also moved client machineEffects, radiationParticleRadius, radiationParticleCount, and enableMultiblockFormationParticles configs to a subsection so if those values were changed they will need to be changed again
64e0835 - Add config to stop the flamethrower from being able to destroy items
707992f - Refactor large portions of how filters are handled by the Oredictionificator to fix various issues, make the output and handling of oredictionificator filters in CC consistent, and make the list of valid tags for the oredictionificator configurable and improve the message the oredictionificator shows when setting an unsupported filter
5a04fa1 - Update deps and bump min JEI version to prevent against #7278
13bc6a6 - Cleanup some code that was duplicating some loading/saving between config cards and overall loading/saving
3d50c0e - Slightly refactor how class hierarchy of cached config values and make it so that it only runs invalidation listeners if the specific config's value changed. Also fix oredictionificator's not being able to remove their invalidation listeners when the world is closed even though they should get removed as they are bound to the tile thus being a potential memory leak. Also fixes the oredictionificator gui showing there are issues when there are less than three filters
ba55183 - Add support to chargepad for charging items in Curios slots
bebfd28 - Add confirmation support to deleting teleporter and quantum entangloporter frequencies
604ce60 - Added recipe integration with Oh the Biomes You'll Go Note: I did not spend the time figuring out what versions of BYG added what blocks, so if any recipe errors show up in the log update BYG, the version I added recipes against was BYG 1.3.0.
 - Added pigment extractor support to Biomes O Plenty
 - Replaced some usages of our multi ingredient with vanilla's multi ingredient.
fa506a2 - Write an annotation processor to collect the parameter names of methods for use in our CraftTweaker example datagen
d534d6d - Add support for defining a replace stack for the digital miner while in inverse mode
75817a1 - Add the ability for pack makers to blacklist blocks from being able to be mined with the digital miner by adding them to the mekanism:miner_blacklist block tag. (
33fe6f4 - Make fission reactor heat graph temperature display units and also use the temperature units selected instead of always Kelvin #7281
5741625 - Fix workaround for old versions of FTB Chunks in case any other mods still unilaterally prevents all explosions in an area by removing positions from which ones should explode. Also fix an off by one bound error for the maximum position that a meltdown explosion can occur
d307ecc - More work on fixing various issues with the QIO including some related to the crafting windows:
 - Fix accidentally having broken being able to extract from the output slot when adding support for doLimitedCrafting #7203
 - Fix rounding in QIO GUI of items stored which caused things like showing 100000.0K when there are 9,999,935 items stored instead of showing 9999.9K and make 9,999,999 display as 9999.9K as well rather than rounding up to 10M. We also now only display the decimal place if it is in use, and actually make use of it at times rather than it just being ignored and always being zero
 - Fix the QIO sometimes showing multiple stacks of the same item in the GUI because of it not properly removing the old stack #7229
 - Fix desyncs when splitting stacks via quick crafting and then releasing the remaining stacks over the QIO viewer by not inserting items into the QIO viewer on release from quick crafting, and requiring a second click instead
5152431 - Improve wording of the README (#7138)
053506e - More work on the QIO's JEI recipe transfer handler:
 - Rework the client side handling to be more efficient, use a bit less memory, and be able to handle the maxTransfer param from shift clicking the transfer button in JEI
 - Fix missing items showing as off by one in their position
 - Prioritize matching the currently shown ingredients in JEI
 - Implement the server side handling and data validation required
 There are still a few validation checks and minor QoL changes that need to be done to the client side of the transfer handler before 10.1 but in general it should mostly be working now
2e0595d - Update gradle to 7.2, update deps, and bump min CrT version. Also switch to using parchment
f83847b - Fix our slower check not validating there are any items left to use until after it attempts to use one. Allow transferring more secondary stackable materials than just one, even when some recipe components only stack to one (such as buckets) as long as there are more of that item available for after the craft is done
1e4128f - Do a bit of validation client side for if there is likely to be room to shuffle items about, and do a few prechecks related to if there is already a matching recipe, so it doesn't need to calculate things if not actually transferring. Also bump min forge version to 36.2.8 to fix issues with missing apostrophe's in a couple places (and even more places in various translated languages)
2c11624 - Fix some CCArgumentWrapper tests not properly handling when the list ends up being of shorts
cac0b44 - Allow dragging from JEI into the QIO Redstone Adapter
c551bd9 - Work on fixing some spots text overflows the GUI in other languages #7145 and fix a copy-paste error making the laser amplifier's GUI show the max threshold in the spot the min threshold is meant to display
0f35046 - Perform a lot of cleanup/refactoring related to frequencies and fix a bunch of bugs related ot them as well:
 - Rewrite handling of validation related to who is the owner of a frequency and if the player making changes has access to the frequency. Also changes the private list sync so that it will take advantage of the one container per player aspect and sync the player's own private frequencies instead of the private frequencies of the tile owner (
 - Fix handling and assumptions of what data is shown for frequency items when the security system is disabled in the config.
 - Convert the frequency selector gui components into a proper gui element so as to reruducre a lot of duplicate code between various selectors. Also fix a variety of minor bugs in it and reduce some of the processing it needed to perform, and make it so that it displays the owner of the frequency.
 - Fix frequency data not persisting when breaking a block and placing it again, and change how frequency data is saved to the tile so that it can load the old data but store it a bit mroe efficiently and in an easier way to persist.
 - Rework how we sync frequency data to frequency item containers (portable teleporter and portable QIO dashboard). This allows for ensuring the data is up to date fixing a few cases it didn't sync properly before and removing the need for some extra packets which have now been removed.
 - Merge the packets for setting a frequencies color so that we don't need one for each frequency type that supports being colored.
 - Add currently selected frequency details to the teleporter and all QIO blocks if they had one saved before being broken.
 - Made the portable QIO dashboard's tooltip show the item's owner, if there is an inventory (items stored in the crafting windows) and also details about the currently selected frequency.
 - Adjust SyncableList and SyncableFrequencyList so as to allow sourcing from a collection instead and manually overriding the hashcode check so that we can avoid having to create new lists to wrap the frequency values into just to check if something changed.
 - Fix some frequency types, most noteably teleporters, not properly marking the tile as dirty and in need of saving when the selected frequency changes
 - Improve performance my only firing all the deactivation and activation logic for when a frequency changes on a tile if the frequency actually changed and isn't just being set to the existing frequency
 - Made the configuration card able to properly copy and set the frequency for the Teleporter and QIO blocks, while also fixing some minor issues with how it did so for the QE.
 - Fix UUID frequency identity not being able to properly load from NBT (this code path was never actually used).

 Additionally made the following smaller changes/fixes:
 - Fix OwnerDisplay not grabbing the username correctly if used server side
 - Fix children of GuiElements being at the wrong z value if there are multiple of them
 - Make the electrolytic separator persist dump modes when broken and placed again
 - Cleanup a few misc TODOs
3799170 - Manually set the proper icons for JEI's categories rather than having it attempt to figure them out. This fixes if other mod's add support for our categories and their JEIPlugin runs first that their item would show for the category. Also, properly take grandchildren into account for our JEI gui element handler and ghost ingredient handler, and add some missing checks related to if an element is visible
e706f96 - Validate that the entity above the miner is actually an item handler before attempting to pull from it #7327
7354e9c - Fix merging of acceptor caches not properly merging acceptors that have changed and are in need of being rechecked #6356
1b4ba2c - Make all GuiElements be "relative", this mostly changes button creation a little but allows our logic to be a bit more consistent
a27f976 - Fix coloration of MovableFilterButton
1e744b6 - Update deps and bump version in issue template to list 10.0.22 as well
a2d5aa4 - New Crowdin updates (#7318)
82a6ec0 - Address some of LGTM's warnings/errors, as well as some of IntelliJ's analyze code suggestions/warnings
914de08 - Fix miner filters not properly resyncing to client if replace info changes #7330
82e8cd7 - Improve handling of "position only" gui elements, and rewrite some things related to the crystallizer gui and recipe category to further improve how close the JEI category looks and cut down on some of the extra logic related to displaying
4c69fe0 - Add some missing calls to super for gui elements causing children to not get checked
45f62df - Fix a bunch of issues related to input validation not being quite right #7319, and add a system to make it so fields that are supposed to be all lowercase automatically become all lowercase. Also fix highlighting of text fields not showing up in the correct position
017c330 - Fix copy-paste error
489bc2a - Continue work on addressing various TODOs and make side configs only have to notify the world of updates if they actually changed
ab61241 - Fix issues with teleporting while riding an entity being controlled by the player such as a boat #7302
48d73eb - Fix some issues relating to popup windows not behaving properly and "over persisting" if the screen's size changes
10ca2db - Fixed the osmium compressor using unexpected amounts of osmium due to a few different issues including rounding #7309. Additionally, fixed:
 - Fix last usage of secondary chemical not using the full scaled amount for advanced electric machines and chemical dissolution chambers
 - Transition nucleosynthesizer cached recipe over to using the basic chemical recipe rather than the per tick one with a multiplier of zero
 - Slightly improve accuracy of some of the upgrade rate calculations.
 - Slightly improved performance in some places for looking up if a given upgrade is supported
 - Fixed the output upgrade slot not persisting contents
 - Deprecate some cached recipe types that can just have the super type used, and remove those that got added in the 10.1 cycle so don't need to be deprecated before removal
 - Make it slightly easier for cached recipe holders to define what information gets persisted
a081749 - Expose EnchantmentBasedModule abstract implementation to the API and slightly modify the logic for removing enchantment tooltips to not require manual listing and instead remove any that modules are installed for that provide "enchantments". Also create a helper for only loading modules of a specific implementation class to be able to bypass fully initializing and loading other installed modules
09c30a6 - Make MekaSuit charge distribution unit able to charge curios slots when set to charge inventory
787a3b1 - Slightly adjust auto eject component to properly be able to distribute output evenly when one side is set to output and another is set to input/output. Also transition chemical tank and rotary condensentrator over to ejecting using the ejector component, and add a system to let the chemical tank define its own output rates
5a26e44 - Add a few more nucleosynthesizing recipes
8296fcc - Turn off the electrolytic separator if both sides are set to dump excess and the "excess threshold" has been met ( Also remove turbine dump excess threshold config and make it reference a new more generic dump excess ratio config in the main mod that is now also used for defining the separator and chemical tank's dump excess target levels
b8e2952 - Add a fluorite storage block and update the fluorite gem texture Closes #7312
241e1a2 - Fix logistical sorter not obeying stack sizes of filter when sending directly from one inventory to another without any transporters #7244
7846ccb - Make upgrading item gas factories in world transfer the used so far data
7e1c19d - Fix attack sometimes registering twice when taking items out of a bin #7184 by limiting bins to one remove per 4 ticks
7c35bac - Fix turbine being able to produce energy without using steam when there isn't enough steam to get the flow rate to 1 mB/t #7046
69f2b0a - Fix gravitational modulating unit boost not properly being applied due to not applying it on the client side #7048
b5d6066 - Make cardboard boxes obey spawn protection and also check the block break event to fix compatability with the locks mod #7210. Ideally we would also be checking the ability to place the block in the position but there are currently some issues related to restoring block snapshots
4a615ef - Make blocks that can store contents not able to have the item that gets dropped destroyed when the block is blown up #7325
7ae1329 - Set annotation-processor Java version to java 8 (#7332)
66c95bc - Export the modified mods.toml to eclipse's build directory and slightly adjust a couple generics in places to make eclipse's compiler to not consider them to be "errors". Also reintroduce fix for first build from a clean state failing to build the all jar. Remove extensions for compile configurations given the compile configuration got removed in gradle 7
482c47c - Fixed various persistence issues with the radiation manager and made meltdown state persist through restarts. Also continued to work on addressing some TODOs by bumping some to being targeted for porting across MC versions and by implementing or removing others
dbe40c8 - More work on finishing up remaining pieces of the QIO crafting window system:
 - Improve shift click performance some when it comes to inserting the output into the player's inventory
 - Add in support for replacing items in the recipe with other valid items (stops the crafting but makes it so the player can then continue crafting the item if they want to)
 - Ensure our dummy crafting inventories only have one item in them
13419a4 - Fix having broken turbines from functioning at times due to recent fix. Closes #7333
001dc6a - Slightly tweak computer method mapper to be able to filter methods by if a given mod is loaded, and also support static methods/handlers. Also create a global lua API to help with converting between various energy types
3e3d835 - Remove a todo and cleanup a couple comments
6b90e0d - Update issue template to list the 10.0.23 build
934056e - Allow for idle transporter paths of length one if it is still connected to a different side than it was heading to. This stops single length transporters sometimes causing items to get dropped if the destination is filled before they can finish transferring the item and the home block won't accept it anymore #7028. Note: Single length transporters still will drop their contents if they are not connected to anything or are only connected to one destination. Also fix elite transporters not attempting to recalculate their paths when they hit the midpoint. Also allow searching a max distance of three if two blocks are very close together to better handle some odd paths some people might use as at such low numbers it won't incur much of a performance penalty
168feae - Make the rotary condensentrator's toggle button actually toggle visually
6773d87 - Improve changelog generation to better handle long multiline commit messages
60f7139 - Restructure solar generator power and sun checks a bit so that advanced solar generators are able to factor in all the solar panels instead of just the center one, and actually take the top of the advanced solar panel into account for biome data rather than the bottom
7994249 - Add 10.0.24 to the issue template
cf91117 - Switch some fast util usages from hash to array implementations when we know we will be dealing with small number of elements
76a3171 - Allow forcefully extracting out of the PRC, Isotopic Centrifuge, and SNA input chemical tank if the output tank is empty and the input is radioactive. Also switch the electrolytic separator over to being able to use the eject component
dedb94c - Create a system to persist which gui windows were last opened and where; persists across machine types, does not currently track filters or filter select windows
4f2603d - Add corresponding fluid types for some of the chemical types that got added in v10 that make sense to have them for compat reasons
75a8dde - Make hazmat boots require black dye instead of orange dye, and make the ethylene + oxygen PRC recipe not output any oxygen
0e90c78 - Remove extended vein mining from the atomic disassembler as it is somewhat new and gives more incentive to upgrade to the meka tool and a vein mining unit, and should hopefully make less people complain about the meka tool needing an upgrade instead of having it out of the box
94bb81e - Fix radial menu flickering when pressing shift, control or alt while it is open
682e7d6 - Implement a system that allows for the fission reactor to reset some stats when it has a "successful" meltdown #7031. Also move releasing radiation to happening when the meltdown actually takes place, so that it doesn't potentially happen multiple times, and remove any of the chemicals that were radioactive from the reactor
9401cc1 - Followup to, disable traditional vein mining on the disassembler by default
30a3dc0 - Adjust default balancing of armored jetpack and most of the content in Mekanism: Tools #6536, and make vanilla material variants of paxels have some configuration options available to them. Additionally, make it so paxel recipes properly take the durability of the ingredient components into account
bc74355 - Rework various parts of the MekaSuit renderer:
 - Slightly improve the performance of various parts of the renderer and lower memory impact a little
 - Make the MekaSuit model configuration override equals and hashcode so that the model data can properly cache configuration to quads
 - Only calculate the renderer buffer once per opaque and once per translucent per piece instead of once per model pos
 - Extend support for override system to allow modules to override parts of other modules
 - Make override name handling only replace the first instance of the override tag and first instance of the module name to be able to consistently support declaring which module overrides which module
b0eae97 - Update deps, gradle, and add some links in the readme
c330ab3 - Slightly rework how the digital's miner chunk loading works so that it only loads the chunk the miner is in (center logic block, this means the back of it or the spot it is ejecting to if it is in a different chunk may no longer be fully loaded), and the chunk that the miner is currently mining in instead of all the chunks in the radius
d7e9b43 - Make the ejector component able to handle energy, and make the energy cube eject through it. Also, slightly cleanup calls to EnergyDisplay, and rework how the QE handles auto ejecting:
 - Eject the entire buffer instead of being limited by the chemical or fluid eject rate
 - Try to evenly distribute (except for items) across the different QEs on the frequency instead of just in the order they are ticked. This should help reduce the cases where one QE ends up providing all its energy and the next one that ticks has none to provide; though there are still cases where if a transmitter is set to pull that transmitter may cause other QEs on the same network to get "starved out" depending on the order things tick
a9e8ed2 - Cleanup a bit of handling related to transit requests and eject components, and slightly improve logging when transit requests don't line up
49194c6 - Improve client side "guessing" to fix not being able to place things like water buckets against unformed multiblocks without sneaking
dad3bca - Adjust how the client checks for jetpack controls so that it can be more compatible with mods like Controllable Note: A side effect of this is the jetpack will fire if auto jump activates
613fc2b - Add even more nucleosynthesizing recipes
8e8e182 - Make fission reactors with meltdowns disabled in the config instead have the "meltdown" just disable the reactor until it is at a "safe" damage and temperature
f3d11b5 - Make electric pump use energy immediately instead of delaying it a tick, and bump the default process time for the pump with no upgrades from 10 to 19 ticks so that each speed upgrade actually changes the number of ticks needed #6975. Also provide an info tab in JEI explaining how to get heavy water ( and how to install modules
80b1944 - Improve a variety of things related to Robits:
 - Fix the Robit's treads only updating when the robit moves in the x direction instead of also in the z direction
 - Install some shock absorbers on the Robits and make them only take half damage from falling
 - Improve how the robit sync's its owner's uuid to clients to not require wrapping the uuid to and from a string
 - SLightly tweak the robit's base texture/model and make it match between the item and entity variants
 - Implement a system that allows addons to define custom skins for the Robit (this should make mods like Robit Wraps a lot easier to implement)
 - Added CT support for creating, querying, and setting the robit skin to mirror what is now possible via the API through a mod
72d5a56 - Add missing lang entries for dying by lasers or radiations while trying to "escape" another entity
e949f93 - Make the MekaSuit provide the same amount of base armor as the netherite armor that is used to create it, even though damage is primarily handled still via energy
a494f0a - Up the cost of some combiner recipes due to some mods adding slightly higher tiers of fortune #7012
d276bb9 - Don't include bonus energy required by efficiency modules when calculating energy of vein mining targets #6786
ac88392 - Bump default configs for tanks, nerf corresponding pipes and tubes some #6473. Also buff the dynamic tank (especially for chemicals), and make the values be configurable, though with somewhat limited ranges. Buff the default configs for decay rate and capacity of waste barrels as with current rates people often just left the waste in tubes because of needing thousands of barrels. Note: Before resetting/overwriting configs to new values it is recommended to turn off any fission reactors as with the reduced capacities of tubes your setup may not have enough throughput anymore
33c1195 - Adjust how the inhalation purification unit and gas mask speed up potion effects so that when speeding it up it doesn't make the effect apply extra times. This makes it so that things like wither won't just super rapidly hurt you
bcb55e3 - Slightly bump min search distance a bit further for the transporter pathfinder
5184685 - Fix gui windows not persisting locations when the Gui is closed using the inventory key
6463ce7 - Provide access to the player's inventory in the fission reactor's GUI so that the player can make use of gauge droppers #7205 (Reminder: dumping radioactive substances will radiate the atmosphere)
df69361 - Double chargepad's output rate per entity, add an extra config option relating to it and bump chargepad's base storage capacity #7277
3516390 - Expose some aspects of MekaSuit/Meka-Tool modules to CraftTweaker to make it easier to check what modules an item has installed and whether the module is enabled without having to do a lot of manual NBT processing. Also adjust how we expose getTranslationKey to registry types we expose to CrT.
f8f3cec - Make radiation damage and exhaustion scale with radiation level ( Also fix the radiation overlay rendering weirdly when hovering an item in the player's inventory
8b84a51 - Update deps, bump min forge version to 36.2.17 to allow us to use forge's system to create custom spawn eggs for baby mobs instead of having to handle so much of it manually
db16910 - Bump the base range of the industrial alarm from 16 blocks to 128
f4caaa3 - Don't hardcode max air supply for scuba gear, which fixes some issues with better diving (#5672) as it changes the player's max air supply. Also validate the top block of a wind generator isn't fluid logged to try and prevent #7344 from happening
83fc194 - Add a few more helpers to Attribute
95e7a29 - Make all radioactive tiles except multiblocks have radiation particles when there is a radioactive substance in them, and also make it so that the "longer to break when radiation is stored" mechanic of radioactive waste barrels also applies to all tiles with radiation stored in them
9f6c6da - New and Updated textures and models for some machines and items, and some general texture fixes (#7347)

 - Updated Pressure Disperser block (+ CTM)
 - Updated Plastic blocks (+ CTM)
 - Updated the Glowpanel render
 - Added HDPE Reinforced Elytra (Item, Broken Item, and worn Render)
 - Updated Configuration Card
 - Added Encoded Configuration Card
 - Updated Pigment base
 - Added Stone Generator Machine Upgrade
 - Updated current Machine Upgrades
 - Added Mekatool HUD icon
 - Added Frost Walking Unit
 - Added Elytra Unit
 - Added Laser Dissipation Unit
 - Added Geothermal Generator Unit
 - Added Shearing Unit
 - Updated Fluorite (both Item and Block)
 - Added MekaSuit Elytra Wings
 - Added Pigment Mixer
 - Added Painting Machine
 - Updated Pigment Extractor's back texture (now has an energy port)
 - Added energy port to the bottom of the Wind Generator, Solar Panel, and Advanced Solar Panel
 - Fixed a texture inconsistency between the outer and inner faces of the Laser Amplifier and Laser Beam Tractor . This fixes #7299
 - Updated the port texture to 16x16 for both Laser Amplifier and Laser Beam Tractor, and remapped some of the UV textures of the port sides
 - Fixed the texture bleed of the internal faces of the Laser Amplifier and Laser Beam Tractor
 - Fixed a few issues with the meka suit renderer that got introduced when adding support for modules overriding other modules.
 Also fixed a few issues for main hand left handed players:
 - Fix balloons spawning in the wrong spot
 - Fix mekatool arm overrides checking main hand instead of the corresponding hand it is in
 - Fix flamethrower particles being from the wrong side
d018371 - Run texture optimizer and add rid to the credits
c1cb94d - Specify a color representation for fungi and bio infuse types for bar coloring, and also special case lava bar color in the gauge dropper
86d5a3d - Don't allow the locomotive boosting unit to affect elytra flight
d4dce98 - Clear all configured sides icon (#7348)
2e5903c - Add side config button to clear all set sides
6bc4f45 - Add recipes and sounds for the three pigment machines. Also fix break particle for active pigment mixer and add basic banner related pigment recipes
e844af1 - Update Robit's texture mapping to use less space
1eb6b36 - Make it so the jetpack can work when in creative to make testing things easier
1203224 - Fix player sounds not starting up again after muting master or player volume sliders and then unmuting them #7349
e545003 - Share model references if multiple robit skins get registered with the same custom model
c90f523 - Fix a couple spots the wrong parameter was being passed in additions datagen
4353560 - Update deps and bump min CrT version to and add in support for ct conflict and crafttweaker's recipe dump. Also rework IngredientWithout to use a custom item list so CraftTweaker can do a better guess at a representation of an equivalent representation. Also remove one conflicting pigment mixing recipe
7b8e181 - Fix issues related to tier installers causing side configs to not properly mark everything as updated #7192
999072b - New Crowdin updates (#7331)
a93bbd0 - Add in a workaround for #7224 to prevent vanilla causing ghost item stacks to be created for things like the jetpack
8c15b6f - Few tweaks to Meka-Tool and MekaSuit rendering:
 - Make the MekaSuit render arm components in first person when vanilla would be rendering the normal arm (empty hand, and holding a map)
 - Regen the obj file for the right-hand meka tool model and for the main mekasuit model to take into account various blockbench obj model export fixes and optimizations
 - Add left-hand variant of the meka tool so that it has the proper suit overrides
 - Improve positioning of mekatool when on the ground and improve how it renders in a GUI
3bae53c - Switch the way diversion transporter redstone is configured to just require a right click similar to normal redstone sensitivity changes rather than a sneak right click so that it doesn't intersect transmitter mode changes #7353. Improved ease of diversion transporter configuration by no longer requiring direct access to the face and instead be able to interact with the connection components
3aa9cfe - Fix most of the known issues with #7145, some notable changes are listed below:
 - Make the confirmation dialog window height scale based on how much room the text takes up in the given language
 - Take the close button into account for rendering title text of windows
 - Center some text on side config and transporter config windows
 - Fix new filters not having a back button to filter select for QIO
4294e43 - Fix meka tool extended vein mining limiting range on normal vein mineable blocks like jungle trees and adjust energy usage to better balance out with the changes made due to #6786
8269163 - Fix some modules not being able to be reactivated with the mode change key. Also improve handling slightly for whether handle mode key gets forcibly disabled in cases like grav unit and jetpack
165b59b - Improve texture mapping for robit treads to make custom variants easier and fix the vertical treads using a texture that was off by one. Make the robit skin select screen change textures every half second, and add a few different pride robit skins
a38078f - Fix a variety of issues relating to temperature (#7346)

 - Make use of the biome's temperature in just about every ambient temperature calculation instead of just in the evaporation plant #6702
 - Make the fission reactor's simulate environment method mirror the boiler one as there aren't exactly sides.
 - Fix an issue in `ITileHeatHandler#simulateAdjacent` where it was calculating temperature differential against the environment instead of against the sinks temperature, and also using an incorrect heat capacity. This has the side effect of making thermodynamic conductors "usable"
 - Move the evaporation plant's temp multiplier calculations to after the temperature is actually updated.
 - Improve handling of how the evaporation plant updates the solar locations so as to be able to cache the existing array and other solars when updating a specific one
 - Rewrote the calculation for how the biome's temperature modifier gets taken into account for calculating the biome's ambient temperature. Previously in the Evaporation Plant this had a small range where lower temperatures were considered "hotter". We should discuss if we want to cap it at five like I am currently doing or if we want to bump the range up to ten.
650cd9f - New Crowdin updates (#7351)
f48817d - Fix jetpack particles being in the wrong position in first person while in elytra flight and make it so the tanks on the mekasuit can't be filled without the corresponding modules being installed
37c1f6a - Rewrite how we handle opening containers to ensure we always open the correct instance, this is especially useful for when we are opening containers that are anonymous implementations. Also provide access to armor slots in the following GUIs ( Chemical Tanks, Fluid Tanks, Energy Cubes, Dynamic Tanks, Induction Matrices
c9a0869 - Improve insert check for if an energy item can go in the fill container slot (drain item) so that things that can't have energy removed from them don't go in and can instead be tried against the drain container slot (fill item) when being shift clicked in the GUI
a02f062 - Update deps, and bump min forge version to 36.2.21 to make use of the cleaner way to do first person arm rendering. Also bump min CrT version to
2ea8628 - Add min version requirement of to JEITweaker and switch our JEITweaker integration over to using the newer system provided via JEITweaker
31ef864 - Rerun code formatter
fb7eb04 - Address various IntelliJ inspections
c8f957a - New Crowdin updates (#7362)
58c334b - Fix more issues with the heat system some of which got introduced by #7346:
 - Fix displayed environmental loss for evaporation tower
 - Slightly improve performance of fission port adjacent heat check
 - Fixed calculation of adjacent heat transfer for conductors to make the network reader give correct information for efficiency percentages
 - Lazily initialize starting heat so that placing a heat generator in cold places doesn't cause it to generate a bit of heat while it cools to ambient
 - Revert a bunch of fixes to ITileHeatHandler#simulateAdjacent as they had the side effect of nerfing a variety of things about the heat system a lot which isn't something that should be done this close to a release
 Additionally, fixed a few typos/did some minor cleanup
d91bb11 - Provide access to player for hud elements and strings
311dc12 - Minor cleanup to BlockStateHelper#copyStateData calls
6347a88 - Adjust some TODOs for when they are targeted
491adcc - Display a tooltip for chemicals that are immune to decay in waste barrels, and also display the chemical's registry name if advanced item tooltips are turned on
1ca95ab - Adjust logging levels for a couple cases in the QIO server crafting transfer handler
c58d56b - Minor cleanup to a few display tooltip calls
9c2dd99 - Bump min CraftTweaker version to to fix all known remaining issues with our CraftTweaker integration
aca1eda - Fix change to container opening causing opening the module tweaker to crash on servers
1f9e628 - New Crowdin updates (#7364)
22f753a - Bump version to 10.1.0
a7ef958 - Workaround running clean build not working (should fix jenkins not building)

Additional Files

Type Name Size Uploaded Game Version Downloads Actions
Mekanism-1.16.5- 434.30 KB Dec 22, 2021

Related Projects

Optional Dependency