From 17676822cf0f27f0126023b526ffffa4d21f9366 Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 7 May 2021 18:18:32 +1000 Subject: [PATCH 01/16] Remove Podzol from the grass pressing recipe and add a compatibility recipe for Environmental's Podzol Path --- .../data/recipe/PressingRecipeGen.java | 2 +- .../environmental/pressing/podzol_path.json | 21 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/main/resources/data/create/recipes/compat/environmental/pressing/podzol_path.json diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java index ca9740ab9..a42bd4893 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/PressingRecipeGen.java @@ -14,7 +14,7 @@ public class PressingRecipeGen extends ProcessingRecipeGen { SUGAR_CANE = create(() -> Items.SUGAR_CANE, b -> b.output(Items.PAPER)), - PATH = create("path", b -> b.require(Ingredient.fromItems(Items.GRASS_BLOCK, Items.DIRT, Items.PODZOL)) + PATH = create("path", b -> b.require(Ingredient.fromItems(Items.GRASS_BLOCK, Items.DIRT)) .output(Items.GRASS_PATH)), IRON = create("iron_ingot", b -> b.require(I.iron()) diff --git a/src/main/resources/data/create/recipes/compat/environmental/pressing/podzol_path.json b/src/main/resources/data/create/recipes/compat/environmental/pressing/podzol_path.json new file mode 100644 index 000000000..a75ed6119 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/environmental/pressing/podzol_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "environmental" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "minecraft:podzol" + } + ] + ], + "results": [ + { + "item": "environmental:podzol_path" + } + ] +} \ No newline at end of file From 25f9095b251117001fb34fa972ae33bd7cedaaba Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 7 May 2021 18:20:15 +1000 Subject: [PATCH 02/16] Add a milling recipe for Necrotic Bone from Tinker's Construct --- .../tconstruct/milling/necrotic_bone.json | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/main/resources/data/create/recipes/compat/tconstruct/milling/necrotic_bone.json diff --git a/src/main/resources/data/create/recipes/compat/tconstruct/milling/necrotic_bone.json b/src/main/resources/data/create/recipes/compat/tconstruct/milling/necrotic_bone.json new file mode 100644 index 000000000..bf66d163f --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/tconstruct/milling/necrotic_bone.json @@ -0,0 +1,30 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "tconstruct" + } + ], + "type": "create:milling", + "ingredients": [ + { + "item": "tconstruct:necrotic_bone" + } + ], + "results": [ + { + "item": "minecraft:bone_meal", + "count": 3 + }, + { + "item": "minecraft:black_dye", + "chance": 0.25 + }, + { + "item": "minecraft:bone_meal", + "count": 3, + "chance": 0.25 + } + ], + "processingTime": 100 +} \ No newline at end of file From 64baf8216c032c89aacc463c490fd25bdd535295 Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 7 May 2021 18:20:53 +1000 Subject: [PATCH 03/16] Fix Buzzier Bees compatibility and move the old flowers to Environmental compatibility --- .../buzzier_bees/milling/buttercup.json | 26 +++++++++++++++++++ .../buzzier_bees/milling/pink_clover.json | 4 +-- .../buzzier_bees/milling/white_clover.json | 4 +-- .../milling/bird_of_paradise.json | 4 +-- .../milling/blue_delphinium.json | 26 +++++++++++++++++++ .../milling/bluebell.json | 4 +-- .../milling/cartwheel.json | 4 +-- .../milling/dianthus.json | 4 +-- .../milling/magenta_hibiscus.json | 4 +-- .../milling/orange_hibiscus.json | 4 +-- .../milling/pink_delphinium.json | 26 +++++++++++++++++++ .../milling/pink_hibiscus.json | 4 +-- .../milling/purple_delphinium.json | 26 +++++++++++++++++++ .../milling/purple_hibiscus.json | 4 +-- .../milling/red_hibiscus.json | 4 +-- .../milling/red_lotus_flower.json | 26 +++++++++++++++++++ .../milling/violet.json | 4 +-- .../milling/white_delphinium.json | 26 +++++++++++++++++++ .../milling/white_lotus_flower.json} | 8 +++--- .../milling/yellow_hibiscus.json | 4 +-- 20 files changed, 186 insertions(+), 30 deletions(-) create mode 100644 src/main/resources/data/create/recipes/compat/buzzier_bees/milling/buttercup.json rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/bird_of_paradise.json (84%) create mode 100644 src/main/resources/data/create/recipes/compat/environmental/milling/blue_delphinium.json rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/bluebell.json (77%) rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/cartwheel.json (82%) rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/dianthus.json (82%) rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/magenta_hibiscus.json (81%) rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/orange_hibiscus.json (81%) create mode 100644 src/main/resources/data/create/recipes/compat/environmental/milling/pink_delphinium.json rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/pink_hibiscus.json (81%) create mode 100644 src/main/resources/data/create/recipes/compat/environmental/milling/purple_delphinium.json rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/purple_hibiscus.json (81%) rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/red_hibiscus.json (81%) create mode 100644 src/main/resources/data/create/recipes/compat/environmental/milling/red_lotus_flower.json rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/violet.json (83%) create mode 100644 src/main/resources/data/create/recipes/compat/environmental/milling/white_delphinium.json rename src/main/resources/data/create/recipes/compat/{buzzier_bees/milling/columbine.json => environmental/milling/white_lotus_flower.json} (71%) rename src/main/resources/data/create/recipes/compat/{buzzier_bees => environmental}/milling/yellow_hibiscus.json (81%) diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/buttercup.json b/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/buttercup.json new file mode 100644 index 000000000..daf89729b --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/buttercup.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "buzzier_bees" + } + ], + "type": "create:milling", + "ingredients": [ + { + "item": "buzzier_bees:buttercup" + } + ], + "results": [ + { + "item": "minecraft:yellow_dye", + "count": 2 + }, + { + "item": "minecraft:lime_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/pink_clover.json b/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/pink_clover.json index c8753a417..f52886520 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/pink_clover.json +++ b/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/pink_clover.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "buzzier_bees" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:pink_clover" + "item": "buzzier_bees:pink_clover" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/white_clover.json b/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/white_clover.json index 7c9a228b2..1542d6ddb 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/white_clover.json +++ b/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/white_clover.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "buzzier_bees" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:white_clover" + "item": "buzzier_bees:white_clover" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/bird_of_paradise.json b/src/main/resources/data/create/recipes/compat/environmental/milling/bird_of_paradise.json similarity index 84% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/bird_of_paradise.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/bird_of_paradise.json index 5edf6abea..0128172cc 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/bird_of_paradise.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/bird_of_paradise.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:bird_of_paradise" + "item": "environmental:bird_of_paradise" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/environmental/milling/blue_delphinium.json b/src/main/resources/data/create/recipes/compat/environmental/milling/blue_delphinium.json new file mode 100644 index 000000000..c37ac70bb --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/blue_delphinium.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "environmental" + } + ], + "type": "create:milling", + "ingredients": [ + { + "item": "environmental:blue_delphinium" + } + ], + "results": [ + { + "item": "minecraft:blue_dye", + "count": 3 + }, + { + "item": "minecraft:blue_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/bluebell.json b/src/main/resources/data/create/recipes/compat/environmental/milling/bluebell.json similarity index 77% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/bluebell.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/bluebell.json index b049cbc96..b56eb9e8c 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/bluebell.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/bluebell.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:bluebell" + "item": "environmental:bluebell" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/cartwheel.json b/src/main/resources/data/create/recipes/compat/environmental/milling/cartwheel.json similarity index 82% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/cartwheel.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/cartwheel.json index 169193092..2659d0528 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/cartwheel.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/cartwheel.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:cartwheel" + "item": "environmental:cartwheel" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/dianthus.json b/src/main/resources/data/create/recipes/compat/environmental/milling/dianthus.json similarity index 82% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/dianthus.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/dianthus.json index 48c05d143..646c2c6ee 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/dianthus.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/dianthus.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:jolyce" + "item": "environmental:dianthus" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/magenta_hibiscus.json b/src/main/resources/data/create/recipes/compat/environmental/milling/magenta_hibiscus.json similarity index 81% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/magenta_hibiscus.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/magenta_hibiscus.json index 9e00cf80c..f33e7bda3 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/magenta_hibiscus.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/magenta_hibiscus.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:magenta_hibiscus" + "item": "environmental:magenta_hibiscus" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/orange_hibiscus.json b/src/main/resources/data/create/recipes/compat/environmental/milling/orange_hibiscus.json similarity index 81% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/orange_hibiscus.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/orange_hibiscus.json index 6cc0c4ac3..ab7f0b6e9 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/orange_hibiscus.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/orange_hibiscus.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:orange_hibiscus" + "item": "environmental:orange_hibiscus" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/environmental/milling/pink_delphinium.json b/src/main/resources/data/create/recipes/compat/environmental/milling/pink_delphinium.json new file mode 100644 index 000000000..9c2e2591c --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/pink_delphinium.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "environmental" + } + ], + "type": "create:milling", + "ingredients": [ + { + "item": "environmental:pink_delphinium" + } + ], + "results": [ + { + "item": "minecraft:pink_dye", + "count": 3 + }, + { + "item": "minecraft:pink_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/pink_hibiscus.json b/src/main/resources/data/create/recipes/compat/environmental/milling/pink_hibiscus.json similarity index 81% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/pink_hibiscus.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/pink_hibiscus.json index fa8c4c473..a85f2e64b 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/pink_hibiscus.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/pink_hibiscus.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:pink_hibiscus" + "item": "environmental:pink_hibiscus" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/environmental/milling/purple_delphinium.json b/src/main/resources/data/create/recipes/compat/environmental/milling/purple_delphinium.json new file mode 100644 index 000000000..b99812be8 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/purple_delphinium.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "environmental" + } + ], + "type": "create:milling", + "ingredients": [ + { + "item": "environmental:purple_delphinium" + } + ], + "results": [ + { + "item": "minecraft:purple_dye", + "count": 3 + }, + { + "item": "minecraft:purple_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/purple_hibiscus.json b/src/main/resources/data/create/recipes/compat/environmental/milling/purple_hibiscus.json similarity index 81% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/purple_hibiscus.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/purple_hibiscus.json index 91ac754a7..2615523eb 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/purple_hibiscus.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/purple_hibiscus.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:purple_hibiscus" + "item": "environmental:purple_hibiscus" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/red_hibiscus.json b/src/main/resources/data/create/recipes/compat/environmental/milling/red_hibiscus.json similarity index 81% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/red_hibiscus.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/red_hibiscus.json index 5b50d8189..6424ad955 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/red_hibiscus.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/red_hibiscus.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:red_hibiscus" + "item": "environmental:red_hibiscus" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/environmental/milling/red_lotus_flower.json b/src/main/resources/data/create/recipes/compat/environmental/milling/red_lotus_flower.json new file mode 100644 index 000000000..7e3f96013 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/red_lotus_flower.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "environmental" + } + ], + "type": "create:milling", + "ingredients": [ + { + "item": "environmental:red_lotus_flower" + } + ], + "results": [ + { + "item": "minecraft:red_dye", + "count": 2 + }, + { + "item": "minecraft:red_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/violet.json b/src/main/resources/data/create/recipes/compat/environmental/milling/violet.json similarity index 83% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/violet.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/violet.json index fea46a464..b9be9005f 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/violet.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/violet.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:violet" + "item": "environmental:violet" } ], "results": [ diff --git a/src/main/resources/data/create/recipes/compat/environmental/milling/white_delphinium.json b/src/main/resources/data/create/recipes/compat/environmental/milling/white_delphinium.json new file mode 100644 index 000000000..9f49ca4d4 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/white_delphinium.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "environmental" + } + ], + "type": "create:milling", + "ingredients": [ + { + "item": "environmental:white_delphinium" + } + ], + "results": [ + { + "item": "minecraft:white_dye", + "count": 3 + }, + { + "item": "minecraft:white_dye", + "count": 1, + "chance": 0.1 + } + ], + "processingTime": 50 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/columbine.json b/src/main/resources/data/create/recipes/compat/environmental/milling/white_lotus_flower.json similarity index 71% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/columbine.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/white_lotus_flower.json index f5988729e..e024f73c5 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/columbine.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/white_lotus_flower.json @@ -2,22 +2,22 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:columbine" + "item": "environmental:white_lotus_flower" } ], "results": [ { - "item": "minecraft:purple_dye", + "item": "minecraft:white_dye", "count": 2 }, { - "item": "minecraft:white_dye", + "item": "minecraft:lime_dye", "count": 1, "chance": 0.1 } diff --git a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/yellow_hibiscus.json b/src/main/resources/data/create/recipes/compat/environmental/milling/yellow_hibiscus.json similarity index 81% rename from src/main/resources/data/create/recipes/compat/buzzier_bees/milling/yellow_hibiscus.json rename to src/main/resources/data/create/recipes/compat/environmental/milling/yellow_hibiscus.json index f2ce4cead..bd9b8453c 100644 --- a/src/main/resources/data/create/recipes/compat/buzzier_bees/milling/yellow_hibiscus.json +++ b/src/main/resources/data/create/recipes/compat/environmental/milling/yellow_hibiscus.json @@ -2,13 +2,13 @@ "conditions": [ { "type": "forge:mod_loaded", - "modid": "buzzierbees" + "modid": "environmental" } ], "type": "create:milling", "ingredients": [ { - "item": "buzzierbees:daybloom" + "item": "environmental:yellow_hibiscus" } ], "results": [ From 0b72781e077954e36fe8a0262c108f9c774134cd Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 7 May 2021 18:28:57 +1000 Subject: [PATCH 04/16] Add a crushing recipe for ice to obtain ice cubes when Neapolitan is present --- .../compat/neapolitan/crushing/ice.json | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/main/resources/data/create/recipes/compat/neapolitan/crushing/ice.json diff --git a/src/main/resources/data/create/recipes/compat/neapolitan/crushing/ice.json b/src/main/resources/data/create/recipes/compat/neapolitan/crushing/ice.json new file mode 100644 index 000000000..cc093968a --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/neapolitan/crushing/ice.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "neapolitan" + } + ], + "type": "create:crushing", + "ingredients": [ + { + "item": "minecraft:ice" + } + ], + "results": [ + { + "item": "neapolitan:ice_cubes", + "count": 3 + }, + { + "item": "neapolitan:ice_cubes", + "count": 3, + "chance": 0.25 + } + ], + "processingTime": 100 +} \ No newline at end of file From 14e6db837b287506f834a817f78def9c2df9a3ac Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 7 May 2021 18:32:10 +1000 Subject: [PATCH 05/16] Add filling and emptying recipes for Neapolitan's milk bottle --- .../neapolitan/emptying/milk_bottle.json | 23 +++++++++++++++++++ .../neapolitan/filling/milk_bottle.json | 23 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 src/main/resources/data/create/recipes/compat/neapolitan/emptying/milk_bottle.json create mode 100644 src/main/resources/data/create/recipes/compat/neapolitan/filling/milk_bottle.json diff --git a/src/main/resources/data/create/recipes/compat/neapolitan/emptying/milk_bottle.json b/src/main/resources/data/create/recipes/compat/neapolitan/emptying/milk_bottle.json new file mode 100644 index 000000000..f4785b681 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/neapolitan/emptying/milk_bottle.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "neapolitan" + } + ], + "type": "create:emptying", + "ingredients": [ + { + "item": "neapolitan:milk_bottle" + } + ], + "results": [ + { + "item": "minecraft:glass_bottle" + }, + { + "fluid": "create:milk", + "amount": 250 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/neapolitan/filling/milk_bottle.json b/src/main/resources/data/create/recipes/compat/neapolitan/filling/milk_bottle.json new file mode 100644 index 000000000..42ed87174 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/neapolitan/filling/milk_bottle.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "neapolitan" + } + ], + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:glass_bottle" + }, + { + "fluidTag": "forge:milk", + "amount": 250 + } + ], + "results": [ + { + "item": "neapolitan:milk_bottle" + } + ] +} \ No newline at end of file From f6150ce1c73d996acf52bc6bad2338bc802d83f8 Mon Sep 17 00:00:00 2001 From: Mario Date: Fri, 7 May 2021 18:35:34 +1000 Subject: [PATCH 06/16] Add pressing recipes for path blocks from Environmental, Atmospheric and BetterEnd (Forge) --- .../atmospheric/pressing/crustose_path.json | 21 +++++++++++++++++++ .../pressing/amber_moss_path.json | 21 +++++++++++++++++++ .../pressing/cave_moss_path.json | 21 +++++++++++++++++++ .../pressing/chorus_nylium_path.json | 21 +++++++++++++++++++ .../pressing/crystal_moss_path.json | 21 +++++++++++++++++++ .../pressing/end_moss_path.json | 21 +++++++++++++++++++ .../pressing/end_myclium_path.json | 21 +++++++++++++++++++ .../pressing/jungle_moss_path.json | 21 +++++++++++++++++++ .../pressing/pink_moss_path.json | 21 +++++++++++++++++++ .../pressing/shadow_grass_path.json | 21 +++++++++++++++++++ .../environmental/pressing/mycelium_path.json | 21 +++++++++++++++++++ 11 files changed, 231 insertions(+) create mode 100644 src/main/resources/data/create/recipes/compat/atmospheric/pressing/crustose_path.json create mode 100644 src/main/resources/data/create/recipes/compat/betterendforge/pressing/amber_moss_path.json create mode 100644 src/main/resources/data/create/recipes/compat/betterendforge/pressing/cave_moss_path.json create mode 100644 src/main/resources/data/create/recipes/compat/betterendforge/pressing/chorus_nylium_path.json create mode 100644 src/main/resources/data/create/recipes/compat/betterendforge/pressing/crystal_moss_path.json create mode 100644 src/main/resources/data/create/recipes/compat/betterendforge/pressing/end_moss_path.json create mode 100644 src/main/resources/data/create/recipes/compat/betterendforge/pressing/end_myclium_path.json create mode 100644 src/main/resources/data/create/recipes/compat/betterendforge/pressing/jungle_moss_path.json create mode 100644 src/main/resources/data/create/recipes/compat/betterendforge/pressing/pink_moss_path.json create mode 100644 src/main/resources/data/create/recipes/compat/betterendforge/pressing/shadow_grass_path.json create mode 100644 src/main/resources/data/create/recipes/compat/environmental/pressing/mycelium_path.json diff --git a/src/main/resources/data/create/recipes/compat/atmospheric/pressing/crustose_path.json b/src/main/resources/data/create/recipes/compat/atmospheric/pressing/crustose_path.json new file mode 100644 index 000000000..d46e53cd2 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/atmospheric/pressing/crustose_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "atmospheric" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "atmospheric:crustose" + } + ] + ], + "results": [ + { + "item": "atmospheric:crustose_path" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/betterendforge/pressing/amber_moss_path.json b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/amber_moss_path.json new file mode 100644 index 000000000..4a580ce1d --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/amber_moss_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "betterendforge" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "betterendforge:amber_moss" + } + ] + ], + "results": [ + { + "item": "betterendforge:amber_moss_path" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/betterendforge/pressing/cave_moss_path.json b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/cave_moss_path.json new file mode 100644 index 000000000..ee93ce6f5 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/cave_moss_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "betterendforge" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "betterendforge:cave_moss" + } + ] + ], + "results": [ + { + "item": "betterendforge:cave_moss_path" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/betterendforge/pressing/chorus_nylium_path.json b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/chorus_nylium_path.json new file mode 100644 index 000000000..96c02b035 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/chorus_nylium_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "betterendforge" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "betterendforge:chorus_nylium" + } + ] + ], + "results": [ + { + "item": "betterendforge:chorus_nylium_path" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/betterendforge/pressing/crystal_moss_path.json b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/crystal_moss_path.json new file mode 100644 index 000000000..40e7bb3f5 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/crystal_moss_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "betterendforge" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "betterendforge:crystal_moss" + } + ] + ], + "results": [ + { + "item": "betterendforge:crystal_moss_path" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/betterendforge/pressing/end_moss_path.json b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/end_moss_path.json new file mode 100644 index 000000000..48d9d7991 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/end_moss_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "betterendforge" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "betterendforge:end_moss" + } + ] + ], + "results": [ + { + "item": "betterendforge:end_moss_path" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/betterendforge/pressing/end_myclium_path.json b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/end_myclium_path.json new file mode 100644 index 000000000..d117d9df6 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/end_myclium_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "betterendforge" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "betterendforge:end_mycelium" + } + ] + ], + "results": [ + { + "item": "betterendforge:end_mycelium_path" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/betterendforge/pressing/jungle_moss_path.json b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/jungle_moss_path.json new file mode 100644 index 000000000..36fc2aa30 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/jungle_moss_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "betterendforge" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "betterendforge:jungle_moss" + } + ] + ], + "results": [ + { + "item": "betterendforge:jungle_moss_path" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/betterendforge/pressing/pink_moss_path.json b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/pink_moss_path.json new file mode 100644 index 000000000..f41bcf66c --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/pink_moss_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "betterendforge" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "betterendforge:pink_moss" + } + ] + ], + "results": [ + { + "item": "betterendforge:pink_moss_path" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/betterendforge/pressing/shadow_grass_path.json b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/shadow_grass_path.json new file mode 100644 index 000000000..2194ae013 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/betterendforge/pressing/shadow_grass_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "betterendforge" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "betterendforge:shadow_grass" + } + ] + ], + "results": [ + { + "item": "betterendforge:shadow_grass_path" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/environmental/pressing/mycelium_path.json b/src/main/resources/data/create/recipes/compat/environmental/pressing/mycelium_path.json new file mode 100644 index 000000000..452fcc3ab --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/environmental/pressing/mycelium_path.json @@ -0,0 +1,21 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "environmental" + } + ], + "type": "create:pressing", + "ingredients": [ + [ + { + "item": "minecraft:mycelium" + } + ] + ], + "results": [ + { + "item": "environmental:mycelium_path" + } + ] +} \ No newline at end of file From 3ebf1d6c64154c26cf62717b711d924d7abb0204 Mon Sep 17 00:00:00 2001 From: Mario Date: Tue, 11 May 2021 23:16:09 +1000 Subject: [PATCH 07/16] Add filling and emptying recipes for Alex's Mobs' lava bottles --- .../alexsmobs/emptying/lava_bottle.json | 23 +++++++++++++++++++ .../compat/alexsmobs/filling/lava_bottle.json | 23 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 src/main/resources/data/create/recipes/compat/alexsmobs/emptying/lava_bottle.json create mode 100644 src/main/resources/data/create/recipes/compat/alexsmobs/filling/lava_bottle.json diff --git a/src/main/resources/data/create/recipes/compat/alexsmobs/emptying/lava_bottle.json b/src/main/resources/data/create/recipes/compat/alexsmobs/emptying/lava_bottle.json new file mode 100644 index 000000000..bf3ed681e --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/alexsmobs/emptying/lava_bottle.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "alexsmobs" + } + ], + "type": "create:emptying", + "ingredients": [ + { + "item": "alexsmobs:lava_bottle" + } + ], + "results": [ + { + "item": "minecraft:glass_bottle" + }, + { + "fluid": "minecraft:lava", + "amount": 250 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/alexsmobs/filling/lava_bottle.json b/src/main/resources/data/create/recipes/compat/alexsmobs/filling/lava_bottle.json new file mode 100644 index 000000000..a32b4262b --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/alexsmobs/filling/lava_bottle.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "alexsmobs" + } + ], + "type": "create:filling", + "ingredients": [ + { + "item": "minecraft:glass_bottle" + }, + { + "fluid": "minecraft:lava", + "amount": 250 + } + ], + "results": [ + { + "item": "alexsmobs:lava_bottle" + } + ] +} \ No newline at end of file From ee480a7f46eede6ee304763d0157eefd9fd85db5 Mon Sep 17 00:00:00 2001 From: Mario Date: Wed, 12 May 2021 19:48:40 +1000 Subject: [PATCH 08/16] Add Supplementaries support for milling flax and washing blackboards --- .../compat/supplementaries/milling/flax.json | 29 +++++++++++++++++++ .../supplementaries/splashing/blackboard.json | 19 ++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 src/main/resources/data/create/recipes/compat/supplementaries/milling/flax.json create mode 100644 src/main/resources/data/create/recipes/compat/supplementaries/splashing/blackboard.json diff --git a/src/main/resources/data/create/recipes/compat/supplementaries/milling/flax.json b/src/main/resources/data/create/recipes/compat/supplementaries/milling/flax.json new file mode 100644 index 000000000..178dfd21d --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/supplementaries/milling/flax.json @@ -0,0 +1,29 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "supplementaries" + } + ], + "type": "create:milling", + "ingredients": [ + { + "item": "supplementaries:flax" + } + ], + "results": [ + { + "item": "minecraft:string" + }, + { + "item": "minecraft:string", + "count": 2, + "chance": 0.25 + }, + { + "item": "supplementaries:flax_seeds", + "chance": 0.25 + } + ], + "processingTime": 150 +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/supplementaries/splashing/blackboard.json b/src/main/resources/data/create/recipes/compat/supplementaries/splashing/blackboard.json new file mode 100644 index 000000000..badf6115d --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/supplementaries/splashing/blackboard.json @@ -0,0 +1,19 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "supplementaries" + } + ], + "type": "create:splashing", + "ingredients": [ + { + "item": "supplementaries:blackboard" + } + ], + "results": [ + { + "item": "supplementaries:blackboard" + } + ] +} \ No newline at end of file From a54107baf10d91aa1859f67df93cf405eb2892d3 Mon Sep 17 00:00:00 2001 From: Mario Date: Wed, 12 May 2021 19:49:27 +1000 Subject: [PATCH 09/16] Add washing recipes for Endergetic Expansion's petrified items --- .../splashing/petrified_end_corrock.json | 19 +++++++++++++++++++ .../petrified_end_corrock_block.json | 19 +++++++++++++++++++ .../petrified_end_corrock_crown.json | 19 +++++++++++++++++++ .../splashing/petrified_nether_corrock.json | 19 +++++++++++++++++++ .../petrified_nether_corrock_block.json | 19 +++++++++++++++++++ .../petrified_nether_corrock_crown.json | 19 +++++++++++++++++++ .../petrified_overworld_corrock.json | 19 +++++++++++++++++++ .../petrified_overworld_corrock_block.json | 19 +++++++++++++++++++ .../petrified_overworld_corrock_crown.json | 19 +++++++++++++++++++ 9 files changed, 171 insertions(+) create mode 100644 src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock.json create mode 100644 src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock_block.json create mode 100644 src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock_crown.json create mode 100644 src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock.json create mode 100644 src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock_block.json create mode 100644 src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock_crown.json create mode 100644 src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock.json create mode 100644 src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock_block.json create mode 100644 src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock_crown.json diff --git a/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock.json b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock.json new file mode 100644 index 000000000..922cd9445 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock.json @@ -0,0 +1,19 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "endergetic" + } + ], + "type": "create:splashing", + "ingredients": [ + { + "item": "endergetic:end_corrock" + } + ], + "results": [ + { + "item": "endergetic:petrified_end_corrock" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock_block.json b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock_block.json new file mode 100644 index 000000000..33f3e4598 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock_block.json @@ -0,0 +1,19 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "endergetic" + } + ], + "type": "create:splashing", + "ingredients": [ + { + "item": "endergetic:end_corrock_block" + } + ], + "results": [ + { + "item": "endergetic:petrified_end_corrock_block" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock_crown.json b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock_crown.json new file mode 100644 index 000000000..f0bdfc6e1 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_end_corrock_crown.json @@ -0,0 +1,19 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "endergetic" + } + ], + "type": "create:splashing", + "ingredients": [ + { + "item": "endergetic:end_corrock_crown" + } + ], + "results": [ + { + "item": "endergetic:petrified_end_corrock_crown" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock.json b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock.json new file mode 100644 index 000000000..5f0e48f9f --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock.json @@ -0,0 +1,19 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "endergetic" + } + ], + "type": "create:splashing", + "ingredients": [ + { + "item": "endergetic:nether_corrock" + } + ], + "results": [ + { + "item": "endergetic:petrified_nether_corrock" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock_block.json b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock_block.json new file mode 100644 index 000000000..5a28a9723 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock_block.json @@ -0,0 +1,19 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "endergetic" + } + ], + "type": "create:splashing", + "ingredients": [ + { + "item": "endergetic:nether_corrock_block" + } + ], + "results": [ + { + "item": "endergetic:petrified_nether_corrock_block" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock_crown.json b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock_crown.json new file mode 100644 index 000000000..6613d9bb4 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_nether_corrock_crown.json @@ -0,0 +1,19 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "endergetic" + } + ], + "type": "create:splashing", + "ingredients": [ + { + "item": "endergetic:nether_corrock_crown" + } + ], + "results": [ + { + "item": "endergetic:petrified_nether_corrock_crown" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock.json b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock.json new file mode 100644 index 000000000..82cd86c81 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock.json @@ -0,0 +1,19 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "endergetic" + } + ], + "type": "create:splashing", + "ingredients": [ + { + "item": "endergetic:overworld_corrock" + } + ], + "results": [ + { + "item": "endergetic:petrified_overworld_corrock" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock_block.json b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock_block.json new file mode 100644 index 000000000..8f451fa5f --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock_block.json @@ -0,0 +1,19 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "endergetic" + } + ], + "type": "create:splashing", + "ingredients": [ + { + "item": "endergetic:overworld_corrock_block" + } + ], + "results": [ + { + "item": "endergetic:petrified_overworld_corrock_block" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock_crown.json b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock_crown.json new file mode 100644 index 000000000..840b884a0 --- /dev/null +++ b/src/main/resources/data/create/recipes/compat/endergetic/splashing/petrified_overworld_corrock_crown.json @@ -0,0 +1,19 @@ +{ + "conditions": [ + { + "type": "forge:mod_loaded", + "modid": "endergetic" + } + ], + "type": "create:splashing", + "ingredients": [ + { + "item": "endergetic:overworld_corrock_crown" + } + ], + "results": [ + { + "item": "endergetic:petrified_overworld_corrock_crown" + } + ] +} \ No newline at end of file From 6d177c436689e37703a3ae77030455e8dadc827a Mon Sep 17 00:00:00 2001 From: PepperBell <44146161+PepperCode1@users.noreply.github.com> Date: Sat, 19 Jun 2021 12:44:03 -0700 Subject: [PATCH 10/16] Post-PR datagen --- src/generated/resources/.cache/cache | 4 ++-- .../resources/data/create/advancements/aesthetics.json | 4 ++-- .../resources/data/create/recipes/pressing/path.json | 3 --- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 225c09883..fab931e6d 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -1654,7 +1654,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json 6490fa0587db770cf7c794b47f3bcd2b691f4226 assets/create/sounds.json -5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json +0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json 187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json 0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json 83c046bd200623933545c9e4326f782fb02c87fa data/create/advancements/arm_blaze_burner.json @@ -3518,7 +3518,7 @@ eae06580a0a5f486cde35426716d50fcb3ba5bb3 data/create/recipes/polished_weathered_ 0fa8386648398724f6fd373178b706c6b11ddefc data/create/recipes/pressing/gold_ingot.json a104ef6eb8872a40ea7b2ef67ae54cec943162f0 data/create/recipes/pressing/iron_ingot.json 7f9e72ec02a9926656744a95066f8aa304514565 data/create/recipes/pressing/lapis_block.json -654e274b07af172c22838d47e0974367c20101d4 data/create/recipes/pressing/path.json +b472136cdc8e87fa65a812a359542bdc484f27ec data/create/recipes/pressing/path.json bd57ccc8eb4357b4a5af021db7b806b514cd2558 data/create/recipes/pressing/sugar_cane.json 141173778757d87e7f2e9466bdab6ff1263c8e98 data/create/recipes/sandpaper_polishing/rose_quartz.json 5ab9c8271a9e1d4a863940aeafd1f8816cb37a29 data/create/recipes/scoria.json diff --git a/src/generated/resources/data/create/advancements/aesthetics.json b/src/generated/resources/data/create/advancements/aesthetics.json index 59a86f429..d723cbe38 100644 --- a/src/generated/resources/data/create/advancements/aesthetics.json +++ b/src/generated/resources/data/create/advancements/aesthetics.json @@ -28,8 +28,8 @@ "trigger": "create:bracket_apply", "conditions": { "accepted_entries": [ - "create:large_cogwheel", - "create:cogwheel" + "create:cogwheel", + "create:large_cogwheel" ] } }, diff --git a/src/generated/resources/data/create/recipes/pressing/path.json b/src/generated/resources/data/create/recipes/pressing/path.json index b9a17c39f..7c98111e3 100644 --- a/src/generated/resources/data/create/recipes/pressing/path.json +++ b/src/generated/resources/data/create/recipes/pressing/path.json @@ -7,9 +7,6 @@ }, { "item": "minecraft:dirt" - }, - { - "item": "minecraft:podzol" } ] ], From e71d03c375609175bdcf8d6830e0064a1c97f140 Mon Sep 17 00:00:00 2001 From: reidbhuntley Date: Sun, 20 Jun 2021 01:55:08 -0400 Subject: [PATCH 11/16] Fix Deployer inventory-voiding bug - Deployers' inventories will no longer be voided when their contraption is disassembled and reassembled before the DeployerTileEntity can initialize --- .../contraptions/components/deployer/DeployerTileEntity.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java index 486de2d0e..6a21a0127 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java @@ -327,12 +327,13 @@ public class DeployerTileEntity extends KineticTileEntity { compound.putBoolean("Powered", redstoneLocked); if (player != null) { - compound.put("HeldItem", player.getHeldItemMainhand() - .serializeNBT()); ListNBT invNBT = new ListNBT(); player.inventory.write(invNBT); compound.put("Inventory", invNBT); + compound.put("HeldItem", player.getHeldItemMainhand().serializeNBT()); compound.put("Overflow", NBTHelper.writeItemList(overflowItems)); + } else if (deferredInventoryList != null) { + compound.put("Inventory", deferredInventoryList); } super.write(compound, clientPacket); From ba0e851487583e782368bce67459559f7548726f Mon Sep 17 00:00:00 2001 From: reidbhuntley Date: Sun, 20 Jun 2021 11:07:27 -0400 Subject: [PATCH 12/16] Fix inconsistency with Deployers on contraptions - Previously Deployers would sometimes collide with the contraption entity they were a part of and their activation would be consumed --- .../contraptions/components/deployer/DeployerHandler.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java index 081efd0ff..b15e827a9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerHandler.java @@ -5,9 +5,11 @@ import static net.minecraftforge.eventbus.api.Event.Result.DENY; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import javax.annotation.Nullable; +import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlockItem; import net.minecraft.block.DoublePlantBlock; @@ -150,7 +152,9 @@ public class DeployerHandler { // Check for entities final ServerWorld world = player.getServerWorld(); - List entities = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(clickedPos)); + List entities = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(clickedPos)).stream() + .filter(e -> !(e instanceof AbstractContraptionEntity)) + .collect(Collectors.toList()); Hand hand = Hand.MAIN_HAND; if (!entities.isEmpty()) { Entity entity = entities.get(world.rand.nextInt(entities.size())); From 813a1ccaba00dd4f1eba72fe626bd29a2a34d2a4 Mon Sep 17 00:00:00 2001 From: reidbhuntley Date: Sun, 20 Jun 2021 15:00:31 -0400 Subject: [PATCH 13/16] Prevent Belts under Tunnels from picking up item entities --- .../contraptions/relays/belt/BeltBlock.java | 10 +++++-- .../BeltTunnelInteractionHandler.java | 28 +++++++++---------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java index 1a1c111b2..e3c2e81a9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import com.simibubi.create.content.contraptions.relays.belt.transport.BeltTunnelInteractionHandler; + import org.apache.commons.lang3.mutable.MutableBoolean; import com.simibubi.create.AllBlocks; @@ -198,6 +200,8 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE { ItemEntity itemEntity = (ItemEntity) entityIn; IItemHandler handler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) @@ -362,7 +366,7 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE { if (context.getEntity() == null) @@ -371,10 +375,10 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE Date: Mon, 21 Jun 2021 18:46:31 +0200 Subject: [PATCH 14/16] Thinking with Pipes - Implemented ponder scenes for Fluid Pipes and Copper Casing - Adjusted Fluid transfer, containment and rendering behaviours to function in 'virtual' environments --- src/generated/resources/.cache/cache | 28 +- .../resources/assets/create/lang/en_us.json | 15 + .../assets/create/lang/unfinished/de_de.json | 17 +- .../assets/create/lang/unfinished/es_es.json | 17 +- .../assets/create/lang/unfinished/es_mx.json | 17 +- .../assets/create/lang/unfinished/fr_fr.json | 17 +- .../assets/create/lang/unfinished/it_it.json | 17 +- .../assets/create/lang/unfinished/ja_jp.json | 17 +- .../assets/create/lang/unfinished/ko_kr.json | 17 +- .../assets/create/lang/unfinished/nl_nl.json | 17 +- .../assets/create/lang/unfinished/pl_pl.json | 17 +- .../assets/create/lang/unfinished/pt_br.json | 17 +- .../assets/create/lang/unfinished/ru_ru.json | 17 +- .../assets/create/lang/unfinished/zh_cn.json | 17 +- .../assets/create/lang/unfinished/zh_tw.json | 17 +- .../fluids/FluidTransportBehaviour.java | 12 +- .../contraptions/fluids/OpenEndedPipe.java | 5 +- .../contraptions/fluids/PipeConnection.java | 14 +- .../contraptions/fluids/PumpTileEntity.java | 5 +- .../fluids/tank/FluidTankTileEntity.java | 12 +- .../foundation/fluid/FluidRenderer.java | 6 + .../create/foundation/ponder/PonderWorld.java | 61 ++- .../foundation/ponder/SceneBuilder.java | 6 + .../ponder/content/DebugScenes.java | 13 + .../ponder/content/PonderIndex.java | 8 +- .../ponder/content/fluid/PipeScenes.java | 401 +++++++++++++++--- .../ponder/elements/WorldSectionElement.java | 17 +- .../fluid/SmartFluidTankBehaviour.java | 9 +- .../create/foundation/utility/Debug.java | 20 +- src/main/resources/ponder/debug/scene_10.nbt | Bin 0 -> 1142 bytes .../resources/ponder/fluid_pipe/encasing.nbt | Bin 0 -> 561 bytes src/main/resources/ponder/fluid_pipe/flow.nbt | Bin 0 -> 950 bytes .../ponder/fluid_pipe/interaction.nbt | Bin 0 -> 1243 bytes 33 files changed, 722 insertions(+), 131 deletions(-) create mode 100644 src/main/resources/ponder/debug/scene_10.nbt create mode 100644 src/main/resources/ponder/fluid_pipe/encasing.nbt create mode 100644 src/main/resources/ponder/fluid_pipe/flow.nbt create mode 100644 src/main/resources/ponder/fluid_pipe/interaction.nbt diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index fab931e6d..41feaf092 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -408,20 +408,20 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json c71f5246d2cb8e9913d1552d23fcc82c43cde7a0 assets/create/lang/en_ud.json -ecb2b14e09668bb04ead075b25751af4d47d530a assets/create/lang/en_us.json -32a311fee8bea2504ec80f4ecfabf64afc994109 assets/create/lang/unfinished/de_de.json -af669cb92010605ebb73ea48bad9215e8efa216b assets/create/lang/unfinished/es_es.json -23dce1fd449f6e0e747c10508f9551edb3912a69 assets/create/lang/unfinished/es_mx.json -461155a3e7555df12d07748e7b8c7ca137f2ce69 assets/create/lang/unfinished/fr_fr.json -9cb68aeeeb220466ec4766ac7fd4adc4a28a14ee assets/create/lang/unfinished/it_it.json -1a287c031e3a9cd370e61b8912a2d1f39273b051 assets/create/lang/unfinished/ja_jp.json -0eaa7a9f39f3cd8be5b88e61992cf3198b76689d assets/create/lang/unfinished/ko_kr.json -db87b45eff6bd38dd1774510fa54429c47c194b9 assets/create/lang/unfinished/nl_nl.json -4c90c5055d090adc5765e8ab80f73f7e22185151 assets/create/lang/unfinished/pl_pl.json -bf04fa57b3e3efee8c6989b69f98fb374c8eff86 assets/create/lang/unfinished/pt_br.json -c8f9159b77f8176c994fb008d9b57f9154f48c6d assets/create/lang/unfinished/ru_ru.json -9f55faa2273c7493fe66aa7d369bfdd6edcb2a3f assets/create/lang/unfinished/zh_cn.json -9333985168408e58aa76f9c865b2c5fad4691527 assets/create/lang/unfinished/zh_tw.json +0352f128a214a76365bae7365d7904536ffccbba assets/create/lang/en_us.json +d2fe2b5beb7c4b7d05842dc45da6630dd1f0611f assets/create/lang/unfinished/de_de.json +a486966e82368a85f4c6c5c6b4fd17b0b6e260b4 assets/create/lang/unfinished/es_es.json +94c05715d19c5ceced368c4aa4307b5184eb9d0f assets/create/lang/unfinished/es_mx.json +44fe3efbe33085dc4248ba7ee94e35065aab5cca assets/create/lang/unfinished/fr_fr.json +c53beea261e7a64bdbe397481a2010bb166b10ce assets/create/lang/unfinished/it_it.json +2d75e6eb0c1683ef4856acf86b4f1e49d9e7b9b2 assets/create/lang/unfinished/ja_jp.json +a0d8634f363ee47f3e5ac568d5b63cc6e25a4267 assets/create/lang/unfinished/ko_kr.json +75e6dcc51ef14e39fd7ec1a87a0bbc945ef12637 assets/create/lang/unfinished/nl_nl.json +93b883e54947c1a1869984bc4e764c34b7055998 assets/create/lang/unfinished/pl_pl.json +fc093fa80821bfc4076261dcf1ec56c21edc2262 assets/create/lang/unfinished/pt_br.json +c5b4013e8758f6bfde86eb2d25ec920b5d25c7d1 assets/create/lang/unfinished/ru_ru.json +5bb493fd0d4a05d4b83db99eacea460cb96f8f1a assets/create/lang/unfinished/zh_cn.json +9c049cc88deb8b319c6de28caa417eea9baa7f79 assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 952a35eac..e7537f5da 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1751,6 +1751,9 @@ "create.ponder.empty_blaze_burner.text_5": "However, these are not suitable for industrial heating", "create.ponder.encased_fluid_pipe.header": "Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "Air flow of Encased Fans", "create.ponder.fan_direction.text_1": "Encased Fans use Rotational Force to create an Air Current", @@ -1771,8 +1774,20 @@ "create.ponder.fan_source.text_2": "When given a Redstone Signal, the Fans will start providing power", "create.ponder.fluid_pipe_flow.header": "Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index 65187531b..d1e028884 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1024", + "_": "Missing Localizations: 1039", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "UNLOCALIZED: Air flow of Encased Fans", "create.ponder.fan_direction.text_1": "UNLOCALIZED: Encased Fans use Rotational Force to create an Air Current", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index 973e7e921..56f7e7460 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 725", + "_": "Missing Localizations: 740", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "UNLOCALIZED: Air flow of Encased Fans", "create.ponder.fan_direction.text_1": "UNLOCALIZED: Encased Fans use Rotational Force to create an Air Current", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_mx.json b/src/generated/resources/assets/create/lang/unfinished/es_mx.json index 3dff56990..208abfcf0 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_mx.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_mx.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1337", + "_": "Missing Localizations: 1352", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "UNLOCALIZED: Air flow of Encased Fans", "create.ponder.fan_direction.text_1": "UNLOCALIZED: Encased Fans use Rotational Force to create an Air Current", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index cec3e9464..f852897b6 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1276", + "_": "Missing Localizations: 1291", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "UNLOCALIZED: Air flow of Encased Fans", "create.ponder.fan_direction.text_1": "UNLOCALIZED: Encased Fans use Rotational Force to create an Air Current", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 65467970e..4bb49e83f 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 742", + "_": "Missing Localizations: 757", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "UNLOCALIZED: Air flow of Encased Fans", "create.ponder.fan_direction.text_1": "UNLOCALIZED: Encased Fans use Rotational Force to create an Air Current", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 486c11fae..5ca80c09d 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 106", + "_": "Missing Localizations: 121", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "しかし、これは加工用の熱源には適していません", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "ケース入りファンの気流", "create.ponder.fan_direction.text_1": "ケース入りファンは、回転力を利用して気流を生み出します", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "レッドストーン信号を受けると、回転力が生成されます", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index adcd4692d..d10fc6a39 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 795", + "_": "Missing Localizations: 810", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "UNLOCALIZED: Air flow of Encased Fans", "create.ponder.fan_direction.text_1": "UNLOCALIZED: Encased Fans use Rotational Force to create an Air Current", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 4e870daaf..72b9df586 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1659", + "_": "Missing Localizations: 1674", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "UNLOCALIZED: Air flow of Encased Fans", "create.ponder.fan_direction.text_1": "UNLOCALIZED: Encased Fans use Rotational Force to create an Air Current", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index 67dac6ca4..18dc98c92 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 82", + "_": "Missing Localizations: 97", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "Nie będzie on dawał jednak ciepła", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "Przepływ powietrza przez izolowane wiatraki", "create.ponder.fan_direction.text_1": "Izolowane wiatraki używają siły obrotowej, aby wytworzyć przepływ powietrza", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "Po zasileniu, wiatraki zaczną przesyłać siłę do przylegających komponentów", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index c5c1ec0c6..327048fc1 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1700", + "_": "Missing Localizations: 1715", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "UNLOCALIZED: Air flow of Encased Fans", "create.ponder.fan_direction.text_1": "UNLOCALIZED: Encased Fans use Rotational Force to create an Air Current", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index 7b53ce1b1..e9358caf7 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 639", + "_": "Missing Localizations: 654", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "UNLOCALIZED: Air flow of Encased Fans", "create.ponder.fan_direction.text_1": "UNLOCALIZED: Encased Fans use Rotational Force to create an Air Current", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index a275acd0d..dd31aeb2c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 125", + "_": "Missing Localizations: 140", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "但是,这样的热源不足以给机器提加工供足够的热量", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "鼓风机的气流", "create.ponder.fan_direction.text_1": "鼓风机使用旋转力来制造气流", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "当鼓风机接受红石信号后,它便会向外供给旋转力", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index ed3bfc17a..af9c043ad 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 118", + "_": "Missing Localizations: 133", "_": "->------------------------] Game Elements [------------------------<-", @@ -1752,6 +1752,9 @@ "create.ponder.empty_blaze_burner.text_5": "但是,這樣的熱源不足以給機器提加工供足夠的熱量", "create.ponder.encased_fluid_pipe.header": "UNLOCALIZED: Encasing Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_1": "UNLOCALIZED: Copper Casing can be used to decorate Fluid Pipes", + "create.ponder.encased_fluid_pipe.text_2": "UNLOCALIZED: Aside from being conceiled, Encased Pipes are locked into their connectivity state", + "create.ponder.encased_fluid_pipe.text_3": "UNLOCALIZED: It will no longer react to any neighbouring blocks being added or removed", "create.ponder.fan_direction.header": "鼓風機的氣流", "create.ponder.fan_direction.text_1": "鼓風機使用動能來製造氣流", @@ -1772,8 +1775,20 @@ "create.ponder.fan_source.text_2": "當鼓風機接受紅石訊號後,它便會向外供給動能", "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", + "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", + "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", + "create.ponder.fluid_pipe_flow.text_3": "UNLOCALIZED: Windowed pipes will not connect to any other adjacent pipe segments", + "create.ponder.fluid_pipe_flow.text_4": "UNLOCALIZED: Powered by Mechanical Pumps, the Pipes can transport Fluids", + "create.ponder.fluid_pipe_flow.text_5": "UNLOCALIZED: No fluid is being extracted at first", + "create.ponder.fluid_pipe_flow.text_6": "UNLOCALIZED: Once the flow connects them, the endpoints gradually transfer their contents", + "create.ponder.fluid_pipe_flow.text_7": "UNLOCALIZED: Thus, the Pipe blocks themselves never 'physically' contain any fluid", "create.ponder.fluid_pipe_interaction.header": "UNLOCALIZED: Draining and Filling fluid containers", + "create.ponder.fluid_pipe_interaction.text_1": "UNLOCALIZED: Endpoints of a pipe network can interact with a variety of blocks", + "create.ponder.fluid_pipe_interaction.text_2": "UNLOCALIZED: Any block with fluid storage capabilities can be filled or drained", + "create.ponder.fluid_pipe_interaction.text_3": "UNLOCALIZED: Source blocks right in front of an open end can be picked up...", + "create.ponder.fluid_pipe_interaction.text_4": "UNLOCALIZED: ...while spilling into empty spaces can create fluid sources", + "create.ponder.fluid_pipe_interaction.text_5": "UNLOCALIZED: Pipes can also extract fluids from a handful of other blocks directly", "create.ponder.fluid_tank_sizes.header": "UNLOCALIZED: Dimensions of a Fluid tank", diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java index 9cb460344..027db42d1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/FluidTransportBehaviour.java @@ -60,8 +60,8 @@ public abstract class FluidTransportBehaviour extends TileEntityBehaviour { super.tick(); World world = getWorld(); BlockPos pos = getPos(); - boolean onClient = world.isRemote; - + boolean onServer = !world.isRemote || tileEntity.isVirtual(); + if (interfaces == null) return; Collection connections = interfaces.values(); @@ -81,7 +81,7 @@ public abstract class FluidTransportBehaviour extends TileEntityBehaviour { return; } - if (!onClient) { + if (onServer) { boolean sendUpdate = false; for (PipeConnection connection : connections) { sendUpdate |= connection.flipFlowsIfPressureReversed(); @@ -96,7 +96,7 @@ public abstract class FluidTransportBehaviour extends TileEntityBehaviour { return; } - if (!onClient) { + if (onServer) { FluidStack availableFlow = FluidStack.EMPTY; FluidStack collidingFlow = FluidStack.EMPTY; @@ -131,7 +131,7 @@ public abstract class FluidTransportBehaviour extends TileEntityBehaviour { sendUpdate |= connection.manageFlows(world, pos, internalFluid, extractionPredicate); } - if (sendUpdate) + if (sendUpdate) tileEntity.notifyUpdate(); } @@ -155,7 +155,7 @@ public abstract class FluidTransportBehaviour extends TileEntityBehaviour { } interfaces.values() - .forEach(connection -> connection.deserializeNBT(nbt, clientPacket)); + .forEach(connection -> connection.deserializeNBT(nbt, tileEntity.getPos(), clientPacket)); } @Override diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java index 7cc6874b3..affb969e3 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/OpenEndedPipe.java @@ -208,8 +208,9 @@ public class OpenEndedPipe extends FlowSource { return compound; } - public static OpenEndedPipe fromNBT(CompoundNBT compound) { - OpenEndedPipe oep = new OpenEndedPipe(BlockFace.fromNBT(compound.getCompound("Location"))); + public static OpenEndedPipe fromNBT(CompoundNBT compound, BlockPos tilePos) { + BlockFace fromNBT = BlockFace.fromNBT(compound.getCompound("Location")); + OpenEndedPipe oep = new OpenEndedPipe(new BlockFace(tilePos, fromNBT.getFace())); oep.fluidHandler.readFromNBT(compound); oep.wasPulling = compound.getBoolean("Pulling"); return oep; diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java index 5f3fc685b..072abea8c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PipeConnection.java @@ -239,7 +239,7 @@ public class PipeConnection { return source.orElse(null) instanceof OpenEndedPipe; } - public void deserializeNBT(CompoundNBT tag, boolean clientPacket) { + public void deserializeNBT(CompoundNBT tag, BlockPos tilePos, boolean clientPacket) { CompoundNBT connectionData = tag.getCompound(side.getName2()); if (connectionData.contains("Pressure")) { @@ -250,7 +250,7 @@ public class PipeConnection { source = Optional.empty(); if (connectionData.contains("OpenEnd")) - source = Optional.of(OpenEndedPipe.fromNBT(connectionData.getCompound("OpenEnd"))); + source = Optional.of(OpenEndedPipe.fromNBT(connectionData.getCompound("OpenEnd"), tilePos)); if (connectionData.contains("Flow")) { CompoundNBT flowData = connectionData.getCompound("Flow"); @@ -367,8 +367,9 @@ public class PipeConnection { @OnlyIn(Dist.CLIENT) private void spawnParticlesInner(World world, BlockPos pos, FluidStack fluid) { - if (!isRenderEntityWithinDistance(pos)) - return; + if (world == Minecraft.getInstance().world) + if (!isRenderEntityWithinDistance(pos)) + return; if (hasOpenEnd()) spawnPouringLiquid(world, pos, fluid, 1); else if (r.nextFloat() < IDLE_PARTICLE_SPAWN_CHANCE) @@ -377,8 +378,9 @@ public class PipeConnection { @OnlyIn(Dist.CLIENT) private void spawnSplashOnRimInner(World world, BlockPos pos, FluidStack fluid) { - if (!isRenderEntityWithinDistance(pos)) - return; + if (world == Minecraft.getInstance().world) + if (!isRenderEntityWithinDistance(pos)) + return; spawnRimParticles(world, pos, fluid, SPLASH_PARTICLE_AMOUNT); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpTileEntity.java index 77dd51c68..75195f266 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/PumpTileEntity.java @@ -70,7 +70,8 @@ public class PumpTileEntity extends KineticTileEntity { return; arrowDirection.chase(speed >= 0 ? 1 : -1, .5f, Chaser.EXP); arrowDirection.tickChaser(); - return; + if (!isVirtual()) + return; } sidesToUpdate.forEachWithContext((update, isFront) -> { @@ -96,7 +97,7 @@ public class PumpTileEntity extends KineticTileEntity { return; if (speed != 0) reversed = speed < 0; - if (world.isRemote) + if (world.isRemote && !isVirtual()) return; BlockPos frontPos = pos.offset(getFront()); diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankTileEntity.java index 6b38d00f2..47c27575f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/FluidTankTileEntity.java @@ -105,6 +105,10 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI if (fluidLevel != null) fluidLevel.tick(); } + + public BlockPos getLastKnownPos() { + return lastKnownPos; + } public boolean isController() { return controller == null @@ -157,6 +161,12 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI markDirty(); sendData(); } + + if (isVirtual()) { + if (fluidLevel == null) + fluidLevel = new InterpolatedChasingValue().start(getFillState()); + fluidLevel.target(getFillState()); + } } protected void setLuminosity(int luminosity) { @@ -268,7 +278,7 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI } public void setController(BlockPos controller) { - if (world.isRemote) + if (world.isRemote && !isVirtual()) return; if (controller.equals(this.controller)) return; diff --git a/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java b/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java index 23d8a0624..70ad7c272 100644 --- a/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java +++ b/src/main/java/com/simibubi/create/foundation/fluid/FluidRenderer.java @@ -5,6 +5,7 @@ import java.util.function.Function; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.matrix.MatrixStack.Entry; import com.mojang.blaze3d.vertex.IVertexBuilder; +import com.simibubi.create.foundation.renderState.SuperRenderTypeBuffer; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.ColorHelper; import com.simibubi.create.foundation.utility.Iterate; @@ -39,6 +40,9 @@ public class FluidRenderer { int color = fluidAttributes.getColor(fluidStack); IVertexBuilder builder = buffer.getBuffer(RenderType.getTranslucent()); + if (buffer instanceof SuperRenderTypeBuffer) + builder = ((SuperRenderTypeBuffer) buffer).getLateBuffer(RenderType.getTranslucent()); + MatrixStacker msr = MatrixStacker.of(ms); int blockLightIn = (light >> 4) & 0xf; int luminosity = Math.max(blockLightIn, fluidAttributes.getLuminosity(fluidStack)); @@ -87,6 +91,8 @@ public class FluidRenderer { int color = fluidAttributes.getColor(fluidStack); IVertexBuilder builder = buffer.getBuffer(RenderType.getTranslucent()); + if (buffer instanceof SuperRenderTypeBuffer) + builder = ((SuperRenderTypeBuffer) buffer).getLateBuffer(RenderType.getTranslucent()); MatrixStacker msr = MatrixStacker.of(ms); Vector3d center = new Vector3d(xMin + (xMax - xMin) / 2, yMin + (yMax - yMin) / 2, zMin + (zMax - zMin) / 2); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java index 7635ab03a..83a8d7f46 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java @@ -9,6 +9,7 @@ import java.util.Map; import javax.annotation.Nullable; import com.mojang.blaze3d.matrix.MatrixStack; +import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity; import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; import com.simibubi.create.content.schematics.SchematicWorld; @@ -104,15 +105,26 @@ public class PonderWorld extends SchematicWorld { originalEntities.forEach(e -> EntityType.loadEntityUnchecked(e.serializeNBT(), this) .ifPresent(entities::add)); particles.clearEffects(); - fixBeltTileEntities(); + fixControllerTileEntities(); } public void restoreBlocks(Selection selection) { selection.forEach(p -> { if (originalBlocks.containsKey(p)) blocks.put(p, originalBlocks.get(p)); + if (originalTileEntities.containsKey(p)) { + TileEntity te = TileEntity.createFromTag(originalBlocks.get(p), originalTileEntities.get(p) + .write(new CompoundNBT())); + onTEadded(te, te.getPos()); + tileEntities.put(p, te); + } }); - scene.forEach(WorldSectionElement.class, WorldSectionElement::queueRedraw); + redraw(); + } + + private void redraw() { + if (scene != null) + scene.forEach(WorldSectionElement.class, WorldSectionElement::queueRedraw); } public void pushFakeLight(int light) { @@ -226,6 +238,11 @@ public class PonderWorld extends SchematicWorld { : iparticlefactory.makeParticle(data, asClientWorld.getValue(), x, y, z, mx, my, mz); } + @Override + public boolean setBlockState(BlockPos pos, BlockState arg1, int arg2) { + return super.setBlockState(pos, arg1, arg2); + } + public void addParticle(Particle p) { if (p != null) particles.addParticle(p); @@ -240,20 +257,34 @@ public class PonderWorld extends SchematicWorld { smartTileEntity.markVirtual(); } - public void fixBeltTileEntities() { + public void fixControllerTileEntities() { for (TileEntity tileEntity : tileEntities.values()) { - if (!(tileEntity instanceof BeltTileEntity)) - continue; - BeltTileEntity beltTileEntity = (BeltTileEntity) tileEntity; - if (!beltTileEntity.isController()) - continue; - BlockPos controllerPos = tileEntity.getPos(); - for (BlockPos blockPos : BeltBlock.getBeltChain(this, controllerPos)) { - TileEntity tileEntity2 = getTileEntity(blockPos); - if (!(tileEntity2 instanceof BeltTileEntity)) + if (tileEntity instanceof BeltTileEntity) { + BeltTileEntity beltTileEntity = (BeltTileEntity) tileEntity; + if (!beltTileEntity.isController()) continue; - BeltTileEntity belt2 = (BeltTileEntity) tileEntity2; - belt2.setController(controllerPos); + BlockPos controllerPos = tileEntity.getPos(); + for (BlockPos blockPos : BeltBlock.getBeltChain(this, controllerPos)) { + TileEntity tileEntity2 = getTileEntity(blockPos); + if (!(tileEntity2 instanceof BeltTileEntity)) + continue; + BeltTileEntity belt2 = (BeltTileEntity) tileEntity2; + belt2.setController(controllerPos); + } + } + if (tileEntity instanceof FluidTankTileEntity) { + FluidTankTileEntity fluidTankTileEntity = (FluidTankTileEntity) tileEntity; + BlockPos lastKnown = fluidTankTileEntity.getLastKnownPos(); + BlockPos current = fluidTankTileEntity.getPos(); + if (lastKnown == null || current == null) + continue; + if (fluidTankTileEntity.isController()) + continue; + if (!lastKnown.equals(current)) { + BlockPos newControllerPos = fluidTankTileEntity.getController() + .add(current.subtract(lastKnown)); + fluidTankTileEntity.setController(newControllerPos); + } } } } @@ -302,7 +333,7 @@ public class PonderWorld extends SchematicWorld { protected BlockState processBlockStateForPrinting(BlockState state) { return state; } - + @Override public boolean isBlockLoaded(BlockPos pos) { return true; // fix particle lighting diff --git a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java index 2767b1b02..eaf8c3532 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java @@ -14,6 +14,8 @@ import com.simibubi.create.content.contraptions.components.crafter.ConnectedInpu import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueEntity; import com.simibubi.create.content.contraptions.components.structureMovement.glue.SuperGlueItem; +import com.simibubi.create.content.contraptions.fluids.FluidPropagator; +import com.simibubi.create.content.contraptions.fluids.PumpTileEntity; import com.simibubi.create.content.contraptions.particle.RotationIndicatorParticleData; import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity; @@ -739,6 +741,10 @@ public class SceneBuilder { }); } + public void propagatePipeChange(BlockPos pos) { + modifyTileEntity(pos, PumpTileEntity.class, te -> te.onSpeedChanged(0)); + } + public void setFilterData(Selection selection, Class teType, ItemStack filter) { modifyTileNBT(selection, teType, nbt -> { nbt.put("Filter", filter.serializeNBT()); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java index 30199ef5c..5261f9437 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/DebugScenes.java @@ -45,6 +45,7 @@ public class DebugScenes { add(DebugScenes::birbScene); add(DebugScenes::sectionsScene); add(DebugScenes::itemScene); + add(DebugScenes::pipeScene); } private static void add(PonderStoryBoard sb) { @@ -433,5 +434,17 @@ public class DebugScenes { scene.world.modifyEntities(ItemEntity.class, Entity::remove); } + + public static void pipeScene(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("debug_pipes", "Manipulating Items"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0), Direction.UP); + scene.idle(10); + scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); + + + + + } } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java index 5d9781437..83e4074e5 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/PonderIndex.java @@ -242,11 +242,11 @@ public class PonderIndex { // Fluids PonderRegistry.forComponents(AllBlocks.FLUID_PIPE) - .addStoryBoard("debug/scene_1", PipeScenes::flow, PonderTag.FLUIDS) - .addStoryBoard("debug/scene_1", PipeScenes::interaction) - .addStoryBoard("debug/scene_1", PipeScenes::encasing); + .addStoryBoard("fluid_pipe/flow", PipeScenes::flow, PonderTag.FLUIDS) + .addStoryBoard("fluid_pipe/interaction", PipeScenes::interaction) + .addStoryBoard("fluid_pipe/encasing", PipeScenes::encasing); PonderRegistry.forComponents(AllBlocks.COPPER_CASING) - .addStoryBoard("debug/scene_1", PipeScenes::encasing); + .addStoryBoard("fluid_pipe/encasing", PipeScenes::encasing); PonderRegistry.forComponents(AllBlocks.MECHANICAL_PUMP) .addStoryBoard("debug/scene_1", PumpScenes::flow, PonderTag.FLUIDS, PonderTag.KINETIC_APPLIANCES) .addStoryBoard("debug/scene_1", PumpScenes::speed); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PipeScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PipeScenes.java index f7c309f79..1cf206d1a 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PipeScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/fluid/PipeScenes.java @@ -1,76 +1,364 @@ package com.simibubi.create.foundation.ponder.content.fluid; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.contraptions.fluids.PumpBlock; +import com.simibubi.create.content.contraptions.fluids.actors.ItemDrainTileEntity; +import com.simibubi.create.content.contraptions.fluids.pipes.AxisPipeBlock; +import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock; +import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity; +import com.simibubi.create.foundation.ponder.ElementLink; import com.simibubi.create.foundation.ponder.SceneBuilder; import com.simibubi.create.foundation.ponder.SceneBuildingUtil; +import com.simibubi.create.foundation.ponder.Selection; +import com.simibubi.create.foundation.ponder.content.PonderPalette; +import com.simibubi.create.foundation.ponder.elements.InputWindowElement; +import com.simibubi.create.foundation.ponder.elements.WorldSectionElement; +import com.simibubi.create.foundation.tileEntity.behaviour.fluid.SmartFluidTankBehaviour; +import com.simibubi.create.foundation.utility.Pointing; +import net.minecraft.block.BeehiveBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.ItemStack; +import net.minecraft.state.BooleanProperty; import net.minecraft.util.Direction; +import net.minecraft.util.Direction.Axis; +import net.minecraft.util.math.AxisAlignedBB; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.vector.Vector3d; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; public class PipeScenes { public static void flow(SceneBuilder scene, SceneBuildingUtil util) { scene.title("fluid_pipe_flow", "Moving Fluids using Copper Pipes"); scene.configureBasePlate(0, 0, 5); - scene.world.showSection(util.select.layer(0), Direction.UP); + scene.showBasePlate(); scene.idle(5); - scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); -// scene.overlay.showText(50) -// .text("") -// .attachKeyFrame() -// .placeNearTarget() -// .pointAt(util.vector.topOf(2, 0, 2)); + BlockState pipeState = AllBlocks.FLUID_PIPE.getDefaultState() + .with(FluidPipeBlock.UP, false) + .with(FluidPipeBlock.DOWN, false); - /* - * Use Fluid Pipes to connect two fluid sources, containers or empty spaces - * - * Using a wrench, a straight pipe segment can be given a window - * - * Windowed pipes will not connect to any other adjancent pipe segements - * - * Powered by Mechanical Pumps, Fluid Pipes can be used to transport Fluids between endpoints - * - * Until the flow finds a target, nothing is extracted from the source - * - * Once a connection is established, fluids are gradually transferred between the endpoints - * - * Thus, the Pipe blocks themselves never 'physically' contain any fluid - */ + scene.world.setBlock(util.grid.at(2, 1, 1), pipeState.with(FluidPipeBlock.NORTH, false) + .with(FluidPipeBlock.SOUTH, false), false); + scene.world.setBlock(util.grid.at(1, 1, 2), pipeState.with(FluidPipeBlock.WEST, false) + .with(FluidPipeBlock.EAST, false), false); + + Selection largeCog = util.select.position(5, 0, 1); + Selection kinetics = util.select.fromTo(5, 1, 0, 3, 1, 0); + Selection tank = util.select.fromTo(4, 1, 2, 4, 2, 2); + Selection tank2 = util.select.fromTo(0, 1, 3, 0, 2, 3); + + Selection strayPipes = util.select.fromTo(2, 1, 2, 2, 2, 2) + .add(util.select.fromTo(1, 2, 2, 1, 3, 2)); + + scene.world.showSection(tank, Direction.DOWN); + scene.idle(5); + scene.world.showSection(tank2, Direction.DOWN); + FluidStack content = new FluidStack(Fluids.LAVA, 10000); + scene.world.modifyTileEntity(util.grid.at(4, 1, 2), FluidTankTileEntity.class, te -> te.getTankInventory() + .fill(content, FluidAction.EXECUTE)); + scene.idle(10); + + for (int i = 4; i >= 1; i--) { + scene.world.showSection(util.select.position(i, 1, 1), i == 4 ? Direction.SOUTH : Direction.EAST); + scene.idle(3); + } + + scene.overlay.showText(60) + .text("Fluid Pipes can connect two or more fluid sources and targets") + .attachKeyFrame() + .placeNearTarget() + .pointAt(util.vector.topOf(1, 1, 1)); + + for (int i = 2; i <= 3; i++) { + scene.world.showSection(util.select.position(1, 1, i), Direction.NORTH); + scene.idle(3); + } + + scene.idle(60); + + scene.overlay.showControls(new InputWindowElement(util.vector.centerOf(2, 1, 1), Pointing.DOWN).rightClick() + .withWrench(), 40); + scene.idle(7); + scene.world.restoreBlocks(util.select.position(2, 1, 1)); + scene.overlay.showText(70) + .attachKeyFrame() + .pointAt(util.vector.centerOf(2, 1, 1)) + .placeNearTarget() + .text("Using a wrench, a straight pipe segment can be given a window"); + scene.idle(40); + + scene.overlay.showControls(new InputWindowElement(util.vector.centerOf(1, 1, 2), Pointing.DOWN).rightClick() + .withWrench(), 10); + scene.idle(7); + scene.world.restoreBlocks(util.select.position(1, 1, 2)); + scene.idle(40); + + Vector3d center = util.vector.centerOf(2, 1, 2); + AxisAlignedBB bb = new AxisAlignedBB(center, center).grow(1 / 6f); + AxisAlignedBB bb1 = bb.offset(-0.5, 0, 0); + AxisAlignedBB bb2 = bb.offset(0, 0, -0.5); + + scene.world.showSection(strayPipes, Direction.DOWN); + scene.idle(10); + scene.overlay.chaseBoundingBoxOutline(PonderPalette.RED, bb1, bb, 1); + scene.overlay.chaseBoundingBoxOutline(PonderPalette.RED, bb2, bb, 1); + scene.idle(1); + scene.overlay.chaseBoundingBoxOutline(PonderPalette.RED, bb1, bb1, 50); + scene.overlay.chaseBoundingBoxOutline(PonderPalette.RED, bb2, bb2, 50); + scene.idle(10); + scene.overlay.showText(55) + .attachKeyFrame() + .pointAt(util.vector.centerOf(2, 1, 2)) + .placeNearTarget() + .colored(PonderPalette.RED) + .text("Windowed pipes will not connect to any other adjacent pipe segments"); + scene.idle(60); + scene.world.hideSection(strayPipes, Direction.UP); + scene.idle(10); + + BlockPos pumpPos = util.grid.at(3, 1, 1); + scene.world.setBlock(pumpPos, AllBlocks.MECHANICAL_PUMP.getDefaultState() + .with(PumpBlock.FACING, Direction.WEST), true); + scene.idle(10); + scene.world.showSection(largeCog, Direction.UP); + scene.world.showSection(kinetics, Direction.SOUTH); + scene.idle(10); + scene.world.setKineticSpeed(util.select.position(pumpPos), 32); + scene.world.propagatePipeChange(pumpPos); + + scene.overlay.showText(70) + .attachKeyFrame() + .pointAt(util.vector.topOf(pumpPos)) + .placeNearTarget() + .text("Powered by Mechanical Pumps, the Pipes can transport Fluids"); + scene.idle(85); + scene.overlay.showSelectionWithText(tank, 40) + .colored(PonderPalette.RED) + .placeNearTarget() + .text("No fluid is being extracted at first"); + scene.idle(90); + + scene.overlay.showOutline(PonderPalette.GREEN, new Object(), tank, 100); + scene.idle(5); + scene.overlay.showOutline(PonderPalette.GREEN, new Object(), tank2, 100); + scene.idle(5); + scene.overlay.showText(100) + .attachKeyFrame() + .independent() + .text("Once the flow connects them, the endpoints gradually transfer their contents"); + scene.overlay.showLine(PonderPalette.GREEN, util.vector.blockSurface(util.grid.at(4, 2, 2), Direction.WEST), + util.vector.blockSurface(util.grid.at(0, 2, 3), Direction.EAST), 80); + + scene.world.multiplyKineticSpeed(util.select.everywhere(), 2); + scene.world.propagatePipeChange(pumpPos); + scene.effects.rotationSpeedIndicator(pumpPos); + + scene.idle(120); + + scene.overlay.showText(60) + .text("Thus, the Pipe blocks themselves never 'physically' contain any fluid") + .placeNearTarget() + .pointAt(util.vector.topOf(1, 1, 1)); + scene.idle(50); } public static void interaction(SceneBuilder scene, SceneBuildingUtil util) { scene.title("fluid_pipe_interaction", "Draining and Filling fluid containers"); - scene.configureBasePlate(0, 0, 5); - scene.world.showSection(util.select.layer(0), Direction.UP); + scene.configureBasePlate(0, 1, 5); + scene.showBasePlate(); scene.idle(5); - scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - - /* - * Endpoints of a pipe network can interact with a variety of blocks - * - * Any block with fluid storage capabities can be filled or drained - * - * Source blocks right in front of an open end can be picked up... - * - * ...while spilling into empty spaces can create fluid sources - * - * Pipes can also extract fluids from a handful of blocks directly - */ + + BlockPos pumpPos = util.grid.at(2, 1, 4); + Selection largeCog = util.select.position(5, 0, 4); + Selection kinetics = util.select.fromTo(5, 1, 5, 2, 1, 5); + Selection pipes = util.select.fromTo(1, 1, 4, 3, 1, 3) + .add(util.select.position(3, 1, 2)); + Selection tank = util.select.fromTo(4, 1, 3, 4, 2, 3); + Selection drain = util.select.position(1, 1, 2); + Selection basin = util.select.position(3, 1, 1); + + Selection waterSourceS = util.select.position(1, 1, 1); + Selection waterTargetS = util.select.position(4, 1, 1); + Selection waterTarget2S = util.select.fromTo(4, 0, 0, 4, 1, 0); + + scene.world.setKineticSpeed(util.select.position(pumpPos), 0); + + scene.world.showSection(pipes, Direction.DOWN); + scene.idle(10); + scene.world.showSection(basin, Direction.SOUTH); + scene.idle(5); + scene.world.showSection(drain, Direction.SOUTH); + scene.idle(5); + scene.world.showSection(tank, Direction.WEST); + + scene.overlay.showText(60) + .text("Endpoints of a pipe network can interact with a variety of blocks") + .attachKeyFrame() + .placeNearTarget() + .pointAt(util.vector.blockSurface(util.grid.at(1, 1, 3), Direction.NORTH)); + scene.idle(60); + scene.world.showSection(largeCog, Direction.UP); + scene.idle(5); + scene.world.showSection(kinetics, Direction.NORTH); + scene.idle(10); + scene.world.setKineticSpeed(util.select.position(pumpPos), 64); + BlockPos drainPos = util.grid.at(1, 1, 2); + scene.world.modifyTileEntity(drainPos, ItemDrainTileEntity.class, + te -> te.getBehaviour(SmartFluidTankBehaviour.TYPE) + .allowInsertion() + .getPrimaryHandler() + .fill(new FluidStack(Fluids.WATER, 1500), FluidAction.EXECUTE)); + + scene.idle(50); + scene.overlay.showOutline(PonderPalette.MEDIUM, new Object(), drain, 40); + scene.idle(5); + scene.overlay.showOutline(PonderPalette.MEDIUM, new Object(), tank, 40); + scene.idle(5); + scene.overlay.showOutline(PonderPalette.MEDIUM, new Object(), basin, 40); + scene.idle(5); + + scene.overlay.showText(60) + .text("Any block with fluid storage capabilities can be filled or drained") + .attachKeyFrame() + .colored(PonderPalette.MEDIUM) + .placeNearTarget() + .pointAt(util.vector.blockSurface(drainPos, Direction.UP)); + scene.idle(100); + + scene.world.hideSection(drain, Direction.NORTH); + scene.idle(5); + scene.world.hideSection(tank, Direction.EAST); + scene.idle(5); + scene.world.setBlock(drainPos, Blocks.AIR.getDefaultState(), false); + scene.world.propagatePipeChange(pumpPos); + scene.world.hideSection(basin, Direction.NORTH); + scene.idle(5); + scene.world.setBlock(util.grid.at(3, 1, 1), Blocks.AIR.getDefaultState(), false); + scene.idle(5); + scene.world.setBlock(util.grid.at(3, 1, 3), AllBlocks.GLASS_FLUID_PIPE.getDefaultState() + .with(AxisPipeBlock.AXIS, Axis.Z), false); + scene.idle(10); + scene.world.multiplyKineticSpeed(util.select.everywhere(), 2); + scene.world.propagatePipeChange(pumpPos); + ElementLink water = scene.world.showIndependentSection(waterSourceS, Direction.DOWN); + scene.world.moveSection(water, util.vector.of(0, 0, 1), 0); + scene.idle(10); + scene.world.setBlock(drainPos, Blocks.WATER.getDefaultState(), false); + scene.idle(20); + + scene.overlay.showText(60) + .text("Source blocks right in front of an open end can be picked up...") + .attachKeyFrame() + .placeNearTarget() + .pointAt(util.vector.blockSurface(drainPos, Direction.SOUTH)); + + scene.idle(40); + scene.world.setBlock(drainPos.north(), Blocks.AIR.getDefaultState(), false); + scene.idle(40); + ElementLink target = scene.world.showIndependentSection(waterTargetS, Direction.UP); + scene.world.moveSection(target, util.vector.of(-1, 0, 0), 0); + scene.idle(5); + scene.world.showSectionAndMerge(waterTarget2S, Direction.UP, target); + + scene.overlay.showText(60) + .text("...while spilling into empty spaces can create fluid sources") + .attachKeyFrame() + .placeNearTarget() + .pointAt(util.vector.blockSurface(util.grid.at(3, 1, 2), Direction.NORTH)); + + scene.idle(80); + scene.world.hideIndependentSection(target, Direction.DOWN); + scene.idle(5); + scene.world.setBlock(drainPos, Blocks.BEE_NEST.getDefaultState() + .with(BeehiveBlock.HONEY_LEVEL, 5), false); + scene.world.showSection(drain, Direction.DOWN); + scene.world.setBlock(util.grid.at(3, 1, 2), AllBlocks.FLUID_TANK.getDefaultState(), false); + scene.world.propagatePipeChange(pumpPos); + scene.idle(15); + + scene.overlay.showText(60) + .text("Pipes can also extract fluids from a handful of other blocks directly") + .attachKeyFrame() + .placeNearTarget() + .pointAt(util.vector.topOf(drainPos)); + + scene.idle(60); + scene.world.setBlock(drainPos, Blocks.BEE_NEST.getDefaultState() + .with(BeehiveBlock.HONEY_LEVEL, 0), false); } public static void encasing(SceneBuilder scene, SceneBuildingUtil util) { scene.title("encased_fluid_pipe", "Encasing Fluid Pipes"); scene.configureBasePlate(0, 0, 5); - scene.world.showSection(util.select.layer(0), Direction.UP); + scene.showBasePlate(); scene.idle(5); - scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - - /* - * Copper Casing can be used to decorate Fluid Pipes - * - * Aside from being conceiled, encased pipes are locked into their connectivity state - * - * Adding and Removing Pipes around it will no longer affect its shape - */ + scene.world.showSection(util.select.position(2, 0, 5), Direction.UP); + scene.idle(5); + scene.world.showSection(util.select.layer(1), Direction.DOWN); + scene.idle(15); + + BlockState copperEncased = AllBlocks.ENCASED_FLUID_PIPE.getDefaultState() + .with(FluidPipeBlock.SOUTH, true) + .with(FluidPipeBlock.WEST, true); + ItemStack casingItem = AllBlocks.COPPER_CASING.asStack(); + + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(3, 1, 1), Pointing.DOWN).rightClick() + .withItem(casingItem), 60); + scene.idle(7); + scene.world.setBlock(util.grid.at(3, 1, 1), copperEncased, true); + scene.idle(10); + + scene.overlay.showText(60) + .placeNearTarget() + .text("Copper Casing can be used to decorate Fluid Pipes") + .attachKeyFrame() + .pointAt(util.vector.topOf(3, 1, 1)); + + scene.idle(70); + scene.world.destroyBlock(util.grid.at(2, 1, 1)); + scene.world.modifyBlock(util.grid.at(1, 1, 1), s -> s.with(FluidPipeBlock.EAST, false) + .with(FluidPipeBlock.NORTH, true), false); + scene.idle(5); + + scene.overlay.showLine(PonderPalette.RED, util.vector.of(1.5, 1.75, 1), util.vector.of(1.5, 1.75, 2), 80); + scene.idle(5); + scene.addKeyframe(); + scene.overlay.showLine(PonderPalette.GREEN, util.vector.of(3.5, 2, 1.5), util.vector.of(3.5, 2, 2), 80); + scene.overlay.showLine(PonderPalette.GREEN, util.vector.of(3, 2, 1.5), util.vector.of(3.5, 2, 1.5), 80); + + scene.idle(25); + scene.overlay.showText(60) + .placeNearTarget() + .text("Aside from being conceiled, Encased Pipes are locked into their connectivity state") + .pointAt(util.vector.blockSurface(util.grid.at(3, 1, 1), Direction.WEST)); + + scene.idle(70); + BlockState defaultState = AllBlocks.FLUID_PIPE.getDefaultState(); + for (BooleanProperty booleanProperty : FluidPipeBlock.FACING_TO_PROPERTY_MAP.values()) + defaultState = defaultState.with(booleanProperty, false); + + scene.world.setBlock(util.grid.at(3, 2, 1), defaultState.with(FluidPipeBlock.EAST, true) + .with(FluidPipeBlock.WEST, true), false); + scene.world.setBlock(util.grid.at(1, 2, 1), defaultState.with(FluidPipeBlock.UP, true) + .with(FluidPipeBlock.DOWN, true), false); + scene.world.showSection(util.select.layer(2), Direction.DOWN); + scene.idle(10); + scene.world.modifyBlock(util.grid.at(1, 1, 1), s -> s.with(FluidPipeBlock.UP, true) + .with(FluidPipeBlock.NORTH, false), false); + scene.idle(20); + + scene.overlay.showText(60) + .placeNearTarget() + .colored(PonderPalette.RED) + .text("It will no longer react to any neighbouring blocks being added or removed") + .attachKeyFrame() + .pointAt(util.vector.centerOf(3, 2, 1)); + scene.idle(20); } public static void valve(SceneBuilder scene, SceneBuildingUtil util) { @@ -79,11 +367,12 @@ public class PipeScenes { scene.world.showSection(util.select.layer(0), Direction.UP); scene.idle(5); scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - + /* * Valve pipes propagate flows in a straight line * - * When given Rotational Force in the closing direction, the valve will stop the fluid flow + * When given Rotational Force in the closing direction, the valve will stop the + * fluid flow * * It can be re-opened by reversing the input rotation */ @@ -95,17 +384,21 @@ public class PipeScenes { scene.world.showSection(util.select.layer(0), Direction.UP); scene.idle(5); scene.world.showSection(util.select.layersFrom(1), Direction.DOWN); - + /* * Smart pipes propagate flows in a straight line * - * When placed directly at the source, they can specify the type of fluid to extract + * When placed directly at the source, they can specify the type of fluid to + * extract * - * Simply Right-Click their filter slot with any item containing the desired fluid + * Simply Right-Click their filter slot with any item containing the desired + * fluid * - * When placed further down a pipe network, smart pipes will only let matching fluids continue past + * When placed further down a pipe network, smart pipes will only let matching + * fluids continue past * - * In this configuration, their filter has no impact on whether a fluid can enter the pipe network + * In this configuration, their filter has no impact on whether a fluid can + * enter the pipe network */ } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/elements/WorldSectionElement.java b/src/main/java/com/simibubi/create/foundation/ponder/elements/WorldSectionElement.java index 5862087bf..fb7bd38f8 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/elements/WorldSectionElement.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/elements/WorldSectionElement.java @@ -60,6 +60,7 @@ public class WorldSectionElement extends AnimatedSceneElement { public static final Compartment> DOC_WORLD_SECTION = new Compartment<>(); List renderedTileEntities; + List tickableTileEntities; Selection section; boolean redraw; @@ -256,7 +257,9 @@ public class WorldSectionElement extends AnimatedSceneElement { loadTEsIfMissing(scene.getWorld()); renderedTileEntities.removeIf(te -> scene.getWorld() .getTileEntity(te.getPos()) != te); - renderedTileEntities.forEach(te -> { + tickableTileEntities.removeIf(te -> scene.getWorld() + .getTileEntity(te.getPos()) != te); + tickableTileEntities.forEach(te -> { if (te instanceof ITickableTileEntity) ((ITickableTileEntity) te).tick(); }); @@ -264,19 +267,23 @@ public class WorldSectionElement extends AnimatedSceneElement { @Override public void whileSkipping(PonderScene scene) { - if (redraw) + if (redraw) { renderedTileEntities = null; + tickableTileEntities = null; + } redraw = false; } protected void loadTEsIfMissing(PonderWorld world) { if (renderedTileEntities != null) return; + tickableTileEntities = new ArrayList<>(); renderedTileEntities = new ArrayList<>(); section.forEach(pos -> { TileEntity tileEntity = world.getTileEntity(pos); if (tileEntity == null) return; + tickableTileEntities.add(tileEntity); renderedTileEntities.add(tileEntity); tileEntity.updateContainingBlockInfo(); }); @@ -294,8 +301,10 @@ public class WorldSectionElement extends AnimatedSceneElement { int light = -1; if (fade != 1) light = (int) (MathHelper.lerp(fade, 5, 14)); - if (redraw) + if (redraw) { renderedTileEntities = null; + tickableTileEntities = null; + } transformMS(ms, pt); world.pushFakeLight(light); renderTileEntities(world, ms, buffer, pt); @@ -352,7 +361,7 @@ public class WorldSectionElement extends AnimatedSceneElement { if (selectedBlock == null) return; BlockState blockState = world.getBlockState(selectedBlock); - if (blockState.isAir(world, selectedBlock)) + if (blockState.isAir()) return; VoxelShape shape = blockState.getShape(world, selectedBlock, ISelectionContext.forEntity(Minecraft.getInstance().player)); diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/fluid/SmartFluidTankBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/fluid/SmartFluidTankBehaviour.java index 05ddc710a..9841bbb8d 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/fluid/SmartFluidTankBehaviour.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/fluid/SmartFluidTankBehaviour.java @@ -102,7 +102,7 @@ public class SmartFluidTankBehaviour extends TileEntityBehaviour { if (syncCooldown > 0) { syncCooldown--; - if (syncCooldown == 0 && queuedSync) + if (syncCooldown == 0 && queuedSync) updateFluids(); } @@ -203,7 +203,7 @@ public class SmartFluidTankBehaviour extends TileEntityBehaviour { return 0; return super.fill(resource, action); } - + public int forceFill(FluidStack resource, FluidAction action) { return super.fill(resource, action); } @@ -244,6 +244,9 @@ public class SmartFluidTankBehaviour extends TileEntityBehaviour { fluidLevel.chase(tank.getFluidAmount() / (float) tank.getCapacity(), .25, Chaser.EXP); if (!getWorld().isRemote) sendDataLazily(); + if (tileEntity.isVirtual() && !tank.getFluid() + .isEmpty()) + renderedFluid = tank.getFluid(); } public FluidStack getRenderedFluid() { @@ -272,7 +275,7 @@ public class SmartFluidTankBehaviour extends TileEntityBehaviour { .isEmpty()) renderedFluid = tank.getFluid(); } - + public boolean isEmpty(float partialTicks) { FluidStack renderedFluid = getRenderedFluid(); if (renderedFluid.isEmpty()) diff --git a/src/main/java/com/simibubi/create/foundation/utility/Debug.java b/src/main/java/com/simibubi/create/foundation/utility/Debug.java index b52612b30..e6445ae11 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/Debug.java +++ b/src/main/java/com/simibubi/create/foundation/utility/Debug.java @@ -1,5 +1,7 @@ package com.simibubi.create.foundation.utility; +import com.simibubi.create.Create; + import net.minecraft.client.Minecraft; import net.minecraft.util.text.IFormattableTextComponent; import net.minecraft.util.text.ITextComponent; @@ -14,23 +16,27 @@ import net.minecraftforge.fml.common.thread.EffectiveSide; public class Debug { @Deprecated - public static void debugChat(ITextComponent message) { + public static void debugChat(String message) { if (Minecraft.getInstance().player != null) - Minecraft.getInstance().player.sendStatusMessage(message, false); + Minecraft.getInstance().player.sendStatusMessage(new StringTextComponent(message), false); } @Deprecated - public static void debugChatAndShowStack(ITextComponent message, int depth) { + public static void debugChatAndShowStack(String message, int depth) { if (Minecraft.getInstance().player != null) - Minecraft.getInstance().player.sendStatusMessage(message.copy() - .append("@") + Minecraft.getInstance().player.sendStatusMessage(new StringTextComponent(message).append("@") .append(debugStack(depth)), false); } @Deprecated - public static void debugMessage(ITextComponent message) { + public static void debugMessage(String message) { if (Minecraft.getInstance().player != null) - Minecraft.getInstance().player.sendStatusMessage(message, true); + Minecraft.getInstance().player.sendStatusMessage(new StringTextComponent(message), true); + } + + @Deprecated + public static void log(String message) { + Create.LOGGER.info(message); } @Deprecated diff --git a/src/main/resources/ponder/debug/scene_10.nbt b/src/main/resources/ponder/debug/scene_10.nbt new file mode 100644 index 0000000000000000000000000000000000000000..41e45e42dc15224daf704d589c306d2703d879a9 GIT binary patch literal 1142 zcmV-+1d00}iwFP!000000L53^ZsRr(rEZQbZ<`j_Ua()#*S@AjQSWwxT{K98I^AAg z46a1mLS#}9sXDt){<7Xs6#b0;M<3jwMB0ihGIETh1`Ju&(czgh!xHU01zcc3)E#XYr-pG17`FqD z*MY~k@Hj1+n>-rhbl`D2@OT|~d<&1;!Do%J`K&QEpEbtjv&Ptb-sHo=qcJw0HOA(% z#@Kw;7@N<22cI>@=Cj7weAXD7&l+R%*+*3k)%CarOkIy>z|{5lC`2B8Ekfik2^VnY z6U+s)h>M(XUgSi!4R@qu!sXMHE&FJ2niffXju!+SFA_?k98bl`5=e6gxi2Yb?Tr?! zprTr|kK80i??*WS$jMaRJjs%bgdl|#V%}U(E;ia{LDX2VrEfGn3{>ouwvUvyS&BKI zbXN!@0cH6vpy634FSD6M1Soig(}H~Qixd%zGeTli3hG_rd`3j2HaKN@L>#og+lJul z#nF41;7wAz7Ac0>+pKk44c%Exee)eDF*+~5uO#NZbNI>2KfcRiKsuF}50n_5EV7hL zt{^uei9*yHvjTGGA?F9+{0ojh!tn%-Kdsm6Utx`-b0U^3zw#k}ko-^A>wo__2~htT z&Ty27H!oIFqd$fLE-M2{V=QD$PglEfIOakXtPW@zRZ>4xNnMa=j%gC%bdnW|?6$1_W=c!F=L~N4 zTVtiFv{-81Ei&UyF$k&Gd1x1+sSdQVd&56?!syN4_O#Q?!tno}daaG>VAlt-kkyB(u3x>9*CG!1O9a!%H|kV^qK!Uw8N08i?CyAn&NKc9hwp`+O6f zS#&4`=PXT0ZuF)_q1RCOE?|x_oDw03e6>A>N-AUjxR&>MBFH3S6lB0n8u56G;1I{8 zd_R^w6CU9*lFL_TfX;C`g?DEr1Y7jcu&kk!&1Nw2f+BIVLN%Gnsy(x@0I#Ue* zNPv$bU*yGh^(WiaqdZw~MkgZ2S_p0D_7s^?1xQ238s(4!!s3$}P zQIkSntcHL-gTcDJ0^60UvyHIbe%{p6D#63)b`c+6CmcC%H>Ab}bJtKer&X-#j)w_V zMR&d7IaWLon=R*rq@7r9)ai!G@O0Mhlcw6ksGCKhY?DT52k+)ncRjWmt;u<)620EL zL<2s@@NaKfPCH-~Y%5naipE~wodTUml^vSXYC=isq2X6p;8*Zo0#6n&tDd0$04t9t I!zmR20AG12_5c6? literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/fluid_pipe/encasing.nbt b/src/main/resources/ponder/fluid_pipe/encasing.nbt new file mode 100644 index 0000000000000000000000000000000000000000..c6e1d76e653ffc554b1e72cbec989d2bfc40fb84 GIT binary patch literal 561 zcmV-10?z#(iwFP!000000L7M3Z<{a_g)i8oK(>cUl{WRgf1=NQp7ylY$Vr^k8pX(V zMActEllTH*#5gS5B1OUY`1ttqbsz`GfNJr<2>>+T#QiQZNO@_55nMy_$zZWA%70VF*`;tcH&&a{Ck<3!7Yd2KFA zsqDo_%|`=<^epoiXT2|&)~o&mf!2NWNteFnHvRM}0w?M3-QvngMyL;w+|A8>!Mh(f zoh*?F258!^yKK_*RB=v)VX=i*}L)oGLNqmZXGA& zq@3sZyW2J63^B*I1 literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/fluid_pipe/flow.nbt b/src/main/resources/ponder/fluid_pipe/flow.nbt new file mode 100644 index 0000000000000000000000000000000000000000..f3dd374bcf302fa188b9662417b8987dca9eb9ac GIT binary patch literal 950 zcmV;n14;ZJiwFP!000000L@q1PTN2b9bZWtC{$|Is=v^OK0}`nRYg^Vkm&s-GRcxy zI9|)UQGh2ts}Ho5`UNfho+=$*)(M;S;sk;kDRP#~o}F`c<_z%wnqafwoLB&mzFmCV z_;#AmAQ2CEKp3R2Cb&l-?VKW#aYT$!1IMg^W7WX1H8^GsokfgJXAz^*S;Xjc7BM=V%lpvah!~yDB1WgPh|%dR zVstv&HFOp+I-Ny~PG=FL(^6Q_zZ;tlGFK12_}osNT$JRvMM4T*=N(9A4&7~p;kqAnd79<1*9 zjK7WOC^|?tXSsbXa@#6$`!jVa;(2?+K@d@f8RZw}?vkL_=jjQ#1P==dj>BQlZF4_5 z@u2k%A3HSSXmt%}zD~c|_Xh;l5sY*a|Cn!)LCnt(Z+k$85m(X5C`ngn6|_9CM}%=) z*#t>}DwjBjiHBS1koPgriD-f!6#igH+S$b+Ip~uDv={n}wHJV%E>mY&`A>`FY7eR6 zqc9;^n3Ze7sIoPOae5rqTcmP6S&oL(Z9n1m-F7Ke^shVawsNXW@o3I@trd{dT6;^7 z=G&5`u@%y^Bxx3|bXy_PYE74uYvStvaXCTDRJhzS?tYm=sH!by6xPq8m*p&~7T-&S zPiPpDq;ire=7}j;<=Uh=Z}8#N*%aPuN>}$_ZiBzUGUWr-=hO63()4OBO=tT?QN418 zYqyyahM<0JN;F|5_CvxsNq;77G{DXp?dhb^M*V=3c85lI9BvX3k0uceg=uHMwNh_A zNN7xw^k-NDS|dCs32CoKy5Jo9AtSioKMfcdrzMnVv(Qg^=}Em&pO8?-a#-I-e|JZj z9W}t>G%hjSBg#1)fX$QPB*)pSkU{ej%63&`TX<&?QW$7SC96cSO2sd~$*v$@RpgV6 zt2%;Ne#m9@&P&kB|2mXZ1&oesxy;EH)N`)I;y$UK-XGQKdle#NTy<4eo9Ya^^#Z4= z0czK(mei6jaE8^Yn4x{Nip4KV*ME0MN$D{Kys#K8=&d|vv0|K?k4yHEK&%a1_fftvvFgOJMcc*b!ZkJk-kUx*Yrw!b;^opZi(j-3FZK5{vI zK^%lo{`K{-k9s5)R8YcE{^=us6tVFQ58&jZK5`Pq^&Ryh4Pt}gwV5iR6Ghpu836K+ygonJVgplx9V)ifKCzlt#OhQ0fJ!I1my**9| zoE>sHPa-nBp)nD393cOSW$75Yto1dl{|%1c!0{m*zrDS^{R8&cxgcV}(i<1qXCZXh zA8!Bt>!F8wCpf`lDxRN7j_wuoYWTI|fk}}P&QF%+JXiJND?c2xcbT#=tfcYunnFX* zkp=q$#hwZ>ABHKWaUXftI4+vL6`(8N(qoIfTr%^`33p^)iZw{W0Q#=ueWS)rU z4)TxYEQ^KY5g_lJd`BXP;Zq!CQkpuRpDgp={xwdgL=@ulP8r0?T60UMxmr#;%B{kI zca;Ov2y;H19Lse9NHchm8n1WiEel&#XKGps68j=6Dy0stG zPCqEMH+YhXBok*)!hB`14}~l*AytsUS=<5TpVCN>wDA7Hs>U%*p-fNm0?+5r{$tAV zC;~ksOzy5kT5M7_5c{<^kk`JUgLaFMt!(vmO8!rAC=|1+>Scs^K1zB|ppi@>wrFZ% zWh1ModiP&7_p)7@`f1sb4OHy=HTR>JFTY17GVm@TW+-4k7}dcQ+`;;|BA*TTfhX}JqJa699JmprkvcHA&{JQ1zxGm|~h9BE}S~tz} zHKnwx?NO;VvxtIRKq-qNk{Y$z5NW%nm;=D;(IGCE@tp1F&wiP zXuu+kcx#2=;Kxw@uTMkTqW=ZZGp_jH z-YY)ryka1)Mr=BTM`dq{+6mFcy-=m_%}6yaLI!c{Qr zFXU8)k`Qb~%O5cz*t}qD;FWjBPDYj6+GeY>(x`(5kFmf{;Vqi77<%~o=pV3k@Vt2! F0041$XV?G$ literal 0 HcmV?d00001 From 02ff18fccee988c5f0ba7c19315ee824e9534f30 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Tue, 22 Jun 2021 12:00:17 +0200 Subject: [PATCH 15/16] The CF badge broke --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 70bb55392..5735260d1 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Supported Versions License Discord - Curseforge Downloads

