Commit Graph

20 Commits

Author SHA1 Message Date
25bce3fc17 Fix schematicannon bedrock breaking with doors, tall flowers and beds 2020-09-06 12:43:41 +02:00
637dee0919 Zapper and cannon now place crops in basic growth state 2020-09-05 22:02:07 +02:00
1f06acb497 Change item requirements for block zapper and schematicannon
grass path -> grass block
farmland -> dirt block
2020-09-05 21:24:00 +02:00
simibubi
2040d66c3e Fundamentals of Fluid Transfer
- 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
2020-08-24 21:02:03 +02:00
Zelophed
8e349380a5 fix tooltips getting occluded by certain gui elements
- addresses #412
- addresses #366
2020-08-21 20:46:09 +02:00
simibubi
26112ddc93 Fix build issues
- Not sure why but this seems to have worked
2020-07-09 01:28:14 +02:00
ff32c6c6ae fix null player crashes 2020-07-04 14:26:37 +02:00
simibubi
f820e2be27 Mechanical Arm Implementation
- 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
2020-07-01 22:02:00 +02:00
tterrag
0e9aad6763 Fix dedicated server crash when using schematicannon printing
Closes #355
2020-06-11 21:53:03 -04:00
simibubi
c5e783207f Bug Hunt
- Fixed extractors looking for belt inventories too eagerly, adresses #327
- Slightly refactored Extendo Grip handlers
- Fixed missing particle texture of Extendo Grips
- Fixed crash when assembled minecarts pick up the block below their assembler
- Ploughs no longer break blocks if farmland is below them, adresses #345
- Fixed Schematic tools placing lit furnaces, adresses #342
- Super glue can no longer be removed while inbetween two blocks, adresses #341
- Added a safety check in RotationPropagation, addresses #340
2020-06-07 22:40:27 +02:00
simibubi
77835c3a65 Helper swap
- Replaced temporary AllItems#typeOf with ItemEntry's non-static isIn
2020-06-03 22:17:11 +02:00
simibubi
36ab939126 "Batched" rendering, huh
- Schematic previews can now render TEs
- Schematic renderer no longer relies on negative scale and noCull for mirrored previews (fixes a few inconsistencies)
- Avoided blending issues with the outliner system when using multiple textures throughout a batch
- Introduced SuperRenderTypeBuffer as an attempt to give options for render order in the RWLE context (does not fix the early flushing in the fallback buffer)
2020-06-03 22:04:05 +02:00
tterrag
c486854b7f Convert AllTileEntities to Registrate, refactor TE constructors
Update Registrate to build 17
2020-06-01 00:33:08 -04:00
simibubi
467af2ea20 Renamed AllItemsNew to AllItems 2020-05-28 01:30:14 +02:00
simibubi
3d68bec18a Item registrates, and more porty
- 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
2020-05-28 01:29:26 +02:00
simibubi
8d8f96c778 Fixed outliners' culling issue 2020-05-27 13:12:57 +02:00
simibubi
68b656c6be More porty
- Ported blockzapper beams
- Terrainzapper now uses outliner utility
2020-05-26 20:45:56 +02:00
simibubi
57edbe0c38 Schematics in 1.15
- Ported Schematic placement tools to a usable state (missing preview and noCull)
2020-05-26 14:40:15 +02:00
simibubi
f9fc00855a Reversed Simi's reverse-rendering
- 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
2020-05-25 23:09:36 +02:00
simibubi
78ad674c22 Re-organized packages and utilities 2020-05-23 14:02:38 +02:00