Commit Graph

101 Commits

Author SHA1 Message Date
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
cd60fd4d59 refactor AllTileEntities to match Registrate workflow 2020-08-21 12:59:30 +02:00
simibubi
80406e8782 Cleanup crew
- More refactors and enhancements to the blaze burner
2020-07-23 17:41:15 +02:00
a44ef1733b Merge branch 'heatedMixer' into mc1.15/dev 2020-07-12 14:54:03 +02:00
12595490c7 Heater functionality:
- Heated Mixing: Mixing can now require the player to heat the basin (with either the usual fan heaters for a heat level of 1 or the blaze heater for higher heat levels)
- Made mixing brass ingots from copper and zinc ingots require heating (as example)
- added the blaze heater to valid fan heaters
- added TE renderer for fan heater to display a blaze head always facing the player
- added fueling of blaze heater with furnace fuel (onUse event, not with inventory to challenge the automation. To be discussed.)

todo:
- add heat requirement display to JEI
- better item model for blaze heater
- new special fuel for higher heat levels
- fan stoking
2020-07-12 13:13:43 +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
279504cccf Tunnel clean-up & QOL
- Removed synchronization behaviour of belt tunnels
- Belt tunnels can now be placed on non-reinforced belt segments, and will apply the missing casing automatically
- Bunch more renames
- Small tweaks to the andesite tunnel texture
- Mechanical arms can no longer take from belts covered by a tunnel
- Belt tunnels can now create a window when directly next to a funnel
- Fixed tunnel flaps not being triggered when inserting into a covered belt
2020-07-08 13:41:55 +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
cd189a5fa9 Chute Implementation
- Chutes can now transfer items
- Chutes now propagate air flow from attached fans
- Fixed a few issues with mechanical arms
- Removed unused chute models
- Implemented appropriate interactions between funnels and chutes
2020-07-02 17:23:42 +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
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
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
769e585e53 Logistical Mockups Part II
- Added mockups for:
  - Packager
  - Chutes & Chute interfaces
  - Least's Reality Funnel (tm)
2020-06-20 16:10:07 +02:00
7bdc017989 Merge branch mc1.15/fluid_tank into mc1.15/dev 2020-06-16 20:56:37 +02:00
simibubi
cc6efa5aa2 Logistical Mockups Part I
- Added blockstates and TER for the Mechanical Arm
- Mechanical Arms will start a Grab Rave at random intervals
2020-06-16 12:54:24 +02:00
b0950a23cb tank content renderer, tank TE, pipes connect to tanks 2020-06-16 12:46:16 +02:00
simibubi
0a9816504b PumpState
- Added blockstates, models and TE rendering for mechanical pumps
- Removed unused pipe textures
- Removed hasStaticPart in IWrenchable as it became obsolete in 1.15
- Bumped version
2020-06-15 02:25:33 +02:00
simibubi
e669bb3b27 Added Nixie Tubes 2020-06-05 23:26:22 +02:00
simibubi
cfdc9d0a5e Directional sources of rotation
- Fixed gearbox pretending to be a deployer
- Fixed reversed rendering in the furnace engine TER
- Motors, fans, flywheels and handcranks now reverse their rotation when facing in negative axisdirections. Addresses #236
- Cart assemblers no longer auto-attach to blocks on their sides (top only)
2020-06-04 21:02:29 +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
daee93dc48 Stone variant recipes
- Setup automated recipes for stone palette blocks and their stairs/slabs/etc
- Fixed datagen putting air blocks as drops for attached logistical blocks
- Fixed recipes and lang entries using outdated registry names
- Fixed kinetic blocks appearing twice in the main creative tab
2020-05-31 19:17:00 +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
78ad674c22 Re-organized packages and utilities 2020-05-23 14:02:38 +02:00
simibubi
88337a3e0c Renamed AllBlocksNew to AllBlocks 2020-05-22 20:12:53 +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
aebbec5ffc Generating belts
- Added builder transform for registering stress config values for kinetic blocks
- Created a blockstate generator for belt blocks
- Added belts to registrate
2020-05-19 15:25:21 +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
deb03d10de Ported window blocks
- window and glass blocks entered the registrate
- updated palette textures
- removed windowlogging
- removed cocoa logs
2020-05-14 01:23:15 +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
simibubi
65853c9da0 Creative Crate Revival
- The creative crate is back on the menu
- Schematicannons with creative crates no longer require gunpowder to operate
- Creative crates can now be used for infinite item supply and voiding
- Added a few more advancements
2020-05-07 19:52:36 +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
83ceb7d215 Merge remote-tracking branch 'origin/mc1.14-v0.2.3' into mc1.15/dev 2020-05-02 00:16:04 +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
tterrag
c330d163ec Update Registrate, add proof of concept new block registration pattern 2020-04-26 00:58:38 -04:00
tterrag
a1605af46a Merge remote-tracking branch 'origin/mc1.14-v0.2.3' into mc1.15-v0.2.2
# Conflicts:
#	build.gradle
#	src/main/java/com/simibubi/create/foundation/utility/SuperByteBuffer.java
#	src/main/java/com/simibubi/create/foundation/world/AllWorldFeatures.java
#	src/main/java/com/simibubi/create/modules/contraptions/components/crusher/CrushingWheelBlock.java
#	src/main/java/com/simibubi/create/modules/contraptions/components/fan/EncasedFanBlock.java
#	src/main/java/com/simibubi/create/modules/contraptions/components/millstone/MillstoneBlock.java
#	src/main/java/com/simibubi/create/modules/contraptions/components/turntable/TurntableBlock.java
#	src/main/java/com/simibubi/create/modules/contraptions/processing/BasinBlock.java
#	src/main/java/com/simibubi/create/modules/contraptions/redstone/AnalogLeverBlock.java
#	src/main/java/com/simibubi/create/modules/contraptions/relays/advanced/sequencer/SequencedGearshiftBlock.java
#	src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltBlock.java
#	src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltTileEntityRenderer.java
#	src/main/java/com/simibubi/create/modules/curiosities/partialWindows/WindowInABlockModel.java
#	src/main/java/com/simibubi/create/modules/logistics/block/RedstoneLinkBlock.java
#	src/main/java/com/simibubi/create/modules/logistics/block/StockswitchBlock.java
#	src/main/java/com/simibubi/create/modules/palettes/CTGlassPaneBlock.java
#	src/main/java/com/simibubi/create/modules/schematics/block/SchematicTableBlock.java
#	src/main/java/com/simibubi/create/modules/schematics/block/SchematicannonBlock.java
#	src/main/resources/META-INF/mods.toml
2020-04-12 15:25:52 -04:00
simibubi
810191aa89 Cast with Caution
- Revisited every unchecked TileEntity cast
- Redstone Links can now be toggled with a wrench
- Redstong Links are now portable on contraptions
- Schematicannon no longer inserts held schematics automatically
- Saws no longer accept items when their speed is zero
2020-04-05 18:02:46 +02:00
tterrag
748f8af229 Merge remote-tracking branch 'origin/mc1.14-v0.2.2' into mc1.15-v0.2.2
Conflicts:
	build.gradle
	src/main/java/com/simibubi/create/AllTileEntities.java
	src/main/java/com/simibubi/create/foundation/world/OreFeature.java
	src/main/java/com/simibubi/create/modules/contraptions/components/contraptions/ContraptionEntity.java
	src/main/java/com/simibubi/create/modules/contraptions/components/crafter/MechanicalCrafterTileEntityRenderer.java
	src/main/java/com/simibubi/create/modules/contraptions/relays/belt/BeltColor.java
