Commit Graph

154 Commits

Author SHA1 Message Date
simibubi
a4b4c770be Asset Break
- 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
2020-08-24 23:45:37 +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
simibubi
7e167f3b29 Couple things, Part I
- Added Foundation and POC of minecart couplings and carriage contraptions. highly unstable
2020-08-05 22:10:05 +02:00
simibubi
80406e8782 Cleanup crew
- More refactors and enhancements to the blaze burner
2020-07-23 17:41:15 +02:00
simibubi
f5af1cd81e Merge branch 'mc1.15/dev' into mc1.15/collision 2020-07-22 19:07:33 +02:00
simibubi
7994835cb0 Seats, part II
- 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
2020-07-22 01:18:09 +02:00
simibubi
ebc2944788 Robust entry collisions
- Collision separation now supports motion sweeping in order to avoid tunnelling when entities drop onto contraptions from a greater height
- Further improved the collision response
- Entities can no longer be clipped into solid walls by the collision response
2020-07-14 16:58:10 +02:00
simibubi
c58310b293 Actually playable
- Fixed some left-over math bugs
- Greatly improved contraption-player collision response, especially with rotating structures
2020-07-12 23:57:27 +02:00
simibubi
a0ff70a1bb Not enough polish
- Reworked belt assets and renderer once again
2020-07-12 02:05:29 +02:00
simibubi
8d056d082a Brass Tunnel connectivity and filtering
- 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
2020-07-08 22:24:33 +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
simibubi
f7ad748a09 Depot Implementation and Interaction
- Depots can now hold on to items similarly to belts
- Item processing such as the press and bulk smelting now targets a Processing TE behaviour, rather than the belt only
- The press and similar processing can no longer commence whenever there is a block with a collision shape between item and machine
- Implemented item processing for Depots
- Items can seamlessly traverse from belts to depots
2020-06-27 15:20:22 +02:00
simibubi
20de324b72 PipeState
- Implemented dynamic models and blockstates of copper pipes
2020-06-14 22:24:46 +02:00
simibubi
752bcf06c0 Bug fixes
- Fixed encoding of generated degree symbols in lang
- Fixed pistons along x moving at inconsistent speeds, overshooting their bounds
- Fixed belts along x not moving entities
- Fixed diagonal belts along z teleporting entities miles away
- Fixed tree fertilizer not working
2020-06-08 13:34:51 +02:00
simibubi
82a2d128f1 Ported ISTERs
- Removed temporary lang partial with entity names
- Fixed and Refactored the item renderers of the Wrench, Blockzappers, Worldshapers, Symmetry Wand and Deforester
- Tweaked blockzapper beam rendering to look less clunky
- Fixed selection of zapper tools not showing after they had been dual-wielded
2020-06-04 15:04:49 +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
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
4e8a72be8b Moving contraptions in 1.15
- Ported the contraption renderer
- Fixed sticky blockstates of the linear chassis
- SuperByteBuffers can now be given a separate matrixStack for vertex lighting
- Kinetic TERs now make use of the passed light parameter
2020-05-25 19:58:13 +02:00
simibubi
61aab48cdb Merging langs
- Set up a data generator to combine the generated lang from registrate with manual langs from assets/
2020-05-23 21:03:35 +02:00
simibubi
78ad674c22 Re-organized packages and utilities 2020-05-23 14:02:38 +02:00
simibubi
785c79786d Get registrated, Part II
- Set up datagen and registrate chains for all remaining blocks
2020-05-22 20:02:07 +02:00
simibubi
8ab9118de2 Get registrated
- Set up datagen and registrate chains for all remaining blocks from the contraptions section
2020-05-21 00:15:02 +02:00
simibubi
b773ba697f Generating water wheels and fans
- Kinetic TER now renders animated partials in the correct layer
- Ported Water wheel and Encased Fan to registrate
2020-05-19 16:41:54 +02:00
simibubi
ff1f7bd207 Spiffy creative motor
- Motors can now face any direction
- Reworked motor model
- Ported motor to registrate
2020-05-19 01:07:45 +02:00
simibubi
c698aec5d4 Generating complex blockstates
- Added utility for outsourcing blockstate generators into dedicated classes
- Ported Encased belt and Adjustable Pulley
- Updated Forge
2020-05-18 22:01:09 +02:00
simibubi
fb72a686e7 Ported in-world interfaces
- Outlines now support shading/normals
- Refactored Value boxes to use the outliner system
- Ported scrolloption, filter and frequency slot rendering
2020-05-16 17:51:29 +02:00
simibubi
8212d39d95 Ported superglue entityrenderer 2020-05-16 09:57:06 +02:00
simibubi
d5ec1d6fef Ported Schematic and Quill handler
- Updated outlines rendered by the schematic and quill
- Removed some now auto-generated leftovers from the asset folder
- Fixed Schematic Table screen not rendering the table properly
2020-05-16 00:13:49 +02:00
simibubi
071482bb26 Ported Outline utility to 1.15
- Outliner can now be used in 1.15
- Ported Chassis range display to use new Outlines
2020-05-15 17:13:38 +02:00
tterrag
7f07a4af6e Remove PalettesRegistrate, can't have multiple datagens for same output 2020-05-14 22:32:36 -04:00
simibubi
12e0e55b0f Generating Stairs, Slabs and Walls
- All palette variants now have auto-generated stairs, slabs and walls for certain patterns
- Layered variant types have connected textures again
- Centralized all SpriteShifts
2020-05-15 01:23:27 +02:00
simibubi
a070792248 Generating Glass and Window Panes
- Re-implemented framed, tiled glass panes and window panes in the palettes registrate
2020-05-14 19:06:40 +02:00
simibubi
7536e22eed Connected Textures and Registrate
- 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
2020-05-13 21:56:46 +02:00
simibubi
bf57058e4e A new home for palette blocks
- Set up datagen for basic palette models and blockstates
- Overgrown blocks now follow foliage colour
- Paved blocks now connect vertically
2020-05-13 01:11:07 +02:00
simibubi
2696fc2a51 BlockState gen progress
- Clutch, Gearshift and Gearbox joined the registrate
- Fixed belt and gearbox items not being assigned creative tabs properly
- Cleaned up and extended the blockstate generator helpers
- Removed advancements from static assets
- Added datagen .cache to gitignore
- Split the palettes section into its own Creative tab
- Fixed Clutch and Gearshift rendering their casing in the TER
2020-05-12 14:06:50 +02:00
simibubi
901c530f62 Merge branch 'master' into mc1.15/dev 2020-05-11 00:23:28 +02:00
Snownee
505b251132 Fix build error 2020-05-09 01:05:56 +08:00
simibubi
6c3c0600d3 Rebooting Advancements
- Reworked basic advancement tree, to be continued
- Removed unused trigger and damage source for sandpaper
- Added some new crate assets
2020-05-06 20:24:04 +02:00
simibubi
0c2a33861e Registrate Progress
- Started moving over a few kinetic blocks from AllBlocks to registrate
- Changed runData to only run client data tasks for now
- Added missing bind to the ContraptionRenderer for Stationary Contraptions
2020-05-04 19:57:16 +02:00
simibubi
901cb00426 merged mc1.15/dev into mc1.15-registrate 2020-05-02 00:34:36 +02:00
simibubi
aea5918636 Port new code to 1.15 (help)
- Shoddily eliminated compilation errors with new code from 0.2.3
2020-05-02 00:19:29 +02:00
simibubi
83ceb7d215 Merge remote-tracking branch 'origin/mc1.14-v0.2.3' into mc1.15/dev 2020-05-02 00:16:04 +02:00
simibubi
75638b7c8d Pocket Carts
- 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
2020-04-30 16:45:35 +02:00
simibubi
885791f878 Cart Rotation Lock
- Minecart assemblers can now be configured to 3 different rotation modes
2020-04-29 23:32:17 +02:00
simibubi
45897e4c18 Mechanical Ploughs
- Added the Mechanical Plough
- Mounted Drills now briefly stall a contraption after breaking a block below falling blocks (sand, gravel, etc)
- Mechanical Saws can now harvest Bamboo, Chorus, Kelp, Sugar Cane, Cactus, Melons and Pumpkins
- Fixed harvester position inconsistency when moved vertically
- Fixed saws/drills not hurting entities in some cases
- Fixed saws/drill throwing back hurt entities in weird directions
2020-04-29 19:12:42 +02:00
simibubi
a97418e784 Better Schematics
- 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
2020-04-27 14:04:06 +02:00