Commit Graph

53 Commits

Author SHA1 Message Date
simibubi
31cb704894 Refactor comparator overrides
- Removed unnecessary level tracking
- Remove code duplicates
- Fixed smart fluid tank behaviours not triggering markDirty on deferred fluid update
2021-03-03 17:59:27 +01:00
simibubi
d59fea1079 Bloat.
- Auto-Organize inputs
- runData after lang PRs
- change runWhenOn to non-deprecated unsafeRunWhenOn, now that late forge version is required
- Address a few warnings
2021-02-18 19:43:22 +01:00
JozsefA
15302495f5 Merge remote-tracking branch 'upstream/mc1.15/dev' into mc1.15/experimental-rendering-merge
# Conflicts:
#	src/main/java/com/simibubi/create/AllEntityTypes.java
#	src/main/java/com/simibubi/create/AllSpriteShifts.java
#	src/main/java/com/simibubi/create/content/contraptions/base/KineticTileEntity.java
#	src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/Contraption.java
#	src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/OrientedContraptionEntityRenderer.java
#	src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java
#	src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/mounted/MountedContraption.java
#	src/main/java/com/simibubi/create/content/contraptions/relays/advanced/SpeedControllerRenderer.java
#	src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltRenderer.java
#	src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltTileEntity.java
#	src/main/java/com/simibubi/create/foundation/command/AllCommands.java
#	src/main/java/com/simibubi/create/foundation/utility/outliner/Outliner.java
2021-02-15 21:27:08 -08:00
Snownee
b958be0712 Fix desync of FilteringBehaviour 2021-01-26 18:00:47 +08:00
Snownee
92a1395b14 Fix spectator can interact with blocks 2021-01-26 15:26:01 +08:00
simibubi
525fc03278 Demise of the hopper funnel
- Added smart chutes
- Reworked non-mounted funnels to be consistent will all other funnel configurations
- Non-mounted funnels no longer occupy a full block length
- Non-mounted funnels can now insert and extract ground items
- Vertical funnels can no longer transfer between inventories
- Redstone links can now be placed onto any non-empty space
- Mechanical arms no longer arbitrarily wait between operations unless targets are overflowing
- Gave indicators on funnels better visibility
- Chutes now display contents in their goggle overlay
- Mechanical Arms and Wrenches can no longer be assigned to filter slots directly
2021-01-22 20:43:59 +01:00
JozsefA
03205c277b move render package up one level 2021-01-13 12:15:48 -08:00
JozsefA
7d43bb056a merge experimental rendering from 1.16 to 1.15 2021-01-05 10:56:47 +01:00
Snownee
48d66c7e55 Slightly improve redstone link performance 2020-12-13 08:19:28 +08:00
Snownee
0941d9403f Zappers Safe-NBT support 2020-12-12 19:09:10 +08:00
Snownee
727de5425f Hide goggle overlay if ValueBox is hovered 2020-12-11 17:00:36 +08:00
Snownee
77e9a75877 Use cached directions 2020-12-10 09:36:59 +08:00
simibubi
e3bef624a0 Casing case closed
- Encased shafts and gearboxes can now join textures with respective casing blocks
- Added back encased shaft items for creative mode
- Fixed encased shafts able to be created with casing and cogs
2020-12-02 21:49:57 +01:00
simibubi
e7a22c96e9 Funnels for everybody
- Fixed flapfunnels not taking secondary items off depots
- Funnels can now sit horizontally on saws and drains
- Added a recipe from natural to regular scoria
2020-11-27 17:19:11 +01:00
simibubi
b2e74463e3 All your basin are output to us
- Added useful goggle information to chutes
- (0.3.0) Chutes can no longer carry a fan-like air stream
- Fixed chutes overwriting contained items when picking them up from below
- Basins can now push outputs to any open inventory
- Basin output can now be controlled using a wrench
2020-11-27 01:37:22 +01:00
simibubi
675af419ce Fixing user errors
- Added hints when looking at
-    Mechanical arms with no targets
-    Funnels attempted to be used like 0.2 transposers
-    Bearings that require an update to attach to their blocks
- Added some additional feedback when players apply filters
- Spouts now place two blocks above a depot/belt when used
- Basins can no longer be placed directly under a press or mixer
- Fixed prismarine recipe cycles from various mod interactions
2020-11-11 23:59:40 +01:00
simibubi
287db27ef0 The Funnel doesn't end here
- Updated wrench model (Kryppers)
- Funnels on depots and perpendicular to belts use a new model
- Funnels at the end of belts
    - no longer have a directional constraint
    - can now be extended/retracted manually
    - now hold items back at the block boundary
