From b14664d45f9ff3910b60202a63e692d48343ac3e Mon Sep 17 00:00:00 2001 From: simibubi <31564874+simibubi@users.noreply.github.com> Date: Thu, 22 Oct 2020 00:50:17 +0200 Subject: [PATCH] Windmill is Bearing is Clockwork - Fixed Mechanical Press animation de-sync between server and client - The press no longer requires a redstone signal to activate on in-world items - Fixed spouts and basin trying to create potion buckets - The Mechanical bearing can no longer generate force from wind - Added the windmill bearing - Windmill bearings can be configured to rotate counter-clockwise - Added Sail Frames and Sails - Sails can by dyed in-world - Sails negate fall damage - Sails attach themselves to blocks and do not require a sticky surface or chassis - Clockwork bearings can now be configured to switch minute and hour hand aswell as use a 24 hour cycle - Fixed tunnels with windows occluding block faces directly behind them - Fixed item model of the mechanical saw --- src/generated/resources/.cache/cache | 102 +++++++-- .../assets/create/blockstates/black_sail.json | 30 +++ .../assets/create/blockstates/blue_sail.json | 30 +++ .../assets/create/blockstates/brown_sail.json | 30 +++ .../assets/create/blockstates/cyan_sail.json | 30 +++ .../assets/create/blockstates/fluid_pipe.json | 204 +++++++++--------- .../assets/create/blockstates/gray_sail.json | 30 +++ .../assets/create/blockstates/green_sail.json | 30 +++ .../create/blockstates/light_blue_sail.json | 30 +++ .../create/blockstates/light_gray_sail.json | 30 +++ .../assets/create/blockstates/lime_sail.json | 30 +++ .../create/blockstates/magenta_sail.json | 30 +++ .../create/blockstates/orange_sail.json | 30 +++ .../assets/create/blockstates/pink_sail.json | 30 +++ .../create/blockstates/purple_sail.json | 30 +++ .../create/blockstates/radial_chassis.json | 72 +++---- .../assets/create/blockstates/red_sail.json | 30 +++ .../assets/create/blockstates/sail_frame.json | 30 +++ .../assets/create/blockstates/white_sail.json | 30 +++ .../create/blockstates/windmill_bearing.json | 30 +++ .../create/blockstates/yellow_sail.json | 30 +++ .../resources/assets/create/lang/en_ud.json | 18 ++ .../resources/assets/create/lang/en_us.json | 25 +++ .../assets/create/lang/unfinished/de_de.json | 27 ++- .../assets/create/lang/unfinished/fr_fr.json | 27 ++- .../assets/create/lang/unfinished/it_it.json | 27 ++- .../assets/create/lang/unfinished/ja_jp.json | 27 ++- .../assets/create/lang/unfinished/ko_kr.json | 27 ++- .../assets/create/lang/unfinished/nl_nl.json | 27 ++- .../assets/create/lang/unfinished/pt_br.json | 27 ++- .../assets/create/lang/unfinished/ru_ru.json | 27 ++- .../assets/create/lang/unfinished/zh_cn.json | 27 ++- .../create/models/block/black_sail.json | 6 + .../assets/create/models/block/blue_sail.json | 6 + .../create/models/block/brown_sail.json | 6 + .../models/block/clockwork_bearing.json | 1 + .../assets/create/models/block/cyan_sail.json | 6 + .../assets/create/models/block/gray_sail.json | 6 + .../create/models/block/green_sail.json | 6 + .../create/models/block/light_blue_sail.json | 6 + .../create/models/block/light_gray_sail.json | 6 + .../assets/create/models/block/lime_sail.json | 6 + .../create/models/block/magenta_sail.json | 6 + .../models/block/mechanical_bearing.json | 1 + .../create/models/block/orange_sail.json | 6 + .../assets/create/models/block/pink_sail.json | 6 + .../create/models/block/purple_sail.json | 6 + .../assets/create/models/block/red_sail.json | 6 + .../create/models/block/windmill_bearing.json | 8 + .../create/models/block/yellow_sail.json | 6 + .../create/models/item/clockwork_bearing.json | 1 + .../models/item/mechanical_bearing.json | 1 + .../assets/create/models/item/sail_frame.json | 3 + .../assets/create/models/item/white_sail.json | 3 + .../create/models/item/windmill_bearing.json | 8 + .../crafting/kinetics/sail_frame.json | 32 +++ .../crafting/kinetics/white_sail.json | 32 +++ .../crafting/kinetics/windmill_bearing.json | 32 +++ .../create/loot_tables/blocks/black_sail.json | 19 ++ .../create/loot_tables/blocks/blue_sail.json | 19 ++ .../create/loot_tables/blocks/brown_sail.json | 19 ++ .../create/loot_tables/blocks/cyan_sail.json | 19 ++ .../create/loot_tables/blocks/gray_sail.json | 19 ++ .../create/loot_tables/blocks/green_sail.json | 19 ++ .../loot_tables/blocks/light_blue_sail.json | 19 ++ .../loot_tables/blocks/light_gray_sail.json | 19 ++ .../create/loot_tables/blocks/lime_sail.json | 19 ++ .../loot_tables/blocks/magenta_sail.json | 19 ++ .../loot_tables/blocks/orange_sail.json | 19 ++ .../create/loot_tables/blocks/pink_sail.json | 19 ++ .../loot_tables/blocks/purple_sail.json | 19 ++ .../create/loot_tables/blocks/red_sail.json | 19 ++ .../create/loot_tables/blocks/sail_frame.json | 19 ++ .../create/loot_tables/blocks/white_sail.json | 19 ++ .../loot_tables/blocks/windmill_bearing.json | 19 ++ .../loot_tables/blocks/yellow_sail.json | 19 ++ .../recipes/crafting/kinetics/sail_frame.json | 20 ++ .../recipes/crafting/kinetics/white_sail.json | 20 ++ .../crafting/kinetics/windmill_bearing.json | 22 ++ .../create/tags/blocks/fan_transparent.json | 1 + .../data/create/tags/blocks/sails.json | 20 ++ .../create/tags/blocks/windmill_sails.json | 17 ++ .../com/simibubi/create/AllBlockPartials.java | 17 +- .../java/com/simibubi/create/AllBlocks.java | 58 ++++- .../java/com/simibubi/create/AllShapes.java | 11 +- .../java/com/simibubi/create/AllTags.java | 2 +- .../com/simibubi/create/AllTileEntities.java | 7 + .../simibubi/create/content/AllSections.java | 6 +- .../press/BeltPressingCallbacks.java | 2 +- .../press/MechanicalPressBlock.java | 29 +-- .../press/MechanicalPressTileEntity.java | 51 ++++- .../BlockMovementTraits.java | 13 +- .../bearing/BearingRenderer.java | 4 +- .../bearing/ClockworkBearingTileEntity.java | 123 +++++++++-- .../bearing/IBearingTileEntity.java | 15 ++ .../bearing/MechanicalBearingBlock.java | 44 ++-- .../bearing/MechanicalBearingTileEntity.java | 91 ++------ .../structureMovement/bearing/SailBlock.java | 198 +++++++++++++++++ .../bearing/SailBlockPlacementHelper.java | 101 +++++++++ .../bearing/WindmillBearingBlock.java | 55 +++++ .../bearing/WindmillBearingTileEntity.java | 111 ++++++++++ .../fluids/actors/GenericItemFilling.java | 7 +- .../contraptions/processing/BasinBlock.java | 17 +- .../simibubi/create/events/ClientEvents.java | 2 + .../foundation/command/AllCommands.java | 2 +- .../create/foundation/config/CClient.java | 2 +- .../foundation/data/BuilderTransformers.java | 9 +- .../data/recipe/StandardRecipeGen.java | 24 +++ .../create/foundation/gui/AllIcons.java | 4 + .../foundation/item/CreateItemGroupBase.java | 5 +- .../assets/create/lang/default/messages.json | 8 + .../create/models/block/bearing/block.json | 2 +- .../create/models/block/bearing/item.json | 2 +- .../models/block/bearing/top_wooden.json | 10 + .../create/models/block/sail_frame.json | 143 ++++++++++++ .../assets/create/models/block/seat.json | 34 ++- .../create/models/block/white_sail.json | 141 ++++++++++++ .../textures/block/bearing_top_wooden.png | Bin 0 -> 516 bytes .../textures/block/sail/canvas_black.png | Bin 0 -> 459 bytes .../textures/block/sail/canvas_blue.png | Bin 0 -> 485 bytes .../textures/block/sail/canvas_brown.png | Bin 0 -> 526 bytes .../textures/block/sail/canvas_cyan.png | Bin 0 -> 475 bytes .../textures/block/sail/canvas_gray.png | Bin 0 -> 479 bytes .../textures/block/sail/canvas_green.png | Bin 0 -> 449 bytes .../textures/block/sail/canvas_light_blue.png | Bin 0 -> 488 bytes .../textures/block/sail/canvas_light_gray.png | Bin 0 -> 490 bytes .../textures/block/sail/canvas_lime.png | Bin 0 -> 479 bytes .../textures/block/sail/canvas_magenta.png | Bin 0 -> 480 bytes .../textures/block/sail/canvas_orange.png | Bin 0 -> 490 bytes .../textures/block/sail/canvas_pink.png | Bin 0 -> 502 bytes .../textures/block/sail/canvas_purple.png | Bin 0 -> 493 bytes .../create/textures/block/sail/canvas_red.png | Bin 0 -> 461 bytes .../textures/block/sail/canvas_white.png | Bin 0 -> 461 bytes .../textures/block/sail/canvas_yellow.png | Bin 0 -> 478 bytes .../create/textures/block/sail/frame.png | Bin 0 -> 718 bytes .../textures/block/windmill_bearing_side.png | Bin 0 -> 432 bytes .../assets/create/textures/gui/icons.png | Bin 8608 -> 4765 bytes 137 files changed, 2840 insertions(+), 368 deletions(-) create mode 100644 src/generated/resources/assets/create/blockstates/black_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/blue_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/brown_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/cyan_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/gray_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/green_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/light_blue_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/light_gray_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/lime_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/magenta_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/orange_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/pink_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/purple_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/red_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/sail_frame.json create mode 100644 src/generated/resources/assets/create/blockstates/white_sail.json create mode 100644 src/generated/resources/assets/create/blockstates/windmill_bearing.json create mode 100644 src/generated/resources/assets/create/blockstates/yellow_sail.json create mode 100644 src/generated/resources/assets/create/models/block/black_sail.json create mode 100644 src/generated/resources/assets/create/models/block/blue_sail.json create mode 100644 src/generated/resources/assets/create/models/block/brown_sail.json create mode 100644 src/generated/resources/assets/create/models/block/cyan_sail.json create mode 100644 src/generated/resources/assets/create/models/block/gray_sail.json create mode 100644 src/generated/resources/assets/create/models/block/green_sail.json create mode 100644 src/generated/resources/assets/create/models/block/light_blue_sail.json create mode 100644 src/generated/resources/assets/create/models/block/light_gray_sail.json create mode 100644 src/generated/resources/assets/create/models/block/lime_sail.json create mode 100644 src/generated/resources/assets/create/models/block/magenta_sail.json create mode 100644 src/generated/resources/assets/create/models/block/orange_sail.json create mode 100644 src/generated/resources/assets/create/models/block/pink_sail.json create mode 100644 src/generated/resources/assets/create/models/block/purple_sail.json create mode 100644 src/generated/resources/assets/create/models/block/red_sail.json create mode 100644 src/generated/resources/assets/create/models/block/windmill_bearing.json create mode 100644 src/generated/resources/assets/create/models/block/yellow_sail.json create mode 100644 src/generated/resources/assets/create/models/item/sail_frame.json create mode 100644 src/generated/resources/assets/create/models/item/white_sail.json create mode 100644 src/generated/resources/assets/create/models/item/windmill_bearing.json create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/sail_frame.json create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/white_sail.json create mode 100644 src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/windmill_bearing.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/black_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/blue_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/brown_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/cyan_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/gray_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/green_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/light_blue_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/light_gray_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/lime_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/magenta_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/orange_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/pink_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/purple_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/red_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/sail_frame.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/white_sail.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/windmill_bearing.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/yellow_sail.json create mode 100644 src/generated/resources/data/create/recipes/crafting/kinetics/sail_frame.json create mode 100644 src/generated/resources/data/create/recipes/crafting/kinetics/white_sail.json create mode 100644 src/generated/resources/data/create/recipes/crafting/kinetics/windmill_bearing.json create mode 100644 src/generated/resources/data/create/tags/blocks/sails.json create mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlock.java create mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlockPlacementHelper.java create mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingBlock.java create mode 100644 src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java create mode 100644 src/main/resources/assets/create/models/block/bearing/top_wooden.json create mode 100644 src/main/resources/assets/create/models/block/sail_frame.json create mode 100644 src/main/resources/assets/create/models/block/white_sail.json create mode 100644 src/main/resources/assets/create/textures/block/bearing_top_wooden.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_black.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_blue.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_brown.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_cyan.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_gray.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_green.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_light_blue.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_light_gray.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_lime.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_magenta.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_orange.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_pink.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_purple.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_red.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_white.png create mode 100644 src/main/resources/assets/create/textures/block/sail/canvas_yellow.png create mode 100644 src/main/resources/assets/create/textures/block/sail/frame.png create mode 100644 src/main/resources/assets/create/textures/block/windmill_bearing_side.png diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index bd58489ca..07521487a 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -22,9 +22,11 @@ e555e3c2b2d3f01440e48db4ba88f7e00fd99b6f assets/create/blockstates/basin.json f25693a9429f6337149ff24f27900dc4eb82a7c2 assets/create/blockstates/belt.json cf9045eb16e5299a1d917c4cb536289f49411276 assets/create/blockstates/birch_window.json 94a1a91403eb4b035fec48071e7fcae57a8a6abd assets/create/blockstates/birch_window_pane.json +e0f1e44c9bce4a7478592cf3a8ee7b91d9083d65 assets/create/blockstates/black_sail.json 58b07d2af6030342f0354f6d3fd0ee128d2d74b4 assets/create/blockstates/black_seat.json a71ddf3291bd13d7877f2fe32c42f50407f99afb assets/create/blockstates/black_valve_handle.json 923aeb2a556f67bc0526f237dd97af2d37b4c9f1 assets/create/blockstates/blaze_burner.json +ec2ab87734acc209e6be3bc4898b1199f819bfd3 assets/create/blockstates/blue_sail.json 4854d1ef52130a7887aecc60bcaffbd66f0871a8 assets/create/blockstates/blue_seat.json 9d7341a5cae5d47788c595167946dfb6441cebd1 assets/create/blockstates/blue_valve_handle.json fba967b1f6e44b34a9d9662e2fedfc13aad7f36c assets/create/blockstates/brass_belt_funnel.json @@ -32,6 +34,7 @@ fba967b1f6e44b34a9d9662e2fedfc13aad7f36c assets/create/blockstates/brass_belt_fu b8dd6e505943e06706d0718ece620ab3cf943650 assets/create/blockstates/brass_casing.json 3057e1121117c0cd651c288cd8e2d46bdf64afb1 assets/create/blockstates/brass_funnel.json 672eedcd3520c6d39603449165a23be9c612c620 assets/create/blockstates/brass_tunnel.json +11ebdd9bd0815833e62ec1bea03a4cdd86ce00f3 assets/create/blockstates/brown_sail.json e81608346d43406ee72cae0f78b8bcfb37ba2d75 assets/create/blockstates/brown_seat.json 322289524c058fac66bbe76b4924c3b0c0c33b84 assets/create/blockstates/brown_valve_handle.json 26f3b6a8f8249e4e622ab200057d75e228762817 assets/create/blockstates/cart_assembler.json @@ -57,6 +60,7 @@ f0031f5e970b3d5695472ed384950b8631b015ed assets/create/blockstates/creative_moto fe2f78b94c20944399101e7369e2d43324297fb6 assets/create/blockstates/crushing_wheel.json a1dd6cb3daa97ea871290ef7b178d28b564ee2a2 assets/create/blockstates/crushing_wheel_controller.json b1126c191877cff86b4e2de83e1fcbd151451cb7 assets/create/blockstates/cuckoo_clock.json +b496452f2f7dbbba385e1fc10b560ec266e4b5e7 assets/create/blockstates/cyan_sail.json 4de72f65bff4e5d9c8153fa3adeee6b61d6f912b assets/create/blockstates/cyan_seat.json 2c04d57e56849f243aec8a1e769574d24daac1e9 assets/create/blockstates/cyan_valve_handle.json 1726b1b9e04a0634e7e1fdcf1cf4cc898efc5c2f assets/create/blockstates/dark_oak_window.json @@ -132,7 +136,7 @@ de8a40b7daf1497d5aecee47a43b3e0b1d030b00 assets/create/blockstates/fancy_scoria_ fc9ac0a7e7191b93516719455a17177fa6524ecc assets/create/blockstates/fancy_weathered_limestone_bricks_slab.json b2a7c321b1795f20e7433f81a55ce4683de081b8 assets/create/blockstates/fancy_weathered_limestone_bricks_stairs.json 6372fe02ba0065acb0758121c45a15a1a8fdc5de assets/create/blockstates/fancy_weathered_limestone_bricks_wall.json -3d97226b5e8d8f70ed08e45e78db1faf78d5e28b assets/create/blockstates/fluid_pipe.json +4c3e0500f9382d2e426e823fe876f57f4d7ee3b4 assets/create/blockstates/fluid_pipe.json f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json 5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json @@ -161,8 +165,10 @@ a4b0337149cb0617cc60061477c7178d37dbb831 assets/create/blockstates/granite_cobbl d97fdea02187e63f6b63913357c79a18660d676d assets/create/blockstates/granite_cobblestone_stairs.json 9ce66b5a61c3aad398756d26e4efee2b9e12a275 assets/create/blockstates/granite_cobblestone_wall.json f8659e81cd2a623475a6a9aca59149e82de56b1c assets/create/blockstates/granite_pillar.json +5c40c4a27e1dec747a467dd251700c72a6ceb07d assets/create/blockstates/gray_sail.json a5ec5401ba9f3e102a2e1b35837f643847afbca4 assets/create/blockstates/gray_seat.json 5f17a5868616b33eb157965a661046cab7a1427f assets/create/blockstates/gray_valve_handle.json +52b849faef96b8ab9d9d64a1518c8f299af057b8 assets/create/blockstates/green_sail.json 13059309684db0cc7a0f1f4fce2407cf06cce80a assets/create/blockstates/green_seat.json f4a0fc68e8daaa0a47cdc951ced4310057a874b0 assets/create/blockstates/green_valve_handle.json 6ab675fa06317e6d07c0c1a453e7bb43e3f46b3b assets/create/blockstates/hand_crank.json @@ -180,10 +186,13 @@ a4cfcdc038af0f93a58d88ea8860b34d73632ff4 assets/create/blockstates/layered_dolom 038f532f7364c1e793196fcc5856df9ceff93578 assets/create/blockstates/layered_limestone.json 8535d628f8834be62cdf62ef4b60c2ce3a7af99f assets/create/blockstates/layered_scoria.json 419d7fffc5cbd392f10211afa8d17e3eb8df8380 assets/create/blockstates/layered_weathered_limestone.json +029904f21970947a4423a6e0c8c65c4e02f2e8e6 assets/create/blockstates/light_blue_sail.json 2a0a8b1715700bf1e284ee57ef9f7f163c12f3ee assets/create/blockstates/light_blue_seat.json 9bee040558a6b24e21f837fc808e17fae1883e71 assets/create/blockstates/light_blue_valve_handle.json +93537c4e2ab86218a777e7b000c3fcd55a80b1cd assets/create/blockstates/light_gray_sail.json d9a2551e001bb315d071bb9f1f013323a66a5d09 assets/create/blockstates/light_gray_seat.json 8bea8c86de8c218c8932eef140f0ed439e173156 assets/create/blockstates/light_gray_valve_handle.json +ba2c4e3ddafa3c89a72cc243b14e8518fab369aa assets/create/blockstates/lime_sail.json 1de3a88c003df03f5006e1bbaa0236589aba08ad assets/create/blockstates/lime_seat.json 179a3e68b9f2e289eafe0e98e768befbbf91c5c2 assets/create/blockstates/lime_valve_handle.json c4dcb169bd1dffe8501bff455e3eb6ba979f60ab assets/create/blockstates/limesand.json @@ -198,6 +207,7 @@ 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 +85a58ac539775f90903d9ce66374f3f2ffd4fecf assets/create/blockstates/magenta_sail.json 84c494d24cc58af274fdd054896c680e8095d2d0 assets/create/blockstates/magenta_seat.json 3bfce5016e5c929b74368dc2d734e62ae34587a4 assets/create/blockstates/magenta_valve_handle.json 3b3250d6e209403a93d025604a8081087965016e assets/create/blockstates/mechanical_arm.json @@ -229,6 +239,7 @@ b1126c191877cff86b4e2de83e1fcbd151451cb7 assets/create/blockstates/mysterious_cu 36e46e65003a8d0b8555fe5e8f8dc980d6559bc5 assets/create/blockstates/nozzle.json cf60989f63f02067fc4e4ad25033ac83167cdeb0 assets/create/blockstates/oak_window.json 4a796509c3953171f04f957351282205840b3760 assets/create/blockstates/oak_window_pane.json +b0be3d4ff92cb123ec21ec2788db35d0f392ba8a assets/create/blockstates/orange_sail.json 5764a24f6c4fa552b61d2a02135adfc7d93c2e10 assets/create/blockstates/orange_seat.json 1445074ec21a3735ea912b624c0f9f18a450d2d3 assets/create/blockstates/orange_valve_handle.json 8e2028e1a0450a592eed5e10276ba19b1195a206 assets/create/blockstates/ornate_iron_window.json @@ -278,6 +289,7 @@ c17d334e938dcb742550ba8307ca8266a1fc9b49 assets/create/blockstates/paved_weather cb23aef25f3106b06c8fa8f152c638bb0d2185d8 assets/create/blockstates/paved_weathered_limestone_slab.json d62b0992cec1de45dad1f2c273132225f4ef33a0 assets/create/blockstates/paved_weathered_limestone_stairs.json dba4cf86e82ed4502fffed363fbce226a445e774 assets/create/blockstates/paved_weathered_limestone_wall.json +30971f2f76fe56f144178c33ad6bde5fc9fb61c3 assets/create/blockstates/pink_sail.json 919a79e4a4a5fab0aac3ef48e1c786017d6aa001 assets/create/blockstates/pink_seat.json 471a3bb474a0ae0453143888d561256cce894e3f assets/create/blockstates/pink_valve_handle.json 975c97018e9e2419943eaab43aed0970e96feaf7 assets/create/blockstates/piston_extension_pole.json @@ -310,9 +322,11 @@ f42ad32aefcfa7ccc6287f57ee1a5f092b65126f assets/create/blockstates/polished_weat e8b0a401c10d1ba67ed71ba31bd5f9bc28571b65 assets/create/blockstates/powered_toggle_latch.json 3a739f9d4276828d83f2d2750bf3227c87bcd438 assets/create/blockstates/pulley_magnet.json 469e430d96cb0a5e1aaf6b7cc5d401d488c9e600 assets/create/blockstates/pulse_repeater.json +d06cd9a1101b18d306a786320aab12018b1325d6 assets/create/blockstates/purple_sail.json 92957119abd5fbcca36a113b2a80255fd70fc303 assets/create/blockstates/purple_seat.json 61035f8afe75ff7bbd291da5d8690bcbebe679eb assets/create/blockstates/purple_valve_handle.json -8d7e653bfd9846e684a0d3725595714a19201017 assets/create/blockstates/radial_chassis.json +bdd56f32ce0a148b6e466a55ab2777f69fc08cfc assets/create/blockstates/radial_chassis.json +45877c4d90a7185c2f304edbd67379d800920439 assets/create/blockstates/red_sail.json da1b08387af7afa0855ee8d040f620c01f20660a assets/create/blockstates/red_seat.json 722fc77bbf387af8a4016e42cbf9501d2b968881 assets/create/blockstates/red_valve_handle.json 8929677f2cc5354aa19ef182af69f9f0b41eb242 assets/create/blockstates/redstone_contact.json @@ -322,6 +336,7 @@ b76ed5f6d271349b2509708c11e713bb299a57b6 assets/create/blockstates/refined_radia e2990fe70ad5d10437a376e70e167d1856277cc1 assets/create/blockstates/rope.json e14d5f7252105934295b4e156ec0e6d62d3d6b1c assets/create/blockstates/rope_pulley.json cc4cf3420fa290cb844f9cf4dfdd836aa9b70500 assets/create/blockstates/rotation_speed_controller.json +ff5525783431f5047fc1ebf71d6c5ad526072b14 assets/create/blockstates/sail_frame.json 7120f29e4b88a1c40125a8cdbe8af3570f4ee352 assets/create/blockstates/schematic_table.json 36592a6542332b35445931e8e9531adf786b63ba assets/create/blockstates/schematicannon.json a5befc14551f043675e985027609aeb7e6bacc0d assets/create/blockstates/scoria.json @@ -362,23 +377,26 @@ fd7a9c7095372485081436c91489cadb2b0c514e assets/create/blockstates/weathered_lim 47f8c91ff4c3f5cad782ab469a1fe5f4909dc7f1 assets/create/blockstates/weathered_limestone_cobblestone_stairs.json c60c3115fd6eeaa3a696428a87a74d184ab7d62d assets/create/blockstates/weathered_limestone_cobblestone_wall.json c77b46d8b459e5c7cc495393546f3fcca8a1fa1d assets/create/blockstates/weathered_limestone_pillar.json +512bf17c9ea309b1f7da54440f923530d25e467c assets/create/blockstates/white_sail.json 4647010162eb4c350fad236d860317eaa1884c77 assets/create/blockstates/white_seat.json 89000903d0ab8139e919abea7aa0361b34c24e55 assets/create/blockstates/white_valve_handle.json +c4cd1131113667da0180898b5db3ebad609db8ba assets/create/blockstates/windmill_bearing.json +e03c48512967845fce09d84b955d3bc7b480fedc assets/create/blockstates/yellow_sail.json a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.json 6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -33f621fe1a09a46426af59c9352c33e97c2bc00d assets/create/lang/en_ud.json -ed4fcea49a7ad3c1ed81f7681dd190d2474314fe assets/create/lang/en_us.json -cf1c3a0295a2a3d74bf06ea5a5f0a4832dea060c assets/create/lang/unfinished/de_de.json -1adf9c52894458c41763cfe7c9714e9fc5816f04 assets/create/lang/unfinished/fr_fr.json -db2e9e08036df7f2c3a0c1c319e5ba975b2b4755 assets/create/lang/unfinished/it_it.json -df56f590b03878564544368cad779ef1a78c430d assets/create/lang/unfinished/ja_jp.json -f3af37ad22d3b4a1833e22948c87b3193b44d97a assets/create/lang/unfinished/ko_kr.json -a6ff23a0430637a8119e94f05cb393c7642179c9 assets/create/lang/unfinished/nl_nl.json -4fe5e45ca30e1c6c53103e06e3ad0cdd9671956e assets/create/lang/unfinished/pt_br.json -c3bf50e7e9191b2607573c5453108a5fb6a733b9 assets/create/lang/unfinished/ru_ru.json -bd56413cd36382704d77ce4e194712b1d79dcbd6 assets/create/lang/unfinished/zh_cn.json +ad168f04d430ebd783a845e5928c3273da3f0074 assets/create/lang/en_ud.json +25b02b7b025f988b0cda9655b2c586c82dfd369c assets/create/lang/en_us.json +cf9075cacdbd171b33fa0b6cb68365e2c3614b40 assets/create/lang/unfinished/de_de.json +87ea3d2da2863fa61c5d5b9f535aac8c1703be28 assets/create/lang/unfinished/fr_fr.json +3349f2726256c99abd7e5268faa806b628d91e4d assets/create/lang/unfinished/it_it.json +3cf205e25543b7860d6b00f2f91dd799333b9d74 assets/create/lang/unfinished/ja_jp.json +d112e8b804ca16511c4096b328f3635b4c84a3e9 assets/create/lang/unfinished/ko_kr.json +78791855041e56a27fb3520b289ca8a144de98ad assets/create/lang/unfinished/nl_nl.json +d92ac1ec1ebbad873dd6563509767428603b6ba2 assets/create/lang/unfinished/pt_br.json +5d4f30e05fea3bec9c6c85a5f7767eb3dd0a7dfe assets/create/lang/unfinished/ru_ru.json +46996569e164858a5f9dc7f60731707d3517b888 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 @@ -440,8 +458,10 @@ e2801a0c3fe8e1c2485291485b977f581fdc8b7c assets/create/models/block/andesite_tun 3905ced5892afa60009bf26279f9fa4756c273d4 assets/create/models/block/birch_window_pane_post.json 62b3f2edc5ef5d7dabbcff19220921b0e3582376 assets/create/models/block/birch_window_pane_side.json 95d4230eb366f5e7684820c9337e3956ed34042a assets/create/models/block/birch_window_pane_side_alt.json +2b59d6f937cd542eba670689c30fe16887dfd9a0 assets/create/models/block/black_sail.json 97d79ab99c0fb278a9b5dc54e1c6563868f87b76 assets/create/models/block/black_seat.json 02747ea1a0e5d4a1cd466bf26878885a89d347fa assets/create/models/block/black_valve_handle.json +d876627b6e519c6f3f59c7c27cc7b0f903206f7c assets/create/models/block/blue_sail.json e58b00a7222152d7facbe0e82f00933b974df747 assets/create/models/block/blue_seat.json c7f91468b196fbda137e6b31764870b3bbfda6b6 assets/create/models/block/blue_valve_handle.json 24dff9a8d22c9a88286d2b7d08384ac9f281a512 assets/create/models/block/brass_belt_funnel_pull_extended.json @@ -461,6 +481,7 @@ addcf821a2348c0985bf9a72229355cfab818069 assets/create/models/block/brass_belt_f a959e03ca339badb49fe58ba53d86a84352e91f3 assets/create/models/block/brass_tunnel/t_left.json 0585fbe58da3a8ed0dc98cc7ed79ac067312078d assets/create/models/block/brass_tunnel/t_right.json a0612a633756433e1b37ddc6d290aa1fc07839ef assets/create/models/block/brass_tunnel/window.json +8ab097caaa0db0915ae9254f7d65092d9171bc60 assets/create/models/block/brown_sail.json 4eed0ad902f5e84f2b6c160f3283e8028640e77d assets/create/models/block/brown_seat.json 6c39677f8c3a84280835c717ea1ef569b7c76a1b assets/create/models/block/brown_valve_handle.json 028a07b49c05fe8a93f1d8c229d81e73d887c2df assets/create/models/block/chiseled_dark_scoria.json @@ -469,7 +490,7 @@ cd7751090cf3d55296b8e415d0af9b6f18d69770 assets/create/models/block/chiseled_gab d2e195aa2e90c712e51d855a9a4a334b52f62a69 assets/create/models/block/chiseled_limestone.json ac07568fa7b2d3fa84d0fe89a498514d30514291 assets/create/models/block/chiseled_scoria.json ecb2b85ee210dce329d2be66b98d0f0d4e6fc223 assets/create/models/block/chiseled_weathered_limestone.json -f9a3f0939ea43b404eb2826b94211a25fca5ebc2 assets/create/models/block/clockwork_bearing.json +30fe120af3cb32faf0729df4d2cdf868f804be17 assets/create/models/block/clockwork_bearing.json 70406933cc4fa5471af6e562fd84a397347dba17 assets/create/models/block/copper_casing.json b2c528cfd24a5cb0cb96c45d0a914f1090f8c32b assets/create/models/block/copper_valve_handle.json 1ef7060b0ca7e9c0bfc8151f98ca08da31862cda assets/create/models/block/crate/brass/bottom.json @@ -482,6 +503,7 @@ a09f639bde4c61d68592eb06c807e7a6791ff950 assets/create/models/block/crate/brass/ 7635211e4d833748acaea37ea48b1f749c32ea5f assets/create/models/block/crate/creative/right.json a123e3c8a9e2ea1665f268cf3991aa7e4b3119c6 assets/create/models/block/crate/creative/single.json 29ab5cfe7aed1271ede125e91bf78c1372b5f96e assets/create/models/block/crate/creative/top.json +68843a02a32c156afad85830877b83f9b51c5147 assets/create/models/block/cyan_sail.json 6704782830b3d872321e895b6903709c18e3778f assets/create/models/block/cyan_seat.json f45ef4a5f0aa8482d493661673b1c0ab6d061157 assets/create/models/block/cyan_valve_handle.json 57e70af1da4e971eca075616b787b70104189d60 assets/create/models/block/dark_oak_window.json @@ -678,8 +700,10 @@ d25cb5553bfd89cd3fca61ebd2204bf2a44cc3da assets/create/models/block/granite_cobb cf267628d47aa424bc20977e69e255ceda3ddfe4 assets/create/models/block/granite_cobblestone_wall_post.json a4f50b75a3186829fc5d62ee4e33997cd202dbd5 assets/create/models/block/granite_cobblestone_wall_side.json 349a58ac4e4535d0fe9ea467632ed904da2c6098 assets/create/models/block/granite_pillar.json +a68cd40ffb769b195437107f4a2c2188b222b74a assets/create/models/block/gray_sail.json 6eb5e59e803e1055968b90f3099cd0a17a1d3fd5 assets/create/models/block/gray_seat.json 7e213be39cc928363bf2b096f055439211050b8d assets/create/models/block/gray_valve_handle.json +17b651233c62b928f0228562a7f6e7a2b7b2d6b7 assets/create/models/block/green_sail.json 1438b8ce54ac5557b8f10dcef94f3525eae19461 assets/create/models/block/green_seat.json cc7ce9b6bc687ad5027a67c3bf22bdf5bcd71674 assets/create/models/block/green_valve_handle.json 9730fcb02f679087e81e24c836751e625be6a298 assets/create/models/block/horizontal_framed_glass.json @@ -703,10 +727,13 @@ ff78465839cbd36a356cd4153c721c88b1f0b297 assets/create/models/block/layered_gabb 8f1014b1fdef246c2ce525f33ade4f03c85d0217 assets/create/models/block/layered_limestone.json 9408ce7ba29a96053c9333b15a05d716752392c6 assets/create/models/block/layered_scoria.json da71aca99ac5cf3731896be47e15d774397a3330 assets/create/models/block/layered_weathered_limestone.json +19bd08ad6ac351e6eee2131f7b4c11a768bf8f08 assets/create/models/block/light_blue_sail.json 1a28b07da68d1461cd04c971ae548d94165e0cf3 assets/create/models/block/light_blue_seat.json 68e01f8d8a31f07f236383e19b49ae1be4cbe3f4 assets/create/models/block/light_blue_valve_handle.json +73f14b905d5fdb433751a33b963852de6491722a assets/create/models/block/light_gray_sail.json 292bec1b9f962b17b29147d982a9b177618b7eb9 assets/create/models/block/light_gray_seat.json 42338c4965da63962ea08077dc9e899aaf4c3c65 assets/create/models/block/light_gray_valve_handle.json +8292d043ebfe280340526a6a0f96d4160099e213 assets/create/models/block/lime_sail.json 31c9474210d8535c5417021fe042d4cc31e17328 assets/create/models/block/lime_seat.json 74008bd0d775b0e2e96b43be2e51d0f3c3abdf21 assets/create/models/block/lime_valve_handle.json ce6fb36a386c895486e021823eb008b0fa4862c3 assets/create/models/block/limesand.json @@ -732,9 +759,10 @@ eee8ae85daa99fcd594da3d4af393726af69493b assets/create/models/block/limestone_co 595bfec2293c44deae49147016cb7971bdd721df assets/create/models/block/linear_chassis_bottom.json 999ce855842170f47db9d1e8e8636c24f7d3ad3d assets/create/models/block/linear_chassis_top.json b9abbd1dcf71e0a1416fd998a82a560c06cef5a3 assets/create/models/block/linear_chassis_top_bottom.json +ec6b5f636e163ff5e361d486cf628ca1af4849a1 assets/create/models/block/magenta_sail.json cbee001cd1bb1125a97d1bb2d1e6e5a68f129303 assets/create/models/block/magenta_seat.json bc5a03a5552eb4a518abefe5e8615f14ee13ca29 assets/create/models/block/magenta_valve_handle.json -0492070642fda75b943080022368505f2d065730 assets/create/models/block/mechanical_bearing.json +2e67f27a895c9163a5d1be62897d5e66b119767a assets/create/models/block/mechanical_bearing.json edf6ee4e590ebf162c00aa952d992f1bee2cad8a assets/create/models/block/mossy_andesite.json 55256e4df0038a619d80d3e6c50b0f3e3682e90a assets/create/models/block/mossy_dark_scoria.json 7b9609eaf8933de6db1a7114fd6631e7d9a16dd1 assets/create/models/block/mossy_diorite.json @@ -751,6 +779,7 @@ e55363147cc27fba84590c7e24460603988118e3 assets/create/models/block/oak_window_p 88883e266828422f86ec71db455a41f0279926fd assets/create/models/block/oak_window_pane_post.json aa12818d00d1995e5b8a218cb613215ec0161d23 assets/create/models/block/oak_window_pane_side.json 488dfd3f4bd82ab1b5b751b4a46881befb8d6819 assets/create/models/block/oak_window_pane_side_alt.json +ff9b51fcaffe54e321b9479f035f4ea7b278bfec assets/create/models/block/orange_sail.json fda0628a09ef726e3e8323b2f38b6a3e612dc2ca assets/create/models/block/orange_seat.json 3b07f3f1985495051d173725b01ddd52b5f70ac4 assets/create/models/block/orange_valve_handle.json 006115bf8e36367c0c409effdeab939a54c20776 assets/create/models/block/ornate_iron_window.json @@ -881,6 +910,7 @@ cc36e21013b80b1dfa041b55047096db127ffa51 assets/create/models/block/paved_weathe 743fc37d4c96834f9bd0697ad7990c721436b901 assets/create/models/block/paved_weathered_limestone_stairs_outer.json 34ba32e570e0a54501db071b9f8c38513edea93d assets/create/models/block/paved_weathered_limestone_wall_post.json daf65510d95730bcf0373d746f2a2dbfe6b44fc0 assets/create/models/block/paved_weathered_limestone_wall_side.json +1b5f9e819cd4b5f5fe6e8c24920b916e8d93c95e assets/create/models/block/pink_sail.json ecc60ce7ee6b753073a99c597db95d6d9df3d438 assets/create/models/block/pink_seat.json 7ada61878d3a3c1d3cc33bcf9a80c21b8f9aaff2 assets/create/models/block/pink_valve_handle.json 83a4922d5799a5a1391a2675e9273caa24cde192 assets/create/models/block/polished_dark_scoria.json @@ -943,6 +973,7 @@ f22d7d8263dcabd726aa04784031ae9062633579 assets/create/models/block/powered_togg e6097d9ab9dc9954cbc750020bc33c7a423b73c6 assets/create/models/block/powered_toggle_latch_on_powered.json 622239a3a09fcac7235b9670eb395a530839a59b assets/create/models/block/pulse_repeater_powered.json 0102e253c941904f12de7acdd46b0079ee3ccf69 assets/create/models/block/pulse_repeater_pulsing.json +b56fad63b82434564bc41ae9c01e3b427203fb5b assets/create/models/block/purple_sail.json 96adc7865ebe64b43865bc2fe914830c11258856 assets/create/models/block/purple_seat.json 062406aacf25e099f9b28a3bf7cacfcaa1da4ef6 assets/create/models/block/purple_valve_handle.json 27d64a828607f94296c0b86cdb35fad996bc5d23 assets/create/models/block/radial_chassis_side_x.json @@ -951,6 +982,7 @@ a9885a3f69e3e2a2812c33bafd9140fcc5cc7c25 assets/create/models/block/radial_chass 92a48c22cf2af0a3156844322f6bb469883608fb assets/create/models/block/radial_chassis_side_y_sticky.json 522f4733118d6fba172696e9478c8f9fe88b236e assets/create/models/block/radial_chassis_side_z.json bffca231a146a6ac49e028f3790cdcbf375e98b0 assets/create/models/block/radial_chassis_side_z_sticky.json +f0099576080a0f2bb09dd85e55777bad69f9f265 assets/create/models/block/red_sail.json 12d4f4119b994c5d71c96ab3aa09beb89dad1e10 assets/create/models/block/red_seat.json 0064825ee3c1702c524d34abb6adb66906586851 assets/create/models/block/red_valve_handle.json c4bb40ed2bddabff154a34f4eff7a485bf6488a0 assets/create/models/block/refined_radiance_casing.json @@ -1022,6 +1054,8 @@ eb838d687f7a925f5b91c4784bfbf33070515e31 assets/create/models/block/weathered_li a5b04a1a35735713f51dcd5a80d9e582e6575bbc assets/create/models/block/weathered_limestone_pillar.json 1377e12f56dce1466ce44078d7154870c5cf7b2a assets/create/models/block/white_seat.json 899f33d51cf36cb1c283bc7e6363f9d451e5736e assets/create/models/block/white_valve_handle.json +f2bee22fe03ac047fbe73ca2c5c759f09bf646df assets/create/models/block/windmill_bearing.json +071ca07daceea4d0db7ed41e815d47589fdb14b7 assets/create/models/block/yellow_sail.json 0a0e2cc973e35586ae00ed17b919383868e992e8 assets/create/models/block/yellow_seat.json 55edee7b0833ab19b98694fab21ae0c8e91f76fd assets/create/models/block/yellow_valve_handle.json c94c60d1d77404af7d74a29a094c7bdf7501b385 assets/create/models/block/zinc_block.json @@ -1075,7 +1109,7 @@ a47fbe5f2da79080d99ef0975bfa8da4d08f8be4 assets/create/models/item/chiseled_scor 70232ce9b88119fb383717e2c1ad113f7aad6a99 assets/create/models/item/chiseled_weathered_limestone.json fe67c3f380d17735a9436a4579a8be1a02b8e4a0 assets/create/models/item/chute.json d418205c83d3e57c830755ee8c09e2962353e493 assets/create/models/item/cinder_flour.json -b1531a7bd3f7f27b9587d13e818a93dc2d088bc8 assets/create/models/item/clockwork_bearing.json +c1da21be9f1af4f7a2ef4ec9cd92195d65ada316 assets/create/models/item/clockwork_bearing.json 0a2a0f0aafeab0088172f77afd40c1fa2cc1f2b8 assets/create/models/item/clutch.json dcb09deae110077bcddf090996b51cc66e9a7de3 assets/create/models/item/cogwheel.json 7717e3b21cff39f497f07687c70c1fa40eaa756d assets/create/models/item/content_observer.json @@ -1252,7 +1286,7 @@ d245aa4994ff197b1ffeb7980d05f96bd20cdeb3 assets/create/models/item/linear_chassi d912be3e87f2beaa8e22747f867739139667241b assets/create/models/item/magenta_seat.json 928c5e3747fb758d2610475258cc168b0d4ee7b6 assets/create/models/item/magenta_valve_handle.json 932facf4bf93b471e8630f4132a4284a9f4d0d39 assets/create/models/item/mechanical_arm.json -49dcc373c33f6fc3760add10eb51bd96cd4fd028 assets/create/models/item/mechanical_bearing.json +e19c7a06697adc2da9d66c5c81e1c6ff131acb65 assets/create/models/item/mechanical_bearing.json 65ac4f19973ddeb1bb4d672f57319130e736e116 assets/create/models/item/mechanical_crafter.json b416a3a2545a63d6839f7f2cb958c58e485a7eb6 assets/create/models/item/mechanical_drill.json bbf18e5d54128375139c712e93b35ec25f59f2d0 assets/create/models/item/mechanical_harvester.json @@ -1261,7 +1295,7 @@ f8d0d4b2a890ea7a69ab0c390947b48fe0478d3f assets/create/models/item/mechanical_pi 726ae61699dc379a4f535c1be3ec2672a2f03583 assets/create/models/item/mechanical_plough.json 6c2acb80e53256fbb85f76851f335f9248ace6da assets/create/models/item/mechanical_press.json 4e363477e3e8059dd7b2bad04046521b31923d1b assets/create/models/item/mechanical_pump.json -bca99d467ec8ead10124becb60ac24b39be83de4 assets/create/models/item/mechanical_saw.json +3fc1fcb2016d2782c3667c21575423122b66705a assets/create/models/item/mechanical_saw.json 0eb5726c8c0de462f432411c210d6132b2c446a4 assets/create/models/item/millstone.json 1134bc8ecdfefe5d30ee4973c37aa9a349c368b4 assets/create/models/item/minecart_contraption.json 5f44acb8a784611c17913ddf64fb4098b3a8aee9 assets/create/models/item/minecart_coupling.json @@ -1377,6 +1411,7 @@ ef52b3734a47e96c5f83d60da73110e925737933 assets/create/models/item/refined_radia 6daff6b82b33374d7add65e352e05ecb2fd9ebdd assets/create/models/item/rope_pulley.json fc54acc37695f21ef650c8310110407647e9a023 assets/create/models/item/rose_quartz.json acfbf487ee65c2c58d89cb2644e33fda75751fde assets/create/models/item/rotation_speed_controller.json +171c343f7f536008f79ea1d63e0a443d064e9ef1 assets/create/models/item/sail_frame.json be86c8156d55d2f128feb66abd70923b3be765cc assets/create/models/item/sand_paper.json 69196df5122a27573112dad49b334dea96aafed0 assets/create/models/item/schematic.json 533483999f61e3b091af567a473875247edaedb3 assets/create/models/item/schematic_and_quill.json @@ -1427,8 +1462,10 @@ def7382f3216c59d835ab64f534678f3d31ecc51 assets/create/models/item/weathered_lim 40bed7f5e9e97da45c5d9cebc3fcf87b2b13a808 assets/create/models/item/weathered_limestone_pillar.json 8914910270736f8f15364c623cd08d4638383cc5 assets/create/models/item/wheat_flour.json 0cc80844db689404d4722c93f1002b0bed05edcd assets/create/models/item/whisk.json +c6253e0f8db3c3992d3f78fe5045e276d39d5b22 assets/create/models/item/white_sail.json 69328eb4f91c4407fbcad5e3c4b88363f1a9572c assets/create/models/item/white_seat.json be7a2d59d43083d7f2427193dcb9d68004224dd3 assets/create/models/item/white_valve_handle.json +d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bearing.json 2527b52413965a3e84b4718e08a9b8bb30a741ea assets/create/models/item/wrench.json 4b49bc2418410cded5f0b7da3430f1a22e049f18 assets/create/models/item/yellow_seat.json 790daf016f980801e7587b548a325082c65f6f03 assets/create/models/item/yellow_valve_handle.json @@ -1575,6 +1612,7 @@ f639481c8e1485019bf120463e67811b6d2d8ef9 data/create/advancements/recipes/create dba0696069fe0850120dc6e1ca1ab741b0fe6d21 data/create/advancements/recipes/create.base/crafting/kinetics/red_valve_handle_from_other_valve_handle.json 74522fbb454832fc0eefa5f52b82b7d7d4e9b7fb data/create/advancements/recipes/create.base/crafting/kinetics/rope_pulley.json 48e29ec1b301bf4857db06913ee340f49d61cdf9 data/create/advancements/recipes/create.base/crafting/kinetics/rotation_speed_controller.json +e9faf71b9597deecd2c1fb566f3c438ddc243e82 data/create/advancements/recipes/create.base/crafting/kinetics/sail_frame.json b463cf9343f8d08b8ed3e87f46a19facadd657b0 data/create/advancements/recipes/create.base/crafting/kinetics/secondary_linear_chassisfrom_conversion.json 191213ef824e7b73d66bb3aecc3115306b445e5a data/create/advancements/recipes/create.base/crafting/kinetics/sequenced_gearshift.json cd8cefee21a1690f9158b8e8661a92d20ad0f535 data/create/advancements/recipes/create.base/crafting/kinetics/shaft.json @@ -1589,9 +1627,11 @@ f3fc3d4fee0712906f833aa17185f0bacb21922f data/create/advancements/recipes/create 89401c0a6dffa62dbffdbb63986f580a4878402e data/create/advancements/recipes/create.base/crafting/kinetics/vertical_gearboxfrom_conversion.json 4ab6ae87b6c3a29c0c2966dad2fa335a39fafe78 data/create/advancements/recipes/create.base/crafting/kinetics/water_wheel.json 7c146cc51139c2a8e287a60c8d645fa6f6f48cb1 data/create/advancements/recipes/create.base/crafting/kinetics/whisk.json +f876dcbd2877c921613a4af481c89d66664c1ea8 data/create/advancements/recipes/create.base/crafting/kinetics/white_sail.json 37e545b016a7c5cd283168ac71ace6467a5ad3ef data/create/advancements/recipes/create.base/crafting/kinetics/white_seat.json 856760c4b120f7b29a94dd22fe04d62df061d409 data/create/advancements/recipes/create.base/crafting/kinetics/white_seat_from_other_seat.json b73e6f8b89e6ef94167b6fa3d0837a27222edb01 data/create/advancements/recipes/create.base/crafting/kinetics/white_valve_handle_from_other_valve_handle.json +6b783787a32446a39bb553359a7db58f71492a42 data/create/advancements/recipes/create.base/crafting/kinetics/windmill_bearing.json ddbe7ae23f48dcaee3ad44a0e597c24380b51682 data/create/advancements/recipes/create.base/crafting/kinetics/wrench.json 14c1cac4545f544a78bfd80cf7dd6355794c6679 data/create/advancements/recipes/create.base/crafting/kinetics/yellow_seat.json e8c2001863d9819d2a2c1fddeda41a4f126a5c09 data/create/advancements/recipes/create.base/crafting/kinetics/yellow_seat_from_other_seat.json @@ -2073,9 +2113,11 @@ d3202a337c15c8b8ec41fa5879bb94327bb75057 data/create/loot_tables/blocks/andesite c7f81e30c31837a287d6d6040cdb02c7dec11441 data/create/loot_tables/blocks/belt.json 67a8e2513c3cb09e6fe80279fda94f79d5018c37 data/create/loot_tables/blocks/birch_window.json bf1d5843f93533f84bc4adec5b77da2114fa2025 data/create/loot_tables/blocks/birch_window_pane.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/black_sail.json cccc209d172cc7bac76f1b4ac79085ee90742ab2 data/create/loot_tables/blocks/black_seat.json f3573f47b8a914aa222633893e158f84fcd6f3d8 data/create/loot_tables/blocks/black_valve_handle.json a2313c9b7d114396fca3c86a740d23fce3873679 data/create/loot_tables/blocks/blaze_burner.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/blue_sail.json 3834f7ac2bbc42cead02d4973842adb9ad97e6bf data/create/loot_tables/blocks/blue_seat.json fcddccd1bf45c2f4ad5f1520e209a4f04487274a data/create/loot_tables/blocks/blue_valve_handle.json 1dbc446abe190b2832b2ce7d52c2f2d2bdd45949 data/create/loot_tables/blocks/brass_belt_funnel.json @@ -2083,6 +2125,7 @@ fcddccd1bf45c2f4ad5f1520e209a4f04487274a data/create/loot_tables/blocks/blue_val 8a14258ad5d79d9e4dc5a318905644b446196420 data/create/loot_tables/blocks/brass_casing.json 1dbc446abe190b2832b2ce7d52c2f2d2bdd45949 data/create/loot_tables/blocks/brass_funnel.json 6c8e784677d1a843b6c707484c79751acdb46ebc data/create/loot_tables/blocks/brass_tunnel.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/brown_sail.json d415862a0abe20e8c5c2c8125bb672065330a9bc data/create/loot_tables/blocks/brown_seat.json fedfe922f568c06adc2dfdd641b9abc90ba5af8a data/create/loot_tables/blocks/brown_valve_handle.json 0be542fef3bc0e1a0d556883568a1400a8b97df1 data/create/loot_tables/blocks/cart_assembler.json @@ -2108,6 +2151,7 @@ d8f2f8921b9200b1d9476a77ee1be32c25308ac3 data/create/loot_tables/blocks/creative c28fa42746a4d5ca2f824001b67e58673810169e data/create/loot_tables/blocks/crushing_wheel.json 205f5899101262f31f5c1a88bb7d954918d08d04 data/create/loot_tables/blocks/crushing_wheel_controller.json d370ee874b5b6b98e9a8c368218fe61f644d956d data/create/loot_tables/blocks/cuckoo_clock.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/cyan_sail.json 49a14b9e93abdf02a7aef9c0c4085ac89617fae4 data/create/loot_tables/blocks/cyan_seat.json fe24fd296812fea3f838defa2ca6270523d9d48e data/create/loot_tables/blocks/cyan_valve_handle.json fd309e1d39dcbcb25c3361edecd8c9afa0f847d0 data/create/loot_tables/blocks/dark_oak_window.json @@ -2212,8 +2256,10 @@ fa0ddf45d108f55550164113cb5cfd002586a9d4 data/create/loot_tables/blocks/granite_ feca8a1f62e0e13fcb2252d5f782d74938b84431 data/create/loot_tables/blocks/granite_cobblestone_stairs.json 1d225a68b09d6f389aa7ed48aa05979bdaa482a9 data/create/loot_tables/blocks/granite_cobblestone_wall.json 87a4ac3db5ec80613b940abccc72fc4b37cee0ba data/create/loot_tables/blocks/granite_pillar.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/gray_sail.json d014357b3a467b23473c8223f32471a04a9ff94c data/create/loot_tables/blocks/gray_seat.json 35f916fd0f8465a070270615dbddd716ff68d5bb data/create/loot_tables/blocks/gray_valve_handle.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/green_sail.json a71599eecd3f1179e3d0367623460e798828aa6d data/create/loot_tables/blocks/green_seat.json 865ebead9601b29e6326dc9e1d4c1ca92f3b7a3b data/create/loot_tables/blocks/green_valve_handle.json 9bdc47ea3ffc52f037f12f40f387e6b72a352c4e data/create/loot_tables/blocks/hand_crank.json @@ -2231,10 +2277,13 @@ fa8a5922f7346a15a80b5c7e5dfc26d24ea98728 data/create/loot_tables/blocks/layered_ 197ecf9c00c06f6014ecbec678a5466492902cb0 data/create/loot_tables/blocks/layered_limestone.json 0ec9e366708637a01e600a2a12cc267d81b3f69b data/create/loot_tables/blocks/layered_scoria.json 54816065cd735dfe53b1eb551110ba18c6e3746a data/create/loot_tables/blocks/layered_weathered_limestone.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/light_blue_sail.json b403848d3a4b4ad7a048e70c21e200e40d0c67e3 data/create/loot_tables/blocks/light_blue_seat.json 32afe3fff74ccda4151567961fa6c0b8e3735358 data/create/loot_tables/blocks/light_blue_valve_handle.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/light_gray_sail.json 0cc2b20cb6e2dae6cf9d759c85926663f6066c99 data/create/loot_tables/blocks/light_gray_seat.json 8cc64a1dfb7ce7be2c063248d912c68ad2fe999c data/create/loot_tables/blocks/light_gray_valve_handle.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/lime_sail.json f7893090c6ecb4862c90c408b7f9ce8316f8b608 data/create/loot_tables/blocks/lime_seat.json cae6d16c8967164698efbce3b91018a8e79a81e9 data/create/loot_tables/blocks/lime_valve_handle.json 7dfd638cc6f0d22bbc8fcbdb7212a3bfc8c85223 data/create/loot_tables/blocks/limesand.json @@ -2249,6 +2298,7 @@ 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 +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/magenta_sail.json 9e5e017cd3b4f544f487a5ca22ef610a4addc8ec data/create/loot_tables/blocks/magenta_seat.json 517e983d7387ec0d86845d4cf3deaa6d68c71170 data/create/loot_tables/blocks/magenta_valve_handle.json e64c32da44b7e92dbef36fcb448c42b9bd9ae47c data/create/loot_tables/blocks/mechanical_arm.json @@ -2280,6 +2330,7 @@ d3ea271bb5774c73d44ab2e73195c9d5a4ff9c92 data/create/loot_tables/blocks/nixie_tu 6237eb3999181f1db09ca01b08e7785b70722d3b data/create/loot_tables/blocks/nozzle.json 0b2b142cfb3ebe9d4506e498a8e31f48d00db58d data/create/loot_tables/blocks/oak_window.json 90cc4d5857f47c48e2b82f394de9567023c5c8ce data/create/loot_tables/blocks/oak_window_pane.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/orange_sail.json 2333aaea940816b6bc8454ba24e0c9f52af94ac0 data/create/loot_tables/blocks/orange_seat.json 13338687962ef5b48dd9d142a2a862637d5c6953 data/create/loot_tables/blocks/orange_valve_handle.json 267e9e24fac93e3496a80fcb6ed8e9d1c329d2d2 data/create/loot_tables/blocks/ornate_iron_window.json @@ -2329,6 +2380,7 @@ dfeba5c6de20e9ec0252e43b7c4046f017284d3d data/create/loot_tables/blocks/paved_we 32eed137f13c25a7b9db2fb457901e0c03cabb16 data/create/loot_tables/blocks/paved_weathered_limestone_slab.json 67b9227237ed2a8c09c4183c0f2ab1b3bd07084b data/create/loot_tables/blocks/paved_weathered_limestone_stairs.json d3e4ab984aef19ee21a1c5b868eb3fde96c05afd data/create/loot_tables/blocks/paved_weathered_limestone_wall.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/pink_sail.json 6f32e1217986407e41358e9417de63602c78e810 data/create/loot_tables/blocks/pink_seat.json d85b09659f08a73513c57b1b2e5ec7fc4b6f340a data/create/loot_tables/blocks/pink_valve_handle.json 1087b6c6d88dc7c71ed81e1d3e180fe065e6d098 data/create/loot_tables/blocks/piston_extension_pole.json @@ -2361,9 +2413,11 @@ fbe98efcb1a5970b6795fdbbb671fee704c0945f data/create/loot_tables/blocks/portable a3fb7d3e3bf9dc73ce754002f10c469d57db1f71 data/create/loot_tables/blocks/powered_toggle_latch.json 205f5899101262f31f5c1a88bb7d954918d08d04 data/create/loot_tables/blocks/pulley_magnet.json e8fb62c91226ac107dee45c5ebc54c8dd0aee224 data/create/loot_tables/blocks/pulse_repeater.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/purple_sail.json d7f6caa568e6508177a644fb78dc18ce26c9b2c0 data/create/loot_tables/blocks/purple_seat.json 773e4dc856044dabfe9d2323cbda0460dfb626ee data/create/loot_tables/blocks/purple_valve_handle.json 768420dab8785909891e52c4d77a182d99ba11d3 data/create/loot_tables/blocks/radial_chassis.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/red_sail.json 71b0fa3b174efe94a2a735ab2426c376c0ef674a data/create/loot_tables/blocks/red_seat.json 59ee0fd35978068fbce0882e0b207db7eeb202c0 data/create/loot_tables/blocks/red_valve_handle.json f5907a694206facc01f61f3428f72488486761c7 data/create/loot_tables/blocks/redstone_contact.json @@ -2373,6 +2427,7 @@ f5907a694206facc01f61f3428f72488486761c7 data/create/loot_tables/blocks/redstone 205f5899101262f31f5c1a88bb7d954918d08d04 data/create/loot_tables/blocks/rope.json cecaac07bd275bb1ae9e302f0bf44b581e74105d data/create/loot_tables/blocks/rope_pulley.json aa6af37356d65105efab2503ffe75f778cfe873b data/create/loot_tables/blocks/rotation_speed_controller.json +30de11bec82606fead9d6bff7bba0232e97f1039 data/create/loot_tables/blocks/sail_frame.json 069701cb804b6522c18624a0d4f3f949ff8b0281 data/create/loot_tables/blocks/schematic_table.json c4a89145334addfd0dd1fedf7fa75ba07a7d3490 data/create/loot_tables/blocks/schematicannon.json af1bbbb8236b4ab05a6a8edc6db960bc758cbdf3 data/create/loot_tables/blocks/scoria.json @@ -2413,8 +2468,11 @@ c2a62f12680d04ed4f586c501bb026e367243dd2 data/create/loot_tables/blocks/weathere a89f425c47c3831071b556697169a3124370aed7 data/create/loot_tables/blocks/weathered_limestone_cobblestone_stairs.json e8f3af61d9a2fd1ff5b32c9bb474ed005e6d70c4 data/create/loot_tables/blocks/weathered_limestone_cobblestone_wall.json 54358a64639957cc66ffa5296ff45723f7adf00e data/create/loot_tables/blocks/weathered_limestone_pillar.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/white_sail.json 969eda31556feb5a68e350762848d17453275fee data/create/loot_tables/blocks/white_seat.json 79fe374f8e677088f928a3a49ff5eeed6128d165 data/create/loot_tables/blocks/white_valve_handle.json +941ea78ea7c0f0061c3d3569ecea333ae6a16bf1 data/create/loot_tables/blocks/windmill_bearing.json +28ae0ee8a0b1fb6becae6264de687fe17940708e data/create/loot_tables/blocks/yellow_sail.json 37ead431a278928a09b260ae06a448e2c791a73e data/create/loot_tables/blocks/yellow_seat.json 899bb208908a2f9bec5e544ff47526f3e24db720 data/create/loot_tables/blocks/yellow_valve_handle.json 94661e726b3d19271550359ae898a5590939512e data/create/loot_tables/blocks/zinc_block.json @@ -2556,6 +2614,7 @@ af84b939ced1c0254a27469f857f571afbadc4f6 data/create/recipes/crafting/kinetics/r 5a10019d23726940152e26af3239d55d16bc7880 data/create/recipes/crafting/kinetics/red_valve_handle_from_other_valve_handle.json af525e135eb927b64462120d201ecae7a7ec61ed data/create/recipes/crafting/kinetics/rope_pulley.json e9f1597d40f62c2247b319303f375f0da271346f data/create/recipes/crafting/kinetics/rotation_speed_controller.json +d0d7fb94621f6f02fa3137666f20e677022d9d5b data/create/recipes/crafting/kinetics/sail_frame.json 66922e18791c87fadb7629cdf32d3dd2f50ccd13 data/create/recipes/crafting/kinetics/secondary_linear_chassisfrom_conversion.json a17db27e61baa45f8a6ecb46a6d2a5a464704f8b data/create/recipes/crafting/kinetics/sequenced_gearshift.json 2e36438665bfb97265fd4e6ea85505970eae67fd data/create/recipes/crafting/kinetics/shaft.json @@ -2570,9 +2629,11 @@ af5854ee2fa3be195ad9abcdeebe6ed7306b651c data/create/recipes/crafting/kinetics/s 057c889b0a306f44b8835c896663154ccd9ff12f data/create/recipes/crafting/kinetics/vertical_gearboxfrom_conversion.json 4fb009b86a51b2e259bd1f73848803f6276dd820 data/create/recipes/crafting/kinetics/water_wheel.json f508d510576c93712e7f5265345a32e8818bbf0d data/create/recipes/crafting/kinetics/whisk.json +d80a741d2f0d4f742217b43d7e4d37f003ec9f9d data/create/recipes/crafting/kinetics/white_sail.json f4d88aa2edea548d29cf2678a111d8bb5db7720a data/create/recipes/crafting/kinetics/white_seat.json 7e0d276cd56f04f35d02c25810bffdf8fc297fcd data/create/recipes/crafting/kinetics/white_seat_from_other_seat.json 4d3890621caa0bdbb752a395c1f5761dbbc1121e data/create/recipes/crafting/kinetics/white_valve_handle_from_other_valve_handle.json +8508255518d3718a0d8c2f536f69ffe9ed48a855 data/create/recipes/crafting/kinetics/windmill_bearing.json 3ec8bb5660656f1c676035d8ba5460462c1d1865 data/create/recipes/crafting/kinetics/wrench.json 5579e58473474c4e59efd1ee39ddf0140d66b618 data/create/recipes/crafting/kinetics/yellow_seat.json f055d233ac7ee9eac840a658afa01bedd793ff38 data/create/recipes/crafting/kinetics/yellow_seat_from_other_seat.json @@ -3142,10 +3203,11 @@ d3fdb8ece6cb072a93ddb64a0baad5ac952117a4 data/create/recipes/weathered_limestone 11667414f73bc2d00bda7c5c1a7d2934bf6e9165 data/create/recipes/weathered_limestone_pillar_from_weathered_limestone_stonecutting.json f9ecec40e11a87de73c9dc7c2963c1cb10b1a180 data/create/tags/blocks/brittle.json 246ee2ec4e778e38a362f319506564886d4e0e76 data/create/tags/blocks/fan_heaters.json -798ef82869dbe22682121504a372e95607a785dc data/create/tags/blocks/fan_transparent.json +551299f2f784435859bef13057c2b033eaefc784 data/create/tags/blocks/fan_transparent.json +c9ac7e3e5ec18554e7184168d65e9b8e44ef5610 data/create/tags/blocks/sails.json 6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/blocks/seats.json 50936b211d94167a35ec78c89954082a336b6269 data/create/tags/blocks/valve_handles.json -7fa13854a216ee49c0ae3b1e0e23c4cd1fbc4859 data/create/tags/blocks/windmill_sails.json +eac71740fb12bdb38b5dfaa2268613d7ba82b809 data/create/tags/blocks/windmill_sails.json 081f5aa35602fc27af2ca01ea9f2fd5e7eb284dc data/create/tags/items/create_ingots.json d2dc4ff179ef7b2aa9276455c196e15d44aa95a8 data/create/tags/items/crushed_ores.json 6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json diff --git a/src/generated/resources/assets/create/blockstates/black_sail.json b/src/generated/resources/assets/create/blockstates/black_sail.json new file mode 100644 index 000000000..04c433e99 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/black_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/black_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/black_sail" + }, + "facing=north": { + "model": "create:block/black_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/black_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/black_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/black_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/blue_sail.json b/src/generated/resources/assets/create/blockstates/blue_sail.json new file mode 100644 index 000000000..bbd4eb965 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/blue_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/blue_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/blue_sail" + }, + "facing=north": { + "model": "create:block/blue_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/blue_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/blue_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/blue_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/brown_sail.json b/src/generated/resources/assets/create/blockstates/brown_sail.json new file mode 100644 index 000000000..9e99f2044 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/brown_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/brown_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/brown_sail" + }, + "facing=north": { + "model": "create:block/brown_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/brown_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/brown_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/brown_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/cyan_sail.json b/src/generated/resources/assets/create/blockstates/cyan_sail.json new file mode 100644 index 000000000..f5049536d --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/cyan_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/cyan_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/cyan_sail" + }, + "facing=north": { + "model": "create:block/cyan_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/cyan_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/cyan_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/cyan_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/fluid_pipe.json b/src/generated/resources/assets/create/blockstates/fluid_pipe.json index a4cffcde7..581373307 100644 --- a/src/generated/resources/assets/create/blockstates/fluid_pipe.json +++ b/src/generated/resources/assets/create/blockstates/fluid_pipe.json @@ -60,10 +60,10 @@ }, { "when": { - "down": "false", - "north": "true", + "south": "false", "up": "true", - "south": "false" + "down": "false", + "north": "true" }, "apply": { "model": "create:block/fluid_pipe/lu_x" @@ -71,10 +71,10 @@ }, { "when": { - "down": "false", - "north": "false", + "south": "true", "up": "true", - "south": "true" + "down": "false", + "north": "false" }, "apply": { "model": "create:block/fluid_pipe/ru_x" @@ -82,10 +82,10 @@ }, { "when": { - "down": "true", - "north": "true", + "south": "false", "up": "false", - "south": "false" + "down": "true", + "north": "true" }, "apply": { "model": "create:block/fluid_pipe/ld_x" @@ -93,10 +93,10 @@ }, { "when": { - "down": "true", - "north": "false", + "south": "true", "up": "false", - "south": "true" + "down": "true", + "north": "false" }, "apply": { "model": "create:block/fluid_pipe/rd_x" @@ -104,32 +104,10 @@ }, { "when": { - "down": "true", - "north": "false", + "south": "false", "up": "true", - "south": "false" - }, - "apply": { - "model": "create:block/fluid_pipe/ud_x" - } - }, - { - "when": { - "down": "false", - "north": "false", - "up": "true", - "south": "false" - }, - "apply": { - "model": "create:block/fluid_pipe/ud_x" - } - }, - { - "when": { "down": "true", - "north": "false", - "up": "false", - "south": "false" + "north": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_x" @@ -137,10 +115,32 @@ }, { "when": { + "south": "false", + "up": "true", "down": "false", - "north": "true", + "north": "false" + }, + "apply": { + "model": "create:block/fluid_pipe/ud_x" + } + }, + { + "when": { + "south": "false", "up": "false", - "south": "true" + "down": "true", + "north": "false" + }, + "apply": { + "model": "create:block/fluid_pipe/ud_x" + } + }, + { + "when": { + "south": "true", + "up": "false", + "down": "false", + "north": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -148,10 +148,10 @@ }, { "when": { - "down": "false", - "north": "true", + "south": "false", "up": "false", - "south": "false" + "down": "false", + "north": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -159,10 +159,10 @@ }, { "when": { - "down": "false", - "north": "false", + "south": "true", "up": "false", - "south": "true" + "down": "false", + "north": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_x" @@ -170,10 +170,10 @@ }, { "when": { - "down": "false", - "north": "false", + "south": "false", "up": "false", - "south": "false" + "down": "false", + "north": "false" }, "apply": { "model": "create:block/fluid_pipe/none_x" @@ -181,10 +181,10 @@ }, { "when": { + "south": "true", "west": "true", - "east": "false", "north": "false", - "south": "true" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/lu_y" @@ -192,10 +192,10 @@ }, { "when": { + "south": "true", "west": "false", - "east": "true", "north": "false", - "south": "true" + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/ru_y" @@ -203,10 +203,10 @@ }, { "when": { + "south": "false", "west": "true", - "east": "false", "north": "true", - "south": "false" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ld_y" @@ -214,10 +214,10 @@ }, { "when": { + "south": "false", "west": "false", - "east": "true", "north": "true", - "south": "false" + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/rd_y" @@ -225,10 +225,10 @@ }, { "when": { + "south": "true", "west": "false", - "east": "false", "north": "true", - "south": "true" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_y" @@ -236,10 +236,10 @@ }, { "when": { + "south": "true", "west": "false", - "east": "false", "north": "false", - "south": "true" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_y" @@ -247,10 +247,10 @@ }, { "when": { + "south": "false", "west": "false", - "east": "false", "north": "true", - "south": "false" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_y" @@ -258,10 +258,10 @@ }, { "when": { + "south": "false", "west": "true", - "east": "true", "north": "false", - "south": "false" + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_y" @@ -269,10 +269,10 @@ }, { "when": { + "south": "false", "west": "true", - "east": "false", "north": "false", - "south": "false" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_y" @@ -280,10 +280,10 @@ }, { "when": { + "south": "false", "west": "false", - "east": "true", "north": "false", - "south": "false" + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_y" @@ -291,10 +291,10 @@ }, { "when": { + "south": "false", "west": "false", - "east": "false", "north": "false", - "south": "false" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/none_y" @@ -302,10 +302,10 @@ }, { "when": { - "west": "false", + "up": "true", "down": "false", - "east": "true", - "up": "true" + "west": "false", + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/lu_z" @@ -313,10 +313,10 @@ }, { "when": { - "west": "true", + "up": "true", "down": "false", - "east": "false", - "up": "true" + "west": "true", + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ru_z" @@ -324,10 +324,10 @@ }, { "when": { - "west": "false", + "up": "false", "down": "true", - "east": "true", - "up": "false" + "west": "false", + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/ld_z" @@ -335,10 +335,10 @@ }, { "when": { - "west": "true", + "up": "false", "down": "true", - "east": "false", - "up": "false" + "west": "true", + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/rd_z" @@ -346,10 +346,10 @@ }, { "when": { - "west": "false", + "up": "true", "down": "true", - "east": "false", - "up": "true" + "west": "false", + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_z" @@ -357,10 +357,10 @@ }, { "when": { - "west": "false", + "up": "true", "down": "false", - "east": "false", - "up": "true" + "west": "false", + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_z" @@ -368,10 +368,10 @@ }, { "when": { - "west": "false", + "up": "false", "down": "true", - "east": "false", - "up": "false" + "west": "false", + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/ud_z" @@ -379,10 +379,10 @@ }, { "when": { + "up": "false", + "down": "false", "west": "true", - "down": "false", - "east": "true", - "up": "false" + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_z" @@ -390,10 +390,10 @@ }, { "when": { + "up": "false", + "down": "false", "west": "false", - "down": "false", - "east": "true", - "up": "false" + "east": "true" }, "apply": { "model": "create:block/fluid_pipe/lr_z" @@ -401,10 +401,10 @@ }, { "when": { + "up": "false", + "down": "false", "west": "true", - "down": "false", - "east": "false", - "up": "false" + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/lr_z" @@ -412,10 +412,10 @@ }, { "when": { - "west": "false", + "up": "false", "down": "false", - "east": "false", - "up": "false" + "west": "false", + "east": "false" }, "apply": { "model": "create:block/fluid_pipe/none_z" diff --git a/src/generated/resources/assets/create/blockstates/gray_sail.json b/src/generated/resources/assets/create/blockstates/gray_sail.json new file mode 100644 index 000000000..a8295fe9e --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/gray_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/gray_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/gray_sail" + }, + "facing=north": { + "model": "create:block/gray_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/gray_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/gray_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/gray_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/green_sail.json b/src/generated/resources/assets/create/blockstates/green_sail.json new file mode 100644 index 000000000..5ee371035 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/green_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/green_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/green_sail" + }, + "facing=north": { + "model": "create:block/green_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/green_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/green_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/green_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/light_blue_sail.json b/src/generated/resources/assets/create/blockstates/light_blue_sail.json new file mode 100644 index 000000000..f11f20a7b --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/light_blue_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/light_blue_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/light_blue_sail" + }, + "facing=north": { + "model": "create:block/light_blue_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/light_blue_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/light_blue_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/light_blue_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/light_gray_sail.json b/src/generated/resources/assets/create/blockstates/light_gray_sail.json new file mode 100644 index 000000000..c1bb74562 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/light_gray_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/light_gray_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/light_gray_sail" + }, + "facing=north": { + "model": "create:block/light_gray_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/light_gray_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/light_gray_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/light_gray_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/lime_sail.json b/src/generated/resources/assets/create/blockstates/lime_sail.json new file mode 100644 index 000000000..7aeea435a --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/lime_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/lime_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/lime_sail" + }, + "facing=north": { + "model": "create:block/lime_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/lime_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/lime_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/lime_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/magenta_sail.json b/src/generated/resources/assets/create/blockstates/magenta_sail.json new file mode 100644 index 000000000..78b975de0 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/magenta_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/magenta_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/magenta_sail" + }, + "facing=north": { + "model": "create:block/magenta_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/magenta_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/magenta_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/magenta_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/orange_sail.json b/src/generated/resources/assets/create/blockstates/orange_sail.json new file mode 100644 index 000000000..5495d60aa --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/orange_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/orange_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/orange_sail" + }, + "facing=north": { + "model": "create:block/orange_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/orange_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/orange_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/orange_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/pink_sail.json b/src/generated/resources/assets/create/blockstates/pink_sail.json new file mode 100644 index 000000000..454f70dfc --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/pink_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/pink_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/pink_sail" + }, + "facing=north": { + "model": "create:block/pink_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/pink_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/pink_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/pink_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/purple_sail.json b/src/generated/resources/assets/create/blockstates/purple_sail.json new file mode 100644 index 000000000..385efaf9b --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/purple_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/purple_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/purple_sail" + }, + "facing=north": { + "model": "create:block/purple_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/purple_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/purple_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/purple_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/radial_chassis.json b/src/generated/resources/assets/create/blockstates/radial_chassis.json index 9d00ea8b1..1aa3d3728 100644 --- a/src/generated/resources/assets/create/blockstates/radial_chassis.json +++ b/src/generated/resources/assets/create/blockstates/radial_chassis.json @@ -89,8 +89,8 @@ }, { "when": { - "sticky_west": "true", - "axis": "x" + "axis": "x", + "sticky_west": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -99,8 +99,8 @@ }, { "when": { - "sticky_west": "true", - "axis": "y" + "axis": "y", + "sticky_west": "true" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -109,8 +109,8 @@ }, { "when": { - "sticky_west": "true", - "axis": "z" + "axis": "z", + "sticky_west": "true" }, "apply": { "model": "create:block/radial_chassis_side_z_sticky", @@ -119,8 +119,8 @@ }, { "when": { - "sticky_west": "false", - "axis": "x" + "axis": "x", + "sticky_west": "false" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -129,8 +129,8 @@ }, { "when": { - "sticky_west": "false", - "axis": "y" + "axis": "y", + "sticky_west": "false" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -139,8 +139,8 @@ }, { "when": { - "sticky_west": "false", - "axis": "z" + "axis": "z", + "sticky_west": "false" }, "apply": { "model": "create:block/radial_chassis_side_z", @@ -149,8 +149,8 @@ }, { "when": { - "sticky_north": "true", - "axis": "x" + "axis": "x", + "sticky_north": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky" @@ -158,8 +158,8 @@ }, { "when": { - "sticky_north": "true", - "axis": "y" + "axis": "y", + "sticky_north": "true" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -168,8 +168,8 @@ }, { "when": { - "sticky_north": "true", - "axis": "z" + "axis": "z", + "sticky_north": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -178,8 +178,8 @@ }, { "when": { - "sticky_north": "false", - "axis": "x" + "axis": "x", + "sticky_north": "false" }, "apply": { "model": "create:block/radial_chassis_side_x" @@ -187,8 +187,8 @@ }, { "when": { - "sticky_north": "false", - "axis": "y" + "axis": "y", + "sticky_north": "false" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -197,8 +197,8 @@ }, { "when": { - "sticky_north": "false", - "axis": "z" + "axis": "z", + "sticky_north": "false" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -207,8 +207,8 @@ }, { "when": { - "sticky_east": "true", - "axis": "x" + "axis": "x", + "sticky_east": "true" }, "apply": { "model": "create:block/radial_chassis_side_x_sticky", @@ -217,8 +217,8 @@ }, { "when": { - "sticky_east": "true", - "axis": "y" + "axis": "y", + "sticky_east": "true" }, "apply": { "model": "create:block/radial_chassis_side_y_sticky", @@ -227,8 +227,8 @@ }, { "when": { - "sticky_east": "true", - "axis": "z" + "axis": "z", + "sticky_east": "true" }, "apply": { "model": "create:block/radial_chassis_side_z_sticky" @@ -236,8 +236,8 @@ }, { "when": { - "sticky_east": "false", - "axis": "x" + "axis": "x", + "sticky_east": "false" }, "apply": { "model": "create:block/radial_chassis_side_x", @@ -246,8 +246,8 @@ }, { "when": { - "sticky_east": "false", - "axis": "y" + "axis": "y", + "sticky_east": "false" }, "apply": { "model": "create:block/radial_chassis_side_y", @@ -256,8 +256,8 @@ }, { "when": { - "sticky_east": "false", - "axis": "z" + "axis": "z", + "sticky_east": "false" }, "apply": { "model": "create:block/radial_chassis_side_z" diff --git a/src/generated/resources/assets/create/blockstates/red_sail.json b/src/generated/resources/assets/create/blockstates/red_sail.json new file mode 100644 index 000000000..c1059f149 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/red_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/red_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/red_sail" + }, + "facing=north": { + "model": "create:block/red_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/red_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/red_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/red_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/sail_frame.json b/src/generated/resources/assets/create/blockstates/sail_frame.json new file mode 100644 index 000000000..1ffee979f --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/sail_frame.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/sail_frame", + "x": 180 + }, + "facing=up": { + "model": "create:block/sail_frame" + }, + "facing=north": { + "model": "create:block/sail_frame", + "x": 90 + }, + "facing=south": { + "model": "create:block/sail_frame", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/sail_frame", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/sail_frame", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/white_sail.json b/src/generated/resources/assets/create/blockstates/white_sail.json new file mode 100644 index 000000000..30b186772 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/white_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/white_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/white_sail" + }, + "facing=north": { + "model": "create:block/white_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/white_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/white_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/white_sail", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/windmill_bearing.json b/src/generated/resources/assets/create/blockstates/windmill_bearing.json new file mode 100644 index 000000000..80df46d4c --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/windmill_bearing.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/windmill_bearing", + "x": 180 + }, + "facing=up": { + "model": "create:block/windmill_bearing" + }, + "facing=north": { + "model": "create:block/windmill_bearing", + "x": 90 + }, + "facing=south": { + "model": "create:block/windmill_bearing", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/windmill_bearing", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/windmill_bearing", + "x": 90, + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/yellow_sail.json b/src/generated/resources/assets/create/blockstates/yellow_sail.json new file mode 100644 index 000000000..3f3deb7b0 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/yellow_sail.json @@ -0,0 +1,30 @@ +{ + "variants": { + "facing=down": { + "model": "create:block/yellow_sail", + "x": 180 + }, + "facing=up": { + "model": "create:block/yellow_sail" + }, + "facing=north": { + "model": "create:block/yellow_sail", + "x": 90 + }, + "facing=south": { + "model": "create:block/yellow_sail", + "x": 90, + "y": 180 + }, + "facing=west": { + "model": "create:block/yellow_sail", + "x": 90, + "y": 270 + }, + "facing=east": { + "model": "create:block/yellow_sail", + "x": 90, + "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 90d627d05..337d05b48 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -23,9 +23,11 @@ "block.create.belt": "\u0287\u05DF\u01DD\u15FA", "block.create.birch_window": "\u028Dopu\u0131M \u0265\u0254\u0279\u0131\u15FA", "block.create.birch_window_pane": "\u01DDu\u0250\u0500 \u028Dopu\u0131M \u0265\u0254\u0279\u0131\u15FA", + "block.create.black_sail": "\u05DF\u0131\u0250S \u029E\u0254\u0250\u05DF\u15FA", "block.create.black_seat": "\u0287\u0250\u01DDS \u029E\u0254\u0250\u05DF\u15FA", "block.create.black_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u029E\u0254\u0250\u05DF\u15FA", "block.create.blaze_burner": "\u0279\u01DDu\u0279n\u15FA \u01DDz\u0250\u05DF\u15FA", + "block.create.blue_sail": "\u05DF\u0131\u0250S \u01DDn\u05DF\u15FA", "block.create.blue_seat": "\u0287\u0250\u01DDS \u01DDn\u05DF\u15FA", "block.create.blue_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u01DDn\u05DF\u15FA", "block.create.brass_belt_funnel": "\u05DF\u01DDuun\u2132 \u0287\u05DF\u01DD\u15FA ss\u0250\u0279\u15FA", @@ -33,6 +35,7 @@ "block.create.brass_casing": "bu\u0131s\u0250\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_sail": "\u05DF\u0131\u0250S u\u028Do\u0279\u15FA", "block.create.brown_seat": "\u0287\u0250\u01DDS u\u028Do\u0279\u15FA", "block.create.brown_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B u\u028Do\u0279\u15FA", "block.create.cart_assembler": "\u0279\u01DD\u05DFq\u026F\u01DDss\u2C6F \u0287\u0279\u0250\u0186", @@ -58,6 +61,7 @@ "block.create.crushing_wheel": "\u05DF\u01DD\u01DD\u0265M bu\u0131\u0265sn\u0279\u0186", "block.create.crushing_wheel_controller": "\u0279\u01DD\u05DF\u05DFo\u0279\u0287uo\u0186 \u05DF\u01DD\u01DD\u0265M bu\u0131\u0265sn\u0279\u0186", "block.create.cuckoo_clock": "\u029E\u0254o\u05DF\u0186 oo\u029E\u0254n\u0186", + "block.create.cyan_sail": "\u05DF\u0131\u0250S u\u0250\u028E\u0186", "block.create.cyan_seat": "\u0287\u0250\u01DDS u\u0250\u028E\u0186", "block.create.cyan_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B u\u0250\u028E\u0186", "block.create.dark_oak_window": "\u028Dopu\u0131M \u029E\u0250O \u029E\u0279\u0250\u15E1", @@ -162,8 +166,10 @@ "block.create.granite_cobblestone_stairs": "s\u0279\u0131\u0250\u0287S \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DD\u0287\u0131u\u0250\u0279\u2141", "block.create.granite_cobblestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DD\u0287\u0131u\u0250\u0279\u2141", "block.create.granite_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 \u01DD\u0287\u0131u\u0250\u0279\u2141", + "block.create.gray_sail": "\u05DF\u0131\u0250S \u028E\u0250\u0279\u2141", "block.create.gray_seat": "\u0287\u0250\u01DDS \u028E\u0250\u0279\u2141", "block.create.gray_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u028E\u0250\u0279\u2141", + "block.create.green_sail": "\u05DF\u0131\u0250S u\u01DD\u01DD\u0279\u2141", "block.create.green_seat": "\u0287\u0250\u01DDS u\u01DD\u01DD\u0279\u2141", "block.create.green_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B u\u01DD\u01DD\u0279\u2141", "block.create.hand_crank": "\u029Eu\u0250\u0279\u0186 pu\u0250H", @@ -181,10 +187,13 @@ "block.create.layered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u028E\u0250\uA780", "block.create.layered_scoria": "\u0250\u0131\u0279o\u0254S p\u01DD\u0279\u01DD\u028E\u0250\uA780", "block.create.layered_weathered_limestone": "\u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM p\u01DD\u0279\u01DD\u028E\u0250\uA780", + "block.create.light_blue_sail": "\u05DF\u0131\u0250S \u01DDn\u05DF\u15FA \u0287\u0265b\u0131\uA780", "block.create.light_blue_seat": "\u0287\u0250\u01DDS \u01DDn\u05DF\u15FA \u0287\u0265b\u0131\uA780", "block.create.light_blue_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u01DDn\u05DF\u15FA \u0287\u0265b\u0131\uA780", + "block.create.light_gray_sail": "\u05DF\u0131\u0250S \u028E\u0250\u0279\u2141 \u0287\u0265b\u0131\uA780", "block.create.light_gray_seat": "\u0287\u0250\u01DDS \u028E\u0250\u0279\u2141 \u0287\u0265b\u0131\uA780", "block.create.light_gray_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u028E\u0250\u0279\u2141 \u0287\u0265b\u0131\uA780", + "block.create.lime_sail": "\u05DF\u0131\u0250S \u01DD\u026F\u0131\uA780", "block.create.lime_seat": "\u0287\u0250\u01DDS \u01DD\u026F\u0131\uA780", "block.create.lime_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u01DD\u026F\u0131\uA780", "block.create.limesand": "pu\u0250s\u01DD\u026F\u0131\uA780", @@ -199,6 +208,7 @@ "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.magenta_sail": "\u05DF\u0131\u0250S \u0250\u0287u\u01DDb\u0250W", "block.create.magenta_seat": "\u0287\u0250\u01DDS \u0250\u0287u\u01DDb\u0250W", "block.create.magenta_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u0250\u0287u\u01DDb\u0250W", "block.create.mechanical_arm": "\u026F\u0279\u2C6F \u05DF\u0250\u0254\u0131u\u0250\u0265\u0254\u01DDW", @@ -230,6 +240,7 @@ "block.create.nozzle": "\u01DD\u05DFzzoN", "block.create.oak_window": "\u028Dopu\u0131M \u029E\u0250O", "block.create.oak_window_pane": "\u01DDu\u0250\u0500 \u028Dopu\u0131M \u029E\u0250O", + "block.create.orange_sail": "\u05DF\u0131\u0250S \u01DDbu\u0250\u0279O", "block.create.orange_seat": "\u0287\u0250\u01DDS \u01DDbu\u0250\u0279O", "block.create.orange_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u01DDbu\u0250\u0279O", "block.create.ornate_iron_window": "\u028Dopu\u0131M uo\u0279I \u01DD\u0287\u0250u\u0279O", @@ -279,6 +290,7 @@ "block.create.paved_weathered_limestone_slab": "q\u0250\u05DFS \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM p\u01DD\u028C\u0250\u0500", "block.create.paved_weathered_limestone_stairs": "s\u0279\u0131\u0250\u0287S \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM p\u01DD\u028C\u0250\u0500", "block.create.paved_weathered_limestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM p\u01DD\u028C\u0250\u0500", + "block.create.pink_sail": "\u05DF\u0131\u0250S \u029Eu\u0131\u0500", "block.create.pink_seat": "\u0287\u0250\u01DDS \u029Eu\u0131\u0500", "block.create.pink_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u029Eu\u0131\u0500", "block.create.piston_extension_pole": "\u01DD\u05DFo\u0500 uo\u0131su\u01DD\u0287x\u018E uo\u0287s\u0131\u0500", @@ -311,9 +323,11 @@ "block.create.powered_toggle_latch": "\u0265\u0254\u0287\u0250\uA780 \u01DD\u05DFbbo\u27D8 p\u01DD\u0279\u01DD\u028Do\u0500", "block.create.pulley_magnet": "\u0287\u01DDub\u0250W \u028E\u01DD\u05DF\u05DFn\u0500", "block.create.pulse_repeater": "\u0279\u01DD\u0287\u0250\u01DDd\u01DD\u1D1A \u01DDs\u05DFn\u0500", + "block.create.purple_sail": "\u05DF\u0131\u0250S \u01DD\u05DFd\u0279n\u0500", "block.create.purple_seat": "\u0287\u0250\u01DDS \u01DD\u05DFd\u0279n\u0500", "block.create.purple_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u01DD\u05DFd\u0279n\u0500", "block.create.radial_chassis": "s\u0131ss\u0250\u0265\u0186 \u05DF\u0250\u0131p\u0250\u1D1A", + "block.create.red_sail": "\u05DF\u0131\u0250S p\u01DD\u1D1A", "block.create.red_seat": "\u0287\u0250\u01DDS p\u01DD\u1D1A", "block.create.red_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B p\u01DD\u1D1A", "block.create.redstone_contact": "\u0287\u0254\u0250\u0287uo\u0186 \u01DDuo\u0287sp\u01DD\u1D1A", @@ -323,6 +337,7 @@ "block.create.rope": "\u01DDdo\u1D1A", "block.create.rope_pulley": "\u028E\u01DD\u05DF\u05DFn\u0500 \u01DDdo\u1D1A", "block.create.rotation_speed_controller": "\u0279\u01DD\u05DF\u05DFo\u0279\u0287uo\u0186 p\u01DD\u01DDdS uo\u0131\u0287\u0250\u0287o\u1D1A", + "block.create.sail_frame": "\u01DD\u026F\u0250\u0279\u2132 \u05DF\u0131\u0250S", "block.create.schematic_table": "\u01DD\u05DFq\u0250\u27D8 \u0254\u0131\u0287\u0250\u026F\u01DD\u0265\u0254S", "block.create.schematicannon": "uouu\u0250\u0254\u0131\u0287\u0250\u026F\u01DD\u0265\u0254S", "block.create.scoria": "\u0250\u0131\u0279o\u0254S", @@ -363,8 +378,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "s\u0279\u0131\u0250\u0287S \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM", "block.create.weathered_limestone_cobblestone_wall": "\u05DF\u05DF\u0250M \u01DDuo\u0287s\u01DD\u05DFqqo\u0186 \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM", "block.create.weathered_limestone_pillar": "\u0279\u0250\u05DF\u05DF\u0131\u0500 \u01DDuo\u0287s\u01DD\u026F\u0131\uA780 p\u01DD\u0279\u01DD\u0265\u0287\u0250\u01DDM", + "block.create.white_sail": "\u05DF\u0131\u0250S \u01DD\u0287\u0131\u0265M", "block.create.white_seat": "\u0287\u0250\u01DDS \u01DD\u0287\u0131\u0265M", "block.create.white_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u01DD\u0287\u0131\u0265M", + "block.create.windmill_bearing": "bu\u0131\u0279\u0250\u01DD\u15FA \u05DF\u05DF\u0131\u026Fpu\u0131M", + "block.create.yellow_sail": "\u05DF\u0131\u0250S \u028Do\u05DF\u05DF\u01DD\u028E", "block.create.yellow_seat": "\u0287\u0250\u01DDS \u028Do\u05DF\u05DF\u01DD\u028E", "block.create.yellow_valve_handle": "\u01DD\u05DFpu\u0250H \u01DD\u028C\u05DF\u0250\u039B \u028Do\u05DF\u05DF\u01DD\u028E", "block.create.zinc_block": "\u029E\u0254o\u05DF\u15FA \u0254u\u0131Z", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index c184a40f0..059d2b99f 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -26,9 +26,11 @@ "block.create.belt": "Belt", "block.create.birch_window": "Birch Window", "block.create.birch_window_pane": "Birch Window Pane", + "block.create.black_sail": "Black Sail", "block.create.black_seat": "Black Seat", "block.create.black_valve_handle": "Black Valve Handle", "block.create.blaze_burner": "Blaze Burner", + "block.create.blue_sail": "Blue Sail", "block.create.blue_seat": "Blue Seat", "block.create.blue_valve_handle": "Blue Valve Handle", "block.create.brass_belt_funnel": "Brass Belt Funnel", @@ -36,6 +38,7 @@ "block.create.brass_casing": "Brass Casing", "block.create.brass_funnel": "Brass Funnel", "block.create.brass_tunnel": "Brass Tunnel", + "block.create.brown_sail": "Brown Sail", "block.create.brown_seat": "Brown Seat", "block.create.brown_valve_handle": "Brown Valve Handle", "block.create.cart_assembler": "Cart Assembler", @@ -61,6 +64,7 @@ "block.create.crushing_wheel": "Crushing Wheel", "block.create.crushing_wheel_controller": "Crushing Wheel Controller", "block.create.cuckoo_clock": "Cuckoo Clock", + "block.create.cyan_sail": "Cyan Sail", "block.create.cyan_seat": "Cyan Seat", "block.create.cyan_valve_handle": "Cyan Valve Handle", "block.create.dark_oak_window": "Dark Oak Window", @@ -165,8 +169,10 @@ "block.create.granite_cobblestone_stairs": "Granite Cobblestone Stairs", "block.create.granite_cobblestone_wall": "Granite Cobblestone Wall", "block.create.granite_pillar": "Granite Pillar", + "block.create.gray_sail": "Gray Sail", "block.create.gray_seat": "Gray Seat", "block.create.gray_valve_handle": "Gray Valve Handle", + "block.create.green_sail": "Green Sail", "block.create.green_seat": "Green Seat", "block.create.green_valve_handle": "Green Valve Handle", "block.create.hand_crank": "Hand Crank", @@ -184,10 +190,13 @@ "block.create.layered_limestone": "Layered Limestone", "block.create.layered_scoria": "Layered Scoria", "block.create.layered_weathered_limestone": "Layered Weathered Limestone", + "block.create.light_blue_sail": "Light Blue Sail", "block.create.light_blue_seat": "Light Blue Seat", "block.create.light_blue_valve_handle": "Light Blue Valve Handle", + "block.create.light_gray_sail": "Light Gray Sail", "block.create.light_gray_seat": "Light Gray Seat", "block.create.light_gray_valve_handle": "Light Gray Valve Handle", + "block.create.lime_sail": "Lime Sail", "block.create.lime_seat": "Lime Seat", "block.create.lime_valve_handle": "Lime Valve Handle", "block.create.limesand": "Limesand", @@ -202,6 +211,7 @@ "block.create.limestone_cobblestone_wall": "Limestone Cobblestone Wall", "block.create.limestone_pillar": "Limestone Pillar", "block.create.linear_chassis": "Linear Chassis", + "block.create.magenta_sail": "Magenta Sail", "block.create.magenta_seat": "Magenta Seat", "block.create.magenta_valve_handle": "Magenta Valve Handle", "block.create.mechanical_arm": "Mechanical Arm", @@ -233,6 +243,7 @@ "block.create.nozzle": "Nozzle", "block.create.oak_window": "Oak Window", "block.create.oak_window_pane": "Oak Window Pane", + "block.create.orange_sail": "Orange Sail", "block.create.orange_seat": "Orange Seat", "block.create.orange_valve_handle": "Orange Valve Handle", "block.create.ornate_iron_window": "Ornate Iron Window", @@ -282,6 +293,7 @@ "block.create.paved_weathered_limestone_slab": "Paved Weathered Limestone Slab", "block.create.paved_weathered_limestone_stairs": "Paved Weathered Limestone Stairs", "block.create.paved_weathered_limestone_wall": "Paved Weathered Limestone Wall", + "block.create.pink_sail": "Pink Sail", "block.create.pink_seat": "Pink Seat", "block.create.pink_valve_handle": "Pink Valve Handle", "block.create.piston_extension_pole": "Piston Extension Pole", @@ -314,9 +326,11 @@ "block.create.powered_toggle_latch": "Powered Toggle Latch", "block.create.pulley_magnet": "Pulley Magnet", "block.create.pulse_repeater": "Pulse Repeater", + "block.create.purple_sail": "Purple Sail", "block.create.purple_seat": "Purple Seat", "block.create.purple_valve_handle": "Purple Valve Handle", "block.create.radial_chassis": "Radial Chassis", + "block.create.red_sail": "Red Sail", "block.create.red_seat": "Red Seat", "block.create.red_valve_handle": "Red Valve Handle", "block.create.redstone_contact": "Redstone Contact", @@ -326,6 +340,7 @@ "block.create.rope": "Rope", "block.create.rope_pulley": "Rope Pulley", "block.create.rotation_speed_controller": "Rotation Speed Controller", + "block.create.sail_frame": "Sail Frame", "block.create.schematic_table": "Schematic Table", "block.create.schematicannon": "Schematicannon", "block.create.scoria": "Scoria", @@ -366,8 +381,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "Weathered Limestone Cobblestone Stairs", "block.create.weathered_limestone_cobblestone_wall": "Weathered Limestone Cobblestone Wall", "block.create.weathered_limestone_pillar": "Weathered Limestone Pillar", + "block.create.white_sail": "White Sail", "block.create.white_seat": "White Seat", "block.create.white_valve_handle": "White Valve Handle", + "block.create.windmill_bearing": "Windmill Bearing", + "block.create.yellow_sail": "Yellow Sail", "block.create.yellow_seat": "Yellow Seat", "block.create.yellow_valve_handle": "Yellow Valve Handle", "block.create.zinc_block": "Zinc Block", @@ -580,6 +598,8 @@ "create.generic.unit.stress": "su", "create.generic.unit.degrees": "°", "create.generic.unit.millibuckets": "%1$smB", + "create.generic.clockwise": "Clockwise", + "create.generic.counter_clockwise": "Counter-Clockwise", "create.action.scroll": "Scroll", "create.action.confirm": "Confirm", @@ -673,6 +693,11 @@ "create.contraptions.cart_movement_mode.rotate": "Always face toward motion", "create.contraptions.cart_movement_mode.rotate_paused": "Pause actors while rotating", "create.contraptions.cart_movement_mode.rotation_locked": "Lock rotation", + "create.contraptions.windmill.rotation_direction": "Rotation Direction", + "create.contraptions.clockwork.clock_hands": "Clock Hands", + "create.contraptions.clockwork.hour_first": "Hour hand first", + "create.contraptions.clockwork.minute_first": "Minute hand first", + "create.contraptions.clockwork.hour_first_24": "24-Hour hand first", "create.logistics.filter": "Filter", "create.logistics.recipe_filter": "Recipe Filter", 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 17953de60..237637680 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: 996", + "_": "Missing Localizations: 1021", "_": "->------------------------] Game Elements [------------------------<-", @@ -27,9 +27,11 @@ "block.create.belt": "Mechanischer Riemen", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", + "block.create.black_sail": "UNLOCALIZED: Black Sail", "block.create.black_seat": "UNLOCALIZED: Black Seat", "block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle", "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", + "block.create.blue_sail": "UNLOCALIZED: Blue Sail", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", @@ -37,6 +39,7 @@ "block.create.brass_casing": "UNLOCALIZED: Brass Casing", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", + "block.create.brown_sail": "UNLOCALIZED: Brown Sail", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", "block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle", "block.create.cart_assembler": "UNLOCALIZED: Cart Assembler", @@ -62,6 +65,7 @@ "block.create.crushing_wheel": "Mahlwerkrad", "block.create.crushing_wheel_controller": "UNLOCALIZED: Crushing Wheel Controller", "block.create.cuckoo_clock": "UNLOCALIZED: Cuckoo Clock", + "block.create.cyan_sail": "UNLOCALIZED: Cyan Sail", "block.create.cyan_seat": "UNLOCALIZED: Cyan Seat", "block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle", "block.create.dark_oak_window": "UNLOCALIZED: Dark Oak Window", @@ -166,8 +170,10 @@ "block.create.granite_cobblestone_stairs": "UNLOCALIZED: Granite Cobblestone Stairs", "block.create.granite_cobblestone_wall": "UNLOCALIZED: Granite Cobblestone Wall", "block.create.granite_pillar": "UNLOCALIZED: Granite Pillar", + "block.create.gray_sail": "UNLOCALIZED: Gray Sail", "block.create.gray_seat": "UNLOCALIZED: Gray Seat", "block.create.gray_valve_handle": "UNLOCALIZED: Gray Valve Handle", + "block.create.green_sail": "UNLOCALIZED: Green Sail", "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "UNLOCALIZED: Hand Crank", @@ -185,10 +191,13 @@ "block.create.layered_limestone": "UNLOCALIZED: Layered Limestone", "block.create.layered_scoria": "UNLOCALIZED: Layered Scoria", "block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone", + "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", + "block.create.light_gray_sail": "UNLOCALIZED: Light Gray Sail", "block.create.light_gray_seat": "UNLOCALIZED: Light Gray Seat", "block.create.light_gray_valve_handle": "UNLOCALIZED: Light Gray Valve Handle", + "block.create.lime_sail": "UNLOCALIZED: Lime Sail", "block.create.lime_seat": "UNLOCALIZED: Lime Seat", "block.create.lime_valve_handle": "UNLOCALIZED: Lime Valve Handle", "block.create.limesand": "Kalksand", @@ -203,6 +212,7 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "Kalksteinsäule", "block.create.linear_chassis": "Schubgerüst", + "block.create.magenta_sail": "UNLOCALIZED: Magenta Sail", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.magenta_valve_handle": "UNLOCALIZED: Magenta Valve Handle", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", @@ -234,6 +244,7 @@ "block.create.nozzle": "UNLOCALIZED: Nozzle", "block.create.oak_window": "UNLOCALIZED: Oak Window", "block.create.oak_window_pane": "UNLOCALIZED: Oak Window Pane", + "block.create.orange_sail": "UNLOCALIZED: Orange Sail", "block.create.orange_seat": "UNLOCALIZED: Orange Seat", "block.create.orange_valve_handle": "UNLOCALIZED: Orange Valve Handle", "block.create.ornate_iron_window": "UNLOCALIZED: Ornate Iron Window", @@ -283,6 +294,7 @@ "block.create.paved_weathered_limestone_slab": "UNLOCALIZED: Paved Weathered Limestone Slab", "block.create.paved_weathered_limestone_stairs": "UNLOCALIZED: Paved Weathered Limestone Stairs", "block.create.paved_weathered_limestone_wall": "UNLOCALIZED: Paved Weathered Limestone Wall", + "block.create.pink_sail": "UNLOCALIZED: Pink Sail", "block.create.pink_seat": "UNLOCALIZED: Pink Seat", "block.create.pink_valve_handle": "UNLOCALIZED: Pink Valve Handle", "block.create.piston_extension_pole": "Kolben-Pleuelverlängerung", @@ -315,9 +327,11 @@ "block.create.powered_toggle_latch": "UNLOCALIZED: Powered Toggle Latch", "block.create.pulley_magnet": "UNLOCALIZED: Pulley Magnet", "block.create.pulse_repeater": "Pulsierender Verstärker", + "block.create.purple_sail": "UNLOCALIZED: Purple Sail", "block.create.purple_seat": "UNLOCALIZED: Purple Seat", "block.create.purple_valve_handle": "UNLOCALIZED: Purple Valve Handle", "block.create.radial_chassis": "Drehgerüst", + "block.create.red_sail": "UNLOCALIZED: Red Sail", "block.create.red_seat": "UNLOCALIZED: Red Seat", "block.create.red_valve_handle": "UNLOCALIZED: Red Valve Handle", "block.create.redstone_contact": "Redstone-Kontakt", @@ -327,6 +341,7 @@ "block.create.rope": "UNLOCALIZED: Rope", "block.create.rope_pulley": "UNLOCALIZED: Rope Pulley", "block.create.rotation_speed_controller": "UNLOCALIZED: Rotation Speed Controller", + "block.create.sail_frame": "UNLOCALIZED: Sail Frame", "block.create.schematic_table": "Bauplantisch", "block.create.schematicannon": "Bauplankanone", "block.create.scoria": "UNLOCALIZED: Scoria", @@ -367,8 +382,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "UNLOCALIZED: Weathered Limestone Cobblestone Stairs", "block.create.weathered_limestone_cobblestone_wall": "UNLOCALIZED: Weathered Limestone Cobblestone Wall", "block.create.weathered_limestone_pillar": "Verwitterte Kalksteinsäule", + "block.create.white_sail": "UNLOCALIZED: White Sail", "block.create.white_seat": "UNLOCALIZED: White Seat", "block.create.white_valve_handle": "UNLOCALIZED: White Valve Handle", + "block.create.windmill_bearing": "UNLOCALIZED: Windmill Bearing", + "block.create.yellow_sail": "UNLOCALIZED: Yellow Sail", "block.create.yellow_seat": "UNLOCALIZED: Yellow Seat", "block.create.yellow_valve_handle": "UNLOCALIZED: Yellow Valve Handle", "block.create.zinc_block": "UNLOCALIZED: Zinc Block", @@ -581,6 +599,8 @@ "create.generic.unit.stress": "UNLOCALIZED: su", "create.generic.unit.degrees": "UNLOCALIZED: °", "create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB", + "create.generic.clockwise": "UNLOCALIZED: Clockwise", + "create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise", "create.action.scroll": "Wechseln", "create.action.confirm": "Bestätigen", @@ -674,6 +694,11 @@ "create.contraptions.cart_movement_mode.rotate": "UNLOCALIZED: Always face toward motion", "create.contraptions.cart_movement_mode.rotate_paused": "UNLOCALIZED: Pause actors while rotating", "create.contraptions.cart_movement_mode.rotation_locked": "UNLOCALIZED: Lock rotation", + "create.contraptions.windmill.rotation_direction": "UNLOCALIZED: Rotation Direction", + "create.contraptions.clockwork.clock_hands": "UNLOCALIZED: Clock Hands", + "create.contraptions.clockwork.hour_first": "UNLOCALIZED: Hour hand first", + "create.contraptions.clockwork.minute_first": "UNLOCALIZED: Minute hand first", + "create.contraptions.clockwork.hour_first_24": "UNLOCALIZED: 24-Hour hand first", "create.logistics.filter": "Filter", "create.logistics.recipe_filter": "UNLOCALIZED: Recipe Filter", 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 ecc6b57fb..58317000e 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: 625", + "_": "Missing Localizations: 650", "_": "->------------------------] Game Elements [------------------------<-", @@ -27,9 +27,11 @@ "block.create.belt": "Tapis roulant", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", + "block.create.black_sail": "UNLOCALIZED: Black Sail", "block.create.black_seat": "UNLOCALIZED: Black Seat", "block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle", "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", + "block.create.blue_sail": "UNLOCALIZED: Blue Sail", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", @@ -37,6 +39,7 @@ "block.create.brass_casing": "Boîtier en laiton", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", + "block.create.brown_sail": "UNLOCALIZED: Brown Sail", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", "block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle", "block.create.cart_assembler": "Assembleur de wagon", @@ -62,6 +65,7 @@ "block.create.crushing_wheel": "Roue de concassage", "block.create.crushing_wheel_controller": "UNLOCALIZED: Crushing Wheel Controller", "block.create.cuckoo_clock": "Horloge à coucou", + "block.create.cyan_sail": "UNLOCALIZED: Cyan Sail", "block.create.cyan_seat": "UNLOCALIZED: Cyan Seat", "block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle", "block.create.dark_oak_window": "UNLOCALIZED: Dark Oak Window", @@ -166,8 +170,10 @@ "block.create.granite_cobblestone_stairs": "UNLOCALIZED: Granite Cobblestone Stairs", "block.create.granite_cobblestone_wall": "UNLOCALIZED: Granite Cobblestone Wall", "block.create.granite_pillar": "UNLOCALIZED: Granite Pillar", + "block.create.gray_sail": "UNLOCALIZED: Gray Sail", "block.create.gray_seat": "UNLOCALIZED: Gray Seat", "block.create.gray_valve_handle": "UNLOCALIZED: Gray Valve Handle", + "block.create.green_sail": "UNLOCALIZED: Green Sail", "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "Manivelle", @@ -185,10 +191,13 @@ "block.create.layered_limestone": "UNLOCALIZED: Layered Limestone", "block.create.layered_scoria": "UNLOCALIZED: Layered Scoria", "block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone", + "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", + "block.create.light_gray_sail": "UNLOCALIZED: Light Gray Sail", "block.create.light_gray_seat": "UNLOCALIZED: Light Gray Seat", "block.create.light_gray_valve_handle": "UNLOCALIZED: Light Gray Valve Handle", + "block.create.lime_sail": "UNLOCALIZED: Lime Sail", "block.create.lime_seat": "UNLOCALIZED: Lime Seat", "block.create.lime_valve_handle": "UNLOCALIZED: Lime Valve Handle", "block.create.limesand": "Chaux", @@ -203,6 +212,7 @@ "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.magenta_sail": "UNLOCALIZED: Magenta Sail", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.magenta_valve_handle": "UNLOCALIZED: Magenta Valve Handle", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", @@ -234,6 +244,7 @@ "block.create.nozzle": "Buse", "block.create.oak_window": "UNLOCALIZED: Oak Window", "block.create.oak_window_pane": "UNLOCALIZED: Oak Window Pane", + "block.create.orange_sail": "UNLOCALIZED: Orange Sail", "block.create.orange_seat": "UNLOCALIZED: Orange Seat", "block.create.orange_valve_handle": "UNLOCALIZED: Orange Valve Handle", "block.create.ornate_iron_window": "UNLOCALIZED: Ornate Iron Window", @@ -283,6 +294,7 @@ "block.create.paved_weathered_limestone_slab": "UNLOCALIZED: Paved Weathered Limestone Slab", "block.create.paved_weathered_limestone_stairs": "UNLOCALIZED: Paved Weathered Limestone Stairs", "block.create.paved_weathered_limestone_wall": "UNLOCALIZED: Paved Weathered Limestone Wall", + "block.create.pink_sail": "UNLOCALIZED: Pink Sail", "block.create.pink_seat": "UNLOCALIZED: Pink Seat", "block.create.pink_valve_handle": "UNLOCALIZED: Pink Valve Handle", "block.create.piston_extension_pole": "Pôle d'extension de piston", @@ -315,9 +327,11 @@ "block.create.powered_toggle_latch": "Verrou alimenté à bascule", "block.create.pulley_magnet": "Aimant de poulie", "block.create.pulse_repeater": "Répéteur d'impulsions", + "block.create.purple_sail": "UNLOCALIZED: Purple Sail", "block.create.purple_seat": "UNLOCALIZED: Purple Seat", "block.create.purple_valve_handle": "UNLOCALIZED: Purple Valve Handle", "block.create.radial_chassis": "Châssis radial", + "block.create.red_sail": "UNLOCALIZED: Red Sail", "block.create.red_seat": "UNLOCALIZED: Red Seat", "block.create.red_valve_handle": "UNLOCALIZED: Red Valve Handle", "block.create.redstone_contact": "redstone_contact Redstone", @@ -327,6 +341,7 @@ "block.create.rope": "Corde", "block.create.rope_pulley": "Poulie à corde", "block.create.rotation_speed_controller": "Contrôleur de vitesse de rotation", + "block.create.sail_frame": "UNLOCALIZED: Sail Frame", "block.create.schematic_table": "Table à schéma", "block.create.schematicannon": "Schémacanon", "block.create.scoria": "Scorie", @@ -367,8 +382,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "UNLOCALIZED: Weathered Limestone Cobblestone Stairs", "block.create.weathered_limestone_cobblestone_wall": "UNLOCALIZED: Weathered Limestone Cobblestone Wall", "block.create.weathered_limestone_pillar": "Pillier de calcaire patinées", + "block.create.white_sail": "UNLOCALIZED: White Sail", "block.create.white_seat": "UNLOCALIZED: White Seat", "block.create.white_valve_handle": "UNLOCALIZED: White Valve Handle", + "block.create.windmill_bearing": "UNLOCALIZED: Windmill Bearing", + "block.create.yellow_sail": "UNLOCALIZED: Yellow Sail", "block.create.yellow_seat": "UNLOCALIZED: Yellow Seat", "block.create.yellow_valve_handle": "UNLOCALIZED: Yellow Valve Handle", "block.create.zinc_block": "UNLOCALIZED: Zinc Block", @@ -581,6 +599,8 @@ "create.generic.unit.stress": "us", "create.generic.unit.degrees": "°", "create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB", + "create.generic.clockwise": "UNLOCALIZED: Clockwise", + "create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise", "create.action.scroll": "Faire défiler", "create.action.confirm": "Confirmer", @@ -674,6 +694,11 @@ "create.contraptions.cart_movement_mode.rotate": "UNLOCALIZED: Always face toward motion", "create.contraptions.cart_movement_mode.rotate_paused": "UNLOCALIZED: Pause actors while rotating", "create.contraptions.cart_movement_mode.rotation_locked": "UNLOCALIZED: Lock rotation", + "create.contraptions.windmill.rotation_direction": "UNLOCALIZED: Rotation Direction", + "create.contraptions.clockwork.clock_hands": "UNLOCALIZED: Clock Hands", + "create.contraptions.clockwork.hour_first": "UNLOCALIZED: Hour hand first", + "create.contraptions.clockwork.minute_first": "UNLOCALIZED: Minute hand first", + "create.contraptions.clockwork.hour_first_24": "UNLOCALIZED: 24-Hour hand first", "create.logistics.filter": "Filtre", "create.logistics.recipe_filter": "UNLOCALIZED: Recipe Filter", 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 080124ed4..cb9b93d62 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: 609", + "_": "Missing Localizations: 634", "_": "->------------------------] Game Elements [------------------------<-", @@ -27,9 +27,11 @@ "block.create.belt": "Nastro Meccanico", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", + "block.create.black_sail": "UNLOCALIZED: Black Sail", "block.create.black_seat": "UNLOCALIZED: Black Seat", "block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle", "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", + "block.create.blue_sail": "UNLOCALIZED: Blue Sail", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", @@ -37,6 +39,7 @@ "block.create.brass_casing": "Involucro di Ottone", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", + "block.create.brown_sail": "UNLOCALIZED: Brown Sail", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", "block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle", "block.create.cart_assembler": "Assemblatore Carrello da Miniera", @@ -62,6 +65,7 @@ "block.create.crushing_wheel": "Ruota di Frantumazione", "block.create.crushing_wheel_controller": "UNLOCALIZED: Crushing Wheel Controller", "block.create.cuckoo_clock": "Orologio a Cucù", + "block.create.cyan_sail": "UNLOCALIZED: Cyan Sail", "block.create.cyan_seat": "UNLOCALIZED: Cyan Seat", "block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle", "block.create.dark_oak_window": "UNLOCALIZED: Dark Oak Window", @@ -166,8 +170,10 @@ "block.create.granite_cobblestone_stairs": "UNLOCALIZED: Granite Cobblestone Stairs", "block.create.granite_cobblestone_wall": "UNLOCALIZED: Granite Cobblestone Wall", "block.create.granite_pillar": "UNLOCALIZED: Granite Pillar", + "block.create.gray_sail": "UNLOCALIZED: Gray Sail", "block.create.gray_seat": "UNLOCALIZED: Gray Seat", "block.create.gray_valve_handle": "UNLOCALIZED: Gray Valve Handle", + "block.create.green_sail": "UNLOCALIZED: Green Sail", "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "Manovella", @@ -185,10 +191,13 @@ "block.create.layered_limestone": "UNLOCALIZED: Layered Limestone", "block.create.layered_scoria": "UNLOCALIZED: Layered Scoria", "block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone", + "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", + "block.create.light_gray_sail": "UNLOCALIZED: Light Gray Sail", "block.create.light_gray_seat": "UNLOCALIZED: Light Gray Seat", "block.create.light_gray_valve_handle": "UNLOCALIZED: Light Gray Valve Handle", + "block.create.lime_sail": "UNLOCALIZED: Lime Sail", "block.create.lime_seat": "UNLOCALIZED: Lime Seat", "block.create.lime_valve_handle": "UNLOCALIZED: Lime Valve Handle", "block.create.limesand": "Silico Calcare", @@ -203,6 +212,7 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "Pilastro di Calcare", "block.create.linear_chassis": "Telaio Lineare", + "block.create.magenta_sail": "UNLOCALIZED: Magenta Sail", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.magenta_valve_handle": "UNLOCALIZED: Magenta Valve Handle", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", @@ -234,6 +244,7 @@ "block.create.nozzle": "Ugello", "block.create.oak_window": "UNLOCALIZED: Oak Window", "block.create.oak_window_pane": "UNLOCALIZED: Oak Window Pane", + "block.create.orange_sail": "UNLOCALIZED: Orange Sail", "block.create.orange_seat": "UNLOCALIZED: Orange Seat", "block.create.orange_valve_handle": "UNLOCALIZED: Orange Valve Handle", "block.create.ornate_iron_window": "UNLOCALIZED: Ornate Iron Window", @@ -283,6 +294,7 @@ "block.create.paved_weathered_limestone_slab": "UNLOCALIZED: Paved Weathered Limestone Slab", "block.create.paved_weathered_limestone_stairs": "UNLOCALIZED: Paved Weathered Limestone Stairs", "block.create.paved_weathered_limestone_wall": "UNLOCALIZED: Paved Weathered Limestone Wall", + "block.create.pink_sail": "UNLOCALIZED: Pink Sail", "block.create.pink_seat": "UNLOCALIZED: Pink Seat", "block.create.pink_valve_handle": "UNLOCALIZED: Pink Valve Handle", "block.create.piston_extension_pole": "Palo Pistome", @@ -315,9 +327,11 @@ "block.create.powered_toggle_latch": "Leva Alimentata Alterata", "block.create.pulley_magnet": "Magnete della Puleggia", "block.create.pulse_repeater": "Ripetitore di Impulsi", + "block.create.purple_sail": "UNLOCALIZED: Purple Sail", "block.create.purple_seat": "UNLOCALIZED: Purple Seat", "block.create.purple_valve_handle": "UNLOCALIZED: Purple Valve Handle", "block.create.radial_chassis": "Telaio Radiale", + "block.create.red_sail": "UNLOCALIZED: Red Sail", "block.create.red_seat": "UNLOCALIZED: Red Seat", "block.create.red_valve_handle": "UNLOCALIZED: Red Valve Handle", "block.create.redstone_contact": "Contatto Redstone", @@ -327,6 +341,7 @@ "block.create.rope": "Corda", "block.create.rope_pulley": "Puleggia della Corda", "block.create.rotation_speed_controller": "Regolatore di Velocità di Rotazione", + "block.create.sail_frame": "UNLOCALIZED: Sail Frame", "block.create.schematic_table": "Banco Schematico", "block.create.schematicannon": "Cannoneschematico", "block.create.scoria": "Scoria", @@ -367,8 +382,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "UNLOCALIZED: Weathered Limestone Cobblestone Stairs", "block.create.weathered_limestone_cobblestone_wall": "UNLOCALIZED: Weathered Limestone Cobblestone Wall", "block.create.weathered_limestone_pillar": "Pilastro di Calcare Consumato", + "block.create.white_sail": "UNLOCALIZED: White Sail", "block.create.white_seat": "UNLOCALIZED: White Seat", "block.create.white_valve_handle": "UNLOCALIZED: White Valve Handle", + "block.create.windmill_bearing": "UNLOCALIZED: Windmill Bearing", + "block.create.yellow_sail": "UNLOCALIZED: Yellow Sail", "block.create.yellow_seat": "UNLOCALIZED: Yellow Seat", "block.create.yellow_valve_handle": "UNLOCALIZED: Yellow Valve Handle", "block.create.zinc_block": "Blocco di Zinco", @@ -581,6 +599,8 @@ "create.generic.unit.stress": "su", "create.generic.unit.degrees": "°", "create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB", + "create.generic.clockwise": "UNLOCALIZED: Clockwise", + "create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise", "create.action.scroll": "Scorri", "create.action.confirm": "Conferma", @@ -674,6 +694,11 @@ "create.contraptions.cart_movement_mode.rotate": "UNLOCALIZED: Always face toward motion", "create.contraptions.cart_movement_mode.rotate_paused": "UNLOCALIZED: Pause actors while rotating", "create.contraptions.cart_movement_mode.rotation_locked": "UNLOCALIZED: Lock rotation", + "create.contraptions.windmill.rotation_direction": "UNLOCALIZED: Rotation Direction", + "create.contraptions.clockwork.clock_hands": "UNLOCALIZED: Clock Hands", + "create.contraptions.clockwork.hour_first": "UNLOCALIZED: Hour hand first", + "create.contraptions.clockwork.minute_first": "UNLOCALIZED: Minute hand first", + "create.contraptions.clockwork.hour_first_24": "UNLOCALIZED: 24-Hour hand first", "create.logistics.filter": "Filtro", "create.logistics.recipe_filter": "UNLOCALIZED: Recipe Filter", 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 5e37f53cd..c26b4361c 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: 608", + "_": "Missing Localizations: 633", "_": "->------------------------] Game Elements [------------------------<-", @@ -27,9 +27,11 @@ "block.create.belt": "メカニカルベルト", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", + "block.create.black_sail": "UNLOCALIZED: Black Sail", "block.create.black_seat": "UNLOCALIZED: Black Seat", "block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle", "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", + "block.create.blue_sail": "UNLOCALIZED: Blue Sail", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", @@ -37,6 +39,7 @@ "block.create.brass_casing": "真鍮ケーシング", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", + "block.create.brown_sail": "UNLOCALIZED: Brown Sail", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", "block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle", "block.create.cart_assembler": "カートアセンブラ", @@ -62,6 +65,7 @@ "block.create.crushing_wheel": "破砕ホイール", "block.create.crushing_wheel_controller": "UNLOCALIZED: Crushing Wheel Controller", "block.create.cuckoo_clock": "鳩時計", + "block.create.cyan_sail": "UNLOCALIZED: Cyan Sail", "block.create.cyan_seat": "UNLOCALIZED: Cyan Seat", "block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle", "block.create.dark_oak_window": "UNLOCALIZED: Dark Oak Window", @@ -166,8 +170,10 @@ "block.create.granite_cobblestone_stairs": "UNLOCALIZED: Granite Cobblestone Stairs", "block.create.granite_cobblestone_wall": "UNLOCALIZED: Granite Cobblestone Wall", "block.create.granite_pillar": "UNLOCALIZED: Granite Pillar", + "block.create.gray_sail": "UNLOCALIZED: Gray Sail", "block.create.gray_seat": "UNLOCALIZED: Gray Seat", "block.create.gray_valve_handle": "UNLOCALIZED: Gray Valve Handle", + "block.create.green_sail": "UNLOCALIZED: Green Sail", "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "ハンドクランク", @@ -185,10 +191,13 @@ "block.create.layered_limestone": "UNLOCALIZED: Layered Limestone", "block.create.layered_scoria": "UNLOCALIZED: Layered Scoria", "block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone", + "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", + "block.create.light_gray_sail": "UNLOCALIZED: Light Gray Sail", "block.create.light_gray_seat": "UNLOCALIZED: Light Gray Seat", "block.create.light_gray_valve_handle": "UNLOCALIZED: Light Gray Valve Handle", + "block.create.lime_sail": "UNLOCALIZED: Lime Sail", "block.create.lime_seat": "UNLOCALIZED: Lime Seat", "block.create.lime_valve_handle": "UNLOCALIZED: Lime Valve Handle", "block.create.limesand": "石灰砕砂", @@ -203,6 +212,7 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "石灰岩の柱", "block.create.linear_chassis": "リニアシャーシ", + "block.create.magenta_sail": "UNLOCALIZED: Magenta Sail", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.magenta_valve_handle": "UNLOCALIZED: Magenta Valve Handle", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", @@ -234,6 +244,7 @@ "block.create.nozzle": "ノズル", "block.create.oak_window": "UNLOCALIZED: Oak Window", "block.create.oak_window_pane": "UNLOCALIZED: Oak Window Pane", + "block.create.orange_sail": "UNLOCALIZED: Orange Sail", "block.create.orange_seat": "UNLOCALIZED: Orange Seat", "block.create.orange_valve_handle": "UNLOCALIZED: Orange Valve Handle", "block.create.ornate_iron_window": "UNLOCALIZED: Ornate Iron Window", @@ -283,6 +294,7 @@ "block.create.paved_weathered_limestone_slab": "UNLOCALIZED: Paved Weathered Limestone Slab", "block.create.paved_weathered_limestone_stairs": "UNLOCALIZED: Paved Weathered Limestone Stairs", "block.create.paved_weathered_limestone_wall": "UNLOCALIZED: Paved Weathered Limestone Wall", + "block.create.pink_sail": "UNLOCALIZED: Pink Sail", "block.create.pink_seat": "UNLOCALIZED: Pink Seat", "block.create.pink_valve_handle": "UNLOCALIZED: Pink Valve Handle", "block.create.piston_extension_pole": "ピストン延長ポール", @@ -315,9 +327,11 @@ "block.create.powered_toggle_latch": "パワードトグルラッチ", "block.create.pulley_magnet": "プーリーマグネット", "block.create.pulse_repeater": "パルスリピーター", + "block.create.purple_sail": "UNLOCALIZED: Purple Sail", "block.create.purple_seat": "UNLOCALIZED: Purple Seat", "block.create.purple_valve_handle": "UNLOCALIZED: Purple Valve Handle", "block.create.radial_chassis": "ラジアルシャーシ", + "block.create.red_sail": "UNLOCALIZED: Red Sail", "block.create.red_seat": "UNLOCALIZED: Red Seat", "block.create.red_valve_handle": "UNLOCALIZED: Red Valve Handle", "block.create.redstone_contact": "レッドストーンコンタクト", @@ -327,6 +341,7 @@ "block.create.rope": "ロープ", "block.create.rope_pulley": "ローププーリー", "block.create.rotation_speed_controller": "回転速度制御器", + "block.create.sail_frame": "UNLOCALIZED: Sail Frame", "block.create.schematic_table": "概略図テーブル", "block.create.schematicannon": "概略図砲", "block.create.scoria": "スコリア", @@ -367,8 +382,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "UNLOCALIZED: Weathered Limestone Cobblestone Stairs", "block.create.weathered_limestone_cobblestone_wall": "UNLOCALIZED: Weathered Limestone Cobblestone Wall", "block.create.weathered_limestone_pillar": "風化した石灰岩の柱", + "block.create.white_sail": "UNLOCALIZED: White Sail", "block.create.white_seat": "UNLOCALIZED: White Seat", "block.create.white_valve_handle": "UNLOCALIZED: White Valve Handle", + "block.create.windmill_bearing": "UNLOCALIZED: Windmill Bearing", + "block.create.yellow_sail": "UNLOCALIZED: Yellow Sail", "block.create.yellow_seat": "UNLOCALIZED: Yellow Seat", "block.create.yellow_valve_handle": "UNLOCALIZED: Yellow Valve Handle", "block.create.zinc_block": "亜鉛ブロック", @@ -581,6 +599,8 @@ "create.generic.unit.stress": "su", "create.generic.unit.degrees": "°", "create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB", + "create.generic.clockwise": "UNLOCALIZED: Clockwise", + "create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise", "create.action.scroll": "スクロール", "create.action.confirm": "確認", @@ -674,6 +694,11 @@ "create.contraptions.cart_movement_mode.rotate": "UNLOCALIZED: Always face toward motion", "create.contraptions.cart_movement_mode.rotate_paused": "UNLOCALIZED: Pause actors while rotating", "create.contraptions.cart_movement_mode.rotation_locked": "UNLOCALIZED: Lock rotation", + "create.contraptions.windmill.rotation_direction": "UNLOCALIZED: Rotation Direction", + "create.contraptions.clockwork.clock_hands": "UNLOCALIZED: Clock Hands", + "create.contraptions.clockwork.hour_first": "UNLOCALIZED: Hour hand first", + "create.contraptions.clockwork.minute_first": "UNLOCALIZED: Minute hand first", + "create.contraptions.clockwork.hour_first_24": "UNLOCALIZED: 24-Hour hand first", "create.logistics.filter": "フィルタ", "create.logistics.recipe_filter": "UNLOCALIZED: Recipe Filter", 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 e35b31d80..8e7131853 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: 609", + "_": "Missing Localizations: 634", "_": "->------------------------] Game Elements [------------------------<-", @@ -27,9 +27,11 @@ "block.create.belt": "컨베이어 벨트", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", + "block.create.black_sail": "UNLOCALIZED: Black Sail", "block.create.black_seat": "UNLOCALIZED: Black Seat", "block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle", "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", + "block.create.blue_sail": "UNLOCALIZED: Blue Sail", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", @@ -37,6 +39,7 @@ "block.create.brass_casing": "황동 케이스", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", + "block.create.brown_sail": "UNLOCALIZED: Brown Sail", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", "block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle", "block.create.cart_assembler": "카트 조립기", @@ -62,6 +65,7 @@ "block.create.crushing_wheel": "분쇄 휠", "block.create.crushing_wheel_controller": "UNLOCALIZED: Crushing Wheel Controller", "block.create.cuckoo_clock": "뻐꾸기 시계", + "block.create.cyan_sail": "UNLOCALIZED: Cyan Sail", "block.create.cyan_seat": "UNLOCALIZED: Cyan Seat", "block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle", "block.create.dark_oak_window": "UNLOCALIZED: Dark Oak Window", @@ -166,8 +170,10 @@ "block.create.granite_cobblestone_stairs": "UNLOCALIZED: Granite Cobblestone Stairs", "block.create.granite_cobblestone_wall": "UNLOCALIZED: Granite Cobblestone Wall", "block.create.granite_pillar": "UNLOCALIZED: Granite Pillar", + "block.create.gray_sail": "UNLOCALIZED: Gray Sail", "block.create.gray_seat": "UNLOCALIZED: Gray Seat", "block.create.gray_valve_handle": "UNLOCALIZED: Gray Valve Handle", + "block.create.green_sail": "UNLOCALIZED: Green Sail", "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "핸드 크랭크", @@ -185,10 +191,13 @@ "block.create.layered_limestone": "UNLOCALIZED: Layered Limestone", "block.create.layered_scoria": "UNLOCALIZED: Layered Scoria", "block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone", + "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", + "block.create.light_gray_sail": "UNLOCALIZED: Light Gray Sail", "block.create.light_gray_seat": "UNLOCALIZED: Light Gray Seat", "block.create.light_gray_valve_handle": "UNLOCALIZED: Light Gray Valve Handle", + "block.create.lime_sail": "UNLOCALIZED: Lime Sail", "block.create.lime_seat": "UNLOCALIZED: Lime Seat", "block.create.lime_valve_handle": "UNLOCALIZED: Lime Valve Handle", "block.create.limesand": "석회모래", @@ -203,6 +212,7 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "석회암 기둥", "block.create.linear_chassis": "직선 섀시", + "block.create.magenta_sail": "UNLOCALIZED: Magenta Sail", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.magenta_valve_handle": "UNLOCALIZED: Magenta Valve Handle", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", @@ -234,6 +244,7 @@ "block.create.nozzle": "노즐", "block.create.oak_window": "UNLOCALIZED: Oak Window", "block.create.oak_window_pane": "UNLOCALIZED: Oak Window Pane", + "block.create.orange_sail": "UNLOCALIZED: Orange Sail", "block.create.orange_seat": "UNLOCALIZED: Orange Seat", "block.create.orange_valve_handle": "UNLOCALIZED: Orange Valve Handle", "block.create.ornate_iron_window": "UNLOCALIZED: Ornate Iron Window", @@ -283,6 +294,7 @@ "block.create.paved_weathered_limestone_slab": "UNLOCALIZED: Paved Weathered Limestone Slab", "block.create.paved_weathered_limestone_stairs": "UNLOCALIZED: Paved Weathered Limestone Stairs", "block.create.paved_weathered_limestone_wall": "UNLOCALIZED: Paved Weathered Limestone Wall", + "block.create.pink_sail": "UNLOCALIZED: Pink Sail", "block.create.pink_seat": "UNLOCALIZED: Pink Seat", "block.create.pink_valve_handle": "UNLOCALIZED: Pink Valve Handle", "block.create.piston_extension_pole": "피스톤 연장 축", @@ -315,9 +327,11 @@ "block.create.powered_toggle_latch": "레드스톤 토글 걸쇠", "block.create.pulley_magnet": "도르래 자석", "block.create.pulse_repeater": "펄스 리피터", + "block.create.purple_sail": "UNLOCALIZED: Purple Sail", "block.create.purple_seat": "UNLOCALIZED: Purple Seat", "block.create.purple_valve_handle": "UNLOCALIZED: Purple Valve Handle", "block.create.radial_chassis": "원형 섀시", + "block.create.red_sail": "UNLOCALIZED: Red Sail", "block.create.red_seat": "UNLOCALIZED: Red Seat", "block.create.red_valve_handle": "UNLOCALIZED: Red Valve Handle", "block.create.redstone_contact": "동형 감지기", @@ -327,6 +341,7 @@ "block.create.rope": "밧줄", "block.create.rope_pulley": "밧줄 도르래", "block.create.rotation_speed_controller": "회전 속도 컨트롤러", + "block.create.sail_frame": "UNLOCALIZED: Sail Frame", "block.create.schematic_table": "청사진 테이블", "block.create.schematicannon": "청사진 대포", "block.create.scoria": "스코리아", @@ -367,8 +382,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "UNLOCALIZED: Weathered Limestone Cobblestone Stairs", "block.create.weathered_limestone_cobblestone_wall": "UNLOCALIZED: Weathered Limestone Cobblestone Wall", "block.create.weathered_limestone_pillar": "풍화된 석회암 기둥", + "block.create.white_sail": "UNLOCALIZED: White Sail", "block.create.white_seat": "UNLOCALIZED: White Seat", "block.create.white_valve_handle": "UNLOCALIZED: White Valve Handle", + "block.create.windmill_bearing": "UNLOCALIZED: Windmill Bearing", + "block.create.yellow_sail": "UNLOCALIZED: Yellow Sail", "block.create.yellow_seat": "UNLOCALIZED: Yellow Seat", "block.create.yellow_valve_handle": "UNLOCALIZED: Yellow Valve Handle", "block.create.zinc_block": "아연 블럭", @@ -581,6 +599,8 @@ "create.generic.unit.stress": "su", "create.generic.unit.degrees": "°", "create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB", + "create.generic.clockwise": "UNLOCALIZED: Clockwise", + "create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise", "create.action.scroll": "스크롤하세요", "create.action.confirm": "확인", @@ -674,6 +694,11 @@ "create.contraptions.cart_movement_mode.rotate": "UNLOCALIZED: Always face toward motion", "create.contraptions.cart_movement_mode.rotate_paused": "UNLOCALIZED: Pause actors while rotating", "create.contraptions.cart_movement_mode.rotation_locked": "UNLOCALIZED: Lock rotation", + "create.contraptions.windmill.rotation_direction": "UNLOCALIZED: Rotation Direction", + "create.contraptions.clockwork.clock_hands": "UNLOCALIZED: Clock Hands", + "create.contraptions.clockwork.hour_first": "UNLOCALIZED: Hour hand first", + "create.contraptions.clockwork.minute_first": "UNLOCALIZED: Minute hand first", + "create.contraptions.clockwork.hour_first_24": "UNLOCALIZED: 24-Hour hand first", "create.logistics.filter": "필터", "create.logistics.recipe_filter": "UNLOCALIZED: Recipe Filter", 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 ef18f898c..7cea32d18 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: 937", + "_": "Missing Localizations: 962", "_": "->------------------------] Game Elements [------------------------<-", @@ -27,9 +27,11 @@ "block.create.belt": "Mechanische Transportband", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", + "block.create.black_sail": "UNLOCALIZED: Black Sail", "block.create.black_seat": "UNLOCALIZED: Black Seat", "block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle", "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", + "block.create.blue_sail": "UNLOCALIZED: Blue Sail", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", @@ -37,6 +39,7 @@ "block.create.brass_casing": "UNLOCALIZED: Brass Casing", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", + "block.create.brown_sail": "UNLOCALIZED: Brown Sail", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", "block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle", "block.create.cart_assembler": "Kar Assembler", @@ -62,6 +65,7 @@ "block.create.crushing_wheel": "Verpulveraar", "block.create.crushing_wheel_controller": "UNLOCALIZED: Crushing Wheel Controller", "block.create.cuckoo_clock": "UNLOCALIZED: Cuckoo Clock", + "block.create.cyan_sail": "UNLOCALIZED: Cyan Sail", "block.create.cyan_seat": "UNLOCALIZED: Cyan Seat", "block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle", "block.create.dark_oak_window": "UNLOCALIZED: Dark Oak Window", @@ -166,8 +170,10 @@ "block.create.granite_cobblestone_stairs": "UNLOCALIZED: Granite Cobblestone Stairs", "block.create.granite_cobblestone_wall": "UNLOCALIZED: Granite Cobblestone Wall", "block.create.granite_pillar": "UNLOCALIZED: Granite Pillar", + "block.create.gray_sail": "UNLOCALIZED: Gray Sail", "block.create.gray_seat": "UNLOCALIZED: Gray Seat", "block.create.gray_valve_handle": "UNLOCALIZED: Gray Valve Handle", + "block.create.green_sail": "UNLOCALIZED: Green Sail", "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "UNLOCALIZED: Hand Crank", @@ -185,10 +191,13 @@ "block.create.layered_limestone": "UNLOCALIZED: Layered Limestone", "block.create.layered_scoria": "UNLOCALIZED: Layered Scoria", "block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone", + "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", + "block.create.light_gray_sail": "UNLOCALIZED: Light Gray Sail", "block.create.light_gray_seat": "UNLOCALIZED: Light Gray Seat", "block.create.light_gray_valve_handle": "UNLOCALIZED: Light Gray Valve Handle", + "block.create.lime_sail": "UNLOCALIZED: Lime Sail", "block.create.lime_seat": "UNLOCALIZED: Lime Seat", "block.create.lime_valve_handle": "UNLOCALIZED: Lime Valve Handle", "block.create.limesand": "Kalkzand", @@ -203,6 +212,7 @@ "block.create.limestone_cobblestone_wall": "UNLOCALIZED: Limestone Cobblestone Wall", "block.create.limestone_pillar": "Kalksteen Pillar", "block.create.linear_chassis": "Lineaar Frame", + "block.create.magenta_sail": "UNLOCALIZED: Magenta Sail", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.magenta_valve_handle": "UNLOCALIZED: Magenta Valve Handle", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", @@ -234,6 +244,7 @@ "block.create.nozzle": "UNLOCALIZED: Nozzle", "block.create.oak_window": "UNLOCALIZED: Oak Window", "block.create.oak_window_pane": "UNLOCALIZED: Oak Window Pane", + "block.create.orange_sail": "UNLOCALIZED: Orange Sail", "block.create.orange_seat": "UNLOCALIZED: Orange Seat", "block.create.orange_valve_handle": "UNLOCALIZED: Orange Valve Handle", "block.create.ornate_iron_window": "UNLOCALIZED: Ornate Iron Window", @@ -283,6 +294,7 @@ "block.create.paved_weathered_limestone_slab": "UNLOCALIZED: Paved Weathered Limestone Slab", "block.create.paved_weathered_limestone_stairs": "UNLOCALIZED: Paved Weathered Limestone Stairs", "block.create.paved_weathered_limestone_wall": "UNLOCALIZED: Paved Weathered Limestone Wall", + "block.create.pink_sail": "UNLOCALIZED: Pink Sail", "block.create.pink_seat": "UNLOCALIZED: Pink Seat", "block.create.pink_valve_handle": "UNLOCALIZED: Pink Valve Handle", "block.create.piston_extension_pole": "Zuiger Verlengpaal", @@ -315,9 +327,11 @@ "block.create.powered_toggle_latch": "UNLOCALIZED: Powered Toggle Latch", "block.create.pulley_magnet": "UNLOCALIZED: Pulley Magnet", "block.create.pulse_repeater": "Pulse Versterker", + "block.create.purple_sail": "UNLOCALIZED: Purple Sail", "block.create.purple_seat": "UNLOCALIZED: Purple Seat", "block.create.purple_valve_handle": "UNLOCALIZED: Purple Valve Handle", "block.create.radial_chassis": "Rotation Frame", + "block.create.red_sail": "UNLOCALIZED: Red Sail", "block.create.red_seat": "UNLOCALIZED: Red Seat", "block.create.red_valve_handle": "UNLOCALIZED: Red Valve Handle", "block.create.redstone_contact": "Redstone redstone_contact", @@ -327,6 +341,7 @@ "block.create.rope": "UNLOCALIZED: Rope", "block.create.rope_pulley": "UNLOCALIZED: Rope Pulley", "block.create.rotation_speed_controller": "UNLOCALIZED: Rotation Speed Controller", + "block.create.sail_frame": "UNLOCALIZED: Sail Frame", "block.create.schematic_table": "Bouwtekening Tafel", "block.create.schematicannon": "Bouwtekeningkannon", "block.create.scoria": "UNLOCALIZED: Scoria", @@ -367,8 +382,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "UNLOCALIZED: Weathered Limestone Cobblestone Stairs", "block.create.weathered_limestone_cobblestone_wall": "UNLOCALIZED: Weathered Limestone Cobblestone Wall", "block.create.weathered_limestone_pillar": "Verweerde Kalksteen Pilaar", + "block.create.white_sail": "UNLOCALIZED: White Sail", "block.create.white_seat": "UNLOCALIZED: White Seat", "block.create.white_valve_handle": "UNLOCALIZED: White Valve Handle", + "block.create.windmill_bearing": "UNLOCALIZED: Windmill Bearing", + "block.create.yellow_sail": "UNLOCALIZED: Yellow Sail", "block.create.yellow_seat": "UNLOCALIZED: Yellow Seat", "block.create.yellow_valve_handle": "UNLOCALIZED: Yellow Valve Handle", "block.create.zinc_block": "UNLOCALIZED: Zinc Block", @@ -581,6 +599,8 @@ "create.generic.unit.stress": "UNLOCALIZED: su", "create.generic.unit.degrees": "UNLOCALIZED: °", "create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB", + "create.generic.clockwise": "UNLOCALIZED: Clockwise", + "create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise", "create.action.scroll": "Scroll", "create.action.confirm": "Bevestigen", @@ -674,6 +694,11 @@ "create.contraptions.cart_movement_mode.rotate": "UNLOCALIZED: Always face toward motion", "create.contraptions.cart_movement_mode.rotate_paused": "UNLOCALIZED: Pause actors while rotating", "create.contraptions.cart_movement_mode.rotation_locked": "UNLOCALIZED: Lock rotation", + "create.contraptions.windmill.rotation_direction": "UNLOCALIZED: Rotation Direction", + "create.contraptions.clockwork.clock_hands": "UNLOCALIZED: Clock Hands", + "create.contraptions.clockwork.hour_first": "UNLOCALIZED: Hour hand first", + "create.contraptions.clockwork.minute_first": "UNLOCALIZED: Minute hand first", + "create.contraptions.clockwork.hour_first_24": "UNLOCALIZED: 24-Hour hand first", "create.logistics.filter": "Filter", "create.logistics.recipe_filter": "UNLOCALIZED: Recipe Filter", 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 4911783fb..75331efd4 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: 1003", + "_": "Missing Localizations: 1028", "_": "->------------------------] Game Elements [------------------------<-", @@ -27,9 +27,11 @@ "block.create.belt": "Esteira Mecânica", "block.create.birch_window": "UNLOCALIZED: Birch Window", "block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane", + "block.create.black_sail": "UNLOCALIZED: Black Sail", "block.create.black_seat": "UNLOCALIZED: Black Seat", "block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle", "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", + "block.create.blue_sail": "UNLOCALIZED: Blue Sail", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", @@ -37,6 +39,7 @@ "block.create.brass_casing": "UNLOCALIZED: Brass Casing", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", + "block.create.brown_sail": "UNLOCALIZED: Brown Sail", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", "block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle", "block.create.cart_assembler": "UNLOCALIZED: Cart Assembler", @@ -62,6 +65,7 @@ "block.create.crushing_wheel": "Roda de Moer", "block.create.crushing_wheel_controller": "UNLOCALIZED: Crushing Wheel Controller", "block.create.cuckoo_clock": "UNLOCALIZED: Cuckoo Clock", + "block.create.cyan_sail": "UNLOCALIZED: Cyan Sail", "block.create.cyan_seat": "UNLOCALIZED: Cyan Seat", "block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle", "block.create.dark_oak_window": "UNLOCALIZED: Dark Oak Window", @@ -166,8 +170,10 @@ "block.create.granite_cobblestone_stairs": "UNLOCALIZED: Granite Cobblestone Stairs", "block.create.granite_cobblestone_wall": "UNLOCALIZED: Granite Cobblestone Wall", "block.create.granite_pillar": "UNLOCALIZED: Granite Pillar", + "block.create.gray_sail": "UNLOCALIZED: Gray Sail", "block.create.gray_seat": "UNLOCALIZED: Gray Seat", "block.create.gray_valve_handle": "UNLOCALIZED: Gray Valve Handle", + "block.create.green_sail": "UNLOCALIZED: Green Sail", "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "UNLOCALIZED: Hand Crank", @@ -185,10 +191,13 @@ "block.create.layered_limestone": "UNLOCALIZED: Layered Limestone", "block.create.layered_scoria": "UNLOCALIZED: Layered Scoria", "block.create.layered_weathered_limestone": "UNLOCALIZED: Layered Weathered Limestone", + "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", + "block.create.light_gray_sail": "UNLOCALIZED: Light Gray Sail", "block.create.light_gray_seat": "UNLOCALIZED: Light Gray Seat", "block.create.light_gray_valve_handle": "UNLOCALIZED: Light Gray Valve Handle", + "block.create.lime_sail": "UNLOCALIZED: Lime Sail", "block.create.lime_seat": "UNLOCALIZED: Lime Seat", "block.create.lime_valve_handle": "UNLOCALIZED: Lime Valve Handle", "block.create.limesand": "Areia Calcária", @@ -203,6 +212,7 @@ "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.magenta_sail": "UNLOCALIZED: Magenta Sail", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.magenta_valve_handle": "UNLOCALIZED: Magenta Valve Handle", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", @@ -234,6 +244,7 @@ "block.create.nozzle": "UNLOCALIZED: Nozzle", "block.create.oak_window": "UNLOCALIZED: Oak Window", "block.create.oak_window_pane": "UNLOCALIZED: Oak Window Pane", + "block.create.orange_sail": "UNLOCALIZED: Orange Sail", "block.create.orange_seat": "UNLOCALIZED: Orange Seat", "block.create.orange_valve_handle": "UNLOCALIZED: Orange Valve Handle", "block.create.ornate_iron_window": "UNLOCALIZED: Ornate Iron Window", @@ -283,6 +294,7 @@ "block.create.paved_weathered_limestone_slab": "UNLOCALIZED: Paved Weathered Limestone Slab", "block.create.paved_weathered_limestone_stairs": "UNLOCALIZED: Paved Weathered Limestone Stairs", "block.create.paved_weathered_limestone_wall": "UNLOCALIZED: Paved Weathered Limestone Wall", + "block.create.pink_sail": "UNLOCALIZED: Pink Sail", "block.create.pink_seat": "UNLOCALIZED: Pink Seat", "block.create.pink_valve_handle": "UNLOCALIZED: Pink Valve Handle", "block.create.piston_extension_pole": "Vara de Extensão do Pistão", @@ -315,9 +327,11 @@ "block.create.powered_toggle_latch": "UNLOCALIZED: Powered Toggle Latch", "block.create.pulley_magnet": "UNLOCALIZED: Pulley Magnet", "block.create.pulse_repeater": "Repetidor de Pulso", + "block.create.purple_sail": "UNLOCALIZED: Purple Sail", "block.create.purple_seat": "UNLOCALIZED: Purple Seat", "block.create.purple_valve_handle": "UNLOCALIZED: Purple Valve Handle", "block.create.radial_chassis": "Chassis de Rotação", + "block.create.red_sail": "UNLOCALIZED: Red Sail", "block.create.red_seat": "UNLOCALIZED: Red Seat", "block.create.red_valve_handle": "UNLOCALIZED: Red Valve Handle", "block.create.redstone_contact": "Contato de Redstone", @@ -327,6 +341,7 @@ "block.create.rope": "UNLOCALIZED: Rope", "block.create.rope_pulley": "UNLOCALIZED: Rope Pulley", "block.create.rotation_speed_controller": "UNLOCALIZED: Rotation Speed Controller", + "block.create.sail_frame": "UNLOCALIZED: Sail Frame", "block.create.schematic_table": "Mesa de Esquematizar", "block.create.schematicannon": "Esquemaannon", "block.create.scoria": "UNLOCALIZED: Scoria", @@ -367,8 +382,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "UNLOCALIZED: Weathered Limestone Cobblestone Stairs", "block.create.weathered_limestone_cobblestone_wall": "UNLOCALIZED: Weathered Limestone Cobblestone Wall", "block.create.weathered_limestone_pillar": "Pilar de Calcário Resistido", + "block.create.white_sail": "UNLOCALIZED: White Sail", "block.create.white_seat": "UNLOCALIZED: White Seat", "block.create.white_valve_handle": "UNLOCALIZED: White Valve Handle", + "block.create.windmill_bearing": "UNLOCALIZED: Windmill Bearing", + "block.create.yellow_sail": "UNLOCALIZED: Yellow Sail", "block.create.yellow_seat": "UNLOCALIZED: Yellow Seat", "block.create.yellow_valve_handle": "UNLOCALIZED: Yellow Valve Handle", "block.create.zinc_block": "UNLOCALIZED: Zinc Block", @@ -581,6 +599,8 @@ "create.generic.unit.stress": "UNLOCALIZED: su", "create.generic.unit.degrees": "UNLOCALIZED: °", "create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB", + "create.generic.clockwise": "UNLOCALIZED: Clockwise", + "create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise", "create.action.scroll": "Rolar", "create.action.confirm": "Confirmar", @@ -674,6 +694,11 @@ "create.contraptions.cart_movement_mode.rotate": "UNLOCALIZED: Always face toward motion", "create.contraptions.cart_movement_mode.rotate_paused": "UNLOCALIZED: Pause actors while rotating", "create.contraptions.cart_movement_mode.rotation_locked": "UNLOCALIZED: Lock rotation", + "create.contraptions.windmill.rotation_direction": "UNLOCALIZED: Rotation Direction", + "create.contraptions.clockwork.clock_hands": "UNLOCALIZED: Clock Hands", + "create.contraptions.clockwork.hour_first": "UNLOCALIZED: Hour hand first", + "create.contraptions.clockwork.minute_first": "UNLOCALIZED: Minute hand first", + "create.contraptions.clockwork.hour_first_24": "UNLOCALIZED: 24-Hour hand first", "create.logistics.filter": "Filtros", "create.logistics.recipe_filter": "UNLOCALIZED: Recipe Filter", 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 68c921001..b421ad0f6 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: 278", + "_": "Missing Localizations: 303", "_": "->------------------------] Game Elements [------------------------<-", @@ -27,9 +27,11 @@ "block.create.belt": "Конвейер", "block.create.birch_window": "Берёзовое окно", "block.create.birch_window_pane": "Панель берёзового окна", + "block.create.black_sail": "UNLOCALIZED: Black Sail", "block.create.black_seat": "UNLOCALIZED: Black Seat", "block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle", "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", + "block.create.blue_sail": "UNLOCALIZED: Blue Sail", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", @@ -37,6 +39,7 @@ "block.create.brass_casing": "Латунный корпус", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", + "block.create.brown_sail": "UNLOCALIZED: Brown Sail", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", "block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle", "block.create.cart_assembler": "Сборщик вагонеток", @@ -62,6 +65,7 @@ "block.create.crushing_wheel": "Колесо дробления", "block.create.crushing_wheel_controller": "Контроллер колеса дробления", "block.create.cuckoo_clock": "Часы с кукушкой", + "block.create.cyan_sail": "UNLOCALIZED: Cyan Sail", "block.create.cyan_seat": "UNLOCALIZED: Cyan Seat", "block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle", "block.create.dark_oak_window": "Окно из тёмного дуба", @@ -166,8 +170,10 @@ "block.create.granite_cobblestone_stairs": "Ступени из гранит-булыжника", "block.create.granite_cobblestone_wall": "Стена из гранит-булыжника", "block.create.granite_pillar": "Гранитная колонна", + "block.create.gray_sail": "UNLOCALIZED: Gray Sail", "block.create.gray_seat": "UNLOCALIZED: Gray Seat", "block.create.gray_valve_handle": "UNLOCALIZED: Gray Valve Handle", + "block.create.green_sail": "UNLOCALIZED: Green Sail", "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "Рукоятка", @@ -185,10 +191,13 @@ "block.create.layered_limestone": "Слоистый известняк", "block.create.layered_scoria": "Слоистый пепел", "block.create.layered_weathered_limestone": "Слоистый выветренный известняк", + "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", + "block.create.light_gray_sail": "UNLOCALIZED: Light Gray Sail", "block.create.light_gray_seat": "UNLOCALIZED: Light Gray Seat", "block.create.light_gray_valve_handle": "UNLOCALIZED: Light Gray Valve Handle", + "block.create.lime_sail": "UNLOCALIZED: Lime Sail", "block.create.lime_seat": "UNLOCALIZED: Lime Seat", "block.create.lime_valve_handle": "UNLOCALIZED: Lime Valve Handle", "block.create.limesand": "Известковый песок", @@ -203,6 +212,7 @@ "block.create.limestone_cobblestone_wall": "Стена из известняк-булыжника", "block.create.limestone_pillar": "Известковая колонна", "block.create.linear_chassis": "Линейное шасси", + "block.create.magenta_sail": "UNLOCALIZED: Magenta Sail", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.magenta_valve_handle": "UNLOCALIZED: Magenta Valve Handle", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", @@ -234,6 +244,7 @@ "block.create.nozzle": "Форсунка", "block.create.oak_window": "Дубовое окно", "block.create.oak_window_pane": "Панель из дубового окна", + "block.create.orange_sail": "UNLOCALIZED: Orange Sail", "block.create.orange_seat": "UNLOCALIZED: Orange Seat", "block.create.orange_valve_handle": "UNLOCALIZED: Orange Valve Handle", "block.create.ornate_iron_window": "Украшенное железное окно", @@ -283,6 +294,7 @@ "block.create.paved_weathered_limestone_slab": "Плита из мощёного выветренного известняка", "block.create.paved_weathered_limestone_stairs": "Ступени из мощёного выветренного известняка", "block.create.paved_weathered_limestone_wall": "Стена из мощёного выветренного известняка", + "block.create.pink_sail": "UNLOCALIZED: Pink Sail", "block.create.pink_seat": "UNLOCALIZED: Pink Seat", "block.create.pink_valve_handle": "UNLOCALIZED: Pink Valve Handle", "block.create.piston_extension_pole": "Удлинитель поршня", @@ -315,9 +327,11 @@ "block.create.powered_toggle_latch": "Механизированная рычаг-защёлка", "block.create.pulley_magnet": "Шкивный магнит", "block.create.pulse_repeater": "Импульсный повторитель", + "block.create.purple_sail": "UNLOCALIZED: Purple Sail", "block.create.purple_seat": "UNLOCALIZED: Purple Seat", "block.create.purple_valve_handle": "UNLOCALIZED: Purple Valve Handle", "block.create.radial_chassis": "Радиальное шасси", + "block.create.red_sail": "UNLOCALIZED: Red Sail", "block.create.red_seat": "UNLOCALIZED: Red Seat", "block.create.red_valve_handle": "UNLOCALIZED: Red Valve Handle", "block.create.redstone_contact": "Контакт сигнала красного камня", @@ -327,6 +341,7 @@ "block.create.rope": "Канат", "block.create.rope_pulley": "Лебёдка", "block.create.rotation_speed_controller": "Регулятор скорости вращения", + "block.create.sail_frame": "UNLOCALIZED: Sail Frame", "block.create.schematic_table": "Схематичный стол", "block.create.schematicannon": "Схематичная пушка", "block.create.scoria": "Пепел", @@ -367,8 +382,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "Ступени из известняк-булыжника", "block.create.weathered_limestone_cobblestone_wall": "Стена из известняк-булыжника", "block.create.weathered_limestone_pillar": "Колонна из выветренного известняка", + "block.create.white_sail": "UNLOCALIZED: White Sail", "block.create.white_seat": "UNLOCALIZED: White Seat", "block.create.white_valve_handle": "UNLOCALIZED: White Valve Handle", + "block.create.windmill_bearing": "UNLOCALIZED: Windmill Bearing", + "block.create.yellow_sail": "UNLOCALIZED: Yellow Sail", "block.create.yellow_seat": "UNLOCALIZED: Yellow Seat", "block.create.yellow_valve_handle": "UNLOCALIZED: Yellow Valve Handle", "block.create.zinc_block": "Цинковый блок", @@ -581,6 +599,8 @@ "create.generic.unit.stress": "Н*м", "create.generic.unit.degrees": "°", "create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB", + "create.generic.clockwise": "UNLOCALIZED: Clockwise", + "create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise", "create.action.scroll": "Прокрутка", "create.action.confirm": "Подтвердить", @@ -674,6 +694,11 @@ "create.contraptions.cart_movement_mode.rotate": "Всегда лицом к движению", "create.contraptions.cart_movement_mode.rotate_paused": "Пауза во время вращения", "create.contraptions.cart_movement_mode.rotation_locked": "Блокировка вращения", + "create.contraptions.windmill.rotation_direction": "UNLOCALIZED: Rotation Direction", + "create.contraptions.clockwork.clock_hands": "UNLOCALIZED: Clock Hands", + "create.contraptions.clockwork.hour_first": "UNLOCALIZED: Hour hand first", + "create.contraptions.clockwork.minute_first": "UNLOCALIZED: Minute hand first", + "create.contraptions.clockwork.hour_first_24": "UNLOCALIZED: 24-Hour hand first", "create.logistics.filter": "Фильтр", "create.logistics.recipe_filter": "UNLOCALIZED: Recipe Filter", 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 74f907b4c..0370fa797 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: 291", + "_": "Missing Localizations: 316", "_": "->------------------------] Game Elements [------------------------<-", @@ -27,9 +27,11 @@ "block.create.belt": "传送带", "block.create.birch_window": "白桦窗户", "block.create.birch_window_pane": "白桦窗户板", + "block.create.black_sail": "UNLOCALIZED: Black Sail", "block.create.black_seat": "UNLOCALIZED: Black Seat", "block.create.black_valve_handle": "UNLOCALIZED: Black Valve Handle", "block.create.blaze_burner": "UNLOCALIZED: Blaze Burner", + "block.create.blue_sail": "UNLOCALIZED: Blue Sail", "block.create.blue_seat": "UNLOCALIZED: Blue Seat", "block.create.blue_valve_handle": "UNLOCALIZED: Blue Valve Handle", "block.create.brass_belt_funnel": "UNLOCALIZED: Brass Belt Funnel", @@ -37,6 +39,7 @@ "block.create.brass_casing": "黄铜机壳", "block.create.brass_funnel": "UNLOCALIZED: Brass Funnel", "block.create.brass_tunnel": "UNLOCALIZED: Brass Tunnel", + "block.create.brown_sail": "UNLOCALIZED: Brown Sail", "block.create.brown_seat": "UNLOCALIZED: Brown Seat", "block.create.brown_valve_handle": "UNLOCALIZED: Brown Valve Handle", "block.create.cart_assembler": "矿车装配站", @@ -62,6 +65,7 @@ "block.create.crushing_wheel": "粉碎轮", "block.create.crushing_wheel_controller": "粉碎轮控制器", "block.create.cuckoo_clock": "布谷鸟闹钟", + "block.create.cyan_sail": "UNLOCALIZED: Cyan Sail", "block.create.cyan_seat": "UNLOCALIZED: Cyan Seat", "block.create.cyan_valve_handle": "UNLOCALIZED: Cyan Valve Handle", "block.create.dark_oak_window": "深色橡木窗户", @@ -166,8 +170,10 @@ "block.create.granite_cobblestone_stairs": "花岗岩圆石楼梯", "block.create.granite_cobblestone_wall": "花岗岩圆石墙", "block.create.granite_pillar": "竖纹花岗岩", + "block.create.gray_sail": "UNLOCALIZED: Gray Sail", "block.create.gray_seat": "UNLOCALIZED: Gray Seat", "block.create.gray_valve_handle": "UNLOCALIZED: Gray Valve Handle", + "block.create.green_sail": "UNLOCALIZED: Green Sail", "block.create.green_seat": "UNLOCALIZED: Green Seat", "block.create.green_valve_handle": "UNLOCALIZED: Green Valve Handle", "block.create.hand_crank": "手摇曲柄", @@ -185,10 +191,13 @@ "block.create.layered_limestone": "层叠石灰岩", "block.create.layered_scoria": "层叠熔渣", "block.create.layered_weathered_limestone": "层叠风化石灰岩", + "block.create.light_blue_sail": "UNLOCALIZED: Light Blue Sail", "block.create.light_blue_seat": "UNLOCALIZED: Light Blue Seat", "block.create.light_blue_valve_handle": "UNLOCALIZED: Light Blue Valve Handle", + "block.create.light_gray_sail": "UNLOCALIZED: Light Gray Sail", "block.create.light_gray_seat": "UNLOCALIZED: Light Gray Seat", "block.create.light_gray_valve_handle": "UNLOCALIZED: Light Gray Valve Handle", + "block.create.lime_sail": "UNLOCALIZED: Lime Sail", "block.create.lime_seat": "UNLOCALIZED: Lime Seat", "block.create.lime_valve_handle": "UNLOCALIZED: Lime Valve Handle", "block.create.limesand": "石灰沙", @@ -203,6 +212,7 @@ "block.create.limestone_cobblestone_wall": "石灰岩圆石墙", "block.create.limestone_pillar": "竖纹石灰岩", "block.create.linear_chassis": "机壳底盘", + "block.create.magenta_sail": "UNLOCALIZED: Magenta Sail", "block.create.magenta_seat": "UNLOCALIZED: Magenta Seat", "block.create.magenta_valve_handle": "UNLOCALIZED: Magenta Valve Handle", "block.create.mechanical_arm": "UNLOCALIZED: Mechanical Arm", @@ -234,6 +244,7 @@ "block.create.nozzle": "分散网", "block.create.oak_window": "橡木窗户", "block.create.oak_window_pane": "橡木窗户板", + "block.create.orange_sail": "UNLOCALIZED: Orange Sail", "block.create.orange_seat": "UNLOCALIZED: Orange Seat", "block.create.orange_valve_handle": "UNLOCALIZED: Orange Valve Handle", "block.create.ornate_iron_window": "华丽铁窗户", @@ -283,6 +294,7 @@ "block.create.paved_weathered_limestone_slab": "风化石灰岩铺路石台阶", "block.create.paved_weathered_limestone_stairs": "风化石灰岩铺路石楼梯", "block.create.paved_weathered_limestone_wall": "风化石灰岩铺路石墙", + "block.create.pink_sail": "UNLOCALIZED: Pink Sail", "block.create.pink_seat": "UNLOCALIZED: Pink Seat", "block.create.pink_valve_handle": "UNLOCALIZED: Pink Valve Handle", "block.create.piston_extension_pole": "活塞杆", @@ -315,9 +327,11 @@ "block.create.powered_toggle_latch": "T触发器", "block.create.pulley_magnet": "传送带磁铁", "block.create.pulse_repeater": "脉冲中继器", + "block.create.purple_sail": "UNLOCALIZED: Purple Sail", "block.create.purple_seat": "UNLOCALIZED: Purple Seat", "block.create.purple_valve_handle": "UNLOCALIZED: Purple Valve Handle", "block.create.radial_chassis": "旋转底盘", + "block.create.red_sail": "UNLOCALIZED: Red Sail", "block.create.red_seat": "UNLOCALIZED: Red Seat", "block.create.red_valve_handle": "UNLOCALIZED: Red Valve Handle", "block.create.redstone_contact": "信号检测器", @@ -327,6 +341,7 @@ "block.create.rope": "绳索", "block.create.rope_pulley": "绳索滑轮", "block.create.rotation_speed_controller": "转速控制器", + "block.create.sail_frame": "UNLOCALIZED: Sail Frame", "block.create.schematic_table": "蓝图桌", "block.create.schematicannon": "蓝图加农炮", "block.create.scoria": "熔渣", @@ -367,8 +382,11 @@ "block.create.weathered_limestone_cobblestone_stairs": "风化石灰岩圆石楼梯", "block.create.weathered_limestone_cobblestone_wall": "风化石灰岩圆石墙", "block.create.weathered_limestone_pillar": "竖纹风化石灰岩", + "block.create.white_sail": "UNLOCALIZED: White Sail", "block.create.white_seat": "UNLOCALIZED: White Seat", "block.create.white_valve_handle": "UNLOCALIZED: White Valve Handle", + "block.create.windmill_bearing": "UNLOCALIZED: Windmill Bearing", + "block.create.yellow_sail": "UNLOCALIZED: Yellow Sail", "block.create.yellow_seat": "UNLOCALIZED: Yellow Seat", "block.create.yellow_valve_handle": "UNLOCALIZED: Yellow Valve Handle", "block.create.zinc_block": "锌块", @@ -581,6 +599,8 @@ "create.generic.unit.stress": "su", "create.generic.unit.degrees": "°", "create.generic.unit.millibuckets": "UNLOCALIZED: %1$smB", + "create.generic.clockwise": "UNLOCALIZED: Clockwise", + "create.generic.counter_clockwise": "UNLOCALIZED: Counter-Clockwise", "create.action.scroll": "滚轮", "create.action.confirm": "确认", @@ -674,6 +694,11 @@ "create.contraptions.cart_movement_mode.rotate": "结构与矿车保持相同方向", "create.contraptions.cart_movement_mode.rotate_paused": "矿车转向时机器停止工作", "create.contraptions.cart_movement_mode.rotation_locked": "结构方向保持不变", + "create.contraptions.windmill.rotation_direction": "UNLOCALIZED: Rotation Direction", + "create.contraptions.clockwork.clock_hands": "UNLOCALIZED: Clock Hands", + "create.contraptions.clockwork.hour_first": "UNLOCALIZED: Hour hand first", + "create.contraptions.clockwork.minute_first": "UNLOCALIZED: Minute hand first", + "create.contraptions.clockwork.hour_first_24": "UNLOCALIZED: 24-Hour hand first", "create.logistics.filter": "过滤器", "create.logistics.recipe_filter": "UNLOCALIZED: Recipe Filter", diff --git a/src/generated/resources/assets/create/models/block/black_sail.json b/src/generated/resources/assets/create/models/block/black_sail.json new file mode 100644 index 000000000..416fe2056 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/black_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_black" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/blue_sail.json b/src/generated/resources/assets/create/models/block/blue_sail.json new file mode 100644 index 000000000..90af507ee --- /dev/null +++ b/src/generated/resources/assets/create/models/block/blue_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_blue" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/brown_sail.json b/src/generated/resources/assets/create/models/block/brown_sail.json new file mode 100644 index 000000000..820d4147b --- /dev/null +++ b/src/generated/resources/assets/create/models/block/brown_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_brown" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/clockwork_bearing.json b/src/generated/resources/assets/create/models/block/clockwork_bearing.json index 144a26a78..918f089a7 100644 --- a/src/generated/resources/assets/create/models/block/clockwork_bearing.json +++ b/src/generated/resources/assets/create/models/block/clockwork_bearing.json @@ -2,6 +2,7 @@ "parent": "create:block/bearing/block", "textures": { "side": "create:block/clockwork_bearing_side", + "nook": "create:block/brass_casing", "back": "create:block/brass_gearbox" } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/cyan_sail.json b/src/generated/resources/assets/create/models/block/cyan_sail.json new file mode 100644 index 000000000..9c514400b --- /dev/null +++ b/src/generated/resources/assets/create/models/block/cyan_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_cyan" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/gray_sail.json b/src/generated/resources/assets/create/models/block/gray_sail.json new file mode 100644 index 000000000..eea66bdac --- /dev/null +++ b/src/generated/resources/assets/create/models/block/gray_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_gray" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/green_sail.json b/src/generated/resources/assets/create/models/block/green_sail.json new file mode 100644 index 000000000..bc2e1d011 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/green_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_green" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/light_blue_sail.json b/src/generated/resources/assets/create/models/block/light_blue_sail.json new file mode 100644 index 000000000..cc8d5929b --- /dev/null +++ b/src/generated/resources/assets/create/models/block/light_blue_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_light_blue" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/light_gray_sail.json b/src/generated/resources/assets/create/models/block/light_gray_sail.json new file mode 100644 index 000000000..aef702481 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/light_gray_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_light_gray" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/lime_sail.json b/src/generated/resources/assets/create/models/block/lime_sail.json new file mode 100644 index 000000000..d37b16ab1 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/lime_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_lime" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/magenta_sail.json b/src/generated/resources/assets/create/models/block/magenta_sail.json new file mode 100644 index 000000000..c94e50b4d --- /dev/null +++ b/src/generated/resources/assets/create/models/block/magenta_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_magenta" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/mechanical_bearing.json b/src/generated/resources/assets/create/models/block/mechanical_bearing.json index 9e50b2ade..74a704e57 100644 --- a/src/generated/resources/assets/create/models/block/mechanical_bearing.json +++ b/src/generated/resources/assets/create/models/block/mechanical_bearing.json @@ -2,6 +2,7 @@ "parent": "create:block/bearing/block", "textures": { "side": "create:block/mechanical_bearing_side", + "nook": "create:block/brass_casing", "back": "create:block/gearbox" } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/orange_sail.json b/src/generated/resources/assets/create/models/block/orange_sail.json new file mode 100644 index 000000000..9745df3fc --- /dev/null +++ b/src/generated/resources/assets/create/models/block/orange_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_orange" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/pink_sail.json b/src/generated/resources/assets/create/models/block/pink_sail.json new file mode 100644 index 000000000..104e8b335 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/pink_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_pink" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/purple_sail.json b/src/generated/resources/assets/create/models/block/purple_sail.json new file mode 100644 index 000000000..f42743d35 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/purple_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_purple" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/red_sail.json b/src/generated/resources/assets/create/models/block/red_sail.json new file mode 100644 index 000000000..daa72d1bb --- /dev/null +++ b/src/generated/resources/assets/create/models/block/red_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_red" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/windmill_bearing.json b/src/generated/resources/assets/create/models/block/windmill_bearing.json new file mode 100644 index 000000000..1af6d6059 --- /dev/null +++ b/src/generated/resources/assets/create/models/block/windmill_bearing.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/bearing/block", + "textures": { + "side": "create:block/windmill_bearing_side", + "nook": "create:block/andesite_casing", + "back": "create:block/gearbox" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/block/yellow_sail.json b/src/generated/resources/assets/create/models/block/yellow_sail.json new file mode 100644 index 000000000..f8873f47d --- /dev/null +++ b/src/generated/resources/assets/create/models/block/yellow_sail.json @@ -0,0 +1,6 @@ +{ + "parent": "create:block/white_sail", + "textures": { + "0": "create:block/sail/canvas_yellow" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/clockwork_bearing.json b/src/generated/resources/assets/create/models/item/clockwork_bearing.json index 3272b7f57..908d1c4ce 100644 --- a/src/generated/resources/assets/create/models/item/clockwork_bearing.json +++ b/src/generated/resources/assets/create/models/item/clockwork_bearing.json @@ -1,6 +1,7 @@ { "parent": "create:block/bearing/item", "textures": { + "top": "create:block/bearing_top", "side": "create:block/clockwork_bearing_side", "back": "create:block/brass_gearbox" } diff --git a/src/generated/resources/assets/create/models/item/mechanical_bearing.json b/src/generated/resources/assets/create/models/item/mechanical_bearing.json index 868aa2268..6f845950f 100644 --- a/src/generated/resources/assets/create/models/item/mechanical_bearing.json +++ b/src/generated/resources/assets/create/models/item/mechanical_bearing.json @@ -1,6 +1,7 @@ { "parent": "create:block/bearing/item", "textures": { + "top": "create:block/bearing_top", "side": "create:block/mechanical_bearing_side", "back": "create:block/gearbox" } diff --git a/src/generated/resources/assets/create/models/item/sail_frame.json b/src/generated/resources/assets/create/models/item/sail_frame.json new file mode 100644 index 000000000..dc7fe7265 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/sail_frame.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/sail_frame" +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/white_sail.json b/src/generated/resources/assets/create/models/item/white_sail.json new file mode 100644 index 000000000..303c0e83a --- /dev/null +++ b/src/generated/resources/assets/create/models/item/white_sail.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/white_sail" +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/windmill_bearing.json b/src/generated/resources/assets/create/models/item/windmill_bearing.json new file mode 100644 index 000000000..434880d44 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/windmill_bearing.json @@ -0,0 +1,8 @@ +{ + "parent": "create:block/bearing/item", + "textures": { + "top": "create:block/bearing_top_wooden", + "side": "create:block/windmill_bearing_side", + "back": "create:block/gearbox" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/sail_frame.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/sail_frame.json new file mode 100644 index 000000000..bc975d517 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/sail_frame.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/kinetics/sail_frame" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "create:andesite_alloy" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/kinetics/sail_frame" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/white_sail.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/white_sail.json new file mode 100644 index 000000000..57c62a793 --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/white_sail.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/kinetics/white_sail" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "create:sail_frame" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/kinetics/white_sail" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/windmill_bearing.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/windmill_bearing.json new file mode 100644 index 000000000..56800919a --- /dev/null +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/kinetics/windmill_bearing.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "create:crafting/kinetics/windmill_bearing" + ] + }, + "criteria": { + "has_item": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "item": "create:andesite_alloy" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "create:crafting/kinetics/windmill_bearing" + } + } + }, + "requirements": [ + [ + "has_item", + "has_the_recipe" + ] + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/black_sail.json b/src/generated/resources/data/create/loot_tables/blocks/black_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/black_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/blue_sail.json b/src/generated/resources/data/create/loot_tables/blocks/blue_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/blue_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/brown_sail.json b/src/generated/resources/data/create/loot_tables/blocks/brown_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/brown_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/cyan_sail.json b/src/generated/resources/data/create/loot_tables/blocks/cyan_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/cyan_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/gray_sail.json b/src/generated/resources/data/create/loot_tables/blocks/gray_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/gray_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/green_sail.json b/src/generated/resources/data/create/loot_tables/blocks/green_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/green_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/light_blue_sail.json b/src/generated/resources/data/create/loot_tables/blocks/light_blue_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/light_blue_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/light_gray_sail.json b/src/generated/resources/data/create/loot_tables/blocks/light_gray_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/light_gray_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/lime_sail.json b/src/generated/resources/data/create/loot_tables/blocks/lime_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/lime_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/magenta_sail.json b/src/generated/resources/data/create/loot_tables/blocks/magenta_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/magenta_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/orange_sail.json b/src/generated/resources/data/create/loot_tables/blocks/orange_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/orange_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/pink_sail.json b/src/generated/resources/data/create/loot_tables/blocks/pink_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/pink_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/purple_sail.json b/src/generated/resources/data/create/loot_tables/blocks/purple_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/purple_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/red_sail.json b/src/generated/resources/data/create/loot_tables/blocks/red_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/red_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/sail_frame.json b/src/generated/resources/data/create/loot_tables/blocks/sail_frame.json new file mode 100644 index 000000000..40c31d6b4 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/sail_frame.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:sail_frame" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/white_sail.json b/src/generated/resources/data/create/loot_tables/blocks/white_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/white_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/windmill_bearing.json b/src/generated/resources/data/create/loot_tables/blocks/windmill_bearing.json new file mode 100644 index 000000000..779887744 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/windmill_bearing.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:windmill_bearing" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/yellow_sail.json b/src/generated/resources/data/create/loot_tables/blocks/yellow_sail.json new file mode 100644 index 000000000..c820422f1 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/yellow_sail.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "create:white_sail" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/sail_frame.json b/src/generated/resources/data/create/recipes/crafting/kinetics/sail_frame.json new file mode 100644 index 000000000..962b7a32c --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/sail_frame.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "SSS", + "SAS", + "SSS" + ], + "key": { + "A": { + "item": "create:andesite_alloy" + }, + "S": { + "tag": "forge:rods/wooden" + } + }, + "result": { + "item": "create:sail_frame", + "count": 8 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/white_sail.json b/src/generated/resources/data/create/recipes/crafting/kinetics/white_sail.json new file mode 100644 index 000000000..9d48831b0 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/white_sail.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "FFF", + "FWF", + "FFF" + ], + "key": { + "F": { + "item": "create:sail_frame" + }, + "W": { + "tag": "minecraft:wool" + } + }, + "result": { + "item": "create:white_sail", + "count": 8 + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/kinetics/windmill_bearing.json b/src/generated/resources/data/create/recipes/crafting/kinetics/windmill_bearing.json new file mode 100644 index 000000000..8a210d190 --- /dev/null +++ b/src/generated/resources/data/create/recipes/crafting/kinetics/windmill_bearing.json @@ -0,0 +1,22 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + " B ", + " C ", + " I " + ], + "key": { + "I": { + "item": "create:shaft" + }, + "B": { + "item": "create:turntable" + }, + "C": { + "tag": "forge:stone" + } + }, + "result": { + "item": "create:windmill_bearing" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/blocks/fan_transparent.json b/src/generated/resources/data/create/tags/blocks/fan_transparent.json index 68f9d3c80..9c90933ae 100644 --- a/src/generated/resources/data/create/tags/blocks/fan_transparent.json +++ b/src/generated/resources/data/create/tags/blocks/fan_transparent.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "create:blaze_burner", + "create:sail_frame", "#minecraft:fences", "minecraft:iron_bars" ] diff --git a/src/generated/resources/data/create/tags/blocks/sails.json b/src/generated/resources/data/create/tags/blocks/sails.json new file mode 100644 index 000000000..7dcca6319 --- /dev/null +++ b/src/generated/resources/data/create/tags/blocks/sails.json @@ -0,0 +1,20 @@ +{ + "replace": false, + "values": [ + "create:orange_sail", + "create:magenta_sail", + "create:light_blue_sail", + "create:yellow_sail", + "create:lime_sail", + "create:pink_sail", + "create:gray_sail", + "create:light_gray_sail", + "create:cyan_sail", + "create:purple_sail", + "create:blue_sail", + "create:brown_sail", + "create:green_sail", + "create:red_sail", + "create:black_sail" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/blocks/windmill_sails.json b/src/generated/resources/data/create/tags/blocks/windmill_sails.json index c35d84026..d4296265f 100644 --- a/src/generated/resources/data/create/tags/blocks/windmill_sails.json +++ b/src/generated/resources/data/create/tags/blocks/windmill_sails.json @@ -1,6 +1,23 @@ { "replace": false, "values": [ + "create:sail_frame", + "create:white_sail", + "create:orange_sail", + "create:magenta_sail", + "create:light_blue_sail", + "create:yellow_sail", + "create:lime_sail", + "create:pink_sail", + "create:gray_sail", + "create:light_gray_sail", + "create:cyan_sail", + "create:purple_sail", + "create:blue_sail", + "create:brown_sail", + "create:green_sail", + "create:red_sail", + "create:black_sail", "#minecraft:wool" ] } \ No newline at end of file diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java index a04c4a9eb..cfbf8af94 100644 --- a/src/main/java/com/simibubi/create/AllBlockPartials.java +++ b/src/main/java/com/simibubi/create/AllBlockPartials.java @@ -51,17 +51,16 @@ public class AllBlockPartials { SAW_BLADE_HORIZONTAL_REVERSED = get("mechanical_saw/blade_horizontal_reversed"), SAW_BLADE_VERTICAL_ACTIVE = get("mechanical_saw/blade_vertical_active"), SAW_BLADE_VERTICAL_INACTIVE = get("mechanical_saw/blade_vertical_inactive"), - SAW_BLADE_VERTICAL_REVERSED = get("mechanical_saw/blade_vertical_reversed"), - GAUGE_DIAL = get("gauge/dial"), + SAW_BLADE_VERTICAL_REVERSED = get("mechanical_saw/blade_vertical_reversed"), GAUGE_DIAL = get("gauge/dial"), GAUGE_INDICATOR = get("gauge/indicator"), GAUGE_HEAD_SPEED = get("gauge/speedometer/head"), GAUGE_HEAD_STRESS = get("gauge/stressometer/head"), BEARING_TOP = get("bearing/top"), - DRILL_HEAD = get("mechanical_drill/head"), HARVESTER_BLADE = get("mechanical_harvester/blade"), - DEPLOYER_POLE = get("deployer/pole"), DEPLOYER_HAND_POINTING = get("deployer/hand_pointing"), - DEPLOYER_HAND_PUNCHING = get("deployer/hand_punching"), DEPLOYER_HAND_HOLDING = get("deployer/hand_holding"), - ANALOG_LEVER_HANDLE = get("analog_lever/handle"), ANALOG_LEVER_INDICATOR = get("analog_lever/indicator"), - BELT_FUNNEL_FLAP = get("belt_funnel/flap"), BELT_TUNNEL_FLAP = get("belt_tunnel/flap"), - FLEXPEATER_INDICATOR = get("diodes/indicator"), FLYWHEEL = get("flywheel/wheel"), - FLYWHEEL_UPPER_ROTATING = get("flywheel/upper_rotating_connector"), + BEARING_TOP_WOODEN = get("bearing/top_wooden"), DRILL_HEAD = get("mechanical_drill/head"), + HARVESTER_BLADE = get("mechanical_harvester/blade"), DEPLOYER_POLE = get("deployer/pole"), + DEPLOYER_HAND_POINTING = get("deployer/hand_pointing"), DEPLOYER_HAND_PUNCHING = get("deployer/hand_punching"), + DEPLOYER_HAND_HOLDING = get("deployer/hand_holding"), ANALOG_LEVER_HANDLE = get("analog_lever/handle"), + ANALOG_LEVER_INDICATOR = get("analog_lever/indicator"), BELT_FUNNEL_FLAP = get("belt_funnel/flap"), + BELT_TUNNEL_FLAP = get("belt_tunnel/flap"), FLEXPEATER_INDICATOR = get("diodes/indicator"), + FLYWHEEL = get("flywheel/wheel"), FLYWHEEL_UPPER_ROTATING = get("flywheel/upper_rotating_connector"), FLYWHEEL_LOWER_ROTATING = get("flywheel/lower_rotating_connector"), FLYWHEEL_UPPER_SLIDING = get("flywheel/upper_sliding_connector"), diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index b3b0c72c1..78bb6b69a 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -48,6 +48,8 @@ import com.simibubi.create.content.contraptions.components.saw.SawBlock; import com.simibubi.create.content.contraptions.components.saw.SawGenerator; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkBearingBlock; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingBlock; +import com.simibubi.create.content.contraptions.components.structureMovement.bearing.SailBlock; +import com.simibubi.create.content.contraptions.components.structureMovement.bearing.WindmillBearingBlock; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.LinearChassisBlock.ChassisCTBehaviour; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.RadialChassisBlock; @@ -593,16 +595,21 @@ public class AllBlocks { .getName() + "/head")))) .register(); + public static final BlockEntry WINDMILL_BEARING = + REGISTRATE.block("windmill_bearing", WindmillBearingBlock::new) + .transform(BuilderTransformers.bearing("windmill", "gearbox", true)) + .transform(StressConfigDefaults.setCapacity(512.0)) + .register(); + public static final BlockEntry MECHANICAL_BEARING = REGISTRATE.block("mechanical_bearing", MechanicalBearingBlock::new) - .transform(BuilderTransformers.bearing("mechanical", "gearbox")) - .transform(StressConfigDefaults.setCapacity(512.0)) + .transform(BuilderTransformers.bearing("mechanical", "gearbox", false)) .transform(StressConfigDefaults.setImpact(4.0)) .register(); public static final BlockEntry CLOCKWORK_BEARING = REGISTRATE.block("clockwork_bearing", ClockworkBearingBlock::new) - .transform(BuilderTransformers.bearing("clockwork", "brass_gearbox")) + .transform(BuilderTransformers.bearing("clockwork", "brass_gearbox", false)) .transform(StressConfigDefaults.setImpact(4.0)) .register(); @@ -706,9 +713,7 @@ public class AllBlocks { .onRegister(addMovementBehaviour(new SawMovementBehaviour())) .addLayer(() -> RenderType::getCutoutMipped) .item() - .model((c, p) -> p.blockItem(() -> c.getEntry() - .getBlock(), "/horizontal")) - .build() + .transform(customItemModel()) .register(); public static final BlockEntry DEPLOYER = REGISTRATE.block("deployer", DeployerBlock::new) @@ -748,6 +753,7 @@ public class AllBlocks { .register(); static { + // SEATS for (DyeColor colour : DyeColor.values()) { String colourName = colour.getName(); SeatMovementBehaviour movementBehaviour = new SeatMovementBehaviour(); @@ -785,6 +791,46 @@ public class AllBlocks { } } + public static final BlockEntry SAIL_FRAME = REGISTRATE.block("sail_frame", p -> SailBlock.frame(p)) + .initialProperties(SharedProperties::wooden) + .properties(Block.Properties::nonOpaque) + .blockstate(BlockStateGen.directionalBlockProvider(false)) + .tag(AllBlockTags.WINDMILL_SAILS.tag) + .tag(AllBlockTags.FAN_TRANSPARENT.tag) + .simpleItem() + .register(); + + public static final BlockEntry[] DYED_SAILS = new BlockEntry[DyeColor.values().length]; + + public static final BlockEntry SAIL = REGISTRATE.block("white_sail", p -> SailBlock.withCanvas(p)) + .initialProperties(SharedProperties::wooden) + .properties(Block.Properties::nonOpaque) + .blockstate(BlockStateGen.directionalBlockProvider(false)) + .tag(AllBlockTags.WINDMILL_SAILS.tag) + .simpleItem() + .register(); + + static { + // DYED SAILS + for (DyeColor colour : DyeColor.values()) { + if (colour == DyeColor.WHITE) { + DYED_SAILS[colour.ordinal()] = SAIL; + continue; + } + String colourName = colour.getName(); + DYED_SAILS[colour.ordinal()] = REGISTRATE.block(colourName + "_sail", p -> SailBlock.withCanvas(p)) + .properties(Block.Properties::nonOpaque) + .initialProperties(SharedProperties::wooden) + .blockstate((c, p) -> p.directionalBlock(c.get(), p.models() + .withExistingParent(colourName + "_sail", p.modLoc("block/white_sail")) + .texture("0", p.modLoc("block/sail/canvas_" + colourName)))) + .tag(AllBlockTags.WINDMILL_SAILS.tag) + .tag(AllBlockTags.SAILS.tag) + .loot((p, b) -> p.registerDropping(b, SAIL.get())) + .register(); + } + } + public static final BlockEntry ANDESITE_CASING = REGISTRATE.block("andesite_casing", CasingBlock::new) .transform(BuilderTransformers.casing(AllSpriteShifts.ANDESITE_CASING)) .register(); diff --git a/src/main/java/com/simibubi/create/AllShapes.java b/src/main/java/com/simibubi/create/AllShapes.java index d17538bfb..186426e85 100644 --- a/src/main/java/com/simibubi/create/AllShapes.java +++ b/src/main/java/com/simibubi/create/AllShapes.java @@ -36,6 +36,9 @@ public class AllShapes { PULLEY = shape(0, 0, 0, 16, 16, 2).add(1, 1, 2, 15, 15, 14) .add(0, 0, 14, 16, 16, 16) .forHorizontalAxis(), + SAIL_FRAME_COLLISION = shape(0, 5, 0, 16, 9, 16).erase(2, 0, 2, 14, 16, 14).forDirectional(), + SAIL_FRAME = shape(0, 5, 0, 16, 9, 16).forDirectional(), + SAIL = shape(0, 5, 0, 16, 10, 16).forDirectional(), SPEED_CONTROLLER = shape(0, 0, 0, 16, 2, 16).add(1, 1, 1, 15, 15, 15) .erase(0, 8, 5, 16, 16, 11) .add(2, 9, 2, 14, 14, 14) @@ -130,10 +133,12 @@ public class AllShapes { BASIN_BLOCK_SHAPE = shape(0, 2, 0, 16, 16, 16).erase(2, 2, 2, 14, 16, 14) .add(2, 0, 2, 14, 2, 14) - .build(), BASIN_COLLISION_SHAPE = - shape(0, 2, 0, 16, 13, 16).erase(2, 5, 2, 14, 16, 14) - .add(2, 0, 2, 14, 2, 14) + .build(), BASIN_RAYTRACE_SHAPE = + shape(0, 2, 0, 16, 16, 16).add(2, 0, 2, 14, 2, 14) .build(), + BASIN_COLLISION_SHAPE = shape(0, 2, 0, 16, 13, 16).erase(2, 5, 2, 14, 16, 14) + .add(2, 0, 2, 14, 2, 14) + .build(), HEATER_BLOCK_SHAPE = shape(2, 0, 2, 14, 14, 14).add(0, 0, 0, 16, 4, 16) .build(), HEATER_BLOCK_SPECIAL_COLLISION_SHAPE = shape(0, 0, 0, 16, 4, 16).build(), diff --git a/src/main/java/com/simibubi/create/AllTags.java b/src/main/java/com/simibubi/create/AllTags.java index e8b2158a8..779c00aff 100644 --- a/src/main/java/com/simibubi/create/AllTags.java +++ b/src/main/java/com/simibubi/create/AllTags.java @@ -103,7 +103,7 @@ public class AllTags { } public static enum AllBlockTags { - WINDMILL_SAILS, FAN_HEATERS, WINDOWABLE, NON_MOVABLE, BRITTLE, SEATS, VALVE_HANDLES, FAN_TRANSPARENT + WINDMILL_SAILS, FAN_HEATERS, WINDOWABLE, NON_MOVABLE, BRITTLE, SEATS, SAILS, VALVE_HANDLES, FAN_TRANSPARENT ; diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index 6471eec40..f4eb24b27 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -37,6 +37,7 @@ import com.simibubi.create.content.contraptions.components.saw.SawTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.BearingRenderer; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkBearingTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingTileEntity; +import com.simibubi.create.content.contraptions.components.structureMovement.bearing.WindmillBearingTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonRenderer; @@ -278,6 +279,12 @@ public class AllTileEntities { .renderer(() -> MechanicalPistonRenderer::new) .register(); + public static final TileEntityEntry WINDMILL_BEARING = Create.registrate() + .tileEntity("windmill_bearing", WindmillBearingTileEntity::new) + .validBlocks(AllBlocks.WINDMILL_BEARING) + .renderer(() -> BearingRenderer::new) + .register(); + public static final TileEntityEntry MECHANICAL_BEARING = Create.registrate() .tileEntity("mechanical_bearing", MechanicalBearingTileEntity::new) .validBlocks(AllBlocks.MECHANICAL_BEARING) diff --git a/src/main/java/com/simibubi/create/content/AllSections.java b/src/main/java/com/simibubi/create/content/AllSections.java index 9cc4e920a..1dc2dfde0 100644 --- a/src/main/java/com/simibubi/create/content/AllSections.java +++ b/src/main/java/com/simibubi/create/content/AllSections.java @@ -16,9 +16,6 @@ public enum AllSections { /** Item transport and other Utility */ LOGISTICS(Palette.Yellow), - /** Helpful gadgets and other shenanigans */ - CURIOSITIES(Palette.Purple), - /** Tools for strucuture movement and replication */ SCHEMATICS(Palette.Blue), @@ -27,6 +24,9 @@ public enum AllSections { /** Base materials, ingredients and tools */ MATERIALS(Palette.Green), + + /** Helpful gadgets and other shenanigans */ + CURIOSITIES(Palette.Purple), /** Fallback section */ UNASSIGNED(Palette.Gray) diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/BeltPressingCallbacks.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/BeltPressingCallbacks.java index 2c86155b3..4c9e92062 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/BeltPressingCallbacks.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/BeltPressingCallbacks.java @@ -35,7 +35,7 @@ public class BeltPressingCallbacks { return PASS; if (!pressTe.running) return PASS; - if (pressTe.runningTicks != 30) + if (pressTe.runningTicks != MechanicalPressTileEntity.CYCLE / 2) return HOLD; Optional recipe = pressTe.getRecipe(transported.stack); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressBlock.java index d5cc08418..25eb3eb20 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/press/MechanicalPressBlock.java @@ -4,10 +4,8 @@ import com.simibubi.create.AllBlocks; import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock; -import com.simibubi.create.content.contraptions.components.press.MechanicalPressTileEntity.Mode; import com.simibubi.create.foundation.block.ITE; -import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.BlockItemUseContext; @@ -19,10 +17,8 @@ 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 MechanicalPressBlock extends HorizontalKineticBlock - implements ITE { +public class MechanicalPressBlock extends HorizontalKineticBlock implements ITE { public MechanicalPressBlock(Properties properties) { super(properties); @@ -32,7 +28,6 @@ public class MechanicalPressBlock extends HorizontalKineticBlock public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { if (context.getEntity() instanceof PlayerEntity) return AllShapes.CASING_14PX.get(Direction.DOWN); - return AllShapes.MECHANICAL_PROCESSOR_SHAPE; } @@ -41,22 +36,6 @@ public class MechanicalPressBlock extends HorizontalKineticBlock return !AllBlocks.BASIN.has(worldIn.getBlockState(pos.down())); } - @Override - public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, - boolean isMoving) { - if (worldIn.isRemote) - return; - - withTileEntityDo(worldIn, pos, te -> { - if (!worldIn.isBlockPowered(pos)) { - te.finished = false; - return; - } - if (!te.finished && !te.running && te.getSpeed() != 0) - te.start(Mode.WORLD); - }); - } - @Override public TileEntity createTileEntity(BlockState state, IBlockReader world) { return AllTileEntities.MECHANICAL_PRESS.create(); @@ -72,12 +51,14 @@ public class MechanicalPressBlock extends HorizontalKineticBlock @Override public Axis getRotationAxis(BlockState state) { - return state.get(HORIZONTAL_FACING).getAxis(); + return state.get(HORIZONTAL_FACING) + .getAxis(); } @Override public boolean hasShaftTowards(IWorldReader world, BlockPos pos, BlockState state, Direction face) { - return face.getAxis() == state.get(HORIZONTAL_FACING).getAxis(); + return face.getAxis() == state.get(HORIZONTAL_FACING) + .getAxis(); } @Override 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 bc8a0818d..b1546ae96 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 @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; +import com.simibubi.create.AllBlocks; import com.simibubi.create.AllRecipeTypes; import com.simibubi.create.AllSoundEvents; import com.simibubi.create.content.contraptions.processing.BasinOperatingTileEntity; @@ -16,6 +17,7 @@ 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.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour; import com.simibubi.create.foundation.utility.NBTHelper; import com.simibubi.create.foundation.utility.VecHelper; @@ -48,6 +50,8 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { public int prevRunningTicks; public int runningTicks; static final int CYCLE = 240; + static final int ENTITY_SCAN = 10; + int entityScanCooldown; public boolean running; public Mode mode; @@ -56,6 +60,7 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { public MechanicalPressTileEntity(TileEntityType type) { super(type); mode = Mode.WORLD; + entityScanCooldown = ENTITY_SCAN; } @Override @@ -105,10 +110,11 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { public float getRenderedHeadOffset(float partialTicks) { if (!running) return 0; + int runningTicks = Math.abs(this.runningTicks); float ticks = MathHelper.lerp(partialTicks, prevRunningTicks, runningTicks); if (runningTicks < (CYCLE * 2) / 3) - return (float) MathHelper.clamp(Math.pow(ticks / CYCLE * 2, 3), 0, mode.headOffset); - return MathHelper.clamp((CYCLE - ticks) / CYCLE * 3 * mode.headOffset, 0, mode.headOffset); + return (float) MathHelper.clamp(Math.pow(ticks / CYCLE * 2, 3), 0, 1) * mode.headOffset; + return MathHelper.clamp((CYCLE - ticks) / CYCLE * 3, 0, 1) * mode.headOffset; } public void start(Mode mode) { @@ -131,8 +137,39 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { public void tick() { super.tick(); - if (!running || world == null) + if (!running || world == null) { + if (hasWorld() && !world.isRemote) { + + if (getSpeed() == 0) + return; + if (entityScanCooldown > 0) + entityScanCooldown--; + if (entityScanCooldown <= 0) { + entityScanCooldown = ENTITY_SCAN; + if (TileEntityBehaviour.get(world, pos.down(2), TransportedItemStackHandlerBehaviour.TYPE) != null) + return; + if (AllBlocks.BASIN.has(world.getBlockState(pos.down(2)))) + return; + + for (ItemEntity itemEntity : world.getEntitiesWithinAABB(ItemEntity.class, + new AxisAlignedBB(pos.down()).shrink(.125f))) { + ItemStack stack = itemEntity.getItem(); + Optional recipe = getRecipe(stack); + if (!recipe.isPresent()) + continue; + start(Mode.WORLD); + return; + } + } + + } return; + } + + if (world.isRemote && runningTicks == -CYCLE / 2) { + prevRunningTicks = CYCLE / 2; + return; + } if (runningTicks == CYCLE / 2) { if (inWorld()) @@ -149,8 +186,6 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { if (!world.isRemote && runningTicks > CYCLE) { finished = true; - if (inWorld()) - finished = world.isBlockPowered(pos); running = false; if (onBasin() && matchBasinRecipe(currentRecipe)) @@ -163,8 +198,12 @@ public class MechanicalPressTileEntity extends BasinOperatingTileEntity { prevRunningTicks = runningTicks; runningTicks += getRunningTickSpeed(); - if (prevRunningTicks < CYCLE / 2 && runningTicks >= CYCLE / 2) + if (prevRunningTicks < CYCLE / 2 && runningTicks >= CYCLE / 2) { runningTicks = CYCLE / 2; + // Pause the ticks until a packet is received + if (world.isRemote) + runningTicks = -(CYCLE / 2); + } } protected void applyCompactingOnBasin() { 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 880017bec..ee271473d 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 @@ -12,6 +12,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.bea import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkBearingTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingBlock; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingTileEntity; +import com.simibubi.create.content.contraptions.components.structureMovement.bearing.SailBlock; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock; import com.simibubi.create.content.contraptions.components.structureMovement.mounted.CartAssemblerBlock; import com.simibubi.create.content.contraptions.components.structureMovement.piston.MechanicalPistonBlock; @@ -175,14 +176,14 @@ public class BlockMovementTraits { return direction == state.get(EngineBlock.HORIZONTAL_FACING).getOpposite(); if (block instanceof BellBlock) { BellAttachment attachment = state.get(BlockStateProperties.BELL_ATTACHMENT); - if (attachment == BellAttachment.FLOOR) { + if (attachment == BellAttachment.FLOOR) return direction == Direction.DOWN; - } - if (attachment == BellAttachment.CEILING) { + if (attachment == BellAttachment.CEILING) return direction == Direction.UP; - } return direction == state.get(HorizontalBlock.HORIZONTAL_FACING); } + if (state.getBlock() instanceof SailBlock) + return direction.getAxis() != state.get(SailBlock.FACING).getAxis(); return false; } @@ -205,7 +206,9 @@ public class BlockMovementTraits { return facing == Direction.DOWN; if (state.getBlock() instanceof CarpetBlock) return facing == Direction.UP; + if (state.getBlock() instanceof SailBlock) + return facing.getAxis() == state.get(SailBlock.FACING).getAxis(); return isBrittle(state); } - + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java index 82c793e94..e1f7978f5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/BearingRenderer.java @@ -27,7 +27,9 @@ public class BearingRenderer extends KineticTileEntityRenderer { IBearingTileEntity bearingTe = (IBearingTileEntity) te; final Direction facing = te.getBlockState() .get(BlockStateProperties.FACING); - SuperByteBuffer superBuffer = AllBlockPartials.BEARING_TOP.renderOn(te.getBlockState()); + AllBlockPartials top = + bearingTe.isWoodenTop() ? AllBlockPartials.BEARING_TOP_WOODEN : AllBlockPartials.BEARING_TOP; + SuperByteBuffer superBuffer = top.renderOn(te.getBlockState()); float interpolatedAngle = bearingTe.getInterpolatedAngle(partialTicks - 1); kineticRotationTransform(superBuffer, te, facing.getAxis(), (float) (interpolatedAngle / 180 * Math.PI), light); diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkBearingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkBearingTileEntity.java index 440ed16b0..7c89c3e20 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkBearingTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/ClockworkBearingTileEntity.java @@ -1,11 +1,18 @@ package com.simibubi.create.content.contraptions.components.structureMovement.bearing; +import java.util.List; + import org.apache.commons.lang3.tuple.Pair; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionEntity; import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkContraption.HandType; +import com.simibubi.create.foundation.gui.AllIcons; +import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; +import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; import com.simibubi.create.foundation.utility.AngleHelper; +import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.ServerSpeedProvider; import net.minecraft.nbt.CompoundNBT; @@ -30,11 +37,27 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe protected boolean running; protected boolean assembleNextTick; + protected ScrollOptionBehaviour operationMode; + public ClockworkBearingTileEntity(TileEntityType type) { super(type); setLazyTickRate(3); } + @Override + public void addBehaviours(List behaviours) { + super.addBehaviours(behaviours); + operationMode = new ScrollOptionBehaviour<>(ClockHands.class, + Lang.translate("contraptions.clockwork.clock_hands"), this, getMovementModeSlot()); + operationMode.requiresWrench(); + behaviours.add(operationMode); + } + + @Override + public boolean isWoodenTop() { + return false; + } + @Override public void tick() { super.tick(); @@ -50,9 +73,11 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe boolean canDisassemble = true; if (speed == 0 && (canDisassemble || hourHand == null || hourHand.getContraption().blocks.isEmpty())) { if (hourHand != null) - hourHand.getContraption().stop(world); + hourHand.getContraption() + .stop(world); if (minuteHand != null) - minuteHand.getContraption().stop(world); + minuteHand.getContraption() + .stop(world); disassemble(); } return; @@ -78,15 +103,18 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe } protected void applyRotations() { - Axis axis = getBlockState().get(BlockStateProperties.FACING).getAxis(); + Axis axis = getBlockState().get(BlockStateProperties.FACING) + .getAxis(); Direction direction = Direction.getFacingFromAxis(AxisDirection.POSITIVE, axis); Vec3d directionVec = new Vec3d(direction.getDirectionVec()); if (hourHand != null) { - Vec3d vec = new Vec3d(1, 1, 1).scale(hourAngle).mul(directionVec); + Vec3d vec = new Vec3d(1, 1, 1).scale(hourAngle) + .mul(directionVec); hourHand.rotateTo(vec.x, vec.y, vec.z); } if (minuteHand != null) { - Vec3d vec = new Vec3d(1, 1, 1).scale(minuteAngle).mul(directionVec); + Vec3d vec = new Vec3d(1, 1, 1).scale(minuteAngle) + .mul(directionVec); minuteHand.rotateTo(vec.x, vec.y, vec.z); } } @@ -102,10 +130,9 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe float speed = getAngularSpeed() / 2f; if (speed != 0) { - int dayTime = (int) (world.getDayTime() % 24000); - int hours = (dayTime / 1000 + 6) % 24; - int offset = getBlockState().get(ClockworkBearingBlock.FACING).getAxisDirection().getOffset(); - float hourTarget = (float) (offset * -360 / 12f * (hours % 12)); + ClockHands mode = ClockHands.values()[operationMode.getValue()]; + float hourTarget = mode == ClockHands.HOUR_FIRST ? getHourTarget(false) + : mode == ClockHands.MINUTE_FIRST ? getMinuteTarget() : getHourTarget(true); float shortestAngleDiff = AngleHelper.getShortestAngleDiff(hourAngle, hourTarget); if (shortestAngleDiff < 0) { speed = Math.max(speed, shortestAngleDiff); @@ -121,10 +148,8 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe float speed = getAngularSpeed(); if (speed != 0) { - int dayTime = (int) (world.getDayTime() % 24000); - int minutes = (dayTime % 1000) * 60 / 1000; - int offset = getBlockState().get(ClockworkBearingBlock.FACING).getAxisDirection().getOffset(); - float minuteTarget = (float) (offset * -360 / 60f * (minutes)); + ClockHands mode = ClockHands.values()[operationMode.getValue()]; + float minuteTarget = mode == ClockHands.MINUTE_FIRST ? getHourTarget(false) : getMinuteTarget(); float shortestAngleDiff = AngleHelper.getShortestAngleDiff(minuteAngle, minuteTarget); if (shortestAngleDiff < 0) { speed = Math.max(speed, shortestAngleDiff); @@ -136,6 +161,26 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe return speed + clientMinuteAngleDiff / 3f; } + protected float getHourTarget(boolean cycle24) { + int dayTime = (int) (world.getDayTime() % 24000); + int hours = (dayTime / 1000 + 6) % 24; + int offset = getBlockState().get(ClockworkBearingBlock.FACING) + .getAxisDirection() + .getOffset(); + float hourTarget = (float) (offset * -360 / (cycle24 ? 24f : 12f) * (hours % (cycle24 ? 24 : 12))); + return hourTarget; + } + + protected float getMinuteTarget() { + int dayTime = (int) (world.getDayTime() % 24000); + int minutes = (dayTime % 1000) * 60 / 1000; + int offset = getBlockState().get(ClockworkBearingBlock.FACING) + .getAxisDirection() + .getOffset(); + float minuteTarget = (float) (offset * -360 / 60f * (minutes)); + return minuteTarget; + } + public float getAngularSpeed() { float speed = -Math.abs(getSpeed() * 3 / 10f); if (world.isRemote) @@ -144,7 +189,8 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe } public void assemble() { - if (!(world.getBlockState(pos).getBlock() instanceof ClockworkBearingBlock)) + if (!(world.getBlockState(pos) + .getBlock() instanceof ClockworkBearingBlock)) return; Direction direction = getBlockState().get(BlockStateProperties.FACING); @@ -160,15 +206,19 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe return; BlockPos anchor = pos.offset(direction); - contraption.getLeft().removeBlocksFromWorld(world, BlockPos.ZERO); - hourHand = ContraptionEntity.createStationary(world, contraption.getLeft()).controlledBy(this); + contraption.getLeft() + .removeBlocksFromWorld(world, BlockPos.ZERO); + hourHand = ContraptionEntity.createStationary(world, contraption.getLeft()) + .controlledBy(this); hourHand.setPosition(anchor.getX(), anchor.getY(), anchor.getZ()); world.addEntity(hourHand); if (contraption.getRight() != null) { anchor = pos.offset(direction, contraption.getRight().offset + 1); - contraption.getRight().removeBlocksFromWorld(world, BlockPos.ZERO); - minuteHand = ContraptionEntity.createStationary(world, contraption.getRight()).controlledBy(this); + contraption.getRight() + .removeBlocksFromWorld(world, BlockPos.ZERO); + minuteHand = ContraptionEntity.createStationary(world, contraption.getRight()) + .controlledBy(this); minuteHand.setPosition(anchor.getX(), anchor.getY(), anchor.getZ()); world.addEntity(minuteHand); } @@ -234,15 +284,15 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe protected void read(CompoundNBT compound, boolean clientPacket) { float hourAngleBefore = hourAngle; float minuteAngleBefore = minuteAngle; - + running = compound.getBoolean("Running"); hourAngle = compound.getFloat("HourAngle"); minuteAngle = compound.getFloat("MinuteAngle"); super.read(compound, clientPacket); - + if (!clientPacket) return; - + if (running) { clientHourAngleDiff = AngleHelper.getShortestAngleDiff(hourAngleBefore, hourAngle); clientMinuteAngleDiff = AngleHelper.getShortestAngleDiff(minuteAngleBefore, minuteAngle); @@ -286,8 +336,7 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe } @Override - public void collided() { - } + public void collided() {} @Override public boolean isAttachedTo(ContraptionEntity contraption) { @@ -304,4 +353,32 @@ public class ClockworkBearingTileEntity extends KineticTileEntity implements IBe return running; } + static enum ClockHands implements INamedIconOptions { + + HOUR_FIRST(AllIcons.I_HOUR_HAND_FIRST), + MINUTE_FIRST(AllIcons.I_MINUTE_HAND_FIRST), + HOUR_FIRST_24(AllIcons.I_HOUR_HAND_FIRST_24), + + ; + + private String translationKey; + private AllIcons icon; + + private ClockHands(AllIcons icon) { + this.icon = icon; + translationKey = "contraptions.clockwork." + Lang.asId(name()); + } + + @Override + public AllIcons getIcon() { + return icon; + } + + @Override + public String getTranslationKey() { + return translationKey; + } + + } + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/IBearingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/IBearingTileEntity.java index efaad9ead..f2f9a475d 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/IBearingTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/IBearingTileEntity.java @@ -1,9 +1,24 @@ package com.simibubi.create.content.contraptions.components.structureMovement.bearing; +import com.simibubi.create.content.contraptions.components.structureMovement.DirectionalExtenderScrollOptionSlot; import com.simibubi.create.content.contraptions.components.structureMovement.IControlContraption; +import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; + +import net.minecraft.util.Direction.Axis; public interface IBearingTileEntity extends IControlContraption { float getInterpolatedAngle(float partialTicks); + boolean isWoodenTop(); + + default ValueBoxTransform getMovementModeSlot() { + return new DirectionalExtenderScrollOptionSlot((state, d) -> { + Axis axis = d.getAxis(); + Axis bearingAxis = state.get(BearingBlock.FACING) + .getAxis(); + return bearingAxis != axis; + }); + } + } diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingBlock.java index 253a49a71..9bf59c537 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingBlock.java @@ -2,9 +2,7 @@ package com.simibubi.create.content.contraptions.components.structureMovement.be import com.simibubi.create.AllTileEntities; import com.simibubi.create.foundation.block.ITE; -import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; -import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.tileentity.TileEntity; @@ -27,44 +25,28 @@ public class MechanicalBearingBlock extends BearingBlock implements ITE { - if (te.running) { - te.disassemble(); - return; - } - te.assembleNextTick = true; - }); - } + if (player.getHeldItem(handIn) + .isEmpty()) { + if (worldIn.isRemote) + return ActionResultType.SUCCESS; + withTileEntityDo(worldIn, pos, te -> { + if (te.running) { + te.disassemble(); + return; + } + te.assembleNextTick = true; + }); return ActionResultType.SUCCESS; } return ActionResultType.PASS; } - @Override - public void onBlockAdded(BlockState state, World worldIn, BlockPos pos, BlockState oldState, boolean isMoving) { - if (worldIn instanceof WrappedWorld) - return; - withTileEntityDo(worldIn, pos, MechanicalBearingTileEntity::neighbourChanged); - } - - @Override - public void neighborChanged(BlockState state, World worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, - boolean isMoving) { - if (worldIn instanceof WrappedWorld) - return; - if (worldIn.isRemote) - return; - withTileEntityDo(worldIn, pos, MechanicalBearingTileEntity::neighbourChanged); - } - @Override public Class getTileEntityClass() { return MechanicalBearingTileEntity.class; diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java index 787e5f2ad..fda747d49 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/MechanicalBearingTileEntity.java @@ -6,9 +6,7 @@ import java.util.List; import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionEntity; -import com.simibubi.create.content.contraptions.components.structureMovement.DirectionalExtenderScrollOptionSlot; import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; -import com.simibubi.create.foundation.tileEntity.behaviour.ValueBoxTransform; import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.Lang; @@ -26,21 +24,23 @@ import net.minecraft.util.math.Vec3d; public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity implements IBearingTileEntity { - protected boolean isWindmill; + protected ScrollOptionBehaviour movementMode; protected ContraptionEntity movedContraption; protected float angle; protected boolean running; protected boolean assembleNextTick; protected float clientAngleDiff; - protected ScrollOptionBehaviour movementMode; - protected float lastGeneratedSpeed; public MechanicalBearingTileEntity(TileEntityType type) { super(type); - isWindmill = false; setLazyTickRate(3); } + @Override + public boolean isWoodenTop() { + return false; + } + @Override public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); @@ -50,39 +50,6 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp behaviours.add(movementMode); } - @Override - public float calculateAddedStressCapacity() { - return isWindmill ? super.calculateAddedStressCapacity() : 0; - } - - @Override - public float calculateStressApplied() { - return isWindmill ? 0 : super.calculateStressApplied(); - } - - public void neighbourChanged() { - if (!hasWorld()) - return; - - boolean shouldWindmill = world.isBlockPowered(pos); - if (shouldWindmill == isWindmill) - return; - - isWindmill = shouldWindmill; - if (isWindmill && !running) - assembleNextTick = true; - if (isWindmill && running) - updateGeneratedRotation(); - - if (!isWindmill && running) { - updateGeneratedRotation(); - if (getSpeed() == 0) - assembleNextTick = true; - } - - sendData(); - } - @Override public void remove() { if (!world.isRemote) @@ -90,22 +57,10 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp super.remove(); } - @Override - public float getGeneratedSpeed() { - if (!running || !isWindmill) - return 0; - if (movedContraption == null) - return lastGeneratedSpeed; - int sails = ((BearingContraption) movedContraption.getContraption()).getSailBlocks() / 8; - return MathHelper.clamp(sails, 1, 16); - } - @Override public void write(CompoundNBT compound, boolean clientPacket) { compound.putBoolean("Running", running); - compound.putBoolean("Windmill", isWindmill); compound.putFloat("Angle", angle); - compound.putFloat("LastGenerated", lastGeneratedSpeed); super.write(compound, clientPacket); } @@ -113,11 +68,8 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp protected void read(CompoundNBT compound, boolean clientPacket) { float angleBefore = angle; running = compound.getBoolean("Running"); - isWindmill = compound.getBoolean("Windmill"); angle = compound.getFloat("Angle"); - lastGeneratedSpeed = compound.getFloat("LastGenerated"); super.read(compound, clientPacket); - if (!clientPacket) return; if (running) { @@ -141,7 +93,7 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp } public float getAngularSpeed() { - float speed = getSpeed() * 3 / 10f; + float speed = (isWindmill() ? getGeneratedSpeed() : getSpeed()) * 3 / 10f; if (world.isRemote) { speed *= ServerSpeedProvider.get(); speed += clientAngleDiff / 3f; @@ -149,9 +101,13 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp return speed; } + protected boolean isWindmill() { + return false; + } + public void assemble() { if (!(world.getBlockState(pos) - .getBlock() instanceof MechanicalBearingBlock)) + .getBlock() instanceof BearingBlock)) return; Direction direction = getBlockState().get(FACING); @@ -160,7 +116,7 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp BearingContraption contraption = BearingContraption.assembleBearingAt(world, pos, direction); if (contraption == null) return; - if (isWindmill && contraption.getSailBlocks() == 0) + if (isWindmill() && contraption.getSailBlocks() == 0) return; if (contraption.blocks.isEmpty()) return; @@ -179,21 +135,17 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp updateGeneratedRotation(); } - @Override - public void updateGeneratedRotation() { - super.updateGeneratedRotation(); - lastGeneratedSpeed = getGeneratedSpeed(); - } - public void disassemble() { if (!running && movedContraption == null) return; + angle = 0; + if (isWindmill()) + applyRotation(); if (movedContraption != null) movedContraption.disassemble(); movedContraption = null; running = false; - angle = 0; updateGeneratedRotation(); assembleNextTick = false; sendData(); @@ -220,7 +172,7 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp } return; } else { - if (speed == 0 && !isWindmill) + if (speed == 0 && !isWindmill()) return; assemble(); } @@ -290,15 +242,6 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity imp return !isRemoved(); } - protected ValueBoxTransform getMovementModeSlot() { - return new DirectionalExtenderScrollOptionSlot((state, d) -> { - Axis axis = d.getAxis(); - Axis bearingAxis = state.get(MechanicalBearingBlock.FACING) - .getAxis(); - return bearingAxis != axis; - }); - } - @Override public void collided() {} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlock.java new file mode 100644 index 000000000..6496c6095 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlock.java @@ -0,0 +1,198 @@ +package com.simibubi.create.content.contraptions.components.structureMovement.bearing; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllShapes; +import com.simibubi.create.foundation.block.ProperDirectionalBlock; +import com.simibubi.create.foundation.utility.DyeHelper; +import com.simibubi.create.foundation.utility.Iterate; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.Entity; +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.BlockItem; +import net.minecraft.item.BlockItemUseContext; +import net.minecraft.item.DyeColor; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Direction; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.util.math.RayTraceResult; +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 SailBlock extends ProperDirectionalBlock { + + public static SailBlock frame(Properties properties) { + return new SailBlock(properties, true); + } + + public static SailBlock withCanvas(Properties properties) { + return new SailBlock(properties, false); + } + + private boolean frame; + + protected SailBlock(Properties p_i48415_1_, boolean frame) { + super(p_i48415_1_); + this.frame = frame; + } + + @Override + public BlockState getStateForPlacement(BlockItemUseContext context) { + BlockState state = super.getStateForPlacement(context); + return state.with(FACING, state.get(FACING) + .getOpposite()); + } + + @Override + public ActionResultType onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, + BlockRayTraceResult ray) { + ItemStack heldItem = player.getHeldItem(hand); + + if (AllBlocks.SAIL.isIn(heldItem) || AllBlocks.SAIL_FRAME.isIn(heldItem)) { + Direction offset = + SailBlockPlacementHelper.getPlacementOffset(world, state.get(FACING), pos, ray.getHitVec()); + if (offset == null) + return ActionResultType.SUCCESS; + BlockState blockState = ((BlockItem) heldItem.getItem()).getBlock() + .getDefaultState() + .with(FACING, state.get(FACING)); + BlockPos offsetPos = pos.offset(offset); + if (!world.isRemote && world.getBlockState(offsetPos) + .getMaterial() + .isReplaceable()) + world.setBlockState(offsetPos, blockState); + return ActionResultType.SUCCESS; + } + + if (frame) + return ActionResultType.PASS; + + for (DyeColor color : DyeColor.values()) { + if (!heldItem.getItem() + .isIn(DyeHelper.getTagOfDye(color))) + continue; + if (!world.isRemote) + applyDye(state, world, pos, color); + return ActionResultType.SUCCESS; + } + + return ActionResultType.PASS; + } + + protected void applyDye(BlockState state, World world, BlockPos pos, DyeColor color) { + BlockState newState = AllBlocks.DYED_SAILS[color.ordinal()].getDefaultState() + .with(FACING, state.get(FACING)); + + // Dye the block itself + if (state != newState) { + world.setBlockState(pos, newState); + return; + } + + // Dye all adjacent + for (Direction d : Iterate.directions) { + if (d.getAxis() == state.get(FACING) + .getAxis()) + continue; + BlockPos offset = pos.offset(d); + BlockState adjacentState = world.getBlockState(offset); + Block block = adjacentState.getBlock(); + if (!(block instanceof SailBlock) || ((SailBlock) block).frame) + continue; + if (state == adjacentState) + continue; + world.setBlockState(offset, newState); + return; + } + + // Dye all the things + List frontier = new ArrayList<>(); + frontier.add(pos); + Set visited = new HashSet<>(); + int timeout = 100; + while (!frontier.isEmpty()) { + if (timeout-- < 0) + break; + + BlockPos currentPos = frontier.remove(0); + visited.add(currentPos); + + for (Direction d : Iterate.directions) { + if (d.getAxis() == state.get(FACING) + .getAxis()) + continue; + BlockPos offset = currentPos.offset(d); + if (visited.contains(offset)) + continue; + BlockState adjacentState = world.getBlockState(offset); + Block block = adjacentState.getBlock(); + if (!(block instanceof SailBlock) || ((SailBlock) block).frame) + continue; + if (state != adjacentState) + world.setBlockState(offset, newState); + frontier.add(offset); + visited.add(offset); + } + } + } + + @Override + public VoxelShape getShape(BlockState state, IBlockReader p_220053_2_, BlockPos p_220053_3_, + ISelectionContext p_220053_4_) { + return (frame ? AllShapes.SAIL_FRAME : AllShapes.SAIL).get(state.get(FACING)); + } + + @Override + public VoxelShape getCollisionShape(BlockState state, IBlockReader p_220071_2_, BlockPos p_220071_3_, + ISelectionContext p_220071_4_) { + if (frame) + return AllShapes.SAIL_FRAME_COLLISION.get(state.get(FACING)); + return getShape(state, p_220071_2_, p_220071_3_, p_220071_4_); + } + + @Override + public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, + PlayerEntity player) { + ItemStack pickBlock = super.getPickBlock(state, target, world, pos, player); + if (pickBlock.isEmpty()) + return AllBlocks.SAIL.get().getPickBlock(state, target, world, pos, player); + return pickBlock; + } + + public void onFallenUpon(World p_180658_1_, BlockPos p_180658_2_, Entity p_180658_3_, float p_180658_4_) { + if (frame) + super.onFallenUpon(p_180658_1_, p_180658_2_, p_180658_3_, p_180658_4_); + super.onFallenUpon(p_180658_1_, p_180658_2_, p_180658_3_, 0); + } + + public void onLanded(IBlockReader p_176216_1_, Entity p_176216_2_) { + if (frame || p_176216_2_.bypassesLandingEffects()) { + super.onLanded(p_176216_1_, p_176216_2_); + } else { + this.bounce(p_176216_2_); + } + } + + private void bounce(Entity p_226860_1_) { + Vec3d vec3d = p_226860_1_.getMotion(); + if (vec3d.y < 0.0D) { + double d0 = p_226860_1_ instanceof LivingEntity ? 1.0D : 0.8D; + p_226860_1_.setMotion(vec3d.x, -vec3d.y * (double) 0.26F * d0, vec3d.z); + } + + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlockPlacementHelper.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlockPlacementHelper.java new file mode 100644 index 000000000..462b8bdef --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/SailBlockPlacementHelper.java @@ -0,0 +1,101 @@ +package com.simibubi.create.content.contraptions.components.structureMovement.bearing; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.CreateClient; +import com.simibubi.create.foundation.utility.Iterate; +import com.simibubi.create.foundation.utility.VecHelper; + +import net.minecraft.block.BlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.entity.player.ClientPlayerEntity; +import net.minecraft.client.world.ClientWorld; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Direction; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.util.math.RayTraceResult; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; + +public class SailBlockPlacementHelper { + + @OnlyIn(Dist.CLIENT) + public static void tick() { + Minecraft mc = Minecraft.getInstance(); + RayTraceResult objectMouseOver = mc.objectMouseOver; + ClientWorld world = mc.world; + ClientPlayerEntity player = mc.player; + if (!(objectMouseOver instanceof BlockRayTraceResult)) + return; + BlockRayTraceResult ray = (BlockRayTraceResult) objectMouseOver; + if (!isHoldingSail(player)) + return; + BlockPos pos = ray.getPos(); + BlockState blockState = world.getBlockState(pos); + if (!(blockState.getBlock() instanceof SailBlock)) + return; + + Direction sailFacing = blockState.get(SailBlock.FACING); + Direction offset = getPlacementOffset(world, sailFacing, pos, ray.getHitVec()); + if (offset == null) + return; + + Vec3d centerOf = VecHelper.getCenterOf(pos); + Vec3d offsetVec = new Vec3d(offset.getDirectionVec()); + + if (!world.getBlockState(pos.offset(offset)) + .getMaterial() + .isReplaceable()) + return; + + for (Direction caretDirection : Iterate.directions) { + if (caretDirection.getAxis() == offset.getAxis()) + continue; + if (caretDirection.getAxis() == sailFacing.getAxis()) + continue; + + Vec3d otherOffset = new Vec3d(caretDirection.getDirectionVec()).scale(.25f); + Vec3d start = offsetVec.scale(.75f) + .add(otherOffset); + Vec3d target = centerOf.add(offsetVec); + CreateClient.outliner.showLine("sailHelp" + caretDirection, centerOf.add(start), target) + .lineWidth(1 / 16f); + } + + return; + } + + public static boolean isHoldingSail(PlayerEntity player) { + for (Hand hand : Hand.values()) { + ItemStack heldItem = player.getHeldItem(hand); + if (AllBlocks.SAIL.isIn(heldItem) || AllBlocks.SAIL_FRAME.isIn(heldItem)) + return true; + } + return false; + } + + public static Direction getPlacementOffset(World world, Direction sailDirection, BlockPos pos, Vec3d hit) { + Direction argMin = null; + float min = Float.MAX_VALUE; + Vec3d diffFromCentre = hit.subtract(VecHelper.getCenterOf(pos)); + for (Direction side : Iterate.directions) { + if (side.getAxis() == sailDirection.getAxis()) + continue; + if (!world.getBlockState(pos.offset(side)) + .getMaterial() + .isReplaceable()) + continue; + float distance = (float) new Vec3d(side.getDirectionVec()).distanceTo(diffFromCentre); + if (distance > min) + continue; + min = distance; + argMin = side; + } + return argMin; + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingBlock.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingBlock.java new file mode 100644 index 000000000..0f5bb749f --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingBlock.java @@ -0,0 +1,55 @@ +package com.simibubi.create.content.contraptions.components.structureMovement.bearing; + +import com.simibubi.create.AllTileEntities; +import com.simibubi.create.foundation.block.ITE; + +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ActionResultType; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.BlockRayTraceResult; +import net.minecraft.world.IBlockReader; +import net.minecraft.world.World; + +public class WindmillBearingBlock extends BearingBlock implements ITE { + + public WindmillBearingBlock(Properties properties) { + super(properties); + } + + @Override + public TileEntity createTileEntity(BlockState state, IBlockReader world) { + return AllTileEntities.WINDMILL_BEARING.create(); + } + + @Override + public ActionResultType onUse(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, + BlockRayTraceResult hit) { + if (!player.isAllowEdit()) + return ActionResultType.FAIL; + if (player.isSneaking()) + return ActionResultType.FAIL; + if (player.getHeldItem(handIn) + .isEmpty()) { + if (worldIn.isRemote) + return ActionResultType.SUCCESS; + withTileEntityDo(worldIn, pos, te -> { + if (te.running) { + te.disassemble(); + return; + } + te.assembleNextTick = true; + }); + return ActionResultType.SUCCESS; + } + return ActionResultType.PASS; + } + + @Override + public Class getTileEntityClass() { + return WindmillBearingTileEntity.class; + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java new file mode 100644 index 000000000..2fef5b324 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/contraptions/components/structureMovement/bearing/WindmillBearingTileEntity.java @@ -0,0 +1,111 @@ +package com.simibubi.create.content.contraptions.components.structureMovement.bearing; + +import java.util.List; + +import com.simibubi.create.foundation.gui.AllIcons; +import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour; +import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.INamedIconOptions; +import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollOptionBehaviour; +import com.simibubi.create.foundation.utility.Lang; + +import net.minecraft.nbt.CompoundNBT; +import net.minecraft.tileentity.TileEntityType; +import net.minecraft.util.math.MathHelper; + +public class WindmillBearingTileEntity extends MechanicalBearingTileEntity { + + protected ScrollOptionBehaviour movementDirection; + protected float lastGeneratedSpeed; + + public WindmillBearingTileEntity(TileEntityType type) { + super(type); + } + + @Override + public void updateGeneratedRotation() { + super.updateGeneratedRotation(); + lastGeneratedSpeed = getGeneratedSpeed(); + } + + @Override + public float getGeneratedSpeed() { + if (!running) + return 0; + if (movedContraption == null) + return lastGeneratedSpeed; + int sails = ((BearingContraption) movedContraption.getContraption()).getSailBlocks() / 8; + return MathHelper.clamp(sails, 1, 16) * getAngleSpeedDirection(); + } + + @Override + protected boolean isWindmill() { + return true; + } + + protected float getAngleSpeedDirection() { + RotationDirection rotationDirection = RotationDirection.values()[movementDirection.getValue()]; + return (rotationDirection == RotationDirection.CLOCKWISE ? 1 : -1); + } + + @Override + public void write(CompoundNBT compound, boolean clientPacket) { + compound.putFloat("LastGenerated", lastGeneratedSpeed); + super.write(compound, clientPacket); + } + + @Override + protected void read(CompoundNBT compound, boolean clientPacket) { + lastGeneratedSpeed = compound.getFloat("LastGenerated"); + super.read(compound, clientPacket); + } + + @Override + public void addBehaviours(List behaviours) { + super.addBehaviours(behaviours); + behaviours.remove(movementMode); + movementDirection = new ScrollOptionBehaviour<>(RotationDirection.class, + Lang.translate("contraptions.windmill.rotation_direction"), this, getMovementModeSlot()); + movementDirection.requiresWrench(); + movementDirection.withCallback($ -> onDirectionChanged()); + behaviours.add(movementDirection); + } + + private void onDirectionChanged() { + if (!running) + return; + if (!world.isRemote) + updateGeneratedRotation(); + } + + @Override + public boolean isWoodenTop() { + return true; + } + + static enum RotationDirection implements INamedIconOptions { + + CLOCKWISE(AllIcons.I_REFRESH), COUNTER_CLOCKWISE(AllIcons.I_ROTATE_CCW), + + ; + + private String translationKey; + private AllIcons icon; + + private RotationDirection(AllIcons icon) { + this.icon = icon; + translationKey = "generic." + Lang.asId(name()); + } + + @Override + public AllIcons getIcon() { + return icon; + } + + @Override + public String getTranslationKey() { + return translationKey; + } + + } + +} diff --git a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/GenericItemFilling.java b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/GenericItemFilling.java index e6b030e59..a18ffc858 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/GenericItemFilling.java +++ b/src/main/java/com/simibubi/create/content/contraptions/fluids/actors/GenericItemFilling.java @@ -3,6 +3,7 @@ package com.simibubi.create.content.contraptions.fluids.actors; import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler; import com.simibubi.create.foundation.fluid.FluidHelper; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.potion.PotionUtils; @@ -43,8 +44,12 @@ public class GenericItemFilling { IFluidHandlerItem tank = capability.orElse(null); if (tank == null) return -1; - if (tank instanceof FluidBucketWrapper) + if (tank instanceof FluidBucketWrapper) { + Item filledBucket = availableFluid.getFluid().getFilledBucket(); + if (filledBucket == null || filledBucket == Items.AIR) + return -1; return 1000; + } int filled = tank.fill(availableFluid, FluidAction.SIMULATE); return filled == 0 ? -1 : filled; 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 6925f7c67..2189fdb7e 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 @@ -84,7 +84,11 @@ public class BasinBlock extends Block implements ITE, IWrenchab return ActionResultType.SUCCESS; if (tryFillItemFromBasin(worldIn, player, handIn, heldItem, te)) return ActionResultType.SUCCESS; - return ActionResultType.SUCCESS; + + if (EmptyingByBasin.canItemBeEmptied(worldIn, heldItem) + || GenericItemFilling.canItemBeFilled(worldIn, heldItem)) + return ActionResultType.SUCCESS; + return ActionResultType.PASS; } IItemHandlerModifiable inv = te.itemCapability.orElse(new ItemStackHandler(1)); @@ -149,18 +153,18 @@ public class BasinBlock extends Block implements ITE, IWrenchab continue; if (requiredAmountForItem > fluid.getAmount()) continue; - + if (world.isRemote) return true; if (player.isCreative()) heldItem = heldItem.copy(); ItemStack out = GenericItemFilling.fillItem(world, requiredAmountForItem, heldItem, fluid.copy()); - + FluidStack copy = fluid.copy(); copy.setAmount(requiredAmountForItem); tank.drain(copy, FluidAction.EXECUTE); - + if (!player.isCreative()) player.inventory.placeItemBackInInventory(world, out); te.notifyUpdate(); @@ -195,6 +199,11 @@ public class BasinBlock extends Block implements ITE, IWrenchab }); } + @Override + public VoxelShape getRaytraceShape(BlockState p_199600_1_, IBlockReader p_199600_2_, BlockPos p_199600_3_) { + return AllShapes.BASIN_RAYTRACE_SHAPE; + } + @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { return AllShapes.BASIN_BLOCK_SHAPE; diff --git a/src/main/java/com/simibubi/create/events/ClientEvents.java b/src/main/java/com/simibubi/create/events/ClientEvents.java index b14fb55de..4616710a1 100644 --- a/src/main/java/com/simibubi/create/events/ClientEvents.java +++ b/src/main/java/com/simibubi/create/events/ClientEvents.java @@ -8,6 +8,7 @@ import com.simibubi.create.Create; import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.KineticDebugger; import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionHandler; +import com.simibubi.create.content.contraptions.components.structureMovement.bearing.SailBlockPlacementHelper; import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisRangeDisplay; import com.simibubi.create.content.contraptions.components.structureMovement.train.CouplingHandlerClient; import com.simibubi.create.content.contraptions.components.structureMovement.train.CouplingPhysics; @@ -93,6 +94,7 @@ public class ClientEvents { ExtendoGripRenderHandler.tick(); // CollisionDebugger.tick(); ArmInteractionPointHandler.tick(); + SailBlockPlacementHelper.tick(); CreateClient.outliner.tickOutlines(); } diff --git a/src/main/java/com/simibubi/create/foundation/command/AllCommands.java b/src/main/java/com/simibubi/create/foundation/command/AllCommands.java index e78fed99e..1b995a0e1 100644 --- a/src/main/java/com/simibubi/create/foundation/command/AllCommands.java +++ b/src/main/java/com/simibubi/create/foundation/command/AllCommands.java @@ -17,7 +17,7 @@ public class AllCommands { //Comment out for release .then(ClearBufferCacheCommand.register()) .then(ChunkUtilCommand.register()) - // .then(KillTPSCommand.register()) +// .then(KillTPSCommand.register()) ); } } diff --git a/src/main/java/com/simibubi/create/foundation/config/CClient.java b/src/main/java/com/simibubi/create/foundation/config/CClient.java index 0bd1eb895..b4aabef30 100644 --- a/src/main/java/com/simibubi/create/foundation/config/CClient.java +++ b/src/main/java/com/simibubi/create/foundation/config/CClient.java @@ -13,7 +13,7 @@ public class CClient extends ConfigBase { public ConfigBool rainbowDebug = b(true, "enableRainbowDebug", "Show colourful debug information while the F3-Menu is open."); - public ConfigInt overlayOffsetX = i(0, Integer.MIN_VALUE, Integer.MAX_VALUE, "overlayOffsetX", "Offset the overlay from goggle- and hover- information by this many pixels on the X axis; Use /create overlay"); + public ConfigInt overlayOffsetX = i(20, Integer.MIN_VALUE, Integer.MAX_VALUE, "overlayOffsetX", "Offset the overlay from goggle- and hover- information by this many pixels on the X axis; Use /create overlay"); public ConfigInt overlayOffsetY = i(0, Integer.MIN_VALUE, Integer.MAX_VALUE, "overlayOffsetY", "Offset the overlay from goggle- and hover- information by this many pixels on the Y axis; Use /create overlay"); @Override diff --git a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java index 8db65d201..a3e2e4473 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java +++ b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java @@ -112,6 +112,7 @@ public class BuilderTransformers { String type, ResourceLocation particleTexture) { return b -> b.initialProperties(SharedProperties::stone) .addLayer(() -> RenderType::getCutoutMipped) + .properties(Block.Properties::nonOpaque) .blockstate((c, p) -> p.getVariantBuilder(c.get()) .forAllStates(state -> { String id = "block/" + type + "_tunnel"; @@ -151,19 +152,23 @@ public class BuilderTransformers { } public static NonNullUnaryOperator> bearing(String prefix, - String backTexture) { + String backTexture, boolean woodenTop) { ResourceLocation baseBlockModelLocation = Create.asResource("block/bearing/block"); ResourceLocation baseItemModelLocation = Create.asResource("block/bearing/item"); - ResourceLocation sideTextureLocation = Create.asResource("block/" + prefix + "_bearing_side"); + ResourceLocation topTextureLocation = Create.asResource("block/bearing_top" + (woodenTop ? "_wooden" : "")); + ResourceLocation nookTextureLocation = Create.asResource("block/" + (woodenTop ? "andesite" : "brass") + "_casing"); + ResourceLocation sideTextureLocation = Create.asResource("block/" + prefix + "_bearing_side"); ResourceLocation backTextureLocation = Create.asResource("block/" + backTexture); return b -> b.initialProperties(SharedProperties::stone) .properties(p -> p.nonOpaque()) .blockstate((c, p) -> p.directionalBlock(c.get(), p.models() .withExistingParent(c.getName(), baseBlockModelLocation) .texture("side", sideTextureLocation) + .texture("nook", nookTextureLocation) .texture("back", backTextureLocation))) .item() .model((c, p) -> p.withExistingParent(c.getName(), baseItemModelLocation) + .texture("top", topTextureLocation) .texture("side", sideTextureLocation) .texture("back", backTextureLocation)) .build(); diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index 89a7b4710..63bea93d4 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -397,6 +397,14 @@ public class StandardRecipeGen extends CreateRecipeProvider { .patternLine("SCS") .patternLine(" R ")), + WINDMILL_BEARING = create(AllBlocks.WINDMILL_BEARING).unlockedBy(I::andesite) + .viaShaped(b -> b.key('I', I.shaft()) + .key('B', AllBlocks.TURNTABLE.get()) + .key('C', I.stone()) + .patternLine(" B ") + .patternLine(" C ") + .patternLine(" I ")), + MECHANICAL_BEARING = create(AllBlocks.MECHANICAL_BEARING).unlockedBy(I::andesiteCasing) .viaShaped(b -> b.key('I', I.shaft()) .key('S', I.andesite()) @@ -527,6 +535,22 @@ public class StandardRecipeGen extends CreateRecipeProvider { .patternLine("SCS") .patternLine(" B ")), + SAIL_FRAME = create(AllBlocks.SAIL_FRAME).returns(8) + .unlockedBy(I::andesite) + .viaShaped(b -> b.key('A', I.andesite()) + .key('S', Tags.Items.RODS_WOODEN) + .patternLine("SSS") + .patternLine("SAS") + .patternLine("SSS")), + + SAIL = create(AllBlocks.SAIL).returns(8) + .unlockedBy(AllBlocks.SAIL_FRAME::get) + .viaShaped(b -> b.key('F', AllBlocks.SAIL_FRAME.get()) + .key('W', ItemTags.WOOL) + .patternLine("FFF") + .patternLine("FWF") + .patternLine("FFF")), + RADIAL_CHASIS = create(AllBlocks.RADIAL_CHASSIS).returns(3) .unlockedBy(I::andesite) .viaShaped(b -> b.key('P', I.andesite()) diff --git a/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java b/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java index d542bfb31..c1279fce0 100644 --- a/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java +++ b/src/main/java/com/simibubi/create/foundation/gui/AllIcons.java @@ -100,6 +100,10 @@ public class AllIcons { I_PAUSE = next(), I_STOP = next(), I_PLACEMENT_SETTINGS = next(), + I_ROTATE_CCW = next(), + I_HOUR_HAND_FIRST = next(), + I_MINUTE_HAND_FIRST = next(), + I_HOUR_HAND_FIRST_24 = next(), I_PATTERN_SOLID = newRow(), I_PATTERN_CHECKERED = next(), diff --git a/src/main/java/com/simibubi/create/foundation/item/CreateItemGroupBase.java b/src/main/java/com/simibubi/create/foundation/item/CreateItemGroupBase.java index c633efcbd..24595ff0a 100644 --- a/src/main/java/com/simibubi/create/foundation/item/CreateItemGroupBase.java +++ b/src/main/java/com/simibubi/create/foundation/item/CreateItemGroupBase.java @@ -56,8 +56,9 @@ public abstract class CreateItemGroupBase extends ItemGroup { Item item = entry.get(); if (item instanceof BlockItem) continue; - IBakedModel model = itemRenderer.getItemModelWithOverrides(new ItemStack(item), world, null); - if (model.isGui3d() != specialItems) + ItemStack stack = new ItemStack(item); + IBakedModel model = itemRenderer.getItemModelWithOverrides(stack, world, null); + if ((model.isGui3d() && AllSections.of(stack) != AllSections.CURIOSITIES) != specialItems) continue; item.fillItemGroup(this, items); } diff --git a/src/main/resources/assets/create/lang/default/messages.json b/src/main/resources/assets/create/lang/default/messages.json index c9ecf6c6e..18eb79e92 100644 --- a/src/main/resources/assets/create/lang/default/messages.json +++ b/src/main/resources/assets/create/lang/default/messages.json @@ -53,6 +53,8 @@ "create.generic.unit.stress": "su", "create.generic.unit.degrees": "\u00B0", "create.generic.unit.millibuckets": "%1$smB", + "create.generic.clockwise": "Clockwise", + "create.generic.counter_clockwise": "Counter-Clockwise", "create.action.scroll": "Scroll", "create.action.confirm": "Confirm", @@ -147,6 +149,12 @@ "create.contraptions.cart_movement_mode.rotate_paused": "Pause actors while rotating", "create.contraptions.cart_movement_mode.rotation_locked": "Lock rotation", + "create.contraptions.windmill.rotation_direction": "Rotation Direction", + "create.contraptions.clockwork.clock_hands": "Clock Hands", + "create.contraptions.clockwork.hour_first": "Hour hand first", + "create.contraptions.clockwork.minute_first": "Minute hand first", + "create.contraptions.clockwork.hour_first_24": "24-Hour hand first", + "create.logistics.filter": "Filter", "create.logistics.recipe_filter": "Recipe Filter", "create.logistics.fluid_filter": "Fluid Filter", diff --git a/src/main/resources/assets/create/models/block/bearing/block.json b/src/main/resources/assets/create/models/block/bearing/block.json index 4671586a2..5fe9ff4cb 100644 --- a/src/main/resources/assets/create/models/block/bearing/block.json +++ b/src/main/resources/assets/create/models/block/bearing/block.json @@ -3,7 +3,7 @@ "particle": "#side", "gearbox": "#back", "bearing_side": "#side", - "brass_casing": "create:block/brass_casing" + "brass_casing": "#nook" }, "elements": [ { diff --git a/src/main/resources/assets/create/models/block/bearing/item.json b/src/main/resources/assets/create/models/block/bearing/item.json index 88c82ddb0..c5b343fbc 100644 --- a/src/main/resources/assets/create/models/block/bearing/item.json +++ b/src/main/resources/assets/create/models/block/bearing/item.json @@ -3,7 +3,7 @@ "parent": "block/block", "textures": { "particle": "#side", - "bearing_top": "create:block/bearing_top", + "bearing_top": "#top", "gearbox": "#back", "bearing_side": "#side" }, diff --git a/src/main/resources/assets/create/models/block/bearing/top_wooden.json b/src/main/resources/assets/create/models/block/bearing/top_wooden.json new file mode 100644 index 000000000..05a0397c7 --- /dev/null +++ b/src/main/resources/assets/create/models/block/bearing/top_wooden.json @@ -0,0 +1,10 @@ +{ + "credit": "Made with Blockbench", + "parent": "create:block/bearing/top", + "textures": { + "bearing_top": "create:block/bearing_top_wooden", + "particle": "create:block/windmill_bearing_side", + "bearing_side": "create:block/windmill_bearing_side", + "brass_casing": "create:block/andesite_casing" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/sail_frame.json b/src/main/resources/assets/create/models/block/sail_frame.json new file mode 100644 index 000000000..da4b090fe --- /dev/null +++ b/src/main/resources/assets/create/models/block/sail_frame.json @@ -0,0 +1,143 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "1": "create:block/sail/frame", + "particle": "#1" + }, + "elements": [ + { + "from": [0, 5, 13], + "to": [3, 9, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 8]}, + "faces": { + "north": {"uv": [5, 9, 8, 13], "texture": "#1"}, + "east": {"uv": [2, 9, 5, 13], "texture": "#1"}, + "south": {"uv": [8, 9, 11, 13], "texture": "#1"}, + "west": {"uv": [11, 9, 14, 13], "texture": "#1"}, + "up": {"uv": [0, 0, 3, 3], "texture": "#1"}, + "down": {"uv": [13, 13, 16, 16], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [0, 5, 0], + "to": [3, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 14, -5]}, + "faces": { + "north": {"uv": [11, 9, 14, 13], "texture": "#1"}, + "east": {"uv": [5, 9, 8, 13], "texture": "#1"}, + "south": {"uv": [2, 9, 5, 13], "texture": "#1"}, + "west": {"uv": [8, 9, 11, 13], "texture": "#1"}, + "up": {"uv": [0, 0, 3, 3], "texture": "#1"}, + "down": {"uv": [13, 0, 16, 3], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [13, 5, 13], + "to": [16, 9, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [21, 14, 8]}, + "faces": { + "north": {"uv": [2, 9, 5, 13], "texture": "#1"}, + "east": {"uv": [8, 9, 11, 13], "texture": "#1"}, + "south": {"uv": [11, 9, 14, 13], "texture": "#1"}, + "west": {"uv": [5, 9, 8, 13], "texture": "#1"}, + "up": {"uv": [0, 0, 3, 3], "texture": "#1"}, + "down": {"uv": [0, 13, 3, 16], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [13, 5, 0], + "to": [16, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [21, 14, -5]}, + "faces": { + "north": {"uv": [8, 9, 11, 13], "texture": "#1"}, + "east": {"uv": [11, 9, 14, 13], "texture": "#1"}, + "south": {"uv": [5, 9, 8, 13], "texture": "#1"}, + "west": {"uv": [2, 9, 5, 13], "texture": "#1"}, + "up": {"uv": [0, 0, 3, 3], "texture": "#1"}, + "down": {"uv": [0, 0, 3, 3], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [3, 6, 14], + "to": [13, 9, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 15, 8]}, + "faces": { + "north": {"uv": [3, 6, 13, 9], "texture": "#1"}, + "east": {"uv": [0, 0, 3, 2], "rotation": 90, "texture": "#1"}, + "south": {"uv": [3, 3, 13, 6], "texture": "#1"}, + "west": {"uv": [0, 0, 3, 2], "rotation": 270, "texture": "#1"}, + "up": {"uv": [3, 14, 13, 16], "texture": "#1"}, + "down": {"uv": [3, 14, 13, 16], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [0, 6, 3], + "to": [2, 9, 13], + "faces": { + "north": {"uv": [0, 0, 3, 2], "rotation": 270, "texture": "#1"}, + "east": {"uv": [3, 6, 13, 9], "texture": "#1"}, + "south": {"uv": [0, 0, 3, 2], "rotation": 90, "texture": "#1"}, + "west": {"uv": [3, 3, 13, 6], "texture": "#1"}, + "up": {"uv": [0, 3, 2, 13], "texture": "#1"}, + "down": {"uv": [14, 3, 16, 13], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [3, 6, 0], + "to": [13, 9, 2], + "faces": { + "north": {"uv": [3, 3, 13, 6], "texture": "#1"}, + "east": {"uv": [0, 0, 3, 2], "rotation": 90, "texture": "#1"}, + "south": {"uv": [3, 6, 13, 9], "texture": "#1"}, + "west": {"uv": [0, 0, 3, 2], "rotation": 270, "texture": "#1"}, + "up": {"uv": [3, 0, 13, 2], "texture": "#1"}, + "down": {"uv": [3, 0, 13, 2], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [14, 6, 3], + "to": [16, 9, 13], + "faces": { + "north": {"uv": [0, 0, 3, 2], "rotation": 270, "texture": "#1"}, + "east": {"uv": [3, 3, 13, 6], "texture": "#1"}, + "south": {"uv": [0, 0, 3, 2], "rotation": 90, "texture": "#1"}, + "west": {"uv": [3, 6, 13, 9], "texture": "#1"}, + "up": {"uv": [14, 3, 16, 13], "texture": "#1"}, + "down": {"uv": [0, 3, 2, 13], "rotation": 180, "texture": "#1"} + } + } + ], + "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], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -1.5], + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/seat.json b/src/main/resources/assets/create/models/block/seat.json index 2f23ff9e9..7c162fe22 100644 --- a/src/main/resources/assets/create/models/block/seat.json +++ b/src/main/resources/assets/create/models/block/seat.json @@ -20,5 +20,37 @@ "down": {"uv": [0, 0, 16, 16], "texture": "#0"} } } - ] + ], + "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, 2, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "scale": [0.5, 0.5, 0.5] + } + } } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/white_sail.json b/src/main/resources/assets/create/models/block/white_sail.json new file mode 100644 index 000000000..413810a92 --- /dev/null +++ b/src/main/resources/assets/create/models/block/white_sail.json @@ -0,0 +1,141 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/sail/canvas_white", + "1": "create:block/sail/frame", + "particle": "#0" + }, + "elements": [ + { + "from": [0, 5, 13], + "to": [3, 9, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 14, 8]}, + "faces": { + "north": {"uv": [5, 9, 8, 13], "texture": "#1"}, + "east": {"uv": [2, 9, 5, 13], "texture": "#1"}, + "south": {"uv": [8, 9, 11, 13], "texture": "#1"}, + "west": {"uv": [11, 9, 14, 13], "texture": "#1"}, + "down": {"uv": [13, 13, 16, 16], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [0, 5, 0], + "to": [3, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 14, -5]}, + "faces": { + "north": {"uv": [11, 9, 14, 13], "texture": "#1"}, + "east": {"uv": [5, 9, 8, 13], "texture": "#1"}, + "south": {"uv": [2, 9, 5, 13], "texture": "#1"}, + "west": {"uv": [8, 9, 11, 13], "texture": "#1"}, + "down": {"uv": [13, 0, 16, 3], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [13, 5, 13], + "to": [16, 9, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [21, 14, 8]}, + "faces": { + "north": {"uv": [2, 9, 5, 13], "texture": "#1"}, + "east": {"uv": [8, 9, 11, 13], "texture": "#1"}, + "south": {"uv": [11, 9, 14, 13], "texture": "#1"}, + "west": {"uv": [5, 9, 8, 13], "texture": "#1"}, + "down": {"uv": [0, 13, 3, 16], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [13, 5, 0], + "to": [16, 9, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [21, 14, -5]}, + "faces": { + "north": {"uv": [8, 9, 11, 13], "texture": "#1"}, + "east": {"uv": [11, 9, 14, 13], "texture": "#1"}, + "south": {"uv": [5, 9, 8, 13], "texture": "#1"}, + "west": {"uv": [2, 9, 5, 13], "texture": "#1"}, + "down": {"uv": [0, 0, 3, 3], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [3, 6, 14], + "to": [13, 9, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [11, 15, 8]}, + "faces": { + "north": {"uv": [3, 6, 13, 9], "texture": "#1"}, + "south": {"uv": [3, 3, 13, 6], "texture": "#1"}, + "down": {"uv": [3, 14, 13, 16], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [0, 6, 3], + "to": [2, 9, 13], + "faces": { + "east": {"uv": [3, 6, 13, 9], "texture": "#1"}, + "west": {"uv": [3, 3, 13, 6], "texture": "#1"}, + "down": {"uv": [14, 3, 16, 13], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [3, 6, 0], + "to": [13, 9, 2], + "faces": { + "north": {"uv": [3, 3, 13, 6], "texture": "#1"}, + "south": {"uv": [3, 6, 13, 9], "texture": "#1"}, + "down": {"uv": [3, 0, 13, 2], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [14, 6, 3], + "to": [16, 9, 13], + "faces": { + "east": {"uv": [3, 3, 13, 6], "texture": "#1"}, + "west": {"uv": [3, 6, 13, 9], "texture": "#1"}, + "down": {"uv": [0, 3, 2, 13], "rotation": 180, "texture": "#1"} + } + }, + { + "name": "Sail", + "from": [0, 9, 0], + "to": [16, 10, 16], + "faces": { + "north": {"uv": [0, 0, 16, 1], "rotation": 180, "texture": "#0"}, + "east": {"uv": [15, 0, 16, 16], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 15, 16, 16], "texture": "#0"}, + "west": {"uv": [0, 0, 1, 16], "rotation": 270, "texture": "#0"}, + "up": {"uv": [16, 16, 0, 0], "texture": "#0"}, + "down": {"uv": [0, 0, 16, 16], "rotation": 180, "texture": "#0"} + } + } + ], + "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], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [-90, 0, 0], + "translation": [0, 0, -1.25], + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/bearing_top_wooden.png b/src/main/resources/assets/create/textures/block/bearing_top_wooden.png new file mode 100644 index 0000000000000000000000000000000000000000..f9977a98dbe41cc77c7848a5761ac406fa2bc023 GIT binary patch literal 516 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%Lgr0X`wFD_5?Z+TU-g$ZsIWXRRjatRvzdq~Y(P7;GUG(>$X`w#tyJuaUv`naxLqW9(A|Ham8`rKJ=_;7vT=dBRluPSyk5$HVzPgg&ebxsLQ E0IeLvssI20 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/sail/canvas_black.png b/src/main/resources/assets/create/textures/block/sail/canvas_black.png new file mode 100644 index 0000000000000000000000000000000000000000..ad17781fa04c9883ddcbd0963f6796f631c686a4 GIT binary patch literal 459 zcmV;+0W|)JP)w3>PE_;GOcE0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOMM*?KR5;7Ul0QqsP!z>~ktEO6%bV(!hIxI3-Q%pDGspyY@kCN(xUNGqo8t*l_KNa^Aezl_U1!;siVqD}^1re2oofI9002ovPDHLkV1m1v Bzh(dc literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/sail/canvas_blue.png b/src/main/resources/assets/create/textures/block/sail/canvas_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..f58f9703014a90fbd822fd55b5e6d9dbbacccbcc GIT binary patch literal 485 zcmVw3>PO5*xWe@0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOUr9tkR5;7Uk}*reP!xr~q}f6`v=J(8=x7m2v7(b8I2F4H zoy0%mU+_nC5{io;6a>Mwg1BUrCbXcbkVm9T-*ZTlrrPSz!2_2A_uhBkeeWEtbM>nD z2mv@YyWBtR(>`*!dpjeG*47QTk2Ox310JFa0F>ur@DZXsAArD~pqm!naEN;Mmj-y# zA-Z`$5KPjVj08r~AS1!^XczJe&LUgWw-SH!Wl&$nq*^Rvsn7l;y}pZy&kT?H+{jyVe~BP$K^9+1RIU_h_FAw9e&= zQl9_o&FeOikw9ld{Qm%>wRM9x9mX=Ql5YhP87q6v<}w;5%>h9W8%a|BQ%23oFB>V5 zF|l*5RAx5z$(71K*3Q;e%Gjv(Q6fw^8{ccG3Ww3>PFG6iG+T0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOh)G02R5;7clg(<|Koo^P+Zr=i1D0(yj!Q(-ZUW6Bm~M)f zg}y}}rklP^pQGClN{mAw1XNID97hf_@(_u%i&j(FX-ep-2QC-x-yF`J+xYzH!*{bT z0a$hSS)82^jVH8|Q|h=I9TFdZAv`#uySfA*&2l`mE=jW-08=heQt&N~@pZm2z?3mc z3a+o0*k3tq3z}7dwgu_=Y{S>Bo~y%Kb@wsll6f*?r{|-jK#c;nQN@NYpOI!cjW8m7 z(Z^eyouH&}&Ds_yDfkn7DKNHR7<4fDis|``W;C8))GqTI^Yf)gngNV0oOnj<^5)%p zymoSmuXA>KK2Jr(AU=+Ni}&pjx9Zg=6sg?F6s8y2R?7SEB%3D;Nfy2egMl$9bc# zSS+^I*a#zxEu630cFu{IX1P04~}UsinvHJ27|tf&2J1p04s;@`gIVS Qb^rhX07*qoM6N<$f*hgW+5i9m literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/sail/canvas_cyan.png b/src/main/resources/assets/create/textures/block/sail/canvas_cyan.png new file mode 100644 index 0000000000000000000000000000000000000000..d4828a95e6eacd8f8ff287adc0ce4daca6be4852 GIT binary patch literal 475 zcmV<10VMv3P)w3>POSU}2mF0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbORY^oaR5;7UlFMqsP!NW{qY=Dh5tCAaXqI*7!Urh$47${( z(_MAfZJ|%#!kwEek{~4*QAndGa=M5K@zNVz^oPU1%$%8j{u%N3^en|b0-(E?G8P(x z(t(lIB#Zuf&Tw0xC)Z4B?bx~TQN%uijSoN&tPoZm&zXU!o)z$17h$ys92+WezKlYY zBtb?YFR0`)Hj8X5pYbc*#grge#R+%!h_XuFQn^Ip%RiXN)f=6qjbZ30W1%6eI=LuB zlvU)(-b7J_U5L<4Udt*+$3_{H4tUNire>+1e+JmaVw3>PCY@Y(EB0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOSxH1eR5;7clFds3Q5400hA@r`KjuLY&MeyqwsE0CQ5#*< zMqIR!qLqs_{Z(xvS{ChsXlsAMB!cjC#)WU*$`&%u(d+}9h`bc^?B129mUn6k#9%kP1Bq6OFc_0BIEIr*YP)+Svmkv~agY)op8Mnr4wh}RYnNC@-1Cb2Oed1# zs*4Z~sgvgE+_G)7QY3j3tV|Xi%?yu*19rOY2KBNa3>LVo835CXq+S+WU!ARb z@YC?7OSDq#uqFP%f@aNIG4U^mP3*QC+sByhv<{GRym%y>Ut_c~+2tc0?Jr}DUo%$} zOed0DQG7W&scnq$xay*#nc-xuYsSR*iL_D(;V>Ewa6QlT;&MHY(Qtqej_E~_;uEFo V>%r3bN;3ce002ovPDHLkV1hjs$+-Xk literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/sail/canvas_green.png b/src/main/resources/assets/create/textures/block/sail/canvas_green.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6a29a9327508b20c60f22e6b2bc7c9181ce202 GIT binary patch literal 449 zcmV;y0Y3hTP)w3>PLDxErwS0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOJ4r-AR5;7UlQB-iKoCXWIF=lxNMS3Tm(Zo4NeZf@2Ck6{ z&?IG2g$ltHI1SX$Qc>7lWEU%0!iBvQPS!Sr2ni&SR%12JFFO7Io z$!YLGctBorxh-(lqZx4&RSE{3?~BLLCF zc8DYO2R1I%ge0jJiQOU{wb82;1ZRG2quuSkV06WwWw&yNY@GLokk{NiUvk!k{YT0T rLEuwv3qqxAY=1(fD7OVc;J4x*Fv`R>V=B*T00000NkvXXu0mjflKr$+ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/sail/canvas_light_blue.png b/src/main/resources/assets/create/textures/block/sail/canvas_light_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..4e751103ce2217c1be69d04906cc18b8757616b0 GIT binary patch literal 488 zcmVP)w3>PQ@to>Au0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOVo5|nR5;7Uk}+!nK@f#M!-7XnxZuUucu8SlWswvnNFaqp zigc;+2U6r$?u@?F~w1B9O~2Oim0nH&9s z*!@d$G3$H3-n?y-U@~Wq9r6DIM4?lo=QvA!H^{dMp^O>J+FeFb9My5{ZzEy+DWgbe zt40cC4DGC?4dlQ>OB+AdR%;t&%-K}}Uq)Gt^;)DtXrf>;$261p-60vvinuT`mWAIP eVwy>XmwW*%-}R-YP&g|90000w3>PC2%eTy%0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOWJyFpR5;7clTT~oFc8ImF^UvcwN2yX5E^4x*wcRA-OGNi zJrx#$Qxb68;3R^~B(yyQJLz8vd+7u5;LT|CG#d4O{r>ZK5CI@M&RI2c5?ZRj1BjItqS)mWS_NQ~f|L*&G7!P)_; zd*V1n)$#AHBFZOyG|brSHURH#22kAtu-!IjnDO&Rh6#F&_0g+4e}vXSxey}$6JMZ! zx9ew3{0!PA=94~Axj0~bL2{LJ1N9!P9du2!zTod|O*BfibMVm&w9jbmpmXs3W`KDx zQ>>2}`_t)dLL8^BY{zlhv8rR$T>J%q-f@Yl>-aOVDC`;M1&07*qoM6N<$f?zn-4*&oF literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/sail/canvas_lime.png b/src/main/resources/assets/create/textures/block/sail/canvas_lime.png new file mode 100644 index 0000000000000000000000000000000000000000..1585e226d959ce8efbb37fa328aa6bde3d7681cb GIT binary patch literal 479 zcmV<50U-W~P)w3>PK`LKKaU0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOSxH1eR5;7Ul0R$0P!z>~c?6i(u7_*kM2tz*iS^+li9BC@#Gu z6X?Z(BooB#I-&DQ-jpE&b#uBrZLoMV0d(CMq2vR|FWYMxMw1>C8GHW?W zCaCf;IEKb%t4fa7649OcxC4hgz1$7!#ASfZb~o%G)o=$6y@iAJ^xjwV^!J}nb&_NP z!I}8~2Xu4nrBM4HB=E&ww%JXB?I}?v+zeowoKVx(Zt?Zy>*S}*d*4b+) zf>gt6sDrkv-q9GFBa6*em0Yc#UYSC%L`f#FZHss!57UV V-I&TED7pXu002ovPDHLkV1fZF$mIY4 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/sail/canvas_magenta.png b/src/main/resources/assets/create/textures/block/sail/canvas_magenta.png new file mode 100644 index 0000000000000000000000000000000000000000..519227c885b1c0f37c3ab31a95979fa00aa01f82 GIT binary patch literal 480 zcmV<60U!Q}P)w3>PRn^Z49`0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOT1iAfR5;7cl08eqP#A@umc*uoNNJWJ21KDthvMMiV8N|R z2Nx$N|C7I==%UcYxr;*zwS$X}ap-cxC4uxN8S0>kNewEvc;Is2z8}1tb87PPZmp6S zfSdlD!PLPW`ivgB6frq|=IFk|bl`EmI0QgO0h&r;WE21(gpZ*g@alQU$Sy5-^*l~= z8zKC>U!@7P<;C?{Mgb~KkgJe()6BVuV$I&R@&(#We~u77r?Y+9O%p@k!qzP|k^Swp zc92oXZEt~Pb*Md#uGWUWg-R2OTm?gKpwc+!Wgw`#L!WWiMXth+rt0DMlj9HZLdIQ} zm$S62!FR(|m#8$M&L8m)7EF$xOCtUTnTYPt|GSOabl`mk3G+uA4ZTqgQf6Zo&34N~ zMj`E%`Q_|ltw3>PH|7l@+q0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOWJyFpR5;7cl08eqU=)R)+9ajXSV)Gp(2Ool9ZKmaiqb)J z=py3cpYaDc7rMGQ=p+;eogAE9x(F2vLIN>qO1`LrO`6s!f{O<(2kzm$-1pp*v(EP> zksAPTA+|Vpx}o3baA@C>#Z_sC-N#F=H`^SA4*>XvhY+~|zTp92$`*M=;$=9*_q@3Q zFYiP0iiBxesTMl{xwo^eiEntsPJnNWDO8FnXOY$9jZ!*5xDZ>Ivc>V>jzXnKUXhR$ ziA5y6_3A4A>xf>tiKeUMo=@wOydn`h0a;!KVNE1*!<4;&%}T$~p)1$%jWNKtj{zb# z{QS=Ah^}1ce*a|NgP$HR+az`ZR`?_S!GNpM&YX$AL1JRR(fRush3m~Wra2ALFU}~e ziL)SWtFtpE(JV}pR;aFiSv#vOJ!7xjByz))v$d$DCMF?@od8W!@dh?ET~B*S)pQ+i gV54bj+Kb$f50IwzKY%`y#sB~S07*qoM6N<$g5wU+iU0rr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/sail/canvas_pink.png b/src/main/resources/assets/create/textures/block/sail/canvas_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..ae89cc05bf5919998c70dacfcbb9ce222d1275d4 GIT binary patch literal 502 zcmVw3>PRIR`O}>0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOa7jc#R5;7UlQB!fP!xr~N+Kpu2uZ=Efi87WFkKwF=qTua z@}Ic(546xF(5_wTpo1=jWRW(np~3gWht#2_O>3)yg9jc5?z!B1-#hn}?puSoeo+AQ zMTa13@Ob#d*}(-x3|@O2J=eJ_4>@OR zZGSGu({DTPnnX**9)HCD7cd5|J>oQ?nFU+z+lJi6s_#?k-L&RK`+j3%&a)`SxGN7y zlEor{_oI!bZLJom=B{ka6YPqMoCxfS`(^B+w$;Y)EksMTw3>PU6%U2n40000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOXGugsR5;7clCf*TU=YQBriqj&g zTIc?0{R4zh-ao1mAPLJ+u_LproZWtiz9 z-B?BRqy80|cvK2mfvudqwr%C4EYBv3XlISbbr*@kl(*k*E;Z2?FBMrS-HGd j;H+F`wwz#D#Z3GiUmM>n2s2rZ00000NkvXXu0mjfw3>PFZznFTI0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOM@d9MR5;7Uk}*reP!xr~G><^hED2pgU)K&rTofx(=ve69 zv2^U8@P9apIJp!D!BOxRbnI%%TO?URh_nfHNRvL>S_B0TJTBaG?&Z9Dukm|{qB{}2EmAy7lu?JyHLId*Ai_bHI0#XbDV`;;O-g}|B6oHyPz$K^ zThv?!w3>F6fQ7vcq0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbOM@d9MR4C82Q9VloK@gpI7q}Gy**kJEngc-uEd)s+M8saP z69jvImQ4x~go6k{TNO1zg7^b$j*Na166Fpv3Q-ekmcS0e&I zcyd_X*m}6X+TPiR51ciQS1X&%>+{{c0{~D`+8R+w2>?P!=CDo_QA+4UQFWaOAxT7y zneNl0k`gucmCAEYY#NMMD$P=ZH9t4qZr%9BAkR5-ST2{#+F28n7JPp&9Mr>_c`fQCT|Ns<5nZ5WUB=MCxE={=}%3MRz=H(1My z1#|Qtb#(M-)Sukem8BVaoSn6QH7ZFGhcTsOJ*>SB#k;NacFtX;Bw3>PIQQdj7I`oXJF_#)&U-6nZ`T^7 z0O$@X+#bEqTQ<2oeJ6?ju+G)N6PipF}eESvrmzq`HF&QhMAUzM}IMI%A?sCO;9ybj3!@ zJX%hTY}Q7|hcm4+CL&NI{Z^z+Sg6<=qX|ZD*`z%vBc|cIel3Qu7!Wg$_Mpt8b+^8Q zKa00aA_9fMp7{R;ss6Ce*mXl1OS|nLqOnjc?oVT?GjAZBP)Ou=pfPPGgmnH*VUi&%(1QlQ9YZH&<*T+S*MS)o|O7)?U`uVMs>FAP20 UT~KbQ>i_@%07*qoM6N<$f;yeSk^lez literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/sail/frame.png b/src/main/resources/assets/create/textures/block/sail/frame.png new file mode 100644 index 0000000000000000000000000000000000000000..89f2270acc8793eebe773bc68ae5c475713ac6a1 GIT binary patch literal 718 zcmV;<0x|uGP)w3>F*%VG{k=0000PbVXQnLvL+uWo~o;Lvm$dbY)~9 zcWHEJAV*0}P*;Ht7XSbPNJ&INR5;6RlTB;eKoEu>*-|XYQqYG<5RF5=2n0jPrEPi% zA@>&g3kv-${RzF6o_gw`*FqtOUYgR23AiDlbxm9_Nh8VFv9yk5)I%&K3VkoTJ3I5v z%sac%r#CNCX88K2!iv#jSZT2BTmTToQ*^CNGg!bJx9D7XJY5=RA(Y}t1c0uUaa{+i zs-o#t{K1eYp5`Q)Ud5`axUQ4?1IQUu6i?Y|>`1D*ham)(y~|yc!w^+{gdqge_Q$+x zxp{8mx(-{79qG7rn9AqhP*(Su92^t~l+}GEzYjpz^8k(X55Kkg5XLqMDsH#d`{)K4>jGFQbAqL5KjbabtJ)BlVpgAjtt zxrfBb2zlGNAd070_Ab63&`!=cmn%$?vqDg2^W_SbZBuXmB$gxOOlbhuby(AuQKUMx z>#)#*GFPXbj!9xCw*i#0aok7NLbm@O`Xhn#5l}S zbyG#JA5dxr3pawy95u^8vy4La58su1|M`arKv&veSZN@=d;Ki+EGH+(9PgjAiDYX$ ziRh06rOuVdY3!jXI_|uAE9ksgu=#^wfux(P)4B4Hw--YoMAuBl-gBw8sv?9yvu(7j z0-zs;NUBO%2>g@xsX6}3=8}VaSK;H*ZPLAl0ZXZ`-Kc;qlL^oMyQ`2!h zlPI3v{zd@b59sv+;%JlyTU8aSs^&J|4+^9F2a?+aSu3j*D*ylh07*qoM6N<$f*w>p AEdT%j literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/windmill_bearing_side.png b/src/main/resources/assets/create/textures/block/windmill_bearing_side.png new file mode 100644 index 0000000000000000000000000000000000000000..942e1dee83fdbb9d461852cc72f0d96cca6e5c1f GIT binary patch literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%LhP0G|-oZQHi>_4S!5@*BwU<>%*Hs|orWNd#L+MMg$isR-I>3VG^_J86r= zCB!GEB}c_Zb@unSb+p&iH#D`j)HgL%)>JmNx0O|v*SEA4l@(Rj)wi~{g@i{Wrl-fo z$F+5KSJc%_oIGj9?754VF6r)_(=}njidDO^a`Prkn%LUW<>Ka3TwWZ#)5iel9?k-f z$YKTtzWpG~Xu%q+0uEalo5p3$$E!1Sdqg~wBc<$z->;@x8k*ELvpFiVX<+<*< zS@y(BR?-RivWzAKWM(Nna8vvwQ3-n3!Xnxm_Nu07I|+<8{~-f!Mh z7pE;`rKf8Tqa WaP^P<-10yVFnGH9xvX+X*>C`Gsxrhwp)LuZ@>}K4|?2;{b`E^h1Gp7nA3Aua9^yb zp^I9Qi!5p-@tik2b{#=tFCR1NErK!EO$=!H;^& zJ9MpYTvV}^tIXa{F`drj{`%(Ix3&UO;o_nnCa?N=s3PxD1b25zRboh0a;29h>#cgg zU0Gew^zvm=oj0S8R@S7!A1hCz9))#pK6@Nf`bqzgiobb4U=c7%YA ztYA`wYJ3uB5JE)z;FkpEyDXZ zd+HX~U=IO#_98719jH@svb*6)I&%x77RHjMBD-jjc}JhAb+{X!!x_qu)f2lC=0Orgy8aO#0-12?&BDxd3cZ=ozd#YNE8 zHH6w9S4neoY6<^vZ6W#K92_o|C*yR;>>;XO?c4!zo#Bo{ykSY6U zE0!q_r|n8~Uu8lv9!ZI~5$bJjv_Je^a1GXF%CXw(w}3$IqV3_YX^H=HSN3J0;3fE?s<&%nV?2;#Y>22+b!MqmL_XK$(iDuufOX33jcaMOPRaoFNcs zd# zuS=O8YTa5?g73j$AB4h^oj%0NLp{)7BgT<$Nb}F|EAmuJt-BO~d>^N$3(g`FxS6PStfYh9QI->rzbn!bdr%BLp|x?0*X@#0 zIB=C!xS0<(bEv)idxn4Jg@A?@wqs@j+uyhv-~|H zhI5PV+pl5vv;|L(S>kw$6Lyo8iGCWm*vcDcX%XFjP%gx_HljR^bcN=Mg zxh2ExD|yMEEEl%5aNR`Pi!yR$`IvFr*7gq-tgEMX8FAx5(1H6jMlIB zFE?e=T+ijx_jUW%>k$*MXbB46Q8A(jo8h%!&hEEogwswY@kC9@Hd#stZr4jBhNaQs zgwU>twY&BxX33myO5R3#yt34h#yLA^OVh#oh%H5pTKbsKv@Bsca*B**Y)RF|chK`! zg7)k@Fz-gwvpc~y!#BsCp29o}>n#c1P0gDoX%w|NCH2~5cK9YJhlNfl!#?pt;TB5H z8++Ay?U1a^hC%QguxItn;&YAH>4m*WA?&St7`-sr(woL5aCrfVY_rLt zb>Mp|lM>U;LeiKH9@gAK8Ru||)=Y z)PL$PWuM4<7A3d!NGi?G%nZ~;EpDyE*Y!z*o&qcBrpql^YFNyzWr&@-GklEFh1{U!4;Oz_l;C zP@{j(o@*}fORCC|7K%-5t4IHC%i!F~qPGZA%lEcKmt2DVbPG10&4qw*1<-&Ddgb%HZX=1 zy*Pl7k+Nmuf2v5Oi+!pSRx28kn3aY31q2Ypzf9ba9x7IRct~5bG?M>PgqrfI7I`qx znsiET@zYH1BSDzec_uJZ$nEN3E(( z$kPcNu<|mhkLVSnhKpy9qxqh@WZR2?#f$um0F3y<51B!hZgiW3b$pGj5O{lsp~Yw> zlnb4Q+V@;uV}#mHk3$cu0+F{8G*SJBo4aeGk@d-8&&;88lmY2Z3!B~OqIMonIw8xx zjSMX#)mj9P1kkA&4et&C$CR7)kf#HS29;g)A_#Z~{g zLnX_1<#>NNi9z#!oiD^}ImpfVR%jCt6S1#Tw{x-^)bM5yYqE8tXVV2@@<+=<^7|2bP_V7g)4wNFQJN=4@dGf* z-CtZ;=NEs_!&9hUicqF81Y11J;XDGX0h(HQ?gjv>W{|m2b;8aGFp`kQl{WJr(bhFD zwah@WF+=hs!hsEX>`BDctty4!$-&hRQ@+zt-s-{~ z%Wrr0KTDZA^=l)9K9Oc)tf-g%}<2;>^GmdDKb?I*sP_waHNFa@!q9 zcoNp%G;{ultKZCYe^4!6aC0n)Y=8VW+TS9d-bZ8#SxRoqA~3ZcINB9GOFSIO5TE3c zdYpR<8LtP{Q}}YZ{EDw`ik1&{b9PhB#Tb)ob%P@}-xj}1A#}XU%<<4PW5=+$JI2>& z)OoOdu>l<-tlgI4*(8kv!3qZIA^kM*l(wZfB*qzlz$V5>MQVvamI zsGootCb>uqPfA4Mf(AT;6O9mbSzSwd<-JBrY`8(szt7OK%|ll#Sz?BKd#8G#%X4$S z7KXS&@JA;XWADhmhRWyxXYgB}`1=OvshZfW;^fyHv5gKf-F@&bug0RI z+!S-k;DCI$LpNUQDtHFZ&wqnpyN&X^leSi2#`Iekp+FiJUD|p@U8uACb$9g%9!VDu zdoq-Yi>bQ<54Fk-Lm@&rCIQ>@6NLJhzU#adWFlMOqYjfi%>%E7{t)O!ayravaCU6i^&sjIi?)WxAF1u5IzhmTl|vZT_@an z$0S+ZA;Q4_)T6M|Q?7wKI~P3WVdsdga(19W(<(#6lyBSm zjtUkFE{lb-U(FvL25pq{7fWMv=KRiNV7nIj#0lC&CH0}D{dOZvPQrsTjP>Q3tesjZ zX>XVxIia}oN^m=d4pL-0HU-!!S+Bx zOM*aP-54yp^pMj)XxKFrsWOX?x!E4LKMq6h2~>VE^I(eO#B8n$xLF_>CbQ%DRuM+* zm>RNVL2TZ*yKI4*fbXw~!3wU5BSGHT$jY+zOZ*`LdHubNvJ0AzT~!T$eHwrhK(Jid z4zSRZYCu$`5x_Fn048`QpiZNgvYF@zrUAFwYHT*G=A_^cU$!PNu>-84LO{#3_Rs@w zqkMEDmtF#el}as#)(d$u*_G;K#8sEupaa5b2+mZAGWunrGgysfdS|3H97EU!^8z}D z7b!sPMqllVro|;@2#p(iHvr5j3V;hbBsuZ0a0hFDApo$Yd-qK2_-@aCb+`awJ5$Zt z%c54?h#e~C!N%J~@9!<=&IK9U&ua;R_?Ubn9JyWn;pn5*4bK*JlZ@3&+Ee`t0o+8? z>JBGo`SAA=joVPS#v-A#v({BBa9>xQCbYSZdVG|WqB1una)mz;vmhiWsPoSnrp+0- zVdIYGzzQlh++ue_++fNNZw86Hd-?HKo}e*;3_md0%2JFwl$y9X8>zU6SKSlWs03xD zM}jK-uxa?RG@_u%>DXX7ZC2a5qAg|P#`Crc-+%k|`@OLRjRjt`w?VKnbKrk z8^^L|e~37{tmdG#iZE-5l}u%rjbXpOGCDKr2*z5VIyHf)fFUCsg{e$HDn7SJ#zvbz zwDt(SA=M-j)FE1Y0sX3`+AOEt6#+|*~issQlwkP zDlstm{%nf!o6z`Y#;Q_o0Gc>y2M501qGTy+d9anm0b{j~Q^YDeHO3OhcTM}lTC;4D zd~RfFp%=zvtgcE0Stade6qw>mo3R>0@wMyw9v3wS?bQlOYl39J9p<{>l6bTH!b7_) zNvkW8Yem@Qp;4beY@Fl+G4Ly87N^;)*m)|M)Fn@JRtZcJw~x}tlWieVZa|`_){K2w z%>S#m2=vE76Jve$2}p)-avO7@$9CXPB70TcUb?4Q3M$~wXE-c7JB-P@B3HpF3Uhg9 z?|1*aic|^H==;kohWX7IU|qk=+*Dcg#SHp27r-sN-it#T027R2Re)78eAm{J(SyXLNKGXbfodK50W;Ui(r4oKLtNuRePI G&wl~&$vRO0 literal 8608 zcmcIq1ydYBl%B=igUe!p4el1)f;)sD!QEW~ED0V0A-F?ucMt9mT!TZf0E-4) z{D8ae>Y7*G^WK~Krr+07UrnUCsysFZIR*d#*a~lCGywqgY=QtZl;?|~Td@@Y5PJG) zzxB{G^#;4RIa}E}Sb{x#T`a+tKDN(`K1;AP{UnOEMA;{7Hk`vmRw(Sl21yUY9SIQfhpe;yC_4*72G zvpOF_CN8pL+D@G5t0EWvUP_8)JFCPbi+4<(@7>&8xGo$WsvKnpcNpFBm`o?qJB#gI zPDnrksc^H`S8qNz@6se)+`dn9&gN*(&JLRRVsg~u18Mcqe3P|TOgO#pRAPSOyU#$) zlQ`?6TJk9Db?n^@H#)k%r&J5V3B9;mtn;*^eQ;w+|9f1G3O@<1yJ^T!gY%GS zIGK~+$=pY-eo8fm9|JaA?dGBlg5Tq!zSdH24kXDfv3t6iS+KbZ24*YyEKr^J5ew_B z1@oAjRG*&T%=A7SY;>OAh)uS?TE+YDM9s4MLdQ>8I(3G}I_|5BI2Rj7$H``3F~yU# z86g=f$Inb;)y|Hvw~Y5127h*hT#e6u-B!(`IR>GCWenRmQ@;*Dt7sF|KRI(X;zgJ< ziN~i7Cj6#D%uQ(i)V3Yg$|NLuu=JrQ)Z2;m?2vO(iVmPk%a6}hsC8qXRU6GDPh(6x zQiL?rPmeO!6{gvjG&H`7PGf6WQ7o%ySd&W^ybteBnPYrvKnR-=mfahwEczmqW~NGZ!9*$iofb{4#hML_5*Z{ggvK zS}4r>#TmEMZZRVnZoBgN5Jd+2TxKB=W^)V9Y`jtIb@yxe-AAW2!{H!^^O<+5yW(mm zy}N1&+~U~z;_7ob?3R?V9jOHKg;q9um)A0RLqbQda06PUNs=qEWWeA>jSgcZhj^h$YAC67+@Jtxei<*S@*i4Vwf3DBC;kdFDI@|lx z=~X#LryRKQoY}_&RO~P@4c50#6|k@lS=ZMtF!vYXdsP`SCrR4%;uREbUVK4;haI_n zmQ;UR+e}2Y@#0TPn|{%?$`L^{|8lBX{X4CnpW=a1L@Sz#k9HK}G)XF%I?Y~vwc{;y zHO2$h`MOH=Jy4;B04JfEGC=-yz_^rMcZS=7SnscS&zq$+#v&%n{qT7&3avYfdBtu# zyK{>&np(Z)7;vDSoy0t(gU|X)6a?|{&G53r+#4;H!*A%$k#@{^**tIlsC+4>1r5C` zsM|V9Y(23&5i`oSM`1JPNf_S<>F^q0Gv^JBzF`e|$*{%tEmqp6oVFM(ZI|+pl#j^$ zcS7JpezE*?blxv=(3Y^N`sXZ-KNP}gXNq%^`K|+Run8^dBn&9+)-y>ig_GFKEB)nr zT1Ryx3upH;HG4}_zb>`5#k}=Toi!zDH4Iu3wuNu;nr~4_Gr96wEPZvHPkE)YeG@WXgLM;=?=5gZN0E$mTzDzN(Ca zvk%R%eK$-KXgGeJhiQaCJKw$vDV2#tj%KE+>U08+d|3JLPxFGd-Ba%RuFWQ(GTu}kTuGq9#b1U(rXRGmr$%_@xlSk%(o zW&Q21E2%b7ag?DwE5JY5Z~AQ9+YBAG^(LSL*WpxOI#_q{Zkn`b=HOq-8C)$-lOe#@ z$M^~*FLW)iHtc^h2rQfBUJQ13#)>*bwgmW6Ve=|`PJVIyxOuByy&>$W&~7a+R_r~( zYUb1Bu4rByZ(ZUQqt5cE7b4)R3WhH;X5$nRPtRq9Woqa_ti5jzwBB zNSDhM1eNOBk`U#GUgXbB?xH7o8^`tP&SW677JJ{7w5D7Ja06`)tyB-m#L=GK0>@zx=a zp0j4FCn~v;V}DhRO1(QTup~%0%ip`r`gY1jFkLPbRq;pjOlXwH0KS|f64(8F&&xVO zUV%@m`>86sYH8Xk>?lWEJUcWD7H%@A-Ntu$MIXlXdr5hhBHCxVGq;pClAGjcJL!I^ zi#pQk1B>2zJ@$j+egiwHBp_&(vEu4d%l4!NE3^sDc zEkaUTVTTjW6@;QfV+}Nz%j@DYXa)F3EPjP6Z9L_2L)+TX`;yEKqp4FRRu!N3Y+Xy# zmt9yh2y3vy6=yu2V+Osrx7__bFGP4!Gkhm5oxagnZ6kM46<}6ydvGu(R;xYjG^b|u z?L-7$EZU^cgb~I(ah_hg;wzpOXum^BI9Fhk>9p-;UzNAek$;1H8nJ~a*9>Nx0!ak2 z*AO8ygeoVp)_8&5@hbt=2qpK(Q(uRN7L z3Ld zU%bLT)4iCBr}yFIua*qKp0D)s!cIV(k%IOqN9J++HmvHLhE&^liGMj3>&@#1za*X= zD9jRgXUgw_wId_X-zwms9@}6X+$$N+skbxFc?v_iPD2wGO*QHh5T{jp zM5OM&?z;LIU*1VJaDx5304mI5&_tray~{uzE5o=~*d~ za9HzR(YPW$XqxWFskY2ide@5?BvEb5rg4%S_OQ1ZfNQSR-#ckO1y7S$D!|k^ikT`6 z1qKr`>RSFPk{C7<7$~yZlq5zl!3fUtREUYA2cmN`DbFAYm$IEQg;21fb_Z$lTbOg% zjVnH4+AHvh3*rF^Ujh~$0#<0?HYYWwu>1gI+>Te)^m4yddaHtS`frnzf1{E*~Hr`lxa3q`9GKz)Ih#Lx!hz^jzfq+~W3V>%v+ zztal{Z?_;zlK(!5ug}ytCT00{vDzsoPnJONRlo(Ml8(--`$V%?q?Y`yBCxGnpNW=6 zalTR4BxF%HF^bXElzqQ}uHaqK-vR+zbQ5fhRMZUMH@BAq4hbYhf?1GI6jKV>&K+OE zW4i~2p1Yg*iM3N~bSYDMa^^HHak@|4o^uw>OwifS4BhwjE$AyRR*E6`n6=;+L01-a zvQjLs+9&g8`Hl+#9BqR%&9ShSM-EAkUcl!-U@*7<2+ zw(Lg*qa?5>u)0!T=>F1P)52q*Z66w0sNQ|Q<%y)h7x?SlpUYm{A|YF=rE@;R!<=WKn9r7P^cu6a==LCM4ZF6N+ecItZ*`2#y4V$uvX zv)qS1u1OG%7*7*_O>>`>Lv8eAn#w_O@qIlRnzG;}FAn{9)Ep!vOc;Bjy2JK!l8v5z zz7H1KAj2jf;|#u#Yq5o>#sN-a*C9HEj_u?|oycSt=`#g_r|rJHBw$ma@`UJ6(O z{Wh3{M%aeS7e)4cTYBk3)ikA7cAPi)5usS0>?T5Y1aIdIP4JIT!lu~b$!AWiVOnO9 z5~PH>suP~=FfR~vn7DygN-f+N$wcGY1t-;tpsu@&I{>w1iZY<@_u)7Eg>XRvZ4)eg z-i=-nlNQahYUa)mFg+nLLqvq8Q{hlQ<$X+f|7eG+c&}!LvbEtHX!kIDm?$+n8n1uG z6I+;>4Evxp!6dD-Ij51Z!$`9qnZcZp{|?(0ZrVFh`I2tF+hP){w)J&IjCg77YNTCn zN4f{)#&Df*p?RQ4C-iFRZCJ8vtG=Tan%5lh8>Hn^1f$cxmHehQRVciU^6fswl{$Kz zhMDkpJoTnGi|pJ8AOE@gls}VB(kpeBg^Em0eL3I+^EDUc3bIz$y{th4|&lI!FGn| zT&3;Qj-AnnztSgT)pFVgm?o!o^B%=ozp2`acgop4b(b}uxYrdYer=Pk-Bp~GU8pC-f=Xfjf=o6W;F|8!|-FL%~go@ zdQo&QGQe@{_K5r9 znauEQHiX$r9cFpM!%d_!S$Sl(6$bv|^1fJlF|*r#7$GTb^sZn3+auyzmBQB+yr_y{ z9cnfXWV~i_*fB;f<;qb9s8?sjTqlQX!~3{HmYtU2@iRFH#r#r8XHols8PU>{&sxI<^|?q6*} zV@~VJ=_KbddAljeI1^;#qOA+)yw!CZSRF^R*uyDKTT&_t&+tCHVADePnlvK9$f5r_ zspr{!vTyUYlz%cE4Wb-z$5YcOlZg~V)Ib8Qidd@VVn9*(jM_uO4-*Y$7u4yQ$OYdH z(t2P%@_8N@qVpBtK&p9u!E-^GYa!f>`wUFPR+X$DFq5WT=(WvyHOh&r>3EsHl&;Rb zA!y~7uSH8@wK0DU95xqVKJ`{+&Di8xmUP9{%y4>)_uCIsG5pxhE#Nt) zq#9O+yw4|J`eR4sBECNI7ZiprI$B@-o-mg_J($&(0)uA?Dfv?6Tw`^BGwV(8w@?)# zx(pC9Rxw!uXPCX-?&>6~l)kQEDb z>Ja4G{CO$4ewPPkB{V72LUx%qn$VN2oba~Br6GUi`xTO zE^L3{MWA3a<72)?P`4q6ec0sGt#qeneo4;Ds;(fV{Ub-DDLa7uX@=#QF`3x8JdFCM ztEg0(ICp2(wj;fAbiO+|lOpk2qTct+!KB~U_O!?D)E217%~Vs~2rxs@_w@Lk?gQYxK=p>u$cP-q z*5%3JS)fi2lyM{Dv5bnKI8472n(ez@n5w{9lrOORWCgpDY5e&eSD@1vZi;#FbbePB z?53daz2x(mC12l3DrXewz$(;A*;kzqSy7&SakP1$>A7ps*)BUbn7(7x9V50QF9T@K%@K2!bXp3?KccmOGm@CRp} z3i|okURxcglAXV70b0zgiXPQN5F#*b%nbQhw=v#9MXi5x)GJ^L1bji^n+Z)}CQo7A zZzLrw9PkhUCFZUEDKX-_I5B8xWLc)|jZ1RM$yN0C@j5Q@a_#(+-FbiTX!F_woBD{^ zrpM+Zf4##`sk`rHeK@a|XVZ&af>{r?D?}4^yVUv-FX{%DlT<+jFQF)eXJg2L4Md#qR5?hk>ymnp4k54 zrx+X-?=&UGy86_hQw;y1v4x!(!s{0e=f}WQCMQ4*-IgH#t#TJ>9N6?>1cgb?d3+nY zBGu8cqnFIZ_jHN@#kQ89czW{eOpJet zphcQx=jxO9sA?0bRm&=^`2H2*q-5}4iVsqG(DqlCrET)0cv5-d>Y9Ofy$49@c@m!s zQR>u|aqNzf2gRm%Lk=a5b+#a~A z*kpXs1d`&aMqHIr9YweqeF%|O(9qnK%@b?&!!q8vIO2nK&J)((C;J?)6YAq25DO|a zd67NhpB#r`rX()|JpJoA?M3m=Gw3dF^xXjfr}Ezb<>}`B6Yx+y6jWqUw=oEbg&54a z3RIpYy>bN^N$qEiZnZ7SP>*=v%;@_i60)i?SzlMasxaqJ9KAe7^d&-t1n$Pq$;cOK z+i#sWhHy8AJ`Rv#VNhaWA@HHl?(3zbbqS|UPqn~CTjo!2Wxe&XJuCeK{9&F~mfo+a z5uq2`Sq4A`2Z=fC=IZL|)8v+m;89^m^8w|qAb+(VXvj6ELD*=SuS!FCE%V~cMQ}x_ z1+`>?eqXVe57VkZE9*7oJOXb3+BO8 zniV6jboV|tIuP9tz~LGfo$aVCd0c3SWrq{Vv+8&auzqT*Yy$RH!m@b6r!#ftZ5skSd`m@~M%)Eg<;{qQ%_dB-$DiT=R<@AX8s}CG&ve?&9XxpM zLN;BY5Y9@2QIDAFgu4r^1L1hcA?_u)NdMWvc=mJ%sT+=pnSSY*xE1m?pGhoX@(?0J z{koXT^icRyu#0wXkON4V66Zv`Wb?7DaB$<$*=;=KrD6KR*VE1_bk2NA-iInXxp{Fe zORJyzbv}e(0fe`j`!p1fNva6M4sw*{-=HU1dO8>Kp(iIXZDk?m#|zypDiN*Be;GN$ z8K{@9xWYRPS?56RX?R??#ls3}gz}KkrjkYl{HX*=2|WVNbH^Urc++bq8fp5}-_K|t z*Z<+vSro~KkeaU($JPJhqhcwv74?*D8GhOIr`N`Pcac(F3avf8WmkM2!{sC$+UP&` zqR~s1s-(fw$?<(HI=+&@tj}E}q{+Ol87*hbRnz$Qj<8E5xtilbqBOHcj-rsf@^-@A zPeoZLMkH~s>^WcMDO+1TKhDW-e!+h*u#{N=VE)qr^jV6Q002DTr`r3fnq2shDC&gi zn!n%`Pjl0(RMjc=VPI=LLJIs|agnfU(=dN+qsF-6@-jz}Dq6F&i^D|QWI9mMyISAQ zkxb-XWM`$2I__;xM+Bf;Q3@fH^6=b^X!nKixj;aWIp3lXp1!p@F5!!OZE8kY4sR^U za?YJ45)x<$(?CRKbM8c?7+2qH51$O>-CZs&)p&-Mi6YT`1~>OY^Aqirv^5L)Xh%Y` zEM^zwcs37@vX+Wwt(*#e^@{J`G!(hZU*58uM#%N8Pc>H%{AJQBp*V?!s}kubrN!7e zq-H&}j-Rl5t=YaB^paU~Trz;bzr$#c$AePlJ#6-R#k^;+#T|hW=H^bT^~+iofXqlZ zCQipcD_lYFG*T5lllQPGfe_(>D_f=g!tn`Gf1H{tBaN}INWW9A%p<#UAl-#-j|7f6 zjUSVQij2S}@Fd_7H#@r)Qh-vBKt9X8aMrX& zSnJKHuGkI1ZymQ>*S#@EHi2A~An+GmB)hdvD}8bnLsf6hBud9jSq_X&Gsl5zUYzqq zs#it~?25a&p$T2*c4(gHx&tIe0^&R07wq0wF)m>^|IDWn3guk5Rh-LkkGAEo<=7;F z0DFqdKUoTTZ(8go6a3?rp3H2oS}cQs3iFzC=lM&trF3 zpYIJ4)IHyaz$M}WH(4S>bVbkd>D4kD%AK~f@#3dCcuAnHW-yLFGew8ogF}I z+!;uP6E0m9ueY4_NF_z;(0PXj_N0c=dKuCBz9-qr#mQRs^eV4zo5)QjXv~i3DX&Uw z9*}xG-R#|8Y9k2N+FO4Iqv`2W=%O{Bb4SH5AfAQXt!9s_aSog<>()|zyRrASK@5V7jef{np8rj|9UGU z)i#Eh?fjjaAmK1Z@<5YN{gV1l3HwEa)?kFK(n6Eai_ngKn&g)V(lT{y7&dVK{dRk| zN4`jj=nFl*!1mp$$2B^V5>t0YT2gKqpPz~PTIZyfr$0EfX_m!aK7I2$Nn3ifSG;TY zIiq|1;fAwpw<@D^1aX$|lfh~DBAV3B; z2Y^@v_cLYIy(A&0|;@e;u(A$p}$u7ox;-|C~pMvKF zj}4n~i3k874FJ#p;9tr9qsGRUfMeMZ7EFG<(MVDJex(C`_lQUb0BrlHKm;&gi%{N< z4syuc!u-_7>LT8on;o$H1mJh|DCiebN?0I$Jv1r0 za_lUUBbEV}N4HQA=cvT=IA5EAzoWaf);j&c6SL|p`W`pkAh19!IErRso1m=dw<4j2 z#Ce@yqB5S&LJg#~>|^F>Nu8{C`Cr!ADppmR&o)IippF{@imF5SaAK1q)+bwIKthes zWat_)7EFuZm2!&&1euEg5=j4jXne+#T7*rqj-rs|{#C19acpG)r_F#jt((nW8*M9 zshdAV*=tQtLAN`}*TY>Wolj!_;;D&0B%lEl8(XutG_QT|9&difo(?l*hm@6-;q|N! zcR6=HTm^`2%$4a47O7<)OQCI!r3)N`tFO>De$`pG?M-Bd>s1+tI(OW@{1E`>55emh z8yh=@EjOKHKHXmI{ioB~58vL~VC+*#aj1MOHC6U&UjpjqTpf1@WkxR^gC1}9Xat`i zcOZZQAKHp`bPYd+pLB*l1IKcI+Kby(_%0g&CWzl!sJ)#?Ae cnIZIqD7^1%n_Z5g1UxqdSyh=zDU*-?0r5oaC;$Ke