From 651e06a70a4ef19fd3c4fdc632de7d3faf1f9242 Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Sun, 13 Sep 2020 00:59:14 +0200 Subject: [PATCH] Down the Refactor rabbit hole - Reworked tileentity behaviours for inventory interaction - Deployers no longer actively pull items from other inventories - Some more work on basins - Added a new inventory type wrapping an itemstack handler that automatically syncs the tile entity. It also implements IInventory for recipe shenanigans - Held items of a deployer can now only be extracted by other blocks if it does not match the filter - Fixed excess items not able to be extracted from deployers - Removed some things - Funnels no longer actively transpose items between chutes and inventories unless they are vertical - Chutes can now active pull and insert items from/to inventories above/below them --- src/generated/resources/.cache/cache | 57 +--- .../blockstates/andesite_chute_funnel.json | 34 -- .../blockstates/brass_chute_funnel.json | 64 ---- .../assets/create/blockstates/extractor.json | 34 -- .../create/blockstates/linked_extractor.json | 34 -- .../create/blockstates/linked_transposer.json | 34 -- .../assets/create/blockstates/packager.json | 11 - .../assets/create/blockstates/transposer.json | 34 -- .../blockstates/vertical_extractor.json | 72 ---- .../vertical_linked_extractor.json | 72 ---- .../vertical_linked_transposer.json | 80 ----- .../blockstates/vertical_transposer.json | 80 ----- .../resources/assets/create/lang/en_ud.json | 11 - .../resources/assets/create/lang/en_us.json | 47 --- .../assets/create/lang/unfinished/de_de.json | 49 +-- .../assets/create/lang/unfinished/fr_fr.json | 49 +-- .../assets/create/lang/unfinished/it_it.json | 49 +-- .../assets/create/lang/unfinished/ja_jp.json | 49 +-- .../assets/create/lang/unfinished/ko_kr.json | 49 +-- .../assets/create/lang/unfinished/nl_nl.json | 49 +-- .../assets/create/lang/unfinished/pt_br.json | 49 +-- .../assets/create/lang/unfinished/ru_ru.json | 49 +-- .../assets/create/lang/unfinished/zh_cn.json | 49 +-- .../block/andesite_chute_funnel_pull.json | 9 - .../block/andesite_chute_funnel_push.json | 9 - .../models/block/brass_chute_funnel_pull.json | 9 - .../brass_chute_funnel_pull_powered.json | 9 - .../models/block/brass_chute_funnel_push.json | 9 - .../brass_chute_funnel_push_powered.json | 9 - .../assets/create/models/item/extractor.json | 3 - .../create/models/item/linked_extractor.json | 3 - .../create/models/item/linked_transposer.json | 3 - .../assets/create/models/item/packager.json | 3 - .../assets/create/models/item/transposer.json | 3 - .../blocks/andesite_chute_funnel.json | 19 -- .../blocks/brass_chute_funnel.json | 19 -- .../create/loot_tables/blocks/extractor.json | 19 -- .../loot_tables/blocks/linked_extractor.json | 19 -- .../loot_tables/blocks/linked_transposer.json | 19 -- .../create/loot_tables/blocks/packager.json | 19 -- .../create/loot_tables/blocks/transposer.json | 19 -- .../blocks/vertical_extractor.json | 19 -- .../blocks/vertical_linked_extractor.json | 19 -- .../blocks/vertical_linked_transposer.json | 19 -- .../blocks/vertical_transposer.json | 19 -- .../data/create/tags/blocks/brittle.json | 4 - .../java/com/simibubi/create/AllBlocks.java | 138 +------- .../java/com/simibubi/create/AllShapes.java | 9 - .../com/simibubi/create/AllTileEntities.java | 51 +-- .../actors/StorageInterfaceMovement.java | 314 +++++++++--------- .../crafter/MechanicalCrafterTileEntity.java | 33 +- .../deployer/DeployerItemHandler.java | 41 ++- .../deployer/DeployerTileEntity.java | 96 +----- .../mixer/MechanicalMixerTileEntity.java | 21 +- .../components/mixer/MixingRecipe.java | 6 +- .../press/MechanicalPressTileEntity.java | 18 +- .../BlockMovementTraits.java | 7 - .../fluids/pipes/FluidPipeBlock.java | 4 +- .../contraptions/processing/BasinBlock.java | 10 +- .../processing/BasinInputInventory.java | 27 ++ .../processing/BasinOperatingTileEntity.java | 15 +- .../processing/BasinRenderer.java | 2 +- .../processing/BasinTileEntity.java | 137 +++----- .../BeltFunnelInteractionHandler.java | 6 +- .../block/AttachedLogisticalBlock.java | 124 ------- .../belts/BeltAttachableLogisticalBlock.java | 25 -- .../block/chute/ChuteTileEntity.java | 96 ++++-- .../block/extractor/ExtractorBlock.java | 127 ------- .../extractor/ExtractorMovementBehaviour.java | 65 ---- .../block/extractor/ExtractorSlots.java | 88 ----- .../block/extractor/ExtractorTileEntity.java | 133 -------- .../block/extractor/LinkedExtractorBlock.java | 88 ----- .../extractor/LinkedExtractorTileEntity.java | 45 --- .../extractor/VerticalExtractorGenerator.java | 37 --- .../funnel/AndesiteChuteFunnelBlock.java | 16 - .../block/funnel/AndesiteFunnelBlock.java | 7 - .../block/funnel/BrassChuteFunnelBlock.java | 16 - .../block/funnel/BrassFunnelBlock.java | 8 - .../block/funnel/ChuteFunnelBlock.java | 40 --- .../block/funnel/ChuteFunnelGenerator.java | 45 --- .../logistics/block/funnel/FunnelBlock.java | 21 +- .../funnel/FunnelFilterSlotPositioning.java | 5 - .../logistics/block/funnel/FunnelItem.java | 13 - .../block/funnel/FunnelTileEntity.java | 104 ++---- .../mechanicalArm/ArmInteractionPoint.java | 8 +- .../block/packager/PackagerBlock.java | 21 -- .../block/packager/PackagerRenderer.java | 33 -- .../block/packager/PackagerTileEntity.java | 13 - .../transposer/LinkedTransposerBlock.java | 47 --- .../LinkedTransposerTileEntity.java | 48 --- .../block/transposer/TransposerBlock.java | 145 -------- .../transposer/TransposerTileEntity.java | 97 ------ .../VerticalTransposerGenerator.java | 38 --- .../foundation/item/SmartInventory.java | 121 +++++++ .../tileEntity/SyncedTileEntity.java | 5 + .../inventory/AutoExtractingBehaviour.java | 99 ------ .../inventory/ExtractingBehaviour.java | 105 ------ .../inventory/InsertingBehaviour.java | 39 --- .../inventory/InvManipulationBehaviour.java | 169 ++++++++++ .../InventoryManagementBehaviour.java | 111 ------- .../SingleTargetAutoExtractingBehaviour.java | 66 ---- .../inventory/SynchronizedExtraction.java | 76 ----- .../assets/create/lang/default/tooltips.json | 36 -- .../models/block/chute_funnel/block.json | 248 -------------- .../models/block/extractor/horizontal.json | 116 ------- .../block/extractor/horizontal_linked.json | 120 ------- .../extractor/horizontal_linked_powered.json | 7 - .../block/extractor/horizontal_powered.json | 6 - .../models/block/extractor/vertical.json | 132 -------- .../block/extractor/vertical_linked.json | 173 ---------- .../extractor/vertical_linked_powered.json | 7 - .../block/extractor/vertical_powered.json | 6 - .../create/models/block/packager/block.json | 82 ----- .../create/models/block/packager/item.json | 169 ---------- .../create/models/block/packager/sealer.json | 53 --- .../block/portable_storage_interface.json | 66 ++-- .../rotation_speed_controller/block.json | 31 +- .../block/rotation_speed_controller/item.json | 17 +- .../create/models/block/transposer/block.json | 197 ----------- .../block/transposer/block_powered.json | 7 - .../block/transposer/horizontal_linked.json | 246 -------------- .../transposer/horizontal_linked_powered.json | 8 - .../block/transposer/vertical_linked.json | 249 -------------- .../transposer/vertical_linked_powered.json | 8 - .../create/textures/block/analog_lever.png | Bin 630 -> 634 bytes .../create/textures/block/extractor.png | Bin 597 -> 0 bytes .../textures/block/extractor_powered.png | Bin 648 -> 0 bytes .../create/textures/block/packager_top.png | Bin 363 -> 0 bytes .../create/textures/block/transposer.png | Bin 619 -> 0 bytes 129 files changed, 828 insertions(+), 5822 deletions(-) delete mode 100644 src/generated/resources/assets/create/blockstates/andesite_chute_funnel.json delete mode 100644 src/generated/resources/assets/create/blockstates/brass_chute_funnel.json delete mode 100644 src/generated/resources/assets/create/blockstates/extractor.json delete mode 100644 src/generated/resources/assets/create/blockstates/linked_extractor.json delete mode 100644 src/generated/resources/assets/create/blockstates/linked_transposer.json delete mode 100644 src/generated/resources/assets/create/blockstates/packager.json delete mode 100644 src/generated/resources/assets/create/blockstates/transposer.json delete mode 100644 src/generated/resources/assets/create/blockstates/vertical_extractor.json delete mode 100644 src/generated/resources/assets/create/blockstates/vertical_linked_extractor.json delete mode 100644 src/generated/resources/assets/create/blockstates/vertical_linked_transposer.json delete mode 100644 src/generated/resources/assets/create/blockstates/vertical_transposer.json delete mode 100644 src/generated/resources/assets/create/models/block/andesite_chute_funnel_pull.json delete mode 100644 src/generated/resources/assets/create/models/block/andesite_chute_funnel_push.json delete mode 100644 src/generated/resources/assets/create/models/block/brass_chute_funnel_pull.json delete mode 100644 src/generated/resources/assets/create/models/block/brass_chute_funnel_pull_powered.json delete mode 100644 src/generated/resources/assets/create/models/block/brass_chute_funnel_push.json delete mode 100644 src/generated/resources/assets/create/models/block/brass_chute_funnel_push_powered.json delete mode 100644 src/generated/resources/assets/create/models/item/extractor.json delete mode 100644 src/generated/resources/assets/create/models/item/linked_extractor.json delete mode 100644 src/generated/resources/assets/create/models/item/linked_transposer.json delete mode 100644 src/generated/resources/assets/create/models/item/packager.json delete mode 100644 src/generated/resources/assets/create/models/item/transposer.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/andesite_chute_funnel.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/brass_chute_funnel.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/extractor.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/linked_extractor.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/linked_transposer.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/packager.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/transposer.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/vertical_extractor.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/vertical_linked_extractor.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/vertical_linked_transposer.json delete mode 100644 src/generated/resources/data/create/loot_tables/blocks/vertical_transposer.json create mode 100644 src/main/java/com/simibubi/create/content/contraptions/processing/BasinInputInventory.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/AttachedLogisticalBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/belts/BeltAttachableLogisticalBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorMovementBehaviour.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorSlots.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorTileEntity.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/extractor/LinkedExtractorBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/extractor/LinkedExtractorTileEntity.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/extractor/VerticalExtractorGenerator.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/funnel/AndesiteChuteFunnelBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/funnel/BrassChuteFunnelBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/funnel/ChuteFunnelBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/funnel/ChuteFunnelGenerator.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerRenderer.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerTileEntity.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/transposer/LinkedTransposerBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/transposer/LinkedTransposerTileEntity.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/transposer/TransposerBlock.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/transposer/TransposerTileEntity.java delete mode 100644 src/main/java/com/simibubi/create/content/logistics/block/transposer/VerticalTransposerGenerator.java create mode 100644 src/main/java/com/simibubi/create/foundation/item/SmartInventory.java delete mode 100644 src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/AutoExtractingBehaviour.java delete mode 100644 src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/ExtractingBehaviour.java delete mode 100644 src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InsertingBehaviour.java create mode 100644 src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InvManipulationBehaviour.java delete mode 100644 src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InventoryManagementBehaviour.java delete mode 100644 src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/SingleTargetAutoExtractingBehaviour.java delete mode 100644 src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/SynchronizedExtraction.java delete mode 100644 src/main/resources/assets/create/models/block/chute_funnel/block.json delete mode 100644 src/main/resources/assets/create/models/block/extractor/horizontal.json delete mode 100644 src/main/resources/assets/create/models/block/extractor/horizontal_linked.json delete mode 100644 src/main/resources/assets/create/models/block/extractor/horizontal_linked_powered.json delete mode 100644 src/main/resources/assets/create/models/block/extractor/horizontal_powered.json delete mode 100644 src/main/resources/assets/create/models/block/extractor/vertical.json delete mode 100644 src/main/resources/assets/create/models/block/extractor/vertical_linked.json delete mode 100644 src/main/resources/assets/create/models/block/extractor/vertical_linked_powered.json delete mode 100644 src/main/resources/assets/create/models/block/extractor/vertical_powered.json delete mode 100644 src/main/resources/assets/create/models/block/packager/block.json delete mode 100644 src/main/resources/assets/create/models/block/packager/item.json delete mode 100644 src/main/resources/assets/create/models/block/packager/sealer.json delete mode 100644 src/main/resources/assets/create/models/block/transposer/block.json delete mode 100644 src/main/resources/assets/create/models/block/transposer/block_powered.json delete mode 100644 src/main/resources/assets/create/models/block/transposer/horizontal_linked.json delete mode 100644 src/main/resources/assets/create/models/block/transposer/horizontal_linked_powered.json delete mode 100644 src/main/resources/assets/create/models/block/transposer/vertical_linked.json delete mode 100644 src/main/resources/assets/create/models/block/transposer/vertical_linked_powered.json delete mode 100644 src/main/resources/assets/create/textures/block/extractor.png delete mode 100644 src/main/resources/assets/create/textures/block/extractor_powered.png delete mode 100644 src/main/resources/assets/create/textures/block/packager_top.png delete mode 100644 src/main/resources/assets/create/textures/block/transposer.png diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 15c1a03d0..610ff072e 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -11,7 +11,6 @@ aaad1fc11aae17e209b0c3fbc9977c724c50c1ef assets/create/blockstates/andesite_belt da63a8be3191d6d72afef6c79e3aea3f607631f9 assets/create/blockstates/andesite_bricks_stairs.json a579c40c43dc2174afb66f42d00d0c4a0efaaeee assets/create/blockstates/andesite_bricks_wall.json 9999a75c7766781eadb12510a09264600bc846e4 assets/create/blockstates/andesite_casing.json -7074f8af642b74edc26464bb627d919516c2de0a assets/create/blockstates/andesite_chute_funnel.json 3af4ea3c44b5ebc7e1e3fb73fb8356faf067a613 assets/create/blockstates/andesite_cobblestone.json 97adf53a7cb99d7652fb39adc957e9e34cbaca47 assets/create/blockstates/andesite_cobblestone_slab.json 96b5284693da168ab8e0809d86515b5f1a7e763f assets/create/blockstates/andesite_cobblestone_stairs.json @@ -30,7 +29,6 @@ cf9045eb16e5299a1d917c4cb536289f49411276 assets/create/blockstates/birch_window. fba967b1f6e44b34a9d9662e2fedfc13aad7f36c assets/create/blockstates/brass_belt_funnel.json 8b1dd00adcc7e74c5a9feed069e2610b15a338cb assets/create/blockstates/brass_block.json b8dd6e505943e06706d0718ece620ab3cf943650 assets/create/blockstates/brass_casing.json -e8583247cc7108c80320b739d7af121a890d79a8 assets/create/blockstates/brass_chute_funnel.json 3057e1121117c0cd651c288cd8e2d46bdf64afb1 assets/create/blockstates/brass_funnel.json 672eedcd3520c6d39603449165a23be9c612c620 assets/create/blockstates/brass_tunnel.json e81608346d43406ee72cae0f78b8bcfb37ba2d75 assets/create/blockstates/brown_seat.json @@ -93,7 +91,6 @@ f179202e59e449157f89efc37229b03bbfd391d7 assets/create/blockstates/dolomite_pill 7b2b836649e729feafa60972bf95e3afb2143131 assets/create/blockstates/encased_fan.json 656813b75dd3b901bf34f24df785e4b0fbe11aa6 assets/create/blockstates/encased_fluid_pipe.json e157d7f67b08493b71d7ffea8d622f4a64dbc155 assets/create/blockstates/encased_shaft.json -1442ff1a0e404f99263ba99d734da1dfed03d4e3 assets/create/blockstates/extractor.json a774e815376a67e2a2de44e39af0a1a0b4406932 assets/create/blockstates/fancy_andesite_bricks.json 180be26a75834cf9cdb881f969f77906e91cc36a assets/create/blockstates/fancy_andesite_bricks_slab.json d5d7762b80952052d0a7adf3081967cac3f3ba6c assets/create/blockstates/fancy_andesite_bricks_stairs.json @@ -190,8 +187,6 @@ e7c7b952137c4cb615988ea59b9f14303c9a4dfe assets/create/blockstates/limestone_bri 17c5a6c1dd094c9201ed90fdcebde620a8a39900 assets/create/blockstates/limestone_cobblestone_wall.json b7506b862d13b3f915c60d38bb7a20afc935f70a assets/create/blockstates/limestone_pillar.json 69790737767e06f000c7824749c46664a123160e assets/create/blockstates/linear_chassis.json -c793ab3aa6cf09d8d6d4136757629689f0365771 assets/create/blockstates/linked_extractor.json -c5422866667331f1d5cf6753c0889747ee02762b assets/create/blockstates/linked_transposer.json 84c494d24cc58af274fdd054896c680e8095d2d0 assets/create/blockstates/magenta_seat.json 3b3250d6e209403a93d025604a8081087965016e assets/create/blockstates/mechanical_arm.json ddcf4bb281e046fbb1026b8f46a2cf12448598df assets/create/blockstates/mechanical_bearing.json @@ -234,7 +229,6 @@ c46f0b62967cf483ec0720a9297c8ccc97f5547d assets/create/blockstates/overgrown_and 2398939c8be07cac0dcb7ea710eb98e74b408e0c assets/create/blockstates/overgrown_limestone.json fbb651b8e4a72bf0a17a6bfdbf4eef680e9d4a5c assets/create/blockstates/overgrown_scoria.json 9c8e210bdb29b2ab1535a25762498d7c03156444 assets/create/blockstates/overgrown_weathered_limestone.json -5ab323fefdbfff04aa5c224bf5f0237f0598b3b2 assets/create/blockstates/packager.json ab93ff18b747607dbc1d8d7311a2737e302b92d1 assets/create/blockstates/paved_andesite.json 89e88a0d2e7df66bac7ab11ac2c7b14812d8675f assets/create/blockstates/paved_andesite_slab.json f43d947077b3f4a11a9729c58709c56f09859da0 assets/create/blockstates/paved_andesite_stairs.json @@ -337,14 +331,9 @@ f385988cb6fa9c48b5d59a6942ec50ed2b60c8bf assets/create/blockstates/stockpile_swi e815bfd854c2653f10828bb11950f7fb991d7efc assets/create/blockstates/stressometer.json 8b0c2c7ac72529565b3339aa8df7565858100afa assets/create/blockstates/tiled_glass.json a2454400b1cf9889f70aebdc89c52a1be25f543c assets/create/blockstates/tiled_glass_pane.json -e122bf687d991dd2d7a05670039da7937f96ca05 assets/create/blockstates/transposer.json a8094531617e27a545c4815ab2062bf0ffca3633 assets/create/blockstates/turntable.json -d45450255fd7a64cfd2bd8856fd4cff01a49cc8d assets/create/blockstates/vertical_extractor.json 69dfe8afaa8eb6105dae9f76ab8b7847bf90b8c6 assets/create/blockstates/vertical_framed_glass.json c4db76b9d36cfb098df0d158cb6f8b82768ebe14 assets/create/blockstates/vertical_framed_glass_pane.json -0ecc57db2487ed6b370b9cc43d2a873c61d7c37e assets/create/blockstates/vertical_linked_extractor.json -751b99625aca1b4122a0333bfaf93325d37eb003 assets/create/blockstates/vertical_linked_transposer.json -02199afb5b6ebcbc8e11567df05f39eface39e39 assets/create/blockstates/vertical_transposer.json d995547bcd71603ba7378d8998098e462030bfd0 assets/create/blockstates/water_wheel.json f182669f7547964f9f2ef67916568556870def7b assets/create/blockstates/weathered_limestone.json 27e6740834c0f673acc3531371512daa6dcab025 assets/create/blockstates/weathered_limestone_bricks.json @@ -360,17 +349,17 @@ c77b46d8b459e5c7cc495393546f3fcca8a1fa1d assets/create/blockstates/weathered_lim a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -1fe3d6fb515b8951750daf6ff274006e14c96b32 assets/create/lang/en_ud.json -e4c4fa83b8549dec363bbda95fa9fda7b285de5c assets/create/lang/en_us.json -e1a6b606458028f5c3b4afdc0a9e0cbd22d9e779 assets/create/lang/unfinished/de_de.json -46c139da98fdee00d70a5fd893fc3eb4f03b8a0d assets/create/lang/unfinished/fr_fr.json -ac0103512dff6e125cfa0df5c9a55cceef33a1f9 assets/create/lang/unfinished/it_it.json -b22f04831c88799fcb69857ba16dbfa9df74aded assets/create/lang/unfinished/ja_jp.json -8f72c330dbb5eb2b4631ffdb169e2b4a5bd98695 assets/create/lang/unfinished/ko_kr.json -f7a3b075daf79ae600435c779a91c91a182771cd assets/create/lang/unfinished/nl_nl.json -e65a45f531b6ae7a0818503c335366abb7a9ce20 assets/create/lang/unfinished/pt_br.json -4251b8d5c5c45a162148776ccada3d7abeeb5bf1 assets/create/lang/unfinished/ru_ru.json -c8c10a94bca76ee411246e29dbebba530a7f995c assets/create/lang/unfinished/zh_cn.json +c87674f2935327f78657f1bb44b3b10b6697a548 assets/create/lang/en_ud.json +ec8fc3f55847ad667752fdc06fc8b5de75253cf4 assets/create/lang/en_us.json +bab998d2bbb0e24147e8dd34006bf94a4ad857e7 assets/create/lang/unfinished/de_de.json +e3e51ea8e3e540a4f363610195050b0bbe8b452d assets/create/lang/unfinished/fr_fr.json +b2bc925b69b276f03dbb30aa996e3b8677c9eb16 assets/create/lang/unfinished/it_it.json +272aa6f6567b451a5204283f580f642990c04ce0 assets/create/lang/unfinished/ja_jp.json +1e3115cbbdcb55dfa871ae31fc88cea78544fc5a assets/create/lang/unfinished/ko_kr.json +e470b095bfc10d3fa7141a4d8860eaf093be9e62 assets/create/lang/unfinished/nl_nl.json +1c3f2f8cf9d7d5280d7495da3b8c89481fd5dcee assets/create/lang/unfinished/pt_br.json +a49430d7b66c52cde1880ccb7fd6123fb5ab2b2b assets/create/lang/unfinished/ru_ru.json +5d569d86a3d8af114bb6b99a6410c3823d2191f8 assets/create/lang/unfinished/zh_cn.json 846200eb548d3bfa2e77b41039de159b4b6cfb45 assets/create/models/block/acacia_window.json 1930fa3a3c98d53dd19e4ee7f55bc27fd47aa281 assets/create/models/block/acacia_window_pane_noside.json 1763ea2c9b981d187f5031ba608f3d5d3be3986a assets/create/models/block/acacia_window_pane_noside_alt.json @@ -406,8 +395,6 @@ f1ba5c40d5e580d3c46d2eeab37b59263d0b0904 assets/create/models/block/andesite_bel f0a955282f7abd5ce0b412ec7b59024113ca970a assets/create/models/block/andesite_bricks_wall_post.json 0ed2fa65af49b5c92c4e5c688c155e37d3d6b118 assets/create/models/block/andesite_bricks_wall_side.json b9943c5585fc081385ea49a4199efeb6c7c22423 assets/create/models/block/andesite_casing.json -d89f1a04622290303729479ce5e19768f296a297 assets/create/models/block/andesite_chute_funnel_pull.json -911cd82e8716a076a7760534de845f60db3534fb assets/create/models/block/andesite_chute_funnel_push.json 77a045e855eb37d2da7ed8f7d27a85b9546c0ab8 assets/create/models/block/andesite_cobblestone.json 7d816d54c85bc7d0cc8db9c68abcba960daa7b43 assets/create/models/block/andesite_cobblestone_slab.json 5179ecd1f926bf3211a1a3f033dfd1d2368eeb20 assets/create/models/block/andesite_cobblestone_slab_top.json @@ -457,10 +444,6 @@ ee79efc65b05d953784b00e573d37602629eb9e8 assets/create/models/block/brass_belt_f 253e88f2c11006abdc87156dd409ed3944bb7295 assets/create/models/block/brass_belt_funnel_push_retracted.json 0934933df6bfbb19a1b14cd0e3cab2c18d5a3ebc assets/create/models/block/brass_block.json 166a5c053a81e6aadc24509ed24dc144a7255969 assets/create/models/block/brass_casing.json -8c42d09a18fb17fe846365138d0f0d58c6a3c05e assets/create/models/block/brass_chute_funnel_pull.json -7b3d2865ee7611940af017161aaabc7cb107225d assets/create/models/block/brass_chute_funnel_pull_powered.json -78122dd0f7b65bd071974030682fa484c31d7ba2 assets/create/models/block/brass_chute_funnel_push.json -7edf6b5c95f61071d8a9243a63e786765d6104a3 assets/create/models/block/brass_chute_funnel_push_powered.json 6c617fc504cb2259263d24fc56c4735e455aac6d assets/create/models/block/brass_funnel.json 2f152b82291b7fc994191b1ffb8ec6d65aec748b assets/create/models/block/brass_funnel_powered.json 520087db8d479c66f85f3483af813fb668f27503 assets/create/models/block/brass_tunnel/cross.json @@ -1126,7 +1109,6 @@ e974cd23a5456baef8b634f2d21fd8c3822931ab assets/create/models/item/dolomite_pill f2d6b88c3174de01e16da555236727efc33b490c assets/create/models/item/encased_belt.json 250bd0716cc1f04b03892ab74eb0b3a0f32a6158 assets/create/models/item/encased_fan.json 68833e2a7836c73776551565783a1d175b715c66 assets/create/models/item/extendo_grip.json -956646df2a75ed651eabb403a3f9e1024538cd56 assets/create/models/item/extractor.json efcbd30ad7a7658c02a3dc3de5fa0f21d7f49b54 assets/create/models/item/fancy_andesite_bricks.json 7ccd312084128c356307c7ca6e52c65d0a18907b assets/create/models/item/fancy_andesite_bricks_slab.json c8eee9d8df7af227eba051e4b9a7e48a79e682df assets/create/models/item/fancy_andesite_bricks_stairs.json @@ -1230,8 +1212,6 @@ ebdf23b99b7895e347c29057c8070a6e16e56beb assets/create/models/item/limestone_cob 8cd46904fd9709377d514e0faf9150ca317f6a9f assets/create/models/item/limestone_cobblestone_wall.json 8065de871ad2fbaed711735561b8ed91a2ce0004 assets/create/models/item/limestone_pillar.json d245aa4994ff197b1ffeb7980d05f96bd20cdeb3 assets/create/models/item/linear_chassis.json -eb0053df13e362e0a05be65252944f0c94eab3db assets/create/models/item/linked_extractor.json -0242f25a8eb02b25f8b03344a1dfaf9ad0ab192c assets/create/models/item/linked_transposer.json d912be3e87f2beaa8e22747f867739139667241b assets/create/models/item/magenta_seat.json 932facf4bf93b471e8630f4132a4284a9f4d0d39 assets/create/models/item/mechanical_arm.json 49dcc373c33f6fc3760add10eb51bd96cd4fd028 assets/create/models/item/mechanical_bearing.json @@ -1274,7 +1254,6 @@ e34c7bbdd4fcaa3a73c61584418bb159db49758b assets/create/models/item/overgrown_gra e73e4be7e7eafdf9635a3d72eb7fa05c2bc1e54b assets/create/models/item/overgrown_limestone.json a64a649428a2e130059f3f1f8de81b907621589f assets/create/models/item/overgrown_scoria.json 3354b93677c87bfc82807503c8d658fc6ab114e2 assets/create/models/item/overgrown_weathered_limestone.json -15baa926f7208040c437c920ae0c159a06057073 assets/create/models/item/packager.json 014530344c8b7e53531e3c09095b6ed4839d5ab8 assets/create/models/item/paved_andesite.json bd81aa53b83c2f9683c024989d0305807cf28f5a assets/create/models/item/paved_andesite_slab.json c61f409eb1a24cf76017b677579cb0423a1951c6 assets/create/models/item/paved_andesite_stairs.json @@ -1386,7 +1365,6 @@ bab8f78c319b2a79ed55c5d2a94b521ddaa44996 assets/create/models/item/stressometer. 29d571a061e3addf92ee51bfc55d96edc3a517a5 assets/create/models/item/super_glue.json b1d3d00ff05908feacad06a86800da96cc9bc65d assets/create/models/item/tiled_glass.json 8a2a81a8cbc52b6021e57107d79a32f73b82d8fe assets/create/models/item/tiled_glass_pane.json -a9f6592275a4c8592e3c88a95fbe88bd93de67c6 assets/create/models/item/transposer.json c081317f106a2b04700aafde12c57445844c20ab assets/create/models/item/tree_fertilizer.json fb24881c4e92bbb7ffa54a71e0af6b1c66d84829 assets/create/models/item/turntable.json 32f49b724af10c8d7e2ed5a3c82280e83b75f789 assets/create/models/item/vertical_framed_glass.json @@ -2018,7 +1996,6 @@ b67ea51eaed1e847317829636cbf5967522e73d1 data/create/loot_tables/blocks/andesite 0ba4528089294c5229e1904dc3191f604138cf8e data/create/loot_tables/blocks/andesite_bricks_stairs.json db2d27969cb53d9489e7c7e4bf60864fa89b29f4 data/create/loot_tables/blocks/andesite_bricks_wall.json cb36b039a511aca643fe674a63de8d6ad8478256 data/create/loot_tables/blocks/andesite_casing.json -d3202a337c15c8b8ec41fa5879bb94327bb75057 data/create/loot_tables/blocks/andesite_chute_funnel.json 906155b0d00438e695d34dd14b374d94e691460d data/create/loot_tables/blocks/andesite_cobblestone.json 6d2f1bd619b131803d5bc9e393a2c67e03c39ff6 data/create/loot_tables/blocks/andesite_cobblestone_slab.json 6b5393dab7d443da6d54debccbc8b060c6c9bdc7 data/create/loot_tables/blocks/andesite_cobblestone_stairs.json @@ -2037,7 +2014,6 @@ a2313c9b7d114396fca3c86a740d23fce3873679 data/create/loot_tables/blocks/blaze_bu 1dbc446abe190b2832b2ce7d52c2f2d2bdd45949 data/create/loot_tables/blocks/brass_belt_funnel.json 70d9d4def43d5b31fa7cdc5ca5002c71cf4a90b0 data/create/loot_tables/blocks/brass_block.json 8a14258ad5d79d9e4dc5a318905644b446196420 data/create/loot_tables/blocks/brass_casing.json -1dbc446abe190b2832b2ce7d52c2f2d2bdd45949 data/create/loot_tables/blocks/brass_chute_funnel.json 1dbc446abe190b2832b2ce7d52c2f2d2bdd45949 data/create/loot_tables/blocks/brass_funnel.json 6c8e784677d1a843b6c707484c79751acdb46ebc data/create/loot_tables/blocks/brass_tunnel.json d415862a0abe20e8c5c2c8125bb672065330a9bc data/create/loot_tables/blocks/brown_seat.json @@ -2100,7 +2076,6 @@ d5fc5b3dc612cd748117e9d8b0ecda76e73f4514 data/create/loot_tables/blocks/dolomite 9055d82b983b673e1638d17b712b9fcd1f5a52e6 data/create/loot_tables/blocks/encased_fan.json c8aa9bbed8fd703eb1853de0b7c9e04dffb7a511 data/create/loot_tables/blocks/encased_fluid_pipe.json b127cb6920e6d7d9c8b2402cb186402a9a8dd3fc data/create/loot_tables/blocks/encased_shaft.json -5a47c1535c866184b4ffca65763f5676f319e0aa data/create/loot_tables/blocks/extractor.json ddfc4764a6039d771e03af815ac4493da80d2e6b data/create/loot_tables/blocks/fancy_andesite_bricks.json 31f2e6932505c68b28e92221a37144f69161c376 data/create/loot_tables/blocks/fancy_andesite_bricks_slab.json 413c8bb80954679796cd9d18f808c28a7bdbe681 data/create/loot_tables/blocks/fancy_andesite_bricks_stairs.json @@ -2197,8 +2172,6 @@ cb315814960850b5080598b89ee94c833b5048f7 data/create/loot_tables/blocks/limeston 92fb16606f289ad33860270d098fad2522b24e09 data/create/loot_tables/blocks/limestone_cobblestone_wall.json 371115e5ceb08c07a9ab2371509960c31e0baa8a data/create/loot_tables/blocks/limestone_pillar.json aa751d2e8a7889907c08c4bec6f6ca266230b6d7 data/create/loot_tables/blocks/linear_chassis.json -dac789cf53b00eed34308848b5e267b7ccec090c data/create/loot_tables/blocks/linked_extractor.json -7af5a13c9e10903b11732fbc01ae3299328216f0 data/create/loot_tables/blocks/linked_transposer.json 9e5e017cd3b4f544f487a5ca22ef610a4addc8ec data/create/loot_tables/blocks/magenta_seat.json e64c32da44b7e92dbef36fcb448c42b9bd9ae47c data/create/loot_tables/blocks/mechanical_arm.json 90ddf7b5c3b61758a4ad12a1e6ef16fe6ebf7794 data/create/loot_tables/blocks/mechanical_bearing.json @@ -2241,7 +2214,6 @@ bab9f6fb35f2ba4aa45fd726a8e94f90ef155bfb data/create/loot_tables/blocks/overgrow 4b4acf9026d68de21b5804903556a505f913a778 data/create/loot_tables/blocks/overgrown_limestone.json e0fc59a8645dae8f87e62b34c08014077e14de66 data/create/loot_tables/blocks/overgrown_scoria.json 8af10a6b2d07ed1b84ce617502ad68044262e701 data/create/loot_tables/blocks/overgrown_weathered_limestone.json -131cb27de9d0b44d2ec335055558b8039d6d5fb9 data/create/loot_tables/blocks/packager.json fc529ec8d55abf361ba1b8c38875839530b082c6 data/create/loot_tables/blocks/paved_andesite.json 3658337cb8a5a6cdd7dd19dd8ac399b1397350d5 data/create/loot_tables/blocks/paved_andesite_slab.json 4dbc7c7537e680e4e7c8a5ba4e4ed394d788b10d data/create/loot_tables/blocks/paved_andesite_stairs.json @@ -2344,14 +2316,9 @@ ec2889e712702644092197a4b41a682fb953817d data/create/loot_tables/blocks/stockpil 3479775008a256bc35f98b31655975f7d5c836b2 data/create/loot_tables/blocks/stressometer.json 05e843ca6eb5e299bf41de123977a1045c120ad4 data/create/loot_tables/blocks/tiled_glass.json e999969f05d2625e61757aa82092d232b99f6e0a data/create/loot_tables/blocks/tiled_glass_pane.json -b201436ae6d2ad5a7d47dca0ee8c7016b4c28fa5 data/create/loot_tables/blocks/transposer.json 7b66ad2c48449bafd0cdbd086ac41218cb73a814 data/create/loot_tables/blocks/turntable.json -5a47c1535c866184b4ffca65763f5676f319e0aa data/create/loot_tables/blocks/vertical_extractor.json 028e293b5cd694017962f67dc80dba719f904e28 data/create/loot_tables/blocks/vertical_framed_glass.json d0156602dd5f4a274c293df67e19374820c72890 data/create/loot_tables/blocks/vertical_framed_glass_pane.json -dac789cf53b00eed34308848b5e267b7ccec090c data/create/loot_tables/blocks/vertical_linked_extractor.json -7af5a13c9e10903b11732fbc01ae3299328216f0 data/create/loot_tables/blocks/vertical_linked_transposer.json -b201436ae6d2ad5a7d47dca0ee8c7016b4c28fa5 data/create/loot_tables/blocks/vertical_transposer.json 2883c63ceb1273009dbf91cb0693756cadf79a1a data/create/loot_tables/blocks/water_wheel.json 611d6195db52c074de484ec52d7ac9eb96b4ff10 data/create/loot_tables/blocks/weathered_limestone.json c1f379baad36a20fc767be094db10480a0378184 data/create/loot_tables/blocks/weathered_limestone_bricks.json @@ -3064,7 +3031,7 @@ d3fdb8ece6cb072a93ddb64a0baad5ac952117a4 data/create/recipes/weathered_limestone 0f3c993eb6dd3f37953f304b8fad15bf60469ef4 data/create/recipes/weathered_limestone_cobblestone_wall_from_weathered_limestone_cobblestone_stonecutting.json 6eceb25fabbb6b389ca35de3b829ad061c9c456a data/create/recipes/weathered_limestone_pillar.json 11667414f73bc2d00bda7c5c1a7d2934bf6e9165 data/create/recipes/weathered_limestone_pillar_from_weathered_limestone_stonecutting.json -4ace4302e3f0ee8ca063c150a046deab06c52710 data/create/tags/blocks/brittle.json +10bed57f3eb989a643eb3609f177e30536f07965 data/create/tags/blocks/brittle.json 246ee2ec4e778e38a362f319506564886d4e0e76 data/create/tags/blocks/fan_heaters.json 798ef82869dbe22682121504a372e95607a785dc data/create/tags/blocks/fan_transparent.json 6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/blocks/seats.json diff --git a/src/generated/resources/assets/create/blockstates/andesite_chute_funnel.json b/src/generated/resources/assets/create/blockstates/andesite_chute_funnel.json deleted file mode 100644 index cea68cada..000000000 --- a/src/generated/resources/assets/create/blockstates/andesite_chute_funnel.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,pushing=false": { - "model": "create:block/andesite_chute_funnel_pull" - }, - "facing=south,pushing=false": { - "model": "create:block/andesite_chute_funnel_pull", - "y": 180 - }, - "facing=west,pushing=false": { - "model": "create:block/andesite_chute_funnel_pull", - "y": 270 - }, - "facing=east,pushing=false": { - "model": "create:block/andesite_chute_funnel_pull", - "y": 90 - }, - "facing=north,pushing=true": { - "model": "create:block/andesite_chute_funnel_push" - }, - "facing=south,pushing=true": { - "model": "create:block/andesite_chute_funnel_push", - "y": 180 - }, - "facing=west,pushing=true": { - "model": "create:block/andesite_chute_funnel_push", - "y": 270 - }, - "facing=east,pushing=true": { - "model": "create:block/andesite_chute_funnel_push", - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/brass_chute_funnel.json b/src/generated/resources/assets/create/blockstates/brass_chute_funnel.json deleted file mode 100644 index 0e5f38388..000000000 --- a/src/generated/resources/assets/create/blockstates/brass_chute_funnel.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "variants": { - "facing=north,powered=false,pushing=false": { - "model": "create:block/brass_chute_funnel_pull" - }, - "facing=south,powered=false,pushing=false": { - "model": "create:block/brass_chute_funnel_pull", - "y": 180 - }, - "facing=west,powered=false,pushing=false": { - "model": "create:block/brass_chute_funnel_pull", - "y": 270 - }, - "facing=east,powered=false,pushing=false": { - "model": "create:block/brass_chute_funnel_pull", - "y": 90 - }, - "facing=north,powered=true,pushing=false": { - "model": "create:block/brass_chute_funnel_pull_powered" - }, - "facing=south,powered=true,pushing=false": { - "model": "create:block/brass_chute_funnel_pull_powered", - "y": 180 - }, - "facing=west,powered=true,pushing=false": { - "model": "create:block/brass_chute_funnel_pull_powered", - "y": 270 - }, - "facing=east,powered=true,pushing=false": { - "model": "create:block/brass_chute_funnel_pull_powered", - "y": 90 - }, - "facing=north,powered=false,pushing=true": { - "model": "create:block/brass_chute_funnel_push" - }, - "facing=south,powered=false,pushing=true": { - "model": "create:block/brass_chute_funnel_push", - "y": 180 - }, - "facing=west,powered=false,pushing=true": { - "model": "create:block/brass_chute_funnel_push", - "y": 270 - }, - "facing=east,powered=false,pushing=true": { - "model": "create:block/brass_chute_funnel_push", - "y": 90 - }, - "facing=north,powered=true,pushing=true": { - "model": "create:block/brass_chute_funnel_push_powered" - }, - "facing=south,powered=true,pushing=true": { - "model": "create:block/brass_chute_funnel_push_powered", - "y": 180 - }, - "facing=west,powered=true,pushing=true": { - "model": "create:block/brass_chute_funnel_push_powered", - "y": 270 - }, - "facing=east,powered=true,pushing=true": { - "model": "create:block/brass_chute_funnel_push_powered", - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/extractor.json b/src/generated/resources/assets/create/blockstates/extractor.json deleted file mode 100644 index 54ff46fbc..000000000 --- a/src/generated/resources/assets/create/blockstates/extractor.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,powered=false": { - "model": "create:block/extractor/horizontal" - }, - "facing=south,powered=false": { - "model": "create:block/extractor/horizontal", - "y": 180 - }, - "facing=west,powered=false": { - "model": "create:block/extractor/horizontal", - "y": 270 - }, - "facing=east,powered=false": { - "model": "create:block/extractor/horizontal", - "y": 90 - }, - "facing=north,powered=true": { - "model": "create:block/extractor/horizontal_powered" - }, - "facing=south,powered=true": { - "model": "create:block/extractor/horizontal_powered", - "y": 180 - }, - "facing=west,powered=true": { - "model": "create:block/extractor/horizontal_powered", - "y": 270 - }, - "facing=east,powered=true": { - "model": "create:block/extractor/horizontal_powered", - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/linked_extractor.json b/src/generated/resources/assets/create/blockstates/linked_extractor.json deleted file mode 100644 index 98ae3be24..000000000 --- a/src/generated/resources/assets/create/blockstates/linked_extractor.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,powered=false": { - "model": "create:block/extractor/horizontal_linked" - }, - "facing=south,powered=false": { - "model": "create:block/extractor/horizontal_linked", - "y": 180 - }, - "facing=west,powered=false": { - "model": "create:block/extractor/horizontal_linked", - "y": 270 - }, - "facing=east,powered=false": { - "model": "create:block/extractor/horizontal_linked", - "y": 90 - }, - "facing=north,powered=true": { - "model": "create:block/extractor/horizontal_linked_powered" - }, - "facing=south,powered=true": { - "model": "create:block/extractor/horizontal_linked_powered", - "y": 180 - }, - "facing=west,powered=true": { - "model": "create:block/extractor/horizontal_linked_powered", - "y": 270 - }, - "facing=east,powered=true": { - "model": "create:block/extractor/horizontal_linked_powered", - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/linked_transposer.json b/src/generated/resources/assets/create/blockstates/linked_transposer.json deleted file mode 100644 index 1d9f3dd92..000000000 --- a/src/generated/resources/assets/create/blockstates/linked_transposer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,powered=false": { - "model": "create:block/transposer/horizontal_linked" - }, - "facing=south,powered=false": { - "model": "create:block/transposer/horizontal_linked", - "y": 180 - }, - "facing=west,powered=false": { - "model": "create:block/transposer/horizontal_linked", - "y": 270 - }, - "facing=east,powered=false": { - "model": "create:block/transposer/horizontal_linked", - "y": 90 - }, - "facing=north,powered=true": { - "model": "create:block/transposer/horizontal_linked_powered" - }, - "facing=south,powered=true": { - "model": "create:block/transposer/horizontal_linked_powered", - "y": 180 - }, - "facing=west,powered=true": { - "model": "create:block/transposer/horizontal_linked_powered", - "y": 270 - }, - "facing=east,powered=true": { - "model": "create:block/transposer/horizontal_linked_powered", - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/packager.json b/src/generated/resources/assets/create/blockstates/packager.json deleted file mode 100644 index 6236aa5cd..000000000 --- a/src/generated/resources/assets/create/blockstates/packager.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "variants": { - "axis=x": { - "model": "create:block/packager/block", - "y": 90 - }, - "axis=z": { - "model": "create:block/packager/block" - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/transposer.json b/src/generated/resources/assets/create/blockstates/transposer.json deleted file mode 100644 index eb3395290..000000000 --- a/src/generated/resources/assets/create/blockstates/transposer.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "variants": { - "facing=north,powered=false": { - "model": "create:block/transposer/block" - }, - "facing=south,powered=false": { - "model": "create:block/transposer/block", - "y": 180 - }, - "facing=west,powered=false": { - "model": "create:block/transposer/block", - "y": 270 - }, - "facing=east,powered=false": { - "model": "create:block/transposer/block", - "y": 90 - }, - "facing=north,powered=true": { - "model": "create:block/transposer/block_powered" - }, - "facing=south,powered=true": { - "model": "create:block/transposer/block_powered", - "y": 180 - }, - "facing=west,powered=true": { - "model": "create:block/transposer/block_powered", - "y": 270 - }, - "facing=east,powered=true": { - "model": "create:block/transposer/block_powered", - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/vertical_extractor.json b/src/generated/resources/assets/create/blockstates/vertical_extractor.json deleted file mode 100644 index 3f3455bb7..000000000 --- a/src/generated/resources/assets/create/blockstates/vertical_extractor.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "variants": { - "facing=north,powered=false,upward=false": { - "model": "create:block/extractor/vertical" - }, - "facing=south,powered=false,upward=false": { - "model": "create:block/extractor/vertical", - "y": 180 - }, - "facing=west,powered=false,upward=false": { - "model": "create:block/extractor/vertical", - "y": 270 - }, - "facing=east,powered=false,upward=false": { - "model": "create:block/extractor/vertical", - "y": 90 - }, - "facing=north,powered=true,upward=false": { - "model": "create:block/extractor/vertical_powered" - }, - "facing=south,powered=true,upward=false": { - "model": "create:block/extractor/vertical_powered", - "y": 180 - }, - "facing=west,powered=true,upward=false": { - "model": "create:block/extractor/vertical_powered", - "y": 270 - }, - "facing=east,powered=true,upward=false": { - "model": "create:block/extractor/vertical_powered", - "y": 90 - }, - "facing=north,powered=false,upward=true": { - "model": "create:block/extractor/vertical", - "x": 180, - "y": 180 - }, - "facing=south,powered=false,upward=true": { - "model": "create:block/extractor/vertical", - "x": 180 - }, - "facing=west,powered=false,upward=true": { - "model": "create:block/extractor/vertical", - "x": 180, - "y": 90 - }, - "facing=east,powered=false,upward=true": { - "model": "create:block/extractor/vertical", - "x": 180, - "y": 270 - }, - "facing=north,powered=true,upward=true": { - "model": "create:block/extractor/vertical_powered", - "x": 180, - "y": 180 - }, - "facing=south,powered=true,upward=true": { - "model": "create:block/extractor/vertical_powered", - "x": 180 - }, - "facing=west,powered=true,upward=true": { - "model": "create:block/extractor/vertical_powered", - "x": 180, - "y": 90 - }, - "facing=east,powered=true,upward=true": { - "model": "create:block/extractor/vertical_powered", - "x": 180, - "y": 270 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/vertical_linked_extractor.json b/src/generated/resources/assets/create/blockstates/vertical_linked_extractor.json deleted file mode 100644 index 5175ae7bc..000000000 --- a/src/generated/resources/assets/create/blockstates/vertical_linked_extractor.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "variants": { - "facing=north,powered=false,upward=false": { - "model": "create:block/extractor/vertical_linked" - }, - "facing=south,powered=false,upward=false": { - "model": "create:block/extractor/vertical_linked", - "y": 180 - }, - "facing=west,powered=false,upward=false": { - "model": "create:block/extractor/vertical_linked", - "y": 270 - }, - "facing=east,powered=false,upward=false": { - "model": "create:block/extractor/vertical_linked", - "y": 90 - }, - "facing=north,powered=true,upward=false": { - "model": "create:block/extractor/vertical_linked_powered" - }, - "facing=south,powered=true,upward=false": { - "model": "create:block/extractor/vertical_linked_powered", - "y": 180 - }, - "facing=west,powered=true,upward=false": { - "model": "create:block/extractor/vertical_linked_powered", - "y": 270 - }, - "facing=east,powered=true,upward=false": { - "model": "create:block/extractor/vertical_linked_powered", - "y": 90 - }, - "facing=north,powered=false,upward=true": { - "model": "create:block/extractor/vertical_linked", - "x": 180, - "y": 180 - }, - "facing=south,powered=false,upward=true": { - "model": "create:block/extractor/vertical_linked", - "x": 180 - }, - "facing=west,powered=false,upward=true": { - "model": "create:block/extractor/vertical_linked", - "x": 180, - "y": 90 - }, - "facing=east,powered=false,upward=true": { - "model": "create:block/extractor/vertical_linked", - "x": 180, - "y": 270 - }, - "facing=north,powered=true,upward=true": { - "model": "create:block/extractor/vertical_linked_powered", - "x": 180, - "y": 180 - }, - "facing=south,powered=true,upward=true": { - "model": "create:block/extractor/vertical_linked_powered", - "x": 180 - }, - "facing=west,powered=true,upward=true": { - "model": "create:block/extractor/vertical_linked_powered", - "x": 180, - "y": 90 - }, - "facing=east,powered=true,upward=true": { - "model": "create:block/extractor/vertical_linked_powered", - "x": 180, - "y": 270 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/vertical_linked_transposer.json b/src/generated/resources/assets/create/blockstates/vertical_linked_transposer.json deleted file mode 100644 index a21f0e4a7..000000000 --- a/src/generated/resources/assets/create/blockstates/vertical_linked_transposer.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=north,powered=false,upward=false": { - "model": "create:block/transposer/vertical_linked", - "x": 90, - "y": 180 - }, - "facing=south,powered=false,upward=false": { - "model": "create:block/transposer/vertical_linked", - "x": 90 - }, - "facing=west,powered=false,upward=false": { - "model": "create:block/transposer/vertical_linked", - "x": 90, - "y": 90 - }, - "facing=east,powered=false,upward=false": { - "model": "create:block/transposer/vertical_linked", - "x": 90, - "y": 270 - }, - "facing=north,powered=true,upward=false": { - "model": "create:block/transposer/vertical_linked_powered", - "x": 90, - "y": 180 - }, - "facing=south,powered=true,upward=false": { - "model": "create:block/transposer/vertical_linked_powered", - "x": 90 - }, - "facing=west,powered=true,upward=false": { - "model": "create:block/transposer/vertical_linked_powered", - "x": 90, - "y": 90 - }, - "facing=east,powered=true,upward=false": { - "model": "create:block/transposer/vertical_linked_powered", - "x": 90, - "y": 270 - }, - "facing=north,powered=false,upward=true": { - "model": "create:block/transposer/vertical_linked", - "x": 270 - }, - "facing=south,powered=false,upward=true": { - "model": "create:block/transposer/vertical_linked", - "x": 270, - "y": 180 - }, - "facing=west,powered=false,upward=true": { - "model": "create:block/transposer/vertical_linked", - "x": 270, - "y": 270 - }, - "facing=east,powered=false,upward=true": { - "model": "create:block/transposer/vertical_linked", - "x": 270, - "y": 90 - }, - "facing=north,powered=true,upward=true": { - "model": "create:block/transposer/vertical_linked_powered", - "x": 270 - }, - "facing=south,powered=true,upward=true": { - "model": "create:block/transposer/vertical_linked_powered", - "x": 270, - "y": 180 - }, - "facing=west,powered=true,upward=true": { - "model": "create:block/transposer/vertical_linked_powered", - "x": 270, - "y": 270 - }, - "facing=east,powered=true,upward=true": { - "model": "create:block/transposer/vertical_linked_powered", - "x": 270, - "y": 90 - } - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/vertical_transposer.json b/src/generated/resources/assets/create/blockstates/vertical_transposer.json deleted file mode 100644 index c3f42fadb..000000000 --- a/src/generated/resources/assets/create/blockstates/vertical_transposer.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "variants": { - "facing=north,powered=false,upward=false": { - "model": "create:block/transposer/block", - "x": 90, - "y": 180 - }, - "facing=south,powered=false,upward=false": { - "model": "create:block/transposer/block", - "x": 90 - }, - "facing=west,powered=false,upward=false": { - "model": "create:block/transposer/block", - "x": 90, - "y": 90 - }, - "facing=east,powered=false,upward=false": { - "model": "create:block/transposer/block", - "x": 90, - "y": 270 - }, - "facing=north,powered=true,upward=false": { - "model": "create:block/transposer/block_powered", - "x": 90, - "y": 180 - }, - "facing=south,powered=true,upward=false": { - "model": "create:block/transposer/block_powered", - "x": 90 - }, - "facing=west,powered=true,upward=false": { - "model": "create:block/transposer/block_powered", - "x": 90, - "y": 90 - }, - "facing=east,powered=true,upward=false": { - "model": "create:block/transposer/block_powered", - "x": 90, - "y": 270 - }, - "facing=north,powered=false,upward=true": { - "model": "create:block/transposer/block", - "x": 270 - }, - "facing=south,powered=false,upward=true": { - "model": "create:block/transposer/block", - "x": 270, - "y": 180 - }, - "facing=west,powered=false,upward=true": { - "model": "create:block/transposer/block", - "x": 270, - "y": 270 - }, - "facing=east,powered=false,upward=true": { - "model": "create:block/transposer/block", - "x": 270, - "y": 90 - }, - "facing=north,powered=true,upward=true": { - "model": "create:block/transposer/block_powered", - "x": 270 - }, - "facing=south,powered=true,upward=true": { - "model": "create:block/transposer/block_powered", - "x": 270, - "y": 180 - }, - "facing=west,powered=true,upward=true": { - "model": "create:block/transposer/block_powered", - "x": 270, - "y": 270 - }, - "facing=east,powered=true,upward=true": { - "model": "create:block/transposer/block_powered", - "x": 270, - "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 190d76489..164f096ac 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -12,7 +12,6 @@ "block.create.andesite_bricks_stairs": "s\u0279\u0131\u0250\u0287S s\u029E\u0254\u0131\u0279\u15FA \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.andesite_bricks_wall": "\u05DF\u05DF\u0250M s\u029E\u0254\u0131\u0279\u15FA \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.andesite_casing": "bu\u0131s\u0250\u0186 \u01DD\u0287\u0131s\u01DDpu\u2C6F", - "block.create.andesite_chute_funnel": "\u05DF\u01DDuun\u2132 \u01DD\u0287n\u0265\u0186 \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.andesite_cobblestone": "\u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.andesite_cobblestone_slab": "q\u0250\u05DFS \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DD\u0287\u0131s\u01DDpu\u2C6F", "block.create.andesite_cobblestone_stairs": "s\u0279\u0131\u0250\u0287S \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DD\u0287\u0131s\u01DDpu\u2C6F", @@ -31,7 +30,6 @@ "block.create.brass_belt_funnel": "\u05DF\u01DDuun\u2132 \u0287\u05DF\u01DD\u15FA ss\u0250\u0279\u15FA", "block.create.brass_block": "\u029E\u0254o\u05DF\u15FA ss\u0250\u0279\u15FA", "block.create.brass_casing": "bu\u0131s\u0250\u0186 ss\u0250\u0279\u15FA", - "block.create.brass_chute_funnel": "\u05DF\u01DDuun\u2132 \u01DD\u0287n\u0265\u0186 ss\u0250\u0279\u15FA", "block.create.brass_funnel": "\u05DF\u01DDuun\u2132 ss\u0250\u0279\u15FA", "block.create.brass_tunnel": "\u05DF\u01DDuun\u27D8 ss\u0250\u0279\u15FA", "block.create.brown_seat": "\u0287\u0250\u01DDS u\u028Do\u0279\u15FA", @@ -94,7 +92,6 @@ "block.create.encased_fan": "u\u0250\u2132 p\u01DDs\u0250\u0254u\u018E", "block.create.encased_fluid_pipe": "\u01DDd\u0131\u0500 p\u0131n\u05DF\u2132 p\u01DDs\u0250\u0254u\u018E", "block.create.encased_shaft": "\u0287\u025F\u0250\u0265S p\u01DDs\u0250\u0254u\u018E", - "block.create.extractor": "\u0279o\u0287\u0254\u0250\u0279\u0287x\u018E", "block.create.fancy_andesite_bricks": "s\u029E\u0254\u0131\u0279\u15FA \u01DD\u0287\u0131s\u01DDpu\u2C6F \u028E\u0254u\u0250\u2132", "block.create.fancy_andesite_bricks_slab": "q\u0250\u05DFS s\u029E\u0254\u0131\u0279\u15FA \u01DD\u0287\u0131s\u01DDpu\u2C6F \u028E\u0254u\u0250\u2132", "block.create.fancy_andesite_bricks_stairs": "s\u0279\u0131\u0250\u0287S s\u029E\u0254\u0131\u0279\u15FA \u01DD\u0287\u0131s\u01DDpu\u2C6F \u028E\u0254u\u0250\u2132", @@ -191,8 +188,6 @@ "block.create.limestone_cobblestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DDuo\u0287s\u01DD\u026F\u0131\uA780", "block.create.limestone_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 \u01DDuo\u0287s\u01DD\u026F\u0131\uA780", "block.create.linear_chassis": "s\u0131ss\u0250\u0265\u0186 \u0279\u0250\u01DDu\u0131\uA780", - "block.create.linked_extractor": "\u0279o\u0287\u0254\u0250\u0279\u0287x\u018E p\u01DD\u029Eu\u0131\uA780", - "block.create.linked_transposer": "\u0279\u01DDsodsu\u0250\u0279\u27D8 p\u01DD\u029Eu\u0131\uA780", "block.create.magenta_seat": "\u0287\u0250\u01DDS \u0250\u0287u\u01DDb\u0250W", "block.create.mechanical_arm": "\u026F\u0279\u2C6F \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW", "block.create.mechanical_bearing": "bu\u0131\u0279\u0250\u01DD\u15FA \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW", @@ -235,7 +230,6 @@ "block.create.overgrown_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 u\u028Do\u0279b\u0279\u01DD\u028CO", "block.create.overgrown_scoria": "\u0250\u0131\u0279o\u0254S u\u028Do\u0279b\u0279\u01DD\u028CO", "block.create.overgrown_weathered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM u\u028Do\u0279b\u0279\u01DD\u028CO", - "block.create.packager": "\u0279\u01DDb\u0250\u029E\u0254\u0250\u0500", "block.create.paved_andesite": "\u01DD\u0287\u0131s\u01DDpu\u2C6F p\u01DD\u028C\u0250\u0500", "block.create.paved_andesite_slab": "q\u0250\u05DFS \u01DD\u0287\u0131s\u01DDpu\u2C6F p\u01DD\u028C\u0250\u0500", "block.create.paved_andesite_stairs": "s\u0279\u0131\u0250\u0287S \u01DD\u0287\u0131s\u01DDpu\u2C6F p\u01DD\u028C\u0250\u0500", @@ -338,14 +332,9 @@ "block.create.stressometer": "\u0279\u01DD\u0287\u01DD\u026Foss\u01DD\u0279\u0287S", "block.create.tiled_glass": "ss\u0250\u05DF\u2141 p\u01DD\u05DF\u0131\u27D8", "block.create.tiled_glass_pane": "\u01DDu\u0250\u0500 ss\u0250\u05DF\u2141 p\u01DD\u05DF\u0131\u27D8", - "block.create.transposer": "\u0279\u01DDsodsu\u0250\u0279\u27D8", "block.create.turntable": "\u01DD\u05DFq\u0250\u0287u\u0279n\u27D8", - "block.create.vertical_extractor": "\u0279o\u0287\u0254\u0250\u0279\u0287x\u018E \u05DF\u0250\u0254\u0131\u0287\u0279\u01DD\u039B", "block.create.vertical_framed_glass": "ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132 \u05DF\u0250\u0254\u0131\u0287\u0279\u01DD\u039B", "block.create.vertical_framed_glass_pane": "\u01DDu\u0250\u0500 ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132 \u05DF\u0250\u0254\u0131\u0287\u0279\u01DD\u039B", - "block.create.vertical_linked_extractor": "\u0279o\u0287\u0254\u0250\u0279\u0287x\u018E p\u01DD\u029Eu\u0131\uA780 \u05DF\u0250\u0254\u0131\u0287\u0279\u01DD\u039B", - "block.create.vertical_linked_transposer": "\u0279\u01DDsodsu\u0250\u0279\u27D8 p\u01DD\u029Eu\u0131\uA780 \u05DF\u0250\u0254\u0131\u0287\u0279\u01DD\u039B", - "block.create.vertical_transposer": "\u0279\u01DDsodsu\u0250\u0279\u27D8 \u05DF\u0250\u0254\u0131\u0287\u0279\u01DD\u039B", "block.create.water_wheel": "\u05DF\u01DD\u01DD\u0265M \u0279\u01DD\u0287\u0250M", "block.create.weathered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM", "block.create.weathered_limestone_bricks": "s\u029E\u0254\u0131\u0279\u15FA \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 467c86719..4e2eea479 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -15,7 +15,6 @@ "block.create.andesite_bricks_stairs": "Andesite Bricks Stairs", "block.create.andesite_bricks_wall": "Andesite Bricks Wall", "block.create.andesite_casing": "Andesite Casing", - "block.create.andesite_chute_funnel": "Andesite Chute Funnel", "block.create.andesite_cobblestone": "Andesite Cobblestone", "block.create.andesite_cobblestone_slab": "Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "Andesite Cobblestone Stairs", @@ -34,7 +33,6 @@ "block.create.brass_belt_funnel": "Brass Belt Funnel", "block.create.brass_block": "Brass Block", "block.create.brass_casing": "Brass Casing", - "block.create.brass_chute_funnel": "Brass Chute Funnel", "block.create.brass_funnel": "Brass Funnel", "block.create.brass_tunnel": "Brass Tunnel", "block.create.brown_seat": "Brown Seat", @@ -97,7 +95,6 @@ "block.create.encased_fan": "Encased Fan", "block.create.encased_fluid_pipe": "Encased Fluid Pipe", "block.create.encased_shaft": "Encased Shaft", - "block.create.extractor": "Extractor", "block.create.fancy_andesite_bricks": "Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "Fancy Andesite Bricks Stairs", @@ -194,8 +191,6 @@ "block.create.limestone_cobblestone_wall": "Limestone Cobblestone Wall", "block.create.limestone_pillar": "Limestone Pillar", "block.create.linear_chassis": "Linear Chassis", - "block.create.linked_extractor": "Linked Extractor", - "block.create.linked_transposer": "Linked Transposer", "block.create.magenta_seat": "Magenta Seat", "block.create.mechanical_arm": "Mechanical Arm", "block.create.mechanical_bearing": "Mechanical Bearing", @@ -238,7 +233,6 @@ "block.create.overgrown_limestone": "Overgrown Limestone", "block.create.overgrown_scoria": "Overgrown Scoria", "block.create.overgrown_weathered_limestone": "Overgrown Weathered Limestone", - "block.create.packager": "Packager", "block.create.paved_andesite": "Paved Andesite", "block.create.paved_andesite_slab": "Paved Andesite Slab", "block.create.paved_andesite_stairs": "Paved Andesite Stairs", @@ -341,14 +335,9 @@ "block.create.stressometer": "Stressometer", "block.create.tiled_glass": "Tiled Glass", "block.create.tiled_glass_pane": "Tiled Glass Pane", - "block.create.transposer": "Transposer", "block.create.turntable": "Turntable", - "block.create.vertical_extractor": "Vertical Extractor", "block.create.vertical_framed_glass": "Vertical Framed Glass", "block.create.vertical_framed_glass_pane": "Vertical Framed Glass Pane", - "block.create.vertical_linked_extractor": "Vertical Linked Extractor", - "block.create.vertical_linked_transposer": "Vertical Linked Transposer", - "block.create.vertical_transposer": "Vertical Transposer", "block.create.water_wheel": "Water Wheel", "block.create.weathered_limestone": "Weathered Limestone", "block.create.weathered_limestone_bricks": "Weathered Limestone Bricks", @@ -1279,24 +1268,6 @@ "block.create.creative_crate.tooltip.condition1": "When Item in Filter Slot", "block.create.creative_crate.tooltip.behaviour1": "Anything _extracting_ from this container will provide an _endless_ _supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - "block.create.extractor.tooltip": "EXTRACTOR", - "block.create.extractor.tooltip.summary": "_Takes_ _Items_ from an attached _Inventory_ and drops them onto the ground. Will not drop Items unless the space is clear. Can be assigned an item-stack as a _filter_.", - "block.create.extractor.tooltip.condition1": "When Powered by Redstone", - "block.create.extractor.tooltip.behaviour1": "_Pauses_ the Extractor.", - "block.create.extractor.tooltip.condition2": "Active Belt pulling", - "block.create.extractor.tooltip.behaviour2": "Extractors can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the extractor is blocked, the _belt_ _will_ _stall_.", - "block.create.extractor.tooltip.control1": "R-Click on Filter Space", - "block.create.extractor.tooltip.action1": "Assigns currently _held_ _stack_ as the _Filter_. The Extractor will pull the item _type_ and _count_ of the filter stack exclusively.", - - "block.create.transposer.tooltip": "TRANSPOSER", - "block.create.transposer.tooltip.summary": "_Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_.", - "block.create.transposer.tooltip.condition1": "When Powered by Redstone", - "block.create.transposer.tooltip.behaviour1": "_Pauses_ the Transposer.", - "block.create.transposer.tooltip.condition2": "Active Belt pulling", - "block.create.transposer.tooltip.behaviour2": "Transposers can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the transposer is backed up, the _belt_ _will_ _stall_.", - "block.create.transposer.tooltip.control1": "R-Click on Filter Space", - "block.create.transposer.tooltip.action1": "Assigns currently _held_ _stack_ as the _Filter_. The Transposer will pull the item _type_ and _count_ of the filter stack exclusively.", - "block.create.deployer.tooltip": "DEPLOYER", "block.create.deployer.tooltip.summary": "_Punches_, _Uses_, and _Activates_. This machine will try to _imitate_ a _player_ as a much as possible. Can _Take_ and _Deposit_ _items_ in adjacent _Inventory_. Can be assigned an item-stack as a _filter_.", "block.create.deployer.tooltip.condition1": "When Rotated", @@ -1304,24 +1275,6 @@ "block.create.deployer.tooltip.condition2": "R-Clicked with Wrench", "block.create.deployer.tooltip.behaviour2": "Toggles punch mode. In _punch_ _mode_, the Deployer will attempt to use its item to _break_ _blocks_ or _hurt_ _entities_.", - "block.create.linked_extractor.tooltip": "LINKED EXTRACTOR", - "block.create.linked_extractor.tooltip.summary": "_Takes_ _items_ from an attached _Inventory_ and drops them onto the ground. Will not drop Items unless the space is clear. Can be assigned an item-stack as a _filter_. Can be controlled remotely via a _Redstone_ _Link_.", - "block.create.linked_extractor.tooltip.condition1": "When Redstone Link Active", - "block.create.linked_extractor.tooltip.behaviour1": "_Pauses_ the Extractor.", - "block.create.linked_extractor.tooltip.control1": "R-Click on Filter Space", - "block.create.linked_extractor.tooltip.action1": "Assigns currently _held_ _stack_ as the _Filter_. The Extractor will pull the item _type_ and _count_ of the filter stack exclusively.", - "block.create.linked_extractor.tooltip.control2": "R-Click on Frequency Space", - "block.create.linked_extractor.tooltip.action2": "Assigns currently _held_ _item_ as part of the Frequency listened on. Whenever a transmitting _Redstone_ _Link_ of the same frequency is powered, this Extractor will pause.", - - "block.create.linked_transposer.tooltip": "LINKED TRANSPOSER", - "block.create.linked_transposer.tooltip.summary": "_Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_. Can be controlled remotely via a _Redstone_ _Link_.", - "block.create.linked_transposer.tooltip.condition1": "When Redstone Link Active", - "block.create.linked_transposer.tooltip.behaviour1": "_Pauses_ the Transposer.", - "block.create.linked_transposer.tooltip.control1": "R-Click on Filter Space", - "block.create.linked_transposer.tooltip.action1": "Assigns currently _held_ _stack_ as the _Filter_. The Transposer will only pull items that match the item _type_ and _count_ of the filter stack.", - "block.create.linked_transposer.tooltip.control2": "R-Click on Frequency Space", - "block.create.linked_transposer.tooltip.action2": "Assigns the currently _held_ _item_ as part of the Frequency listened on. Whenever a transmitting _Redstone_ _Link_ of the same frequency is powered, this Transposer will pause.", - "block.create.funnel.tooltip": "FUNNEL", "block.create.funnel.tooltip.summary": "_Collects_ _incoming_ _items_ and inserts them into the attached _Inventory_ if possible. Can collect items in the _world_ and items on a _belt_.", "block.create.funnel.tooltip.condition1": "Passive Belt pulling", 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 b3d5fae4c..ecc10a864 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: 821", + "_": "Missing Localizations: 794", "_": "->------------------------] Game Elements [------------------------<-", @@ -16,7 +16,6 @@ "block.create.andesite_bricks_stairs": "UNLOCALIZED: Andesite Bricks Stairs", "block.create.andesite_bricks_wall": "UNLOCALIZED: Andesite Bricks Wall", "block.create.andesite_casing": "UNLOCALIZED: Andesite Casing", - "block.create.andesite_chute_funnel": "UNLOCALIZED: Andesite Chute Funnel", "block.create.andesite_cobblestone": "UNLOCALIZED: Andesite Cobblestone", "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", @@ -35,7 +34,6 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", "block.create.brass_casing": "UNLOCALIZED: Brass Casing", - "block.create.brass_chute_funnel": "UNLOCALIZED: Brass Chute Funnel", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", @@ -98,7 +96,6 @@ "block.create.encased_fan": "Eingeschlossener Propeller", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", "block.create.encased_shaft": "Eingeschlossene Welle", - "block.create.extractor": "Auswerfer", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", @@ -195,8 +192,6 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "Kalksteinsäule", "block.create.linear_chassis": "Schubgerüst", - "block.create.linked_extractor": "Verknüpfter Auswerfer", - "block.create.linked_transposer": "UNLOCALIZED: Linked Transposer", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", "block.create.mechanical_bearing": "Mechanisches Lager", @@ -239,7 +234,6 @@ "block.create.overgrown_limestone": "UNLOCALIZED: Overgrown Limestone", "block.create.overgrown_scoria": "UNLOCALIZED: Overgrown Scoria", "block.create.overgrown_weathered_limestone": "UNLOCALIZED: Overgrown Weathered Limestone", - "block.create.packager": "UNLOCALIZED: Packager", "block.create.paved_andesite": "UNLOCALIZED: Paved Andesite", "block.create.paved_andesite_slab": "UNLOCALIZED: Paved Andesite Slab", "block.create.paved_andesite_stairs": "UNLOCALIZED: Paved Andesite Stairs", @@ -342,14 +336,9 @@ "block.create.stressometer": "UNLOCALIZED: Stressometer", "block.create.tiled_glass": "Glasfliesen", "block.create.tiled_glass_pane": "Glasfliesenscheibe", - "block.create.transposer": "UNLOCALIZED: Transposer", "block.create.turntable": "Drehtisch", - "block.create.vertical_extractor": "UNLOCALIZED: Vertical Extractor", "block.create.vertical_framed_glass": "UNLOCALIZED: Vertical Framed Glass", "block.create.vertical_framed_glass_pane": "UNLOCALIZED: Vertical Framed Glass Pane", - "block.create.vertical_linked_extractor": "UNLOCALIZED: Vertical Linked Extractor", - "block.create.vertical_linked_transposer": "UNLOCALIZED: Vertical Linked Transposer", - "block.create.vertical_transposer": "UNLOCALIZED: Vertical Transposer", "block.create.water_wheel": "Wasserrad", "block.create.weathered_limestone": "Verwitterter Kalkstein", "block.create.weathered_limestone_bricks": "Verwitterte Kalksteinziegel", @@ -1280,24 +1269,6 @@ "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless_ _supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - "block.create.extractor.tooltip": "AUSWERFER", - "block.create.extractor.tooltip.summary": "_Nimmt_ _Gegenstände_ von einem verbundenen _Behälter_ und wirft diese auf den Boden. Wird keine Gegenstände auswerfen, bis der Platz dafür frei ist. Kann einen Stack von Gegenständen als _Filter_ zugewiesen bekommen.", - "block.create.extractor.tooltip.condition1": "Wenn durch Redstone aktiviert", - "block.create.extractor.tooltip.behaviour1": "_Pausiert_ den Auswerfer", - "block.create.extractor.tooltip.condition2": "UNLOCALIZED: Active Belt pulling", - "block.create.extractor.tooltip.behaviour2": "UNLOCALIZED: Extractors can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the extractor is blocked, the _belt_ _will_ _stall_.", - "block.create.extractor.tooltip.control1": "R-Klick auf Filterplatz", - "block.create.extractor.tooltip.action1": "Weist den momentan _gehaltenen_ _Stack_ als _Filter_ zu. Der Auswerfer zieht nur diesen _Gegenstandstyp_ und die _Anzahl_ des Stacks aus dem Behälter. ", - - "block.create.transposer.tooltip": "UNLOCALIZED: TRANSPOSER", - "block.create.transposer.tooltip.summary": "UNLOCALIZED: _Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_.", - "block.create.transposer.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone", - "block.create.transposer.tooltip.behaviour1": "UNLOCALIZED: _Pauses_ the Transposer.", - "block.create.transposer.tooltip.condition2": "UNLOCALIZED: Active Belt pulling", - "block.create.transposer.tooltip.behaviour2": "UNLOCALIZED: Transposers can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the transposer is backed up, the _belt_ _will_ _stall_.", - "block.create.transposer.tooltip.control1": "UNLOCALIZED: R-Click on Filter Space", - "block.create.transposer.tooltip.action1": "UNLOCALIZED: Assigns currently _held_ _stack_ as the _Filter_. The Transposer will pull the item _type_ and _count_ of the filter stack exclusively.", - "block.create.deployer.tooltip": "UNLOCALIZED: DEPLOYER", "block.create.deployer.tooltip.summary": "UNLOCALIZED: _Punches_, _Uses_, and _Activates_. This machine will try to _imitate_ a _player_ as a much as possible. Can _Take_ and _Deposit_ _items_ in adjacent _Inventory_. Can be assigned an item-stack as a _filter_.", "block.create.deployer.tooltip.condition1": "UNLOCALIZED: When Rotated", @@ -1305,24 +1276,6 @@ "block.create.deployer.tooltip.condition2": "UNLOCALIZED: R-Clicked with Wrench", "block.create.deployer.tooltip.behaviour2": "UNLOCALIZED: Toggles punch mode. In _punch_ _mode_, the Deployer will attempt to use its item to _break_ _blocks_ or _hurt_ _entities_.", - "block.create.linked_extractor.tooltip": "VERKÜPFTER AUSWERFER", - "block.create.linked_extractor.tooltip.summary": "_Nimmt_ _Gegenstände_ von einem verbundenen _Behälter_ und wirft diese auf den Boden. Wird Gegenstände nicht auswerfen, bis der Platz frei ist. Kann einen Stack von Gegenständen zugewiesen bekommen. Kann aus Distanz mit einer _Redstone-Verbindung_ kontrolliert werden.", - "block.create.linked_extractor.tooltip.condition1": "Wenn die Restone-Verbindung aktiv ist", - "block.create.linked_extractor.tooltip.behaviour1": "Wird der Auswerfer _pausiert._", - "block.create.linked_extractor.tooltip.control1": "R-Klick auf den Filterplatz", - "block.create.linked_extractor.tooltip.action1": "Weist den momentan _gehaltenen_ _Stack_ als _Filter_ zu. Der Auswerfer zieht nur diesen _Gegenstandstyp_ und die _Anzahl_ des Stacks aus dem Behälter.", - "block.create.linked_extractor.tooltip.control2": "R-Klick auf den Frequenzplatz", - "block.create.linked_extractor.tooltip.action2": "Weist den momentan _gehaltenen_ _Gegenstand_ als Teil der gelisteten Frequenz zu. Wann auch immer eine übertragende _Redstone-Verbindung_ derselben Frequenz aktiv ist, pausiert dieser Auswerfer.", - - "block.create.linked_transposer.tooltip": "UNLOCALIZED: LINKED TRANSPOSER", - "block.create.linked_transposer.tooltip.summary": "UNLOCALIZED: _Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_. Can be controlled remotely via a _Redstone_ _Link_.", - "block.create.linked_transposer.tooltip.condition1": "UNLOCALIZED: When Redstone Link Active", - "block.create.linked_transposer.tooltip.behaviour1": "UNLOCALIZED: _Pauses_ the Transposer.", - "block.create.linked_transposer.tooltip.control1": "UNLOCALIZED: R-Click on Filter Space", - "block.create.linked_transposer.tooltip.action1": "UNLOCALIZED: Assigns currently _held_ _stack_ as the _Filter_. The Transposer will only pull items that match the item _type_ and _count_ of the filter stack.", - "block.create.linked_transposer.tooltip.control2": "UNLOCALIZED: R-Click on Frequency Space", - "block.create.linked_transposer.tooltip.action2": "UNLOCALIZED: Assigns the currently _held_ _item_ as part of the Frequency listened on. Whenever a transmitting _Redstone_ _Link_ of the same frequency is powered, this Transposer will pause.", - "block.create.funnel.tooltip": "FLIEẞBANDTRICHTER", "block.create.funnel.tooltip.summary": "Sammelt eingehende Gegenstände auf einem _Mechanischen_ _Riemen_ und fügt diese in einen verbundenen _Behälter_ ein, wenn möglich. Muss direkt _auf_ dem Riemen sein, mit der Öffnung entgegen der Bewegungsrichtung des Riemens zeigend. Der Behälter muss auf der gleichen Höhe wie der Trichter sein.", "block.create.funnel.tooltip.condition1": "UNLOCALIZED: Passive Belt pulling", 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 175c5d00c..4ae72401e 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: 425", + "_": "Missing Localizations: 418", "_": "->------------------------] Game Elements [------------------------<-", @@ -16,7 +16,6 @@ "block.create.andesite_bricks_stairs": "UNLOCALIZED: Andesite Bricks Stairs", "block.create.andesite_bricks_wall": "UNLOCALIZED: Andesite Bricks Wall", "block.create.andesite_casing": "Boîtier en andésite", - "block.create.andesite_chute_funnel": "UNLOCALIZED: Andesite Chute Funnel", "block.create.andesite_cobblestone": "UNLOCALIZED: Andesite Cobblestone", "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", @@ -35,7 +34,6 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", "block.create.brass_casing": "Boîtier en laiton", - "block.create.brass_chute_funnel": "UNLOCALIZED: Brass Chute Funnel", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", @@ -98,7 +96,6 @@ "block.create.encased_fan": "Ventilateur enfermé", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", "block.create.encased_shaft": "Arbre mécanique enfermé", - "block.create.extractor": "Extracteur", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", @@ -195,8 +192,6 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "Pillier de calcaire", "block.create.linear_chassis": "Châssis linéaire", - "block.create.linked_extractor": "Extracteur lié", - "block.create.linked_transposer": "Transposeur lié", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", "block.create.mechanical_bearing": "Roulement mécanique", @@ -239,7 +234,6 @@ "block.create.overgrown_limestone": "UNLOCALIZED: Overgrown Limestone", "block.create.overgrown_scoria": "UNLOCALIZED: Overgrown Scoria", "block.create.overgrown_weathered_limestone": "UNLOCALIZED: Overgrown Weathered Limestone", - "block.create.packager": "UNLOCALIZED: Packager", "block.create.paved_andesite": "UNLOCALIZED: Paved Andesite", "block.create.paved_andesite_slab": "UNLOCALIZED: Paved Andesite Slab", "block.create.paved_andesite_stairs": "UNLOCALIZED: Paved Andesite Stairs", @@ -342,14 +336,9 @@ "block.create.stressometer": "Stressomètre", "block.create.tiled_glass": "Verre carrelé", "block.create.tiled_glass_pane": "Vitre carrelé", - "block.create.transposer": "Transposeur", "block.create.turntable": "Plaque tournante", - "block.create.vertical_extractor": "UNLOCALIZED: Vertical Extractor", "block.create.vertical_framed_glass": "Fenêtre en verre verticale", "block.create.vertical_framed_glass_pane": "Vitre encadrée verticale", - "block.create.vertical_linked_extractor": "UNLOCALIZED: Vertical Linked Extractor", - "block.create.vertical_linked_transposer": "UNLOCALIZED: Vertical Linked Transposer", - "block.create.vertical_transposer": "UNLOCALIZED: Vertical Transposer", "block.create.water_wheel": "Roue à eau", "block.create.weathered_limestone": "Calcaire patinées", "block.create.weathered_limestone_bricks": "Briques de calcaire patinées", @@ -1280,24 +1269,6 @@ "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless_ _supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - "block.create.extractor.tooltip": "EXTRACTEUR", - "block.create.extractor.tooltip.summary": "_Prend_ des _objets_ d'un _inventaire_ attaché et les laisse tomber sur le sol. Ne laissera pas tomber les objets à moins que l'espace ne soit dégagé. Peut être affecté à une pile d'objets en tant que _filtre_.", - "block.create.extractor.tooltip.condition1": "Lorsqu'alimenté par de la redstone", - "block.create.extractor.tooltip.behaviour1": "Met l'extracteur en _pause_.", - "block.create.extractor.tooltip.condition2": "Tirage actif du tapis roulant", - "block.create.extractor.tooltip.behaviour2": "Les extracteurs peuvent extraire les objets _de_ _tapis_ renforcés de _boîtiers_ _en_ _laiton_. Lorsque l'extracteur est bloqué, le _tapis_ _roulant_ _va_ _caler_.", - "block.create.extractor.tooltip.control1": "Clic droit sur l'espace du filtre", - "block.create.extractor.tooltip.action1": "Assigne la _pile_ actuellement _tenue_ _en_ _main_ comme _filtre_. L'extracteur extrait exclusivement les _types_ et _comptes_ des objets de la pile du filtre.", - - "block.create.transposer.tooltip": "TRANSPOSEUR", - "block.create.transposer.tooltip.summary": "_Prend_ les _objets_ d'un _inventaire_ attaché et les place immédiatement dans _l'inventaire_ cible. Peut être affecté à une pile d'objets en tant que _filtre_.", - "block.create.transposer.tooltip.condition1": "Lorsqu'alimenté par de la redstone", - "block.create.transposer.tooltip.behaviour1": "Met le transposeur en _pause_.", - "block.create.transposer.tooltip.condition2": "Tirage actif du tapis roulant", - "block.create.transposer.tooltip.behaviour2": "Les transposeurs peuvent extraire des éléments _de_ _tapis_ _roulants_ renforcés de _boîtiers_ _en_ _laiton_. Lorsque le transposeur est sauvegardé, le _tapis_ _roulant_ _va_ _caler_.", - "block.create.transposer.tooltip.control1": "Clic droit sur l'espace du filtre", - "block.create.transposer.tooltip.action1": "Assigne la _pile_ actuellement _tenue_ _en_ _main_ comme _filtre_. L'extracteur tire exclusivement les _types_ et _comptes_ des objets de la pile du filtre.", - "block.create.deployer.tooltip": "DÉPLOYEUR", "block.create.deployer.tooltip.summary": "_Frappe_, _utilise_ et _active_. Cette machine essaiera _d'imiter_ un _joueur_ autant que possible. Peut _prendre_ et _déposer_ des _objets_ dans _l'inventaire_ adjacent. Peut être affecté à une pile d'éléments en tant que _filtre_.", "block.create.deployer.tooltip.condition1": "Lorsque tourné", @@ -1305,24 +1276,6 @@ "block.create.deployer.tooltip.condition2": "Clic droit avec une clé", "block.create.deployer.tooltip.behaviour2": "Bascule le mode frappe. Dans le _mode_ _frappe_, le déployeur tentera d'utiliser son élément pour _casser_ les _blocs_ ou infliger des _dégats_ aux _entités_.", - "block.create.linked_extractor.tooltip": "EXTRACTEUR LIÉ", - "block.create.linked_extractor.tooltip.summary": "_Prend_ les _objets_ d'un _inventaire_ attaché et les laisse tomber sur le sol. Ne laissera pas tomber les objets à moins que l'espace ne soit dégagé. Peut être assigné une pile d'éléments en tant que _filtre_. Peut être contrôlé à distance via une _liaison_ _redstone_.", - "block.create.linked_extractor.tooltip.condition1": "Lorsque la liaison redstone est active", - "block.create.linked_extractor.tooltip.behaviour1": "Met l'extracteur en _pause_.", - "block.create.linked_extractor.tooltip.control1": "Clic droit sur l'espace du filtre", - "block.create.linked_extractor.tooltip.action1": "Assigne la _pile_ actuellement _tenue_ _en_ _main_ comme _filtre_. L'extracteur extrait exclusivement les _types_ et _comptes_ des objets de la pile du filtre.", - "block.create.linked_extractor.tooltip.control2": "Clic droit sur l'espace des fréquences", - "block.create.linked_extractor.tooltip.action2": "Assigne la _pile_ actuellement _tenue_ _en_ _main_ dans le cadre de la fréquence écoutée. Chaque fois qu'une _liaison_ _redstone_ de la même fréquence est alimenté, cet extracteur s'arrête.", - - "block.create.linked_transposer.tooltip": "TRANSPOSEUR LIÉ", - "block.create.linked_transposer.tooltip.summary": "_Prend_ les _objets_ d'un _inventaire_ attaché et les place immédiatement dans _l'inventaire_ cible. Peut être affecté à une pile d'objets en tant que _filtre_. Peut être contrôlé à distance via une _liaison_ _redstone_.", - "block.create.linked_transposer.tooltip.condition1": "Lorsque la liaison redstone est active", - "block.create.linked_transposer.tooltip.behaviour1": "Met le transposeur en _pause_.", - "block.create.linked_transposer.tooltip.control1": "Clic droit sur l'espace du filtre", - "block.create.linked_transposer.tooltip.action1": "Assigne la _pile_ actuellement _tenue_ _en_ _main_ comme _filtre_. L'extracteur tire exclusivement les _types_ et _comptes_ des objets de la pile du filtre.", - "block.create.linked_transposer.tooltip.control2": "Clic droit sur l'espace des fréquences", - "block.create.linked_transposer.tooltip.action2": "Assigne la _pile_ actuellement _tenue_ _en_ _main_ dans le cadre de la fréquence écoutée. Chaque fois qu'une _liaison_ _redstone_ de la même fréquence est alimenté, ce transposeur s'arrête.", - "block.create.funnel.tooltip": "ENTONNOIR AMÉLIORÉ", "block.create.funnel.tooltip.summary": "_Collecte_ les _objets_ en _approche_ et les insère dans _l'inventaire_ attaché si possible. Peut collecter des objets dans le _monde_ et des objets sur un _tapis_ _roulant_.", "block.create.funnel.tooltip.condition1": "Passage de tapis roulant passif", 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 330839e3b..3002b4fc4 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: 409", + "_": "Missing Localizations: 402", "_": "->------------------------] Game Elements [------------------------<-", @@ -16,7 +16,6 @@ "block.create.andesite_bricks_stairs": "UNLOCALIZED: Andesite Bricks Stairs", "block.create.andesite_bricks_wall": "UNLOCALIZED: Andesite Bricks Wall", "block.create.andesite_casing": "Involucro di Andesite", - "block.create.andesite_chute_funnel": "UNLOCALIZED: Andesite Chute Funnel", "block.create.andesite_cobblestone": "UNLOCALIZED: Andesite Cobblestone", "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", @@ -35,7 +34,6 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "Blocco di Ottone", "block.create.brass_casing": "Involucro di Ottone", - "block.create.brass_chute_funnel": "UNLOCALIZED: Brass Chute Funnel", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", @@ -98,7 +96,6 @@ "block.create.encased_fan": "Ventilatore incassato", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", "block.create.encased_shaft": "Albero Incassato", - "block.create.extractor": "Estrattore", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", @@ -195,8 +192,6 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "Pilastro di Calcare", "block.create.linear_chassis": "Telaio Lineare", - "block.create.linked_extractor": "Estrattore Connesso", - "block.create.linked_transposer": "Traspositore Connesso", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", "block.create.mechanical_bearing": "Supporto Meccanico", @@ -239,7 +234,6 @@ "block.create.overgrown_limestone": "UNLOCALIZED: Overgrown Limestone", "block.create.overgrown_scoria": "UNLOCALIZED: Overgrown Scoria", "block.create.overgrown_weathered_limestone": "UNLOCALIZED: Overgrown Weathered Limestone", - "block.create.packager": "UNLOCALIZED: Packager", "block.create.paved_andesite": "UNLOCALIZED: Paved Andesite", "block.create.paved_andesite_slab": "UNLOCALIZED: Paved Andesite Slab", "block.create.paved_andesite_stairs": "UNLOCALIZED: Paved Andesite Stairs", @@ -342,14 +336,9 @@ "block.create.stressometer": "Stressometro", "block.create.tiled_glass": "Vetro Piastrellato", "block.create.tiled_glass_pane": "Pannello di Vetro Piastrellato", - "block.create.transposer": "Traspositore", "block.create.turntable": "Piatto", - "block.create.vertical_extractor": "UNLOCALIZED: Vertical Extractor", "block.create.vertical_framed_glass": "Finestra Verticale Vetro", "block.create.vertical_framed_glass_pane": "Pannello di Finestra Verticale Vetro", - "block.create.vertical_linked_extractor": "UNLOCALIZED: Vertical Linked Extractor", - "block.create.vertical_linked_transposer": "UNLOCALIZED: Vertical Linked Transposer", - "block.create.vertical_transposer": "UNLOCALIZED: Vertical Transposer", "block.create.water_wheel": "Ruota d'Acqua", "block.create.weathered_limestone": "Calcare Consumato", "block.create.weathered_limestone_bricks": "Mattoni di Calcare Consumato", @@ -1280,24 +1269,6 @@ "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless_ _supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - "block.create.extractor.tooltip": "ESTRATTORE", - "block.create.extractor.tooltip.summary": "_Prende_ _Oggetti_ da un _Inventario _ allegato e li lascia cadere a terra. Non lascerà cadere gli oggetti a meno che lo spazio non sia libero. Può essere assegnata una pila di oggetti come _filtro_.", - "block.create.extractor.tooltip.condition1": "Quando alimentato da Redstone", - "block.create.extractor.tooltip.behaviour1": "_Ferma_ l'Estrattore.", - "block.create.extractor.tooltip.condition2": "Attiva Tiraggio del Nastro", - "block.create.extractor.tooltip.behaviour2": "Gli estrattori possono estrarre oggetti _da_ _nastri_ rinforzati con un _involucro_ _di_ _ottone_. Quando l'estrattore è bloccato, il _nastro_ _si_ _arresterà_.", - "block.create.extractor.tooltip.control1": "Clic-Destro sullo Spazio del Filtro", - "block.create.extractor.tooltip.action1": "Assegna la _pila_ attualmente _trattenuta_ come _Filtro_. L'estrattore estrarrà esclusivamente il _tipo_ di oggetto e il _conteggio_ della pila come filtro.", - - "block.create.transposer.tooltip": "TRASPOSITORE", - "block.create.transposer.tooltip.summary": "_Prende_ _oggetti_ da un _inventario_ allegato e li inserisce immediatamente nell'_inventario_ di destinazione. Può essere assegnata una pila di oggetti come _filtro_.", - "block.create.transposer.tooltip.condition1": "Quando Alimentato da Redstone", - "block.create.transposer.tooltip.behaviour1": "_Ferma_ il Traspositore.", - "block.create.transposer.tooltip.condition2": "Attiva Tiraggio del Nastro", - "block.create.transposer.tooltip.behaviour2": "I Traspositori possono estrarre oggetti _dai_ _nastri_ rinforzati con un _involucro_ _di_ _ottone_. Quando viene eseguito il backup del traspositore, il _nastro_ _si_ _arresterà_.", - "block.create.transposer.tooltip.control1": "Clic-Destro sullo Spazio del Filtro", - "block.create.transposer.tooltip.action1": "Assegna la _pila_ attualmente _trattenuta_ come _Filtro_. L'estrattore estrarrà esclusivamente il _tipo_ di oggetto e il _conteggio_ della pila come filtro.", - "block.create.deployer.tooltip": "INSTALLATORE", "block.create.deployer.tooltip.summary": "_Punzoni_, _Usi_ e _Attivazioni_. Questa macchina proverà a _imitare_ un _giocatore_ il più possibile. Può _Prendere_ e _depositare_ _oggetti_ nell'_Inventario_ adiacente. Può essere assegnata una pila di oggetti come _filtro_.", "block.create.deployer.tooltip.condition1": "Quando Ruotato", @@ -1305,24 +1276,6 @@ "block.create.deployer.tooltip.condition2": "Clic-Destro con la Chiave Inglese", "block.create.deployer.tooltip.behaviour2": "Attiva / disattiva la modalità di perforazione. In _modalità_ _pugno_, l'Installatore tenterà di usare il suo oggetto per _rompere_ _blocchi_ o _ferire_ _entità_.", - "block.create.linked_extractor.tooltip": "ESTRATTORE CONNESSO", - "block.create.linked_extractor.tooltip.summary": "_Prende_ _gli_ _oggetti_ da un _Inventario_ attaccato e li lascia cadere a terra. Non lascerà cadere gli oggetti a meno che lo spazio non sia libero. Può essere assegnata una pila di oggetti come _filtro_. Può essere controllato a distanza tramite un _Collegamento_ _Redstone_.", - "block.create.linked_extractor.tooltip.condition1": "Quando il Collegamento Redstone è attivo", - "block.create.linked_extractor.tooltip.behaviour1": "_Ferma_ l'Estrattore.", - "block.create.linked_extractor.tooltip.control1": "Clic-Destro sullo Spazio del Filtro", - "block.create.linked_extractor.tooltip.action1": "Assegna la _pila_ attualmente _trattenuta_ come _Filtro_. L'estrattore estrarrà esclusivamente il _tipo_ di oggetto e il _conteggio_ della pila come filtro.", - "block.create.linked_extractor.tooltip.control2": "Clic-Destro sullo Spazio di Frequenza", - "block.create.linked_extractor.tooltip.action2": "Assegna l'_oggetto_ attualmente _trattenuto_ come parte della Frequenza ascoltata. Ogni volta che viene alimentato un _Collegamento_ _Redstone_ della stessa frequenza di trasmissione, questo estrattore si mette in pausa.", - - "block.create.linked_transposer.tooltip": "TRASPOSITORE CONNESSO", - "block.create.linked_transposer.tooltip.summary": "_Prende_ _oggetti_ da un _Inventario_ allegato e li inserisce immediatamente nell'_Inventario_ di destinazione. Può essere assegnata una pila di oggetti come _filtro_. Può essere controllato a distanza tramite un _Collegamento_ _Redstone_.", - "block.create.linked_transposer.tooltip.condition1": "Quando il Collegamento Redstone è Attivo", - "block.create.linked_transposer.tooltip.behaviour1": "_Ferma_ il Traspositore.", - "block.create.linked_transposer.tooltip.control1": "Clic-Destro sullo Spazio del Filtro", - "block.create.linked_transposer.tooltip.action1": "Assegna la _pila_ attualmente _tenuta_ come _Filtro_. Il Traspositore estrae solo gli oggetti che corrispondono al tipo di oggetto e al conteggio della pila di filtri.", - "block.create.linked_transposer.tooltip.control2": "Clic-Destro sullo Spazio di Frequenza", - "block.create.linked_transposer.tooltip.action2": "Assegna l'_oggetto_ attualmente _tenuto_ come parte della Frequenza ascoltata. Ogni volta che viene alimentato un _Collegamento_ _Redstone_ della stessa frequenza di trasmissione, questo Traspositore si ferma.", - "block.create.funnel.tooltip": "IMBUTO", "block.create.funnel.tooltip.summary": "_Raccoglie_ _gli_ _oggetti_ _in_ _arrivo_ e li inserisce nell'_inventario_ allegato, se possibile. Può raccogliere oggetti nel _mondo_ e oggetti su un _nastro_.", "block.create.funnel.tooltip.condition1": "Tirare il Nastro passivamente", 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 957580a80..f9ffe954c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 404", + "_": "Missing Localizations: 397", "_": "->------------------------] Game Elements [------------------------<-", @@ -16,7 +16,6 @@ "block.create.andesite_bricks_stairs": "UNLOCALIZED: Andesite Bricks Stairs", "block.create.andesite_bricks_wall": "UNLOCALIZED: Andesite Bricks Wall", "block.create.andesite_casing": "安山岩ケーシング", - "block.create.andesite_chute_funnel": "UNLOCALIZED: Andesite Chute Funnel", "block.create.andesite_cobblestone": "UNLOCALIZED: Andesite Cobblestone", "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", @@ -35,7 +34,6 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "真鍮ブロック", "block.create.brass_casing": "真鍮ケーシング", - "block.create.brass_chute_funnel": "UNLOCALIZED: Brass Chute Funnel", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", @@ -98,7 +96,6 @@ "block.create.encased_fan": "ケース入りファン", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", "block.create.encased_shaft": "ケース入りシャフト", - "block.create.extractor": "エクストラクター", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", @@ -195,8 +192,6 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "石灰岩の柱", "block.create.linear_chassis": "リニアシャーシ", - "block.create.linked_extractor": "リンクされたエクストラクター", - "block.create.linked_transposer": "リンクされたトランスポーザー", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", "block.create.mechanical_bearing": "メカニカルベアリング", @@ -239,7 +234,6 @@ "block.create.overgrown_limestone": "UNLOCALIZED: Overgrown Limestone", "block.create.overgrown_scoria": "UNLOCALIZED: Overgrown Scoria", "block.create.overgrown_weathered_limestone": "UNLOCALIZED: Overgrown Weathered Limestone", - "block.create.packager": "UNLOCALIZED: Packager", "block.create.paved_andesite": "UNLOCALIZED: Paved Andesite", "block.create.paved_andesite_slab": "UNLOCALIZED: Paved Andesite Slab", "block.create.paved_andesite_stairs": "UNLOCALIZED: Paved Andesite Stairs", @@ -342,14 +336,9 @@ "block.create.stressometer": "ストレスメーター", "block.create.tiled_glass": "タイルガラス", "block.create.tiled_glass_pane": "タイルガラス板", - "block.create.transposer": "トランスポーザー", "block.create.turntable": "ターンテーブル", - "block.create.vertical_extractor": "UNLOCALIZED: Vertical Extractor", "block.create.vertical_framed_glass": "垂直ガラス窓", "block.create.vertical_framed_glass_pane": "垂直ガラス窓板", - "block.create.vertical_linked_extractor": "UNLOCALIZED: Vertical Linked Extractor", - "block.create.vertical_linked_transposer": "UNLOCALIZED: Vertical Linked Transposer", - "block.create.vertical_transposer": "UNLOCALIZED: Vertical Transposer", "block.create.water_wheel": "水車", "block.create.weathered_limestone": "風化した石灰岩", "block.create.weathered_limestone_bricks": "風化した石灰岩レンガ", @@ -1280,24 +1269,6 @@ "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless_ _supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - "block.create.extractor.tooltip": "抽出器", - "block.create.extractor.tooltip.summary": "付属のインベントリから_アイテムを取り_、地面にドロップします。 スペースが空いていない限り、アイテムはドロップされません。 _フィルター_としてアイテムスタックを割り当てることができます。", - "block.create.extractor.tooltip.condition1": "レッドストーン信号があるとき", - "block.create.extractor.tooltip.behaviour1": "エクストラクタを_一時停止_します。", - "block.create.extractor.tooltip.condition2": "アクティブベルト牽引されたとき", - "block.create.extractor.tooltip.behaviour2": "エクストラクタは、_真ちゅう製のケーシング_で補強された_ベルトから_アイテムを引き出すことができます。 エクストラクタが詰まると、_ベルトが停止_します。", - "block.create.extractor.tooltip.control1": "フィルタースペースを右クリック", - "block.create.extractor.tooltip.action1": "現在_保持されているスタック_を_フィルター_として割り当てます。 エクストラクターは、アイテム_タイプ_とフィルタースタックの_数_を排他的に取得します。", - - "block.create.transposer.tooltip": "トランスポーザー", - "block.create.transposer.tooltip.summary": "取り付けされたインベントリから_アイテムを取得_し、すぐにターゲット_インベントリ_に入れます。 _フィルター_としてアイテムスタックを割り当てることができます。", - "block.create.transposer.tooltip.condition1": "レッドストーン信号があるとき", - "block.create.transposer.tooltip.behaviour1": "トランスポーザを_一時停止_します。", - "block.create.transposer.tooltip.condition2": "アクティブベルト牽引されたとき", - "block.create.transposer.tooltip.behaviour2": "トランスポーザーは、_真鍮のケーシングで補強_された_ベルトからアイテム_を引っ張ることができます。 トランスポーザがバックアップされると、_ベルトが停止_します。", - "block.create.transposer.tooltip.control1": "フィルタースペースを右クリック", - "block.create.transposer.tooltip.action1": "現在_保持されているスタック_を_フィルター_として割り当てます。トランスポーザーは、フィルタースタックのアイテムタイプと_カウント_を排他的にプルします。", - "block.create.deployer.tooltip": "デプロイヤ", "block.create.deployer.tooltip.summary": "_パンチ_、_使用_、_有効化_。 このマシンは、_プレイヤー_をできるだけ_真似_しようとします。 隣接するインベントリの_アイテムを受け取り_、_預ける_ことができます。 _フィルター_としてアイテムスタックを割り当てることができます。", "block.create.deployer.tooltip.condition1": "回転したとき", @@ -1305,24 +1276,6 @@ "block.create.deployer.tooltip.condition2": "レンチで右クリックしたとき", "block.create.deployer.tooltip.behaviour2": "パンチモードを切り替えます。 _パンチモード_では、デプロイヤはそのアイテムを使用して_ブロックを壊したりエンティティを傷つけ_たりしようとします。", - "block.create.linked_extractor.tooltip": "リンクエクストラクター", - "block.create.linked_extractor.tooltip.summary": "取り付けてる_インベントリ_から_アイテムを取り_、それらを地面に落とします。 スペースが空いていない限り、アイテムはドロップされません。 _フィルター_としてアイテムスタックを割り当てることができます。 _レッドストーンリンク_を介してリモートで制御できます。", - "block.create.linked_extractor.tooltip.condition1": "レッドストーンリンクがアクティブな場合", - "block.create.linked_extractor.tooltip.behaviour1": "エクストラクタを_一時停止_します。", - "block.create.linked_extractor.tooltip.control1": "フィルタースペースを右クリックしたとき", - "block.create.linked_extractor.tooltip.action1": "現在_保持されているスタック_を_フィルター_として割り当てます。 エクストラクターは、_アイテムタイプ_とフィルタースタックの_数_を排他的に取得します。", - "block.create.linked_extractor.tooltip.control2": "周波数スペースを右クリックしたとき", - "block.create.linked_extractor.tooltip.action2": "リッスンされている周波数の一部として_現在保持_されているアイテムを割り当てます。 同じ周波数の送信_レッドストーンリンク_に動力が供給されると、このエクストラクターは一時停止します。", - - "block.create.linked_transposer.tooltip": "リンクされたトランスポーザー", - "block.create.linked_transposer.tooltip.summary": "取り付けてる_インベントリ_から_アイテムを取得_し、すぐにターゲット_インベントリ_に入れます。 フィルターとしてアイテムスタックを割り当てることができます。 _レッドストーンリンク_を介してリモートで制御できます。", - "block.create.linked_transposer.tooltip.condition1": "レッドストーンリンクがアクティブのとき", - "block.create.linked_transposer.tooltip.behaviour1": "トランスポーザを_一時停止_します。", - "block.create.linked_transposer.tooltip.control1": "フィルタースペースを右クリックしたとき", - "block.create.linked_transposer.tooltip.action1": "現在_保持されているスタック_を_フィルター_として割り当てます。 トランスポーザーは、アイテム_タイプ_とフィルター_スタック_の数に一致するアイテムのみをプルします。", - "block.create.linked_transposer.tooltip.control2": "周波数スペースを右クリックしたとき", - "block.create.linked_transposer.tooltip.action2": "聴いてる周波数の一部として現在_保持されているアイテム_を割り当てます。 同じ周波数の送信レッドストーンリンクに動力が供給されると、このトランスポーザーは一時停止します。", - "block.create.funnel.tooltip": "漏斗", "block.create.funnel.tooltip.summary": "_入力アイテムを収集_し、可能な場合はそれらを取り付けた_インベントリ_に挿入します。 _世界_のアイテムや_ベルト_のアイテムを集めることができます。", "block.create.funnel.tooltip.condition1": "パッシブベルト引っ張り", 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 490b07b7a..f6fe5f1b0 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 409", + "_": "Missing Localizations: 402", "_": "->------------------------] Game Elements [------------------------<-", @@ -16,7 +16,6 @@ "block.create.andesite_bricks_stairs": "UNLOCALIZED: Andesite Bricks Stairs", "block.create.andesite_bricks_wall": "UNLOCALIZED: Andesite Bricks Wall", "block.create.andesite_casing": "안산암 케이스", - "block.create.andesite_chute_funnel": "UNLOCALIZED: Andesite Chute Funnel", "block.create.andesite_cobblestone": "UNLOCALIZED: Andesite Cobblestone", "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", @@ -35,7 +34,6 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "황동 블럭", "block.create.brass_casing": "황동 케이스", - "block.create.brass_chute_funnel": "UNLOCALIZED: Brass Chute Funnel", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", @@ -98,7 +96,6 @@ "block.create.encased_fan": "덮힌 환풍기", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", "block.create.encased_shaft": "덮힌 축", - "block.create.extractor": "추출기", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", @@ -195,8 +192,6 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "석회암 기둥", "block.create.linear_chassis": "직선 섀시", - "block.create.linked_extractor": "무선 추출기", - "block.create.linked_transposer": "무선 트랜스포저", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", "block.create.mechanical_bearing": "베어링", @@ -239,7 +234,6 @@ "block.create.overgrown_limestone": "UNLOCALIZED: Overgrown Limestone", "block.create.overgrown_scoria": "UNLOCALIZED: Overgrown Scoria", "block.create.overgrown_weathered_limestone": "UNLOCALIZED: Overgrown Weathered Limestone", - "block.create.packager": "UNLOCALIZED: Packager", "block.create.paved_andesite": "UNLOCALIZED: Paved Andesite", "block.create.paved_andesite_slab": "UNLOCALIZED: Paved Andesite Slab", "block.create.paved_andesite_stairs": "UNLOCALIZED: Paved Andesite Stairs", @@ -342,14 +336,9 @@ "block.create.stressometer": "피로도 계측기", "block.create.tiled_glass": "타일 유리", "block.create.tiled_glass_pane": "타일 유리판", - "block.create.transposer": "트랜스포저", "block.create.turntable": "돌림판", - "block.create.vertical_extractor": "UNLOCALIZED: Vertical Extractor", "block.create.vertical_framed_glass": "수직 유리", "block.create.vertical_framed_glass_pane": "수직 유리판", - "block.create.vertical_linked_extractor": "UNLOCALIZED: Vertical Linked Extractor", - "block.create.vertical_linked_transposer": "UNLOCALIZED: Vertical Linked Transposer", - "block.create.vertical_transposer": "UNLOCALIZED: Vertical Transposer", "block.create.water_wheel": "물레방아", "block.create.weathered_limestone": "풍화된 석회암", "block.create.weathered_limestone_bricks": "풍화된 석회암 벽돌", @@ -1280,24 +1269,6 @@ "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless_ _supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - "block.create.extractor.tooltip": "EXTRACTOR", - "block.create.extractor.tooltip.summary": "_연결된_ _인벤토리_로부터 아이템을 꺼내 땅에 떨어뜨립니다. 공간이 비지 않았다면 아이템을 떨어뜨리지 않습니다. 개수/필터를 설정 가능합니다.", - "block.create.extractor.tooltip.condition1": "레드스톤 신호를 받았을 때", - "block.create.extractor.tooltip.behaviour1": "추출기를 _멈춥니다_.", - "block.create.extractor.tooltip.condition2": "움직이는 벨트에 연결되었을 때", - "block.create.extractor.tooltip.behaviour2": "추출기는 _황동_ _케이스_가 장착된 _벨트_에서 아이템을 빼낼 수 있습니다. 추출기가 막혔을 때는, 벨트가 _멈춥니다_.", - "block.create.extractor.tooltip.control1": "필터 슬롯을 우클릭할 때", - "block.create.extractor.tooltip.action1": "현재 들고있는 아이템의 개수 혹은 필터 틀로 필터를 정합니다. 추출기는 필터 설정에 맞춰 아이템을 빼낼 것입니다.", - - "block.create.transposer.tooltip": "TRANSPOSER", - "block.create.transposer.tooltip.summary": "연결된 인벤토리로부터 대상 인벤토리로 아이템을 _바로_ _이동_시킵니다. 개수/필터를 설정 가능합니다.", - "block.create.transposer.tooltip.condition1": "레드스톤 신호를 받았을 때", - "block.create.transposer.tooltip.behaviour1": "트랜스포저를 _멈춥니다_.", - "block.create.transposer.tooltip.condition2": "움직이는 벨트에 연결되었을 때", - "block.create.transposer.tooltip.behaviour2": "트랜스포저는 _황동_ _케이스_가 장착된 _벨트_에서 아이템을 빼낼 수 있습니다. 추출기가 막혔을 때는, 벨트가 _멈춥니다_.", - "block.create.transposer.tooltip.control1": "필터 슬롯을 우클릭할 때", - "block.create.transposer.tooltip.action1": "현재 들고있는 아이템의 개수 혹은 필터 틀로 필터를 정합니다. 트랜스포저는 필터 설정에 맞춰 아이템을 빼낼 것입니다.", - "block.create.deployer.tooltip": "DEPLOYER", "block.create.deployer.tooltip.summary": " _때리고_, _사용하고_ _작동시킵니다_. 이 장치는 _플레이어_를 가능한 한 _흉내내려할_ _것입니다_. 주변 인벤토리에서 아이템을 쓰거나 넣을 수 있습니다. 필터로 사용하는 아이템을 설정할 수 있습니다.", "block.create.deployer.tooltip.condition1": "회전될 때", @@ -1305,24 +1276,6 @@ "block.create.deployer.tooltip.condition2": "렌치로 우클릭", "block.create.deployer.tooltip.behaviour2": "_펀치_ _모드_로 바꿉니다. 이 상태에서는 배포기가 아이템을 가지고 _부수거나_ _때리려고_ 할 것입니다.", - "block.create.linked_extractor.tooltip": "LINKED EXTRACTOR", - "block.create.linked_extractor.tooltip.summary": "_연결된_ _인벤토리_로부터 아이템을 꺼내 땅에 떨어뜨립니다. 공간이 비지 않았다면 아이템을 떨어뜨리지 않습니다. 개수/필터를 설정 가능합니다. 레드스톤 링크를 통해 _무선으로_ 컨트롤 될 수 있습니다.", - "block.create.linked_extractor.tooltip.condition1": "레드스톤 링크 신호를 받았을 때", - "block.create.linked_extractor.tooltip.behaviour1": "추출기를 _멈춥니다_.", - "block.create.linked_extractor.tooltip.control1": "필터 슬롯을 우클릭할 때", - "block.create.linked_extractor.tooltip.action1": "현재 들고있는 아이템의 개수 혹은 필터 틀로 필터를 정합니다. 추출기는 필터 설정에 맞춰 아이템을 빼낼 것입니다.", - "block.create.linked_extractor.tooltip.control2": "아이템을 들고 주파수 슬롯을 우클릭", - "block.create.linked_extractor.tooltip.action2": "그 아이템으로 주파수를 설정합니다. _같은_ _주파수_의 레드스톤 링크가 신호를 보낸다면, 추출기는 멈출 것입니다.", - - "block.create.linked_transposer.tooltip": "LINKED TRANSPOSER", - "block.create.linked_transposer.tooltip.summary": "연결된 인벤토리로부터 대상 인벤토리로 아이템을 _바로_ _이동_시킵니다. 개수/필터를 설정 가능합니다. 레드스톤 링크를 통해 _무선으로_ 컨트롤 될 수 있습니다.", - "block.create.linked_transposer.tooltip.condition1": "레드스톤 링크 신호를 받았을 때", - "block.create.linked_transposer.tooltip.behaviour1": "트랜스포저를 _멈춥니다_.", - "block.create.linked_transposer.tooltip.control1": "필터 슬롯을 우클릭할 때", - "block.create.linked_transposer.tooltip.action1": "현재 들고있는 아이템의 개수 혹은 필터 틀로 필터를 정합니다. 트랜스포저는 필터 설정에 맞춰 아이템을 빼낼 것입니다.", - "block.create.linked_transposer.tooltip.control2": "아이템을 들고 주파수 슬롯을 우클릭", - "block.create.linked_transposer.tooltip.action2": "그 아이템으로 주파수를 설정합니다. _같은_ _주파수_의 레드스톤 링크가 신호를 보낸다면, 트랜스포저는 멈출 것입니다.", - "block.create.funnel.tooltip": "FUNNEL", "block.create.funnel.tooltip.summary": "들어오는 아이템을 가능하면 _연결된_ _인벤토리_에 넣습니다. _벨트_ _위_의 아이템도 끌어올 수 있습니다.", "block.create.funnel.tooltip.condition1": "움직이는 벨트위에 있을 때", 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 aaa58801e..021ecce9e 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: 759", + "_": "Missing Localizations: 732", "_": "->------------------------] Game Elements [------------------------<-", @@ -16,7 +16,6 @@ "block.create.andesite_bricks_stairs": "UNLOCALIZED: Andesite Bricks Stairs", "block.create.andesite_bricks_wall": "UNLOCALIZED: Andesite Bricks Wall", "block.create.andesite_casing": "UNLOCALIZED: Andesite Casing", - "block.create.andesite_chute_funnel": "UNLOCALIZED: Andesite Chute Funnel", "block.create.andesite_cobblestone": "UNLOCALIZED: Andesite Cobblestone", "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", @@ -35,7 +34,6 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", "block.create.brass_casing": "UNLOCALIZED: Brass Casing", - "block.create.brass_chute_funnel": "UNLOCALIZED: Brass Chute Funnel", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", @@ -98,7 +96,6 @@ "block.create.encased_fan": "Omhulsde Ventilator", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", "block.create.encased_shaft": "Omhulsde Drijfas", - "block.create.extractor": "Extractor", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", @@ -195,8 +192,6 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "Kalksteen Pillar", "block.create.linear_chassis": "Lineaar Frame", - "block.create.linked_extractor": "Gelinkte Extractor", - "block.create.linked_transposer": "UNLOCALIZED: Linked Transposer", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", "block.create.mechanical_bearing": "Mechanische Lager", @@ -239,7 +234,6 @@ "block.create.overgrown_limestone": "UNLOCALIZED: Overgrown Limestone", "block.create.overgrown_scoria": "UNLOCALIZED: Overgrown Scoria", "block.create.overgrown_weathered_limestone": "UNLOCALIZED: Overgrown Weathered Limestone", - "block.create.packager": "UNLOCALIZED: Packager", "block.create.paved_andesite": "UNLOCALIZED: Paved Andesite", "block.create.paved_andesite_slab": "UNLOCALIZED: Paved Andesite Slab", "block.create.paved_andesite_stairs": "UNLOCALIZED: Paved Andesite Stairs", @@ -342,14 +336,9 @@ "block.create.stressometer": "Stressmeter", "block.create.tiled_glass": "Getegeld Glas", "block.create.tiled_glass_pane": "Getegeld Glazen Paneel", - "block.create.transposer": "UNLOCALIZED: Transposer", "block.create.turntable": "Draaischijf", - "block.create.vertical_extractor": "UNLOCALIZED: Vertical Extractor", "block.create.vertical_framed_glass": "UNLOCALIZED: Vertical Framed Glass", "block.create.vertical_framed_glass_pane": "UNLOCALIZED: Vertical Framed Glass Pane", - "block.create.vertical_linked_extractor": "UNLOCALIZED: Vertical Linked Extractor", - "block.create.vertical_linked_transposer": "UNLOCALIZED: Vertical Linked Transposer", - "block.create.vertical_transposer": "UNLOCALIZED: Vertical Transposer", "block.create.water_wheel": "Waterrad", "block.create.weathered_limestone": "Verweerde Kalksteen", "block.create.weathered_limestone_bricks": "Verweerde Kalksteenstenen", @@ -1280,24 +1269,6 @@ "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless_ _supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - "block.create.extractor.tooltip": "EXTRACTOR", - "block.create.extractor.tooltip.summary": "_Haalt_ _objecten_ uit een aangesloten _inventaris_ en laat ze op de grond vallen. Laat items niet vallen totdat de ruimte is leeggemaakt. Kan een item-stapel worden toegewezen als een _filter._", - "block.create.extractor.tooltip.condition1": "Wanneer aangestuurd door redstone", - "block.create.extractor.tooltip.behaviour1": "_Pauzeerd_ de Extractor", - "block.create.extractor.tooltip.condition2": "UNLOCALIZED: Active Belt pulling", - "block.create.extractor.tooltip.behaviour2": "UNLOCALIZED: Extractors can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the extractor is blocked, the _belt_ _will_ _stall_.", - "block.create.extractor.tooltip.control1": "R-Klik op Filter Plek", - "block.create.extractor.tooltip.action1": "Wijst momenteel _vastgehouden_ _stapel_ toe als de _Filter._ Extractor zal uitsluitend het object _type_ en _hoevelheid_ van de stapel op de grond gooien.", - - "block.create.transposer.tooltip": "UNLOCALIZED: TRANSPOSER", - "block.create.transposer.tooltip.summary": "UNLOCALIZED: _Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_.", - "block.create.transposer.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone", - "block.create.transposer.tooltip.behaviour1": "UNLOCALIZED: _Pauses_ the Transposer.", - "block.create.transposer.tooltip.condition2": "UNLOCALIZED: Active Belt pulling", - "block.create.transposer.tooltip.behaviour2": "UNLOCALIZED: Transposers can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the transposer is backed up, the _belt_ _will_ _stall_.", - "block.create.transposer.tooltip.control1": "UNLOCALIZED: R-Click on Filter Space", - "block.create.transposer.tooltip.action1": "UNLOCALIZED: Assigns currently _held_ _stack_ as the _Filter_. The Transposer will pull the item _type_ and _count_ of the filter stack exclusively.", - "block.create.deployer.tooltip": "UNLOCALIZED: DEPLOYER", "block.create.deployer.tooltip.summary": "UNLOCALIZED: _Punches_, _Uses_, and _Activates_. This machine will try to _imitate_ a _player_ as a much as possible. Can _Take_ and _Deposit_ _items_ in adjacent _Inventory_. Can be assigned an item-stack as a _filter_.", "block.create.deployer.tooltip.condition1": "UNLOCALIZED: When Rotated", @@ -1305,24 +1276,6 @@ "block.create.deployer.tooltip.condition2": "UNLOCALIZED: R-Clicked with Wrench", "block.create.deployer.tooltip.behaviour2": "UNLOCALIZED: Toggles punch mode. In _punch_ _mode_, the Deployer will attempt to use its item to _break_ _blocks_ or _hurt_ _entities_.", - "block.create.linked_extractor.tooltip": "LINKED EXTRACTOR", - "block.create.linked_extractor.tooltip.summary": "_Haalt_ _objecten_ uit een aangesloten _inventaris_ en laat ze op de grond vallen. Laat items niet vallen totdat de ruimte is leeggemaakt. Kan een item-stapel worden toegewezen als een _filter._ Kan op afstand worden bediend via een _Redstone_ _Brug._", - "block.create.linked_extractor.tooltip.condition1": "Wanneer Redstone verbinding actief is", - "block.create.linked_extractor.tooltip.behaviour1": "_Pauzeerd_ de Extractor", - "block.create.linked_extractor.tooltip.control1": "R-Klik op Filter Plek", - "block.create.linked_extractor.tooltip.action1": "Wijst momenteel _vastgehouden_ _stapel_ toe als de _Filter._ Extractor zal uitsluitend het object _type_ en _hoevelheid_ van de stapel op de grond gooien.", - "block.create.linked_extractor.tooltip.control2": "R-Klik op Frequency Plek", - "block.create.linked_extractor.tooltip.action2": "Wijst momenteel _vastgehouden_ _object_ toe als onderdeel van de geluisterde frequentie. Wanneer een zendende _Redstone_ _Brug_ van dezelfde frequentie wordt ingeschakeld, pauzeert deze Extractor.", - - "block.create.linked_transposer.tooltip": "UNLOCALIZED: LINKED TRANSPOSER", - "block.create.linked_transposer.tooltip.summary": "UNLOCALIZED: _Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_. Can be controlled remotely via a _Redstone_ _Link_.", - "block.create.linked_transposer.tooltip.condition1": "UNLOCALIZED: When Redstone Link Active", - "block.create.linked_transposer.tooltip.behaviour1": "UNLOCALIZED: _Pauses_ the Transposer.", - "block.create.linked_transposer.tooltip.control1": "UNLOCALIZED: R-Click on Filter Space", - "block.create.linked_transposer.tooltip.action1": "UNLOCALIZED: Assigns currently _held_ _stack_ as the _Filter_. The Transposer will only pull items that match the item _type_ and _count_ of the filter stack.", - "block.create.linked_transposer.tooltip.control2": "UNLOCALIZED: R-Click on Frequency Space", - "block.create.linked_transposer.tooltip.action2": "UNLOCALIZED: Assigns the currently _held_ _item_ as part of the Frequency listened on. Whenever a transmitting _Redstone_ _Link_ of the same frequency is powered, this Transposer will pause.", - "block.create.funnel.tooltip": "TRANSPORTBAND TRECHTER", "block.create.funnel.tooltip.summary": "Verzamelt inkomende items op een _Mechanische_ _Transportband_ en plaatst deze indien mogelijk in de bijgevoegde _Inventaris._ Moet zich direct op een transportband bevinden, met de opening tegenover de bewegingsrichting van de transportband. Het inventaris moet op dezelfde hoogte zijn als de trechter.", "block.create.funnel.tooltip.condition1": "UNLOCALIZED: Passive Belt pulling", 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 8c7ddbb86..64fce4d6d 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: 828", + "_": "Missing Localizations: 801", "_": "->------------------------] Game Elements [------------------------<-", @@ -16,7 +16,6 @@ "block.create.andesite_bricks_stairs": "UNLOCALIZED: Andesite Bricks Stairs", "block.create.andesite_bricks_wall": "UNLOCALIZED: Andesite Bricks Wall", "block.create.andesite_casing": "UNLOCALIZED: Andesite Casing", - "block.create.andesite_chute_funnel": "UNLOCALIZED: Andesite Chute Funnel", "block.create.andesite_cobblestone": "UNLOCALIZED: Andesite Cobblestone", "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", @@ -35,7 +34,6 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", "block.create.brass_casing": "UNLOCALIZED: Brass Casing", - "block.create.brass_chute_funnel": "UNLOCALIZED: Brass Chute Funnel", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", @@ -98,7 +96,6 @@ "block.create.encased_fan": "Ventilador Revestida", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", "block.create.encased_shaft": "Eixo Revestido", - "block.create.extractor": "Extrator", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", @@ -195,8 +192,6 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "Pilar de Calcário", "block.create.linear_chassis": "Chassis de Translado", - "block.create.linked_extractor": "Extrator Conectado", - "block.create.linked_transposer": "UNLOCALIZED: Linked Transposer", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", "block.create.mechanical_bearing": "Rolamento Mecânico", @@ -239,7 +234,6 @@ "block.create.overgrown_limestone": "UNLOCALIZED: Overgrown Limestone", "block.create.overgrown_scoria": "UNLOCALIZED: Overgrown Scoria", "block.create.overgrown_weathered_limestone": "UNLOCALIZED: Overgrown Weathered Limestone", - "block.create.packager": "UNLOCALIZED: Packager", "block.create.paved_andesite": "UNLOCALIZED: Paved Andesite", "block.create.paved_andesite_slab": "UNLOCALIZED: Paved Andesite Slab", "block.create.paved_andesite_stairs": "UNLOCALIZED: Paved Andesite Stairs", @@ -342,14 +336,9 @@ "block.create.stressometer": "UNLOCALIZED: Stressometer", "block.create.tiled_glass": "Vidro Entalhado", "block.create.tiled_glass_pane": "Vidraça Entalhada", - "block.create.transposer": "UNLOCALIZED: Transposer", "block.create.turntable": "Mesa giratória", - "block.create.vertical_extractor": "UNLOCALIZED: Vertical Extractor", "block.create.vertical_framed_glass": "UNLOCALIZED: Vertical Framed Glass", "block.create.vertical_framed_glass_pane": "UNLOCALIZED: Vertical Framed Glass Pane", - "block.create.vertical_linked_extractor": "UNLOCALIZED: Vertical Linked Extractor", - "block.create.vertical_linked_transposer": "UNLOCALIZED: Vertical Linked Transposer", - "block.create.vertical_transposer": "UNLOCALIZED: Vertical Transposer", "block.create.water_wheel": "Roda de Água", "block.create.weathered_limestone": "Calcário Resistido", "block.create.weathered_limestone_bricks": "Tijolos de Calcário Resistido", @@ -1280,24 +1269,6 @@ "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless_ _supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - "block.create.extractor.tooltip": "EXTRATOR", - "block.create.extractor.tooltip.summary": "_Pega_ _itens_ de um _Inventário_ conectado e os joga no chão. Não irá jogar Itens até o espaço ser limpo. Pode ser configurado como para ser um _filtro._", - "block.create.extractor.tooltip.condition1": "Quando Ligado por Redstone", - "block.create.extractor.tooltip.behaviour1": "_Para_ o Extractor", - "block.create.extractor.tooltip.condition2": "UNLOCALIZED: Active Belt pulling", - "block.create.extractor.tooltip.behaviour2": "UNLOCALIZED: Extractors can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the extractor is blocked, the _belt_ _will_ _stall_.", - "block.create.extractor.tooltip.control1": "B-Direito no Espaço de Filtro", - "block.create.extractor.tooltip.action1": "Configura a _pilha_ atualmente _presente_ como um _Filtro._ Extrator irá apenas puxar apenas _tipo_ e _quantidade_ do item filtro.", - - "block.create.transposer.tooltip": "UNLOCALIZED: TRANSPOSER", - "block.create.transposer.tooltip.summary": "UNLOCALIZED: _Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_.", - "block.create.transposer.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone", - "block.create.transposer.tooltip.behaviour1": "UNLOCALIZED: _Pauses_ the Transposer.", - "block.create.transposer.tooltip.condition2": "UNLOCALIZED: Active Belt pulling", - "block.create.transposer.tooltip.behaviour2": "UNLOCALIZED: Transposers can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the transposer is backed up, the _belt_ _will_ _stall_.", - "block.create.transposer.tooltip.control1": "UNLOCALIZED: R-Click on Filter Space", - "block.create.transposer.tooltip.action1": "UNLOCALIZED: Assigns currently _held_ _stack_ as the _Filter_. The Transposer will pull the item _type_ and _count_ of the filter stack exclusively.", - "block.create.deployer.tooltip": "UNLOCALIZED: DEPLOYER", "block.create.deployer.tooltip.summary": "UNLOCALIZED: _Punches_, _Uses_, and _Activates_. This machine will try to _imitate_ a _player_ as a much as possible. Can _Take_ and _Deposit_ _items_ in adjacent _Inventory_. Can be assigned an item-stack as a _filter_.", "block.create.deployer.tooltip.condition1": "UNLOCALIZED: When Rotated", @@ -1305,24 +1276,6 @@ "block.create.deployer.tooltip.condition2": "UNLOCALIZED: R-Clicked with Wrench", "block.create.deployer.tooltip.behaviour2": "UNLOCALIZED: Toggles punch mode. In _punch_ _mode_, the Deployer will attempt to use its item to _break_ _blocks_ or _hurt_ _entities_.", - "block.create.linked_extractor.tooltip": "EXTRATOR CONECTADO", - "block.create.linked_extractor.tooltip.summary": "_Pega_ _itens_ de um _Inventário_ e os joga no chão. Não vai jogar Itens até que o espaço ser limpo. Pode ser configurado como para ser um _filtro._ Pode ser controlado remotamente via _Conexão_ de _Redstone._", - "block.create.linked_extractor.tooltip.condition1": "Quando Conexão de Redstone Ativa", - "block.create.linked_extractor.tooltip.behaviour1": "_Para_ o Extrator", - "block.create.linked_extractor.tooltip.control1": "B-Direito no Espaço de Filtro", - "block.create.linked_extractor.tooltip.action1": "Configura a _pilha_ atualmente _presente_ como um _Filtro._ Extrator irá apenas puxar apenas _tipo_ e _quantidade_ do item filtro.", - "block.create.linked_extractor.tooltip.control2": "B-Direito no Espaço de Frequência", - "block.create.linked_extractor.tooltip.action2": "Configura a _pilha_ atualmente _presente_ como parte da Frequência a ouvir. Quando um _Conexão_ de _Redstone_ transmissor da mesma frequência é ligado, esse Extrator irá parar.", - - "block.create.linked_transposer.tooltip": "UNLOCALIZED: LINKED TRANSPOSER", - "block.create.linked_transposer.tooltip.summary": "UNLOCALIZED: _Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_. Can be controlled remotely via a _Redstone_ _Link_.", - "block.create.linked_transposer.tooltip.condition1": "UNLOCALIZED: When Redstone Link Active", - "block.create.linked_transposer.tooltip.behaviour1": "UNLOCALIZED: _Pauses_ the Transposer.", - "block.create.linked_transposer.tooltip.control1": "UNLOCALIZED: R-Click on Filter Space", - "block.create.linked_transposer.tooltip.action1": "UNLOCALIZED: Assigns currently _held_ _stack_ as the _Filter_. The Transposer will only pull items that match the item _type_ and _count_ of the filter stack.", - "block.create.linked_transposer.tooltip.control2": "UNLOCALIZED: R-Click on Frequency Space", - "block.create.linked_transposer.tooltip.action2": "UNLOCALIZED: Assigns the currently _held_ _item_ as part of the Frequency listened on. Whenever a transmitting _Redstone_ _Link_ of the same frequency is powered, this Transposer will pause.", - "block.create.funnel.tooltip": "FUNIL DE ESTEIRA", "block.create.funnel.tooltip.summary": "Coleta itens passando numa _Esteira_ _Mecânica_ e os insere no _Inventário_ conetado, se possível. Precisa estar diretamente _sobre_ uma Esteira, com a abertura virada contra o movimento da Esteira. O inventário precisa estar na mesma altura que o funil.", "block.create.funnel.tooltip.condition1": "UNLOCALIZED: Passive Belt pulling", 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 d19ffd7fb..b10bb0dee 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 822", + "_": "Missing Localizations: 795", "_": "->------------------------] Game Elements [------------------------<-", @@ -16,7 +16,6 @@ "block.create.andesite_bricks_stairs": "UNLOCALIZED: Andesite Bricks Stairs", "block.create.andesite_bricks_wall": "UNLOCALIZED: Andesite Bricks Wall", "block.create.andesite_casing": "UNLOCALIZED: Andesite Casing", - "block.create.andesite_chute_funnel": "UNLOCALIZED: Andesite Chute Funnel", "block.create.andesite_cobblestone": "UNLOCALIZED: Andesite Cobblestone", "block.create.andesite_cobblestone_slab": "UNLOCALIZED: Andesite Cobblestone Slab", "block.create.andesite_cobblestone_stairs": "UNLOCALIZED: Andesite Cobblestone Stairs", @@ -35,7 +34,6 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "UNLOCALIZED: Brass Block", "block.create.brass_casing": "UNLOCALIZED: Brass Casing", - "block.create.brass_chute_funnel": "UNLOCALIZED: Brass Chute Funnel", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", @@ -98,7 +96,6 @@ "block.create.encased_fan": "Вентилятор", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", "block.create.encased_shaft": "Вальный привод", - "block.create.extractor": "Экстрактор", "block.create.fancy_andesite_bricks": "UNLOCALIZED: Fancy Andesite Bricks", "block.create.fancy_andesite_bricks_slab": "UNLOCALIZED: Fancy Andesite Bricks Slab", "block.create.fancy_andesite_bricks_stairs": "UNLOCALIZED: Fancy Andesite Bricks Stairs", @@ -195,8 +192,6 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "Известняковая колонна", "block.create.linear_chassis": "Поступательная рама", - "block.create.linked_extractor": "Сигнальный экстрактор", - "block.create.linked_transposer": "UNLOCALIZED: Linked Transposer", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", "block.create.mechanical_bearing": "Механический подшипник", @@ -239,7 +234,6 @@ "block.create.overgrown_limestone": "UNLOCALIZED: Overgrown Limestone", "block.create.overgrown_scoria": "UNLOCALIZED: Overgrown Scoria", "block.create.overgrown_weathered_limestone": "UNLOCALIZED: Overgrown Weathered Limestone", - "block.create.packager": "UNLOCALIZED: Packager", "block.create.paved_andesite": "UNLOCALIZED: Paved Andesite", "block.create.paved_andesite_slab": "UNLOCALIZED: Paved Andesite Slab", "block.create.paved_andesite_stairs": "UNLOCALIZED: Paved Andesite Stairs", @@ -342,14 +336,9 @@ "block.create.stressometer": "UNLOCALIZED: Stressometer", "block.create.tiled_glass": "Плиточное стекло", "block.create.tiled_glass_pane": "Плиточная стеклянная панель", - "block.create.transposer": "UNLOCALIZED: Transposer", "block.create.turntable": "Поворотный стол", - "block.create.vertical_extractor": "UNLOCALIZED: Vertical Extractor", "block.create.vertical_framed_glass": "UNLOCALIZED: Vertical Framed Glass", "block.create.vertical_framed_glass_pane": "UNLOCALIZED: Vertical Framed Glass Pane", - "block.create.vertical_linked_extractor": "UNLOCALIZED: Vertical Linked Extractor", - "block.create.vertical_linked_transposer": "UNLOCALIZED: Vertical Linked Transposer", - "block.create.vertical_transposer": "UNLOCALIZED: Vertical Transposer", "block.create.water_wheel": "Водяное колесо", "block.create.weathered_limestone": "Обветренный известняк", "block.create.weathered_limestone_bricks": "Кирпичи из обветренного известняка", @@ -1280,24 +1269,6 @@ "block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot", "block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless_ _supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - "block.create.extractor.tooltip": "EXTRACTOR", - "block.create.extractor.tooltip.summary": "_Извлекает_ _предметы_ из прилагаемого _инвентаря_ и бросает на землю. Не будет бросать предметы до тех пор, пока пространство не освободится. Может быть назначен _фильтр_ в виде стака предметов.", - "block.create.extractor.tooltip.condition1": "Когда запитан", - "block.create.extractor.tooltip.behaviour1": "_Приостанавливает_ экстрактор", - "block.create.extractor.tooltip.condition2": "UNLOCALIZED: Active Belt pulling", - "block.create.extractor.tooltip.behaviour2": "UNLOCALIZED: Extractors can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the extractor is blocked, the _belt_ _will_ _stall_.", - "block.create.extractor.tooltip.control1": "ПКМ по фильтру", - "block.create.extractor.tooltip.action1": "Устанавливает _стак_ _в_ _руке_ в качестве _фильтра._ Экстрактор будет извлекать _определённый_ _предмет_ в _определённом_ _количестве_ по фильтру.", - - "block.create.transposer.tooltip": "UNLOCALIZED: TRANSPOSER", - "block.create.transposer.tooltip.summary": "UNLOCALIZED: _Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_.", - "block.create.transposer.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone", - "block.create.transposer.tooltip.behaviour1": "UNLOCALIZED: _Pauses_ the Transposer.", - "block.create.transposer.tooltip.condition2": "UNLOCALIZED: Active Belt pulling", - "block.create.transposer.tooltip.behaviour2": "UNLOCALIZED: Transposers can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the transposer is backed up, the _belt_ _will_ _stall_.", - "block.create.transposer.tooltip.control1": "UNLOCALIZED: R-Click on Filter Space", - "block.create.transposer.tooltip.action1": "UNLOCALIZED: Assigns currently _held_ _stack_ as the _Filter_. The Transposer will pull the item _type_ and _count_ of the filter stack exclusively.", - "block.create.deployer.tooltip": "UNLOCALIZED: DEPLOYER", "block.create.deployer.tooltip.summary": "UNLOCALIZED: _Punches_, _Uses_, and _Activates_. This machine will try to _imitate_ a _player_ as a much as possible. Can _Take_ and _Deposit_ _items_ in adjacent _Inventory_. Can be assigned an item-stack as a _filter_.", "block.create.deployer.tooltip.condition1": "UNLOCALIZED: When Rotated", @@ -1305,24 +1276,6 @@ "block.create.deployer.tooltip.condition2": "UNLOCALIZED: R-Clicked with Wrench", "block.create.deployer.tooltip.behaviour2": "UNLOCALIZED: Toggles punch mode. In _punch_ _mode_, the Deployer will attempt to use its item to _break_ _blocks_ or _hurt_ _entities_.", - "block.create.linked_extractor.tooltip": "LINKED EXTRACTOR", - "block.create.linked_extractor.tooltip.summary": "_Извлекает_ _предметы_ из прилагаемого _инвентаря_ и бросает на землю. Не будет бросать предметы до тех пор, пока пространство не освободится. Может быть назначен _фильтр_ в виде стака предметов. Может управляться дистанционно через _Передатчик_ _сигнала._", - "block.create.linked_extractor.tooltip.condition1": "Когда соединение активно", - "block.create.linked_extractor.tooltip.behaviour1": "_Приостанавливает_ экстрактор", - "block.create.linked_extractor.tooltip.control1": "ПКМ по фильтру", - "block.create.linked_extractor.tooltip.action1": "Устанавливает _стак_ _в_ _руке_ в качестве _фильтра._ Экстрактор будет извлекать _определённый_ _предмет_ в _определённом_ _количестве_ по фильтру.", - "block.create.linked_extractor.tooltip.control2": "ПКМ по частоте", - "block.create.linked_extractor.tooltip.action2": "Устанавливает _частоту_ для этого экстрактора. При передаче сигнала с передающего _Сигнального_ _соединения_ экстрактор будет приостановлен.", - - "block.create.linked_transposer.tooltip": "UNLOCALIZED: LINKED TRANSPOSER", - "block.create.linked_transposer.tooltip.summary": "UNLOCALIZED: _Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_. Can be controlled remotely via a _Redstone_ _Link_.", - "block.create.linked_transposer.tooltip.condition1": "UNLOCALIZED: When Redstone Link Active", - "block.create.linked_transposer.tooltip.behaviour1": "UNLOCALIZED: _Pauses_ the Transposer.", - "block.create.linked_transposer.tooltip.control1": "UNLOCALIZED: R-Click on Filter Space", - "block.create.linked_transposer.tooltip.action1": "UNLOCALIZED: Assigns currently _held_ _stack_ as the _Filter_. The Transposer will only pull items that match the item _type_ and _count_ of the filter stack.", - "block.create.linked_transposer.tooltip.control2": "UNLOCALIZED: R-Click on Frequency Space", - "block.create.linked_transposer.tooltip.action2": "UNLOCALIZED: Assigns the currently _held_ _item_ as part of the Frequency listened on. Whenever a transmitting _Redstone_ _Link_ of the same frequency is powered, this Transposer will pause.", - "block.create.funnel.tooltip": "BELT FUNNEL", "block.create.funnel.tooltip.summary": "Собирает входящие предметы на _Механической_ _ленте_ и по возможности кладет их в прилагаемый _инвентарь._ Должен быть непосредственно _над_ лентой, с проёмом, смотрящим против направления ленты. Инвентарь должен быть на той же высоте, что и воронка.", "block.create.funnel.tooltip.condition1": "UNLOCALIZED: Passive Belt pulling", 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 cc4c5f364..69da95740 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 85", + "_": "Missing Localizations: 82", "_": "->------------------------] Game Elements [------------------------<-", @@ -16,7 +16,6 @@ "block.create.andesite_bricks_stairs": "安山岩砖楼梯", "block.create.andesite_bricks_wall": "安山岩砖墙", "block.create.andesite_casing": "安山机壳", - "block.create.andesite_chute_funnel": "UNLOCALIZED: Andesite Chute Funnel", "block.create.andesite_cobblestone": "安山岩圆石", "block.create.andesite_cobblestone_slab": "安山岩圆石台阶", "block.create.andesite_cobblestone_stairs": "安山岩圆石楼梯", @@ -35,7 +34,6 @@ "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", "block.create.brass_block": "黄铜块", "block.create.brass_casing": "黄铜机壳", - "block.create.brass_chute_funnel": "UNLOCALIZED: Brass Chute Funnel", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", @@ -98,7 +96,6 @@ "block.create.encased_fan": "鼓风机", "block.create.encased_fluid_pipe": "UNLOCALIZED: Encased Fluid Pipe", "block.create.encased_shaft": "齿轮箱", - "block.create.extractor": "提取器", "block.create.fancy_andesite_bricks": "方纹安山岩砖", "block.create.fancy_andesite_bricks_slab": "方纹安山岩砖台阶", "block.create.fancy_andesite_bricks_stairs": "方纹安山岩砖楼梯", @@ -195,8 +192,6 @@ "block.create.limestone_cobblestone_wall": "石灰岩圆石墙", "block.create.limestone_pillar": "竖纹石灰岩", "block.create.linear_chassis": "机壳底盘", - "block.create.linked_extractor": "无线提取器", - "block.create.linked_transposer": "无线传输器", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", "block.create.mechanical_bearing": "动力轴承", @@ -239,7 +234,6 @@ "block.create.overgrown_limestone": "生草石灰岩", "block.create.overgrown_scoria": "生草熔渣", "block.create.overgrown_weathered_limestone": "生草风化石灰岩", - "block.create.packager": "UNLOCALIZED: Packager", "block.create.paved_andesite": "安山岩铺路石", "block.create.paved_andesite_slab": "安山岩铺路石台阶", "block.create.paved_andesite_stairs": "安山岩铺路石楼梯", @@ -342,14 +336,9 @@ "block.create.stressometer": "应力表", "block.create.tiled_glass": "十字玻璃窗", "block.create.tiled_glass_pane": "十字玻璃窗板", - "block.create.transposer": "传输器", "block.create.turntable": "转盘", - "block.create.vertical_extractor": "竖直提取器", "block.create.vertical_framed_glass": "竖直边框玻璃", "block.create.vertical_framed_glass_pane": "竖直边框玻璃板", - "block.create.vertical_linked_extractor": "竖直无限提取器", - "block.create.vertical_linked_transposer": "竖直无线传输器", - "block.create.vertical_transposer": "竖直传输器", "block.create.water_wheel": "水车", "block.create.weathered_limestone": "风化石灰岩", "block.create.weathered_limestone_bricks": "风化石灰岩砖", @@ -1280,24 +1269,6 @@ "block.create.creative_crate.tooltip.condition1": "当标记了物品时", "block.create.creative_crate.tooltip.behaviour1": "容器将会从虚空中提供_无限量_的标记物品,并且任何放置到容器中的物品都会被_送入虚空_", - "block.create.extractor.tooltip": "EXTRACTOR", - "block.create.extractor.tooltip.summary": "从连接的_容器_里自动将物品_输出_到外面,如果前方已经有物品,则在物品被移动前不会继续输出. 可以设置_白名单过滤_.", - "block.create.extractor.tooltip.condition1": "当提供红石信号时", - "block.create.extractor.tooltip.behaviour1": "_暂停_自动输出", - "block.create.extractor.tooltip.condition2": "放置在传送带上时", - "block.create.extractor.tooltip.behaviour2": "当传送带被_黄铜机壳_加固时,使用提取器可以将传送带上的物品_提取_出来. 当提取器堵塞时,传送带将会停下.", - "block.create.extractor.tooltip.control1": "当右键过滤框时", - "block.create.extractor.tooltip.action1": "将当前持有的_物品数量_的物品设置为物品_过滤白名单_,且输出此_数量_的物品.", - - "block.create.transposer.tooltip": "TRANSPOSER", - "block.create.transposer.tooltip.summary": "将过滤框_白名单_中的物品_传输_到指定的容器.", - "block.create.transposer.tooltip.condition1": "当给予红石信号时", - "block.create.transposer.tooltip.behaviour1": "_暂停_传输.", - "block.create.transposer.tooltip.condition2": "放置在传送带上时", - "block.create.transposer.tooltip.behaviour2": "当传送带被_黄铜机壳_加固时,使用_传输器_可以将传送带上的物品_提取_出来. 当传输器堵塞时,传送带将会停下.", - "block.create.transposer.tooltip.control1": "当右键过滤框时", - "block.create.transposer.tooltip.action1": "将当前持有的_物品数量_的物品设置为物品_过滤白名单_,且输出此_数量_的物品.", - "block.create.deployer.tooltip": "DEPLOYER", "block.create.deployer.tooltip.summary": "它是一个_机械手_,将尽可能_模仿玩家_的行为,也能将方块从容器中取出并_放置_. 可以设置_白名单_.", "block.create.deployer.tooltip.condition1": "被供能时", @@ -1305,24 +1276,6 @@ "block.create.deployer.tooltip.condition2": "当使用扳手时", "block.create.deployer.tooltip.behaviour2": "将会启用拳头模式,在拳头模式之下,机械臂将会试图使用手中的物品_破坏方块_,或者_攻击实体_.", - "block.create.linked_extractor.tooltip": "LINKED EXTRACTOR", - "block.create.linked_extractor.tooltip.summary": "从连接的_容器_里自动将物品_输出_到外面,如果前方已经有物品,则在物品被移动前不会继续输出. 可以设置_白名单过滤_.可以使用_无线红石信号终端_控制.", - "block.create.linked_extractor.tooltip.condition1": "当无线红石信号激活时", - "block.create.linked_extractor.tooltip.behaviour1": "_暂停_输出物品", - "block.create.linked_extractor.tooltip.control1": "右键过滤框时", - "block.create.linked_extractor.tooltip.action1": "将当前持有的_物品数量_的物品设置为物品_过滤白名单_,且输出此_数量_的物品.", - "block.create.linked_extractor.tooltip.control2": "当右键提取器侧面的频道框时", - "block.create.linked_extractor.tooltip.action2": "手持任意物品为其设置_频道_,将接收_无线红石终端_相应频道,可以用两个物品来组合标记频道.", - - "block.create.linked_transposer.tooltip": "LINKED TRANSPOSER", - "block.create.linked_transposer.tooltip.summary": "将过滤框_白名单_中的物品_传输_到指定的容器.能够使用_无线红石信号终端_控制", - "block.create.linked_transposer.tooltip.condition1": "当无线红石信号触发时", - "block.create.linked_transposer.tooltip.behaviour1": "暂停传输", - "block.create.linked_transposer.tooltip.control1": "当右键过滤框时", - "block.create.linked_transposer.tooltip.action1": "将当前持有的_物品数量_的物品设置为物品_过滤白名单_,且输出此_数量_的物品.", - "block.create.linked_transposer.tooltip.control2": "当右键传输器侧面的频道框时", - "block.create.linked_transposer.tooltip.action2": "手持任意物品为其设置_频道_,将接收_无线红石终端_相应频道,可以用两个物品来组合标记频道.", - "block.create.funnel.tooltip": "FUNNEL", "block.create.funnel.tooltip.summary": "接收传送带上的物品到_连接的容器_,必须放置在_正对_传送带的_方向_及_高度_.", "block.create.funnel.tooltip.condition1": "提取传送带物品", diff --git a/src/generated/resources/assets/create/models/block/andesite_chute_funnel_pull.json b/src/generated/resources/assets/create/models/block/andesite_chute_funnel_pull.json deleted file mode 100644 index 4561dbc7a..000000000 --- a/src/generated/resources/assets/create/models/block/andesite_chute_funnel_pull.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "create:block/chute_funnel/block", - "textures": { - "particle": "create:block/andesite_casing", - "3": "create:block/andesite_funnel_pull", - "1_2": "create:block/andesite_funnel_back", - "4": "create:block/andesite_funnel_plating" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/andesite_chute_funnel_push.json b/src/generated/resources/assets/create/models/block/andesite_chute_funnel_push.json deleted file mode 100644 index 5e9dde5b1..000000000 --- a/src/generated/resources/assets/create/models/block/andesite_chute_funnel_push.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "create:block/chute_funnel/block", - "textures": { - "particle": "create:block/andesite_casing", - "3": "create:block/andesite_funnel_push", - "1_2": "create:block/andesite_funnel_back", - "4": "create:block/andesite_funnel_plating" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brass_chute_funnel_pull.json b/src/generated/resources/assets/create/models/block/brass_chute_funnel_pull.json deleted file mode 100644 index f5621e7c1..000000000 --- a/src/generated/resources/assets/create/models/block/brass_chute_funnel_pull.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "create:block/chute_funnel/block", - "textures": { - "particle": "create:block/brass_casing", - "3": "create:block/brass_funnel_pull", - "1_2": "create:block/brass_funnel_back", - "4": "create:block/brass_funnel_plating" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brass_chute_funnel_pull_powered.json b/src/generated/resources/assets/create/models/block/brass_chute_funnel_pull_powered.json deleted file mode 100644 index 4905bfe91..000000000 --- a/src/generated/resources/assets/create/models/block/brass_chute_funnel_pull_powered.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "create:block/chute_funnel/block", - "textures": { - "particle": "create:block/brass_casing", - "3": "create:block/brass_funnel_pull_powered", - "1_2": "create:block/brass_funnel_back", - "4": "create:block/brass_funnel_plating" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brass_chute_funnel_push.json b/src/generated/resources/assets/create/models/block/brass_chute_funnel_push.json deleted file mode 100644 index c7fa3fa20..000000000 --- a/src/generated/resources/assets/create/models/block/brass_chute_funnel_push.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "create:block/chute_funnel/block", - "textures": { - "particle": "create:block/brass_casing", - "3": "create:block/brass_funnel_push", - "1_2": "create:block/brass_funnel_back", - "4": "create:block/brass_funnel_plating" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brass_chute_funnel_push_powered.json b/src/generated/resources/assets/create/models/block/brass_chute_funnel_push_powered.json deleted file mode 100644 index 549934816..000000000 --- a/src/generated/resources/assets/create/models/block/brass_chute_funnel_push_powered.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "parent": "create:block/chute_funnel/block", - "textures": { - "particle": "create:block/brass_casing", - "3": "create:block/brass_funnel_push_powered", - "1_2": "create:block/brass_funnel_back", - "4": "create:block/brass_funnel_plating" - } -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/extractor.json b/src/generated/resources/assets/create/models/item/extractor.json deleted file mode 100644 index b1020a4b7..000000000 --- a/src/generated/resources/assets/create/models/item/extractor.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "create:block/extractor/horizontal" -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/linked_extractor.json b/src/generated/resources/assets/create/models/item/linked_extractor.json deleted file mode 100644 index 496b86e3f..000000000 --- a/src/generated/resources/assets/create/models/item/linked_extractor.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "create:block/extractor/horizontal_linked" -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/linked_transposer.json b/src/generated/resources/assets/create/models/item/linked_transposer.json deleted file mode 100644 index 6cee96fc1..000000000 --- a/src/generated/resources/assets/create/models/item/linked_transposer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "create:block/transposer/horizontal_linked" -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/packager.json b/src/generated/resources/assets/create/models/item/packager.json deleted file mode 100644 index 18467506e..000000000 --- a/src/generated/resources/assets/create/models/item/packager.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "create:block/packager/item" -} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/transposer.json b/src/generated/resources/assets/create/models/item/transposer.json deleted file mode 100644 index 0fedb1b93..000000000 --- a/src/generated/resources/assets/create/models/item/transposer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "parent": "create:block/transposer/block" -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/andesite_chute_funnel.json b/src/generated/resources/data/create/loot_tables/blocks/andesite_chute_funnel.json deleted file mode 100644 index c6403dc5a..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/andesite_chute_funnel.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:andesite_funnel" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/brass_chute_funnel.json b/src/generated/resources/data/create/loot_tables/blocks/brass_chute_funnel.json deleted file mode 100644 index c23027b20..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/brass_chute_funnel.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:brass_funnel" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/extractor.json b/src/generated/resources/data/create/loot_tables/blocks/extractor.json deleted file mode 100644 index 3a44e834b..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/extractor.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:extractor" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/linked_extractor.json b/src/generated/resources/data/create/loot_tables/blocks/linked_extractor.json deleted file mode 100644 index 3faa7e519..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/linked_extractor.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:linked_extractor" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/linked_transposer.json b/src/generated/resources/data/create/loot_tables/blocks/linked_transposer.json deleted file mode 100644 index 31ecac893..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/linked_transposer.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:linked_transposer" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/packager.json b/src/generated/resources/data/create/loot_tables/blocks/packager.json deleted file mode 100644 index f3daac615..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/packager.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:packager" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/transposer.json b/src/generated/resources/data/create/loot_tables/blocks/transposer.json deleted file mode 100644 index 846ecd381..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/transposer.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:transposer" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/vertical_extractor.json b/src/generated/resources/data/create/loot_tables/blocks/vertical_extractor.json deleted file mode 100644 index 3a44e834b..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/vertical_extractor.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:extractor" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/vertical_linked_extractor.json b/src/generated/resources/data/create/loot_tables/blocks/vertical_linked_extractor.json deleted file mode 100644 index 3faa7e519..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/vertical_linked_extractor.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:linked_extractor" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/vertical_linked_transposer.json b/src/generated/resources/data/create/loot_tables/blocks/vertical_linked_transposer.json deleted file mode 100644 index 31ecac893..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/vertical_linked_transposer.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:linked_transposer" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/vertical_transposer.json b/src/generated/resources/data/create/loot_tables/blocks/vertical_transposer.json deleted file mode 100644 index 846ecd381..000000000 --- a/src/generated/resources/data/create/loot_tables/blocks/vertical_transposer.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "type": "minecraft:block", - "pools": [ - { - "rolls": 1, - "entries": [ - { - "type": "minecraft:item", - "name": "create:transposer" - } - ], - "conditions": [ - { - "condition": "minecraft:survives_explosion" - } - ] - } - ] -} \ 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 58314746e..ca0269645 100644 --- a/src/generated/resources/data/create/tags/blocks/brittle.json +++ b/src/generated/resources/data/create/tags/blocks/brittle.json @@ -7,10 +7,6 @@ "create:pulley_magnet", "create:furnace_engine", "create:redstone_link", - "create:extractor", - "create:vertical_extractor", - "create:linked_extractor", - "create:vertical_linked_extractor", "#minecraft:doors", "minecraft:flower_pot", "minecraft:bell" diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 55dc91c70..4b3ffde0e 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -23,7 +23,6 @@ import com.simibubi.create.content.contraptions.components.actors.PortableStorag import com.simibubi.create.content.contraptions.components.actors.SawMovementBehaviour; import com.simibubi.create.content.contraptions.components.actors.SeatBlock; import com.simibubi.create.content.contraptions.components.actors.SeatMovementBehaviour; -import com.simibubi.create.content.contraptions.components.actors.StorageInterfaceMovement; import com.simibubi.create.content.contraptions.components.clock.CuckooClockBlock; import com.simibubi.create.content.contraptions.components.crafter.CrafterCTBehaviour; import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterBlock; @@ -109,24 +108,16 @@ import com.simibubi.create.content.logistics.block.diodes.PulseRepeaterBlock; import com.simibubi.create.content.logistics.block.diodes.PulseRepeaterGenerator; import com.simibubi.create.content.logistics.block.diodes.ToggleLatchBlock; import com.simibubi.create.content.logistics.block.diodes.ToggleLatchGenerator; -import com.simibubi.create.content.logistics.block.extractor.ExtractorBlock; -import com.simibubi.create.content.logistics.block.extractor.ExtractorMovementBehaviour; -import com.simibubi.create.content.logistics.block.extractor.LinkedExtractorBlock; -import com.simibubi.create.content.logistics.block.extractor.VerticalExtractorGenerator; import com.simibubi.create.content.logistics.block.funnel.AndesiteBeltFunnelBlock; -import com.simibubi.create.content.logistics.block.funnel.AndesiteChuteFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.AndesiteFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelGenerator; import com.simibubi.create.content.logistics.block.funnel.BrassBeltFunnelBlock; -import com.simibubi.create.content.logistics.block.funnel.BrassChuteFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.BrassFunnelBlock; -import com.simibubi.create.content.logistics.block.funnel.ChuteFunnelGenerator; import com.simibubi.create.content.logistics.block.funnel.FunnelMovementBehaviour; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateBlock; import com.simibubi.create.content.logistics.block.inventories.CreativeCrateBlock; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmBlock; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmItem; -import com.simibubi.create.content.logistics.block.packager.PackagerBlock; import com.simibubi.create.content.logistics.block.redstone.AnalogLeverBlock; import com.simibubi.create.content.logistics.block.redstone.ContactMovementBehaviour; import com.simibubi.create.content.logistics.block.redstone.NixieTubeBlock; @@ -135,9 +126,6 @@ import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkBlock; import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkGenerator; import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchBlock; -import com.simibubi.create.content.logistics.block.transposer.LinkedTransposerBlock; -import com.simibubi.create.content.logistics.block.transposer.TransposerBlock; -import com.simibubi.create.content.logistics.block.transposer.VerticalTransposerGenerator; import com.simibubi.create.content.palettes.MetalBlock; import com.simibubi.create.content.schematics.block.SchematicTableBlock; import com.simibubi.create.content.schematics.block.SchematicannonBlock; @@ -165,7 +153,6 @@ import net.minecraft.item.DyeColor; import net.minecraft.state.properties.PistonType; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; -import net.minecraft.util.Direction.Axis; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.generators.ConfiguredModel; import net.minecraftforge.common.ToolType; @@ -683,7 +670,7 @@ public class AllBlocks { public static final BlockEntry PORTABLE_STORAGE_INTERFACE = REGISTRATE.block("portable_storage_interface", PortableStorageInterfaceBlock::new) .initialProperties(SharedProperties::stone) - .onRegister(addMovementBehaviour(new StorageInterfaceMovement())) +// .onRegister(addMovementBehaviour(new StorageInterfaceMovement())) .blockstate(BlockStateGen.directionalBlockProvider(false)) .simpleItem() .register(); @@ -860,13 +847,6 @@ public class AllBlocks { .loot((p, b) -> p.registerDropping(b, ANDESITE_FUNNEL.get())) .register(); - public static final BlockEntry ANDESITE_CHUTE_FUNNEL = - REGISTRATE.block("andesite_chute_funnel", AndesiteChuteFunnelBlock::new) - .initialProperties(SharedProperties::stone) - .blockstate(new ChuteFunnelGenerator("andesite")::generate) - .loot((p, b) -> p.registerDropping(b, ANDESITE_FUNNEL.get())) - .register(); - public static final BlockEntry BRASS_FUNNEL = REGISTRATE.block("brass_funnel", BrassFunnelBlock::new) .initialProperties(SharedProperties::softMetal) @@ -881,13 +861,6 @@ public class AllBlocks { .loot((p, b) -> p.registerDropping(b, BRASS_FUNNEL.get())) .register(); - public static final BlockEntry BRASS_CHUTE_FUNNEL = - REGISTRATE.block("brass_chute_funnel", BrassChuteFunnelBlock::new) - .initialProperties(SharedProperties::softMetal) - .blockstate(new ChuteFunnelGenerator("brass")::generate) - .loot((p, b) -> p.registerDropping(b, BRASS_FUNNEL.get())) - .register(); - public static final BlockEntry ANDESITE_TUNNEL = REGISTRATE.block("andesite_tunnel", BeltTunnelBlock::new) .transform(BuilderTransformers.beltTunnel("andesite", new ResourceLocation("block/polished_andesite"))) @@ -908,25 +881,14 @@ public class AllBlocks { .transform(customItemModel("_", "block")) .register(); - public static final BlockEntry REDSTONE_LINK = - REGISTRATE.block("redstone_link", RedstoneLinkBlock::new) - .initialProperties(SharedProperties::wooden) - .tag(AllBlockTags.BRITTLE.tag) - .blockstate(new RedstoneLinkGenerator()::generate) - .addLayer(() -> RenderType::getCutoutMipped) + public static final BlockEntry BELT_OBSERVER = + REGISTRATE.block("belt_observer", BeltObserverBlock::new) + .initialProperties(SharedProperties::stone) + .blockstate(BlockStateGen.beltObserver()) .item() - .transform(customItemModel("_", "transmitter")) + .transform(customItemModel()) .register(); - public static final BlockEntry NIXIE_TUBE = REGISTRATE.block("nixie_tube", NixieTubeBlock::new) - .initialProperties(SharedProperties::softMetal) - .properties(p -> p.lightValue(5)) - .blockstate(new NixieTubeGenerator()::generate) - .addLayer(() -> RenderType::getTranslucent) - .item() - .transform(customItemModel()) - .register(); - public static final BlockEntry STOCKPILE_SWITCH = REGISTRATE.block("stockpile_switch", StockpileSwitchBlock::new) .initialProperties(SharedProperties::stone) @@ -945,93 +907,23 @@ public class AllBlocks { .transform(BuilderTransformers.crate("creative")) .register(); - public static final BlockEntry BELT_OBSERVER = - REGISTRATE.block("belt_observer", BeltObserverBlock::new) - .initialProperties(SharedProperties::stone) - .blockstate(BlockStateGen.beltObserver()) - .item() - .transform(customItemModel()) - .register(); - - public static final BlockEntry PACKAGER = REGISTRATE.block("packager", PackagerBlock::new) + public static final BlockEntry NIXIE_TUBE = REGISTRATE.block("nixie_tube", NixieTubeBlock::new) .initialProperties(SharedProperties::softMetal) - .transform(StressConfigDefaults.setImpact(4.0)) - .properties(Block.Properties::nonOpaque) - .blockstate((c, p) -> p.getVariantBuilder(c.get()) - .forAllStates(s -> ConfiguredModel.builder() - .modelFile(AssetLookup.partialBaseModel(c, p)) - .rotationY(s.get(PackagerBlock.HORIZONTAL_AXIS) == Axis.X ? 90 : 0) - .build())) + .properties(p -> p.lightValue(5)) + .blockstate(new NixieTubeGenerator()::generate) + .addLayer(() -> RenderType::getTranslucent) .item() .transform(customItemModel()) .register(); - public static final BlockEntry EXTRACTOR = REGISTRATE.block("extractor", ExtractorBlock::new) - .initialProperties(SharedProperties::softMetal) - .tag(AllBlockTags.BRITTLE.tag) - .onRegister(addMovementBehaviour(new ExtractorMovementBehaviour())) - .blockstate((c, p) -> p.horizontalBlock(c.get(), AssetLookup.forPowered(c, p, c.getName() + "/horizontal"))) - .item() - .transform(customItemModel("_", "horizontal")) - .register(); - - public static final BlockEntry VERTICAL_EXTRACTOR = - REGISTRATE.block("vertical_extractor", ExtractorBlock.Vertical::new) - .initialProperties(SharedProperties::softMetal) + public static final BlockEntry REDSTONE_LINK = + REGISTRATE.block("redstone_link", RedstoneLinkBlock::new) + .initialProperties(SharedProperties::wooden) .tag(AllBlockTags.BRITTLE.tag) - .blockstate(new VerticalExtractorGenerator(false)::generate) - .loot((p, b) -> p.registerDropping(b, EXTRACTOR.get())) - .register(); - - public static final BlockEntry LINKED_EXTRACTOR = REGISTRATE - .block("linked_extractor", LinkedExtractorBlock::new) - .tag(AllBlockTags.BRITTLE.tag) - .initialProperties(SharedProperties::softMetal) - .addLayer(() -> RenderType::getCutoutMipped) - .blockstate((c, p) -> p.horizontalBlock(c.get(), AssetLookup.forPowered(c, p, "extractor/horizontal_linked"))) - .item() - .transform(customItemModel("extractor", "horizontal_linked")) - .register(); - - public static final BlockEntry VERTICAL_LINKED_EXTRACTOR = - REGISTRATE.block("vertical_linked_extractor", LinkedExtractorBlock.Vertical::new) - .initialProperties(SharedProperties::softMetal) - .tag(AllBlockTags.BRITTLE.tag) - .blockstate(new VerticalExtractorGenerator(true)::generate) - .loot((p, b) -> p.registerDropping(b, LINKED_EXTRACTOR.get())) + .blockstate(new RedstoneLinkGenerator()::generate) .addLayer(() -> RenderType::getCutoutMipped) - .register(); - - public static final BlockEntry TRANSPOSER = REGISTRATE.block("transposer", TransposerBlock::new) - .initialProperties(SharedProperties::softMetal) - .blockstate((c, p) -> p.horizontalBlock(c.get(), AssetLookup.forPowered(c, p, c.getName() + "/block"), 180)) - .item() - .transform(customItemModel("_", "block")) - .register(); - - public static final BlockEntry VERTICAL_TRANSPOSER = - REGISTRATE.block("vertical_transposer", TransposerBlock.Vertical::new) - .initialProperties(SharedProperties::softMetal) - .blockstate(new VerticalTransposerGenerator(false)::generate) - .loot((p, b) -> p.registerDropping(b, TRANSPOSER.get())) - .register(); - - public static final BlockEntry LINKED_TRANSPOSER = - REGISTRATE.block("linked_transposer", LinkedTransposerBlock::new) - .initialProperties(SharedProperties::softMetal) - .addLayer(() -> RenderType::getCutoutMipped) - .blockstate( - (c, p) -> p.horizontalBlock(c.get(), AssetLookup.forPowered(c, p, "transposer/horizontal_linked"), 180)) .item() - .transform(customItemModel("transposer", "horizontal_linked")) - .register(); - - public static final BlockEntry VERTICAL_LINKED_TRANSPOSER = - REGISTRATE.block("vertical_linked_transposer", LinkedTransposerBlock.Vertical::new) - .initialProperties(SharedProperties::softMetal) - .blockstate(new VerticalTransposerGenerator(true)::generate) - .loot((p, b) -> p.registerDropping(b, LINKED_TRANSPOSER.get())) - .addLayer(() -> RenderType::getCutoutMipped) + .transform(customItemModel("_", "transmitter")) .register(); public static final BlockEntry ANALOG_LEVER = diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index 15692364e..38b6daf44 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -30,11 +30,6 @@ public class AllShapes { MOTOR_BLOCK = shape(3, 0, 3, 13, 14, 13).forDirectional(), FOUR_VOXEL_POLE = shape(6, 0, 6, 10, 16, 10).forAxis(), SIX_VOXEL_POLE = shape(5, 0, 5, 11, 16, 11).forAxis(), EIGHT_VOXEL_POLE = shape(4, 0, 4, 12, 16, 12).forAxis(), - EXTRACTOR = shape(4, 2, 11, 12, 10, 17).forDirectional(SOUTH) - .withVerticalShapes(cuboid(4, 11, 4, 12, 17, 12)), - TRANSPOSER = shape(4, 4, -1, 12, 12, 1).add(5, 5, 0, 11, 11, 16) - .add(4, 4, 11, 12, 12, 17) - .forDirectional(SOUTH), FURNACE_ENGINE = shape(1, 1, 0, 15, 15, 16).add(0, 0, 9, 16, 16, 14) .forHorizontal(Direction.SOUTH), PORTABLE_STORAGE_INTERFACE = shape(0, 0, 0, 16, 12, 16).add(3, 12, 3, 13, 16, 13) @@ -73,10 +68,6 @@ public class AllShapes { .add(1, 6, 1, 15, 10, 15) .add(0, 10, 0, 16, 13, 16) .forDirectional(UP), - CHUTE_FUNNEL = shape(3, -2, 3, 13, 2, 13).add(2, 2, 2, 14, 6, 14) - .add(0, 8, 0, 16, 14, 16) - .add(1, 5, 1, 15, 18, 15) - .forDirectional(UP), BELT_FUNNEL_RETRACTED = shape(3, -5, 14, 13, 13, 19).add(0, -5, 8, 16, 16, 14) .forHorizontal(NORTH), BELT_FUNNEL_EXTENDED = shape(3, -4, 6, 13, 13, 17).add(2, -4, 10, 14, 14, 14) diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index 49bf6e6cb..70e537b4a 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -62,7 +62,11 @@ import com.simibubi.create.content.contraptions.relays.advanced.sequencer.Sequen import com.simibubi.create.content.contraptions.relays.belt.BeltRenderer; import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; import com.simibubi.create.content.contraptions.relays.elementary.SimpleKineticTileEntity; -import com.simibubi.create.content.contraptions.relays.encased.*; +import com.simibubi.create.content.contraptions.relays.encased.AdjustablePulleyTileEntity; +import com.simibubi.create.content.contraptions.relays.encased.ClutchTileEntity; +import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftRenderer; +import com.simibubi.create.content.contraptions.relays.encased.EncasedShaftTileEntity; +import com.simibubi.create.content.contraptions.relays.encased.SplitShaftRenderer; import com.simibubi.create.content.contraptions.relays.gauge.GaugeRenderer; import com.simibubi.create.content.contraptions.relays.gauge.SpeedGaugeTileEntity; import com.simibubi.create.content.contraptions.relays.gauge.StressGaugeTileEntity; @@ -81,19 +85,18 @@ import com.simibubi.create.content.logistics.block.depot.DepotTileEntity; import com.simibubi.create.content.logistics.block.diodes.AdjustablePulseRepeaterTileEntity; import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterRenderer; import com.simibubi.create.content.logistics.block.diodes.AdjustableRepeaterTileEntity; -import com.simibubi.create.content.logistics.block.extractor.ExtractorTileEntity; -import com.simibubi.create.content.logistics.block.extractor.LinkedExtractorTileEntity; import com.simibubi.create.content.logistics.block.funnel.FunnelRenderer; import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; import com.simibubi.create.content.logistics.block.inventories.AdjustableCrateTileEntity; import com.simibubi.create.content.logistics.block.inventories.CreativeCrateTileEntity; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmRenderer; import com.simibubi.create.content.logistics.block.mechanicalArm.ArmTileEntity; -import com.simibubi.create.content.logistics.block.packager.PackagerRenderer; -import com.simibubi.create.content.logistics.block.packager.PackagerTileEntity; -import com.simibubi.create.content.logistics.block.redstone.*; -import com.simibubi.create.content.logistics.block.transposer.LinkedTransposerTileEntity; -import com.simibubi.create.content.logistics.block.transposer.TransposerTileEntity; +import com.simibubi.create.content.logistics.block.redstone.AnalogLeverRenderer; +import com.simibubi.create.content.logistics.block.redstone.AnalogLeverTileEntity; +import com.simibubi.create.content.logistics.block.redstone.NixieTubeRenderer; +import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity; +import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkTileEntity; +import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchTileEntity; import com.simibubi.create.content.schematics.block.SchematicTableTileEntity; import com.simibubi.create.content.schematics.block.SchematicannonRenderer; import com.simibubi.create.content.schematics.block.SchematicannonTileEntity; @@ -447,40 +450,10 @@ public class AllTileEntities { public static final TileEntityEntry FUNNEL = Create.registrate() .tileEntity("funnel", FunnelTileEntity::new) - .validBlocks(AllBlocks.BRASS_FUNNEL, AllBlocks.BRASS_BELT_FUNNEL, AllBlocks.BRASS_CHUTE_FUNNEL, AllBlocks.ANDESITE_FUNNEL, AllBlocks.ANDESITE_BELT_FUNNEL, AllBlocks.ANDESITE_CHUTE_FUNNEL) + .validBlocks(AllBlocks.BRASS_FUNNEL, AllBlocks.BRASS_BELT_FUNNEL, AllBlocks.ANDESITE_FUNNEL, AllBlocks.ANDESITE_BELT_FUNNEL) .renderer(() -> FunnelRenderer::new) .register(); - public static final TileEntityEntry PACKAGER = Create.registrate() - .tileEntity("packager", PackagerTileEntity::new) - .validBlocks(AllBlocks.PACKAGER) - .renderer(() -> PackagerRenderer::new) - .register(); - - public static final TileEntityEntry EXTRACTOR = Create.registrate() - .tileEntity("extractor", ExtractorTileEntity::new) - .validBlocks(AllBlocks.EXTRACTOR, AllBlocks.VERTICAL_EXTRACTOR) - .renderer(() -> SmartTileEntityRenderer::new) - .register(); - - public static final TileEntityEntry LINKED_EXTRACTOR = Create.registrate() - .tileEntity("linked_extractor", LinkedExtractorTileEntity::new) - .validBlocks(AllBlocks.LINKED_EXTRACTOR, AllBlocks.VERTICAL_LINKED_EXTRACTOR) - .renderer(() -> SmartTileEntityRenderer::new) - .register(); - - public static final TileEntityEntry TRANSPOSER = Create.registrate() - .tileEntity("transposer", TransposerTileEntity::new) - .validBlocks(AllBlocks.TRANSPOSER, AllBlocks.VERTICAL_TRANSPOSER) - .renderer(() -> SmartTileEntityRenderer::new) - .register(); - - public static final TileEntityEntry LINKED_TRANSPOSER = Create.registrate() - .tileEntity("linked_transposer", LinkedTransposerTileEntity::new) - .validBlocks(AllBlocks.LINKED_TRANSPOSER, AllBlocks.VERTICAL_LINKED_TRANSPOSER) - .renderer(() -> SmartTileEntityRenderer::new) - .register(); - public static final TileEntityEntry BELT_OBSERVER = Create.registrate() .tileEntity("belt_observer", BeltObserverTileEntity::new) .validBlocks(AllBlocks.BELT_OBSERVER) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/actors/StorageInterfaceMovement.java b/src/main/java/com/simibubi/create/content/contraptions/components/actors/StorageInterfaceMovement.java index ea8997c43..c6442a00f 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/actors/StorageInterfaceMovement.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/actors/StorageInterfaceMovement.java @@ -1,157 +1,157 @@ -package com.simibubi.create.content.contraptions.components.actors; - -import java.util.function.Predicate; - -import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour; -import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; -import com.simibubi.create.content.logistics.block.transposer.TransposerBlock; -import com.simibubi.create.content.logistics.block.transposer.TransposerTileEntity; -import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.item.ItemHelper; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.SingleTargetAutoExtractingBehaviour; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTUtil; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.Direction.Axis; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.World; -import net.minecraftforge.items.IItemHandlerModifiable; -import net.minecraftforge.items.ItemHandlerHelper; - -public class StorageInterfaceMovement extends MovementBehaviour { - - private static final String _exporting_ = "Exporting"; - private static final String _delay_ = "Delay"; - private static final String _workingPos_ = "WorkingPos"; - - @Override - public Vec3d getActiveAreaOffset(MovementContext context) { - return new Vec3d(context.state.get(PortableStorageInterfaceBlock.FACING).getDirectionVec()).scale(.85f); - } - - @Override - public void visitNewPosition(MovementContext context, BlockPos pos) { - Direction currentFacing = getCurrentFacing(context); - TransposerTileEntity transposer = getValidTransposer(context.world, pos, currentFacing.getAxis()); - if (transposer == null) - return; - context.data.put(_workingPos_, NBTUtil.writeBlockPos(pos)); - context.data.putBoolean(_exporting_, - TransposerBlock.getBlockFacing(transposer.getBlockState()) != currentFacing); - context.stall = true; - } - - @Override - public void tick(MovementContext context) { - if (!context.data.contains(_workingPos_)) - return; - if (context.world.isRemote) - return; - - BlockPos pos = NBTUtil.readBlockPos(context.data.getCompound(_workingPos_)); - TransposerTileEntity transposer = getValidTransposer(context.world, pos, getCurrentFacing(context).getAxis()); - if (transposer == null) { - reset(context); - return; - } - - int nextExtract = context.data.getInt(_delay_); - if (nextExtract > 0) { - nextExtract--; - context.data.putInt(_delay_, nextExtract); - return; - } - - boolean extract = context.data.getBoolean(_exporting_); - boolean success = false; - IItemHandlerModifiable inv = context.contraption.inventory; - SingleTargetAutoExtractingBehaviour extracting = - TileEntityBehaviour.get(transposer, SingleTargetAutoExtractingBehaviour.TYPE); - FilteringBehaviour filtering = TileEntityBehaviour.get(transposer, FilteringBehaviour.TYPE); - - if (extract) { - // Export from Contraption - Predicate test = extracting.getFilterTest(); - int exactAmount = extracting.getAmountToExtract(); - ItemStack itemExtracted = ItemStack.EMPTY; - if (exactAmount != -1) - itemExtracted = ItemHelper.extract(inv, test, exactAmount, false); - else - itemExtracted = ItemHelper.extract(inv, test, transposer::amountToExtract, false); - - if (!itemExtracted.isEmpty()) { - transposer.onExtract(itemExtracted); - success = exactAmount == -1; - } - - } else { - // Import to Contraption - if (extracting != null) { - extracting.setSynchronized(false); - extracting.withAdditionalFilter(stack -> { - if (filtering.anyAmount()) - return true; - return ItemHandlerHelper.insertItemStacked(inv, stack, true).isEmpty(); - }); - - extracting.withAmountThreshold(stack -> { - ItemStack tester = stack.copy(); - tester.setCount(tester.getMaxStackSize()); - return stack.getCount() - ItemHandlerHelper.insertItemStacked(inv, stack, true).getCount(); - }); - - extracting.setCallback(stack -> { - ItemHandlerHelper.insertItemStacked(inv, stack, false); - }); - - success = extracting.extract() && filtering.anyAmount(); - extracting.setSynchronized(true); - transposer.applyFilteringCallbacks(); - extracting.setCallback(transposer::onExtract); - } - } - - if (!success) { - reset(context); - return; - } - - context.data.putInt(_delay_, AllConfigs.SERVER.logistics.extractorDelay.get()); - } - - @Override - public void stopMoving(MovementContext context) { - reset(context); - } - - public void reset(MovementContext context) { - context.data.remove(_workingPos_); - context.data.remove(_delay_); - context.data.remove(_exporting_); - context.stall = false; - } - - private TransposerTileEntity getValidTransposer(World world, BlockPos pos, Axis validAxis) { - TileEntity te = world.getTileEntity(pos); - if (!(te instanceof TransposerTileEntity)) - return null; - if (TransposerBlock.getBlockFacing(world.getBlockState(pos)).getAxis() != validAxis) - return null; - if (world.isBlockPowered(pos)) - return null; - return (TransposerTileEntity) te; - } - - private Direction getCurrentFacing(MovementContext context) { - Vec3d directionVec = new Vec3d(context.state.get(PortableStorageInterfaceBlock.FACING).getDirectionVec()); - directionVec = VecHelper.rotate(directionVec, context.rotation.x, context.rotation.y, context.rotation.z); - return Direction.getFacingFromVector(directionVec.x, directionVec.y, directionVec.z); - } - -} +//package com.simibubi.create.content.contraptions.components.actors; +// +//import java.util.function.Predicate; +// +//import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour; +//import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; +//import com.simibubi.create.content.logistics.block.transposer.TransposerBlock; +//import com.simibubi.create.content.logistics.block.transposer.TransposerTileEntity; +//import com.simibubi.create.foundation.config.AllConfigs; +//import com.simibubi.create.foundation.item.ItemHelper; +//import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +//import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; +//import com.simibubi.create.foundation.tileEntity.behaviour.inventory.SingleTargetAutoExtractingBehaviour; +//import com.simibubi.create.foundation.utility.VecHelper; +// +//import net.minecraft.item.ItemStack; +//import net.minecraft.nbt.NBTUtil; +//import net.minecraft.tileentity.TileEntity; +//import net.minecraft.util.Direction; +//import net.minecraft.util.Direction.Axis; +//import net.minecraft.util.math.BlockPos; +//import net.minecraft.util.math.Vec3d; +//import net.minecraft.world.World; +//import net.minecraftforge.items.IItemHandlerModifiable; +//import net.minecraftforge.items.ItemHandlerHelper; +// +//public class StorageInterfaceMovement extends MovementBehaviour { +// +// private static final String _exporting_ = "Exporting"; +// private static final String _delay_ = "Delay"; +// private static final String _workingPos_ = "WorkingPos"; +// +// @Override +// public Vec3d getActiveAreaOffset(MovementContext context) { +// return new Vec3d(context.state.get(PortableStorageInterfaceBlock.FACING).getDirectionVec()).scale(.85f); +// } +// +// @Override +// public void visitNewPosition(MovementContext context, BlockPos pos) { +// Direction currentFacing = getCurrentFacing(context); +// TransposerTileEntity transposer = getValidTransposer(context.world, pos, currentFacing.getAxis()); +// if (transposer == null) +// return; +// context.data.put(_workingPos_, NBTUtil.writeBlockPos(pos)); +// context.data.putBoolean(_exporting_, +// TransposerBlock.getBlockFacing(transposer.getBlockState()) != currentFacing); +// context.stall = true; +// } +// +// @Override +// public void tick(MovementContext context) { +// if (!context.data.contains(_workingPos_)) +// return; +// if (context.world.isRemote) +// return; +// +// BlockPos pos = NBTUtil.readBlockPos(context.data.getCompound(_workingPos_)); +// TransposerTileEntity transposer = getValidTransposer(context.world, pos, getCurrentFacing(context).getAxis()); +// if (transposer == null) { +// reset(context); +// return; +// } +// +// int nextExtract = context.data.getInt(_delay_); +// if (nextExtract > 0) { +// nextExtract--; +// context.data.putInt(_delay_, nextExtract); +// return; +// } +// +// boolean extract = context.data.getBoolean(_exporting_); +// boolean success = false; +// IItemHandlerModifiable inv = context.contraption.inventory; +// SingleTargetAutoExtractingBehaviour extracting = +// TileEntityBehaviour.get(transposer, SingleTargetAutoExtractingBehaviour.TYPE); +// FilteringBehaviour filtering = TileEntityBehaviour.get(transposer, FilteringBehaviour.TYPE); +// +// if (extract) { +// // Export from Contraption +// Predicate test = extracting.getFilterTest(); +// int exactAmount = extracting.getAmountFromFilter(); +// ItemStack itemExtracted = ItemStack.EMPTY; +// if (exactAmount != -1) +// itemExtracted = ItemHelper.extract(inv, test, exactAmount, false); +// else +// itemExtracted = ItemHelper.extract(inv, test, transposer::amountToExtract, false); +// +// if (!itemExtracted.isEmpty()) { +// transposer.onExtract(itemExtracted); +// success = exactAmount == -1; +// } +// +// } else { +// // Import to Contraption +// if (extracting != null) { +// extracting.setSynchronized(false); +// extracting.withAdditionalFilter(stack -> { +// if (filtering.anyAmount()) +// return true; +// return ItemHandlerHelper.insertItemStacked(inv, stack, true).isEmpty(); +// }); +// +// extracting.withAmountThreshold(stack -> { +// ItemStack tester = stack.copy(); +// tester.setCount(tester.getMaxStackSize()); +// return stack.getCount() - ItemHandlerHelper.insertItemStacked(inv, stack, true).getCount(); +// }); +// +// extracting.setCallback(stack -> { +// ItemHandlerHelper.insertItemStacked(inv, stack, false); +// }); +// +// success = extracting.extract() && filtering.anyAmount(); +// extracting.setSynchronized(true); +// transposer.applyFilteringCallbacks(); +// extracting.setCallback(transposer::onExtract); +// } +// } +// +// if (!success) { +// reset(context); +// return; +// } +// +// context.data.putInt(_delay_, AllConfigs.SERVER.logistics.extractorDelay.get()); +// } +// +// @Override +// public void stopMoving(MovementContext context) { +// reset(context); +// } +// +// public void reset(MovementContext context) { +// context.data.remove(_workingPos_); +// context.data.remove(_delay_); +// context.data.remove(_exporting_); +// context.stall = false; +// } +// +// private TransposerTileEntity getValidTransposer(World world, BlockPos pos, Axis validAxis) { +// TileEntity te = world.getTileEntity(pos); +// if (!(te instanceof TransposerTileEntity)) +// return null; +// if (TransposerBlock.getBlockFacing(world.getBlockState(pos)).getAxis() != validAxis) +// return null; +// if (world.isBlockPowered(pos)) +// return null; +// return (TransposerTileEntity) te; +// } +// +// private Direction getCurrentFacing(MovementContext context) { +// Vec3d directionVec = new Vec3d(context.state.get(PortableStorageInterfaceBlock.FACING).getDirectionVec()); +// directionVec = VecHelper.rotate(directionVec, context.rotation.x, context.rotation.y, context.rotation.z); +// return Direction.getFacingFromVector(directionVec.x, directionVec.y, directionVec.z); +// } +// +//} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterTileEntity.java index 2ec559970..845289274 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/crafter/MechanicalCrafterTileEntity.java @@ -17,8 +17,8 @@ import com.simibubi.create.content.contraptions.components.crafter.RecipeGridHan import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.edgeInteraction.EdgeInteractionBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InsertingBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InventoryManagementBehaviour.Attachments; +import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; +import com.simibubi.create.foundation.utility.BlockFace; import com.simibubi.create.foundation.utility.Pointing; import com.simibubi.create.foundation.utility.VecHelper; @@ -33,6 +33,7 @@ import net.minecraft.util.Direction; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; @@ -83,7 +84,7 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity { protected boolean wasPoweredBefore; protected GroupedItems groupedItemsBeforeCraft; // for rendering on client - private InsertingBehaviour inserting; + private InvManipulationBehaviour inserting; private EdgeInteractionBehaviour connectivity; public MechanicalCrafterTileEntity(TileEntityType type) { @@ -99,7 +100,7 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity { @Override public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); - inserting = new InsertingBehaviour(this, Attachments.toward(this::getTargetFacing)); + inserting = new InvManipulationBehaviour(this, this::getTargetFace); connectivity = new EdgeInteractionBehaviour(this, ConnectedInputHandler::toggleConnection) .connectivity(ConnectedInputHandler::shouldConnect) .require(AllItems.WRENCH.get()); @@ -108,13 +109,17 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity { } public void blockChanged() { - removeBehaviour(InsertingBehaviour.TYPE); - inserting = new InsertingBehaviour(this, Attachments.toward(this::getTargetFacing)); + removeBehaviour(InvManipulationBehaviour.TYPE); + inserting = new InvManipulationBehaviour(this, this::getTargetFace); putBehaviour(inserting); } - public Direction getTargetFacing() { - return MechanicalCrafterBlock.getTargetDirection(world.getBlockState(pos)); + public BlockFace getTargetFace(World world, BlockPos pos, BlockState state) { + return new BlockFace(pos, MechanicalCrafterBlock.getTargetDirection(state)); + } + + public Direction getTargetDirection() { + return MechanicalCrafterBlock.getTargetDirection(getBlockState()); } @Override @@ -329,16 +334,16 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity { protected boolean isTargetingBelt() { DirectBeltInputBehaviour behaviour = getTargetingBelt(); - return behaviour != null && behaviour.canInsertFromSide(getTargetFacing()); + return behaviour != null && behaviour.canInsertFromSide(getTargetDirection()); } protected DirectBeltInputBehaviour getTargetingBelt() { - BlockPos targetPos = pos.offset(getTargetFacing()); + BlockPos targetPos = pos.offset(getTargetDirection()); return TileEntityBehaviour.get(world, targetPos, DirectBeltInputBehaviour.TYPE); } public void tryInsert() { - if (inserting.getInventory() == null && !isTargetingBelt()) { + if (!inserting.hasInventory() && !isTargetingBelt()) { ejectWholeGrid(); return; } @@ -350,10 +355,10 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity { for (Entry, ItemStack> entry : groupedItems.grid.entrySet()) { Pair pair = entry.getKey(); ItemStack stack = entry.getValue(); - Direction facing = getTargetFacing(); + BlockFace face = getTargetFace(world, pos, getBlockState()); - ItemStack remainder = behaviour == null ? inserting.insert(stack.copy(), false) - : behaviour.handleInsertion(stack, facing, false); + ItemStack remainder = behaviour == null ? inserting.insert(stack.copy()) + : behaviour.handleInsertion(stack, face.getFace(), false); if (!remainder.isEmpty()) { stack.setCount(remainder.getCount()); continue; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerItemHandler.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerItemHandler.java index aaf093fa1..b5dcee399 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerItemHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerItemHandler.java @@ -1,5 +1,7 @@ package com.simibubi.create.content.contraptions.components.deployer; +import java.util.Iterator; + import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; @@ -74,11 +76,48 @@ public class DeployerItemHandler implements IItemHandlerModifiable { @Override public ItemStack extractItem(int slot, int amount, boolean simulate) { + if (amount == 0) + return ItemStack.EMPTY; + + ItemStack extractedFromOverflow = ItemStack.EMPTY; + ItemStack returnToOverflow = ItemStack.EMPTY; + + for (Iterator iterator = te.overflowItems.iterator(); iterator.hasNext();) { + ItemStack existing = iterator.next(); + if (existing.isEmpty()) { + iterator.remove(); + continue; + } + + int toExtract = Math.min(amount, existing.getMaxStackSize()); + if (existing.getCount() <= toExtract) { + if (!simulate) + iterator.remove(); + extractedFromOverflow = existing; + break; + } + if (!simulate) { + iterator.remove(); + returnToOverflow = ItemHandlerHelper.copyStackWithSize(existing, existing.getCount() - toExtract); + } + extractedFromOverflow = ItemHandlerHelper.copyStackWithSize(existing, toExtract); + break; + } + + if (!returnToOverflow.isEmpty()) + te.overflowItems.add(returnToOverflow); + if (!extractedFromOverflow.isEmpty()) + return extractedFromOverflow; + ItemStack held = getHeld(); if (amount == 0 || held.isEmpty()) return ItemStack.EMPTY; + if (!te.filtering.getFilter() + .isEmpty() && te.filtering.test(held)) + return ItemStack.EMPTY; if (simulate) - return held.copy().split(amount); + return held.copy() + .split(amount); ItemStack toReturn = held.split(amount); te.markDirty(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java index c286ed1cc..3c1086348 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/deployer/DeployerTileEntity.java @@ -3,27 +3,18 @@ package com.simibubi.create.content.contraptions.components.deployer; import static com.simibubi.create.content.contraptions.base.DirectionalKineticBlock.FACING; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Iterator; import java.util.List; -import java.util.stream.Collectors; - -import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.AllBlockPartials; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.curiosities.tools.SandPaperItem; import com.simibubi.create.foundation.advancement.AllTriggers; -import com.simibubi.create.foundation.item.ItemHelper; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.ExtractingBehaviour; import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.VecHelper; -import net.minecraft.entity.item.ItemEntity; -import net.minecraft.entity.player.PlayerInventory; import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; @@ -45,19 +36,10 @@ import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.Constants.NBT; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; -import net.minecraftforge.items.ItemHandlerHelper; public class DeployerTileEntity extends KineticTileEntity { - private static final List> EXTRACTING_LOCATIONS = Arrays.asList(Direction.values()) - .stream() - .map(d -> Pair.of(BlockPos.ZERO.offset(d), d.getOpposite())) - .collect(Collectors.toList()); - private FilteringBehaviour filtering; - private ExtractingBehaviour extracting; - protected State state; protected Mode mode; protected ItemStack heldItem = ItemStack.EMPTY; @@ -66,8 +48,9 @@ public class DeployerTileEntity extends KineticTileEntity { protected float reach; protected boolean boop = false; protected List overflowItems = new ArrayList<>(); - private ListNBT deferredInventoryList; + protected FilteringBehaviour filtering; private LazyOptional invHandler; + private ListNBT deferredInventoryList; enum State { WAITING, EXPANDING, RETRACTING, DUMPING; @@ -88,10 +71,7 @@ public class DeployerTileEntity extends KineticTileEntity { public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); filtering = new FilteringBehaviour(this, new DeployerFilterSlot()); - extracting = new ExtractingBehaviour(this, this::getExtractingLocations, this::onExtract); - behaviours.add(filtering); - behaviours.add(extracting); } @Override @@ -117,10 +97,6 @@ public class DeployerTileEntity extends KineticTileEntity { markDirty(); } - protected List> getExtractingLocations() { - return EXTRACTING_LOCATIONS; - } - protected int getTimerSpeed() { return (int) (getSpeed() == 0 ? 0 : MathHelper.clamp(Math.abs(getSpeed() * 2), 8, 512)); } @@ -147,9 +123,7 @@ public class DeployerTileEntity extends KineticTileEntity { ItemStack stack = player.getHeldItemMainhand(); if (state == State.WAITING) { if (!overflowItems.isEmpty()) { - tryDisposeOfItems(); - if (!overflowItems.isEmpty()) - timer = getTimerSpeed() * 10; + timer = getTimerSpeed() * 10; return; } @@ -160,16 +134,10 @@ public class DeployerTileEntity extends KineticTileEntity { sendData(); return; } - extracting.extract(1); - if (!filtering.test(stack)) - timer = getTimerSpeed() * 10; + timer = getTimerSpeed() * 10; return; } - if (filtering.getFilter() - .isEmpty() && stack.isEmpty()) - extracting.extract(1); - Direction facing = getBlockState().get(FACING); if (mode == Mode.USE && !DeployerHandler.shouldActivate(stack, world, pos.offset(facing, 2))) { timer = getTimerSpeed() * 10; @@ -213,7 +181,6 @@ public class DeployerTileEntity extends KineticTileEntity { if (state == State.RETRACTING) { state = State.WAITING; timer = 500; - returnAndDeposit(); sendData(); return; } @@ -280,59 +247,6 @@ public class DeployerTileEntity extends KineticTileEntity { heldItem = player.getHeldItemMainhand(); } - protected void returnAndDeposit() { - PlayerInventory inv = player.inventory; - for (List list : Arrays.asList(inv.armorInventory, inv.offHandInventory, inv.mainInventory)) { - for (int i = 0; i < list.size(); ++i) { - ItemStack itemstack = list.get(i); - if (itemstack.isEmpty()) - continue; - - if (list == inv.mainInventory && i == inv.currentItem && filtering.test(itemstack)) - continue; - - itemstack = insert(itemstack, false); - if (!itemstack.isEmpty()) - ItemHelper.addToList(itemstack, overflowItems); - list.set(i, ItemStack.EMPTY); - } - } - heldItem = player.getHeldItemMainhand(); - } - - protected void tryDisposeOfItems() { - boolean noInv = extracting.getInventories() - .isEmpty(); - for (Iterator iterator = overflowItems.iterator(); iterator.hasNext();) { - ItemStack itemStack = iterator.next(); - - if (noInv) { - Vec3d offset = getMovementVector(); - Vec3d outPos = VecHelper.getCenterOf(pos) - .add(offset.scale(-.65f)); - Vec3d motion = offset.scale(-.25f); - ItemEntity e = new ItemEntity(world, outPos.x, outPos.y, outPos.z, itemStack.copy()); - e.setMotion(motion); - world.addEntity(e); - iterator.remove(); - continue; - } - - itemStack = insert(itemStack, false); - if (itemStack.isEmpty()) - iterator.remove(); - } - } - - protected ItemStack insert(ItemStack stack, boolean simulate) { - for (IItemHandler inv : extracting.getInventories()) { - stack = ItemHandlerHelper.insertItemStacked(inv, stack, simulate); - if (stack.isEmpty()) - break; - } - return stack; - } - protected Vec3d getMovementVector() { if (!AllBlocks.DEPLOYER.has(getBlockState())) return Vec3d.ZERO; @@ -374,7 +288,7 @@ public class DeployerTileEntity extends KineticTileEntity { compound.put("Inventory", invNBT); compound.put("Overflow", NBTHelper.writeItemList(overflowItems)); } - + super.write(compound, clientPacket); if (!clientPacket) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java index 1aa72e89b..360c4b2db 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MechanicalMixerTileEntity.java @@ -4,14 +4,16 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.LinkedList; import java.util.List; +import java.util.Optional; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllTags; import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity; import com.simibubi.create.content.contraptions.processing.BasinOperatingTileEntity; -import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInventory; +import com.simibubi.create.content.contraptions.processing.BasinTileEntity; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock; import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel; +import com.simibubi.create.foundation.item.SmartInventory; import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; @@ -30,7 +32,6 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3d; import net.minecraftforge.fluids.FluidStack; -import net.minecraftforge.items.IItemHandler; public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { @@ -141,14 +142,14 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { } public void renderParticles() { - IItemHandler itemHandler = basinItemInv.orElse(null); - BasinInventory inv = (BasinInventory) itemHandler; - if (inv == null || world == null) + Optional basin = getBasin(); + if (!basin.isPresent() || world == null) return; - for (int slot = 0; slot < inv.getInputHandler() - .getSlots(); slot++) { - ItemStack stackInSlot = itemHandler.getStackInSlot(slot); + SmartInventory inputs = basin.get() + .getInputInventory(); + for (int slot = 0; slot < inputs.getSlots(); slot++) { + ItemStack stackInSlot = inputs.getStackInSlot(slot); if (stackInSlot.isEmpty()) continue; @@ -175,13 +176,13 @@ public class MechanicalMixerTileEntity extends BasinOperatingTileEntity { protected boolean matchBasinRecipe(IRecipe recipe) { if (!super.matchBasinRecipe(recipe)) return false; - + NonNullList ingredients = recipe.getIngredients(); List remainingItems = new ArrayList<>(); itemInputs.forEach(stack -> remainingItems.add(stack.copy())); List remainingFluids = new ArrayList<>(); fluidInputs.forEach(stack -> remainingFluids.add(stack.copy())); - + // TODO: match fluid inputs // Sort by leniency diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixingRecipe.java index 23ac71fe4..c36564c57 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/mixer/MixingRecipe.java @@ -8,10 +8,10 @@ import java.util.List; import javax.annotation.Nonnull; import com.simibubi.create.AllRecipeTypes; -import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInputInventory; import com.simibubi.create.content.contraptions.processing.ProcessingRecipe; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams; +import com.simibubi.create.foundation.item.SmartInventory; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; @@ -19,7 +19,7 @@ import net.minecraft.item.crafting.Ingredient; import net.minecraft.util.NonNullList; import net.minecraft.world.World; -public class MixingRecipe extends ProcessingRecipe { +public class MixingRecipe extends ProcessingRecipe { /** * For JEI purposes only @@ -61,7 +61,7 @@ public class MixingRecipe extends ProcessingRecipe { } @Override - public boolean matches(BasinInputInventory inv, @Nonnull World worldIn) { + public boolean matches(SmartInventory inv, @Nonnull World worldIn) { if (inv.isEmpty()) return false; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java index 315349f9b..a93bc77a1 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressTileEntity.java @@ -7,10 +7,11 @@ import java.util.Optional; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllSoundEvents; import com.simibubi.create.content.contraptions.processing.BasinOperatingTileEntity; -import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInventory; +import com.simibubi.create.content.contraptions.processing.BasinTileEntity; import com.simibubi.create.content.logistics.InWorldProcessing; import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.item.ItemHelper; +import com.simibubi.create.foundation.item.SmartInventory; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProcessingBehaviour; import com.simibubi.create.foundation.utility.NBTHelper; @@ -33,7 +34,6 @@ import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.Vec3d; import net.minecraftforge.common.util.Constants.NBT; -import net.minecraftforge.items.IItemHandler; import net.minecraftforge.items.ItemStackHandler; import net.minecraftforge.items.wrapper.RecipeWrapper; @@ -177,13 +177,13 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { if (!world.isRemote) { pressedItems.clear(); applyBasinRecipe(); - IItemHandler orElse = basinItemInv.orElse(null); - if (basinItemInv.isPresent() && orElse instanceof BasinInventory) { - BasinInventory inv = (BasinInventory) orElse; - for (int slot = 0; slot < inv.getInputHandler() - .getSlots(); slot++) { - ItemStack stackInSlot = inv.getStackInSlot(slot); + Optional basin = getBasin(); + SmartInventory inputs = basin.get() + .getInputInventory(); + if (basin.isPresent()) { + for (int slot = 0; slot < inputs.getSlots(); slot++) { + ItemStack stackInSlot = inputs.getStackInSlot(slot); if (stackInSlot.isEmpty()) continue; pressedItems.add(stackInSlot); @@ -288,7 +288,7 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { NonNullList ingredients = recipe.getIngredients(); List remainingItems = new ArrayList<>(); itemInputs.forEach(stack -> remainingItems.add(stack.copy())); - + Ingredients: for (Ingredient ingredient : ingredients) { for (ItemStack stack : remainingItems) { if (stack.isEmpty()) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementTraits.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementTraits.java index 9a5d5da36..880017bec 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementTraits.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/BlockMovementTraits.java @@ -18,10 +18,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.pis import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock.PistonState; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyBlock; import com.simibubi.create.content.contraptions.components.structureMovement.pulley.PulleyTileEntity; -import com.simibubi.create.content.logistics.block.AttachedLogisticalBlock; -import com.simibubi.create.content.logistics.block.extractor.ExtractorBlock; import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkBlock; -import com.simibubi.create.content.logistics.block.transposer.TransposerBlock; import net.minecraft.block.AbstractPressurePlateBlock; import net.minecraft.block.AbstractRailBlock; @@ -95,8 +92,6 @@ public class BlockMovementTraits { if (AllBlocks.BELT.has(blockState)) return true; - if (block instanceof ExtractorBlock) - return true; return blockState.getPushReaction() != PushReaction.BLOCK; } @@ -143,8 +138,6 @@ public class BlockMovementTraits { return direction == Direction.DOWN; if (block instanceof DoorBlock) return direction == Direction.DOWN; - if (block instanceof AttachedLogisticalBlock && !(block instanceof TransposerBlock)) - return direction == AttachedLogisticalBlock.getBlockFacing(state); if (block instanceof RedstoneLinkBlock) return direction.getOpposite() == state.get(RedstoneLinkBlock.FACING); if (block instanceof FlowerPotBlock) diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java index fdfdbd9fc..299f70405 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/pipes/FluidPipeBlock.java @@ -147,7 +147,7 @@ public class FluidPipeBlock extends SixWayBlock implements IWaterLoggable, IWren TileEntityBehaviour.get(world, pos, FluidPipeAttachmentBehaviour.TYPE); if (attachmentBehaviour == null) return false; - return attachmentBehaviour.isPipeConnectedTowards(neighbour, blockFace.getOpposite()); + return attachmentBehaviour.isPipeConnectedTowards(neighbour, blockFace); } public static boolean shouldDrawRim(ILightReader world, BlockPos pos, BlockState state, Direction direction) { @@ -219,7 +219,7 @@ public class FluidPipeBlock extends SixWayBlock implements IWaterLoggable, IWren for (Direction d : Iterate.directions) if (d != ignore) state = state.with(FACING_TO_PROPERTY_MAP.get(d), - canConnectTo(world, pos.offset(d), world.getBlockState(pos.offset(d)), d.getOpposite())); + canConnectTo(world, pos.offset(d), world.getBlockState(pos.offset(d)), d)); // See if it has enough connections Direction connectedDirection = null; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinBlock.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinBlock.java index d4d581a36..39fbddf41 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinBlock.java @@ -60,7 +60,7 @@ public class BasinBlock extends Block implements ITE, IWrenchab try { BasinTileEntity te = getTileEntity(worldIn, pos); - IItemHandlerModifiable inv = te.inventory.orElse(new ItemStackHandler(1)); + IItemHandlerModifiable inv = te.itemCapability.orElse(new ItemStackHandler(1)); for (int slot = 0; slot < inv.getSlots(); slot++) { player.inventory.placeItemBackInInventory(worldIn, inv.getStackInSlot(slot)); inv.setStackInSlot(slot, ItemStack.EMPTY); @@ -83,7 +83,7 @@ public class BasinBlock extends Block implements ITE, IWrenchab return; ItemEntity itemEntity = (ItemEntity) entityIn; withTileEntityDo(worldIn, entityIn.getPosition(), te -> { - ItemStack insertItem = ItemHandlerHelper.insertItem(te.inputItemInventory, itemEntity.getItem() + ItemStack insertItem = ItemHandlerHelper.insertItem(te.inputInventory, itemEntity.getItem() .copy(), false); if (insertItem.isEmpty()) { itemEntity.remove(); @@ -115,8 +115,8 @@ public class BasinBlock extends Block implements ITE, IWrenchab return; TileEntityBehaviour.destroy(worldIn, pos, FilteringBehaviour.TYPE); withTileEntityDo(worldIn, pos, te -> { - ItemHelper.dropContents(worldIn, pos, te.inputItemInventory); - ItemHelper.dropContents(worldIn, pos, te.outputItemInventory); + ItemHelper.dropContents(worldIn, pos, te.inputInventory); + ItemHelper.dropContents(worldIn, pos, te.outputInventory); }); worldIn.removeTileEntity(pos); } @@ -129,7 +129,7 @@ public class BasinBlock extends Block implements ITE, IWrenchab @Override public int getComparatorInputOverride(BlockState blockState, World worldIn, BlockPos pos) { try { - return ItemHelper.calcRedstoneFromInventory(getTileEntity(worldIn, pos).inputItemInventory); + return ItemHelper.calcRedstoneFromInventory(getTileEntity(worldIn, pos).inputInventory); } catch (TileEntityException e) { } return 0; diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinInputInventory.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinInputInventory.java new file mode 100644 index 000000000..6f105dd5e --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinInputInventory.java @@ -0,0 +1,27 @@ +package com.simibubi.create.content.contraptions.processing; + +import com.simibubi.create.foundation.item.SmartInventory; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.items.ItemHandlerHelper; + +public class BasinInputInventory extends SmartInventory { + + public BasinInputInventory(int slots, BasinTileEntity te) { + super(slots, te); + } + + @Override + public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { + // Only insert if no other slot already has a 'full' stack of this item + for (int i = 0; i < getSlots(); i++) { + ItemStack stackInSlot = getStackInSlot(i); + if (ItemHandlerHelper.canItemStacksStack(stack, stackInSlot) + && stackInSlot.getCount() == getStackLimit(i, stackInSlot)) + return stack; + } + + return super.insertItem(slot, stack, simulate); + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinOperatingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinOperatingTileEntity.java index 84ae8dcfb..26320f935 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinOperatingTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinOperatingTileEntity.java @@ -7,9 +7,9 @@ import java.util.stream.Collectors; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.content.contraptions.processing.BasinTileEntity.BasinInventory; import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.advancement.SimpleTrigger; +import com.simibubi.create.foundation.item.SmartInventory; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.simple.DeferralBehaviour; import com.simibubi.create.foundation.utility.recipe.RecipeFinder; @@ -27,7 +27,6 @@ import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.fluids.capability.IFluidHandler; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; -import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.ItemHandlerHelper; public abstract class BasinOperatingTileEntity extends KineticTileEntity { @@ -142,9 +141,11 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity { if (!basinItemInv.isPresent() || !basinFluidInv.isPresent()) return; - BasinInventory inv = (BasinInventory) basinItemInv.orElse(null); - IItemHandlerModifiable inputs = inv.getInputHandler(); - IItemHandlerModifiable outputs = inv.getOutputHandler(); + Optional basin = getBasin(); + if (!basin.isPresent()) + return; + SmartInventory inputs = basin.get().getInputInventory(); + SmartInventory outputs = basin.get().getOutputInventory(); List containers = new ArrayList<>(); NonNullList ingredients = lastRecipe.getIngredients(); @@ -172,9 +173,11 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity { AllTriggers.triggerForNearbyPlayers(trigger, world, pos, 4); } + outputs.allowInsertion(); ItemHandlerHelper.insertItemStacked(outputs, lastRecipe.getRecipeOutput() .copy(), false); // TODO only works for single item output containers.forEach(stack -> ItemHandlerHelper.insertItemStacked(outputs, stack, false)); + outputs.forbidInsertion(); // Continue mixing gatherInputs(); @@ -183,7 +186,7 @@ public abstract class BasinOperatingTileEntity extends KineticTileEntity { sendData(); } - getBasin().ifPresent(te -> te.contentsChanged = true); + getBasin().ifPresent(BasinTileEntity::notifyChangeOfContents); } protected List> getMatchingRecipes() { diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRenderer.java index c429249e3..447181e64 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinRenderer.java @@ -33,7 +33,7 @@ public class BasinRenderer extends SmartTileEntityRenderer { ms.translate(.5, .2f, .5); Random r = new Random(pos.hashCode()); - IItemHandlerModifiable inv = basin.inventory.orElse(new ItemStackHandler()); + IItemHandlerModifiable inv = basin.itemCapability.orElse(new ItemStackHandler()); for (int slot = 0; slot < inv.getSlots(); slot++) { ItemStack stack = inv.getStackInSlot(slot); if (stack.isEmpty()) diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java index 5b6f95422..5dcbc472c 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/BasinTileEntity.java @@ -6,6 +6,7 @@ import java.util.Optional; import javax.annotation.Nonnull; import com.simibubi.create.content.contraptions.fluids.CombinedFluidHandler; +import com.simibubi.create.foundation.item.SmartInventory; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; @@ -14,7 +15,6 @@ import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBe import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.BlockState; -import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; import net.minecraft.tileentity.ITickableTileEntity; @@ -29,101 +29,26 @@ import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; -import net.minecraftforge.items.ItemHandlerHelper; -import net.minecraftforge.items.ItemStackHandler; import net.minecraftforge.items.wrapper.CombinedInvWrapper; -import net.minecraftforge.items.wrapper.RecipeWrapper; public class BasinTileEntity extends SmartTileEntity implements ITickableTileEntity { - public boolean contentsChanged; + public BasinInputInventory inputInventory; + protected SmartInventory outputInventory; + protected LazyOptional itemCapability; + protected LazyOptional fluidCapability; + + private boolean contentsChanged; private FilteringBehaviour filtering; - protected ItemStackHandler outputItemInventory = new ItemStackHandler(9) { - protected void onContentsChanged(int slot) { - sendData(); - markDirty(); - } - }; - - public class BasinInputInventory extends RecipeWrapper { - public BasinInputInventory() { - super(inputItemInventory); - } - } - - protected ItemStackHandler inputItemInventory = new ItemStackHandler(9) { - protected void onContentsChanged(int slot) { - contentsChanged = true; - sendData(); - markDirty(); - } - - @Nonnull - public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { - for (int i = 0; i < getSlots(); i++) { - ItemStack stackInSlot = getStackInSlot(i); - if (ItemHandlerHelper.canItemStacksStack(stack, stackInSlot)) - if (stackInSlot.getCount() == getStackLimit(i, stackInSlot)) - return stack; - } - return super.insertItem(slot, stack, simulate); - } - }; - - public static class BasinInventory extends CombinedInvWrapper { - public BasinInventory(ItemStackHandler input, ItemStackHandler output) { - super(input, output); - } - - @Nonnull - @Override - public ItemStack extractItem(int slot, int amount, boolean simulate) { - if (isInput(slot)) - return ItemStack.EMPTY; - return super.extractItem(slot, amount, simulate); - } - - @Nonnull - @Override - public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { - if (!isInput(slot)) - return stack; - return super.insertItem(slot, stack, simulate); - } - - public boolean isInput(int slot) { - return getIndexForSlot(slot) == 0; - } - - public IItemHandlerModifiable getInputHandler() { - return itemHandler[0]; - } - - public IItemHandlerModifiable getOutputHandler() { - return itemHandler[1]; - } - - } - - @Override - @OnlyIn(Dist.CLIENT) - public double getMaxRenderDistanceSquared() { - return 256; - } - - protected LazyOptional inventory = - LazyOptional.of(() -> new BasinInventory(inputItemInventory, outputItemInventory)); - - protected LazyOptional fluidInventory = - LazyOptional.of(() -> new CombinedFluidHandler(9, 1000)); - - public BasinInputInventory recipeInventory; - public BasinTileEntity(TileEntityType type) { super(type); + inputInventory = new BasinInputInventory(9, this); + inputInventory.withMaxStackSize(8).forbidExtraction(); + outputInventory = new SmartInventory(9, this).forbidInsertion(); + itemCapability = LazyOptional.of(() -> new CombinedInvWrapper(inputInventory, outputInventory)); + fluidCapability = LazyOptional.of(() -> new CombinedFluidHandler(9, 1000)); contentsChanged = true; - recipeInventory = new BasinInputInventory(); } @Override @@ -138,19 +63,19 @@ public class BasinTileEntity extends SmartTileEntity implements ITickableTileEnt @Override protected void read(CompoundNBT compound, boolean clientPacket) { super.read(compound, clientPacket); - inputItemInventory.deserializeNBT(compound.getCompound("InputItems")); - outputItemInventory.deserializeNBT(compound.getCompound("OutputItems")); + inputInventory.deserializeNBT(compound.getCompound("InputItems")); + outputInventory.deserializeNBT(compound.getCompound("OutputItems")); if (compound.contains("fluids")) - fluidInventory + fluidCapability .ifPresent(combinedFluidHandler -> combinedFluidHandler.readFromNBT(compound.getList("fluids", 10))); } @Override public void write(CompoundNBT compound, boolean clientPacket) { super.write(compound, clientPacket); - compound.put("InputItems", inputItemInventory.serializeNBT()); - compound.put("OutputItems", outputItemInventory.serializeNBT()); - fluidInventory.ifPresent(combinedFuidHandler -> { + compound.put("InputItems", inputInventory.serializeNBT()); + compound.put("OutputItems", outputInventory.serializeNBT()); + fluidCapability.ifPresent(combinedFuidHandler -> { ListNBT nbt = combinedFuidHandler.getListNBT(); compound.put("fluids", nbt); }); @@ -163,8 +88,8 @@ public class BasinTileEntity extends SmartTileEntity implements ITickableTileEnt @Override public void remove() { onEmptied(); - inventory.invalidate(); - fluidInventory.invalidate(); + itemCapability.invalidate(); + fluidCapability.invalidate(); super.remove(); } @@ -172,9 +97,9 @@ public class BasinTileEntity extends SmartTileEntity implements ITickableTileEnt @Override public LazyOptional getCapability(@Nonnull Capability cap, Direction side) { if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) - return inventory.cast(); + return itemCapability.cast(); if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) - return fluidInventory.cast(); + return fluidCapability.cast(); return super.getCapability(cap, side); } @@ -198,6 +123,24 @@ public class BasinTileEntity extends SmartTileEntity implements ITickableTileEnt public FilteringBehaviour getFilter() { return filtering; } + + public void notifyChangeOfContents() { + contentsChanged = true; + } + + public SmartInventory getInputInventory() { + return inputInventory; + } + + public SmartInventory getOutputInventory() { + return outputInventory; + } + + @Override + @OnlyIn(Dist.CLIENT) + public double getMaxRenderDistanceSquared() { + return 256; + } class BasinValueBox extends ValueBoxTransform.Sided { diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltFunnelInteractionHandler.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltFunnelInteractionHandler.java index 7a5b372f4..5957bd788 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltFunnelInteractionHandler.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/transport/BeltFunnelInteractionHandler.java @@ -5,7 +5,7 @@ import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.FunnelTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InsertingBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; @@ -49,7 +49,7 @@ public class BeltFunnelInteractionHandler { return true; FunnelTileEntity funnelTE = (FunnelTileEntity) te; - InsertingBehaviour inserting = TileEntityBehaviour.get(funnelTE, InsertingBehaviour.TYPE); + InvManipulationBehaviour inserting = TileEntityBehaviour.get(funnelTE, InvManipulationBehaviour.TYPE); FilteringBehaviour filtering = TileEntityBehaviour.get(funnelTE, FilteringBehaviour.TYPE); if (inserting == null) @@ -58,7 +58,7 @@ public class BeltFunnelInteractionHandler { return true; ItemStack before = currentItem.stack.copy(); - ItemStack remainder = inserting.insert(before, false); + ItemStack remainder = inserting.insert(before); if (before.equals(remainder, false)) return true; diff --git a/src/main/java/com/simibubi/create/content/logistics/block/AttachedLogisticalBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/AttachedLogisticalBlock.java deleted file mode 100644 index dc4ea4dc3..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/AttachedLogisticalBlock.java +++ /dev/null @@ -1,124 +0,0 @@ -package com.simibubi.create.content.logistics.block; - -import com.simibubi.create.AllBlocks; -import com.simibubi.create.content.contraptions.relays.belt.BeltBlock; -import com.simibubi.create.content.contraptions.wrench.IWrenchable; -import com.simibubi.create.content.logistics.block.transposer.TransposerBlock; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.block.HorizontalBlock; -import net.minecraft.block.material.PushReaction; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.item.ItemStack; -import net.minecraft.item.ItemUseContext; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.StateContainer.Builder; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.RayTraceResult; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.IWorldReader; -import net.minecraft.world.World; - -public abstract class AttachedLogisticalBlock extends HorizontalBlock implements IWrenchable { - - public static final BooleanProperty UPWARD = BooleanProperty.create("upward"); - - public AttachedLogisticalBlock(Properties properties) { - super(properties); - } - - @Override - public ActionResultType onWrenched(BlockState state, ItemUseContext context) { - return ActionResultType.FAIL; - } - - protected abstract boolean isVertical(); - - protected abstract BlockState getVerticalDefaultState(); - - protected abstract BlockState getHorizontalDefaultState(); - - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - BlockState state = getDefaultState(); - - if (context.getFace().getAxis().isHorizontal()) { - state = state.with(HORIZONTAL_FACING, context.getFace().getOpposite()); - } else { - state = getVerticalDefaultState(); - state = state.with(UPWARD, context.getFace() != Direction.UP); - state = state.with(HORIZONTAL_FACING, context.getPlacementHorizontalFacing()); - } - - return state; - } - - @Override - public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, - PlayerEntity player) { - if (isVertical()) - return getHorizontalDefaultState().getBlock().getPickBlock(state, target, world, pos, player); - return super.getPickBlock(state, target, world, pos, player); - } - - @Override - public boolean isValidPosition(BlockState state, IWorldReader worldIn, BlockPos pos) { - Direction facing = getBlockFacing(state); - return canAttachToSide(worldIn, pos, facing); - } - - protected boolean canAttachToSide(IWorldReader worldIn, BlockPos pos, Direction facing) { - BlockPos neighbourPos = pos.offset(facing); - BlockState neighbour = worldIn.getBlockState(neighbourPos); - - if (neighbour.getBlock() instanceof TransposerBlock) - return false; - if (AllBlocks.BELT.has(neighbour)) - return BeltBlock.canAccessFromSide(facing, neighbour); - return !neighbour.getShape(worldIn, pos).isEmpty(); - } - - @Override - public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, - boolean isMoving) { - if (worldIn.isRemote) - return; - - Direction blockFacing = getBlockFacing(state); - if (fromPos.equals(pos.offset(blockFacing))) { - if (!isValidPosition(state, worldIn, pos)) { - worldIn.destroyBlock(pos, true); - return; - } - } - } - - public static Direction getBlockFacing(BlockState state) { - if (isVertical(state)) - return state.get(UPWARD) ? Direction.UP : Direction.DOWN; - return state.get(HORIZONTAL_FACING); - } - - @Override - protected void fillStateContainer(Builder builder) { - if (isVertical()) - builder.add(UPWARD); - super.fillStateContainer(builder.add(HORIZONTAL_FACING)); - } - - public static boolean isVertical(BlockState state) { - Block block = state.getBlock(); - return ((block instanceof AttachedLogisticalBlock) - && (((AttachedLogisticalBlock) state.getBlock())).isVertical()); - } - - @Override - public PushReaction getPushReaction(BlockState state) { - return PushReaction.BLOCK; - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/belts/BeltAttachableLogisticalBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/belts/BeltAttachableLogisticalBlock.java deleted file mode 100644 index 7f5da2547..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/belts/BeltAttachableLogisticalBlock.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.simibubi.create.content.logistics.block.belts; - -import com.simibubi.create.content.logistics.block.AttachedLogisticalBlock; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; - -import net.minecraft.block.BlockState; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; - -public abstract class BeltAttachableLogisticalBlock extends AttachedLogisticalBlock { - - public BeltAttachableLogisticalBlock(Properties properties) { - super(properties); - } - - @Override - public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { - if (state.hasTileEntity() && state.getBlock() != newState.getBlock()) { - TileEntityBehaviour.destroy(worldIn, pos, FilteringBehaviour.TYPE); - worldIn.removeTileEntity(pos); - } - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java index 776380e50..067d5c4b3 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/chute/ChuteTileEntity.java @@ -5,15 +5,17 @@ import java.util.List; import javax.annotation.Nullable; +import com.google.common.base.Predicates; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.components.fan.EncasedFanBlock; import com.simibubi.create.content.contraptions.components.fan.EncasedFanTileEntity; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.content.logistics.block.chute.ChuteBlock.Shape; import com.simibubi.create.content.logistics.block.funnel.BrassFunnelBlock; -import com.simibubi.create.content.logistics.block.funnel.ChuteFunnelBlock; import com.simibubi.create.content.logistics.block.funnel.FunnelBlock; import com.simibubi.create.foundation.gui.widgets.InterpolatedValue; +import com.simibubi.create.foundation.item.ItemHelper; +import com.simibubi.create.foundation.item.ItemHelper.ExtractionCountMode; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputBehaviour; @@ -39,6 +41,7 @@ import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemHandlerHelper; public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInformation { @@ -51,6 +54,9 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor LazyOptional lazyHandler; boolean canPickUpItems; + LazyOptional capAbove; + LazyOptional capBelow; + public ChuteTileEntity(TileEntityType tileEntityTypeIn) { super(tileEntityTypeIn); item = ItemStack.EMPTY; @@ -58,6 +64,8 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor itemHandler = new ChuteItemHandler(this); lazyHandler = LazyOptional.of(() -> itemHandler); canPickUpItems = false; + capAbove = LazyOptional.empty(); + capBelow = LazyOptional.empty(); } @Override @@ -79,7 +87,8 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor return false; if (getItemMotion() > 0 && getInputChutes().isEmpty()) return false; - return blockState.get(ChuteBlock.FACING) == Direction.DOWN || blockState.get(ChuteBlock.SHAPE) == Shape.INTERSECTION; + return blockState.get(ChuteBlock.FACING) == Direction.DOWN + || blockState.get(ChuteBlock.SHAPE) == Shape.INTERSECTION; } @Override @@ -91,17 +100,22 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor public void tick() { super.tick(); canPickUpItems = canDirectlyInsert(); - if (item.isEmpty()) - return; + float itemMotion = getItemMotion(); + + if (item.isEmpty()) { + if (itemMotion < 0) + handleInputFromAbove(); + if (itemMotion > 0) + handleInputFromBelow(); + return; + } + float nextOffset = itemPosition.value + itemMotion; if (itemMotion < 0) { if (nextOffset < .5f) { - if (handleSideOutput()) - return; - boolean success = handleDownwardOutput(true); - if (!success) + if (!handleDownwardOutput(true)) nextOffset = .5f; else if (nextOffset < 0) { handleDownwardOutput(world.isRemote); @@ -112,10 +126,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor if (itemMotion > 0) { if (nextOffset > .5f) { - if (handleSideOutput()) - return; - boolean success = handleUpwardOutput(true); - if (!success) + if (!handleUpwardOutput(true)) nextOffset = .5f; else if (nextOffset > 1) { handleUpwardOutput(world.isRemote); @@ -127,6 +138,22 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor itemPosition.set(nextOffset); } + private void handleInputFromAbove() { + if (!capAbove.isPresent()) + capAbove = grabCapability(Direction.UP); + if (capAbove.isPresent()) + item = + ItemHelper.extract(capAbove.orElse(null), Predicates.alwaysTrue(), ExtractionCountMode.UPTO, 16, false); + } + + private void handleInputFromBelow() { + if (!capBelow.isPresent()) + capBelow = grabCapability(Direction.DOWN); + if (capBelow.isPresent()) + item = + ItemHelper.extract(capBelow.orElse(null), Predicates.alwaysTrue(), ExtractionCountMode.UPTO, 16, false); + } + private boolean handleDownwardOutput(boolean simulate) { BlockState blockState = getBlockState(); ChuteTileEntity targetChute = getTargetChute(blockState); @@ -169,6 +196,15 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor return remainder.isEmpty(); } + if (!capBelow.isPresent()) + capBelow = grabCapability(Direction.DOWN); + if (capBelow.isPresent()) { + ItemStack remainder = ItemHandlerHelper.insertItemStacked(capBelow.orElse(null), item, simulate); + if (!simulate) + setItem(ItemStack.EMPTY); + return remainder.isEmpty(); + } + if (Block.hasSolidSideOnTop(world, pos.down())) return false; @@ -220,6 +256,15 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor return true; } + if (!capAbove.isPresent()) + capAbove = grabCapability(Direction.UP); + if (capAbove.isPresent()) { + ItemStack remainder = ItemHandlerHelper.insertItemStacked(capAbove.orElse(null), item, simulate); + if (!simulate) + setItem(ItemStack.EMPTY); + return remainder.isEmpty(); + } + if (Block.hasSolidSide(stateAbove, world, pos.up(), Direction.DOWN)) return false; if (!inputChutes.isEmpty()) @@ -237,25 +282,12 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor return true; } - private boolean handleSideOutput() { - if (world.isRemote) - return false; - for (Direction direction : Iterate.horizontalDirections) { - BlockPos funnelPos = pos.offset(direction); - BlockState funnelState = world.getBlockState(funnelPos); - if (AllBlocks.BRASS_CHUTE_FUNNEL.has(funnelState)) { - if (funnelState.get(ChuteFunnelBlock.POWERED)) - continue; - if (funnelState.get(ChuteFunnelBlock.HORIZONTAL_FACING) != direction.getOpposite()) - continue; - if (funnelState.get(ChuteFunnelBlock.PUSHING)) - continue; - ItemStack remainder = FunnelBlock.tryInsert(world, funnelPos, item.copy(), world.isRemote); - if (remainder.getCount() != item.getCount() && !world.isRemote) - setItem(remainder); - } - } - return item.isEmpty(); + private LazyOptional grabCapability(Direction side) { + BlockPos pos = this.pos.offset(side); + TileEntity te = world.getTileEntity(pos); + if (te == null || te instanceof ChuteTileEntity) + return LazyOptional.empty(); + return te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, side.getOpposite()); } public void setItem(ItemStack stack) { @@ -319,7 +351,7 @@ public class ChuteTileEntity extends SmartTileEntity implements IHaveGoggleInfor List inputChutes = getInputChutes(); if (!item.isEmpty()) InventoryHelper.spawnItemStack(world, pos.getX(), pos.getY(), pos.getZ(), item); - super.remove(); + remove(); if (targetChute != null) { targetChute.updatePull(); targetChute.propagatePush(); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorBlock.java deleted file mode 100644 index 1cd5657b6..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorBlock.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.simibubi.create.content.logistics.block.extractor; - -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllShapes; -import com.simibubi.create.AllTileEntities; -import com.simibubi.create.content.logistics.block.AttachedLogisticalBlock; -import com.simibubi.create.content.logistics.block.belts.BeltAttachableLogisticalBlock; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.StateContainer.Builder; -import net.minecraft.state.properties.BlockStateProperties; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction.Axis; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.World; - -public class ExtractorBlock extends BeltAttachableLogisticalBlock { - - public static BooleanProperty POWERED = BlockStateProperties.POWERED; - - public ExtractorBlock(Properties properties) { - super(properties); - setDefaultState(getDefaultState().with(POWERED, false)); - } - - @Override - protected boolean isVertical() { - return false; - } - - @Override - protected BlockState getVerticalDefaultState() { - return AllBlocks.VERTICAL_EXTRACTOR.getDefaultState(); - } - - @Override - protected BlockState getHorizontalDefaultState() { - return AllBlocks.EXTRACTOR.getDefaultState(); - } - - @Override - protected void fillStateContainer(Builder builder) { - super.fillStateContainer(builder.add(POWERED)); - } - - @Override - public boolean hasTileEntity(BlockState state) { - return true; - } - - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return AllTileEntities.EXTRACTOR.create(); - } - - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - return super.getStateForPlacement(context).with(POWERED, reactsToRedstone() && context.getWorld() - .isBlockPowered(context.getPos())); - } - - @Override - public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, - boolean isMoving) { - super.neighborChanged(state, worldIn, pos, blockIn, fromPos, isMoving); - - if (worldIn.isRemote) - return; - if (!reactsToRedstone()) - return; - - boolean previouslyPowered = state.get(POWERED); - if (previouslyPowered != worldIn.isBlockPowered(pos)) - worldIn.setBlockState(pos, state.cycle(POWERED), 2); - } - - protected boolean reactsToRedstone() { - return true; - } - - @Override - public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - return AllShapes.EXTRACTOR.get(getBlockFacing(state)); - } - - public static Vec3d getFilterSlotPosition(BlockState state) { - float verticalOffset = (state.getBlock() instanceof ExtractorBlock) ? 10.5f : 12.5f; - - Vec3d offsetForHorizontal = VecHelper.voxelSpace(8f, verticalOffset, 14f); - Vec3d offsetForUpward = VecHelper.voxelSpace(8f, 14.15f, 3.5f); - Vec3d offsetForDownward = VecHelper.voxelSpace(8f, 1.85f, 3.5f); - Vec3d vec = offsetForHorizontal; - - float yRot = AngleHelper.horizontalAngle(state.get(ExtractorBlock.HORIZONTAL_FACING)); - if (AttachedLogisticalBlock.isVertical(state)) - vec = state.get(AttachedLogisticalBlock.UPWARD) ? offsetForUpward : offsetForDownward; - - return VecHelper.rotateCentered(vec, yRot, Axis.Y); - } - - public static Vec3d getFilterSlotOrientation(BlockState state) { - float yRot = AngleHelper.horizontalAngle(state.get(ExtractorBlock.HORIZONTAL_FACING)); - float zRot = (AttachedLogisticalBlock.isVertical(state)) ? 0 : 90; - return new Vec3d(0, yRot, zRot); - } - - public static class Vertical extends ExtractorBlock { - public Vertical(Properties properties) { - super(properties); - } - - @Override - protected boolean isVertical() { - return true; - } - } - -} \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorMovementBehaviour.java b/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorMovementBehaviour.java deleted file mode 100644 index d4a7b4fa8..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorMovementBehaviour.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.simibubi.create.content.logistics.block.extractor; - -import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour; -import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext; -import com.simibubi.create.content.logistics.block.AttachedLogisticalBlock; -import com.simibubi.create.content.logistics.item.filter.FilterItem; -import com.simibubi.create.foundation.item.ItemHelper; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.ItemEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.SoundEvents; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.world.World; - -public class ExtractorMovementBehaviour extends MovementBehaviour { - - @Override - public void visitNewPosition(MovementContext context, BlockPos pos) { - super.visitNewPosition(context, pos); - - World world = context.world; - VoxelShape collisionShape = world.getBlockState(pos).getCollisionShape(world, pos); - if (!collisionShape.isEmpty()) - return; - if (!world.getEntitiesWithinAABB(ItemEntity.class, new AxisAlignedBB(pos)).isEmpty()) - return; - - ItemStack filter = getFilter(context); - int amount = getFilterAmount(context); - ItemStack dropped = ItemHelper.extract(context.contraption.inventory, - stack -> FilterItem.test(context.world, stack, filter), amount == 0 ? 64 : amount, false); - - if (dropped.isEmpty()) - return; - if (world.isRemote) - return; - - Vec3d entityPos = context.position; - Entity entityIn = null; - Direction facing = AttachedLogisticalBlock.getBlockFacing(context.state); - if (facing != Direction.DOWN) - entityPos = entityPos.add(0, -0.5f, 0); - - entityIn = new ItemEntity(world, entityPos.x, entityPos.y, entityPos.z, dropped); - entityIn.setMotion(Vec3d.ZERO); - ((ItemEntity) entityIn).setPickupDelay(5); - world.playSound(null, pos, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, 1/16f, .1f); - world.addEntity(entityIn); - } - - private ItemStack getFilter(MovementContext context) { - return ItemStack.read(context.tileData.getCompound("Filter")); - } - - private int getFilterAmount(MovementContext context) { - return context.tileData.getInt("FilterAmount"); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorSlots.java b/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorSlots.java deleted file mode 100644 index 3d547498a..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorSlots.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.simibubi.create.content.logistics.block.extractor; - -import static net.minecraft.block.HorizontalBlock.HORIZONTAL_FACING; - -import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.content.logistics.block.AttachedLogisticalBlock; -import com.simibubi.create.content.logistics.block.transposer.TransposerBlock; -import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.MatrixStacker; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.block.BlockState; -import net.minecraft.util.Direction.Axis; -import net.minecraft.util.math.Vec3d; - -public class ExtractorSlots { - - static class Filter extends ValueBoxTransform { - - Vec3d offsetForHorizontal = VecHelper.voxelSpace(8f, 10.5f, 14f); - Vec3d offsetForUpward = VecHelper.voxelSpace(8f, 14.15f, 3.5f); - Vec3d offsetForDownward = VecHelper.voxelSpace(8f, 1.85f, 3.5f); - - @Override - protected Vec3d getLocalOffset(BlockState state) { - Vec3d location = offsetForHorizontal; - if (state.getBlock() instanceof TransposerBlock) - location = location.add(0, 2 / 16f, 0); - if (AttachedLogisticalBlock.isVertical(state)) - location = state.get(AttachedLogisticalBlock.UPWARD) ? offsetForUpward : offsetForDownward; - return rotateHorizontally(state, location); - } - - @Override - protected void rotate(BlockState state, MatrixStack ms) { - float yRot = AngleHelper.horizontalAngle(state.get(HORIZONTAL_FACING)); - float xRot = (AttachedLogisticalBlock.isVertical(state)) ? 0 : 90; - MatrixStacker.of(ms) - .rotateY(yRot) - .rotateX(xRot); - } - - } - - public static class Link extends ValueBoxTransform.Dual { - - public Link(boolean first) { - super(first); - } - - Vec3d offsetForHorizontal = VecHelper.voxelSpace(11.5f, 4f, 14f); - Vec3d offsetForUpward = VecHelper.voxelSpace(10f, 14f, 11.5f); - Vec3d offsetForDownward = VecHelper.voxelSpace(10f, 2f, 11.5f); - - @Override - protected Vec3d getLocalOffset(BlockState state) { - Vec3d location = offsetForHorizontal; - if (state.getBlock() instanceof TransposerBlock) - location = location.add(0, 2 / 16f, 0); - if (!isFirst()) - location = location.add(0, 4 / 16f, 0); - - if (AttachedLogisticalBlock.isVertical(state)) { - location = state.get(AttachedLogisticalBlock.UPWARD) ? offsetForUpward : offsetForDownward; - if (!isFirst()) - location = location.add(-4 / 16f, 0, 0); - } - - float yRot = AngleHelper.horizontalAngle(state.get(HORIZONTAL_FACING)); - location = VecHelper.rotateCentered(location, yRot, Axis.Y); - return location; - } - - @Override - protected void rotate(BlockState state, MatrixStack ms) { - float horizontalAngle = AngleHelper.horizontalAngle(state.get(HORIZONTAL_FACING)); - boolean vertical = AttachedLogisticalBlock.isVertical(state); - float yRot = vertical ? horizontalAngle + 180 : horizontalAngle + 270; - float zRot = vertical ? (state.get(AttachedLogisticalBlock.UPWARD) ? 90 : 270) : 0; - MatrixStacker.of(ms) - .rotateY(yRot) - .rotateZ(zRot); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorTileEntity.java deleted file mode 100644 index 2cdb2e2b6..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/extractor/ExtractorTileEntity.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.simibubi.create.content.logistics.block.extractor; - -import java.util.List; - -import com.simibubi.create.AllBlocks; -import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; -import com.simibubi.create.content.contraptions.relays.belt.transport.BeltInventory; -import com.simibubi.create.content.logistics.block.AttachedLogisticalBlock; -import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.AutoExtractingBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.ExtractingBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.SingleTargetAutoExtractingBehaviour; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.entity.Entity; -import net.minecraft.entity.item.ItemEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.Direction; -import net.minecraft.util.SoundCategory; -import net.minecraft.util.SoundEvents; -import net.minecraft.util.math.AxisAlignedBB; -import net.minecraft.util.math.Vec3d; - -public class ExtractorTileEntity extends SmartTileEntity { - - protected ExtractingBehaviour extracting; - protected FilteringBehaviour filtering; - protected boolean extractingToBelt; - - public ExtractorTileEntity(TileEntityType tileEntityTypeIn) { - super(tileEntityTypeIn); - } - - @Override - public void addBehaviours(List behaviours) { - int delay = AllConfigs.SERVER.logistics.extractorDelay.get(); - extracting = - new SingleTargetAutoExtractingBehaviour(this, () -> AttachedLogisticalBlock.getBlockFacing(getBlockState()), - this::onExtract, delay).pauseWhen(this::isPowered).waitUntil(this::canExtract); - behaviours.add(extracting); - - filtering = new FilteringBehaviour(this, new ExtractorSlots.Filter()).withCallback(this::filterChanged); - filtering.showCount(); - behaviours.add(filtering); - } - - protected void onExtract(ItemStack stack) { - if (AllBlocks.BELT.has(world.getBlockState(pos.down()))) { - TileEntity te = world.getTileEntity(pos.down()); - if (te instanceof BeltTileEntity) { - if (((BeltTileEntity) te).tryInsertingFromSide(Direction.UP, stack, false)) - return; - } - } - - Vec3d entityPos = VecHelper.getCenterOf(getPos()).add(0, -0.5f, 0); - Entity entityIn = null; - Direction facing = AttachedLogisticalBlock.getBlockFacing(getBlockState()); - if (facing == Direction.DOWN) - entityPos = entityPos.add(0, .5, 0); - - entityIn = new ItemEntity(world, entityPos.x, entityPos.y, entityPos.z, stack); - entityIn.setMotion(Vec3d.ZERO); - ((ItemEntity) entityIn).setPickupDelay(5); - world.playSound(null, getPos(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.BLOCKS, .125f, .1f); - world.addEntity(entityIn); - } - - protected boolean isAttachedToBelt() { - Direction blockFacing = AttachedLogisticalBlock.getBlockFacing(getBlockState()); - return AllBlocks.BELT.has(world.getBlockState(pos.offset(blockFacing))); - } - - protected boolean isTargetingBelt() { - if (!AllBlocks.BELT.has(world.getBlockState(pos.down()))) - return false; - TileEntity te = world.getTileEntity(pos.down()); - if (te == null || !(te instanceof BeltTileEntity)) - return false; - return ((KineticTileEntity) te).getSpeed() != 0; - } - - protected boolean isPowered() { - return getBlockState().get(ExtractorBlock.POWERED); - } - - private void filterChanged(ItemStack stack) { - - } - - protected boolean canExtract() { - if (AllBlocks.BELT.has(world.getBlockState(pos.down()))) { - TileEntity te = world.getTileEntity(pos.down()); - if (te instanceof BeltTileEntity) { - BeltTileEntity belt = (BeltTileEntity) te; - if (belt.getSpeed() == 0) - return false; - BeltTileEntity controller = belt.getControllerTE(); - if (controller != null) { - BeltInventory inventory = controller.getInventory(); - if (inventory == null) - return false; - if (!inventory.canInsertAtFromSide(belt.index, Direction.UP)) - return false; - } - } - return true; - } - - List entitiesWithinAABBExcludingEntity = - world.getEntitiesWithinAABB(ItemEntity.class, new AxisAlignedBB(getPos())); - return entitiesWithinAABBExcludingEntity.isEmpty(); - } - - @Override - public void tick() { - ((AutoExtractingBehaviour) extracting).setTicking(!isAttachedToBelt()); - super.tick(); - boolean onBelt = isTargetingBelt(); - if (extractingToBelt != onBelt) { - extractingToBelt = onBelt; - ((AutoExtractingBehaviour) extracting) - .setDelay(onBelt ? 0 : AllConfigs.SERVER.logistics.extractorDelay.get()); - } - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/extractor/LinkedExtractorBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/extractor/LinkedExtractorBlock.java deleted file mode 100644 index 0b027ca9d..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/extractor/LinkedExtractorBlock.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.simibubi.create.content.logistics.block.extractor; - -import org.apache.commons.lang3.tuple.Pair; - -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllTileEntities; -import com.simibubi.create.content.logistics.block.AttachedLogisticalBlock; -import com.simibubi.create.foundation.utility.AngleHelper; -import com.simibubi.create.foundation.utility.VecHelper; - -import net.minecraft.block.BlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction.Axis; -import net.minecraft.util.math.Vec3d; -import net.minecraft.world.IBlockReader; - -public class LinkedExtractorBlock extends ExtractorBlock { - - public LinkedExtractorBlock(Properties properties) { - super(properties); - } - - @Override - protected BlockState getVerticalDefaultState() { - return AllBlocks.VERTICAL_LINKED_EXTRACTOR.getDefaultState(); - } - - @Override - protected BlockState getHorizontalDefaultState() { - return AllBlocks.LINKED_EXTRACTOR.getDefaultState(); - } - - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return AllTileEntities.LINKED_EXTRACTOR.create(); - } - - @Override - protected boolean reactsToRedstone() { - return false; - } - - public static Pair getFrequencySlotPosition(BlockState state) { - float verticalOffset = (state.getBlock() instanceof ExtractorBlock) ? 4f : 6f; - - Vec3d first = VecHelper.voxelSpace(11.5f, verticalOffset, 14f); - Vec3d second = VecHelper.voxelSpace(11.5f, 4f + verticalOffset, 14f); - - Vec3d firstUpward = VecHelper.voxelSpace(10f, 14f, 11.5f); - Vec3d secondUpward = VecHelper.voxelSpace(6f, 14f, 11.5f); - Vec3d firstDownward = VecHelper.voxelSpace(10f, 2f, 11.5f); - Vec3d secondDownward = VecHelper.voxelSpace(6f, 2f, 11.5f); - - float yRot = AngleHelper.horizontalAngle(state.get(ExtractorBlock.HORIZONTAL_FACING)); - if (AttachedLogisticalBlock.isVertical(state)) { - Boolean up = state.get(AttachedLogisticalBlock.UPWARD); - first = up ? firstUpward : firstDownward; - second = up ? secondUpward : secondDownward; - } - - first = VecHelper.rotateCentered(first, yRot, Axis.Y); - second = VecHelper.rotateCentered(second, yRot, Axis.Y); - return Pair.of(first, second); - } - - public static Vec3d getFrequencySlotOrientation(BlockState state) { - boolean vertical = AttachedLogisticalBlock.isVertical(state); - float horizontalAngle = AngleHelper.horizontalAngle(state.get(ExtractorBlock.HORIZONTAL_FACING)); - - float xRot = vertical ? (state.get(UPWARD) ? 90 : 270) : 0; - float yRot = vertical ? horizontalAngle + 180 : horizontalAngle + 270; - float zRot = vertical ? 0 : 0; - - return new Vec3d(xRot, yRot, zRot); - } - - public static class Vertical extends LinkedExtractorBlock { - public Vertical(Properties properties) { - super(properties); - } - - @Override - protected boolean isVertical() { - return true; - } - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/extractor/LinkedExtractorTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/extractor/LinkedExtractorTileEntity.java deleted file mode 100644 index 096246ca3..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/extractor/LinkedExtractorTileEntity.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.simibubi.create.content.logistics.block.extractor; - -import static net.minecraft.state.properties.BlockStateProperties.POWERED; - -import java.util.List; - -import org.apache.commons.lang3.tuple.Pair; - -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.tileEntity.behaviour.linked.LinkBehaviour; - -import net.minecraft.tileentity.TileEntityType; - -public class LinkedExtractorTileEntity extends ExtractorTileEntity { - - public boolean receivedSignal; - public LinkBehaviour receiver; - - public LinkedExtractorTileEntity(TileEntityType type) { - super(type); - } - - @Override - public void addBehaviours(List behaviours) { - Pair slots = ValueBoxTransform.Dual.makeSlots(ExtractorSlots.Link::new); - receiver = LinkBehaviour.receiver(this, slots, this::setSignal); - behaviours.add(receiver); - super.addBehaviours(behaviours); - } - - public void setSignal(int powered) { - receivedSignal = powered > 0; - } - - @Override - public void tick() { - super.tick(); - if (world.isRemote) - return; - if (receivedSignal != getBlockState().get(POWERED)) - world.setBlockState(pos, getBlockState().cycle(POWERED)); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/extractor/VerticalExtractorGenerator.java b/src/main/java/com/simibubi/create/content/logistics/block/extractor/VerticalExtractorGenerator.java deleted file mode 100644 index 6a78f11e4..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/extractor/VerticalExtractorGenerator.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.simibubi.create.content.logistics.block.extractor; - -import com.simibubi.create.foundation.data.AssetLookup; -import com.simibubi.create.foundation.data.SpecialBlockStateGen; -import com.tterrag.registrate.providers.DataGenContext; -import com.tterrag.registrate.providers.RegistrateBlockstateProvider; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraftforge.client.model.generators.ModelFile; - -public class VerticalExtractorGenerator extends SpecialBlockStateGen { - - private boolean linked; - - public VerticalExtractorGenerator(boolean linked) { - this.linked = linked; - } - - @Override - protected int getXRotation(BlockState state) { - return state.get(ExtractorBlock.Vertical.UPWARD) ? 180 : 0; - } - - @Override - protected int getYRotation(BlockState state) { - return (state.get(ExtractorBlock.UPWARD) ? 0 : 180) + horizontalAngle(state.get(ExtractorBlock.HORIZONTAL_FACING)); - } - - @Override - public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, - BlockState state) { - return AssetLookup.forPowered(ctx, prov, "extractor/vertical" + (linked ? "_linked" : "")) - .apply(state); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/AndesiteChuteFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/AndesiteChuteFunnelBlock.java deleted file mode 100644 index 80bfc2baf..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/AndesiteChuteFunnelBlock.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.simibubi.create.content.logistics.block.funnel; - -import com.simibubi.create.AllBlocks; - -public class AndesiteChuteFunnelBlock extends ChuteFunnelBlock { - - public AndesiteChuteFunnelBlock(Properties p_i48377_1_) { - super(AllBlocks.ANDESITE_FUNNEL, p_i48377_1_); - } - - @Override - public boolean hasPoweredProperty() { - return false; - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/AndesiteFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/AndesiteFunnelBlock.java index 87a3c1705..81853b3c5 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/AndesiteFunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/AndesiteFunnelBlock.java @@ -20,11 +20,4 @@ public class AndesiteFunnelBlock extends FunnelBlock { .with(BeltFunnelBlock.HORIZONTAL_FACING, facing); } - @Override - public BlockState getEquivalentChuteFunnel(IBlockReader world, BlockPos pos, BlockState state) { - Direction facing = state.get(FACING); - return AllBlocks.ANDESITE_CHUTE_FUNNEL.getDefaultState() - .with(ChuteFunnelBlock.HORIZONTAL_FACING, facing); - } - } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/BrassChuteFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/BrassChuteFunnelBlock.java deleted file mode 100644 index cba22d4e5..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/BrassChuteFunnelBlock.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.simibubi.create.content.logistics.block.funnel; - -import com.simibubi.create.AllBlocks; - -public class BrassChuteFunnelBlock extends ChuteFunnelBlock { - - public BrassChuteFunnelBlock(Properties p_i48377_1_) { - super(AllBlocks.BRASS_FUNNEL, p_i48377_1_); - } - - @Override - public boolean hasPoweredProperty() { - return true; - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/BrassFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/BrassFunnelBlock.java index 96d4bce9c..971b62232 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/BrassFunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/BrassFunnelBlock.java @@ -56,12 +56,4 @@ public class BrassFunnelBlock extends FunnelBlock { .with(POWERED, state.get(POWERED)); } - @Override - public BlockState getEquivalentChuteFunnel(IBlockReader world, BlockPos pos, BlockState state) { - Direction facing = state.get(FACING); - return AllBlocks.BRASS_CHUTE_FUNNEL.getDefaultState() - .with(ChuteFunnelBlock.HORIZONTAL_FACING, facing) - .with(POWERED, state.get(POWERED)); - } - } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/ChuteFunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/ChuteFunnelBlock.java deleted file mode 100644 index f059f6861..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/ChuteFunnelBlock.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.simibubi.create.content.logistics.block.funnel; - -import com.simibubi.create.AllShapes; -import com.simibubi.create.content.logistics.block.chute.ChuteBlock; -import com.tterrag.registrate.util.entry.BlockEntry; - -import net.minecraft.block.BlockState; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.IWorldReader; - -public abstract class ChuteFunnelBlock extends HorizontalInteractionFunnelBlock { - - public ChuteFunnelBlock(BlockEntry parent, Properties p_i48377_1_) { - super(parent, p_i48377_1_); - } - - public static boolean isOnValidChute(BlockState state, IWorldReader world, BlockPos pos) { - Direction direction = state.get(HORIZONTAL_FACING); - if (world.getBlockState(pos.offset(direction)) - .getBlock() instanceof ChuteBlock) - return true; - return false; - } - - @Override - public VoxelShape getShape(BlockState state, IBlockReader p_220053_2_, BlockPos p_220053_3_, - ISelectionContext p_220053_4_) { - return AllShapes.CHUTE_FUNNEL.get(state.get(HORIZONTAL_FACING)); - } - - @Override - protected boolean canStillInteract(BlockState state, IWorldReader world, BlockPos pos) { - return isOnValidChute(state, world, pos); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/ChuteFunnelGenerator.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/ChuteFunnelGenerator.java deleted file mode 100644 index 1bc7fa6c2..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/ChuteFunnelGenerator.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.simibubi.create.content.logistics.block.funnel; - -import com.simibubi.create.foundation.data.SpecialBlockStateGen; -import com.tterrag.registrate.providers.DataGenContext; -import com.tterrag.registrate.providers.RegistrateBlockstateProvider; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraftforge.client.model.generators.ModelFile; - -public class ChuteFunnelGenerator extends SpecialBlockStateGen { - - private String type; - - public ChuteFunnelGenerator(String type) { - this.type = type; - } - - @Override - protected int getXRotation(BlockState state) { - return 0; - } - - @Override - protected int getYRotation(BlockState state) { - return horizontalAngle(state.get(BeltFunnelBlock.HORIZONTAL_FACING)) + 180; - } - - @Override - public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, - BlockState state) { - boolean pushing = state.get(ChuteFunnelBlock.PUSHING); - boolean powered = state.has(ChuteFunnelBlock.POWERED) && state.get(ChuteFunnelBlock.POWERED); - String suffix = (pushing ? "push" : "pull") + (powered ? "_powered" : ""); - String textureName = type + "_funnel_" + suffix; - String modelName = ctx.getName() + "_" + suffix; - return prov.models() - .withExistingParent(modelName, prov.modLoc("block/chute_funnel/block")) - .texture("particle", prov.modLoc("block/" + type + "_casing")) - .texture("3", prov.modLoc("block/" + textureName)) - .texture("1_2", prov.modLoc("block/" + type + "_funnel_back")) - .texture("4", prov.modLoc("block/" + type + "_funnel_plating")); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java index aa414f12a..57fddc094 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelBlock.java @@ -10,7 +10,7 @@ import com.simibubi.create.foundation.block.ITE; import com.simibubi.create.foundation.block.ProperDirectionalBlock; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InsertingBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; import com.simibubi.create.foundation.utility.VecHelper; import net.minecraft.block.Block; @@ -106,13 +106,14 @@ public abstract class FunnelBlock extends ProperDirectionalBlock implements ITE< public static ItemStack tryInsert(World worldIn, BlockPos pos, ItemStack toInsert, boolean simulate) { FilteringBehaviour filter = TileEntityBehaviour.get(worldIn, pos, FilteringBehaviour.TYPE); - InsertingBehaviour inserter = TileEntityBehaviour.get(worldIn, pos, InsertingBehaviour.TYPE); + InvManipulationBehaviour inserter = TileEntityBehaviour.get(worldIn, pos, InvManipulationBehaviour.TYPE); if (inserter == null) return toInsert; if (filter != null && !filter.test(toInsert)) return toInsert; - ItemStack remainder = inserter.insert(toInsert, simulate); - return remainder; + if (simulate) + inserter.simulate(); + return inserter.insert(toInsert); } @Override @@ -148,22 +149,10 @@ public abstract class FunnelBlock extends ProperDirectionalBlock implements ITE< if (BeltFunnelBlock.isOnValidBelt(equivalentFunnel, world, pos)) return BeltFunnelBlock.updateShape(equivalentFunnel, world, pos); } - if (direction == facing) { - BlockState equivalentFunnel = getEquivalentChuteFunnel(null, null, state); - if (ChuteFunnelBlock.isOnValidChute(equivalentFunnel, world, pos)) - return equivalentFunnel; - } - if (direction == facing.getOpposite()) { - BlockState equivalentFunnel = getEquivalentChuteFunnel(null, null, state); - if (ChuteFunnelBlock.isOnValidChute(equivalentFunnel, world, pos)) - return equivalentFunnel; - } } return state; } - public abstract BlockState getEquivalentChuteFunnel(IBlockReader world, BlockPos pos, BlockState state); - public abstract BlockState getEquivalentBeltFunnel(IBlockReader world, BlockPos pos, BlockState state); @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java index add0d05e1..c36ef6245 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelFilterSlotPositioning.java @@ -33,11 +33,6 @@ public class FunnelFilterSlotPositioning extends ValueBoxTransform.Sided { localOffset = VecHelper.rotateCentered(southLocation, AngleHelper.horizontalAngle(getSide()), Axis.Y); } - if (AllBlocks.BRASS_CHUTE_FUNNEL.has(state)) { - Direction facing = state.get(ChuteFunnelBlock.HORIZONTAL_FACING); - localOffset = localOffset.subtract(new Vec3d(facing.getDirectionVec()).scale(2 / 16f)); - } - return localOffset; } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelItem.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelItem.java index 9167aa479..8afae31c4 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelItem.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelItem.java @@ -5,7 +5,6 @@ import net.minecraft.block.BlockState; import net.minecraft.item.BlockItem; import net.minecraft.item.BlockItemUseContext; import net.minecraft.util.Direction; -import net.minecraft.util.Rotation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import net.minecraftforge.event.entity.player.PlayerInteractEvent; @@ -44,22 +43,10 @@ public class FunnelItem extends BlockItem { FunnelBlock block = (FunnelBlock) getBlock(); Block beltFunnelBlock = block.getEquivalentBeltFunnel(world, pos, state) .getBlock(); - Block chuteFunnelBlock = block.getEquivalentChuteFunnel(world, pos, state) - .getBlock(); - BlockState equivalentBeltFunnel = beltFunnelBlock.getStateForPlacement(ctx) .with(BeltFunnelBlock.HORIZONTAL_FACING, direction); - BlockState equivalentChuteFunnel = chuteFunnelBlock.getStateForPlacement(ctx) - .with(ChuteFunnelBlock.HORIZONTAL_FACING, direction); - BlockState reversedChuteFunnel = equivalentChuteFunnel.rotate(Rotation.CLOCKWISE_180) - .cycle(ChuteFunnelBlock.PUSHING); - if (BeltFunnelBlock.isOnValidBelt(equivalentBeltFunnel, world, pos)) return BeltFunnelBlock.updateShape(equivalentBeltFunnel, world, pos); - if (ChuteFunnelBlock.isOnValidChute(equivalentChuteFunnel, world, pos)) - return equivalentChuteFunnel; - if (ChuteFunnelBlock.isOnValidChute(reversedChuteFunnel, world, pos)) - return reversedChuteFunnel; return state; } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java index 0c66a98a5..eeb479660 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/funnel/FunnelTileEntity.java @@ -1,13 +1,9 @@ package com.simibubi.create.content.logistics.block.funnel; import java.util.List; -import java.util.function.Supplier; - -import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.relays.belt.transport.TransportedItemStack; -import com.simibubi.create.content.logistics.block.chute.ChuteTileEntity; import com.simibubi.create.content.logistics.block.funnel.BeltFunnelBlock.Shape; import com.simibubi.create.foundation.gui.widgets.InterpolatedChasingValue; import com.simibubi.create.foundation.tileEntity.SmartTileEntity; @@ -16,31 +12,26 @@ import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputB import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour.TransportedResult; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.ExtractingBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InsertingBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InventoryManagementBehaviour.Attachments; +import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour.InterfaceProvider; import net.minecraft.block.BlockState; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundNBT; import net.minecraft.state.properties.BlockStateProperties; -import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntityType; import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; public class FunnelTileEntity extends SmartTileEntity { private FilteringBehaviour filtering; - private InsertingBehaviour inserting; - private ExtractingBehaviour extracting; - private DirectBeltInputBehaviour beltInputBehaviour; + private InvManipulationBehaviour invManipulation; int sendFlap; InterpolatedChasingValue flap; static enum Mode { - INVALID, PAUSED, COLLECT, BELT, CHUTE_SIDE, CHUTE_END + INVALID, PAUSED, COLLECT, BELT } public FunnelTileEntity(TileEntityType tileEntityTypeIn) { @@ -58,14 +49,6 @@ public class FunnelTileEntity extends SmartTileEntity { return Mode.PAUSED; if (state.getBlock() instanceof BeltFunnelBlock) return Mode.BELT; - if (state.getBlock() instanceof ChuteFunnelBlock) - return Mode.CHUTE_SIDE; - - Direction facing = FunnelBlock.getFunnelFacing(state); - BlockState input = world.getBlockState(pos.offset(facing)); - - if (AllBlocks.CHUTE.has(input)) - return Mode.CHUTE_END; return Mode.COLLECT; } @@ -77,39 +60,6 @@ public class FunnelTileEntity extends SmartTileEntity { tickAsBeltFunnel(); if (world.isRemote) return; - if (mode == Mode.CHUTE_SIDE) - tickAsHorizontalChuteFunnel(); - if (mode == Mode.CHUTE_END) - tickAsVerticalChuteFunnel(); - } - - public void tickAsHorizontalChuteFunnel() { - if (!getBlockState().get(ChuteFunnelBlock.PUSHING)) - return; - BlockPos chutePos = pos.offset(FunnelBlock.getFunnelFacing(getBlockState())); - TileEntity te = world.getTileEntity(chutePos); - if (!(te instanceof ChuteTileEntity)) - return; - ChuteTileEntity chute = (ChuteTileEntity) te; - extracting.setCallback(stack -> chute.setItem(stack, .5f)); - extracting.withAdditionalFilter(stack -> chute.getItem() - .isEmpty()); - extracting.extract(); - } - - public void tickAsVerticalChuteFunnel() { - Direction funnelFacing = FunnelBlock.getFunnelFacing(getBlockState()); - BlockPos chutePos = pos.offset(funnelFacing); - TileEntity te = world.getTileEntity(chutePos); - if (!(te instanceof ChuteTileEntity)) - return; - ChuteTileEntity chute = (ChuteTileEntity) te; - if (chute.getItemMotion() > 0 != (funnelFacing == Direction.UP)) - return; - extracting.setCallback(stack -> chute.setItem(stack)); - extracting.withAdditionalFilter(stack -> chute.getItem() - .isEmpty()); - extracting.extract(); } public void tickAsBeltFunnel() { @@ -119,7 +69,8 @@ public class FunnelTileEntity extends SmartTileEntity { if (world.isRemote) return; - if (!blockState.get(BeltFunnelBlock.PUSHING)) { + Boolean pushing = blockState.get(BeltFunnelBlock.PUSHING); + if (!pushing) { // Belts handle insertion from their side if (AllBlocks.BELT.has(world.getBlockState(pos.down()))) return; @@ -138,14 +89,12 @@ public class FunnelTileEntity extends SmartTileEntity { if (!inputBehaviour.canInsertFromSide(facing)) return; - extracting.setCallback(stack -> { - flap(false); - inputBehaviour.handleInsertion(stack, facing, false); - }); - - extracting.withAdditionalFilter(stack -> inputBehaviour.handleInsertion(stack, facing, true) + ItemStack stack = invManipulation.extract(-1, s -> inputBehaviour.handleInsertion(s, facing, true) .isEmpty()); - extracting.extract(); + if (stack.isEmpty()) + return; + flap(false); + inputBehaviour.handleInsertion(stack, facing, false); } private TransportedResult collectFromHandler(TransportedItemStack stack) { @@ -153,12 +102,12 @@ public class FunnelTileEntity extends SmartTileEntity { ItemStack toInsert = stack.stack.copy(); if (!filtering.test(toInsert)) return ignore; - ItemStack remainder = inserting.insert(toInsert, false); + ItemStack remainder = invManipulation.insert(toInsert); if (remainder.equals(stack.stack, false)) return ignore; - + flap(true); - + if (remainder.isEmpty()) return TransportedResult.removeItem(); TransportedItemStack changed = stack.copy(); @@ -168,26 +117,19 @@ public class FunnelTileEntity extends SmartTileEntity { @Override public void addBehaviours(List behaviours) { - Supplier>> direction = - Attachments.toward(() -> FunnelBlock.getFunnelFacing(getBlockState()) - .getOpposite()); - - inserting = new InsertingBehaviour(this, direction); - extracting = new ExtractingBehaviour(this, direction); - behaviours.add(inserting); - behaviours.add(extracting); + invManipulation = new InvManipulationBehaviour(this, InterfaceProvider.oppositeOfBlockFacing()); + behaviours.add(invManipulation); filtering = new FilteringBehaviour(this, new FunnelFilterSlotPositioning()).showCountWhen(() -> { BlockState blockState = getBlockState(); return blockState.getBlock() instanceof HorizontalInteractionFunnelBlock - && blockState.get(HorizontalInteractionFunnelBlock.PUSHING) || determineCurrentMode() == Mode.CHUTE_END; + && blockState.get(HorizontalInteractionFunnelBlock.PUSHING); }); filtering.onlyActiveWhen(this::supportsFiltering); behaviours.add(filtering); - beltInputBehaviour = new DirectBeltInputBehaviour(this).onlyInsertWhen(this::supportsDirectBeltInput) - .setInsertionHandler(this::handleDirectBeltInput); - behaviours.add(beltInputBehaviour); + behaviours.add(new DirectBeltInputBehaviour(this).onlyInsertWhen(this::supportsDirectBeltInput) + .setInsertionHandler(this::handleDirectBeltInput)); } private boolean supportsDirectBeltInput(Direction side) { @@ -207,7 +149,9 @@ public class FunnelTileEntity extends SmartTileEntity { return inserted; if (determineCurrentMode() == Mode.PAUSED) return inserted; - return inserting.insert(inserted, simulate); + if (simulate) + invManipulation.simulate(); + return invManipulation.insert(inserted); } public void flap(boolean inward) { @@ -219,7 +163,7 @@ public class FunnelTileEntity extends SmartTileEntity { return getBlockState().getBlock() instanceof BeltFunnelBlock && getBlockState().get(BeltFunnelBlock.SHAPE) == Shape.RETRACTED; } - + @Override protected void write(CompoundNBT compound, boolean clientPacket) { super.write(compound, clientPacket); @@ -228,7 +172,7 @@ public class FunnelTileEntity extends SmartTileEntity { sendFlap = 0; } } - + @Override protected void read(CompoundNBT compound, boolean clientPacket) { super.read(compound, clientPacket); diff --git a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java index 7923b5adf..0a8b96359 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/mechanicalArm/ArmInteractionPoint.java @@ -14,7 +14,7 @@ import com.simibubi.create.content.logistics.block.funnel.FunnelBlock; import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InsertingBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InvManipulationBehaviour; import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.VecHelper; @@ -336,7 +336,7 @@ public abstract class ArmInteractionPoint { @Override ItemStack insert(World world, ItemStack stack, boolean simulate) { FilteringBehaviour filtering = TileEntityBehaviour.get(world, pos, FilteringBehaviour.TYPE); - InsertingBehaviour inserter = TileEntityBehaviour.get(world, pos, InsertingBehaviour.TYPE); + InvManipulationBehaviour inserter = TileEntityBehaviour.get(world, pos, InvManipulationBehaviour.TYPE); BlockState state = world.getBlockState(pos); if (state.has(BlockStateProperties.POWERED) && state.get(BlockStateProperties.POWERED)) return stack; @@ -344,7 +344,9 @@ public abstract class ArmInteractionPoint { return stack; if (filtering != null && !filtering.test(stack)) return stack; - return inserter.insert(stack, simulate); + if (simulate) + inserter.simulate(); + return inserter.insert(stack); } @Override diff --git a/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerBlock.java deleted file mode 100644 index 8fff2fd09..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerBlock.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.simibubi.create.content.logistics.block.packager; - -import com.simibubi.create.AllTileEntities; -import com.simibubi.create.content.contraptions.base.HorizontalAxisKineticBlock; - -import net.minecraft.block.BlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockReader; - -public class PackagerBlock extends HorizontalAxisKineticBlock { - - public PackagerBlock(Properties properties) { - super(properties); - } - - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return AllTileEntities.PACKAGER.create(); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerRenderer.java b/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerRenderer.java deleted file mode 100644 index eb43f54fd..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerRenderer.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.simibubi.create.content.logistics.block.packager; - -import com.mojang.blaze3d.matrix.MatrixStack; -import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; - -import net.minecraft.block.BlockState; -import net.minecraft.client.renderer.IRenderTypeBuffer; -import net.minecraft.client.renderer.RenderType; -import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; - -public class PackagerRenderer extends KineticTileEntityRenderer { - - public PackagerRenderer(TileEntityRendererDispatcher dispatcher) { - super(dispatcher); - } - - @Override - protected void renderSafe(KineticTileEntity te, float partialTicks, MatrixStack ms, IRenderTypeBuffer buffer, - int light, int overlay) { - super.renderSafe(te, partialTicks, ms, buffer, light, overlay); - AllBlockPartials.PACKAGER_SEALER.renderOn(te.getBlockState()) - .renderInto(ms, buffer.getBuffer(RenderType.getSolid())); - } - - @Override - protected BlockState getRenderedBlockState(KineticTileEntity te) { - return shaft(te.getBlockState() - .get(PackagerBlock.HORIZONTAL_AXIS)); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerTileEntity.java deleted file mode 100644 index 89738885a..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/packager/PackagerTileEntity.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.simibubi.create.content.logistics.block.packager; - -import com.simibubi.create.content.contraptions.base.KineticTileEntity; - -import net.minecraft.tileentity.TileEntityType; - -public class PackagerTileEntity extends KineticTileEntity { - - public PackagerTileEntity(TileEntityType typeIn) { - super(typeIn); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/transposer/LinkedTransposerBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/transposer/LinkedTransposerBlock.java deleted file mode 100644 index c86246796..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/transposer/LinkedTransposerBlock.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.simibubi.create.content.logistics.block.transposer; - -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllTileEntities; - -import net.minecraft.block.BlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.IBlockReader; - -public class LinkedTransposerBlock extends TransposerBlock { - - public LinkedTransposerBlock(Properties properties) { - super(properties); - } - - @Override - protected BlockState getVerticalDefaultState() { - return AllBlocks.VERTICAL_LINKED_TRANSPOSER.getDefaultState(); - } - - @Override - protected BlockState getHorizontalDefaultState() { - return AllBlocks.LINKED_TRANSPOSER.getDefaultState(); - } - - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return AllTileEntities.LINKED_TRANSPOSER.create(); - } - - @Override - protected boolean reactsToRedstone() { - return false; - } - - public static class Vertical extends LinkedTransposerBlock { - public Vertical(Properties properties) { - super(properties); - } - - @Override - protected boolean isVertical() { - return true; - } - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/transposer/LinkedTransposerTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/transposer/LinkedTransposerTileEntity.java deleted file mode 100644 index df24df53a..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/transposer/LinkedTransposerTileEntity.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.simibubi.create.content.logistics.block.transposer; - -import static net.minecraft.state.properties.BlockStateProperties.POWERED; - -import java.util.List; - -import org.apache.commons.lang3.tuple.Pair; - -import com.simibubi.create.content.logistics.block.extractor.ExtractorSlots; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; -import com.simibubi.create.foundation.tileEntity.behaviour.linked.LinkBehaviour; - -import net.minecraft.tileentity.TileEntityType; - -public class LinkedTransposerTileEntity extends TransposerTileEntity { - - public boolean receivedSignal; - public LinkBehaviour receiver; - - public LinkedTransposerTileEntity(TileEntityType type) { - super(type); - } - - @Override - public void addBehaviours(List behaviours) { - Pair slots = ValueBoxTransform.Dual.makeSlots(ExtractorSlots.Link::new); - receiver = LinkBehaviour.receiver(this, slots, this::setSignal); - behaviours.add(receiver); - super.addBehaviours(behaviours); - } - - public void setSignal(int powered) { - receivedSignal = powered > 0; - } - - @Override - public void tick() { - super.tick(); - if (world.isRemote) - return; - if (receivedSignal != getBlockState().get(POWERED)) { - world.setBlockState(pos, getBlockState().cycle(POWERED)); - return; - } - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/transposer/TransposerBlock.java b/src/main/java/com/simibubi/create/content/logistics/block/transposer/TransposerBlock.java deleted file mode 100644 index 750df6a95..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/transposer/TransposerBlock.java +++ /dev/null @@ -1,145 +0,0 @@ -package com.simibubi.create.content.logistics.block.transposer; - -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllShapes; -import com.simibubi.create.AllTileEntities; -import com.simibubi.create.content.logistics.block.belts.BeltAttachableLogisticalBlock; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraft.item.BlockItemUseContext; -import net.minecraft.item.ItemUseContext; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.state.BooleanProperty; -import net.minecraft.state.StateContainer.Builder; -import net.minecraft.state.properties.BlockStateProperties; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.ActionResultType; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.shapes.ISelectionContext; -import net.minecraft.util.math.shapes.VoxelShape; -import net.minecraft.world.IBlockReader; -import net.minecraft.world.IWorldReader; -import net.minecraft.world.World; - -public class TransposerBlock extends BeltAttachableLogisticalBlock { - - public static BooleanProperty POWERED = BlockStateProperties.POWERED; - - public TransposerBlock(Properties properties) { - super(properties); - setDefaultState(getDefaultState().with(POWERED, false)); - } - - @Override - public boolean hasTileEntity(BlockState state) { - return true; - } - - @Override - public TileEntity createTileEntity(BlockState state, IBlockReader world) { - return AllTileEntities.TRANSPOSER.create(); - } - - @Override - protected void fillStateContainer(Builder builder) { - super.fillStateContainer(builder.add(POWERED)); - } - - @Override - public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - return AllShapes.TRANSPOSER.get(getBlockFacing(state)); - } - - @Override - protected boolean isVertical() { - return false; - } - - @Override - protected BlockState getVerticalDefaultState() { - return AllBlocks.VERTICAL_TRANSPOSER.getDefaultState(); - } - - @Override - protected BlockState getHorizontalDefaultState() { - return AllBlocks.TRANSPOSER.getDefaultState(); - } - - @Override - public ActionResultType onWrenched(BlockState state, ItemUseContext context) { - World world = context.getWorld(); - if (world.isRemote) - return ActionResultType.SUCCESS; - Direction blockFacing = getBlockFacing(state); - BlockState newState = state; - if (blockFacing.getAxis() - .isHorizontal()) - newState = state.with(HORIZONTAL_FACING, blockFacing.getOpposite()); - else - newState = state.cycle(UPWARD); - BlockPos pos = context.getPos(); - world.setBlockState(pos, newState); - TileEntity te = world.getTileEntity(pos); - if (te instanceof TransposerTileEntity) { - TransposerTileEntity transposer = (TransposerTileEntity) te; - CompoundNBT compound = new CompoundNBT(); - transposer.write(compound); - world.removeTileEntity(pos); - world.setTileEntity(pos, TileEntity.create(compound)); - } - return ActionResultType.SUCCESS; - } - - @Override - public BlockState getStateForPlacement(BlockItemUseContext context) { - BlockState stateForPlacement = super.getStateForPlacement(context); - return stateForPlacement.with(POWERED, Boolean.valueOf(context.getWorld() - .isBlockPowered(context.getPos()))); - } - - @Override - public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, - boolean isMoving) { - if (worldIn.isRemote) - return; - - Direction blockFacing = getBlockFacing(state); - if (fromPos.equals(pos.offset(blockFacing)) || fromPos.equals(pos.offset(blockFacing.getOpposite()))) { - if (!isValidPosition(state, worldIn, pos)) { - worldIn.destroyBlock(pos, true); - return; - } - } - - if (!reactsToRedstone()) - return; - - boolean previouslyPowered = state.get(POWERED); - if (previouslyPowered != worldIn.isBlockPowered(pos)) { - worldIn.setBlockState(pos, state.cycle(POWERED), 2); - } - } - - @Override - public boolean isValidPosition(BlockState state, IWorldReader worldIn, BlockPos pos) { - return true; - } - - protected boolean reactsToRedstone() { - return true; - } - - public static class Vertical extends TransposerBlock { - public Vertical(Properties properties) { - super(properties); - } - - @Override - protected boolean isVertical() { - return true; - } - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/transposer/TransposerTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/transposer/TransposerTileEntity.java deleted file mode 100644 index 06f1fc549..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/transposer/TransposerTileEntity.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.simibubi.create.content.logistics.block.transposer; - -import java.util.List; - -import com.simibubi.create.AllBlocks; -import com.simibubi.create.content.contraptions.base.KineticTileEntity; -import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity; -import com.simibubi.create.content.logistics.block.AttachedLogisticalBlock; -import com.simibubi.create.content.logistics.block.extractor.ExtractorTileEntity; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InsertingBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.inventory.InventoryManagementBehaviour.Attachments; - -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.tileentity.TileEntityType; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.items.ItemHandlerHelper; - -public class TransposerTileEntity extends ExtractorTileEntity { - - private InsertingBehaviour inserting; - - public TransposerTileEntity(TileEntityType tileEntityTypeIn) { - super(tileEntityTypeIn); - } - - @Override - public void addBehaviours(List behaviours) { - super.addBehaviours(behaviours); - inserting = new InsertingBehaviour(this, - Attachments.toward(() -> AttachedLogisticalBlock.getBlockFacing(getBlockState()).getOpposite())); - behaviours.add(inserting); - applyFilteringCallbacks(); - } - - public void applyFilteringCallbacks() { - extracting.withAmountThreshold(this::amountToExtract).withAdditionalFilter(this::shouldExtract); - } - - public void filterChanged(ItemStack stack) { - } - - public int amountToExtract(ItemStack stack) { - ItemStack tester = stack.copy(); - tester.setCount(64); - return 64 - inserting.insert(tester, true).getCount(); - } - - public boolean shouldExtract(ItemStack stack) { - if (isTargetingBelt()) { - Direction facing = AttachedLogisticalBlock.getBlockFacing(getBlockState()).getOpposite(); - BlockPos targetPos = pos.offset(facing); - BeltTileEntity te = (BeltTileEntity) world.getTileEntity(targetPos); - return te.tryInsertingFromSide(facing, stack, true); - } - - if (filtering.anyAmount()) - return true; - return inserting.insert(stack, true).isEmpty(); - } - - @Override - protected boolean isTargetingBelt() { - BlockPos targetPos = pos.offset(AttachedLogisticalBlock.getBlockFacing(getBlockState()).getOpposite()); - if (!AllBlocks.BELT.has(world.getBlockState(targetPos))) - return false; - TileEntity te = world.getTileEntity(targetPos); - if (te == null || !(te instanceof BeltTileEntity)) - return false; - return ((KineticTileEntity) te).getSpeed() != 0; - } - - @Override - protected boolean canExtract() { - return inserting.getInventory() != null; - } - - @Override - public void onExtract(ItemStack stack) { - if (isTargetingBelt()) { - Direction facing = AttachedLogisticalBlock.getBlockFacing(getBlockState()).getOpposite(); - BlockPos targetPos = pos.offset(facing); - BeltTileEntity te = (BeltTileEntity) world.getTileEntity(targetPos); - if (te.tryInsertingFromSide(facing, stack, false)) - return; - } - - ItemStack remainder = inserting.insert(stack, false); - if (!remainder.isEmpty()) - remainder = ItemHandlerHelper.insertItemStacked(extracting.getInventory(), remainder, false); - if (!remainder.isEmpty()) - super.onExtract(remainder); - } - -} diff --git a/src/main/java/com/simibubi/create/content/logistics/block/transposer/VerticalTransposerGenerator.java b/src/main/java/com/simibubi/create/content/logistics/block/transposer/VerticalTransposerGenerator.java deleted file mode 100644 index d1f648f9a..000000000 --- a/src/main/java/com/simibubi/create/content/logistics/block/transposer/VerticalTransposerGenerator.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.simibubi.create.content.logistics.block.transposer; - -import com.simibubi.create.foundation.data.AssetLookup; -import com.simibubi.create.foundation.data.SpecialBlockStateGen; -import com.tterrag.registrate.providers.DataGenContext; -import com.tterrag.registrate.providers.RegistrateBlockstateProvider; - -import net.minecraft.block.Block; -import net.minecraft.block.BlockState; -import net.minecraftforge.client.model.generators.ModelFile; - -public class VerticalTransposerGenerator extends SpecialBlockStateGen { - - private boolean linked; - - public VerticalTransposerGenerator(boolean linked) { - this.linked = linked; - } - - @Override - protected int getXRotation(BlockState state) { - return state.get(TransposerBlock.Vertical.UPWARD) ? 270 : 90; - } - - @Override - protected int getYRotation(BlockState state) { - return (state.get(TransposerBlock.Vertical.UPWARD) ? 180 : 0) - + horizontalAngle(state.get(TransposerBlock.Vertical.HORIZONTAL_FACING)); - } - - @Override - public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, - BlockState state) { - return AssetLookup.forPowered(ctx, prov, "transposer/" + (linked ? "vertical_linked" : "block")) - .apply(state); - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/item/SmartInventory.java b/src/main/java/com/simibubi/create/foundation/item/SmartInventory.java new file mode 100644 index 000000000..71ddba451 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/item/SmartInventory.java @@ -0,0 +1,121 @@ +package com.simibubi.create.foundation.item; + +import javax.annotation.Nonnull; + +import com.simibubi.create.foundation.tileEntity.SyncedTileEntity; + +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.CompoundNBT; +import net.minecraftforge.common.util.INBTSerializable; +import net.minecraftforge.items.IItemHandlerModifiable; +import net.minecraftforge.items.ItemStackHandler; +import net.minecraftforge.items.wrapper.RecipeWrapper; + +public class SmartInventory extends RecipeWrapper implements IItemHandlerModifiable, INBTSerializable { + + private boolean extractionAllowed; + private boolean insertionAllowed; + private int stackSize; + + public SmartInventory(int slots, SyncedTileEntity te) { + super(new SyncedStackHandler(slots, te)); + insertionAllowed = true; + extractionAllowed = true; + stackSize = 64; + } + + public SmartInventory allowInsertion() { + insertionAllowed = true; + return this; + } + + public SmartInventory allowExtraction() { + extractionAllowed = true; + return this; + } + + public SmartInventory forbidInsertion() { + insertionAllowed = false; + return this; + } + + public SmartInventory forbidExtraction() { + extractionAllowed = false; + return this; + } + + public SmartInventory withMaxStackSize(int stackSize) { + this.stackSize = stackSize; + return this; + } + + @Override + public int getSlots() { + return inv.getSlots(); + } + + @Override + public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { + if (!insertionAllowed) + return stack; + return inv.insertItem(slot, stack, simulate); + } + + @Override + public ItemStack extractItem(int slot, int amount, boolean simulate) { + if (!extractionAllowed) + return ItemStack.EMPTY; + return inv.extractItem(slot, amount, simulate); + } + + @Override + public int getSlotLimit(int slot) { + return Math.min(inv.getSlotLimit(slot), stackSize); + } + + @Override + public boolean isItemValid(int slot, ItemStack stack) { + return inv.isItemValid(slot, stack); + } + + @Override + public void setStackInSlot(int slot, ItemStack stack) { + inv.setStackInSlot(slot, stack); + } + + public int getStackLimit(int slot, @Nonnull ItemStack stack) { + return Math.min(getSlotLimit(slot), stack.getMaxStackSize()); + } + + @Override + public CompoundNBT serializeNBT() { + return getInv().serializeNBT(); + } + + @Override + public void deserializeNBT(CompoundNBT nbt) { + getInv().deserializeNBT(nbt); + } + + private SyncedStackHandler getInv() { + return (SyncedStackHandler) inv; + } + + private static class SyncedStackHandler extends ItemStackHandler { + + private SyncedTileEntity te; + + public SyncedStackHandler(int slots, SyncedTileEntity te) { + super(slots); + this.te = te; + } + + @Override + protected void onContentsChanged(int slot) { + super.onContentsChanged(slot); + te.notifyUpdate(); + } + + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/SyncedTileEntity.java b/src/main/java/com/simibubi/create/foundation/tileEntity/SyncedTileEntity.java index 4d0ce20c5..be1c6b74d 100644 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/SyncedTileEntity.java +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/SyncedTileEntity.java @@ -54,5 +54,10 @@ public abstract class SyncedTileEntity extends TileEntity { public CompoundNBT writeToClient(CompoundNBT tag) { return write(tag); } + + public void notifyUpdate() { + markDirty(); + sendData(); + } } diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/AutoExtractingBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/AutoExtractingBehaviour.java deleted file mode 100644 index ee95b4a82..000000000 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/AutoExtractingBehaviour.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.simibubi.create.foundation.tileEntity.behaviour.inventory; - -import java.util.List; -import java.util.function.Consumer; -import java.util.function.Supplier; - -import org.apache.commons.lang3.tuple.Pair; - -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; - -public class AutoExtractingBehaviour extends ExtractingBehaviour { - - public static BehaviourType TYPE = new BehaviourType<>(); - - private int delay; - private int timer; - Supplier shouldExtract; - Supplier shouldPause; - private boolean ticking; - - public AutoExtractingBehaviour(SmartTileEntity te, Supplier>> attachments, - Consumer onExtract, int delay) { - super(te, attachments, onExtract); - shouldPause = () -> false; - shouldExtract = () -> true; - ticking = true; - this.delay = delay; - } - - public AutoExtractingBehaviour pauseWhen(Supplier condition) { - shouldPause = condition; - return this; - } - - public ExtractingBehaviour waitUntil(Supplier condition) { - this.shouldExtract = condition; - return this; - } - - public void setDelay(int delay) { - this.delay = delay; - this.timer = delay; - } - - @Override - public boolean extract(int amount) { - timer = delay; - return super.extract(amount); - } - - @Override - public void tick() { - super.tick(); - - if (!ticking) - return; - - if (getWorld().isRemote) - return; - - if (getShouldPause().get()) { - timer = 0; - return; - } - - if (timer > 0) { - timer--; - return; - } - - if (!getShouldExtract().get()) - return; - - extract(); - } - - public void setTicking(boolean ticking) { - this.ticking = ticking; - } - - @Override - public BehaviourType getType() { - return TYPE; - } - - public Supplier getShouldExtract() { - return shouldExtract; - } - - public Supplier getShouldPause() { - return shouldPause; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/ExtractingBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/ExtractingBehaviour.java deleted file mode 100644 index aff1a79e1..000000000 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/ExtractingBehaviour.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.simibubi.create.foundation.tileEntity.behaviour.inventory; - -import java.util.List; -import java.util.function.Consumer; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.Supplier; - -import org.apache.commons.lang3.tuple.Pair; - -import com.simibubi.create.foundation.config.AllConfigs; -import com.simibubi.create.foundation.item.ItemHelper; -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; -import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.items.IItemHandler; - -public class ExtractingBehaviour extends InventoryManagementBehaviour { - - public static BehaviourType TYPE = new BehaviourType<>(); - - private Function customAmountFilter; - private Predicate customFilter; - private Consumer callback; - - public ExtractingBehaviour(SmartTileEntity te, Supplier>> attachments) { - this(te, attachments, item -> { - }); - } - - public ExtractingBehaviour(SmartTileEntity te, Supplier>> attachments, - Consumer onExtract) { - super(te, attachments); - customAmountFilter = stack -> 64; - customFilter = stack -> true; - setCallback(onExtract); - } - - public ExtractingBehaviour withAmountThreshold(Function filter) { - this.customAmountFilter = filter; - return this; - } - - public ExtractingBehaviour withAdditionalFilter(Predicate filter) { - this.customFilter = filter; - return this; - } - - public boolean extract() { - return extract(getAmountToExtract()); - } - - public int getAmountToExtract() { - int amount = -1; - FilteringBehaviour filter = get(tileEntity, FilteringBehaviour.TYPE); - if (filter != null && !filter.anyAmount()) - amount = filter.getAmount(); - return amount; - } - - public boolean extract(int exactAmount) { - if (getWorld().isRemote) - return false; - if (AllConfigs.SERVER.control.freezeExtractors.get()) - return false; - - Predicate test = getFilterTest(); - for (IItemHandler inv : getInventories()) { - ItemStack extract = ItemStack.EMPTY; - if (exactAmount != -1) - extract = ItemHelper.extract(inv, test, exactAmount, false); - else - extract = ItemHelper.extract(inv, test, customAmountFilter, false); - - if (!extract.isEmpty()) { - callback.accept(extract); - return true; - } - } - - return false; - } - - public Predicate getFilterTest() { - Predicate test = customFilter; - FilteringBehaviour filter = get(tileEntity, FilteringBehaviour.TYPE); - if (filter != null) - test = customFilter.and(filter::test); - return test; - } - - @Override - public BehaviourType getType() { - return TYPE; - } - - public void setCallback(Consumer callback) { - this.callback = callback; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InsertingBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InsertingBehaviour.java deleted file mode 100644 index 4b18aad01..000000000 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InsertingBehaviour.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.simibubi.create.foundation.tileEntity.behaviour.inventory; - -import java.util.List; -import java.util.function.Supplier; - -import org.apache.commons.lang3.tuple.Pair; - -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; - -import net.minecraft.item.ItemStack; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraftforge.items.IItemHandler; -import net.minecraftforge.items.ItemHandlerHelper; - -public class InsertingBehaviour extends InventoryManagementBehaviour { - - public static BehaviourType TYPE = new BehaviourType<>(); - - public InsertingBehaviour(SmartTileEntity te, Supplier>> attachments) { - super(te, attachments); - } - - public ItemStack insert(ItemStack stack, boolean simulate) { - for (IItemHandler inv : getInventories()) { - stack = ItemHandlerHelper.insertItemStacked(inv, stack, simulate); - if (stack.isEmpty()) - break; - } - return stack; - } - - @Override - public BehaviourType getType() { - return TYPE; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InvManipulationBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InvManipulationBehaviour.java new file mode 100644 index 000000000..93028ca0d --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InvManipulationBehaviour.java @@ -0,0 +1,169 @@ +package com.simibubi.create.foundation.tileEntity.behaviour.inventory; + +import java.util.function.Function; +import java.util.function.Predicate; + +import com.google.common.base.Predicates; +import com.simibubi.create.foundation.config.AllConfigs; +import com.simibubi.create.foundation.item.ItemHelper; +import com.simibubi.create.foundation.tileEntity.SmartTileEntity; +import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; +import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour; +import com.simibubi.create.foundation.utility.BlockFace; + +import net.minecraft.block.BlockState; +import net.minecraft.item.ItemStack; +import net.minecraft.state.properties.BlockStateProperties; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.items.CapabilityItemHandler; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.items.ItemHandlerHelper; + +public class InvManipulationBehaviour extends TileEntityBehaviour { + + public static BehaviourType TYPE = new BehaviourType<>(); + private InterfaceProvider target; + private LazyOptional targetCapability; + private boolean simulateNext; + + public InvManipulationBehaviour(SmartTileEntity te, InterfaceProvider target) { + super(te); + setLazyTickRate(40); + this.target = target; + this.targetCapability = LazyOptional.empty(); + simulateNext = false; + } + + /** + * Only simulate the upcoming operation + */ + public InvManipulationBehaviour simulate() { + simulateNext = true; + return this; + } + + public boolean hasInventory() { + return targetCapability.isPresent(); + } + + public ItemStack extract() { + return extract(getAmountFromFilter()); + } + + public ItemStack extract(int amount) { + return extract(amount, Predicates.alwaysTrue()); + } + + public ItemStack extract(int amount, Predicate filter) { + return extract(amount, filter, ItemStack::getMaxStackSize); + } + + public ItemStack extract(int amount, Predicate filter, Function amountThreshold) { + boolean shouldSimulate = simulateNext; + simulateNext = false; + + if (getWorld().isRemote) + return ItemStack.EMPTY; + if (AllConfigs.SERVER.control.freezeExtractors.get()) + return ItemStack.EMPTY; + IItemHandler inventory = targetCapability.orElse(null); + if (inventory == null) + return ItemStack.EMPTY; + + Predicate test = getFilterTest(filter); + ItemStack extract = ItemStack.EMPTY; + if (amount != -1) + extract = ItemHelper.extract(inventory, test, amount, shouldSimulate); + else + extract = ItemHelper.extract(inventory, test, amountThreshold, shouldSimulate); + return extract; + } + + public ItemStack insert(ItemStack stack) { + boolean shouldSimulate = simulateNext; + simulateNext = false; + IItemHandler inventory = targetCapability.orElse(null); + if (inventory == null) + return stack; + return ItemHandlerHelper.insertItemStacked(inventory, stack, shouldSimulate); + } + + protected Predicate getFilterTest(Predicate customFilter) { + Predicate test = customFilter; + FilteringBehaviour filter = get(tileEntity, FilteringBehaviour.TYPE); + if (filter != null) + test = customFilter.and(filter::test); + return test; + } + + @Override + public void initialize() { + super.initialize(); + findNewCapability(); + } + + protected void onHandlerInvalidated(LazyOptional handler) { + findNewCapability(); + } + + @Override + public void lazyTick() { + super.lazyTick(); + if (!targetCapability.isPresent()) + findNewCapability(); + } + + protected int getAmountFromFilter() { + int amount = -1; + FilteringBehaviour filter = get(tileEntity, FilteringBehaviour.TYPE); + if (filter != null && !filter.anyAmount()) + amount = filter.getAmount(); + return amount; + } + + protected void findNewCapability() { + BlockFace targetBlockFace = target.getTarget(getWorld(), tileEntity.getPos(), tileEntity.getBlockState()) + .getOpposite(); + BlockPos pos = targetBlockFace.getPos(); + World world = getWorld(); + + targetCapability = LazyOptional.empty(); + + if (!world.isBlockPresent(pos)) + return; + TileEntity invTE = world.getTileEntity(pos); + if (invTE == null) + return; + targetCapability = + invTE.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, targetBlockFace.getFace()); + if (targetCapability.isPresent()) + targetCapability.addListener(this::onHandlerInvalidated); + } + + @Override + public BehaviourType getType() { + return TYPE; + } + + @FunctionalInterface + public interface InterfaceProvider { + + public static InterfaceProvider towardBlockFacing() { + return (w, p, s) -> new BlockFace(p, s.has(BlockStateProperties.FACING) ? s.get(BlockStateProperties.FACING) + : s.get(BlockStateProperties.HORIZONTAL_FACING)); + } + + public static InterfaceProvider oppositeOfBlockFacing() { + return (w, p, s) -> new BlockFace(p, + (s.has(BlockStateProperties.FACING) ? s.get(BlockStateProperties.FACING) + : s.get(BlockStateProperties.HORIZONTAL_FACING)).getOpposite()); + } + + public BlockFace getTarget(World world, BlockPos pos, BlockState blockState); + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InventoryManagementBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InventoryManagementBehaviour.java deleted file mode 100644 index 0318f0375..000000000 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/InventoryManagementBehaviour.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.simibubi.create.foundation.tileEntity.behaviour.inventory; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Supplier; - -import org.apache.commons.lang3.tuple.Pair; - -import com.google.common.collect.ImmutableList; -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; - -import net.minecraft.block.BlockState; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.items.CapabilityItemHandler; -import net.minecraftforge.items.IItemHandler; - -public class InventoryManagementBehaviour extends TileEntityBehaviour { - - Map, LazyOptional> inventories; - private Supplier>> attachments; - private List activeHandlers; - - public static BehaviourType TYPE = new BehaviourType<>(); - - public InventoryManagementBehaviour(SmartTileEntity te, Supplier>> attachments) { - super(te); - this.attachments = attachments; - setLazyTickRate(20); - activeHandlers = new ArrayList<>(); - inventories = new HashMap<>(); - } - - @Override - public void initialize() { - super.initialize(); - attachments.get().forEach(offset -> inventories.put(offset, findInventory(offset))); - lazyTick(); - } - - @Override - public void lazyTick() { - super.lazyTick(); - activeHandlers.clear(); - for (Pair pair : inventories.keySet()) { - LazyOptional lazyOptional = inventories.get(pair); - if (lazyOptional.isPresent()) { - activeHandlers.add(lazyOptional.orElse(null)); - continue; - } - - lazyOptional = findInventory(pair); - if (lazyOptional.isPresent()) - activeHandlers.add(lazyOptional.orElse(null)); - inventories.put(pair, lazyOptional); - } - } - - public List getInventories() { - return activeHandlers; - } - - public IItemHandler getInventory() { - if (activeHandlers.isEmpty()) - return null; - return activeHandlers.get(0); - } - - protected LazyOptional findInventory(Pair offset) { - BlockPos invPos = tileEntity.getPos().add(offset.getKey()); - World world = getWorld(); - - if (!world.isBlockPresent(invPos)) - return LazyOptional.empty(); - BlockState invState = world.getBlockState(invPos); - - if (!invState.hasTileEntity()) - return LazyOptional.empty(); - TileEntity invTE = world.getTileEntity(invPos); - if (invTE == null) - return LazyOptional.empty(); - - LazyOptional inventory = invTE.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, - offset.getValue()); - if (inventory == null) { - return LazyOptional.empty(); - } - - return inventory; - } - - @Override - public BehaviourType getType() { - return TYPE; - } - - public static class Attachments { - public static final Supplier>> toward(Supplier facing) { - return () -> ImmutableList - .of(Pair.of(new BlockPos(facing.get().getDirectionVec()), facing.get().getOpposite())); - }; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/SingleTargetAutoExtractingBehaviour.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/SingleTargetAutoExtractingBehaviour.java deleted file mode 100644 index 3c2f26797..000000000 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/SingleTargetAutoExtractingBehaviour.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.simibubi.create.foundation.tileEntity.behaviour.inventory; - -import java.util.function.Consumer; -import java.util.function.Supplier; - -import com.simibubi.create.foundation.tileEntity.SmartTileEntity; -import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType; - -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.CompoundNBT; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; - -public class SingleTargetAutoExtractingBehaviour extends AutoExtractingBehaviour { - - public static BehaviourType TYPE = new BehaviourType<>(); - - private Supplier attachmentDirection; - boolean synced; - boolean advantageOnNextSync; - - public SingleTargetAutoExtractingBehaviour(SmartTileEntity te, Supplier attachmentDirection, - Consumer onExtract, int delay) { - super(te, Attachments.toward(attachmentDirection), onExtract, delay); - this.attachmentDirection = attachmentDirection; - synced = true; - advantageOnNextSync = false; - } - - public SingleTargetAutoExtractingBehaviour setSynchronized(boolean sync) { - synced = sync; - return this; - } - - @Override - public void write(CompoundNBT nbt, boolean clientPacket) { - nbt.putBoolean("Advantage", advantageOnNextSync); - super.write(nbt, clientPacket); - } - - @Override - public void read(CompoundNBT nbt, boolean clientPacket) { - advantageOnNextSync = nbt.getBoolean("Advantage"); - super.read(nbt, clientPacket); - } - - @Override - public boolean extract() { - if (synced) { - BlockPos invPos = tileEntity.getPos() - .offset(attachmentDirection.get()); - return SynchronizedExtraction.extractSynchronized(getWorld(), invPos); - } else - return extractFromInventory(); - } - - public boolean extractFromInventory() { - return super.extract(); - } - - @Override - public BehaviourType getType() { - return TYPE; - } - -} diff --git a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/SynchronizedExtraction.java b/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/SynchronizedExtraction.java deleted file mode 100644 index 39fefa472..000000000 --- a/src/main/java/com/simibubi/create/foundation/tileEntity/behaviour/inventory/SynchronizedExtraction.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.simibubi.create.foundation.tileEntity.behaviour.inventory; - -import java.util.ArrayList; -import java.util.List; - -import com.simibubi.create.content.logistics.block.inventories.CrateBlock; -import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; - -import net.minecraft.block.BlockState; -import net.minecraft.block.ChestBlock; -import net.minecraft.state.properties.ChestType; -import net.minecraft.util.Direction; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.ILightReader; - -public class SynchronizedExtraction { - - static boolean extractSynchronized(ILightReader reader, BlockPos inventoryPos) { - List actors = getAllSyncedExtractors(reader, inventoryPos); - int startIndex = actors.size() - 1; - boolean success = false; - - for (; startIndex > 0; startIndex--) - if (actors.get(startIndex).advantageOnNextSync) - break; - for (int i = 0; i < actors.size(); i++) - success |= actors.get((startIndex + i) % actors.size()).extractFromInventory(); - - if (success) { - actors.get(startIndex).advantageOnNextSync = false; - actors.get((startIndex + 1) % actors.size()).advantageOnNextSync = true; - } - - return success; - } - - private static List getAllSyncedExtractors(ILightReader reader, - BlockPos inventoryPos) { - List list = new ArrayList<>(); - List inventoryPositions = new ArrayList<>(); - inventoryPositions.add(inventoryPos); - - // Sync across double chests - BlockState blockState = reader.getBlockState(inventoryPos); - if (blockState.getBlock() instanceof ChestBlock) - if (blockState.get(ChestBlock.TYPE) != ChestType.SINGLE) - inventoryPositions.add(inventoryPos.offset(ChestBlock.getDirectionToAttached(blockState))); - - // Sync across crates - if (blockState.getBlock() instanceof CrateBlock) - if (blockState.get(CrateBlock.DOUBLE)) - inventoryPositions.add(inventoryPos.offset(blockState.get(CrateBlock.FACING))); - - for (BlockPos pos : inventoryPositions) { - for (Direction direction : Direction.values()) { - SingleTargetAutoExtractingBehaviour behaviour = TileEntityBehaviour.get(reader, pos.offset(direction), - SingleTargetAutoExtractingBehaviour.TYPE); - if (behaviour == null) - continue; - if (!behaviour.synced) - continue; - if (behaviour.getShouldPause().get()) - continue; - if (!behaviour.getShouldExtract().get()) - continue; - if (!behaviour.inventories.keySet().stream() - .anyMatch(p -> p.getKey().add(behaviour.getPos()).equals(pos))) - continue; - - list.add(behaviour); - } - } - return list; - } - -} diff --git a/src/main/resources/assets/create/lang/default/tooltips.json b/src/main/resources/assets/create/lang/default/tooltips.json index ffe31ce5f..53dfef154 100644 --- a/src/main/resources/assets/create/lang/default/tooltips.json +++ b/src/main/resources/assets/create/lang/default/tooltips.json @@ -396,24 +396,6 @@ "block.create.creative_crate.tooltip.condition1": "When Item in Filter Slot", "block.create.creative_crate.tooltip.behaviour1": "Anything _extracting_ from this container will provide an _endless_ _supply_ of the item specified. Items _inserted_ into this crate will be _voided._", - "block.create.extractor.tooltip": "EXTRACTOR", - "block.create.extractor.tooltip.summary": "_Takes_ _Items_ from an attached _Inventory_ and drops them onto the ground. Will not drop Items unless the space is clear. Can be assigned an item-stack as a _filter_.", - "block.create.extractor.tooltip.condition1": "When Powered by Redstone", - "block.create.extractor.tooltip.behaviour1": "_Pauses_ the Extractor.", - "block.create.extractor.tooltip.condition2": "Active Belt pulling", - "block.create.extractor.tooltip.behaviour2": "Extractors can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the extractor is blocked, the _belt_ _will_ _stall_.", - "block.create.extractor.tooltip.control1": "R-Click on Filter Space", - "block.create.extractor.tooltip.action1": "Assigns currently _held_ _stack_ as the _Filter_. The Extractor will pull the item _type_ and _count_ of the filter stack exclusively.", - - "block.create.transposer.tooltip": "TRANSPOSER", - "block.create.transposer.tooltip.summary": "_Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_.", - "block.create.transposer.tooltip.condition1": "When Powered by Redstone", - "block.create.transposer.tooltip.behaviour1": "_Pauses_ the Transposer.", - "block.create.transposer.tooltip.condition2": "Active Belt pulling", - "block.create.transposer.tooltip.behaviour2": "Transposers can pull items _from_ _belts_ reinforced with _brass_ _casing_. When the transposer is backed up, the _belt_ _will_ _stall_.", - "block.create.transposer.tooltip.control1": "R-Click on Filter Space", - "block.create.transposer.tooltip.action1": "Assigns currently _held_ _stack_ as the _Filter_. The Transposer will pull the item _type_ and _count_ of the filter stack exclusively.", - "block.create.deployer.tooltip": "DEPLOYER", "block.create.deployer.tooltip.summary": "_Punches_, _Uses_, and _Activates_. This machine will try to _imitate_ a _player_ as a much as possible. Can _Take_ and _Deposit_ _items_ in adjacent _Inventory_. Can be assigned an item-stack as a _filter_.", "block.create.deployer.tooltip.condition1": "When Rotated", @@ -421,24 +403,6 @@ "block.create.deployer.tooltip.condition2": "R-Clicked with Wrench", "block.create.deployer.tooltip.behaviour2": "Toggles punch mode. In _punch_ _mode_, the Deployer will attempt to use its item to _break_ _blocks_ or _hurt_ _entities_.", - "block.create.linked_extractor.tooltip": "LINKED EXTRACTOR", - "block.create.linked_extractor.tooltip.summary": "_Takes_ _items_ from an attached _Inventory_ and drops them onto the ground. Will not drop Items unless the space is clear. Can be assigned an item-stack as a _filter_. Can be controlled remotely via a _Redstone_ _Link_.", - "block.create.linked_extractor.tooltip.condition1": "When Redstone Link Active", - "block.create.linked_extractor.tooltip.behaviour1": "_Pauses_ the Extractor.", - "block.create.linked_extractor.tooltip.control1": "R-Click on Filter Space", - "block.create.linked_extractor.tooltip.action1": "Assigns currently _held_ _stack_ as the _Filter_. The Extractor will pull the item _type_ and _count_ of the filter stack exclusively.", - "block.create.linked_extractor.tooltip.control2": "R-Click on Frequency Space", - "block.create.linked_extractor.tooltip.action2": "Assigns currently _held_ _item_ as part of the Frequency listened on. Whenever a transmitting _Redstone_ _Link_ of the same frequency is powered, this Extractor will pause.", - - "block.create.linked_transposer.tooltip": "LINKED TRANSPOSER", - "block.create.linked_transposer.tooltip.summary": "_Takes_ _items_ from an attached _Inventory_ and immediately puts them into the target _Inventory_. Can be assigned an item-stack as a _filter_. Can be controlled remotely via a _Redstone_ _Link_.", - "block.create.linked_transposer.tooltip.condition1": "When Redstone Link Active", - "block.create.linked_transposer.tooltip.behaviour1": "_Pauses_ the Transposer.", - "block.create.linked_transposer.tooltip.control1": "R-Click on Filter Space", - "block.create.linked_transposer.tooltip.action1": "Assigns currently _held_ _stack_ as the _Filter_. The Transposer will only pull items that match the item _type_ and _count_ of the filter stack.", - "block.create.linked_transposer.tooltip.control2": "R-Click on Frequency Space", - "block.create.linked_transposer.tooltip.action2": "Assigns the currently _held_ _item_ as part of the Frequency listened on. Whenever a transmitting _Redstone_ _Link_ of the same frequency is powered, this Transposer will pause.", - "block.create.funnel.tooltip": "FUNNEL", "block.create.funnel.tooltip.summary": "_Collects_ _incoming_ _items_ and inserts them into the attached _Inventory_ if possible. Can collect items in the _world_ and items on a _belt_.", "block.create.funnel.tooltip.condition1": "Passive Belt pulling", diff --git a/src/main/resources/assets/create/models/block/chute_funnel/block.json b/src/main/resources/assets/create/models/block/chute_funnel/block.json deleted file mode 100644 index 43a769f49..000000000 --- a/src/main/resources/assets/create/models/block/chute_funnel/block.json +++ /dev/null @@ -1,248 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "3": "create:block/brass_funnel_push", - "4": "create:block/brass_funnel_plating", - "13": "create:block/chute", - "particle": "create:block/brass_block", - "3_particle": "#particle", - "1_2": "create:block/brass_funnel_back" - }, - "elements": [ - { - "name": "RightWall", - "from": [0, 0, 2], - "to": [2, 16, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 10]}, - "faces": { - "north": {"uv": [14, 0, 16, 16], "texture": "#3_particle"}, - "east": {"uv": [0, 0, 16, 6], "rotation": 90, "texture": "#3"}, - "south": {"uv": [0, 0, 2, 16], "texture": "#3_particle"}, - "west": {"uv": [0, 0, 16, 6], "rotation": 270, "texture": "#3"}, - "up": {"uv": [0, 0, 2, 6], "texture": "#3"}, - "down": {"uv": [14, 0, 16, 6], "rotation": 180, "texture": "#3"} - } - }, - { - "name": "LeftWall", - "from": [14, 0, 2], - "to": [16, 16, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 10]}, - "faces": { - "north": {"uv": [0, 0, 2, 16], "texture": "#3_particle"}, - "east": {"uv": [0, 0, 16, 6], "rotation": 90, "texture": "#3"}, - "south": {"uv": [14, 0, 16, 16], "texture": "#3_particle"}, - "west": {"uv": [0, 0, 16, 6], "rotation": 270, "texture": "#3"}, - "up": {"uv": [14, 0, 16, 6], "texture": "#3"}, - "down": {"uv": [0, 0, 2, 6], "rotation": 180, "texture": "#3"} - } - }, - { - "name": "Top", - "from": [2, 14, 2], - "to": [14, 16, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 10]}, - "faces": { - "north": {"uv": [2, 0, 14, 2], "texture": "#3_particle"}, - "south": {"uv": [2, 0, 14, 2], "texture": "#3_particle"}, - "up": {"uv": [2, 0, 14, 6], "texture": "#3"}, - "down": {"uv": [2, 0, 14, 6], "rotation": 180, "texture": "#3"} - } - }, - { - "name": "Top", - "from": [2, 0, 2], - "to": [14, 2, 8], - "rotation": {"angle": 0, "axis": "y", "origin": [6, 8, 10]}, - "faces": { - "north": {"uv": [2, 14, 14, 16], "texture": "#3_particle"}, - "south": {"uv": [2, 14, 14, 16], "texture": "#3_particle"}, - "up": {"uv": [2, 0, 14, 6], "texture": "#3"}, - "down": {"uv": [2, 0, 14, 6], "rotation": 180, "texture": "#3"} - } - }, - { - "name": "F5", - "from": [11, 1.5, 3], - "to": [14, 14.5, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [14, 8, 9.5]}, - "faces": { - "north": {"uv": [6.5, 0, 8, 6.5], "texture": "#4"} - } - }, - { - "name": "F6", - "from": [5, 1.5, 3], - "to": [8, 14.5, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 9.5]}, - "faces": { - "north": {"uv": [6.5, 0, 8, 6.5], "texture": "#4"} - } - }, - { - "name": "F6", - "from": [8, 1.5, 3], - "to": [11, 14.5, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [14, 8, 9.5]}, - "faces": { - "north": {"uv": [6.5, 0, 8, 6.5], "texture": "#4"} - } - }, - { - "name": "F7", - "from": [2, 1.5, 3], - "to": [5, 14.5, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 9.5]}, - "faces": { - "north": {"uv": [6.5, 0, 8, 6.5], "texture": "#4"} - } - }, - { - "name": "BackExtension", - "from": [2, 2, 10], - "to": [14, 14, 14], - "faces": { - "east": {"uv": [13, 10, 15, 16], "texture": "#1_2"}, - "south": {"uv": [9, 0.5, 15, 6.5], "texture": "#1_2"}, - "west": {"uv": [13, 10, 15, 16], "rotation": 180, "texture": "#1_2"}, - "up": {"uv": [13, 10, 15, 16], "rotation": 270, "texture": "#1_2"}, - "down": {"uv": [13, 10, 15, 16], "rotation": 90, "texture": "#1_2"} - } - }, - { - "name": "MidExtension", - "from": [1, 1, 7], - "to": [15, 15, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]}, - "faces": { - "north": {"uv": [0, 9, 7, 16], "texture": "#1_2"}, - "east": {"uv": [11, 9, 13, 16], "rotation": 180, "texture": "#1_2"}, - "south": {"uv": [8.5, 0, 15.5, 7], "texture": "#1_2"}, - "west": {"uv": [11, 9, 13, 16], "texture": "#1_2"}, - "up": {"uv": [11, 9, 13, 16], "rotation": 90, "texture": "#1_2"}, - "down": {"uv": [11, 9, 13, 16], "rotation": 270, "texture": "#1_2"} - } - }, - { - "name": "Back", - "from": [3, 3, 14], - "to": [13, 13, 18], - "faces": { - "east": {"uv": [9.5, 9, 14.5, 11], "rotation": 90, "texture": "#4"}, - "south": {"uv": [9.5, 11, 14.5, 16], "texture": "#4"}, - "west": {"uv": [9.5, 9, 14.5, 11], "rotation": 270, "texture": "#4"}, - "up": {"uv": [9.5, 9, 14.5, 11], "texture": "#4"}, - "down": {"uv": [9.5, 9, 14.5, 11], "rotation": 180, "texture": "#4"} - } - }, - { - "name": "Back", - "from": [1.1, 1.1, -3.1], - "to": [14.9, 14.9, 2], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 6]}, - "faces": { - "north": {"uv": [8.5, 8.5, 15.5, 15.5], "texture": "#13"}, - "east": {"uv": [0, 13.5, 7, 16], "rotation": 90, "texture": "#13"}, - "west": {"uv": [0, 13.5, 7, 16], "rotation": 270, "texture": "#13"}, - "up": {"uv": [0, 13.5, 7, 16], "texture": "#13"}, - "down": {"uv": [0, 13.5, 7, 16], "rotation": 180, "texture": "#13"} - } - }, - { - "name": "Back", - "from": [2.1, 1.1, -6.7], - "to": [13.9, 4.9, -2.9], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -54]}, - "faces": { - "north": {"uv": [9, 6, 15, 8], "texture": "#13"}, - "east": {"uv": [11, 6, 13, 8], "texture": "#13"}, - "south": {"uv": [0, 0, 7, 7], "texture": "#13"}, - "west": {"uv": [11, 6, 13, 8], "texture": "#13"}, - "up": {"uv": [8.5, 1, 15.5, 3], "rotation": 180, "texture": "#13"}, - "down": {"uv": [9, 4.5, 15, 6.5], "texture": "#13"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3.25, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "translation": [0, 1, 0], - "scale": [0.5, 0.5, 0.5] - }, - "head": { - "rotation": [0, 90, 0] - }, - "fixed": { - "rotation": [0, 90, 0], - "translation": [0, 1.5, 0], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "block", - "origin": [8, 8, 8], - "children": [ - { - "name": "BeltFunnel", - "origin": [9, -4, 8], - "children": [ - { - "name": "FrontSection", - "origin": [9, -4, 8], - "children": [0, 1, 2, 3, - { - "name": "Flap", - "origin": [8, 8, 8], - "children": [4, 5, 6, 7] - } - ] - }, - { - "name": "Extension", - "origin": [9, -4, 8], - "children": [8, 9] - }, - { - "name": "DELETABLEEXTENSION", - "origin": [9, -4, 8], - "children": [] - }, - { - "name": "DELETABLEEXTESNIONMID", - "origin": [35, 12, 4], - "children": [] - }, - { - "name": "Base", - "origin": [9, -4, 8], - "children": [10, 11] - } - ] - }, 12] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/extractor/horizontal.json b/src/main/resources/assets/create/models/block/extractor/horizontal.json deleted file mode 100644 index aef3762c1..000000000 --- a/src/main/resources/assets/create/models/block/extractor/horizontal.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "1": "create:block/brass_casing", - "extractor": "create:block/extractor", - "particle": "#extractor" - }, - "elements": [ - { - "name": "Bottom", - "from": [4, 2, -1], - "to": [12, 3, 5], - "faces": { - "north": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#extractor"}, - "up": {"uv": [0, 0, 6, 8], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "Top", - "from": [4, 9, -1], - "to": [12, 10, 5], - "faces": { - "north": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#extractor"}, - "up": {"uv": [0, 0, 6, 8], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [4, 3, -1], - "to": [5, 9, 5], - "faces": { - "north": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "east": {"uv": [0, 1, 6, 7], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [11, 3, -1], - "to": [12, 9, 5], - "faces": { - "north": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "east": {"uv": [0, 1, 6, 7], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "texture": "#extractor"} - } - }, - { - "name": "Center", - "from": [5, 3, 0], - "to": [11, 9, 4], - "faces": { - "north": {"uv": [5, 5, 11, 11], "texture": "#1"}, - "south": {"uv": [7, 1, 13, 7], "texture": "#extractor"} - } - }, - { - "name": "FilterSpot", - "from": [5, 10, -1], - "to": [11, 11.05, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 11, -1]}, - "faces": { - "north": {"uv": [0, 9, 1, 15], "rotation": 90, "texture": "#extractor"}, - "east": {"uv": [0, 9, 5, 10], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [4, 9, 5, 15], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 9, 5, 10], "texture": "#extractor"}, - "up": {"uv": [0, 9, 5, 15], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#extractor"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 1, 1.25], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "translation": [2.5, -0.5, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, 180, 0], - "translation": [0, 1.75, -4.5], - "scale": [0.5, 0.5, 0.5] - } - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/extractor/horizontal_linked.json b/src/main/resources/assets/create/models/block/extractor/horizontal_linked.json deleted file mode 100644 index a83392dc4..000000000 --- a/src/main/resources/assets/create/models/block/extractor/horizontal_linked.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create:block/extractor/horizontal", - "textures": { - "2": "create:block/brass_casing", - "redstone_antenna": "create:block/redstone_antenna", - "extractor": "create:block/extractor", - "particle": "#extractor" - }, - "elements": [ - { - "name": "Bottom", - "from": [5, 2, -1], - "to": [12, 3, 5], - "faces": { - "north": {"uv": [6, 7, 13, 8], "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 7, 13, 8], "texture": "#extractor"}, - "west": {"uv": [6, 15, 12, 16], "texture": "#extractor"}, - "up": {"uv": [0, 0, 6, 7], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 6, 7], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "Top", - "from": [5, 9, -1], - "to": [12, 10, 5], - "faces": { - "north": {"uv": [6, 0, 13, 1], "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 0, 13, 1], "texture": "#extractor"}, - "west": {"uv": [6, 8, 12, 9], "texture": "#extractor"}, - "up": {"uv": [0, 0, 6, 7], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 6, 7], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [4, 2, -1], - "to": [5, 10, 5], - "faces": { - "north": {"uv": [13, 0, 14, 8], "texture": "#extractor"}, - "east": {"uv": [0, 1, 6, 9], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 1, 7, 9], "texture": "#extractor"}, - "west": {"uv": [6, 8, 12, 16], "texture": "#extractor"}, - "up": {"uv": [6, 8, 12, 9], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [6, 15, 12, 16], "rotation": 90, "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [11, 3, -1], - "to": [12, 9, 5], - "faces": { - "north": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "east": {"uv": [0, 1, 6, 7], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "texture": "#extractor"} - } - }, - { - "name": "Center", - "from": [5, 3, 0], - "to": [11, 9, 4], - "faces": { - "north": {"uv": [5, 5, 11, 11], "texture": "#2"}, - "south": {"uv": [7, 1, 13, 7], "texture": "#extractor"} - } - }, - { - "name": "FilterSpot", - "from": [5, 10, -1], - "to": [11, 11.05, 4], - "rotation": {"angle": 0, "axis": "x", "origin": [8, 11, -1]}, - "faces": { - "north": {"uv": [0, 9, 1, 15], "rotation": 90, "texture": "#extractor"}, - "east": {"uv": [0, 14, 5, 15], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [4, 9, 5, 15], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 9, 5, 10], "texture": "#extractor"}, - "up": {"uv": [0, 9, 5, 15], "rotation": 90, "texture": "#extractor"} - } - }, - { - "name": "AntennaX", - "from": [11, 7, 2], - "to": [14, 17, 3], - "faces": { - "north": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [12, 7, 1], - "to": [13, 17, 4], - "faces": { - "east": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaTop", - "from": [12, 15, 2], - "to": [13, 16, 3], - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaDish", - "from": [10, 13, 0], - "to": [15, 13, 5], - "faces": { - "up": {"uv": [4, 0, 9, 5], "texture": "#redstone_antenna"}, - "down": {"uv": [4, 0, 9, 5], "texture": "#redstone_antenna"} - } - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/extractor/horizontal_linked_powered.json b/src/main/resources/assets/create/models/block/extractor/horizontal_linked_powered.json deleted file mode 100644 index 939bbe91e..000000000 --- a/src/main/resources/assets/create/models/block/extractor/horizontal_linked_powered.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "create:block/extractor/horizontal_linked", - "textures": { - "redstone_antenna": "create:block/redstone_antenna_powered", - "extractor": "create:block/extractor_powered" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/extractor/horizontal_powered.json b/src/main/resources/assets/create/models/block/extractor/horizontal_powered.json deleted file mode 100644 index 3bc488ffe..000000000 --- a/src/main/resources/assets/create/models/block/extractor/horizontal_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/extractor/horizontal", - "textures": { - "extractor": "create:block/extractor_powered" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/extractor/vertical.json b/src/main/resources/assets/create/models/block/extractor/vertical.json deleted file mode 100644 index 551978196..000000000 --- a/src/main/resources/assets/create/models/block/extractor/vertical.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "1": "create:block/brass_casing", - "extractor": "create:block/extractor", - "particle": "#extractor" - }, - "elements": [ - { - "name": "Bottom", - "from": [4, -1, 4], - "to": [12, 5, 5], - "faces": { - "north": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#extractor"}, - "south": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [6, 7, 14, 8], "rotation": 180, "texture": "#extractor"}, - "down": {"uv": [6, 7, 14, 8], "texture": "#extractor"} - } - }, - { - "name": "Top", - "from": [4, -1, 11], - "to": [12, 5, 12], - "faces": { - "north": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#extractor"}, - "south": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [6, 0, 14, 1], "rotation": 180, "texture": "#extractor"}, - "down": {"uv": [6, 0, 14, 1], "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [11, -1, 5], - "to": [12, 5, 11], - "faces": { - "east": {"uv": [0, 1, 6, 7], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [6, 1, 7, 7], "rotation": 180, "texture": "#extractor"}, - "down": {"uv": [13, 1, 14, 7], "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [4, -1, 5], - "to": [5, 5, 11], - "faces": { - "east": {"uv": [0, 1, 6, 7], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [13, 1, 14, 7], "rotation": 180, "texture": "#extractor"}, - "down": {"uv": [6, 1, 7, 7], "texture": "#extractor"} - } - }, - { - "name": "Center", - "from": [5, 0, 5], - "to": [11, 4, 11], - "faces": { - "up": {"uv": [7, 1, 13, 7], "rotation": 180, "texture": "#extractor"} - } - }, - { - "name": "FilterSpot", - "from": [5, -1, 12], - "to": [11, 4, 13], - "faces": { - "east": {"uv": [0, 14, 5, 15], "rotation": 270, "texture": "#extractor"}, - "south": {"uv": [0, 9, 5, 15], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 9, 5, 10], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [4, 9, 5, 15], "rotation": 270, "texture": "#extractor"}, - "down": {"uv": [0, 9, 1, 15], "rotation": 90, "texture": "#extractor"} - } - }, - { - "name": "Extension", - "from": [4.9, -3, 4.9], - "to": [11.1, -1, 11.1], - "faces": { - "north": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"}, - "east": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"}, - "south": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"}, - "down": {"uv": [5, 5, 11, 11], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 1, 1.25], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "translation": [2.5, -0.5, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, 180, 0], - "translation": [0, 1.75, -4.5], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "vertical", - "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4, 5, 6] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/extractor/vertical_linked.json b/src/main/resources/assets/create/models/block/extractor/vertical_linked.json deleted file mode 100644 index f7a502df4..000000000 --- a/src/main/resources/assets/create/models/block/extractor/vertical_linked.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create:block/extractor/horizontal", - "textures": { - "1": "create:block/brass_casing", - "extractor": "create:block/extractor", - "redstone_antenna": "create:block/redstone_antenna", - "particle": "#extractor" - }, - "elements": [ - { - "name": "Bottom", - "from": [4, -1, 4], - "to": [12, 5, 5], - "faces": { - "north": {"uv": [6, 8, 12, 16], "rotation": 270, "texture": "#extractor"}, - "east": {"uv": [6, 15, 12, 16], "rotation": 270, "texture": "#extractor"}, - "south": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [6, 8, 12, 9], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [6, 7, 14, 8], "rotation": 180, "texture": "#extractor"}, - "down": {"uv": [6, 7, 14, 8], "texture": "#extractor"} - } - }, - { - "name": "Top", - "from": [4, -1, 11], - "to": [12, 5, 12], - "faces": { - "north": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#extractor"}, - "south": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 0, 6, 1], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [6, 0, 14, 1], "rotation": 180, "texture": "#extractor"}, - "down": {"uv": [6, 0, 14, 1], "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [11, -1, 5], - "to": [12, 5, 11], - "faces": { - "east": {"uv": [0, 1, 6, 7], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [6, 1, 7, 7], "rotation": 180, "texture": "#extractor"}, - "down": {"uv": [13, 1, 14, 7], "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [4, -1, 5], - "to": [5, 5, 11], - "faces": { - "east": {"uv": [0, 1, 6, 7], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [13, 1, 14, 7], "rotation": 180, "texture": "#extractor"}, - "down": {"uv": [6, 1, 7, 7], "texture": "#extractor"} - } - }, - { - "name": "Center", - "from": [5, 0, 5], - "to": [11, 4, 11], - "faces": { - "up": {"uv": [7, 1, 13, 7], "rotation": 180, "texture": "#extractor"} - } - }, - { - "name": "FilterSpot", - "from": [5, -1, 12], - "to": [11, 4, 13], - "faces": { - "east": {"uv": [0, 14, 5, 15], "rotation": 270, "texture": "#extractor"}, - "south": {"uv": [0, 9, 5, 15], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 9, 5, 10], "rotation": 270, "texture": "#extractor"}, - "up": {"uv": [4, 9, 5, 15], "rotation": 270, "texture": "#extractor"}, - "down": {"uv": [0, 9, 1, 15], "rotation": 90, "texture": "#extractor"} - } - }, - { - "name": "AntennaX", - "from": [11, 3, 9], - "to": [14, 13, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 15]}, - "faces": { - "north": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [12, 3, 8], - "to": [13, 13, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 15]}, - "faces": { - "east": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaTop", - "from": [12, 11, 9], - "to": [13, 12, 10], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 15]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaDish", - "from": [10, 9, 7], - "to": [15, 9, 12], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 15]}, - "faces": { - "up": {"uv": [4, 0, 9, 5], "texture": "#redstone_antenna"}, - "down": {"uv": [4, 0, 9, 5], "texture": "#redstone_antenna"} - } - }, - { - "name": "Extension", - "from": [4.9, -3, 4.9], - "to": [11.1, -1, 11.1], - "faces": { - "north": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"}, - "east": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"}, - "south": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"}, - "down": {"uv": [5, 5, 11, 11], "texture": "#1"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 1, 1.25], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "translation": [2.5, -0.5, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, 180, 0], - "translation": [0, 1.75, -4.5], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "vertical", - "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/extractor/vertical_linked_powered.json b/src/main/resources/assets/create/models/block/extractor/vertical_linked_powered.json deleted file mode 100644 index d6334281f..000000000 --- a/src/main/resources/assets/create/models/block/extractor/vertical_linked_powered.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "create:block/extractor/vertical_linked", - "textures": { - "redstone_antenna": "create:block/redstone_antenna_powered", - "extractor": "create:block/extractor_powered" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/extractor/vertical_powered.json b/src/main/resources/assets/create/models/block/extractor/vertical_powered.json deleted file mode 100644 index 7b4c09a02..000000000 --- a/src/main/resources/assets/create/models/block/extractor/vertical_powered.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/extractor/vertical", - "textures": { - "extractor": "create:block/extractor_powered" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/packager/block.json b/src/main/resources/assets/create/models/block/packager/block.json deleted file mode 100644 index ccf249c2c..000000000 --- a/src/main/resources/assets/create/models/block/packager/block.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "1": "create:block/brass_gearbox", - "2": "create:block/packager_top", - "3": "create:block/crafter_top", - "5": "create:block/brass_casing", - "particle": "create:block/brass_casing" - }, - "elements": [ - { - "name": "HudTop", - "from": [0, 14, 0], - "to": [16, 16, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, 8, 8]}, - "faces": { - "north": {"uv": [0, 0, 16, 2], "texture": "#1"}, - "east": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "south": {"uv": [0, 0, 16, 2], "texture": "#1"}, - "west": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#2"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#1"} - } - }, - { - "name": "HudBottom", - "from": [0, 0, 0], - "to": [16, 2, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, -6, 8]}, - "faces": { - "north": {"uv": [0, 14, 16, 16], "texture": "#1"}, - "east": {"uv": [0, 14, 16, 16], "texture": "#3"}, - "south": {"uv": [0, 14, 16, 16], "texture": "#1"}, - "west": {"uv": [0, 14, 16, 16], "texture": "#3"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#5"} - } - }, - { - "name": "HudLeft", - "from": [14, 2, 0], - "to": [16, 14, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, -4, 8]}, - "faces": { - "north": {"uv": [0, 2, 2, 14], "texture": "#1"}, - "east": {"uv": [0, 2, 16, 14], "texture": "#3"}, - "south": {"uv": [14, 2, 16, 14], "texture": "#1"}, - "west": {"uv": [0, 2, 16, 14], "texture": "#1"} - } - }, - { - "name": "HudCenter", - "from": [2, 2, 1], - "to": [14, 14, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, -4, 8]}, - "faces": { - "north": {"uv": [2, 2, 14, 14], "texture": "#1"}, - "south": {"uv": [2, 2, 14, 14], "texture": "#1"} - } - }, - { - "name": "HudRight", - "from": [0, 2, 0], - "to": [2, 14, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [-22, -4, 8]}, - "faces": { - "north": {"uv": [14, 2, 16, 14], "texture": "#1"}, - "east": {"uv": [0, 2, 16, 14], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 14], "texture": "#1"}, - "west": {"uv": [0, 2, 16, 14], "texture": "#3"} - } - } - ], - "groups": [ - { - "name": "hud", - "origin": [-22, -4, 8], - "children": [0, 1, 2, 3, 4] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/packager/item.json b/src/main/resources/assets/create/models/block/packager/item.json deleted file mode 100644 index 7d29349c2..000000000 --- a/src/main/resources/assets/create/models/block/packager/item.json +++ /dev/null @@ -1,169 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "0": "create:block/axis", - "1": "create:block/brass_gearbox", - "2": "create:block/packager_top", - "3": "create:block/crafter_top", - "5": "create:block/brass_casing", - "6": "create:block/sealer", - "particle": "create:block/axis", - "1_1": "create:block/axis_top" - }, - "elements": [ - { - "name": "Axis", - "from": [6, 6, 0], - "to": [10, 10, 16], - "shade": false, - "faces": { - "north": {"uv": [6, 6, 10, 10], "rotation": 180, "texture": "#1_1"}, - "east": {"uv": [6, 0, 10, 16], "rotation": 90, "texture": "#0"}, - "south": {"uv": [6, 6, 10, 10], "texture": "#1_1"}, - "west": {"uv": [6, 0, 10, 16], "rotation": 270, "texture": "#0"}, - "up": {"uv": [6, 0, 10, 16], "texture": "#0"}, - "down": {"uv": [6, 0, 10, 16], "rotation": 180, "texture": "#0"} - } - }, - { - "name": "HudTop", - "from": [0, 14, 0], - "to": [16, 16, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, 8, 8]}, - "faces": { - "north": {"uv": [0, 0, 16, 2], "texture": "#1"}, - "east": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "south": {"uv": [0, 0, 16, 2], "texture": "#1"}, - "west": {"uv": [0, 0, 16, 2], "texture": "#3"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#2"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#1"} - } - }, - { - "name": "HudBottom", - "from": [0, 0, 0], - "to": [16, 2, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, -6, 8]}, - "faces": { - "north": {"uv": [0, 14, 16, 16], "texture": "#1"}, - "east": {"uv": [0, 14, 16, 16], "texture": "#3"}, - "south": {"uv": [0, 14, 16, 16], "texture": "#1"}, - "west": {"uv": [0, 14, 16, 16], "texture": "#3"}, - "up": {"uv": [0, 0, 16, 16], "texture": "#1"}, - "down": {"uv": [0, 0, 16, 16], "texture": "#5"} - } - }, - { - "name": "HudLeft", - "from": [14, 2, 0], - "to": [16, 14, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, -4, 8]}, - "faces": { - "north": {"uv": [0, 2, 2, 14], "texture": "#1"}, - "east": {"uv": [0, 2, 16, 14], "texture": "#3"}, - "south": {"uv": [14, 2, 16, 14], "texture": "#1"}, - "west": {"uv": [0, 2, 16, 14], "texture": "#1"} - } - }, - { - "name": "HudCenter", - "from": [2, 2, 1], - "to": [14, 14, 15], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, -4, 8]}, - "faces": { - "north": {"uv": [2, 2, 14, 14], "texture": "#1"}, - "south": {"uv": [2, 2, 14, 14], "texture": "#1"} - } - }, - { - "name": "HudRight", - "from": [0, 2, 0], - "to": [2, 14, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [-22, -4, 8]}, - "faces": { - "north": {"uv": [14, 2, 16, 14], "texture": "#1"}, - "east": {"uv": [0, 2, 16, 14], "texture": "#1"}, - "south": {"uv": [0, 2, 2, 14], "texture": "#1"}, - "west": {"uv": [0, 2, 16, 14], "texture": "#3"} - } - }, - { - "name": "SealerKnob", - "from": [5, 25.15, 5], - "to": [11, 27.15, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, 33.15, 8]}, - "faces": { - "north": {"uv": [13, 4, 16, 5], "texture": "#6"}, - "east": {"uv": [13, 4, 16, 5], "texture": "#6"}, - "south": {"uv": [13, 4, 16, 5], "texture": "#6"}, - "west": {"uv": [13, 4, 16, 5], "texture": "#6"}, - "up": {"uv": [13, 1, 16, 4], "texture": "#6"}, - "down": {"uv": [13, 4, 16, 5], "texture": "#6"} - } - }, - { - "name": "Sealer", - "from": [2, 15.15, 2], - "to": [14, 25.15, 14], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, 25.15, 8]}, - "faces": { - "north": {"uv": [10, 11, 16, 16], "texture": "#6"}, - "east": {"uv": [10, 11, 16, 16], "texture": "#6"}, - "south": {"uv": [10, 11, 16, 16], "texture": "#6"}, - "west": {"uv": [10, 11, 16, 16], "texture": "#6"}, - "up": {"uv": [10, 5, 16, 11], "texture": "#6"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, 45, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, 45, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, 225, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 3, 0], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 225, 0], - "translation": [0, -1.75, 0], - "scale": [0.5, 0.5, 0.5] - }, - "fixed": { - "translation": [0, -1.75, 0], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "shaft", - "origin": [8, 8, 8], - "children": [0] - }, - { - "name": "hud", - "origin": [-22, -4, 8], - "children": [1, 2, 3, 4, 5] - }, - { - "name": "group", - "origin": [-8, 25.15, 8], - "children": [6, 7] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/packager/sealer.json b/src/main/resources/assets/create/models/block/packager/sealer.json deleted file mode 100644 index e0527d1d2..000000000 --- a/src/main/resources/assets/create/models/block/packager/sealer.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "6": "create:block/sealer", - "particle": "create:block/sealer" - }, - "elements": [ - { - "name": "SealerKnob", - "from": [5, 25.15, 5], - "to": [11, 27.15, 11], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, 33.15, 8]}, - "faces": { - "north": {"uv": [13, 4, 16, 5], "texture": "#6"}, - "east": {"uv": [13, 4, 16, 5], "texture": "#6"}, - "south": {"uv": [13, 4, 16, 5], "texture": "#6"}, - "west": {"uv": [13, 4, 16, 5], "texture": "#6"}, - "up": {"uv": [13, 1, 16, 4], "texture": "#6"} - } - }, - { - "name": "Sealer", - "from": [2, 15.15, 2], - "to": [14, 25.15, 14], - "rotation": {"angle": 0, "axis": "y", "origin": [-8, 25.15, 8]}, - "faces": { - "north": {"uv": [10, 11, 16, 16], "texture": "#6"}, - "east": {"uv": [10, 11, 16, 16], "texture": "#6"}, - "south": {"uv": [10, 11, 16, 16], "texture": "#6"}, - "west": {"uv": [10, 11, 16, 16], "texture": "#6"}, - "up": {"uv": [10, 5, 16, 11], "texture": "#6"} - } - } - ], - "groups": [ - { - "name": "shaft", - "origin": [8, 8, 8], - "children": [] - }, - { - "name": "hud", - "origin": [-22, -4, 8], - "children": [] - }, - { - "name": "Sealer", - "origin": [-8, 25.15, 8], - "children": [0, 1] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/portable_storage_interface.json b/src/main/resources/assets/create/models/block/portable_storage_interface.json index 177bbe7e6..5315fdd02 100644 --- a/src/main/resources/assets/create/models/block/portable_storage_interface.json +++ b/src/main/resources/assets/create/models/block/portable_storage_interface.json @@ -6,8 +6,8 @@ "5": "create:block/andesite_casing_short", "6": "create:block/gearbox_top", "7": "block/dark_oak_log", - "1_2": "create:block/transposer", - "particle": "create:block/extractor" + "particle": "create:block/andesite_casing_short", + "1_2": "create:block/brass_block" }, "elements": [ { @@ -75,29 +75,7 @@ "east": {"uv": [1, 4, 5, 12], "rotation": 90, "texture": "#0"}, "south": {"uv": [1, 4, 5, 12], "rotation": 90, "texture": "#0"}, "west": {"uv": [1, 4, 5, 12], "rotation": 90, "texture": "#0"}, - "up": {"uv": [7, 7, 15, 15], "rotation": 90, "texture": "#1_2"} - } - }, - { - "from": [3, 11, 11], - "to": [5, 16, 13], - "faces": { - "north": {"uv": [0, 14, 5, 16], "rotation": 90, "texture": "#0"}, - "east": {"uv": [11, 14, 16, 16], "rotation": 270, "texture": "#1_2"}, - "south": {"uv": [6, 14, 11, 16], "rotation": 90, "texture": "#1_2"}, - "west": {"uv": [6, 6, 11, 8], "rotation": 90, "texture": "#1_2"}, - "up": {"uv": [4, 6, 6, 8], "rotation": 180, "texture": "#1_2"} - } - }, - { - "from": [11, 11, 11], - "to": [13, 16, 13], - "faces": { - "north": {"uv": [0, 16, 5, 14], "rotation": 90, "texture": "#0"}, - "east": {"uv": [11, 6, 6, 8], "rotation": 270, "texture": "#1_2"}, - "south": {"uv": [6, 16, 11, 14], "rotation": 90, "texture": "#1_2"}, - "west": {"uv": [16, 14, 11, 16], "rotation": 90, "texture": "#1_2"}, - "up": {"uv": [6, 6, 4, 8], "rotation": 180, "texture": "#1_2"} + "up": {"uv": [4, 4, 12, 12], "rotation": 90, "texture": "#1_2"} } }, { @@ -105,10 +83,21 @@ "to": [5, 16, 5], "faces": { "north": {"uv": [11, 14, 6, 16], "rotation": 270, "texture": "#1_2"}, - "east": {"uv": [11, 16, 16, 14], "rotation": 270, "texture": "#1_2"}, - "south": {"uv": [5, 14, 0, 16], "rotation": 270, "texture": "#0"}, - "west": {"uv": [6, 8, 11, 6], "rotation": 90, "texture": "#1_2"}, - "up": {"uv": [4, 8, 6, 6], "rotation": 180, "texture": "#1_2"} + "east": {"uv": [8, 2, 13, 0], "rotation": 270, "texture": "#1_2"}, + "south": {"uv": [6, 0, 1, 2], "rotation": 270, "texture": "#0"}, + "west": {"uv": [6, 2, 11, 0], "rotation": 90, "texture": "#1_2"}, + "up": {"uv": [13, 3, 15, 1], "rotation": 180, "texture": "#1_2"} + } + }, + { + "from": [3, 11, 11], + "to": [5, 16, 13], + "faces": { + "north": {"uv": [6, 2, 1, 0], "rotation": 270, "texture": "#0"}, + "east": {"uv": [8, 0, 13, 2], "rotation": 270, "texture": "#1_2"}, + "south": {"uv": [11, 16, 6, 14], "rotation": 270, "texture": "#1_2"}, + "west": {"uv": [6, 0, 11, 2], "rotation": 90, "texture": "#1_2"}, + "up": {"uv": [13, 1, 15, 3], "rotation": 180, "texture": "#1_2"} } }, { @@ -116,10 +105,21 @@ "to": [13, 16, 5], "faces": { "north": {"uv": [11, 16, 6, 14], "rotation": 270, "texture": "#1_2"}, - "east": {"uv": [11, 8, 6, 6], "rotation": 270, "texture": "#1_2"}, - "south": {"uv": [5, 16, 0, 14], "rotation": 270, "texture": "#0"}, - "west": {"uv": [16, 16, 11, 14], "rotation": 90, "texture": "#1_2"}, - "up": {"uv": [6, 8, 4, 6], "rotation": 180, "texture": "#1_2"} + "east": {"uv": [6, 0, 11, 2], "rotation": 90, "texture": "#1_2"}, + "south": {"uv": [6, 2, 1, 0], "rotation": 270, "texture": "#0"}, + "west": {"uv": [8, 0, 13, 2], "rotation": 270, "texture": "#1_2"}, + "up": {"uv": [15, 3, 13, 1], "rotation": 180, "texture": "#1_2"} + } + }, + { + "from": [11, 11, 11], + "to": [13, 16, 13], + "faces": { + "north": {"uv": [6, 0, 1, 2], "rotation": 270, "texture": "#0"}, + "east": {"uv": [6, 2, 11, 0], "rotation": 90, "texture": "#1_2"}, + "south": {"uv": [11, 14, 6, 16], "rotation": 270, "texture": "#1_2"}, + "west": {"uv": [8, 2, 13, 0], "rotation": 270, "texture": "#1_2"}, + "up": {"uv": [15, 1, 13, 3], "rotation": 180, "texture": "#1_2"} } } ], diff --git a/src/main/resources/assets/create/models/block/rotation_speed_controller/block.json b/src/main/resources/assets/create/models/block/rotation_speed_controller/block.json index 29495acf2..ff177ba56 100644 --- a/src/main/resources/assets/create/models/block/rotation_speed_controller/block.json +++ b/src/main/resources/assets/create/models/block/rotation_speed_controller/block.json @@ -5,7 +5,6 @@ "4": "create:block/brass_gearbox", "5": "create:block/brass_casing_side", "6": "create:block/brass_casing", - "7": "create:block/extractor", "8": "create:block/encased_belt_middle", "9": "create:block/brass_block", "particle": "create:block/brass_casing" @@ -73,26 +72,26 @@ "up": {"uv": [5, 8, 11, 3], "rotation": 90, "texture": "#6"} } }, - { - "from": [2, 9, 5], - "to": [6, 14, 11], - "faces": { - "north": {"uv": [10, 1, 15, 14], "texture": "#4"}, - "east": {"uv": [6, 9, 12, 14], "texture": "#7"}, - "west": {"uv": [6, 9, 12, 14], "texture": "#7"}, - "up": {"uv": [6, 8, 12, 12], "rotation": 90, "texture": "#7"}, - "down": {"uv": [6, 8, 12, 12], "rotation": 270, "texture": "#7"} - } - }, { "from": [10, 9, 5], "to": [14, 14, 11], "faces": { "north": {"uv": [15, 1, 10, 14], "texture": "#4"}, - "east": {"uv": [6, 10, 12, 15], "texture": "#7"}, - "west": {"uv": [6, 8, 12, 13], "texture": "#7"}, - "up": {"uv": [6, 12, 12, 8], "rotation": 90, "texture": "#7"}, - "down": {"uv": [6, 8, 12, 12], "rotation": 270, "texture": "#7"} + "east": {"uv": [12, 9, 6, 14], "texture": "#5"}, + "west": {"uv": [12, 9, 6, 14], "texture": "#5"}, + "up": {"uv": [6, 6, 12, 2], "rotation": 90, "texture": "#5"}, + "down": {"uv": [6, 6, 12, 2], "rotation": 90, "texture": "#5"} + } + }, + { + "from": [2, 9, 5], + "to": [6, 14, 11], + "faces": { + "north": {"uv": [10, 1, 15, 14], "texture": "#4"}, + "east": {"uv": [6, 9, 12, 14], "texture": "#5"}, + "west": {"uv": [6, 9, 12, 14], "texture": "#5"}, + "up": {"uv": [6, 2, 12, 6], "rotation": 90, "texture": "#5"}, + "down": {"uv": [6, 2, 12, 6], "rotation": 90, "texture": "#5"} } }, { diff --git a/src/main/resources/assets/create/models/block/rotation_speed_controller/item.json b/src/main/resources/assets/create/models/block/rotation_speed_controller/item.json index 4af05d94b..63311316a 100644 --- a/src/main/resources/assets/create/models/block/rotation_speed_controller/item.json +++ b/src/main/resources/assets/create/models/block/rotation_speed_controller/item.json @@ -7,7 +7,6 @@ "4": "create:block/brass_gearbox", "5": "create:block/brass_casing_side", "6": "create:block/brass_casing", - "7": "create:block/extractor", "8": "create:block/encased_belt_middle", "9": "create:block/brass_block", "particle": "create:block/brass_casing" @@ -80,10 +79,10 @@ "to": [6, 14, 11], "faces": { "north": {"uv": [10, 1, 15, 14], "texture": "#4"}, - "east": {"uv": [6, 9, 12, 14], "texture": "#7"}, - "west": {"uv": [6, 9, 12, 14], "texture": "#7"}, - "up": {"uv": [6, 8, 12, 12], "rotation": 90, "texture": "#7"}, - "down": {"uv": [6, 8, 12, 12], "rotation": 270, "texture": "#7"} + "east": {"uv": [6, 9, 12, 14], "texture": "#5"}, + "west": {"uv": [6, 9, 12, 14], "texture": "#5"}, + "up": {"uv": [8, 2, 14, 6], "rotation": 90, "texture": "#5"}, + "down": {"uv": [8, 2, 14, 6], "rotation": 90, "texture": "#5"} } }, { @@ -91,10 +90,10 @@ "to": [14, 14, 11], "faces": { "north": {"uv": [15, 1, 10, 14], "texture": "#4"}, - "east": {"uv": [6, 10, 12, 15], "texture": "#7"}, - "west": {"uv": [6, 8, 12, 13], "texture": "#7"}, - "up": {"uv": [6, 12, 12, 8], "rotation": 90, "texture": "#7"}, - "down": {"uv": [6, 8, 12, 12], "rotation": 270, "texture": "#7"} + "east": {"uv": [6, 9, 12, 14], "texture": "#5"}, + "west": {"uv": [6, 9, 12, 14], "texture": "#5"}, + "up": {"uv": [8, 2, 14, 6], "rotation": 270, "texture": "#5"}, + "down": {"uv": [8, 2, 14, 6], "rotation": 90, "texture": "#5"} } }, { diff --git a/src/main/resources/assets/create/models/block/transposer/block.json b/src/main/resources/assets/create/models/block/transposer/block.json deleted file mode 100644 index a2763cf3e..000000000 --- a/src/main/resources/assets/create/models/block/transposer/block.json +++ /dev/null @@ -1,197 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "block/block", - "textures": { - "1": "create:block/brass_casing", - "2": "create:block/transposer", - "particle": "create:block/extractor", - "extractor": "create:block/extractor" - }, - "elements": [ - { - "name": "Bottom", - "from": [4, 4, -1], - "to": [12, 5, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "north": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#extractor"}, - "up": {"uv": [0, 0, 6, 8], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [11, 5, 15], - "to": [12, 11, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 1], "texture": "#extractor"}, - "south": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 6], "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [4, 5, 15], - "to": [5, 11, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 6], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 1], "rotation": 180, "texture": "#extractor"} - } - }, - { - "name": "Top", - "from": [4, 11, 15], - "to": [12, 12.05, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 1], "texture": "#extractor"}, - "south": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "up": {"uv": [4, 0, 6, 8], "rotation": 270, "texture": "#extractor"}, - "down": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#extractor"} - } - }, - { - "name": "Bottom", - "from": [4, 4, 15], - "to": [12, 5, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 1], "texture": "#extractor"}, - "south": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "up": {"uv": [4, 0, 6, 8], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [4, 0, 6, 8], "rotation": 90, "texture": "#extractor"} - } - }, - { - "name": "FilterSpot", - "from": [5, 12, -1], - "to": [11, 13.05, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 13, -1]}, - "faces": { - "north": {"uv": [0, 9, 1, 15], "rotation": 90, "texture": "#extractor"}, - "east": {"uv": [0, 9, 5, 10], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [4, 9, 5, 15], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 9, 5, 10], "texture": "#extractor"}, - "up": {"uv": [0, 9, 5, 15], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#extractor"} - } - }, - { - "name": "Center", - "from": [5, 5, 0], - "to": [11, 11, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "east": {"uv": [0, 0, 16, 6], "rotation": 180, "texture": "#2"}, - "south": {"uv": [7, 1, 13, 7], "texture": "#extractor"}, - "west": {"uv": [0, 0, 16, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 16, 6], "rotation": 90, "texture": "#2"}, - "down": {"uv": [0, 0, 16, 6], "rotation": 270, "texture": "#2"} - } - }, - { - "name": "Side", - "from": [11, 5, -1], - "to": [12, 11, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "north": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "east": {"uv": [0, 1, 6, 7], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [4, 5, -1], - "to": [5, 11, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "north": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "east": {"uv": [0, 1, 6, 7], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "texture": "#extractor"} - } - }, - { - "name": "Top", - "from": [4, 11, -1], - "to": [12, 12, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "north": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#extractor"}, - "up": {"uv": [0, 0, 6, 8], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "Extension", - "from": [4.9, 4.9, -3], - "to": [11.1, 11.1, -1], - "faces": { - "north": {"uv": [5, 5, 11, 11], "rotation": 180, "texture": "#1"}, - "east": {"uv": [3, 0, 5, 6], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [0, 0, 0, 0], "texture": "#extractor"}, - "west": {"uv": [3, 0, 5, 6], "texture": "#extractor"}, - "up": {"uv": [3, 0, 5, 6], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 1, 1.25], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "translation": [0, -0.25, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, 180, 0], - "translation": [0, 1.75, -4.5], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "transposer", - "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/transposer/block_powered.json b/src/main/resources/assets/create/models/block/transposer/block_powered.json deleted file mode 100644 index 4747bb4d3..000000000 --- a/src/main/resources/assets/create/models/block/transposer/block_powered.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "parent": "create:block/transposer/block", - "textures": { - "extractor": "create:block/extractor_powered", - "particle": "create:block/extractor_powered" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/transposer/horizontal_linked.json b/src/main/resources/assets/create/models/block/transposer/horizontal_linked.json deleted file mode 100644 index 6edfdccc8..000000000 --- a/src/main/resources/assets/create/models/block/transposer/horizontal_linked.json +++ /dev/null @@ -1,246 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create:block/extractor/horizontal", - "textures": { - "1": "create:block/brass_casing", - "2": "create:block/transposer", - "particle": "create:block/extractor", - "extractor": "create:block/extractor", - "redstone_antenna": "create:block/redstone_antenna" - }, - "elements": [ - { - "name": "Bottom", - "from": [5, 4, -1], - "to": [12, 5, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "north": {"uv": [6, 7, 13, 8], "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 7, 13, 8], "texture": "#extractor"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#extractor"}, - "up": {"uv": [0, 0, 6, 7], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 6, 7], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [11, 5, 15], - "to": [12, 11, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 1], "texture": "#extractor"}, - "south": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 6], "texture": "#extractor"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#extractor"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [4, 5, 15], - "to": [5, 11, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 6], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#extractor"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#extractor"} - } - }, - { - "name": "Top", - "from": [4, 11, 15], - "to": [12, 12.05, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 1], "texture": "#extractor"}, - "south": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "up": {"uv": [4, 0, 6, 8], "rotation": 270, "texture": "#extractor"}, - "down": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#extractor"} - } - }, - { - "name": "Bottom", - "from": [4, 4, 15], - "to": [12, 5, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 1], "texture": "#extractor"}, - "south": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "up": {"uv": [4, 0, 6, 8], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [4, 0, 6, 8], "rotation": 90, "texture": "#extractor"} - } - }, - { - "name": "FilterSpot", - "from": [5, 12, -1], - "to": [11, 13.05, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 13, -1]}, - "faces": { - "north": {"uv": [0, 9, 1, 15], "rotation": 90, "texture": "#extractor"}, - "east": {"uv": [0, 9, 5, 10], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [4, 9, 5, 15], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 9, 5, 10], "texture": "#extractor"}, - "up": {"uv": [0, 9, 5, 15], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#extractor"} - } - }, - { - "name": "Center", - "from": [5, 5, 0], - "to": [11, 11, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "east": {"uv": [0, 0, 16, 6], "rotation": 180, "texture": "#2"}, - "south": {"uv": [7, 1, 13, 7], "texture": "#extractor"}, - "west": {"uv": [0, 0, 16, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 16, 6], "rotation": 90, "texture": "#2"}, - "down": {"uv": [0, 0, 16, 6], "rotation": 270, "texture": "#2"} - } - }, - { - "name": "Side", - "from": [11, 5, -1], - "to": [12, 11, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "north": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "east": {"uv": [0, 1, 6, 7], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "texture": "#extractor"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#extractor"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#extractor"} - } - }, - { - "name": "Top", - "from": [5, 11, -1], - "to": [12, 12, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "north": {"uv": [6, 0, 13, 1], "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 0, 13, 1], "texture": "#extractor"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#extractor"}, - "up": {"uv": [0, 0, 6, 7], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 6, 7], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "Extension", - "from": [4.9, 4.9, -3], - "to": [11.1, 11.1, -1], - "faces": { - "north": {"uv": [5, 5, 11, 11], "rotation": 180, "texture": "#1"}, - "east": {"uv": [3, 0, 5, 6], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [0, 0, 0, 0], "texture": "#extractor"}, - "west": {"uv": [3, 0, 5, 6], "texture": "#extractor"}, - "up": {"uv": [3, 0, 5, 6], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "AntennaDish", - "from": [10, 15, 0], - "to": [15, 15, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "up": {"uv": [4, 0, 9, 5], "texture": "#redstone_antenna"}, - "down": {"uv": [4, 0, 9, 5], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [11, 9, 2], - "to": [14, 19, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "north": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [12, 9, 1], - "to": [13, 19, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "east": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaTop", - "from": [12, 17, 2], - "to": [13, 18, 3], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "Side", - "from": [4, 4, -1], - "to": [5, 12, 5], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "north": {"uv": [13, 0, 14, 8], "texture": "#extractor"}, - "east": {"uv": [0, 1, 6, 9], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 1, 7, 9], "texture": "#extractor"}, - "west": {"uv": [6, 8, 12, 16], "texture": "#extractor"}, - "up": {"uv": [6, 15, 12, 16], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [6, 15, 12, 16], "rotation": 90, "texture": "#extractor"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 1, 1.25], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "translation": [0, -0.25, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, 180, 0], - "translation": [0, 1.75, -4.5], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "transposer", - "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/transposer/horizontal_linked_powered.json b/src/main/resources/assets/create/models/block/transposer/horizontal_linked_powered.json deleted file mode 100644 index bf379ba7f..000000000 --- a/src/main/resources/assets/create/models/block/transposer/horizontal_linked_powered.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "create:block/transposer/horizontal_linked", - "textures": { - "redstone_antenna": "create:block/redstone_antenna_powered", - "extractor": "create:block/extractor_powered", - "particle": "create:block/extractor_powered" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/transposer/vertical_linked.json b/src/main/resources/assets/create/models/block/transposer/vertical_linked.json deleted file mode 100644 index a7421a428..000000000 --- a/src/main/resources/assets/create/models/block/transposer/vertical_linked.json +++ /dev/null @@ -1,249 +0,0 @@ -{ - "credit": "Made with Blockbench", - "parent": "create:block/extractor/horizontal", - "textures": { - "1": "create:block/brass_casing", - "2": "create:block/transposer", - "particle": "create:block/extractor", - "extractor": "create:block/extractor", - "redstone_antenna": "create:block/redstone_antenna" - }, - "elements": [ - { - "name": "Side", - "from": [11, 5, 15], - "to": [12, 11, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 1], "texture": "#extractor"}, - "south": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 6], "texture": "#extractor"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#extractor"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [4, 5, 15], - "to": [5, 11, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 6], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "up": {"uv": [0, 0, 0, 0], "texture": "#extractor"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#extractor"} - } - }, - { - "name": "Top", - "from": [4, 11, 15], - "to": [12, 12.05, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 1], "texture": "#extractor"}, - "south": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "up": {"uv": [4, 0, 6, 8], "rotation": 270, "texture": "#extractor"}, - "down": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#extractor"} - } - }, - { - "name": "Bottom", - "from": [4, 4, 15], - "to": [12, 5, 17], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 20]}, - "faces": { - "north": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "east": {"uv": [4, 0, 6, 1], "texture": "#extractor"}, - "south": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "west": {"uv": [4, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "up": {"uv": [4, 0, 6, 8], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [4, 0, 6, 8], "rotation": 90, "texture": "#extractor"} - } - }, - { - "name": "FilterSpot", - "from": [5, 12, -1], - "to": [11, 13.05, 4], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 13, -1]}, - "faces": { - "north": {"uv": [0, 9, 1, 15], "rotation": 90, "texture": "#extractor"}, - "east": {"uv": [0, 9, 5, 10], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [4, 9, 5, 15], "rotation": 270, "texture": "#extractor"}, - "west": {"uv": [0, 9, 5, 10], "texture": "#extractor"}, - "up": {"uv": [0, 9, 5, 15], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 0, 0], "texture": "#extractor"} - } - }, - { - "name": "Center", - "from": [5, 5, 0], - "to": [11, 11, 16], - "rotation": {"angle": 0, "axis": "y", "origin": [8, 10, 8]}, - "faces": { - "east": {"uv": [0, 0, 16, 6], "rotation": 180, "texture": "#2"}, - "south": {"uv": [7, 1, 13, 7], "texture": "#extractor"}, - "west": {"uv": [0, 0, 16, 6], "texture": "#2"}, - "up": {"uv": [0, 0, 16, 6], "rotation": 90, "texture": "#2"}, - "down": {"uv": [0, 0, 16, 6], "rotation": 270, "texture": "#2"} - } - }, - { - "name": "Extension", - "from": [4.9, 4.9, -3], - "to": [11.1, 11.1, -1], - "faces": { - "north": {"uv": [5, 5, 11, 11], "rotation": 180, "texture": "#1"}, - "east": {"uv": [3, 0, 5, 6], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [0, 0, 0, 0], "texture": "#extractor"}, - "west": {"uv": [3, 0, 5, 6], "texture": "#extractor"}, - "up": {"uv": [3, 0, 5, 6], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [3, 0, 5, 6], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "AntennaDish", - "from": [10, 15, 0], - "to": [15, 15, 5], - "rotation": {"angle": 0, "axis": "x", "origin": [13, 9, 3]}, - "faces": { - "up": {"uv": [4, 0, 9, 5], "texture": "#redstone_antenna"}, - "down": {"uv": [4, 0, 9, 5], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaX", - "from": [11, 9, 2], - "to": [14, 19, 3], - "rotation": {"angle": 0, "axis": "x", "origin": [13, 9, 3]}, - "faces": { - "north": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "south": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "down": {"uv": [0, 9, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaZ", - "from": [12, 9, 1], - "to": [13, 19, 4], - "rotation": {"angle": 0, "axis": "x", "origin": [13, 9, 3]}, - "faces": { - "east": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"}, - "west": {"uv": [0, 0, 3, 10], "texture": "#redstone_antenna"} - } - }, - { - "name": "AntennaTop", - "from": [12, 17, 2], - "to": [13, 18, 3], - "rotation": {"angle": 0, "axis": "x", "origin": [13, 9, 3]}, - "faces": { - "up": {"uv": [1, 1, 2, 2], "texture": "#redstone_antenna"} - } - }, - { - "name": "Bottom", - "from": [4, 4, -1], - "to": [12, 5, 5], - "faces": { - "north": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "east": {"uv": [6, 8, 12, 9], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 7, 14, 8], "texture": "#extractor"}, - "west": {"uv": [6, 15, 12, 16], "texture": "#extractor"}, - "up": {"uv": [0, 0, 6, 8], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [6, 8, 12, 16], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "Top", - "from": [4, 11, -1], - "to": [12, 12, 5], - "faces": { - "north": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "east": {"uv": [0, 0, 6, 1], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 0, 14, 1], "texture": "#extractor"}, - "west": {"uv": [0, 0, 6, 1], "texture": "#extractor"}, - "up": {"uv": [0, 0, 6, 8], "rotation": 90, "texture": "#extractor"}, - "down": {"uv": [0, 0, 6, 8], "rotation": 270, "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [4, 5, -1], - "to": [5, 11, 5], - "faces": { - "north": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "east": {"uv": [0, 1, 6, 7], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "texture": "#extractor"} - } - }, - { - "name": "Side", - "from": [11, 5, -1], - "to": [12, 11, 5], - "faces": { - "north": {"uv": [6, 1, 7, 7], "texture": "#extractor"}, - "east": {"uv": [0, 1, 6, 7], "rotation": 180, "texture": "#extractor"}, - "south": {"uv": [13, 1, 14, 7], "texture": "#extractor"}, - "west": {"uv": [0, 1, 6, 7], "texture": "#extractor"} - } - } - ], - "display": { - "thirdperson_righthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "thirdperson_lefthand": { - "rotation": [75, -149, 0], - "translation": [0, 2.5, 0], - "scale": [0.375, 0.375, 0.375] - }, - "firstperson_righthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "firstperson_lefthand": { - "rotation": [0, -55, 0], - "scale": [0.4, 0.4, 0.4] - }, - "ground": { - "translation": [0, 1, 1.25], - "scale": [0.25, 0.25, 0.25] - }, - "gui": { - "rotation": [30, 45, 0], - "translation": [2.5, -0.5, 0], - "scale": [0.625, 0.625, 0.625] - }, - "fixed": { - "rotation": [0, 180, 0], - "translation": [0, 1.75, -4.5], - "scale": [0.5, 0.5, 0.5] - } - }, - "groups": [ - { - "name": "transposer", - "origin": [8, 8, 8], - "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - }, - { - "name": "vertical_wireless", - "origin": [8, 8, 8], - "children": [ - { - "name": "vertical", - "origin": [8, 8, 8], - "children": [11, 12, 13, 14] - } - ] - } - ] -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/transposer/vertical_linked_powered.json b/src/main/resources/assets/create/models/block/transposer/vertical_linked_powered.json deleted file mode 100644 index cf4443966..000000000 --- a/src/main/resources/assets/create/models/block/transposer/vertical_linked_powered.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "parent": "create:block/transposer/vertical_linked", - "textures": { - "redstone_antenna": "create:block/redstone_antenna_powered", - "extractor": "create:block/extractor_powered", - "particle": "create:block/extractor_powered" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/analog_lever.png b/src/main/resources/assets/create/textures/block/analog_lever.png index dea34971eed105b1bc48696d52278261706525e6..7e5a9f70ea15934e52a9a633c434d6cdc6c2a348 100644 GIT binary patch delta 572 zcmV-C0>l0G1o{M!Nq@os01mL>JlL* zR8+tcQ7IAOAOf`CRaWGJbUA#rS4w`yu^CqC}I zV5iQ&M>@ZI@1Ea%-`y#j&o{-vyZ5;N_zuqh#Hdv(AWlaK`+pghSz_Dy@D-J3PqF)U zS0P`wS8UYe-lr8z^;RNKVVaPE;4UPjGLqRm2aNyGqm&cd( z5c>xnzIS}~3Cgi~HbW%^D-i5tyI!eiDCw*)hju3d{?5o15J{@y;l>*7t*>JJhJ%e; z*LeQm_9_-E4S%Mtu>#AoIG@l%*$*kGHLh|XJFMkJgKfsi+4Mj^w}x2c*%U>HseIzq zle>a`q~tJ4IJQtWKsn^U+1oGnB`Fkmq^e>`T55?@Wp*HAbh#hX^#296UTozKwU&|f zoZWo^Dv*s{p((}YM}OO1oi}wNq@rt01m?e$8V@)0006DNklNA0lHtzOW0Nf4 zNLObbcg~#axmFI|AFzwBr)a<4!{hoI;#7fzp|NZPvECbo_<#NFC)VG+#mScwk*HZU z3k@2$zJ--$mYJW95F3On+2QPMjXAfuCHAC#xd=XZBfm(7Yc-QD+do6&M9h6Y`4HBQ; zJZF>Wer%TSSl9~;#lHm(KOE*0UYdlgS-$-e zxPT1Tb=hb%Vw|HWTHBEQZ9on79>JHld99rq4)-! zPAAJQkTDDJOif diff --git a/src/main/resources/assets/create/textures/block/extractor.png b/src/main/resources/assets/create/textures/block/extractor.png deleted file mode 100644 index 07a6b06fe7c8cabda346a330216c2a2efb784dec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 597 zcmV-b0;>IqP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizyJUazyWI3i3tDz0qRLaK~y+TjZ-~q z6j2mC?`5;u?`$@rOAx^XLW&d;D@`K`f++a~Ru-a-ppq)22q_n9|A3u^MPiCHLJ;x? z(g}*9W>xkhyP41I&hwp1#@!4d@xbNGyL`SMlJ^ z6@2;8z_sf$AP(wnVc$Ix?sz^NKU5Fbcai$t=wiwygKP#-c!Y_pk-~f?joXj6(QGzR zsZ>tz+qFe$)ZKYzbjkkFQ%Vvsc*9w+w+nx@&Gde&gR(uOM+Qw;z$g?7r-l>uq>ig; zj{3_U!oHCt!5rf}a8=EROL825YyA(ns%XFohF2isJYLRY z2m=Kj`v9LhsD3_#i%}7W`BFxq-i`ioY@`^jV;j7z?cn>A#(o9D?>_8_IMk-&8&r#W zzzKh-z=fX7Yc!k)#W6do<*^YX;?N)Yw80<8$OPo1u+&Q@Z}EFppkp7jJ)oRb=mthO z=?$){leds#A0($s`Xlrs=-TpKT(%#Z{uyDuWw3N}R(?E9gJJMXe6_KsbnJuDTp9K0 jf{eu+Bl#AXI|<+~e$D*lEBO^I00000NkvXXu0mjfSGNj- diff --git a/src/main/resources/assets/create/textures/block/extractor_powered.png b/src/main/resources/assets/create/textures/block/extractor_powered.png deleted file mode 100644 index a7f0cf6c3c7efe5795a8a38de4fc9989900791e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmV;30(bq1P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940v$<2K~y+TZIV5U z6Hyd~-+PluGMQv_4J^AX2x_xnqbn97h$0B0h5i7W#lmeD)FQ2wHd>|ePb~ORS*!>a zmUb2@f}15WCOeb)$Yf@&=iJ%Z8N)ts=RKUcALpL?icf<(YG>;$KCgC=n85XoGq`*6 zG=BVcaN*K9FbDe+tx+)7>V^^S_jd)y^^xP@G6mm^6yv6eB~$5%R;z)B+dG)g=NLsm zx1OQXY@k+?c(Qqs*J`9~wy;KlA@znDK7kQJz_xAJ9SfFa!8F@C??z#~ml+C{>uDR_xQmSy?>xST7w)E)(`MlH_}oa4a=D6I??ly6!=@`o!(%X#2y z74QNtp{r0245NOSEzvz#q99(_xwvN#1ep3h!XQN82h_x}Ql{Q&8`z^D$rR#Qj9Hj~ zbK_qr9^5;h&st#ew`{ns=?jejO%9LPSYO6w{~da50VhyeU-WO|>Z3R1YC;x1xH6n# z`}>qOGPDmkZ?^>Yz3fN}BUO?8=N~ax26j&XuT})!fB33>z`b!Jg_W)>_0S(xq}7r5 zIRi3FVlPxsM&3a7ht*K{<11YOYt=vna`BXio~-b}Bm_>H0^Uq%Exb`ho~o0}=zeRY zv72k*gC14o_!+uQY9wjZ9|iK+(_0uE09zyAr3>7+wyu91*MsAb{N_UnUauN>e72)s ifpa_-Ux9P~1N;MyVDPNvQrHCm00000#LT=By}Z;C1rt33 zJtM=93Yk-Zif((lIEGmGZ=H0ItI0vcm39B2Yi?hS9TS)A5O7@LE3kI)go4CIX>ShB zmW-FX?!V^yp6F<{SxDd0>@ ze)xTMFhkX})DqEO42@Qw1;P&5e!n^OgnMBqOHOx_PMs#pr?U~Y%=4^@m#$s=pJQ3( zsW(uuejOl?nQx_EO;BxenVp{LE{IDI9MZDmtl&Gb} zIfB9`-g3NZX18cxpeHZ4fvcTm_Y;najkm)Ec7GH8v~p7C<}m$7KyNa5y85}Sb4q9e E06a~IOaK4? diff --git a/src/main/resources/assets/create/textures/block/transposer.png b/src/main/resources/assets/create/textures/block/transposer.png deleted file mode 100644 index e2c0dd6db763680e5451ee2657e28a39efc35be9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 619 zcmV-x0+juUP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGizW@LZzX3P}QzQTY0su)wK~y+TeN#Hx(3d(M4D8L=YEBQ7qWv#?tP(sq|NLA*Ixf zw4k6aROq6j8<8$rq@``zF&~p;^31)NWF|&E@Lt}%@4l0B&r2jB1lsX*^r9HPQbnn( zaQyE528ISt;>YGLs$F`Lr})b^6B&Y`Ge?p{UXl2D^U`r9nV9B5%EmTf)Hlr-aH^Z>Ae`5?HZ7%-<;5T3s+Cq|?Z&d&Q002ovPDHLk FV1n8+7!?2j