From ef42b7d84e716b98618d82502824944e758a986e Mon Sep 17 00:00:00 2001 From: Timo Ley Date: Fri, 28 Jul 2023 11:46:25 +0200 Subject: [PATCH] feat: add back furnace engine --- src/generated/resources/.cache/cache | 15 +- .../assets/create/blockstates/flywheel.json | 48 +- .../create/blockstates/furnace_engine.json | 19 + .../resources/assets/create/lang/en_ud.json | 1 + .../resources/assets/create/lang/en_us.json | 1 + .../create/models/item/furnace_engine.json | 3 + .../loot_tables/blocks/furnace_engine.json | 20 + .../recipes/mechanical_crafting/flywheel.json | 20 + .../mechanical_crafting/furnace_engine.json | 31 + .../data/create/tags/blocks/brittle.json | 1 + .../tags/blocks/mineable/pickaxe.json | 1 + .../simibubi/create/AllBlockEntityTypes.java | 10 + .../java/com/simibubi/create/AllBlocks.java | 15 +- .../com/simibubi/create/AllPartialModels.java | 10 + src/main/java/com/simibubi/create/Create.java | 2 + .../kinetics/flywheel/FlywheelBlock.java | 126 +- .../flywheel/FlywheelBlockEntity.java | 69 +- .../kinetics/flywheel/FlywheelGenerator.java | 30 + .../kinetics/flywheel/FlywheelInstance.java | 145 ++- .../kinetics/flywheel/FlywheelRenderer.java | 106 +- .../kinetics/flywheel/engine/EngineBlock.java | 93 ++ .../flywheel/engine/EngineInstance.java | 51 + .../flywheel/engine/EngineRenderer.java | 45 + .../flywheel/engine/EngineTileEntity.java | 92 ++ .../flywheel/engine/FurnaceEngineBlock.java | 91 ++ .../engine/FurnaceEngineInteractions.java | 111 ++ .../engine/FurnaceEngineTileEntity.java | 43 + .../recipe/MechanicalCraftingRecipeGen.java | 19 +- .../create/models/block/flywheel/block.json | 6 - .../models/block/flywheel/casing_left.json | 95 ++ .../models/block/flywheel/casing_none.json | 95 ++ .../models/block/flywheel/casing_right.json | 95 ++ .../models/block/flywheel/flywheel.bbmodel | 1 + .../models/block/flywheel/flywheel.json | 10 - .../create/models/block/flywheel/flywheel.mtl | 11 - .../create/models/block/flywheel/flywheel.obj | 1081 ----------------- .../block/flywheel/flywheel_shaftless.obj | 993 --------------- .../create/models/block/flywheel/item.json | 391 +++++- .../flywheel/lower_rotating_connector.json | 27 + .../flywheel/lower_sliding_connector.json | 29 + .../flywheel/upper_rotating_connector.json | 27 + .../flywheel/upper_sliding_connector.json | 29 + .../create/models/block/flywheel/wheel.json | 221 ++++ .../models/block/furnace_engine/block.json | 133 ++ .../models/block/furnace_engine/frame.json | 89 ++ .../models/block/furnace_engine/item.json | 123 ++ .../textures/block/furnace_cylinder.png | Bin 0 -> 645 bytes .../create/textures/block/marker_flag.png | Bin 0 -> 196 bytes .../assets/create/textures/block/sealer.png | Bin 0 -> 421 bytes .../textures/block/steam_engine_wheel.png | Bin 0 -> 702 bytes 50 files changed, 2485 insertions(+), 2189 deletions(-) create mode 100644 src/generated/resources/assets/create/blockstates/furnace_engine.json create mode 100644 src/generated/resources/assets/create/models/item/furnace_engine.json create mode 100644 src/generated/resources/data/create/loot_tables/blocks/furnace_engine.json create mode 100644 src/generated/resources/data/create/recipes/mechanical_crafting/flywheel.json create mode 100644 src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json create mode 100644 src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelGenerator.java create mode 100644 src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineBlock.java create mode 100644 src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineInstance.java create mode 100644 src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineRenderer.java create mode 100644 src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineTileEntity.java create mode 100644 src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineBlock.java create mode 100644 src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineInteractions.java create mode 100644 src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineTileEntity.java delete mode 100644 src/main/resources/assets/create/models/block/flywheel/block.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/casing_left.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/casing_none.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/casing_right.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel.bbmodel delete mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel.json delete mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel.mtl delete mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel.obj delete mode 100644 src/main/resources/assets/create/models/block/flywheel/flywheel_shaftless.obj create mode 100644 src/main/resources/assets/create/models/block/flywheel/lower_rotating_connector.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/lower_sliding_connector.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/upper_rotating_connector.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/upper_sliding_connector.json create mode 100644 src/main/resources/assets/create/models/block/flywheel/wheel.json create mode 100644 src/main/resources/assets/create/models/block/furnace_engine/block.json create mode 100644 src/main/resources/assets/create/models/block/furnace_engine/frame.json create mode 100644 src/main/resources/assets/create/models/block/furnace_engine/item.json create mode 100644 src/main/resources/assets/create/textures/block/furnace_cylinder.png create mode 100644 src/main/resources/assets/create/textures/block/marker_flag.png create mode 100644 src/main/resources/assets/create/textures/block/sealer.png create mode 100644 src/main/resources/assets/create/textures/block/steam_engine_wheel.png diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 691ed4dcf..f37c9eed8 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -231,11 +231,12 @@ fb41aa1a0828c9256b3f886fdcb55bb54252ba09 assets/create/blockstates/exposed_coppe dd6dadfeb65c4a4c4d1dc92516c411355e90dcca assets/create/blockstates/fluid_pipe.json f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json d3de8e5a13c417effe1516fba9d9074fa4a6da23 assets/create/blockstates/fluid_valve.json -95b0775bf4d619ca5b0a42dbdc47c6f2c15d7b3d assets/create/blockstates/flywheel.json +e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json ac00d40e1ef50a37041c0481afa1a23a14dea78e assets/create/blockstates/framed_glass.json b5a2e05ed9557992c6093b76e9d80073eb986d5a assets/create/blockstates/framed_glass_door.json 61df7769fa61f6dd2868a4377e54320fdd473b4e assets/create/blockstates/framed_glass_pane.json 21661698b4aea1984661a0eaf4e98fd02ba2dd52 assets/create/blockstates/framed_glass_trapdoor.json +3cf49f4812732f00f578fa73785e14ffdf340f21 assets/create/blockstates/furnace_engine.json 23744450886af88ed468aecbbd7b8d7babcbbd6f assets/create/blockstates/gantry_carriage.json 9fa39a44bba30c5ae8fa245b122a837c705462b4 assets/create/blockstates/gantry_shaft.json eca1f0e56efdadb241f42dc6ebb036f1d52213a9 assets/create/blockstates/gearbox.json @@ -582,8 +583,8 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo 5616dda664dd106d576848124fc0fc1de18d0fd3 assets/create/blockstates/yellow_valve_handle.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -4fd8347dfb20e6e5752b8b905850762a88c88c02 assets/create/lang/en_ud.json -4e84e9d171ca389a372fda7e30a73ddc7d41185a assets/create/lang/en_us.json +e1ef2d33dd4102c0075c41412cf3f40140a60e2e assets/create/lang/en_ud.json +eb159a8640b42c72ad136d904379aec170942edd assets/create/lang/en_us.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1925,6 +1926,7 @@ f2496d3b16e5b5415474bcfb7d6c6a6c3b28ed60 assets/create/models/item/framed_glass. fe7a9c2130d8c4d6f4ed4ea7c56b63c4a5e709d2 assets/create/models/item/framed_glass_door.json 1041d462c6e856f7f3f2365c299c0599703d1ed7 assets/create/models/item/framed_glass_pane.json 1c2ec286c36a791fc7c6ddabb7fcb302fbeaf0a1 assets/create/models/item/framed_glass_trapdoor.json +0bee2855dc9bad52e941153b87e9c35797c246ee assets/create/models/item/furnace_engine.json a703b16625ad9d3b9042b6b19fdb88407726898b assets/create/models/item/furnace_minecart_contraption.json a642f570ec8223c066e542f062aff3b7f93e002b assets/create/models/item/gantry_carriage.json b4bfd5041b62f3a0a955fa4872d178b590614f22 assets/create/models/item/gantry_shaft.json @@ -3488,6 +3490,7 @@ b4df9a8b28f29587e75ffe11ca26d85ddbe926da data/create/loot_tables/blocks/fluid_pi 1088a023e61d0115de836c8f6309fc447ae4322a data/create/loot_tables/blocks/framed_glass_door.json f76fe7d876150a43be05977ec596d1fe2a3b9868 data/create/loot_tables/blocks/framed_glass_pane.json badc3b5364aa8df59aabda61a455ea56cb82d2ff data/create/loot_tables/blocks/framed_glass_trapdoor.json +7e0962fdc4166303117a54f6b7069bd5c26c2bde data/create/loot_tables/blocks/furnace_engine.json 891f0d334c3f596af081328be8d6ac0461592183 data/create/loot_tables/blocks/gantry_carriage.json 795c88efe80319220902da231f45d63d1130fde5 data/create/loot_tables/blocks/gantry_shaft.json 8a0d3f52474ea610efd6f2053d3b666d5f7db0f7 data/create/loot_tables/blocks/gearbox.json @@ -4914,6 +4917,8 @@ a88cc39c13146aa246910193b0b0151a797c5f19 data/create/recipes/limestone_from_ston 484e6c52ad534d2fa2bbacb7c03a349ae68d0803 data/create/recipes/limestone_pillar_from_stone_types_limestone_stonecutting.json 66674d07de63aada0991d2fdff07e22e00450135 data/create/recipes/mechanical_crafting/crushing_wheel.json 599f8b87c24c131350ba7ceb69a0c8b9829c62bc data/create/recipes/mechanical_crafting/extendo_grip.json +f26ed47c10cc63613759b0f8ae4ef349000de60d data/create/recipes/mechanical_crafting/flywheel.json +2dc00d6e4c159e06ab2a705e666e83e4238a7814 data/create/recipes/mechanical_crafting/furnace_engine.json fa356eb82c08339bb0064017d88b1e5b053fd4ff data/create/recipes/mechanical_crafting/potato_cannon.json 7e695ab2b684c23968a23765072603be5da13d75 data/create/recipes/mechanical_crafting/wand_of_symmetry.json 98f877bf8f3f8a686fc6cf7479a0fba5744248ce data/create/recipes/milling/allium.json @@ -5317,7 +5322,7 @@ d79c82bc6cf59b073b2f51f5fea9c98e81d14b68 data/create/recipes/weathered_copper_ti 452d480dd50b97fce72e0c89429cf68db534c6b2 data/create/recipes/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json ac265a674626e0e832330086fd18fe0be37fc327 data/create/recipes/weathered_copper_tile_stairs.json 5942a571f79c40524bbf408775cf91de4715f2b6 data/create/recipes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json -2a2700b43614f86d3294726595cb28ed7dca4387 data/create/tags/blocks/brittle.json +77e6f289379772776c1c58122540b4d88a0808b3 data/create/tags/blocks/brittle.json d99d5c67bdffff60789a19bd51a5c5267c75e0a4 data/create/tags/blocks/casing.json 74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/create/tags/blocks/contraption_inventory_deny.json bc203f09dd7f48965d146d0bd035fb904cb75e7d data/create/tags/blocks/copycat_allow.json @@ -5431,7 +5436,7 @@ cf71d9ad48f109da3a8b22a8d2d1a68d4eac99c0 data/minecraft/tags/blocks/climbable.js 69f596fcb065e26b02ce246760432b5174191b76 data/minecraft/tags/blocks/impermeable.json 2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/lush_ground_replaceable.json b68d565b4befb7b1c542d69eaa81309cc5304327 data/minecraft/tags/blocks/mineable/axe.json -ed5bf69c56339703aadb5e6a9cb40d5938dfb2f8 data/minecraft/tags/blocks/mineable/pickaxe.json +df77afefbb021ad6bf12b04493b669a3cb362b84 data/minecraft/tags/blocks/mineable/pickaxe.json 2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/moss_replaceable.json e157c1d3af30e409e34bbefbe15a037e6e1c8daa data/minecraft/tags/blocks/needs_iron_tool.json a08f67865337f62601c5e333b4011382d10020e4 data/minecraft/tags/blocks/needs_stone_tool.json diff --git a/src/generated/resources/assets/create/blockstates/flywheel.json b/src/generated/resources/assets/create/blockstates/flywheel.json index 52b73f7f5..380bc21bb 100644 --- a/src/generated/resources/assets/create/blockstates/flywheel.json +++ b/src/generated/resources/assets/create/blockstates/flywheel.json @@ -1,17 +1,49 @@ { "variants": { - "axis=x": { - "model": "create:block/flywheel/block", - "x": 90, + "connection=none,facing=north": { + "model": "create:block/flywheel/casing_none", + "y": 270 + }, + "connection=left,facing=north": { + "model": "create:block/flywheel/casing_left", + "y": 270 + }, + "connection=right,facing=north": { + "model": "create:block/flywheel/casing_right", + "y": 270 + }, + "connection=none,facing=south": { + "model": "create:block/flywheel/casing_none", "y": 90 }, - "axis=y": { - "model": "create:block/flywheel/block" + "connection=left,facing=south": { + "model": "create:block/flywheel/casing_left", + "y": 90 }, - "axis=z": { - "model": "create:block/flywheel/block", - "x": 90, + "connection=right,facing=south": { + "model": "create:block/flywheel/casing_right", + "y": 90 + }, + "connection=none,facing=west": { + "model": "create:block/flywheel/casing_none", "y": 180 + }, + "connection=left,facing=west": { + "model": "create:block/flywheel/casing_left", + "y": 180 + }, + "connection=right,facing=west": { + "model": "create:block/flywheel/casing_right", + "y": 180 + }, + "connection=none,facing=east": { + "model": "create:block/flywheel/casing_none" + }, + "connection=left,facing=east": { + "model": "create:block/flywheel/casing_left" + }, + "connection=right,facing=east": { + "model": "create:block/flywheel/casing_right" } } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/blockstates/furnace_engine.json b/src/generated/resources/assets/create/blockstates/furnace_engine.json new file mode 100644 index 000000000..6d10935d6 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/furnace_engine.json @@ -0,0 +1,19 @@ +{ + "variants": { + "facing=north": { + "model": "create:block/furnace_engine/block" + }, + "facing=south": { + "model": "create:block/furnace_engine/block", + "y": 180 + }, + "facing=west": { + "model": "create:block/furnace_engine/block", + "y": 270 + }, + "facing=east": { + "model": "create:block/furnace_engine/block", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index 3e038f2da..3de1c8922 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -237,6 +237,7 @@ "block.create.framed_glass_door": "\u0279oo\u15E1 ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132", "block.create.framed_glass_pane": "\u01DDu\u0250\u0500 ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132", "block.create.framed_glass_trapdoor": "\u0279oopd\u0250\u0279\u27D8 ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132", + "block.create.furnace_engine": "\u01DDu\u0131bu\u018E \u01DD\u0254\u0250u\u0279n\u2132", "block.create.gantry_carriage": "\u01DDb\u0250\u0131\u0279\u0279\u0250\u0186 \u028E\u0279\u0287u\u0250\u2141", "block.create.gantry_shaft": "\u0287\u025F\u0250\u0265S \u028E\u0279\u0287u\u0250\u2141", "block.create.gearbox": "xoq\u0279\u0250\u01DD\u2141", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index 7d2b2a8da..0118b4e8e 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -240,6 +240,7 @@ "block.create.framed_glass_door": "Framed Glass Door", "block.create.framed_glass_pane": "Framed Glass Pane", "block.create.framed_glass_trapdoor": "Framed Glass Trapdoor", + "block.create.furnace_engine": "Furnace Engine", "block.create.gantry_carriage": "Gantry Carriage", "block.create.gantry_shaft": "Gantry Shaft", "block.create.gearbox": "Gearbox", diff --git a/src/generated/resources/assets/create/models/item/furnace_engine.json b/src/generated/resources/assets/create/models/item/furnace_engine.json new file mode 100644 index 000000000..c23656217 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/furnace_engine.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/furnace_engine/item" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/loot_tables/blocks/furnace_engine.json b/src/generated/resources/data/create/loot_tables/blocks/furnace_engine.json new file mode 100644 index 000000000..391782951 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/furnace_engine.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "create:furnace_engine" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mechanical_crafting/flywheel.json b/src/generated/resources/data/create/recipes/mechanical_crafting/flywheel.json new file mode 100644 index 000000000..dee9cffd7 --- /dev/null +++ b/src/generated/resources/data/create/recipes/mechanical_crafting/flywheel.json @@ -0,0 +1,20 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + " BBB", + "CB B", + " BBB" + ], + "key": { + "B": { + "tag": "forge:ingots/brass" + }, + "C": { + "item": "create:brass_casing" + } + }, + "result": { + "item": "create:flywheel" + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json b/src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json new file mode 100644 index 000000000..3842209f0 --- /dev/null +++ b/src/generated/resources/data/create/recipes/mechanical_crafting/furnace_engine.json @@ -0,0 +1,31 @@ +{ + "type": "create:mechanical_crafting", + "pattern": [ + "PPB", + "PCI", + "PPB" + ], + "key": { + "P": { + "tag": "forge:plates/brass" + }, + "B": { + "tag": "forge:ingots/brass" + }, + "I": [ + { + "item": "minecraft:piston" + }, + { + "item": "minecraft:sticky_piston" + } + ], + "C": { + "item": "create:brass_casing" + } + }, + "result": { + "item": "create:furnace_engine" + }, + "acceptMirrored": true +} \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/blocks/brittle.json b/src/generated/resources/data/create/tags/blocks/brittle.json index f3f1628a3..7eb01fdf1 100644 --- a/src/generated/resources/data/create/tags/blocks/brittle.json +++ b/src/generated/resources/data/create/tags/blocks/brittle.json @@ -22,6 +22,7 @@ "create:black_valve_handle", "create:rope", "create:pulley_magnet", + "create:furnace_engine", "create:redstone_link", "create:peculiar_bell", "create:haunted_bell", diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index a392d86b7..14c48b5b9 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -111,6 +111,7 @@ "create:mechanical_crafter", "create:sequenced_gearshift", "create:flywheel", + "create:furnace_engine", "create:rotation_speed_controller", "create:mechanical_arm", "create:track", diff --git a/src/main/java/com/simibubi/create/AllBlockEntityTypes.java b/src/main/java/com/simibubi/create/AllBlockEntityTypes.java index 8ff7849e6..ac224ceb6 100644 --- a/src/main/java/com/simibubi/create/AllBlockEntityTypes.java +++ b/src/main/java/com/simibubi/create/AllBlockEntityTypes.java @@ -107,6 +107,9 @@ import com.simibubi.create.content.kinetics.fan.NozzleBlockEntity; import com.simibubi.create.content.kinetics.flywheel.FlywheelBlockEntity; import com.simibubi.create.content.kinetics.flywheel.FlywheelInstance; import com.simibubi.create.content.kinetics.flywheel.FlywheelRenderer; +import com.simibubi.create.content.kinetics.flywheel.engine.EngineInstance; +import com.simibubi.create.content.kinetics.flywheel.engine.EngineRenderer; +import com.simibubi.create.content.kinetics.flywheel.engine.FurnaceEngineTileEntity; import com.simibubi.create.content.kinetics.gantry.GantryShaftBlockEntity; import com.simibubi.create.content.kinetics.gauge.GaugeInstance; import com.simibubi.create.content.kinetics.gauge.GaugeRenderer; @@ -599,6 +602,13 @@ public class AllBlockEntityTypes { .renderer(() -> FlywheelRenderer::new) .register(); + public static final BlockEntityEntry FURNACE_ENGINE = REGISTRATE + .blockEntity("furnace_engine", FurnaceEngineTileEntity::new) + .instance(() -> EngineInstance::new, false) + .validBlocks(AllBlocks.FURNACE_ENGINE) + .renderer(() -> EngineRenderer::new) + .register(); + public static final BlockEntityEntry MILLSTONE = REGISTRATE .blockEntity("millstone", MillstoneBlockEntity::new) .instance(() -> MillstoneCogInstance::new, false) diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 2e1f6dff2..1ea5c5d7d 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -124,6 +124,8 @@ import com.simibubi.create.content.kinetics.drill.DrillMovementBehaviour; import com.simibubi.create.content.kinetics.fan.EncasedFanBlock; import com.simibubi.create.content.kinetics.fan.NozzleBlock; import com.simibubi.create.content.kinetics.flywheel.FlywheelBlock; +import com.simibubi.create.content.kinetics.flywheel.FlywheelGenerator; +import com.simibubi.create.content.kinetics.flywheel.engine.FurnaceEngineBlock; import com.simibubi.create.content.kinetics.gantry.GantryShaftBlock; import com.simibubi.create.content.kinetics.gauge.GaugeBlock; import com.simibubi.create.content.kinetics.gauge.GaugeGenerator; @@ -1514,11 +1516,22 @@ public class AllBlocks { .properties(BlockBehaviour.Properties::noOcclusion) .transform(axeOrPickaxe()) .transform(BlockStressDefaults.setNoImpact()) - .blockstate(BlockStateGen.axisBlockProvider(true)) + .blockstate(new FlywheelGenerator()::generate) .item() .transform(customItemModel()) .register(); + public static final BlockEntry FURNACE_ENGINE = + REGISTRATE.block("furnace_engine", FurnaceEngineBlock::new) + .initialProperties(SharedProperties::softMetal) + .transform(pickaxeOnly()) + .tag(AllBlockTags.BRITTLE.tag) + .blockstate(BlockStateGen.horizontalBlockProvider(true)) + .transform(BlockStressDefaults.setCapacity(1024.0)) + .item() + .transform(customItemModel()) + .register(); + public static final BlockEntry ROTATION_SPEED_CONTROLLER = REGISTRATE.block("rotation_speed_controller", SpeedControllerBlock::new) .initialProperties(SharedProperties::softMetal) diff --git a/src/main/java/com/simibubi/create/AllPartialModels.java b/src/main/java/com/simibubi/create/AllPartialModels.java index 8fde35136..d2f0794e2 100644 --- a/src/main/java/com/simibubi/create/AllPartialModels.java +++ b/src/main/java/com/simibubi/create/AllPartialModels.java @@ -62,6 +62,13 @@ public class AllPartialModels { ROLLER_WHEEL = block("mechanical_roller/wheel"), ROLLER_FRAME = block("mechanical_roller/frame"), + FLYWHEEL = block("flywheel/wheel"), + FLYWHEEL_UPPER_ROTATING = block("flywheel/upper_rotating_connector"), + FLYWHEEL_LOWER_ROTATING = block("flywheel/lower_rotating_connector"), + FLYWHEEL_UPPER_SLIDING = block("flywheel/upper_sliding_connector"), + FLYWHEEL_LOWER_SLIDING = block("flywheel/lower_sliding_connector"), + FURNACE_GENERATOR_FRAME = block("furnace_engine/frame"), + CUCKOO_MINUTE_HAND = block("cuckoo_clock/minute_hand"), CUCKOO_HOUR_HAND = block("cuckoo_clock/hour_hand"), CUCKOO_LEFT_DOOR = block("cuckoo_clock/left_door"), CUCKOO_RIGHT_DOOR = block("cuckoo_clock/right_door"), CUCKOO_PIG = block("cuckoo_clock/pig"), CUCKOO_CREEPER = block("cuckoo_clock/creeper"), @@ -100,6 +107,9 @@ public class AllPartialModels { ARM_CLAW_GRIP_UPPER = block("mechanical_arm/upper_claw_grip"), ARM_CLAW_GRIP_LOWER = block("mechanical_arm/lower_claw_grip"), + FLAG_SHORT_IN = block("mechanical_arm/flag/short_in"), FLAG_SHORT_OUT = block("mechanical_arm/flag/short_out"), + FLAG_LONG_IN = block("mechanical_arm/flag/long_in"), FLAG_LONG_OUT = block("mechanical_arm/flag/long_out"), + MECHANICAL_PUMP_COG = block("mechanical_pump/cog"), FLUID_PIPE_CASING = block("fluid_pipe/casing"), FLUID_VALVE_POINTER = block("fluid_valve/pointer"), diff --git a/src/main/java/com/simibubi/create/Create.java b/src/main/java/com/simibubi/create/Create.java index 7dcb3da68..a86b40232 100644 --- a/src/main/java/com/simibubi/create/Create.java +++ b/src/main/java/com/simibubi/create/Create.java @@ -17,6 +17,7 @@ import com.simibubi.create.content.decoration.slidingDoor.SlidingDoorBlock; import com.simibubi.create.content.equipment.potatoCannon.BuiltinPotatoProjectileTypes; import com.simibubi.create.content.fluids.tank.BoilerHeaters; import com.simibubi.create.content.kinetics.TorquePropagator; +import com.simibubi.create.content.kinetics.flywheel.engine.FurnaceEngineInteractions; import com.simibubi.create.content.kinetics.mechanicalArm.AllArmInteractionPointTypes; import com.simibubi.create.content.redstone.displayLink.AllDisplayBehaviours; import com.simibubi.create.content.redstone.link.RedstoneLinkNetworkHandler; @@ -133,6 +134,7 @@ public class Create { AllConfigs.register(modLoadingContext); + FurnaceEngineInteractions.registerDefaults(); AllMovementBehaviours.registerDefaults(); AllInteractionBehaviours.registerDefaults(); AllDisplayBehaviours.registerDefaults(); diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelBlock.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelBlock.java index 6cff991ce..09eb49dd1 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelBlock.java +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelBlock.java @@ -2,64 +2,128 @@ package com.simibubi.create.content.kinetics.flywheel; import com.simibubi.create.AllBlockEntityTypes; import com.simibubi.create.AllShapes; +import com.simibubi.create.content.kinetics.base.HorizontalKineticBlock; import com.simibubi.create.content.kinetics.base.RotatedPillarKineticBlock; +import com.simibubi.create.content.kinetics.flywheel.engine.EngineTileEntity; +import com.simibubi.create.content.kinetics.flywheel.engine.FurnaceEngineBlock; +import com.simibubi.create.foundation.advancement.AllTriggers; import com.simibubi.create.foundation.block.IBE; +import com.simibubi.create.foundation.utility.Lang; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.Direction.Axis; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.RenderShape; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition.Builder; +import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -public class FlywheelBlock extends RotatedPillarKineticBlock implements IBE { +public class FlywheelBlock extends HorizontalKineticBlock implements IBE { + + public static final EnumProperty CONNECTION = EnumProperty.create("connection", ConnectionState.class); public FlywheelBlock(Properties properties) { super(properties); + registerDefaultState(defaultBlockState().setValue(CONNECTION, ConnectionState.NONE)); + } + + @Override + protected void createBlockStateDefinition(Builder builder) { + super.createBlockStateDefinition(builder.add(CONNECTION)); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + Direction preferred = getPreferredHorizontalFacing(context); + if (preferred != null) + return defaultBlockState().setValue(HORIZONTAL_FACING, preferred.getOpposite()); + return this.defaultBlockState().setValue(HORIZONTAL_FACING, context.getHorizontalDirection()); + } + + public static boolean isConnected(BlockState state) { + return getConnection(state) != null; + } + + public static Direction getConnection(BlockState state) { + Direction facing = state.getValue(HORIZONTAL_FACING); + ConnectionState connection = state.getValue(CONNECTION); + + if (connection == ConnectionState.LEFT) + return facing.getCounterClockWise(); + if (connection == ConnectionState.RIGHT) + return facing.getClockWise(); + return null; + } + + public static void setConnection(Level world, BlockPos pos, BlockState state, Direction direction) { + Direction facing = state.getValue(HORIZONTAL_FACING); + ConnectionState connection = ConnectionState.NONE; + + if (direction == facing.getClockWise()) + connection = ConnectionState.RIGHT; + if (direction == facing.getCounterClockWise()) + connection = ConnectionState.LEFT; + + world.setBlock(pos, state.setValue(CONNECTION, connection), 18); + //AllTriggers.triggerForNearbyPlayers(AllTriggers.FLYWHEEL, world, pos, 4); + } + + @Override + public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { + return face == state.getValue(HORIZONTAL_FACING).getOpposite(); + } + + @Override + public Axis getRotationAxis(BlockState state) { + return state.getValue(HORIZONTAL_FACING).getAxis(); + } + + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + Direction connection = getConnection(state); + if (connection == null) + return super.onWrenched(state ,context); + + if (context.getClickedFace().getAxis() == state.getValue(HORIZONTAL_FACING).getAxis()) + return InteractionResult.PASS; + + Level world = context.getLevel(); + BlockPos enginePos = context.getClickedPos().relative(connection, 2); + BlockState engine = world.getBlockState(enginePos); + if (engine.getBlock() instanceof FurnaceEngineBlock) + ((FurnaceEngineBlock) engine.getBlock()).withBlockEntityDo(world, enginePos, EngineTileEntity::detachWheel); + + return super.onWrenched(state.setValue(CONNECTION, ConnectionState.NONE), context); + } + + public enum ConnectionState implements StringRepresentable { + NONE, LEFT, RIGHT; + + @Override + public String getSerializedName() { + return Lang.asId(name()); + } } @Override public Class getBlockEntityClass() { return FlywheelBlockEntity.class; } - - @Override - public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) { - return AllShapes.LARGE_GEAR.get(pState.getValue(AXIS)); - } - - @Override - public RenderShape getRenderShape(BlockState pState) { - return RenderShape.ENTITYBLOCK_ANIMATED; - } @Override public BlockEntityType getBlockEntityType() { return AllBlockEntityTypes.FLYWHEEL.get(); } - @Override - public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) { - return face.getAxis() == getRotationAxis(state); - } - - @Override - public Axis getRotationAxis(BlockState state) { - return state.getValue(AXIS); - } - - @Override - public float getParticleTargetRadius() { - return 2f; - } - - @Override - public float getParticleInitialRadius() { - return 1.75f; - } - } diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelBlockEntity.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelBlockEntity.java index 63afa38e6..bec61ba1a 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelBlockEntity.java +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelBlockEntity.java @@ -1,5 +1,6 @@ package com.simibubi.create.content.kinetics.flywheel; +import com.simibubi.create.content.kinetics.base.GeneratingKineticBlockEntity; import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.foundation.utility.animation.LerpedFloat; import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; @@ -10,8 +11,13 @@ import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; -public class FlywheelBlockEntity extends KineticBlockEntity { +public class FlywheelBlockEntity extends GeneratingKineticBlockEntity { + private float generatedCapacity; + private float generatedSpeed; + private int stoppingCooldown; + + // Client LerpedFloat visualSpeed = LerpedFloat.linear(); float angle; @@ -19,6 +25,32 @@ public class FlywheelBlockEntity extends KineticBlockEntity { super(type, pos, state); } + public void setRotation(float speed, float capacity) { + if (generatedSpeed != speed || generatedCapacity != capacity) { + + if (speed == 0) { + if (stoppingCooldown == 0) + stoppingCooldown = 40; + return; + } + + stoppingCooldown = 0; + generatedSpeed = speed; + generatedCapacity = capacity; + updateGeneratedRotation(); + } + } + + @Override + public float getGeneratedSpeed() { + return convertToDirection(generatedSpeed, getBlockState().getValue(FlywheelBlock.HORIZONTAL_FACING)); + } + + @Override + public float calculateAddedStressCapacity() { + return lastCapacityProvided = generatedCapacity; + } + @Override protected AABB createRenderBoundingBox() { return super.createRenderBoundingBox().inflate(2); @@ -26,11 +58,17 @@ public class FlywheelBlockEntity extends KineticBlockEntity { @Override public void write(CompoundTag compound, boolean clientPacket) { + compound.putFloat("GeneratedSpeed", generatedSpeed); + compound.putFloat("GeneratedCapacity", generatedCapacity); + compound.putInt("Cooldown", stoppingCooldown); super.write(compound, clientPacket); } @Override protected void read(CompoundTag compound, boolean clientPacket) { + generatedSpeed = compound.getFloat("GeneratedSpeed"); + generatedCapacity = compound.getFloat("GeneratedCapacity"); + stoppingCooldown = compound.getInt("Cooldown"); super.read(compound, clientPacket); if (clientPacket) visualSpeed.chase(getGeneratedSpeed(), 1 / 64f, Chaser.EXP); @@ -40,13 +78,30 @@ public class FlywheelBlockEntity extends KineticBlockEntity { public void tick() { super.tick(); - if (!level.isClientSide) + if (level.isClientSide) { + float targetSpeed = isVirtual() ? speed : getGeneratedSpeed(); + visualSpeed.updateChaseTarget(targetSpeed); + visualSpeed.tickChaser(); + angle += visualSpeed.getValue() * 3 / 10f; + angle %= 360; + return; + } + + /* + * After getting moved by pistons the generatedSpeed attribute reads 16 but the + * actual speed stays at 0, if it happens update rotation + */ + if (getGeneratedSpeed() != 0 && getSpeed() == 0) + updateGeneratedRotation(); + + if (stoppingCooldown == 0) return; - float targetSpeed = getSpeed(); - visualSpeed.updateChaseTarget(targetSpeed); - visualSpeed.tickChaser(); - angle += visualSpeed.getValue() * 3 / 10f; - angle %= 360; + stoppingCooldown--; + if (stoppingCooldown == 0) { + generatedCapacity = 0; + generatedSpeed = 0; + updateGeneratedRotation(); + } } } diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelGenerator.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelGenerator.java new file mode 100644 index 000000000..d0bdf2c3a --- /dev/null +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelGenerator.java @@ -0,0 +1,30 @@ +package com.simibubi.create.content.kinetics.flywheel; + +import com.simibubi.create.foundation.data.SpecialBlockStateGen; +import com.tterrag.registrate.providers.DataGenContext; +import com.tterrag.registrate.providers.RegistrateBlockstateProvider; + +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.generators.ModelFile; + +public class FlywheelGenerator extends SpecialBlockStateGen { + + @Override + protected int getXRotation(BlockState state) { + return 0; + } + + @Override + protected int getYRotation(BlockState state) { + return horizontalAngle(state.getValue(FlywheelBlock.HORIZONTAL_FACING)) + 90; + } + + @Override + public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, + BlockState state) { + return prov.models() + .getExistingFile(prov.modLoc("block/" + ctx.getName() + "/casing_" + state.getValue(FlywheelBlock.CONNECTION) + .getSerializedName())); + } +} diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelInstance.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelInstance.java index 4f97923d9..a54cd2042 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelInstance.java +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelInstance.java @@ -1,32 +1,88 @@ package com.simibubi.create.content.kinetics.flywheel; +import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING; + +import java.util.Collections; +import java.util.List; + +import com.google.common.collect.Lists; +import com.jozufozu.flywheel.api.InstanceData; +import com.jozufozu.flywheel.api.Instancer; +import com.jozufozu.flywheel.api.Material; import com.jozufozu.flywheel.api.MaterialManager; import com.jozufozu.flywheel.api.instance.DynamicInstance; import com.jozufozu.flywheel.core.materials.model.ModelData; import com.jozufozu.flywheel.util.transform.TransformStack; import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.AllPartialModels; import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance; import com.simibubi.create.content.kinetics.base.flwdata.RotatingData; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AnimationTickHolder; import net.minecraft.core.Direction; +import net.minecraft.util.Mth; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.state.BlockState; public class FlywheelInstance extends KineticBlockEntityInstance implements DynamicInstance { + protected final Direction facing; + protected final Direction connection; + + protected boolean connectedLeft; + protected float connectorAngleMult; + protected final RotatingData shaft; + protected final ModelData wheel; + + protected List connectors; + protected ModelData upperRotating; + protected ModelData lowerRotating; + protected ModelData upperSliding; + protected ModelData lowerSliding; + protected float lastAngle = Float.NaN; - public FlywheelInstance(MaterialManager materialManager, FlywheelBlockEntity blockEntity) { - super(materialManager, blockEntity); + public FlywheelInstance(MaterialManager modelManager, FlywheelBlockEntity tile) { + super(modelManager, tile); - shaft = setup(getRotatingMaterial().getModel(shaft()) - .createInstance()); - wheel = getTransformMaterial().getModel(blockState) + facing = blockState.getValue(HORIZONTAL_FACING); + + shaft = setup(shaftModel().createInstance()); + + BlockState referenceState = blockState.rotate(Rotation.CLOCKWISE_90); + wheel = getTransformMaterial() + .getModel(AllPartialModels.FLYWHEEL, referenceState, referenceState.getValue(HORIZONTAL_FACING)) .createInstance(); - animate(blockEntity.angle); + connection = FlywheelBlock.getConnection(blockState); + if (connection != null) { + connectedLeft = blockState.getValue(FlywheelBlock.CONNECTION) == FlywheelBlock.ConnectionState.LEFT; + + boolean flipAngle = connection.getAxis() == Direction.Axis.X + ^ connection.getAxisDirection() == Direction.AxisDirection.NEGATIVE; + + connectorAngleMult = flipAngle ? -1 : 1; + + Material mat = getTransformMaterial(); + + upperRotating = mat.getModel(AllPartialModels.FLYWHEEL_UPPER_ROTATING, blockState) + .createInstance(); + lowerRotating = mat.getModel(AllPartialModels.FLYWHEEL_LOWER_ROTATING, blockState) + .createInstance(); + upperSliding = mat.getModel(AllPartialModels.FLYWHEEL_UPPER_SLIDING, blockState) + .createInstance(); + lowerSliding = mat.getModel(AllPartialModels.FLYWHEEL_LOWER_SLIDING, blockState) + .createInstance(); + + connectors = Lists.newArrayList(upperRotating, lowerRotating, upperSliding, lowerSliding); + } else { + connectors = Collections.emptyList(); + } + + animate(tile.angle); } @Override @@ -50,8 +106,38 @@ public class FlywheelInstance extends KineticBlockEntityInstance shaftModel() { + Direction opposite = facing.getOpposite(); + return getRotatingMaterial().getModel(AllPartialModels.SHAFT_HALF, blockState, opposite); + } + + protected void transformConnector(TransformStack ms, boolean upper, boolean rotating, float angle, + boolean flip) { + float shift = upper ? 1 / 4f : -1 / 8f; + float offset = upper ? 1 / 4f : 1 / 4f; + float radians = (float) (angle / 180 * Math.PI); + float shifting = Mth.sin(radians) * shift + offset; + + float maxAngle = upper ? -5 : -15; + float minAngle = upper ? -45 : 5; + float barAngle = 0; + + if (rotating) + barAngle = Mth.lerp((Mth.sin((float) (radians + Math.PI / 2)) + 1) / 2, minAngle, maxAngle); + + float pivotX = (upper ? 8f : 3f) / 16; + float pivotY = (upper ? 8f : 2f) / 16; + float pivotZ = (upper ? 23f : 21.5f) / 16f; + + ms.translate(pivotX, pivotY, pivotZ + shifting); + if (rotating) + ms.rotate(Direction.EAST, AngleHelper.rad(barAngle)); + ms.translate(-pivotX, -pivotY, -pivotZ); + + if (flip && !upper) + ms.translate(9 / 16f, 0, 0); + } + + protected void rotateToFacing(TransformStack buffer, Direction facing) { + buffer.centre() + .rotate(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing))) + .unCentre(); } } diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelRenderer.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelRenderer.java index f563916f3..ac8b64391 100644 --- a/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelRenderer.java +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/FlywheelRenderer.java @@ -1,17 +1,29 @@ package com.simibubi.create.content.kinetics.flywheel; +import static com.simibubi.create.content.kinetics.base.HorizontalKineticBlock.HORIZONTAL_FACING; + import com.jozufozu.flywheel.backend.Backend; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.content.kinetics.base.KineticBlockEntity; import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer; +import com.simibubi.create.content.kinetics.flywheel.FlywheelBlock.ConnectionState; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.utility.AngleHelper; +import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.core.Direction.AxisDirection; +import net.minecraft.util.Mth; +import net.minecraft.world.level.block.Rotation; import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; public class FlywheelRenderer extends KineticBlockEntityRenderer { @@ -20,32 +32,98 @@ public class FlywheelRenderer extends KineticBlockEntityRenderer builder) { + super.createBlockStateDefinition(builder.add(FACING)); + } + + @Override + public void neighborChanged(BlockState state, Level worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, + boolean isMoving) { + if (worldIn.isClientSide) + return; + + if (fromPos.equals(getBaseBlockPos(state, pos))) { + if (!canSurvive(state, worldIn, pos)) { + worldIn.destroyBlock(pos, true); + return; + } + } + } + + private boolean isValidPosition(BlockState state, BlockGetter world, BlockPos pos, Direction facing) { + BlockPos baseBlockPos = getBaseBlockPos(state, pos); + if (!isValidBaseBlock(world.getBlockState(baseBlockPos), world, pos)) + return false; + for (Direction otherFacing : Iterate.horizontalDirections) { + if (otherFacing == facing) + continue; + BlockPos otherPos = baseBlockPos.relative(otherFacing); + BlockState otherState = world.getBlockState(otherPos); + if (otherState.getBlock() instanceof EngineBlock + && getBaseBlockPos(otherState, otherPos).equals(baseBlockPos)) + return false; + } + + return true; + } + + public static BlockPos getBaseBlockPos(BlockState state, BlockPos pos) { + return pos.relative(state.getValue(FACING).getOpposite()); + } + + @Nullable + @OnlyIn(Dist.CLIENT) + public abstract PartialModel getFrameModel(); + + protected abstract boolean isValidBaseBlock(BlockState baseBlock, BlockGetter world, BlockPos pos); + +} diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineInstance.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineInstance.java new file mode 100644 index 000000000..72971ad37 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineInstance.java @@ -0,0 +1,51 @@ +package com.simibubi.create.content.kinetics.flywheel.engine; + +import com.jozufozu.flywheel.api.MaterialManager; +import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance; +import com.jozufozu.flywheel.core.PartialModel; +import com.jozufozu.flywheel.core.materials.model.ModelData; +import com.simibubi.create.foundation.utility.AngleHelper; + +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; + +public class EngineInstance extends BlockEntityInstance { + + protected ModelData frame; + + public EngineInstance(MaterialManager modelManager, EngineTileEntity tile) { + super(modelManager, tile); + + Block block = blockState + .getBlock(); + if (!(block instanceof EngineBlock engineBlock)) + return; + + PartialModel frame = engineBlock.getFrameModel(); + + Direction facing = blockState.getValue(BlockStateProperties.HORIZONTAL_FACING); + + this.frame = getTransformMaterial().getModel(frame, blockState).createInstance(); + + float angle = AngleHelper.rad(AngleHelper.horizontalAngle(facing)); + + this.frame.loadIdentity() + .translate(getInstancePosition()) + .nudge(pos.hashCode()) + .centre() + .rotate(Direction.UP, angle) + .unCentre() + .translate(0, 0, -1); + } + + @Override + public void remove() { + frame.delete(); + } + + @Override + public void updateLight() { + relight(pos, frame); + } +} diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineRenderer.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineRenderer.java new file mode 100644 index 000000000..ce1e916f1 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineRenderer.java @@ -0,0 +1,45 @@ +package com.simibubi.create.content.kinetics.flywheel.engine; + +import com.jozufozu.flywheel.backend.Backend; +import com.jozufozu.flywheel.core.PartialModel; +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.utility.AngleHelper; + +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.Block; + +public class EngineRenderer extends SafeBlockEntityRenderer { + + public EngineRenderer(BlockEntityRendererProvider.Context context) { + } + + @Override + protected void renderSafe(T te, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light, + int overlay) { + + if (Backend.canUseInstancing(te.getLevel())) return; + + Block block = te.getBlockState() + .getBlock(); + if (block instanceof EngineBlock) { + EngineBlock engineBlock = (EngineBlock) block; + PartialModel frame = engineBlock.getFrameModel(); + if (frame != null) { + Direction facing = te.getBlockState() + .getValue(EngineBlock.FACING); + float angle = AngleHelper.rad(AngleHelper.horizontalAngle(facing)); + CachedBufferer.partial(frame, te.getBlockState()) + .rotateCentered(Direction.UP, angle) + .translate(0, 0, -1) + .light(light) + .renderInto(ms, buffer.getBuffer(RenderType.solid())); + } + } + } + +} diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineTileEntity.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineTileEntity.java new file mode 100644 index 000000000..1826f48c7 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/EngineTileEntity.java @@ -0,0 +1,92 @@ +package com.simibubi.create.content.kinetics.flywheel.engine; + +import java.util.List; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.kinetics.flywheel.FlywheelBlock; +import com.simibubi.create.content.kinetics.flywheel.FlywheelBlockEntity; +import com.simibubi.create.foundation.blockEntity.SmartBlockEntity; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; + +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.AABB; + +public class EngineTileEntity extends SmartBlockEntity { + + public float appliedCapacity; + public float appliedSpeed; + protected FlywheelBlockEntity poweredWheel; + + public EngineTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public void addBehaviours(List behaviours) { + } + + @Override + protected AABB createRenderBoundingBox() { + return super.createRenderBoundingBox().inflate(1.5f); + } + + @Override + public void lazyTick() { + super.lazyTick(); + if (level.isClientSide) + return; + if (poweredWheel != null && poweredWheel.isRemoved()) + poweredWheel = null; + if (poweredWheel == null) + attachWheel(); + } + + public void attachWheel() { + Direction engineFacing = getBlockState().getValue(EngineBlock.FACING); + BlockPos wheelPos = worldPosition.relative(engineFacing, 2); + BlockState wheelState = level.getBlockState(wheelPos); + if (!AllBlocks.FLYWHEEL.has(wheelState)) + return; + Direction wheelFacing = wheelState.getValue(FlywheelBlock.HORIZONTAL_FACING); + if (wheelFacing.getAxis() != engineFacing.getClockWise().getAxis()) + return; + if (FlywheelBlock.isConnected(wheelState) + && FlywheelBlock.getConnection(wheelState) != engineFacing.getOpposite()) + return; + BlockEntity te = level.getBlockEntity(wheelPos); + if (te.isRemoved()) + return; + if (te instanceof FlywheelBlockEntity) { + if (!FlywheelBlock.isConnected(wheelState)) + FlywheelBlock.setConnection(level, te.getBlockPos(), te.getBlockState(), engineFacing.getOpposite()); + poweredWheel = (FlywheelBlockEntity) te; + refreshWheelSpeed(); + } + } + + public void detachWheel() { + if (poweredWheel == null || poweredWheel.isRemoved()) + return; + poweredWheel.setRotation(0, 0); + FlywheelBlock.setConnection(level, poweredWheel.getBlockPos(), poweredWheel.getBlockState(), null); + poweredWheel = null; + } + + @Override + public void remove() { + detachWheel(); + super.remove(); + } + + protected void refreshWheelSpeed() { + if (poweredWheel == null) + return; + poweredWheel.setRotation(appliedSpeed, appliedCapacity); + } + + +} diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineBlock.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineBlock.java new file mode 100644 index 000000000..75fe73b23 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineBlock.java @@ -0,0 +1,91 @@ +package com.simibubi.create.content.kinetics.flywheel.engine; + +import com.jozufozu.flywheel.core.PartialModel; +import com.simibubi.create.AllBlockEntityTypes; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.AllShapes; +import com.simibubi.create.foundation.block.IBE; +import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.AbstractFurnaceBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraftforge.event.entity.player.PlayerInteractEvent.RightClickBlock; +import net.minecraftforge.eventbus.api.Event.Result; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; + +@EventBusSubscriber +public class FurnaceEngineBlock extends EngineBlock implements IBE { + + public FurnaceEngineBlock(Properties properties) { + super(properties); + } + + @Override + protected boolean isValidBaseBlock(BlockState baseBlock, BlockGetter world, BlockPos pos) { + return FurnaceEngineInteractions.getHandler(baseBlock).getHeatSource(baseBlock).isValid(); + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) { + return AllShapes.FURNACE_ENGINE.get(state.getValue(FACING)); + } + + @Override + @OnlyIn(Dist.CLIENT) + public PartialModel getFrameModel() { + return AllPartialModels.FURNACE_GENERATOR_FRAME; + } + + @Override + public void neighborChanged(BlockState state, Level worldIn, BlockPos pos, Block blockIn, BlockPos fromPos, + boolean isMoving) { + super.neighborChanged(state, worldIn, pos, blockIn, fromPos, isMoving); + if (worldIn instanceof WrappedWorld) + return; + if (worldIn.isClientSide) + return; + + if (fromPos.equals(getBaseBlockPos(state, pos))) + if (canSurvive(state, worldIn, pos)) + withBlockEntityDo(worldIn, pos, FurnaceEngineTileEntity::updateFurnace); + } + + @SubscribeEvent + public static void usingFurnaceEngineOnFurnacePreventsGUI(RightClickBlock event) { + ItemStack item = event.getItemStack(); + if (!(item.getItem() instanceof BlockItem blockItem)) + return; + if (blockItem.getBlock() != AllBlocks.FURNACE_ENGINE.get()) + return; + BlockState state = event.getWorld().getBlockState(event.getPos()); + if (event.getFace().getAxis().isVertical()) + return; + if (state.getBlock() instanceof AbstractFurnaceBlock) + event.setUseBlock(Result.DENY); + } + + @Override + public Class getBlockEntityClass() { + return FurnaceEngineTileEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return AllBlockEntityTypes.FURNACE_ENGINE.get(); + } + + +} diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineInteractions.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineInteractions.java new file mode 100644 index 000000000..b10bd0cc3 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineInteractions.java @@ -0,0 +1,111 @@ +package com.simibubi.create.content.kinetics.flywheel.engine; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.Function; + +import net.minecraft.world.level.block.AbstractFurnaceBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.registries.IRegistryDelegate; + +/** + * Example: + * + *
+ * {@code
+ * FurnaceEngineInteractions.registerHandler(Blocks.REDSTONE_LAMP.delegate, FurnaceEngineInteractions.InteractionHandler.of(
+ * 	s -> s.getBlock() instanceof RedstoneLampBlock && s.hasProperty(RedstoneLampBlock.LIT) ? 
+ * 		(s.getValue(RedstoneLampBlock.LIT) ? HeatSource.ACTIVE : HeatSource.VALID) : HeatSource.EMPTY, s -> 1.5f));
+ * }
+ * 
+ */ +public class FurnaceEngineInteractions { + + private static final Map, InteractionHandler> HANDLERS = new HashMap<>(); + private static final InteractionHandler DEFAULT_HANDLER = new InteractionHandler() {}; + + public static void registerHandler(IRegistryDelegate block, InteractionHandler handler) { + HANDLERS.put(block, handler); + } + + public static InteractionHandler getHandler(IRegistryDelegate delegate) { + return HANDLERS.getOrDefault(delegate, DEFAULT_HANDLER); + } + + public static InteractionHandler getHandler(BlockState state) { + return getHandler(state.getBlock().delegate); + } + + public static void registerDefaults() { + registerHandler(Blocks.BLAST_FURNACE.delegate, InteractionHandler.ofCustomSpeedModifier(state -> 2f)); + } + + public interface InteractionHandler { + default HeatSource getHeatSource(BlockState state) { + if (state.getBlock() instanceof AbstractFurnaceBlock && state.hasProperty(AbstractFurnaceBlock.LIT)) { + if (state.getValue(AbstractFurnaceBlock.LIT)) { + return HeatSource.ACTIVE; + } else { + return HeatSource.VALID; + } + } + return HeatSource.EMPTY; + } + + default float getSpeedModifier(BlockState state) { + return 1f; + }; + + static InteractionHandler of(Function heatSourceFunc, Function speedModifierFunc) { + return new InteractionHandler() { + @Override + public HeatSource getHeatSource(BlockState state) { + return heatSourceFunc.apply(state); + } + + @Override + public float getSpeedModifier(BlockState state) { + return speedModifierFunc.apply(state); + } + }; + } + + static InteractionHandler ofCustomHeatSource(Function heatSourceFunc) { + return new InteractionHandler() { + @Override + public HeatSource getHeatSource(BlockState state) { + return heatSourceFunc.apply(state); + } + }; + } + + static InteractionHandler ofCustomSpeedModifier(Function speedModifierFunc) { + return new InteractionHandler() { + @Override + public float getSpeedModifier(BlockState state) { + return speedModifierFunc.apply(state); + } + }; + } + } + + public enum HeatSource { + EMPTY, + VALID, + ACTIVE; + + public boolean isEmpty() { + return this == EMPTY; + } + + public boolean isValid() { + return this != EMPTY; + } + + public boolean isActive() { + return this == ACTIVE; + } + } +} diff --git a/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineTileEntity.java b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineTileEntity.java new file mode 100644 index 000000000..1160943f2 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/kinetics/flywheel/engine/FurnaceEngineTileEntity.java @@ -0,0 +1,43 @@ +package com.simibubi.create.content.kinetics.flywheel.engine; + +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.kinetics.BlockStressValues; +import com.simibubi.create.content.kinetics.flywheel.engine.FurnaceEngineInteractions.HeatSource; +import com.simibubi.create.content.kinetics.flywheel.engine.FurnaceEngineInteractions.InteractionHandler; + +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +public class FurnaceEngineTileEntity extends EngineTileEntity { + + public FurnaceEngineTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + @Override + public void lazyTick() { + updateFurnace(); + super.lazyTick(); + } + + public void updateFurnace() { + BlockState state = level.getBlockState(EngineBlock.getBaseBlockPos(getBlockState(), worldPosition)); + InteractionHandler handler = FurnaceEngineInteractions.getHandler(state); + HeatSource heatSource = handler.getHeatSource(state); + if (heatSource.isEmpty()) + return; + + float modifier = handler.getSpeedModifier(state); + boolean active = heatSource.isActive(); + float speed = active ? 16 * modifier : 0; + float capacity = + (float) (active ? BlockStressValues.getCapacity(AllBlocks.FURNACE_ENGINE.get()) + : 0); + + appliedCapacity = capacity; + appliedSpeed = speed; + refreshWheelSpeed(); + } + +} diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java index dbf210b72..e9bc085eb 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/MechanicalCraftingRecipeGen.java @@ -13,6 +13,7 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.ItemTags; import net.minecraft.world.item.crafting.Ingredient; import net.minecraft.world.level.ItemLike; +import net.minecraft.world.level.block.Blocks; import net.minecraftforge.common.Tags; public class MechanicalCraftingRecipeGen extends CreateRecipeProvider { @@ -60,7 +61,23 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider { .key('S', AllBlocks.FLUID_PIPE.get()) .key('C', Ingredient.of(I.copper())) .patternLine("LRSSS") - .patternLine("CC ")) + .patternLine("CC ")), + + FURNACE_ENGINE = create(AllBlocks.FURNACE_ENGINE::get).returns(1) + .recipe(b -> b.key('P', Ingredient.of(I.brassSheet())) + .key('B', Ingredient.of(I.brass())) + .key('I', Ingredient.of(Blocks.PISTON, Blocks.STICKY_PISTON)) + .key('C', I.brassCasing()) + .patternLine("PPB") + .patternLine("PCI") + .patternLine("PPB")), + + FLYWHEEL = create(AllBlocks.FLYWHEEL::get).returns(1) + .recipe(b -> b.key('B', Ingredient.of(I.brass())) + .key('C', I.brassCasing()) + .patternLine(" BBB") + .patternLine("CB B") + .patternLine(" BBB")) ; diff --git a/src/main/resources/assets/create/models/block/flywheel/block.json b/src/main/resources/assets/create/models/block/flywheel/block.json deleted file mode 100644 index 4add27c0c..000000000 --- a/src/main/resources/assets/create/models/block/flywheel/block.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "create:block/flywheel/flywheel", - "loader": "forge:obj", - "flip-v": true, - "model": "create:models/block/flywheel/flywheel_shaftless.obj" -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/casing_left.json b/src/main/resources/assets/create/models/block/flywheel/casing_left.json new file mode 100644 index 000000000..dac493187 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/casing_left.json @@ -0,0 +1,95 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "5": "create:block/brass_casing", + "7": "create:block/brass_gearbox", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [1, 0, 0], + "to": [12, 16, 16], + "faces": { + "north": {"uv": [0, 10, 8, 15.5], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "south": {"uv": [8, 15.5, 16, 10], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "up": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [0, 0, 0], + "to": [1, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 24]}, + "faces": { + "north": {"uv": [15, 14, 16, 16], "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#5"}, + "south": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "texture": "#5"}, + "up": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"}, + "down": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"} + } + }, + { + "from": [0, 14, 0], + "to": [1, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [0, 14, 1, 16], "rotation": 180, "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#5"}, + "south": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "up": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"}, + "down": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"} + } + }, + { + "from": [0, 2, 0], + "to": [1, 14, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 0, 14, 1], "rotation": 90, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#5"}, + "south": {"uv": [2, 1, 14, 2], "rotation": 90, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 90, "texture": "#5"}, + "up": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "down": {"uv": [0, 14, 1, 16], "texture": "#5"} + } + }, + { + "from": [0, 2, 14], + "to": [1, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 1, 14, 2], "rotation": 270, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#5"}, + "south": {"uv": [2, 0, 14, 1], "rotation": 270, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "down": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"} + } + }, + { + "from": [10.9, 3, 3], + "to": [19.9, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 0, 16, 5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "south": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "west": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "up": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "down": {"uv": [11.5, 0, 16, 5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0, 1, 2, 3, 4, 5] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/casing_none.json b/src/main/resources/assets/create/models/block/flywheel/casing_none.json new file mode 100644 index 000000000..ff52149d8 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/casing_none.json @@ -0,0 +1,95 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "5": "create:block/brass_casing", + "7": "create:block/brass_gearbox", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [1, 0, 0], + "to": [12, 16, 16], + "faces": { + "north": {"uv": [8, 10.5, 16, 16], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "south": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "up": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [0, 0, 0], + "to": [1, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 24]}, + "faces": { + "north": {"uv": [15, 14, 16, 16], "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#5"}, + "south": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "texture": "#5"}, + "up": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"}, + "down": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"} + } + }, + { + "from": [0, 14, 0], + "to": [1, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [0, 14, 1, 16], "rotation": 180, "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#5"}, + "south": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "up": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"}, + "down": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"} + } + }, + { + "from": [0, 2, 0], + "to": [1, 14, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 0, 14, 1], "rotation": 90, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#5"}, + "south": {"uv": [2, 1, 14, 2], "rotation": 90, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 90, "texture": "#5"}, + "up": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "down": {"uv": [0, 14, 1, 16], "texture": "#5"} + } + }, + { + "from": [0, 2, 14], + "to": [1, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 1, 14, 2], "rotation": 270, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#5"}, + "south": {"uv": [2, 0, 14, 1], "rotation": 270, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "down": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"} + } + }, + { + "from": [10.9, 3, 3], + "to": [19.9, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 0, 16, 5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "south": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "west": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "up": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "down": {"uv": [11.5, 0, 16, 5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0, 1, 2, 3, 4, 5] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/casing_right.json b/src/main/resources/assets/create/models/block/flywheel/casing_right.json new file mode 100644 index 000000000..706c95184 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/casing_right.json @@ -0,0 +1,95 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "5": "create:block/brass_casing", + "7": "create:block/brass_gearbox", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [1, 0, 0], + "to": [12, 16, 16], + "faces": { + "north": {"uv": [8, 10.5, 16, 16], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "south": {"uv": [0, 15.5, 8, 10], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "up": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8, 10.5, 16, 16], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [0, 0, 0], + "to": [1, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 24]}, + "faces": { + "north": {"uv": [15, 14, 16, 16], "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "texture": "#5"}, + "south": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "texture": "#5"}, + "up": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"}, + "down": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"} + } + }, + { + "from": [0, 14, 0], + "to": [1, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [0, 14, 1, 16], "rotation": 180, "texture": "#5"}, + "east": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#5"}, + "south": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "west": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "up": {"uv": [0, 0, 16, 1], "rotation": 270, "texture": "#5"}, + "down": {"uv": [0, 1, 16, 2], "rotation": 90, "texture": "#5"} + } + }, + { + "from": [0, 2, 0], + "to": [1, 14, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 0, 14, 1], "rotation": 90, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#5"}, + "south": {"uv": [2, 1, 14, 2], "rotation": 90, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 90, "texture": "#5"}, + "up": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "down": {"uv": [0, 14, 1, 16], "texture": "#5"} + } + }, + { + "from": [0, 2, 14], + "to": [1, 14, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 8]}, + "faces": { + "north": {"uv": [2, 1, 14, 2], "rotation": 270, "texture": "#5"}, + "east": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#5"}, + "south": {"uv": [2, 0, 14, 1], "rotation": 270, "texture": "#5"}, + "west": {"uv": [2, 14, 14, 16], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "down": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"} + } + }, + { + "from": [10.9, 3, 3], + "to": [19.9, 13, 13], + "rotation": {"angle": 0, "axis": "y", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [11.5, 0, 16, 5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "south": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "west": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "up": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "down": {"uv": [11.5, 0, 16, 5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0, 1, 2, 3, 4, 5] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/flywheel.bbmodel b/src/main/resources/assets/create/models/block/flywheel/flywheel.bbmodel new file mode 100644 index 000000000..a1c9455f2 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/flywheel.bbmodel @@ -0,0 +1 @@ +{"meta":{"format_version":"3.2","model_format":"java_block","box_uv":false},"name":"item","resolution":{"width":16,"height":16},"elements":[{"name":"cube","from":[22,6,6],"to":[32,10,10],"autouv":0,"color":0,"origin":[-5,8,8],"faces":{"north":{"uv":[2,7,7,9],"texture":0},"east":{"uv":[0,7,2,9],"texture":0},"south":{"uv":[2,7,7,9],"texture":0},"west":{"uv":[0,7,2,9],"texture":0},"up":{"uv":[2,7,7,9],"texture":0},"down":{"uv":[2,7,7,9],"texture":0}},"uuid":"50a686cc-3204-b7bf-1566-d1ef05844c60"},{"name":"cube","from":[7,7,7],"to":[23,9,9],"autouv":0,"color":4,"rotation":[0,0,-22.5],"origin":[23,8,8],"faces":{"north":{"uv":[0,9,8,10],"rotation":180,"texture":0},"east":{"uv":[0,0,0,0],"rotation":180,"texture":null},"south":{"uv":[0,9,8,10],"rotation":180,"texture":0},"west":{"uv":[0,0,0,0],"rotation":180,"texture":null},"up":{"uv":[0,9,8,10],"rotation":180,"texture":0},"down":{"uv":[0,9,8,10],"rotation":180,"texture":0}},"uuid":"b575be0b-21f0-8150-9d24-be88ac50d1df"},{"name":"cube","from":[3,3,-3.9000000000000004],"to":[13,13,5.1],"autouv":0,"color":5,"origin":[8,8,1.0999999999999996],"faces":{"north":{"uv":[11,5,16,10],"texture":0},"east":{"uv":[11.5,0,16,5],"texture":0},"south":{"uv":[11,5,16,10],"texture":0},"west":{"uv":[11.5,0,16,5],"rotation":180,"texture":0},"up":{"uv":[11.5,0,16,5],"rotation":270,"texture":0},"down":{"uv":[11.5,0,16,5],"rotation":90,"texture":0}},"uuid":"2f1e2920-2ea2-8af4-3221-eb3bc7043169"},{"name":"cube","from":[0,0,4],"to":[16,16,15],"autouv":0,"color":5,"origin":[8,8,8],"faces":{"north":{"uv":[0,0,16,16],"texture":5},"east":{"uv":[0,15.5,8,10],"rotation":270,"texture":0},"south":{"uv":[0,0,16,16],"texture":5},"west":{"uv":[8,10.5,16,16],"rotation":90,"texture":0},"up":{"uv":[8,10.5,16,16],"rotation":180,"texture":0},"down":{"uv":[8,10.5,16,16],"texture":0}},"uuid":"b0cd1b60-1f63-cbfa-eb62-4b456dfe2734"},{"name":"spoke","from":[6,-8,-0.8999999999999995],"to":[10,3,3.1000000000000005],"autouv":0,"color":0,"rotation":[0,0,-45],"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"east":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"south":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"west":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"up":{"uv":[0,0,0,0],"rotation":90,"texture":null},"down":{"uv":[0,0,0,0],"rotation":270,"texture":null}},"uuid":"cb470bb9-82ea-3186-ac3f-e6cd886649bc"},{"name":"cube","from":[-0.5,23.5,-1.8500000000000005],"to":[16.5,28.5,4.049999999999998],"autouv":0,"color":4,"rotation":[0,0,-45],"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"texture":0},"east":{"uv":[8.5,0,11.5,2.5],"texture":0},"south":{"uv":[0,0,8.5,2.5],"texture":0},"west":{"uv":[8.5,0,11.5,2.5],"texture":0},"up":{"uv":[0,2.5,8.5,5.5],"texture":0},"down":{"uv":[0,2.5,8.5,5.5],"texture":0}},"uuid":"63aed4d8-2ff2-0746-1545-6a76e0d97a9c"},{"name":"cube","from":[-0.5,23.5,-1.9000000000000012],"to":[16.5,28.5,4.099999999999999],"autouv":0,"color":4,"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"texture":0},"east":{"uv":[8.5,0,11.5,2],"texture":0},"south":{"uv":[0,0,8.5,2.5],"texture":0},"west":{"uv":[8.5,0,11.5,2.5],"texture":0},"up":{"uv":[0,2.5,8.5,5.5],"texture":0},"down":{"uv":[0,2.5,8.5,5.5],"texture":0}},"uuid":"6fce1c92-91b6-6314-3bcc-81af1da4fcde"},{"name":"cube","from":[14.75,7,11.549999999999997],"to":[30.75,9,13.449999999999996],"autouv":0,"color":7,"rotation":[0,0,-22.5],"origin":[15,8,21],"faces":{"north":{"uv":[0,9,8,10],"rotation":180,"texture":0},"east":{"uv":[0,0,0,0],"rotation":270,"texture":null},"south":{"uv":[0,9,8,10],"rotation":180,"texture":0},"west":{"uv":[0,0,0,0],"rotation":270,"texture":null},"up":{"uv":[0,9,8,10],"rotation":180,"texture":0},"down":{"uv":[0,9,8,10],"rotation":180,"texture":0}},"uuid":"206f3d87-1379-a949-ead0-500086d5bbe2"},{"name":"cube","from":[29,1,11.5],"to":[32,3,13.5],"autouv":0,"color":4,"origin":[8,8,17],"faces":{"north":{"uv":[6.5,9,8,10],"rotation":180,"texture":0},"east":{"uv":[0,9,1.5,10],"rotation":180,"texture":0},"south":{"uv":[0,9,1.5,10],"rotation":180,"texture":0},"west":{"uv":[0,9,1.5,10],"rotation":180,"texture":0},"up":{"uv":[0,9,1.5,10],"rotation":180,"texture":0},"down":{"uv":[0,9,1.5,10],"rotation":180,"texture":0}},"uuid":"0af1e6ff-4a9e-283a-2942-84d3ec8b5836"},{"name":"cube","from":[23.5,-0.5,-1.9000000000000012],"to":[28.5,16.5,4.099999999999999],"autouv":0,"color":4,"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":270,"texture":0},"east":{"uv":[0,2.5,8.5,5.5],"rotation":90,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":90,"texture":0},"west":{"uv":[0,2.5,8.5,5.5],"rotation":90,"texture":0},"up":{"uv":[8.5,0,11.5,2.5],"rotation":90,"texture":0},"down":{"uv":[8.5,0,11.5,2],"rotation":90,"texture":0}},"uuid":"a5520e2b-ba0a-b510-e5ea-f1a950a16250"},{"name":"cube","from":[-0.5,-12.5,-1.8500000000000005],"to":[16.5,-7.5,4.049999999999998],"autouv":0,"color":4,"rotation":[0,0,45],"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"east":{"uv":[8.5,0,11.5,2.5],"rotation":180,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"west":{"uv":[8.5,0,11.5,2.5],"rotation":180,"texture":0},"up":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0},"down":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0}},"uuid":"2f5b7526-cca3-7518-3496-d1b0bbe08e75"},{"name":"cube","from":[-12.5,-0.5,-1.8500000000000005],"to":[-7.5,16.5,4.049999999999998],"autouv":0,"color":4,"rotation":[0,0,-45],"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":90,"texture":0},"east":{"uv":[0,2.5,8.5,5.5],"rotation":270,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":270,"texture":0},"west":{"uv":[0,2.5,8.5,5.5],"rotation":270,"texture":0},"up":{"uv":[8.5,0,11.5,2.5],"rotation":270,"texture":0},"down":{"uv":[8.5,0,11.5,2.5],"rotation":270,"texture":0}},"uuid":"429976b8-16fe-3f5c-55db-9aab4c9fbebc"},{"name":"cube","from":[-12.5,-0.5,-1.9000000000000012],"to":[-7.5,16.5,4.099999999999999],"autouv":0,"color":4,"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":90,"texture":0},"east":{"uv":[0,2.5,8.5,5.5],"rotation":270,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":270,"texture":0},"west":{"uv":[0,2.5,8.5,5.5],"rotation":270,"texture":0},"up":{"uv":[8.5,0,11.5,2],"rotation":270,"texture":0},"down":{"uv":[8.5,0,11.5,2.5],"rotation":270,"texture":0}},"uuid":"50806591-41a8-f2bc-7a1d-e43b23b96408"},{"name":"cube","from":[-0.5,-12.5,-1.8500000000000005],"to":[16.5,-7.5,4.049999999999998],"autouv":0,"color":4,"rotation":[0,0,-45],"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"east":{"uv":[8.5,0,11.5,2.5],"rotation":180,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"west":{"uv":[8.5,0,11.5,2.5],"rotation":180,"texture":0},"up":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0},"down":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0}},"uuid":"801950a3-dd0a-627f-7246-561bcad27e88"},{"name":"cube","from":[-0.5,-12.5,-1.9000000000000012],"to":[16.5,-7.5,4.099999999999999],"autouv":0,"color":4,"origin":[8,8,1.0999999999999988],"faces":{"north":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"east":{"uv":[8.5,0,11.5,2.5],"rotation":180,"texture":0},"south":{"uv":[0,0,8.5,2.5],"rotation":180,"texture":0},"west":{"uv":[8.5,0,11.5,2],"rotation":180,"texture":0},"up":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0},"down":{"uv":[0,2.5,8.5,5.5],"rotation":180,"texture":0}},"uuid":"b991a213-a5c0-1951-d6f3-229a0c14d9c5"},{"name":"cube","from":[0,0,15],"to":[16,2,16],"autouv":0,"color":3,"origin":[24,8,8],"faces":{"north":{"uv":[0,0,16,2],"texture":4},"east":{"uv":[0,14,1,16],"texture":4},"south":{"uv":[0,14,16,16],"texture":4},"west":{"uv":[15,14,16,16],"texture":4},"up":{"uv":[0,1,16,2],"texture":4},"down":{"uv":[0,0,16,1],"texture":4}},"uuid":"7883be7c-2f95-da04-1f6b-6eb29690cc04"},{"name":"cube","from":[0,14,15],"to":[16,16,16],"autouv":0,"color":3,"origin":[8,8,16],"faces":{"north":{"uv":[0,0,16,2],"rotation":180,"texture":4},"east":{"uv":[15,14,16,16],"rotation":180,"texture":4},"south":{"uv":[0,14,16,16],"rotation":180,"texture":4},"west":{"uv":[0,14,1,16],"rotation":180,"texture":4},"up":{"uv":[0,0,16,1],"rotation":180,"texture":4},"down":{"uv":[0,1,16,2],"rotation":180,"texture":4}},"uuid":"af3517df-2487-59e1-2d3b-ac71c65b47eb"},{"name":"cube","from":[0,2,15],"to":[2,14,16],"autouv":0,"color":3,"origin":[8,8,16],"faces":{"north":{"uv":[0,0,12,2],"rotation":270,"texture":4},"east":{"uv":[2,1,14,2],"rotation":90,"texture":4},"south":{"uv":[2,14,14,16],"rotation":90,"texture":4},"west":{"uv":[2,0,14,1],"rotation":90,"texture":4},"up":{"uv":[15,14,16,16],"rotation":90,"texture":4},"down":{"uv":[0,14,1,16],"rotation":90,"texture":4}},"uuid":"3236180d-0eb5-9846-f6df-71338b95b172"},{"name":"cube","from":[14,2,15],"to":[16,14,16],"autouv":0,"color":3,"origin":[8,8,16],"faces":{"north":{"uv":[0,0,12,2],"rotation":90,"texture":4},"east":{"uv":[2,0,14,1],"rotation":270,"texture":4},"south":{"uv":[2,14,14,16],"rotation":270,"texture":4},"west":{"uv":[2,1,14,2],"rotation":270,"texture":4},"up":{"uv":[0,14,1,16],"rotation":270,"texture":4},"down":{"uv":[15,14,16,16],"rotation":270,"texture":4}},"uuid":"ffb4c72b-0971-aa72-e873-312bea4c432f"},{"name":"spoke","from":[-8,6,-0.8999999999999995],"to":[3,10,3.1000000000000005],"autouv":0,"color":0,"rotation":[0,0,-45],"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"east":{"uv":[0,0,0,0],"rotation":180,"texture":null},"south":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"down":{"uv":[9,4.5,11,10],"rotation":270,"texture":0}},"uuid":"1dba4685-5282-a030-17a2-2f9374e8c6a1"},{"name":"spoke","from":[-8,6,-0.8999999999999995],"to":[3,10,3.1000000000000005],"autouv":0,"color":0,"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"east":{"uv":[0,0,0,0],"rotation":180,"texture":null},"south":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"down":{"uv":[9,4.5,11,10],"rotation":270,"texture":0}},"uuid":"b7cb6152-0be0-b1df-252e-0cab5138efdf"},{"name":"spoke","from":[13,6,-0.8999999999999995],"to":[24,10,3.1000000000000005],"autouv":0,"color":0,"rotation":[0,0,-45],"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"east":{"uv":[0,0,0,0],"rotation":180,"texture":null},"south":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"down":{"uv":[9,4.5,11,10],"rotation":90,"texture":0}},"uuid":"1b7cc7a0-6cc9-31a9-143f-94aee22489b4"},{"name":"spoke","from":[6,13,-0.8999999999999995],"to":[10,24,3.1000000000000005],"autouv":0,"color":0,"rotation":[0,0,-45],"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"texture":0},"east":{"uv":[9,4.5,11,10],"texture":0},"south":{"uv":[9,4.5,11,10],"texture":0},"west":{"uv":[9,4.5,11,10],"texture":0},"up":{"uv":[0,0,0,0],"rotation":90,"texture":null},"down":{"uv":[0,0,0,0],"rotation":270,"texture":null}},"uuid":"e65ae52f-ddd5-8121-f730-88b35ea0fb5a"},{"name":"spoke","from":[13,6,-0.8999999999999995],"to":[24,10,3.1000000000000005],"autouv":0,"color":0,"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":270,"texture":0},"east":{"uv":[0,0,0,0],"rotation":180,"texture":null},"south":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[9,4.5,11,10],"rotation":90,"texture":0},"down":{"uv":[9,4.5,11,10],"rotation":90,"texture":0}},"uuid":"d7980b7f-ef13-e3e1-ab0d-537ffccff639"},{"name":"spoke","from":[6,-8,-0.8999999999999995],"to":[10,3,3.1000000000000005],"autouv":0,"color":0,"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"east":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"south":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"west":{"uv":[9,4.5,11,10],"rotation":180,"texture":0},"up":{"uv":[0,0,0,0],"rotation":90,"texture":null},"down":{"uv":[0,0,0,0],"rotation":270,"texture":null}},"uuid":"841862c5-48f4-a81f-17fb-497457cbe793"},{"name":"spoke","from":[6,13,-0.8999999999999995],"to":[10,24,3.1000000000000005],"autouv":0,"color":0,"origin":[8,8,1.1000000000000005],"faces":{"north":{"uv":[9,4.5,11,10],"texture":0},"east":{"uv":[9,4.5,11,10],"texture":0},"south":{"uv":[9,4.5,11,10],"texture":0},"west":{"uv":[9,4.5,11,10],"texture":0},"up":{"uv":[0,0,0,0],"rotation":90,"texture":null},"down":{"uv":[0,0,0,0],"rotation":270,"texture":null}},"uuid":"29d0cc13-9e08-c9ca-7219-6f1c06816a16"}],"outliner":[{"name":"transmission","uuid":"29aace9e-9299-b75e-5ed5-db8534b5fcbd","export":true,"isOpen":true,"visibility":true,"autouv":0,"origin":[-8,8,8],"children":["0af1e6ff-4a9e-283a-2942-84d3ec8b5836","206f3d87-1379-a949-ead0-500086d5bbe2","50a686cc-3204-b7bf-1566-d1ef05844c60","b575be0b-21f0-8150-9d24-be88ac50d1df","b0cd1b60-1f63-cbfa-eb62-4b456dfe2734","7883be7c-2f95-da04-1f6b-6eb29690cc04","af3517df-2487-59e1-2d3b-ac71c65b47eb","3236180d-0eb5-9846-f6df-71338b95b172","ffb4c72b-0971-aa72-e873-312bea4c432f"]},{"name":"wheel","uuid":"a3567eb7-af40-11f6-7e9b-dab5508c4ff5","export":true,"isOpen":true,"visibility":true,"autouv":0,"origin":[24,8,8],"children":["2f1e2920-2ea2-8af4-3221-eb3bc7043169","6fce1c92-91b6-6314-3bcc-81af1da4fcde","b991a213-a5c0-1951-d6f3-229a0c14d9c5","a5520e2b-ba0a-b510-e5ea-f1a950a16250","50806591-41a8-f2bc-7a1d-e43b23b96408","63aed4d8-2ff2-0746-1545-6a76e0d97a9c","801950a3-dd0a-627f-7246-561bcad27e88","2f5b7526-cca3-7518-3496-d1b0bbe08e75","429976b8-16fe-3f5c-55db-9aab4c9fbebc","cb470bb9-82ea-3186-ac3f-e6cd886649bc","e65ae52f-ddd5-8121-f730-88b35ea0fb5a","b7cb6152-0be0-b1df-252e-0cab5138efdf","d7980b7f-ef13-e3e1-ab0d-537ffccff639","1dba4685-5282-a030-17a2-2f9374e8c6a1","841862c5-48f4-a81f-17fb-497457cbe793","1b7cc7a0-6cc9-31a9-143f-94aee22489b4","29d0cc13-9e08-c9ca-7219-6f1c06816a16"]}],"textures":[{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\steam_engine_wheel.png","name":"steam_engine_wheel.png","folder":"block","namespace":"create","id":"0","particle":true,"mode":"bitmap","saved":true,"uuid":"00cbd3bd-665f-44c1-56df-1cd7fc617269","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAHLUlEQVRYR61XaYwURRT++u7pmV3YXQhHCBgFPHZBEVDjTYxnFI9EQdQYSMCIJqIx3lExoEAQFY9EMEGDgcR4ofEOYoJRVBAWXG5UPDhnjzn6mL7KvOrt3p5xMIH4fkx11/H6q/e+91WN8N27d7NKxYemyaCWMQYyQRB4X9mqQJEk3hfP8YIAQcDgeQHvH9Cc5Wtr+2VRwbwF7+OGm8/j8xzH5+3nH2/EE4/chM/WfwuBAPyy5yBURUF30YLvezA0BZLMAKbAcjxkDQEslGHaLkIGyLIIWRCQy2XQ2VPA+eNOAfkwba+qf0C/Fixb9jkHUHE9lK0CimWg/fu9mDXrKmzq+BnCO69OY4WSw5EVTROHj5ZAQRg2OAdAB2MBJMlHGGo4lO+C74cY1NKIhpwOUQAKZQvDhw4A+SgUrap+Q83h7ZXrOICSaaNsmnDcCMDtd0zCjl87IgD7DxxFY8aApisoliwwuAgDCaIkQ1cl2I4LQZQgieARMXQNqiqhZLqwKw5GnzQY5COj6lX9zbn+CYAjnQW4XgWeLyYAdv++HcLix69giqLCsk2AqVAUhlwmg+5SEZpioOJZUKQMj5Dr+ZBEEX4YImQe5wmZrsogH2WTUtTXP2zgoCQFhzvLEBDwNHVs3IcZ06/Elh2bowgQmRRF4qTy/BCeH0CRI+LVe477qM139+DRhV9HSGrs5SdvZKtXfcNTUCyZYBDRVTB5BG6ddil+O7AzAtBTtDgJC2UbigS+SwgBJ16ahPQsiCIkUYAIIJvVse/PQ5i3dH1dAG8unMqWLf8CV103Aa7vgIUSuooRgFkzr8SWnVsgrFxyCwuomgQgCEMIgohy2QKPriCBsRAZTeT99OFCuYyK50ESFeR7OiFLxjEBLJ8/ha1Y8SUHYNomGFNwpKuA3Zv3Y/r0K9Cxtz0CQJ2DBzYj8Cm3DIViiaeEjD5KoaPfCqXI88AEBl3RkMsa2LrrDyxZvqFuBNIAyqaDnoIF23Oxb+tffQCWL7iJ9ZRK6J/LgRH/fSAI/LqpqA0/kTAGsOjRq7mCxWLz5AtfCWkAB/M9sB0PQRAkAH7atgnCcw9PYkYmm1SBpsowdLluFaTJR6CJsGQUAQKQFhtNLiWUDEi9ACiKiDBgiN+54tZj74n0EYC02DQ12Ljw7HO5Kz8I4XoMlu3CtCocAKV6z/7t/y+AtNgMbLIxdvQEzFv0PgfRmJUjMF4UjUQJT2S39dZQBNJiM7jFQevI8RzAKUNz8N0oXWRHixUOgCvhM/ePjchTCWHZPpr7q1X+qZ9kgSzs9UHzXlyxsyp9BCDfbUJTRVDb0s9G28izsPSVTzCwUUO37SKrKlAlgT8nSkgAzjptAg7nS+jYu40DoHdFjr5qOdGRSwSkM8H3Az6vHoC02hEHxrdOxEuvrEFTRoUbRKEnABSBRAmfuLeNjRjSCqfiYvf+7ejXoIDeOWtlAZbj8rM/bTTv5bd2VUXgmfsvZ2m1owgQgBeWRgDIZFXkqSAAiRLOmjqSGRk5KY1KJQC9x3asEqoHIK12Jw8LMaF1IhY8/0FCvPQmEiWcdNmk6u3VMMx13aRHVVXQe7pdt3YdjwRFIK12o0YI1am0PRw4UuS+JEmAIiuRFE++4XpmGAZc14PcewKGIYPvu9D1DK9XsffYtSwLqpaBKDCIogh6/+jDNQmAtNoRgLS5XghVEUFtbEfyDoQ5009LIlAv3HQWkIlS1NYqWTxOYyeyXnhsdhuLFYsYn+8qw/UD0L1M1+TkXtBVtDiAQS0NCIMQoiTih62b0JBVcNH46NJ5vOs3tG+EQFUwevgYzH9jE3fiOA7Pc601NjbyMTJd1/HgneN4DomwxPYlSz+KQNjRnHREGrLRjSptt027JLoTkg4MH9KKhxav/dek/+pY9OBl/EqVy8oYMeR0vPb6p3y6kdGrljXn+ipK13Qc6CzzcQLAlXDunDHs1JPOxAML18IPAsiSxNtjGY2TzZ9zCdp3buHCNXrEWDy7ONJ8MuIFAYk/3lX2Ueo2+8Z1CffdOzm6E1IKSDKffu3HZEIcaterToWqqDz8dITdM6UVv/69A9mMzCX3vXfWJ7sjR3Qypi1OA4EiQFOnXBzdCR+/p42dfcZEzJ27GpIuIXACiNSGDA1GX+5KVuSQaoGckYNYOcedXr2e+6H1qdynAaXX8yogEj3/0poEcCcGwLKrdxDlN4NRuR4+75rrL+QkoipIk5DG0nmn3aYtHrt68gV9JJzYdg4efmpVMu+QS/+K6tuopoD/f5w543K072rnHKhdn9750JbIl1OJqiMGROv5rZiqgDT7kadXJyE76PWD71cjjyPQgjwvtdl3XcvLMA0g/nBcipROTkpdqqqO9HoO4MxTx/cdv7YHh26mdAT3/vu1HB9BSOLUy/KUlrc0af/S/ONZn1xI4oCntZq0u9ZqtXzYEKNqyvGu/wfoI6jojiEvZgAAAABJRU5ErkJggg=="},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\axis.png","name":"axis.png","folder":"block","namespace":"create","id":"1","particle":false,"mode":"bitmap","saved":true,"uuid":"11fa98c7-e27a-e24b-c2d5-5354841d3e37","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAo0lEQVQ4T6WTIQ4EIQxFO4IRIECAgLshMBwKO+fCggWDZVOSSVbMJjulkpTH/+X3gB/lvZ/WWhhjQO8drus6nlofD7ExhDCFEOsOGcAYA+cc5JzfK4gxTnxdKQW1VhrgPE/QWu8pQAulFEgpvRvit4XWGg2AFjjnQAJgDqSUawYkC3eQUAEJgEEyxiwLpBxsA/AXMERYW0FCCyTAvUxkwL/r/AGRGnYRGJZooQAAAABJRU5ErkJggg=="},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\axis_top.png","name":"axis_top.png","folder":"block","namespace":"create","id":"2","particle":false,"mode":"bitmap","saved":true,"uuid":"279bd0dd-96c2-3792-e8c9-19b78bfa04b1","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA6UlEQVQ4T2NMDFP8z8DAwPDpyzcGPh4uOD1/1X1GkDghwAgywMLIguHtu/cMLEx/Gd58fMPw+u0HBpIMMDc0Y3j16hXDlx8fGGQklRjOXzlHmgGWZg4Md+5eANusp6bOcOnWTeINCPYS/29jZMjw+etPuHcv3rzGsHbbS+LDABaIIBoWkEQbgCuU09LS/gsICDD8+vWL4du3bwyzZs3C6iKcziwoKPgvJSXF8OPHD4YvX74wdHV1kWZAWVnZfx4eHobfv38zfP78mWHChAmkGRAbG/tfUlKSfC8QSoEweaKiCp9howYwMAAAZ+5uEWwI6EAAAAAASUVORK5CYII="},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\furnace_cylinder.png","name":"furnace_cylinder.png","folder":"block","namespace":"create","id":"1_1","particle":false,"mode":"bitmap","saved":true,"uuid":"22db08fc-cd87-a68b-b384-8c82a249326f","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAIWklEQVRYR51XWWxcZxX+7jaLM9PsceK4sTOeOLbH4yXjrUsqHkirSggKVIhXXngAVCXwgIQqtQkIXioeQEKAhBAPLEKiDzxEDY3yECcgaB3HdjyJZ8ZjO3ZiJ44ntme964/Oub7XYydUwC+N7v6f73zf2UY6/40Oga1lO+6ppslwbAG6VmTJe+wfvfd2P6DvPmuZpuM//vnvZnhj6Qff6hZnUyP8oFKz8aRQgmHZgBAIBVVoqoLMwh28embYf2dldROOEMgupKHrNr587nP+xrQH71WpoaEhxEcBCeWKzg7Rd3cyU/j1n3LbAFKJQfz0Z391P6zWnvH0ra/E0NM+gMnMp4g1J5FfmsLRg+24m5+GaTk499LLGB37JxzHYQPsGQA627qEJEn864wlMJmZwi9/n3UBvPudbtFyrBO/+e1V7NujolhzaSqWqz6Qr77dhkQ8hVJF53ubpRpURUJmPo2aYeNsagi30rfwxiuvsRHDsmBaAtWqyd9YlsNA0vkJdLV17wRw6UKPaG/pwU8++BDBYACKQvq7IA5ENKiqjNSrhxlAuWpACIFiWfcBEK0jvQOYyt7C2TNnfQCGacM0bFi2DccBg5qcGcdgcgBj07fgx4DHwC9+dZmNNoRDbMQwTJhVC4oi4Qtvx9AdP4NKzYRuWPwLBVSkZ6dY11RXP7KLEzjTMcJ6m5YJ07Jh24L3Iu9Ny8JUZgIdJ7uRWUhvA/AY+PEHH/qUU+QTkAMRlelLnW1Ed7yP6SZKHUcg0hDA5MyEDyD/YBI97cMcEwSADFu2gGnaW3HgID07iVTiOQzQ5n/58ygerpV8EPUx8KW3YkjE+1CumiwDreieICbu3fYBzC5NItk+xAYN0+RgJPCGaUGSZGiqhOnsJE61JHYyQBL0dw7i4sU/QgkpsGu2e3QEonvCbOzzbzQxgMJGFaQtlYZwKMCU0nudsSSWHk2j9/Qge10zDH6PZBCOQEBTEQyoGL87hvaWXRJQHahPQzf4VJ+JQsnC6282IdHWj+XVIqeWIgMBLYDpnAugvbULq08z6Dk1yDJVqrobAw5FBBAKBhAIqBib/hfHAKWvH4QUA4PdQ/j+e3/wjXqe042mgxEkh/cygIePN/kdCkxN1bYBtHShsJlDoi2FYtlAuVpj3cm4JEvQNA2qIuPTO59gKJnCWHr8+QA8w14xIjloffFrcQ7CdP42Du07hSfrWS5It++Os8eJtm48Lc76Xgc1maXwGJAkoFyxUSxZGO4dwFj61nYhIgb6OgagqW4dr1RN1AyLzymgaN1fSf9HBghAT3uSGaFAq9QMTj9iiY5+Saxj7pOpse1STAB87gEYdQ0jUNdc6D5d1z9//GS7bDeE3bjxGlh9Y6P7XnOjc+offi94XjfMPY7xZrquIxgM1uPj81KphHMDGzvu13QH8lYzrAdOLxFoqoahoOsAnbtsW5De/XaPSLZ3sWYUZEuP5pFZacWeaBSKosC2bf/oWVwvFPBa8jFIOlqaSt5z69kBirSvX15joiMVqo//fhPS++f7xOnWDkzfS+PQoRcx/2AOMyst2HfgAEzTZOPylmt0TevR8jIzMNg9gsz8IzigiudgfzSMhrCGp8UqxJaXVA8oJWiPcEhDZE+AjR/aF8WVG9ch/fC7fSLW3AnDpCZTxtxSHhPzjb5RT4rdOrgAhjGdW+Gqd3BvAzeymmHCsh3uG5osw7Qd2MJBJBxAQyjAZVxVJRw9uBeXr28BONWSRLVGZVbH3GIGq2aKvaf89bxeX19HNBrF8vIyRkdHuY2/0k8MPGEAVJppHqjoBl8bhoOArEBSJAgIBDUV4ZDKIEmaw/siuHx9FNKlC73cjglxtWYgvzjDAApra1BUFbblpqR3XqlWce3aNR9A7v4ap5wsSxzpOs0CDtEOyJAQDgbYIO8hywyA1vEjL+Djf9yEdPE8AUiiXDNhWTay83fxsNKD4uYmcrOzO5iPx+PY2NjYwUB+qcAzA9FOABzhUi5L5DkQ0jQGQLoT/VQbHEfC6ZMHceXGDUjvvdMrTrd2o1Q1QZ/cm0vjYbkHlUoFMzMzOwG0tcFjwCvhi482ePOqbrIEFGxknEqvN5YROxT5NsWD7XbJrvgRV4L33+kV1CKLFYPpuZefZgAkwcL9+88A2NjcZAYIwFByCIvLReimCcM2YQsBRZKgSC7NNNB6i4yTYS7PEpCIN+Kj0RuQLp3vE20nurBR1JnKmS0GisUicrncDgDNzc3sJcWAByCdf8zvEP30fUBTmHoKRAJDi407rvcEbm80jKYjEReAm4ZdKKxXuWXSoJlZOQEBBaZhcCYUSyVEIxHebDcDlAXENeW9otLgIbMklH40C3BwsvbuxEzyUD1obdrvAvjR9/pF7HgXnqxXOFUIwPhc4zNpWE9FvQTZhTWO+BCnmMQU8892WBqujZQRJA3Fh0xHCSePH9iS4EKfaG1qx3rRRECTkF2YwXi+0e8BVPfJ4O5C5AVhZm4VJOoLkSAXGN20YVlUB9x0pDGdlirL0BSSR/BQ23HyiJeGfaLlWBtyc1k0H48hu5BD+sGL3Au8svtZAOYfFNx0C6ocA1SSqaWTEUlx05A8J1koPSkQKWP6Tje5AEiCpsMn2Rh1p9nFHO4tb/cCajxXr159hgGqhC/3jaCwWeHZnwKM6KUZYrOo8yQkZAfRcBABVWVgVGl1i5qbhETsKP528wYVoqSgTkgakXarazWkl46xBNSOaT2PAQLwUu8wVgtlTisKOirnum6xccoGyphgUN0qPtux0RBSceLYfnxEhWi3tv/tNQGgOuDm+//ejgnclZs3/38A3/x6XHhTEOf6rr/2ux2RFdfX+smIrv8Nut9XyvRF8YQAAAAASUVORK5CYII="},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\brass_casing.png","name":"brass_casing.png","folder":"block","namespace":"create","id":"5","particle":false,"mode":"bitmap","saved":true,"uuid":"03f2b83c-2540-b890-0fa9-1048ec09c3c0","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB0UlEQVQ4T2PMjVf/zwAFrKxMMCZe+vfvf3B5xrQIlf+Brg5wgW8//oLZ3779YODi4gDTIPDj1x+4GiEBHjB75+HDDIwZ0ar/XS2tGJq71oMFudiYwTQLKyPDn9//wTQyAImBQFqqB8OJS2cgBtgamzF0T9jMoCwFMfnPL4QTQfxff/8zsDEjDHr96SfCAFAYWOibMEydto1BlI8drBgfABn0/vsvhoBgG4b7j28yMIIMMNYyZJi3YBeDICcb2ICPX3/BvQF2EdTZ/NxsYJeAXBASYYtqwKzZOxlACkDg+fvvDJKCnCgOARkKkwexMQxAdwFI8ddfv8GGcLOxgtkgmmgvwAwAOR/EhrkApxewuQDZDzAXgMRAhqWlujOcvXYeEoiaSroMSxbvhccCLBC//foLThewtIDshaQEN4QBagpaDKtXHYTHAqFoBMVCfLwzw5U7lyEJSVtZh2H1aogB2BIOzEAWNiZwIoMZcP7GRVQDYEkXFu/4XJKd5cVw+OwpiAF6aroMrCysDKwsjAzffvxi+Pv3PwMzMyOcBucRTnawed++/wTT/LycDAdPnWQA50aIAha4hX///WdgZmJkANEgAMvm//7+h4uBxH/+/MsAAPTFDuFjKTIFAAAAAElFTkSuQmCC"},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\brass_gearbox.png","name":"brass_gearbox.png","folder":"block","namespace":"create","id":"7","particle":false,"mode":"bitmap","saved":true,"uuid":"c8e5c536-6dcc-dc5c-680c-9d18e67c9b7d","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACLElEQVQ4T42TzWsTQRjGn9mPfGwToyVtSMEoVivGVtFoP8SCIFURAhY9FDykCA2i+Fd404sXPSiIoCdz8BAQKngoOZjWxqIWURAKKTRYRbGrm+xuNlveWXeTaBQfWN6Zd2Z+O+/HsGuZvTZ+SZYFd/hPa5oNb51lp3bbkxMnPIdWs/hY02pQlAC3pJpR9/Z0bw3x8WyhAHb54h57YuwYrt94wp2KT+RWkhnqps1tq8hHys6cQfHNogMYTw3j5q08+vscct1oXpHmhmXDJzogySeg8qXaBFAORg8ewe07TxGPBvlhrXsQXSEHRmKM4YeqQvm6zOffqgbOnT+OldUPYARIJQ/h/oNn6IkEsBFKolwuQ1VVfFpf5wdivb0Ih8NIJBIc8nlDx4Wp8XbA3XuziHT5IG4/ilelEtYqlbbY++JxDI+MQF95ge8/jT8BdINtQR9YYhT5fB6W5VTDlSiKSKfTsMvFv4fwv4COIbg3EHaMYb5Y7BjC4VQK1upLHkJ25jRK75acJO7bNYRHD5+jZ4ufV6BTEqPRKGKxGE8iVeHS9KkmYGBnErnHczwHJIL4AwEIgsA/KqNpmhDXFvk6hZDJnMTyx7dOI+3vH0Qu1wS0Nk5rIqmJSNRIBFh6/7od4Lau265tZfhtcvXKWRRKCw7gwMAQZEmGLDFoNQOWZUMUmWfprBL0O+FVdW4j4SDmFubBX6OzQfL+YTVsiAIDWZL7zBuW7fnIr+sWNgGA/hThYohg9gAAAABJRU5ErkJggg=="},{"path":"D:\\simon\\Minecraft\\Minecraft Assets\\minecraft\\textures\\MC Block Textures\\furnace_front.png","name":"furnace_front.png","folder":"MC Block Textures","namespace":"minecraft","id":"6","particle":false,"mode":"bitmap","saved":true,"uuid":"3895c9c0-992f-69b9-72eb-ef854cb1a475","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABy0lEQVQ4T32Tz0sCURDHx5uw/gITY1MwBEPLW3jQlQhPCWmXJPwD/A/Cq3+Af4EHu0keJbCTRGgepJuldJAEbUlsQV0XvBkzy3uuIM7lvTdv5zMz33lrukml1mCwP0WBA6eTe/DMDP3szL4xIeBQFOkbu91O63w+pz1bd/nk8RhUVQWTFIutj30+ED0eEEURZFkGm80Go9GIILi3WCywXC5pxXsG/ur3gVfg9Xop+3O9Dj+ybOyK749EEa6SSVgsFgT5lWUdcBIMUiYM/uz1dgYz52koBDFJAmzhezjUW0AHEqvVKg92OBxboNlsxs+FQgHeOx0dwCowAjDLLmPVMQAXEStAAd1uN8WZzeadgNVqRf7JZEJivrVamxZQAyaOpqo0FawK94LVujVW9KNxEe/zeZhOp+ByufYKaLzEMT9WKroGd9ksv8PysdTBYLAF8/v91Bre4aooCjyUyzrgOp0GQRCoN1S31W6DUXUk4VSkaBTOIxHSStM0eKrVdMBlIkHZXhoNeG0297ZxEY8DvptAILABoAOngONhtu8dFItFetqYkB7SbSZDYymVSlTqPsPWcrkcVUAaIOAsHIaPbpfHGX9nI8z4a7OYfw4q+2WVMkrOAAAAAElFTkSuQmCC"},{"path":"D:\\simon\\Minecraft\\Minecraft Assets\\minecraft\\textures\\MC Block Textures\\furnace_side.png","name":"furnace_side.png","folder":"MC Block Textures","namespace":"minecraft","id":"8","particle":false,"mode":"bitmap","saved":true,"uuid":"178a3ef8-0486-c590-9946-223b61cd6838","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABnElEQVQ4T4VTQUsCURAeb8K6Cm5CLAp2S0lCCC/6F9Iuec//EP4bu0l/QrrYQQskDLfOLktiK+i64M34ZpvXKzTnsm/mffPNzDf7Ylf1+pY0+/R9OrIsFYEvhrj4gomBwDRNMkyTcalUipbLJeVyOVqtVnwWkzv4YRBQEASkCOxslmzbZuzzcMiEAJ0WixwTMhCL/+44EcGxbXNFsUQioUhQFcTr9Zqvp9Opwj4NBr87SCaTit1zXUJXMg5IQfI2maj463hMsVq1uj3J5zlRdJDWJQlV0QkK4PzheYyHoGqEQqHAQc/zVFX4OomIzDjXjUREB9VajdklwXEcNSfEA/iiUlE6iIiP/X5EcFYqcYswzIwRYNBgXzJwGIVHuG23aT6fUyaTUZs4dIAW991uRHDZaJBhGJwTj8dps9nwd5f5vk+WZRG+d51ONMJNqxVt4ZvkUHXcz2Yzeuj1IoLrZpPV1g1kYRjuJEUc/wQTYITzcpnS6bRa2T4yJMlaF4sFvYxGP/+BvmMoLFv5O47+uNQWdNB/zxk4/anD/wJPDv7ZTcB8KgAAAABJRU5ErkJggg=="},{"path":"D:\\simon\\Minecraft\\Minecraft Assets\\minecraft\\textures\\MC Block Textures\\furnace_top.png","name":"furnace_top.png","folder":"MC Block Textures","namespace":"minecraft","id":"9","particle":false,"mode":"bitmap","saved":true,"uuid":"467cb437-a46b-4f88-1e88-7b712905e30d","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABdElEQVQ4T5WTMU8CQRCFh1oOCizMBRKs9Ij8AmgMlRTERn4xFqAdhtMacrGQAg5rzLeXtxkIjdPAzr15++bNbO15Mjmai5/t1q5brZjhrCCvszA1CJIkiaCrJLFOpxPO+/3eis3GyBHNZtMajYat12v7LUsry9IiQdpuW5qmAVgURfW72dh9r2f1et0Oh0Mo9ORfeV4R3KSpZVkWQICJ98XCPCk5kaCEiAR3WRak6SYvHbCUeeLdbmcfy6XVhoPB8aHfDz2pV/4jHSKAvv/P1Sqc6R9DowfqNc/z0KdakXQVgiPw47soKgWD4TDKVJ94orhEitGvs1lF8DKd+lWIU9DIzhVRzLe3+bxq4XE0OiGQCpIUI1c7ICDFRCBgCt5p3XDugxaIQgyPU7jtdsPMkSXnvQe61fvDJWEP8OBpPDa5DDNjFKFXIWW+jZMW2D6CYr0BbR15duLiKvOYKAIgs2gFiXzzC8Z/MGDDHvznOaPCP3XOf4rhB+gyEDqQAAAAAElFTkSuQmCC"},{"path":"C:\\Users\\simon\\Desktop\\Forge\\Create\\src\\main\\resources\\assets\\create\\textures\\block\\brass_block.png","name":"brass_block.png","folder":"block","namespace":"create","id":"10","particle":false,"mode":"bitmap","saved":true,"uuid":"a8ef7d1b-65c5-0db5-120d-dad3d9c754cf","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACM0lEQVQ4T1WTS2/TQBDH/961Y8dJ6iRqKaAKJApVgYqHeHwWPgEnLtw58a24cagQKg+1oaioFIHEQ6oqItEQ196X0ezETpjLrmZ3fzPzn9ng+dNbFRasKB2EYEcr4o3SDs4BSSyaPfnzM4OAAHc27yMK+XJeWL9qrf1aKAsZMLBQxq/DfhdpIvFie5sBD7Ye4vDbCWxVwdkKa6sZxqc5rOXkSmUgggBRKNHPEu9b7nf+B3w8OvYH9WPaT/ISkZDQjrNaGXSgjfPZZt0OXu68QvDsyVZ1d/Mefp2c+ktJHCIvlH9kTeUBUSRZk5ZEmkRcam6wfzRiwPUrtzH+k/sL1jqfemlZA7JeO/F+Mi6LRfn682AO+HtWeuc0V5Az1ajm2qQUDVxrLuPL9wMW8dL5G9CmQqFUE5lSJ1uEaG29BmRZN8HocDQHjCe5P6AupG2uk7oiA06XHtddGmYdiADY/bTLgOX+BuxM6VosWpWxcNZBSAFnnAd4oVsh0rg1BwyW1oGZNv2lBNpwqiRcrlSjQyyjRp+iNPhx/JkzGPTW4SoaYYFFwHSqAAFEkvWoxZ1MS6+NB1AbV4fX/IRR5Fq4k99TOEpZVsjStofQYNGMUBfXzvXx5sM7Blxc2UCatPxBqQ0oMj2OWyGcc0iSCEoxnMaahqmXxtjZf8+AyxduziIHPkL9B3pdnnvquzYaaTtGPpuXrNfG6723CB4/ulql7bARyjpWOoqEb2ltYjZc5Kvv0Nk/rK1Cjidok2MAAAAASUVORK5CYII="}],"display":{"thirdperson_righthand":{"rotation":[75,-67,0],"translation":[0,2.5,-2],"scale":[0.375,0.375,0.375]},"thirdperson_lefthand":{"rotation":[75,-67,0],"translation":[0,2.5,-2],"scale":[0.375,0.375,0.375]},"firstperson_righthand":{"rotation":[0,-91,0],"scale":[0.4,0.4,0.4]},"firstperson_lefthand":{"rotation":[0,-91,0],"scale":[0.4,0.4,0.4]},"ground":{"rotation":[90,0,0],"translation":[0,2,0],"scale":[0.25,0.25,0.25]},"gui":{"rotation":[30,225,0],"translation":[-0.25,0.75,0],"scale":[0.35,0.35,0.35]},"fixed":{"scale":[0.45,0.45,0.45]}}} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/flywheel.json b/src/main/resources/assets/create/models/block/flywheel/flywheel.json deleted file mode 100644 index 153d434c8..000000000 --- a/src/main/resources/assets/create/models/block/flywheel/flywheel.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "parent": "block/block", - "ambientocclusion": false, - "textures": { - "0": "create:block/flywheel", - "1": "create:block/axis", - "2": "create:block/axis_top", - "particle": "create:block/flywheel" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/flywheel.mtl b/src/main/resources/assets/create/models/block/flywheel/flywheel.mtl deleted file mode 100644 index 8ac0149d3..000000000 --- a/src/main/resources/assets/create/models/block/flywheel/flywheel.mtl +++ /dev/null @@ -1,11 +0,0 @@ -# Blender MTL File: 'engine.blend' -# Material Count: 3 - -newmtl m_0 -map_Kd #0 - -newmtl m_1 -map_Kd #1 - -newmtl m_2 -map_Kd #2 diff --git a/src/main/resources/assets/create/models/block/flywheel/flywheel.obj b/src/main/resources/assets/create/models/block/flywheel/flywheel.obj deleted file mode 100644 index 11392429e..000000000 --- a/src/main/resources/assets/create/models/block/flywheel/flywheel.obj +++ /dev/null @@ -1,1081 +0,0 @@ -# Blender v3.2.0 OBJ File: 'engine.blend' -# www.blender.org -mtllib flywheel.mtl -o cube.008_cube.006 -v 0.625000 0.375000 1.562500 -v 0.625000 0.375000 0.937500 -v 0.625000 0.625000 1.562500 -v 0.625000 0.625000 0.937500 -v 0.375000 0.625000 1.562500 -v 0.375000 0.625000 0.937500 -v 0.375000 0.375000 1.562500 -v 0.375000 0.375000 0.937500 -v 0.318782 0.375000 0.937500 -v 1.339689 0.375000 1.162913 -v 0.897748 0.375000 0.720971 -v 1.339689 0.625000 1.162913 -v 0.897748 0.625000 0.720971 -v 1.162913 0.625000 1.339689 -v 0.720971 0.625000 0.897748 -v 1.162913 0.375000 1.339689 -v 0.720971 0.375000 0.897748 -v 0.937500 0.625000 0.681218 -v 0.681218 0.625000 0.937500 -v 0.681218 0.375000 0.937500 -v 0.937500 0.375000 0.681218 -v 1.562500 0.375000 0.375000 -v 1.562500 0.625000 0.375000 -v 0.937500 0.625000 0.375000 -v 1.562500 0.625000 0.625000 -v 1.562500 0.375000 0.625000 -v 0.937500 0.375000 0.625000 -v 0.937500 0.625000 0.318782 -v 1.162912 0.375000 -0.339689 -v 0.720971 0.375000 0.102253 -v 1.162912 0.625000 -0.339689 -v 0.720971 0.625000 0.102253 -v 1.339689 0.625000 -0.162912 -v 0.897747 0.625000 0.279029 -v 1.339689 0.375000 -0.162912 -v 0.897747 0.375000 0.279029 -v 0.681218 0.625000 0.062500 -v 0.937500 0.375000 0.318782 -v 0.681218 0.375000 0.062500 -v 0.500000 0.625000 0.500000 -v 0.500000 0.375000 0.500000 -v 0.375000 0.375000 -0.562500 -v 0.375000 0.375000 0.062500 -v 0.375000 0.625000 -0.562500 -v 0.375000 0.625000 0.062500 -v 0.625000 0.625000 -0.562500 -v 0.625000 0.625000 0.062500 -v 0.625000 0.375000 -0.562500 -v 0.625000 0.375000 0.062500 -v -0.339689 0.375000 -0.162912 -v 0.102252 0.375000 0.279029 -v -0.339689 0.625000 -0.162912 -v 0.102252 0.625000 0.279029 -v -0.162912 0.625000 -0.339689 -v 0.279029 0.625000 0.102253 -v -0.162912 0.375000 -0.339689 -v 0.279029 0.375000 0.102253 -v 0.318782 0.625000 0.062500 -v 0.318782 0.375000 0.062500 -v 0.062500 0.375000 0.318782 -v -0.562500 0.375000 0.625000 -v -0.562500 0.625000 0.625000 -v -0.562500 0.625000 0.375000 -v -0.562500 0.375000 0.375000 -v 0.062500 0.625000 0.318782 -v -0.162912 0.375000 1.339689 -v 0.279029 0.375000 0.897747 -v -0.162912 0.625000 1.339689 -v 0.279029 0.625000 0.897747 -v -0.339689 0.625000 1.162912 -v 0.102253 0.625000 0.720971 -v -0.339689 0.375000 1.162912 -v 0.102253 0.375000 0.720971 -v 0.318782 0.625000 0.937500 -v 0.062500 0.625000 0.681218 -v 0.062500 0.375000 0.681218 -v 0.750000 0.375000 0.750000 -v 0.750000 0.375000 0.250000 -v 0.250000 0.375000 0.750000 -v 0.250000 0.375000 0.250000 -v 0.750000 0.187500 0.750000 -v 0.750000 0.187500 0.250000 -v 0.250000 0.187500 0.750000 -v 0.250000 0.187500 0.250000 -v 0.750000 0.625000 0.750000 -v 0.750000 0.625000 0.250000 -v 0.250000 0.625000 0.750000 -v 0.250000 0.625000 0.250000 -v 0.750000 0.812500 0.750000 -v 0.750000 0.812500 0.250000 -v 0.250000 0.812500 0.750000 -v 0.250000 0.812500 0.250000 -v 0.250000 0.375000 0.625000 -v 0.062500 0.375000 0.625000 -v 0.250000 0.187500 0.625000 -v 0.062500 0.187500 0.625000 -v 0.062500 0.375000 0.500000 -v 0.250000 0.375000 0.500000 -v 0.062500 0.187500 0.500000 -v 0.250000 0.187500 0.500000 -v 0.093750 0.218750 0.625000 -v 0.093750 0.218750 0.687500 -v 0.093750 0.343750 0.625000 -v 0.093750 0.343750 0.687500 -v 0.218750 0.218750 0.625000 -v 0.218750 0.218750 0.687500 -v 0.218750 0.343750 0.625000 -v 0.218750 0.343750 0.687500 -v 0.750000 0.375000 0.625000 -v 0.750000 0.187500 0.625000 -v 0.937500 0.187500 0.625000 -v 0.937500 0.375000 0.500000 -v 0.750000 0.375000 0.500000 -v 0.937500 0.187500 0.500000 -v 0.750000 0.187500 0.500000 -v 0.906250 0.218750 0.625000 -v 0.906250 0.218750 0.687500 -v 0.906250 0.343750 0.625000 -v 0.906250 0.343750 0.687500 -v 0.781250 0.218750 0.625000 -v 0.781250 0.218750 0.687500 -v 0.781250 0.343750 0.625000 -v 0.781250 0.343750 0.687500 -v 0.250000 0.625000 0.625000 -v 0.062500 0.625000 0.625000 -v 0.250000 0.812500 0.625000 -v 0.062500 0.812500 0.625000 -v 0.062500 0.625000 0.500000 -v 0.250000 0.625000 0.500000 -v 0.062500 0.812500 0.500000 -v 0.250000 0.812500 0.500000 -v 0.093750 0.781250 0.625000 -v 0.093750 0.781250 0.687500 -v 0.093750 0.656250 0.625000 -v 0.093750 0.656250 0.687500 -v 0.218750 0.781250 0.625000 -v 0.218750 0.781250 0.687500 -v 0.218750 0.656250 0.625000 -v 0.218750 0.656250 0.687500 -v 0.750000 0.625000 0.625000 -v 0.937500 0.625000 0.625000 -v 0.750000 0.812500 0.625000 -v 0.937500 0.812500 0.625000 -v 0.937500 0.625000 0.500000 -v 0.750000 0.625000 0.500000 -v 0.937500 0.812500 0.500000 -v 0.750000 0.812500 0.500000 -v 0.906250 0.781250 0.625000 -v 0.906250 0.781250 0.687500 -v 0.906250 0.656250 0.625000 -v 0.906250 0.656250 0.687500 -v 0.781250 0.781250 0.625000 -v 0.781250 0.781250 0.687500 -v 0.781250 0.656250 0.625000 -v 0.781250 0.656250 0.687500 -v 0.250000 0.375000 0.375000 -v 0.062500 0.375000 0.375000 -v 0.250000 0.187500 0.375000 -v 0.062500 0.187500 0.375000 -v 0.093750 0.218750 0.375000 -v 0.093750 0.218750 0.312500 -v 0.093750 0.343750 0.375000 -v 0.093750 0.343750 0.312500 -v 0.218750 0.218750 0.375000 -v 0.218750 0.218750 0.312500 -v 0.218750 0.343750 0.375000 -v 0.218750 0.343750 0.312500 -v 0.750000 0.375000 0.375000 -v 0.937500 0.375000 0.375000 -v 0.750000 0.187500 0.375000 -v 0.937500 0.187500 0.375000 -v 0.906250 0.218750 0.375000 -v 0.906250 0.218750 0.312500 -v 0.906250 0.343750 0.375000 -v 0.906250 0.343750 0.312500 -v 0.781250 0.218750 0.375000 -v 0.781250 0.218750 0.312500 -v 0.781250 0.343750 0.375000 -v 0.781250 0.343750 0.312500 -v 0.250000 0.625000 0.375000 -v 0.062500 0.625000 0.375000 -v 0.250000 0.812500 0.375000 -v 0.062500 0.812500 0.375000 -v 0.093750 0.781250 0.375000 -v 0.093750 0.781250 0.312500 -v 0.093750 0.656250 0.375000 -v 0.093750 0.656250 0.312500 -v 0.218750 0.781250 0.375000 -v 0.218750 0.781250 0.312500 -v 0.218750 0.656250 0.375000 -v 0.218750 0.656250 0.312500 -v 0.750000 0.625000 0.375000 -v 0.750000 0.812500 0.375000 -v 0.937500 0.812500 0.375000 -v 0.906250 0.781250 0.375000 -v 0.906250 0.781250 0.312500 -v 0.906250 0.656250 0.375000 -v 0.906250 0.656250 0.312500 -v 0.781250 0.781250 0.375000 -v 0.781250 0.781250 0.312500 -v 0.781250 0.656250 0.375000 -v 0.781250 0.656250 0.312500 -v 0.375000 0.000000 0.375000 -v 0.375000 0.000000 0.625000 -v 0.375000 1.000000 0.375000 -v 0.375000 1.000000 0.625000 -v 0.625000 0.000000 0.375000 -v 0.625000 0.000000 0.625000 -v 0.625000 1.000000 0.375000 -v 0.625000 1.000000 0.625000 -v 1.068750 0.312500 1.873085 -v 0.940102 0.312500 1.562500 -v 1.873084 0.312500 1.068751 -v 1.562500 0.312500 0.940102 -v 1.873085 0.312500 -0.068750 -v 1.562500 0.312500 0.059898 -v 1.068750 0.312500 -0.873084 -v 0.940102 0.312500 -0.562500 -v -0.068750 0.312500 -0.873084 -v 0.059898 0.312500 -0.562500 -v -0.873084 0.312500 -0.068750 -v -0.562500 0.312500 0.059898 -v -0.873084 0.312500 1.068750 -v -0.562500 0.312500 0.940102 -v -0.068750 0.312500 1.873084 -v 0.059898 0.312500 1.562499 -v 0.940102 0.500000 1.562500 -v 0.059898 0.500000 1.562499 -v 1.562500 0.500000 0.940102 -v 1.562500 0.500000 0.059898 -v 0.940102 0.500000 -0.562500 -v 0.059898 0.500000 -0.562500 -v -0.562500 0.500000 0.059898 -v -0.562500 0.500000 0.940102 -v 1.068750 0.500000 1.873085 -v -0.068750 0.500000 1.873084 -v 1.873085 0.500000 1.068751 -v 1.873085 0.500000 -0.068750 -v 1.068750 0.500000 -0.873084 -v -0.068750 0.500000 -0.873084 -v -0.873084 0.500000 -0.068750 -v -0.873084 0.500000 1.068750 -v 1.068750 0.687500 1.873085 -v 0.940102 0.687500 1.562500 -v 1.873084 0.687500 1.068751 -v 1.562500 0.687500 0.940102 -v 1.873085 0.687500 -0.068750 -v 1.562500 0.687500 0.059898 -v 1.068750 0.687500 -0.873084 -v 0.940102 0.687500 -0.562500 -v -0.068750 0.687500 -0.873084 -v 0.059898 0.687500 -0.562500 -v -0.873084 0.687500 -0.068750 -v -0.562500 0.687500 0.059898 -v -0.873084 0.687500 1.068750 -v -0.562500 0.687500 0.940102 -v -0.068750 0.687500 1.873084 -v 0.059898 0.687500 1.562499 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.375000 0.375000 -vt 0.625000 0.375000 -vt 0.625000 0.625000 -vt 0.375000 0.625000 -vt 0.375000 0.375000 -vt 0.625000 0.375000 -vt 0.625000 0.625000 -vt 0.375000 0.625000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 0.906250 0.781250 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.906250 0.781250 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.812500 -vt 0.750000 0.812500 -vt 0.750000 0.750000 -vt 0.812500 0.750000 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.812500 -vt 0.812500 0.750000 -vt 0.750000 0.750000 -vt 0.750000 0.812500 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.812500 -vt 0.812500 0.750000 -vt 0.750000 0.750000 -vt 0.750000 0.812500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.812500 -vt 0.750000 0.812500 -vt 0.750000 0.750000 -vt 0.812500 0.750000 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.812500 -vt 0.812500 0.750000 -vt 0.750000 0.750000 -vt 0.750000 0.812500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.812500 -vt 0.750000 0.812500 -vt 0.750000 0.750000 -vt 0.812500 0.750000 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.812500 -vt 0.750000 0.812500 -vt 0.750000 0.750000 -vt 0.812500 0.750000 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.812500 -vt 0.812500 0.750000 -vt 0.750000 0.750000 -vt 0.750000 0.812500 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.875000 0.531250 -vt 0.937500 0.531250 -vt 0.937500 0.593750 -vt 0.875000 0.593750 -vt 0.218750 0.468750 -vt 0.218750 0.375000 -vt 0.468750 0.375000 -vt 0.468750 0.468750 -vt 0.218750 0.468750 -vt 0.218750 0.375000 -vt 0.468750 0.375000 -vt 0.468750 0.468750 -vt 0.218750 0.375000 -vt 0.468750 0.375000 -vt 0.468750 0.468750 -vt 0.218750 0.468750 -vt 0.468750 0.125000 -vt 0.218750 0.125000 -vt 0.218750 0.468750 -vt 0.218750 0.375000 -vt 0.468750 0.375000 -vt 0.468750 0.468750 -vt 0.875000 0.531250 -vt 0.875000 0.593750 -vt 0.937500 0.593750 -vt 0.937500 0.531250 -vt 0.218750 0.468750 -vt 0.468750 0.468750 -vt 0.468750 0.375000 -vt 0.218750 0.375000 -vt 0.218750 0.468750 -vt 0.468750 0.468750 -vt 0.468750 0.375000 -vt 0.218750 0.375000 -vt 0.218750 0.375000 -vt 0.218750 0.468750 -vt 0.468750 0.468750 -vt 0.468750 0.375000 -vt 0.468750 0.125000 -vt 0.218750 0.125000 -vt 0.218750 0.468750 -vt 0.468750 0.468750 -vt 0.468750 0.375000 -vt 0.218750 0.375000 -vt 0.125000 0.250000 -vt 0.125000 0.312500 -vt 0.031250 0.312500 -vt 0.031250 0.250000 -vt 0.218750 0.250000 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.218750 0.406250 -vt 0.125000 0.406250 -vt 0.125000 0.250000 -vt 0.031250 0.250000 -vt 0.031250 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.250000 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.125000 0.406250 -vt 0.218750 0.406250 -vt 0.218750 0.312500 -vt 0.125000 0.250000 -vt 0.031250 0.250000 -vt 0.031250 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.250000 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.125000 0.406250 -vt 0.218750 0.406250 -vt 0.218750 0.312500 -vt 0.125000 0.250000 -vt 0.125000 0.312500 -vt 0.031250 0.312500 -vt 0.031250 0.250000 -vt 0.218750 0.250000 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.218750 0.406250 -vt 0.125000 0.406250 -vt 0.031250 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.125000 0.406250 -vt 0.218750 0.406250 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.031250 0.312500 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.218750 0.406250 -vt 0.125000 0.406250 -vt 0.125000 0.312500 -vt 0.031250 0.312500 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.218750 0.406250 -vt 0.125000 0.406250 -vt 0.031250 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.125000 0.406250 -vt 0.218750 0.406250 -vt 0.218750 0.312500 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.062500 0.656250 -vt 0.500000 0.656250 -vt 0.562500 0.906250 -vt 0.000000 0.906250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.062500 0.656250 -vt 0.500000 0.656250 -vt 0.562500 0.906250 -vt 0.000000 0.906250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.062500 0.656250 -vt 0.500000 0.656250 -vt 0.562500 0.906250 -vt 0.000000 0.906250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.062500 0.656250 -vt 0.500000 0.656250 -vt 0.562500 0.906250 -vt 0.000000 0.906250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.062500 0.656250 -vt 0.500000 0.656250 -vt 0.562500 0.906250 -vt 0.000000 0.906250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.062500 0.656250 -vt 0.500000 0.656250 -vt 0.562500 0.906250 -vt 0.000000 0.906250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.062500 0.656250 -vt 0.500000 0.656250 -vt 0.562500 0.906250 -vt 0.000000 0.906250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.062500 0.656250 -vt 0.500000 0.656250 -vt 0.562500 0.906250 -vt 0.000000 0.906250 -vt 0.062500 0.562500 -vt 0.500000 0.562500 -vt 0.062500 0.562500 -vt 0.500000 0.562500 -vt 0.062500 0.562500 -vt 0.500000 0.562500 -vt 0.062500 0.562500 -vt 0.500000 0.562500 -vt 0.062500 0.562500 -vt 0.500000 0.562500 -vt 0.062500 0.562500 -vt 0.500000 0.562500 -vt 0.062500 0.562500 -vt 0.500000 0.562500 -vt 0.062500 0.562500 -vt 0.500000 0.562500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.000000 0.812500 -vn -1.0000 0.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 0.0000 -0.0000 1.0000 -vn 0.0000 1.0000 0.0000 -vn 0.0000 -1.0000 -0.0000 -vn 0.7071 0.0000 0.7071 -vn 0.7071 -0.0000 -0.7071 -vn -0.7071 0.0000 -0.7071 -vn -0.7071 0.0000 0.7071 -vn -0.2554 -0.8881 0.3822 -vn -0.4509 -0.8881 0.0896 -vn 0.6066 -0.0001 0.7950 -vn -0.3699 0.2562 0.8930 -vn -0.3827 -0.0000 0.9239 -vn 0.3827 -0.0000 0.9239 -vn 0.0896 -0.8881 0.4509 -vn 0.9911 -0.0001 0.1332 -vn 0.9239 -0.0000 0.3827 -vn 0.3822 -0.8881 0.2554 -vn 0.7950 -0.0001 -0.6066 -vn 0.9239 0.0000 -0.3827 -vn 0.4509 -0.8881 -0.0896 -vn 0.1332 -0.0002 -0.9911 -vn 0.3827 0.0000 -0.9239 -vn 0.2554 -0.8881 -0.3822 -vn -0.6066 0.0000 -0.7950 -vn -0.3827 -0.0000 -0.9239 -vn -0.0896 -0.8881 -0.4509 -vn -0.9911 0.0000 -0.1332 -vn -0.9239 -0.0000 -0.3827 -vn -0.3822 -0.8881 -0.2554 -vn -0.7950 -0.0001 0.6066 -vn -0.9239 -0.0000 0.3827 -vn 0.0995 -0.2741 -0.9565 -vn 0.7468 -0.2741 -0.6060 -vn 0.8184 0.0000 -0.5746 -vn 0.3735 -0.2177 -0.9017 -vn 0.9565 -0.2741 0.0995 -vn 0.9850 0.0000 0.1724 -vn 0.6060 -0.2741 0.7468 -vn 0.5746 0.0000 0.8184 -vn -0.0995 -0.2741 0.9565 -vn -0.1724 -0.0001 0.9850 -vn -0.7468 -0.2741 0.6060 -vn -0.8184 0.0000 0.5746 -vn -0.9565 -0.2741 -0.0995 -vn -0.9850 0.0000 -0.1724 -vn -0.6060 -0.2741 -0.7468 -vn -0.5746 0.0000 -0.8184 -vn -0.2554 0.8881 0.3822 -vn -0.4509 0.8881 0.0896 -vn 0.0896 0.8881 0.4509 -vn 0.3822 0.8881 0.2554 -vn 0.4509 0.8881 -0.0896 -vn 0.2554 0.8881 -0.3822 -vn -0.0896 0.8881 -0.4509 -vn -0.3822 0.8881 -0.2554 -vn 0.0995 0.2741 -0.9565 -vn 0.7468 0.2741 -0.6060 -vn 0.9565 0.2741 0.0995 -vn 0.6060 0.2741 0.7468 -vn -0.0995 0.2741 0.9565 -vn -0.7468 0.2741 0.6060 -vn -0.9566 0.2739 -0.0994 -vn -0.6060 0.2741 -0.7468 -usemtl m_1 -s off -f 203/1/1 204/2/1 206/3/1 205/4/1 -f 209/5/2 210/6/2 208/7/2 207/8/2 -f 205/9/3 209/10/3 207/11/3 203/12/3 -f 210/13/4 206/14/4 204/15/4 208/16/4 -usemtl m_2 -f 205/17/5 206/18/5 210/19/5 209/20/5 -f 207/21/6 208/22/6 204/23/6 203/24/6 -usemtl m_0 -f 19/25/4 74/26/4 9/27/4 20/28/4 -f 9/29/6 41/30/6 20/31/6 -f 19/32/5 40/33/5 74/34/5 -f 18/35/7 19/36/7 20/37/7 21/38/7 -f 20/39/6 41/30/6 21/40/6 -f 18/41/5 40/33/5 19/42/5 -f 28/43/2 18/44/2 21/45/2 38/46/2 -f 21/47/6 41/30/6 38/48/6 -f 28/49/5 40/33/5 18/50/5 -f 37/51/8 28/52/8 38/53/8 39/54/8 -f 38/55/6 41/30/6 39/56/6 -f 37/57/5 40/33/5 28/58/5 -f 58/59/3 37/60/3 39/61/3 59/62/3 -f 39/63/6 41/30/6 59/64/6 -f 58/65/5 40/33/5 37/66/5 -f 65/67/9 58/68/9 59/69/9 60/70/9 -f 59/71/6 41/30/6 60/72/6 -f 65/73/5 40/33/5 58/74/5 -f 75/75/1 65/76/1 60/77/1 76/78/1 -f 60/79/6 41/30/6 76/80/6 -f 75/81/5 40/33/5 65/82/5 -f 74/83/10 75/84/10 76/85/10 9/86/10 -f 76/87/6 41/30/6 9/88/6 -f 74/89/5 40/33/5 75/90/5 -f 101/91/1 102/92/1 104/93/1 103/94/1 -f 103/95/5 104/96/5 108/97/5 107/98/5 -f 107/99/2 108/100/2 106/101/2 105/102/2 -f 105/103/6 106/104/6 102/105/6 101/106/6 -f 108/107/4 104/108/4 102/109/4 106/110/4 -f 116/111/2 118/112/2 119/113/2 117/114/2 -f 118/115/5 122/116/5 123/117/5 119/118/5 -f 122/119/1 120/120/1 121/121/1 123/122/1 -f 120/123/6 116/124/6 117/125/6 121/126/6 -f 123/127/4 121/128/4 117/129/4 119/130/4 -f 132/131/1 134/132/1 135/133/1 133/134/1 -f 134/135/6 138/136/6 139/137/6 135/138/6 -f 138/139/2 136/140/2 137/141/2 139/142/2 -f 136/143/5 132/144/5 133/145/5 137/146/5 -f 139/147/4 137/148/4 133/149/4 135/150/4 -f 148/151/2 149/152/2 151/153/2 150/154/2 -f 150/155/6 151/156/6 155/157/6 154/158/6 -f 154/159/1 155/160/1 153/161/1 152/162/1 -f 152/163/5 153/164/5 149/165/5 148/166/5 -f 155/167/4 151/168/4 149/169/4 153/170/4 -f 160/171/1 162/172/1 163/173/1 161/174/1 -f 162/175/5 166/176/5 167/177/5 163/178/5 -f 166/179/2 164/180/2 165/181/2 167/182/2 -f 164/183/6 160/184/6 161/185/6 165/186/6 -f 167/187/3 165/188/3 161/189/3 163/190/3 -f 172/191/2 173/192/2 175/193/2 174/194/2 -f 174/195/5 175/196/5 179/197/5 178/198/5 -f 178/199/1 179/200/1 177/201/1 176/202/1 -f 176/203/6 177/204/6 173/205/6 172/206/6 -f 179/207/3 175/208/3 173/209/3 177/210/3 -f 184/211/1 185/212/1 187/213/1 186/214/1 -f 186/215/6 187/216/6 191/217/6 190/218/6 -f 190/219/2 191/220/2 189/221/2 188/222/2 -f 188/223/5 189/224/5 185/225/5 184/226/5 -f 191/227/3 187/228/3 185/229/3 189/230/3 -f 195/231/2 197/232/2 198/233/2 196/234/2 -f 197/235/6 201/236/6 202/237/6 198/238/6 -f 201/239/1 199/240/1 200/241/1 202/242/1 -f 199/243/5 195/244/5 196/245/5 200/246/5 -f 202/247/3 200/248/3 196/249/3 198/250/3 -s 1 -f 8/251/6 2/252/6 1/253/6 7/254/6 -f 2/252/2 4/255/2 3/256/2 1/253/2 -f 4/257/5 6/258/5 5/259/5 3/260/5 -f 6/258/1 8/261/1 7/262/1 5/259/1 -f 17/263/6 11/264/6 10/265/6 16/266/6 -f 11/264/8 13/267/8 12/268/8 10/265/8 -f 13/269/5 15/270/5 14/271/5 12/272/5 -f 15/270/10 17/273/10 16/274/10 14/271/10 -f 27/275/6 169/276/6 22/277/6 26/278/6 -f 169/276/3 24/279/3 23/280/3 22/277/3 -f 24/281/5 141/282/5 25/283/5 23/284/5 -f 141/282/4 27/285/4 26/286/4 25/283/4 -f 36/287/6 30/288/6 29/289/6 35/290/6 -f 30/288/9 32/291/9 31/292/9 29/289/9 -f 32/293/5 34/294/5 33/295/5 31/296/5 -f 34/294/7 36/297/7 35/298/7 33/295/7 -f 49/299/6 43/300/6 42/301/6 48/302/6 -f 43/300/1 45/303/1 44/304/1 42/301/1 -f 45/305/5 47/306/5 46/307/5 44/308/5 -f 47/306/2 49/309/2 48/310/2 46/307/2 -f 57/311/6 51/312/6 50/313/6 56/314/6 -f 51/312/10 53/315/10 52/316/10 50/313/10 -f 53/317/5 55/318/5 54/319/5 52/320/5 -f 55/318/8 57/321/8 56/322/8 54/319/8 -f 157/323/6 94/324/6 61/325/6 64/326/6 -f 94/324/4 125/327/4 62/328/4 61/325/4 -f 125/329/5 181/330/5 63/331/5 62/332/5 -f 181/330/3 157/333/3 64/334/3 63/331/3 -f 73/335/6 67/336/6 66/337/6 72/338/6 -f 67/336/7 69/339/7 68/340/7 66/337/7 -f 69/341/5 71/342/5 70/343/5 68/344/5 -f 71/342/9 73/345/9 72/346/9 70/343/9 -f 78/347/5 80/348/5 79/349/5 77/350/5 -f 77/351/2 81/352/2 82/353/2 78/354/2 -f 79/355/4 83/356/4 81/357/4 77/358/4 -f 84/359/1 83/360/1 79/361/1 80/362/1 -f 82/363/6 81/357/6 83/356/6 84/364/6 -f 78/365/3 82/366/3 84/367/3 80/368/3 -f 86/369/6 85/370/6 87/371/6 88/372/6 -f 85/373/2 86/374/2 90/375/2 89/376/2 -f 87/377/4 85/378/4 89/379/4 91/380/4 -f 92/381/1 88/382/1 87/383/1 91/384/1 -f 90/385/5 92/386/5 91/380/5 89/379/5 -f 86/387/3 88/388/3 92/389/3 90/390/3 -f 99/391/1 96/392/1 94/393/1 97/394/1 -f 100/395/6 95/396/6 96/392/6 99/391/6 -f 94/397/4 96/398/4 95/399/4 93/400/4 -f 114/401/2 112/402/2 27/403/2 111/404/2 -f 115/405/6 114/401/6 111/404/6 110/406/6 -f 27/407/4 109/408/4 110/409/4 111/410/4 -f 130/411/1 128/412/1 125/413/1 127/414/1 -f 131/415/5 130/411/5 127/414/5 126/416/5 -f 125/417/4 124/418/4 126/419/4 127/420/4 -f 146/421/2 143/422/2 141/423/2 144/424/2 -f 147/425/5 142/426/5 143/422/5 146/421/5 -f 141/427/4 143/428/4 142/429/4 140/430/4 -f 99/391/1 97/394/1 157/431/1 159/432/1 -f 100/395/6 99/391/6 159/432/6 158/433/6 -f 157/434/3 156/435/3 158/436/3 159/437/3 -f 114/401/2 171/438/2 169/439/2 112/402/2 -f 115/405/6 170/440/6 171/438/6 114/401/6 -f 169/441/3 171/442/3 170/443/3 168/444/3 -f 130/411/1 183/445/1 181/446/1 128/412/1 -f 131/415/5 182/447/5 183/445/5 130/411/5 -f 181/448/3 183/449/3 182/450/3 180/451/3 -f 146/421/2 144/424/2 24/452/2 194/453/2 -f 147/425/5 146/421/5 194/453/5 193/454/5 -f 24/455/3 192/456/3 193/457/3 194/458/3 -f 211/459/11 225/460/12 226/461/6 212/462/6 -f 235/463/13 236/464/14 225/460/15 211/459/16 -f 213/465/17 211/466/11 212/467/6 214/468/6 -f 237/469/18 235/470/13 211/466/16 213/465/19 -f 215/471/20 213/472/17 214/473/6 216/474/6 -f 238/475/21 237/476/18 213/472/19 215/471/22 -f 217/477/23 215/478/20 216/479/6 218/480/6 -f 239/481/24 238/482/21 215/478/22 217/477/25 -f 219/483/26 217/484/23 218/485/6 220/486/6 -f 240/487/27 239/488/24 217/484/25 219/483/28 -f 221/489/29 219/490/26 220/491/6 222/492/6 -f 241/493/30 240/494/27 219/490/28 221/489/31 -f 223/495/32 221/496/29 222/497/6 224/498/6 -f 242/499/33 241/500/30 221/496/31 223/495/34 -f 225/501/12 223/502/32 224/503/6 226/504/6 -f 236/505/14 242/506/33 223/502/34 225/501/15 -f 226/504/35 224/503/36 234/507/37 228/508/38 -f 224/498/36 222/497/39 233/509/40 234/510/37 -f 222/492/39 220/491/41 232/511/42 233/512/40 -f 220/486/41 218/485/43 231/513/44 232/514/42 -f 218/480/43 216/479/45 230/515/46 231/516/44 -f 216/474/45 214/473/47 229/517/48 230/518/46 -f 214/468/47 212/467/49 227/519/50 229/520/48 -f 212/462/49 226/461/35 228/521/38 227/522/50 -f 243/523/51 244/524/5 258/525/5 257/526/52 -f 235/463/13 243/523/16 257/526/15 236/464/14 -f 245/527/53 246/528/5 244/529/5 243/530/51 -f 237/469/18 245/527/19 243/530/16 235/470/13 -f 247/531/54 248/532/5 246/533/5 245/534/53 -f 238/475/21 247/531/22 245/534/19 237/476/18 -f 249/535/55 250/536/5 248/537/5 247/538/54 -f 239/481/24 249/535/25 247/538/22 238/482/21 -f 251/539/56 252/540/5 250/541/5 249/542/55 -f 240/487/27 251/539/28 249/542/25 239/488/24 -f 253/543/57 254/544/5 252/545/5 251/546/56 -f 241/493/30 253/543/31 251/546/28 240/494/27 -f 255/547/58 256/548/5 254/549/5 253/550/57 -f 242/499/33 255/547/34 253/550/31 241/500/30 -f 257/551/52 258/552/5 256/553/5 255/554/58 -f 236/505/14 257/551/15 255/554/34 242/506/33 -f 258/552/59 228/508/38 234/507/37 256/553/60 -f 256/548/60 234/510/37 233/509/40 254/549/61 -f 254/544/61 233/512/40 232/511/42 252/545/62 -f 252/540/62 232/514/42 231/513/44 250/541/63 -f 250/536/63 231/516/44 230/515/46 248/537/64 -f 248/532/64 230/518/46 229/517/48 246/533/65 -f 246/528/65 229/520/48 227/519/50 244/529/66 -f 244/524/66 227/522/50 228/521/38 258/525/59 -l 100 98 -l 97 98 -l 115 113 -l 112 113 -l 131 129 -l 128 129 -l 147 145 -l 144 145 diff --git a/src/main/resources/assets/create/models/block/flywheel/flywheel_shaftless.obj b/src/main/resources/assets/create/models/block/flywheel/flywheel_shaftless.obj deleted file mode 100644 index d7db6e4bd..000000000 --- a/src/main/resources/assets/create/models/block/flywheel/flywheel_shaftless.obj +++ /dev/null @@ -1,993 +0,0 @@ -# Blender v3.1.2 OBJ File: 'engine.blend' -# www.blender.org -mtllib flywheel.mtl -o cube.007_cube.004 -v 0.625000 0.375000 1.562500 -v 0.625000 0.375000 0.937500 -v 0.625000 0.625000 1.562500 -v 0.625000 0.625000 0.937500 -v 0.375000 0.625000 1.562500 -v 0.375000 0.625000 0.937500 -v 0.375000 0.375000 1.562500 -v 0.375000 0.375000 0.937500 -v 0.318782 0.375000 0.937500 -v 1.339689 0.375000 1.162913 -v 0.897748 0.375000 0.720971 -v 1.339689 0.625000 1.162913 -v 0.897748 0.625000 0.720971 -v 1.162913 0.625000 1.339689 -v 0.720971 0.625000 0.897748 -v 1.162913 0.375000 1.339689 -v 0.720971 0.375000 0.897748 -v 0.937500 0.625000 0.681218 -v 0.681218 0.625000 0.937500 -v 0.681218 0.375000 0.937500 -v 0.937500 0.375000 0.681218 -v 1.562500 0.375000 0.375000 -v 1.562500 0.625000 0.375000 -v 0.937500 0.625000 0.375000 -v 1.562500 0.625000 0.625000 -v 1.562500 0.375000 0.625000 -v 0.937500 0.375000 0.625000 -v 0.937500 0.625000 0.318781 -v 1.162912 0.375000 -0.339689 -v 0.720971 0.375000 0.102252 -v 1.162912 0.625000 -0.339689 -v 0.720971 0.625000 0.102252 -v 1.339689 0.625000 -0.162912 -v 0.897747 0.625000 0.279029 -v 1.339689 0.375000 -0.162912 -v 0.897747 0.375000 0.279029 -v 0.681218 0.625000 0.062500 -v 0.937500 0.375000 0.318782 -v 0.681218 0.375000 0.062500 -v 0.500000 0.625000 0.500000 -v 0.500000 0.375000 0.500000 -v 0.375000 0.375000 -0.562500 -v 0.375000 0.375000 0.062500 -v 0.375000 0.625000 -0.562500 -v 0.375000 0.625000 0.062500 -v 0.625000 0.625000 -0.562500 -v 0.625000 0.625000 0.062500 -v 0.625000 0.375000 -0.562500 -v 0.625000 0.375000 0.062500 -v -0.339689 0.375000 -0.162912 -v 0.102252 0.375000 0.279029 -v -0.339689 0.625000 -0.162912 -v 0.102252 0.625000 0.279029 -v -0.162912 0.625000 -0.339689 -v 0.279029 0.625000 0.102253 -v -0.162912 0.375000 -0.339689 -v 0.279029 0.375000 0.102253 -v 0.318782 0.625000 0.062500 -v 0.318782 0.375000 0.062500 -v 0.062500 0.375000 0.318782 -v -0.562500 0.375000 0.625000 -v -0.562500 0.625000 0.625000 -v -0.562500 0.625000 0.375000 -v -0.562500 0.375000 0.375000 -v 0.062500 0.625000 0.318782 -v -0.162912 0.375000 1.339689 -v 0.279029 0.375000 0.897747 -v -0.162912 0.625000 1.339689 -v 0.279029 0.625000 0.897747 -v -0.339689 0.625000 1.162912 -v 0.102253 0.625000 0.720971 -v -0.339689 0.375000 1.162912 -v 0.102253 0.375000 0.720971 -v 0.318782 0.625000 0.937500 -v 0.062500 0.625000 0.681218 -v 0.062500 0.375000 0.681218 -v 0.750000 0.375000 0.750000 -v 0.750000 0.375000 0.250000 -v 0.250000 0.375000 0.750000 -v 0.250000 0.375000 0.250000 -v 0.750000 0.187500 0.750000 -v 0.750000 0.187500 0.250000 -v 0.250000 0.187500 0.750000 -v 0.250000 0.187500 0.250000 -v 0.750000 0.625000 0.750000 -v 0.750000 0.625000 0.250000 -v 0.250000 0.625000 0.750000 -v 0.250000 0.625000 0.250000 -v 0.750000 0.812500 0.750000 -v 0.750000 0.812500 0.250000 -v 0.250000 0.812500 0.750000 -v 0.250000 0.812500 0.250000 -v 1.068750 0.687500 1.873085 -v 1.068750 0.312500 1.873085 -v 0.940102 0.312500 1.562500 -v 0.940102 0.687500 1.562500 -v 1.873085 0.687500 1.068751 -v 1.873084 0.312500 1.068751 -v 1.562500 0.312500 0.940102 -v 1.562500 0.687500 0.940102 -v 1.873085 0.687500 -0.068750 -v 1.873085 0.312500 -0.068750 -v 1.562500 0.312500 0.059898 -v 1.562500 0.687500 0.059898 -v 1.068750 0.687500 -0.873084 -v 1.068750 0.312500 -0.873084 -v 0.940102 0.312500 -0.562500 -v 0.940102 0.687500 -0.562500 -v -0.068750 0.687500 -0.873084 -v -0.068750 0.312500 -0.873084 -v 0.059898 0.312500 -0.562500 -v 0.059898 0.687500 -0.562500 -v -0.873084 0.687500 -0.068750 -v -0.873084 0.312500 -0.068750 -v -0.562500 0.312500 0.059898 -v -0.562499 0.687500 0.059898 -v -0.873084 0.687500 1.068750 -v -0.873084 0.312500 1.068750 -v -0.562500 0.312500 0.940102 -v -0.562500 0.687500 0.940102 -v -0.068750 0.687500 1.873084 -v -0.068750 0.312500 1.873084 -v 0.059898 0.312500 1.562499 -v 0.059898 0.687500 1.562499 -v 0.250000 0.375000 0.625000 -v 0.062500 0.375000 0.625000 -v 0.250000 0.187500 0.625000 -v 0.062500 0.187500 0.625000 -v 0.062500 0.375000 0.500000 -v 0.250000 0.375000 0.500000 -v 0.062500 0.187500 0.500000 -v 0.250000 0.187500 0.500000 -v 0.093750 0.218750 0.625000 -v 0.093750 0.218750 0.687500 -v 0.093750 0.343750 0.625000 -v 0.093750 0.343750 0.687500 -v 0.218750 0.218750 0.625000 -v 0.218750 0.218750 0.687500 -v 0.218750 0.343750 0.625000 -v 0.218750 0.343750 0.687500 -v 0.750000 0.375000 0.625000 -v 0.750000 0.187500 0.625000 -v 0.937500 0.187500 0.625000 -v 0.937500 0.375000 0.500000 -v 0.750000 0.375000 0.500000 -v 0.937500 0.187500 0.500000 -v 0.750000 0.187500 0.500000 -v 0.906250 0.218750 0.625000 -v 0.906250 0.218750 0.687500 -v 0.906250 0.343750 0.625000 -v 0.906250 0.343750 0.687500 -v 0.781250 0.218750 0.625000 -v 0.781250 0.218750 0.687500 -v 0.781250 0.343750 0.625000 -v 0.781250 0.343750 0.687500 -v 0.250000 0.625000 0.625000 -v 0.062500 0.625000 0.625000 -v 0.250000 0.812500 0.625000 -v 0.062500 0.812500 0.625000 -v 0.062500 0.625000 0.500000 -v 0.250000 0.625000 0.500000 -v 0.062500 0.812500 0.500000 -v 0.250000 0.812500 0.500000 -v 0.093750 0.781250 0.625000 -v 0.093750 0.781250 0.687500 -v 0.093750 0.656250 0.625000 -v 0.093750 0.656250 0.687500 -v 0.218750 0.781250 0.625000 -v 0.218750 0.781250 0.687500 -v 0.218750 0.656250 0.625000 -v 0.218750 0.656250 0.687500 -v 0.750000 0.625000 0.625000 -v 0.937500 0.625000 0.625000 -v 0.750000 0.812500 0.625000 -v 0.937500 0.812500 0.625000 -v 0.937500 0.625000 0.500000 -v 0.750000 0.625000 0.500000 -v 0.937500 0.812500 0.500000 -v 0.750000 0.812500 0.500000 -v 0.906250 0.781250 0.625000 -v 0.906250 0.781250 0.687500 -v 0.906250 0.656250 0.625000 -v 0.906250 0.656250 0.687500 -v 0.781250 0.781250 0.625000 -v 0.781250 0.781250 0.687500 -v 0.781250 0.656250 0.625000 -v 0.781250 0.656250 0.687500 -v 0.250000 0.375000 0.375000 -v 0.062500 0.375000 0.375000 -v 0.250000 0.187500 0.375000 -v 0.062500 0.187500 0.375000 -v 0.093750 0.218750 0.375000 -v 0.093750 0.218750 0.312500 -v 0.093750 0.343750 0.375000 -v 0.093750 0.343750 0.312500 -v 0.218750 0.218750 0.375000 -v 0.218750 0.218750 0.312500 -v 0.218750 0.343750 0.375000 -v 0.218750 0.343750 0.312500 -v 0.750000 0.375000 0.375000 -v 0.937500 0.375000 0.375000 -v 0.750000 0.187500 0.375000 -v 0.937500 0.187500 0.375000 -v 0.906250 0.218750 0.375000 -v 0.906250 0.218750 0.312500 -v 0.906250 0.343750 0.375000 -v 0.906250 0.343750 0.312500 -v 0.781250 0.218750 0.375000 -v 0.781250 0.218750 0.312500 -v 0.781250 0.343750 0.375000 -v 0.781250 0.343750 0.312500 -v 0.250000 0.625000 0.375000 -v 0.062500 0.625000 0.375000 -v 0.250000 0.812500 0.375000 -v 0.062500 0.812500 0.375000 -v 0.093750 0.781250 0.375000 -v 0.093750 0.781250 0.312500 -v 0.093750 0.656250 0.375000 -v 0.093750 0.656250 0.312500 -v 0.218750 0.781250 0.375000 -v 0.218750 0.781250 0.312500 -v 0.218750 0.656250 0.375000 -v 0.218750 0.656250 0.312500 -v 0.750000 0.625000 0.375000 -v 0.750000 0.812500 0.375000 -v 0.937500 0.812500 0.375000 -v 0.906250 0.781250 0.375000 -v 0.906250 0.781250 0.312500 -v 0.906250 0.656250 0.375000 -v 0.906250 0.656250 0.312500 -v 0.781250 0.781250 0.375000 -v 0.781250 0.781250 0.312500 -v 0.781250 0.656250 0.375000 -v 0.781250 0.656250 0.312500 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 0.906250 0.781250 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.906250 0.781250 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.562500 0.500000 -vt 0.687500 0.500000 -vt 0.687500 0.687500 -vt 0.812500 1.000000 -vt 1.000000 1.000000 -vt 1.000000 1.000000 -vt 0.812500 1.000000 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.812500 -vt 0.750000 0.812500 -vt 0.750000 0.750000 -vt 0.812500 0.750000 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.812500 -vt 0.812500 0.750000 -vt 0.750000 0.750000 -vt 0.750000 0.812500 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.812500 -vt 0.812500 0.750000 -vt 0.750000 0.750000 -vt 0.750000 0.812500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.812500 -vt 0.750000 0.812500 -vt 0.750000 0.750000 -vt 0.812500 0.750000 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.812500 -vt 0.812500 0.750000 -vt 0.750000 0.750000 -vt 0.750000 0.812500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.812500 -vt 0.750000 0.812500 -vt 0.750000 0.750000 -vt 0.812500 0.750000 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.937500 -vt 0.812500 0.968750 -vt 0.750000 0.968750 -vt 0.750000 0.937500 -vt 0.812500 0.812500 -vt 0.750000 0.812500 -vt 0.750000 0.750000 -vt 0.812500 0.750000 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.937500 -vt 0.750000 0.937500 -vt 0.750000 0.968750 -vt 0.812500 0.968750 -vt 0.812500 0.812500 -vt 0.812500 0.750000 -vt 0.750000 0.750000 -vt 0.750000 0.812500 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.562500 0.687500 -vt 0.687500 0.687500 -vt 0.687500 1.000000 -vt 0.562500 1.000000 -vt 0.812500 0.687500 -vt 0.812500 1.000000 -vt 0.875000 0.531250 -vt 0.937500 0.531250 -vt 0.937500 0.593750 -vt 0.875000 0.593750 -vt 0.218750 0.468750 -vt 0.218750 0.375000 -vt 0.468750 0.375000 -vt 0.468750 0.468750 -vt 0.218750 0.468750 -vt 0.218750 0.375000 -vt 0.468750 0.375000 -vt 0.468750 0.468750 -vt 0.218750 0.375000 -vt 0.468750 0.375000 -vt 0.468750 0.468750 -vt 0.218750 0.468750 -vt 0.468750 0.125000 -vt 0.218750 0.125000 -vt 0.218750 0.468750 -vt 0.218750 0.375000 -vt 0.468750 0.375000 -vt 0.468750 0.468750 -vt 0.875000 0.531250 -vt 0.875000 0.593750 -vt 0.937500 0.593750 -vt 0.937500 0.531250 -vt 0.218750 0.468750 -vt 0.468750 0.468750 -vt 0.468750 0.375000 -vt 0.218750 0.375000 -vt 0.218750 0.468750 -vt 0.468750 0.468750 -vt 0.468750 0.375000 -vt 0.218750 0.375000 -vt 0.218750 0.375000 -vt 0.218750 0.468750 -vt 0.468750 0.468750 -vt 0.468750 0.375000 -vt 0.468750 0.125000 -vt 0.218750 0.125000 -vt 0.218750 0.468750 -vt 0.468750 0.468750 -vt 0.468750 0.375000 -vt 0.218750 0.375000 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.062500 0.468750 -vt 0.500000 0.468750 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.562500 1.000000 -vt 0.000000 1.000000 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.062500 0.468750 -vt 0.500000 0.468750 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.562500 1.000000 -vt 0.000000 1.000000 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.062500 0.468750 -vt 0.500000 0.468750 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.562500 1.000000 -vt 0.000000 1.000000 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.062500 0.468750 -vt 0.500000 0.468750 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.562500 1.000000 -vt 0.000000 1.000000 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.062500 0.468750 -vt 0.500000 0.468750 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.562500 1.000000 -vt 0.000000 1.000000 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.062500 0.468750 -vt 0.500000 0.468750 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.562500 1.000000 -vt 0.000000 1.000000 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.062500 0.468750 -vt 0.500000 0.468750 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.562500 1.000000 -vt 0.000000 1.000000 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.062500 0.468750 -vt 0.500000 0.468750 -vt 0.000000 0.812500 -vt 0.562500 0.812500 -vt 0.500000 0.656250 -vt 0.062500 0.656250 -vt 0.562500 0.812500 -vt 0.000000 0.812500 -vt 0.562500 1.000000 -vt 0.000000 1.000000 -vt 0.125000 0.250000 -vt 0.125000 0.312500 -vt 0.031250 0.312500 -vt 0.031250 0.250000 -vt 0.218750 0.250000 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.218750 0.406250 -vt 0.125000 0.406250 -vt 0.125000 0.250000 -vt 0.031250 0.250000 -vt 0.031250 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.250000 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.125000 0.406250 -vt 0.218750 0.406250 -vt 0.218750 0.312500 -vt 0.125000 0.250000 -vt 0.031250 0.250000 -vt 0.031250 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.250000 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.125000 0.406250 -vt 0.218750 0.406250 -vt 0.218750 0.312500 -vt 0.125000 0.250000 -vt 0.125000 0.312500 -vt 0.031250 0.312500 -vt 0.031250 0.250000 -vt 0.218750 0.250000 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.218750 0.406250 -vt 0.125000 0.406250 -vt 0.031250 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.125000 0.406250 -vt 0.218750 0.406250 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.031250 0.312500 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.218750 0.406250 -vt 0.125000 0.406250 -vt 0.125000 0.312500 -vt 0.031250 0.312500 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.218750 0.406250 -vt 0.125000 0.406250 -vt 0.031250 0.312500 -vt 0.125000 0.312500 -vt 0.218750 0.312500 -vt 0.125000 0.312500 -vt 0.125000 0.406250 -vt 0.218750 0.406250 -vt 0.218750 0.312500 -vn 0.0000 0.0000 1.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 0.7071 0.0000 0.7071 -vn 1.0000 0.0000 -0.0000 -vn 0.7071 0.0000 -0.7071 -vn -0.0000 0.0000 -1.0000 -vn -0.7071 0.0000 -0.7071 -vn -1.0000 0.0000 0.0000 -vn -0.7071 0.0000 0.7071 -vn -0.6060 -0.2741 -0.7468 -vn 0.0995 -0.2741 -0.9565 -vn 0.3827 -0.0000 -0.9239 -vn -0.3827 -0.0000 -0.9239 -vn -0.3822 0.8881 -0.2554 -vn -0.0897 0.8881 -0.4509 -vn -0.2554 -0.8881 0.3822 -vn -0.4509 -0.8881 0.0896 -vn -0.0207 0.3739 0.9272 -vn -0.6703 0.3739 0.6410 -vn -0.3827 -0.0000 0.9239 -vn 0.3827 -0.0000 0.9239 -vn -0.9565 -0.2741 -0.0995 -vn -0.9239 -0.0000 -0.3827 -vn -0.4509 0.8881 0.0897 -vn 0.0896 -0.8881 0.4509 -vn 0.6410 0.3739 0.6703 -vn 0.9239 -0.0000 0.3827 -vn -0.7468 -0.2741 0.6060 -vn -0.9239 0.0000 0.3827 -vn -0.2554 0.8881 0.3822 -vn 0.3822 -0.8881 0.2554 -vn 0.9272 0.3739 0.0207 -vn 0.9239 0.0000 -0.3827 -vn -0.0995 -0.2741 0.9565 -vn 0.0897 0.8881 0.4509 -vn 0.4509 -0.8881 -0.0896 -vn 0.6703 0.3739 -0.6410 -vn 0.6060 -0.2741 0.7468 -vn 0.3822 0.8881 0.2554 -vn 0.2554 -0.8881 -0.3822 -vn 0.0207 0.3739 -0.9272 -vn 0.9565 -0.2741 0.0995 -vn 0.4509 0.8881 -0.0897 -vn -0.0896 -0.8881 -0.4509 -vn -0.6410 0.3739 -0.6703 -vn 0.7468 -0.2741 -0.6060 -vn 0.2554 0.8881 -0.3822 -vn -0.3822 -0.8881 -0.2554 -vn -0.9272 0.3739 -0.0207 -usemtl m_0 -s off -f 19/1/1 74/2/1 9/3/1 20/4/1 -f 9/5/2 41/6/2 20/7/2 -f 19/8/3 40/9/3 74/10/3 -f 18/11/4 19/12/4 20/13/4 21/14/4 -f 20/15/2 41/6/2 21/16/2 -f 18/17/3 40/9/3 19/18/3 -f 28/19/5 18/20/5 21/21/5 38/22/5 -f 21/23/2 41/6/2 38/24/2 -f 28/25/3 40/9/3 18/26/3 -f 37/27/6 28/28/6 38/29/6 39/30/6 -f 38/31/2 41/6/2 39/32/2 -f 37/33/3 40/9/3 28/34/3 -f 58/35/7 37/36/7 39/37/7 59/38/7 -f 39/39/2 41/6/2 59/40/2 -f 58/41/3 40/9/3 37/42/3 -f 65/43/8 58/44/8 59/45/8 60/46/8 -f 59/47/2 41/6/2 60/48/2 -f 65/49/3 40/9/3 58/50/3 -f 75/51/9 65/52/9 60/53/9 76/54/9 -f 60/55/2 41/6/2 76/56/2 -f 75/57/3 40/9/3 65/58/3 -f 74/59/10 75/60/10 76/61/10 9/62/10 -f 76/63/2 41/6/2 9/64/2 -f 74/65/3 40/9/3 75/66/3 -f 133/67/9 134/68/9 136/69/9 135/70/9 -f 135/71/3 136/72/3 140/73/3 139/74/3 -f 139/75/5 140/76/5 138/77/5 137/78/5 -f 137/79/2 138/80/2 134/81/2 133/82/2 -f 140/83/1 136/84/1 134/85/1 138/86/1 -f 148/87/5 150/88/5 151/89/5 149/90/5 -f 150/91/3 154/92/3 155/93/3 151/94/3 -f 154/95/9 152/96/9 153/97/9 155/98/9 -f 152/99/2 148/100/2 149/101/2 153/102/2 -f 155/103/1 153/104/1 149/105/1 151/106/1 -f 164/107/9 166/108/9 167/109/9 165/110/9 -f 166/111/2 170/112/2 171/113/2 167/114/2 -f 170/115/5 168/116/5 169/117/5 171/118/5 -f 168/119/3 164/120/3 165/121/3 169/122/3 -f 171/123/1 169/124/1 165/125/1 167/126/1 -f 180/127/5 181/128/5 183/129/5 182/130/5 -f 182/131/2 183/132/2 187/133/2 186/134/2 -f 186/135/9 187/136/9 185/137/9 184/138/9 -f 184/139/3 185/140/3 181/141/3 180/142/3 -f 187/143/1 183/144/1 181/145/1 185/146/1 -f 192/147/9 194/148/9 195/149/9 193/150/9 -f 194/151/3 198/152/3 199/153/3 195/154/3 -f 198/155/5 196/156/5 197/157/5 199/158/5 -f 196/159/2 192/160/2 193/161/2 197/162/2 -f 199/163/7 197/164/7 193/165/7 195/166/7 -f 204/167/5 205/168/5 207/169/5 206/170/5 -f 206/171/3 207/172/3 211/173/3 210/174/3 -f 210/175/9 211/176/9 209/177/9 208/178/9 -f 208/179/2 209/180/2 205/181/2 204/182/2 -f 211/183/7 207/184/7 205/185/7 209/186/7 -f 216/187/9 217/188/9 219/189/9 218/190/9 -f 218/191/2 219/192/2 223/193/2 222/194/2 -f 222/195/5 223/196/5 221/197/5 220/198/5 -f 220/199/3 221/200/3 217/201/3 216/202/3 -f 223/203/7 219/204/7 217/205/7 221/206/7 -f 227/207/5 229/208/5 230/209/5 228/210/5 -f 229/211/2 233/212/2 234/213/2 230/214/2 -f 233/215/9 231/216/9 232/217/9 234/218/9 -f 231/219/3 227/220/3 228/221/3 232/222/3 -f 234/223/7 232/224/7 228/225/7 230/226/7 -s 1 -f 8/227/2 2/228/2 1/229/2 7/230/2 -f 2/228/5 4/231/5 3/232/5 1/229/5 -f 4/233/3 6/234/3 5/235/3 3/236/3 -f 6/234/9 8/237/9 7/238/9 5/235/9 -f 17/239/2 11/240/2 10/241/2 16/242/2 -f 11/240/6 13/243/6 12/244/6 10/241/6 -f 13/245/3 15/246/3 14/247/3 12/248/3 -f 15/246/10 17/249/10 16/250/10 14/247/10 -f 27/251/2 201/252/2 22/253/2 26/254/2 -f 201/252/7 24/255/7 23/256/7 22/253/7 -f 24/257/3 173/258/3 25/259/3 23/260/3 -f 173/258/1 27/261/1 26/262/1 25/259/1 -f 36/263/2 30/264/2 29/265/2 35/266/2 -f 30/264/8 32/267/8 31/268/8 29/265/8 -f 32/269/3 34/270/3 33/271/3 31/272/3 -f 34/270/4 36/273/4 35/274/4 33/271/4 -f 49/275/2 43/276/2 42/277/2 48/278/2 -f 43/276/9 45/279/9 44/280/9 42/277/9 -f 45/281/3 47/282/3 46/283/3 44/284/3 -f 47/282/5 49/285/5 48/286/5 46/283/5 -f 57/287/2 51/288/2 50/289/2 56/290/2 -f 51/288/10 53/291/10 52/292/10 50/289/10 -f 53/293/3 55/294/3 54/295/3 52/296/3 -f 55/294/6 57/297/6 56/298/6 54/295/6 -f 189/299/2 126/300/2 61/301/2 64/302/2 -f 126/300/1 157/303/1 62/304/1 61/301/1 -f 157/305/3 213/306/3 63/307/3 62/308/3 -f 213/306/7 189/309/7 64/310/7 63/307/7 -f 73/311/2 67/312/2 66/313/2 72/314/2 -f 67/312/4 69/315/4 68/316/4 66/313/4 -f 69/317/3 71/318/3 70/319/3 68/320/3 -f 71/318/8 73/321/8 72/322/8 70/319/8 -f 78/323/3 80/324/3 79/325/3 77/326/3 -f 77/327/5 81/328/5 82/329/5 78/330/5 -f 79/331/1 83/332/1 81/333/1 77/334/1 -f 84/335/9 83/336/9 79/337/9 80/338/9 -f 82/339/2 81/333/2 83/332/2 84/340/2 -f 78/341/7 82/342/7 84/343/7 80/344/7 -f 86/345/2 85/346/2 87/347/2 88/348/2 -f 85/349/5 86/350/5 90/351/5 89/352/5 -f 87/353/1 85/354/1 89/355/1 91/356/1 -f 92/357/9 88/358/9 87/359/9 91/360/9 -f 90/361/3 92/362/3 91/356/3 89/355/3 -f 86/363/7 88/364/7 92/365/7 90/366/7 -f 95/367/11 123/368/12 124/369/13 96/370/14 -f 121/371/3 93/372/3 96/373/15 124/374/16 -f 94/375/17 122/376/18 123/368/2 95/367/2 -f 93/377/19 121/378/20 122/376/21 94/375/22 -f 99/379/23 95/380/11 96/381/14 100/382/24 -f 93/383/3 97/384/3 100/385/25 96/386/15 -f 98/387/26 94/388/17 95/380/2 99/379/2 -f 97/389/27 93/390/19 94/388/22 98/387/28 -f 103/391/29 99/392/23 100/393/24 104/394/30 -f 97/395/3 101/396/3 104/397/31 100/398/25 -f 102/399/32 98/400/26 99/392/2 103/391/2 -f 101/401/33 97/402/27 98/400/28 102/399/34 -f 107/403/35 103/404/29 104/405/30 108/406/21 -f 101/407/3 105/408/3 108/409/36 104/410/31 -f 106/411/37 102/412/32 103/404/2 107/403/2 -f 105/413/38 101/414/33 102/412/34 106/411/13 -f 111/415/39 107/416/35 108/417/21 112/418/22 -f 105/419/3 109/420/3 112/421/40 108/422/36 -f 110/423/41 106/424/37 107/416/2 111/415/2 -f 109/425/42 105/426/38 106/424/13 110/423/14 -f 115/427/43 111/428/39 112/429/22 116/430/28 -f 109/431/3 113/432/3 116/433/44 112/434/40 -f 114/435/45 110/436/41 111/428/2 115/427/2 -f 113/437/46 109/438/42 110/436/14 114/435/24 -f 119/439/47 115/440/43 116/441/28 120/442/34 -f 113/443/3 117/444/3 120/445/48 116/446/44 -f 118/447/49 114/448/45 115/440/2 119/439/2 -f 117/449/50 113/450/46 114/448/24 118/447/30 -f 123/451/12 119/452/47 120/453/34 124/454/13 -f 117/455/3 121/456/3 124/457/16 120/458/48 -f 122/459/18 118/460/49 119/452/2 123/451/2 -f 121/461/20 117/462/50 118/460/30 122/459/21 -f 131/463/9 128/464/9 126/465/9 129/466/9 -f 132/467/2 127/468/2 128/464/2 131/463/2 -f 126/469/1 128/470/1 127/471/1 125/472/1 -f 146/473/5 144/474/5 27/475/5 143/476/5 -f 147/477/2 146/473/2 143/476/2 142/478/2 -f 27/479/1 141/480/1 142/481/1 143/482/1 -f 162/483/9 160/484/9 157/485/9 159/486/9 -f 163/487/3 162/483/3 159/486/3 158/488/3 -f 157/489/1 156/490/1 158/491/1 159/492/1 -f 178/493/5 175/494/5 173/495/5 176/496/5 -f 179/497/3 174/498/3 175/494/3 178/493/3 -f 173/499/1 175/500/1 174/501/1 172/502/1 -f 131/463/9 129/466/9 189/503/9 191/504/9 -f 132/467/2 131/463/2 191/504/2 190/505/2 -f 189/506/7 188/507/7 190/508/7 191/509/7 -f 146/473/5 203/510/5 201/511/5 144/474/5 -f 147/477/2 202/512/2 203/510/2 146/473/2 -f 201/513/7 203/514/7 202/515/7 200/516/7 -f 162/483/9 215/517/9 213/518/9 160/484/9 -f 163/487/3 214/519/3 215/517/3 162/483/3 -f 213/520/7 215/521/7 214/522/7 212/523/7 -f 178/493/5 176/496/5 24/524/5 226/525/5 -f 179/497/3 178/493/3 226/525/3 225/526/3 -f 24/527/7 224/528/7 225/529/7 226/530/7 -l 132 130 -l 129 130 -l 147 145 -l 144 145 -l 163 161 -l 160 161 -l 179 177 -l 176 177 diff --git a/src/main/resources/assets/create/models/block/flywheel/item.json b/src/main/resources/assets/create/models/block/flywheel/item.json index 36e6e75e2..8d77ecbc4 100644 --- a/src/main/resources/assets/create/models/block/flywheel/item.json +++ b/src/main/resources/assets/create/models/block/flywheel/item.json @@ -1,18 +1,381 @@ { - "parent": "create:block/flywheel/flywheel", - "loader": "forge:obj", - "flip-v": true, - "model": "create:models/block/flywheel/flywheel.obj", + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "5": "create:block/brass_casing", + "7": "create:block/brass_gearbox", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [29, 1, 11.5], + "to": [32, 3, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 17]}, + "faces": { + "north": {"uv": [6.5, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "east": {"uv": [0, 9, 1.5, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 9, 1.5, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 9, 1.5, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 9, 1.5, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 9, 1.5, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [14.75, 7, 11.55], + "to": [30.75, 9, 13.45], + "rotation": {"angle": -22.5, "axis": "z", "origin": [15, 8, 21]}, + "faces": { + "north": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [22, 6, 6], + "to": [32, 10, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [-5, 8, 8]}, + "faces": { + "north": {"uv": [2, 7, 7, 9], "texture": "#0"}, + "east": {"uv": [0, 7, 2, 9], "texture": "#0"}, + "south": {"uv": [2, 7, 7, 9], "texture": "#0"}, + "west": {"uv": [0, 7, 2, 9], "texture": "#0"}, + "up": {"uv": [2, 7, 7, 9], "texture": "#0"}, + "down": {"uv": [2, 7, 7, 9], "texture": "#0"} + } + }, + { + "from": [7, 7, 7], + "to": [23, 9, 9], + "rotation": {"angle": -22.5, "axis": "z", "origin": [23, 8, 8]}, + "faces": { + "north": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [0, 0, 4], + "to": [16, 16, 15], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "east": {"uv": [0, 15.5, 8, 10], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#7"}, + "west": {"uv": [8, 10.5, 16, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [8, 10.5, 16, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [8, 10.5, 16, 16], "texture": "#0"} + } + }, + { + "from": [0, 0, 15], + "to": [16, 2, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [24, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 2], "texture": "#5"}, + "east": {"uv": [0, 14, 1, 16], "texture": "#5"}, + "south": {"uv": [0, 14, 16, 16], "texture": "#5"}, + "west": {"uv": [15, 14, 16, 16], "texture": "#5"}, + "up": {"uv": [0, 1, 16, 2], "texture": "#5"}, + "down": {"uv": [0, 0, 16, 1], "texture": "#5"} + } + }, + { + "from": [0, 14, 15], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 16]}, + "faces": { + "north": {"uv": [0, 0, 16, 2], "rotation": 180, "texture": "#5"}, + "east": {"uv": [15, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "south": {"uv": [0, 14, 16, 16], "rotation": 180, "texture": "#5"}, + "west": {"uv": [0, 14, 1, 16], "rotation": 180, "texture": "#5"}, + "up": {"uv": [0, 0, 16, 1], "rotation": 180, "texture": "#5"}, + "down": {"uv": [0, 1, 16, 2], "rotation": 180, "texture": "#5"} + } + }, + { + "from": [0, 2, 15], + "to": [2, 14, 16], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 16]}, + "faces": { + "north": {"uv": [0, 0, 12, 2], "rotation": 270, "texture": "#5"}, + "east": {"uv": [2, 1, 14, 2], "rotation": 90, "texture": "#5"}, + "south": {"uv": [2, 14, 14, 16], "rotation": 90, "texture": "#5"}, + "west": {"uv": [2, 0, 14, 1], "rotation": 90, "texture": "#5"}, + "up": {"uv": [15, 14, 16, 16], "rotation": 90, "texture": "#5"}, + "down": {"uv": [0, 14, 1, 16], "rotation": 90, "texture": "#5"} + } + }, + { + "from": [14, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 16]}, + "faces": { + "north": {"uv": [0, 0, 12, 2], "rotation": 90, "texture": "#5"}, + "east": {"uv": [2, 0, 14, 1], "rotation": 270, "texture": "#5"}, + "south": {"uv": [2, 14, 14, 16], "rotation": 270, "texture": "#5"}, + "west": {"uv": [2, 1, 14, 2], "rotation": 270, "texture": "#5"}, + "up": {"uv": [0, 14, 1, 16], "rotation": 270, "texture": "#5"}, + "down": {"uv": [15, 14, 16, 16], "rotation": 270, "texture": "#5"} + } + }, + { + "from": [3, 3, -3.9], + "to": [13, 13, 5.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "east": {"uv": [11.5, 0, 16, 5], "texture": "#0"}, + "south": {"uv": [11, 5, 16, 10], "texture": "#0"}, + "west": {"uv": [11.5, 0, 16, 5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [11.5, 0, 16, 5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [11.5, 0, 16, 5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [-0.5, 23.5, -1.9], + "to": [16.5, 28.5, 4.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 2], "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "texture": "#0"} + } + }, + { + "from": [-0.5, -12.5, -1.9], + "to": [16.5, -7.5, 4.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 2], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [23.5, -0.5, -1.9], + "to": [28.5, 16.5, 4.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [-12.5, -0.5, -1.9], + "to": [-7.5, 16.5, 4.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [-0.5, 23.5, -1.85], + "to": [16.5, 28.5, 4.05], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "texture": "#0"} + } + }, + { + "from": [-0.5, -12.5, -1.85], + "to": [16.5, -7.5, 4.05], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [-0.5, -12.5, -1.85], + "to": [16.5, -7.5, 4.05], + "rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [-12.5, -0.5, -1.85], + "to": [-7.5, 16.5, 4.05], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 270, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [6, -8, -0.9], + "to": [10, 3, 3.1], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [6, 13, -0.9], + "to": [10, 24, 3.1], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [-8, 6, -0.9], + "to": [3, 10, 3.1], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [13, 6, -0.9], + "to": [24, 10, 3.1], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [-8, 6, -0.9], + "to": [3, 10, 3.1], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [6, -8, -0.9], + "to": [10, 3, 3.1], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [13, 6, -0.9], + "to": [24, 10, 3.1], + "rotation": {"angle": -45, "axis": "z", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [6, 13, -0.9], + "to": [10, 24, 3.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 1.1]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + } + ], "display": { - "gui": { - "rotation": [ 30, 225, 0 ], - "translation": [ 0, 0, 0], - "scale":[ 0.4, 0.4, 0.4 ] - }, + "thirdperson_righthand": { + "rotation": [75, -67, 0], + "translation": [0, 2.5, -2], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, -67, 0], + "translation": [0, 2.5, -2], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, -91, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, -91, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "rotation": [90, 0, 0], + "translation": [0, 2, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [-0.25, 0.75, 0], + "scale": [0.35, 0.35, 0.35] + }, "fixed": { - "rotation": [ 90, 0, 0 ], - "translation": [ 0, 0, 0], - "scale":[ 0.4, 0.4, 0.4 ] - } - } + "scale": [0.45, 0.45, 0.45] + } + }, + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8] + }, + { + "name": "wheel", + "origin": [24, 8, 8], + "children": [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25] + } + ] } \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/lower_rotating_connector.json b/src/main/resources/assets/create/models/block/flywheel/lower_rotating_connector.json new file mode 100644 index 000000000..835b0cb69 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/lower_rotating_connector.json @@ -0,0 +1,27 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [2.55, 7, 6.75], + "to": [4.45, 9, 22.75], + "rotation": {"angle": 22.5, "axis": "x", "origin": [-5, 8, 7]}, + "faces": { + "east": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 9, 8, 10], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 9, 8, 10], "rotation": 90, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/lower_sliding_connector.json b/src/main/resources/assets/create/models/block/flywheel/lower_sliding_connector.json new file mode 100644 index 000000000..16194017a --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/lower_sliding_connector.json @@ -0,0 +1,29 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [2.5, 1, 21], + "to": [4.5, 3, 29], + "rotation": {"angle": 0, "axis": "y", "origin": [-1, 8, 8]}, + "faces": { + "north": {"uv": [0, 9, 1, 10], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [0, 9, 1, 10], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 9, 4, 10], "texture": "#0"}, + "up": {"uv": [0, 9, 4, 10], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 9, 4, 10], "rotation": 270, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/upper_rotating_connector.json b/src/main/resources/assets/create/models/block/flywheel/upper_rotating_connector.json new file mode 100644 index 000000000..a6e4b99a0 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/upper_rotating_connector.json @@ -0,0 +1,27 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [7, 7, 7], + "to": [9, 9, 23], + "rotation": {"angle": 22.5, "axis": "x", "origin": [8, 8, 23]}, + "faces": { + "east": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 9, 8, 10], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 9, 8, 10], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 9, 8, 10], "rotation": 90, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/upper_sliding_connector.json b/src/main/resources/assets/create/models/block/flywheel/upper_sliding_connector.json new file mode 100644 index 000000000..177150784 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/upper_sliding_connector.json @@ -0,0 +1,29 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [6, 6, 22], + "to": [10, 10, 32], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -5]}, + "faces": { + "north": {"uv": [0, 7, 2, 9], "texture": "#0"}, + "east": {"uv": [2, 7, 7, 9], "texture": "#0"}, + "south": {"uv": [0, 7, 2, 9], "texture": "#0"}, + "west": {"uv": [2, 7, 7, 9], "texture": "#0"}, + "up": {"uv": [2, 7, 7, 9], "rotation": 90, "texture": "#0"}, + "down": {"uv": [2, 7, 7, 9], "rotation": 270, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [0] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/flywheel/wheel.json b/src/main/resources/assets/create/models/block/flywheel/wheel.json new file mode 100644 index 000000000..997dd77e1 --- /dev/null +++ b/src/main/resources/assets/create/models/block/flywheel/wheel.json @@ -0,0 +1,221 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/steam_engine_wheel", + "particle": "create:block/steam_engine_wheel" + }, + "elements": [ + { + "from": [11.9, 23.5, -0.5], + "to": [17.9, 28.5, 16.5], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 2], "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [11.9, -12.5, -0.5], + "to": [17.9, -7.5, 16.5], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 2], "rotation": 180, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [11.9, -0.5, 23.5], + "to": [17.9, 16.5, 28.5], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "south": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2], "texture": "#0"} + } + }, + { + "from": [11.9, -0.5, -12.5], + "to": [17.9, 16.5, -7.5], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2], "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [11.95, 23.5, -0.5], + "to": [17.85, 28.5, 16.5], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [11.95, -12.5, -0.5], + "to": [17.85, -7.5, 16.5], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [11.95, -12.5, -0.5], + "to": [17.85, -7.5, 16.5], + "rotation": {"angle": -45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 180, "texture": "#0"}, + "up": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "down": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [11.95, -0.5, -12.5], + "to": [17.85, 16.5, -7.5], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "east": {"uv": [0, 0, 8.5, 2.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 2.5, 8.5, 5.5], "rotation": 270, "texture": "#0"}, + "west": {"uv": [0, 0, 8.5, 2.5], "rotation": 270, "texture": "#0"}, + "up": {"uv": [8.5, 0, 11.5, 2.5], "texture": "#0"}, + "down": {"uv": [8.5, 0, 11.5, 2.5], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, -8, 6], + "to": [16.9, 3, 10], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 13, 6], + "to": [16.9, 24, 10], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 6, -8], + "to": [16.9, 10, 3], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "east": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 6, 13], + "to": [16.9, 10, 24], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "east": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 6, -8], + "to": [16.9, 10, 3], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "east": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, -8, 6], + "to": [16.9, 3, 10], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 6, 13], + "to": [16.9, 10, 24], + "rotation": {"angle": 45, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "east": {"uv": [9, 4.5, 11, 10], "rotation": 270, "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [9, 4.5, 11, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + }, + { + "name": "spoke", + "from": [12.9, 13, 6], + "to": [16.9, 24, 10], + "rotation": {"angle": 0, "axis": "x", "origin": [14.9, 8, 8]}, + "faces": { + "north": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "east": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "south": {"uv": [9, 4.5, 11, 10], "texture": "#0"}, + "west": {"uv": [9, 4.5, 11, 10], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "transmission", + "origin": [-8, 8, 8], + "children": [] + }, + { + "name": "wheel", + "origin": [24, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/furnace_engine/block.json b/src/main/resources/assets/create/models/block/furnace_engine/block.json new file mode 100644 index 000000000..dde47cc73 --- /dev/null +++ b/src/main/resources/assets/create/models/block/furnace_engine/block.json @@ -0,0 +1,133 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "5": "create:block/brass_casing", + "1_1": "create:block/furnace_cylinder", + "particle": "create:block/brass_block" + }, + "elements": [ + { + "name": "Ring", + "from": [0, 0, 2], + "to": [16, 16, 7], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, + "east": {"uv": [0, 7, 2.5, 15], "texture": "#1_1"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#5"}, + "west": {"uv": [0, 7, 2.5, 15], "texture": "#1_1"}, + "up": {"uv": [0, 7, 2.5, 15], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [0, 7, 2.5, 15], "rotation": 270, "texture": "#1_1"} + } + }, + { + "name": "Cylinder", + "from": [1, 1, 0], + "to": [15, 15, 16], + "faces": { + "north": {"uv": [8, 0, 15, 7], "texture": "#1_1"}, + "east": {"uv": [0, 0, 8, 7], "rotation": 180, "texture": "#1_1"}, + "south": {"uv": [8, 0, 15, 7], "texture": "#1_1"}, + "west": {"uv": [0, 0, 8, 7], "texture": "#1_1"}, + "up": {"uv": [0, 0, 8, 7], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [0, 0, 8, 7], "rotation": 270, "texture": "#1_1"} + } + }, + { + "from": [1.5, 0, 7], + "to": [5.5, 4, 16], + "faces": { + "east": {"uv": [2.5, 7, 7, 9], "rotation": 180, "texture": "#1_1"}, + "west": {"uv": [2.5, 7, 7, 9], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [2.5, 7, 7, 9], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [2.5, 7, 7, 9], "rotation": 90, "texture": "#1_1"} + } + }, + { + "from": [10.5, 0, 7], + "to": [14.5, 4, 16], + "faces": { + "east": {"uv": [7, 7, 2.5, 9], "rotation": 180, "texture": "#1_1"}, + "west": {"uv": [7, 7, 2.5, 9], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [2.5, 9, 7, 7], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [2.5, 9, 7, 7], "rotation": 90, "texture": "#1_1"} + } + }, + { + "name": "LowerPort", + "from": [1.5, 0.1, -0.9], + "to": [5.5, 4.1, 2.1], + "faces": { + "north": {"uv": [2.5, 13, 4.5, 15], "texture": "#1_1"}, + "east": {"uv": [3, 13, 4.5, 15], "texture": "#1_1"}, + "south": {"uv": [10, 0, 14, 4], "texture": "#1_1"}, + "west": {"uv": [3, 13, 4.5, 15], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [3, 13, 4.5, 15], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [3, 13, 4.5, 15], "rotation": 90, "texture": "#1_1"} + } + }, + { + "name": "LowerPort", + "from": [10.5, 0.1, -0.9], + "to": [14.5, 4.1, 2.1], + "faces": { + "north": {"uv": [4.5, 13, 2.5, 15], "texture": "#1_1"}, + "east": {"uv": [4.5, 13, 3, 15], "rotation": 180, "texture": "#1_1"}, + "south": {"uv": [14, 0, 10, 4], "texture": "#1_1"}, + "west": {"uv": [4.5, 13, 3, 15], "texture": "#1_1"}, + "up": {"uv": [3, 15, 4.5, 13], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [3, 15, 4.5, 13], "rotation": 90, "texture": "#1_1"} + } + }, + { + "name": "Port", + "from": [4, 4, -1.8], + "to": [12, 12, 0.2], + "faces": { + "north": {"uv": [2.5, 9, 6.5, 13], "texture": "#1_1"}, + "east": {"uv": [5.5, 9, 6.5, 13], "texture": "#1_1"}, + "west": {"uv": [5.5, 9, 6.5, 13], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [5.5, 9, 6.5, 13], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [5.5, 9, 6.5, 13], "rotation": 90, "texture": "#1_1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 135, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 135, 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, 45, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [0, 180, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "SteamCylinder", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4, 5, 6] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/furnace_engine/frame.json b/src/main/resources/assets/create/models/block/furnace_engine/frame.json new file mode 100644 index 000000000..2966a5a63 --- /dev/null +++ b/src/main/resources/assets/create/models/block/furnace_engine/frame.json @@ -0,0 +1,89 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "particle": "create:block/steam_engine_wheel", + "1_1": "create:block/furnace_cylinder" + }, + "elements": [ + { + "name": "Cylinder", + "from": [1.1, 1.1, -1.9], + "to": [14.9, 14.9, 0.1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]}, + "faces": { + "north": {"uv": [8, 0, 15, 7], "texture": "#1_1"}, + "east": {"uv": [14, 0, 15, 7], "texture": "#1_1"}, + "south": {"uv": [7, 7, 16, 16], "texture": "#1_1"}, + "west": {"uv": [14, 0, 15, 7], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [14, 0, 15, 7], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [14, 0, 15, 7], "rotation": 90, "texture": "#1_1"} + } + }, + { + "from": [-0.9, 12, -0.9], + "to": [16.9, 16.1, 16.9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]}, + "faces": { + "north": {"uv": [7, 7, 16, 9], "texture": "#1_1"}, + "east": {"uv": [7, 7, 16, 9], "texture": "#1_1"}, + "south": {"uv": [7, 7, 16, 9], "texture": "#1_1"}, + "west": {"uv": [7, 7, 16, 9], "texture": "#1_1"}, + "up": {"uv": [7, 7, 16, 16], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [7, 7, 16, 16], "rotation": 90, "texture": "#1_1"} + } + }, + { + "from": [-0.9, 8, -0.9], + "to": [16.9, 12, 16.9], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]}, + "faces": { + "north": {"uv": [7, 14, 16, 16], "texture": "#1_1"}, + "east": {"uv": [7, 14, 16, 16], "texture": "#1_1"}, + "south": {"uv": [7, 14, 16, 16], "texture": "#1_1"}, + "west": {"uv": [7, 14, 16, 16], "texture": "#1_1"}, + "up": {"uv": [7, 7, 16, 16], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [7, 7, 16, 16], "rotation": 90, "texture": "#1_1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, -67, 0], + "translation": [0, 2.5, -2], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, -67, 0], + "translation": [0, 2.5, -2], + "scale": [0.375, 0.375, 0.375] + }, + "firstperson_righthand": { + "rotation": [0, -91, 0], + "scale": [0.4, 0.4, 0.4] + }, + "firstperson_lefthand": { + "rotation": [0, -91, 0], + "scale": [0.4, 0.4, 0.4] + }, + "ground": { + "rotation": [90, 0, 0], + "translation": [0, 2, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [30, 225, 0], + "translation": [-0.25, 0.75, 0], + "scale": [0.35, 0.35, 0.35] + }, + "fixed": { + "scale": [0.45, 0.45, 0.45] + } + }, + "groups": [ + { + "name": "SteamCylinder", + "origin": [8, 8, 8], + "children": [0, 1, 2] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/furnace_engine/item.json b/src/main/resources/assets/create/models/block/furnace_engine/item.json new file mode 100644 index 000000000..3ec9466c0 --- /dev/null +++ b/src/main/resources/assets/create/models/block/furnace_engine/item.json @@ -0,0 +1,123 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "5": "create:block/brass_casing", + "1_1": "create:block/furnace_cylinder" + }, + "elements": [ + { + "name": "Ring", + "from": [0, 0, 9], + "to": [16, 16, 14], + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#5"}, + "east": {"uv": [0, 7, 2.5, 15], "texture": "#1_1"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#5"}, + "west": {"uv": [0, 7, 2.5, 15], "texture": "#1_1"}, + "up": {"uv": [0, 7, 2.5, 15], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [0, 7, 2.5, 15], "rotation": 90, "texture": "#1_1"} + } + }, + { + "name": "Cylinder", + "from": [1, 1, 0], + "to": [15, 15, 16], + "faces": { + "north": {"uv": [8, 0, 15, 7], "texture": "#1_1"}, + "east": {"uv": [0, 0, 8, 7], "texture": "#1_1"}, + "south": {"uv": [8, 0, 15, 7], "texture": "#1_1"}, + "west": {"uv": [0, 0, 8, 7], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [0, 0, 8, 7], "rotation": 270, "texture": "#1_1"}, + "down": {"uv": [0, 0, 8, 7], "rotation": 90, "texture": "#1_1"} + } + }, + { + "from": [10.5, 0, 0], + "to": [14.5, 4, 9], + "faces": { + "east": {"uv": [2.5, 7, 7, 9], "rotation": 180, "texture": "#1_1"}, + "west": {"uv": [2.5, 7, 7, 9], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [2.5, 7, 7, 9], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [2.5, 7, 7, 9], "rotation": 270, "texture": "#1_1"} + } + }, + { + "name": "LowerPort", + "from": [10.5, 0.1, 13.9], + "to": [14.5, 4.1, 16.9], + "faces": { + "north": {"uv": [10, 0, 14, 4], "texture": "#1_1"}, + "east": {"uv": [3, 13, 4.5, 15], "rotation": 180, "texture": "#1_1"}, + "south": {"uv": [2.5, 13, 4.5, 15], "texture": "#1_1"}, + "west": {"uv": [3, 13, 4.5, 15], "texture": "#1_1"}, + "up": {"uv": [3, 13, 4.5, 15], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [3, 13, 4.5, 15], "rotation": 270, "texture": "#1_1"} + } + }, + { + "name": "LowerPort", + "from": [1.5, 0.1, 13.9], + "to": [5.5, 4.1, 16.9], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]}, + "faces": { + "north": {"uv": [14, 0, 10, 4], "texture": "#1_1"}, + "east": {"uv": [4.5, 13, 3, 15], "texture": "#1_1"}, + "south": {"uv": [4.5, 13, 2.5, 15], "texture": "#1_1"}, + "west": {"uv": [4.5, 13, 3, 15], "rotation": 180, "texture": "#1_1"}, + "up": {"uv": [3, 15, 4.5, 13], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [3, 15, 4.5, 13], "rotation": 270, "texture": "#1_1"} + } + }, + { + "name": "Port", + "from": [4, 4, 15.8], + "to": [12, 12, 17.8], + "faces": { + "east": {"uv": [5.5, 9, 6.5, 13], "rotation": 180, "texture": "#1_1"}, + "south": {"uv": [2.5, 9, 6.5, 13], "texture": "#1_1"}, + "west": {"uv": [5.5, 9, 6.5, 13], "texture": "#1_1"}, + "up": {"uv": [5.5, 9, 6.5, 13], "rotation": 90, "texture": "#1_1"}, + "down": {"uv": [5.5, 9, 6.5, 13], "rotation": 270, "texture": "#1_1"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [75, 135, 0], + "translation": [0, 2.5, 0], + "scale": [0.375, 0.375, 0.375] + }, + "thirdperson_lefthand": { + "rotation": [75, 135, 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, 45, 0], + "scale": [0.625, 0.625, 0.625] + }, + "fixed": { + "rotation": [0, 180, 0], + "scale": [0.5, 0.5, 0.5] + } + }, + "groups": [ + { + "name": "SteamCylinder", + "origin": [8, 8, 8], + "children": [0, 1, 2, 3, 4, 5] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/furnace_cylinder.png b/src/main/resources/assets/create/textures/block/furnace_cylinder.png new file mode 100644 index 0000000000000000000000000000000000000000..2e48786eb8871c285c7a74691cb593cd1d38b552 GIT binary patch literal 645 zcmV;00($+4P)bD3 zTU&TkEm>JvS6NwBR#sG2R&q=$Pft%wOiWEoNlZ&iNl8gZMn*(LL_$JBKR-WJIv+hf zJxwzgNiP*hFBLl{6FMdmIVKV)C@4525jP_cHX{%;APq4d3ojfBG8zgl911TN2`&~0 ztUa2{00001bW%=J06^y0W&i*IlSxEDRCoae!BK7-M-Tc+V z+kjw463OLGyDAsV-L!+b1AyPg}_TnGQ`bN5bnG>{O8!Ee`tZ6Qrdf(~L-&b+fzs}^J-Xl3Btv*~9}x6_VMP$tTd zZ$Xq#pQsyjTruSWOgrX2cL4B9E|}AH!0Cs=Qm|mG_taPSRjVkUKp^;Q$jb-&T*onu zQY3)Z26whs20$WWY3yTJyp6~3<@WmhMRi29C1L>2$L4W5AQ8G(RJTzP!{2z@AVT-5 zNVg(5pbiUxt_Tz`!A7L%m57C*yLrHNK!+}(VJvv+|JU3-DbOKAGr-)A=?M!>Cmo1E zE$+7OAaHEy(9JA4wc~yV3XbT|M^JoX_W+uei0(C_jWKYl0njbFX-6=A!A}6`Mj*Od f0DucHVF!NznJK>%HPDH!00000NkvXXu0mjf!Py1F literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/marker_flag.png b/src/main/resources/assets/create/textures/block/marker_flag.png new file mode 100644 index 0000000000000000000000000000000000000000..c3a12462de4e6a665dd049bd2a64ff3fe1ccb845 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFpO1)z4*}Q$iB}dyzkZ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/create/textures/block/sealer.png b/src/main/resources/assets/create/textures/block/sealer.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb4eea630ac374c37a561cb117c8118a3368c1f GIT binary patch literal 421 zcmV;W0b2fvP)?Uzjn}%2$g6$Fs(i($dc&r8!lie?q;|lgb-bT(x}9&g zon*I~Y_^$ev6X49m0_ccS(}AbnS4%@c1T`eU|CyRSy@?ESy@z8R!vMvOiN2iNl8aX zM@L3RLPA14Jv|Z`khlN<00DGTPE!Ct=GbNc007-dL_t(|0j0sqN(501MbUkdSk-MK zA~^N`e@{@6dgMk>bd)=CE&feRJz*5V+#_ea1yh!##F!c`d>B)f4i-$+hhP{}2lo%V zjH%`3JWDiQz(J=Yg3bo(4xnq$TAgb;WCe}b{1d>J^kBvT21cU*2L^WpofQ~BBBPV| zfC#68Mv{X70YS^19|~H@ub>eQh;K&YOb}E-1)U9*JPoZuL-OKM8=``SUCuk(S&ujg z8hU3tbm+2a2^!~Xu$PUjgGN$XjjF5160` z8^=Bn>CsBZp4jXh`k0yI&I&DVVWWl6KVmB?7; zeqUe4;VpH#c0VyB$0HtA^1ce97^)zOG5dT84I!)NOK1pLr~dA=!apbXKj^Q{3|IJS z;sfx3dvJEclh;|ygzW%qM25?Lds;qnmq~v(S@F0x`1{NS-#wR@yuY8`#y2k3EBtal z-CenGWwzIMU48iP@vkSzfZMc?x^U%YTF6ZDfbG+bGl{FS)5rUbGr4R4 kkV7{B$YCA<0003019eyDuiqFw2LJ#707*qoM6N<$f)b(|)c^nh literal 0 HcmV?d00001