- Add ME Item Output Bus (Early Test).
- Fix #29, #32, #34.
- More accurate probability display.
- Changed the default color of machinery.
Full Changelog: https://github.com/KasumiNova/ModularMachinery-Community-Edition/compare/1.11.1-r41...1.11.1-r42
- Fix plugin server crash.
- Fix an item copying issue reported by players.
- Fix Storage Drawers problem (#27).
- Add fixed times to consume item (#25)
- Usage (ZenScript)
- setTriggerTime(int tickTime)
- Set a specific trigger time for an input or output.
- setTriggerRepeatable(boolean repeatable)
- Enables the trigger to be triggered repeatedly.
- Forge Bucket and Vanilla Bucket are temporarily unavailable for use in assembly materials.
- Lower the version requirement of TConstruct.
- AdvancedItemChecker and AdvancedItemModifier are now supported by IngredientArray.
- Performance optimization.
New Features: Upgrade System
- This update adds a new blocks to the mod: the Upgrade Bus.
- The Upgrade Bus has up to 18 item slots, allowing for the placement of upgrade enabled machines.
- Also added is the extensive CraftTweaker API to allow authors to create their own custom upgrades.
- Mechanical upgrades can listen to all machine events to allow authors to write upgrades with more complex mechanics.
- Hot reload support.
Bug Fixes
- Fix AssemblyConfig not applied.
- Ignore some invalid IBlockState to avoid the problem of not assembling the machine correctly.
- Provide parallel structure checking for large structures (experimental)
- Optimize performance of per-tick recipe.
- Preview improvements:
- Structure previews in JEI and Blueprints now show an additional column for structure item requirements to resolve preview issues in some large structures in modpack.
- New feature:
- StatedMachineComponentBlock
- This block changes as the state of the machine controller changes
- There are two states:
IDLE
,WORKING
- Register custom blocks via the CraftTweaker API
StatedMachineComponentBuilder.newBuilder("registrationName").build();
- There is also a new example block: Crushing Wheels
- StatedMachineComponentBlock
- CraftTweaker API modification:
RecipePrimer.setSingleThread(boolean singleThread) -> RecipePrimer.setMaxThreads(int maxThread)
- (Important) Rewrite part of MMCE's event system to accommodate both Forge's event system and CraftTweaker's event system.
- The following events have been changed:
RecipePreTickEvent
has been merged intoRecipeTickEvent
FactoryRecipePreTickEvent
has been merged intoFactoryRecipeTickEvent
- The following external methods have been changed for CraftTweaker:
RecipePrimer.addTickHandler()
->RecipePrimer.addPostTickHandler()
RecipePrimer.addFactoryTickHandler()
->RecipePrimer.addFactoryPostTickHandler()
MMEvents.onMachineTick()
->MMEvents.onMachinePostTick()
- New methods:
MMEvents.onMachinePreTick()
- The following events have been changed:
- Optimize the performance overhead of ItemOutputBus (#14 by jchung01).
- Fix the occasional possible runtime jamming issue.
- Fix a certain degree of
selective-tileentity-update
that caused some blocks to not update in time. - Rewrite TileMachineController to optimize performance and fix most of the known bugs.
- ParallelController now has a minimum value of 0 instead of 1.
Features:
- Increase the time interval for the mechanical controller to update the redstone signal (may have side effects).
- Add performance consumption display for controllers (Experimental).
- After some consideration, "Daemon Thread" is more appropriately renamed "Core Thread".
- Significantly optimize the performance overhead of asynchronous task submission.
- Added new recipe adapter.
- TConstruct's Alloy Recipe and Melting Recipe (provides preset temperature checks).
- Melter for NuclearCraft Overhauled.
- All machinery and machine recipes moved to postInit loading to accommodate registration of some special mods.
- Factory Controller now works correctly in World Structure Preview.
Fixes:
- Fix issue where addBlock() method of BlockArrayBuilder was not getting meta values from IItemStack correctly.
- Fix issue where FluidPerTickOutput was not working correctly.
- Fix machine upgrade checks for some special block not working correctly.
- Fix the parallelization of factories not working correctly.
- Fix an issue where the client cannot reload within the server.
Major Experimental updates: Factory System
- The Factory System is an out-of-the-box, highly customizable, modular system
- Default machinery recipes are still available on the Factory.
- "Threading" system
- In contrast to normal machinery, the recipe execution in the Factory System is done by multiple "threads"
- There are multiple threads within a factory system, and these threads work without interfering with each other.
- CraftTweaker API
- Add permanent/semi-permanent recipe modifiers to threads.
- Allows a fixed thread name to be assigned to a recipe, so that it can only be executed by threads with the same name.
- Allows setting a recipe to "Single Thread" mode so that it can only run at most one of this recipe at a time in the factory.
- Multiple recipes may be completed per thread, and threads are automatically reclaimed after a period of inactivity.
- Also, there is a thread variant: daemon "threads", which are always present in the factory and are decorated with a special color in the GUI.
- Allows to set recipes for threads to work with via the CraftTweaker API.
- Allows setting a fixed thread name.
General updates
- (Experimental) mechanical multi-cube recipe modifier
- Just like
modifiers
in the machinery file, but in multiblock form. - Added via ZenScript.
- Just like
- New CraftTweaker API
- 4 new recipe events
- FactoryRecipeStartEvent
- FactoryRecipePreTickEvent
- FactoryRecipeTickEvent
- FactoryRecipeFinishEvent
- 1 new mechanical event
- SmartInterfaceUpdateEvent
- Fix the issue that the item input/output bus sometimes does not display items properly on the client side.
- selective-tileentity-update is now enabled by default.
- Experimental: Hot reload feature (requires ZenUtils, reload triggered by the command /ct reload)
- Support for reloads:
- All machinery registered with JSON and CraftTweaker
- All recipes registered with JSON and CraftTweaker
- All recipe adapters registered with JSON and CraftTweaker
- All event listeners
- JEI display that allows reloading of existing recipe content (Registered recipes only, cannot be added or removed)
- Dynamic reloading of structure previews (Blueprints and JEI)
- Dynamically add new machinery (Can't delete machinery)
- Support for reloads:
- New mod support: Flux Networks
- When compatibility is enabled in the profile (enabled by default), EnergyInputHatch and EnergyOutputHatch are allowed to transfer more than Integer.MAX_VALUE (2147483647) per Tick.
- The One Probe compatibility update
- EnergyInputHatch and EnergyOutputHatch can now display progress bars in the TOP window for more than 2.1G.
- When the controller fails in the middle of running a recipe, the TOP window displays a red progress bar.
- Fix the inaccurate transmission speed of item bus.
- Allows preview of larger mechanics (original MM was 20).
- InputBus can now automatically pull items from surrounding containers.
- OutputBus can now automatically eject items from inside to nearby containers.
- When exporting items, the mechanic will give priority to exporting items to a container near the OutputBus.
- Fixed the issue where the mechanic's Modifier was not working
- Add a new CraftTweaker API: addSyncTask(Action action)
- Since MMCE works asynchronously, using the recipe function could break the world.
- So this method is provided in this release to provide a safe synchronous implementation for authors.
- New RecipeAdapter
- NCO Infuser
- NCO Chemical Reactor
- Performance improvements.
- Optimize large structure checks (Forge Server only).
- Provide formatted text for the display of values in the energy input and output hatches.
- Fix an issue that still checks structures when a blueprint is required for mechanical configuration and there is no blueprint in the controller.
- Fix certain potential problems.
- Fix incorrect modifier for CatalystInput application.
- New Feature: Parallel Recipe Process
- When there is at least one parallel controller in the structure and the configuration options
machine-parallelize-enabled-bydefault
andrecipe-parallelize-enabled-bydefault
are both enabled, the machinery is automatically parallelized. - Most of the parallel controller options can be configured in
modularmachinery.cfg
.
- When there is at least one parallel controller in the structure and the configuration options
- Increase the maximum horizontal length of the item input in the JEI preview to 4.
- Fix catalyst input is not consumed.
- Fix the phenomenon that the controller sometimes turns into a normal controller.
- Fix a small probability that the controller GUI will cause the game to crash.
- Fix #9.