- Encasing fluid pipes now locks their configuration
- Encased fluid pipes now join textures with adjacent casing blocks
- Fixed windowed pipe not allowing to be encased
- Fixed wrapped models not passing down model data in multi layered situations
- Encased shafts and gearboxes can now join textures with respective casing blocks
- Added back encased shaft items for creative mode
- Fixed encased shafts able to be created with casing and cogs
- Fluid Tanks and Creative Fluid Tanks now form a combined fluid inventory on contraptions
- Added the Portable Fluid Interface
- Fixed tanks placed with nbt not clamping their contained fluids
- Item Storage information on Contraptions no longer get sent to the client
- Combined fluid storage synchronizes to the client and applies new contents to the corresponding mounted TE renderers
- Fixed motion of dripping potion particles from fluid pipe flow indication
- Portable Storage interfaces now interrupt their connection when receiving redstone power
- Added the item drain
- Refactored pulley renderers
- Fixed belt funnel not dropping filters
- Fixed funnel filter slot positioning on upward facing funnels
- Sails can now be sheared
- Fixed the kinetic connectivity of the rotation speed controller
- Valve handles can now by dyed in world
- Seats can now be dyed in world
- Fixed Stockpile Switch emitting redstone power towards its detection target
- Organized Imports
- Fixed server launch issues
- Added the hose pulley
- Added creative tanks
- Fixed sails not getting consumed when placed against each other
- Items can now be inserted onto belts regardless of it moving or not
- Fixed item duplication on stopped belts
- Refactored fluid block rendering in JEI
- Reworked model of the schematic table
- Fixed Mechanical Press animation de-sync between server and client
- The press no longer requires a redstone signal to activate on in-world items
- Fixed spouts and basin trying to create potion buckets
- The Mechanical bearing can no longer generate force from wind
- Added the windmill bearing
- Windmill bearings can be configured to rotate counter-clockwise
- Added Sail Frames and Sails
- Sails can by dyed in-world
- Sails negate fall damage
- Sails attach themselves to blocks and do not require a sticky surface or chassis
- Clockwork bearings can now be configured to switch minute and hour hand aswell as use a 24 hour cycle
- Fixed tunnels with windows occluding block faces directly behind them
- Fixed item model of the mechanical saw
- Arms can no longer feed random junk to a jukebox
- Arms are no longer oblivious to hot-swapped blocks in its target areas
- Arms can now directly extract from and insert to Deployers and Crafters
- Arms can now feed blaze burners
- Fixed brass funnels deleting items inserted into a full or stalled inventory
- Fixed brass funnels in hopper mode not showing amounts on filters when transferring between server-only inventories
- Arms & Deployers can now be paused using a redstone signal; stopping them after their next completed cycle
- Fixed zapper tools not applying changes when the screen is closed using the confirm button
- Reorganized valve handle registration
- Added more preliminary recipes
- 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
- 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
- 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
- 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
- Heated Mixing: Mixing can now require the player to heat the basin (with either the usual fan heaters for a heat level of 1 or the blaze heater for higher heat levels)
- Made mixing brass ingots from copper and zinc ingots require heating (as example)
- added the blaze heater to valid fan heaters
- added TE renderer for fan heater to display a blaze head always facing the player
- added fueling of blaze heater with furnace fuel (onUse event, not with inventory to challenge the automation. To be discussed.)
todo:
- add heat requirement display to JEI
- better item model for blaze heater
- new special fuel for higher heat levels
- fan stoking
- Brass tunnels now visually connect for upcoming splitter functionality
- Added a tileentity behaviour that allows separate filtering for each face
- Added filtering to brass tunnels
- Removed synchronization behaviour of belt tunnels
- Belt tunnels can now be placed on non-reinforced belt segments, and will apply the missing casing automatically
- Bunch more renames
- Small tweaks to the andesite tunnel texture
- Mechanical arms can no longer take from belts covered by a tunnel
- Belt tunnels can now create a window when directly next to a funnel
- Fixed tunnel flaps not being triggered when inserting into a covered belt
- Removed pre-0.3 funnel blocks
- Added andesite variant to reality funnels, without filtering or redstone control
- Added andesite variant to belt tunnels
- Reality Funnel -> Brass Funnel
- Chutes can now transfer items
- Chutes now propagate air flow from attached fans
- Fixed a few issues with mechanical arms
- Removed unused chute models
- Implemented appropriate interactions between funnels and chutes
- Belt funnels now render with animated flaps
- Extracting funnels can now be given a stack size
- Filtering now supports setting the extraction count for empty filter slots (wildcard)
- Depots can now hold on to items similarly to belts
- Item processing such as the press and bulk smelting now targets a Processing TE behaviour, rather than the belt only
- The press and similar processing can no longer commence whenever there is a block with a collision shape between item and machine
- Implemented item processing for Depots
- Items can seamlessly traverse from belts to depots
- Added filtering behaviour and in-world slots to new funnel blocks
- Filtering behaviour now supports slots active on multiple sides
- Funnels no longer wipe their TE when changing state
- Fixed VoxelShape for extended belt funnels
- Added blockstates, models and TE rendering for mechanical pumps
- Removed unused pipe textures
- Removed hasStaticPart in IWrenchable as it became obsolete in 1.15
- Bumped version
- Fixed gearbox pretending to be a deployer
- Fixed reversed rendering in the furnace engine TER
- Motors, fans, flywheels and handcranks now reverse their rotation when facing in negative axisdirections. Addresses #236
- Cart assemblers no longer auto-attach to blocks on their sides (top only)
- Setup automated recipes for stone palette blocks and their stairs/slabs/etc
- Fixed datagen putting air blocks as drops for attached logistical blocks
- Fixed recipes and lang entries using outdated registry names
- Fixed kinetic blocks appearing twice in the main creative tab
- All Items are now using registrate
- Blockzapper now renders an outline around its affected area
- Ported rainbow debug ™️
- Reworked the custom item model/renderer system
- Schematics now preview their structure again
- SuperByteBuffers now support being rendered into non-BufferBuilders
- Fixed all TERs that had their transformations backwards
- Fixed contraptions not rendering tileentities when not near world origin
- Fixed Schematic table crashing on upload
- Made more kinetic blocks non-opaque
- Added builder transform for registering stress config values for kinetic blocks
- Created a blockstate generator for belt blocks
- Added belts to registrate