mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-14 14:43:49 +01:00
Ctrl A Backspace
- Encased fans can no longer provide stress capacity as generators - Removed the Furnace Engine - Added Kryppers' new Flywheel model - Fixed inverted stress capacity labels in tooltips - Removed speed requirements from tooltips - Fixed belt tickers not properly being removed when parts of the belts are destroyed
This commit is contained in:
parent
e1c3ad1a9b
commit
b85c0ed93f
85 changed files with 2235 additions and 3140 deletions
|
@ -208,10 +208,9 @@ fb41aa1a0828c9256b3f886fdcb55bb54252ba09 assets/create/blockstates/exposed_coppe
|
|||
65f5fa4b779af5150993b20174404ec93bfc4303 assets/create/blockstates/fluid_pipe.json
|
||||
f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json
|
||||
5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json
|
||||
e9da1794b6ece7f9aa8bcb43d42c23a55446133b assets/create/blockstates/flywheel.json
|
||||
95b0775bf4d619ca5b0a42dbdc47c6f2c15d7b3d assets/create/blockstates/flywheel.json
|
||||
ac00d40e1ef50a37041c0481afa1a23a14dea78e assets/create/blockstates/framed_glass.json
|
||||
61df7769fa61f6dd2868a4377e54320fdd473b4e assets/create/blockstates/framed_glass_pane.json
|
||||
3cf49f4812732f00f578fa73785e14ffdf340f21 assets/create/blockstates/furnace_engine.json
|
||||
23744450886af88ed468aecbbd7b8d7babcbbd6f assets/create/blockstates/gantry_carriage.json
|
||||
9fa39a44bba30c5ae8fa245b122a837c705462b4 assets/create/blockstates/gantry_shaft.json
|
||||
eca1f0e56efdadb241f42dc6ebb036f1d52213a9 assets/create/blockstates/gearbox.json
|
||||
|
@ -542,23 +541,23 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
|||
6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json
|
||||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
7fbb25c577025ff61388c54c43401d8bb80723dd assets/create/lang/en_ud.json
|
||||
024a27fd48ffcc6a79c9743ece2e8c92e10190ab assets/create/lang/en_us.json
|
||||
28f293c0e56f4b0928ed5784c6fa542cd958b08d assets/create/lang/unfinished/de_de.json
|
||||
6caa5da7f0537dab9968522151a2022cbb9f017f assets/create/lang/unfinished/es_cl.json
|
||||
a182e06d08d8e1b382a1c3233b5d92553ce126bd assets/create/lang/unfinished/es_es.json
|
||||
0e308ef282040673debe46ec12e6e55ac9ce985e assets/create/lang/unfinished/fr_fr.json
|
||||
35d0439648d6ec63cdf47aabb631afc098c32666 assets/create/lang/unfinished/it_it.json
|
||||
089dd0341bd90a9ac319064a9007c25d5e5de271 assets/create/lang/unfinished/ja_jp.json
|
||||
63b018284849f4afc247d42e64fe64c06e7f96b0 assets/create/lang/unfinished/ko_kr.json
|
||||
e861c584c4870fa6a2449207affc91b246372862 assets/create/lang/unfinished/nl_nl.json
|
||||
7ea957da93493b49328f862bab2df59afdc3fe79 assets/create/lang/unfinished/pl_pl.json
|
||||
4885dd6c1e1102e24c11ad17088d7a66981c73c5 assets/create/lang/unfinished/pt_br.json
|
||||
54da09cde93617abe7cdc6ccb136e94221abb612 assets/create/lang/unfinished/pt_pt.json
|
||||
77c2b474774c623314f66f8c975be1075b0d3dec assets/create/lang/unfinished/ro_ro.json
|
||||
573a751dba49ecb96c22d5d5374de475a4875ffa assets/create/lang/unfinished/ru_ru.json
|
||||
9a14db7b7a4629a2f9030f0e9c74fd919bb108e8 assets/create/lang/unfinished/zh_cn.json
|
||||
597ebfa894f0e6fe1c7c33de8504370b7a81939a assets/create/lang/unfinished/zh_tw.json
|
||||
d4cdc38cd19460fd9ba866f3ad3b2e4bd014cb98 assets/create/lang/en_ud.json
|
||||
4ed8b6910b0787d9bfa3b1a3f9e891d67b9b8af6 assets/create/lang/en_us.json
|
||||
780146d410f9416463587eb29c5ddd3ceda3df6b assets/create/lang/unfinished/de_de.json
|
||||
43e74873dff9c74b965d71a096390f1300d96d75 assets/create/lang/unfinished/es_cl.json
|
||||
caabbb6bbfed8b399ba71497a6ccf7de7b196264 assets/create/lang/unfinished/es_es.json
|
||||
c66402dc057027d4a1a972830ae8f13812f70726 assets/create/lang/unfinished/fr_fr.json
|
||||
367ceab5da165c8d52842337300a55f2238d8d93 assets/create/lang/unfinished/it_it.json
|
||||
1371fe6852059b897b364de723663ba652b7690f assets/create/lang/unfinished/ja_jp.json
|
||||
9ffb5cd3e5298a6b6d3d8eafb7b6be708390e375 assets/create/lang/unfinished/ko_kr.json
|
||||
ddb5b7d7d8b8d798caca64ff4c26c28f223f8771 assets/create/lang/unfinished/nl_nl.json
|
||||
b1eb44b1d043fd64b6d9d0455da939af893526c5 assets/create/lang/unfinished/pl_pl.json
|
||||
695732ec36cf7b39e1dcf467a58e9b438bbf52d5 assets/create/lang/unfinished/pt_br.json
|
||||
1b1dbd8df62df4424b6d576ad1ce8f0986829d4e assets/create/lang/unfinished/pt_pt.json
|
||||
9a92874e612ddc59a7420bf401d719f792ac9467 assets/create/lang/unfinished/ro_ro.json
|
||||
f0b799b93634d61d7799808d137003ab8c67c2c4 assets/create/lang/unfinished/ru_ru.json
|
||||
b29afaece334e84972afc027f00b53e6d2501ebf assets/create/lang/unfinished/zh_cn.json
|
||||
aa016cb464bd32865ef05034ad3bf317c14d7cdf assets/create/lang/unfinished/zh_tw.json
|
||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||
|
@ -1816,7 +1815,6 @@ f4727119b75ab632c3ad295be4d398b1919d782f assets/create/models/item/fluid_valve.j
|
|||
8707332c0cb6ee123e7962d08536a60725c64ce8 assets/create/models/item/flywheel.json
|
||||
f2496d3b16e5b5415474bcfb7d6c6a6c3b28ed60 assets/create/models/item/framed_glass.json
|
||||
1041d462c6e856f7f3f2365c299c0599703d1ed7 assets/create/models/item/framed_glass_pane.json
|
||||
0bee2855dc9bad52e941153b87e9c35797c246ee assets/create/models/item/furnace_engine.json
|
||||
a703b16625ad9d3b9042b6b19fdb88407726898b assets/create/models/item/furnace_minecart_contraption.json
|
||||
a642f570ec8223c066e542f062aff3b7f93e002b assets/create/models/item/gantry_carriage.json
|
||||
b4bfd5041b62f3a0a955fa4872d178b590614f22 assets/create/models/item/gantry_shaft.json
|
||||
|
@ -2200,7 +2198,6 @@ b61d958815f1c2530c11c88c9081d5c794d7f807 data/create/advancements/its_alive.json
|
|||
ee834796d3d05d097048338ca946c5509fada0be data/create/advancements/mixer.json
|
||||
bee2c19d730936e34ee61fe04af13e2b031ecffa data/create/advancements/musical_arm.json
|
||||
c9c4060ed207226b69fada2d61e01a97d7077eae data/create/advancements/nixie_tube.json
|
||||
0b0a7f5b7f30ab75e4ca790c850b1eb50944a3aa data/create/advancements/overstress_flywheel.json
|
||||
7f0847247a80ee930c23f551bce00bda74f81b0e data/create/advancements/overstressed.json
|
||||
449eb8a9e6102bb342c96eb8b19e743eb6979bfa data/create/advancements/pipe_collision.json
|
||||
4b621e5bb48fbb120853ec02c05c915d86bd6dd8 data/create/advancements/pipe_spill.json
|
||||
|
@ -3506,7 +3503,6 @@ b4df9a8b28f29587e75ffe11ca26d85ddbe926da data/create/loot_tables/blocks/fluid_pi
|
|||
45637f479b3f90ce86ff84fd8c96074e622452a7 data/create/loot_tables/blocks/flywheel.json
|
||||
3e65b0c51768fb0076c7de39c425961167709988 data/create/loot_tables/blocks/framed_glass.json
|
||||
f76fe7d876150a43be05977ec596d1fe2a3b9868 data/create/loot_tables/blocks/framed_glass_pane.json
|
||||
7e0962fdc4166303117a54f6b7069bd5c26c2bde data/create/loot_tables/blocks/furnace_engine.json
|
||||
891f0d334c3f596af081328be8d6ac0461592183 data/create/loot_tables/blocks/gantry_carriage.json
|
||||
795c88efe80319220902da231f45d63d1130fde5 data/create/loot_tables/blocks/gantry_shaft.json
|
||||
8a0d3f52474ea610efd6f2053d3b666d5f7db0f7 data/create/loot_tables/blocks/gearbox.json
|
||||
|
@ -4677,7 +4673,6 @@ c2e15ac0c9109bad3face6d13efc32d7116b4c25 data/create/recipes/limestone_pillar_fr
|
|||
66674d07de63aada0991d2fdff07e22e00450135 data/create/recipes/mechanical_crafting/crushing_wheel.json
|
||||
599f8b87c24c131350ba7ceb69a0c8b9829c62bc data/create/recipes/mechanical_crafting/extendo_grip.json
|
||||
f26ed47c10cc63613759b0f8ae4ef349000de60d data/create/recipes/mechanical_crafting/flywheel.json
|
||||
2dc00d6e4c159e06ab2a705e666e83e4238a7814 data/create/recipes/mechanical_crafting/furnace_engine.json
|
||||
fa356eb82c08339bb0064017d88b1e5b053fd4ff data/create/recipes/mechanical_crafting/potato_cannon.json
|
||||
7e695ab2b684c23968a23765072603be5da13d75 data/create/recipes/mechanical_crafting/wand_of_symmetry.json
|
||||
98f877bf8f3f8a686fc6cf7479a0fba5744248ce data/create/recipes/milling/allium.json
|
||||
|
@ -5216,7 +5211,7 @@ d79c82bc6cf59b073b2f51f5fea9c98e81d14b68 data/create/recipes/weathered_copper_ti
|
|||
452d480dd50b97fce72e0c89429cf68db534c6b2 data/create/recipes/weathered_copper_tile_slab_from_weathered_copper_tiles_stonecutting.json
|
||||
ac265a674626e0e832330086fd18fe0be37fc327 data/create/recipes/weathered_copper_tile_stairs.json
|
||||
5942a571f79c40524bbf408775cf91de4715f2b6 data/create/recipes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json
|
||||
6558ef43f28c92cc558fbfc572f38496f1ed479e data/create/tags/blocks/brittle.json
|
||||
2d549ea56fb226c0e31e66c0391996093f8bece9 data/create/tags/blocks/brittle.json
|
||||
330bfb3850ba3964b10b1bccbc3cbb9b012cae54 data/create/tags/blocks/fan_heaters.json
|
||||
57b942386a15c874d1ca9cd6a8032c11a5599fc2 data/create/tags/blocks/fan_transparent.json
|
||||
10781e8cfcbb3486327aace3aa00e437fb44b331 data/create/tags/blocks/ore_override_stone.json
|
||||
|
@ -5299,7 +5294,7 @@ ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/items/storage_blocks/br
|
|||
69f596fcb065e26b02ce246760432b5174191b76 data/minecraft/tags/blocks/impermeable.json
|
||||
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/lush_ground_replaceable.json
|
||||
02f7a9df2f9e154749266e7ac59c37aa076a3390 data/minecraft/tags/blocks/mineable/axe.json
|
||||
20500209238916508e88a8219e7f3b342bb16461 data/minecraft/tags/blocks/mineable/pickaxe.json
|
||||
5782184ce3d612e9cd747fa606f5cb87bd4d67ef data/minecraft/tags/blocks/mineable/pickaxe.json
|
||||
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/moss_replaceable.json
|
||||
e157c1d3af30e409e34bbefbe15a037e6e1c8daa data/minecraft/tags/blocks/needs_iron_tool.json
|
||||
a08f67865337f62601c5e333b4011382d10020e4 data/minecraft/tags/blocks/needs_stone_tool.json
|
||||
|
|
|
@ -1,49 +1,17 @@
|
|||
{
|
||||
"variants": {
|
||||
"connection=none,facing=north": {
|
||||
"model": "create:block/flywheel/casing_none",
|
||||
"y": 270
|
||||
},
|
||||
"connection=left,facing=north": {
|
||||
"model": "create:block/flywheel/casing_left",
|
||||
"y": 270
|
||||
},
|
||||
"connection=right,facing=north": {
|
||||
"model": "create:block/flywheel/casing_right",
|
||||
"y": 270
|
||||
},
|
||||
"connection=none,facing=south": {
|
||||
"model": "create:block/flywheel/casing_none",
|
||||
"axis=x": {
|
||||
"model": "create:block/flywheel/block",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"connection=left,facing=south": {
|
||||
"model": "create:block/flywheel/casing_left",
|
||||
"y": 90
|
||||
"axis=y": {
|
||||
"model": "create:block/flywheel/block"
|
||||
},
|
||||
"connection=right,facing=south": {
|
||||
"model": "create:block/flywheel/casing_right",
|
||||
"y": 90
|
||||
},
|
||||
"connection=none,facing=west": {
|
||||
"model": "create:block/flywheel/casing_none",
|
||||
"axis=z": {
|
||||
"model": "create:block/flywheel/block",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"connection=left,facing=west": {
|
||||
"model": "create:block/flywheel/casing_left",
|
||||
"y": 180
|
||||
},
|
||||
"connection=right,facing=west": {
|
||||
"model": "create:block/flywheel/casing_right",
|
||||
"y": 180
|
||||
},
|
||||
"connection=none,facing=east": {
|
||||
"model": "create:block/flywheel/casing_none"
|
||||
},
|
||||
"connection=left,facing=east": {
|
||||
"model": "create:block/flywheel/casing_left"
|
||||
},
|
||||
"connection=right,facing=east": {
|
||||
"model": "create:block/flywheel/casing_right"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"variants": {
|
||||
"facing=north": {
|
||||
"model": "create:block/furnace_engine/block"
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "create:block/furnace_engine/block",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "create:block/furnace_engine/block",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east": {
|
||||
"model": "create:block/furnace_engine/block",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
|
@ -212,7 +212,6 @@
|
|||
"block.create.flywheel": "\u05DF\u01DD\u01DD\u0265\u028D\u028E\u05DF\u2132",
|
||||
"block.create.framed_glass": "ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132",
|
||||
"block.create.framed_glass_pane": "\u01DDu\u0250\u0500 ss\u0250\u05DF\u2141 p\u01DD\u026F\u0250\u0279\u2132",
|
||||
"block.create.furnace_engine": "\u01DDu\u0131bu\u018E \u01DD\u0254\u0250u\u0279n\u2132",
|
||||
"block.create.gantry_carriage": "\u01DDb\u0250\u0131\u0279\u0279\u0250\u0186 \u028E\u0279\u0287u\u0250\u2141",
|
||||
"block.create.gantry_shaft": "\u0287\u025F\u0250\u0265S \u028E\u0279\u0287u\u0250\u2141",
|
||||
"block.create.gearbox": "xoq\u0279\u0250\u01DD\u2141",
|
||||
|
|
|
@ -215,7 +215,6 @@
|
|||
"block.create.flywheel": "Flywheel",
|
||||
"block.create.framed_glass": "Framed Glass",
|
||||
"block.create.framed_glass_pane": "Framed Glass Pane",
|
||||
"block.create.furnace_engine": "Furnace Engine",
|
||||
"block.create.gantry_carriage": "Gantry Carriage",
|
||||
"block.create.gantry_shaft": "Gantry Shaft",
|
||||
"block.create.gearbox": "Gearbox",
|
||||
|
@ -2145,10 +2144,6 @@
|
|||
"create.ponder.fan_processing.text_7": "The Speed of the Fan does NOT affect the processing speed, only its range",
|
||||
"create.ponder.fan_processing.text_8": "Fan Processing can also be applied to Items on Depots and Belts",
|
||||
|
||||
"create.ponder.fan_source.header": "Generating Rotational Force using Encased Fans",
|
||||
"create.ponder.fan_source.text_1": "Fans facing down into a source of heat can provide Rotational Force",
|
||||
"create.ponder.fan_source.text_2": "When given a Redstone Signal, the Fans will start providing power",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "Moving Fluids using Copper Pipes",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "Fluid Pipes can connect two or more fluid sources and targets",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "Using a wrench, a straight pipe segment can be given a window",
|
||||
|
@ -2178,11 +2173,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "However, in Survival Mode Fluids cannot be added or taken manually",
|
||||
"create.ponder.fluid_tank_storage.text_5": "You can use Basins, Item Drains and Spouts to drain or fill fluid containing items",
|
||||
|
||||
"create.ponder.flywheel.header": "Generating Rotational Force using the Flywheel",
|
||||
"create.ponder.flywheel.text_1": "Flywheels are required for generating rotational force with the Furnace Engine",
|
||||
"create.ponder.flywheel.text_2": "The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.flywheel.text_3": "Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.funnel_compat.header": "Funnel compatibility",
|
||||
"create.ponder.funnel_compat.text_1": "Funnels should also interact nicely with a handful of other components.",
|
||||
"create.ponder.funnel_compat.text_2": "Vertical Saws",
|
||||
|
@ -2207,11 +2197,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "Chutes or Smart chutes might be more suitable for such purposes.",
|
||||
"create.ponder.funnel_transfer.text_3": "Same applies for horizontal movement. A mechanical belt should help here.",
|
||||
|
||||
"create.ponder.furnace_engine.header": "Generating Rotational Force using the Furnace Engine",
|
||||
"create.ponder.furnace_engine.text_1": "Furnace Engines generate Rotational Force while their attached Furnace is running",
|
||||
"create.ponder.furnace_engine.text_2": "The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.furnace_engine.text_3": "Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "Using Gantry Carriages",
|
||||
"create.ponder.gantry_carriage.text_1": "Gantry Carriages can mount to and slide along a Gantry Shaft.",
|
||||
"create.ponder.gantry_carriage.text_2": "Gantry setups can move attached Blocks.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1539",
|
||||
"_": "Missing Localizations: 1528",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "Schwungrad",
|
||||
"block.create.framed_glass": "Gerahmtes Glas",
|
||||
"block.create.framed_glass_pane": "Gerahmte Glasscheibe",
|
||||
"block.create.furnace_engine": "Ofenmotor",
|
||||
"block.create.gantry_carriage": "Portalkranwagen",
|
||||
"block.create.gantry_shaft": "Portalkranachse",
|
||||
"block.create.gearbox": "Getriebe",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range",
|
||||
"create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts",
|
||||
|
||||
"create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans",
|
||||
"create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force",
|
||||
"create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually",
|
||||
"create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items",
|
||||
|
||||
"create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel",
|
||||
"create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine",
|
||||
"create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility",
|
||||
"create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.",
|
||||
"create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
|
||||
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
|
||||
|
||||
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
|
||||
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
|
||||
"create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages",
|
||||
"create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.",
|
||||
"create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.",
|
||||
|
|
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "Volante de Inercia",
|
||||
"block.create.framed_glass": "Vidrio Enmarcado",
|
||||
"block.create.framed_glass_pane": "Panel de Vidrio Enmarcado",
|
||||
"block.create.furnace_engine": "Horno Motor",
|
||||
"block.create.gantry_carriage": "Carruaje de Grúa",
|
||||
"block.create.gantry_shaft": "Eje de Grúa",
|
||||
"block.create.gearbox": "Caja de Engranajes",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta la velocidad de procesamiento, solo su rango",
|
||||
"create.ponder.fan_processing.text_8": "El Procesamiento por Ventilador también se puede aplicar a objetos en depósitos y cintas",
|
||||
|
||||
"create.ponder.fan_source.header": "Generando Fuerza Rotacional usando Ventiladores",
|
||||
"create.ponder.fan_source.text_1": "Los Ventiladores orientados hacia abajo hacia una Fuente de Calor pueden proporcionar Fuerza Rotacional",
|
||||
"create.ponder.fan_source.text_2": "Al dalre una señal de Redstone, los Ventiladores empezarán a generar",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "Moviendo fluidos usando Tuberías de Cobre",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes de fluidos y objetivos",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "Con una llave, se puede añadir una ventana a un segmento de tubería recto",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el modo Supervivencia, los Fluidos no se pueden agregar ni tomar manualmente",
|
||||
"create.ponder.fluid_tank_storage.text_5": "Puedes usar tóneles, drenajes y surtidores para drenar o llenar objetos contenedores de líquido",
|
||||
|
||||
"create.ponder.flywheel.header": "Generando Fuerza Rotacional usando el Volante de Inercia",
|
||||
"create.ponder.flywheel.text_1": "El Volante de Inercia es necesario para Generar Energía al usar el Horno Motor",
|
||||
"create.ponder.flywheel.text_2": "La fuerza de rotación proporcionada tiene una capacidad de estrés muy grande",
|
||||
"create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor.",
|
||||
|
||||
"create.ponder.funnel_compat.header": "Compatibilidad de Ingresos",
|
||||
"create.ponder.funnel_compat.text_1": "Los ingresos también deberían interactuar bien con un puñado de otros componentes.",
|
||||
"create.ponder.funnel_compat.text_2": "Sierras Verticales",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "Los tolvoganes o tolvoganes inteligentes podrían ser más adecuados para tales fines.",
|
||||
"create.ponder.funnel_transfer.text_3": "Lo mismo se aplica al movimiento horizontal. Una cinta mecánica debería ayudar aquí.",
|
||||
|
||||
"create.ponder.furnace_engine.header": "Generando Fuerza rotacional usando el Horno Motor",
|
||||
"create.ponder.furnace_engine.text_1": "Los Horno Motores generan fuerza rotacional mientras su horno adjunto está en funcionamiento",
|
||||
"create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de tensión muy grande",
|
||||
"create.ponder.furnace_engine.text_3": "El uso de un Alto Horno duplicará la eficiencia del motor.",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "Usando Carruajes de Grúa",
|
||||
"create.ponder.gantry_carriage.text_1": "Los Carruajes de Grúa pueden montarse y deslizarse sobre los Ejes de Grúa.",
|
||||
"create.ponder.gantry_carriage.text_2": "Las Configuraciones de Carruaje pueden mover bloques adjuntos.",
|
||||
|
|
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "Rueda de inercia",
|
||||
"block.create.framed_glass": "Cristal enmarcado",
|
||||
"block.create.framed_glass_pane": "Panel de cristal enmarcado",
|
||||
"block.create.furnace_engine": "Motor de horno",
|
||||
"block.create.gantry_carriage": "Carro de grúa",
|
||||
"block.create.gantry_shaft": "Eje de grúa",
|
||||
"block.create.gearbox": "Caja de transmisión",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "La velocidad del ventilador NO afecta a la velocidad de procesamiento, sólo a su rango",
|
||||
"create.ponder.fan_processing.text_8": "El procesamiento del ventilador también puede aplicarse a los objetos de los depósitos y las cintas mecánicas",
|
||||
|
||||
"create.ponder.fan_source.header": "Generar fuerza rotacional mediante ventiladores revestidos",
|
||||
"create.ponder.fan_source.text_1": "Los ventiladores orientados hacia una fuente de calor pueden proporcionar fuerza rotacional",
|
||||
"create.ponder.fan_source.text_2": "Cuando se les da una señal de redstone, los ventiladores comenzarán a proporcionar fuerza",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "Transportar fluidos mediante tuberías de cobre",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "Las tuberías de fluidos pueden conectar dos o más fuentes y objetivos de fluidos",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "Utilizando una llave, se puede dar a un segmento de tubo recto una ventana",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "Sin embargo, en el Modo Supervivencia no se pueden añadir o tomar fluidos manualmente",
|
||||
"create.ponder.fluid_tank_storage.text_5": "Puede utilizar cuencas, drenadores de objetos y tuberías para vaciar o llenar objetos que contengan líquido",
|
||||
|
||||
"create.ponder.flywheel.header": "Generar fuerza rotacional con la rueda de inercia",
|
||||
"create.ponder.flywheel.text_1": "Las ruedas de inercia son necesarias para generar fuerza rotacional con el motor de horno",
|
||||
"create.ponder.flywheel.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande",
|
||||
"create.ponder.flywheel.text_3": "El uso de un alto horno duplicará la eficiencia del motor",
|
||||
|
||||
"create.ponder.funnel_compat.header": "Compatibilidades con el embudo",
|
||||
"create.ponder.funnel_compat.text_1": "Los embudos deberían interactuar bien con un puñado de otros componentes",
|
||||
"create.ponder.funnel_compat.text_2": "Sierras verticales",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "Los ductos o los ductos inteligentes podrían ser más adecuados para estos fines",
|
||||
"create.ponder.funnel_transfer.text_3": "Lo mismo se aplica para el movimiento horizontal. Una cinta mecánica debería ayudar aquí",
|
||||
|
||||
"create.ponder.furnace_engine.header": "Generar fuerza rotacional con el motor de horno",
|
||||
"create.ponder.furnace_engine.text_1": "Los motores de horno generan fuerza rotacional mientras su horno adjunto está funcionando",
|
||||
"create.ponder.furnace_engine.text_2": "La fuerza rotacional proporcionada tiene una capacidad de estrés muy grande",
|
||||
"create.ponder.furnace_engine.text_3": "El uso de un alto horno duplicará la eficiencia del motor",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "Usar carros de grúa",
|
||||
"create.ponder.gantry_carriage.text_1": "Los carros de grúa pueden montarse y deslizarse a lo largo de un eje de grúa",
|
||||
"create.ponder.gantry_carriage.text_2": "Las instalaciones de grúa pueden mover bloques adjuntos",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1801",
|
||||
"_": "Missing Localizations: 1790",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "Volant d'inertie",
|
||||
"block.create.framed_glass": "Grande fenêtre en verre",
|
||||
"block.create.framed_glass_pane": "Grande vitre encadrée",
|
||||
"block.create.furnace_engine": "Moteur de four",
|
||||
"block.create.gantry_carriage": "UNLOCALIZED: Gantry Carriage",
|
||||
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
|
||||
"block.create.gearbox": "Boîte à roue dentée",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range",
|
||||
"create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts",
|
||||
|
||||
"create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans",
|
||||
"create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force",
|
||||
"create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually",
|
||||
"create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items",
|
||||
|
||||
"create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel",
|
||||
"create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine",
|
||||
"create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility",
|
||||
"create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.",
|
||||
"create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
|
||||
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
|
||||
|
||||
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
|
||||
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
|
||||
"create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages",
|
||||
"create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.",
|
||||
"create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1490",
|
||||
"_": "Missing Localizations: 1479",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "Volano",
|
||||
"block.create.framed_glass": "Finestra di vetro",
|
||||
"block.create.framed_glass_pane": "Pannello di finestra di vetro",
|
||||
"block.create.furnace_engine": "Motore fornace",
|
||||
"block.create.gantry_carriage": "UNLOCALIZED: Gantry Carriage",
|
||||
"block.create.gantry_shaft": "Albero a portale",
|
||||
"block.create.gearbox": "Riduttore",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range",
|
||||
"create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts",
|
||||
|
||||
"create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans",
|
||||
"create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force",
|
||||
"create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually",
|
||||
"create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items",
|
||||
|
||||
"create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel",
|
||||
"create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine",
|
||||
"create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility",
|
||||
"create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.",
|
||||
"create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
|
||||
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
|
||||
|
||||
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
|
||||
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
|
||||
"create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages",
|
||||
"create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.",
|
||||
"create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.",
|
||||
|
|
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "弾み車",
|
||||
"block.create.framed_glass": "ガラス窓",
|
||||
"block.create.framed_glass_pane": "ガラス板窓",
|
||||
"block.create.furnace_engine": "かまどエンジン",
|
||||
"block.create.gantry_carriage": "ガントリーキャリッジ",
|
||||
"block.create.gantry_shaft": "ガントリーシャフト",
|
||||
"block.create.gearbox": "ギアボックス",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "ファンの速度は処理速度とは関係がなく、範囲のみが変わります",
|
||||
"create.ponder.fan_processing.text_8": "ファンでの加工は、デポやベルト上のアイテムにも行われます",
|
||||
|
||||
"create.ponder.fan_source.header": "ケース入りファンによる回転力の生成",
|
||||
"create.ponder.fan_source.text_1": "ファンを熱源に向けて設置すると、回転力を生成できます",
|
||||
"create.ponder.fan_source.text_2": "レッドストーン信号を受けると、回転力が生成されます",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "銅パイプを使った液体の移動",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "液体パイプは2つ以上の液体源と輸送先を繋ぐことができます",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "レンチを使うと、まっすぐなパイプに窓を付けられます",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "しかし、サバイバルモードでは手動で液体を出し入れできません。",
|
||||
"create.ponder.fluid_tank_storage.text_5": "鉢、アイテム排液口、アイテム注液口などを使えばアイテムから液体を出し入れできます。",
|
||||
|
||||
"create.ponder.flywheel.header": "弾み車による回転力の生成",
|
||||
"create.ponder.flywheel.text_1": "かまどエンジンで回転力を生成するには、弾み車が必要です",
|
||||
"create.ponder.flywheel.text_2": "これによって生成される回転力は、非常に大きな応力許容量を持っています",
|
||||
"create.ponder.flywheel.text_3": "溶鉱炉を使うと、エンジンの効率が2倍になります",
|
||||
|
||||
"create.ponder.funnel_compat.header": "ファンネルの互換性",
|
||||
"create.ponder.funnel_compat.text_1": "ファンネルは、他のいくつかの機械とも相性が良いです",
|
||||
"create.ponder.funnel_compat.text_2": "上向きのメカニカルソー",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "この様な場合は、シュートやスマートシュートの方が適しています",
|
||||
"create.ponder.funnel_transfer.text_3": "また水平方向の運搬も同様で、この場合メカニカルベルトの方が適しています",
|
||||
|
||||
"create.ponder.furnace_engine.header": "かまどエンジンによる回転力の生成",
|
||||
"create.ponder.furnace_engine.text_1": "かまどエンジンは、取り付けたかまどの稼働中に回転力を生成します",
|
||||
"create.ponder.furnace_engine.text_2": "この回転力は、非常に大きな応力許容量を持っています",
|
||||
"create.ponder.furnace_engine.text_3": "溶鉱炉を使うと、エンジンの効率が2倍になります",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "ガントリーキャリッジの使い方",
|
||||
"create.ponder.gantry_carriage.text_1": "ガントリーキャリッジは、ガントリーシャフトに取り付けてスライドできます",
|
||||
"create.ponder.gantry_carriage.text_2": "ガントリーは、取り付けられたブロックを動かします",
|
||||
|
|
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "플라이휠",
|
||||
"block.create.framed_glass": "큰 유리",
|
||||
"block.create.framed_glass_pane": "큰 유리판",
|
||||
"block.create.furnace_engine": "화로 엔진",
|
||||
"block.create.gantry_carriage": "갠트리 운반대",
|
||||
"block.create.gantry_shaft": "갠트리 축",
|
||||
"block.create.gearbox": "기어박스",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "선풍기의 속도는 가공 속도와 관련이 없습니다!",
|
||||
"create.ponder.fan_processing.text_8": "선풍기 가공은 벨트나 아이템 거치대의 아이템에도 적용됩니다.",
|
||||
|
||||
"create.ponder.fan_source.header": "선풍기를 이용해 동력 생산하기",
|
||||
"create.ponder.fan_source.text_1": "열원을 향한 선풍기는 동력을 제공합니다.",
|
||||
"create.ponder.fan_source.text_2": "레드스톤 신호를 받으면, 동력을 제공하기 시작합니다.",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "파이프로 액체 옮기기",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "파이프는 한 종류의 액체만 옮깁니다.",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "렌치를 이용하여 직선 파이프에 창문을 달 수 있습니다.",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "그러나 서바이벌 모드에서는 액체를 직접 빼내고 넣을 순 없습니다.",
|
||||
"create.ponder.fluid_tank_storage.text_5": "대야, 아이템 배수구, 주입기를 통해 액체를 빼내거나 채울 수 있습니다.",
|
||||
|
||||
"create.ponder.flywheel.header": "플라이휠로 동력 생산하기",
|
||||
"create.ponder.flywheel.text_1": "플라이휠로 동력을 생산하기 위해선, 화로 엔진이 필요합니다.",
|
||||
"create.ponder.flywheel.text_2": "플라이휠은 피로도 용량이 매우 높습니다.",
|
||||
"create.ponder.flywheel.text_3": "용광로를 사용하면 동력 속도가 2배가 됩니다.",
|
||||
|
||||
"create.ponder.funnel_compat.header": "퍼널 호환성",
|
||||
"create.ponder.funnel_compat.text_1": "퍼널은 다른 장치들 위에 설치할 수 있습니다.",
|
||||
"create.ponder.funnel_compat.text_2": "세로 톱",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "슈트나 스마트 슈트가 이런 목적에 더 적합합니다.",
|
||||
"create.ponder.funnel_transfer.text_3": "수평 방향으로는 벨트가 적합합니다.",
|
||||
|
||||
"create.ponder.furnace_engine.header": "화로 엔진을 이용해 동력 생산하기",
|
||||
"create.ponder.furnace_engine.text_1": "화로 엔진은 부착된 화로가 타오를 때 동력을 생산합니다.",
|
||||
"create.ponder.furnace_engine.text_2": "제공되는 피로도 용량이 매우 높습니다.",
|
||||
"create.ponder.furnace_engine.text_3": "용광로를 사용하면 동력 속도가 2배가 됩니다.",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "갠트리 운반대 사용하기",
|
||||
"create.ponder.gantry_carriage.text_1": "갠트리 운반대는 갠트리 축 위에서 움직입니다.",
|
||||
"create.ponder.gantry_carriage.text_2": "갠트리 장치는 부착된 블록들을 움직입니다.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 2154",
|
||||
"_": "Missing Localizations: 2142",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "UNLOCALIZED: Flywheel",
|
||||
"block.create.framed_glass": "Ingelijst Glas",
|
||||
"block.create.framed_glass_pane": "UNLOCALIZED: Framed Glass Pane",
|
||||
"block.create.furnace_engine": "UNLOCALIZED: Furnace Engine",
|
||||
"block.create.gantry_carriage": "UNLOCALIZED: Gantry Carriage",
|
||||
"block.create.gantry_shaft": "UNLOCALIZED: Gantry Shaft",
|
||||
"block.create.gearbox": "Versnellingsbak",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range",
|
||||
"create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts",
|
||||
|
||||
"create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans",
|
||||
"create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force",
|
||||
"create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually",
|
||||
"create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items",
|
||||
|
||||
"create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel",
|
||||
"create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine",
|
||||
"create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility",
|
||||
"create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.",
|
||||
"create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
|
||||
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
|
||||
|
||||
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
|
||||
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
|
||||
"create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages",
|
||||
"create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.",
|
||||
"create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.",
|
||||
|
|
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "Koło zamachowe",
|
||||
"block.create.framed_glass": "Oprawione okno",
|
||||
"block.create.framed_glass_pane": "Oprawiona szyba",
|
||||
"block.create.furnace_engine": "Silnik spalinowy",
|
||||
"block.create.gantry_carriage": "Przenośnik suwnicowy",
|
||||
"block.create.gantry_shaft": "Suwnica",
|
||||
"block.create.gearbox": "Przekładnia",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "Prędkość wiatraka nie wpływa na szybkość obróbki, a jedynie na jego zasięg!",
|
||||
"create.ponder.fan_processing.text_8": "Przepływ powietrza działa również na przedmioty na taśmociągach lub składnicach",
|
||||
|
||||
"create.ponder.fan_source.header": "Generowanie siły obrotowej z użyciem izolowanych wiatraków",
|
||||
"create.ponder.fan_source.text_1": "Wiatraki skierowane w stronę źródła ciepła generują siłę obrotową",
|
||||
"create.ponder.fan_source.text_2": "Po zasileniu, wiatraki zaczną przesyłać siłę do przylegających komponentów",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "Transport cieczy z użyciem rur",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "Rury mogą połączyć dwa lub więcej bloków przechowujących ciecze",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "Używając klucza, prosta rura może mieć w sobie okienko",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "W trybie przetrwania ciecze nie mogą być dodane lub zabrane manualnie",
|
||||
"create.ponder.fluid_tank_storage.text_5": "Można użyć tygli, odpływów lub napełniaczy aby opróżnić lub napełnić przedmioty mogące przechowywać ciecze",
|
||||
|
||||
"create.ponder.flywheel.header": "Generowanie siły obrotowej z użyciem koła zamachowego",
|
||||
"create.ponder.flywheel.text_1": "Koła zamachowe są wymagane, aby generować siłę obrotową przy pomocy silnika spalinowego",
|
||||
"create.ponder.flywheel.text_2": "Wyprodukowana w ten sposób siła ma bardzo dużą odporność na obciążenie",
|
||||
"create.ponder.flywheel.text_3": "Używając pieca hutniczego efektywność silnika spalinowego wzrośnie dwukrotnie",
|
||||
|
||||
"create.ponder.funnel_compat.header": "Kompatybilność lejków",
|
||||
"create.ponder.funnel_compat.text_1": "Lejki działają też z wieloma innymi komponentami",
|
||||
"create.ponder.funnel_compat.text_2": "Pionowe piły",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "Zsypy lub inteligentne zsypy mogą bardziej się do tego nadawać",
|
||||
"create.ponder.funnel_transfer.text_3": "To samo tyczy się transportu poziomego. Taśmociąg może tutaj pomóc",
|
||||
|
||||
"create.ponder.furnace_engine.header": "Generowanie siły obrotowej z użyciem silnika spalinowego",
|
||||
"create.ponder.furnace_engine.text_1": "Silniki spalinowe generują siłę obrotową, gdy podłączonym do niego piec jest aktywny",
|
||||
"create.ponder.furnace_engine.text_2": "Wyprodukowana w ten sposób siła ma bardzo dużą odporność na obciążenie",
|
||||
"create.ponder.furnace_engine.text_3": "Używając pieca hutniczego efektywność silnika spalinowego wzrośnie dwukrotnie",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "Używanie przenośników suwnicowych",
|
||||
"create.ponder.gantry_carriage.text_1": "Przenośnik suwnicowy może być zamontowany i przesuwany po suwnicy",
|
||||
"create.ponder.gantry_carriage.text_2": "Może on przenosić dołączone bloki",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1401",
|
||||
"_": "Missing Localizations: 1390",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "Volante de inércia",
|
||||
"block.create.framed_glass": "Vidro emoldurado",
|
||||
"block.create.framed_glass_pane": "Vidraça emoldurada",
|
||||
"block.create.furnace_engine": "Motor de Fornalha",
|
||||
"block.create.gantry_carriage": "Carruagem de Pórtico",
|
||||
"block.create.gantry_shaft": "Eixo de Pórtico",
|
||||
"block.create.gearbox": "Caixa de Transmissão",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range",
|
||||
"create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts",
|
||||
|
||||
"create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans",
|
||||
"create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force",
|
||||
"create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually",
|
||||
"create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items",
|
||||
|
||||
"create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel",
|
||||
"create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine",
|
||||
"create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility",
|
||||
"create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.",
|
||||
"create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
|
||||
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
|
||||
|
||||
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
|
||||
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
|
||||
"create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages",
|
||||
"create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.",
|
||||
"create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1773",
|
||||
"_": "Missing Localizations: 1762",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "Volante de inércia",
|
||||
"block.create.framed_glass": "UNLOCALIZED: Framed Glass",
|
||||
"block.create.framed_glass_pane": "UNLOCALIZED: Framed Glass Pane",
|
||||
"block.create.furnace_engine": "Motor de Fornalha",
|
||||
"block.create.gantry_carriage": "Carruagem de Pórtico",
|
||||
"block.create.gantry_shaft": "Eixo de Pórtico",
|
||||
"block.create.gearbox": "Caixa de Transmissão",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "UNLOCALIZED: The Speed of the Fan does NOT affect the processing speed, only its range",
|
||||
"create.ponder.fan_processing.text_8": "UNLOCALIZED: Fan Processing can also be applied to Items on Depots and Belts",
|
||||
|
||||
"create.ponder.fan_source.header": "UNLOCALIZED: Generating Rotational Force using Encased Fans",
|
||||
"create.ponder.fan_source.text_1": "UNLOCALIZED: Fans facing down into a source of heat can provide Rotational Force",
|
||||
"create.ponder.fan_source.text_2": "UNLOCALIZED: When given a Redstone Signal, the Fans will start providing power",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "UNLOCALIZED: Moving Fluids using Copper Pipes",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "UNLOCALIZED: Fluid Pipes can connect two or more fluid sources and targets",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "UNLOCALIZED: Using a wrench, a straight pipe segment can be given a window",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "UNLOCALIZED: However, in Survival Mode Fluids cannot be added or taken manually",
|
||||
"create.ponder.fluid_tank_storage.text_5": "UNLOCALIZED: You can use Basins, Item Drains and Spouts to drain or fill fluid containing items",
|
||||
|
||||
"create.ponder.flywheel.header": "UNLOCALIZED: Generating Rotational Force using the Flywheel",
|
||||
"create.ponder.flywheel.text_1": "UNLOCALIZED: Flywheels are required for generating rotational force with the Furnace Engine",
|
||||
"create.ponder.flywheel.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.flywheel.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.funnel_compat.header": "UNLOCALIZED: Funnel compatibility",
|
||||
"create.ponder.funnel_compat.text_1": "UNLOCALIZED: Funnels should also interact nicely with a handful of other components.",
|
||||
"create.ponder.funnel_compat.text_2": "UNLOCALIZED: Vertical Saws",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "UNLOCALIZED: Chutes or Smart chutes might be more suitable for such purposes.",
|
||||
"create.ponder.funnel_transfer.text_3": "UNLOCALIZED: Same applies for horizontal movement. A mechanical belt should help here.",
|
||||
|
||||
"create.ponder.furnace_engine.header": "UNLOCALIZED: Generating Rotational Force using the Furnace Engine",
|
||||
"create.ponder.furnace_engine.text_1": "UNLOCALIZED: Furnace Engines generate Rotational Force while their attached Furnace is running",
|
||||
"create.ponder.furnace_engine.text_2": "UNLOCALIZED: The provided Rotational Force has a very large stress capacity",
|
||||
"create.ponder.furnace_engine.text_3": "UNLOCALIZED: Using a Blast Furnace will double the efficiency of the Engine",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "UNLOCALIZED: Using Gantry Carriages",
|
||||
"create.ponder.gantry_carriage.text_1": "UNLOCALIZED: Gantry Carriages can mount to and slide along a Gantry Shaft.",
|
||||
"create.ponder.gantry_carriage.text_2": "UNLOCALIZED: Gantry setups can move attached Blocks.",
|
||||
|
|
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "Volant",
|
||||
"block.create.framed_glass": "Sticlă Înrămată",
|
||||
"block.create.framed_glass_pane": "Geam Înrămat",
|
||||
"block.create.furnace_engine": "Motor De Cuptor",
|
||||
"block.create.gantry_carriage": "Cărucior Portal",
|
||||
"block.create.gantry_shaft": "Rotor Portal",
|
||||
"block.create.gearbox": "Cutie De Viteze",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "Viteza Ventilatorului NU afectează viteza procesării, doar raza sa",
|
||||
"create.ponder.fan_processing.text_8": "De asemenea, Procesarea Cu Ventilator poate fi aplicată la Obiecte pe Depoturi și Benzi",
|
||||
|
||||
"create.ponder.fan_source.header": "Generarea Forței Rotaționale folosind Ventilatoare Încapsulate",
|
||||
"create.ponder.fan_source.text_1": "Ventilatoarele cu fața în jos într-o sursă de căldură pot oferi Forță De Rotație",
|
||||
"create.ponder.fan_source.text_2": "Când îi este dat un Semnal Redstone, Ventilatoarele vor începe să ofere putere",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "Mișcarea Fluidelor folosind Conducte De Cupru",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "Conductele De Fluid pot conecta două sau mai multe surse și ținte",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "Folosind o Cheie, unui segment de conductă dreaptă poate fi dat o fereastră",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "Totuși, în modul de Supraviețuire Fluidele nu pot fi adăugate sau luate manual",
|
||||
"create.ponder.fluid_tank_storage.text_5": "Poți folosi Bazine, Scurgeri De Obiecte și Duze pentru a scurge sau a umple obiecte care conțin fluid",
|
||||
|
||||
"create.ponder.flywheel.header": "Generarea Forței de Rotație folosind Volantul",
|
||||
"create.ponder.flywheel.text_1": "Volantele sunt necesare pentru generarea forței rotaționale cu Motorul De Cuptor",
|
||||
"create.ponder.flywheel.text_2": "Forța De Rotație oferită are o capacitate de stres foarte mare",
|
||||
"create.ponder.flywheel.text_3": "Folsind un Furnal eficiența Motorului va fi dublată",
|
||||
|
||||
"create.ponder.funnel_compat.header": "Compatibilitatea Pâlniilor",
|
||||
"create.ponder.funnel_compat.text_1": "Pâlniile ar trebui să interacționeze frumos de asemenea cu o varietate de alte componente.",
|
||||
"create.ponder.funnel_compat.text_2": "Ferăstraie Verticale",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "Toboganele sau Toboganele deștepte ar putea să fie mai potrivite pentru astfel de scopuri.",
|
||||
"create.ponder.funnel_transfer.text_3": "Același lucru se aplică pentru mișcare orizontală. O bandă mecanică ar trebui să ajute aici.",
|
||||
|
||||
"create.ponder.furnace_engine.header": "Generarea Forței De Rotație folosind Motorul De Cuptor",
|
||||
"create.ponder.furnace_engine.text_1": "Motoarele de cuptor generează Forță De Rotație în timp ce Cuptorul lor atașat funcționează",
|
||||
"create.ponder.furnace_engine.text_2": "Forța De Rotație oferită are o capacitate de stres foarte mare",
|
||||
"create.ponder.furnace_engine.text_3": "Folosind un Furnal eficiența Motorului va fi dublată",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "Folosirea Cărucioarelor Portale",
|
||||
"create.ponder.gantry_carriage.text_1": "Cărucioarele Portale pot monta și aluneca de-a lungul unui Rotor Portal.",
|
||||
"create.ponder.gantry_carriage.text_2": "Amplasările de portale pot mișca Blocuri atașate.",
|
||||
|
|
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "Маховик",
|
||||
"block.create.framed_glass": "Обрамлённое стекло",
|
||||
"block.create.framed_glass_pane": "Обрамлённая стеклянная панель",
|
||||
"block.create.furnace_engine": "Печной двигатель",
|
||||
"block.create.gantry_carriage": "Шасси портального крана",
|
||||
"block.create.gantry_shaft": "Вал портального крана",
|
||||
"block.create.gearbox": "Коробка передач",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "Скорость вентилятора НЕ влияет на скорость обработки, а только на дальность",
|
||||
"create.ponder.fan_processing.text_8": "Обработка Вентиляторами может быть применена к предметам на конвейерах или депо",
|
||||
|
||||
"create.ponder.fan_source.header": "Генерации силы вращения Вентиляторами в корпусе",
|
||||
"create.ponder.fan_source.text_1": "Вентиляторы направленные вниз на источник тепла могут создавать силу вращения",
|
||||
"create.ponder.fan_source.text_2": "При сигнале редстоуна Вентилятор начнёт отдавать энергию",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "Перемещении жидкостей при помощи медных труб.",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "Жидкостные трубы могут соединять два или более источников и потребителей жидкости",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "При помощи гаечного ключа можно создать окно прямому отрезку трубы",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "Однако в режиме выживания жидкость нельзя добавлять или извлекать вручную",
|
||||
"create.ponder.fluid_tank_storage.text_5": "Вы можете использовать чаши, предметные осушители и дозаторы для опустошения или наполнения содерж. жидкость предметов",
|
||||
|
||||
"create.ponder.flywheel.header": "Генерации силы вращения Маховиком",
|
||||
"create.ponder.flywheel.text_1": "Маховики необходимы для генерации силы вращения при помощи Печных двигателей",
|
||||
"create.ponder.flywheel.text_2": "Отдаваемая сила вращения имеет очень значительную устойчивость к нагрузкам",
|
||||
"create.ponder.flywheel.text_3": "Использование Плавильной печи удвоит эффективность двигателя",
|
||||
|
||||
"create.ponder.funnel_compat.header": "Совместимости Воронок",
|
||||
"create.ponder.funnel_compat.text_1": "Воронки должны хорошо взаимодействовать с многими компонентами:",
|
||||
"create.ponder.funnel_compat.text_2": "Вертикальные пилы",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "Желоба или Умные желоба могут лучше подходить для этих целей",
|
||||
"create.ponder.funnel_transfer.text_3": "То же касается и горизонтального перемещения. Механический ремень должен здесь помочь",
|
||||
|
||||
"create.ponder.furnace_engine.header": "Генерации силы вращения Печными двигателями",
|
||||
"create.ponder.furnace_engine.text_1": "Печные двигатели создают силу вращения пока присоединённая к ним печь работает",
|
||||
"create.ponder.furnace_engine.text_2": "Создаваемая сила вращения имеет очень высокую устойчивость к нагрузкам",
|
||||
"create.ponder.furnace_engine.text_3": "Использование Плавильной печи удвоит эффективность Двигателя",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "Использовании шасси портального крана",
|
||||
"create.ponder.gantry_carriage.text_1": "Шасси портального крана могут прикрепляться и двигаться вдоль Вала портального крана",
|
||||
"create.ponder.gantry_carriage.text_2": "Крановые установки могут двигать присоединённые Блоки",
|
||||
|
|
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "飞轮",
|
||||
"block.create.framed_glass": "边框玻璃",
|
||||
"block.create.framed_glass_pane": "边框玻璃板",
|
||||
"block.create.furnace_engine": "熔炉引擎",
|
||||
"block.create.gantry_carriage": "起重机取物器",
|
||||
"block.create.gantry_shaft": "起重机杆",
|
||||
"block.create.gearbox": "十字齿轮箱",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "鼓风机的转速对加工的速度没有影响,只影响气流的吹拂距离",
|
||||
"create.ponder.fan_processing.text_8": "而那些放置在置物台或者传送带上的物品,鼓风机也是可以处理的",
|
||||
|
||||
"create.ponder.fan_source.header": "使用鼓风机来产生旋转力",
|
||||
"create.ponder.fan_source.text_1": "如鼓风机的扇叶向下朝着热源放置,鼓风机可以借此产生旋转力",
|
||||
"create.ponder.fan_source.text_2": "当鼓风机接受红石信号后,它便会向外供给旋转力",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "使用管道运输流体",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "流体管道可以用于连接两个或多个流体容器",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "使用扳手,可以为直管道安装观察窗",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "在生存模式中,无法直接用容器向储罐中存入流体,或是取出流体",
|
||||
"create.ponder.fluid_tank_storage.text_5": "要装满/倒空流体容器,可以使用工作盆,分液池或注液器。",
|
||||
|
||||
"create.ponder.flywheel.header": "使用飞轮来产生旋转力",
|
||||
"create.ponder.flywheel.text_1": "飞轮和熔炉引擎必须配套使用,方可产生旋转力",
|
||||
"create.ponder.flywheel.text_2": "如此产生的旋转力具有非常大的应力值",
|
||||
"create.ponder.flywheel.text_3": "使用高炉会使得引擎的效率翻倍",
|
||||
|
||||
"create.ponder.funnel_compat.header": "漏斗的兼容性",
|
||||
"create.ponder.funnel_compat.text_1": "漏斗可以与一些其他组件互动",
|
||||
"create.ponder.funnel_compat.text_2": "动力锯",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "溜槽和智能溜槽更适用于这样的场景",
|
||||
"create.ponder.funnel_transfer.text_3": "水平传输也是如此,也许传送带更方便快捷",
|
||||
|
||||
"create.ponder.furnace_engine.header": "使用熔炉引擎生产旋转力",
|
||||
"create.ponder.furnace_engine.text_1": "熔炉引擎会在与其相连熔炉工作时生产旋转力",
|
||||
"create.ponder.furnace_engine.text_2": "如此产生的旋转力具有非常大的应力值",
|
||||
"create.ponder.furnace_engine.text_3": "使用高炉会使得引擎的效率翻倍",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "使用起重机取物器",
|
||||
"create.ponder.gantry_carriage.text_1": "起重机取物器可以被放置在起重机杆上,并且可以沿着起重机杆运动",
|
||||
"create.ponder.gantry_carriage.text_2": "起重机可以移动其黏附的方块",
|
||||
|
|
|
@ -216,7 +216,6 @@
|
|||
"block.create.flywheel": "飛輪",
|
||||
"block.create.framed_glass": "邊框玻璃",
|
||||
"block.create.framed_glass_pane": "邊框玻璃片",
|
||||
"block.create.furnace_engine": "熔煉引擎",
|
||||
"block.create.gantry_carriage": "門式起重機",
|
||||
"block.create.gantry_shaft": "門式起重機滑道",
|
||||
"block.create.gearbox": "齒輪箱",
|
||||
|
@ -2146,10 +2145,6 @@
|
|||
"create.ponder.fan_processing.text_7": "鼓風機的轉速對加工的速度沒有影響,只影響氣流的吹拂距離",
|
||||
"create.ponder.fan_processing.text_8": "而那些放置在置物台或者傳送帶上的物品,鼓風機也是可以處理的",
|
||||
|
||||
"create.ponder.fan_source.header": "使用鼓風機來產生動能",
|
||||
"create.ponder.fan_source.text_1": "如鼓風機的扇葉向下朝著熱源放置,鼓風機可以藉此產生動能",
|
||||
"create.ponder.fan_source.text_2": "當鼓風機接受紅石訊號後,它便會向外供給動能",
|
||||
|
||||
"create.ponder.fluid_pipe_flow.header": "始用銅製管道來移動液體",
|
||||
"create.ponder.fluid_pipe_flow.text_1": "液體管可以連接兩個或更多的液體來源與目標",
|
||||
"create.ponder.fluid_pipe_flow.text_2": "使用扳手可以在一段直管線上開窗戶",
|
||||
|
@ -2179,11 +2174,6 @@
|
|||
"create.ponder.fluid_tank_storage.text_4": "但是,在生存模式你不能直接存入、取出液體",
|
||||
"create.ponder.fluid_tank_storage.text_5": "你可以用作業盆、分液池或液體灌注器和管線網路互動",
|
||||
|
||||
"create.ponder.flywheel.header": "使用飛輪來產生動能",
|
||||
"create.ponder.flywheel.text_1": "飛輪和熔爐引擎必須配套使用,方可產生動能",
|
||||
"create.ponder.flywheel.text_2": "如此產生的動能具有非常大的應力值",
|
||||
"create.ponder.flywheel.text_3": "使用高爐會使得引擎的效率翻倍",
|
||||
|
||||
"create.ponder.funnel_compat.header": "漏斗的相容性",
|
||||
"create.ponder.funnel_compat.text_1": "漏斗可以與一些其他組件互動",
|
||||
"create.ponder.funnel_compat.text_2": "動力鋸",
|
||||
|
@ -2208,11 +2198,6 @@
|
|||
"create.ponder.funnel_transfer.text_2": "溜槽和智慧溜槽更適用於這樣的場景",
|
||||
"create.ponder.funnel_transfer.text_3": "水平傳輸也是如此,也許傳送帶更方便快捷",
|
||||
|
||||
"create.ponder.furnace_engine.header": "使用熔爐引擎生產動能",
|
||||
"create.ponder.furnace_engine.text_1": "熔爐引擎會在與其相連熔爐工作時生產動能",
|
||||
"create.ponder.furnace_engine.text_2": "如此產生的動能具有非常大的應力值",
|
||||
"create.ponder.furnace_engine.text_3": "使用高爐會使得引擎的效率翻倍",
|
||||
|
||||
"create.ponder.gantry_carriage.header": "使用起重機取物器",
|
||||
"create.ponder.gantry_carriage.text_1": "起重機取物器可以被放置在起重機杆上,並且可以沿著起重機杆運動",
|
||||
"create.ponder.gantry_carriage.text_2": "起重機可以移動其黏附的方塊",
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"parent": "create:block/furnace_engine/item"
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"parent": "create:flywheel",
|
||||
"display": {
|
||||
"icon": {
|
||||
"item": "create:furnace_engine"
|
||||
},
|
||||
"title": {
|
||||
"translate": "advancement.create.overstress_flywheel"
|
||||
},
|
||||
"description": {
|
||||
"translate": "advancement.create.overstress_flywheel.desc"
|
||||
},
|
||||
"frame": "challenge",
|
||||
"show_toast": true,
|
||||
"announce_to_chat": true,
|
||||
"hidden": false
|
||||
},
|
||||
"criteria": {
|
||||
"0": {
|
||||
"trigger": "create:overstress_flywheel",
|
||||
"conditions": {}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"0"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"rolls": 1.0,
|
||||
"bonus_rolls": 0.0,
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "create:furnace_engine"
|
||||
}
|
||||
],
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"type": "create:mechanical_crafting",
|
||||
"pattern": [
|
||||
"PPB",
|
||||
"PCI",
|
||||
"PPB"
|
||||
],
|
||||
"key": {
|
||||
"P": {
|
||||
"tag": "forge:plates/brass"
|
||||
},
|
||||
"B": {
|
||||
"tag": "forge:ingots/brass"
|
||||
},
|
||||
"I": [
|
||||
{
|
||||
"item": "minecraft:piston"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:sticky_piston"
|
||||
}
|
||||
],
|
||||
"C": {
|
||||
"item": "create:brass_casing"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:furnace_engine"
|
||||
},
|
||||
"acceptMirrored": true
|
||||
}
|
|
@ -22,7 +22,6 @@
|
|||
"create:black_valve_handle",
|
||||
"create:rope",
|
||||
"create:pulley_magnet",
|
||||
"create:furnace_engine",
|
||||
"create:redstone_link",
|
||||
"create:peculiar_bell",
|
||||
"create:haunted_bell",
|
||||
|
|
|
@ -105,7 +105,6 @@
|
|||
"create:mechanical_crafter",
|
||||
"create:sequenced_gearshift",
|
||||
"create:flywheel",
|
||||
"create:furnace_engine",
|
||||
"create:rotation_speed_controller",
|
||||
"create:mechanical_arm",
|
||||
"create:track",
|
||||
|
|
|
@ -50,16 +50,11 @@ public class AllBlockPartials {
|
|||
DEPLOYER_HAND_HOLDING = block("deployer/hand_holding"), ANALOG_LEVER_HANDLE = block("analog_lever/handle"),
|
||||
ANALOG_LEVER_INDICATOR = block("analog_lever/indicator"), FUNNEL_FLAP = block("funnel/flap"),
|
||||
BELT_FUNNEL_FLAP = block("belt_funnel/flap"), BELT_TUNNEL_FLAP = block("belt_tunnel/flap"),
|
||||
FLEXPEATER_INDICATOR = block("diodes/indicator"), FLYWHEEL = block("flywheel/wheel"),
|
||||
FLYWHEEL_UPPER_ROTATING = block("flywheel/upper_rotating_connector"),
|
||||
FLEXPEATER_INDICATOR = block("diodes/indicator"),
|
||||
|
||||
FLYWHEEL_LOWER_ROTATING = block("flywheel/lower_rotating_connector"),
|
||||
FLYWHEEL_UPPER_SLIDING = block("flywheel/upper_sliding_connector"),
|
||||
FLYWHEEL_LOWER_SLIDING = block("flywheel/lower_sliding_connector"),
|
||||
FURNACE_GENERATOR_FRAME = block("furnace_engine/frame"), CUCKOO_MINUTE_HAND = block("cuckoo_clock/minute_hand"),
|
||||
CUCKOO_HOUR_HAND = block("cuckoo_clock/hour_hand"), CUCKOO_LEFT_DOOR = block("cuckoo_clock/left_door"),
|
||||
CUCKOO_RIGHT_DOOR = block("cuckoo_clock/right_door"), CUCKOO_PIG = block("cuckoo_clock/pig"),
|
||||
CUCKOO_CREEPER = block("cuckoo_clock/creeper"),
|
||||
CUCKOO_MINUTE_HAND = block("cuckoo_clock/minute_hand"), CUCKOO_HOUR_HAND = block("cuckoo_clock/hour_hand"),
|
||||
CUCKOO_LEFT_DOOR = block("cuckoo_clock/left_door"), CUCKOO_RIGHT_DOOR = block("cuckoo_clock/right_door"),
|
||||
CUCKOO_PIG = block("cuckoo_clock/pig"), CUCKOO_CREEPER = block("cuckoo_clock/creeper"),
|
||||
|
||||
GANTRY_COGS = block("gantry_carriage/wheels"),
|
||||
|
||||
|
@ -90,9 +85,6 @@ public class AllBlockPartials {
|
|||
ARM_HEAD = block("mechanical_arm/head"), ARM_CLAW_BASE = block("mechanical_arm/claw_base"),
|
||||
ARM_CLAW_GRIP = block("mechanical_arm/claw_grip"),
|
||||
|
||||
FLAG_SHORT_IN = block("mechanical_arm/flag/short_in"), FLAG_SHORT_OUT = block("mechanical_arm/flag/short_out"),
|
||||
FLAG_LONG_IN = block("mechanical_arm/flag/long_in"), FLAG_LONG_OUT = block("mechanical_arm/flag/long_out"),
|
||||
|
||||
MECHANICAL_PUMP_ARROW = block("mechanical_pump/arrow"), MECHANICAL_PUMP_COG = block("mechanical_pump/cog"),
|
||||
FLUID_PIPE_CASING = block("fluid_pipe/casing"), FLUID_VALVE_POINTER = block("fluid_valve/pointer"),
|
||||
|
||||
|
|
|
@ -43,8 +43,6 @@ import com.simibubi.create.content.contraptions.components.deployer.DeployerMovi
|
|||
import com.simibubi.create.content.contraptions.components.fan.EncasedFanBlock;
|
||||
import com.simibubi.create.content.contraptions.components.fan.NozzleBlock;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlock;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelGenerator;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineBlock;
|
||||
import com.simibubi.create.content.contraptions.components.millstone.MillstoneBlock;
|
||||
import com.simibubi.create.content.contraptions.components.mixer.MechanicalMixerBlock;
|
||||
import com.simibubi.create.content.contraptions.components.motor.CreativeMotorBlock;
|
||||
|
@ -473,7 +471,6 @@ public class AllBlocks {
|
|||
.blockstate(BlockStateGen.directionalBlockProvider(true))
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.transform(axeOrPickaxe())
|
||||
.transform(BlockStressDefaults.setCapacity(16.0))
|
||||
.transform(BlockStressDefaults.setImpact(2.0))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
|
@ -1290,22 +1287,11 @@ public class AllBlocks {
|
|||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(axeOrPickaxe())
|
||||
.transform(BlockStressDefaults.setNoImpact())
|
||||
.blockstate(new FlywheelGenerator()::generate)
|
||||
.blockstate(BlockStateGen.axisBlockProvider(true))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<FurnaceEngineBlock> 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<SpeedControllerBlock> ROTATION_SPEED_CONTROLLER =
|
||||
REGISTRATE.block("rotation_speed_controller", SpeedControllerBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
|
|
|
@ -37,9 +37,6 @@ import com.simibubi.create.content.contraptions.components.fan.NozzleTileEntity;
|
|||
import com.simibubi.create.content.contraptions.components.flywheel.FlyWheelInstance;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelRenderer;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineInstance;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineRenderer;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.millstone.MillStoneCogInstance;
|
||||
import com.simibubi.create.content.contraptions.components.millstone.MillstoneRenderer;
|
||||
import com.simibubi.create.content.contraptions.components.millstone.MillstoneTileEntity;
|
||||
|
@ -539,13 +536,6 @@ public class AllTileEntities {
|
|||
.renderer(() -> FlywheelRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<FurnaceEngineTileEntity> FURNACE_ENGINE = Create.registrate()
|
||||
.tileEntity("furnace_engine", FurnaceEngineTileEntity::new)
|
||||
.instance(() -> EngineInstance::new, false)
|
||||
.validBlocks(AllBlocks.FURNACE_ENGINE)
|
||||
.renderer(() -> EngineRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<MillstoneTileEntity> MILLSTONE = Create.registrate()
|
||||
.tileEntity("millstone", MillstoneTileEntity::new)
|
||||
.instance(() -> MillStoneCogInstance::new, false)
|
||||
|
|
|
@ -10,7 +10,6 @@ import com.google.gson.GsonBuilder;
|
|||
import com.simibubi.create.api.behaviour.BlockSpoutingBehaviour;
|
||||
import com.simibubi.create.content.CreateItemGroup;
|
||||
import com.simibubi.create.content.contraptions.TorquePropagator;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineInteractions;
|
||||
import com.simibubi.create.content.curiosities.weapons.BuiltinPotatoProjectileTypes;
|
||||
import com.simibubi.create.content.logistics.RedstoneLinkNetworkHandler;
|
||||
import com.simibubi.create.content.logistics.block.data.AllDataGathererBehaviours;
|
||||
|
@ -102,7 +101,6 @@ public class Create {
|
|||
AllWorldFeatures.register();
|
||||
AllEnchantments.register();
|
||||
AllConfigs.register(modLoadingContext);
|
||||
FurnaceEngineInteractions.registerDefaults();
|
||||
BlockSpoutingBehaviour.register();
|
||||
|
||||
ForgeMod.enableMilkFluid();
|
||||
|
|
|
@ -74,9 +74,6 @@ public class EncasedFanBlock extends DirectionalKineticBlock implements ITE<Enca
|
|||
if (worldIn instanceof WrappedWorld)
|
||||
return;
|
||||
notifyFanTile(worldIn, pos);
|
||||
if (worldIn.isClientSide())
|
||||
return;
|
||||
withTileEntityDo(worldIn, pos, te -> te.queueGeneratorUpdate());
|
||||
}
|
||||
|
||||
protected void notifyFanTile(LevelAccessor world, BlockPos pos) {
|
||||
|
@ -101,11 +98,6 @@ public class EncasedFanBlock extends DirectionalKineticBlock implements ITE<Enca
|
|||
.getOpposite();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean showCapacityWithAnnotation() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<EncasedFanTileEntity> getTileEntityClass() {
|
||||
return EncasedFanTileEntity.class;
|
||||
|
|
|
@ -2,10 +2,7 @@ package com.simibubi.create.content.contraptions.components.fan;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllTags.AllBlockTags;
|
||||
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
|
||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.chute.ChuteTileEntity;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
|
||||
|
@ -20,95 +17,31 @@ import net.minecraft.world.level.block.state.BlockState;
|
|||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
|
||||
@MethodsReturnNonnullByDefault
|
||||
public class EncasedFanTileEntity extends GeneratingKineticTileEntity implements IAirCurrentSource {
|
||||
public class EncasedFanTileEntity extends KineticTileEntity implements IAirCurrentSource {
|
||||
|
||||
public AirCurrent airCurrent;
|
||||
protected int airCurrentUpdateCooldown;
|
||||
protected int entitySearchCooldown;
|
||||
protected boolean isGenerator;
|
||||
protected boolean updateAirFlow;
|
||||
protected boolean updateGenerator;
|
||||
|
||||
public EncasedFanTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
isGenerator = false;
|
||||
airCurrent = new AirCurrent(this);
|
||||
updateAirFlow = true;
|
||||
updateGenerator = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, boolean clientPacket) {
|
||||
super.read(compound, clientPacket);
|
||||
if (!wasMoved)
|
||||
isGenerator = compound.getBoolean("Generating");
|
||||
if (clientPacket)
|
||||
airCurrent.rebuild();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(CompoundTag compound, boolean clientPacket) {
|
||||
compound.putBoolean("Generating", isGenerator);
|
||||
super.write(compound, clientPacket);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float calculateAddedStressCapacity() {
|
||||
return lastCapacityProvided = (isGenerator ? super.calculateAddedStressCapacity() : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float calculateStressApplied() {
|
||||
return isGenerator ? 0 : super.calculateStressApplied();
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getGeneratedSpeed() {
|
||||
return isGenerator ? AllConfigs.SERVER.kinetics.generatingFanSpeed.get() : 0;
|
||||
}
|
||||
|
||||
public void queueGeneratorUpdate() {
|
||||
updateGenerator = true;
|
||||
}
|
||||
|
||||
public void updateGenerator() {
|
||||
BlockState blockState = getBlockState();
|
||||
boolean shouldGenerate = true;
|
||||
|
||||
if (!AllBlocks.ENCASED_FAN.has(blockState))
|
||||
shouldGenerate = false;
|
||||
|
||||
if (shouldGenerate && blockState.getValue(EncasedFanBlock.FACING) != Direction.DOWN)
|
||||
shouldGenerate = false;
|
||||
|
||||
if (shouldGenerate)
|
||||
shouldGenerate = level != null && level.hasNeighborSignal(worldPosition)
|
||||
&& level.isLoaded(worldPosition.below()) && blockBelowIsHot();
|
||||
|
||||
if (shouldGenerate == isGenerator)
|
||||
return;
|
||||
isGenerator = shouldGenerate;
|
||||
updateGeneratedRotation();
|
||||
}
|
||||
|
||||
public boolean blockBelowIsHot() {
|
||||
if (level == null)
|
||||
return false;
|
||||
BlockState checkState = level.getBlockState(worldPosition.below());
|
||||
|
||||
if (!AllBlockTags.FAN_HEATERS.matches(checkState))
|
||||
return false;
|
||||
|
||||
if (checkState.hasProperty(BlazeBurnerBlock.HEAT_LEVEL) && !checkState.getValue(BlazeBurnerBlock.HEAT_LEVEL)
|
||||
.isAtLeast(BlazeBurnerBlock.HeatLevel.FADING))
|
||||
return false;
|
||||
|
||||
if (checkState.hasProperty(BlockStateProperties.LIT) && !checkState.getValue(BlockStateProperties.LIT))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AirCurrent getAirCurrent() {
|
||||
return airCurrent;
|
||||
|
@ -189,12 +122,7 @@ public class EncasedFanTileEntity extends GeneratingKineticTileEntity implements
|
|||
sendData();
|
||||
}
|
||||
|
||||
if (updateGenerator) {
|
||||
updateGenerator = false;
|
||||
updateGenerator();
|
||||
}
|
||||
|
||||
if (getSpeed() == 0 || isGenerator)
|
||||
if (getSpeed() == 0)
|
||||
return;
|
||||
|
||||
if (entitySearchCooldown-- <= 0) {
|
||||
|
|
|
@ -127,8 +127,6 @@ public class NozzleTileEntity extends SmartTileEntity {
|
|||
return 0;
|
||||
|
||||
IAirCurrentSource source = (IAirCurrentSource) te;
|
||||
if (source instanceof EncasedFanTileEntity && ((EncasedFanTileEntity) source).isGenerator)
|
||||
return 0;
|
||||
if (source.getAirCurrent() == null)
|
||||
return 0;
|
||||
if (source.getSpeed() == 0)
|
||||
|
|
|
@ -1,87 +1,31 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel;
|
||||
|
||||
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.jozufozu.flywheel.api.InstanceData;
|
||||
import com.jozufozu.flywheel.api.Instancer;
|
||||
import com.jozufozu.flywheel.api.Material;
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileInstance;
|
||||
import com.simibubi.create.content.contraptions.base.flwdata.RotatingData;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.level.block.Rotation;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class FlyWheelInstance extends KineticTileInstance<FlywheelTileEntity> 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<ModelData> connectors;
|
||||
protected ModelData upperRotating;
|
||||
protected ModelData lowerRotating;
|
||||
protected ModelData upperSliding;
|
||||
protected ModelData lowerSliding;
|
||||
|
||||
protected float lastAngle = Float.NaN;
|
||||
|
||||
public FlyWheelInstance(MaterialManager modelManager, FlywheelTileEntity tile) {
|
||||
super(modelManager, tile);
|
||||
|
||||
facing = blockState.getValue(HORIZONTAL_FACING);
|
||||
|
||||
shaft = setup(shaftModel().createInstance());
|
||||
|
||||
BlockState referenceState = blockState.rotate(Rotation.CLOCKWISE_90);
|
||||
wheel = getTransformMaterial()
|
||||
.getModel(AllBlockPartials.FLYWHEEL, referenceState, referenceState.getValue(HORIZONTAL_FACING))
|
||||
shaft = setup(getRotatingMaterial().getModel(shaft())
|
||||
.createInstance());
|
||||
wheel = getTransformMaterial().getModel(blockState)
|
||||
.createInstance();
|
||||
|
||||
connection = FlywheelBlock.getConnection(blockState);
|
||||
if (connection != null) {
|
||||
connectedLeft = blockState.getValue(FlywheelBlock.CONNECTION) == FlywheelBlock.ConnectionState.LEFT;
|
||||
|
||||
boolean flipAngle = connection.getAxis() == Direction.Axis.X
|
||||
^ connection.getAxisDirection() == Direction.AxisDirection.NEGATIVE;
|
||||
|
||||
connectorAngleMult = flipAngle ? -1 : 1;
|
||||
|
||||
Material<ModelData> mat = getTransformMaterial();
|
||||
|
||||
upperRotating = mat.getModel(AllBlockPartials.FLYWHEEL_UPPER_ROTATING, blockState)
|
||||
.createInstance();
|
||||
lowerRotating = mat.getModel(AllBlockPartials.FLYWHEEL_LOWER_ROTATING, blockState)
|
||||
.createInstance();
|
||||
upperSliding = mat.getModel(AllBlockPartials.FLYWHEEL_UPPER_SLIDING, blockState)
|
||||
.createInstance();
|
||||
lowerSliding = mat.getModel(AllBlockPartials.FLYWHEEL_LOWER_SLIDING, blockState)
|
||||
.createInstance();
|
||||
|
||||
connectors = Lists.newArrayList(upperRotating, lowerRotating, upperSliding, lowerSliding);
|
||||
} else {
|
||||
connectors = Collections.emptyList();
|
||||
}
|
||||
|
||||
animate(tile.angle);
|
||||
}
|
||||
|
||||
|
@ -90,7 +34,7 @@ public class FlyWheelInstance extends KineticTileInstance<FlywheelTileEntity> im
|
|||
|
||||
float partialTicks = AnimationTickHolder.getPartialTicks();
|
||||
|
||||
float speed = blockEntity.visualSpeed.get(partialTicks) * 3 / 10f;
|
||||
float speed = blockEntity.visualSpeed.getValue(partialTicks) * 3 / 10f;
|
||||
float angle = blockEntity.angle + speed * partialTicks;
|
||||
|
||||
if (Math.abs(angle - lastAngle) < 0.001)
|
||||
|
@ -106,38 +50,8 @@ public class FlyWheelInstance extends KineticTileInstance<FlywheelTileEntity> im
|
|||
TransformStack msr = TransformStack.cast(ms);
|
||||
|
||||
msr.translate(getInstancePosition());
|
||||
|
||||
if (connection != null) {
|
||||
float rotation = angle * connectorAngleMult;
|
||||
|
||||
ms.pushPose();
|
||||
rotateToFacing(msr, connection);
|
||||
|
||||
ms.pushPose();
|
||||
transformConnector(msr, true, true, rotation, connectedLeft);
|
||||
upperRotating.setTransform(ms);
|
||||
ms.popPose();
|
||||
|
||||
ms.pushPose();
|
||||
transformConnector(msr, false, true, rotation, connectedLeft);
|
||||
lowerRotating.setTransform(ms);
|
||||
ms.popPose();
|
||||
|
||||
ms.pushPose();
|
||||
transformConnector(msr, true, false, rotation, connectedLeft);
|
||||
upperSliding.setTransform(ms);
|
||||
ms.popPose();
|
||||
|
||||
ms.pushPose();
|
||||
transformConnector(msr, false, false, rotation, connectedLeft);
|
||||
lowerSliding.setTransform(ms);
|
||||
ms.popPose();
|
||||
|
||||
ms.popPose();
|
||||
}
|
||||
|
||||
msr.centre()
|
||||
.rotate(Direction.get(Direction.AxisDirection.POSITIVE, facing.getAxis()), AngleHelper.rad(angle))
|
||||
.rotate(Direction.get(Direction.AxisDirection.POSITIVE, axis), AngleHelper.rad(angle))
|
||||
.unCentre();
|
||||
|
||||
wheel.setTransform(ms);
|
||||
|
@ -151,56 +65,12 @@ public class FlyWheelInstance extends KineticTileInstance<FlywheelTileEntity> im
|
|||
@Override
|
||||
public void updateLight() {
|
||||
relight(pos, shaft, wheel);
|
||||
|
||||
if (connection != null) {
|
||||
relight(this.pos.relative(connection), connectors.stream());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
shaft.delete();
|
||||
wheel.delete();
|
||||
|
||||
connectors.forEach(InstanceData::delete);
|
||||
connectors.clear();
|
||||
}
|
||||
|
||||
protected Instancer<RotatingData> shaftModel() {
|
||||
Direction opposite = facing.getOpposite();
|
||||
return getRotatingMaterial().getModel(AllBlockPartials.SHAFT_HALF, blockState, opposite);
|
||||
}
|
||||
|
||||
protected void transformConnector(TransformStack ms, boolean upper, boolean rotating, float angle,
|
||||
boolean flip) {
|
||||
float shift = upper ? 1 / 4f : -1 / 8f;
|
||||
float offset = upper ? 1 / 4f : 1 / 4f;
|
||||
float radians = (float) (angle / 180 * Math.PI);
|
||||
float shifting = Mth.sin(radians) * shift + offset;
|
||||
|
||||
float maxAngle = upper ? -5 : -15;
|
||||
float minAngle = upper ? -45 : 5;
|
||||
float barAngle = 0;
|
||||
|
||||
if (rotating)
|
||||
barAngle = Mth.lerp((Mth.sin((float) (radians + Math.PI / 2)) + 1) / 2, minAngle, maxAngle);
|
||||
|
||||
float pivotX = (upper ? 8f : 3f) / 16;
|
||||
float pivotY = (upper ? 8f : 2f) / 16;
|
||||
float pivotZ = (upper ? 23f : 21.5f) / 16f;
|
||||
|
||||
ms.translate(pivotX, pivotY, pivotZ + shifting);
|
||||
if (rotating)
|
||||
ms.rotate(Direction.EAST, AngleHelper.rad(barAngle));
|
||||
ms.translate(-pivotX, -pivotY, -pivotZ);
|
||||
|
||||
if (flip && !upper)
|
||||
ms.translate(9 / 16f, 0, 0);
|
||||
}
|
||||
|
||||
protected void rotateToFacing(TransformStack buffer, Direction facing) {
|
||||
buffer.centre()
|
||||
.rotate(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing)))
|
||||
.unCentre();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,123 +1,65 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel;
|
||||
|
||||
import com.simibubi.create.AllShapes;
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineBlock;
|
||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||
import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock;
|
||||
import com.simibubi.create.foundation.block.ITE;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.util.StringRepresentable;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.RenderShape;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition.Builder;
|
||||
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class FlywheelBlock extends HorizontalKineticBlock implements ITE<FlywheelTileEntity> {
|
||||
|
||||
public static final EnumProperty<ConnectionState> CONNECTION = EnumProperty.create("connection", ConnectionState.class);
|
||||
public class FlywheelBlock extends RotatedPillarKineticBlock implements ITE<FlywheelTileEntity> {
|
||||
|
||||
public FlywheelBlock(Properties properties) {
|
||||
super(properties);
|
||||
registerDefaultState(defaultBlockState().setValue(CONNECTION, ConnectionState.NONE));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(Builder<Block, BlockState> builder) {
|
||||
super.createBlockStateDefinition(builder.add(CONNECTION));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
Direction preferred = getPreferredHorizontalFacing(context);
|
||||
if (preferred != null)
|
||||
return defaultBlockState().setValue(HORIZONTAL_FACING, preferred.getOpposite());
|
||||
return this.defaultBlockState().setValue(HORIZONTAL_FACING, context.getHorizontalDirection());
|
||||
}
|
||||
|
||||
public static boolean isConnected(BlockState state) {
|
||||
return getConnection(state) != null;
|
||||
}
|
||||
|
||||
public static Direction getConnection(BlockState state) {
|
||||
Direction facing = state.getValue(HORIZONTAL_FACING);
|
||||
ConnectionState connection = state.getValue(CONNECTION);
|
||||
|
||||
if (connection == ConnectionState.LEFT)
|
||||
return facing.getCounterClockWise();
|
||||
if (connection == ConnectionState.RIGHT)
|
||||
return facing.getClockWise();
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void setConnection(Level world, BlockPos pos, BlockState state, Direction direction) {
|
||||
Direction facing = state.getValue(HORIZONTAL_FACING);
|
||||
ConnectionState connection = ConnectionState.NONE;
|
||||
|
||||
if (direction == facing.getClockWise())
|
||||
connection = ConnectionState.RIGHT;
|
||||
if (direction == facing.getCounterClockWise())
|
||||
connection = ConnectionState.LEFT;
|
||||
|
||||
world.setBlock(pos, state.setValue(CONNECTION, connection), 18);
|
||||
AllTriggers.triggerForNearbyPlayers(AllTriggers.FLYWHEEL, world, pos, 4);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
|
||||
return face == state.getValue(HORIZONTAL_FACING).getOpposite();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Axis getRotationAxis(BlockState state) {
|
||||
return state.getValue(HORIZONTAL_FACING).getAxis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult onWrenched(BlockState state, UseOnContext context) {
|
||||
Direction connection = getConnection(state);
|
||||
if (connection == null)
|
||||
return super.onWrenched(state ,context);
|
||||
|
||||
if (context.getClickedFace().getAxis() == state.getValue(HORIZONTAL_FACING).getAxis())
|
||||
return InteractionResult.PASS;
|
||||
|
||||
Level world = context.getLevel();
|
||||
BlockPos enginePos = context.getClickedPos().relative(connection, 2);
|
||||
BlockState engine = world.getBlockState(enginePos);
|
||||
if (engine.getBlock() instanceof FurnaceEngineBlock)
|
||||
((FurnaceEngineBlock) engine.getBlock()).withTileEntityDo(world, enginePos, EngineTileEntity::detachWheel);
|
||||
|
||||
return super.onWrenched(state.setValue(CONNECTION, ConnectionState.NONE), context);
|
||||
}
|
||||
|
||||
public enum ConnectionState implements StringRepresentable {
|
||||
NONE, LEFT, RIGHT;
|
||||
|
||||
@Override
|
||||
public String getSerializedName() {
|
||||
return Lang.asId(name());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<FlywheelTileEntity> getTileEntityClass() {
|
||||
return FlywheelTileEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) {
|
||||
return AllShapes.LARGE_GEAR.get(pState.getValue(AXIS));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderShape getRenderShape(BlockState pState) {
|
||||
return RenderShape.ENTITYBLOCK_ANIMATED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends FlywheelTileEntity> getTileEntityType() {
|
||||
return AllTileEntities.FLYWHEEL.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
|
||||
return face.getAxis() == getRotationAxis(state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Axis getRotationAxis(BlockState state) {
|
||||
return state.getValue(AXIS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getParticleTargetRadius() {
|
||||
return 2f;
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getParticleInitialRadius() {
|
||||
return 1.75f;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel;
|
||||
|
||||
import com.simibubi.create.foundation.data.SpecialBlockStateGen;
|
||||
import com.tterrag.registrate.providers.DataGenContext;
|
||||
import com.tterrag.registrate.providers.RegistrateBlockstateProvider;
|
||||
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.client.model.generators.ModelFile;
|
||||
|
||||
public class FlywheelGenerator extends SpecialBlockStateGen {
|
||||
|
||||
@Override
|
||||
protected int getXRotation(BlockState state) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getYRotation(BlockState state) {
|
||||
return horizontalAngle(state.getValue(FlywheelBlock.HORIZONTAL_FACING)) + 90;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends Block> ModelFile getModel(DataGenContext<Block, T> ctx, RegistrateBlockstateProvider prov,
|
||||
BlockState state) {
|
||||
return prov.models()
|
||||
.getExistingFile(prov.modLoc("block/" + ctx.getName() + "/casing_" + state.getValue(FlywheelBlock.CONNECTION)
|
||||
.getSerializedName()));
|
||||
}
|
||||
}
|
|
@ -1,29 +1,18 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel;
|
||||
|
||||
import static com.simibubi.create.content.contraptions.base.HorizontalKineticBlock.HORIZONTAL_FACING;
|
||||
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlock.ConnectionState;
|
||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
|
||||
import net.minecraft.client.renderer.LevelRenderer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.core.Direction.AxisDirection;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.level.block.Rotation;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
|
||||
public class FlywheelRenderer extends KineticTileEntityRenderer {
|
||||
|
||||
|
@ -36,94 +25,29 @@ public class FlywheelRenderer extends KineticTileEntityRenderer {
|
|||
int light, int overlay) {
|
||||
super.renderSafe(te, partialTicks, ms, buffer, light, overlay);
|
||||
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel()))
|
||||
return;
|
||||
|
||||
BlockState blockState = te.getBlockState();
|
||||
FlywheelTileEntity wte = (FlywheelTileEntity) te;
|
||||
|
||||
float speed = wte.visualSpeed.get(partialTicks) * 3 / 10f;
|
||||
float speed = wte.visualSpeed.getValue(partialTicks) * 3 / 10f;
|
||||
float angle = wte.angle + speed * partialTicks;
|
||||
|
||||
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
|
||||
|
||||
if (FlywheelBlock.isConnected(blockState)) {
|
||||
Direction connection = FlywheelBlock.getConnection(blockState);
|
||||
light = LevelRenderer.getLightColor(te.getLevel(), blockState, te.getBlockPos()
|
||||
.relative(connection));
|
||||
float rotation =
|
||||
connection.getAxis() == Axis.X ^ connection.getAxisDirection() == AxisDirection.NEGATIVE ? -angle
|
||||
: angle;
|
||||
boolean flip = blockState.getValue(FlywheelBlock.CONNECTION) == ConnectionState.LEFT;
|
||||
|
||||
transformConnector(
|
||||
rotateToFacing(CachedBufferer.partial(AllBlockPartials.FLYWHEEL_UPPER_ROTATING, blockState), connection), true, true,
|
||||
rotation, flip).light(light)
|
||||
.renderInto(ms, vb);
|
||||
transformConnector(
|
||||
rotateToFacing(CachedBufferer.partial(AllBlockPartials.FLYWHEEL_LOWER_ROTATING, blockState), connection), false, true,
|
||||
rotation, flip).light(light)
|
||||
.renderInto(ms, vb);
|
||||
|
||||
transformConnector(rotateToFacing(CachedBufferer.partial(AllBlockPartials.FLYWHEEL_UPPER_SLIDING, blockState), connection),
|
||||
true, false, rotation, flip).light(light)
|
||||
.renderInto(ms, vb);
|
||||
transformConnector(rotateToFacing(CachedBufferer.partial(AllBlockPartials.FLYWHEEL_LOWER_SLIDING, blockState), connection),
|
||||
false, false, rotation, flip).light(light)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
|
||||
renderFlywheel(te, ms, light, blockState, angle, vb);
|
||||
}
|
||||
|
||||
private void renderFlywheel(KineticTileEntity te, PoseStack ms, int light, BlockState blockState, float angle, VertexConsumer vb) {
|
||||
BlockState referenceState = blockState.rotate(Rotation.CLOCKWISE_90);
|
||||
Direction facing = referenceState.getValue(BlockStateProperties.HORIZONTAL_FACING);
|
||||
SuperByteBuffer wheel = CachedBufferer.partialFacing(AllBlockPartials.FLYWHEEL, referenceState, facing);
|
||||
kineticRotationTransform(wheel, te, blockState.getValue(HORIZONTAL_FACING)
|
||||
.getAxis(), AngleHelper.rad(angle), light);
|
||||
private void renderFlywheel(KineticTileEntity te, PoseStack ms, int light, BlockState blockState, float angle,
|
||||
VertexConsumer vb) {
|
||||
SuperByteBuffer wheel = CachedBufferer.block(blockState);
|
||||
kineticRotationTransform(wheel, te, getRotationAxisOf(te), AngleHelper.rad(angle), light);
|
||||
wheel.renderInto(ms, vb);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SuperByteBuffer getRotatedModel(KineticTileEntity te, BlockState state) {
|
||||
return CachedBufferer.partialFacing(AllBlockPartials.SHAFT_HALF, state, state
|
||||
.getValue(BlockStateProperties.HORIZONTAL_FACING)
|
||||
.getOpposite());
|
||||
}
|
||||
|
||||
protected SuperByteBuffer transformConnector(SuperByteBuffer buffer, boolean upper, boolean rotating, float angle,
|
||||
boolean flip) {
|
||||
|
||||
float shift = upper ? 1 / 4f : -1 / 8f;
|
||||
float offset = upper ? 1 / 4f : 1 / 4f;
|
||||
float radians = (float) (angle / 180 * Math.PI);
|
||||
float shifting = Mth.sin(radians) * shift + offset;
|
||||
|
||||
float maxAngle = upper ? -5 : -15;
|
||||
float minAngle = upper ? -45 : 5;
|
||||
float barAngle = 0;
|
||||
|
||||
if (rotating)
|
||||
barAngle = Mth.lerp((Mth.sin((float) (radians + Math.PI / 2)) + 1) / 2, minAngle, maxAngle);
|
||||
|
||||
float pivotX = (upper ? 8f : 3f) / 16;
|
||||
float pivotY = (upper ? 8f : 2f) / 16;
|
||||
float pivotZ = (upper ? 23f : 21.5f) / 16f;
|
||||
|
||||
buffer.translate(pivotX, pivotY, pivotZ + shifting);
|
||||
if (rotating)
|
||||
buffer.rotate(Direction.EAST, AngleHelper.rad(barAngle));
|
||||
buffer.translate(-pivotX, -pivotY, -pivotZ);
|
||||
|
||||
if (flip && !upper)
|
||||
buffer.translate(9 / 16f, 0, 0);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
protected SuperByteBuffer rotateToFacing(SuperByteBuffer buffer, Direction facing) {
|
||||
buffer.rotateCentered(Direction.UP, AngleHelper.rad(AngleHelper.horizontalAngle(facing)));
|
||||
return buffer;
|
||||
protected BlockState getRenderedBlockState(KineticTileEntity te) {
|
||||
return shaft(getRotationAxisOf(te));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel;
|
||||
|
||||
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
|
||||
import com.simibubi.create.foundation.utility.animation.InterpolatedChasingValue;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
|
@ -9,46 +10,15 @@ import net.minecraft.world.level.block.entity.BlockEntityType;
|
|||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
||||
public class FlywheelTileEntity extends GeneratingKineticTileEntity {
|
||||
public class FlywheelTileEntity extends KineticTileEntity {
|
||||
|
||||
private float generatedCapacity;
|
||||
private float generatedSpeed;
|
||||
private int stoppingCooldown;
|
||||
|
||||
// Client
|
||||
InterpolatedChasingValue visualSpeed = new InterpolatedChasingValue();
|
||||
LerpedFloat visualSpeed = LerpedFloat.linear();
|
||||
float angle;
|
||||
|
||||
public FlywheelTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
}
|
||||
|
||||
public void setRotation(float speed, float capacity) {
|
||||
if (generatedSpeed != speed || generatedCapacity != capacity) {
|
||||
|
||||
if (speed == 0) {
|
||||
if (stoppingCooldown == 0)
|
||||
stoppingCooldown = 40;
|
||||
return;
|
||||
}
|
||||
|
||||
stoppingCooldown = 0;
|
||||
generatedSpeed = speed;
|
||||
generatedCapacity = capacity;
|
||||
updateGeneratedRotation();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public float getGeneratedSpeed() {
|
||||
return convertToDirection(generatedSpeed, getBlockState().getValue(FlywheelBlock.HORIZONTAL_FACING));
|
||||
}
|
||||
|
||||
@Override
|
||||
public float calculateAddedStressCapacity() {
|
||||
return lastCapacityProvided = generatedCapacity;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AABB createRenderBoundingBox() {
|
||||
return super.createRenderBoundingBox().inflate(2);
|
||||
|
@ -56,51 +26,27 @@ public class FlywheelTileEntity extends GeneratingKineticTileEntity {
|
|||
|
||||
@Override
|
||||
public void write(CompoundTag compound, boolean clientPacket) {
|
||||
compound.putFloat("GeneratedSpeed", generatedSpeed);
|
||||
compound.putFloat("GeneratedCapacity", generatedCapacity);
|
||||
compound.putInt("Cooldown", stoppingCooldown);
|
||||
super.write(compound, clientPacket);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, boolean clientPacket) {
|
||||
generatedSpeed = compound.getFloat("GeneratedSpeed");
|
||||
generatedCapacity = compound.getFloat("GeneratedCapacity");
|
||||
stoppingCooldown = compound.getInt("Cooldown");
|
||||
super.read(compound, clientPacket);
|
||||
if (clientPacket)
|
||||
visualSpeed.withSpeed(1 / 32f)
|
||||
.target(getGeneratedSpeed());
|
||||
visualSpeed.chase(getGeneratedSpeed(), 1 / 64f, Chaser.EXP);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
|
||||
if (level.isClientSide) {
|
||||
float targetSpeed = isVirtual() ? speed : getGeneratedSpeed();
|
||||
visualSpeed.target(targetSpeed);
|
||||
visualSpeed.tick();
|
||||
angle += visualSpeed.value * 3 / 10f;
|
||||
angle %= 360;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* After getting moved by pistons the generatedSpeed attribute reads 16 but the
|
||||
* actual speed stays at 0, if it happens update rotation
|
||||
*/
|
||||
if (getGeneratedSpeed() != 0 && getSpeed() == 0)
|
||||
updateGeneratedRotation();
|
||||
|
||||
if (stoppingCooldown == 0)
|
||||
if (!level.isClientSide)
|
||||
return;
|
||||
|
||||
stoppingCooldown--;
|
||||
if (stoppingCooldown == 0) {
|
||||
generatedCapacity = 0;
|
||||
generatedSpeed = 0;
|
||||
updateGeneratedRotation();
|
||||
}
|
||||
float targetSpeed = getSpeed();
|
||||
visualSpeed.updateChaseTarget(targetSpeed);
|
||||
visualSpeed.tickChaser();
|
||||
angle += visualSpeed.getValue() * 3 / 10f;
|
||||
angle %= 360;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,93 +0,0 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.StateDefinition.Builder;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public abstract class EngineBlock extends HorizontalDirectionalBlock implements IWrenchable {
|
||||
|
||||
protected EngineBlock(Properties builder) {
|
||||
super(builder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSurvive(BlockState state, LevelReader worldIn, BlockPos pos) {
|
||||
return isValidPosition(state, worldIn, pos, state.getValue(FACING));
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult onWrenched(BlockState state, UseOnContext context) {
|
||||
return InteractionResult.FAIL;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
Direction facing = context.getClickedFace();
|
||||
return defaultBlockState().setValue(FACING,
|
||||
facing.getAxis().isVertical() ? context.getHorizontalDirection().getOpposite() : facing);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(Builder<Block, BlockState> 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);
|
||||
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
|
||||
public class EngineInstance extends BlockEntityInstance<EngineTileEntity> {
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
||||
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
||||
public class EngineRenderer<T extends EngineTileEntity> extends SafeTileEntityRenderer<T> {
|
||||
|
||||
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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,97 +0,0 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlock;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
||||
public class EngineTileEntity extends SmartTileEntity {
|
||||
|
||||
public float appliedCapacity;
|
||||
public float appliedSpeed;
|
||||
protected FlywheelTileEntity poweredWheel;
|
||||
|
||||
public EngineTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addBehaviours(List<TileEntityBehaviour> behaviours) {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AABB createRenderBoundingBox() {
|
||||
return super.createRenderBoundingBox().inflate(1.5f);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void lazyTick() {
|
||||
super.lazyTick();
|
||||
if (level.isClientSide)
|
||||
return;
|
||||
if (poweredWheel != null && poweredWheel.isRemoved())
|
||||
poweredWheel = null;
|
||||
if (poweredWheel == null)
|
||||
attachWheel();
|
||||
}
|
||||
|
||||
public void attachWheel() {
|
||||
Direction engineFacing = getBlockState().getValue(EngineBlock.FACING);
|
||||
BlockPos wheelPos = worldPosition.relative(engineFacing, 2);
|
||||
BlockState wheelState = level.getBlockState(wheelPos);
|
||||
if (!AllBlocks.FLYWHEEL.has(wheelState))
|
||||
return;
|
||||
Direction wheelFacing = wheelState.getValue(FlywheelBlock.HORIZONTAL_FACING);
|
||||
if (wheelFacing.getAxis() != engineFacing.getClockWise().getAxis())
|
||||
return;
|
||||
if (FlywheelBlock.isConnected(wheelState)
|
||||
&& FlywheelBlock.getConnection(wheelState) != engineFacing.getOpposite())
|
||||
return;
|
||||
BlockEntity te = level.getBlockEntity(wheelPos);
|
||||
if (te.isRemoved())
|
||||
return;
|
||||
if (te instanceof FlywheelTileEntity) {
|
||||
if (!FlywheelBlock.isConnected(wheelState))
|
||||
FlywheelBlock.setConnection(level, te.getBlockPos(), te.getBlockState(), engineFacing.getOpposite());
|
||||
poweredWheel = (FlywheelTileEntity) te;
|
||||
refreshWheelSpeed();
|
||||
}
|
||||
}
|
||||
|
||||
public void detachWheel() {
|
||||
if (poweredWheel == null || poweredWheel.isRemoved())
|
||||
return;
|
||||
poweredWheel.setRotation(0, 0);
|
||||
FlywheelBlock.setConnection(level, poweredWheel.getBlockPos(), poweredWheel.getBlockState(), null);
|
||||
poweredWheel = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRemoved() {
|
||||
super.setRemoved();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setRemovedNotDueToChunkUnload() {
|
||||
detachWheel();
|
||||
super.setRemovedNotDueToChunkUnload();
|
||||
}
|
||||
|
||||
protected void refreshWheelSpeed() {
|
||||
if (poweredWheel == null)
|
||||
return;
|
||||
poweredWheel.setRotation(appliedSpeed, appliedCapacity);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,91 +0,0 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
||||
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllShapes;
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.foundation.block.ITE;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.AbstractFurnaceBlock;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.event.entity.player.PlayerInteractEvent.RightClickBlock;
|
||||
import net.minecraftforge.eventbus.api.Event.Result;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
|
||||
|
||||
@EventBusSubscriber
|
||||
public class FurnaceEngineBlock extends EngineBlock implements ITE<FurnaceEngineTileEntity> {
|
||||
|
||||
public FurnaceEngineBlock(Properties properties) {
|
||||
super(properties);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isValidBaseBlock(BlockState baseBlock, BlockGetter world, BlockPos pos) {
|
||||
return FurnaceEngineInteractions.getHandler(baseBlock).getHeatSource(baseBlock).isValid();
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState state, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
return AllShapes.FURNACE_ENGINE.get(state.getValue(FACING));
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public PartialModel getFrameModel() {
|
||||
return AllBlockPartials.FURNACE_GENERATOR_FRAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void neighborChanged(BlockState state, Level worldIn, BlockPos pos, Block blockIn, BlockPos fromPos,
|
||||
boolean isMoving) {
|
||||
super.neighborChanged(state, worldIn, pos, blockIn, fromPos, isMoving);
|
||||
if (worldIn instanceof WrappedWorld)
|
||||
return;
|
||||
if (worldIn.isClientSide)
|
||||
return;
|
||||
|
||||
if (fromPos.equals(getBaseBlockPos(state, pos)))
|
||||
if (canSurvive(state, worldIn, pos))
|
||||
withTileEntityDo(worldIn, pos, FurnaceEngineTileEntity::updateFurnace);
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void usingFurnaceEngineOnFurnacePreventsGUI(RightClickBlock event) {
|
||||
ItemStack item = event.getItemStack();
|
||||
if (!(item.getItem() instanceof BlockItem blockItem))
|
||||
return;
|
||||
if (blockItem.getBlock() != AllBlocks.FURNACE_ENGINE.get())
|
||||
return;
|
||||
BlockState state = event.getWorld().getBlockState(event.getPos());
|
||||
if (event.getFace().getAxis().isVertical())
|
||||
return;
|
||||
if (state.getBlock() instanceof AbstractFurnaceBlock)
|
||||
event.setUseBlock(Result.DENY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<FurnaceEngineTileEntity> getTileEntityClass() {
|
||||
return FurnaceEngineTileEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends FurnaceEngineTileEntity> getTileEntityType() {
|
||||
return AllTileEntities.FURNACE_ENGINE.get();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,111 +0,0 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
|
||||
import net.minecraft.world.level.block.AbstractFurnaceBlock;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.registries.IRegistryDelegate;
|
||||
|
||||
/**
|
||||
* Example:
|
||||
*
|
||||
* <pre>
|
||||
* {@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));
|
||||
* }
|
||||
* </pre>
|
||||
*/
|
||||
public class FurnaceEngineInteractions {
|
||||
|
||||
private static final Map<IRegistryDelegate<Block>, InteractionHandler> HANDLERS = new HashMap<>();
|
||||
private static final InteractionHandler DEFAULT_HANDLER = new InteractionHandler() {};
|
||||
|
||||
public static void registerHandler(IRegistryDelegate<Block> block, InteractionHandler handler) {
|
||||
HANDLERS.put(block, handler);
|
||||
}
|
||||
|
||||
public static InteractionHandler getHandler(IRegistryDelegate<Block> 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<BlockState, HeatSource> heatSourceFunc, Function<BlockState, Float> 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<BlockState, HeatSource> heatSourceFunc) {
|
||||
return new InteractionHandler() {
|
||||
@Override
|
||||
public HeatSource getHeatSource(BlockState state) {
|
||||
return heatSourceFunc.apply(state);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
static InteractionHandler ofCustomSpeedModifier(Function<BlockState, Float> 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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,43 +0,0 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineInteractions.HeatSource;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineInteractions.InteractionHandler;
|
||||
import com.simibubi.create.foundation.block.BlockStressValues;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class FurnaceEngineTileEntity extends EngineTileEntity {
|
||||
|
||||
public FurnaceEngineTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void lazyTick() {
|
||||
updateFurnace();
|
||||
super.lazyTick();
|
||||
}
|
||||
|
||||
public void updateFurnace() {
|
||||
BlockState state = level.getBlockState(EngineBlock.getBaseBlockPos(getBlockState(), worldPosition));
|
||||
InteractionHandler handler = FurnaceEngineInteractions.getHandler(state);
|
||||
HeatSource heatSource = handler.getHeatSource(state);
|
||||
if (heatSource.isEmpty())
|
||||
return;
|
||||
|
||||
float modifier = handler.getSpeedModifier(state);
|
||||
boolean active = heatSource.isActive();
|
||||
float speed = active ? 16 * modifier : 0;
|
||||
float capacity =
|
||||
(float) (active ? BlockStressValues.getCapacity(AllBlocks.FURNACE_ENGINE.get())
|
||||
: 0);
|
||||
|
||||
appliedCapacity = capacity;
|
||||
appliedSpeed = speed;
|
||||
refreshWheelSpeed();
|
||||
}
|
||||
|
||||
}
|
|
@ -11,7 +11,6 @@ import com.simibubi.create.content.contraptions.components.actors.PloughBlock;
|
|||
import com.simibubi.create.content.contraptions.components.actors.PortableStorageInterfaceBlock;
|
||||
import com.simibubi.create.content.contraptions.components.crank.HandCrankBlock;
|
||||
import com.simibubi.create.content.contraptions.components.fan.NozzleBlock;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineBlock;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkBearingBlock;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.ClockworkBearingTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.bearing.MechanicalBearingBlock;
|
||||
|
@ -322,9 +321,6 @@ public class BlockMovementChecks {
|
|||
if (block instanceof NozzleBlock)
|
||||
return direction == state.getValue(NozzleBlock.FACING)
|
||||
.getOpposite();
|
||||
if (block instanceof EngineBlock)
|
||||
return direction == state.getValue(EngineBlock.FACING)
|
||||
.getOpposite();
|
||||
if (block instanceof BellBlock) {
|
||||
BellAttachType attachment = state.getValue(BlockStateProperties.BELL_ATTACHMENT);
|
||||
if (attachment == BellAttachType.FLOOR)
|
||||
|
|
|
@ -90,7 +90,7 @@ public class BoilerData {
|
|||
}
|
||||
|
||||
public int getMaxHeatLevelForBoilerSize(int boilerSize) {
|
||||
return boilerSize / 4;
|
||||
return (int) Math.min(18, boilerSize / 4);
|
||||
}
|
||||
|
||||
public int getMaxHeatLevelForWaterSupply() {
|
||||
|
@ -182,7 +182,7 @@ public class BoilerData {
|
|||
c.append(bars(min > 0 ? 1 : 0, ChatFormatting.GREEN));
|
||||
c.append(bars(Math.max(0, level - min), ChatFormatting.DARK_GREEN));
|
||||
c.append(bars(Math.max(0, max - level), ChatFormatting.DARK_RED));
|
||||
c.append(bars(Math.max(0, 18 - max), ChatFormatting.DARK_GRAY));
|
||||
c.append(bars(Math.max(0, Math.min(18 - max, ((max / 5 + 1) * 5) - max)), ChatFormatting.DARK_GRAY));
|
||||
|
||||
return c;
|
||||
}
|
||||
|
|
|
@ -489,10 +489,10 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE<BeltTileEnt
|
|||
belt.getInventory()
|
||||
.ejectAll();
|
||||
|
||||
belt.setRemoved();
|
||||
hasPulley = belt.hasPulley();
|
||||
}
|
||||
|
||||
world.removeBlockEntity(currentPos);
|
||||
BlockState shaftState = AllBlocks.SHAFT.getDefaultState()
|
||||
.setValue(BlockStateProperties.AXIS, getRotationAxis(currentState));
|
||||
world.setBlock(currentPos, hasPulley ? shaftState : Blocks.AIR.defaultBlockState(), 3);
|
||||
|
|
|
@ -7,9 +7,7 @@ import javax.annotation.Nullable;
|
|||
|
||||
import org.apache.commons.lang3.mutable.MutableBoolean;
|
||||
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
|
@ -109,10 +107,6 @@ public abstract class ArmInteractionPoint {
|
|||
@OnlyIn(Dist.CLIENT)
|
||||
protected void transformFlag(PoseStack stack) {}
|
||||
|
||||
protected PartialModel getFlagType() {
|
||||
return mode == Mode.TAKE ? AllBlockPartials.FLAG_LONG_OUT : AllBlockPartials.FLAG_LONG_IN;
|
||||
}
|
||||
|
||||
protected void cycleMode() {
|
||||
mode = mode == Mode.DEPOSIT ? Mode.TAKE : Mode.DEPOSIT;
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ import com.simibubi.create.CreateClient;
|
|||
import com.simibubi.create.content.contraptions.KineticDebugger;
|
||||
import com.simibubi.create.content.contraptions.base.IRotate;
|
||||
import com.simibubi.create.content.contraptions.components.fan.AirCurrent;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.EngineBlock;
|
||||
import com.simibubi.create.content.contraptions.components.steam.SteamEngineBlock;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionHandler;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.ChassisRangeDisplay;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.interaction.controls.ControlsHandler;
|
||||
|
@ -251,7 +251,7 @@ public class ClientEvents {
|
|||
|
||||
if (stack.getItem() instanceof BlockItem) {
|
||||
BlockItem item = (BlockItem) stack.getItem();
|
||||
if (item.getBlock() instanceof IRotate || item.getBlock() instanceof EngineBlock) {
|
||||
if (item.getBlock() instanceof IRotate || item.getBlock() instanceof SteamEngineBlock) {
|
||||
List<Component> kineticStats = ItemDescription.getKineticStats(item.getBlock());
|
||||
if (!kineticStats.isEmpty()) {
|
||||
event.getToolTip()
|
||||
|
|
|
@ -329,11 +329,6 @@ public class AllAdvancements implements DataProvider {
|
|||
.addCriterion("0", AllTriggers.FLYWHEEL.instance())
|
||||
.save(t, id + ":flywheel");
|
||||
|
||||
Advancement overstress_flywheel =
|
||||
advancement("overstress_flywheel", AllBlocks.FURNACE_ENGINE.get(), TaskType.CHALLENGE).parent(flywheel)
|
||||
.addCriterion("0", AllTriggers.OVERSTRESS_FLYWHEEL.instance())
|
||||
.save(t, id + ":overstress_flywheel");
|
||||
|
||||
Advancement clockwork_bearing =
|
||||
advancement("clockwork_bearing", AllBlocks.CLOCKWORK_BEARING.get(), TaskType.NORMAL)
|
||||
.parent(brass_casing)
|
||||
|
|
|
@ -55,7 +55,7 @@ public class CKinetics extends ConfigBase {
|
|||
f(4, 0, 4096, "mediumStressImpact", Comments.su, Comments.mediumStressImpact);
|
||||
public final ConfigFloat highStressImpact = f(8, 0, 65535, "highStressImpact", Comments.su, Comments.highStressImpact);
|
||||
public final ConfigFloat mediumCapacity = f(128, 0, 4096, "mediumCapacity", Comments.su, Comments.mediumCapacity);
|
||||
public final ConfigFloat highCapacity = f(512, 0, 65535, "highCapacity", Comments.su, Comments.highCapacity);
|
||||
public final ConfigFloat highCapacity = f(1024, 0, 65535, "highCapacity", Comments.su, Comments.highCapacity);
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
|
|
|
@ -62,15 +62,6 @@ public class MechanicalCraftingRecipeGen extends CreateRecipeProvider {
|
|||
.patternLine("LRSSS")
|
||||
.patternLine("CC ")),
|
||||
|
||||
FURNACE_ENGINE = create(AllBlocks.FURNACE_ENGINE::get).returns(1)
|
||||
.recipe(b -> b.key('P', Ingredient.of(I.brassSheet()))
|
||||
.key('B', Ingredient.of(I.brass()))
|
||||
.key('I', Ingredient.of(Blocks.PISTON, Blocks.STICKY_PISTON))
|
||||
.key('C', I.brassCasing())
|
||||
.patternLine("PPB")
|
||||
.patternLine("PCI")
|
||||
.patternLine("PPB")),
|
||||
|
||||
FLYWHEEL = create(AllBlocks.FLYWHEEL::get).returns(1)
|
||||
.recipe(b -> b.key('B', Ingredient.of(I.brass()))
|
||||
.key('C', I.brassCasing())
|
||||
|
|
|
@ -24,8 +24,6 @@ import java.util.List;
|
|||
import com.simibubi.create.content.contraptions.base.IRotate;
|
||||
import com.simibubi.create.content.contraptions.base.IRotate.SpeedLevel;
|
||||
import com.simibubi.create.content.contraptions.base.IRotate.StressImpact;
|
||||
import com.simibubi.create.content.contraptions.components.fan.EncasedFanBlock;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineBlock;
|
||||
import com.simibubi.create.content.contraptions.components.waterwheel.WaterWheelBlock;
|
||||
import com.simibubi.create.content.contraptions.goggles.GogglesItem;
|
||||
import com.simibubi.create.foundation.block.BlockStressValues;
|
||||
|
@ -101,27 +99,28 @@ public class ItemDescription {
|
|||
showStressImpact = !((IRotate) block).hideStressImpact();
|
||||
}
|
||||
|
||||
boolean hasSpeedRequirement = minimumRequiredSpeedLevel != SpeedLevel.NONE && minimumRequiredSpeedLevel != SpeedLevel.SLOW;
|
||||
// boolean hasSpeedRequirement =
|
||||
// minimumRequiredSpeedLevel != SpeedLevel.NONE && minimumRequiredSpeedLevel != SpeedLevel.SLOW;
|
||||
boolean hasStressImpact =
|
||||
StressImpact.isEnabled() && showStressImpact && BlockStressValues.getImpact(block) > 0;
|
||||
boolean hasStressCapacity = StressImpact.isEnabled() && BlockStressValues.hasCapacity(block);
|
||||
|
||||
if (hasSpeedRequirement) {
|
||||
int index = minimumRequiredSpeedLevel.ordinal();
|
||||
MutableComponent level =
|
||||
new TextComponent(makeProgressBar(3, index)).withStyle(minimumRequiredSpeedLevel.getTextColor());
|
||||
|
||||
if (hasGoggles)
|
||||
level.append(String.valueOf(minimumRequiredSpeedLevel.getSpeedValue()))
|
||||
.append(rpmUnit)
|
||||
.append("+");
|
||||
else
|
||||
level.append(Lang.translate("tooltip.speedRequirement." + Lang.asId(minimumRequiredSpeedLevel.name())));
|
||||
|
||||
list.add(Lang.translate("tooltip.speedRequirement")
|
||||
.withStyle(GRAY));
|
||||
list.add(level);
|
||||
}
|
||||
// if (hasSpeedRequirement) {
|
||||
// int index = minimumRequiredSpeedLevel.ordinal();
|
||||
// MutableComponent level =
|
||||
// new TextComponent(makeProgressBar(3, index)).withStyle(minimumRequiredSpeedLevel.getTextColor());
|
||||
//
|
||||
// if (hasGoggles)
|
||||
// level.append(String.valueOf(minimumRequiredSpeedLevel.getSpeedValue()))
|
||||
// .append(rpmUnit)
|
||||
// .append("+");
|
||||
// else
|
||||
// level.append(Lang.translate("tooltip.speedRequirement." + Lang.asId(minimumRequiredSpeedLevel.name())));
|
||||
//
|
||||
// list.add(Lang.translate("tooltip.speedRequirement")
|
||||
// .withStyle(GRAY));
|
||||
// list.add(level);
|
||||
// }
|
||||
|
||||
if (hasStressImpact) {
|
||||
double impact = BlockStressValues.getImpact(block);
|
||||
|
@ -144,11 +143,13 @@ public class ItemDescription {
|
|||
|
||||
if (hasStressCapacity) {
|
||||
double capacity = BlockStressValues.getCapacity(block);
|
||||
StressImpact impactId = capacity >= config.highCapacity.get() ? StressImpact.LOW
|
||||
: (capacity >= config.mediumCapacity.get() ? StressImpact.MEDIUM : StressImpact.HIGH);
|
||||
StressImpact impactId = capacity >= config.highCapacity.get() ? StressImpact.HIGH
|
||||
: (capacity >= config.mediumCapacity.get() ? StressImpact.MEDIUM : StressImpact.LOW);
|
||||
StressImpact opposite = StressImpact.values()[2 - impactId.ordinal()];
|
||||
|
||||
int index = StressImpact.values().length - 2 - impactId.ordinal();
|
||||
MutableComponent level =
|
||||
new TextComponent(makeProgressBar(3, index + 1)).withStyle(impactId.getAbsoluteColor());
|
||||
new TextComponent(makeProgressBar(3, impactId.ordinal() + 1)).withStyle(opposite.getAbsoluteColor());
|
||||
|
||||
if (hasGoggles)
|
||||
level.append(capacity + "x ")
|
||||
|
@ -307,15 +308,6 @@ public class ItemDescription {
|
|||
value = (speedmod + baseSpeed) + "-" + (baseSpeed + (speedmod * 3));
|
||||
}
|
||||
|
||||
else if (block instanceof EncasedFanBlock)
|
||||
value = AllConfigs.SERVER.kinetics.generatingFanSpeed.get()
|
||||
.toString();
|
||||
|
||||
else if (block instanceof FurnaceEngineBlock) {
|
||||
int baseSpeed = AllConfigs.SERVER.kinetics.furnaceEngineSpeed.get();
|
||||
value = baseSpeed + "-" + (baseSpeed * 2);
|
||||
}
|
||||
|
||||
return !value.equals("") ? Lang.translate("tooltip.generationSpeed", value, unitRPM)
|
||||
: TextComponent.EMPTY.plainCopy();
|
||||
}
|
||||
|
|
|
@ -269,37 +269,4 @@ public class FanScenes {
|
|||
|
||||
}
|
||||
|
||||
public static void source(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("fan_source", "Generating Rotational Force using Encased Fans");
|
||||
scene.configureBasePlate(0, 0, 5);
|
||||
scene.world.showSection(util.select.layer(0), Direction.UP);
|
||||
scene.idle(5);
|
||||
scene.world.showSection(util.select.layer(1), Direction.DOWN);
|
||||
scene.idle(10);
|
||||
scene.world.showSection(util.select.layersFrom(2), Direction.DOWN);
|
||||
scene.idle(10);
|
||||
BlockPos rightFan = util.grid.at(1, 2, 2);
|
||||
scene.overlay.showText(70)
|
||||
.text("Fans facing down into a source of heat can provide Rotational Force")
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(rightFan, Direction.WEST));
|
||||
scene.idle(80);
|
||||
scene.addKeyframe();
|
||||
|
||||
for (BlockPos pos : new BlockPos[] { rightFan, util.grid.at(3, 2, 2) }) {
|
||||
scene.idle(10);
|
||||
scene.world.toggleRedstonePower(util.select.position(pos.north()));
|
||||
scene.effects.indicateRedstone(pos.north());
|
||||
scene.world.setKineticSpeed(util.select.fromTo(pos, pos.above()), 4);
|
||||
scene.effects.rotationSpeedIndicator(pos.above());
|
||||
}
|
||||
|
||||
scene.overlay.showText(90)
|
||||
.text("When given a Redstone Signal, the Fans will start providing power")
|
||||
.colored(PonderPalette.RED)
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(rightFan, Direction.WEST));
|
||||
scene.markAsFinished();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -971,94 +971,6 @@ public class KineticsScenes {
|
|||
scene.world.setKineticSpeed(outputKinetics, 0);
|
||||
}
|
||||
|
||||
public static void furnaceEngine(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
furnaceEngine(scene, util, false);
|
||||
}
|
||||
|
||||
public static void flywheel(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
furnaceEngine(scene, util, true);
|
||||
}
|
||||
|
||||
private static void furnaceEngine(SceneBuilder scene, SceneBuildingUtil util, boolean flywheel) {
|
||||
scene.title(flywheel ? "flywheel" : "furnace_engine",
|
||||
"Generating Rotational Force using the " + (flywheel ? "Flywheel" : "Furnace Engine"));
|
||||
scene.configureBasePlate(0, 0, 6);
|
||||
scene.world.showSection(util.select.layer(0), Direction.UP);
|
||||
|
||||
BlockPos furnacePos = util.grid.at(4, 1, 3);
|
||||
BlockPos cogPos = util.grid.at(1, 1, 2);
|
||||
BlockPos gaugePos = util.grid.at(1, 1, 1);
|
||||
|
||||
scene.idle(5);
|
||||
Selection furnaceSelect = util.select.position(furnacePos);
|
||||
scene.world.showSection(furnaceSelect, Direction.DOWN);
|
||||
scene.idle(10);
|
||||
scene.world.showSection(util.select.position(furnacePos.west()), Direction.DOWN);
|
||||
scene.idle(10);
|
||||
scene.world.showSection(util.select.position(furnacePos.west(3)), Direction.EAST);
|
||||
scene.idle(10);
|
||||
|
||||
String text = flywheel ? "Flywheels are required for generating rotational force with the Furnace Engine"
|
||||
: "Furnace Engines generate Rotational Force while their attached Furnace is running";
|
||||
scene.overlay.showText(80)
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(furnacePos.west(flywheel ? 3 : 1)))
|
||||
.text(text);
|
||||
scene.idle(90);
|
||||
|
||||
scene.overlay.showControls(
|
||||
new InputWindowElement(util.vector.topOf(furnacePos), Pointing.DOWN).withItem(new ItemStack(Items.OAK_LOG)),
|
||||
30);
|
||||
scene.idle(5);
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.blockSurface(furnacePos, Direction.NORTH), Pointing.RIGHT)
|
||||
.withItem(new ItemStack(Items.COAL)), 30);
|
||||
scene.idle(7);
|
||||
scene.world.cycleBlockProperty(furnacePos, FurnaceBlock.LIT);
|
||||
scene.effects.emitParticles(util.vector.of(4.5, 1.2, 2.9), Emitter.simple(ParticleTypes.LAVA, Vec3.ZERO), 4, 1);
|
||||
scene.world.setKineticSpeed(util.select.fromTo(1, 1, 3, 1, 1, 1), 16);
|
||||
scene.idle(40);
|
||||
|
||||
scene.world.showSection(util.select.position(cogPos), Direction.SOUTH);
|
||||
scene.idle(15);
|
||||
scene.effects.rotationSpeedIndicator(cogPos);
|
||||
scene.world.showSection(util.select.position(gaugePos), Direction.SOUTH);
|
||||
scene.idle(15);
|
||||
|
||||
scene.overlay.showText(80)
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.GREEN)
|
||||
.pointAt(util.vector.blockSurface(gaugePos, Direction.WEST))
|
||||
.text("The provided Rotational Force has a very large stress capacity");
|
||||
scene.idle(90);
|
||||
|
||||
ElementLink<WorldSectionElement> engine =
|
||||
scene.world.makeSectionIndependent(util.select.fromTo(3, 1, 3, 1, 1, 1));
|
||||
scene.world.moveSection(engine, util.vector.of(0, 1, 0), 15);
|
||||
scene.idle(10);
|
||||
scene.world.hideSection(furnaceSelect, Direction.NORTH);
|
||||
scene.idle(15);
|
||||
scene.world.setBlock(furnacePos, Blocks.BLAST_FURNACE.defaultBlockState()
|
||||
.setValue(FurnaceBlock.FACING, Direction.NORTH)
|
||||
.setValue(FurnaceBlock.LIT, true), false);
|
||||
scene.world.showSection(furnaceSelect, Direction.NORTH);
|
||||
scene.idle(10);
|
||||
scene.world.moveSection(engine, util.vector.of(0, -1, 0), 15);
|
||||
scene.idle(10);
|
||||
scene.world.setKineticSpeed(util.select.fromTo(1, 1, 3, 1, 1, 1), 32);
|
||||
scene.idle(5);
|
||||
scene.effects.rotationSpeedIndicator(cogPos);
|
||||
|
||||
scene.overlay.showText(80)
|
||||
.placeNearTarget()
|
||||
.colored(PonderPalette.MEDIUM)
|
||||
.pointAt(util.vector.topOf(furnacePos.west()))
|
||||
.text("Using a Blast Furnace will double the efficiency of the Engine");
|
||||
|
||||
}
|
||||
|
||||
public static void speedController(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("rotation_speed_controller", "Using the Rotational Speed Controller");
|
||||
scene.configureBasePlate(0, 0, 5);
|
||||
|
|
|
@ -65,8 +65,7 @@ public class PonderIndex {
|
|||
|
||||
HELPER.forComponents(AllBlocks.ENCASED_FAN)
|
||||
.addStoryBoard("fan/direction", FanScenes::direction, PonderTag.KINETIC_APPLIANCES)
|
||||
.addStoryBoard("fan/processing", FanScenes::processing)
|
||||
.addStoryBoard("fan/source", FanScenes::source, PonderTag.KINETIC_SOURCES);
|
||||
.addStoryBoard("fan/processing", FanScenes::processing);
|
||||
|
||||
HELPER.addStoryBoard(AllBlocks.CREATIVE_MOTOR, "creative_motor", KineticsScenes::creativeMotor,
|
||||
PonderTag.KINETIC_SOURCES);
|
||||
|
@ -84,10 +83,6 @@ public class PonderIndex {
|
|||
HELPER.forComponents(AllBlocks.ENCASED_CHAIN_DRIVE, AllBlocks.ADJUSTABLE_CHAIN_GEARSHIFT)
|
||||
.addStoryBoard("chain_drive/gearshift", ChainDriveScenes::adjustableChainGearshift);
|
||||
|
||||
HELPER.forComponents(AllBlocks.FURNACE_ENGINE)
|
||||
.addStoryBoard("furnace_engine", KineticsScenes::furnaceEngine);
|
||||
HELPER.forComponents(AllBlocks.FLYWHEEL)
|
||||
.addStoryBoard("furnace_engine", KineticsScenes::flywheel);
|
||||
HELPER.forComponents(AllBlocks.ROTATION_SPEED_CONTROLLER)
|
||||
.addStoryBoard("speed_controller", KineticsScenes::speedController);
|
||||
|
||||
|
@ -328,10 +323,8 @@ public class PonderIndex {
|
|||
.add(AllBlocks.HAND_CRANK)
|
||||
.add(AllBlocks.COPPER_VALVE_HANDLE)
|
||||
.add(AllBlocks.WATER_WHEEL)
|
||||
.add(AllBlocks.ENCASED_FAN)
|
||||
.add(AllBlocks.WINDMILL_BEARING)
|
||||
.add(AllBlocks.FURNACE_ENGINE)
|
||||
.add(AllBlocks.FLYWHEEL)
|
||||
.add(AllBlocks.STEAM_ENGINE)
|
||||
.add(AllBlocks.CREATIVE_MOTOR);
|
||||
|
||||
PonderRegistry.TAGS.forTag(PonderTag.KINETIC_APPLIANCES)
|
||||
|
|
|
@ -10,7 +10,7 @@ public class RemoveTileEntityPacket extends TileEntityDataPacket<SyncedTileEntit
|
|||
public RemoveTileEntityPacket(BlockPos pos) {
|
||||
super(pos);
|
||||
}
|
||||
|
||||
|
||||
public RemoveTileEntityPacket(FriendlyByteBuf buffer) {
|
||||
super(buffer);
|
||||
}
|
||||
|
@ -20,7 +20,13 @@ public class RemoveTileEntityPacket extends TileEntityDataPacket<SyncedTileEntit
|
|||
|
||||
@Override
|
||||
protected void handlePacket(SyncedTileEntity tile) {
|
||||
tile.setRemoved();
|
||||
if (!tile.hasLevel()) {
|
||||
tile.setRemoved();
|
||||
return;
|
||||
}
|
||||
|
||||
tile.getLevel()
|
||||
.removeBlockEntity(tilePos);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"parent": "create:block/flywheel/flywheel",
|
||||
"loader": "forge:obj",
|
||||
"flip-v": true,
|
||||
"model": "create:models/block/flywheel/flywheel_shaftless.obj"
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,95 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"0": "create:block/flywheel",
|
||||
"1": "create:block/axis",
|
||||
"2": "create:block/axis_top",
|
||||
"particle": "create:block/flywheel"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
# Blender MTL File: 'engine.blend'
|
||||
# Material Count: 3
|
||||
|
||||
newmtl m_0
|
||||
Ns 250.000000
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.800000 0.800000 0.800000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.450000
|
||||
d 1.000000
|
||||
illum 2
|
||||
map_Kd #0
|
||||
|
||||
newmtl m_1
|
||||
Ns 250.000000
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.800000 0.800000 0.800000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.450000
|
||||
d 1.000000
|
||||
illum 2
|
||||
map_Kd #1
|
||||
|
||||
newmtl m_2
|
||||
Ns 250.000000
|
||||
Ka 1.000000 1.000000 1.000000
|
||||
Kd 0.800000 0.800000 0.800000
|
||||
Ks 0.500000 0.500000 0.500000
|
||||
Ke 0.000000 0.000000 0.000000
|
||||
Ni 1.450000
|
||||
d 1.000000
|
||||
illum 2
|
||||
map_Kd #2
|
1033
src/main/resources/assets/create/models/block/flywheel/flywheel.obj
Normal file
1033
src/main/resources/assets/create/models/block/flywheel/flywheel.obj
Normal file
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,993 @@
|
|||
# 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
|
|
@ -1,381 +1,18 @@
|
|||
{
|
||||
"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"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"parent": "create:block/flywheel/flywheel",
|
||||
"loader": "forge:obj",
|
||||
"flip-v": true,
|
||||
"model": "create:models/block/flywheel/flywheel.obj",
|
||||
"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]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [ 30, 225, 0 ],
|
||||
"translation": [ 0, 0, 0],
|
||||
"scale":[ 0.4, 0.4, 0.4 ]
|
||||
},
|
||||
"fixed": {
|
||||
"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]
|
||||
}
|
||||
]
|
||||
"rotation": [ 90, 0, 0 ],
|
||||
"translation": [ 0, 0, 0],
|
||||
"scale":[ 0.4, 0.4, 0.4 ]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,221 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,133 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,89 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,123 +0,0 @@
|
|||
{
|
||||
"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]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"4": "create:block/marker_flag"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [1, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -3, 10]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0, 2, 16], "texture": "#4"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#4"},
|
||||
"south": {"uv": [1, 0, 2, 16], "texture": "#4"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#4"},
|
||||
"up": {"uv": [0, 0, 1, 1], "texture": "#4"},
|
||||
"down": {"uv": [0, 0, 1, 1], "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.4, 7.5, 1],
|
||||
"to": [0.4, 15.5, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -3, 10]},
|
||||
"faces": {
|
||||
"east": {"uv": [16, 0, 8, 8], "texture": "#4", "tintindex": 0},
|
||||
"west": {"uv": [8, 0, 16, 8], "texture": "#4", "tintindex": 0}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"4": "create:block/marker_flag"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [1, 16, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -3, 10]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0, 2, 16], "texture": "#4"},
|
||||
"east": {"uv": [0, 0, 1, 16], "texture": "#4"},
|
||||
"south": {"uv": [1, 0, 2, 16], "texture": "#4"},
|
||||
"west": {"uv": [0, 0, 1, 16], "texture": "#4"},
|
||||
"up": {"uv": [0, 0, 1, 1], "texture": "#4"},
|
||||
"down": {"uv": [0, 0, 1, 1], "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.4, 7.5, 1],
|
||||
"to": [0.4, 15.5, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -3, 10]},
|
||||
"faces": {
|
||||
"east": {"uv": [16, 8, 8, 16], "texture": "#4", "tintindex": 0},
|
||||
"west": {"uv": [8, 8, 16, 16], "texture": "#4", "tintindex": 0}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"4": "create:block/marker_flag"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [1, 8, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -3, 10]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 8, 2, 16], "texture": "#4"},
|
||||
"east": {"uv": [0, 0, 1, 8], "texture": "#4"},
|
||||
"south": {"uv": [1, 0, 2, 8], "texture": "#4"},
|
||||
"west": {"uv": [0, 0, 1, 8], "texture": "#4"},
|
||||
"up": {"uv": [0, 0, 1, 1], "texture": "#4"},
|
||||
"down": {"uv": [0, 0, 1, 1], "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.4, -0.5, 1],
|
||||
"to": [0.4, 7.5, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -3, 10]},
|
||||
"faces": {
|
||||
"east": {"uv": [16, 0, 8, 8], "texture": "#4", "tintindex": 0},
|
||||
"west": {"uv": [8, 0, 16, 8], "texture": "#4", "tintindex": 0}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"4": "create:block/marker_flag"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [1, 8, 1],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -3, 10]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 8, 2, 16], "texture": "#4"},
|
||||
"east": {"uv": [0, 0, 1, 8], "texture": "#4"},
|
||||
"south": {"uv": [1, 0, 2, 8], "texture": "#4"},
|
||||
"west": {"uv": [0, 0, 1, 8], "texture": "#4"},
|
||||
"up": {"uv": [0, 0, 1, 1], "texture": "#4"},
|
||||
"down": {"uv": [0, 0, 1, 1], "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.4, -0.5, 1],
|
||||
"to": [0.4, 7.5, 9],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, -3, 10]},
|
||||
"faces": {
|
||||
"east": {"uv": [16, 8, 8, 16], "texture": "#4", "tintindex": 0},
|
||||
"west": {"uv": [8, 8, 16, 16], "texture": "#4", "tintindex": 0}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
BIN
src/main/resources/assets/create/textures/block/flywheel.png
Normal file
BIN
src/main/resources/assets/create/textures/block/flywheel.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.8 KiB |
Binary file not shown.
Before Width: | Height: | Size: 645 B |
Binary file not shown.
Before Width: | Height: | Size: 196 B |
Binary file not shown.
Before Width: | Height: | Size: 421 B |
Binary file not shown.
Before Width: | Height: | Size: 702 B |
Loading…
Reference in a new issue