From c0de8c4eb6e56f35463369a6fea502fde08c5545 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Fri, 19 Mar 2021 20:05:55 +0100 Subject: [PATCH] The grind continues - Scenes for Millstone, Crushing wheels, blaze burners, basin, mixer, press, speedometer and stressometer --- src/generated/resources/.cache/cache | 28 +- .../resources/assets/create/lang/en_us.json | 65 ++ .../assets/create/lang/unfinished/de_de.json | 67 +- .../assets/create/lang/unfinished/es_es.json | 67 +- .../assets/create/lang/unfinished/es_mx.json | 67 +- .../assets/create/lang/unfinished/fr_fr.json | 67 +- .../assets/create/lang/unfinished/it_it.json | 67 +- .../assets/create/lang/unfinished/ja_jp.json | 67 +- .../assets/create/lang/unfinished/ko_kr.json | 67 +- .../assets/create/lang/unfinished/nl_nl.json | 67 +- .../assets/create/lang/unfinished/pt_br.json | 67 +- .../assets/create/lang/unfinished/ru_ru.json | 67 +- .../assets/create/lang/unfinished/zh_cn.json | 67 +- .../assets/create/lang/unfinished/zh_tw.json | 67 +- .../data/create/advancements/aesthetics.json | 4 +- .../mixer/MechanicalMixerTileEntity.java | 2 +- .../press/MechanicalPressTileEntity.java | 5 +- .../burner/BlazeBurnerTileEntity.java | 10 +- .../create/foundation/ponder/PonderUI.java | 1 + .../create/foundation/ponder/PonderWorld.java | 12 +- .../foundation/ponder/SceneBuilder.java | 14 +- .../ponder/content/CartAssemblerScenes.java | 6 +- .../ponder/content/KineticsScenes.java | 97 ++ .../ponder/content/PonderIndex.java | 19 + .../ponder/content/ProcessingScenes.java | 895 ++++++++++++++++++ .../models/block/funnel/block_vertical.json | 5 +- .../funnel/block_vertical_filterless.json | 8 +- src/main/resources/ponder/basin.nbt | Bin 0 -> 1484 bytes src/main/resources/ponder/blaze_burner.nbt | Bin 0 -> 1047 bytes src/main/resources/ponder/crushing_wheel.nbt | Bin 0 -> 1271 bytes .../resources/ponder/empty_blaze_burner.nbt | Bin 0 -> 481 bytes src/main/resources/ponder/gauges.nbt | Bin 0 -> 656 bytes .../ponder/mechanical_mixer/mixing.nbt | Bin 0 -> 1142 bytes .../ponder/mechanical_press/compacting.nbt | Bin 0 -> 1179 bytes .../ponder/mechanical_press/pressing.nbt | Bin 0 -> 1042 bytes src/main/resources/ponder/millstone.nbt | Bin 0 -> 946 bytes 36 files changed, 1924 insertions(+), 51 deletions(-) create mode 100644 src/main/java/com/simibubi/create/foundation/ponder/content/ProcessingScenes.java create mode 100644 src/main/resources/ponder/basin.nbt create mode 100644 src/main/resources/ponder/blaze_burner.nbt create mode 100644 src/main/resources/ponder/crushing_wheel.nbt create mode 100644 src/main/resources/ponder/empty_blaze_burner.nbt create mode 100644 src/main/resources/ponder/gauges.nbt create mode 100644 src/main/resources/ponder/mechanical_mixer/mixing.nbt create mode 100644 src/main/resources/ponder/mechanical_press/compacting.nbt create mode 100644 src/main/resources/ponder/mechanical_press/pressing.nbt create mode 100644 src/main/resources/ponder/millstone.nbt diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 4c93571f0..a7b18ba48 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -402,19 +402,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json 2b12f3cf99e498899207a8c4855210e7b5dc55cd assets/create/lang/en_ud.json -e371fd4fccf90c4ee6f2fbea91ea5d70e3d6c652 assets/create/lang/en_us.json -610a33e7074c3fb8e88370bed76549bfcfe0eddb assets/create/lang/unfinished/de_de.json -29339e0bf9743251639a2598d17f194cd406602c assets/create/lang/unfinished/es_es.json -e7138596de0babd4fc90a4b8ffb8fdea13088086 assets/create/lang/unfinished/es_mx.json -a95f57787534ae5d4920fe8e4825fe3012fdcd70 assets/create/lang/unfinished/fr_fr.json -7956b67df2d19a9f890f893c9d736516cc6e8629 assets/create/lang/unfinished/it_it.json -95394f8cc9d53397e030c46a9abef4fa4348e2ad assets/create/lang/unfinished/ja_jp.json -edcd5ffe8239f13cedbd63ab11c8334a38b90c90 assets/create/lang/unfinished/ko_kr.json -1749d2d020f02a2ccca4698d85bfdc4dcf849e3f assets/create/lang/unfinished/nl_nl.json -83c43209c295b3d3d85f7bebaa9a8ce7b79d47da assets/create/lang/unfinished/pt_br.json -a1a67295a2fe537080254fc8b353699d4d30989a assets/create/lang/unfinished/ru_ru.json -a525852b4f3aa0af52816e02e5cf4181de0c60c5 assets/create/lang/unfinished/zh_cn.json -51242fa9de9994103e9373e5c8dd6941438ec9a8 assets/create/lang/unfinished/zh_tw.json +cb22b256847375aa973491ca51858a704a3edf2c assets/create/lang/en_us.json +d2c8c43f990f7844f3dea35fd0a98ee7f4d40576 assets/create/lang/unfinished/de_de.json +69ce4c93ab2d6afd93352fd269be68f4c53ed963 assets/create/lang/unfinished/es_es.json +2a63880625f84655bee39fa5ff0e4d5f0933f8f9 assets/create/lang/unfinished/es_mx.json +a568c0d8943021d8f438d80692a62e7987b35c7d assets/create/lang/unfinished/fr_fr.json +b21c69ffdb9f09324bfb51fb843af000bf9c2c13 assets/create/lang/unfinished/it_it.json +230ab0c62a7e8b6a6e0c68b3081f06e0148e120a assets/create/lang/unfinished/ja_jp.json +c42a6c5d2ae9b97d4c79751cd7f60f70864f8c36 assets/create/lang/unfinished/ko_kr.json +b640c6137991b8e25139105a44d0d13b0b66ed18 assets/create/lang/unfinished/nl_nl.json +b9c2f45ac232045e6c1124d48017154504096dbd assets/create/lang/unfinished/pt_br.json +d69e5e26891d5ff7a1d93a1f5cc0bd775e1dfa08 assets/create/lang/unfinished/ru_ru.json +dbf513ee2276e1460adf3f3f50f336d104a74884 assets/create/lang/unfinished/zh_cn.json +40fd381d585db529a20f31adf001ecaf6dc77104 assets/create/lang/unfinished/zh_tw.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1585,7 +1585,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear 9f9455ccb5fc9e3cbfce73862b46078346a522a5 assets/create/models/item/zinc_nugget.json b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json e76041b7ae829fdd7dc0524f6ca4d2f89fca51bb 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 356f4855a2a6c65be3fb51d7d1aabf2ca6034d42 data/create/advancements/arm_blaze_burner.json diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 5b572a2a7..b3751d222 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -1873,6 +1873,17 @@ "create.ponder.analog_lever.text_2": "Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "Processing Items in the Basin", + "create.ponder.basin.text_1": "A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "A number of options are applicable here", + "create.ponder.basin.text_5": "Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1901,6 +1912,12 @@ "create.ponder.belt_transport.text_1": "Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "The Brass Funnel", "create.ponder.brass_funnel.text_1": "Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "Brass Funnels can extract up to a full stack.", @@ -1967,6 +1984,12 @@ "create.ponder.creative_motor.text_1": "Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "Using the Deployer", "create.ponder.deployer.text_1": "Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "Right-click the front to give it an Item to use", @@ -1998,6 +2021,13 @@ "create.ponder.deployer_redstone.text_2": "Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "Strength and Direction of Flow depends on the Rotational Input", @@ -2124,6 +2154,12 @@ "create.ponder.mechanical_harvester.text_1": "Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "Speed and direction of movement depend on the Rotational Input", @@ -2139,6 +2175,18 @@ "create.ponder.mechanical_plough.text_3": "Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2154,6 +2202,13 @@ "create.ponder.mechanical_saw_processing.text_4": "When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "Processing Items in the Millstone", + "create.ponder.millstone.text_1": "Millstones process items by grinding them", + "create.ponder.millstone.text_2": "They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "Throw or Insert items at the top", + "create.ponder.millstone.text_4": "After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "Piston Extension Poles", "create.ponder.piston_pole.text_1": "Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "The Length of pole added at its back determines the Extension Range", @@ -2239,6 +2294,11 @@ "create.ponder.shaft_casing.header": "Encasing Shafts", "create.ponder.shaft_casing.text_1": "Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "..they will attempt to keep themselves upright", @@ -2251,6 +2311,11 @@ "create.ponder.sticker.text_3": "If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "The attached blocks will move together when assembled into a Contraption", 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 82ea9ce8f..d8e19da81 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: 1370", + "_": "Missing Localizations: 1425", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 477c1075f..5bc39f897 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: 401", + "_": "Missing Localizations: 456", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 5b8a24ac5..2dc445799 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: 1300", + "_": "Missing Localizations: 1355", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 54fec9d1c..347fa2a27 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: 1082", + "_": "Missing Localizations: 1137", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 8f188d3ce..763c8bb7b 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: 418", + "_": "Missing Localizations: 473", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 6a407c0a5..9b23ee4d0 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: 425", + "_": "Missing Localizations: 480", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 735d654f7..51410c720 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: 471", + "_": "Missing Localizations: 526", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 f3dbea0b4..402bc2bca 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: 1569", + "_": "Missing Localizations: 1624", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 659fc213b..92c791d67 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: 1635", + "_": "Missing Localizations: 1690", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 bbfb96413..660e3c42c 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: 421", + "_": "Missing Localizations: 476", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 68ae1cb13..7f3b14f8d 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: 419", + "_": "Missing Localizations: 474", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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 fff451d2d..6121864c8 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: 424", + "_": "Missing Localizations: 479", "_": "->------------------------] Game Elements [------------------------<-", @@ -1874,6 +1874,17 @@ "create.ponder.analog_lever.text_2": "UNLOCALIZED: Right-click to increase its analog power output", "create.ponder.analog_lever.text_3": "UNLOCALIZED: Right-click while Sneaking to decrease the power output again", + "create.ponder.basin.header": "UNLOCALIZED: Processing Items in the Basin", + "create.ponder.basin.text_1": "UNLOCALIZED: A Basin can hold Items and Fluids for Processing", + "create.ponder.basin.text_2": "UNLOCALIZED: After a processing step, basins try to output below to the side of them", + "create.ponder.basin.text_3": "UNLOCALIZED: When a valid component is present, the Basin will show an output faucet", + "create.ponder.basin.text_4": "UNLOCALIZED: A number of options are applicable here", + "create.ponder.basin.text_5": "UNLOCALIZED: Outputs will be caught by the inventory below", + "create.ponder.basin.text_6": "UNLOCALIZED: Without output faucet, the Basin will retain items created in its processing", + "create.ponder.basin.text_7": "UNLOCALIZED: This can be useful if outputs should be re-used as ingredients", + "create.ponder.basin.text_8": "UNLOCALIZED: Desired outputs will then have to be extracted from the basin", + "create.ponder.basin.text_9": "UNLOCALIZED: A Filter might be necessary to avoid pulling out un-processed items", + "create.ponder.bearing_modes.header": "UNLOCALIZED: Movement Modes of the Mechanical Bearing", "create.ponder.bearing_modes.text_1": "UNLOCALIZED: When Stopped, the Bearing will place the structure at the nearest grid-aligned Angle", "create.ponder.bearing_modes.text_2": "UNLOCALIZED: It can be configured never to revert to solid blocks, or only near the angle it started at", @@ -1902,6 +1913,12 @@ "create.ponder.belt_transport.text_1": "UNLOCALIZED: Moving belts will transport Items and other Entities", "create.ponder.belt_transport.text_2": "UNLOCALIZED: Right-Click with an empty hand to take items off a belt", + "create.ponder.blaze_burner.header": "UNLOCALIZED: Feeding Blaze Burners", + "create.ponder.blaze_burner.text_1": "UNLOCALIZED: Blaze Burners can provide Heat to Items processed in a Basin", + "create.ponder.blaze_burner.text_2": "UNLOCALIZED: For this, the Blaze has to be fed with flammable items", + "create.ponder.blaze_burner.text_3": "UNLOCALIZED: With a Blaze Cake, the Burner can reach an even stronger level of heat", + "create.ponder.blaze_burner.text_4": "UNLOCALIZED: The feeding process can be automated using Deployers or Mechanical Arms", + "create.ponder.brass_funnel.header": "UNLOCALIZED: The Brass Funnel", "create.ponder.brass_funnel.text_1": "UNLOCALIZED: Andesite Funnels can only ever extract single items.", "create.ponder.brass_funnel.text_2": "UNLOCALIZED: Brass Funnels can extract up to a full stack.", @@ -1968,6 +1985,12 @@ "create.ponder.creative_motor.text_1": "UNLOCALIZED: Creative motors are a compact and configurable source of Rotational Force", "create.ponder.creative_motor.text_2": "UNLOCALIZED: Scrolling on the back panel changes the RPM of the motors' rotational output", + "create.ponder.crushing_wheels.header": "UNLOCALIZED: Processing Items with Crushing Wheels", + "create.ponder.crushing_wheels.text_1": "UNLOCALIZED: A pair of Crushing Wheels can grind items very effectively", + "create.ponder.crushing_wheels.text_2": "UNLOCALIZED: Their Rotational Input has to make them spin into each other", + "create.ponder.crushing_wheels.text_3": "UNLOCALIZED: Items thrown or inserted into the top will get processed", + "create.ponder.crushing_wheels.text_4": "UNLOCALIZED: Items can be inserted and picked up through automated means as well", + "create.ponder.deployer.header": "UNLOCALIZED: Using the Deployer", "create.ponder.deployer.text_1": "UNLOCALIZED: Given Rotational Force, a Deployer can imitate player interactions", "create.ponder.deployer.text_10": "UNLOCALIZED: Right-click the front to give it an Item to use", @@ -1999,6 +2022,13 @@ "create.ponder.deployer_redstone.text_2": "UNLOCALIZED: Before stopping, the Deployer will finish any started cycles", "create.ponder.deployer_redstone.text_3": "UNLOCALIZED: Thus, a negative pulse can be used to trigger exactly one activation cycle", + "create.ponder.empty_blaze_burner.header": "UNLOCALIZED: Using Empty Blaze Burners", + "create.ponder.empty_blaze_burner.text_1": "UNLOCALIZED: Right-click a Blaze with the empty burner to capture it", + "create.ponder.empty_blaze_burner.text_2": "UNLOCALIZED: Alternatively, Blazes can be collected from their Spawners directly", + "create.ponder.empty_blaze_burner.text_3": "UNLOCALIZED: You now have an ideal heat source for various machines", + "create.ponder.empty_blaze_burner.text_4": "UNLOCALIZED: For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel", + "create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: However, these are not suitable for industrial heating", + "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", "create.ponder.fan_direction.text_2": "UNLOCALIZED: Strength and Direction of Flow depends on the Rotational Input", @@ -2125,6 +2155,12 @@ "create.ponder.mechanical_harvester.text_1": "UNLOCALIZED: Whenever Harvesters are moved as part of an animated Contraption...", "create.ponder.mechanical_harvester.text_2": "UNLOCALIZED: They will harvest and reset any mature crops on their way", + "create.ponder.mechanical_mixer.header": "UNLOCALIZED: Processing Items with the Mechanical Mixer", + "create.ponder.mechanical_mixer.text_1": "UNLOCALIZED: With a Mixer and Basin, some Crafting Recipes can be automated", + "create.ponder.mechanical_mixer.text_2": "UNLOCALIZED: Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_mixer.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_mixer.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_piston.header": "UNLOCALIZED: Moving Structures using Mechanical Pistons", "create.ponder.mechanical_piston.text_1": "UNLOCALIZED: Mechanical Pistons can move blocks in front of them", "create.ponder.mechanical_piston.text_2": "UNLOCALIZED: Speed and direction of movement depend on the Rotational Input", @@ -2140,6 +2176,18 @@ "create.ponder.mechanical_plough.text_3": "UNLOCALIZED: Additionally, ploughs can create farmland", "create.ponder.mechanical_plough.text_4": "UNLOCALIZED: ...they can also launch entities without hurting them", + "create.ponder.mechanical_press.header": "UNLOCALIZED: Processing Items with the Mechanical Press", + "create.ponder.mechanical_press.text_1": "UNLOCALIZED: The Mechanical Press can process items provided beneath it", + "create.ponder.mechanical_press.text_2": "UNLOCALIZED: The Input items can be dropped or placed on a Depot under the Press", + "create.ponder.mechanical_press.text_3": "UNLOCALIZED: When items are provided on a belt...", + "create.ponder.mechanical_press.text_4": "UNLOCALIZED: The Press will hold and process them automatically", + + "create.ponder.mechanical_press_compacting.header": "UNLOCALIZED: Compacting items with the Mechanical Press", + "create.ponder.mechanical_press_compacting.text_1": "UNLOCALIZED: Pressing items held in a Basin will cause them to be Compacted", + "create.ponder.mechanical_press_compacting.text_2": "UNLOCALIZED: Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones", + "create.ponder.mechanical_press_compacting.text_3": "UNLOCALIZED: Some of those recipes may require the heat of a Blaze Burner", + "create.ponder.mechanical_press_compacting.text_4": "UNLOCALIZED: The filter slot can be used in case two recipes are conflicting.", + "create.ponder.mechanical_saw_breaker.header": "UNLOCALIZED: Cutting Trees with the Mechanical Saw", "create.ponder.mechanical_saw_breaker.text_1": "UNLOCALIZED: When given Rotational Force, a Mechanical Saw will cut trees directly in front of it", "create.ponder.mechanical_saw_breaker.text_2": "UNLOCALIZED: In order to cut the tree fully, the Saw has to break the last block connecting it to the ground", @@ -2155,6 +2203,13 @@ "create.ponder.mechanical_saw_processing.text_4": "UNLOCALIZED: When an ingredient has multiple possible outcomes, the filter slot can specify it", "create.ponder.mechanical_saw_processing.text_5": "UNLOCALIZED: Without filter, the Saw would cycle through all outcomes instead", + "create.ponder.millstone.header": "UNLOCALIZED: Processing Items in the Millstone", + "create.ponder.millstone.text_1": "UNLOCALIZED: Millstones process items by grinding them", + "create.ponder.millstone.text_2": "UNLOCALIZED: They can be powered from the side using cogwheels", + "create.ponder.millstone.text_3": "UNLOCALIZED: Throw or Insert items at the top", + "create.ponder.millstone.text_4": "UNLOCALIZED: After some time, the result can be obtained via Right-click", + "create.ponder.millstone.text_5": "UNLOCALIZED: The outputs can also be extracted by automation", + "create.ponder.piston_pole.header": "UNLOCALIZED: Piston Extension Poles", "create.ponder.piston_pole.text_1": "UNLOCALIZED: Without attached Poles, a Mechanical Piston cannot move", "create.ponder.piston_pole.text_2": "UNLOCALIZED: The Length of pole added at its back determines the Extension Range", @@ -2240,6 +2295,11 @@ "create.ponder.shaft_casing.header": "UNLOCALIZED: Encasing Shafts", "create.ponder.shaft_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Shafts", + "create.ponder.speedometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Speedometer", + "create.ponder.speedometer.text_1": "UNLOCALIZED: The Speedometer displays the current Speed of the attached components", + "create.ponder.speedometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.speedometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Speedometer's measurements", + "create.ponder.stabilized_bearings.header": "UNLOCALIZED: Stabilized Contraptions", "create.ponder.stabilized_bearings.text_1": "UNLOCALIZED: Whenever Mechanical Bearings are themselves part of a moving Structure..", "create.ponder.stabilized_bearings.text_2": "UNLOCALIZED: ..they will attempt to keep themselves upright", @@ -2252,6 +2312,11 @@ "create.ponder.sticker.text_3": "UNLOCALIZED: If it is now moved in a contraption, the block will move with it", "create.ponder.sticker.text_4": "UNLOCALIZED: Toggled once again, the block is no longer attached", + "create.ponder.stressometer.header": "UNLOCALIZED: Monitoring Kinetic information using the Stressometer", + "create.ponder.stressometer.text_1": "UNLOCALIZED: The Stressometer displays the current Stress Capacity of the attached kinetic network", + "create.ponder.stressometer.text_2": "UNLOCALIZED: When wearing Engineers' Goggles, the player can get more detailed information from the Gauge", + "create.ponder.stressometer.text_3": "UNLOCALIZED: Comparators can emit analog Restone Signals relative to the Stressometer's measurements", + "create.ponder.super_glue.header": "UNLOCALIZED: Attaching blocks using Super Glue", "create.ponder.super_glue.text_1": "UNLOCALIZED: Super Glue can be used between any two blocks", "create.ponder.super_glue.text_2": "UNLOCALIZED: The attached blocks will move together when assembled into a Contraption", 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/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java index 6073f366e..7f9eb0859 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java @@ -116,7 +116,7 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { if (world.isRemote && runningTicks == 20) renderParticles(); - if (!world.isRemote && runningTicks == 20) { + if ((!world.isRemote || isVirtual()) && runningTicks == 20) { if (processingTicks < 0) { processingTicks = MathHelper.clamp((MathHelper.log2((int) (512 / speed))) * 15 + 1, 1, 512); } else { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java index ddc48fb8b..8b8f7fbf9 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java @@ -120,6 +120,7 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { public void start(Mode mode) { this.mode = mode; running = true; + prevRunningTicks = 0; runningTicks = 0; pressedItems.clear(); sendData(); @@ -203,7 +204,7 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { if (prevRunningTicks < CYCLE / 2 && runningTicks >= CYCLE / 2) { runningTicks = CYCLE / 2; // Pause the ticks until a packet is received - if (world.isRemote) + if (world.isRemote && !isVirtual()) runningTicks = -(CYCLE / 2); } } @@ -342,7 +343,7 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { return Optional.of(AllTriggers.PRESS_COMPACT); } - enum Mode { + public enum Mode { WORLD(1), BELT(19f / 16f), BASIN(22f / 16f) ; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java index 611c523be..32745013f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/burner/BlazeBurnerTileEntity.java @@ -75,8 +75,14 @@ public class BlazeBurnerTileEntity extends SmartTileEntity { ClientPlayerEntity player = Minecraft.getInstance().player; float target = 0; if (player != null) { - double dx = player.getX() - (getPos().getX() + 0.5); - double dz = player.getZ() - (getPos().getZ() + 0.5); + double x = player.getX(); + double z = player.getZ(); + if (isVirtual()) { + x = -4; + z = -10; + } + double dx = x - (getPos().getX() + 0.5); + double dz = z - (getPos().getZ() + 0.5); target = AngleHelper.deg(-MathHelper.atan2(dz, dx)) - 90; } target = headAngle.getValue() + AngleHelper.getShortestAngleDiff(headAngle.getValue(), target); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java b/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java index b9feddb16..0b241cae0 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderUI.java @@ -446,6 +446,7 @@ public class PonderUI extends NavigatableSimiScreen { // X AXIS RenderSystem.pushMatrix(); RenderSystem.translated(4, -3, 0); + RenderSystem.translated(0, 0, -2 / 1024f); for (int x = 0; x <= bounds.getXSize(); x++) { RenderSystem.translated(-16, 0, 0); font.drawString(x == bounds.getXSize() ? "x" : "" + x, 0, 0, 0xFFFFFFFF); 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 bed230311..b43adcffa 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/PonderWorld.java @@ -206,6 +206,11 @@ public class PonderWorld extends SchematicWorld { addParticle(makeParticle(data, x, y, z, mx, my, mz)); } + @Override + public void addOptionalParticle(IParticleData data, double x, double y, double z, double mx, double my, double mz) { + addParticle(data, x, y, z, mx, my, mz); + } + @Nullable @SuppressWarnings("unchecked") private Particle makeParticle(T data, double x, double y, double z, double mx, double my, @@ -297,5 +302,10 @@ public class PonderWorld extends SchematicWorld { public boolean isBlockPresent(BlockPos pos) { return true; // fix particle lighting } - + + @Override + public boolean isPlayerWithin(double p_217358_1_, double p_217358_3_, double p_217358_5_, double p_217358_7_) { + return true; // always enable spawner animations + } + } 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 92450e9d8..ead35f82a 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/SceneBuilder.java @@ -367,10 +367,6 @@ public class SceneBuilder { addInstruction(new OutlineSelectionInstruction(color, slot, selection, duration)); } - public void hideElement(ElementLink link, Direction direction) { - addInstruction(new FadeOutOfSceneInstruction<>(15, direction, link)); - } - } public class SpecialInstructions { @@ -430,6 +426,10 @@ public class SceneBuilder { addInstruction(AnimateMinecartInstruction.move(link, offset, duration)); } + public void hideElement(ElementLink link, Direction direction) { + addInstruction(new FadeOutOfSceneInstruction<>(15, direction, link)); + } + } public class WorldInstructions { @@ -689,11 +689,13 @@ public class SceneBuilder { addInstruction(scene -> { PonderWorld world = scene.getWorld(); TileEntity tileEntity = world.getTileEntity(beltLocation); - if (!(tileEntity instanceof BeltTileEntity)) + if (!(tileEntity instanceof SmartTileEntity)) return; - BeltTileEntity beltTileEntity = (BeltTileEntity) tileEntity; + SmartTileEntity beltTileEntity = (SmartTileEntity) tileEntity; TransportedItemStackHandlerBehaviour transporter = beltTileEntity.getBehaviour(TransportedItemStackHandlerBehaviour.TYPE); + if (transporter == null) + return; transporter.handleCenteredProcessingOnAllItems(.52f, tis -> TransportedResult.removeItem()); }); } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/CartAssemblerScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/CartAssemblerScenes.java index 037078293..aa89113eb 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/CartAssemblerScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/CartAssemblerScenes.java @@ -237,7 +237,7 @@ public class CartAssemblerScenes { scene.world.hideIndependentSection(contraption, Direction.UP); scene.world.hideIndependentSection(anchor, Direction.UP); - scene.overlay.hideElement(cart, Direction.UP); + scene.special.hideElement(cart, Direction.UP); scene.idle(25); Vec3d blockSurface = util.vector.blockSurface(assemblerPos, Direction.NORTH) @@ -440,7 +440,7 @@ public class CartAssemblerScenes { scene.world.moveSection(anchor, util.vector.of(-2, 0, 0), 10); scene.special.moveCart(cart, util.vector.of(-5, 0, 0), 25); scene.idle(30); - scene.overlay.hideElement(cart, Direction.UP); + scene.special.hideElement(cart, Direction.UP); scene.world.hideIndependentSection(contraption, Direction.UP); scene.world.moveSection(anchor, util.vector.of(0, -3, 0), 0); scene.idle(30); @@ -482,7 +482,7 @@ public class CartAssemblerScenes { scene.special.moveCart(cart, util.vector.of(-3, 0, 0), 15); scene.idle(30); - scene.overlay.hideElement(cart, Direction.UP); + scene.special.hideElement(cart, Direction.UP); scene.world.hideIndependentSection(anchor, Direction.UP); scene.world.hideIndependentSection(contraption, Direction.UP); scene.idle(20); diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java index 2e6dfe173..0bdaa16e6 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/KineticsScenes.java @@ -1,12 +1,16 @@ package com.simibubi.create.foundation.ponder.content; import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; import com.simibubi.create.content.contraptions.components.crank.ValveHandleBlock; +import com.simibubi.create.content.contraptions.components.crusher.CrushingWheelBlock; import com.simibubi.create.content.contraptions.components.waterwheel.WaterWheelBlock; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.SequencedGearshiftBlock; import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock; import com.simibubi.create.content.contraptions.relays.elementary.ShaftBlock; import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftBlock; +import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock; +import com.simibubi.create.content.contraptions.relays.gauge.StressGaugeTileEntity; import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity; import com.simibubi.create.foundation.ponder.ElementLink; import com.simibubi.create.foundation.ponder.SceneBuilder; @@ -1010,4 +1014,97 @@ public class KineticsScenes { scene.idle(35); } + public static void speedometer(SceneBuilder scene, SceneBuildingUtil util) { + gauge(scene, util, true); + } + + public static void stressometer(SceneBuilder scene, SceneBuildingUtil util) { + gauge(scene, util, false); + } + + private static void gauge(SceneBuilder scene, SceneBuildingUtil util, boolean speed) { + String component = speed ? "Speedometer" : "Stressometer"; + String title = "Monitoring Kinetic information using the " + component; + scene.title(speed ? "speedometer" : "stressometer", title); + scene.configureBasePlate(1, 0, 5); + + BlockPos gaugePos = util.grid.at(2, 1, 3); + + scene.world.showSection(util.select.layer(0), Direction.UP); + scene.idle(5); + + for (int x = 6; x >= 0; x--) { + scene.idle(2); + scene.world.showSection(util.select.position(x, 1, 3), Direction.DOWN); + } + scene.idle(10); + + scene.world.setBlock(gaugePos, (speed ? AllBlocks.SPEEDOMETER : AllBlocks.STRESSOMETER).getDefaultState() + .with(GaugeBlock.FACING, Direction.UP), true); + scene.world.setKineticSpeed(util.select.position(gaugePos), 32); + scene.idle(10); + + scene.overlay.showText(80) + .text("The " + component + " displays the current " + (speed ? "Speed" : "Stress Capacity") + + " of the attached " + (speed ? "components" : "kinetic network")) + .attachKeyFrame() + .pointAt(util.vector.topOf(gaugePos)) + .placeNearTarget(); + scene.idle(90); + + if (speed) { + scene.world.multiplyKineticSpeed(util.select.everywhere(), 4); + scene.effects.rotationSpeedIndicator(util.grid.at(6, 1, 3)); + scene.idle(5); + scene.effects.indicateSuccess(gaugePos); + + } else { + BlockState state = AllBlocks.CRUSHING_WHEEL.getDefaultState() + .with(CrushingWheelBlock.AXIS, Axis.X); + scene.world.setBlock(util.grid.at(5, 1, 3), state, true); + scene.world.setKineticSpeed(util.select.position(5, 1, 3), 32); + scene.world.modifyTileNBT(util.select.position(gaugePos), StressGaugeTileEntity.class, + nbt -> nbt.putFloat("Value", .5f)); + scene.effects.indicateRedstone(gaugePos); + scene.idle(20); + scene.world.setBlock(util.grid.at(4, 1, 3), state, true); + scene.world.setKineticSpeed(util.select.position(4, 1, 3), 32); + scene.world.modifyTileNBT(util.select.position(gaugePos), StressGaugeTileEntity.class, + nbt -> nbt.putFloat("Value", .9f)); + scene.effects.indicateRedstone(gaugePos); + scene.idle(10); + } + + scene.idle(30); + + Vec3d blockSurface = util.vector.blockSurface(gaugePos, Direction.NORTH); + scene.overlay.showControls( + new InputWindowElement(blockSurface, Pointing.RIGHT).withItem(AllItems.GOGGLES.asStack()), 40); + scene.idle(7); + scene.overlay.showText(80) + .text("When wearing Engineers' Goggles, the player can get more detailed information from the Gauge") + .attachKeyFrame() + .colored(PonderPalette.MEDIUM) + .pointAt(blockSurface) + .placeNearTarget(); + scene.idle(100); + + Selection comparator = util.select.fromTo(2, 1, 1, 2, 1, 2); + scene.world.showSection(comparator, Direction.SOUTH); + scene.idle(10); + scene.world.toggleRedstonePower(comparator); + scene.effects.indicateRedstone(util.grid.at(2, 1, 2)); + scene.idle(20); + + scene.overlay.showText(120) + .text("Comparators can emit analog Restone Signals relative to the " + component + "'s measurements") + .attachKeyFrame() + .colored(PonderPalette.RED) + .pointAt(util.vector.centerOf(2, 1, 2) + .add(0, -0.35, 0)) + .placeNearTarget(); + scene.idle(130); + scene.markAsFinished(); + } + } 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 fa3411878..9ff2b9854 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 @@ -77,6 +77,25 @@ public class PonderIndex { PonderRegistry.forComponents(AllBlocks.ROTATION_SPEED_CONTROLLER) .addStoryBoard("speed_controller", KineticsScenes::speedController); + // Gauges + PonderRegistry.addStoryBoard(AllBlocks.SPEEDOMETER, "gauges", KineticsScenes::speedometer); + PonderRegistry.addStoryBoard(AllBlocks.STRESSOMETER, "gauges", KineticsScenes::stressometer); + + // Item Processing + PonderRegistry.addStoryBoard(AllBlocks.MILLSTONE, "millstone", ProcessingScenes::millstone); + PonderRegistry.addStoryBoard(AllBlocks.CRUSHING_WHEEL, "crushing_wheel", ProcessingScenes::crushingWheels); + PonderRegistry.addStoryBoard(AllBlocks.MECHANICAL_MIXER, "mechanical_mixer/mixing", ProcessingScenes::mixing); + PonderRegistry.forComponents(AllBlocks.MECHANICAL_PRESS) + .addStoryBoard("mechanical_press/pressing", ProcessingScenes::pressing) + .addStoryBoard("mechanical_press/compacting", ProcessingScenes::compacting); + PonderRegistry.forComponents(AllBlocks.BASIN) + .addStoryBoard("basin", ProcessingScenes::basin) + .addStoryBoard("mechanical_mixer/mixing", ProcessingScenes::mixing) + .addStoryBoard("mechanical_press/compacting", ProcessingScenes::compacting); + PonderRegistry.addStoryBoard(AllItems.EMPTY_BLAZE_BURNER, "empty_blaze_burner", + ProcessingScenes::emptyBlazeBurner); + PonderRegistry.addStoryBoard(AllBlocks.BLAZE_BURNER, "blaze_burner", ProcessingScenes::blazeBurner); + // Funnels PonderRegistry.addStoryBoard(AllBlocks.BRASS_FUNNEL, "funnels/brass", FunnelScenes::brass); PonderRegistry.forComponents(AllBlocks.ANDESITE_FUNNEL, AllBlocks.BRASS_FUNNEL) diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/ProcessingScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/ProcessingScenes.java new file mode 100644 index 000000000..354a8b363 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/ProcessingScenes.java @@ -0,0 +1,895 @@ +package com.simibubi.create.foundation.ponder.content; + +import com.google.common.collect.ImmutableList; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllItems; +import com.simibubi.create.content.contraptions.components.deployer.DeployerTileEntity; +import com.simibubi.create.content.contraptions.components.millstone.MillstoneTileEntity; +import com.simibubi.create.content.contraptions.components.mixer.MechanicalMixerTileEntity; +import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity; +import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity.Mode; +import com.simibubi.create.content.contraptions.processing.BasinBlock; +import com.simibubi.create.content.contraptions.processing.BasinTileEntity; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; +import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; +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.elements.BeltItemElement; +import com.simibubi.create.foundation.ponder.elements.EntityElement; +import com.simibubi.create.foundation.ponder.elements.InputWindowElement; +import com.simibubi.create.foundation.ponder.elements.WorldSectionElement; +import com.simibubi.create.foundation.ponder.instructions.EmitParticlesInstruction.Emitter; +import com.simibubi.create.foundation.utility.IntAttached; +import com.simibubi.create.foundation.utility.Iterate; +import com.simibubi.create.foundation.utility.NBTHelper; +import com.simibubi.create.foundation.utility.Pointing; + +import net.minecraft.block.Blocks; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.item.ItemEntity; +import net.minecraft.entity.monster.BlazeEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.particles.ItemParticleData; +import net.minecraft.particles.ParticleTypes; +import net.minecraft.util.Direction; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; + +public class ProcessingScenes { + + public static void millstone(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("millstone", "Processing Items in the Millstone"); + scene.configureBasePlate(0, 0, 5); + + Selection belt = util.select.fromTo(1, 1, 5, 0, 1, 2) + .add(util.select.position(1, 2, 2)); + Selection beltCog = util.select.position(2, 0, 5); + + scene.world.showSection(util.select.layer(0) + .substract(beltCog), Direction.UP); + + BlockPos millstone = util.grid.at(2, 2, 2); + Selection millstoneSelect = util.select.position(2, 2, 2); + Selection cogs = util.select.fromTo(3, 1, 2, 3, 2, 2); + scene.world.setKineticSpeed(millstoneSelect, 0); + + scene.idle(5); + scene.world.showSection(util.select.position(4, 1, 3), Direction.DOWN); + scene.world.showSection(util.select.position(2, 1, 2), Direction.DOWN); + scene.idle(10); + scene.world.showSection(util.select.position(millstone), Direction.DOWN); + scene.idle(10); + Vec3d millstoneTop = util.vector.topOf(millstone); + scene.overlay.showText(60) + .attachKeyFrame() + .text("Millstones process items by grinding them") + .pointAt(millstoneTop) + .placeNearTarget(); + scene.idle(70); + + scene.world.showSection(cogs, Direction.DOWN); + scene.idle(10); + scene.world.setKineticSpeed(millstoneSelect, 32); + scene.effects.indicateSuccess(millstone); + scene.idle(10); + + scene.overlay.showText(60) + .attachKeyFrame() + .colored(PonderPalette.GREEN) + .text("They can be powered from the side using cogwheels") + .pointAt(util.vector.topOf(millstone.east())) + .placeNearTarget(); + scene.idle(70); + + ItemStack itemStack = new ItemStack(Items.WHEAT); + Vec3d entitySpawn = util.vector.topOf(millstone.up(3)); + + ElementLink entity1 = + scene.world.createItemEntity(entitySpawn, util.vector.of(0, 0.2, 0), itemStack); + scene.idle(18); + scene.world.modifyEntity(entity1, Entity::remove); + scene.world.modifyTileEntity(millstone, MillstoneTileEntity.class, + ms -> ms.inputInv.setStackInSlot(0, itemStack)); + scene.idle(10); + scene.overlay.showControls(new InputWindowElement(millstoneTop, Pointing.DOWN).withItem(itemStack), 30); + scene.idle(7); + + scene.overlay.showText(40) + .attachKeyFrame() + .text("Throw or Insert items at the top") + .pointAt(millstoneTop) + .placeNearTarget(); + scene.idle(60); + + scene.world.modifyTileEntity(millstone, MillstoneTileEntity.class, + ms -> ms.inputInv.setStackInSlot(0, ItemStack.EMPTY)); + + scene.overlay.showText(50) + .text("After some time, the result can be obtained via Right-click") + .pointAt(util.vector.blockSurface(millstone, Direction.WEST)) + .placeNearTarget(); + scene.idle(60); + + ItemStack flour = AllItems.WHEAT_FLOUR.asStack(); + scene.overlay.showControls( + new InputWindowElement(util.vector.blockSurface(millstone, Direction.NORTH), Pointing.RIGHT).rightClick() + .withItem(flour), + 40); + scene.idle(50); + + scene.addKeyframe(); + scene.world.showSection(beltCog, Direction.UP); + scene.world.showSection(belt, Direction.EAST); + scene.idle(15); + + BlockPos beltPos = util.grid.at(1, 1, 2); + scene.world.createItemOnBelt(beltPos, Direction.EAST, flour); + scene.idle(15); + scene.world.createItemOnBelt(beltPos, Direction.EAST, new ItemStack(Items.WHEAT_SEEDS)); + scene.idle(20); + + scene.overlay.showText(50) + .text("The outputs can also be extracted by automation") + .pointAt(util.vector.blockSurface(millstone, Direction.WEST) + .add(-.5, .4, 0)) + .placeNearTarget(); + scene.idle(60); + } + + public static void crushingWheels(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("crushing_wheels", "Processing Items with Crushing Wheels"); + scene.configureBasePlate(0, 0, 5); + scene.scaleSceneView(.9f); + + Selection wheels = util.select.fromTo(3, 2, 2, 1, 2, 2); + Selection kinetics = util.select.fromTo(0, 1, 5, 4, 1, 3); + Selection kinetics2 = util.select.fromTo(0, 2, 5, 4, 2, 3); + Selection beltCog = util.select.position(5, 0, 1); + scene.world.setKineticSpeed(wheels, 0); + scene.world.setBlock(util.grid.at(2, 3, 2), Blocks.AIR.getDefaultState(), false); + + scene.world.showSection(util.select.layer(0) + .substract(beltCog), Direction.UP); + scene.idle(5); + + Selection belt = util.select.fromTo(4, 1, 2, 4, 4, 2) + .add(util.select.fromTo(4, 3, 3, 4, 4, 3)) + .add(util.select.position(3, 3, 2)) + .add(util.select.position(2, 3, 2)); + Selection bottomBelt = util.select.fromTo(5, 1, 0, 2, 1, 0) + .add(util.select.fromTo(2, 1, 2, 2, 1, 1)); + + BlockPos center = util.grid.at(2, 2, 2); + Selection wWheel = util.select.position(center.west()); + Selection eWheel = util.select.position(center.east()); + + scene.world.showSection(wWheel, Direction.SOUTH); + scene.idle(3); + scene.world.showSection(eWheel, Direction.SOUTH); + scene.idle(10); + + Vec3d centerTop = util.vector.topOf(center); + scene.overlay.showText(60) + .attachKeyFrame() + .text("A pair of Crushing Wheels can grind items very effectively") + .pointAt(centerTop) + .placeNearTarget(); + scene.idle(70); + + scene.world.showSection(kinetics, Direction.DOWN); + scene.idle(3); + scene.world.showSection(kinetics2, Direction.DOWN); + scene.world.setKineticSpeed(wWheel, -16); + scene.world.setKineticSpeed(eWheel, 16); + scene.idle(5); + scene.effects.rotationDirectionIndicator(center.west()); + scene.effects.rotationDirectionIndicator(center.east()); + scene.idle(10); + + scene.overlay.showText(60) + .attachKeyFrame() + .text("Their Rotational Input has to make them spin into each other") + .pointAt(util.vector.blockSurface(center.west(), Direction.NORTH)) + .placeNearTarget(); + scene.idle(40); + scene.effects.rotationDirectionIndicator(center.west()); + scene.effects.rotationDirectionIndicator(center.east()); + scene.idle(30); + + ItemStack input = new ItemStack(Items.GOLD_ORE); + ItemStack output = AllItems.CRUSHED_GOLD.asStack(); + Vec3d entitySpawn = util.vector.topOf(center.up(2)); + + ElementLink entity1 = + scene.world.createItemEntity(entitySpawn, util.vector.of(0, 0.2, 0), input); + scene.idle(18); + scene.world.modifyEntity(entity1, Entity::remove); + Emitter blockSpace = + Emitter.withinBlockSpace(new ItemParticleData(ParticleTypes.ITEM, input), util.vector.of(0, 0, 0)); + scene.effects.emitParticles(util.vector.centerOf(center) + .add(0, -0.2, 0), blockSpace, 3, 40); + scene.idle(10); + scene.overlay.showControls(new InputWindowElement(centerTop, Pointing.DOWN).withItem(input), 30); + scene.idle(7); + + scene.overlay.showText(50) + .attachKeyFrame() + .text("Items thrown or inserted into the top will get processed") + .pointAt(centerTop) + .placeNearTarget(); + scene.idle(60); + + scene.world.createItemEntity(centerTop.add(0, -1.4, 0), util.vector.of(0, 0, 0), output); + scene.idle(10); + scene.world.createItemEntity(centerTop.add(0, -1.4, 0), util.vector.of(0, 0, 0), output); + scene.overlay.showControls(new InputWindowElement(centerTop.add(0, -2, 0), Pointing.UP).withItem(output), 30); + scene.idle(40); + + scene.world.restoreBlocks(util.select.position(2, 3, 2)); + scene.world.showSection(belt, Direction.DOWN); + scene.idle(5); + scene.world.showSection(beltCog, Direction.UP); + scene.idle(5); + scene.world.modifyEntities(ItemEntity.class, Entity::remove); + scene.world.showSection(bottomBelt, Direction.SOUTH); + scene.idle(5); + + scene.overlay.showText(50) + .attachKeyFrame() + .text("Items can be inserted and picked up through automated means as well") + .pointAt(centerTop.add(0, .5, 0)) + .placeNearTarget(); + scene.idle(40); + + for (int i = 0; i < 5; i++) { + if (i < 4) + scene.world.createItemOnBelt(util.grid.at(4, 4, 2), Direction.EAST, input); + scene.idle(15); + if (i < 3) + scene.world.createItemOnBelt(util.grid.at(4, 4, 2), Direction.EAST, input); + scene.idle(15); + if (i > 0) { + scene.world.createItemOnBelt(center.down(), Direction.UP, output); + scene.idle(15); + scene.world.createItemOnBelt(center.down(), Direction.UP, output); + } + scene.world.removeItemsFromBelt(util.grid.at(3, 3, 2)); + if (i < 4) + scene.effects.emitParticles(util.vector.centerOf(center) + .add(0, -0.2, 0), blockSpace, 3, 28); + if (i == 0) + scene.markAsFinished(); + } + } + + public static void pressing(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("mechanical_press", "Processing Items with the Mechanical Press"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0), Direction.UP); + scene.idle(5); + + ElementLink depot = + scene.world.showIndependentSection(util.select.position(2, 1, 1), Direction.DOWN); + scene.world.moveSection(depot, util.vector.of(0, 0, 1), 0); + scene.idle(10); + + Selection pressS = util.select.position(2, 3, 2); + BlockPos pressPos = util.grid.at(2, 3, 2); + BlockPos depotPos = util.grid.at(2, 1, 1); + scene.world.setKineticSpeed(pressS, 0); + scene.world.showSection(pressS, Direction.DOWN); + scene.idle(10); + + scene.world.showSection(util.select.fromTo(2, 1, 3, 2, 1, 5), Direction.NORTH); + scene.idle(3); + scene.world.showSection(util.select.position(2, 2, 3), Direction.SOUTH); + scene.idle(3); + scene.world.showSection(util.select.position(2, 3, 3), Direction.NORTH); + scene.world.setKineticSpeed(pressS, -32); + scene.effects.indicateSuccess(pressPos); + scene.idle(10); + + Vec3d pressSide = util.vector.blockSurface(pressPos, Direction.WEST); + scene.overlay.showText(60) + .pointAt(pressSide) + .placeNearTarget() + .attachKeyFrame() + .text("The Mechanical Press can process items provided beneath it"); + scene.idle(70); + scene.overlay.showText(60) + .pointAt(pressSide.subtract(0, 2, 0)) + .placeNearTarget() + .text("The Input items can be dropped or placed on a Depot under the Press"); + scene.idle(50); + ItemStack copper = AllItems.COPPER_INGOT.asStack(); + scene.world.createItemOnBeltLike(depotPos, Direction.NORTH, copper); + Vec3d depotCenter = util.vector.centerOf(depotPos.south()); + scene.overlay.showControls(new InputWindowElement(depotCenter, Pointing.UP).withItem(copper), 30); + scene.idle(10); + + Class type = MechanicalPressTileEntity.class; + scene.world.modifyTileEntity(pressPos, type, pte -> pte.start(Mode.BELT)); + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, + pte -> pte.makePressingParticleEffect(depotCenter.add(0, 8 / 16f, 0), copper)); + scene.world.removeItemsFromBelt(depotPos); + ItemStack sheet = AllItems.COPPER_SHEET.asStack(); + scene.world.createItemOnBeltLike(depotPos, Direction.UP, sheet); + scene.idle(10); + scene.overlay.showControls(new InputWindowElement(depotCenter, Pointing.UP).withItem(sheet), 50); + scene.idle(60); + + scene.world.hideIndependentSection(depot, Direction.NORTH); + scene.idle(5); + scene.world.showSection(util.select.fromTo(0, 1, 3, 0, 2, 3), Direction.DOWN); + scene.idle(10); + scene.world.showSection(util.select.fromTo(4, 1, 2, 0, 2, 2), Direction.SOUTH); + scene.idle(20); + BlockPos beltPos = util.grid.at(0, 1, 2); + scene.overlay.showText(40) + .pointAt(util.vector.blockSurface(beltPos, Direction.WEST)) + .placeNearTarget() + .attachKeyFrame() + .text("When items are provided on a belt..."); + scene.idle(30); + + ElementLink ingot = scene.world.createItemOnBelt(beltPos, Direction.SOUTH, copper); + scene.idle(15); + ElementLink ingot2 = scene.world.createItemOnBelt(beltPos, Direction.SOUTH, copper); + scene.idle(15); + scene.world.stallBeltItem(ingot, true); + scene.world.modifyTileEntity(pressPos, type, pte -> pte.start(Mode.BELT)); + + scene.overlay.showText(50) + .pointAt(pressSide) + .placeNearTarget() + .attachKeyFrame() + .text("The Press will hold and process them automatically"); + + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, + pte -> pte.makePressingParticleEffect(depotCenter.add(0, 8 / 16f, 0), copper)); + scene.world.removeItemsFromBelt(pressPos.down(2)); + ingot = scene.world.createItemOnBelt(pressPos.down(2), Direction.UP, sheet); + scene.world.stallBeltItem(ingot, true); + scene.idle(15); + scene.world.stallBeltItem(ingot, false); + scene.idle(15); + scene.world.stallBeltItem(ingot2, true); + scene.world.modifyTileEntity(pressPos, type, pte -> pte.start(Mode.BELT)); + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, + pte -> pte.makePressingParticleEffect(depotCenter.add(0, 8 / 16f, 0), copper)); + scene.world.removeItemsFromBelt(pressPos.down(2)); + ingot2 = scene.world.createItemOnBelt(pressPos.down(2), Direction.UP, sheet); + scene.world.stallBeltItem(ingot2, true); + scene.idle(15); + scene.world.stallBeltItem(ingot2, false); + + } + + public static void mixing(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("mechanical_mixer", "Processing Items with the Mechanical Mixer"); + scene.configureBasePlate(0, 0, 5); + scene.world.setBlock(util.grid.at(1, 1, 2), AllBlocks.ANDESITE_CASING.getDefaultState(), false); + scene.world.showSection(util.select.layer(0), Direction.UP); + scene.idle(5); + scene.world.showSection(util.select.fromTo(1, 4, 3, 1, 1, 5), Direction.DOWN); + scene.idle(5); + scene.world.showSection(util.select.position(1, 1, 2), Direction.DOWN); + scene.idle(5); + scene.world.showSection(util.select.position(1, 2, 2), Direction.DOWN); + scene.idle(5); + scene.world.showSection(util.select.position(1, 4, 2), Direction.SOUTH); + scene.idle(5); + scene.world.showSection(util.select.fromTo(3, 1, 1, 1, 1, 1), Direction.SOUTH); + scene.world.showSection(util.select.fromTo(3, 1, 5, 3, 1, 2), Direction.SOUTH); + scene.idle(20); + + BlockPos basin = util.grid.at(1, 2, 2); + BlockPos pressPos = util.grid.at(1, 4, 2); + Vec3d basinSide = util.vector.blockSurface(basin, Direction.WEST); + + ItemStack blue = new ItemStack(Items.BLUE_DYE); + ItemStack red = new ItemStack(Items.RED_DYE); + ItemStack purple = new ItemStack(Items.PURPLE_DYE); + + scene.overlay.showText(60) + .pointAt(basinSide) + .placeNearTarget() + .attachKeyFrame() + .text("With a Mixer and Basin, some Crafting Recipes can be automated"); + scene.idle(40); + + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(basin), Pointing.LEFT).withItem(blue), 30); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(basin), Pointing.RIGHT).withItem(red), 30); + scene.idle(30); + Class type = MechanicalMixerTileEntity.class; + scene.world.modifyTileEntity(pressPos, type, pte -> pte.startProcessingBasin()); + scene.world.createItemOnBeltLike(basin, Direction.UP, red); + scene.world.createItemOnBeltLike(basin, Direction.UP, blue); + scene.idle(80); + scene.world.modifyTileNBT(util.select.position(basin), BasinTileEntity.class, nbt -> { + nbt.put("VisualizedItems", + NBTHelper.writeCompoundList(ImmutableList.of(IntAttached.with(1, purple)), ia -> ia.getValue() + .serializeNBT())); + }); + scene.idle(4); + scene.world.createItemOnBelt(util.grid.at(1, 1, 1), Direction.UP, purple); + scene.idle(30); + + scene.overlay.showText(80) + .pointAt(basinSide) + .placeNearTarget() + .attachKeyFrame() + .text("Available recipes include any Shapeless Crafting Recipe, plus a couple extra ones"); + scene.idle(80); + + scene.rotateCameraY(-30); + scene.idle(10); + scene.world.setBlock(util.grid.at(1, 1, 2), AllBlocks.BLAZE_BURNER.getDefaultState() + .with(BlazeBurnerBlock.HEAT_LEVEL, HeatLevel.KINDLED), true); + scene.idle(10); + + scene.overlay.showText(80) + .pointAt(basinSide.subtract(0, 1, 0)) + .placeNearTarget() + .text("Some of those recipes may require the heat of a Blaze Burner"); + scene.idle(40); + + scene.rotateCameraY(30); + + scene.idle(60); + Vec3d filterPos = util.vector.of(1, 2.75f, 2.5f); + scene.overlay.showFilterSlotInput(filterPos, 100); + scene.overlay.showText(120) + .pointAt(filterPos) + .placeNearTarget() + .attachKeyFrame() + .text("The filter slot can be used in case two recipes are conflicting."); + scene.idle(60); + } + + public static void compacting(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("mechanical_press_compacting", "Compacting items with the Mechanical Press"); + scene.configureBasePlate(0, 0, 5); + scene.world.setBlock(util.grid.at(1, 1, 2), AllBlocks.ANDESITE_CASING.getDefaultState(), false); + scene.world.showSection(util.select.layer(0), Direction.UP); + scene.idle(5); + scene.world.showSection(util.select.fromTo(1, 4, 3, 1, 1, 5), Direction.DOWN); + scene.idle(5); + scene.world.showSection(util.select.position(1, 1, 2), Direction.DOWN); + scene.idle(5); + scene.world.showSection(util.select.position(1, 2, 2), Direction.DOWN); + scene.idle(5); + scene.world.showSection(util.select.position(1, 4, 2), Direction.SOUTH); + scene.idle(5); + scene.world.showSection(util.select.fromTo(3, 1, 1, 1, 1, 1), Direction.SOUTH); + scene.world.showSection(util.select.fromTo(3, 1, 5, 3, 1, 2), Direction.SOUTH); + scene.idle(20); + + BlockPos basin = util.grid.at(1, 2, 2); + BlockPos pressPos = util.grid.at(1, 4, 2); + Vec3d basinSide = util.vector.blockSurface(basin, Direction.WEST); + + ItemStack copper = AllItems.COPPER_INGOT.asStack(); + ItemStack copperBlock = AllBlocks.COPPER_BLOCK.asStack(); + + scene.overlay.showText(60) + .pointAt(basinSide) + .placeNearTarget() + .attachKeyFrame() + .text("Pressing items held in a Basin will cause them to be Compacted"); + scene.idle(40); + + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(basin), Pointing.DOWN).withItem(copper), + 30); + scene.idle(30); + Class type = MechanicalPressTileEntity.class; + scene.world.modifyTileEntity(pressPos, type, pte -> pte.start(Mode.BASIN)); + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, + pte -> pte.makeCompactingParticleEffect(util.vector.centerOf(basin), copper)); + scene.world.modifyTileNBT(util.select.position(basin), BasinTileEntity.class, nbt -> { + nbt.put("VisualizedItems", + NBTHelper.writeCompoundList(ImmutableList.of(IntAttached.with(1, copperBlock)), ia -> ia.getValue() + .serializeNBT())); + }); + scene.idle(4); + scene.world.createItemOnBelt(util.grid.at(1, 1, 1), Direction.UP, copperBlock); + scene.idle(30); + + scene.overlay.showText(80) + .pointAt(basinSide) + .placeNearTarget() + .attachKeyFrame() + .text("Compacting includes any filled 2x2 or 3x3 Crafting Recipe, plus a couple extra ones"); + + scene.idle(30); + ItemStack log = new ItemStack(Items.OAK_LOG); + ItemStack bark = new ItemStack(Items.OAK_WOOD); + + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(basin), Pointing.DOWN).withItem(log), 30); + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, pte -> pte.start(Mode.BASIN)); + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, + pte -> pte.makeCompactingParticleEffect(util.vector.centerOf(basin), log)); + scene.world.modifyTileNBT(util.select.position(basin), BasinTileEntity.class, nbt -> { + nbt.put("VisualizedItems", + NBTHelper.writeCompoundList(ImmutableList.of(IntAttached.with(1, bark)), ia -> ia.getValue() + .serializeNBT())); + }); + scene.idle(4); + scene.world.createItemOnBelt(util.grid.at(1, 1, 1), Direction.UP, bark); + scene.idle(30); + + scene.rotateCameraY(-30); + scene.idle(10); + scene.world.setBlock(util.grid.at(1, 1, 2), AllBlocks.BLAZE_BURNER.getDefaultState() + .with(BlazeBurnerBlock.HEAT_LEVEL, HeatLevel.KINDLED), true); + scene.idle(10); + + scene.overlay.showText(80) + .pointAt(basinSide.subtract(0, 1, 0)) + .placeNearTarget() + .text("Some of those recipes may require the heat of a Blaze Burner"); + scene.idle(40); + + scene.rotateCameraY(30); + + scene.idle(60); + Vec3d filterPos = util.vector.of(1, 2.75f, 2.5f); + scene.overlay.showFilterSlotInput(filterPos, 100); + scene.overlay.showText(120) + .pointAt(filterPos) + .placeNearTarget() + .attachKeyFrame() + .text("The filter slot can be used in case two recipes are conflicting."); + scene.idle(60); + } + + public static void emptyBlazeBurner(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("empty_blaze_burner", "Using Empty Blaze Burners"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0), Direction.UP); + scene.idle(10); + BlockPos center = util.grid.at(2, 0, 2); + + scene.world.createEntity(w -> { + BlazeEntity blazeEntity = EntityType.BLAZE.create(w); + Vec3d v = util.vector.topOf(center); + blazeEntity.setPos(v.x, v.y, v.z); + blazeEntity.prevRotationYaw = blazeEntity.rotationYaw = 180; + return blazeEntity; + }); + + scene.idle(20); + scene.overlay + .showControls(new InputWindowElement(util.vector.centerOf(center.up(2)), Pointing.DOWN).rightClick() + .withItem(AllItems.EMPTY_BLAZE_BURNER.asStack()), 40); + scene.idle(10); + scene.overlay.showText(60) + .text("Right-click a Blaze with the empty burner to capture it") + .attachKeyFrame() + .pointAt(util.vector.blockSurface(center.up(2), Direction.WEST)) + .placeNearTarget(); + scene.idle(50); + + scene.world.modifyEntities(BlazeEntity.class, Entity::remove); + scene.idle(20); + + scene.world.showSection(util.select.position(2, 1, 2), Direction.DOWN); + scene.idle(20); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(center.up()), Pointing.DOWN).rightClick() + .withItem(AllItems.EMPTY_BLAZE_BURNER.asStack()), 40); + scene.idle(10); + scene.overlay.showText(60) + .text("Alternatively, Blazes can be collected from their Spawners directly") + .attachKeyFrame() + .pointAt(util.vector.blockSurface(center.up(), Direction.WEST)) + .placeNearTarget(); + scene.idle(50); + scene.world.hideSection(util.select.position(2, 1, 2), Direction.UP); + scene.idle(20); + scene.world.showSection(util.select.position(1, 1, 2), Direction.DOWN); + scene.idle(20); + + scene.world.modifyBlock(util.grid.at(1, 1, 2), s -> s.with(BlazeBurnerBlock.HEAT_LEVEL, HeatLevel.KINDLED), + false); + scene.overlay.showText(70) + .text("You now have an ideal heat source for various machines") + .attachKeyFrame() + .pointAt(util.vector.blockSurface(center.west() + .up(), Direction.WEST)) + .placeNearTarget(); + scene.idle(80); + + scene.world.showSection(util.select.position(3, 1, 2), Direction.DOWN); + scene.idle(20); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(center.east() + .up()), Pointing.DOWN).rightClick() + .withItem(new ItemStack(Items.FLINT_AND_STEEL)), + 40); + scene.idle(7); + scene.world.setBlock(util.grid.at(3, 1, 2), AllBlocks.LIT_BLAZE_BURNER.getDefaultState(), true); + scene.idle(10); + scene.overlay.showText(90) + .text("For Aesthetic purposes, Empty Blaze Burners can also be lit using Flint and Steel") + .attachKeyFrame() + .pointAt(util.vector.blockSurface(center.east() + .up(), Direction.UP)) + .placeNearTarget(); + scene.idle(70); + scene.overlay.showText(90) + .colored(PonderPalette.RED) + .text("However, these are not suitable for industrial heating") + .pointAt(util.vector.blockSurface(center.east() + .up(), Direction.UP)) + .placeNearTarget(); + scene.idle(70); + } + + public static void blazeBurner(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("blaze_burner", "Feeding Blaze Burners"); + scene.configureBasePlate(0, 0, 5); + scene.showBasePlate(); + scene.idle(10); + + BlockPos burner = util.grid.at(2, 1, 2); + scene.world.showSection(util.select.position(burner), Direction.DOWN); + scene.idle(10); + scene.world.showSection(util.select.position(burner.up()), Direction.DOWN); + scene.idle(10); + + scene.overlay.showText(70) + .attachKeyFrame() + .text("Blaze Burners can provide Heat to Items processed in a Basin") + .pointAt(util.vector.blockSurface(burner, Direction.WEST)) + .placeNearTarget(); + scene.idle(80); + + scene.world.hideSection(util.select.position(burner.up()), Direction.UP); + scene.idle(20); + scene.world.setBlock(burner.up(), Blocks.AIR.getDefaultState(), false); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(burner), Pointing.DOWN).rightClick() + .withItem(new ItemStack(Items.OAK_PLANKS)), 15); + scene.idle(7); + scene.world.modifyBlock(burner, s -> s.with(BlazeBurnerBlock.HEAT_LEVEL, HeatLevel.FADING), false); + scene.idle(15); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(burner), Pointing.DOWN).rightClick() + .withItem(new ItemStack(Items.OAK_PLANKS)), 15); + scene.idle(7); + scene.world.modifyBlock(burner, s -> s.with(BlazeBurnerBlock.HEAT_LEVEL, HeatLevel.KINDLED), false); + scene.idle(20); + + scene.overlay.showText(70) + .attachKeyFrame() + .text("For this, the Blaze has to be fed with flammable items") + .pointAt(util.vector.blockSurface(burner, Direction.WEST)) + .placeNearTarget(); + scene.idle(80); + + scene.idle(20); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(burner), Pointing.DOWN).rightClick() + .withItem(AllItems.BLAZE_CAKE.asStack()), 30); + scene.idle(7); + scene.world.modifyBlock(burner, s -> s.with(BlazeBurnerBlock.HEAT_LEVEL, HeatLevel.SEETHING), false); + scene.idle(20); + + scene.overlay.showText(80) + .attachKeyFrame() + .colored(PonderPalette.MEDIUM) + .text("With a Blaze Cake, the Burner can reach an even stronger level of heat") + .pointAt(util.vector.blockSurface(burner, Direction.WEST)) + .placeNearTarget(); + scene.idle(90); + + Class teType = DeployerTileEntity.class; + scene.world.modifyTileNBT(util.select.position(4, 1, 2), teType, + nbt -> nbt.put("HeldItem", AllItems.BLAZE_CAKE.asStack() + .serializeNBT())); + + scene.world.showSection(util.select.fromTo(3, 0, 5, 2, 0, 5), Direction.UP); + scene.idle(5); + scene.world.showSection(util.select.fromTo(4, 1, 2, 4, 1, 5), Direction.DOWN); + scene.idle(5); + scene.world.showSection(util.select.fromTo(2, 1, 4, 2, 1, 5), Direction.DOWN); + scene.idle(10); + + scene.overlay.showText(80) + .attachKeyFrame() + .text("The feeding process can be automated using Deployers or Mechanical Arms") + .pointAt(util.vector.blockSurface(burner.east(2), Direction.UP)); + scene.idle(90); + } + + public static void basin(SceneBuilder scene, SceneBuildingUtil util) { + scene.title("basin", "Processing Items in the Basin"); + scene.configureBasePlate(0, 0, 5); + scene.world.showSection(util.select.layer(0), Direction.UP); + scene.idle(5); + + scene.world.showSection(util.select.position(1, 1, 2), Direction.DOWN); + scene.idle(10); + BlockPos basinPos = util.grid.at(1, 2, 2); + scene.world.modifyBlock(basinPos, s -> s.with(BasinBlock.FACING, Direction.DOWN), false); + scene.world.showSection(util.select.position(basinPos), Direction.DOWN); + scene.idle(10); + Vec3d basinSide = util.vector.blockSurface(basinPos, Direction.WEST); + scene.overlay.showText(80) + .attachKeyFrame() + .text("A Basin can hold Items and Fluids for Processing") + .pointAt(basinSide) + .placeNearTarget(); + scene.idle(10); + + ItemStack stack = new ItemStack(Items.BRICK); + for (int i = 0; i < 4; i++) { + scene.world.createItemEntity(util.vector.centerOf(basinPos.up(3)), util.vector.of(0, 0, 0), stack); + scene.idle(10); + } + scene.idle(10); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(basinPos), Pointing.DOWN).withItem(stack), + 30); + scene.idle(30); + + for (Direction d : Iterate.horizontalDirections) { + scene.overlay.showOutline(PonderPalette.GREEN, new Object(), util.select.position(basinPos.down() + .offset(d)), 60); + scene.idle(4); + } + + scene.overlay.showText(80) + .attachKeyFrame() + .colored(PonderPalette.GREEN) + .text("After a processing step, basins try to output below to the side of them") + .pointAt(basinSide) + .placeNearTarget(); + scene.idle(90); + + ElementLink depot = + scene.world.showIndependentSection(util.select.position(3, 1, 1), Direction.EAST); + scene.world.moveSection(depot, util.vector.of(-2, 0, 0), 0); + scene.idle(10); + scene.world.modifyBlock(basinPos, s -> s.with(BasinBlock.FACING, Direction.NORTH), false); + scene.idle(10); + + scene.overlay.showText(80) + .attachKeyFrame() + .colored(PonderPalette.GREEN) + .text("When a valid component is present, the Basin will show an output faucet") + .pointAt(basinSide.add(0.15, 0, -0.5)) + .placeNearTarget(); + scene.idle(90); + + scene.world.hideIndependentSection(depot, Direction.EAST); + scene.idle(15); + depot = scene.world.showIndependentSection(util.select.position(0, 1, 1), Direction.EAST); + scene.world.moveSection(depot, util.vector.of(1, 0, 0), 0); + scene.idle(20); + scene.world.hideIndependentSection(depot, Direction.EAST); + + scene.overlay.showText(80) + .text("A number of options are applicable here") + .pointAt(util.vector.centerOf(util.grid.at(1, 1, 1))) + .placeNearTarget(); + + scene.idle(15); + depot = scene.world.showIndependentSection(util.select.position(1, 1, 0), Direction.EAST); + scene.world.moveSection(depot, util.vector.of(0, 0, 1), 0); + scene.idle(20); + scene.world.hideIndependentSection(depot, Direction.EAST); + scene.idle(15); + depot = scene.world.showIndependentSection(util.select.position(1, 1, 1), Direction.EAST); + scene.idle(20); + scene.world.hideIndependentSection(depot, Direction.EAST); + scene.idle(15); + depot = scene.world.showIndependentSection(util.select.fromTo(3, 1, 0, 2, 1, 0), Direction.EAST); + scene.world.moveSection(depot, util.vector.of(-2, 0, 1), 0); + scene.idle(20); + scene.world.hideIndependentSection(depot, Direction.EAST); + scene.idle(15); + depot = scene.world.showIndependentSection(util.select.position(2, 1, 1), Direction.EAST); + scene.world.moveSection(depot, util.vector.of(-1, 0, 0), 0); + + scene.idle(25); + + BlockPos pressPos = util.grid.at(1, 4, 2); + scene.world.showSection(util.select.position(pressPos), Direction.DOWN); + scene.idle(5); + scene.world.showSection(util.select.fromTo(1, 4, 3, 1, 1, 5), Direction.NORTH); + scene.idle(10); + + Class type = MechanicalPressTileEntity.class; + scene.world.modifyTileEntity(pressPos, type, pte -> pte.start(Mode.BASIN)); + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, + pte -> pte.makeCompactingParticleEffect(util.vector.centerOf(basinPos), stack)); + scene.world.modifyTileNBT(util.select.position(basinPos), BasinTileEntity.class, nbt -> { + nbt.put("VisualizedItems", + NBTHelper.writeCompoundList(ImmutableList.of(IntAttached.with(1, new ItemStack(Blocks.BRICKS))), + ia -> ia.getValue() + .serializeNBT())); + }); + scene.idle(4); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(basinPos.down() + .north()), Pointing.RIGHT).withItem(new ItemStack(Items.BRICKS)), 30); + + scene.overlay.showText(60) + .attachKeyFrame() + .colored(PonderPalette.GREEN) + .text("Outputs will be caught by the inventory below") + .pointAt(basinSide.add(0, -1, -1)) + .placeNearTarget(); + scene.idle(70); + + scene.world.hideIndependentSection(depot, Direction.NORTH); + scene.idle(10); + scene.world.modifyBlock(basinPos, s -> s.with(BasinBlock.FACING, Direction.DOWN), false); + scene.idle(20); + + scene.overlay.showText(80) + .attachKeyFrame() + .text("Without output faucet, the Basin will retain items created in its processing") + .pointAt(basinSide) + .placeNearTarget(); + scene.idle(50); + + ItemStack nugget = AllItems.COPPER_NUGGET.asStack(); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(basinPos), Pointing.RIGHT).withItem(nugget), + 30); + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, pte -> pte.start(Mode.BASIN)); + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, + pte -> pte.makeCompactingParticleEffect(util.vector.centerOf(basinPos), nugget)); + + ItemStack ingot = AllItems.COPPER_INGOT.asStack(); + scene.idle(30); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(basinPos), Pointing.RIGHT).withItem(ingot), + 30); + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, pte -> pte.start(Mode.BASIN)); + scene.idle(30); + scene.world.modifyTileEntity(pressPos, type, + pte -> pte.makeCompactingParticleEffect(util.vector.centerOf(basinPos), ingot)); + + ItemStack block = AllBlocks.COPPER_BLOCK.asStack(); + scene.idle(30); + scene.overlay.showControls(new InputWindowElement(util.vector.topOf(basinPos), Pointing.RIGHT).withItem(block), + 30); + scene.overlay.showText(70) + .attachKeyFrame() + .colored(PonderPalette.GREEN) + .text("This can be useful if outputs should be re-used as ingredients") + .pointAt(basinSide) + .placeNearTarget(); + scene.idle(80); + + scene.world.showSection(util.select.fromTo(2, 2, 5, 4, 1, 2), Direction.DOWN); + scene.rotateCameraY(70); + scene.world.createItemOnBelt(util.grid.at(2, 1, 2), Direction.WEST, block); + scene.idle(40); + scene.overlay.showText(70) + .text("Desired outputs will then have to be extracted from the basin") + .pointAt(util.vector.topOf(util.grid.at(3, 1, 2)) + .subtract(0, 3 / 16f, 0)) + .placeNearTarget(); + scene.idle(80); + + Vec3d filter = util.vector.of(2.5, 2.85, 2.5); + scene.overlay.showFilterSlotInput(filter, 80); + scene.overlay.showText(70) + .text("A Filter might be necessary to avoid pulling out un-processed items") + .pointAt(filter) + .placeNearTarget(); + scene.idle(40); + scene.markAsFinished(); + } + +} diff --git a/src/main/resources/assets/create/models/block/funnel/block_vertical.json b/src/main/resources/assets/create/models/block/funnel/block_vertical.json index 9af30934a..e72ebfa9d 100644 --- a/src/main/resources/assets/create/models/block/funnel/block_vertical.json +++ b/src/main/resources/assets/create/models/block/funnel/block_vertical.json @@ -113,8 +113,8 @@ }, { "name": "Back", - "from": [1.95, -1.95, 1.95], - "to": [14.05, 2, 14.05], + "from": [1.925, -1.95, 1.925], + "to": [14.075, 2, 14.075], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0.025, 8]}, "faces": { "north": {"uv": [2, 12, 14, 16], "texture": "#9"}, @@ -179,7 +179,6 @@ } } ], - "display": {}, "groups": [ { "name": "block_retracted", diff --git a/src/main/resources/assets/create/models/block/funnel/block_vertical_filterless.json b/src/main/resources/assets/create/models/block/funnel/block_vertical_filterless.json index ca31358f9..6d16d099c 100644 --- a/src/main/resources/assets/create/models/block/funnel/block_vertical_filterless.json +++ b/src/main/resources/assets/create/models/block/funnel/block_vertical_filterless.json @@ -4,7 +4,6 @@ "textures": { "3": "create:block/brass_funnel_back", "5": "create:block/brass_funnel_tall", - "7": "create:block/brass_funnel_plating", "8": "create:block/brass_storage_block", "9": "create:block/brass_funnel_slope", "10": "create:block/funnel_closed", @@ -113,8 +112,8 @@ }, { "name": "Back", - "from": [1.95, -1.95, 1.95], - "to": [14.05, 2, 14.05], + "from": [1.925, -1.95, 1.925], + "to": [14.075, 2, 14.075], "rotation": {"angle": 0, "axis": "y", "origin": [8, 0.025, 8]}, "faces": { "north": {"uv": [2, 12, 14, 16], "texture": "#9"}, @@ -135,7 +134,6 @@ } } ], - "display": {}, "groups": [ { "name": "block_retracted", @@ -162,7 +160,7 @@ { "name": "Item Filter", "origin": [8, 0, 8], - "children": [12, 13, 14, 15] + "children": [] } ] } \ No newline at end of file diff --git a/src/main/resources/ponder/basin.nbt b/src/main/resources/ponder/basin.nbt new file mode 100644 index 0000000000000000000000000000000000000000..e5340dadfc687295939fe02a16a540deb3bc614d GIT binary patch literal 1484 zcmV;-1vB~|iwFP!000000PR`Za@#f#U0y9wa&0$BoA2mb(l)K*)DzF7vTM7Uwl5x- zgd|QVf&)NSoF{)$pZWoPPx~?b0C&NQL{XFs#dMOHgfkkA#NEZ7gT+~Z^Z?pmi|`G# z06=}5{NuKvMPnJtkP1*&8{G4V`LBeBKfY;$l`v5_O)m=^A&I29N7=@xu`wz(rbZk~ zBaW>Rr?`w2af}+9Y8+D|j-?UD)`(MFrUuWZ2G6VFSQ>F`jW|aBDchJ!a9J92VQI|8 zsyLQL99tt!aoHMkVQb9AsyLQL9J@A-2UdJ8J?I>cWiplrl8(^BKEV~QMrnhS{spx%*)xDQ|%p2Cz8_W9oC#myb!v4RH3@IF>5A?PsAN=MfD~5|)mhBg=C+C2=Mu zrU%XodO;%xoRfso;K`NJAorB;0ZpAS>OSK>HPGTEiN*!Cj*79zVu?!Cg7$ti4uc*U zQP`R#MMsIew7}gRsk{mZ?|DEAx*2D)KifIkpArpO#dLj6u|6N46A{MPW)3eX??-F` zHI)y=Dk@dAl~*;E<&-?*15D}G5obOX2x4#=Vq=^k+{qD!xN6Pqz1nx0eWJ;a9_}PAcv5N>_HsR*RxzY1=}=29q?wsEHHk% zzP|nkzkf&T$N2pRe)rJN-BVLD0K0eC`^kg$L41MiFn&3w1O{v#F@ZaT3wp={$`>Zj ztU>AAj1tyCX*7hgMscgDyHho_6$z{5&jI^r97T{qe(;n@$ws>&-^V&fS(GI9>Eep; zhhs@oPch6qyK1D2WfrekALU)cMxLhy+oznwqEGoAV^P2+@f!MFBU!mao@{>{$23|} z*yVg$pS#euM~f=&p0F{poICux;85*FWkt3;*yvF?Vf>W?tv!+uKa`ixuN0^P z{Eh>i-5|h)C^>e`AFfo(GY^96>;JC6`SB6Xd3I;-PpEHRntjMvHht!bKBPgcaVNz7 zve5q4C3bTy8kZDZnHz6?Zp`;nbZc|7bsKK%8gAU_vfnx46jwJdbrz?0czpW&b8q={ zdrP&Ed`x?un!Z=FdowEq-}!*MNwX%OZk~?;t^F_##SqUB8bUQap&`3Jvw&uk-$_j~ zE2yf`+gy#lpDMM6;I!wv+%Bx_at3T1BXA{%8698ebd0D!Bys4I=qypzH4|l5h}mpt ztMGQALEWI*Rfpr1TLoK#MCXHT6^ipq`N`iGn#5`V>)r_CK@LNNqa>nduW&iZ(7&ls z9xvNVmT_z~wB@;Vfvn#0=oE;1o3>u4T$!8ghPFKK%+0rrakFt-ZmipLV>Qanca3q= zx-B<$g`1t`w83sj8>%#)EYmpq9kf9MN9T?-ZUKj-fn)dTopG2A;V4c)k8&KR%idZ! zB^+NiHy_p=;aFN%WgPdK!{NOz99AukHf$s$qEb?Il)2wR$x`QmhqDduWEe_%=Cc^n zK&Qgu{>(zeY;u;qMW5dND$kjqa*EVH6GRlyBhC`a)eCsk$v!fobTZv{7tZs0`QqQ2 zw-425`5;c8M1rDULby!9a#~pvn*nm;1eJwfhb)W_PJ}qi4=>dr(}#h2 zytv628`@=K@-31GU+D7VO3d-JK mGNg-Bt`}>oSfoW13p&q;Brho!>5H${U+_Q4tE;@MBme*k#K?jG literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/blaze_burner.nbt b/src/main/resources/ponder/blaze_burner.nbt new file mode 100644 index 0000000000000000000000000000000000000000..e83a314083c35e8d7ff7f22a6e24453ca91fa8c1 GIT binary patch literal 1047 zcmV+y1nB!8iwFP!000000OeQBlG;WPZXpQ}*kxQvs&Y@_yg&}#JtQI6o24qolwqBp z3z?M~nA(v>r5P6Qp7yD7PM#vkgCtkdBhUgeuwx%wTNPDN0@3}=*Z-{sKmeZN*XRO( z`S`1QHGn!Mnrn^<%oRZOT*&Z3HR#7@0l2ADh0^Wig0D2wxYF2^adyZ!C7Fr^j%$JA zS>P0xa{$NLAydYwSm3x8IGzPgaaAn*T(R);Asp8N$Fsn>4TXiDT?;=S!f`EdJPVxS z@+|!9S@`)7j%$JA?Zjz-o1AMGg7FN+4|s_pw+kMh&$495V|;}%;|WhD=6M||Jc5tH z3`zg^T(D~#P0jag2Wh7i)XM5GAN)az7=4$^w0iVaJMX{V3@J7 zK4v^~!0#AXhYa%vInCOS?e4JK`@R9S9_qQwE_|qWSjs}KuTF1_b>4tl9bs2}XttvW zqk+y)sc&zLk1O41vG|vaO^Pl?M2E zauu=v`o>I&>X2m<%ysCX6G=gJNa8gUvm!g22BRYrO>?9U!HJmhsK;W2M{AxKr~1l; z>Y9Pk{J;kWD`)?oY+h!}gQ6WU#S@zNFE2403pp?RQtk_tQdWDGeZi(A?<~MiR%8{A zQ-PxkvQP8yuAcJ6zUtf@0Dj4iKW_H*H@`n+3gO}4dHYr8bkyzj&xV5l9(O4M84ER+ zNni3rtD-=+$o*L&_k<+srzj#*)Q5}Mht>;ui7~~wpUH{w%{RFNTgxQLPwgfVzF8i8 zr^CJN9@vK49{A7iQ2F)gb_iT(4#G?dahrVGL5VS(vV@0Bj93=$?~TQD*&Jon`=3Qm z_GOWGAdA|2vdAVl2SV{Kb`%Nsbe|o?isEnBQM0Uu4;YWXR(2e%?D%ru8ntOh{r<+| z=ukYIk{!YQtB-O#_SVOy9SxGHrA(mKXvS=l*2R2QeY);>^C{Oj3S~kxNU4zccrBq4 zIUnV(qGn5?UYKHL-cqSI=UXi_70o#jVP-bp0$_XbH5)Q5nI-+|m^?;0-W(MT(-wQf z)rbk1Oh#j#DGmOZ3AH9w-U#>NMRK0pYHiKjvPyGqHgX{+6Kb8y<4DgC0q6QH2sI^# zlp$&%a$$}wvEALN--W=H9RWKV3Od3}FADf%K1F(ic`rIeAl?V%dOr%yyk|_a*O)09 R>r^1W!GCvyl8!ME008Ej2$}!@ literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/crushing_wheel.nbt b/src/main/resources/ponder/crushing_wheel.nbt new file mode 100644 index 0000000000000000000000000000000000000000..67be32a3013539b093a7b7d509767e0847525a9f GIT binary patch literal 1271 zcmVdiwFP!000000M%LDa@#}{UP~)mmYp`t0K;XUfKq-g8fd|F%itNt?U29# zH|a)N+nUH)&1xMdxyrln4&1{_aN9@V5jbm0vb>h$b!>ytj7N#Jd(M8}clMmKvV%|) z;n=^WCPGMl>hQ7Ty@_lZ3Sam%M)GQ+`bEIp%h-W`zGxydVsSbtyG&%of(V+-$d9QN zjHxMO3=KP`h8?V7C%tMFc4`G&X#gCB(BV{=C zLXTd{ZfeNU7AdA zlnEb$+jcKr7=|U+zo+3)jO6ki)aX+&W&F}Yc9%rN^~KG1?<6pM3W*2C*ccf-55D;Z z8Gk>uz@OkWj$gc$&yeAJsO54BU`{S*APP91X_4c`(Bx((Yx^KsTkMacfSzCaAr-!> zvesH*tso9m9OmKSXs^S8|6e$sCO96eIIIF3Si#YG_n+f9(!n9Gd|k0N&mFZ*bBEpO zzkGGtJ6p*g>ZAk7A9;T2oAZPA#?NDwpW4R!Sg6(UJnGGP`T9;q@&=4KsM!mzpc`cT zrU{S*9nX8h8ajHzV(1aC=xgr5%8H7%Bsbq6G!$~@hE~a~+65&!C-25q-28F3$zHw7 z^VeABuY)rF3`yaFzb;zYy)K``BhdSNI-)dCwYC$jzf81#Qq*M_3bLkx?D=nhIdi9v z3Z0(2S?J`I1o1ji6!_Hpfx3P~AuBw1!>VCtDao^=_JD&~*VFBY^oOR-QSy}EKo z&7XVGuD*lUzEUJS4h(C=-DQTa&=Nw zAu%+9s#Ov~k8}!&S-?+wKVhM|QFEP!42AV-Co(*#tXEnxl-4UfVeVhAaJuhu8rxAMO>}Vzj`>jp8`+Qe8Qa!$^!h!dPV_*B@v$A}Zf5CNp`1xuD z2iCxG0Qo9CcBC&2J}-N@X&rXHa@OH6HE3 zK!TXU)QE6_Od5LdYyfP?XCdQaWW%BYn24Maeua!}J8phO@Kl{j8*7280hKtHrib-mu`4jJEpN_q>4ajJZN5 zGBmjOSJb)DQzsdHyF%ges|0nLbwvW$JPEiI4xSy?Q%h^#*{DVv5t~w;gOb`cCJ`J2 z>9yd*6^n?^JbjpWB5(wZ<$g+z`8tv;Zx=kJvB>nWC7vna-tH9N#zB?bw>#NMt6@;R hlk{vY2cU^sFNq*OQ6Bp&gf#p+`Ujv;KOC(e0036-eZK$z literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/empty_blaze_burner.nbt b/src/main/resources/ponder/empty_blaze_burner.nbt new file mode 100644 index 0000000000000000000000000000000000000000..b134772cd16d3450c93f884924efce1d5ea4c0d8 GIT binary patch literal 481 zcmV<70UrJziwFP!000000F9Kvj?*v@h9|aDnyk=LEl3Wry_eY5*+Pwr&(abubXtNrzR7W=z--6SQKO2Zwubga@b2IoQJq zJ7U@#=E30}9O1#Ka}GUx4n2I{$Kf6v;lZhMW*$B>51;pOxCcjgaO#}7htJ%@=Y1UR z!4aLDA+YSi2@sPUG5LL4wtG6JTf6?@OP)|;5%K< z>H34NXKk&$j`wro}b8_;>r(<W@#|Ef3zYFg-#Y^?1D5wb>F49laejt+~)qzE9Qu4o5dG8LFjL`2ZZV8xRI zbi1|qzeJx@iSA0#k8)a%`J8gP58~#&j-j*;c&0OARIboRUs670+LTY5|9F9oz_qUs qoZa>IV(TFJZ5@S83uTa|)yaG55Qh&FZc%v;BGQn4gdfNe?!;+ literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/mechanical_mixer/mixing.nbt b/src/main/resources/ponder/mechanical_mixer/mixing.nbt new file mode 100644 index 0000000000000000000000000000000000000000..21114955b6b94979f3bb8dfab935594692ca1927 GIT binary patch literal 1142 zcmV-+1d00}iwFP!000000OeTAZsRr-r9?@wwoD%0bI5yquLDAS;^h1S zC?Q0@-0J1|qz8%OibGEH(;D=9qLbEilC(SNO+*~mQ)r`e4R?8TxF~&B) zp$0gP0Zx5cOK_}~F-;uX0EZgjI0iWNWgF;h8|b_YhZ^8G1~{{=FwmJA=)4Sv8sInv zIQ8Wi=1Jc!%jkhEPrT>&66&tncM> zU|iCB3CT!}b@%~U+XppG<%vsrJ1k=%SLZ)oYGTeI8V`=ybV+|ZiXb{v67u}pOU>Bc zi>|KzMGgOX>S6@NH#;BW=pM0oMEaowq_=epLIuR%OHR?PQhDwpT?KLJSr*xNmFDPS zr*I%6jI3=Fi`Rm%_WgymIuZ8oyM!h87534+WNbOSO>OA?wXs*C&1Y||&BohkLtC_Q zDs3q7hZ7Jl;S@w+G~~(gL?%Z(hSv}?o@kP@Mc%6y5$pm6WBp#6$#eibp{D2NRV|RFS;%;QVX(tPN~0F&O3Ta)CmY z;cvtka46YOZ844>;O?Z8L}`zG{DSA~SfKG_X|a0c&s8i(EGf$!Ji~6WpS9f2FZC99 zM@)`Dl}_XCrl^I5Bi=AEsU5nnG4v@#cj^&;S4?=c&tf2(^PnKk)HxpC?O4ZEQ+US< zQnFrZHh<_>V*j6HC{N6Kos`;F=aP)?QDN!fhjfyK(u@6KoYEArVJJZK9Kue<$lJL1u-0b0+M-QW>)$HVKG z$FpTT=<0Z^b>yNJbzm8__D2&EVwN2=y#Xr!HV+y1`pc8qnYR1 z58n@aMf>s9ZJoWlz+=6;{qWz_xvKYLk;ev(S<9FJr9hWZk9yeO=sM)1c^xtxa|MGi zO)!k&*SQ?={(MB9q|-t1@0&J`S2E2&>ObbNX$s4x$sID015VADRK@ZV>mF~2dgzu4 zSdJgvT;NO+j8n-kur^|1w%D~^$7l^N=20YIwTnLctU@DyAlo(KV#Nac)wlGJt5$&%6{ELqOaIp3V~&6#h`xDDWg ztHe1n05G>#+)W=^7-^veDlnH1&0`q{C#p?f9{IqMSd~uWi-D&!*I0N=+c-5gPQ|8S zfx|3tTnn7?a^~PTH8xe8h6N6@z;P{b%Bx|)bHjq?c{t1h$F;y2PlW}~%!226ILrda zwZJJa*Meu)g6DZS%mT-)#c2bJjG=cww@J?*>G=p+(A?%qL_Ki#_V>PSL-QaWrU4cXe_V5LV0Bkb zfN99)3ygZYZ^CcG${y-boSt~l+U5xlgg*P`!X)M%knoVrx(A)DFvRdcr>NA^3zKnU zH@v+3>lbMJ_QazIvVXRJBI_13L#U%f8InaEKKY|G}aVvl^eD=H;r52=99bShShN67ThrK zyF-*O@DybxH1P0vm_~C`Yy@mKvao9I2uVcd z;jaxS;2`B)y~zb>fVUkFBW*Nx{kc&5Sd#E0aW;CP&qXYUJj&Z0s$nmi&yw!1F3c1( z4|&={ohyyE6B8E>S-j?QSSobKV3;Z;b!vgXBZnf~;{${Tlb~>r=rbzct$~TFOyOT1 zkilxs+2lvRAp8GBLtZhf<)So-M2+zNDW+W+kD#cJ>gsG%s(PiUY6n_7wBA)8L$Hv{ zLqY9zJ{j(}afo?>oy;`1g6g6xh4jnuqO(}>53laGTQGCKeVawF@@g1ms+F_zQNhjt zgFcT$z~xb5tZRsIE5x*JscG4`Y5%A?Jf7RMxHcr-D4WY|QKtJ<|Ng80<5}v@YSe$( zt=7WjurartSbjOo(2!|v+PBndS#$IG{o#iFb8gsDx%uM$aN}0E=`2qhI`y$Vn{1SJ z+EAtW(^(qlzJoU0p~hXygIVOUb#do;lqdKnMIN8cde`Dj<*|DI=A)X&%(|M+W9>hf z2dmA)hn0j&)EZ55{$7hD%XGLOPdeODUuZlE;)uc^r_$nsiG_;d(NXqZ*NE!NG)^!z zuY5@dgIou_E|&_)HQ}kwhEJ)ZZgzV(byL!GiF9K+jsQ7nA=F~6aUeBBp$}ssGp};vG zBbA2|)u)NOmSmBL7sV;hSjdyUH<*|$*<`u_c_;yoU t%7irMT3WBYQ6Evh8`gsYYmCC6^PFq`8dD|Wh?MDP_#4yOv84AI006nPVFmyI literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/mechanical_press/pressing.nbt b/src/main/resources/ponder/mechanical_press/pressing.nbt new file mode 100644 index 0000000000000000000000000000000000000000..649276a51467368e132c7e12809424fcc21e0b35 GIT binary patch literal 1042 zcmV+t1nv7DiwFP!000000Nq&Ij^jiSEnky38FnAINj$QE_=KHBLbHJtkzi)UEC_gs zdhANl8pmyQcQ!loG@roN@B#c0msb?36FV1=lkKcB+JTlVC+@0KRi~@F%8me9;46NO z9srmtpv$K#Y(Wz<%{4~_X0#x@NJV_9BKq@r3%p#YQfWCn2$W_T3ypOdr$)x9$ha0b zo&}C?fm04=2aZ!CQ^j#Da6Ahf-vXx`t_9Do1<$*1JPRD(0%y4t7Cd_vJnzEsEO2}a z94LHRmvOhmKvpSKho==9VI zm`sM>Vm8zxnhhdooT8ozc^N>n%W@WTef7XujK?hP=SI3_gL@TXT9!$CkR*Dq@Kf<| zo?`!!R$cS>bzA?FZJon074DI$FEJ%G3MD%A-0~s&Pd3 zcXglaio^Tw#8Ixtr`xi0y^HQt;yAf^>v5FD$bN;WMMcujcxT zdS1?Nyg-@selA6h(tIMJ;$H{{1C}Zzm7GaEcUsc>S2!RRO>2Nm(ceI&qzTbTNPbNn z085ufHfpw&jd0A9B*i;6l252fxw=~;9%jj*EHrX4MQJ*Q!bG4(jBpzHM2!f3Whcml zq^7F`{ivD+2EAW2E!8mUA-0zGih6rWQZg08;hLX5d&Lzv*Gseq1zIeI(-Gcwq84RI z;uH;uzP_T^L&JHx+77ph>>K%4ZVTdf@P-iOX^}EHG~2ca)Pwd{OtT+RDlVu8ZT<%T M0`d*QXtERl0C#ThPXGV_ literal 0 HcmV?d00001 diff --git a/src/main/resources/ponder/millstone.nbt b/src/main/resources/ponder/millstone.nbt new file mode 100644 index 0000000000000000000000000000000000000000..81dc4503718a6bdf8854a908de907a8d468f20e8 GIT binary patch literal 946 zcmV;j15NxNiwFP!000000L@p;ZsRr(9*L4|$w@bd-J(G6eTF7mpiSKtYhaNqkZsZS z5-`%(79x`ZNw1Tf@(6vJp4)w~?a0=Ttw>&`b+I83$Ps5g&iBob9EAV@csjX51_1eA zuY3kDKw%P-poV+|(7Q@ybge`B=c@o%CUxml4Fp3w7mdVUQ9=#98e#1y=<^RpjA=v~N#im=ncfrGKGfhpwPYZOy6 z%Owb*e}-l$)wK_U5zly(nA=zPIWg~o4kxndd*F`abyog5_Gvw%Q0tr#1>+_$3?qd^ z=Hv=f(~_%Z4YJ2;1OJOQ$4zaVM{DE5@HCDwUTgC0eO?WZP%DIBEZ)&+FV$^8bPdjR zq1oXZsp$@QhvzD$$l40LDXiBJ_I-!27Q}i54O)WzQPUXJG+q=mbTZFUyu3~Xnk3qi zd>vjx@|F$OxRd-m~$}f)I&1-aEdF<}xO0eM3av+~{opPHzf(DP%PoEF=v3z(f zJi@1+kC$Ef@OI?mKkSda@K||o=i{5McGchDF??eAXyMVBk4+v2WYf=hipF66#dtWN zZivqjzNjzC#ytdFnE-zP~oz?8;Ma-Oq%(^^{gCRrd&<)s%Yo33+t}JIw%W!Mpg9hMBQgN`^0*XYzD(0xZ%H` U(ut(jbnqwq17iHD)7KFI0Lf?7aR2}S literal 0 HcmV?d00001