- Schedules now display stops in their tooltip
- Schedules can now be given a name through one of their instructions
- Fixed Display boards rendering cogs on the wrong axis
- 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
- Updated bogey assets
- Schedules are now consumed and returned when added/removed from Trains
- Added a schedule retrieval option to the Stations' UI
- Schedule items now keep track of their 'progress', which can be modified to skip stations
- Fixed crash when displaying station summary on a tiny display
- Fixed display boards breaking each other when blocks are added after providing rotational force
- Added placement assist for Display Boards
- Stations can now be given a Schedule via funnels/hoppers, which will apply a copy to its train
- 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
- Fix ColorAttribute not showing color name
- Refactor some code related to SpeedLevel
- Improve goggles predicate API
- Make ToolboxInventory use Item#canFitInsideContainerItems
- Prevent toolbox items from being placed inside of shulker boxes
- Fix shadow steel always converting below y=0 instead of the min build
height
- Conductor entities now rotate to face their carts' motion
- Fixed Contraption passengers not visible to clients whenever the seat position offsets them out of ticking chunks just after loading in
- Fix glowing shader for 1.18.2
- Optimize and compress tag code
- Convert MovementBehaviour to interface
- Remove manual refmap remapping as it is no longer necessary
- Update Gradle
- Fixed Create's JEI plugin not reloading recipes properly
- Reverted an AT that seems to cause issues with compiling in IDEs
- Fixed Contraption disassembly causing inventory contents to be rolled back
- Fixed Crushing Wheels not working correctly
- Items idling on top of Crushing Wheels are no longer prevented from being picked up by players
- Fixed automated compatibility picking up custom recipes from the mod "occultism"
- Fixed Trains ignoring their signal when nearby graph nodes are changed
- Fixed Trains not being notified of new signal blocks if they share an edge with the added/removed signal
- Fixed Navigation reserving chained signal blocks before verifying that it can be fully traversed
- Fixed Track placement requiring much shallower slopes for diagonal tracks
- Fixed long range navigation choosing detours near the beginning
- Temporarily patched and highlighted a problem with track traversal and long distances
- 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
- Optimize CreateJEI recipe list construction
- Optimize PotionMixingRecipes
- Add basic modded brewing recipe compatibility
- Fix dyed sails not being placed when printing schematics
- Fix sideways belts not being placed correctly when printing schematics
- Fix MechanicalCraftingCategory not applying the model matrix
- Add Upgrade Aquatic compatible fertilizer recipes; Resolve#658
- Replace almost all reflection with access transformers or accessor
mixins
- Remove duplicate sails tag
- Improve metal compatibility
- Switch to a linked set in StringSerializableTrigger to prevent
inconsistent generation of aesthetics.json
- Other minor changes
- 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
- Add new config and tags for better control over infinite draining
behaviour
- Pipes spilling water will now extinguish entities and fires; pipes
spilling lava will now set entities on fire
- Fix some bugs and inconvenient behavior with the config menus
- Fix fluids destroying crushing wheel controllers
- Fix crushing wheel controller using output direction instead of input
direction at times
- Rename blaze burner fuel tags
- Improve GhostBlockRenderer
- Organize imports
- Update Forge
- 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
- Removed nbt side-effects of the fan processing recipe check for ground items
- Fixes intersecting fan streams making passing ground items unable to be processed
- 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
- `#create:blaze_burner_regular_fuel`: these items are treated like coal
by the blaze burner if they cannot be used as fuel in a furnace
- `#create:blaze_burner_special_fuel`: these items cause the blaze
burner to become superheated
- Fix equipable item attribute
- Fix SandPaperItem overriding both getItemEnchantability and
getEnchantmentValue
- 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
- Copied over the condition functions from ProcessingRecipeBuilder
- Added recipeConditions variable
- Copied over json section for dealing with conditions from ProcessingRecipeBuilder
- 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
CopperBlockSet has many useful functionalities that addons could use for their own metals that also oxidize. It'd be nicer and more intuitive for anyone going through our github, however, if they could be in their own separate directory.
- Fix lit soul blaze burner providing smoking instead of haunting
- Fix horses displaying soul particles even when not being haunted
- Add hauntable item attribute
- Re-add right clicking lit blaze burner with shovel to extinguish it
- Move most fan type functionality to abstract methods in the enum
constant
- Rework FurnaceEngineModifiers
- Fixed Client-side TileEntities ignoring data packets with empty compound tags
- Fixed Stickers not visually updating when powered
- Fixed Cocoa pods colliding with piston/pulley/gantry harvesters
- Fixed Bulk Smoking using Haunting particles
- Unified particle emission locations between depot and belt fan processing
- Updated Haunting recipes
- Fixed Brass funnels with configured amounts inserting partial stacks when target inventory is almost full #2589
- Fixed toolbox not marking a chunk for saving when contents change #2574
- Fixed Contraptions no longer sending disassembly packets and thus dropping players through blocks #2538
- Wrap ConnectedTextureBehaviour and AllSpriteShifts instances in
Suppliers where necessary
- Use client connection's instead of level's RecipeManager when finding
recipes for JEI
- Add missing override annotations in SymmetryEffectPacket
- Organize imports
Adds the abillity to register any block as a power source to the furnace engine. This will allow for more flexability and remove the need to implement AbstractFurnaceBlock and AbstractFurnaceBlockEntity.
- Fixed Harvesters hard-colliding with leaves when used with pistons, pulleys or a gantry carriage
- Fixed kinetic tiles not marking chunks for saving when speed or stress changes
- Dedicated Servers no longer create a resourcepack folder
- VAO state is now handled by GlVertexArray objects
- IndexedModel no longer inherits from VBOModel
- BufferedModel doesn't need #clearState
- Likely fixes crash on intel drivers
- Sort of get the batching engine working for contraptions but this feels wrong
- TaskEngine gets passed in methods
- Better naming for TaskEngines
- Do BufferSource ourselves
- Change BufferBuilderMixin to allow for injection into BufferBuilder objects
- true to false for Pepper
- IBufferedModel -> BufferedModel
- VertexFormat -> BufferLayout
- Use ImmutableList in BufferLayout
- LayoutItem naming consistency
- Try to reduce usage of raw BufferLayouts
- Move vertex interfaces to api package
- #createWriter and #createReader in VertexType
- Some documentation
- Fix bracket contraption rotation; Fix#1856
- Make sure KineticTileEntityRenderer only renders once
- Make use of new ModelUtil method in BakedModelRenderHelper
- Clear up BracketedKineticBlockModel and PipeAttachmentModel logic
- Replace ISimpleReloadListener usage with ResourceManagerReloadListener
- Pulleys are now able to extend below Y=0
- Super Glue can now be placed above Y=256, all the way up to the new world height limit of 320
- Fixes#2421, fixes#2426, fixes#2427
- Clean up SyncedTileEntity and SmartTileEntity
- Allow schematicannons to be rotated based on placement angle
- Fix DirectionalExtenderScrollOptionSlot rotation
- Remove deprecated usage of JsonReader and LazyLoadedValue
- Move ToolSelectionScreen to content.schematics.client
- Organize imports
- Update to 1.18.1
- Move most user facing interfaces to flywheel.api package
- Refactor InstanceData to have no package private classes
- Remove 'I' prefix from many interfaces
- ILightUpdateListener -> LightListener
- IMultiProgram -> ContextAwareProgram
- IFlatLight -> FlatLit
- All materials use the same vertex format: UNLIT_MODEL
- An Engine is a MaterialManager and a RenderDispatcher
- Refactor InstanceManager's ctor to use the MaterialManager interface instead of the concrete type
- MaterialManagerImpl -> InstancingEngine
- Add skeleton for BatchingEngine
- Hack in InstanceWorld to switch between the 2
- Rename/move existing MaterialManager impl to new package
- Port to 1.18
- ChunkUtil discontinued
- SmartTileEntities write to metadata
- Features generate from -64 up
- World Wrappers weren't convoluted enough
- Haunted bell considers >0 safe
- Missing GuiUtils methods continued in RemovedGuiUtils
- Double chests no longer split when moved on a contraption
- Changed the way contraption storage interacts with known multi-block item storage (band-aid solution)
- Changed a few blocks' sound types
- Fixed in-world icons not rendering
- Added Ponder Scenes for the Item Vault
- Added crafting recipe for Item Vaults
- Changed crafting recipe for Fluid Tanks
- Fixed ponder tracking items in inactive inventory screens
- Removed unreachable Advancements
- Fixed TileEntities in Ponder not receiving blockstate changes
- Fixed Ponder selection rendering offset
- Re-introduced the depth-sorting hack for PonderUI
- Editing mode is now a Config Option
- Fixed Non-Container Screens no longer closing on "E"
- Added tooltip for Experience Nuggets
- Fixed Schematic Prompt no longer starting auto-focused on the text field
- Pulse Extenders now actually extend the pulse, rather than emitting for a fixed time
- Updated Ponder Scenes for the repeaters
- Picking encased kinetic blocks no longer returns a creative-only item
- Added a Ponder Scene with encased cogwheels
- Implemented change of top & bottom texture for copper roof blocks
- Mechanical Belts no longer have a Stress Impact
- Stairs and Slabs variants of blocks no longer use plural in their name
- "Polished" stone type variant now uses the prefix Polished Cut
- "Bricks" stone type variant now uses the prefix Cut
- Added more recipes for stone types and copper blocks for convenience
- Reverted re-texture of crushed copper ore
- Added waxed copper recipes for deploying
- Match Create's copper block variants with vanilla's copper block
variants
- Add CopperBlockSet and CopperRegistries
- Remove copper plating block and OxidizableBlock
- Add remaps for copper ore and copper block and organize RemapHelper
- Fix belt funnel model names
- Bump required Forge version to 37.1.0
- Organize imports
- Added crushing recipes for raw ore blocks
- Layered mineral deposits are slightly more likely to spawn
- Zinc ore is slightly less likely to spawn
- Added layered deposits with Scorchia
- Fixed tuff pillars texture size
- Modified recipe for the Wand of Symmetry
- Added the Experience Nugget
- Item Vaults are now Immune to regular explosion damage
- Encased Shafts and Cogwheels no longer appear on creative tabs
- Fixed gantry carriage model uvs
- Fixed Palette blocks & Item Vault not easily mineable using a pickaxe
- Fixed ponder crash when a non-ticking tile is shown
- Fixed cube particle interpolation and quads
- Fixed sawblades rendering with wrong rotations
- Items shown on JEI's Washing tab are now centred
- Introduced a new set of Ore Processing recipes
- Moved Portable Storage Interface to andesite tier
- Removed the Adjustable Crate
- Creative Crates can no longer span multiple blocks
- "Chromatic" items no longer appear on creative tabs
- Ejectors now emit comparator signals relative to their max accepted stack size
- Fixed combined slots in the toolbox menu not acting correctly
- Fixed background of the advancement tab
- Removed Gabbro, Dolomite, Weathered Limestone
- Added Crimsite, Asurine, Veridium, Ochrum
- Added and Removed palette blocks for Andesite, Diorite, Granite, Tuff, Deepslate, Dripstone, Calcite, Limestone, Scoria and Dark Scoria
- Custom stone types now generate as layers instead of ores
(Work in Progress)
- Fix rotation indicator particles
- Fix sail dyeing
- Turn BreakProgressHook into DestroyProgressRenderingHandler interface
- Refactor overlay rendering to properly use API
- Change SpriteShiftEntry to use StitchedSprites
- Use OnDatapackSyncEvent instead of mixin
- Organize foundation.ponder package
- Remove usage of deprecated:
- Durability bar methods
- Constants class
- Fixed fluid networks losing fluids when extracted amount is lower than a pumps transfer speed
- Fixed JEI plugin claiming that some occultism's ritual recipes work in a compacter
- Fixed press/deployer/spout failing to process a belt item when another item is processed simultaneously further down the belt
- Add ToolBoxInstance
- Move from MatrixTransformStack to TransformStack.cast where possible
- SuperByteBuffer implements transform traits on its own
- Bump flywheel build
- Better visibility for low/half amounts of fluids in basins
- Fixed Mechanical Press head getting stuck in extended position when off-screened or when its basin changes
- Added processingTime support to mixing recipes (defaults to 100)
- Fixed Basin recipes with fluid output not starting when targeted output inventory supports items only
- Fixed item extraction from create creating stacks of unstackable items when source inventory allows stacking them (Storage Drawers)
- Fixed Deployers not having a valid item capability when asked before their first tick
- Fixed Mechanical Crafting recipes able to be automated via packing
- Add CustomUseEffectsItem interface implemented on items to control use
effects behavior
- Replace SandPaperEffectsHandler and SandPaperSoundMixin
- Fix broken polishing particles when no items in other hand (polishing
last item)
- Fixed Chutes spilling items when inserting into disconnected storage interfaces
- Blaze Burners can now be picked up using the Wrench
- Additional safety checks from random crash reports
- Fixed piston/pulleys moving before their attached entity is loaded
- Recipes with an id suffixed "_manual_only" are now ignored in auto-shaped, auto-shapeless and auto-cutting processing features
- Fixed pipes spawning particles at connections between chunks
- Fixed pipes not initialising target fluid holders properly when the source is loaded in first
- Fixed encased fluid pipes not updating flows when neighbouring blocks change
- Fixed fluid pipes not updating flows when adjacent block changes from fluid to block
- Fixed Crafters voiding any inserted items after being moved on a contraption
- Fixed Crafters crashing the game after being placed by a Schematicannon
- A couple of two-ingredient recipes have been made shapeless
- Improved piston/pulley contraption collision with blocks in the world
- Fixed pistons/pulley contraptions merging into world blocks when disassembling shortly after loaded in
- Added jei support for toolbox colouring recipes
- Disabled item shadows on belts
- Toolbox radial can now be navigated using hotbar shortcuts
- Toolbox radial now steps back when right-clicked
- Toolbox radial now immediately opens the multi-toolbox view when right-clicking the central "unequip" button
- Fixed hidden slots visible in toolbox screen in some gui scales
- Toolbox sorting in the radial menu is now deterministic
- Fixed Toolboxes not always updating their inventory state to clients
- Shulker boxes can no longer be placed inside toolboxes
- Fixed potion fluids not displaying their full name in jei
- Fixed JEI showing all potion recipes when looking up a specific one
- 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
- Add sanding sounds
- Allow sandpaper to polish vanilla copper
- Spawn particles when polishing Create copper blocks
- Make Create copper blocks inherit properties from copper block instead
of iron block
- Fix empty blaze burner not lighting with flint and steel
- Use vanilla's widget lists instead of custom ones
- Use press callback instead of overriding mouseClicked
- Switch old container classes to extend ContainerBase or
GhostItemContainer
- Organize foundation.gui package
- Remove deprecated methods in Color
- Various other changes
- Removed the pulse repeater
- Removed the adjustable repeater
- Adjustable Pulse Repeater -> Pulse Repeater
- Added the Pulse Extender
- Latches now play a sound when flipped manually
- ponder todo
- Fixed super glue not spawning particles on break
- Fixed logspam when goggle overlays are shown
- Fixed blocks launched by a schematicannon spiraling through the air
- Fixed javadoc errors
- Replace all GUI y-flip scalings to not scale normals
- Rotate CustomLightingSettings along XN instead of XP
- Apply custom lighting to all fluids in JEI scenes
- Fix fluid rendering: fix normals, normal scaling, and color
- Make new config fields final
- Do not add item cooldown if cooldown is less than or equal to 0
- Tweak rotation math for depots and billboard potato projectiles
It is currently impossible to for example make a block that both generates stress and that behaves as a gearshift in that it rotates differently on either side. This simple check should allow that to be possible in a much easier and more intuitive manner.
- 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
- Connected Mechanical Crafters now strictly distribute added items from top to bottom, left to right
- Fixed smart pipe ponder scene no longer showing milk in the basin
- Added timed invalidation to refresh fluid handler references observed by pipe ends
- Added item description for the toolbox
- Fixed Smart Pipes not able to be picked up with Wrench
- Fluid Pipes no longer have to be straight in order to be 'wrenched' into a strictly straight windowed pipe
- Stockpile Switches can now be used with Fluid Tanks
- Content Observers can now be used with Fluid Containers and Fluid Pipes
- Fixed Pumps not updating pressure when reversed