- Refactored JEI plugin to use a builder for categories
- The mixer can now process vanilla potion recipes
- JEI support for fluid potion mixing
- Refined some categories to not show obsolete information
- Compacting and automatic vanilla packing are now in separate tabs
- Fluids can now be manually picked up from a basin
- Basins and Spouts can now extract from and fill vanilla potion items
- Improved the filtering for fluid tests, such as the basin recipe and smart pipes
- Fixed CombinedTankWrapper losing nbt data of transferred fluidstacks
Fixed an error in my previous commit.
Introduced basic Tooltips for fluid items.
I've left the smart pipe entries as placeholder as I've not tried them out yet.
- Fluids in JEI now display the exact amount required
- Fixed short background of custom compacting JEI
- Fixed localization of sawing recipe category
- Fixed blocks waterlogged by a pump not scheduling a fluid update
- Fixed concurrency / race condition issues with contraptions loading in during a collision cycle
- Reworked implementation model of minecart tracking and couplings
- Coupling items now get consumed when used in survival mode
- Added some player feedback when couplings cannot be created
- Fixed couplings disappearing on the client due to sync issues
- Wrenches can now remove minecarts in one hit
- Wrenches can now be used to remove couplings from minecarts
- Cart assemblers now attach themselves to the block above, no longer requiring active "sticky-ness" of the contraption towards it
- Minecarts can no longer be moved while a contraption is stalling them
- Fixed players flailing their limbs around while standing still on a moving contraption
- Attempted to reduce drag of remote player positions while on a contraption
- Contraptions no longer log out with the player riding them
- Attribute filters are now made of brass
- Added the ability to disable auto-compat with vanilla recipe types in the configs
- Added a recipe type for custom basin/press compacting
- Basins can now process items and liquids in recipes
- Input items/fluids of a basin can now be extracted or reused in further processing
- A basin diagonally below another basin with collect outputs of recipes processed in the top basin for ease of automation
- (Temporary debug recipes)
- Visual rework of all active UIs
- Fixed large scale renderers such as belts, cannons, pulleys to disappear when partially out of frame
- Schematic and Quill now has the ability to convert a selection to a readied schematic instantly
- Moved option input of cart assemblers to side faces
- Fixed crash when attempting to smelt items on belts/depots
- Stockpile switches can now be inverted
- Fixed stockpile switches not dynamically updating gui indicators frequently enough
- Tanks can no longer be directly interacted with in survival mode
- Sequenced gearshifts now emit a comparator signal based on their current instruction index
- The Piston instruction for sequencers can now accept distances up to 128m
- Fixed some rendering inconsistencies with symmetry mirrors
- Reworked symmetry mirror models to match the tool better
- Attribute filters can now add inverted conditions to the list
- Added the attribute "can be crushed"
- Made the schematicannon interface a little less confusing
- Fixed launched items of the schematicannon rendering warped
- Added a straight pipe variant to cut flows using rotational input
- Added a slower more precise variant of the hand crank
- Basins now render their contained fluids
- Belt observer -> Content observer
- Content observers can now monitor any inventory and funnel transactions
- Stockpile switches no longer only access slots exposed to a specific side of an inventory
- Stockpile switches can now take a filter
- Brass tunnels once again have the ability to synchronize inputs among a chain
- Mechanical arms now have a range limitation
- Mechanical arms now wait with initialization until their area is fully loaded
- Chutes no longer ignore the direction of an attached fans air flow
- Chutes now render particles indicating their movement direction
- Chutes can now pull items up from belts or off the ground
- Fixed item model of shadow casing
- Fixed invisible quads under funnels when no casing is applied to the belt
- Belt mounted funnels can now be perpendicular to the belt theyre on
- Funnels can now transpose items like a hopper when facing down
- Item distribution across belts using brass tunnels can now be configured with a wrench
- Added new icons for the distribution options of arms and tunnels
- Removed obsolete code
- Fixed some weirdness with creative crates and funnels
- Reworked tileentity behaviours for inventory interaction
- Deployers no longer actively pull items from other inventories
- Some more work on basins
- Added a new inventory type wrapping an itemstack handler that automatically syncs the tile entity. It also implements IInventory for recipe shenanigans
- Held items of a deployer can now only be extracted by other blocks if it does not match the filter
- Fixed excess items not able to be extracted from deployers
- Removed some things
- Funnels no longer actively transpose items between chutes and inventories unless they are vertical
- Chutes can now active pull and insert items from/to inventories above/below them
- Fixed upright items rendering inconsistently between belt and depot
- Fixed various timing and sync issues with the spout
- Added a recipe type for spout filling
- Fixed more co-modification on belts
- Item and fluid nbt tags in recipes are now data-generated as json objects rather than strings
- Transported item processing can now leave items behind
- Transported item processing now has more meaningful result data
- Tweaked spout animation
- Fixed cullfaces on spout model
- Expanded the RecipeProvider infrastructure
- Migrated mechanical crafting recipes to generated
- Migrated cooking recipes to generated
- Fixed missing particles on vertical motor model
- Adjusted a few recipes
- Reworked and cleaned up Create's ProcessingRecipes
- Prepared ProcessingRecipes for fluid ingredients and outputs
- Added datagen infrastructure to ProcessingRecipes
- Migrated all hand-written ProcessingRecipes to generated
- Removed scrollinput on mixers
- Fixed recipe lookup cache not invalidating on datapack reload
- Removed "catalyst" ingredients
- Reduced ambient dripping particles of fluid pipes
- Fixed reversed uvs on encased fans
- Fixed tile entities not being added to contraptions client-side
- Added encased and non-opaque versions of the fluid pipe.
- Added new generic te behaviour across pipe blocks for their rims/attachment models
- Pipes and pumps now render a little drain cap when connected to a fluid inventory
- Implemented reworked chute models by Kryppers
- Implemented new basin model by Kryppers
- Chutes now have proper selection bounds
- Some minor texture & model touch-ups
- Fixed symmetry wand position in its GUI
- Fixed some inconsistencies with a tanks' fluidhandler invalidation when resized
- Patched crashes in present fluid handling of the basin
- Tanks now slightly shade horizontal faces of the contained liquid
- Tanks no longer resend data every tick when filled gradually
- Introduced a new lerped value type with better design decisions
- Refactored Smart tileentity serialization to better support custom overrides in contained behaviours
- Pumps propagate flows in the pipe networks in front and behind itself.
- Pumps collect all possible in and outputs across the reachable pipe graph as endpoints
- Flows move across multiple branches of a pipe network when both are equally viable
- Open-ended pipes are treated as endpoints and leak fluid into and out of a block space
- Open endpoints serialize stateful information about fluid units gathered and held at the interface
- Open endpoints turn a fluid block into 1000 fluid units and back
- Open endpoints undo their transaction when their flow changes from pull to push
- Open endpoints cannot pull fluids back when a full liquid block was not placed yet
- Open endpoints waterlog blocks when the provided fluid is water
- A collision response is triggered when different types of fluids meet at open endpoints
- Fluids are transferred instantly by the throughput of a completed flow per tick
- Pumps cut flows when vital pipes are removed
- Pumps do not lose progress of finished flows when an unrelated part of the pipe network changes
- Pumps do not lose progress of finished flows when reversed
- Pumps distribute their throughput across available input flows evenly
- Pumps distribute gathered input fluid across outputs evenly
- Pumps expose furthest reachable pipefaces to other pumps for chained transfer
- Chained pumps with fully overlapping flow sections provide their endpoints at the entrance of the other pump
- Chained pumps with overlapping flow sections participate in two shared endpoints, one for each pump dominating the contested region
- Chained pumps with overlapping flow only transfer via the optimal of the two possible endpoints based on their speeds
- Chained pumps of equal speed pick one of the two available endpoints deterministically
- Pumps transfer without flows when no pipe is between the pump and the endpoint
- Pumps serialize and recover stateful information about held fluid units at open endpoints
- Chained pumps do not actively transfer when both are partaking with push flows (or both pulling)
- A pull flow originating from an inter-pump endpoint only commences when the corresponding push flow is completed
- Chained pumps re-determine the optimal flow when the speed of one is changed at runtime
- Throughput of chained pumps is determined by their weakest link in terms of speed
- Endpoints created for chained pumps is treated equally to other available endpoints when fluid is distributed
- Pipes do not contain a physical amount of fluid.
- Pipes never hold serialized vital stateful information about fluid transfer.
- Pipes synchronize local flow progress and fluid type to clients
- Flows in a pipe progress with the speed of the network flow
- A networks flow speed depends on the speed of the aggregated pump
- Pipe flows of different flow graphs of different pumps interact with each other
- A collision response is triggered when two different types of fluid meet within a pipe
- Pipes spawn particles to illustrate contained flows/liquids of flows
- The fluid transfer role is exposed through a TE behaviour with some callbacks and properties
- Open endpoints show particles when interacting with in-world fluids