2020-03-28 22:28:49 -04:00
tterrag
844dc42501 More porting work 2020-03-28 22:10:23 -04:00
Zelophed
b885a60003 added datagen for BlockTags to AllBlocks
-use the runData run configuration to generate json data
2020-03-28 02:27:43 +01:00
simibubi
c3f781b762 The Millstone
- Added Millstone
- Added Milling recipe type
- Crushing wheels can apply milling recipes
- Added a command for clearing the buffer cache
- Any cog-containing machine can now connect to large cogwheels
- Added French localization by Kiro
- Removed unused lang entries
2020-03-26 23:03:56 +01:00
simibubi
14e053fafd Sequenced Gearshift
- Added Sequenced Gearshifts
- Fixed custom swords breaking blocks when held in creative mode
- Fixed belts cancelling flight when touched
- Fixed Entities being blocked by contraption boundaries when moved on belts
- Fixed Flexpeater going funky when edited while active
- Fixed Links not firing when placed into a powered location
2020-03-11 21:40:55 +01:00
simibubi
b8eb35e5c5 Rotation Speed Controller
- Added the Rotation Speed Controller for achieving precise speed values in survival mode (like the motor in 0.1)
- Introduced a builder pattern for voxelshape(r) creation
2020-02-28 22:17:40 +01:00
simibubi
b1a0f25f4b Clockwork Bearing and Rope Pulley
- Stationary Contraption Entities no longer sync positions like normal entities
- Flimsy attempts at making linear contraption movement smoother, especially at differing tick speeds between server and client
- Added slot covers for the Mechanical Crafter
- Added the Clockwork Bearing
- Added the Rope Pulley
- Server speed no longer tries to sync when game is paused
- Fixed crash when moving block breakers are loaded in while stalled
- Fixed Cuckoo Clock's angle interpolation when tps is low
2020-02-15 18:54:23 +01:00
simibubi
f739185040 More Item Descriptions
- Motor -> Creative Motor
- Removed schematicannon creative crate from creative tab
- Engines now show stats in their tooltip
- Added some missing tooltips
- Furnace Engine now has a configurable capacity
2020-02-08 20:02:14 +01:00