- 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
- Train navigation now tries to pick destinations and directions avoiding other trains and stations on the way
- Trains now slow to a secondary top speed when approaching a turn
- Attempts to fix trains not always showing up when entering a clients tracking distance
- Substantial increase to carriage contraption's client tracking range
- Fixed Carriage Contraptions starting to render before fully aligned to their position/angle
- Fixed trains remaining stuck to far away signals after being controlled manually for a bit
- Fixed crash when placing tracks into a replaceable block
- Fixed a handful of dist issues for dedicated servers
- Fixed controls allowing control even when a train is not fully assembled yet
- Controls now disengage on relog/esc
- Trains now get saved to disk
- Trains now sync raw position data to clients while in the derailed state
- Trains can no longer be relocated into another train
- Train relocation now shows indicators
- Fixed single-bogey carriages not sending enough position context when derailed
- Manual Train Controls now use network packets
- Carriages now properly re-introduce their passengers when entering ticking chunks
- Fixed approach station prompt no longer appearing
- Fixed players shunted to 0,0 when seated while train assembles
- Fixed relocator not using client-side graph when testing validity
- Fixed entity data not synched properly from dedicated servers
- Fixed controls storing state in behaviour class
- Fixed carriages not serialising conductor seat data correctly
- Fixed client-side trains not animating their wheels properly
- Client-side stations now receive information about a trains' orientation and whether it can be disassembled
- Server-safe train relocation
- Fixed client trains not catching up with received location when graph id changes
- Coupling renderer now entirely client-side
- Fixed Coupling render artefacts whenever a carriage drives out of the view frustum
- Fixed train information interpolated too quickly when a train has multiple carriage entities
- Movement of client-side trains is now controlled via network packets (Manual controls and Relocation not yet adjusted for sidedness)
- Modified train settings now get broadcasted to other players
- Cleaned up redundant delegation between classes involved in controlling the carriages
- Fixed edge points getting wiped near where two graphs just merged
- Fixed edge points not migrating to modified edges properly
- Graph edge points are now synched by netcode (signals, stations)
- Fixed incorrect stopping position when approaching station manually while the train is still moving backwards
- Fixed single-group edges not being deserialised correctly
- Edge data is now synched by netcode
- Signal edge groups are now synched by netcode
- Signal block indication can now get necessary information client-side
- Refactored Stations and Signals into a more unified and expandable edge point abstraction
- Trains no longer depart a station when a red signal is close by
- Fixed inconsistent pathfinding when stations, signals and trains are sharing a graph edge
- Update Flywheel and add support for unshaded quads
- Fix models marking shafts and other parts as unshaded
- Refactor SchematicRenderer buffer building
- Improve block entity render bounding box caching
- Fix#2785
- 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'
- Fix sequenced assembly scene in newer JEI versions; Fix#2779
- Fix inconsistent JEI fan scenes; Fix#2748
- Fix glowing RenderTypes not respecting lightmap values
- Add ForcedDiffuseState to push/pop forced diffuse calculators
- Transform the SBB instead of the global PoseStack when applying ponder
transforms
- Tweak used shaders in RenderTypes
- Rename LerpedFloat.Interpolater to Interpolator
- Update Flywheel
- Improvements to graph building
- Fixed a number of issues caused by junctions and inconsistent track propagation
- Trains no longer disassemble with reversed carriage spacing
- Trains can no longer jump to perpendicular tracks on an intersection
- 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
- Fix ponder diffuse when using shaders
- Partially fix incorrect diffuse formula being used in the nether
- Invalidate schematic renderers at the appropriate time
- 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
- Reverse steering is no longer inverted
- Fixed previous passengers not being removed from seat when player uses it
- Trains with two mounted controls/conductors can now pathfind backwards out of a station
- Fixed auto-approach not working properly while reversing or controlling a dual powered train the opposite direction
- Fixed icon display order and disassembly location of reversed trains in a station
- Fixed inaccurate train length()
- Blaze burners can now drive a train
- Non player train drivers are now required to sit in front of a controls block
- Schedule now interrupts when no conductors are found
- Fixed reversing trains not iterating carriages in the correct direction
- address some bezier track z fighting
- portable storage interfaces now stay connected until a contraption departs
- seats can now collect entities when collided with on a contraption
- clicking on seats now tries to mount any leashed mobs first
- fixed seated entities not staying on seats on disassembly. this probably also fixed issues with sub-contraptions (oops)
- fixed portable storage interface not working on train contraptions
- Trains can now travel backwards through the graph
- Controls are now a requirement for assembly
- Double-endedness now depends on two opposite controls blocks anywhere on the train
- Players can now manually control trains via a mounted controls block
- Trains no longer disappear when a new train is created
- Trains now crash into other trains
- Fixed navigation complaining when schedule starts at current station
- Fixed contraption interaction not iterating all potential colliders
- Hovering tooltip for derailed trains
- Trains can now be relocated using a wrench
- added "/create dumpRailways" command
- trains now react to changes of the graph beneath them
- trains now notify owner of unexpected issues
- filtered navigation wildcard works now
- navigation now smarter I guess
- navigation cancelled when track path gets disconnected
- stations and trains no longer disassociate when graph is edited
- schedule no longer skips entry when navigation gets interrupted
- trains can now be in a "de-railed" state
- Cannot send train off while still in assembly mode
- Missing shafts in bogey render
- Moving to Lang keys
- Fix diagonal bends using weird constraints
- Cannot assemble tracks and stations on contraptions
- Track placement now helpful with 45° slope tracks
- Stations on Diagonal tracks can now be navigated to
- Stations no longer crash when target track missing
- Reduced Trackpropagator network traffic
- Stations now migrate to newly created trackgraphs/edges when network changes
- Stations now distribute properly to trackgraph segments that got split apart
- Client thread no longer creates stations
- Bump forge
- Mechanical Harvester no longer crashes the game on newer forge versions
- Fixed Cocoa Beans being harvested too early
- Fixed incompatibility with Abnormals' custom tree types
- Fixed incompatibility with Serene Seasons
- Fixed incompatibility with Terralith
- Added a couple of Raw Ore compatibility recipes