From b85c0ed93f8fa373498c276e9c7e42ad4de76dbf Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Thu, 5 May 2022 20:20:54 +0200 Subject: [PATCH] Ctrl A Backspace - Encased fans can no longer provide stress capacity as generators - Removed the Furnace Engine - Added Kryppers' new Flywheel model - Fixed inverted stress capacity labels in tooltips - Removed speed requirements from tooltips - Fixed belt tickers not properly being removed when parts of the belts are destroyed --- src/generated/resources/.cache/cache | 45 +- .../assets/create/blockstates/flywheel.json | 48 +- .../create/blockstates/furnace_engine.json | 19 - .../resources/assets/create/lang/en_ud.json | 1 - .../resources/assets/create/lang/en_us.json | 15 - .../assets/create/lang/unfinished/de_de.json | 17 +- .../assets/create/lang/unfinished/es_cl.json | 15 - .../assets/create/lang/unfinished/es_es.json | 15 - .../assets/create/lang/unfinished/fr_fr.json | 17 +- .../assets/create/lang/unfinished/it_it.json | 17 +- .../assets/create/lang/unfinished/ja_jp.json | 15 - .../assets/create/lang/unfinished/ko_kr.json | 15 - .../assets/create/lang/unfinished/nl_nl.json | 17 +- .../assets/create/lang/unfinished/pl_pl.json | 15 - .../assets/create/lang/unfinished/pt_br.json | 17 +- .../assets/create/lang/unfinished/pt_pt.json | 17 +- .../assets/create/lang/unfinished/ro_ro.json | 15 - .../assets/create/lang/unfinished/ru_ru.json | 15 - .../assets/create/lang/unfinished/zh_cn.json | 15 - .../assets/create/lang/unfinished/zh_tw.json | 15 - .../create/models/item/furnace_engine.json | 3 - .../advancements/overstress_flywheel.json | 29 - .../loot_tables/blocks/furnace_engine.json | 20 - .../mechanical_crafting/furnace_engine.json | 31 - .../data/create/tags/blocks/brittle.json | 1 - .../tags/blocks/mineable/pickaxe.json | 1 - .../com/simibubi/create/AllBlockPartials.java | 16 +- .../java/com/simibubi/create/AllBlocks.java | 16 +- .../com/simibubi/create/AllTileEntities.java | 10 - src/main/java/com/simibubi/create/Create.java | 2 - .../components/fan/EncasedFanBlock.java | 8 - .../components/fan/EncasedFanTileEntity.java | 78 +- .../components/fan/NozzleTileEntity.java | 2 - .../components/flywheel/FlyWheelInstance.java | 140 +-- .../components/flywheel/FlywheelBlock.java | 132 +-- .../flywheel/FlywheelGenerator.java | 30 - .../components/flywheel/FlywheelRenderer.java | 94 +- .../flywheel/FlywheelTileEntity.java | 78 +- .../flywheel/engine/EngineBlock.java | 93 -- .../flywheel/engine/EngineInstance.java | 51 - .../flywheel/engine/EngineRenderer.java | 45 - .../flywheel/engine/EngineTileEntity.java | 97 -- .../flywheel/engine/FurnaceEngineBlock.java | 91 -- .../engine/FurnaceEngineInteractions.java | 111 -- .../engine/FurnaceEngineTileEntity.java | 43 - .../BlockMovementChecks.java | 4 - .../contraptions/fluids/tank/BoilerData.java | 4 +- .../contraptions/relays/belt/BeltBlock.java | 2 +- .../mechanicalArm/ArmInteractionPoint.java | 6 - .../simibubi/create/events/ClientEvents.java | 4 +- .../advancement/AllAdvancements.java | 5 - .../create/foundation/config/CKinetics.java | 2 +- .../recipe/MechanicalCraftingRecipeGen.java | 9 - .../foundation/item/ItemDescription.java | 54 +- .../foundation/ponder/content/FanScenes.java | 33 - .../ponder/content/KineticsScenes.java | 88 -- .../ponder/content/PonderIndex.java | 11 +- .../tileEntity/RemoveTileEntityPacket.java | 10 +- .../create/models/block/flywheel/block.json | 6 + .../models/block/flywheel/casing_left.json | 95 -- .../models/block/flywheel/casing_none.json | 95 -- .../models/block/flywheel/casing_right.json | 95 -- .../models/block/flywheel/flywheel.bbmodel | 1 - .../models/block/flywheel/flywheel.json | 10 + .../create/models/block/flywheel/flywheel.mtl | 35 + .../create/models/block/flywheel/flywheel.obj | 1033 +++++++++++++++++ .../block/flywheel/flywheel_shaftless.obj | 993 ++++++++++++++++ .../create/models/block/flywheel/item.json | 391 +------ .../flywheel/lower_rotating_connector.json | 27 - .../flywheel/lower_sliding_connector.json | 29 - .../flywheel/upper_rotating_connector.json | 27 - .../flywheel/upper_sliding_connector.json | 29 - .../create/models/block/flywheel/wheel.json | 221 ---- .../models/block/furnace_engine/block.json | 133 --- .../models/block/furnace_engine/frame.json | 89 -- .../models/block/furnace_engine/item.json | 123 -- .../block/mechanical_arm/flag/long_in.json | 31 - .../block/mechanical_arm/flag/long_out.json | 31 - .../block/mechanical_arm/flag/short_in.json | 31 - .../block/mechanical_arm/flag/short_out.json | 31 - .../assets/create/textures/block/flywheel.png | Bin 0 -> 10057 bytes .../textures/block/furnace_cylinder.png | Bin 645 -> 0 bytes .../create/textures/block/marker_flag.png | Bin 196 -> 0 bytes .../assets/create/textures/block/sealer.png | Bin 421 -> 0 bytes .../textures/block/steam_engine_wheel.png | Bin 702 -> 0 bytes 85 files changed, 2235 insertions(+), 3140 deletions(-) delete mode 100644 src/generated/resources/assets/create/blockstates/furnace_engine.json delete mode 100644 src/generated/resources/assets/create/models/item/furnace_engine.json delete mode 100644 src/generated/resources/data/create/advancements/overstress_flywheel.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/furnace_engine.json delete mode 100644 src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelGenerator.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineInstance.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineRenderer.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineTileEntity.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineInteractions.java delete mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java create mode 100644 src/main/resources/assets/create/models/block/flywheel/block.json delete mode 100644 src/main/resources/assets/create/models/block/flywheel/casing_left.json delete mode 100644 src/main/resources/assets/create/models/block/flywheel/casing_none.json delete mode 100644 src/main/resources/assets/create/models/block/flywheel/casing_right.json delete mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel.bbmodel create mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel.mtl create mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel.obj create mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel_shaftless.obj delete mode 100644 src/main/resources/assets/create/models/block/flywheel/lower_rotating_connector.json delete mode 100644 src/main/resources/assets/create/models/block/flywheel/lower_sliding_connector.json delete mode 100644 src/main/resources/assets/create/models/block/flywheel/upper_rotating_connector.json delete mode 100644 src/main/resources/assets/create/models/block/flywheel/upper_sliding_connector.json delete mode 100644 src/main/resources/assets/create/models/block/flywheel/wheel.json delete mode 100644 src/main/resources/assets/create/models/block/furnace_engine/block.json delete mode 100644 src/main/resources/assets/create/models/block/furnace_engine/frame.json delete mode 100644 src/main/resources/assets/create/models/block/furnace_engine/item.json delete mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/flag/long_in.json delete mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/flag/long_out.json delete mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/flag/short_in.json delete mode 100644 src/main/resources/assets/create/models/block/mechanical_arm/flag/short_out.json create mode 100644 src/main/resources/assets/create/textures/block/flywheel.png delete mode 100644 src/main/resources/assets/create/textures/block/furnace_cylinder.png delete mode 100644 src/main/resources/assets/create/textures/block/marker_flag.png delete mode 100644 src/main/resources/assets/create/textures/block/sealer.png delete mode 100644 src/main/resources/assets/create/textures/block/steam_engine_wheel.png diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 207cf10bb..1fad353c2 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -208,10 +208,9 @@ fb41aa1a0828c9256b3f886fdcb55bb54252ba09 assets/create/blockstates/exposed_coppe 65f5fa4b779af5150993b20174404ec93bfc4303 assets/create/blockstates/fluid_pipe.json f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json 5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json -e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json +95b0775bf4d619ca5b0a42dbdc47c6f2c15d7b3d assets/create/blockstates/flywheel.json ac00d40e1ef50a37041c0481afa1a23a14dea78e assets/create/blockstates/framed_glass.json 61df7769fa61f6dd2868a4377e54320fdd473b4e assets/create/blockstates/framed_glass_pane.json -3cf49f4812732f00f578fa73785e14ffdf340f21 assets/create/blockstates/furnace_engine.json 23744450886af88ed468aecbbd7b8d7babcbbd6f assets/create/blockstates/gantry_carriage.json 9fa39a44bba30c5ae8fa245b122a837c705462b4 assets/create/blockstates/gantry_shaft.json eca1f0e56efdadb241f42dc6ebb036f1d52213a9 assets/create/blockstates/gearbox.json @@ -542,23 +541,23 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo 6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -7fbb25c577025ff61388c54c43401d8bb80723dd assets/create/lang/en_ud.json -024a27fd48ffcc6a79c9743ece2e8c92e10190ab assets/create/lang/en_us.json -28f293c0e56f4b0928ed5784c6fa542cd958b08d assets/create/lang/unfinished/de_de.json -6caa5da7f0537dab9968522151a2022cbb9f017f assets/create/lang/unfinished/es_cl.json -a182e06d08d8e1b382a1c3233b5d92553ce126bd assets/create/lang/unfinished/es_es.json -0e308ef282040673debe46ec12e6e55ac9ce985e assets/create/lang/unfinished/fr_fr.json -35d0439648d6ec63cdf47aabb631afc098c32666 assets/create/lang/unfinished/it_it.json -089dd0341bd90a9ac319064a9007c25d5e5de271 assets/create/lang/unfinished/ja_jp.json -63b018284849f4afc247d42e64fe64c06e7f96b0 assets/create/lang/unfinished/ko_kr.json -e861c584c4870fa6a2449207affc91b246372862 assets/create/lang/unfinished/nl_nl.json -7ea957da93493b49328f862bab2df59afdc3fe79 assets/create/lang/unfinished/pl_pl.json -4885dd6c1e1102e24c11ad17088d7a66981c73c5 assets/create/lang/unfinished/pt_br.json -54da09cde93617abe7cdc6ccb136e94221abb612 assets/create/lang/unfinished/pt_pt.json -77c2b474774c623314f66f8c975be1075b0d3dec assets/create/lang/unfinished/ro_ro.json -573a751dba49ecb96c22d5d5374de475a4875ffa assets/create/lang/unfinished/ru_ru.json -9a14db7b7a4629a2f9030f0e9c74fd919bb108e8 assets/create/lang/unfinished/zh_cn.json -597ebfa894f0e6fe1c7c33de8504370b7a81939a assets/create/lang/unfinished/zh_tw.json +d4cdc38cd19460fd9ba866f3ad3b2e4bd014cb98 assets/create/lang/en_ud.json +4ed8b6910b0787d9bfa3b1a3f9e891d67b9b8af6 assets/create/lang/en_us.json +780146d410f9416463587eb29c5ddd3ceda3df6b assets/create/lang/unfinished/de_de.json +43e74873dff9c74b965d71a096390f1300d96d75 assets/create/lang/unfinished/es_cl.json +caabbb6bbfed8b399ba71497a6ccf7de7b196264 assets/create/lang/unfinished/es_es.json +c66402dc057027d4a1a972830ae8f13812f70726 assets/create/lang/unfinished/fr_fr.json +367ceab5da165c8d52842337300a55f2238d8d93 assets/create/lang/unfinished/it_it.json +1371fe6852059b897b364de723663ba652b7690f assets/create/lang/unfinished/ja_jp.json +9ffb5cd3e5298a6b6d3d8eafb7b6be708390e375 assets/create/lang/unfinished/ko_kr.json +ddb5b7d7d8b8d798caca64ff4c26c28f223f8771 assets/create/lang/unfinished/nl_nl.json +b1eb44b1d043fd64b6d9d0455da939af893526c5 assets/create/lang/unfinished/pl_pl.json +695732ec36cf7b39e1dcf467a58e9b438bbf52d5 assets/create/lang/unfinished/pt_br.json +1b1dbd8df62df4424b6d576ad1ce8f0986829d4e assets/create/lang/unfinished/pt_pt.json +9a92874e612ddc59a7420bf401d719f792ac9467 assets/create/lang/unfinished/ro_ro.json +f0b799b93634d61d7799808d137003ab8c67c2c4 assets/create/lang/unfinished/ru_ru.json +b29afaece334e84972afc027f00b53e6d2501ebf assets/create/lang/unfinished/zh_cn.json +aa016cb464bd32865ef05034ad3bf317c14d7cdf assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1816,7 +1815,6 @@ f4727119b75ab632c3ad295be4d398b1919d782f assets/create/models/item/fluid_valve.j 8707332c0cb6ee123e7962d08536a60725c64ce8 assets/create/models/item/flywheel.json f2496d3b16e5b5415474bcfb7d6c6a6c3b28ed60 assets/create/models/item/framed_glass.json 1041d462c6e856f7f3f2365c299c0599703d1ed7 assets/create/models/item/framed_glass_pane.json -0bee2855dc9bad52e941153b87e9c35797c246ee assets/create/models/item/furnace_engine.json a703b16625ad9d3b9042b6b19fdb88407726898b assets/create/models/item/furnace_minecart_contraption.json a642f570ec8223c066e542f062aff3b7f93e002b assets/create/models/item/gantry_carriage.json b4bfd5041b62f3a0a955fa4872d178b590614f22 assets/create/models/item/gantry_shaft.json @@ -2200,7 +2198,6 @@ b61d958815f1c2530c11c88c9081d5c794d7f807 data/create/advancements/its_alive.json ee834796d3d05d097048338ca946c5509fada0be data/create/advancements/mixer.json bee2c19d730936e34ee61fe04af13e2b031ecffa data/create/advancements/musical_arm.json c9c4060ed207226b69fada2d61e01a97d7077eae data/create/advancements/nixie_tube.json -0b0a7f5b7f30ab75e4ca790c850b1eb50944a3aa data/create/advancements/overstress_flywheel.json 7f0847247a80ee930c23f551bce00bda74f81b0e data/create/advancements/overstressed.json 449eb8a9e6102bb342c96eb8b19e743eb6979bfa data/create/advancements/pipe_collision.json 4b621e5bb48fbb120853ec02c05c915d86bd6dd8 data/create/advancements/pipe_spill.json @@ -3506,7 +3503,6 @@ b4df9a8b28f29587e75ffe11ca26d85ddbe926da data/create/loot_tables/blocks/fluid_pi 45637f479b3f90ce86ff84fd8c96074e622452a7 data/create/loot_tables/blocks/flywheel.json 3e65b0c51768fb0076c7de39c425961167709988 data/create/loot_tables/blocks/framed_glass.json f76fe7d876150a43be05977ec596d1fe2a3b9868 data/create/loot_tables/blocks/framed_glass_pane.json -7e0962fdc4166303117a54f6b7069bd5c26c2bde data/create/loot_tables/blocks/furnace_engine.json 891f0d334c3f596af081328be8d6ac0461592183 data/create/loot_tables/blocks/gantry_carriage.json 795c88efe80319220902da231f45d63d1130fde5 data/create/loot_tables/blocks/gantry_shaft.json 8a0d3f52474ea610efd6f2053d3b666d5f7db0f7 data/create/loot_tables/blocks/gearbox.json @@ -4677,7 +4673,6 @@ c2e15ac0c9109bad3face6d13efc32d7116b4c25 data/create/recipes/limestone_pillar_fr 66674d07de63aada0991d2fdff07e22e00450135 data/create/recipes/mechanical_crafting/crushing_wheel.json 599f8b87c24c131350ba7ceb69a0c8b9829c62bc data/create/recipes/mechanical_crafting/extendo_grip.json f26ed47c10cc63613759b0f8ae4ef349000de60d data/create/recipes/mechanical_crafting/flywheel.json -2dc00d6e4c159e06ab2a705e666e83e4238a7814 data/create/recipes/mechanical_crafting/furnace_engine.json fa356eb82c08339bb0064017d88b1e5b053fd4ff data/create/recipes/mechanical_crafting/potato_cannon.json 7e695ab2b684c23968a23765072603be5da13d75 data/create/recipes/mechanical_crafting/wand_of_symmetry.json 98f877bf8f3f8a686fc6cf7479a0fba5744248ce data/create/recipes/milling/allium.json @@ -5216,7 +5211,7 @@ d79c82bc6cf59b073b2f51f5fea9c98e81d14b68 data/create/recipes/weathered_copper_ti 452d480dd50b97fce72e0c89429cf68db534c6b2 data/create/recipes/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json ac265a674626e0e832330086fd18fe0be37fc327 data/create/recipes/weathered_copper_tile_stairs.json 5942a571f79c40524bbf408775cf91de4715f2b6 data/create/recipes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json -6558ef43f28c92cc558fbfc572f38496f1ed479e data/create/tags/blocks/brittle.json +2d549ea56fb226c0e31e66c0391996093f8bece9 data/create/tags/blocks/brittle.json 330bfb3850ba3964b10b1bccbc3cbb9b012cae54 data/create/tags/blocks/fan_heaters.json 57b942386a15c874d1ca9cd6a8032c11a5599fc2 data/create/tags/blocks/fan_transparent.json 10781e8cfcbb3486327aace3aa00e437fb44b331 data/create/tags/blocks/ore_override_stone.json @@ -5299,7 +5294,7 @@ ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/items/storage_blocks/br 69f596fcb065e26b02ce246760432b5174191b76 data/minecraft/tags/blocks/impermeable.json 2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/lush_ground_replaceable.json 02f7a9df2f9e154749266e7ac59c37aa076a3390 data/minecraft/tags/blocks/mineable/axe.json -20500209238916508e88a8219e7f3b342bb16461 data/minecraft/tags/blocks/mineable/pickaxe.json +5782184ce3d612e9cd747fa606f5cb87bd4d67ef data/minecraft/tags/blocks/mineable/pickaxe.json 2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/moss_replaceable.json e157c1d3af30e409e34bbefbe15a037e6e1c8daa data/minecraft/tags/blocks/needs_iron_tool.json a08f67865337f62601c5e333b4011382d10020e4 data/minecraft/tags/blocks/needs_stone_tool.json diff --git a/src/generated/resources/assets/create/blockstates/flywheel.json b/src/generated/resources/assets/create/blockstates/flywheel.json index 380bc21bb..52b73f7f5 100644 --- a/src/generated/resources/assets/create/blockstates/flywheel.json +++ b/src/generated/resources/assets/create/blockstates/flywheel.json @@ -1,49 +1,17 @@ { "variants": { - "connection=none,facing=north": { - "model": "create:block/flywheel/casing_none", - "y": 270 - }, - "connection=left,facing=north": { - "model": "create:block/flywheel/casing_left", - "y": 270 - }, - "connection=right,facing=north": { - "model": "create:block/flywheel/casing_right", - "y": 270 - }, - "connection=none,facing=south": { - "model": "create:block/flywheel/casing_none", + "axis=x": { + "model": "create:block/flywheel/block", + "x": 90, "y": 90 }, - "connection=left,facing=south": { - "model": "create:block/flywheel/casing_left", - "y": 90 + "axis=y": { + "model": "create:block/flywheel/block" }, - "connection=right,facing=south": { - "model": "create:block/flywheel/casing_right", - "y": 90 - }, - "connection=none,facing=west": { - "model": "create:block/flywheel/casing_none", + "axis=z": { + "model": "create:block/flywheel/block", + "x": 90, "y": 180 - }, - "connection=left,facing=west": { - "model": "create:block/flywheel/casing_left", - "y": 180 - }, - "connection=right,facing=west": { - "model": "create:block/flywheel/casing_right", - "y": 180 - }, - "connection=none,facing=east": { - "model": "create:block/flywheel/casing_none" - }, - "connection=left,facing=east": { - "model": "create:block/flywheel/casing_left" - }, - "connection=right,facing=east": { - "model": "create:block/flywheel/casing_right" } } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/furnace_engine.json b/src/generated/resources/assets/create/blockstates/furnace_engine.json deleted file mode 100644 index 6d10935d6..000000000 --- a/src/generated/resources/assets/create/blockstates/furnace_engine.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "variants": { - "facing=north": { - "model": "create:block/furnace_engine/block" - }, - "facing=south": { - "model": "create:block/furnace_engine/block", - "y": 180 - }, - "facing=west": { - "model": "create:block/furnace_engine/block", - "y": 270 - }, - "facing=east": { - "model": "create:block/furnace_engine/block", - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index f8b3c6ab9..4448f1e52 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -212,7 +212,6 @@ "block.create.flywheel": "\u05DF\u01DD\u01DD\u0265\u028D\u028E\u05DF\u2132", "block.create.framed_glass": "ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132", "block.create.framed_glass_pane": "\u01DDu\u0250\u0500 ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132", - "block.create.furnace_engine": "\u01DDu\u0131bu\u018E \u01DD\u0254\u0250u\u0279n\u2132", "block.create.gantry_carriage": "\u01DDb\u0250\u0131\u0279\u0279\u0250\u0186 \u028E\u0279\u0287u\u0250\u2141", "block.create.gantry_shaft": "\u0287\u025F\u0250\u0265S \u028E\u0279\u0287u\u0250\u2141", "block.create.gearbox": "xoq\u0279\u0250\u01DD\u2141", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index c5173ef08..37c27255f 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -215,7 +215,6 @@ "block.create.flywheel": "Flywheel", "block.create.framed_glass": "Framed Glass", "block.create.framed_glass_pane": "Framed Glass Pane", - "block.create.furnace_engine": "Furnace Engine", "block.create.gantry_carriage": "Gantry Carriage", "block.create.gantry_shaft": "Gantry Shaft", "block.create.gearbox": "Gearbox", @@ -2145,10 +2144,6 @@ "create.ponder.fan_processing.text_7": "The Speed of the Fan does NOT affect the processing speed, only its range", "create.ponder.fan_processing.text_8": "Fan Processing can also be applied to Items on Depots and Belts", - "create.ponder.fan_source.header": "Generating Rotational Force using Encased Fans", - "create.ponder.fan_source.text_1": "Fans facing down into a source of heat can provide Rotational Force", - "create.ponder.fan_source.text_2": "When given a Redstone Signal, the Fans will start providing power", - "create.ponder.fluid_pipe_flow.header": "Moving Fluids using Copper Pipes", "create.ponder.fluid_pipe_flow.text_1": "Fluid Pipes can connect two or more fluid sources and targets", "create.ponder.fluid_pipe_flow.text_2": "Using a wrench, a straight pipe segment can be given a window", @@ -2178,11 +2173,6 @@ "create.ponder.fluid_tank_storage.text_4": "However, in Survival Mode Fluids cannot be added or taken manually", "create.ponder.fluid_tank_storage.text_5": "You can use Basins, Item Drains and Spouts to drain or fill fluid containing items", - "create.ponder.flywheel.header": "Generating Rotational Force using the Flywheel", - "create.ponder.flywheel.text_1": "Flywheels are required for generating rotational force with the Furnace Engine", - "create.ponder.flywheel.text_2": "The provided Rotational Force has a very large stress capacity", - "create.ponder.flywheel.text_3": "Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.funnel_compat.header": "Funnel compatibility", "create.ponder.funnel_compat.text_1": "Funnels should also interact nicely with a handful of other components.", "create.ponder.funnel_compat.text_2": "Vertical Saws", @@ -2207,11 +2197,6 @@ "create.ponder.funnel_transfer.text_2": "Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "Same applies for horizontal movement. A mechanical belt should help here.", - "create.ponder.furnace_engine.header": "Generating Rotational Force using the Furnace Engine", - "create.ponder.furnace_engine.text_1": "Furnace Engines generate Rotational Force while their attached Furnace is running", - "create.ponder.furnace_engine.text_2": "The provided Rotational Force has a very large stress capacity", - "create.ponder.furnace_engine.text_3": "Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.gantry_carriage.header": "Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "Gantry setups can move attached Blocks.", 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 2448acf31..45afee0cf 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: 1539", + "_": "Missing Localizations: 1528", "_": "->------------------------] Game Elements [------------------------<-", @@ -216,7 +216,6 @@ "block.create.flywheel": "Schwungrad", "block.create.framed_glass": "Gerahmtes Glas", "block.create.framed_glass_pane": "Gerahmte Glasscheibe", - "block.create.furnace_engine": "Ofenmotor", "block.create.gantry_carriage": "Portalkranwagen", "block.create.gantry_shaft": "Portalkranachse", "block.create.gearbox": "Getriebe", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range", "create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts", - "create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans", - "create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force", - "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", - "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually", "create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items", - "create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel", - "create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine", - "create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility", "create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.", "create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", - "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", - "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", - "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_cl.json b/src/generated/resources/assets/create/lang/unfinished/es_cl.json index b6229b0d4..10f72ab55 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_cl.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_cl.json @@ -216,7 +216,6 @@ "block.create.flywheel": "Volante de Inercia", "block.create.framed_glass": "Vidrio Enmarcado", "block.create.framed_glass_pane": "Panel de Vidrio Enmarcado", - "block.create.furnace_engine": "Horno Motor", "block.create.gantry_carriage": "Carruaje de Grúa", "block.create.gantry_shaft": "Eje de Grúa", "block.create.gearbox": "Caja de Engranajes", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta la velocidad de procesamiento, solo su rango", "create.ponder.fan_processing.text_8": "El Procesamiento por Ventilador también se puede aplicar a objetos en depósitos y cintas", - "create.ponder.fan_source.header": "Generando Fuerza Rotacional usando Ventiladores", - "create.ponder.fan_source.text_1": "Los Ventiladores orientados hacia abajo hacia una Fuente de Calor pueden proporcionar Fuerza Rotacional", - "create.ponder.fan_source.text_2": "Al dalre una señal de Redstone, los Ventiladores empezarán a generar", - "create.ponder.fluid_pipe_flow.header": "Moviendo fluidos usando Tuberías de Cobre", "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes de fluidos y objetivos", "create.ponder.fluid_pipe_flow.text_2": "Con una llave, se puede añadir una ventana a un segmento de tubería recto", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el modo Supervivencia, los Fluidos no se pueden agregar ni tomar manualmente", "create.ponder.fluid_tank_storage.text_5": "Puedes usar tóneles, drenajes y surtidores para drenar o llenar objetos contenedores de líquido", - "create.ponder.flywheel.header": "Generando Fuerza Rotacional usando el Volante de Inercia", - "create.ponder.flywheel.text_1": "El Volante de Inercia es necesario para Generar Energía al usar el Horno Motor", - "create.ponder.flywheel.text_2": "La fuerza de rotación proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor.", - "create.ponder.funnel_compat.header": "Compatibilidad de Ingresos", "create.ponder.funnel_compat.text_1": "Los ingresos también deberían interactuar bien con un puñado de otros componentes.", "create.ponder.funnel_compat.text_2": "Sierras Verticales", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "Los tolvoganes o tolvoganes inteligentes podrían ser más adecuados para tales fines.", "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica al movimiento horizontal. Una cinta mecánica debería ayudar aquí.", - "create.ponder.furnace_engine.header": "Generando Fuerza rotacional usando el Horno Motor", - "create.ponder.furnace_engine.text_1": "Los Horno Motores generan fuerza rotacional mientras su horno adjunto está en funcionamiento", - "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de tensión muy grande", - "create.ponder.furnace_engine.text_3": "El uso de un Alto Horno duplicará la eficiencia del motor.", - "create.ponder.gantry_carriage.header": "Usando Carruajes de Grúa", "create.ponder.gantry_carriage.text_1": "Los Carruajes de Grúa pueden montarse y deslizarse sobre los Ejes de Grúa.", "create.ponder.gantry_carriage.text_2": "Las Configuraciones de Carruaje pueden mover bloques adjuntos.", 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 1fa624836..7acebe2fd 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -216,7 +216,6 @@ "block.create.flywheel": "Rueda de inercia", "block.create.framed_glass": "Cristal enmarcado", "block.create.framed_glass_pane": "Panel de cristal enmarcado", - "block.create.furnace_engine": "Motor de horno", "block.create.gantry_carriage": "Carro de grúa", "block.create.gantry_shaft": "Eje de grúa", "block.create.gearbox": "Caja de transmisión", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango", "create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las cintas mecánicas", - "create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos", - "create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional", - "create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza", - "create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre", "create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos", "create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente", "create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido", - "create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia", - "create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno", - "create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - "create.ponder.funnel_compat.header": "Compatibilidades con el embudo", "create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes", "create.ponder.funnel_compat.text_2": "Sierras verticales", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines", "create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una cinta mecánica debería ayudar aquí", - "create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno", - "create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando", - "create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande", - "create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor", - "create.ponder.gantry_carriage.header": "Usar carros de grúa", "create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa", "create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos", 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 d68799846..10b41792c 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: 1801", + "_": "Missing Localizations: 1790", "_": "->------------------------] Game Elements [------------------------<-", @@ -216,7 +216,6 @@ "block.create.flywheel": "Volant d'inertie", "block.create.framed_glass": "Grande fenêtre en verre", "block.create.framed_glass_pane": "Grande vitre encadrée", - "block.create.furnace_engine": "Moteur de four", "block.create.gantry_carriage": "UNLOCALIZED: Gantry Carriage", "block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft", "block.create.gearbox": "Boîte à roue dentée", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range", "create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts", - "create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans", - "create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force", - "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", - "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually", "create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items", - "create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel", - "create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine", - "create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility", "create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.", "create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", - "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", - "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", - "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", 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 5ae430b8e..06e7d6586 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: 1490", + "_": "Missing Localizations: 1479", "_": "->------------------------] Game Elements [------------------------<-", @@ -216,7 +216,6 @@ "block.create.flywheel": "Volano", "block.create.framed_glass": "Finestra di vetro", "block.create.framed_glass_pane": "Pannello di finestra di vetro", - "block.create.furnace_engine": "Motore fornace", "block.create.gantry_carriage": "UNLOCALIZED: Gantry Carriage", "block.create.gantry_shaft": "Albero a portale", "block.create.gearbox": "Riduttore", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range", "create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts", - "create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans", - "create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force", - "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", - "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually", "create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items", - "create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel", - "create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine", - "create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility", "create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.", "create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", - "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", - "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", - "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", 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 3fab3abf8..6db6b6ba6 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -216,7 +216,6 @@ "block.create.flywheel": "弾み車", "block.create.framed_glass": "ガラス窓", "block.create.framed_glass_pane": "ガラス板窓", - "block.create.furnace_engine": "かまどエンジン", "block.create.gantry_carriage": "ガントリーキャリッジ", "block.create.gantry_shaft": "ガントリーシャフト", "block.create.gearbox": "ギアボックス", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "ファンの速度は処理速度とは関係がなく、範囲のみが変わります", "create.ponder.fan_processing.text_8": "ファンでの加工は、デポやベルト上のアイテムにも行われます", - "create.ponder.fan_source.header": "ケース入りファンによる回転力の生成", - "create.ponder.fan_source.text_1": "ファンを熱源に向けて設置すると、回転力を生成できます", - "create.ponder.fan_source.text_2": "レッドストーン信号を受けると、回転力が生成されます", - "create.ponder.fluid_pipe_flow.header": "銅パイプを使った液体の移動", "create.ponder.fluid_pipe_flow.text_1": "液体パイプは2つ以上の液体源と輸送先を繋ぐことができます", "create.ponder.fluid_pipe_flow.text_2": "レンチを使うと、まっすぐなパイプに窓を付けられます", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "しかし、サバイバルモードでは手動で液体を出し入れできません。", "create.ponder.fluid_tank_storage.text_5": "鉢、アイテム排液口、アイテム注液口などを使えばアイテムから液体を出し入れできます。", - "create.ponder.flywheel.header": "弾み車による回転力の生成", - "create.ponder.flywheel.text_1": "かまどエンジンで回転力を生成するには、弾み車が必要です", - "create.ponder.flywheel.text_2": "これによって生成される回転力は、非常に大きな応力許容量を持っています", - "create.ponder.flywheel.text_3": "溶鉱炉を使うと、エンジンの効率が2倍になります", - "create.ponder.funnel_compat.header": "ファンネルの互換性", "create.ponder.funnel_compat.text_1": "ファンネルは、他のいくつかの機械とも相性が良いです", "create.ponder.funnel_compat.text_2": "上向きのメカニカルソー", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "この様な場合は、シュートやスマートシュートの方が適しています", "create.ponder.funnel_transfer.text_3": "また水平方向の運搬も同様で、この場合メカニカルベルトの方が適しています", - "create.ponder.furnace_engine.header": "かまどエンジンによる回転力の生成", - "create.ponder.furnace_engine.text_1": "かまどエンジンは、取り付けたかまどの稼働中に回転力を生成します", - "create.ponder.furnace_engine.text_2": "この回転力は、非常に大きな応力許容量を持っています", - "create.ponder.furnace_engine.text_3": "溶鉱炉を使うと、エンジンの効率が2倍になります", - "create.ponder.gantry_carriage.header": "ガントリーキャリッジの使い方", "create.ponder.gantry_carriage.text_1": "ガントリーキャリッジは、ガントリーシャフトに取り付けてスライドできます", "create.ponder.gantry_carriage.text_2": "ガントリーは、取り付けられたブロックを動かします", 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 49f70a930..e22507388 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -216,7 +216,6 @@ "block.create.flywheel": "플라이휠", "block.create.framed_glass": "큰 유리", "block.create.framed_glass_pane": "큰 유리판", - "block.create.furnace_engine": "화로 엔진", "block.create.gantry_carriage": "갠트리 운반대", "block.create.gantry_shaft": "갠트리 축", "block.create.gearbox": "기어박스", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "선풍기의 속도는 가공 속도와 관련이 없습니다!", "create.ponder.fan_processing.text_8": "선풍기 가공은 벨트나 아이템 거치대의 아이템에도 적용됩니다.", - "create.ponder.fan_source.header": "선풍기를 이용해 동력 생산하기", - "create.ponder.fan_source.text_1": "열원을 향한 선풍기는 동력을 제공합니다.", - "create.ponder.fan_source.text_2": "레드스톤 신호를 받으면, 동력을 제공하기 시작합니다.", - "create.ponder.fluid_pipe_flow.header": "파이프로 액체 옮기기", "create.ponder.fluid_pipe_flow.text_1": "파이프는 한 종류의 액체만 옮깁니다.", "create.ponder.fluid_pipe_flow.text_2": "렌치를 이용하여 직선 파이프에 창문을 달 수 있습니다.", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "그러나 서바이벌 모드에서는 액체를 직접 빼내고 넣을 순 없습니다.", "create.ponder.fluid_tank_storage.text_5": "대야, 아이템 배수구, 주입기를 통해 액체를 빼내거나 채울 수 있습니다.", - "create.ponder.flywheel.header": "플라이휠로 동력 생산하기", - "create.ponder.flywheel.text_1": "플라이휠로 동력을 생산하기 위해선, 화로 엔진이 필요합니다.", - "create.ponder.flywheel.text_2": "플라이휠은 피로도 용량이 매우 높습니다.", - "create.ponder.flywheel.text_3": "용광로를 사용하면 동력 속도가 2배가 됩니다.", - "create.ponder.funnel_compat.header": "퍼널 호환성", "create.ponder.funnel_compat.text_1": "퍼널은 다른 장치들 위에 설치할 수 있습니다.", "create.ponder.funnel_compat.text_2": "세로 톱", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "슈트나 스마트 슈트가 이런 목적에 더 적합합니다.", "create.ponder.funnel_transfer.text_3": "수평 방향으로는 벨트가 적합합니다.", - "create.ponder.furnace_engine.header": "화로 엔진을 이용해 동력 생산하기", - "create.ponder.furnace_engine.text_1": "화로 엔진은 부착된 화로가 타오를 때 동력을 생산합니다.", - "create.ponder.furnace_engine.text_2": "제공되는 피로도 용량이 매우 높습니다.", - "create.ponder.furnace_engine.text_3": "용광로를 사용하면 동력 속도가 2배가 됩니다.", - "create.ponder.gantry_carriage.header": "갠트리 운반대 사용하기", "create.ponder.gantry_carriage.text_1": "갠트리 운반대는 갠트리 축 위에서 움직입니다.", "create.ponder.gantry_carriage.text_2": "갠트리 장치는 부착된 블록들을 움직입니다.", 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 330f92cb0..0328f5636 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: 2154", + "_": "Missing Localizations: 2142", "_": "->------------------------] Game Elements [------------------------<-", @@ -216,7 +216,6 @@ "block.create.flywheel": "UNLOCALIZED: Flywheel", "block.create.framed_glass": "Ingelijst Glas", "block.create.framed_glass_pane": "UNLOCALIZED: Framed Glass Pane", - "block.create.furnace_engine": "UNLOCALIZED: Furnace Engine", "block.create.gantry_carriage": "UNLOCALIZED: Gantry Carriage", "block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft", "block.create.gearbox": "Versnellingsbak", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range", "create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts", - "create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans", - "create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force", - "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", - "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually", "create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items", - "create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel", - "create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine", - "create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility", "create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.", "create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", - "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", - "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", - "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index 64ff1480a..c127081cb 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -216,7 +216,6 @@ "block.create.flywheel": "Koło zamachowe", "block.create.framed_glass": "Oprawione okno", "block.create.framed_glass_pane": "Oprawiona szyba", - "block.create.furnace_engine": "Silnik spalinowy", "block.create.gantry_carriage": "Przenośnik suwnicowy", "block.create.gantry_shaft": "Suwnica", "block.create.gearbox": "Przekładnia", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "Prędkość wiatraka nie wpływa na szybkość obróbki, a jedynie na jego zasięg!", "create.ponder.fan_processing.text_8": "Przepływ powietrza działa również na przedmioty na taśmociągach lub składnicach", - "create.ponder.fan_source.header": "Generowanie siły obrotowej z użyciem izolowanych wiatraków", - "create.ponder.fan_source.text_1": "Wiatraki skierowane w stronę źródła ciepła generują siłę obrotową", - "create.ponder.fan_source.text_2": "Po zasileniu, wiatraki zaczną przesyłać siłę do przylegających komponentów", - "create.ponder.fluid_pipe_flow.header": "Transport cieczy z użyciem rur", "create.ponder.fluid_pipe_flow.text_1": "Rury mogą połączyć dwa lub więcej bloków przechowujących ciecze", "create.ponder.fluid_pipe_flow.text_2": "Używając klucza, prosta rura może mieć w sobie okienko", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "W trybie przetrwania ciecze nie mogą być dodane lub zabrane manualnie", "create.ponder.fluid_tank_storage.text_5": "Można użyć tygli, odpływów lub napełniaczy aby opróżnić lub napełnić przedmioty mogące przechowywać ciecze", - "create.ponder.flywheel.header": "Generowanie siły obrotowej z użyciem koła zamachowego", - "create.ponder.flywheel.text_1": "Koła zamachowe są wymagane, aby generować siłę obrotową przy pomocy silnika spalinowego", - "create.ponder.flywheel.text_2": "Wyprodukowana w ten sposób siła ma bardzo dużą odporność na obciążenie", - "create.ponder.flywheel.text_3": "Używając pieca hutniczego efektywność silnika spalinowego wzrośnie dwukrotnie", - "create.ponder.funnel_compat.header": "Kompatybilność lejków", "create.ponder.funnel_compat.text_1": "Lejki działają też z wieloma innymi komponentami", "create.ponder.funnel_compat.text_2": "Pionowe piły", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "Zsypy lub inteligentne zsypy mogą bardziej się do tego nadawać", "create.ponder.funnel_transfer.text_3": "To samo tyczy się transportu poziomego. Taśmociąg może tutaj pomóc", - "create.ponder.furnace_engine.header": "Generowanie siły obrotowej z użyciem silnika spalinowego", - "create.ponder.furnace_engine.text_1": "Silniki spalinowe generują siłę obrotową, gdy podłączonym do niego piec jest aktywny", - "create.ponder.furnace_engine.text_2": "Wyprodukowana w ten sposób siła ma bardzo dużą odporność na obciążenie", - "create.ponder.furnace_engine.text_3": "Używając pieca hutniczego efektywność silnika spalinowego wzrośnie dwukrotnie", - "create.ponder.gantry_carriage.header": "Używanie przenośników suwnicowych", "create.ponder.gantry_carriage.text_1": "Przenośnik suwnicowy może być zamontowany i przesuwany po suwnicy", "create.ponder.gantry_carriage.text_2": "Może on przenosić dołączone bloki", 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 8ebe4cb1a..e2a9cd8ec 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: 1401", + "_": "Missing Localizations: 1390", "_": "->------------------------] Game Elements [------------------------<-", @@ -216,7 +216,6 @@ "block.create.flywheel": "Volante de inércia", "block.create.framed_glass": "Vidro emoldurado", "block.create.framed_glass_pane": "Vidraça emoldurada", - "block.create.furnace_engine": "Motor de Fornalha", "block.create.gantry_carriage": "Carruagem de Pórtico", "block.create.gantry_shaft": "Eixo de Pórtico", "block.create.gearbox": "Caixa de Transmissão", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range", "create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts", - "create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans", - "create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force", - "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", - "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually", "create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items", - "create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel", - "create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine", - "create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility", "create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.", "create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", - "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", - "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", - "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json index f69fd254c..229d0bde6 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1773", + "_": "Missing Localizations: 1762", "_": "->------------------------] Game Elements [------------------------<-", @@ -216,7 +216,6 @@ "block.create.flywheel": "Volante de inércia", "block.create.framed_glass": "UNLOCALIZED: Framed Glass", "block.create.framed_glass_pane": "UNLOCALIZED: Framed Glass Pane", - "block.create.furnace_engine": "Motor de Fornalha", "block.create.gantry_carriage": "Carruagem de Pórtico", "block.create.gantry_shaft": "Eixo de Pórtico", "block.create.gearbox": "Caixa de Transmissão", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range", "create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts", - "create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans", - "create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force", - "create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power", - "create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes", "create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets", "create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually", "create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items", - "create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel", - "create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine", - "create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility", "create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.", "create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.", "create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.", - "create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine", - "create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running", - "create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity", - "create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine", - "create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages", "create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.", "create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.", diff --git a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json index 135552914..79d5d56fe 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json +++ b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json @@ -216,7 +216,6 @@ "block.create.flywheel": "Volant", "block.create.framed_glass": "Sticlă Înrămată", "block.create.framed_glass_pane": "Geam Înrămat", - "block.create.furnace_engine": "Motor De Cuptor", "block.create.gantry_carriage": "Cărucior Portal", "block.create.gantry_shaft": "Rotor Portal", "block.create.gearbox": "Cutie De Viteze", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "Viteza Ventilatorului NU afectează viteza procesării, doar raza sa", "create.ponder.fan_processing.text_8": "De asemenea, Procesarea Cu Ventilator poate fi aplicată la Obiecte pe Depoturi și Benzi", - "create.ponder.fan_source.header": "Generarea Forței Rotaționale folosind Ventilatoare Încapsulate", - "create.ponder.fan_source.text_1": "Ventilatoarele cu fața în jos într-o sursă de căldură pot oferi Forță De Rotație", - "create.ponder.fan_source.text_2": "Când îi este dat un Semnal Redstone, Ventilatoarele vor începe să ofere putere", - "create.ponder.fluid_pipe_flow.header": "Mișcarea Fluidelor folosind Conducte De Cupru", "create.ponder.fluid_pipe_flow.text_1": "Conductele De Fluid pot conecta două sau mai multe surse și ținte", "create.ponder.fluid_pipe_flow.text_2": "Folosind o Cheie, unui segment de conductă dreaptă poate fi dat o fereastră", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "Totuși, în modul de Supraviețuire Fluidele nu pot fi adăugate sau luate manual", "create.ponder.fluid_tank_storage.text_5": "Poți folosi Bazine, Scurgeri De Obiecte și Duze pentru a scurge sau a umple obiecte care conțin fluid", - "create.ponder.flywheel.header": "Generarea Forței de Rotație folosind Volantul", - "create.ponder.flywheel.text_1": "Volantele sunt necesare pentru generarea forței rotaționale cu Motorul De Cuptor", - "create.ponder.flywheel.text_2": "Forța De Rotație oferită are o capacitate de stres foarte mare", - "create.ponder.flywheel.text_3": "Folsind un Furnal eficiența Motorului va fi dublată", - "create.ponder.funnel_compat.header": "Compatibilitatea Pâlniilor", "create.ponder.funnel_compat.text_1": "Pâlniile ar trebui să interacționeze frumos de asemenea cu o varietate de alte componente.", "create.ponder.funnel_compat.text_2": "Ferăstraie Verticale", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "Toboganele sau Toboganele deștepte ar putea să fie mai potrivite pentru astfel de scopuri.", "create.ponder.funnel_transfer.text_3": "Același lucru se aplică pentru mișcare orizontală. O bandă mecanică ar trebui să ajute aici.", - "create.ponder.furnace_engine.header": "Generarea Forței De Rotație folosind Motorul De Cuptor", - "create.ponder.furnace_engine.text_1": "Motoarele de cuptor generează Forță De Rotație în timp ce Cuptorul lor atașat funcționează", - "create.ponder.furnace_engine.text_2": "Forța De Rotație oferită are o capacitate de stres foarte mare", - "create.ponder.furnace_engine.text_3": "Folosind un Furnal eficiența Motorului va fi dublată", - "create.ponder.gantry_carriage.header": "Folosirea Cărucioarelor Portale", "create.ponder.gantry_carriage.text_1": "Cărucioarele Portale pot monta și aluneca de-a lungul unui Rotor Portal.", "create.ponder.gantry_carriage.text_2": "Amplasările de portale pot mișca Blocuri atașate.", 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 afa8345ed..60eea18f8 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -216,7 +216,6 @@ "block.create.flywheel": "Маховик", "block.create.framed_glass": "Обрамлённое стекло", "block.create.framed_glass_pane": "Обрамлённая стеклянная панель", - "block.create.furnace_engine": "Печной двигатель", "block.create.gantry_carriage": "Шасси портального крана", "block.create.gantry_shaft": "Вал портального крана", "block.create.gearbox": "Коробка передач", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "Скорость вентилятора НЕ влияет на скорость обработки, а только на дальность", "create.ponder.fan_processing.text_8": "Обработка Вентиляторами может быть применена к предметам на конвейерах или депо", - "create.ponder.fan_source.header": "Генерации силы вращения Вентиляторами в корпусе", - "create.ponder.fan_source.text_1": "Вентиляторы направленные вниз на источник тепла могут создавать силу вращения", - "create.ponder.fan_source.text_2": "При сигнале редстоуна Вентилятор начнёт отдавать энергию", - "create.ponder.fluid_pipe_flow.header": "Перемещении жидкостей при помощи медных труб.", "create.ponder.fluid_pipe_flow.text_1": "Жидкостные трубы могут соединять два или более источников и потребителей жидкости", "create.ponder.fluid_pipe_flow.text_2": "При помощи гаечного ключа можно создать окно прямому отрезку трубы", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "Однако в режиме выживания жидкость нельзя добавлять или извлекать вручную", "create.ponder.fluid_tank_storage.text_5": "Вы можете использовать чаши, предметные осушители и дозаторы для опустошения или наполнения содерж. жидкость предметов", - "create.ponder.flywheel.header": "Генерации силы вращения Маховиком", - "create.ponder.flywheel.text_1": "Маховики необходимы для генерации силы вращения при помощи Печных двигателей", - "create.ponder.flywheel.text_2": "Отдаваемая сила вращения имеет очень значительную устойчивость к нагрузкам", - "create.ponder.flywheel.text_3": "Использование Плавильной печи удвоит эффективность двигателя", - "create.ponder.funnel_compat.header": "Совместимости Воронок", "create.ponder.funnel_compat.text_1": "Воронки должны хорошо взаимодействовать с многими компонентами:", "create.ponder.funnel_compat.text_2": "Вертикальные пилы", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "Желоба или Умные желоба могут лучше подходить для этих целей", "create.ponder.funnel_transfer.text_3": "То же касается и горизонтального перемещения. Механический ремень должен здесь помочь", - "create.ponder.furnace_engine.header": "Генерации силы вращения Печными двигателями", - "create.ponder.furnace_engine.text_1": "Печные двигатели создают силу вращения пока присоединённая к ним печь работает", - "create.ponder.furnace_engine.text_2": "Создаваемая сила вращения имеет очень высокую устойчивость к нагрузкам", - "create.ponder.furnace_engine.text_3": "Использование Плавильной печи удвоит эффективность Двигателя", - "create.ponder.gantry_carriage.header": "Использовании шасси портального крана", "create.ponder.gantry_carriage.text_1": "Шасси портального крана могут прикрепляться и двигаться вдоль Вала портального крана", "create.ponder.gantry_carriage.text_2": "Крановые установки могут двигать присоединённые Блоки", 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 620230e2c..7121759f5 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -216,7 +216,6 @@ "block.create.flywheel": "飞轮", "block.create.framed_glass": "边框玻璃", "block.create.framed_glass_pane": "边框玻璃板", - "block.create.furnace_engine": "熔炉引擎", "block.create.gantry_carriage": "起重机取物器", "block.create.gantry_shaft": "起重机杆", "block.create.gearbox": "十字齿轮箱", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "鼓风机的转速对加工的速度没有影响,只影响气流的吹拂距离", "create.ponder.fan_processing.text_8": "而那些放置在置物台或者传送带上的物品,鼓风机也是可以处理的", - "create.ponder.fan_source.header": "使用鼓风机来产生旋转力", - "create.ponder.fan_source.text_1": "如鼓风机的扇叶向下朝着热源放置,鼓风机可以借此产生旋转力", - "create.ponder.fan_source.text_2": "当鼓风机接受红石信号后,它便会向外供给旋转力", - "create.ponder.fluid_pipe_flow.header": "使用管道运输流体", "create.ponder.fluid_pipe_flow.text_1": "流体管道可以用于连接两个或多个流体容器", "create.ponder.fluid_pipe_flow.text_2": "使用扳手,可以为直管道安装观察窗", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "在生存模式中,无法直接用容器向储罐中存入流体,或是取出流体", "create.ponder.fluid_tank_storage.text_5": "要装满/倒空流体容器,可以使用工作盆,分液池或注液器。", - "create.ponder.flywheel.header": "使用飞轮来产生旋转力", - "create.ponder.flywheel.text_1": "飞轮和熔炉引擎必须配套使用,方可产生旋转力", - "create.ponder.flywheel.text_2": "如此产生的旋转力具有非常大的应力值", - "create.ponder.flywheel.text_3": "使用高炉会使得引擎的效率翻倍", - "create.ponder.funnel_compat.header": "漏斗的兼容性", "create.ponder.funnel_compat.text_1": "漏斗可以与一些其他组件互动", "create.ponder.funnel_compat.text_2": "动力锯", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "溜槽和智能溜槽更适用于这样的场景", "create.ponder.funnel_transfer.text_3": "水平传输也是如此,也许传送带更方便快捷", - "create.ponder.furnace_engine.header": "使用熔炉引擎生产旋转力", - "create.ponder.furnace_engine.text_1": "熔炉引擎会在与其相连熔炉工作时生产旋转力", - "create.ponder.furnace_engine.text_2": "如此产生的旋转力具有非常大的应力值", - "create.ponder.furnace_engine.text_3": "使用高炉会使得引擎的效率翻倍", - "create.ponder.gantry_carriage.header": "使用起重机取物器", "create.ponder.gantry_carriage.text_1": "起重机取物器可以被放置在起重机杆上,并且可以沿着起重机杆运动", "create.ponder.gantry_carriage.text_2": "起重机可以移动其黏附的方块", 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 15a22aaff..cb9e90669 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -216,7 +216,6 @@ "block.create.flywheel": "飛輪", "block.create.framed_glass": "邊框玻璃", "block.create.framed_glass_pane": "邊框玻璃片", - "block.create.furnace_engine": "熔煉引擎", "block.create.gantry_carriage": "門式起重機", "block.create.gantry_shaft": "門式起重機滑道", "block.create.gearbox": "齒輪箱", @@ -2146,10 +2145,6 @@ "create.ponder.fan_processing.text_7": "鼓風機的轉速對加工的速度沒有影響,只影響氣流的吹拂距離", "create.ponder.fan_processing.text_8": "而那些放置在置物台或者傳送帶上的物品,鼓風機也是可以處理的", - "create.ponder.fan_source.header": "使用鼓風機來產生動能", - "create.ponder.fan_source.text_1": "如鼓風機的扇葉向下朝著熱源放置,鼓風機可以藉此產生動能", - "create.ponder.fan_source.text_2": "當鼓風機接受紅石訊號後,它便會向外供給動能", - "create.ponder.fluid_pipe_flow.header": "始用銅製管道來移動液體", "create.ponder.fluid_pipe_flow.text_1": "液體管可以連接兩個或更多的液體來源與目標", "create.ponder.fluid_pipe_flow.text_2": "使用扳手可以在一段直管線上開窗戶", @@ -2179,11 +2174,6 @@ "create.ponder.fluid_tank_storage.text_4": "但是,在生存模式你不能直接存入、取出液體", "create.ponder.fluid_tank_storage.text_5": "你可以用作業盆、分液池或液體灌注器和管線網路互動", - "create.ponder.flywheel.header": "使用飛輪來產生動能", - "create.ponder.flywheel.text_1": "飛輪和熔爐引擎必須配套使用,方可產生動能", - "create.ponder.flywheel.text_2": "如此產生的動能具有非常大的應力值", - "create.ponder.flywheel.text_3": "使用高爐會使得引擎的效率翻倍", - "create.ponder.funnel_compat.header": "漏斗的相容性", "create.ponder.funnel_compat.text_1": "漏斗可以與一些其他組件互動", "create.ponder.funnel_compat.text_2": "動力鋸", @@ -2208,11 +2198,6 @@ "create.ponder.funnel_transfer.text_2": "溜槽和智慧溜槽更適用於這樣的場景", "create.ponder.funnel_transfer.text_3": "水平傳輸也是如此,也許傳送帶更方便快捷", - "create.ponder.furnace_engine.header": "使用熔爐引擎生產動能", - "create.ponder.furnace_engine.text_1": "熔爐引擎會在與其相連熔爐工作時生產動能", - "create.ponder.furnace_engine.text_2": "如此產生的動能具有非常大的應力值", - "create.ponder.furnace_engine.text_3": "使用高爐會使得引擎的效率翻倍", - "create.ponder.gantry_carriage.header": "使用起重機取物器", "create.ponder.gantry_carriage.text_1": "起重機取物器可以被放置在起重機杆上,並且可以沿著起重機杆運動", "create.ponder.gantry_carriage.text_2": "起重機可以移動其黏附的方塊", diff --git a/src/generated/resources/assets/create/models/item/furnace_engine.json b/src/generated/resources/assets/create/models/item/furnace_engine.json deleted file mode 100644 index c23656217..000000000 --- a/src/generated/resources/assets/create/models/item/furnace_engine.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "create:block/furnace_engine/item" -} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/overstress_flywheel.json b/src/generated/resources/data/create/advancements/overstress_flywheel.json deleted file mode 100644 index 167e4c3db..000000000 --- a/src/generated/resources/data/create/advancements/overstress_flywheel.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "parent": "create:flywheel", - "display": { - "icon": { - "item": "create:furnace_engine" - }, - "title": { - "translate": "advancement.create.overstress_flywheel" - }, - "description": { - "translate": "advancement.create.overstress_flywheel.desc" - }, - "frame": "challenge", - "show_toast": true, - "announce_to_chat": true, - "hidden": false - }, - "criteria": { - "0": { - "trigger": "create:overstress_flywheel", - "conditions": {} - } - }, - "requirements": [ - [ - "0" - ] - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/furnace_engine.json b/src/generated/resources/data/create/loot_tables/blocks/furnace_engine.json deleted file mode 100644 index 391782951..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/furnace_engine.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1.0, - "bonus_rolls": 0.0, - "entries": [ - { - "type": "minecraft:item", - "name": "create:furnace_engine" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json b/src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json deleted file mode 100644 index 3842209f0..000000000 --- a/src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "type": "create:mechanical_crafting", - "pattern": [ - "PPB", - "PCI", - "PPB" - ], - "key": { - "P": { - "tag": "forge:plates/brass" - }, - "B": { - "tag": "forge:ingots/brass" - }, - "I": [ - { - "item": "minecraft:piston" - }, - { - "item": "minecraft:sticky_piston" - } - ], - "C": { - "item": "create:brass_casing" - } - }, - "result": { - "item": "create:furnace_engine" - }, - "acceptMirrored": true -} \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/blocks/brittle.json b/src/generated/resources/data/create/tags/blocks/brittle.json index 4cc8d6e48..f5693187e 100644 --- a/src/generated/resources/data/create/tags/blocks/brittle.json +++ b/src/generated/resources/data/create/tags/blocks/brittle.json @@ -22,7 +22,6 @@ "create:black_valve_handle", "create:rope", "create:pulley_magnet", - "create:furnace_engine", "create:redstone_link", "create:peculiar_bell", "create:haunted_bell", diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index 069b61897..0785c2325 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -105,7 +105,6 @@ "create:mechanical_crafter", "create:sequenced_gearshift", "create:flywheel", - "create:furnace_engine", "create:rotation_speed_controller", "create:mechanical_arm", "create:track", diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java index 69ffdecd2..677f1fdd1 100644 --- a/src/main/java/com/simibubi/create/AllBlockPartials.java +++ b/src/main/java/com/simibubi/create/AllBlockPartials.java @@ -50,16 +50,11 @@ public class AllBlockPartials { DEPLOYER_HAND_HOLDING = block("deployer/hand_holding"), ANALOG_LEVER_HANDLE = block("analog_lever/handle"), ANALOG_LEVER_INDICATOR = block("analog_lever/indicator"), FUNNEL_FLAP = block("funnel/flap"), BELT_FUNNEL_FLAP = block("belt_funnel/flap"), BELT_TUNNEL_FLAP = block("belt_tunnel/flap"), - FLEXPEATER_INDICATOR = block("diodes/indicator"), FLYWHEEL = block("flywheel/wheel"), - FLYWHEEL_UPPER_ROTATING = block("flywheel/upper_rotating_connector"), + FLEXPEATER_INDICATOR = block("diodes/indicator"), - FLYWHEEL_LOWER_ROTATING = block("flywheel/lower_rotating_connector"), - FLYWHEEL_UPPER_SLIDING = block("flywheel/upper_sliding_connector"), - FLYWHEEL_LOWER_SLIDING = block("flywheel/lower_sliding_connector"), - FURNACE_GENERATOR_FRAME = block("furnace_engine/frame"), CUCKOO_MINUTE_HAND = block("cuckoo_clock/minute_hand"), - CUCKOO_HOUR_HAND = block("cuckoo_clock/hour_hand"), CUCKOO_LEFT_DOOR = block("cuckoo_clock/left_door"), - CUCKOO_RIGHT_DOOR = block("cuckoo_clock/right_door"), CUCKOO_PIG = block("cuckoo_clock/pig"), - CUCKOO_CREEPER = block("cuckoo_clock/creeper"), + CUCKOO_MINUTE_HAND = block("cuckoo_clock/minute_hand"), CUCKOO_HOUR_HAND = block("cuckoo_clock/hour_hand"), + CUCKOO_LEFT_DOOR = block("cuckoo_clock/left_door"), CUCKOO_RIGHT_DOOR = block("cuckoo_clock/right_door"), + CUCKOO_PIG = block("cuckoo_clock/pig"), CUCKOO_CREEPER = block("cuckoo_clock/creeper"), GANTRY_COGS = block("gantry_carriage/wheels"), @@ -90,9 +85,6 @@ public class AllBlockPartials { ARM_HEAD = block("mechanical_arm/head"), ARM_CLAW_BASE = block("mechanical_arm/claw_base"), ARM_CLAW_GRIP = block("mechanical_arm/claw_grip"), - FLAG_SHORT_IN = block("mechanical_arm/flag/short_in"), FLAG_SHORT_OUT = block("mechanical_arm/flag/short_out"), - FLAG_LONG_IN = block("mechanical_arm/flag/long_in"), FLAG_LONG_OUT = block("mechanical_arm/flag/long_out"), - MECHANICAL_PUMP_ARROW = block("mechanical_pump/arrow"), MECHANICAL_PUMP_COG = block("mechanical_pump/cog"), FLUID_PIPE_CASING = block("fluid_pipe/casing"), FLUID_VALVE_POINTER = block("fluid_valve/pointer"), diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 004b4da7a..575d40236 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -43,8 +43,6 @@ import com.simibubi.create.content.contraptions.components.deployer.DeployerMovi import com.simibubi.create.content.contraptions.components.fan.EncasedFanBlock; import com.simibubi.create.content.contraptions.components.fan.NozzleBlock; import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlock; -import com.simibubi.create.content.contraptions.components.flywheel.FlywheelGenerator; -import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineBlock; import com.simibubi.create.content.contraptions.components.millstone.MillstoneBlock; import com.simibubi.create.content.contraptions.components.mixer.MechanicalMixerBlock; import com.simibubi.create.content.contraptions.components.motor.CreativeMotorBlock; @@ -473,7 +471,6 @@ public class AllBlocks { .blockstate(BlockStateGen.directionalBlockProvider(true)) .addLayer(() -> RenderType::cutoutMipped) .transform(axeOrPickaxe()) - .transform(BlockStressDefaults.setCapacity(16.0)) .transform(BlockStressDefaults.setImpact(2.0)) .item() .transform(customItemModel()) @@ -1290,22 +1287,11 @@ public class AllBlocks { .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .transform(BlockStressDefaults.setNoImpact()) - .blockstate(new FlywheelGenerator()::generate) + .blockstate(BlockStateGen.axisBlockProvider(true)) .item() .transform(customItemModel()) .register(); - public static final BlockEntry FURNACE_ENGINE = - REGISTRATE.block("furnace_engine", FurnaceEngineBlock::new) - .initialProperties(SharedProperties::softMetal) - .transform(pickaxeOnly()) - .tag(AllBlockTags.BRITTLE.tag) - .blockstate(BlockStateGen.horizontalBlockProvider(true)) - .transform(BlockStressDefaults.setCapacity(1024.0)) - .item() - .transform(customItemModel()) - .register(); - public static final BlockEntry ROTATION_SPEED_CONTROLLER = REGISTRATE.block("rotation_speed_controller", SpeedControllerBlock::new) .initialProperties(SharedProperties::softMetal) diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index 817fa4d89..a833f607b 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -37,9 +37,6 @@ import com.simibubi.create.content.contraptions.components.fan.NozzleTileEntity; import com.simibubi.create.content.contraptions.components.flywheel.FlyWheelInstance; import com.simibubi.create.content.contraptions.components.flywheel.FlywheelRenderer; import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity; -import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineInstance; -import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineRenderer; -import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineTileEntity; import com.simibubi.create.content.contraptions.components.millstone.MillStoneCogInstance; import com.simibubi.create.content.contraptions.components.millstone.MillstoneRenderer; import com.simibubi.create.content.contraptions.components.millstone.MillstoneTileEntity; @@ -539,13 +536,6 @@ public class AllTileEntities { .renderer(() -> FlywheelRenderer::new) .register(); - public static final BlockEntityEntry FURNACE_ENGINE = Create.registrate() - .tileEntity("furnace_engine", FurnaceEngineTileEntity::new) - .instance(() -> EngineInstance::new, false) - .validBlocks(AllBlocks.FURNACE_ENGINE) - .renderer(() -> EngineRenderer::new) - .register(); - public static final BlockEntityEntry MILLSTONE = Create.registrate() .tileEntity("millstone", MillstoneTileEntity::new) .instance(() -> MillStoneCogInstance::new, false) diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index fa35898f1..e5eadc1b3 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -10,7 +10,6 @@ import com.google.gson.GsonBuilder; import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour; import com.simibubi.create.content.CreateItemGroup; import com.simibubi.create.content.contraptions.TorquePropagator; -import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineInteractions; import com.simibubi.create.content.curiosities.weapons.BuiltinPotatoProjectileTypes; import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler; import com.simibubi.create.content.logistics.block.data.AllDataGathererBehaviours; @@ -102,7 +101,6 @@ public class Create { AllWorldFeatures.register(); AllEnchantments.register(); AllConfigs.register(modLoadingContext); - FurnaceEngineInteractions.registerDefaults(); BlockSpoutingBehaviour.register(); ForgeMod.enableMilkFluid(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanBlock.java index 4efd7d263..06c3a4edd 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanBlock.java @@ -74,9 +74,6 @@ public class EncasedFanBlock extends DirectionalKineticBlock implements ITE te.queueGeneratorUpdate()); } protected void notifyFanTile(LevelAccessor world, BlockPos pos) { @@ -101,11 +98,6 @@ public class EncasedFanBlock extends DirectionalKineticBlock implements ITE getTileEntityClass() { return EncasedFanTileEntity.class; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanTileEntity.java index 540952db0..7ddba143b 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/EncasedFanTileEntity.java @@ -2,10 +2,7 @@ package com.simibubi.create.content.contraptions.components.fan; import javax.annotation.Nullable; -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllTags.AllBlockTags; -import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity; -import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.logistics.block.chute.ChuteTileEntity; import com.simibubi.create.foundation.config.AllConfigs; @@ -20,95 +17,31 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; @MethodsReturnNonnullByDefault -public class EncasedFanTileEntity extends GeneratingKineticTileEntity implements IAirCurrentSource { +public class EncasedFanTileEntity extends KineticTileEntity implements IAirCurrentSource { public AirCurrent airCurrent; protected int airCurrentUpdateCooldown; protected int entitySearchCooldown; - protected boolean isGenerator; protected boolean updateAirFlow; - protected boolean updateGenerator; public EncasedFanTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { super(type, pos, state); - isGenerator = false; airCurrent = new AirCurrent(this); updateAirFlow = true; - updateGenerator = false; } @Override protected void read(CompoundTag compound, boolean clientPacket) { super.read(compound, clientPacket); - if (!wasMoved) - isGenerator = compound.getBoolean("Generating"); if (clientPacket) airCurrent.rebuild(); } @Override public void write(CompoundTag compound, boolean clientPacket) { - compound.putBoolean("Generating", isGenerator); super.write(compound, clientPacket); } - @Override - public float calculateAddedStressCapacity() { - return lastCapacityProvided = (isGenerator ? super.calculateAddedStressCapacity() : 0); - } - - @Override - public float calculateStressApplied() { - return isGenerator ? 0 : super.calculateStressApplied(); - } - - @Override - public float getGeneratedSpeed() { - return isGenerator ? AllConfigs.SERVER.kinetics.generatingFanSpeed.get() : 0; - } - - public void queueGeneratorUpdate() { - updateGenerator = true; - } - - public void updateGenerator() { - BlockState blockState = getBlockState(); - boolean shouldGenerate = true; - - if (!AllBlocks.ENCASED_FAN.has(blockState)) - shouldGenerate = false; - - if (shouldGenerate && blockState.getValue(EncasedFanBlock.FACING) != Direction.DOWN) - shouldGenerate = false; - - if (shouldGenerate) - shouldGenerate = level != null && level.hasNeighborSignal(worldPosition) - && level.isLoaded(worldPosition.below()) && blockBelowIsHot(); - - if (shouldGenerate == isGenerator) - return; - isGenerator = shouldGenerate; - updateGeneratedRotation(); - } - - public boolean blockBelowIsHot() { - if (level == null) - return false; - BlockState checkState = level.getBlockState(worldPosition.below()); - - if (!AllBlockTags.FAN_HEATERS.matches(checkState)) - return false; - - if (checkState.hasProperty(BlazeBurnerBlock.HEAT_LEVEL) && !checkState.getValue(BlazeBurnerBlock.HEAT_LEVEL) - .isAtLeast(BlazeBurnerBlock.HeatLevel.FADING)) - return false; - - if (checkState.hasProperty(BlockStateProperties.LIT) && !checkState.getValue(BlockStateProperties.LIT)) - return false; - - return true; - } - @Override public AirCurrent getAirCurrent() { return airCurrent; @@ -189,12 +122,7 @@ public class EncasedFanTileEntity extends GeneratingKineticTileEntity implements sendData(); } - if (updateGenerator) { - updateGenerator = false; - updateGenerator(); - } - - if (getSpeed() == 0 || isGenerator) + if (getSpeed() == 0) return; if (entitySearchCooldown-- <= 0) { diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/fan/NozzleTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/fan/NozzleTileEntity.java index 963f9fc56..c5b912999 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/fan/NozzleTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/fan/NozzleTileEntity.java @@ -127,8 +127,6 @@ public class NozzleTileEntity extends SmartTileEntity { return 0; IAirCurrentSource source = (IAirCurrentSource) te; - if (source instanceof EncasedFanTileEntity && ((EncasedFanTileEntity) source).isGenerator) - return 0; if (source.getAirCurrent() == null) return 0; if (source.getSpeed() == 0) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java index 30e087aae..d7b8dd9b7 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlyWheelInstance.java @@ -1,87 +1,31 @@ package com.simibubi.create.content.contraptions.components.flywheel; -import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING; - -import java.util.Collections; -import java.util.List; - -import com.google.common.collect.Lists; -import com.jozufozu.flywheel.api.InstanceData; -import com.jozufozu.flywheel.api.Instancer; -import com.jozufozu.flywheel.api.Material; import com.jozufozu.flywheel.api.MaterialManager; import com.jozufozu.flywheel.api.instance.DynamicInstance; import com.jozufozu.flywheel.core.materials.model.ModelData; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticTileInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.core.Direction; -import net.minecraft.util.Mth; -import net.minecraft.world.level.block.Rotation; -import net.minecraft.world.level.block.state.BlockState; public class FlyWheelInstance extends KineticTileInstance implements DynamicInstance { - protected final Direction facing; - protected final Direction connection; - - protected boolean connectedLeft; - protected float connectorAngleMult; - protected final RotatingData shaft; - protected final ModelData wheel; - - protected List connectors; - protected ModelData upperRotating; - protected ModelData lowerRotating; - protected ModelData upperSliding; - protected ModelData lowerSliding; - protected float lastAngle = Float.NaN; public FlyWheelInstance(MaterialManager modelManager, FlywheelTileEntity tile) { super(modelManager, tile); - facing = blockState.getValue(HORIZONTAL_FACING); - - shaft = setup(shaftModel().createInstance()); - - BlockState referenceState = blockState.rotate(Rotation.CLOCKWISE_90); - wheel = getTransformMaterial() - .getModel(AllBlockPartials.FLYWHEEL, referenceState, referenceState.getValue(HORIZONTAL_FACING)) + shaft = setup(getRotatingMaterial().getModel(shaft()) + .createInstance()); + wheel = getTransformMaterial().getModel(blockState) .createInstance(); - connection = FlywheelBlock.getConnection(blockState); - if (connection != null) { - connectedLeft = blockState.getValue(FlywheelBlock.CONNECTION) == FlywheelBlock.ConnectionState.LEFT; - - boolean flipAngle = connection.getAxis() == Direction.Axis.X - ^ connection.getAxisDirection() == Direction.AxisDirection.NEGATIVE; - - connectorAngleMult = flipAngle ? -1 : 1; - - Material mat = getTransformMaterial(); - - upperRotating = mat.getModel(AllBlockPartials.FLYWHEEL_UPPER_ROTATING, blockState) - .createInstance(); - lowerRotating = mat.getModel(AllBlockPartials.FLYWHEEL_LOWER_ROTATING, blockState) - .createInstance(); - upperSliding = mat.getModel(AllBlockPartials.FLYWHEEL_UPPER_SLIDING, blockState) - .createInstance(); - lowerSliding = mat.getModel(AllBlockPartials.FLYWHEEL_LOWER_SLIDING, blockState) - .createInstance(); - - connectors = Lists.newArrayList(upperRotating, lowerRotating, upperSliding, lowerSliding); - } else { - connectors = Collections.emptyList(); - } - animate(tile.angle); } @@ -90,7 +34,7 @@ public class FlyWheelInstance extends KineticTileInstance im float partialTicks = AnimationTickHolder.getPartialTicks(); - float speed = blockEntity.visualSpeed.get(partialTicks) * 3 / 10f; + float speed = blockEntity.visualSpeed.getValue(partialTicks) * 3 / 10f; float angle = blockEntity.angle + speed * partialTicks; if (Math.abs(angle - lastAngle) < 0.001) @@ -106,38 +50,8 @@ public class FlyWheelInstance extends KineticTileInstance im TransformStack msr = TransformStack.cast(ms); msr.translate(getInstancePosition()); - - if (connection != null) { - float rotation = angle * connectorAngleMult; - - ms.pushPose(); - rotateToFacing(msr, connection); - - ms.pushPose(); - transformConnector(msr, true, true, rotation, connectedLeft); - upperRotating.setTransform(ms); - ms.popPose(); - - ms.pushPose(); - transformConnector(msr, false, true, rotation, connectedLeft); - lowerRotating.setTransform(ms); - ms.popPose(); - - ms.pushPose(); - transformConnector(msr, true, false, rotation, connectedLeft); - upperSliding.setTransform(ms); - ms.popPose(); - - ms.pushPose(); - transformConnector(msr, false, false, rotation, connectedLeft); - lowerSliding.setTransform(ms); - ms.popPose(); - - ms.popPose(); - } - msr.centre() - .rotate(Direction.get(Direction.AxisDirection.POSITIVE, facing.getAxis()), AngleHelper.rad(angle)) + .rotate(Direction.get(Direction.AxisDirection.POSITIVE, axis), AngleHelper.rad(angle)) .unCentre(); wheel.setTransform(ms); @@ -151,56 +65,12 @@ public class FlyWheelInstance extends KineticTileInstance im @Override public void updateLight() { relight(pos, shaft, wheel); - - if (connection != null) { - relight(this.pos.relative(connection), connectors.stream()); - } } @Override public void remove() { shaft.delete(); wheel.delete(); - - connectors.forEach(InstanceData::delete); - connectors.clear(); } - protected Instancer shaftModel() { - Direction opposite = facing.getOpposite(); - return getRotatingMaterial().getModel(AllBlockPartials.SHAFT_HALF, blockState, opposite); - } - - protected void transformConnector(TransformStack ms, boolean upper, boolean rotating, float angle, - boolean flip) { - float shift = upper ? 1 / 4f : -1 / 8f; - float offset = upper ? 1 / 4f : 1 / 4f; - float radians = (float) (angle / 180 * Math.PI); - float shifting = Mth.sin(radians) * shift + offset; - - float maxAngle = upper ? -5 : -15; - float minAngle = upper ? -45 : 5; - float barAngle = 0; - - if (rotating) - barAngle = Mth.lerp((Mth.sin((float) (radians + Math.PI / 2)) + 1) / 2, minAngle, maxAngle); - - float pivotX = (upper ? 8f : 3f) / 16; - float pivotY = (upper ? 8f : 2f) / 16; - float pivotZ = (upper ? 23f : 21.5f) / 16f; - - ms.translate(pivotX, pivotY, pivotZ + shifting); - if (rotating) - ms.rotate(Direction.EAST, AngleHelper.rad(barAngle)); - ms.translate(-pivotX, -pivotY, -pivotZ); - - if (flip && !upper) - ms.translate(9 / 16f, 0, 0); - } - - protected void rotateToFacing(TransformStack buffer, Direction facing) { - buffer.centre() - .rotate(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing))) - .unCentre(); - } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelBlock.java index 34ae99539..47c961334 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelBlock.java @@ -1,123 +1,65 @@ package com.simibubi.create.content.contraptions.components.flywheel; +import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; -import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock; -import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineTileEntity; -import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineBlock; -import com.simibubi.create.foundation.advancement.AllTriggers; +import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; -import net.minecraft.util.StringRepresentable; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.Level; +import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition.Builder; -import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; -public class FlywheelBlock extends HorizontalKineticBlock implements ITE { - - public static final EnumProperty CONNECTION = EnumProperty.create("connection", ConnectionState.class); +public class FlywheelBlock extends RotatedPillarKineticBlock implements ITE { public FlywheelBlock(Properties properties) { super(properties); - registerDefaultState(defaultBlockState().setValue(CONNECTION, ConnectionState.NONE)); - } - - @Override - protected void createBlockStateDefinition(Builder builder) { - super.createBlockStateDefinition(builder.add(CONNECTION)); - } - - @Override - public BlockState getStateForPlacement(BlockPlaceContext context) { - Direction preferred = getPreferredHorizontalFacing(context); - if (preferred != null) - return defaultBlockState().setValue(HORIZONTAL_FACING, preferred.getOpposite()); - return this.defaultBlockState().setValue(HORIZONTAL_FACING, context.getHorizontalDirection()); - } - - public static boolean isConnected(BlockState state) { - return getConnection(state) != null; - } - - public static Direction getConnection(BlockState state) { - Direction facing = state.getValue(HORIZONTAL_FACING); - ConnectionState connection = state.getValue(CONNECTION); - - if (connection == ConnectionState.LEFT) - return facing.getCounterClockWise(); - if (connection == ConnectionState.RIGHT) - return facing.getClockWise(); - return null; - } - - public static void setConnection(Level world, BlockPos pos, BlockState state, Direction direction) { - Direction facing = state.getValue(HORIZONTAL_FACING); - ConnectionState connection = ConnectionState.NONE; - - if (direction == facing.getClockWise()) - connection = ConnectionState.RIGHT; - if (direction == facing.getCounterClockWise()) - connection = ConnectionState.LEFT; - - world.setBlock(pos, state.setValue(CONNECTION, connection), 18); - AllTriggers.triggerForNearbyPlayers(AllTriggers.FLYWHEEL, world, pos, 4); - } - - @Override - public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { - return face == state.getValue(HORIZONTAL_FACING).getOpposite(); - } - - @Override - public Axis getRotationAxis(BlockState state) { - return state.getValue(HORIZONTAL_FACING).getAxis(); - } - - @Override - public InteractionResult onWrenched(BlockState state, UseOnContext context) { - Direction connection = getConnection(state); - if (connection == null) - return super.onWrenched(state ,context); - - if (context.getClickedFace().getAxis() == state.getValue(HORIZONTAL_FACING).getAxis()) - return InteractionResult.PASS; - - Level world = context.getLevel(); - BlockPos enginePos = context.getClickedPos().relative(connection, 2); - BlockState engine = world.getBlockState(enginePos); - if (engine.getBlock() instanceof FurnaceEngineBlock) - ((FurnaceEngineBlock) engine.getBlock()).withTileEntityDo(world, enginePos, EngineTileEntity::detachWheel); - - return super.onWrenched(state.setValue(CONNECTION, ConnectionState.NONE), context); - } - - public enum ConnectionState implements StringRepresentable { - NONE, LEFT, RIGHT; - - @Override - public String getSerializedName() { - return Lang.asId(name()); - } } @Override public Class getTileEntityClass() { return FlywheelTileEntity.class; } + + @Override + public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) { + return AllShapes.LARGE_GEAR.get(pState.getValue(AXIS)); + } + + @Override + public RenderShape getRenderShape(BlockState pState) { + return RenderShape.ENTITYBLOCK_ANIMATED; + } @Override public BlockEntityType getTileEntityType() { return AllTileEntities.FLYWHEEL.get(); } + + @Override + public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { + return face.getAxis() == getRotationAxis(state); + } + @Override + public Axis getRotationAxis(BlockState state) { + return state.getValue(AXIS); + } + + @Override + public float getParticleTargetRadius() { + return 2f; + } + + @Override + public float getParticleInitialRadius() { + return 1.75f; + } + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelGenerator.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelGenerator.java deleted file mode 100644 index 358d4e62b..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelGenerator.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.simibubi.create.content.contraptions.components.flywheel; - -import com.simibubi.create.foundation.data.SpecialBlockStateGen; -import com.tterrag.registrate.providers.DataGenContext; -import com.tterrag.registrate.providers.RegistrateBlockstateProvider; - -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.model.generators.ModelFile; - -public class FlywheelGenerator extends SpecialBlockStateGen { - - @Override - protected int getXRotation(BlockState state) { - return 0; - } - - @Override - protected int getYRotation(BlockState state) { - return horizontalAngle(state.getValue(FlywheelBlock.HORIZONTAL_FACING)) + 90; - } - - @Override - public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, - BlockState state) { - return prov.models() - .getExistingFile(prov.modLoc("block/" + ctx.getName() + "/casing_" + state.getValue(FlywheelBlock.CONNECTION) - .getSerializedName())); - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java index 7fd70c96b..274f8ba2f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelRenderer.java @@ -1,29 +1,18 @@ package com.simibubi.create.content.contraptions.components.flywheel; -import static com.simibubi.create.content.contraptions.base.HorizontalKineticBlock.HORIZONTAL_FACING; - import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; -import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlock.ConnectionState; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.utility.AngleHelper; -import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.core.Direction; -import net.minecraft.core.Direction.Axis; -import net.minecraft.core.Direction.AxisDirection; -import net.minecraft.util.Mth; -import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; public class FlywheelRenderer extends KineticTileEntityRenderer { @@ -36,94 +25,29 @@ public class FlywheelRenderer extends KineticTileEntityRenderer { int light, int overlay) { super.renderSafe(te, partialTicks, ms, buffer, light, overlay); - if (Backend.canUseInstancing(te.getLevel())) return; + if (Backend.canUseInstancing(te.getLevel())) + return; BlockState blockState = te.getBlockState(); FlywheelTileEntity wte = (FlywheelTileEntity) te; - float speed = wte.visualSpeed.get(partialTicks) * 3 / 10f; + float speed = wte.visualSpeed.getValue(partialTicks) * 3 / 10f; float angle = wte.angle + speed * partialTicks; VertexConsumer vb = buffer.getBuffer(RenderType.solid()); - - if (FlywheelBlock.isConnected(blockState)) { - Direction connection = FlywheelBlock.getConnection(blockState); - light = LevelRenderer.getLightColor(te.getLevel(), blockState, te.getBlockPos() - .relative(connection)); - float rotation = - connection.getAxis() == Axis.X ^ connection.getAxisDirection() == AxisDirection.NEGATIVE ? -angle - : angle; - boolean flip = blockState.getValue(FlywheelBlock.CONNECTION) == ConnectionState.LEFT; - - transformConnector( - rotateToFacing(CachedBufferer.partial(AllBlockPartials.FLYWHEEL_UPPER_ROTATING, blockState), connection), true, true, - rotation, flip).light(light) - .renderInto(ms, vb); - transformConnector( - rotateToFacing(CachedBufferer.partial(AllBlockPartials.FLYWHEEL_LOWER_ROTATING, blockState), connection), false, true, - rotation, flip).light(light) - .renderInto(ms, vb); - - transformConnector(rotateToFacing(CachedBufferer.partial(AllBlockPartials.FLYWHEEL_UPPER_SLIDING, blockState), connection), - true, false, rotation, flip).light(light) - .renderInto(ms, vb); - transformConnector(rotateToFacing(CachedBufferer.partial(AllBlockPartials.FLYWHEEL_LOWER_SLIDING, blockState), connection), - false, false, rotation, flip).light(light) - .renderInto(ms, vb); - } - renderFlywheel(te, ms, light, blockState, angle, vb); } - private void renderFlywheel(KineticTileEntity te, PoseStack ms, int light, BlockState blockState, float angle, VertexConsumer vb) { - BlockState referenceState = blockState.rotate(Rotation.CLOCKWISE_90); - Direction facing = referenceState.getValue(BlockStateProperties.HORIZONTAL_FACING); - SuperByteBuffer wheel = CachedBufferer.partialFacing(AllBlockPartials.FLYWHEEL, referenceState, facing); - kineticRotationTransform(wheel, te, blockState.getValue(HORIZONTAL_FACING) - .getAxis(), AngleHelper.rad(angle), light); + private void renderFlywheel(KineticTileEntity te, PoseStack ms, int light, BlockState blockState, float angle, + VertexConsumer vb) { + SuperByteBuffer wheel = CachedBufferer.block(blockState); + kineticRotationTransform(wheel, te, getRotationAxisOf(te), AngleHelper.rad(angle), light); wheel.renderInto(ms, vb); } @Override - protected SuperByteBuffer getRotatedModel(KineticTileEntity te, BlockState state) { - return CachedBufferer.partialFacing(AllBlockPartials.SHAFT_HALF, state, state - .getValue(BlockStateProperties.HORIZONTAL_FACING) - .getOpposite()); - } - - protected SuperByteBuffer transformConnector(SuperByteBuffer buffer, boolean upper, boolean rotating, float angle, - boolean flip) { - - float shift = upper ? 1 / 4f : -1 / 8f; - float offset = upper ? 1 / 4f : 1 / 4f; - float radians = (float) (angle / 180 * Math.PI); - float shifting = Mth.sin(radians) * shift + offset; - - float maxAngle = upper ? -5 : -15; - float minAngle = upper ? -45 : 5; - float barAngle = 0; - - if (rotating) - barAngle = Mth.lerp((Mth.sin((float) (radians + Math.PI / 2)) + 1) / 2, minAngle, maxAngle); - - float pivotX = (upper ? 8f : 3f) / 16; - float pivotY = (upper ? 8f : 2f) / 16; - float pivotZ = (upper ? 23f : 21.5f) / 16f; - - buffer.translate(pivotX, pivotY, pivotZ + shifting); - if (rotating) - buffer.rotate(Direction.EAST, AngleHelper.rad(barAngle)); - buffer.translate(-pivotX, -pivotY, -pivotZ); - - if (flip && !upper) - buffer.translate(9 / 16f, 0, 0); - - return buffer; - } - - protected SuperByteBuffer rotateToFacing(SuperByteBuffer buffer, Direction facing) { - buffer.rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing))); - return buffer; + protected BlockState getRenderedBlockState(KineticTileEntity te) { + return shaft(getRotationAxisOf(te)); } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java index 057b629e2..dc9700099 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/FlywheelTileEntity.java @@ -1,7 +1,8 @@ package com.simibubi.create.content.contraptions.components.flywheel; -import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity; -import com.simibubi.create.foundation.utility.animation.InterpolatedChasingValue; +import com.simibubi.create.content.contraptions.base.KineticTileEntity; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; @@ -9,46 +10,15 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; -public class FlywheelTileEntity extends GeneratingKineticTileEntity { +public class FlywheelTileEntity extends KineticTileEntity { - private float generatedCapacity; - private float generatedSpeed; - private int stoppingCooldown; - - // Client - InterpolatedChasingValue visualSpeed = new InterpolatedChasingValue(); + LerpedFloat visualSpeed = LerpedFloat.linear(); float angle; public FlywheelTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { super(type, pos, state); } - public void setRotation(float speed, float capacity) { - if (generatedSpeed != speed || generatedCapacity != capacity) { - - if (speed == 0) { - if (stoppingCooldown == 0) - stoppingCooldown = 40; - return; - } - - stoppingCooldown = 0; - generatedSpeed = speed; - generatedCapacity = capacity; - updateGeneratedRotation(); - } - } - - @Override - public float getGeneratedSpeed() { - return convertToDirection(generatedSpeed, getBlockState().getValue(FlywheelBlock.HORIZONTAL_FACING)); - } - - @Override - public float calculateAddedStressCapacity() { - return lastCapacityProvided = generatedCapacity; - } - @Override protected AABB createRenderBoundingBox() { return super.createRenderBoundingBox().inflate(2); @@ -56,51 +26,27 @@ public class FlywheelTileEntity extends GeneratingKineticTileEntity { @Override public void write(CompoundTag compound, boolean clientPacket) { - compound.putFloat("GeneratedSpeed", generatedSpeed); - compound.putFloat("GeneratedCapacity", generatedCapacity); - compound.putInt("Cooldown", stoppingCooldown); super.write(compound, clientPacket); } @Override protected void read(CompoundTag compound, boolean clientPacket) { - generatedSpeed = compound.getFloat("GeneratedSpeed"); - generatedCapacity = compound.getFloat("GeneratedCapacity"); - stoppingCooldown = compound.getInt("Cooldown"); super.read(compound, clientPacket); if (clientPacket) - visualSpeed.withSpeed(1 / 32f) - .target(getGeneratedSpeed()); + visualSpeed.chase(getGeneratedSpeed(), 1 / 64f, Chaser.EXP); } @Override public void tick() { super.tick(); - if (level.isClientSide) { - float targetSpeed = isVirtual() ? speed : getGeneratedSpeed(); - visualSpeed.target(targetSpeed); - visualSpeed.tick(); - angle += visualSpeed.value * 3 / 10f; - angle %= 360; - return; - } - - /* - * After getting moved by pistons the generatedSpeed attribute reads 16 but the - * actual speed stays at 0, if it happens update rotation - */ - if (getGeneratedSpeed() != 0 && getSpeed() == 0) - updateGeneratedRotation(); - - if (stoppingCooldown == 0) + if (!level.isClientSide) return; - stoppingCooldown--; - if (stoppingCooldown == 0) { - generatedCapacity = 0; - generatedSpeed = 0; - updateGeneratedRotation(); - } + float targetSpeed = getSpeed(); + visualSpeed.updateChaseTarget(targetSpeed); + visualSpeed.tickChaser(); + angle += visualSpeed.getValue() * 3 / 10f; + angle %= 360; } } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineBlock.java deleted file mode 100644 index c3eb5bdfc..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineBlock.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.simibubi.create.content.contraptions.components.flywheel.engine; - -import javax.annotation.Nullable; - -import com.jozufozu.flywheel.core.PartialModel; -import com.simibubi.create.content.contraptions.wrench.IWrenchable; -import com.simibubi.create.foundation.utility.Iterate; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelReader; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.HorizontalDirectionalBlock; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.block.state.StateDefinition.Builder; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; - -public abstract class EngineBlock extends HorizontalDirectionalBlock implements IWrenchable { - - protected EngineBlock(Properties builder) { - super(builder); - } - - @Override - public boolean canSurvive(BlockState state, LevelReader worldIn, BlockPos pos) { - return isValidPosition(state, worldIn, pos, state.getValue(FACING)); - } - - @Override - public InteractionResult onWrenched(BlockState state, UseOnContext context) { - return InteractionResult.FAIL; - } - - @Override - public BlockState getStateForPlacement(BlockPlaceContext context) { - Direction facing = context.getClickedFace(); - return defaultBlockState().setValue(FACING, - facing.getAxis().isVertical() ? context.getHorizontalDirection().getOpposite() : facing); - } - - @Override - protected void createBlockStateDefinition(Builder builder) { - super.createBlockStateDefinition(builder.add(FACING)); - } - - @Override - public void neighborChanged(BlockState state, Level worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, - boolean isMoving) { - if (worldIn.isClientSide) - return; - - if (fromPos.equals(getBaseBlockPos(state, pos))) { - if (!canSurvive(state, worldIn, pos)) { - worldIn.destroyBlock(pos, true); - return; - } - } - } - - private boolean isValidPosition(BlockState state, BlockGetter world, BlockPos pos, Direction facing) { - BlockPos baseBlockPos = getBaseBlockPos(state, pos); - if (!isValidBaseBlock(world.getBlockState(baseBlockPos), world, pos)) - return false; - for (Direction otherFacing : Iterate.horizontalDirections) { - if (otherFacing == facing) - continue; - BlockPos otherPos = baseBlockPos.relative(otherFacing); - BlockState otherState = world.getBlockState(otherPos); - if (otherState.getBlock() instanceof EngineBlock - && getBaseBlockPos(otherState, otherPos).equals(baseBlockPos)) - return false; - } - - return true; - } - - public static BlockPos getBaseBlockPos(BlockState state, BlockPos pos) { - return pos.relative(state.getValue(FACING).getOpposite()); - } - - @Nullable - @OnlyIn(Dist.CLIENT) - public abstract PartialModel getFrameModel(); - - protected abstract boolean isValidBaseBlock(BlockState baseBlock, BlockGetter world, BlockPos pos); - -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineInstance.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineInstance.java deleted file mode 100644 index 2cd886817..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineInstance.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.simibubi.create.content.contraptions.components.flywheel.engine; - -import com.jozufozu.flywheel.api.MaterialManager; -import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance; -import com.jozufozu.flywheel.core.PartialModel; -import com.jozufozu.flywheel.core.materials.model.ModelData; -import com.simibubi.create.foundation.utility.AngleHelper; - -import net.minecraft.core.Direction; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.state.properties.BlockStateProperties; - -public class EngineInstance extends BlockEntityInstance { - - protected ModelData frame; - - public EngineInstance(MaterialManager modelManager, EngineTileEntity tile) { - super(modelManager, tile); - - Block block = blockState - .getBlock(); - if (!(block instanceof EngineBlock engineBlock)) - return; - - PartialModel frame = engineBlock.getFrameModel(); - - Direction facing = blockState.getValue(BlockStateProperties.HORIZONTAL_FACING); - - this.frame = getTransformMaterial().getModel(frame, blockState).createInstance(); - - float angle = AngleHelper.rad(AngleHelper.horizontalAngle(facing)); - - this.frame.loadIdentity() - .translate(getInstancePosition()) - .nudge(pos.hashCode()) - .centre() - .rotate(Direction.UP, angle) - .unCentre() - .translate(0, 0, -1); - } - - @Override - public void remove() { - frame.delete(); - } - - @Override - public void updateLight() { - relight(pos, frame); - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineRenderer.java deleted file mode 100644 index 64984443a..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineRenderer.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.simibubi.create.content.contraptions.components.flywheel.engine; - -import com.jozufozu.flywheel.backend.Backend; -import com.jozufozu.flywheel.core.PartialModel; -import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.foundation.render.CachedBufferer; -import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer; -import com.simibubi.create.foundation.utility.AngleHelper; - -import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; -import net.minecraft.core.Direction; -import net.minecraft.world.level.block.Block; - -public class EngineRenderer extends SafeTileEntityRenderer { - - public EngineRenderer(BlockEntityRendererProvider.Context context) { - } - - @Override - protected void renderSafe(T te, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, - int overlay) { - - if (Backend.canUseInstancing(te.getLevel())) return; - - Block block = te.getBlockState() - .getBlock(); - if (block instanceof EngineBlock) { - EngineBlock engineBlock = (EngineBlock) block; - PartialModel frame = engineBlock.getFrameModel(); - if (frame != null) { - Direction facing = te.getBlockState() - .getValue(EngineBlock.FACING); - float angle = AngleHelper.rad(AngleHelper.horizontalAngle(facing)); - CachedBufferer.partial(frame, te.getBlockState()) - .rotateCentered(Direction.UP, angle) - .translate(0, 0, -1) - .light(light) - .renderInto(ms, buffer.getBuffer(RenderType.solid())); - } - } - } - -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineTileEntity.java deleted file mode 100644 index ad23ca72d..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/EngineTileEntity.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.simibubi.create.content.contraptions.components.flywheel.engine; - -import java.util.List; - -import com.simibubi.create.AllBlocks; -import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlock; -import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity; -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; - -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.world.level.block.entity.BlockEntity; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.AABB; - -public class EngineTileEntity extends SmartTileEntity { - - public float appliedCapacity; - public float appliedSpeed; - protected FlywheelTileEntity poweredWheel; - - public EngineTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { - super(type, pos, state); - } - - @Override - public void addBehaviours(List behaviours) { - } - - @Override - protected AABB createRenderBoundingBox() { - return super.createRenderBoundingBox().inflate(1.5f); - } - - @Override - public void lazyTick() { - super.lazyTick(); - if (level.isClientSide) - return; - if (poweredWheel != null && poweredWheel.isRemoved()) - poweredWheel = null; - if (poweredWheel == null) - attachWheel(); - } - - public void attachWheel() { - Direction engineFacing = getBlockState().getValue(EngineBlock.FACING); - BlockPos wheelPos = worldPosition.relative(engineFacing, 2); - BlockState wheelState = level.getBlockState(wheelPos); - if (!AllBlocks.FLYWHEEL.has(wheelState)) - return; - Direction wheelFacing = wheelState.getValue(FlywheelBlock.HORIZONTAL_FACING); - if (wheelFacing.getAxis() != engineFacing.getClockWise().getAxis()) - return; - if (FlywheelBlock.isConnected(wheelState) - && FlywheelBlock.getConnection(wheelState) != engineFacing.getOpposite()) - return; - BlockEntity te = level.getBlockEntity(wheelPos); - if (te.isRemoved()) - return; - if (te instanceof FlywheelTileEntity) { - if (!FlywheelBlock.isConnected(wheelState)) - FlywheelBlock.setConnection(level, te.getBlockPos(), te.getBlockState(), engineFacing.getOpposite()); - poweredWheel = (FlywheelTileEntity) te; - refreshWheelSpeed(); - } - } - - public void detachWheel() { - if (poweredWheel == null || poweredWheel.isRemoved()) - return; - poweredWheel.setRotation(0, 0); - FlywheelBlock.setConnection(level, poweredWheel.getBlockPos(), poweredWheel.getBlockState(), null); - poweredWheel = null; - } - - @Override - public void setRemoved() { - super.setRemoved(); - } - - @Override - protected void setRemovedNotDueToChunkUnload() { - detachWheel(); - super.setRemovedNotDueToChunkUnload(); - } - - protected void refreshWheelSpeed() { - if (poweredWheel == null) - return; - poweredWheel.setRotation(appliedSpeed, appliedCapacity); - } - - -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineBlock.java deleted file mode 100644 index be69f1a3e..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineBlock.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.simibubi.create.content.contraptions.components.flywheel.engine; - -import com.jozufozu.flywheel.core.PartialModel; -import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllShapes; -import com.simibubi.create.AllTileEntities; -import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.BlockGetter; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.AbstractFurnaceBlock; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.phys.shapes.CollisionContext; -import net.minecraft.world.phys.shapes.VoxelShape; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.event.entity.player.PlayerInteractEvent.RightClickBlock; -import net.minecraftforge.eventbus.api.Event.Result; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod.EventBusSubscriber; - -@EventBusSubscriber -public class FurnaceEngineBlock extends EngineBlock implements ITE { - - public FurnaceEngineBlock(Properties properties) { - super(properties); - } - - @Override - protected boolean isValidBaseBlock(BlockState baseBlock, BlockGetter world, BlockPos pos) { - return FurnaceEngineInteractions.getHandler(baseBlock).getHeatSource(baseBlock).isValid(); - } - - @Override - public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { - return AllShapes.FURNACE_ENGINE.get(state.getValue(FACING)); - } - - @Override - @OnlyIn(Dist.CLIENT) - public PartialModel getFrameModel() { - return AllBlockPartials.FURNACE_GENERATOR_FRAME; - } - - @Override - public void neighborChanged(BlockState state, Level worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, - boolean isMoving) { - super.neighborChanged(state, worldIn, pos, blockIn, fromPos, isMoving); - if (worldIn instanceof WrappedWorld) - return; - if (worldIn.isClientSide) - return; - - if (fromPos.equals(getBaseBlockPos(state, pos))) - if (canSurvive(state, worldIn, pos)) - withTileEntityDo(worldIn, pos, FurnaceEngineTileEntity::updateFurnace); - } - - @SubscribeEvent - public static void usingFurnaceEngineOnFurnacePreventsGUI(RightClickBlock event) { - ItemStack item = event.getItemStack(); - if (!(item.getItem() instanceof BlockItem blockItem)) - return; - if (blockItem.getBlock() != AllBlocks.FURNACE_ENGINE.get()) - return; - BlockState state = event.getWorld().getBlockState(event.getPos()); - if (event.getFace().getAxis().isVertical()) - return; - if (state.getBlock() instanceof AbstractFurnaceBlock) - event.setUseBlock(Result.DENY); - } - - @Override - public Class getTileEntityClass() { - return FurnaceEngineTileEntity.class; - } - - @Override - public BlockEntityType getTileEntityType() { - return AllTileEntities.FURNACE_ENGINE.get(); - } - - -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineInteractions.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineInteractions.java deleted file mode 100644 index a03e1e772..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineInteractions.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.simibubi.create.content.contraptions.components.flywheel.engine; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Function; - -import net.minecraft.world.level.block.AbstractFurnaceBlock; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.registries.IRegistryDelegate; - -/** - * Example: - * - *
- * {@code
- * FurnaceEngineInteractions.registerHandler(Blocks.REDSTONE_LAMP.delegate, FurnaceEngineInteractions.InteractionHandler.of(
- * 	s -> s.getBlock() instanceof RedstoneLampBlock && s.hasProperty(RedstoneLampBlock.LIT) ? 
- * 		(s.getValue(RedstoneLampBlock.LIT) ? HeatSource.ACTIVE : HeatSource.VALID) : HeatSource.EMPTY, s -> 1.5f));
- * }
- * 
- */ -public class FurnaceEngineInteractions { - - private static final Map, InteractionHandler> HANDLERS = new HashMap<>(); - private static final InteractionHandler DEFAULT_HANDLER = new InteractionHandler() {}; - - public static void registerHandler(IRegistryDelegate block, InteractionHandler handler) { - HANDLERS.put(block, handler); - } - - public static InteractionHandler getHandler(IRegistryDelegate delegate) { - return HANDLERS.getOrDefault(delegate, DEFAULT_HANDLER); - } - - public static InteractionHandler getHandler(BlockState state) { - return getHandler(state.getBlock().delegate); - } - - public static void registerDefaults() { - registerHandler(Blocks.BLAST_FURNACE.delegate, InteractionHandler.ofCustomSpeedModifier(state -> 2f)); - } - - public interface InteractionHandler { - default HeatSource getHeatSource(BlockState state) { - if (state.getBlock() instanceof AbstractFurnaceBlock && state.hasProperty(AbstractFurnaceBlock.LIT)) { - if (state.getValue(AbstractFurnaceBlock.LIT)) { - return HeatSource.ACTIVE; - } else { - return HeatSource.VALID; - } - } - return HeatSource.EMPTY; - } - - default float getSpeedModifier(BlockState state) { - return 1f; - }; - - static InteractionHandler of(Function heatSourceFunc, Function speedModifierFunc) { - return new InteractionHandler() { - @Override - public HeatSource getHeatSource(BlockState state) { - return heatSourceFunc.apply(state); - } - - @Override - public float getSpeedModifier(BlockState state) { - return speedModifierFunc.apply(state); - } - }; - } - - static InteractionHandler ofCustomHeatSource(Function heatSourceFunc) { - return new InteractionHandler() { - @Override - public HeatSource getHeatSource(BlockState state) { - return heatSourceFunc.apply(state); - } - }; - } - - static InteractionHandler ofCustomSpeedModifier(Function speedModifierFunc) { - return new InteractionHandler() { - @Override - public float getSpeedModifier(BlockState state) { - return speedModifierFunc.apply(state); - } - }; - } - } - - public enum HeatSource { - EMPTY, - VALID, - ACTIVE; - - public boolean isEmpty() { - return this == EMPTY; - } - - public boolean isValid() { - return this != EMPTY; - } - - public boolean isActive() { - return this == ACTIVE; - } - } -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java deleted file mode 100644 index 6e68f475e..000000000 --- a/src/main/java/com/simibubi/create/content/contraptions/components/flywheel/engine/FurnaceEngineTileEntity.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.simibubi.create.content.contraptions.components.flywheel.engine; - -import com.simibubi.create.AllBlocks; -import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineInteractions.HeatSource; -import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineInteractions.InteractionHandler; -import com.simibubi.create.foundation.block.BlockStressValues; - -import net.minecraft.core.BlockPos; -import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraft.world.level.block.state.BlockState; - -public class FurnaceEngineTileEntity extends EngineTileEntity { - - public FurnaceEngineTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { - super(type, pos, state); - } - - @Override - public void lazyTick() { - updateFurnace(); - super.lazyTick(); - } - - public void updateFurnace() { - BlockState state = level.getBlockState(EngineBlock.getBaseBlockPos(getBlockState(), worldPosition)); - InteractionHandler handler = FurnaceEngineInteractions.getHandler(state); - HeatSource heatSource = handler.getHeatSource(state); - if (heatSource.isEmpty()) - return; - - float modifier = handler.getSpeedModifier(state); - boolean active = heatSource.isActive(); - float speed = active ? 16 * modifier : 0; - float capacity = - (float) (active ? BlockStressValues.getCapacity(AllBlocks.FURNACE_ENGINE.get()) - : 0); - - appliedCapacity = capacity; - appliedSpeed = speed; - refreshWheelSpeed(); - } - -} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementChecks.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementChecks.java index a25aa31cc..b65997686 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementChecks.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementChecks.java @@ -11,7 +11,6 @@ import com.simibubi.create.content.contraptions.components.actors.PloughBlock; import com.simibubi.create.content.contraptions.components.actors.PortableStorageInterfaceBlock; import com.simibubi.create.content.contraptions.components.crank.HandCrankBlock; import com.simibubi.create.content.contraptions.components.fan.NozzleBlock; -import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineBlock; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkBearingBlock; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkBearingTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingBlock; @@ -322,9 +321,6 @@ public class BlockMovementChecks { if (block instanceof NozzleBlock) return direction == state.getValue(NozzleBlock.FACING) .getOpposite(); - if (block instanceof EngineBlock) - return direction == state.getValue(EngineBlock.FACING) - .getOpposite(); if (block instanceof BellBlock) { BellAttachType attachment = state.getValue(BlockStateProperties.BELL_ATTACHMENT); if (attachment == BellAttachType.FLOOR) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/BoilerData.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/BoilerData.java index f24a482b2..39f799f93 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/BoilerData.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/tank/BoilerData.java @@ -90,7 +90,7 @@ public class BoilerData { } public int getMaxHeatLevelForBoilerSize(int boilerSize) { - return boilerSize / 4; + return (int) Math.min(18, boilerSize / 4); } public int getMaxHeatLevelForWaterSupply() { @@ -182,7 +182,7 @@ public class BoilerData { c.append(bars(min > 0 ? 1 : 0, ChatFormatting.GREEN)); c.append(bars(Math.max(0, level - min), ChatFormatting.DARK_GREEN)); c.append(bars(Math.max(0, max - level), ChatFormatting.DARK_RED)); - c.append(bars(Math.max(0, 18 - max), ChatFormatting.DARK_GRAY)); + c.append(bars(Math.max(0, Math.min(18 - max, ((max / 5 + 1) * 5) - max)), ChatFormatting.DARK_GRAY)); return c; } diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java index 09b4cec8d..d4d0e27cc 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java @@ -489,10 +489,10 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE kineticStats = ItemDescription.getKineticStats(item.getBlock()); if (!kineticStats.isEmpty()) { event.getToolTip() diff --git a/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java b/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java index a2c901d35..e6b8798ff 100644 --- a/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java +++ b/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java @@ -329,11 +329,6 @@ public class AllAdvancements implements DataProvider { .addCriterion("0", AllTriggers.FLYWHEEL.instance()) .save(t, id + ":flywheel"); - Advancement overstress_flywheel = - advancement("overstress_flywheel", AllBlocks.FURNACE_ENGINE.get(), TaskType.CHALLENGE).parent(flywheel) - .addCriterion("0", AllTriggers.OVERSTRESS_FLYWHEEL.instance()) - .save(t, id + ":overstress_flywheel"); - Advancement clockwork_bearing = advancement("clockwork_bearing", AllBlocks.CLOCKWORK_BEARING.get(), TaskType.NORMAL) .parent(brass_casing) diff --git a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java index 9bc519da4..1b4129644 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CKinetics.java +++ b/src/main/java/com/simibubi/create/foundation/config/CKinetics.java @@ -55,7 +55,7 @@ public class CKinetics extends ConfigBase { f(4, 0, 4096, "mediumStressImpact", Comments.su, Comments.mediumStressImpact); public final ConfigFloat highStressImpact = f(8, 0, 65535, "highStressImpact", Comments.su, Comments.highStressImpact); public final ConfigFloat mediumCapacity = f(128, 0, 4096, "mediumCapacity", Comments.su, Comments.mediumCapacity); - public final ConfigFloat highCapacity = f(512, 0, 65535, "highCapacity", Comments.su, Comments.highCapacity); + public final ConfigFloat highCapacity = f(1024, 0, 65535, "highCapacity", Comments.su, Comments.highCapacity); @Override public String getName() { diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java index e83a40bdb..91cc006c3 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java @@ -62,15 +62,6 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider { .patternLine("LRSSS") .patternLine("CC ")), - FURNACE_ENGINE = create(AllBlocks.FURNACE_ENGINE::get).returns(1) - .recipe(b -> b.key('P', Ingredient.of(I.brassSheet())) - .key('B', Ingredient.of(I.brass())) - .key('I', Ingredient.of(Blocks.PISTON, Blocks.STICKY_PISTON)) - .key('C', I.brassCasing()) - .patternLine("PPB") - .patternLine("PCI") - .patternLine("PPB")), - FLYWHEEL = create(AllBlocks.FLYWHEEL::get).returns(1) .recipe(b -> b.key('B', Ingredient.of(I.brass())) .key('C', I.brassCasing()) diff --git a/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java b/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java index 47992e3c7..f70a4d121 100644 --- a/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java +++ b/src/main/java/com/simibubi/create/foundation/item/ItemDescription.java @@ -24,8 +24,6 @@ import java.util.List; import com.simibubi.create.content.contraptions.base.IRotate; import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel; import com.simibubi.create.content.contraptions.base.IRotate.StressImpact; -import com.simibubi.create.content.contraptions.components.fan.EncasedFanBlock; -import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineBlock; import com.simibubi.create.content.contraptions.components.waterwheel.WaterWheelBlock; import com.simibubi.create.content.contraptions.goggles.GogglesItem; import com.simibubi.create.foundation.block.BlockStressValues; @@ -101,27 +99,28 @@ public class ItemDescription { showStressImpact = !((IRotate) block).hideStressImpact(); } - boolean hasSpeedRequirement = minimumRequiredSpeedLevel != SpeedLevel.NONE && minimumRequiredSpeedLevel != SpeedLevel.SLOW; +// boolean hasSpeedRequirement = +// minimumRequiredSpeedLevel != SpeedLevel.NONE && minimumRequiredSpeedLevel != SpeedLevel.SLOW; boolean hasStressImpact = StressImpact.isEnabled() && showStressImpact && BlockStressValues.getImpact(block) > 0; boolean hasStressCapacity = StressImpact.isEnabled() && BlockStressValues.hasCapacity(block); - if (hasSpeedRequirement) { - int index = minimumRequiredSpeedLevel.ordinal(); - MutableComponent level = - new TextComponent(makeProgressBar(3, index)).withStyle(minimumRequiredSpeedLevel.getTextColor()); - - if (hasGoggles) - level.append(String.valueOf(minimumRequiredSpeedLevel.getSpeedValue())) - .append(rpmUnit) - .append("+"); - else - level.append(Lang.translate("tooltip.speedRequirement." + Lang.asId(minimumRequiredSpeedLevel.name()))); - - list.add(Lang.translate("tooltip.speedRequirement") - .withStyle(GRAY)); - list.add(level); - } +// if (hasSpeedRequirement) { +// int index = minimumRequiredSpeedLevel.ordinal(); +// MutableComponent level = +// new TextComponent(makeProgressBar(3, index)).withStyle(minimumRequiredSpeedLevel.getTextColor()); +// +// if (hasGoggles) +// level.append(String.valueOf(minimumRequiredSpeedLevel.getSpeedValue())) +// .append(rpmUnit) +// .append("+"); +// else +// level.append(Lang.translate("tooltip.speedRequirement." + Lang.asId(minimumRequiredSpeedLevel.name()))); +// +// list.add(Lang.translate("tooltip.speedRequirement") +// .withStyle(GRAY)); +// list.add(level); +// } if (hasStressImpact) { double impact = BlockStressValues.getImpact(block); @@ -144,11 +143,13 @@ public class ItemDescription { if (hasStressCapacity) { double capacity = BlockStressValues.getCapacity(block); - StressImpact impactId = capacity >= config.highCapacity.get() ? StressImpact.LOW - : (capacity >= config.mediumCapacity.get() ? StressImpact.MEDIUM : StressImpact.HIGH); + StressImpact impactId = capacity >= config.highCapacity.get() ? StressImpact.HIGH + : (capacity >= config.mediumCapacity.get() ? StressImpact.MEDIUM : StressImpact.LOW); + StressImpact opposite = StressImpact.values()[2 - impactId.ordinal()]; + int index = StressImpact.values().length - 2 - impactId.ordinal(); MutableComponent level = - new TextComponent(makeProgressBar(3, index + 1)).withStyle(impactId.getAbsoluteColor()); + new TextComponent(makeProgressBar(3, impactId.ordinal() + 1)).withStyle(opposite.getAbsoluteColor()); if (hasGoggles) level.append(capacity + "x ") @@ -307,15 +308,6 @@ public class ItemDescription { value = (speedmod + baseSpeed) + "-" + (baseSpeed + (speedmod * 3)); } - else if (block instanceof EncasedFanBlock) - value = AllConfigs.SERVER.kinetics.generatingFanSpeed.get() - .toString(); - - else if (block instanceof FurnaceEngineBlock) { - int baseSpeed = AllConfigs.SERVER.kinetics.furnaceEngineSpeed.get(); - value = baseSpeed + "-" + (baseSpeed * 2); - } - return !value.equals("") ? Lang.translate("tooltip.generationSpeed", value, unitRPM) : TextComponent.EMPTY.plainCopy(); } diff --git a/src/main/java/com/simibubi/create/foundation/ponder/content/FanScenes.java b/src/main/java/com/simibubi/create/foundation/ponder/content/FanScenes.java index 65d69a398..fb01d35ad 100644 --- a/src/main/java/com/simibubi/create/foundation/ponder/content/FanScenes.java +++ b/src/main/java/com/simibubi/create/foundation/ponder/content/FanScenes.java @@ -269,37 +269,4 @@ public class FanScenes { } - public static void source(SceneBuilder scene, SceneBuildingUtil util) { - scene.title("fan_source", "Generating Rotational Force using Encased Fans"); - scene.configureBasePlate(0, 0, 5); - scene.world.showSection(util.select.layer(0), Direction.UP); - scene.idle(5); - scene.world.showSection(util.select.layer(1), Direction.DOWN); - scene.idle(10); - scene.world.showSection(util.select.layersFrom(2), Direction.DOWN); - scene.idle(10); - BlockPos rightFan = util.grid.at(1, 2, 2); - scene.overlay.showText(70) - .text("Fans facing down into a source of heat can provide Rotational Force") - .placeNearTarget() - .pointAt(util.vector.blockSurface(rightFan, Direction.WEST)); - scene.idle(80); - scene.addKeyframe(); - - for (BlockPos pos : new BlockPos[] { rightFan, util.grid.at(3, 2, 2) }) { - scene.idle(10); - scene.world.toggleRedstonePower(util.select.position(pos.north())); - scene.effects.indicateRedstone(pos.north()); - scene.world.setKineticSpeed(util.select.fromTo(pos, pos.above()), 4); - scene.effects.rotationSpeedIndicator(pos.above()); - } - - scene.overlay.showText(90) - .text("When given a Redstone Signal, the Fans will start providing power") - .colored(PonderPalette.RED) - .placeNearTarget() - .pointAt(util.vector.blockSurface(rightFan, Direction.WEST)); - scene.markAsFinished(); - } - } 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 63dc72f73..9c66f5413 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 @@ -971,94 +971,6 @@ public class KineticsScenes { scene.world.setKineticSpeed(outputKinetics, 0); } - public static void furnaceEngine(SceneBuilder scene, SceneBuildingUtil util) { - furnaceEngine(scene, util, false); - } - - public static void flywheel(SceneBuilder scene, SceneBuildingUtil util) { - furnaceEngine(scene, util, true); - } - - private static void furnaceEngine(SceneBuilder scene, SceneBuildingUtil util, boolean flywheel) { - scene.title(flywheel ? "flywheel" : "furnace_engine", - "Generating Rotational Force using the " + (flywheel ? "Flywheel" : "Furnace Engine")); - scene.configureBasePlate(0, 0, 6); - scene.world.showSection(util.select.layer(0), Direction.UP); - - BlockPos furnacePos = util.grid.at(4, 1, 3); - BlockPos cogPos = util.grid.at(1, 1, 2); - BlockPos gaugePos = util.grid.at(1, 1, 1); - - scene.idle(5); - Selection furnaceSelect = util.select.position(furnacePos); - scene.world.showSection(furnaceSelect, Direction.DOWN); - scene.idle(10); - scene.world.showSection(util.select.position(furnacePos.west()), Direction.DOWN); - scene.idle(10); - scene.world.showSection(util.select.position(furnacePos.west(3)), Direction.EAST); - scene.idle(10); - - String text = flywheel ? "Flywheels are required for generating rotational force with the Furnace Engine" - : "Furnace Engines generate Rotational Force while their attached Furnace is running"; - scene.overlay.showText(80) - .attachKeyFrame() - .placeNearTarget() - .pointAt(util.vector.topOf(furnacePos.west(flywheel ? 3 : 1))) - .text(text); - scene.idle(90); - - scene.overlay.showControls( - new InputWindowElement(util.vector.topOf(furnacePos), Pointing.DOWN).withItem(new ItemStack(Items.OAK_LOG)), - 30); - scene.idle(5); - scene.overlay - .showControls(new InputWindowElement(util.vector.blockSurface(furnacePos, Direction.NORTH), Pointing.RIGHT) - .withItem(new ItemStack(Items.COAL)), 30); - scene.idle(7); - scene.world.cycleBlockProperty(furnacePos, FurnaceBlock.LIT); - scene.effects.emitParticles(util.vector.of(4.5, 1.2, 2.9), Emitter.simple(ParticleTypes.LAVA, Vec3.ZERO), 4, 1); - scene.world.setKineticSpeed(util.select.fromTo(1, 1, 3, 1, 1, 1), 16); - scene.idle(40); - - scene.world.showSection(util.select.position(cogPos), Direction.SOUTH); - scene.idle(15); - scene.effects.rotationSpeedIndicator(cogPos); - scene.world.showSection(util.select.position(gaugePos), Direction.SOUTH); - scene.idle(15); - - scene.overlay.showText(80) - .attachKeyFrame() - .placeNearTarget() - .colored(PonderPalette.GREEN) - .pointAt(util.vector.blockSurface(gaugePos, Direction.WEST)) - .text("The provided Rotational Force has a very large stress capacity"); - scene.idle(90); - - ElementLink engine = - scene.world.makeSectionIndependent(util.select.fromTo(3, 1, 3, 1, 1, 1)); - scene.world.moveSection(engine, util.vector.of(0, 1, 0), 15); - scene.idle(10); - scene.world.hideSection(furnaceSelect, Direction.NORTH); - scene.idle(15); - scene.world.setBlock(furnacePos, Blocks.BLAST_FURNACE.defaultBlockState() - .setValue(FurnaceBlock.FACING, Direction.NORTH) - .setValue(FurnaceBlock.LIT, true), false); - scene.world.showSection(furnaceSelect, Direction.NORTH); - scene.idle(10); - scene.world.moveSection(engine, util.vector.of(0, -1, 0), 15); - scene.idle(10); - scene.world.setKineticSpeed(util.select.fromTo(1, 1, 3, 1, 1, 1), 32); - scene.idle(5); - scene.effects.rotationSpeedIndicator(cogPos); - - scene.overlay.showText(80) - .placeNearTarget() - .colored(PonderPalette.MEDIUM) - .pointAt(util.vector.topOf(furnacePos.west())) - .text("Using a Blast Furnace will double the efficiency of the Engine"); - - } - public static void speedController(SceneBuilder scene, SceneBuildingUtil util) { scene.title("rotation_speed_controller", "Using the Rotational Speed Controller"); scene.configureBasePlate(0, 0, 5); 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 419c543c1..7aeff3816 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 @@ -65,8 +65,7 @@ public class PonderIndex { HELPER.forComponents(AllBlocks.ENCASED_FAN) .addStoryBoard("fan/direction", FanScenes::direction, PonderTag.KINETIC_APPLIANCES) - .addStoryBoard("fan/processing", FanScenes::processing) - .addStoryBoard("fan/source", FanScenes::source, PonderTag.KINETIC_SOURCES); + .addStoryBoard("fan/processing", FanScenes::processing); HELPER.addStoryBoard(AllBlocks.CREATIVE_MOTOR, "creative_motor", KineticsScenes::creativeMotor, PonderTag.KINETIC_SOURCES); @@ -84,10 +83,6 @@ public class PonderIndex { HELPER.forComponents(AllBlocks.ENCASED_CHAIN_DRIVE, AllBlocks.ADJUSTABLE_CHAIN_GEARSHIFT) .addStoryBoard("chain_drive/gearshift", ChainDriveScenes::adjustableChainGearshift); - HELPER.forComponents(AllBlocks.FURNACE_ENGINE) - .addStoryBoard("furnace_engine", KineticsScenes::furnaceEngine); - HELPER.forComponents(AllBlocks.FLYWHEEL) - .addStoryBoard("furnace_engine", KineticsScenes::flywheel); HELPER.forComponents(AllBlocks.ROTATION_SPEED_CONTROLLER) .addStoryBoard("speed_controller", KineticsScenes::speedController); @@ -328,10 +323,8 @@ public class PonderIndex { .add(AllBlocks.HAND_CRANK) .add(AllBlocks.COPPER_VALVE_HANDLE) .add(AllBlocks.WATER_WHEEL) - .add(AllBlocks.ENCASED_FAN) .add(AllBlocks.WINDMILL_BEARING) - .add(AllBlocks.FURNACE_ENGINE) - .add(AllBlocks.FLYWHEEL) + .add(AllBlocks.STEAM_ENGINE) .add(AllBlocks.CREATIVE_MOTOR); PonderRegistry.TAGS.forTag(PonderTag.KINETIC_APPLIANCES) diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/RemoveTileEntityPacket.java b/src/main/java/com/simibubi/create/foundation/tileEntity/RemoveTileEntityPacket.java index a12f2958c..cd883c34b 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/RemoveTileEntityPacket.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/RemoveTileEntityPacket.java @@ -10,7 +10,7 @@ public class RemoveTileEntityPacket extends TileEntityDataPacketUMafdusJu6II-U19?|I(ydCqhGI+$@^*Y*2-uit+CuKS3swV9;EN(mSYCP_6n zv4{S{=RV>Kp>KY8_!tZ(;T`VaB(SH2z_~mQi|q%(1z}te4u-N>Fj(l5oCJ1oFG=da z?5G@nLBMmK^0nbc$?2)lz4mq1j$u{!?uR^!Of4D11;Uy*rv%?SAKf?eX=-NK?$YR_zP(;rT*;0UjqcIyKMy%SFUAe^J~9HkmQK&? zUpYKpAAfKtdY?=BwuXqbaHQO)@%!D2^Xq{mpV}1n{(<6$@tUuu@zcvcyqfksaea5S z%_D`wGN_e_s;E86EDC;LLc4Fz0=HUaCAssKiN37!q%v` zN>XIF%(7{`=x6I)t9I~>KC$~y$>)2j;=8h^WtgA4BjocYi|_iPm$eAikMmx2p>t(F za6LBfz?44Nxgn+QlEQ>yDt7S3`6g~#nCD~N;x~y;1I`a{MPx5--@qT=HN~y6sJS=2 zEL-T(4b9D0 zi&#lYW+NUf+|66Zy-bbOLQrqYU1_m5M^i1dHJ6vh86S7%)sf@f_&RA72#qstQQ8Ih zZ+#7wGcpr>uM`wkWk#P-;t<#5x9?o4AN=M@pGWwhzhTO>+WH?-DSDSbs(WW>BK38H=m0V$<>G6P%OCfjwr*JJb2o9+ zchMytB1-Y_$9_XS9bxGwI;_H53MF>^a#&Y==hdn@re$ZXmx+|!Iu}2v`ffvPM0sPy zR1tR+*?Y`r(gyA&SImi>SzgqWO4vFSDft?n&c3{{VDFgg&LF?XWd*gOV!lW6HYapG zQhJ+T(q?wkbdnvIkGgSr*@92kz)XsYONGBBEq^rK@A21zxG4K zY5YzbuYp4KWqPH#;_$vIvX*wnq)K^y&Ye~owchSQ|D84MbzVTkHdnq&wDiJ&KGz?a4~h%Wog@N6W)z`H3H2=phoQ70Vv>@3Xpn@=kZw%$*aT z`O;n5$Wp)QP@jzbMI^TM`bIrCr|DsQRjCECTJ7W^Lv>;!`~=*#v@;j;@h7jCYuDr! ztZ5+AihBG5Fg?b;3WUz+5Z!%|ZKDY+m)VbJTd+n}+%2`@_bm3kfA#QG(o`(LXxEx# z>h!hdc>cbpu}=nUrQ5`cVjoneo-PtNq^1w)xR-zCZe@B^-E#MceCvo+d`~jc**G1# ze9;3pngV=DbWog1gxBKY2kqqu*#nuVt5Zv`*e7)=gYN}f4=CF#P>M0$zH)1iU6SIk zg4)vq1}$cr9XDNHP@IKOOWrHI$~i?@1J6|^n5pL+{7G~1^6PY})X;5j;D+>V_4QKY zt{KwOi?>Le>*rY^C$-kOJ*rKmn;RNfUwsTyI$U6BAyTKBH@H^KZc)2s+Z)(2%r+*- zkhfB=xVX&Ds<7LltV`vUQ;F+#jR2bz63=u-+0&>-@bZyP-8DF#%{3R7fn5JbKDPPJE#Ugp@uB7|HkTH}lG`9!z= z=BO~??7FO~g9)8p*1ZRhy-m@&+ENh)dJce>xs7&+F z;<~p|RIevP9VfeA*&8Ej7LMG%+>#e{QD)a;O@_xK@}wL=qSMH}p%A^}vHg`(w^Jl7 zRg=1|k91wXw|&d~b;*jJ?&awAeVv=7*ssOSjXyD)RcyJ1ALXR8V{>6q5)vv`t{slh zcz8~Fq9!{gtNYpAR*dk*SWaURTSg;1#7wk(7b!kz$L$vTq2LwAT75F|sVSo_Cq{dY z_Pd;L{wZ~>!_pl28;i|9t~eevp{7lctf-^P+GqS9k^iHY{)BqS>r9(EG7Xg1QpG8wB23mxi#jV zQG^s-I3!C3rjq8a*^_4O?^D+*yMA15#gpgKj+LiR7v9{Bb7wSIjOtesb!9}V)Wc3>hiChHTAMRdo0iceLt^i z?~5^eobi+8rmYW?@5Y$=6K2mu_iV=}+&7EgqI9WOd(%P3BvRt4l%HJus^qqZ2kuv^ z@2xQkCHwISw=u+Bx3bIHHgy%V`tPyn`C34GuhXvKx4I=SN514`eJnE>JW}AvbCVg6 z&1vzEa+p={da0;EPLc;&O=9_pA;%}KXY8tQ7&Vg{dUWY1^Nz+!>tiC^@XX{lo$_z? zuc5YVadzEU9%Z8AucnDhRGJMBbDmW(j-FB56zp;iaXRPP^Jb3y3sQFbksHk)wjWaN zOnXT!ilA?b*=yG#kz;GYvR1lZag(@w$k(6Ln^gy z5i(GaXGhy|)-g^cAu!{^p_H{EcGYBfWYWs%o~~+jS=?Za+L=C+xHRGLdg0W-b)c^6 z$ErZ7)e~PX1r6GLjvjON{URbquu-fFNtA)XgbuQejcuvM#=rEOP^Wor=LvoDazlm4 zo=hOhLFFC%rF0s_S$cWk>9z7@Mr@t@x1PK=t8i>{dpBj#j(z(Lj&2oO;pML4Cc1G% ztfIM=+H7j^Nmo1n@cZLGt3I1~7Jp|LmS#u0s+a(CXvEmRPe^FYiE_U#-tx{ErY3_O zHwj0JG`$a6x~gaRf?oZdp{C}nUaN&uCNIgEO7ia)zHi9P;6Kxp$~&1Zogy2fB-r@U z>{`8UX`n7;-AKcY6Vyi8Lq{svYOmIYaPswullrf*JS%T zORHjPnu7F>+`$;TRNoce?fx?}orOu7duA1HwLJOaBa-l0z2sRt!pv}%zzytf@6~_K z6I0mHqG8NaHvrOXVb7ZSlX&;<13%@xp2!J0{zwdNT;g(1NJ?sNE&{wBare%hJkD%; z{`91XW;E}}YweS{Fqr&lHgpMava+NwIR3gcCWj8{hWc}%O9Bk0XAsJzF?>M*oDO=i z1N0HYcS;d(Hd7zrh_^ynag9N5ws|-Y+!Ai>zzFwckeLXB4H9~x6bQf{6wu(I{(b>` zN~k_!9+v_=&rKr{@Oct}uRg-b$`)?S;el|RE>0H(n1-^0F^CNka6KNAMX@*8^bG4ckyL1agY?{e@Rpt~5-9^`X^cnr`q7z_}o z{kSRDFNpu+oMGWs|40ygVc2mMB$xs`tr1lsO9{%@#%vDdsT^LC|}a2P>zn^H~m z5p(iVm>dS1N%{JSA!CUoGzy^M2qXYUBai_)1`h%RCKJO1(Ks9pkNW|N8o(FO0vO;N z6a=ozhHx-w0)~iZp#d5J`ohtOG=PK$u>h9Nz~UJg=oyXu0m6pIhBATX_oGyEP)rDl zK%2kBI*TX^S@}B;fyt^DF6hl#M(=2#4ou z!?U6LfDFMOVMJceGOQ1h?m0)`(ghrVBpu$*OKJNo;MX7 zK3@hXG{#r+^J&2#bKV7z9ltIyylDYmAXIO^CEG9a?B5Aw0**u=;mJ6Fj>ACFM@Beqy!=o5D7KTLxFf^ zasNa0@D6C=yn495Lp=-f{F}@fr4B}V6aF;G?s;?vHs%V#Goix90fYV{)WGyZ2hXZjqCYgl+usDzb;BW*eOo=QUfPylQg~70} z1mf3L;jao#f&)}n(9qdH{5#acqiAR*os0sABouVofmjqkLX*(|8Du~WARQ#p@PFaC zhX+v5!2r3AM8SMN81#^HH;Z3RdA+&b+scaaV;`V5*PBzQa}C&*ATHOB4f1~5AN|WM8?BIovR)d-WFBgarKI_P;~;6~U6t00a1(KN9^%lCNg@;Q|K9 z{B;hx*g^M1x9$iE!2jmYx325Ixdj~l&nAD$zWLjbNwj` z{3+spqU$d+m&C8Hn!y0*eMboNB6)`y)dYG8y^y}y%mg+&_nTUB=@c}xh->c5hrt%h z&V7VniRTocNihM{%2e#NsHl{<0-{Ss8wOi|rkZSYa4N5i-^@|kDp$Q*_Fb;mLd{(n z)`^){+Von}4dsGF#8rr>yW%oqMH@ z^ctUGi3v37c3)dplK&3r7Q8i;aYzvLDnfBRh+xW{=cT6WIt+KT5 z3At4>H9m|8(-1Xu=ZKhmV)Ku>5v;=WL=3?k(~ImA3Mp|;uIStSPO6GOPqc1UR(^Lg zYe)p;ps>KxvD-^`0K8~`6tY!4gi(|ktI22S-*xkCH-_y^QH+PJ_@XYH&hf8QH%REc zpk|m$k`r1!-rb2t@2m!SM#AZ``xdCLmtCZxYS4^wObO)P*!&cOKJNv)v}4%1EG3kI z@MK(3w{?9slHigx?c2shdg>bbhn4##o;1vPT~d)Bqb+}^bL%9!jg_$X{)+z5;dgcS zkp}s-pet;N+{tW#x_^f6yF$}8q10x-(YN*2183TE%m>#W3GMqCdEgdS=6dOQVYh|T zGvzDJSQy>aZM}NpvkMR%94ekZ)%!HX$<1Q|R&aNTLt!vt*SbB(((siONB(D+A5m)O z?mRU?9z%bn*vR8gTBl@@Q%0vp4))iqK%5nuOc8k=eS6@TmG-kTwViea5*TTDgTy0) z!1YU4vnZ}-)C~-}MkDmfT_=YYd$D^^{iBmT0!~~WB(e9^a>Lb%J;Ps;Gb!1QiCr^8 zWt`bS*H z+N@efZMjl#i?rw9!Gru-zEK<)Rf&iLS4SZ(XiXbjIjRu3?9J>$!m%xtyD!ErvXjeQ zx41g+hQE??9D2$A!NI{1+ouy>I*wdW5Ng{Q=vMzlZO{4hDv^f{mCIbdYJoT*obD3 zTU&TkEm>JvS6NwBR#sG2R&q=$Pft%wOiWEoNlZ&iNl8gZMn*(LL_$JBKR-WJIv+hf zJxwzgNiP*hFBLl{6FMdmIVKV)C@4525jP_cHX{%;APq4d3ojfBG8zgl911TN2`&~0 ztUa2{00001bW%=J06^y0W&i*IlSxEDRCoae!BK7-M-Tc+V z+kjw463OLGyDAsV-L!+b1AyPg}_TnGQ`bN5bnG>{O8!Ee`tZ6Qrdf(~L-&b+fzs}^J-Xl3Btv*~9}x6_VMP$tTd zZ$Xq#pQsyjTruSWOgrX2cL4B9E|}AH!0Cs=Qm|mG_taPSRjVkUKp^;Q$jb-&T*onu zQY3)Z26whs20$WWY3yTJyp6~3<@WmhMRi29C1L>2$L4W5AQ8G(RJTzP!{2z@AVT-5 zNVg(5pbiUxt_Tz`!A7L%m57C*yLrHNK!+}(VJvv+|JU3-DbOKAGr-)A=?M!>Cmo1E zE$+7OAaHEy(9JA4wc~yV3XbT|M^JoX_W+uei0(C_jWKYl0njbFX-6=A!A}6`Mj*Od f0DucHVF!NznJK>%HPDH!00000NkvXXu0mjf!Py1F diff --git a/src/main/resources/assets/create/textures/block/marker_flag.png b/src/main/resources/assets/create/textures/block/marker_flag.png deleted file mode 100644 index c3a12462de4e6a665dd049bd2a64ff3fe1ccb845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFpO1)z4*}Q$iB}dyzkZ diff --git a/src/main/resources/assets/create/textures/block/sealer.png b/src/main/resources/assets/create/textures/block/sealer.png deleted file mode 100644 index bfb4eea630ac374c37a561cb117c8118a3368c1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 421 zcmV;W0b2fvP)?Uzjn}%2$g6$Fs(i($dc&r8!lie?q;|lgb-bT(x}9&g zon*I~Y_^$ev6X49m0_ccS(}AbnS4%@c1T`eU|CyRSy@?ESy@z8R!vMvOiN2iNl8aX zM@L3RLPA14Jv|Z`khlN<00DGTPE!Ct=GbNc007-dL_t(|0j0sqN(501MbUkdSk-MK zA~^N`e@{@6dgMk>bd)=CE&feRJz*5V+#_ea1yh!##F!c`d>B)f4i-$+hhP{}2lo%V zjH%`3JWDiQz(J=Yg3bo(4xnq$TAgb;WCe}b{1d>J^kBvT21cU*2L^WpofQ~BBBPV| zfC#68Mv{X70YS^19|~H@ub>eQh;K&YOb}E-1)U9*JPoZuL-OKM8=``SUCuk(S&ujg z8hU3tbm+2a2^!~Xu$PUjgGN$XjjF5160` z8^=Bn>CsBZp4jXh`k0yI&I&DVVWWl6KVmB?7; zeqUe4;VpH#c0VyB$0HtA^1ce97^)zOG5dT84I!)NOK1pLr~dA=!apbXKj^Q{3|IJS z;sfx3dvJEclh;|ygzW%qM25?Lds;qnmq~v(S@F0x`1{NS-#wR@yuY8`#y2k3EBtal z-CenGWwzIMU48iP@vkSzfZMc?x^U%YTF6ZDfbG+bGl{FS)5rUbGr4R4 kkV7{B$YCA<0003019eyDuiqFw2LJ#707*qoM6N<$f)b(|)c^nh