- Extracting Funnels on top of belts can now specify an amount no their filter, taking x items off a nearby stack when possible
- Fixed some issues with belt/funnel interaction
- Items reaching the end of a belt will still be regularly checked by perpendicular funnels in the space
- Contraptions now render blocks in appropriate render layers
- Straight diagonal Chutes now create an intersection when a funnel is directly above them
- Attempted a safety fix to bracket removal from shafts and cogs
- Fixed windmill structures not stalling when their attached network is overstressed
2020-11-11 19:00:31 +01:00
simibubi
dbfe7f93fa Spinny vortex
- Crushing wheels no longer z-fight with chutes
- Improved rendering of items and fluids inside basins
2020-11-06 19:45:38 +01:00
simibubi
e701569fee Automatic Acrobatics
- Added the item drain
- Refactored pulley renderers
- Fixed belt funnel not dropping filters
- Fixed funnel filter slot positioning on upward facing funnels
- Sails can now be sheared
- Fixed the kinetic connectivity of the rotation speed controller
- Valve handles can now by dyed in world
- Seats can now be dyed in world
- Fixed Stockpile Switch emitting redstone power towards its detection target
- Organized Imports
- Fixed server launch issues
2020-10-30 19:28:33 +01:00
simibubi
dd95096bfa Smart Fluid Pipes
- Added craftable pipes with filtering capabilities
- Added missing recipe for the Portable Storage Interface
2020-10-17 18:20:05 +02:00
simibubi
699dc7bb5c Issues with Nested Config groups
- Fixed prefix "kinetics" added to unrelated subsequent config keys due to inconsistent push/pop
- Removed obsolete config values
2020-10-07 11:46:55 +02:00
simibubi
378164b8b9 More unfinished basin business
- Fixed players flailing their limbs around while standing still on a moving contraption
- Attempted to reduce drag of remote player positions while on a contraption
- Contraptions no longer log out with the player riding them
- Attribute filters are now made of brass
- Added the ability to disable auto-compat with vanilla recipe types in the configs
- Added a recipe type for custom basin/press compacting
- Basins can now process items and liquids in recipes
- Input items/fluids of a basin can now be extracted or reused in further processing
- A basin diagonally below another basin with collect outputs of recipes processed in the top basin for ease of automation
- (Temporary debug recipes)
2020-10-06 20:43:13 +02:00
simibubi
6e285e2f8b Valves and Valve handles
- Added a straight pipe variant to cut flows using rotational input
- Added a slower more precise variant of the hand crank
- Basins now render their contained fluids
2020-09-25 17:22:16 +02:00
simibubi
27b05bc43e Portable Storage Interface remaster
- Implemented new PSI models by Kryppers
- PSIs are now used in pairs like contacts
- PSIs now act as an inventory proxy of the attached contraption
- Comparators can detect when two PSIs are interfacing
- Contraptions will continue moving after a second of inactivity
2020-09-24 20:32:16 +02:00
simibubi
2d6d360da4 Workstation transfer, Part II
- Intermediate changes, probably doesn't even compile
2020-09-24 13:39:40 +02:00
simibubi
aef451e3bf Logistics' final stretch, Part II
- Belt observer -> Content observer
- Content observers can now monitor any inventory and funnel transactions
- Stockpile switches no longer only access slots exposed to a specific side of an inventory
- Stockpile switches can now take a filter
2020-09-20 21:34:36 +02:00
simibubi
990d80412e Logistics' final stretch, Part I
- Brass tunnels once again have the ability to synchronize inputs among a chain
- Mechanical arms now have a range limitation
- Mechanical arms now wait with initialization until their area is fully loaded
- Chutes no longer ignore the direction of an attached fans air flow
- Chutes now render particles indicating their movement direction
- Chutes can now pull items up from belts or off the ground
- Fixed item model of shadow casing
- Fixed invisible quads under funnels when no casing is applied to the belt
- Belt mounted funnels can now be perpendicular to the belt theyre on
- Funnels can now transpose items like a hopper when facing down
2020-09-19 15:19:22 +02:00
simibubi
2061072f8c Merge branch 'mc1.15/dev' of https://github.com/Creators-of-Create/Create into mc1.15/dev 2020-09-13 22:00:15 +02:00
simibubi
03cf441674 Distribution modes for tunnels
- Item distribution across belts using brass tunnels can now be configured with a wrench
- Added new icons for the distribution options of arms and tunnels
- Removed obsolete code
- Fixed some weirdness with creative crates and funnels
2020-09-13 22:00:11 +02:00
LordGrimmauld
a015901571
Merge pull request #459 from gamrguy/render-fix
Fix unsided filters that shouldn't render
2020-09-13 11:37:56 +02:00
simibubi
651e06a70a Down the Refactor rabbit hole
- Reworked tileentity behaviours for inventory interaction
- Deployers no longer actively pull items from other inventories
- Some more work on basins
- Added a new inventory type wrapping an itemstack handler that automatically syncs the tile entity. It also implements IInventory for recipe shenanigans
- Held items of a deployer can now only be extracted by other blocks if it does not match the filter
- Fixed excess items not able to be extracted from deployers
- Removed some things
- Funnels no longer actively transpose items between chutes and inventories unless they are vertical
- Chutes can now active pull and insert items from/to inventories above/below them
2020-09-13 00:59:14 +02:00
Colman Davenport
adfeeba5a1 Fix unsided unplaced filters still rendering 2020-09-12 15:50:12 -04:00
simibubi
fe2c27db35 Spout refinements
- Fixed upright items rendering inconsistently between belt and depot
- Fixed various timing and sync issues with the spout
- Added a recipe type for spout filling
- Fixed more co-modification on belts
- Item and fluid nbt tags in recipes are now data-generated as json objects rather than strings
- Transported item processing can now leave items behind
- Transported item processing now has more meaningful result data
- Tweaked spout animation
- Fixed cullfaces on spout model
2020-09-11 14:31:26 +02:00
simibubi
5a7c09aa25 Filtered Basin Processing
- Basins can now be assigned a filter to narrow down the range of recipes that can be applied to its ingredients
- Some random asset updates
2020-09-04 15:16:07 +02:00
simibubi
230a6cf848 Sploosh
- Added the Spout
- Added Safety check to the drain cap rendering condition
Highly unstable
2020-08-28 22:45:27 +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
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
dbd89199ac Andesite Logistics
- Removed pre-0.3 funnel blocks
- Added andesite variant to reality funnels, without filtering or redstone control
- Added andesite variant to belt tunnels
- Reality Funnel -> Brass Funnel
2020-07-08 01:36:34 +02:00
simibubi
5411bc3565 Dangle Flap Reflappified
- Belt funnels now render with animated flaps
- Extracting funnels can now be given a stack size
- Filtering now supports setting the extraction count for empty filter slots (wildcard)
2020-06-28 18:16:46 +02:00
simibubi
ce1c5d8697 Belt funnel & World funnel implementation
- Funnels on belts can now extract and insert items according to their setting and filter
- Funnels can now push/pull items to/from a depot
- Fixed creative crates not marking their inventory as removed when destroyed
- Funnels can now pick up items colliding with their front face
- When holding a funnel the game will now always prefer placement over block interaction
- Fixed items not able to be held in place by tunnels
2020-06-28 13:31:11 +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
9fe1d85199 Reworked belt processing and interfacing
- Removed the IBeltAttachment system
- Item processing on belts is now a TE behaviour
- Added TE behaviour for allowing belts (and similar) to directly insert items
- Massive refactor to the Belts' inventory
- Fixed fast moving items missing their processing step
- Saws, Basins, Crushing Wheels, Belts and Crafters now interact through the new behaviour rather than hard-coded interactions
- Fixed items (visually) disappearing on saws while queueing up
- Items on belts now back up a little further away from the end of the belt
2020-06-26 21:38:10 +02:00
simibubi
69dd19cd58 Filtered Funneling
- Added filtering behaviour and in-world slots to new funnel blocks
- Filtering behaviour now supports slots active on multiple sides
- Funnels no longer wipe their TE when changing state
- Fixed VoxelShape for extended belt funnels
2020-06-26 12:35:24 +02:00
simibubi
82ed9cd85d Analog Redstone Links
- Redstone link receivers now emit their signal with the level of the strongest transmitter of the same frequency
2020-06-04 15:33:56 +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
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
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