So this is a true 2.0 release, that out of the sheer number of 2.0.0 releases that have messed with my judgement.
Features:
- GasPerTick Input / Output support.
- Selective redstone update / check.
- The capacity of the Mana Provider can now be modified.
- Use
BlockPos2ValueMap
to optimize memory usage (From StellarCore). - Added
InsolatorRecipeAdapter
. - Upgrade blocks can now use JEI keystrokes.
- Upgrade blocks can now be indexed by JEI.
- FactoryController's
isWorking
method now requires at least recipe to be running properly before returning true. - Make Auto Assembly Trigger Forge Event (#121).
- Structure Preview now expands the menu by default.
- Optimised performance of MEItemBus / MEFluidBus / MEGasBus.
Fixes:
- Fix some side judgement issues caused by async thread.
- Possible fix for potential geo model z-fighting issues.
- Fix MEFluidBus sometime not working.
- Prevent overlapping structures (for
DynamicPattern
). - Fix some memory leak issues.
- Fixed the issue that the emissive part of the model could not be rendered in Optifine Shader environment.
- Fix weird rendering colours for the first material slot in the preview.
- Removed a redundant
getDrops
method, prevent dupes. - Fixed the problem of incorrectly judging space for scrollbars.
InternalChanges:
- Deprecated
HybirdFluid
- Remove usage of GLSM
push/popAttrib
(#116) - Use
ReadWriteLock
to enhance thread safe. ObfuscationReflectionHelper
->ReflectionHelper
.- Reduced version requirements for TE5.
Features:
- MultiThreaded gecko model renderer (up to 90% performance improvement).
- Mekanism - AE2 gas support (requires MekanismEnergistics).
- Add ME Machinery Gas Input/Output Bus.
- ME PatternProvider new type support.
- GeckoLib model bloom effect support (requires GTCEu or Lumenized).
- CraftingBlockMode for MEPatternProvider.
- MEFluidOutputBus now is OneFluidOneSlot (GasOutputBus are not).
- The GeckoLib model of the controller can now be previewed normally in the preview gui (jei or blueprint).
Fixes:
- Fix AE2 hard dependencies (#101, #102).
- Fix incorrect get judgment for ControllerModelGetEvent (#95).
- Fix ConcurrentModificationException and ArrayIndexOutOfBoundsException triggered randomly during runtime.
- Fix the problem that the GUI fluid slot of ME Machinery Fluid Input/Output Bus doesn't work properly under the environment of Vanilla AE2.
- Fix MEPatternProvider would lose ItemStacks with more than 127 stacks when save game.
- Fix an occasional problem with an abnormal number of parallelism.
- Fix the controller is not changing color like the other blocks when using "color" in the machine.json (#103).
Changes:
- Use getPickBlock() in the preview to get the correct ItemStack.
- For some reason we can't use item handler larger than 64 stacks.
- (Exp) Async controller render for geo model.
- (Exp) Use parallelStream to load geo models, may faster to load game.
- Extract static method form IMachineController to MachineController.
- Extend the catch type of the try catch.
BlockController#onNeighborChange
->BlockController#neighborChanged
.
Fixes:
- InputBus now cannot eat PatternProvider's internal items.
- Fix GeckoLib cause crash in AMD display card.
- Fix PatternProvider client crashes.
- Fix client memory leak.
- Fix RequirementIngredientArray ClassCastException.
- Fix machine assembly not working if world time frozen.
- Fix IC2 Recipe Adapter issues.
- Fix OredictCache deadlock.
- Fix MEBus deadlock (#89).
- Fix BlockInfo#apply cause error.
Changes:
- Add ME Machinery Pattern Provider. (#84).
- Automate your machines with patterns.
- Infinity cache.
- Single Inventory: 2 Item Inputs And 1 Fluid Input.
Fixes:
- Fix OpenJ9 preview error.
- Fix Cleanroom compatibility.
- Fix flickering display of items in structure preview.
Internal Changes
- Dynamic Widget code changes.
- Add Empty DummyWorld#initCapabilities method to prevent forge events.
Changes:
- Preview 2D panning (Specially thanks Doogle007 provides algorithm)
- Added warning when VBO is not enabled.
- Allows automatic assembly of machines containing dynamic patterns.
- Optimize the arrangement rule of items in JEI.
- Adjust the addModifier method of MachineUpgradeBuilder.
- Preview's ShowUpgrades button will now be displayed by default.
- Allow to modify controller block bounding box (#78).
- Provided selective slot updates for MEItemBus and MEFluidBus.
- Added partial checks to prevent certain boundary cases from causing product loss issues with recipes.
- Selective redstone signaling update.
Fixes:
- Fixed issue where JEIComponentIngredientArray was not displaying input prompts.
- Fix brackets in NBTJsonSerializer.
Internal:
- Mouse.getDWheel -> Mouse.getEventDWheel.
- More task executor threads.
- Texture update.
- Remove unused textures.
Netty#IntObjectHashMap
->FastUtils#Int2ObjectOpenHashMap
.
Fixes
- Fix catalyst chance not working.
- Fix structure previews causing occasional crashes.
- Fix an issue that would cause a crash when the player had vbo turned off.
- Attempted to fix some syntax issues when serializing NBT to JSON.
Changes
- More CraftTweaker compatibility for Mekanism's IGasStack (e.g. addInput, addOutput, addGasInput, addGasOutput and enhanced addGasInputs, addGasOutputs).
- The subitem chances of RequirementIngredientArray act only on the weights of the outputs, while the inputs play no role.
- Added structure upgrade preview.
- RecipeCheckEvent is now split into START, END phases, so it now fires twice.
- Added
enableDurationMultiplier
option to the configuration file. - BlockArray supports configuring
preview-tag
when parsing JSON. - Limited GregTechCEu hatch compatibility available.
Internal Changes
- Standardized item rendering (unified use of IngredientItemStackRenderer).
- Deprecated RecipePrimer#addCheckHandler and replaced it with RecipePrimer#addPostCheckHandler.
- Deprecated DynamicMachineUpgradeBuilder#addRecipeCheckHandler and replaced it with DynamicMachineUpgradeBuilder#addRecipePostTickHandler.
Large Changes:
- Newly rewritten structure preview gui, and special thanks to KilaBash.
- Added a new prefix attribute for machinery, which will be rendered to the left of the title in the preview screen.
- Performance is dramatically improved (10x the performance of the original preview).
- Supports clicking on a block in the preview to see all the replaceable blocks of the this block.
- Larger preview gui.
- Optimized mouse Drag/scroll wheel operation.
- Note: optifine shaders is unsupported, If shaders are enabled, old-style previews are automatically switch.
Changes:
- TC6 Recipe Adpater Support(RegisteryName:
thaumcraft:infusion_matrix
) - Rewrite and optimize the gas implementation of HybridGasTank.
- Enables catalysts to input multiple materials but only have one effect, like IngredientArray.
- Rewrote the ComponentRequirement.Parallelizable#getMaxParallelism method for all requirements, when the requirement is parallelized unaffected, there must be at least 1 parallel to return the maximum number of parallelism.
- Catalysts are now unaffected by parallelism by default, and their modifiers provide multiplier effects if parallelism is enabled.
Fixes:
- Fix an occasional memory leak.
Internal Changes:
- Completely cleaned up the old preview code.
- Deprecated ModularMachinery#EventBus, which seemed to fail in CleanroomLoader and caused a lot of things to break.
Changes
- Added IC2 Compressor recipe adapter.
- Provides limited compatibility for JEI transfer items.
- Improve TOP messages.
- Reduces the time overhead of the TaskExecutor wait thread.
- Geo model emissive rendering support.
- Add StructurePreviewDisplayList to improve structure preview performance(may cause many problems).
- Adjust the feature of full-data-sync to be configurable.
- Optimize network footprint for other TileEntities.
- Consider using ForkJoinPool in the case of a large number of asynchronous tasks.
Fixes
- Attempted to fix an issue where MagicPrimer#addStarlightInput and MagicPrimer#addStarlightOutput had the same method as gugu-utils causing conflicts.
- Fix an issue where RequirementIngredientArray would have duplicate content.
- Fix ColorableMachineTile#setMachineColor method being non-thread-safe for some components.
- Fix an issue where machine controllers would sometimes crash on the client.
- Fix Impetus crash (#67)
- Tweak TileUpgradeBus to fix occasional CME issues.
Full Changelog: https://github.com/NovaEngineering-Source/ModularMachinery-Community-Edition/compare/1.11.1-r54...1.11.1-r55
Fixes:
- Fix bugs with Machine Controllers in single-controller mode(#63).
- Fix RequirementCatalyst not working in parallelizable recipes.
- Fix RequirementIngredientArray changing from output to input.
Changes:
- Add RequirementIngredientArray JEI output tips.
- Controller's AnimationFactory is no longer reloaded (maybe it caused some animation problems? But now it no longer replays the animation twice.)
Fixes:
- Fix MagicPrimer#addManaInput method conflict with gugu-utils (#60).
- Fix client-side issue that sometimes did not hide controller rendering correctly.
- Fix GeckoLib strong dependency.
- Fix invalid output from IC2 compressor adapter.
- Fix strange BlockState loss issue.
- Fix machinery preview crashing the game when JEI shortcuts are set to mouse buttons.
Changes:
- Rewrote parts of the upgrade system (maybe incompatible with older scripts), now SimpleMachineUpgrade will always be merged and SimpleDynamicMachineUpgrade will now never be merged, and support for depleting item durability (requires item support for durability).
- The controller now triggers a client-side update when starting and ending a recipe to synchronize GeckoLib model animations.
- Add security system (early testing).
- Added random number of inputs and outputs to RequirementItem.
- Added random number of inputs and random number of outputs to RequirementIngredientArray.
- Added IngredientItemStack and rewrote quite a few methods to accommodate special item JEI rendering (maybe there are others?. It's a pain in the ass at the moment).
- Optimize the rendering range of controller Geo models.
- Optimizing the controller's NBT size.
Large changes:
- GeckoLib models / animations support (Wiki still working).
Fixes:
- Fix an issue where BlockArray did not update min max correctly, causing part of the structure check to not work properly.
- Fix an issue with Grid Power and Rainbow input hatches (#57).
- Fix incorrect fluid slot synchronization in MEFluidInputBus.
Changes:
- Use Multiblocked's api to hide the blocks of a machinery component.
Fixes:
- Fix weird RequirementItem modifier implementation(#56).
- Fix RequirementAspect not working (#55).
- Mekanism gas color render fix(#52).
- Fix an issue where factory controllers would not count the number of parallels in core threads.
- Fix RecipeAdapterBuilder not being able to copy vanilla recipes.
- Fix an issue where parallelism for some requirements did not work properly.
- Fix Aspect / Aura JEI crash.
- Fix RequirementMana not working.
Changes:
- Switch to new ZenUtils methods(#54).
- Harmonize additional requirements for RecipeAdapter.
- Consolidate controllers of shared components into one execution queue for execution to avoid runtime issues in asynchrony.
- Destroying a block in a machine structure now causes the controller to immediately check its structure.
- Try to speed up mod loading.
- Try to optimize the speed of factory recipe searching and fix CME errors that happen by chance.
- Improve max speed of auto-input/auto-output for TileItemInputBus and TileItemOutputBus.
- Optimize performance of passive structure checking.
- Improved command information for mm-performance_report.
- Improvements to RecipeModifier.
Large Changes
- Merged all content related to Modular Magic and enhanced/fixed its content.
- The requirements of the following have been parallelized:
Aspect
Aura
Impetus
LifeEssence
Mana
- The textures of the following have been redrawn:
- Life Essence Input / Output Hatch
- Essentia Input / Output Hatch
- Impetus Input / Output Hatch
- The requirements of the following have been parallelized:
- Provide GregTechCEu's Input / Output hatches support (Item, Fluid, Energy(and laser); NOT support async operation, automatically switches to sync operation when enabled).
Features
- Improve documentation for the ComponmentRequirement class.
Fixes
- Fix an issue where MachineUpgrade of the same type could not correctly determine equality.
Full Changelog: https://github.com/NovaEngineering-Source/ModularMachinery-Community-Edition/compare/1.11.1-r49...1.11.1-r50
- Fix OreDict Item and Fluid not working.
Full Changelog: https://github.com/NovaEngineering-Source/ModularMachinery-Community-Edition/compare/1.11.1-r46...1.11.1-r47
Note: This version rewrites the underlying code somewhat, and although it has been tested for compatibility with existing affiliate modules and archives, it is still recommended that you back up your archives before updating!
Large Changes
- Significantly reduces the performance consumption used and tries to optimize the memory usage of scanning recipes floating around.
- Parallel checking now scans all compatible Input/Output Hatches instead of a single Input/Output Hatch.
Features
- New feature: DynamicPattern
- Allows the creation of special structures such as GT-like slices.
- For an example see [assembly_line.json](https://github.com/NovaEngineering-Source/ModularMachinery-Community-Edition/blob/master/src/main/ resources/assets/modularmachinery/default_machinery/assembly_line.json)
- Add EnergyUsage TheOneProbe support (https://github.com/HellFirePvP/ModularMachinery/issues/190).
- Add internal parallelism for machinery.
- Usage:
MachineBuilder#setInternalParallelism(512)
- Another Usage
MachineModifier.setInternalParallelism("machine_registry_name", 512)
- Usage:
- Ingredients previews in JEI can now be clicked to see recipes and usage, close #43.
- Add I18n for recipe tooltips.
- Add ME Machinery Bus security check.
- Add IMachineController#getFacing() ZenGetter.
- Add ignoreOutputCheck, set to true to ignore requirement output checks.
- Usage:
addInput(something).setIgnoreOutputCheck(true)
- Usage:
Changes
- Changed
recipeThread
in FactoryRecipeEvent tofactoryRecipeThread
. - Provided a way to modify parallelism for RecipeCheckEvent.
- When a controller forms a structure, if no mechanical blueprint exists, the blueprint state is not shown in the controller.
- Changed type of RecipeModifier to double to fix precision loss in some cases.
- SimpleDynamicMachineUpgrade now will never be merged in UpgradeBus.
- ComponentSelectorTag is now used as a filter instead of a priority.
Fixes
- Fix MEItemInputBus not extracting items correctly sometimes.
- Fix where only one of the multiple ControllerGUIRenderEvent triggers would take effect.
- When the final working time of a recipe is less than 1tick, automatically calculate the extra parallelism and adjust the working time to 1 tick.
- Fix Energy Input/Output hatch issues when IC2 is installed (https://github.com/HellFirePvP/ModularMachinery/issues/176).
- Fix issue where MEMachineComponent block would always be broken when there was a secure terminal in the ME network.
- Fix FluidPerTick not actually working.
- Fix core threads not being cleaned up properly on reload.
- Fix core threads not being added correctly within a controller.
- Fix TileEntity not updating correctly.
- Fix Minecraft Furnace RecipeAdapter item output issues.
- Fix ME Machinery Bus readCustomNBT() crash.
Full Changelog: https://github.com/NovaEngineering-Source/ModularMachinery-Community-Edition/compare/1.11.1-r44...1.11.1-r45
- Add ME Fluid Input/Output Bus.
- Fix AE2 / JEI Strong dependency.
Full Changelog: https://github.com/KasumiNova/ModularMachinery-Community-Edition/compare/1.11.1-r43...1.11.1-r44