- Encased fans can no longer provide stress capacity as generators
- Removed the Furnace Engine
- Added Kryppers' new Flywheel model
- Fixed inverted stress capacity labels in tooltips
- Removed speed requirements from tooltips
- Fixed belt tickers not properly being removed when parts of the belts are destroyed
- Cats and Wolves will now sit down properly on seats
- Adjusted some vertical offsets for seated passengers
- Driver entities will now wear a hat when their train is given a schedule
- Added the Display Board
- Added the Data Gatherer
- Nixie Tubes no longer animate text from "dynamic" vanilla text components
- Trains now keep travel time statistics for prediction purposes
- Created "Data-target" behaviour for Signs, Display Boards, Lecterns and Nixie Tubes
- Created "Data-source" behaviour for Train Stations, Clocks, Nixie Tubes, Content Observers, Stockpile Switches, Respawn Anchors, Depots, Belts, Belt Tunnels and Command Blocks
- Added a new signal mode for easier junction & platform management
- Fixed crash during trains' tick after a collision
- Fixed Trains trying to avoid their own carriages in navigation
- Fixed Trains trying to avoid their own station in navigation
- Fixed Trains triggering signals behind their targeted station
- Fixed Trains reversing mid-travel when path cost behind them is lower
- Wait time at signals now affects the tick order of Trains
- Trains no longer change destination when they are close to arriving at their initial choice
- Fixed crashed trains no longer keeping signal blocks occupied
- Fixed crash when a trains' path update is unable to find the original destination
- Improved precision of trains arriving at signals/stations
- Added Signals
- Nixie tubes no longer have a base plate
- Nixie tubes can now mount to walls
- Nixie tubes display signal info when mounted to a signal box
- Train speeds are now configurable
- More Jank patrol
- Track debug now on 'H' & 'J'
- Girders can now connect to brackets vertically
- Fixed girders not updating connections when built with placement assist
- Tracks now actively update girder shapes placed beneath the ties
- Fixed bezier girder texture inconsistencies to the block models
- Fixed flywheel rendered tracks creating headless instances
- Fixed track not removing its tileentity properly when changing to basic state
- Fixed track rendering not using the correct normals for diffuse
- Fixed tracks not rendering in schematic previews
- Tracks now transform correctly in schematics
- Fixed tracks not validating for target track after placement via schematic
- Tracks can now merge TE data when placed into each other via schematic
- Fixed junctions not working correctly with graph building
- Added track junctions
- Girder block pillars now connect textures
- Girders now render a panel towards connected solid blocks and chutes
- Shafts can now be encased with girders
- Added placement assist for girders
- Replace AngleHelper.horizontalAngle with horizontalAngleNew (return 0
instead of -90 for vertical directions)
- Fix FluidRenderer not calculating correct UVs for integer positions
- Fix FluidRenderer rendering streams and flowing texture incorrectly
- Slightly improve performance of outlines
- Rename PartialBufferer to CachedBufferer
- Move specific code out of SuperByteBufferCache into CachedBufferer and
BakedModelRenderHelper
- Move Compartment inside SuperByteBufferCache
- Rename some methods and fields
- Refactor custom rendered items; The renderer now creates the model
instead of the other way around
- Only tick wrench cog rotation and linked controller renderer if client
is not paused
- Move all model swapping code from CreateClient to ModelSwapper
- Register client resource reload listener before initial resource
reload
- Use TextureStitchEvent.Post event instead of resource reload listener
for filling sprites of SpriteShiftEntries
- Reuse Random instance in PartialItemModelRenderer
- Make all config fields final
- Merge package foundation.renderState into foundation.render
- Move BreakProgressHook from package foundation to foundation.block
- Rename ResourceReloadHandler to ClientResourceReloadListener
- Rename ProperDirectionalBlock to WrenchableDirectionalBlock
- Clockwork Component -> Precision Mechanism
- Re-organized bell models
- Added a little warm-up timer for held haunted bells
- Tweaks to all Sequenced assembly recipes
- Fixed missing particle of incomplete cogwheels
- Sequenced Assembly mid-products are no longer stackable
- Added new Potato Cannon projectile types and tweaked values of existing types
- Potato projectiles can now catch fire and ignite entities like arrows
- Made splitting potato projectiles more consistent
- Lectern Controller can now be pick-blocked in creative and be placed by Schematicannon
- Fixed Schematicannon treating schematics with a single block in them as empty
- Soul base particles now also disappear early if their location gets lit
- Renamed Cursed Bell to Haunted Bell
- Added proper rendering, tooltips, sounds, and particle effects to the bells
- Added a crafting recipe for the Peculiar Bell
- Added a conversion method for obtaining Cursed Bells
- Fixed the soul indicators showing up in non-full blocks
- Diving helmets now display a timer near the hotbar when underwater
- Copper backtanks now play an effect when accumulated air is maxed
- Copper backtank blocks can now be waterlogged
- Copper backtank cogs now animate
- Fixed subtitle of equip sounds
- InstanceKey is no more.
- InstanceData and co. keep track of removals and updates.
- InstancedModel's buffer management is much more sane now.
- Re-add mixin to #tickBlockEntities and ensure compat with Performant.
- Move ...backend.instancing.impl to backend.core
- Swich to tabs. (not everything is tabs yet)
- Refactor light and color attributes to their own Enum.
- Quaternion/pivot/position attribute shader.
- Always update an instance when the WorldRenderer checks if it should rerender a block.
- Simplify some names.
- Remove generics in InstanceData classes.
- Deployer Tiles now use the oriented material.
- Press heads now correctly orient themselves.
- ModelData buffers things faster and is simpler.