+ CF

Welcome to Create, a mod offering a variety of tools and blocks for Building, Decoration and Aesthetic Automation. From e4a340deefedcd200634df86df58c42b07b9a173 Mon Sep 17 00:00:00 2001 From: grimmauld Date: Tue, 22 Jun 2021 20:58:12 +0200 Subject: [PATCH 16/16] Maybe fix NPE in basin tile entity. Probably should check more thoroughly, but this should patch it for now --- .../contraptions/processing/BasinTileEntity.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java index fffc0da27..6df4389e8 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java @@ -329,7 +329,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor update = true; continue; } - + if (targetInv == null) { return; } @@ -338,7 +338,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor continue; if (filter != null && !filter.test(itemStack)) continue; - + update = true; ItemHandlerHelper.insertItemStacked(targetInv, itemStack.copy(), false); iterator.remove(); @@ -426,7 +426,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor IItemHandler targetInv = null; IFluidHandler targetTank = null; TileEntity te = null; - + InvManipulationBehaviour inserter = null; if (direction == Direction.DOWN) { @@ -443,7 +443,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor .offset(direction)); if (te == null) return false; - + inserter = TileEntityBehaviour.get(world, te.getPos(), InvManipulationBehaviour.TYPE); targetInv = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, direction.getOpposite()) .orElse(inserter == null ? null : inserter.getInventory()); @@ -453,13 +453,13 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor if (targetInv == null && !outputItems.isEmpty()) return false; - FilteringBehaviour filter = TileEntityBehaviour.get(world, te.getPos(), FilteringBehaviour.TYPE); + FilteringBehaviour filter = world == null || te == null ? null : TileEntityBehaviour.get(world, te.getPos(), FilteringBehaviour.TYPE); for (ItemStack itemStack : outputItems) { // Catalyst items are never consumed if (itemStack.hasContainerItem() && itemStack.getContainerItem() .isItemEqual(itemStack)) continue; - + if (simulate || direction == Direction.DOWN) { if (!ItemHandlerHelper.insertItemStacked(targetInv, itemStack.copy(), simulate) .isEmpty() || (filter != null && !filter.test(itemStack)))