- 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
- 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
- Any living entity can now use seats
- Fix client sync issues with seats
- Fixed contraptions double-reversing roll and pitch values when communicating to the collision engine
- Seats now transfer their passengers to a contraption when moved and back when disassembled
- Attempted further refinements to the collision response of horizontally rotated contraptions
- Set up a hook to inject custom interaction between players and contraption mounted blocks on right-click
- Seats can now by mounted by players while assembled to a contraption
- Minor refactors to the contraption class
- 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
- Arms can no longer insert into powered brass funnels
- Slight ArmInteractionPoint refactor
- Arms can now interact with Millstones, Basins, Jukeboxes, Crushing Wheels and the Mechanical Saw
- Fixed crash when logging into a world with a running mixer
- Arms now start to dance when one of their in or outputs is a running jukebox
- Arms can now be mounted on the ceiling
- Arms now always prefer the interaction points that were selected first
- Fixed belt funnels not updating their blockstate properly when transitioning from other funnel types
- Vertical funnels next to the end of a belt will now stall the belt when unable to collect incoming items
- Minor model & texture touch ups
- Arm no longer cancels player interaction when its empty handed
- Fixed chutes not vertically interacting with andesite funnels
- 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
- Sideways and Vertical belts can now be reinforced with casing
- Belts can now be reinforced with andesite casing
- Reinforcing belts no longer consumes the casing block
- Reworked reinforced belt models
- Fixed flipped diagonal belt casing once again
- Fixed belts breaking instantly when punched in survival mode
- 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
- The arm blockitem can now be used to select inputs & outputs
- Arms now transfer items between inputs and outputs
- Arm support for Belts, Depots and Funnels
- Some safety checks in net code
- Minor refactor to NBTHelper
- Added a funnel block variant that interacts with chutes horizontally (same item)
- Belt and Chute Funnels now have a push/pull property
- Removed Chute Ports
- Tidied up R-Funnel texture sheet
- R-Funnels can now be powered by redstone
- Non-mounted R-Funnels are now full hopper-like blocks rather than fixtures
- 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
- All palette variants now have auto-generated stairs, slabs and walls for certain patterns
- Layered variant types have connected textures again
- Centralized all SpriteShifts
- CT behaviour is no longer tied to blocks implementing interfaces
- Custom models and connected textures can now be assigned in a custom blockbuider
- Ported framed glass to Palette Registrate
- The creative crate is back on the menu
- Schematicannons with creative crates no longer require gunpowder to operate
- Creative crates can now be used for infinite item supply and voiding
- Added a few more advancements
- Fixed sidedness issue with glue effect packets
- Fixed duplication issue with Schematic tables
- Schematics can now include entities
- Schematicannons can now print:
- superglue
- (filled) item frames
- (equipped) armor stands
- end crystals
- boats and minecarts
- paintings
- Special blocks/entities placed by a schematicannon can now specify custom item requirements (used currently for belts & superglue)
- Fixed superglue not being rotated/mirrored correctly
- Minecarts with mounted contraptions can now be picked up as an item
- Furnace Minecarts can now be used in the cart assembler
- Fixed superglue not re-appearing when moved in piston contraptions
- Fixed deployer not being able to interact with non-living entities
- Fixed Schematic deploy tool outline not rendering at the right location for certain boundary sizes
- Fixed leaking GL texture parameters from outline rendering
- Added Italian localization
- Fixed file extension of Japanese localization
- Visual rework to Schematic items and their interface
- Written Schematics can now be re-used in Schematic Tables
- Schematic and Quill selection is now smoother and more precise
- Schematics no longer re-render their preview every time they are re-positioned
- Schematic tools now move, rotate or flip the schematic more smoothly
- Schematic tools now render the new cuboid outlines rather than plain GL lines
- Fixed Schematics not rendering TileEntities in their preview
- Fixed inconsistent shifting when rotating Schematics with an "odd by even" size
- Fixed typo in Mechanical Press tooltip
- Added new selection/outline particles for use in place of bounding box rendering
- Refactored JEI categories
- Slots for chance outputs now have a slighly different appearance in JEI
- Redstone links no longer cause a redstone update when loaded in
- Redstone links no longer mess up windmill bearings on chunk reload
- Fixed redstone links not working properly after movement in a contraption
- Filter output amounts can no longer be increased beyond the stack limit
- Chassis range visualization now uses the new outline particle
- Kinetic networks are now aware of movement, such as NBT-item placement, schematic placement and other means of tileentity movement and will reset/reconnect
- Fixed pistons/bearings/etc not being movable by chassis
- Fixed pistons/bearings/etc moving a clone of themselves when attached to the initial block
- Fixed pistons/bearings/etc stopping or losing their structure when loaded incorrecly
- Pulleys can now be moved while extended, moving attached ropes and their own attached structure with them
- Brittle blocks such as ladders/torches/etc can no longer be moved unless their attached block is moved
- Fixed mechanical pistons messing up their kinetic information when changing into a different extension state.
- Fixed misplaced client code introduced by a ScreenOpener hotfix
- Fixed inconsistent belt initialization when belts are placed by schematics or structures, causing them to break at random
- Clutches and Gearshifts now await their turn to re-attach when changed, allowing multiple to be used in a network and swapped within one tick without causing components to break.
- Fixed flexcrate interface crashing if the block gets removed while open
- Some additions/modifications in texture assets
- Pistons no longer get blocked by their push limit if the blocks pushed are attached to each other
- Added Millstone
- Added Milling recipe type
- Crushing wheels can apply milling recipes
- Added a command for clearing the buffer cache
- Any cog-containing machine can now connect to large cogwheels
- Added French localization by Kiro
- Removed unused lang entries
- Added Zinc and Brass Block
- Added compat for mechanical Saw with BoP's logs
- Fixed Crafters and Mixers not handling container items properly
- Fixed Shafts not dropping when breaking a belt segment with pulley
- Added missing loot table for copper blocks and shingles
- Added Sequenced Gearshifts
- Fixed custom swords breaking blocks when held in creative mode
- Fixed belts cancelling flight when touched
- Fixed Entities being blocked by contraption boundaries when moved on belts
- Fixed Flexpeater going funky when edited while active
- Fixed Links not firing when placed into a powered location
- Fixed crash caused by suicidal deployers
- Fixed blockzapper rendering inconsistencies before a block is selected
- Added the Handheld Worldshaper with 3 brushes and 6 modes
- Entities on belts no longer get blocked by entities they are being ridden by
- Chassis blocks now visualize their range blocks when selected with a wrench
- Fixed Bearings and other actors selecting moved blocks as if they were being pushed in a direction
- Fixed Radial chassis not connecting to each other consistently
- Added Powered Latch and Powered Toggle Latch (Redstone circuits)
- Window-logging now works with modded glass panes, that do not have the tag on their item, but the block only
- Chassis can now be edited in bulk by holding down Ctrl
- Chained block movement no longer marks blocks for movement if they are in front of a block breaker
- Making a chassis sticky no longer uses up slime balls
- Chassis can now be made sticky on all sides if a sticky side is clicked once again
- Fixed linear chassis picking up blocks attached to other chassis' lines, even if not sticky
- Fixed horizontal rotation and mirroring of chassis blocks and their sticky sides
- Structures rotated in a Contraption now try to rotate themselves and their blocks toward the nearest axis-alinged direction when disassembled
- Fans no longer shoot testing rays if the target block shape is completely filled or empty (trivial case)
- Fans can now blow through iron bars again
- Fixed crash when adjusting motors
- Fixed missing icons in blockzapper & schematicannon interface
- Reworked the drill model
- Added more tags to #windowable
- Leather horse armor no longer crushes into iron nuggets
- Pistons, Bearings and Pulleys now have a ScrollInput for selecting when to place moved structures back into the world
- Added copper blocks with oxidation effect
- Pistons and Pulleys no longer move inconsistently when disassembled and assembled at intermediate offsets
- Added a config option to disable the stress/torque mechanic entirely
- Water wheel speed is halved and now configurable
- Water wheels now validate their current speed from time to time
- Fixed windmill bearings counting their sail blocks incorrectly
- Fixed windmill bearings not assembling when placed in a powered block position
- Fixed Contraption controllers not removing their entity reference on the client when disassembled
- Bearings no longer start rotating when no block was found
- Contraptions no longer move unbreakable blocks
- Pistons no longer assemble the whole line of blocks when retracting
- Non-sticky pistons no longer pull blocks back when assembled
- Pulley no longer assembles when the structure by itself is immovable
- Fixed pistons applying reversed motion in some orientations
- Fixed piston contraptions not including the poles into its render bounds
- Fixed Contraptions not culling backfaces when rendered
- Translucent blocks now get moved to the back of the render order in contraptions, fixes hidden block faces between translucent and non-translucent blocks
- Fixed Contraptions being movable through water, fans and other means of applying motion to entities.
- Belt segments can no longer be rotated by a wrench
- Hand cranks are now gated behind brass and sheet production
- Stationary Contraption Entities no longer sync positions like normal entities
- Flimsy attempts at making linear contraption movement smoother, especially at differing tick speeds between server and client
- Added slot covers for the Mechanical Crafter
- Added the Clockwork Bearing
- Added the Rope Pulley
- Server speed no longer tries to sync when game is paused
- Fixed crash when moving block breakers are loaded in while stalled
- Fixed Cuckoo Clock's angle interpolation when tps is low
- Belt observers now have four modes with different useful behaviours #83
- Fixed belt actors not syncing when items are not held in place but replaced
- Upward facing deployers can now act as item displays
- Fixed deployer fake players persisting after disassembling a portable contraption
- Creepers no longer take revenge on Deployers by default
- Saws are now portable and chop trees while mounted
- Portable contraptions can now hold an inventory
- Saw, Drill and Harvester now fill a contraptions internal storage before dropping items
- Mounted blocks can now hold moving contraptions in place
- Saw and Drill now briefly stall contraptions while breaking blocks in front of themselves
- Refactored IHaveMovementBehaviour to IPortableBlock and MovementBehaviour
- Fixed Harvester blades rotating in the wrong direction sometimes
- Shadows on portable contraptions are now a little less aggressive
- Added a block for item exchange with storage on contraptions
- Fixed link range config registering with wrong id
- Added a utility for purposely slowing down animations on the client to match server tps
- Smart Tileentities now lazy tick on initialization
- Fixed crash when breaking active bearings
- Fixed crash when cart assembler fails to assemble a contraption
- Fixed goggles having missing textures
- Reworked Schematicannon Model
- Removed Schematicannon Creatifier from creative tab
- Motor -> Creative Motor
- Removed schematicannon creative crate from creative tab
- Engines now show stats in their tooltip
- Added some missing tooltips
- Furnace Engine now has a configurable capacity
- Created a new config foundation
- Moved all configurable values to the new system
- Worldgen can now be controlled by the config
- Worldgen reloads dynamically when the config file changes
- Tweaked Worldgen parameters and reworked feature registration
- Added Create's stone variants to World gen
- Moved all block partials used only for rendering out of the registry
- Refactored model registry hooks and custom block model handling
- Added a safety layer for all tile entity renderers, addresses #76
- Overstressed indicator no longer shows when the kinetic source changes
- Fixed framed glass rendering glass textures inbetween blocks
- Fixed blockzapper adding itself twice to the item group
- Fixed basing not spawning particles properly
- Updated Forge
- Reworked Schematicannon model
- Item holders are now initialized with suppliers
- Reduced redundancies with defining and registering custom item rendering
- Removed the Gardens module
- Fixed some colors in the existing custom item models
- Added the analog belt pulley, an encased belt with adjustable speed transfer
- Added an analog redstone lever
- Fixed motor values jumping inconsistently
- Stabilized Rotation propagation a little
- Formatted numbers shown when wearing goggles
- Kinetic blocks no longer convey weak redstone power to neighbours
- Removed obsolete overlay text for rainbow debug
- Fixed Deployers not updating placed/removed fluids consistently
- Fixed Crash when entities placed by a deployer drop loot
- Added vertically connected glass blocks for all wood variants
- Added horizontal and vertical connected windows in a neutral style
- Fixed Oxidizing blocks not progressing when next to enclosed blocks
- Kinetic blocks can now be harvested by axes and pickaxes
- Shafts have less obnoxious placement behaviour
- Fixed belts not dropping casings and shafts when broken
- Fixed belt tunnels not synchronizing properly
- Fixed blockzapper rendering strangely when no block is selected
- Funnels can now directly insert items that players activate it with
- Flexpeater -> Adjustable Repeater
- Added the Adjustable Pulse Repeater
- Added config for disabling sand paper tool repairs
- Fixed belts and filtering renderers leaving behind an undesirable GL state
- Fixed pick block not working on vertical extractors/funnels
- Shadow Steel and Refined Radiance are now obtainable
- Removed old Advancement managers
- Removed all unfinished logistical features from the registry
- Added new Crafting ingredients
- Added Sand Paper, for a polishing recipe type and repairing tools
- Changed Blockzapper materials
- Added the ability to include catalyst-ingredients in processing recipes
- Added some ingredient/output count validation for processing recipes
- Deployers now spawn particles when using certain items
- Players can now interact with the deployer to swap held items
- Belts now accept brass casing instead of logistical casing
- Introduced a new material chain
- Added a whole bunch of recipes
- Torque generators no longer show stress impact levels
- Added Filters for matching outputs against a group of items / nested filters
- Added Attribute Filters for matching outputs against a collection of item properties
- Extraction count on Extractors and Transposers can now be adjusted through scrolling on the value box
- Crafters now apply crafting recipes to held items and play an animation
- Connected textures now also apply to the sides
- Fixed inventory manipulating behaviours not initializing in time
- Added a few new sprites for crafting ingredients
- Reworked the Connected Texture system
- Added Limestone Layers to test custom CT spriteshifts
- Migrated existing CT blocks to use the new system
- Crushing wheel controllers no longer crash when in a schematic
- Belt tunnels can now act as backup-friendly belt mergers
- Funnels can now pick up items touching them when not in belt mode
- Fixed taking items from belts with right-click
- Fixed crash when placing redstone links
- Added a TileEntity behaviour Interface
- Added SmartTileEntities, able to execute behaviours via delegation, replacing old Interface-based approaches
- Re-Implemented Filterable tiles/blocks as a TEBehaviour
- Re-Implemented Redstone-Linkable tiles/blocks as a TEBehaviour
- Added a base block for directional logistical attachments
- Belt Funnels are now Funnels
- Funnels can now face any direction
- Added Transposer blocks and Linked Transposer blocks (missing extraction behaviour)
- Unified in-world itemslot rendering used by filters and links
- Re-designed funnel, belt funnel and belt observer to match the extractor
- Started work on improved logistical casings