diff --git a/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e b/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e index bea8913c..bbea9eb6 100644 --- a/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e +++ b/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e @@ -1,2 +1,2 @@ -// 1.19.2 2023-09-02T22:17:42.1551506 Create: The Factory Must Grow's lang merger -c0f23942c5605c0ffee88aca7d4850cf429905bd assets/tfmg/lang/en_us.json +// 1.19.2 2023-09-06T16:25:55.6251575 Create: The Factory Must Grow's lang merger +eb7793620135512a7a35164f8ca9c5c881354d90 assets/tfmg/lang/en_us.json diff --git a/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a b/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a index 84e82212..5f12a98e 100644 --- a/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a +++ b/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a @@ -1,9 +1,12 @@ -// 1.19.2 2023-09-02T22:17:42.1611507 Registrate Provider for tfmg [Recipes, Advancements, Loot tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] +// 1.19.2 2023-09-06T16:25:55.6312653 Registrate Provider for tfmg [Recipes, Advancements, Loot tables, Tags (blocks), Tags (items), Tags (fluids), Tags (entity_types), Blockstates, Item models, Lang (en_us/en_ud)] +b7f5146505c40c08cdea7ad01fa99048b7ac5451 assets/tfmg/blockstates/aluminum_block.json 933485fa587fccc649b4cbe8f76f15e590cc8bb1 assets/tfmg/blockstates/bauxite.json 2b53ff8e880d35a42388584cb3ca896c55bfaf95 assets/tfmg/blockstates/bauxite_pillar.json 9ca537517fb8baeff3d4e4137c93aebd6b874c81 assets/tfmg/blockstates/cast_iron_block.json +ec94bedd045ade74274ffe009569d65083b9fff5 assets/tfmg/blockstates/coal_coke_block.json c67b91a7fd9f16cd2d7eaa92dd9b945042d58130 assets/tfmg/blockstates/concrete.json dca4728ef33ca9d54fb55d707761c2eeb77c32b1 assets/tfmg/blockstates/cooling_fluid.json +8b6052f05d1b9cd80062de3fb79e36eb0727ecd5 assets/tfmg/blockstates/copper_encased_steel_pipe.json fa1fa0509cd94e57da7624b5d094c228d6b92593 assets/tfmg/blockstates/creosote.json a9b81338133077138f447a0d159f094edb61242a assets/tfmg/blockstates/crude_oil_fluid.json 5f57a2dc6fa076ee9d2a22e32d26993490c6debc assets/tfmg/blockstates/cut_bauxite.json @@ -18,10 +21,12 @@ e11a6159da224e69f12e11a594c20bb2bd8c0e68 assets/tfmg/blockstates/cut_bauxite_bri f16d1cf03e5053455ea485f7aa53a88206f61749 assets/tfmg/blockstates/formwork_block.json e74acd9562e4b46295cf017d17f2662e20a7f5ea assets/tfmg/blockstates/fossilstone.json b0a3f4da5d9efdd01800c8b9738aee194565c6e7 assets/tfmg/blockstates/gasoline.json +d23c28129bc7885986c65290071fb7a9cc5391d7 assets/tfmg/blockstates/glass_steel_pipe.json c7aa764cc11ee837deeed68c9c2d8567ea078f5c assets/tfmg/blockstates/heavy_machinery_casing.json dea24edfcb504c6c74560174a94bd7d3e5d58e76 assets/tfmg/blockstates/heavy_oil.json 7199cbfa37e83fcedf8e99af48b05b283aef319f assets/tfmg/blockstates/kerosene.json a8f81ce72c3f074ffef304b238ae805f3b4ea763 assets/tfmg/blockstates/layered_bauxite.json +34b4665b1ad1f302cebf30a5b1694c47b7ec1b8a assets/tfmg/blockstates/lead_block.json 55cba7d103b52b31f2deb59effcc01cfae6e2c05 assets/tfmg/blockstates/liquid_concrete.json d3ba2682652fd44337d1f82ec382df17611fabe1 assets/tfmg/blockstates/liquid_plastic.json 2dc4b1da2bee0275cbb13ef89003d56f62d4443d assets/tfmg/blockstates/lubrication_oil.json @@ -39,8 +44,11 @@ e80f4610e3272a4edfb47572aff71f1db3d283d7 assets/tfmg/blockstates/small_bauxite_b a2eed7173d7f528d0f068c5fa9ea358f61ef1436 assets/tfmg/blockstates/small_bauxite_brick_wall.json e6983072149d1a9a2f4d39e4e1feac599ff7413e assets/tfmg/blockstates/steel_block.json df44115876045e6f863de2f8be6a9166b336a2f1 assets/tfmg/blockstates/steel_casing.json -1abebfd461d9f0d2bcf74a13f2902719a7c09d83 assets/tfmg/lang/en_ud.json -c5943f88c53ebb9a4e5ae247523abf65fb698935 assets/tfmg/lang/en_us.json +72bfce2a2795dfe461beed7c3a074e328de14d96 assets/tfmg/blockstates/steel_fluid_tank.json +2305048c06767d728d10242e152f25911c1489fd assets/tfmg/blockstates/steel_pipe.json +2f4c690a17de80bd2a7a0257ef923943913d50d1 assets/tfmg/lang/en_ud.json +4a3abb850ef18abfaaf33f08710afcdd8488f4a2 assets/tfmg/lang/en_us.json +9e6a6b62f5e7528c4e4d4f72f3510edcd8f0c078 assets/tfmg/models/block/aluminum_block.json 5a4c785e8d8394ccd125732c0017459648574c4e assets/tfmg/models/block/bauxite_natural_0.json 4ace0da00498fcbb9ddfdf321767b40b095c8778 assets/tfmg/models/block/bauxite_natural_1.json 3d19a151c9691f26b22050d0556e85420dd07ecd assets/tfmg/models/block/bauxite_natural_2.json @@ -48,6 +56,7 @@ b43711f35915b71b15db638538a83a4ea46480dc assets/tfmg/models/block/bauxite_natura 920f96d4b648414ce8331e5a81e6b7ddbce7e225 assets/tfmg/models/block/bauxite_pillar.json cd5ade5f9a0b3b5e28b5d11a685408dd922dbe2d assets/tfmg/models/block/bauxite_pillar_horizontal.json 37789d06ec6cfc0312be7b1b66ac1ec6403d4516 assets/tfmg/models/block/cast_iron_block.json +50c47672a7e9f7180af78c4bef42d5db1822b08b assets/tfmg/models/block/coal_coke_block.json 75c31d328fc5d6d46c8b43e8bde7504f4e51dadc assets/tfmg/models/block/concrete.json 80fb4a90f861992322bfd63f1232593e8cce708e assets/tfmg/models/block/cooling_fluid.json 80fb4a90f861992322bfd63f1232593e8cce708e assets/tfmg/models/block/creosote.json @@ -77,6 +86,7 @@ e0cf42adbfeaa5c781b8239352335985658ae2d3 assets/tfmg/models/block/gasoline.json 725ac5c4c5aade982edbcb6c4e6c53626f0e68e4 assets/tfmg/models/block/heavy_oil.json 796f870ee5d3f55ace500798ae389e532c7233b8 assets/tfmg/models/block/kerosene.json 87cc75cb9bc8e65f8e46785b14e21ac5a4356faa assets/tfmg/models/block/layered_bauxite.json +79862c4e9a084be72f402e1378c3bb009a8db889 assets/tfmg/models/block/lead_block.json eced115e0feb825f719abc480c4f9d7e7cc698c8 assets/tfmg/models/block/liquid_concrete.json 03ace76bbda220374985683aeea1eb4466bd4f13 assets/tfmg/models/block/liquid_plastic.json 6de36688139c9b11ed1ce6ef26ef1b65dfad34f5 assets/tfmg/models/block/lubrication_oil.json @@ -105,9 +115,44 @@ d29800a63ca2717e056798cf8bb29bf55d29a07c assets/tfmg/models/block/small_bauxite_ a07354a238bd4d5aadee6e60e1d61fcffde43f5b assets/tfmg/models/block/small_bauxite_brick_stairs_outer.json 0ceb30eaff16a495c9a165ca16c925cbff836755 assets/tfmg/models/block/steel_block.json 465b1fed10d06090e5e8d19457f9fa48fe890bb4 assets/tfmg/models/block/steel_casing.json +0c4fcf6e901d8eba56ba67999fcf0801534779d6 assets/tfmg/models/block/steel_pipe/d_x.json +6060082caaef1e6e6fc72606d6a74e64aaeb27ac assets/tfmg/models/block/steel_pipe/d_y.json +dc62a6a3de9e73e7341481df09951a7ec3caf944 assets/tfmg/models/block/steel_pipe/d_z.json +1091fe2d4abfa9935c57cafcd3bd65a6fdcb1a7b assets/tfmg/models/block/steel_pipe/ld_x.json +dd229543a58922b39223c1957f88143edb3c1a1a assets/tfmg/models/block/steel_pipe/ld_y.json +4dc15f7d71138f79a15ff8738e25d6fb657086c7 assets/tfmg/models/block/steel_pipe/ld_z.json +501e1523ffcd2c897c95729b4ab43b1531ded959 assets/tfmg/models/block/steel_pipe/lr_x.json +6c99cf673d90c05b11a2a6269eaeee982376826f assets/tfmg/models/block/steel_pipe/lr_y.json +8af9bf77d345c1f7c6354541270a355997b252fc assets/tfmg/models/block/steel_pipe/lr_z.json +0c75462cc6fcbc56ec2f111d80f61a6abfedf693 assets/tfmg/models/block/steel_pipe/lu_x.json +902ee90dc6b5516946b7e2f06258253cfb6767b4 assets/tfmg/models/block/steel_pipe/lu_y.json +d7b55e24c21c1042695e09d17395b5c389256727 assets/tfmg/models/block/steel_pipe/lu_z.json +0df8d07244444b8c6e4d756a27013a3981d2e51d assets/tfmg/models/block/steel_pipe/l_x.json +3f5fc2b9f9c570bacfc0ae697922509b169155fa assets/tfmg/models/block/steel_pipe/l_y.json +35bc60c016b488d5e9fcb324d89fbb93d9a6c0ca assets/tfmg/models/block/steel_pipe/l_z.json +d982c7570430e0052bfd87ec10e880086f9b87bc assets/tfmg/models/block/steel_pipe/rd_x.json +e651d9decda90050af5c865b6d799e890d9ff502 assets/tfmg/models/block/steel_pipe/rd_y.json +86e254b47fc87beae269512969c095d52b0b9a5e assets/tfmg/models/block/steel_pipe/rd_z.json +301a84ba7b55046a13e615abac540ec6ff3a0da8 assets/tfmg/models/block/steel_pipe/ru_x.json +88d1333e6c6a7196f76871570464a609f8a25307 assets/tfmg/models/block/steel_pipe/ru_y.json +316bd01cda7cf096cddd623e056e3cde026bd194 assets/tfmg/models/block/steel_pipe/ru_z.json +c00198c8130e8ffa46e0a61568d14e2edc74c810 assets/tfmg/models/block/steel_pipe/r_x.json +0d1411127a0ad629ae375b4b5e1de158e5c83af1 assets/tfmg/models/block/steel_pipe/r_y.json +0d1f17dd0748ccbdf1213d8670f738e33a537b7a assets/tfmg/models/block/steel_pipe/r_z.json +7e35caf08ec29978ad9e51b4b26299636d27cd8c assets/tfmg/models/block/steel_pipe/ud_x.json +e3105550abc0fafc0d67d494c8f92008a9cf7fd9 assets/tfmg/models/block/steel_pipe/ud_y.json +d34e5efd71420623baab6ff86cbb9a68abcb343d assets/tfmg/models/block/steel_pipe/ud_z.json +68d79052c90cbfad2c4730673395b5f58ad73293 assets/tfmg/models/block/steel_pipe/u_x.json +e583e8755126d362e21057464e2f12af3f32ba25 assets/tfmg/models/block/steel_pipe/u_y.json +56b3110e7a55c08302e27d5b7f32f7b7b9cd60a0 assets/tfmg/models/block/steel_pipe/u_z.json +714173e054b787915b8cebfb50deb61b28dba5a3 assets/tfmg/models/item/aluminum_block.json +f685ca653c8e197986b1ac8f43297989816d39d2 assets/tfmg/models/item/aluminum_ingot.json 4ace0da00498fcbb9ddfdf321767b40b095c8778 assets/tfmg/models/item/bauxite.json 41091873d85bac787e4752d0ff81189432f1e28e assets/tfmg/models/item/bauxite_pillar.json ec38882fb9010884823d6d6afa604f8a6512d279 assets/tfmg/models/item/cast_iron_block.json +da2c28e98d0ddf7166bdf7214c06e81ad8581b90 assets/tfmg/models/item/cast_iron_ingot.json +d45fc5511b4c4027889afd3088cd91ba1d8b0501 assets/tfmg/models/item/coal_coke.json +3789a9d72a7ba5daf8c39cccaa665057e63302c6 assets/tfmg/models/item/coal_coke_block.json 4a843d55647a606fa97bc2daf745a7603406767d assets/tfmg/models/item/concrete.json e8c4e68647a6ced815cfca649c679e709fcc7751 assets/tfmg/models/item/cooling_fluid_bucket.json df4e7fa8f3f60908f58794528a8db60dce7d0135 assets/tfmg/models/item/copper_grenade.json @@ -129,6 +174,8 @@ ed2830b2988403aebaca633b2e315878b41f7503 assets/tfmg/models/item/gasoline_bucket f3bea42a905b7df9395bda18f751e2ee0c023e65 assets/tfmg/models/item/heavy_oil_bucket.json 8996fe57623ded9433d6766e80a39e41a2aba1ca assets/tfmg/models/item/kerosene_bucket.json c0f668fca568bc4c35aba97d9ac93986720e501f assets/tfmg/models/item/layered_bauxite.json +ee1682c21054b9a9ffde5983141d49e8177f9a2a assets/tfmg/models/item/lead_block.json +9577774198ba4564927fc63cdfa2f61d19838c43 assets/tfmg/models/item/lead_ingot.json 46bda405310f45b8faff7d29f3e2b76b6e6d512f assets/tfmg/models/item/liquid_concrete_bucket.json 630e09bfe78ed89d966b0e78599e818ef69f56a6 assets/tfmg/models/item/liquid_plastic_bucket.json c86a836bfcf884dc13094fd908a561dd1d8f7ad8 assets/tfmg/models/item/lubrication_oil_bucket.json @@ -140,19 +187,26 @@ b652ff21ebb628809b8756d7d62644e0d2a5adfb assets/tfmg/models/item/polished_cut_ba 489528130097d6163d032483048ac41fa9da0dff assets/tfmg/models/item/polished_cut_bauxite_slab.json ac7c8f2f308145f0ae8108648cfb9fd0513987c6 assets/tfmg/models/item/polished_cut_bauxite_stairs.json 1dd75a9ca8cda0bb0237dee6b477d76823c15b8a assets/tfmg/models/item/polished_cut_bauxite_wall.json +d6cafabe2c6380ac0d2f2339a3861009de3ec989 assets/tfmg/models/item/screwdriver.json c00f7c5c7d05936bbe6a3069116c5adba5c60acf assets/tfmg/models/item/small_bauxite_bricks.json f1fffad853ccb4173ba63efaf89ce0bf112915a8 assets/tfmg/models/item/small_bauxite_brick_slab.json a1149d3ee5596f2c1038b225b0086ae1601da82c assets/tfmg/models/item/small_bauxite_brick_stairs.json 0f3f7918e41afa95cc14bc6641a7beaf36c27621 assets/tfmg/models/item/small_bauxite_brick_wall.json 57bf86df814741f846feb8be4a10afe633f51721 assets/tfmg/models/item/steel_block.json d34ca92f5288cbb5cecee06f046a072763b2926c assets/tfmg/models/item/steel_casing.json +19dcd68a6658fd8fa8466180e26cb3f6a2b2c4f1 assets/tfmg/models/item/steel_fluid_tank.json +61e64ad93db0bd29dec2221633c4552f37026784 assets/tfmg/models/item/steel_ingot.json +4fb5ba811196a402c750a379145aa0a14471ddc3 assets/tfmg/models/item/steel_pipe.json 72da5f91f1992b502e90c8fc84d654e075163eb7 assets/tfmg/models/item/thermite_grenade.json f189171410564631c6074593da126b8d13fe9f8b assets/tfmg/models/item/zinc_grenade.json 2b45163d462fba0e86bb1ac8fc299509fbe1e58d data/create/tags/blocks/casing.json 2b45163d462fba0e86bb1ac8fc299509fbe1e58d data/create/tags/items/casing.json +7126b9c40009d0396aff8161f30b6341b2b233c9 data/create/tags/items/create_ingots.json f0989952061266a02499103c1dcd9f2d7da131f5 data/forge/tags/blocks/concrete.json -c98956ac34e02a8c1c801122486771ef89fb640b data/forge/tags/blocks/storage_blocks.json +20fe475034862e222b6eb1efedf7c297d3690d8c data/forge/tags/blocks/storage_blocks.json +5f36040d029001793eb338e1a8c5d95b9abcc9b3 data/forge/tags/blocks/storage_blocks/aluminum.json 7c5615c56bb169570a061f052ebb1f5115760c16 data/forge/tags/blocks/storage_blocks/cast_iron.json +d26621b9617890011a68780cf7ab40fbb4658edc data/forge/tags/blocks/storage_blocks/lead.json 37b1c9c3ae722d8110db48015993ede3e194c0a0 data/forge/tags/blocks/storage_blocks/steel.json 72ff73d6648b7d6c8a20c50b611805e4e026ea91 data/forge/tags/items/buckets/diesel.json 07dced8cfc10e17e73d755ee5f0f4c06c4652389 data/forge/tags/items/buckets/gasoline.json @@ -161,63 +215,72 @@ a779b7e09e7de79b73efb212644edff6739da610 data/forge/tags/items/buckets/napalm.js fdf3b8fdf1975b0eee671f428803caa4e17dc5bd data/forge/tags/items/buckets/naphtha.json 5f98116af6d1d5e0324ff11449e719e7e2593c0c data/forge/tags/items/buckets/plastic.json f0989952061266a02499103c1dcd9f2d7da131f5 data/forge/tags/items/concrete.json -c98956ac34e02a8c1c801122486771ef89fb640b data/forge/tags/items/storage_blocks.json +70e609465aa949ff4acc873fb19d4afc07f79aa1 data/forge/tags/items/ingots/aluminum.json +2da28c9441f79389929080f6f31da841bbee19e7 data/forge/tags/items/ingots/cast_iron.json +6746e7b0c2ed4053e7b438c3e99e86889fa9d454 data/forge/tags/items/ingots/lead.json +db02fa414c4049eef32e5270451417518bbcec4b data/forge/tags/items/ingots/steel.json +20fe475034862e222b6eb1efedf7c297d3690d8c data/forge/tags/items/storage_blocks.json +5f36040d029001793eb338e1a8c5d95b9abcc9b3 data/forge/tags/items/storage_blocks/aluminum.json 7c5615c56bb169570a061f052ebb1f5115760c16 data/forge/tags/items/storage_blocks/cast_iron.json +d26621b9617890011a68780cf7ab40fbb4658edc data/forge/tags/items/storage_blocks/lead.json 37b1c9c3ae722d8110db48015993ede3e194c0a0 data/forge/tags/items/storage_blocks/steel.json 63c4a8d8e713db70730e766f1a10f8dd9072f98f data/minecraft/tags/blocks/azalea_root_replaceable.json -c98956ac34e02a8c1c801122486771ef89fb640b data/minecraft/tags/blocks/beacon_base_blocks.json +78dfadabc3df3a1ef277bd30f316bfa49d5e7a72 data/minecraft/tags/blocks/beacon_base_blocks.json 63c4a8d8e713db70730e766f1a10f8dd9072f98f data/minecraft/tags/blocks/dripstone_replaceable_blocks.json 63c4a8d8e713db70730e766f1a10f8dd9072f98f data/minecraft/tags/blocks/lush_ground_replaceable.json -ecfc3593fe0f3f0b5eff61fb1a2a445b16cda216 data/minecraft/tags/blocks/mineable/axe.json -40d4978927d5867ada19df5e974c7ef5c063e449 data/minecraft/tags/blocks/mineable/pickaxe.json +2acceda2af7fd542e47641315a13d98c74f9b8f0 data/minecraft/tags/blocks/mineable/axe.json +5f5b805d5f922e00dea2c543b30a5f74904169fe data/minecraft/tags/blocks/mineable/pickaxe.json 63c4a8d8e713db70730e766f1a10f8dd9072f98f data/minecraft/tags/blocks/moss_replaceable.json -c98956ac34e02a8c1c801122486771ef89fb640b data/minecraft/tags/blocks/needs_iron_tool.json -f0989952061266a02499103c1dcd9f2d7da131f5 data/minecraft/tags/blocks/needs_stone_tool.json +78dfadabc3df3a1ef277bd30f316bfa49d5e7a72 data/minecraft/tags/blocks/needs_iron_tool.json +755548d9019c1bb26a568488912ebfdf399e02d2 data/minecraft/tags/blocks/needs_stone_tool.json 193c8b45d804216ca5fe2035fa8dfc4567303500 data/minecraft/tags/blocks/slabs.json e02820ff93a8835947837b6b7e4f75b90a365ffb data/minecraft/tags/blocks/stairs.json 0472af44cb3c69aa62ace428304592aacc443045 data/minecraft/tags/blocks/walls.json 193c8b45d804216ca5fe2035fa8dfc4567303500 data/minecraft/tags/items/slabs.json e02820ff93a8835947837b6b7e4f75b90a365ffb data/minecraft/tags/items/stairs.json 0472af44cb3c69aa62ace428304592aacc443045 data/minecraft/tags/items/walls.json -7796b85e86a28b753b90089a522eca12c5722e5e data/tfmg/advancements/recipes/tfmg.base/bauxite_from_stone_types_bauxite_stonecutting.json -179e5950865e8114ff5cbe443dedf44e6c1d5342 data/tfmg/advancements/recipes/tfmg.base/bauxite_pillar_from_stone_types_bauxite_stonecutting.json -6d51fd8ca8e92f799cd57f23c50a140765f03a33 data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_bricks_from_stone_types_bauxite_stonecutting.json -d7a2186dcfe901015dfb864d6bc2a1e593cb6fb8 data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_slab.json -407deff7ee16144a9a6efcb86ca77cdcf055ba7f data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json -09436f20d637af36818da23f08da3ed751283061 data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_slab_recycling.json -9e95159b33c3f367812b110fc3b41d7639a06b94 data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_stairs.json -cb1dbc9f7ae0dec43c2b99ed5de3441e0fbf1cae data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json -4d2340e9dd2b4396beb08679fb7dbff731351054 data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_wall.json -333e4bcb2fb6ec03619cb50b802414769febb83e data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json -191eb9e001f210e9066770c14f85a59fa21c5b44 data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_from_stone_types_bauxite_stonecutting.json -8d5142bcfcaf8c9f2f07438dd570afca7d869fc2 data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_slab.json -a9d1b5e1f94d8a183a130b652941a30d20686b20 data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json -3496a79f08b1917101e2ae0761b30bb8881ef1d6 data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_slab_recycling.json -0d298e3f45dfa490498f758934c4e46d0c4dc7ea data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_stairs.json -f24b22b48cefdb0364b2a5ebc36ebac2f50b697c data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json -8fa8a9d0a53569e1375916460af9eeb8a418accb data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_wall.json -a39c72241284d1371e2e568371f8386130e40e8e data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json -d23b6f341bccb7b615b1e03516bd9962bc3712b7 data/tfmg/advancements/recipes/tfmg.base/layered_bauxite_from_stone_types_bauxite_stonecutting.json -5dfa5d101106038d8ff4bdb938c08f797863b658 data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_from_stone_types_bauxite_stonecutting.json -52e2f67c22fff610ce15e5287fe34e9723e895c5 data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_slab.json -eb598b8313ceb5a00cfc1a555438bb97fb146c20 data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json -8e18803dba6ef54e37d03d12c59dff29bd47a23f data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_slab_recycling.json -4b77e80711025164c9313111807733525c91c278 data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_stairs.json -424fe2c775d273e44706ed5d3171a8d30b6db223 data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json -59c471db3e8a0f7851d37364797b87f5a88bd601 data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_wall.json -5103d9c1ac6cdfc302e5e518a319e04165e09e6e data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json -0db112e82ea94e03bcfa3543a624214a51bb830a data/tfmg/advancements/recipes/tfmg.base/small_bauxite_bricks_from_stone_types_bauxite_stonecutting.json -a3cf7dc55ab1c4d12d91d870ff2f577153f6c79f data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_slab.json -9377c2a47ae900f4a2ad2aab8a90d520a428f9ed data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json -601255a5d63714de1ef674bca2181d5da9582730 data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_slab_recycling.json -60791a6cf32cec93bd180902ef8511d6481e5176 data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_stairs.json -d152c8826235944ea57ff042dcd0bd19e13a7c29 data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json -5fdcb4254dd2c1e8cd2651777746354e71dfc0a8 data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_wall.json -57365f0ab8f3026cc2d5ea959bab5fc2af0d0838 data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json +7796b85e86a28b753b90089a522eca12c5722e5e data/tfmg/advancements/recipes/tfmg.building/bauxite_from_stone_types_bauxite_stonecutting.json +179e5950865e8114ff5cbe443dedf44e6c1d5342 data/tfmg/advancements/recipes/tfmg.building/bauxite_pillar_from_stone_types_bauxite_stonecutting.json +6d51fd8ca8e92f799cd57f23c50a140765f03a33 data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_bricks_from_stone_types_bauxite_stonecutting.json +d7a2186dcfe901015dfb864d6bc2a1e593cb6fb8 data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_slab.json +407deff7ee16144a9a6efcb86ca77cdcf055ba7f data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json +09436f20d637af36818da23f08da3ed751283061 data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_slab_recycling.json +9e95159b33c3f367812b110fc3b41d7639a06b94 data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_stairs.json +cb1dbc9f7ae0dec43c2b99ed5de3441e0fbf1cae data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json +4d2340e9dd2b4396beb08679fb7dbff731351054 data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_wall.json +333e4bcb2fb6ec03619cb50b802414769febb83e data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json +191eb9e001f210e9066770c14f85a59fa21c5b44 data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_from_stone_types_bauxite_stonecutting.json +8d5142bcfcaf8c9f2f07438dd570afca7d869fc2 data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_slab.json +a9d1b5e1f94d8a183a130b652941a30d20686b20 data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json +3496a79f08b1917101e2ae0761b30bb8881ef1d6 data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_slab_recycling.json +0d298e3f45dfa490498f758934c4e46d0c4dc7ea data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_stairs.json +f24b22b48cefdb0364b2a5ebc36ebac2f50b697c data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json +8fa8a9d0a53569e1375916460af9eeb8a418accb data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_wall.json +a39c72241284d1371e2e568371f8386130e40e8e data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json +d23b6f341bccb7b615b1e03516bd9962bc3712b7 data/tfmg/advancements/recipes/tfmg.building/layered_bauxite_from_stone_types_bauxite_stonecutting.json +5dfa5d101106038d8ff4bdb938c08f797863b658 data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_from_stone_types_bauxite_stonecutting.json +52e2f67c22fff610ce15e5287fe34e9723e895c5 data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_slab.json +eb598b8313ceb5a00cfc1a555438bb97fb146c20 data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json +8e18803dba6ef54e37d03d12c59dff29bd47a23f data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_slab_recycling.json +4b77e80711025164c9313111807733525c91c278 data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_stairs.json +424fe2c775d273e44706ed5d3171a8d30b6db223 data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json +59c471db3e8a0f7851d37364797b87f5a88bd601 data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_wall.json +5103d9c1ac6cdfc302e5e518a319e04165e09e6e data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json +0db112e82ea94e03bcfa3543a624214a51bb830a data/tfmg/advancements/recipes/tfmg.building/small_bauxite_bricks_from_stone_types_bauxite_stonecutting.json +a3cf7dc55ab1c4d12d91d870ff2f577153f6c79f data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_slab.json +9377c2a47ae900f4a2ad2aab8a90d520a428f9ed data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json +601255a5d63714de1ef674bca2181d5da9582730 data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_slab_recycling.json +60791a6cf32cec93bd180902ef8511d6481e5176 data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_stairs.json +d152c8826235944ea57ff042dcd0bd19e13a7c29 data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json +5fdcb4254dd2c1e8cd2651777746354e71dfc0a8 data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_wall.json +57365f0ab8f3026cc2d5ea959bab5fc2af0d0838 data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json +a4b393a2526bd10fa38095ac80769f913f139889 data/tfmg/loot_tables/blocks/aluminum_block.json 56d114d40ea3160b5c06cf9cfaa2e5107543c460 data/tfmg/loot_tables/blocks/bauxite.json 473b0effd9a768189aa232855cd09e7b380c3adc data/tfmg/loot_tables/blocks/bauxite_pillar.json 60857d034446187e758de87644a80a7bc4d6b150 data/tfmg/loot_tables/blocks/cast_iron_block.json +5158b18945a39616eef93de8de61dd948fc96f0a data/tfmg/loot_tables/blocks/coal_coke_block.json d32a75f20ca3f2da6ba69b0a91e295c63f65de92 data/tfmg/loot_tables/blocks/concrete.json +1622328d319fc3c71269b0f9f1aef43a77132f3a data/tfmg/loot_tables/blocks/copper_encased_steel_pipe.json 6874888d31bcadadb4a850b75c1bc780af9de9a2 data/tfmg/loot_tables/blocks/cut_bauxite.json 4761a001dd2728c95f4c7fd34ad4842f8dc3a4d3 data/tfmg/loot_tables/blocks/cut_bauxite_bricks.json 4b13082c2a2a904970581d4887cc139cf2bb99af data/tfmg/loot_tables/blocks/cut_bauxite_brick_slab.json @@ -228,8 +291,10 @@ efba82fdf0c26dd90aacf5f604e613e29513b60e data/tfmg/loot_tables/blocks/cut_bauxit ce47c0f03819dab221e70b3d4197ac82963b47d6 data/tfmg/loot_tables/blocks/cut_bauxite_wall.json 51818c7cf522c10c409c8737fdc30a58d7560f71 data/tfmg/loot_tables/blocks/formwork_block.json fd7674b996fd961339614656498a1ff54f092bb8 data/tfmg/loot_tables/blocks/fossilstone.json +1622328d319fc3c71269b0f9f1aef43a77132f3a data/tfmg/loot_tables/blocks/glass_steel_pipe.json 661cc61f9c13ddf8c6bf06470defa93170e8ee7f data/tfmg/loot_tables/blocks/heavy_machinery_casing.json 1633b0609c1f7b71d0ccda03bdb95bf873692b18 data/tfmg/loot_tables/blocks/layered_bauxite.json +a5ecc7b7daab82db283453319f5bae9057e63e62 data/tfmg/loot_tables/blocks/lead_block.json 7da9b20012e584104331da961756d6c1d02682b5 data/tfmg/loot_tables/blocks/napalm_bomb.json 04ed0121924425d89886398da07c98277cb26100 data/tfmg/loot_tables/blocks/oil_deposit.json c8658b25761345012c9861389a95a4605380f868 data/tfmg/loot_tables/blocks/polished_cut_bauxite.json @@ -242,6 +307,8 @@ b43d1fa7a2ac0534ab2867dec787d97f205f4a8d data/tfmg/loot_tables/blocks/small_baux 47af1defc5e03a0806d8afd5f119fab420aa1da8 data/tfmg/loot_tables/blocks/small_bauxite_brick_wall.json 01298989d0fe79936cdfa1e6cc07fd05f143ae09 data/tfmg/loot_tables/blocks/steel_block.json 62cd229b00eb2c95187d1b7b8e968aa26e54c412 data/tfmg/loot_tables/blocks/steel_casing.json +da3aa200dc67d6a7bfbb0bb9e988a325fed4c670 data/tfmg/loot_tables/blocks/steel_fluid_tank.json +1622328d319fc3c71269b0f9f1aef43a77132f3a data/tfmg/loot_tables/blocks/steel_pipe.json fe8fbd529304f28f4aeb1017956f288f6e6bbe1c data/tfmg/recipes/bauxite_from_stone_types_bauxite_stonecutting.json 9bddb0ff48b335428001ae0526e41ab6d09da1c3 data/tfmg/recipes/bauxite_pillar_from_stone_types_bauxite_stonecutting.json c1d723c26e4e2eeeb46ef03e16df946309ff2650 data/tfmg/recipes/cut_bauxite_bricks_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/assets/tfmg/blockstates/aluminum_block.json b/src/generated/resources/assets/tfmg/blockstates/aluminum_block.json new file mode 100644 index 00000000..b21fa9a2 --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/aluminum_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfmg:block/aluminum_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/coal_coke_block.json b/src/generated/resources/assets/tfmg/blockstates/coal_coke_block.json new file mode 100644 index 00000000..8fb114d6 --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/coal_coke_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfmg:block/coal_coke_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/copper_encased_steel_pipe.json b/src/generated/resources/assets/tfmg/blockstates/copper_encased_steel_pipe.json new file mode 100644 index 00000000..82007811 --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/copper_encased_steel_pipe.json @@ -0,0 +1,110 @@ +{ + "multipart": [ + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_flat", + "x": -90 + }, + "when": { + "down": "false" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_flat", + "x": 90 + }, + "when": { + "up": "false" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_flat", + "y": 180 + }, + "when": { + "north": "false" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_flat" + }, + "when": { + "south": "false" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_flat", + "y": 90 + }, + "when": { + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_flat", + "y": 270 + }, + "when": { + "east": "false" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_open", + "x": -90 + }, + "when": { + "down": "true" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_open", + "x": 90 + }, + "when": { + "up": "true" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_open", + "y": 180 + }, + "when": { + "north": "true" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_open" + }, + "when": { + "south": "true" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_open", + "y": 90 + }, + "when": { + "west": "true" + } + }, + { + "apply": { + "model": "tfmg:block/copper_encased_steel_pipe/block_open", + "y": 270 + }, + "when": { + "east": "true" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/glass_steel_pipe.json b/src/generated/resources/assets/tfmg/blockstates/glass_steel_pipe.json new file mode 100644 index 00000000..ef312e5b --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/glass_steel_pipe.json @@ -0,0 +1,28 @@ +{ + "variants": { + "alt=false,axis=x": { + "model": "tfmg:block/steel_pipe/window", + "x": 90, + "y": 90 + }, + "alt=false,axis=y": { + "model": "tfmg:block/steel_pipe/window" + }, + "alt=false,axis=z": { + "model": "tfmg:block/steel_pipe/window", + "x": 90 + }, + "alt=true,axis=x": { + "model": "tfmg:block/steel_pipe/window", + "x": 90, + "y": 90 + }, + "alt=true,axis=y": { + "model": "tfmg:block/steel_pipe/window" + }, + "alt=true,axis=z": { + "model": "tfmg:block/steel_pipe/window", + "x": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/lead_block.json b/src/generated/resources/assets/tfmg/blockstates/lead_block.json new file mode 100644 index 00000000..1f65ded8 --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/lead_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfmg:block/lead_block" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/steel_fluid_tank.json b/src/generated/resources/assets/tfmg/blockstates/steel_fluid_tank.json new file mode 100644 index 00000000..8846788b --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/steel_fluid_tank.json @@ -0,0 +1,76 @@ +{ + "variants": { + "bottom=false,shape=plain,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_middle" + }, + "bottom=false,shape=plain,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_top" + }, + "bottom=false,shape=window,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_middle_window" + }, + "bottom=false,shape=window,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_top_window" + }, + "bottom=false,shape=window_ne,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_middle_window_ne" + }, + "bottom=false,shape=window_ne,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_top_window_ne" + }, + "bottom=false,shape=window_nw,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_middle_window_nw" + }, + "bottom=false,shape=window_nw,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_top_window_nw" + }, + "bottom=false,shape=window_se,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_middle_window_se" + }, + "bottom=false,shape=window_se,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_top_window_se" + }, + "bottom=false,shape=window_sw,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_middle_window_sw" + }, + "bottom=false,shape=window_sw,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_top_window_sw" + }, + "bottom=true,shape=plain,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_bottom" + }, + "bottom=true,shape=plain,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_single" + }, + "bottom=true,shape=window,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_bottom_window" + }, + "bottom=true,shape=window,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_single_window" + }, + "bottom=true,shape=window_ne,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_bottom_window_ne" + }, + "bottom=true,shape=window_ne,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_single_window_ne" + }, + "bottom=true,shape=window_nw,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_bottom_window_nw" + }, + "bottom=true,shape=window_nw,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_single_window_nw" + }, + "bottom=true,shape=window_se,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_bottom_window_se" + }, + "bottom=true,shape=window_se,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_single_window_se" + }, + "bottom=true,shape=window_sw,top=false": { + "model": "tfmg:block/steel_fluid_tank/block_bottom_window_sw" + }, + "bottom=true,shape=window_sw,top=true": { + "model": "tfmg:block/steel_fluid_tank/block_single_window_sw" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/steel_pipe.json b/src/generated/resources/assets/tfmg/blockstates/steel_pipe.json new file mode 100644 index 00000000..d9f75b9d --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/steel_pipe.json @@ -0,0 +1,334 @@ +{ + "multipart": [ + { + "apply": { + "model": "tfmg:block/steel_pipe/lu_x" + }, + "when": { + "down": "false", + "north": "false", + "south": "true", + "up": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/ru_x" + }, + "when": { + "down": "false", + "north": "true", + "south": "false", + "up": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/ld_x" + }, + "when": { + "down": "true", + "north": "false", + "south": "true", + "up": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/rd_x" + }, + "when": { + "down": "true", + "north": "true", + "south": "false", + "up": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/ud_x" + }, + "when": { + "down": "true", + "north": "false", + "south": "false", + "up": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/u_x" + }, + "when": { + "down": "false", + "north": "false", + "south": "false", + "up": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/d_x" + }, + "when": { + "down": "true", + "north": "false", + "south": "false", + "up": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/lr_x" + }, + "when": { + "down": "false", + "north": "true", + "south": "true", + "up": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/l_x" + }, + "when": { + "down": "false", + "north": "false", + "south": "true", + "up": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/r_x" + }, + "when": { + "down": "false", + "north": "true", + "south": "false", + "up": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/lu_y" + }, + "when": { + "east": "true", + "north": "false", + "south": "true", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/ru_y" + }, + "when": { + "east": "false", + "north": "false", + "south": "true", + "west": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/ld_y" + }, + "when": { + "east": "true", + "north": "true", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/rd_y" + }, + "when": { + "east": "false", + "north": "true", + "south": "false", + "west": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/ud_y" + }, + "when": { + "east": "false", + "north": "true", + "south": "true", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/u_y" + }, + "when": { + "east": "false", + "north": "false", + "south": "true", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/d_y" + }, + "when": { + "east": "false", + "north": "true", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/lr_y" + }, + "when": { + "east": "true", + "north": "false", + "south": "false", + "west": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/l_y" + }, + "when": { + "east": "true", + "north": "false", + "south": "false", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/r_y" + }, + "when": { + "east": "false", + "north": "false", + "south": "false", + "west": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/lu_z" + }, + "when": { + "down": "false", + "east": "true", + "up": "true", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/ru_z" + }, + "when": { + "down": "false", + "east": "false", + "up": "true", + "west": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/ld_z" + }, + "when": { + "down": "true", + "east": "true", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/rd_z" + }, + "when": { + "down": "true", + "east": "false", + "up": "false", + "west": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/ud_z" + }, + "when": { + "down": "true", + "east": "false", + "up": "true", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/u_z" + }, + "when": { + "down": "false", + "east": "false", + "up": "true", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/d_z" + }, + "when": { + "down": "true", + "east": "false", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/lr_z" + }, + "when": { + "down": "false", + "east": "true", + "up": "false", + "west": "true" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/l_z" + }, + "when": { + "down": "false", + "east": "true", + "up": "false", + "west": "false" + } + }, + { + "apply": { + "model": "tfmg:block/steel_pipe/r_z" + }, + "when": { + "down": "false", + "east": "false", + "up": "false", + "west": "true" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/lang/en_ud.json b/src/generated/resources/assets/tfmg/lang/en_ud.json index dd1ad73b..278ab131 100644 --- a/src/generated/resources/assets/tfmg/lang/en_ud.json +++ b/src/generated/resources/assets/tfmg/lang/en_ud.json @@ -1,9 +1,12 @@ { + "block.tfmg.aluminum_block": "ɯnuıɯnןⱯ ɟo ʞɔoןᗺ", "block.tfmg.bauxite": "ǝʇıxnɐᗺ", "block.tfmg.bauxite_pillar": "ɹɐןןıԀ ǝʇıxnɐᗺ", "block.tfmg.cast_iron_block": "uoɹI ʇsɐƆ ɟo ʞɔoןᗺ", + "block.tfmg.coal_coke_block": "ǝʞoƆ ןɐoƆ ɟo ʞɔoןᗺ", "block.tfmg.concrete": "ǝʇǝɹɔuoƆ", "block.tfmg.cooling_fluid": "pınןℲ buıןooƆ", + "block.tfmg.copper_encased_steel_pipe": "ǝdıԀ ןǝǝʇS pǝsɐɔuƎ ɹǝddoƆ", "block.tfmg.creosote": "ǝʇosoǝɹƆ", "block.tfmg.crude_oil_fluid": "pınןℲ ןıO ǝpnɹƆ", "block.tfmg.cut_bauxite": "ǝʇıxnɐᗺ ʇnƆ", @@ -18,10 +21,12 @@ "block.tfmg.formwork_block": "ʞɔoןᗺ ʞɹoʍɯɹoℲ", "block.tfmg.fossilstone": "ǝuoʇsןıssoℲ", "block.tfmg.gasoline": "ǝuıןosɐ⅁", + "block.tfmg.glass_steel_pipe": "ǝdıԀ ןǝǝʇS ssɐן⅁", "block.tfmg.heavy_machinery_casing": "buısɐƆ ʎɹǝuıɥɔɐW ʎʌɐǝH", "block.tfmg.heavy_oil": "ןıO ʎʌɐǝH", "block.tfmg.kerosene": "ǝuǝsoɹǝʞ", "block.tfmg.layered_bauxite": "ǝʇıxnɐᗺ pǝɹǝʎɐꞀ", + "block.tfmg.lead_block": "pɐǝꞀ ɟo ʞɔoןᗺ", "block.tfmg.liquid_concrete": "ǝʇǝɹɔuoƆ pınbıꞀ", "block.tfmg.liquid_plastic": "ɔıʇsɐןԀ pınbıꞀ", "block.tfmg.lubrication_oil": "ןıO uoıʇɐɔıɹqnꞀ", @@ -39,6 +44,8 @@ "block.tfmg.small_bauxite_bricks": "sʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS", "block.tfmg.steel_block": "ןǝǝʇS ɟo ʞɔoןᗺ", "block.tfmg.steel_casing": "buısɐƆ ןǝǝʇS", + "block.tfmg.steel_fluid_tank": "ʞuɐ⟘ pınןℲ ןǝǝʇS", + "block.tfmg.steel_pipe": "ǝdıԀ ןǝǝʇS", "entity.tfmg.blue_spark": "ʞɹɐdS ǝnןᗺ", "entity.tfmg.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ", "entity.tfmg.green_spark": "ʞɹɐdS uǝǝɹ⅁", @@ -64,6 +71,9 @@ "fluid.tfmg.naphtha": "ɐɥʇɥdɐN", "fluid.tfmg.propane": "ǝuɐdoɹԀ", "fluid.tfmg.propylene": "ǝuǝןʎdoɹԀ", + "item.tfmg.aluminum_ingot": "ʇobuI ɯnuıɯnןⱯ", + "item.tfmg.cast_iron_ingot": "ʇobuI uoɹI ʇsɐƆ", + "item.tfmg.coal_coke": "ǝʞoƆ ןɐoƆ", "item.tfmg.cooling_fluid_bucket": "ʇǝʞɔnᗺ pınןℲ buıןooƆ", "item.tfmg.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ", "item.tfmg.creosote_bucket": "ʇǝʞɔnᗺ ǝʇosoǝɹƆ", @@ -72,11 +82,14 @@ "item.tfmg.gasoline_bucket": "ʇǝʞɔnᗺ ǝuıןosɐ⅁", "item.tfmg.heavy_oil_bucket": "ʇǝʞɔnᗺ ןıO ʎʌɐǝH", "item.tfmg.kerosene_bucket": "ʇǝʞɔnᗺ ǝuǝsoɹǝʞ", + "item.tfmg.lead_ingot": "ʇobuI pɐǝꞀ", "item.tfmg.liquid_concrete_bucket": "ʇǝʞɔnᗺ ǝʇǝɹɔuoƆ pınbıꞀ", "item.tfmg.liquid_plastic_bucket": "ʇǝʞɔnᗺ ɔıʇsɐןԀ pınbıꞀ", "item.tfmg.lubrication_oil_bucket": "ʇǝʞɔnᗺ ןıO uoıʇɐɔıɹqnꞀ", "item.tfmg.napalm_bucket": "ʇǝʞɔnᗺ ɯןɐdɐN", "item.tfmg.naphtha_bucket": "ʇǝʞɔnᗺ ɐɥʇɥdɐN", + "item.tfmg.screwdriver": "ɹǝʌıɹpʍǝɹɔS", + "item.tfmg.steel_ingot": "ʇobuI ןǝǝʇS", "item.tfmg.thermite_grenade": "ǝpɐuǝɹ⅁ ǝʇıɯɹǝɥ⟘", "item.tfmg.zinc_grenade": "ǝpɐuǝɹ⅁ ɔuıZ" } \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/lang/en_us.json b/src/generated/resources/assets/tfmg/lang/en_us.json index 7c590b96..5c04d2c3 100644 --- a/src/generated/resources/assets/tfmg/lang/en_us.json +++ b/src/generated/resources/assets/tfmg/lang/en_us.json @@ -2,11 +2,14 @@ "_": "->------------------------] Game Elements [------------------------<-", + "block.tfmg.aluminum_block": "Block of Aluminum", "block.tfmg.bauxite": "Bauxite", "block.tfmg.bauxite_pillar": "Bauxite Pillar", "block.tfmg.cast_iron_block": "Block of Cast Iron", + "block.tfmg.coal_coke_block": "Block of Coal Coke", "block.tfmg.concrete": "Concrete", "block.tfmg.cooling_fluid": "Cooling Fluid", + "block.tfmg.copper_encased_steel_pipe": "Copper Encased Steel Pipe", "block.tfmg.creosote": "Creosote", "block.tfmg.crude_oil_fluid": "Crude Oil Fluid", "block.tfmg.cut_bauxite": "Cut Bauxite", @@ -21,10 +24,12 @@ "block.tfmg.formwork_block": "Formwork Block", "block.tfmg.fossilstone": "Fossilstone", "block.tfmg.gasoline": "Gasoline", + "block.tfmg.glass_steel_pipe": "Glass Steel Pipe", "block.tfmg.heavy_machinery_casing": "Heavy Machinery Casing", "block.tfmg.heavy_oil": "Heavy Oil", "block.tfmg.kerosene": "Kerosene", "block.tfmg.layered_bauxite": "Layered Bauxite", + "block.tfmg.lead_block": "Block of Lead", "block.tfmg.liquid_concrete": "Liquid Concrete", "block.tfmg.liquid_plastic": "Liquid Plastic", "block.tfmg.lubrication_oil": "Lubrication Oil", @@ -42,6 +47,8 @@ "block.tfmg.small_bauxite_bricks": "Small Bauxite Bricks", "block.tfmg.steel_block": "Block of Steel", "block.tfmg.steel_casing": "Steel Casing", + "block.tfmg.steel_fluid_tank": "Steel Fluid Tank", + "block.tfmg.steel_pipe": "Steel Pipe", "entity.tfmg.blue_spark": "Blue Spark", "entity.tfmg.copper_grenade": "Copper Grenade", @@ -70,6 +77,9 @@ "fluid.tfmg.propane": "Propane", "fluid.tfmg.propylene": "Propylene", + "item.tfmg.aluminum_ingot": "Aluminum Ingot", + "item.tfmg.cast_iron_ingot": "Cast Iron Ingot", + "item.tfmg.coal_coke": "Coal Coke", "item.tfmg.cooling_fluid_bucket": "Cooling Fluid Bucket", "item.tfmg.copper_grenade": "Copper Grenade", "item.tfmg.creosote_bucket": "Creosote Bucket", @@ -78,11 +88,14 @@ "item.tfmg.gasoline_bucket": "Gasoline Bucket", "item.tfmg.heavy_oil_bucket": "Heavy Oil Bucket", "item.tfmg.kerosene_bucket": "Kerosene Bucket", + "item.tfmg.lead_ingot": "Lead Ingot", "item.tfmg.liquid_concrete_bucket": "Liquid Concrete Bucket", "item.tfmg.liquid_plastic_bucket": "Liquid Plastic Bucket", "item.tfmg.lubrication_oil_bucket": "Lubrication Oil Bucket", "item.tfmg.napalm_bucket": "Napalm Bucket", "item.tfmg.naphtha_bucket": "Naphtha Bucket", + "item.tfmg.screwdriver": "Screwdriver", + "item.tfmg.steel_ingot": "Steel Ingot", "item.tfmg.thermite_grenade": "Thermite Grenade", "item.tfmg.zinc_grenade": "Zinc Grenade", @@ -90,7 +103,7 @@ "_": "->------------------------] UI & Messages [------------------------<-", "itemGroup.tfmg.base": "Create: The Factory Must Grow", - "itemGroup.tfmg.concrete": "Create: TFMG's Concrete", + "itemGroup.tfmg.building": "Create: TFMG's Building Blocks", "_": "Thank you for translating Create: The Factory Must Grow!" diff --git a/src/generated/resources/assets/tfmg/models/block/aluminum_block.json b/src/generated/resources/assets/tfmg/models/block/aluminum_block.json new file mode 100644 index 00000000..68aa4ce2 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/aluminum_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfmg:block/aluminum_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/coal_coke_block.json b/src/generated/resources/assets/tfmg/models/block/coal_coke_block.json new file mode 100644 index 00000000..9ac3c665 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/coal_coke_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfmg:block/coal_coke_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/lead_block.json b/src/generated/resources/assets/tfmg/models/block/lead_block.json new file mode 100644 index 00000000..f2df53ed --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/lead_block.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfmg:block/lead_block" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/d_x.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/d_x.json new file mode 100644 index 00000000..e70a51de --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/d_x.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_x", + "elements": [ + { + "faces": { + "east": { + "texture": "#0", + "uv": [ + 0.0, + 0.0, + 4.0, + 4.0 + ] + }, + "west": { + "texture": "#0", + "uv": [ + 4.0, + 0.0, + 0.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/d_y.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/d_y.json new file mode 100644 index 00000000..79254d06 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/d_y.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_y", + "elements": [ + { + "faces": { + "down": { + "texture": "#0", + "uv": [ + 4.0, + 0.0, + 0.0, + 4.0 + ] + }, + "up": { + "texture": "#0", + "uv": [ + 4.0, + 4.0, + 0.0, + 0.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/d_z.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/d_z.json new file mode 100644 index 00000000..7649c962 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/d_z.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_z", + "elements": [ + { + "faces": { + "north": { + "texture": "#0", + "uv": [ + 0.0, + 0.0, + 4.0, + 4.0 + ] + }, + "south": { + "texture": "#0", + "uv": [ + 4.0, + 0.0, + 0.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/l_x.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/l_x.json new file mode 100644 index 00000000..9ef1acaa --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/l_x.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_x", + "elements": [ + { + "faces": { + "east": { + "texture": "#0", + "uv": [ + 4.0, + 0.0, + 8.0, + 4.0 + ] + }, + "west": { + "texture": "#0", + "uv": [ + 8.0, + 0.0, + 4.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/l_y.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/l_y.json new file mode 100644 index 00000000..60f9672c --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/l_y.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_y", + "elements": [ + { + "faces": { + "down": { + "texture": "#0", + "uv": [ + 8.0, + 0.0, + 4.0, + 4.0 + ] + }, + "up": { + "texture": "#0", + "uv": [ + 8.0, + 4.0, + 4.0, + 0.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/l_z.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/l_z.json new file mode 100644 index 00000000..4209dcd8 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/l_z.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_z", + "elements": [ + { + "faces": { + "north": { + "texture": "#0", + "uv": [ + 4.0, + 0.0, + 8.0, + 4.0 + ] + }, + "south": { + "texture": "#0", + "uv": [ + 8.0, + 0.0, + 4.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/ld_x.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ld_x.json new file mode 100644 index 00000000..102984af --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ld_x.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_x", + "elements": [ + { + "faces": { + "east": { + "texture": "#0", + "uv": [ + 12.0, + 0.0, + 16.0, + 4.0 + ] + }, + "west": { + "texture": "#0", + "uv": [ + 16.0, + 0.0, + 12.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/ld_y.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ld_y.json new file mode 100644 index 00000000..8f4a73e8 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ld_y.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_y", + "elements": [ + { + "faces": { + "down": { + "texture": "#0", + "uv": [ + 16.0, + 0.0, + 12.0, + 4.0 + ] + }, + "up": { + "texture": "#0", + "uv": [ + 16.0, + 4.0, + 12.0, + 0.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/ld_z.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ld_z.json new file mode 100644 index 00000000..d28fc2e8 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ld_z.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_z", + "elements": [ + { + "faces": { + "north": { + "texture": "#0", + "uv": [ + 12.0, + 0.0, + 16.0, + 4.0 + ] + }, + "south": { + "texture": "#0", + "uv": [ + 16.0, + 0.0, + 12.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/lr_x.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lr_x.json new file mode 100644 index 00000000..df57ae6b --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lr_x.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_x", + "elements": [ + { + "faces": { + "east": { + "texture": "#0", + "uv": [ + 4.0, + 8.0, + 8.0, + 12.0 + ] + }, + "west": { + "texture": "#0", + "uv": [ + 8.0, + 8.0, + 4.0, + 12.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/lr_y.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lr_y.json new file mode 100644 index 00000000..8aa7dadc --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lr_y.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_y", + "elements": [ + { + "faces": { + "down": { + "texture": "#0", + "uv": [ + 8.0, + 8.0, + 4.0, + 12.0 + ] + }, + "up": { + "texture": "#0", + "uv": [ + 8.0, + 12.0, + 4.0, + 8.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/lr_z.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lr_z.json new file mode 100644 index 00000000..d5f321ac --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lr_z.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_z", + "elements": [ + { + "faces": { + "north": { + "texture": "#0", + "uv": [ + 4.0, + 8.0, + 8.0, + 12.0 + ] + }, + "south": { + "texture": "#0", + "uv": [ + 8.0, + 8.0, + 4.0, + 12.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/lu_x.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lu_x.json new file mode 100644 index 00000000..5bbe6940 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lu_x.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_x", + "elements": [ + { + "faces": { + "east": { + "texture": "#0", + "uv": [ + 12.0, + 4.0, + 16.0, + 8.0 + ] + }, + "west": { + "texture": "#0", + "uv": [ + 16.0, + 4.0, + 12.0, + 8.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/lu_y.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lu_y.json new file mode 100644 index 00000000..0bed187d --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lu_y.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_y", + "elements": [ + { + "faces": { + "down": { + "texture": "#0", + "uv": [ + 16.0, + 4.0, + 12.0, + 8.0 + ] + }, + "up": { + "texture": "#0", + "uv": [ + 16.0, + 8.0, + 12.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/lu_z.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lu_z.json new file mode 100644 index 00000000..555177a5 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/lu_z.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_z", + "elements": [ + { + "faces": { + "north": { + "texture": "#0", + "uv": [ + 12.0, + 4.0, + 16.0, + 8.0 + ] + }, + "south": { + "texture": "#0", + "uv": [ + 16.0, + 4.0, + 12.0, + 8.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/r_x.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/r_x.json new file mode 100644 index 00000000..c1c2541f --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/r_x.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_x", + "elements": [ + { + "faces": { + "east": { + "texture": "#0", + "uv": [ + 0.0, + 4.0, + 4.0, + 8.0 + ] + }, + "west": { + "texture": "#0", + "uv": [ + 4.0, + 4.0, + 0.0, + 8.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/r_y.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/r_y.json new file mode 100644 index 00000000..c33f59e2 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/r_y.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_y", + "elements": [ + { + "faces": { + "down": { + "texture": "#0", + "uv": [ + 4.0, + 4.0, + 0.0, + 8.0 + ] + }, + "up": { + "texture": "#0", + "uv": [ + 4.0, + 8.0, + 0.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/r_z.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/r_z.json new file mode 100644 index 00000000..cd5f123a --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/r_z.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_z", + "elements": [ + { + "faces": { + "north": { + "texture": "#0", + "uv": [ + 0.0, + 4.0, + 4.0, + 8.0 + ] + }, + "south": { + "texture": "#0", + "uv": [ + 4.0, + 4.0, + 0.0, + 8.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/rd_x.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/rd_x.json new file mode 100644 index 00000000..ec78102c --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/rd_x.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_x", + "elements": [ + { + "faces": { + "east": { + "texture": "#0", + "uv": [ + 8.0, + 0.0, + 12.0, + 4.0 + ] + }, + "west": { + "texture": "#0", + "uv": [ + 12.0, + 0.0, + 8.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/rd_y.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/rd_y.json new file mode 100644 index 00000000..291bf140 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/rd_y.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_y", + "elements": [ + { + "faces": { + "down": { + "texture": "#0", + "uv": [ + 12.0, + 0.0, + 8.0, + 4.0 + ] + }, + "up": { + "texture": "#0", + "uv": [ + 12.0, + 4.0, + 8.0, + 0.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/rd_z.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/rd_z.json new file mode 100644 index 00000000..a23dcc4a --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/rd_z.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_z", + "elements": [ + { + "faces": { + "north": { + "texture": "#0", + "uv": [ + 8.0, + 0.0, + 12.0, + 4.0 + ] + }, + "south": { + "texture": "#0", + "uv": [ + 12.0, + 0.0, + 8.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/ru_x.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ru_x.json new file mode 100644 index 00000000..24260f4a --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ru_x.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_x", + "elements": [ + { + "faces": { + "east": { + "texture": "#0", + "uv": [ + 8.0, + 4.0, + 12.0, + 8.0 + ] + }, + "west": { + "texture": "#0", + "uv": [ + 12.0, + 4.0, + 8.0, + 8.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/ru_y.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ru_y.json new file mode 100644 index 00000000..b545e76f --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ru_y.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_y", + "elements": [ + { + "faces": { + "down": { + "texture": "#0", + "uv": [ + 12.0, + 4.0, + 8.0, + 8.0 + ] + }, + "up": { + "texture": "#0", + "uv": [ + 12.0, + 8.0, + 8.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/ru_z.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ru_z.json new file mode 100644 index 00000000..9e96bd4d --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ru_z.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_z", + "elements": [ + { + "faces": { + "north": { + "texture": "#0", + "uv": [ + 8.0, + 4.0, + 12.0, + 8.0 + ] + }, + "south": { + "texture": "#0", + "uv": [ + 12.0, + 4.0, + 8.0, + 8.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/u_x.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/u_x.json new file mode 100644 index 00000000..c6429090 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/u_x.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_x", + "elements": [ + { + "faces": { + "east": { + "texture": "#0", + "uv": [ + 4.0, + 4.0, + 8.0, + 8.0 + ] + }, + "west": { + "texture": "#0", + "uv": [ + 8.0, + 4.0, + 4.0, + 8.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/u_y.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/u_y.json new file mode 100644 index 00000000..202ecacd --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/u_y.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_y", + "elements": [ + { + "faces": { + "down": { + "texture": "#0", + "uv": [ + 8.0, + 4.0, + 4.0, + 8.0 + ] + }, + "up": { + "texture": "#0", + "uv": [ + 8.0, + 8.0, + 4.0, + 4.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/u_z.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/u_z.json new file mode 100644 index 00000000..d6f65cb7 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/u_z.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_z", + "elements": [ + { + "faces": { + "north": { + "texture": "#0", + "uv": [ + 4.0, + 4.0, + 8.0, + 8.0 + ] + }, + "south": { + "texture": "#0", + "uv": [ + 8.0, + 4.0, + 4.0, + 8.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/ud_x.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ud_x.json new file mode 100644 index 00000000..1d6b8bad --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ud_x.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_x", + "elements": [ + { + "faces": { + "east": { + "texture": "#0", + "uv": [ + 0.0, + 8.0, + 4.0, + 12.0 + ] + }, + "west": { + "texture": "#0", + "uv": [ + 4.0, + 8.0, + 0.0, + 12.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/ud_y.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ud_y.json new file mode 100644 index 00000000..531428d6 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ud_y.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_y", + "elements": [ + { + "faces": { + "down": { + "texture": "#0", + "uv": [ + 4.0, + 8.0, + 0.0, + 12.0 + ] + }, + "up": { + "texture": "#0", + "uv": [ + 4.0, + 12.0, + 0.0, + 8.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/steel_pipe/ud_z.json b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ud_z.json new file mode 100644 index 00000000..7d922c4d --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/steel_pipe/ud_z.json @@ -0,0 +1,37 @@ +{ + "parent": "tfmg:block/steel_pipe/core_z", + "elements": [ + { + "faces": { + "north": { + "texture": "#0", + "uv": [ + 0.0, + 8.0, + 4.0, + 12.0 + ] + }, + "south": { + "texture": "#0", + "uv": [ + 4.0, + 8.0, + 0.0, + 12.0 + ] + } + }, + "from": [ + 4, + 4, + 4 + ], + "to": [ + 12, + 12, + 12 + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/aluminum_block.json b/src/generated/resources/assets/tfmg/models/item/aluminum_block.json new file mode 100644 index 00000000..9bb82c17 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/aluminum_block.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/aluminum_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/aluminum_ingot.json b/src/generated/resources/assets/tfmg/models/item/aluminum_ingot.json new file mode 100644 index 00000000..583c3a64 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/aluminum_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfmg:item/aluminum_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/cast_iron_ingot.json b/src/generated/resources/assets/tfmg/models/item/cast_iron_ingot.json new file mode 100644 index 00000000..353747f9 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/cast_iron_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfmg:item/cast_iron_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/coal_coke.json b/src/generated/resources/assets/tfmg/models/item/coal_coke.json new file mode 100644 index 00000000..0f4827ec --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/coal_coke.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfmg:item/coal_coke" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/coal_coke_block.json b/src/generated/resources/assets/tfmg/models/item/coal_coke_block.json new file mode 100644 index 00000000..332caee7 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/coal_coke_block.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/coal_coke_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/lead_block.json b/src/generated/resources/assets/tfmg/models/item/lead_block.json new file mode 100644 index 00000000..5946bfaa --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/lead_block.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/lead_block" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/lead_ingot.json b/src/generated/resources/assets/tfmg/models/item/lead_ingot.json new file mode 100644 index 00000000..2d95461e --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/lead_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfmg:item/lead_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/screwdriver.json b/src/generated/resources/assets/tfmg/models/item/screwdriver.json new file mode 100644 index 00000000..b7ec5704 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/screwdriver.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfmg:item/screwdriver" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/steel_fluid_tank.json b/src/generated/resources/assets/tfmg/models/item/steel_fluid_tank.json new file mode 100644 index 00000000..06dfc437 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/steel_fluid_tank.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/steel_fluid_tank/block_single_window" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/steel_ingot.json b/src/generated/resources/assets/tfmg/models/item/steel_ingot.json new file mode 100644 index 00000000..4c02092e --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/steel_ingot.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "tfmg:item/steel_ingot" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/steel_pipe.json b/src/generated/resources/assets/tfmg/models/item/steel_pipe.json new file mode 100644 index 00000000..2fe21a63 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/steel_pipe.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/steel_pipe/item" +} \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/items/create_ingots.json b/src/generated/resources/data/create/tags/items/create_ingots.json new file mode 100644 index 00000000..9eb456e2 --- /dev/null +++ b/src/generated/resources/data/create/tags/items/create_ingots.json @@ -0,0 +1,8 @@ +{ + "values": [ + "tfmg:steel_ingot", + "tfmg:cast_iron_ingot", + "tfmg:aluminum_ingot", + "tfmg:lead_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/storage_blocks.json b/src/generated/resources/data/forge/tags/blocks/storage_blocks.json index 45444180..145dd34c 100644 --- a/src/generated/resources/data/forge/tags/blocks/storage_blocks.json +++ b/src/generated/resources/data/forge/tags/blocks/storage_blocks.json @@ -1,6 +1,9 @@ { "values": [ "tfmg:steel_block", - "tfmg:cast_iron_block" + "tfmg:cast_iron_block", + "tfmg:aluminum_block", + "tfmg:lead_block", + "tfmg:coal_coke_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/storage_blocks/aluminum.json b/src/generated/resources/data/forge/tags/blocks/storage_blocks/aluminum.json new file mode 100644 index 00000000..a88e7648 --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/storage_blocks/aluminum.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tfmg:aluminum_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/blocks/storage_blocks/lead.json b/src/generated/resources/data/forge/tags/blocks/storage_blocks/lead.json new file mode 100644 index 00000000..aac1dd9c --- /dev/null +++ b/src/generated/resources/data/forge/tags/blocks/storage_blocks/lead.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tfmg:lead_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ingots/aluminum.json b/src/generated/resources/data/forge/tags/items/ingots/aluminum.json new file mode 100644 index 00000000..3afcf4a8 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ingots/aluminum.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tfmg:aluminum_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ingots/cast_iron.json b/src/generated/resources/data/forge/tags/items/ingots/cast_iron.json new file mode 100644 index 00000000..92e52e31 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ingots/cast_iron.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tfmg:cast_iron_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ingots/lead.json b/src/generated/resources/data/forge/tags/items/ingots/lead.json new file mode 100644 index 00000000..5b822dc6 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ingots/lead.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tfmg:lead_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/ingots/steel.json b/src/generated/resources/data/forge/tags/items/ingots/steel.json new file mode 100644 index 00000000..be70e8ef --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/ingots/steel.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tfmg:steel_ingot" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/storage_blocks.json b/src/generated/resources/data/forge/tags/items/storage_blocks.json index 45444180..145dd34c 100644 --- a/src/generated/resources/data/forge/tags/items/storage_blocks.json +++ b/src/generated/resources/data/forge/tags/items/storage_blocks.json @@ -1,6 +1,9 @@ { "values": [ "tfmg:steel_block", - "tfmg:cast_iron_block" + "tfmg:cast_iron_block", + "tfmg:aluminum_block", + "tfmg:lead_block", + "tfmg:coal_coke_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/storage_blocks/aluminum.json b/src/generated/resources/data/forge/tags/items/storage_blocks/aluminum.json new file mode 100644 index 00000000..a88e7648 --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/storage_blocks/aluminum.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tfmg:aluminum_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/forge/tags/items/storage_blocks/lead.json b/src/generated/resources/data/forge/tags/items/storage_blocks/lead.json new file mode 100644 index 00000000..aac1dd9c --- /dev/null +++ b/src/generated/resources/data/forge/tags/items/storage_blocks/lead.json @@ -0,0 +1,5 @@ +{ + "values": [ + "tfmg:lead_block" + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json b/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json index 45444180..3701f39f 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json +++ b/src/generated/resources/data/minecraft/tags/blocks/beacon_base_blocks.json @@ -1,6 +1,8 @@ { "values": [ "tfmg:steel_block", - "tfmg:cast_iron_block" + "tfmg:cast_iron_block", + "tfmg:aluminum_block", + "tfmg:lead_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json index 2fb68493..74f42144 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -2,6 +2,7 @@ "values": [ "tfmg:steel_casing", "tfmg:heavy_machinery_casing", - "tfmg:formwork_block" + "tfmg:formwork_block", + "tfmg:copper_encased_steel_pipe" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index 285cdfcd..a0c9f42d 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -5,8 +5,15 @@ "tfmg:oil_deposit", "tfmg:steel_casing", "tfmg:heavy_machinery_casing", + "tfmg:steel_pipe", + "tfmg:copper_encased_steel_pipe", + "tfmg:glass_steel_pipe", + "tfmg:steel_fluid_tank", "tfmg:steel_block", "tfmg:cast_iron_block", + "tfmg:aluminum_block", + "tfmg:lead_block", + "tfmg:coal_coke_block", "tfmg:concrete", "tfmg:bauxite", "tfmg:cut_bauxite", diff --git a/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json b/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json index 45444180..3701f39f 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json +++ b/src/generated/resources/data/minecraft/tags/blocks/needs_iron_tool.json @@ -1,6 +1,8 @@ { "values": [ "tfmg:steel_block", - "tfmg:cast_iron_block" + "tfmg:cast_iron_block", + "tfmg:aluminum_block", + "tfmg:lead_block" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json b/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json index b10436bf..8b26f0bb 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json +++ b/src/generated/resources/data/minecraft/tags/blocks/needs_stone_tool.json @@ -1,5 +1,6 @@ { "values": [ + "tfmg:coal_coke_block", "tfmg:concrete" ] } \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/bauxite_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/bauxite_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/bauxite_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/bauxite_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/bauxite_pillar_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/bauxite_pillar_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/bauxite_pillar_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/bauxite_pillar_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_slab.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_slab.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_slab.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_slab.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_slab_recycling.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_slab_recycling.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_slab_recycling.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_slab_recycling.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_stairs.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_stairs.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_stairs.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_stairs.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_wall.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_wall.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_wall.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_wall.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_bricks_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_bricks_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_bricks_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_bricks_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_slab.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_slab.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_slab.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_slab.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_slab_recycling.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_slab_recycling.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_slab_recycling.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_slab_recycling.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_stairs.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_stairs.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_stairs.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_stairs.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_wall.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_wall.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_wall.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_wall.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/layered_bauxite_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/layered_bauxite_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/layered_bauxite_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/layered_bauxite_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_slab.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_slab.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_slab.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_slab.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_slab_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_slab_recycling.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_slab_recycling.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_slab_recycling.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_slab_recycling.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_stairs.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_stairs.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_stairs.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_stairs.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_stairs_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_wall.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_wall.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_wall.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_wall.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/polished_cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/polished_cut_bauxite_wall_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_slab.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_slab.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_slab.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_slab.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_slab_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_slab_recycling.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_slab_recycling.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_slab_recycling.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_slab_recycling.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_stairs.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_stairs.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_stairs.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_stairs.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_stairs_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_wall.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_wall.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_wall.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_wall.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_brick_wall_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_bricks_from_stone_types_bauxite_stonecutting.json b/src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_bricks_from_stone_types_bauxite_stonecutting.json similarity index 100% rename from src/generated/resources/data/tfmg/advancements/recipes/tfmg.base/small_bauxite_bricks_from_stone_types_bauxite_stonecutting.json rename to src/generated/resources/data/tfmg/advancements/recipes/tfmg.building/small_bauxite_bricks_from_stone_types_bauxite_stonecutting.json diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/aluminum_block.json b/src/generated/resources/data/tfmg/loot_tables/blocks/aluminum_block.json new file mode 100644 index 00000000..2bd4316a --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/aluminum_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tfmg:aluminum_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/coal_coke_block.json b/src/generated/resources/data/tfmg/loot_tables/blocks/coal_coke_block.json new file mode 100644 index 00000000..f49f85be --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/coal_coke_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tfmg:coal_coke_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/copper_encased_steel_pipe.json b/src/generated/resources/data/tfmg/loot_tables/blocks/copper_encased_steel_pipe.json new file mode 100644 index 00000000..c0b2ed94 --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/copper_encased_steel_pipe.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tfmg:steel_pipe" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/glass_steel_pipe.json b/src/generated/resources/data/tfmg/loot_tables/blocks/glass_steel_pipe.json new file mode 100644 index 00000000..c0b2ed94 --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/glass_steel_pipe.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tfmg:steel_pipe" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/lead_block.json b/src/generated/resources/data/tfmg/loot_tables/blocks/lead_block.json new file mode 100644 index 00000000..b3f5d7f4 --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/lead_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tfmg:lead_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/steel_fluid_tank.json b/src/generated/resources/data/tfmg/loot_tables/blocks/steel_fluid_tank.json new file mode 100644 index 00000000..c4c35bcb --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/steel_fluid_tank.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tfmg:steel_fluid_tank" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/steel_pipe.json b/src/generated/resources/data/tfmg/loot_tables/blocks/steel_pipe.json new file mode 100644 index 00000000..c0b2ed94 --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/steel_pipe.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tfmg:steel_pipe" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/tfmg/base/TFMGBlockStateGen.java b/src/main/java/com/drmangotea/tfmg/base/TFMGBlockStateGen.java new file mode 100644 index 00000000..2cbae161 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/base/TFMGBlockStateGen.java @@ -0,0 +1,27 @@ +package com.drmangotea.tfmg.base; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; +import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; +import com.simibubi.create.foundation.utility.Iterate; +import com.simibubi.create.foundation.utility.Pointing; +import com.tterrag.registrate.providers.DataGenContext; +import com.tterrag.registrate.providers.RegistrateBlockstateProvider; +import com.tterrag.registrate.util.nullness.NonNullBiConsumer; +import net.minecraft.core.Direction; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraftforge.client.model.generators.ModelFile; +import net.minecraftforge.client.model.generators.MultiPartBlockStateBuilder; +import org.apache.commons.lang3.tuple.Pair; + +import java.util.HashMap; +import java.util.IdentityHashMap; +import java.util.List; +import java.util.Map; + +public class TFMGBlockStateGen { + + +} diff --git a/src/main/java/com/drmangotea/tfmg/base/creative_mode_tabs/ConcreteCreativeModeTab.java b/src/main/java/com/drmangotea/tfmg/base/creative_mode_tabs/BuldingCreativeModeTab.java similarity index 51% rename from src/main/java/com/drmangotea/tfmg/base/creative_mode_tabs/ConcreteCreativeModeTab.java rename to src/main/java/com/drmangotea/tfmg/base/creative_mode_tabs/BuldingCreativeModeTab.java index 52f43e98..e29f03d2 100644 --- a/src/main/java/com/drmangotea/tfmg/base/creative_mode_tabs/ConcreteCreativeModeTab.java +++ b/src/main/java/com/drmangotea/tfmg/base/creative_mode_tabs/BuldingCreativeModeTab.java @@ -1,15 +1,14 @@ package com.drmangotea.tfmg.base.creative_mode_tabs; +import com.drmangotea.tfmg.registry.TFMGBlocks; import com.drmangotea.tfmg.registry.TFMGItems; -import com.simibubi.create.content.decoration.palettes.AllPaletteBlocks; -import com.simibubi.create.infrastructure.item.CreateCreativeModeTab; import net.minecraft.core.NonNullList; import net.minecraft.world.item.ItemStack; -public class ConcreteCreativeModeTab extends TFMGCreativeModeTab { - public ConcreteCreativeModeTab() { - super("concrete"); +public class BuldingCreativeModeTab extends TFMGCreativeModeTab { + public BuldingCreativeModeTab() { + super("building"); } @Override @@ -18,6 +17,6 @@ public class ConcreteCreativeModeTab extends TFMGCreativeModeTab { @Override public ItemStack makeIcon() { - return TFMGItems.COPPER_GRENADE.asStack(); + return TFMGBlocks.CONCRETE.asStack(); } } diff --git a/src/main/java/com/drmangotea/tfmg/content/fluids/BurnableFluid.java b/src/main/java/com/drmangotea/tfmg/content/fluids/BurnableFluid.java index cb4dcd42..5722edde 100644 --- a/src/main/java/com/drmangotea/tfmg/content/fluids/BurnableFluid.java +++ b/src/main/java/com/drmangotea/tfmg/content/fluids/BurnableFluid.java @@ -9,6 +9,10 @@ import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.FluidState; import net.minecraftforge.fluids.ForgeFlowingFluid; +/** + * makes fluid burn when close to fire, + * not working for now + */ public class BurnableFluid extends ForgeFlowingFluid { diff --git a/src/main/java/com/drmangotea/tfmg/content/gadgets/explosives/thermite_grenades/fire/TFMGColoredFires.java b/src/main/java/com/drmangotea/tfmg/content/gadgets/explosives/thermite_grenades/fire/TFMGColoredFires.java index 0b6ff770..b8dff875 100644 --- a/src/main/java/com/drmangotea/tfmg/content/gadgets/explosives/thermite_grenades/fire/TFMGColoredFires.java +++ b/src/main/java/com/drmangotea/tfmg/content/gadgets/explosives/thermite_grenades/fire/TFMGColoredFires.java @@ -9,6 +9,10 @@ import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; +/** + * making blockstate for fire in registrate is pain/idk how to do it + * so no registrate for those :skull: + */ public class TFMGColoredFires { public static final DeferredRegister BLOCKS = diff --git a/src/main/java/com/drmangotea/tfmg/content/items/CoalCokeBlockItem.java b/src/main/java/com/drmangotea/tfmg/content/items/CoalCokeBlockItem.java new file mode 100644 index 00000000..379f3772 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/items/CoalCokeBlockItem.java @@ -0,0 +1,25 @@ +package com.drmangotea.tfmg.content.items; + +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.level.block.Block; +import org.jetbrains.annotations.Nullable; + +public class CoalCokeBlockItem extends BlockItem { + + + + + public CoalCokeBlockItem(Block p_40565_, Properties p_40566_) { + super(p_40565_, p_40566_); + + } + + + + @Override + public int getBurnTime(ItemStack itemStack, @Nullable RecipeType recipeType) { + return 28800; + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/items/CoalCokeItem.java b/src/main/java/com/drmangotea/tfmg/content/items/CoalCokeItem.java new file mode 100644 index 00000000..96b14641 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/items/CoalCokeItem.java @@ -0,0 +1,27 @@ +package com.drmangotea.tfmg.content.items; + +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.common.property.Properties; +import org.jetbrains.annotations.Nullable; + +public class CoalCokeItem extends Item { + + + + + public CoalCokeItem(Properties p_40566_) { + super( p_40566_); + + } + + + + @Override + public int getBurnTime(ItemStack itemStack, @Nullable RecipeType recipeType) { + return 3200; + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/items/FossilstoneItem.java b/src/main/java/com/drmangotea/tfmg/content/items/FossilstoneItem.java new file mode 100644 index 00000000..50a45c02 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/items/FossilstoneItem.java @@ -0,0 +1,25 @@ +package com.drmangotea.tfmg.content.items; + +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.level.block.Block; +import org.jetbrains.annotations.Nullable; + +public class FossilstoneItem extends BlockItem { + + + + + public FossilstoneItem(Block p_40565_, Properties p_40566_) { + super(p_40565_, p_40566_); + + } + + + + @Override + public int getBurnTime(ItemStack itemStack, @Nullable RecipeType recipeType) { + return 4000; + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/items/ScrewdriverItem.java b/src/main/java/com/drmangotea/tfmg/content/items/ScrewdriverItem.java new file mode 100644 index 00000000..f56dee36 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/items/ScrewdriverItem.java @@ -0,0 +1,53 @@ +package com.drmangotea.tfmg.content.items; + +import com.drmangotea.tfmg.content.machines.pipes.normal.LockablePipeBlockEntity; +import com.drmangotea.tfmg.content.machines.pipes.normal.steel.SteelPipeBlock; +import com.drmangotea.tfmg.registry.TFMGBlocks; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; + + +public class ScrewdriverItem extends Item { + + + + + public ScrewdriverItem(Properties p_40566_) { + super( p_40566_); + + } + + @Override + public InteractionResult useOn(UseOnContext pContext) { + Player player = pContext.getPlayer(); + + BlockPos positionClicked = pContext.getClickedPos(); + + Level level = pContext.getLevel(); + + + + + if(level.getBlockState(positionClicked).is(TFMGBlocks.STEEL_PIPE.get())) { + level.playSound(player, positionClicked, SoundEvents.ANVIL_PLACE, SoundSource.BLOCKS, 0.3f,0.5f); + ((LockablePipeBlockEntity)level.getBlockEntity(positionClicked)).toggleLock(player); + + } + + + + pContext.getItemInHand().hurtAndBreak(1, pContext.getPlayer(), + (playerr) -> playerr.broadcastBreakEvent(playerr.getUsedItemHand())); + + + return InteractionResult.SUCCESS; + + } +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/tfmg/content/items/TFMGFuelItem.java b/src/main/java/com/drmangotea/tfmg/content/items/TFMGFuelItem.java deleted file mode 100644 index 62a92de4..00000000 --- a/src/main/java/com/drmangotea/tfmg/content/items/TFMGFuelItem.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.drmangotea.tfmg.content.items; - -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.crafting.RecipeType; -import net.minecraft.world.level.block.Block; -import org.jetbrains.annotations.Nullable; - -public class TFMGFuelItem extends BlockItem { - - private final int burnTicks; - - - public static TFMGFuelItem fossilstone(Block block,Properties properties) { - return new TFMGFuelItem(block,properties, 4000); - } - public static TFMGFuelItem coal_coke(Block block,Properties properties){ - return new TFMGFuelItem(block,properties,3200); - } - public TFMGFuelItem(Block p_40565_, Properties p_40566_,int burnTime) { - super(p_40565_, p_40566_); - this.burnTicks = burnTime; - } - - - - @Override - public int getBurnTime(ItemStack itemStack, @Nullable RecipeType recipeType) { - return burnTicks; - } -} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/LockablePipeBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/LockablePipeBlockEntity.java new file mode 100644 index 00000000..1aafd34b --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/LockablePipeBlockEntity.java @@ -0,0 +1,44 @@ +package com.drmangotea.tfmg.content.machines.pipes.normal; + + +import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +public class LockablePipeBlockEntity extends FluidPipeBlockEntity { + + public boolean locked = false; + + public LockablePipeBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + public void toggleLock(Player player){ + level.playSound(player, getBlockPos(), SoundEvents.ANVIL_PLACE, SoundSource.BLOCKS, 0.3f,0.5f); + locked = !locked; + + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + + compound.putBoolean("Locked", locked); + + super.write(compound, clientPacket); + + } + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + + + locked = compound.getBoolean("Locked"); + + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/TFMGPipeBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/TFMGPipeBlockEntity.java new file mode 100644 index 00000000..d5b1b8c7 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/TFMGPipeBlockEntity.java @@ -0,0 +1,19 @@ +package com.drmangotea.tfmg.content.machines.pipes.normal; + + +import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +public class TFMGPipeBlockEntity extends FluidPipeBlockEntity { + + + + public TFMGPipeBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + } + + + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/EncasedSteelPipeBlock.java b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/EncasedSteelPipeBlock.java new file mode 100644 index 00000000..74a390d0 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/EncasedSteelPipeBlock.java @@ -0,0 +1,70 @@ +package com.drmangotea.tfmg.content.machines.pipes.normal.steel; + + +import com.drmangotea.tfmg.registry.TFMGBlockEntities; +import com.drmangotea.tfmg.registry.TFMGBlocks; +import com.simibubi.create.content.fluids.FluidTransportBehaviour; +import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; +import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; +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.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +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.HitResult; + +import java.util.function.Supplier; + +public class EncasedSteelPipeBlock extends EncasedPipeBlock { + + public EncasedSteelPipeBlock(Properties p_i48339_1_, Supplier casing) { + super(p_i48339_1_, casing); + } + + @Override + public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, Player player) { + return TFMGBlocks.STEEL_PIPE.asStack(); + } + + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + Level world = context.getLevel(); + BlockPos pos = context.getClickedPos(); + + if (world.isClientSide) + return InteractionResult.SUCCESS; + + context.getLevel() + .levelEvent(2001, context.getClickedPos(), Block.getId(state)); + BlockState equivalentPipe = transferSixWayProperties(state, TFMGBlocks.STEEL_PIPE.getDefaultState()); + + Direction firstFound = Direction.UP; + for (Direction d : Iterate.directions) + if (state.getValue(FACING_TO_PROPERTY_MAP.get(d))) { + firstFound = d; + break; + } + + FluidTransportBehaviour.cacheFlows(world, pos); + world.setBlockAndUpdate(pos, TFMGBlocks.STEEL_PIPE.get() + .updateBlockState(equivalentPipe, firstFound, null, world, pos)); + FluidTransportBehaviour.loadFlows(world, pos); + return InteractionResult.SUCCESS; + } + @Override + public Class getBlockEntityClass() { + return FluidPipeBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.ENCASED_STEEL_PIPE.get(); + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/GlassSteelPipeBlock.java b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/GlassSteelPipeBlock.java new file mode 100644 index 00000000..dc137cba --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/GlassSteelPipeBlock.java @@ -0,0 +1,80 @@ +package com.drmangotea.tfmg.content.machines.pipes.normal.steel; + + +import com.drmangotea.tfmg.registry.TFMGBlockEntities; +import com.drmangotea.tfmg.registry.TFMGBlocks; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.fluids.FluidTransportBehaviour; +import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; +import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; +import com.simibubi.create.content.fluids.pipes.GlassFluidPipeBlock; +import com.simibubi.create.content.fluids.pipes.StraightPipeBlockEntity; +import com.simibubi.create.content.schematics.requirement.ItemRequirement; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +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.level.block.state.properties.BooleanProperty; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; + +import java.util.Map; + +public class GlassSteelPipeBlock extends GlassFluidPipeBlock { + public GlassSteelPipeBlock(Properties p_i48339_1_) { + super(p_i48339_1_); + } + + @Override + public ItemRequirement getRequiredItems(BlockState state, BlockEntity te) { + return ItemRequirement.of(TFMGBlocks.STEEL_PIPE.getDefaultState(), te); + } + @Override + public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, + Player player) { + return TFMGBlocks.STEEL_PIPE.asStack(); + } + @Override + public BlockState toRegularPipe(LevelAccessor world, BlockPos pos, BlockState state) { + Direction side = Direction.get(Direction.AxisDirection.POSITIVE, state.getValue(AXIS)); + Map facingToPropertyMap = FluidPipeBlock.PROPERTY_BY_DIRECTION; + return TFMGBlocks.STEEL_PIPE.get() + .updateBlockState(TFMGBlocks.STEEL_PIPE.getDefaultState() + .setValue(facingToPropertyMap.get(side), true) + .setValue(facingToPropertyMap.get(side.getOpposite()), true), side, null, world, pos); + } + @Override + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, + BlockHitResult hit) { + if (!AllBlocks.COPPER_CASING.isIn(player.getItemInHand(hand))) + return InteractionResult.PASS; + if (world.isClientSide) + return InteractionResult.SUCCESS; + BlockState newState = TFMGBlocks.COPPER_ENCASED_STEEL_PIPE.getDefaultState(); + for (Direction d : Iterate.directionsInAxis(getAxis(state))) + newState = newState.setValue(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(d), true); + FluidTransportBehaviour.cacheFlows(world, pos); + world.setBlockAndUpdate(pos, newState); + FluidTransportBehaviour.loadFlows(world, pos); + return InteractionResult.SUCCESS; + } + + @Override + public Class getBlockEntityClass() { + return StraightPipeBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.GLASS_STEEL_PIPE.get(); + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeAttachmentModel.java b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeAttachmentModel.java new file mode 100644 index 00000000..d4c9401d --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeAttachmentModel.java @@ -0,0 +1,134 @@ +package com.drmangotea.tfmg.content.machines.pipes.normal.steel; + +import com.drmangotea.tfmg.registry.TFMGPartialModels; +import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; +import com.simibubi.create.content.fluids.FluidTransportBehaviour; +import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.model.BakedModelWrapperWithData; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemBlockRenderTypes; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.ChunkRenderTypeSet; +import net.minecraftforge.client.model.data.ModelData; +import net.minecraftforge.client.model.data.ModelProperty; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class SteelPipeAttachmentModel extends BakedModelWrapperWithData { + + private static final ModelProperty PIPE_PROPERTY = new ModelProperty<>(); + + public SteelPipeAttachmentModel(BakedModel template) { + super(template); + } + + @Override + protected ModelData.Builder gatherModelData(ModelData.Builder builder, BlockAndTintGetter world, BlockPos pos, BlockState state, + ModelData blockEntityData) { + PipeModelData data = new PipeModelData(); + FluidTransportBehaviour transport = BlockEntityBehaviour.get(world, pos, FluidTransportBehaviour.TYPE); + BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE); + + if (transport != null) + for (Direction d : Iterate.directions) + data.putAttachment(d, transport.getRenderedRimAttachment(world, pos, state, d)); + if (bracket != null) + data.putBracket(bracket.getBracket()); + + data.setEncased(FluidPipeBlock.shouldDrawCasing(world, pos, state)); + return builder.with(PIPE_PROPERTY, data); + } + + + @SuppressWarnings("removal") + @Override + public ChunkRenderTypeSet getRenderTypes(@NotNull BlockState state, @NotNull RandomSource rand, @NotNull ModelData data) { + ChunkRenderTypeSet set = super.getRenderTypes(state, rand, data); + if (set.isEmpty()) { + return ItemBlockRenderTypes.getRenderLayers(state); + } + return set; + } + + @Override + public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData data, RenderType renderType) { + List quads = super.getQuads(state, side, rand, data, renderType); + if (data.has(PIPE_PROPERTY)) { + PipeModelData pipeData = data.get(PIPE_PROPERTY); + quads = new ArrayList<>(quads); + addQuads(quads, state, side, rand, data, pipeData, renderType); + } + return quads; + } + + private void addQuads(List quads, BlockState state, Direction side, RandomSource rand, ModelData data, + PipeModelData pipeData, RenderType renderType) { + BakedModel bracket = pipeData.getBracket(); + if (bracket != null) + quads.addAll(bracket.getQuads(state, side, rand, data, renderType)); + for (Direction d : Iterate.directions) { + FluidTransportBehaviour.AttachmentTypes type = pipeData.getAttachment(d); + for (FluidTransportBehaviour.AttachmentTypes.ComponentPartials partial : type.partials) { + quads.addAll(TFMGPartialModels.STEEL_PIPE_ATTACHMENTS.get(partial) + .get(d) + .get() + .getQuads(state, side, rand, data, renderType)); + } + } + if (pipeData.isEncased()) + quads.addAll(TFMGPartialModels.STEEL_FLUID_PIPE_CASING.get() + .getQuads(state, side, rand, data, renderType)); + } + + private static class PipeModelData { + private FluidTransportBehaviour.AttachmentTypes[] attachments; + private boolean encased; + private BakedModel bracket; + + public PipeModelData() { + attachments = new FluidTransportBehaviour.AttachmentTypes[6]; + Arrays.fill(attachments, FluidTransportBehaviour.AttachmentTypes.NONE); + } + + public void putBracket(BlockState state) { + if (state != null) { + this.bracket = Minecraft.getInstance() + .getBlockRenderer() + .getBlockModel(state); + } + } + + public BakedModel getBracket() { + return bracket; + } + + public void putAttachment(Direction face, FluidTransportBehaviour.AttachmentTypes rim) { + attachments[face.get3DDataValue()] = rim; + } + + public FluidTransportBehaviour.AttachmentTypes getAttachment(Direction face) { + return attachments[face.get3DDataValue()]; + } + + public void setEncased(boolean encased) { + this.encased = encased; + } + + public boolean isEncased() { + return encased; + } + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeBlock.java b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeBlock.java new file mode 100644 index 00000000..3b0fb33b --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/normal/steel/SteelPipeBlock.java @@ -0,0 +1,207 @@ +package com.drmangotea.tfmg.content.machines.pipes.normal.steel; + + +import com.drmangotea.tfmg.CreateTFMG; +import com.drmangotea.tfmg.content.machines.pipes.normal.LockablePipeBlockEntity; +import com.drmangotea.tfmg.registry.TFMGBlockEntities; +import com.drmangotea.tfmg.registry.TFMGBlocks; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; +import com.simibubi.create.content.fluids.FluidPropagator; +import com.simibubi.create.content.fluids.FluidTransportBehaviour; +import com.simibubi.create.content.fluids.pipes.EncasedPipeBlock; +import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; +import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; +import com.simibubi.create.content.fluids.pipes.GlassFluidPipeBlock; +import com.simibubi.create.foundation.advancement.AllAdvancements; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +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.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.HitResult; +import net.minecraft.world.phys.Vec3; + +import javax.annotation.Nullable; +import java.util.Arrays; +import java.util.concurrent.locks.Lock; + +public class SteelPipeBlock extends FluidPipeBlock { +// public static final BooleanProperty LOCKEDDDD = BlockStateProperties.LOCKED; + + public SteelPipeBlock(Properties properties) { + super(properties); + // this.registerDefaultState(super.defaultBlockState().setValue(LOCKEDDDD, false)); + + } + + public BlockState updateBlockState(BlockState state, Direction preferredDirection, @Nullable Direction ignore, + BlockAndTintGetter world, BlockPos pos) { + if(world.getBlockEntity(pos) instanceof LockablePipeBlockEntity) + if(((LockablePipeBlockEntity)world.getBlockEntity(pos)).locked){ + return state; + } + + BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE); + if (bracket != null && bracket.isBracketPresent()) + return state; + + BlockState prevState = state; + int prevStateSides = (int) Arrays.stream(Iterate.directions) + .map(PROPERTY_BY_DIRECTION::get) + .filter(prevState::getValue) + .count(); + + // Update sides that are not ignored + for (Direction d : Iterate.directions) + if (d != ignore) { + boolean shouldConnect = canConnectTo(world, pos.relative(d), world.getBlockState(pos.relative(d)), d); + + if(world.getBlockEntity(pos.relative(d)) instanceof LockablePipeBlockEntity) { + if (((LockablePipeBlockEntity) world.getBlockEntity(pos.relative(d))).locked) { + shouldConnect = false; + + + if(world.getBlockState(pos.relative(d)).getValue(PROPERTY_BY_DIRECTION.get(d.getOpposite()))){ + shouldConnect =true; + } + } + + + } + state = state.setValue(PROPERTY_BY_DIRECTION.get(d), shouldConnect); + } + + // See if it has enough connections + Direction connectedDirection = null; + for (Direction d : Iterate.directions) { + if (isOpenAt(state, d)) { + if (connectedDirection != null) + return state; + connectedDirection = d; + } + } + + // Add opposite end if only one connection + if (connectedDirection != null) + return state.setValue(PROPERTY_BY_DIRECTION.get(connectedDirection.getOpposite()), true); + + // If we can't connect to anything and weren't connected before, do nothing + if (prevStateSides == 2) + return prevState; + + // Use preferred + return state.setValue(PROPERTY_BY_DIRECTION.get(preferredDirection), true) + .setValue(PROPERTY_BY_DIRECTION.get(preferredDirection.getOpposite()), true); + } + @Override + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) { + super.tick(state,world,pos,r); + + + } + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + + + + if (tryRemoveBracket(context)) + return InteractionResult.SUCCESS; + Level world = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction clickedFace = context.getClickedFace(); + + Direction.Axis axis = getAxis(world, pos, state); + if (axis == null) { + Vec3 clickLocation = context.getClickLocation() + .subtract(pos.getX(), pos.getY(), pos.getZ()); + double closest = Float.MAX_VALUE; + Direction argClosest = Direction.UP; + for (Direction direction : Iterate.directions) { + if (clickedFace.getAxis() == direction.getAxis()) + continue; + Vec3 centerOf = Vec3.atCenterOf(direction.getNormal()); + double distance = centerOf.distanceToSqr(clickLocation); + if (distance < closest) { + closest = distance; + argClosest = direction; + } + } + axis = argClosest.getAxis(); + } + + if (clickedFace.getAxis() == axis) + return InteractionResult.PASS; + if (!world.isClientSide) { + withBlockEntityDo(world, pos, fpte -> fpte.getBehaviour(FluidTransportBehaviour.TYPE).interfaces.values() + .stream() + .filter(pc -> pc != null && pc.hasFlow()) + .findAny() + .ifPresent($ -> AllAdvancements.GLASS_PIPE.awardTo(context.getPlayer()))); + + FluidTransportBehaviour.cacheFlows(world, pos); + world.setBlockAndUpdate(pos, TFMGBlocks.GLASS_STEEL_PIPE.getDefaultState() + .setValue(GlassFluidPipeBlock.AXIS, axis) + .setValue(BlockStateProperties.WATERLOGGED, state.getValue(BlockStateProperties.WATERLOGGED))); + FluidTransportBehaviour.loadFlows(world, pos); + } + return InteractionResult.SUCCESS; + } + @Nullable + private Direction.Axis getAxis(BlockGetter world, BlockPos pos, BlockState state) { + return FluidPropagator.getStraightPipeAxis(state); + } + @Override + public ItemStack getCloneItemStack(BlockState state, HitResult target, BlockGetter world, BlockPos pos, + Player player) { + return TFMGBlocks.STEEL_PIPE.asStack(); + } + @Override + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, + BlockHitResult hit) { + if (!AllBlocks.COPPER_CASING.isIn(player.getItemInHand(hand))) + return InteractionResult.PASS; + if (world.isClientSide) + return InteractionResult.SUCCESS; + + FluidTransportBehaviour.cacheFlows(world, pos); + world.setBlockAndUpdate(pos, + EncasedPipeBlock.transferSixWayProperties(state, TFMGBlocks.COPPER_ENCASED_STEEL_PIPE.getDefaultState())); + FluidTransportBehaviour.loadFlows(world, pos); + return InteractionResult.SUCCESS; + + } + // @Override + // protected void createBlockStateDefinition(StateDefinition.Builder builder) { + // super.createBlockStateDefinition(builder); + // builder.add(LOCKEDDDD); + + // } + @Override + public Class getBlockEntityClass() { + return FluidPipeBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.STEEL_PIPE.get(); + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/pumps/SteelPumpBlock.java b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/pumps/SteelPumpBlock.java new file mode 100644 index 00000000..dcfdb0d8 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/pumps/SteelPumpBlock.java @@ -0,0 +1,37 @@ +/* +package com.drmangotea.tfmg.content.machines.pipes.pumps; + +import com.drmangotea.createindustry.registry.CIBlockEntities; +import com.simibubi.create.content.fluids.pump.PumpBlock; +import com.simibubi.create.content.fluids.pump.PumpBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +public class SteelPumpBlock extends PumpBlock { + public SteelPumpBlock(Properties p_i48415_1_) { + super(p_i48415_1_); + } + + + @Override + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) { + super.tick(state,world,pos,r); + this.getBlockEntity(world,pos).updatePressureChange(); + + } + + @Override + public Class getBlockEntityClass() { + return PumpBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return CIBlockEntities.STEEL_PUMP.get(); + } +} + + */ \ No newline at end of file diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/pipes/pumps/SteelPumpTileEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/pumps/SteelPumpTileEntity.java new file mode 100644 index 00000000..8013a4b8 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/pipes/pumps/SteelPumpTileEntity.java @@ -0,0 +1,13 @@ +package com.drmangotea.tfmg.content.machines.pipes.pumps; + + +import com.simibubi.create.content.fluids.pump.PumpBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockState; + +public class SteelPumpTileEntity extends PumpBlockEntity { + public SteelPumpTileEntity(BlockEntityType typeIn, BlockPos pos, BlockState state) { + super(typeIn, pos, state); + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankModel.java b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankModel.java new file mode 100644 index 00000000..33f1130c --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankModel.java @@ -0,0 +1,89 @@ +package com.drmangotea.tfmg.content.machines.tanks; + + +import com.drmangotea.tfmg.base.TFMGSpriteShifts; +import com.simibubi.create.api.connectivity.ConnectivityHandler; +import com.simibubi.create.content.fluids.tank.FluidTankCTBehaviour; +import com.simibubi.create.foundation.block.connected.CTModel; +import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.block.model.BakedQuad; +import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.util.RandomSource; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.data.ModelData; +import net.minecraftforge.client.model.data.ModelProperty; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class SteelFluidTankModel extends CTModel { + + protected static final ModelProperty CULL_PROPERTY = new ModelProperty<>(); + + public static SteelFluidTankModel standard(BakedModel originalModel) { + return new SteelFluidTankModel(originalModel, TFMGSpriteShifts.STEEL_FLUID_TANK, TFMGSpriteShifts.STEEL_FLUID_TANK_TOP, + TFMGSpriteShifts.STEEL_FLUID_TANK_INNER); + } + + + private SteelFluidTankModel(BakedModel originalModel, CTSpriteShiftEntry side, CTSpriteShiftEntry top, + CTSpriteShiftEntry inner) { + super(originalModel, new FluidTankCTBehaviour(side, top, inner)); + } + + @Override + protected ModelData.Builder gatherModelData(ModelData.Builder builder, BlockAndTintGetter world, BlockPos pos, BlockState state, + ModelData blockEntityData) { + super.gatherModelData(builder, world, pos, state, blockEntityData); + CullData cullData = new CullData(); + for (Direction d : Iterate.horizontalDirections) + cullData.setCulled(d, ConnectivityHandler.isConnected(world, pos, pos.relative(d))); + return builder.with(CULL_PROPERTY, cullData); + } + + @Override + public List getQuads(BlockState state, Direction side, RandomSource rand, ModelData extraData, RenderType renderType) { + if (side != null) + return Collections.emptyList(); + + List quads = new ArrayList<>(); + for (Direction d : Iterate.directions) { + if (extraData.has(CULL_PROPERTY) && extraData.get(CULL_PROPERTY) + .isCulled(d)) + continue; + quads.addAll(super.getQuads(state, d, rand, extraData, renderType)); + } + quads.addAll(super.getQuads(state, null, rand, extraData, renderType)); + return quads; + } + private class CullData { + boolean[] culledFaces; + + public CullData() { + culledFaces = new boolean[4]; + Arrays.fill(culledFaces, false); + } + + void setCulled(Direction face, boolean cull) { + if (face.getAxis() + .isVertical()) + return; + culledFaces[face.get2DDataValue()] = cull; + } + + boolean isCulled(Direction face) { + if (face.getAxis() + .isVertical()) + return false; + return culledFaces[face.get2DDataValue()]; + } + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankRenderer.java b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankRenderer.java new file mode 100644 index 00000000..034838eb --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelFluidTankRenderer.java @@ -0,0 +1,119 @@ +package com.drmangotea.tfmg.content.machines.tanks; + + +import com.jozufozu.flywheel.util.transform.TransformStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; +import com.simibubi.create.AllPartialModels; +import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer; +import com.simibubi.create.foundation.fluid.FluidRenderer; +import com.simibubi.create.foundation.render.CachedBufferer; +import com.simibubi.create.foundation.utility.Iterate; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +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.util.Mth; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.templates.FluidTank; + +public class SteelFluidTankRenderer extends SafeBlockEntityRenderer { + + public SteelFluidTankRenderer(BlockEntityRendererProvider.Context context) {} + + @Override + protected void renderSafe(SteelTankBlockEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer, + int light, int overlay) { + if (!te.isController()) + return; + if (!te.window) { + //// if (te.tower.isActive()) + //// renderAsBoiler(te, partialTicks, ms, buffer, light, overlay); + return; + } + + LerpedFloat fluidLevel = te.getFluidLevel(); + if (fluidLevel == null) + return; + + float capHeight = 1 / 4f; + float tankHullWidth = 1 / 16f + 1 / 128f; + float minPuddleHeight = 1 / 16f; + float totalHeight = te.height - 2 * capHeight - minPuddleHeight; + + float level = fluidLevel.getValue(partialTicks); + if (level < 1 / (512f * totalHeight)) + return; + float clampedLevel = Mth.clamp(level * totalHeight, 0, totalHeight); + + FluidTank tank = te.tankInventory; + FluidStack fluidStack = tank.getFluid(); + + if (fluidStack.isEmpty()) + return; + + boolean top = fluidStack.getFluid() + .getFluidType() + .isLighterThanAir(); + + float xMin = tankHullWidth; + float xMax = xMin + te.width - 2 * tankHullWidth; + float yMin = totalHeight + capHeight + minPuddleHeight - clampedLevel; + float yMax = yMin + clampedLevel; + + if (top) { + yMin += totalHeight - clampedLevel; + yMax += totalHeight - clampedLevel; + } + + float zMin = tankHullWidth; + float zMax = zMin + te.width - 2 * tankHullWidth; + + ms.pushPose(); + ms.translate(0, clampedLevel - totalHeight, 0); + FluidRenderer.renderFluidBox(fluidStack, xMin, yMin, zMin, xMax, yMax, zMax, buffer, ms, light, false); + ms.popPose(); + } + + protected void renderAsBoiler(SteelTankBlockEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer, + int light, int overlay) { + BlockState blockState = te.getBlockState(); + VertexConsumer vb = buffer.getBuffer(RenderType.solid()); + ms.pushPose(); + TransformStack msr = TransformStack.cast(ms); + msr.translate(te.width / 2f, 0.5, te.width / 2f); + + float dialPivot = 5.75f / 16; + //// float progress = te.tower.gauge.getValue(partialTicks); + + for (Direction d : Iterate.horizontalDirections) { + ms.pushPose(); + //// CachedBufferer.partial(CIPartialModels.TOWER_GAUGE, blockState) + //// .rotateY(d.toYRot()) + //// .unCentre() + //// .translate(te.width / 2f - 6 / 16f, 0, 0) + //// .light(light) + //// .renderInto(ms, vb); + CachedBufferer.partial(AllPartialModels.BOILER_GAUGE_DIAL, blockState) + .rotateY(d.toYRot()) + .unCentre() + .translate(te.width / 2f - 6 / 16f, 0, 0) + .translate(0, dialPivot, dialPivot) + .rotateX(-te.visualGaugeRotation.getValue(partialTicks)) + .translate(0, -dialPivot, -dialPivot) + .light(light) + .renderInto(ms, vb); + ms.popPose(); + } + + ms.popPose(); + } + + @Override + public boolean shouldRenderOffScreen(SteelTankBlockEntity te) { + return te.isController(); + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlock.java b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlock.java new file mode 100644 index 00000000..fb0d6c8b --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlock.java @@ -0,0 +1,351 @@ +package com.drmangotea.tfmg.content.machines.tanks; + + +import com.drmangotea.tfmg.registry.TFMGBlockEntities; +import com.simibubi.create.api.connectivity.ConnectivityHandler; +import com.simibubi.create.content.equipment.wrench.IWrenchable; +import com.simibubi.create.content.fluids.transfer.GenericItemEmptying; +import com.simibubi.create.content.fluids.transfer.GenericItemFilling; +import com.simibubi.create.foundation.block.IBE; +import com.simibubi.create.foundation.blockEntity.ComparatorUtil; +import com.simibubi.create.foundation.fluid.FluidHelper; +import com.simibubi.create.foundation.fluid.FluidHelper.FluidExchange; +import com.simibubi.create.foundation.utility.Lang; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.particles.BlockParticleOption; +import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.util.Mth; +import net.minecraft.util.StringRepresentable; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.LevelReader; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.SoundType; +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.level.block.state.StateDefinition.Builder; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.material.Fluid; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.Shapes; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraftforge.common.util.ForgeSoundType; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.capability.CapabilityFluidHandler; +import net.minecraftforge.fluids.capability.IFluidHandler; + +public class SteelTankBlock extends Block implements IWrenchable, IBE { + + public static final BooleanProperty TOP = BooleanProperty.create("top"); + public static final BooleanProperty BOTTOM = BooleanProperty.create("bottom"); + public static final EnumProperty SHAPE = EnumProperty.create("shape", Shape.class); + + private boolean creative; + + public static SteelTankBlock regular(Properties p_i48440_1_) { + return new SteelTankBlock(p_i48440_1_, false); + } + + public static SteelTankBlock creative(Properties p_i48440_1_) { + return new SteelTankBlock(p_i48440_1_, true); + } + + + + protected SteelTankBlock(Properties p_i48440_1_, boolean creative) { + super(p_i48440_1_); + this.creative = creative; + registerDefaultState(defaultBlockState().setValue(TOP, true) + .setValue(BOTTOM, true) + .setValue(SHAPE, Shape.WINDOW)); + } + + public static boolean isTank(BlockState state) { + return state.getBlock() instanceof SteelTankBlock; + } + + @Override + public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean moved) { + if (oldState.getBlock() == state.getBlock()) + return; + if (moved) + return; + withBlockEntityDo(world, pos, SteelTankBlockEntity::updateConnectivity); + } + + @Override + protected void createBlockStateDefinition(Builder p_206840_1_) { + p_206840_1_.add(TOP, BOTTOM, SHAPE); + } + + @Override + public int getLightEmission(BlockState state, BlockGetter world, BlockPos pos) { + SteelTankBlockEntity tankAt = ConnectivityHandler.partAt(getBlockEntityType(), world, pos); + if (tankAt == null) + return 0; + SteelTankBlockEntity controllerTE = (SteelTankBlockEntity) tankAt.getControllerBE(); + if (controllerTE == null || !controllerTE.window) + return 0; + return tankAt.luminosity; + } + + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + withBlockEntityDo(context.getLevel(), context.getClickedPos(), SteelTankBlockEntity::toggleWindows); + return InteractionResult.SUCCESS; + } + + static final VoxelShape CAMPFIRE_SMOKE_CLIP = Block.box(0, 4, 0, 16, 16, 16); + + @Override + public VoxelShape getCollisionShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, + CollisionContext pContext) { + if (pContext == CollisionContext.empty()) + return CAMPFIRE_SMOKE_CLIP; + return pState.getShape(pLevel, pPos); + } + + @Override + public VoxelShape getBlockSupportShape(BlockState pState, BlockGetter pReader, BlockPos pPos) { + return Shapes.block(); + } + + @Override + public BlockState updateShape(BlockState pState, Direction pDirection, BlockState pNeighborState, + LevelAccessor pLevel, BlockPos pCurrentPos, BlockPos pNeighborPos) { + if (pDirection == Direction.DOWN && pNeighborState.getBlock() != this) + withBlockEntityDo(pLevel, pCurrentPos, SteelTankBlockEntity::updateBoilerTemperature); + return pState; + } + + @Override + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, + BlockHitResult ray) { + ItemStack heldItem = player.getItemInHand(hand); + boolean onClient = world.isClientSide; + + if (heldItem.isEmpty()) + return InteractionResult.PASS; + if (!player.isCreative() && !creative) + return InteractionResult.PASS; + + FluidExchange exchange = null; + SteelTankBlockEntity te = ConnectivityHandler.partAt(getBlockEntityType(), world, pos); + if (te == null) + return InteractionResult.FAIL; + + LazyOptional tankCapability = te.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY); + if (!tankCapability.isPresent()) + return InteractionResult.PASS; + IFluidHandler fluidTank = tankCapability.orElse(null); + FluidStack prevFluidInTank = fluidTank.getFluidInTank(0) + .copy(); + + if (FluidHelper.tryEmptyItemIntoBE(world, player, hand, heldItem, te)) + exchange = FluidExchange.ITEM_TO_TANK; + else if (FluidHelper.tryFillItemFromBE(world, player, hand, heldItem, te)) + exchange = FluidExchange.TANK_TO_ITEM; + + if (exchange == null) { + if (GenericItemEmptying.canItemBeEmptied(world, heldItem) + || GenericItemFilling.canItemBeFilled(world, heldItem)) + return InteractionResult.SUCCESS; + return InteractionResult.PASS; + } + + SoundEvent soundevent = null; + BlockState fluidState = null; + FluidStack fluidInTank = tankCapability.map(fh -> fh.getFluidInTank(0)) + .orElse(FluidStack.EMPTY); + + if (exchange == FluidExchange.ITEM_TO_TANK) { + + + Fluid fluid = fluidInTank.getFluid(); + fluidState = fluid.defaultFluidState() + .createLegacyBlock(); + soundevent = FluidHelper.getEmptySound(fluidInTank); + } + + if (exchange == FluidExchange.TANK_TO_ITEM) { + + Fluid fluid = prevFluidInTank.getFluid(); + fluidState = fluid.defaultFluidState() + .createLegacyBlock(); + soundevent = FluidHelper.getFillSound(prevFluidInTank); + } + + if (soundevent != null && !onClient) { + float pitch = Mth + .clamp(1 - (1f * fluidInTank.getAmount() / (SteelTankBlockEntity.getCapacityMultiplier() * 16)), 0, 1); + pitch /= 1.5f; + pitch += .5f; + pitch += (world.random.nextFloat() - .5f) / 4f; + world.playSound(null, pos, soundevent, SoundSource.BLOCKS, .5f, pitch); + } + + if (!fluidInTank.isFluidStackIdentical(prevFluidInTank)) { + if (te instanceof SteelTankBlockEntity) { + SteelTankBlockEntity controllerTE = (SteelTankBlockEntity) ((SteelTankBlockEntity) te).getControllerBE(); + if (controllerTE != null) { + if (fluidState != null && onClient) { + BlockParticleOption blockParticleData = + new BlockParticleOption(ParticleTypes.BLOCK, fluidState); + float level = (float) fluidInTank.getAmount() / fluidTank.getTankCapacity(0); + + boolean reversed = fluidInTank.getFluid() + .getFluidType() + .isLighterThanAir(); + if (reversed) + level = 1 - level; + + Vec3 vec = ray.getLocation(); + vec = new Vec3(vec.x, controllerTE.getBlockPos() + .getY() + level * (controllerTE.height - .5f) + .25f, vec.z); + Vec3 motion = player.position() + .subtract(vec) + .scale(1 / 20f); + vec = vec.add(motion); + world.addParticle(blockParticleData, vec.x, vec.y, vec.z, motion.x, motion.y, motion.z); + return InteractionResult.SUCCESS; + } + + controllerTE.sendDataImmediately(); + controllerTE.setChanged(); + } + } + } + + return InteractionResult.SUCCESS; + } + + @Override + public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) { + if (state.hasBlockEntity() && (state.getBlock() != newState.getBlock() || !newState.hasBlockEntity())) { + BlockEntity te = world.getBlockEntity(pos); + if (!(te instanceof SteelTankBlockEntity)) + return; + SteelTankBlockEntity tankTE = (SteelTankBlockEntity) te; + world.removeBlockEntity(pos); + ConnectivityHandler.splitMulti(tankTE); + } + } + + @Override + public Class getBlockEntityClass() { + return SteelTankBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return creative ? TFMGBlockEntities.STEEL_FLUID_TANK.get() : TFMGBlockEntities.STEEL_FLUID_TANK.get(); + } + + @Override + public BlockState mirror(BlockState state, Mirror mirror) { + if (mirror == Mirror.NONE) + return state; + boolean x = mirror == Mirror.FRONT_BACK; + switch (state.getValue(SHAPE)) { + case WINDOW_NE: + return state.setValue(SHAPE, x ? Shape.WINDOW_NW : Shape.WINDOW_SE); + case WINDOW_NW: + return state.setValue(SHAPE, x ? Shape.WINDOW_NE : Shape.WINDOW_SW); + case WINDOW_SE: + return state.setValue(SHAPE, x ? Shape.WINDOW_SW : Shape.WINDOW_NE); + case WINDOW_SW: + return state.setValue(SHAPE, x ? Shape.WINDOW_SE : Shape.WINDOW_NW); + default: + return state; + } + } + + @Override + public BlockState rotate(BlockState state, Rotation rotation) { + for (int i = 0; i < rotation.ordinal(); i++) + state = rotateOnce(state); + return state; + } + + private BlockState rotateOnce(BlockState state) { + switch (state.getValue(SHAPE)) { + case WINDOW_NE: + return state.setValue(SHAPE, Shape.WINDOW_SE); + case WINDOW_NW: + return state.setValue(SHAPE, Shape.WINDOW_NE); + case WINDOW_SE: + return state.setValue(SHAPE, Shape.WINDOW_SW); + case WINDOW_SW: + return state.setValue(SHAPE, Shape.WINDOW_NW); + default: + return state; + } + } + + public enum Shape implements StringRepresentable { + PLAIN, WINDOW, WINDOW_NW, WINDOW_SW, WINDOW_NE, WINDOW_SE; + + @Override + public String getSerializedName() { + return Lang.asId(name()); + } + } + + // Tanks are less noisy when placed in batch + public static final SoundType SILENCED_METAL = + new ForgeSoundType(0.1F, 1.5F, () -> SoundEvents.METAL_BREAK, () -> SoundEvents.METAL_STEP, + () -> SoundEvents.METAL_PLACE, () -> SoundEvents.METAL_HIT, () -> SoundEvents.METAL_FALL); + + @Override + public SoundType getSoundType(BlockState state, LevelReader world, BlockPos pos, Entity entity) { + SoundType soundType = super.getSoundType(state, world, pos, entity); + if (entity != null && entity.getPersistentData() + .contains("SilenceTankSound")) + return SILENCED_METAL; + return soundType; + } + + @Override + public boolean hasAnalogOutputSignal(BlockState state) { + return true; + } + + @Override + public int getAnalogOutputSignal(BlockState blockState, Level worldIn, BlockPos pos) { + return getBlockEntityOptional(worldIn, pos).map(SteelTankBlockEntity::getControllerBE) + .map(te -> ComparatorUtil.fractionToRedstoneLevel(te.getFillState())) + .orElse(0); + } + + public static void updateTowerState(BlockState pState, Level pLevel, BlockPos tankPos) { + BlockState tankState = pLevel.getBlockState(tankPos); + if (!(tankState.getBlock()instanceof SteelTankBlock tank)) + return; + SteelTankBlockEntity tankTE = tank.getBlockEntity(pLevel, tankPos); + if (tankTE == null) + return; + SteelTankBlockEntity controllerTE = (SteelTankBlockEntity) tankTE.getControllerBE(); + if (controllerTE == null) + return; + controllerTE.updateBoilerState(); + } + + } diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlockEntity.java new file mode 100644 index 00000000..ae3b78ec --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankBlockEntity.java @@ -0,0 +1,656 @@ +package com.drmangotea.tfmg.content.machines.tanks; + + +import com.simibubi.create.api.connectivity.ConnectivityHandler; +import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation; +import com.simibubi.create.content.fluids.tank.FluidTankBlockEntity; +import com.simibubi.create.foundation.blockEntity.IMultiBlockEntityContainer; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.fluid.SmartFluidTank; +import com.simibubi.create.foundation.utility.animation.LerpedFloat; +import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; +import com.simibubi.create.infrastructure.config.AllConfigs; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlock.Shape; +import net.minecraft.nbt.NbtUtils; +import net.minecraft.network.chat.Component; +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; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.FluidStack; +import net.minecraftforge.fluids.FluidType; +import net.minecraftforge.fluids.IFluidTank; +import net.minecraftforge.fluids.capability.CapabilityFluidHandler; +import net.minecraftforge.fluids.capability.IFluidHandler; +import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; +import net.minecraftforge.fluids.capability.templates.FluidTank; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.util.List; + +import static java.lang.Math.abs; + +public class SteelTankBlockEntity extends FluidTankBlockEntity implements IHaveGoggleInformation, IMultiBlockEntityContainer.Fluid { + + private static final int MAX_SIZE = 3; + + protected LazyOptional fluidCapability; + protected boolean forceFluidLevelUpdate; + public FluidTank tankInventory; + protected BlockPos controller; + protected BlockPos lastKnownPos; + protected boolean updateConnectivity; + public boolean window; + public int luminosity; + public int width; + public int height; + public int gaugeRotation=0; + + + ////public DistillationTowerData tower; + + private static final int SYNC_RATE = 8; + protected int syncCooldown; + protected boolean queuedSync; + + // For rendering purposes only + private LerpedFloat fluidLevel; + public LerpedFloat visualGaugeRotation =LerpedFloat.angular();; + + public SteelTankBlockEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + tankInventory = createInventory(); + fluidCapability = LazyOptional.of(() -> tankInventory); + forceFluidLevelUpdate = true; + updateConnectivity = false; + window = true; + height = 1; + width = 1; + ////// tower = new DistillationTowerData(); + refreshCapability(); + } + + + + protected SmartFluidTank createInventory() { + return new SmartFluidTank(getCapacityMultiplier(), this::onFluidStackChanged); + } + + public void updateConnectivity() { + updateConnectivity = false; + if (level.isClientSide) + return; + if (!isController()) + return; + ConnectivityHandler.formMulti(this); + } + + @Override + public void tick() { + super.tick(); + getGaugeRotation(); + + visualGaugeRotation.chase(gaugeRotation, 0.2f, Chaser.EXP); + visualGaugeRotation.tickChaser(); + if (syncCooldown > 0) { + syncCooldown--; + if (syncCooldown == 0 && queuedSync) + sendData(); + } + + if (lastKnownPos == null) + lastKnownPos = getBlockPos(); + else if (!lastKnownPos.equals(worldPosition) && worldPosition != null) { + onPositionChanged(); + return; + } + + if (updateConnectivity) + updateConnectivity(); + if (fluidLevel != null) + fluidLevel.tickChaser(); + //// if (isController()) + //// tower.tick(this); + } + + @Override + public BlockPos getLastKnownPos() { + return lastKnownPos; + } + + @Override + public boolean isController() { + return controller == null || worldPosition.getX() == controller.getX() + && worldPosition.getY() == controller.getY() && worldPosition.getZ() == controller.getZ(); + } + + @Override + public void initialize() { + super.initialize(); + sendData(); + if (level.isClientSide) + invalidateRenderBoundingBox(); + } + + private void onPositionChanged() { + removeController(true); + lastKnownPos = worldPosition; + } + + protected void onFluidStackChanged(FluidStack newFluidStack) { + if (!hasLevel()) + return; + + FluidType attributes = newFluidStack.getFluid() + .getFluidType(); + int luminosity = (int) (attributes.getLightLevel(newFluidStack) / 1.2f); + boolean reversed = attributes.isLighterThanAir(); + int maxY = (int) ((getFillState() * height) + 1); + + for (int yOffset = 0; yOffset < height; yOffset++) { + boolean isBright = reversed ? (height - yOffset <= maxY) : (yOffset < maxY); + int actualLuminosity = isBright ? luminosity : luminosity > 0 ? 1 : 0; + + for (int xOffset = 0; xOffset < width; xOffset++) { + for (int zOffset = 0; zOffset < width; zOffset++) { + BlockPos pos = this.worldPosition.offset(xOffset, yOffset, zOffset); + SteelTankBlockEntity tankAt = ConnectivityHandler.partAt(getType(), level, pos); + if (tankAt == null) + continue; + level.updateNeighbourForOutputSignal(pos, tankAt.getBlockState() + .getBlock()); + if (tankAt.luminosity == actualLuminosity) + continue; + tankAt.setLuminosity(actualLuminosity); + } + } + } + + if (!level.isClientSide) { + setChanged(); + sendData(); + } + + if (isVirtual()) { + if (fluidLevel == null) + fluidLevel = LerpedFloat.linear() + .startWithValue(getFillState()); + fluidLevel.chase(getFillState(), .5f, Chaser.EXP); + } + } + + protected void setLuminosity(int luminosity) { + if (level.isClientSide) + return; + if (this.luminosity == luminosity) + return; + this.luminosity = luminosity; + sendData(); + } + + @SuppressWarnings("unchecked") + @Override + public SteelTankBlockEntity getControllerBE() { + if (isController()) + return this; + BlockEntity tileEntity = level.getBlockEntity(controller); + if (tileEntity instanceof SteelTankBlockEntity) + return (SteelTankBlockEntity) tileEntity; + return null; + } + + public void applyFluidTankSize(int blocks) { + tankInventory.setCapacity(blocks * getCapacityMultiplier()); + int overflow = tankInventory.getFluidAmount() - tankInventory.getCapacity(); + if (overflow > 0) + tankInventory.drain(overflow, FluidAction.EXECUTE); + forceFluidLevelUpdate = true; + } + + public void removeController(boolean keepFluids) { + if (level.isClientSide) + return; + updateConnectivity = true; + if (!keepFluids) + applyFluidTankSize(1); + controller = null; + width = 1; + height = 1; + //// tower.clear(); + onFluidStackChanged(tankInventory.getFluid()); + + BlockState state = getBlockState(); + if (SteelTankBlock.isTank(state)) { + state = state.setValue(SteelTankBlock.BOTTOM, true); + state = state.setValue(SteelTankBlock.TOP, true); + state = state.setValue(SteelTankBlock.SHAPE, window ? SteelTankBlock.Shape.WINDOW : SteelTankBlock.Shape.PLAIN); + getLevel().setBlock(worldPosition, state, 22); + } + + refreshCapability(); + setChanged(); + sendData(); + } + + public void toggleWindows() { + SteelTankBlockEntity te = getControllerBE(); + if (te == null) + return; + //// if (te.tower.isActive()) + //// return; + te.setWindows(!te.window); + } + + public void updateBoilerTemperature() { + SteelTankBlockEntity te = getControllerBE(); + if (te == null) + return; + //// if (!te.tower.isActive()) + //// return; + //// te.tower.needsHeatLevelUpdate = true; + } + + public void sendDataImmediately() { + syncCooldown = 0; + queuedSync = false; + sendData(); + } + + @Override + public void sendData() { + if (syncCooldown > 0) { + queuedSync = true; + return; + } + super.sendData(); + queuedSync = false; + syncCooldown = SYNC_RATE; + } + + public void setWindows(boolean window) { + this.window = window; + for (int yOffset = 0; yOffset < height; yOffset++) { + for (int xOffset = 0; xOffset < width; xOffset++) { + for (int zOffset = 0; zOffset < width; zOffset++) { + + BlockPos pos = this.worldPosition.offset(xOffset, yOffset, zOffset); + BlockState blockState = level.getBlockState(pos); + if (!SteelTankBlock.isTank(blockState)) + continue; + + Shape shape = Shape.PLAIN; + if (window) { + // SIZE 1: Every tank has a window + if (width == 1) + shape = Shape.WINDOW; + // SIZE 2: Every tank has a corner window + if (width == 2) + shape = xOffset == 0 ? zOffset == 0 ? Shape.WINDOW_NW : Shape.WINDOW_SW + : zOffset == 0 ? Shape.WINDOW_NE : Shape.WINDOW_SE; + // SIZE 3: Tanks in the center have a window + if (width == 3 && abs(abs(xOffset) - abs(zOffset)) == 1) + shape = Shape.WINDOW; + } + + level.setBlock(pos, blockState.setValue(SteelTankBlock.SHAPE, shape), 22); + level.getChunkSource() + .getLightEngine() + .checkBlock(pos); + } + } + } + } + + public void updateBoilerState() { + if (!isController()) + return; + + //// boolean wasBoiler = tower.isActive(); + //// boolean changed = tower.evaluate(this); + + //// if (wasBoiler != tower.isActive()) { + //// //// if (tower.isActive()) + //// //// setWindows(false); + + //// for (int yOffset = 0; yOffset < height; yOffset++) + //// for (int xOffset = 0; xOffset < width; xOffset++) + //// for (int zOffset = 0; zOffset < width; zOffset++) + //// if (level.getBlockEntity( + //// worldPosition.offset(xOffset, yOffset, zOffset))instanceof SteelTankBlockEntity fte) + //// fte.refreshCapability(); + //// } + + /// if (changed) { + /// notifyUpdate(); + + /// } + } + + @Override + public void setController(BlockPos controller) { + if (level.isClientSide && !isVirtual()) + return; + if (controller.equals(this.controller)) + return; + this.controller = controller; + refreshCapability(); + setChanged(); + sendData(); + } + + private void refreshCapability() { + LazyOptional oldCap = fluidCapability; + fluidCapability = LazyOptional.of(() -> handlerForCapability()); + oldCap.invalidate(); + } + + private IFluidHandler handlerForCapability() { + + return tankInventory;////isController() + ////? tower.isActive() + ////? tower.createHandler() + + ////: tankInventory + ////: getControllerBE() != null ? getControllerBE().handlerForCapability() + ////: new FluidTank(0); + } + + @Override + public BlockPos getController() { + return isController() ? worldPosition : controller; + } + + @Override + protected AABB createRenderBoundingBox() { + if (isController()) + return super.createRenderBoundingBox().expandTowards(width - 1, height - 1, width - 1); + else + return super.createRenderBoundingBox(); + } + + @Nullable + public SteelTankBlockEntity getOtherFluidTankTileEntity(Direction direction) { + BlockEntity otherTE = level.getBlockEntity(worldPosition.relative(direction)); + if (otherTE instanceof SteelTankBlockEntity) + return (SteelTankBlockEntity) otherTE; + return null; + } + + @Override + public boolean addToGoggleTooltip(List tooltip, boolean isPlayerSneaking) { + SteelTankBlockEntity controllerTE = getControllerBE(); + if (controllerTE == null) + return false; + /////// if (controllerTE.tower.addToGoggleTooltip(tooltip, isPlayerSneaking, controllerTE.getTotalTankSize())) + /////// return true; + return containedFluidTooltip(tooltip, isPlayerSneaking, + controllerTE.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)); + } + + @Override + protected void read(CompoundTag compound, boolean clientPacket) { + super.read(compound, clientPacket); + + BlockPos controllerBefore = controller; + int prevSize = width; + int prevHeight = height; + int prevLum = luminosity; + + updateConnectivity = compound.contains("Uninitialized"); + luminosity = compound.getInt("Luminosity"); + controller = null; + lastKnownPos = null; + + if (compound.contains("LastKnownPos")) + lastKnownPos = NbtUtils.readBlockPos(compound.getCompound("LastKnownPos")); + if (compound.contains("Controller")) + controller = NbtUtils.readBlockPos(compound.getCompound("Controller")); + + if (isController()) { + window = compound.getBoolean("Window"); + width = compound.getInt("Size"); + height = compound.getInt("Height"); + tankInventory.setCapacity(getTotalTankSize() * getCapacityMultiplier()); + tankInventory.readFromNBT(compound.getCompound("TankContent")); + if (tankInventory.getSpace() < 0) + tankInventory.drain(-tankInventory.getSpace(), FluidAction.EXECUTE); + } + + ///// tower.read(compound.getCompound("Boiler"), width * width * height); + + if (compound.contains("ForceFluidLevel") || fluidLevel == null) + fluidLevel = LerpedFloat.linear() + .startWithValue(getFillState()); + + if (!clientPacket) + return; + + boolean changeOfController = + controllerBefore == null ? controller != null : !controllerBefore.equals(controller); + if (changeOfController || prevSize != width || prevHeight != height) { + if (hasLevel()) + level.sendBlockUpdated(getBlockPos(), getBlockState(), getBlockState(), 16); + if (isController()) + tankInventory.setCapacity(getCapacityMultiplier() * getTotalTankSize()); + invalidateRenderBoundingBox(); + } + if (isController()) { + float fillState = getFillState(); + if (compound.contains("ForceFluidLevel") || fluidLevel == null) + fluidLevel = LerpedFloat.linear() + .startWithValue(fillState); + fluidLevel.chase(fillState, 0.5f, Chaser.EXP); + } + if (luminosity != prevLum && hasLevel()) + level.getChunkSource() + .getLightEngine() + .checkBlock(worldPosition); + + if (compound.contains("LazySync")) + fluidLevel.chase(fluidLevel.getChaseTarget(), 0.125f, Chaser.EXP); + } + public void getGaugeRotation(){ + ////// int level=tower.towerLevel; + + ////// if(level>=13){ + ////// gaugeRotation=90; + ////// } else + ////// if(level>=4){ + ////// gaugeRotation=45; + ////// } else{ + ////// gaugeRotation=0; + ////// } + + + } + public float getFillState() { + return (float) tankInventory.getFluidAmount() / tankInventory.getCapacity(); + } + + @Override + public void write(CompoundTag compound, boolean clientPacket) { + + if (updateConnectivity) + compound.putBoolean("Uninitialized", true); + /////// compound.put("Boiler", tower.write()); + if (lastKnownPos != null) + compound.put("LastKnownPos", NbtUtils.writeBlockPos(lastKnownPos)); + if (!isController()) + compound.put("Controller", NbtUtils.writeBlockPos(controller)); + if (isController()) { + compound.putBoolean("Window", window); + compound.put("TankContent", tankInventory.writeToNBT(new CompoundTag())); + compound.putInt("Size", width); + compound.putInt("Height", height); + } + compound.putInt("Luminosity", luminosity); + // super.write(compound, clientPacket); + //super.saveAdditional(compound); + + forEachBehaviour(tb -> tb.write(compound, clientPacket)); + + if (!clientPacket) + return; + if (forceFluidLevelUpdate) + compound.putBoolean("ForceFluidLevel", true); + if (queuedSync) + compound.putBoolean("LazySync", true); + forceFluidLevelUpdate = false; + } + + @Nonnull + @Override + public LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { + if (!fluidCapability.isPresent()) + refreshCapability(); + if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) + return fluidCapability.cast(); + return super.getCapability(cap, side); + } + + + + @Override + public void addBehaviours(List behaviours) { + //registerAwardables(behaviours, AllAdvancements.STEAM_ENGINE_MAXED, AllAdvancements.PIPE_ORGAN); + } + + public IFluidTank getTankInventory() { + return tankInventory; + } + + public int getTotalTankSize() { + return width * width * height; + } + + public static int getMaxSize() { + return MAX_SIZE; + } + + public static int getCapacityMultiplier() { + return AllConfigs.server().fluids.fluidTankCapacity.get() * 1000; + } + + public static int getMaxHeight() { + return AllConfigs.server().fluids.fluidTankMaxHeight.get(); + } + + public LerpedFloat getFluidLevel() { + return fluidLevel; + } + + public void setFluidLevel(LerpedFloat fluidLevel) { + this.fluidLevel = fluidLevel; + } + + @Override + public void preventConnectivityUpdate() { + updateConnectivity = false; + } + + @Override + public void notifyMultiUpdated() { + BlockState state = this.getBlockState(); + if (SteelTankBlock.isTank(state)) { // safety + state = state.setValue(SteelTankBlock.BOTTOM, getController().getY() == getBlockPos().getY()); + state = state.setValue(SteelTankBlock.TOP, getController().getY() + height - 1 == getBlockPos().getY()); + level.setBlock(getBlockPos(), state, 6); + } + if (isController()) + setWindows(window); + onFluidStackChanged(tankInventory.getFluid()); + updateBoilerState(); + setChanged(); + } + + @Override + public void setExtraData(@Nullable Object data) { + if (data instanceof Boolean) + window = (boolean) data; + } + + @Override + @Nullable + public Object getExtraData() { + return window; + } + + @Override + public Object modifyExtraData(Object data) { + if (data instanceof Boolean windows) { + windows |= window; + return windows; + } + return data; + } + + @Override + public Direction.Axis getMainConnectionAxis() { + return Direction.Axis.Y; + } + + @Override + public int getMaxLength(Direction.Axis longAxis, int width) { + if (longAxis == Direction.Axis.Y) + return getMaxHeight(); + return getMaxWidth(); + } + + @Override + public int getMaxWidth() { + return MAX_SIZE; + } + + @Override + public int getHeight() { + return height; + } + + @Override + public void setHeight(int height) { + this.height = height; + } + + @Override + public int getWidth() { + return width; + } + + @Override + public void setWidth(int width) { + this.width = width; + } + + @Override + public boolean hasTank() { + return true; + } + + @Override + public int getTankSize(int tank) { + return getCapacityMultiplier(); + } + + @Override + public void setTankSize(int tank, int blocks) { + applyFluidTankSize(blocks); + } + + @Override + public IFluidTank getTank(int tank) { + return tankInventory; + } + + @Override + public FluidStack getFluid(int tank) { + return tankInventory.getFluid() + .copy(); + } +} + diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankGenerator.java b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankGenerator.java new file mode 100644 index 00000000..4ce606dd --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankGenerator.java @@ -0,0 +1,63 @@ +package com.drmangotea.tfmg.content.machines.tanks; + +import com.simibubi.create.foundation.data.AssetLookup; +import com.simibubi.create.foundation.data.SpecialBlockStateGen; +import com.tterrag.registrate.providers.DataGenContext; +import com.tterrag.registrate.providers.RegistrateBlockstateProvider; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.client.model.generators.ModelFile; + +public class SteelTankGenerator extends SpecialBlockStateGen { + + private String prefix; + + public SteelTankGenerator() { + this(""); + } + + public SteelTankGenerator(String prefix) { + this.prefix = prefix; + } + + @Override + protected int getXRotation(BlockState state) { + return 0; + } + + @Override + protected int getYRotation(BlockState state) { + return 0; + } + + @Override + public ModelFile getModel(DataGenContext ctx, RegistrateBlockstateProvider prov, + BlockState state) { + Boolean top = state.getValue(SteelTankBlock.TOP); + Boolean bottom = state.getValue(SteelTankBlock.BOTTOM); + SteelTankBlock.Shape shape = state.getValue(SteelTankBlock.SHAPE); + + String shapeName = "middle"; + if (top && bottom) + shapeName = "single"; + else if (top) + shapeName = "top"; + else if (bottom) + shapeName = "bottom"; + + String modelName = shapeName + (shape == SteelTankBlock.Shape.PLAIN ? "" : "_" + shape.getSerializedName()); + + if (!prefix.isEmpty()) + return prov.models() + .withExistingParent(prefix + modelName, prov.modLoc("block/fluid_tank/block_" + modelName)) + .texture("0", prov.modLoc("block/" + prefix + "casing")) + .texture("1", prov.modLoc("block/" + prefix + "fluid_tank")) + .texture("3", prov.modLoc("block/" + prefix + "fluid_tank_window")) + .texture("4", prov.modLoc("block/" + prefix + "casing")) + .texture("5", prov.modLoc("block/" + prefix + "fluid_tank_window_single")) + .texture("particle", prov.modLoc("block/" + prefix + "steel_fluid_tank")); + + return AssetLookup.partialBaseModel(ctx, prov, modelName); + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankItem.java b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankItem.java new file mode 100644 index 00000000..deea226e --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/tanks/SteelTankItem.java @@ -0,0 +1,133 @@ +package com.drmangotea.tfmg.content.machines.tanks; + + +import com.drmangotea.tfmg.registry.TFMGBlockEntities; +import com.simibubi.create.api.connectivity.ConnectivityHandler; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraftforge.fluids.FluidStack; + +public class SteelTankItem extends BlockItem { + + public SteelTankItem(Block p_i48527_1_, Properties p_i48527_2_) { + super(p_i48527_1_, p_i48527_2_); + } + + @Override + public InteractionResult place(BlockPlaceContext ctx) { + InteractionResult initialResult = super.place(ctx); + if (!initialResult.consumesAction()) + return initialResult; + tryMultiPlace(ctx); + return initialResult; + } + + @Override + protected boolean updateCustomBlockEntityTag(BlockPos p_195943_1_, Level p_195943_2_, Player p_195943_3_, + ItemStack p_195943_4_, BlockState p_195943_5_) { + MinecraftServer minecraftserver = p_195943_2_.getServer(); + if (minecraftserver == null) + return false; + CompoundTag nbt = p_195943_4_.getTagElement("BlockEntityTag"); + if (nbt != null) { + nbt.remove("Luminosity"); + nbt.remove("Size"); + nbt.remove("Height"); + nbt.remove("Controller"); + nbt.remove("LastKnownPos"); + if (nbt.contains("TankContent")) { + FluidStack fluid = FluidStack.loadFluidStackFromNBT(nbt.getCompound("TankContent")); + if (!fluid.isEmpty()) { + fluid.setAmount(Math.min(SteelTankBlockEntity.getCapacityMultiplier(), fluid.getAmount())); + nbt.put("TankContent", fluid.writeToNBT(new CompoundTag())); + } + } + } + return super.updateCustomBlockEntityTag(p_195943_1_, p_195943_2_, p_195943_3_, p_195943_4_, p_195943_5_); + } + + private void tryMultiPlace(BlockPlaceContext ctx) { + + Player player = ctx.getPlayer(); + if (player == null) + return; + if (player.isShiftKeyDown()) + return; + Direction face = ctx.getClickedFace(); + if (!face.getAxis() + .isVertical()) + return; + ItemStack stack = ctx.getItemInHand(); + Level world = ctx.getLevel(); + BlockPos pos = ctx.getClickedPos(); + BlockPos placedOnPos = pos.relative(face.getOpposite()); + BlockState placedOnState = world.getBlockState(placedOnPos); + + if (!SteelTankBlock.isTank(placedOnState)) + return; + + SteelTankBlockEntity tankAt = ConnectivityHandler.partAt( + TFMGBlockEntities.STEEL_FLUID_TANK.get(), world, placedOnPos + ); + if (tankAt == null) + return; + SteelTankBlockEntity controllerTE = (SteelTankBlockEntity) tankAt.getControllerBE(); + if (controllerTE == null) + return; + + int width = controllerTE.width; + if (width == 1) + return; + + int tanksToPlace = 0; + BlockPos startPos = face == Direction.DOWN ? controllerTE.getBlockPos() + .below() + : controllerTE.getBlockPos() + .above(controllerTE.height); + + if (startPos.getY() != pos.getY()) + return; + + for (int xOffset = 0; xOffset < width; xOffset++) { + for (int zOffset = 0; zOffset < width; zOffset++) { + BlockPos offsetPos = startPos.offset(xOffset, 0, zOffset); + BlockState blockState = world.getBlockState(offsetPos); + if (SteelTankBlock.isTank(blockState)) + continue; + if (!blockState.getMaterial() + .isReplaceable()) + return; + tanksToPlace++; + } + } + + if (!player.isCreative() && stack.getCount() < tanksToPlace) + return; + + for (int xOffset = 0; xOffset < width; xOffset++) { + for (int zOffset = 0; zOffset < width; zOffset++) { + BlockPos offsetPos = startPos.offset(xOffset, 0, zOffset); + BlockState blockState = world.getBlockState(offsetPos); + if (SteelTankBlock.isTank(blockState)) + continue; + BlockPlaceContext context = BlockPlaceContext.at(ctx, offsetPos, face); + player.getPersistentData() + .putBoolean("SilenceTankSound", true); + super.place(context); + player.getPersistentData() + .remove("SilenceTankSound"); + } + } + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/mixins/AllOreFeatureConfigEntriesMixin.java b/src/main/java/com/drmangotea/tfmg/mixins/AllOreFeatureConfigEntriesMixin.java index c353b802..40aead97 100644 --- a/src/main/java/com/drmangotea/tfmg/mixins/AllOreFeatureConfigEntriesMixin.java +++ b/src/main/java/com/drmangotea/tfmg/mixins/AllOreFeatureConfigEntriesMixin.java @@ -24,6 +24,9 @@ import org.spongepowered.asm.mixin.Shadow; import java.util.HashMap; import java.util.Map; + /** + * really goofy way to do worldgen but it works + */ @Mixin(AllOreFeatureConfigEntries.class) public class AllOreFeatureConfigEntriesMixin { diff --git a/src/main/java/com/drmangotea/tfmg/mixins/FluidPipeBlockMixin.java b/src/main/java/com/drmangotea/tfmg/mixins/FluidPipeBlockMixin.java new file mode 100644 index 00000000..2aba00a3 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/mixins/FluidPipeBlockMixin.java @@ -0,0 +1,371 @@ +package com.drmangotea.tfmg.mixins; + +import com.drmangotea.tfmg.CreateTFMG; +import com.drmangotea.tfmg.content.machines.pipes.normal.LockablePipeBlockEntity; +import com.drmangotea.tfmg.registry.TFMGBlocks; +import com.simibubi.create.AllBlockEntityTypes; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.content.contraptions.ITransformableBlock; +import com.simibubi.create.content.contraptions.StructureTransform; +import com.simibubi.create.content.decoration.bracket.BracketedBlockEntityBehaviour; +import com.simibubi.create.content.decoration.encasing.EncasableBlock; +import com.simibubi.create.content.equipment.wrench.IWrenchableWithBracket; +import com.simibubi.create.content.fluids.FluidPropagator; +import com.simibubi.create.content.fluids.FluidTransportBehaviour; +import com.simibubi.create.content.fluids.pipes.*; +import com.simibubi.create.foundation.advancement.AdvancementBehaviour; +import com.simibubi.create.foundation.advancement.AllAdvancements; +import com.simibubi.create.foundation.block.IBE; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.utility.Iterate; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.Direction.Axis; +import net.minecraft.network.protocol.game.DebugPackets; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.util.RandomSource; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.BlockAndTintGetter; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.*; +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.BlockStateProperties; +import net.minecraft.world.level.material.FluidState; +import net.minecraft.world.level.material.Fluids; +import net.minecraft.world.level.pathfinder.PathComputationType; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraft.world.ticks.TickPriority; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +import javax.annotation.Nullable; +import java.util.Arrays; +import java.util.Optional; +@Mixin(FluidPipeBlock.class) +public class FluidPipeBlockMixin extends PipeBlock implements SimpleWaterloggedBlock, IWrenchableWithBracket, + IBE, EncasableBlock, ITransformableBlock { + + private static final VoxelShape OCCLUSION_BOX = Block.box(4, 4, 4, 12, 12, 12); + + public FluidPipeBlockMixin(Properties properties) { + super(4 / 16f, properties); + this.registerDefaultState(super.defaultBlockState().setValue(BlockStateProperties.WATERLOGGED, false)); + } + + @Override + public InteractionResult onWrenched(BlockState state, UseOnContext context) { + if (tryRemoveBracket(context)) + return InteractionResult.SUCCESS; + + Level world = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction clickedFace = context.getClickedFace(); + + Axis axis = getAxis(world, pos, state); + if (axis == null) { + Vec3 clickLocation = context.getClickLocation() + .subtract(pos.getX(), pos.getY(), pos.getZ()); + double closest = Float.MAX_VALUE; + Direction argClosest = Direction.UP; + for (Direction direction : Iterate.directions) { + if (clickedFace.getAxis() == direction.getAxis()) + continue; + Vec3 centerOf = Vec3.atCenterOf(direction.getNormal()); + double distance = centerOf.distanceToSqr(clickLocation); + if (distance < closest) { + closest = distance; + argClosest = direction; + } + } + axis = argClosest.getAxis(); + } + + if (clickedFace.getAxis() == axis) + return InteractionResult.PASS; + if (!world.isClientSide) { + withBlockEntityDo(world, pos, fpte -> fpte.getBehaviour(FluidTransportBehaviour.TYPE).interfaces.values() + .stream() + .filter(pc -> pc != null && pc.hasFlow()) + .findAny() + .ifPresent($ -> AllAdvancements.GLASS_PIPE.awardTo(context.getPlayer()))); + + FluidTransportBehaviour.cacheFlows(world, pos); + world.setBlockAndUpdate(pos, AllBlocks.GLASS_FLUID_PIPE.getDefaultState() + .setValue(GlassFluidPipeBlock.AXIS, axis) + .setValue(BlockStateProperties.WATERLOGGED, state.getValue(BlockStateProperties.WATERLOGGED))); + FluidTransportBehaviour.loadFlows(world, pos); + } + return InteractionResult.SUCCESS; + } + + @Override + public void setPlacedBy(Level pLevel, BlockPos pPos, BlockState pState, LivingEntity pPlacer, ItemStack pStack) { + super.setPlacedBy(pLevel, pPos, pState, pPlacer, pStack); + AdvancementBehaviour.setPlacedBy(pLevel, pPos, pPlacer); + } + + @Override + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, + BlockHitResult ray) { + ItemStack heldItem = player.getItemInHand(hand); + InteractionResult result = tryEncase(state, world, pos, heldItem, player, hand, ray); + if (result.consumesAction()) + return result; + + return InteractionResult.PASS; + } + + public BlockState getAxisState(Axis axis) { + BlockState defaultState = defaultBlockState(); + for (Direction d : Iterate.directions) + defaultState = defaultState.setValue(PROPERTY_BY_DIRECTION.get(d), d.getAxis() == axis); + return defaultState; + } + + @Nullable + private Axis getAxis(BlockGetter world, BlockPos pos, BlockState state) { + return FluidPropagator.getStraightPipeAxis(state); + } + + @Override + public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) { + boolean blockTypeChanged = state.getBlock() != newState.getBlock(); + if (blockTypeChanged && !world.isClientSide) + FluidPropagator.propagateChangedPipe(world, pos, state); + if (state != newState && !isMoving) + removeBracket(world, pos, true).ifPresent(stack -> Block.popResource(world, pos, stack)); + if (state.hasBlockEntity() && (blockTypeChanged || !newState.hasBlockEntity())) + world.removeBlockEntity(pos); + } + + @Override + public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean isMoving) { + if (world.isClientSide) + return; + if (state != oldState) + world.scheduleTick(pos, this, 1, TickPriority.HIGH); + } + + @Override + public void neighborChanged(BlockState state, Level world, BlockPos pos, Block otherBlock, BlockPos neighborPos, + boolean isMoving) { + DebugPackets.sendNeighborsUpdatePacket(world, pos); + Direction d = FluidPropagator.validateNeighbourChange(state, world, pos, otherBlock, neighborPos, isMoving); + if (d == null) + return; + if (!isOpenAt(state, d)) + return; + world.scheduleTick(pos, this, 1, TickPriority.HIGH); + } + + @Override + public void tick(BlockState state, ServerLevel world, BlockPos pos, RandomSource r) { + FluidPropagator.propagateChangedPipe(world, pos, state); + } + @Shadow + public static boolean isPipe(BlockState state) { + return state.getBlock() instanceof FluidPipeBlockMixin; + } + @Shadow + public static boolean canConnectTo(BlockAndTintGetter world, BlockPos neighbourPos, BlockState neighbour, + Direction direction) { + if (FluidPropagator.hasFluidCapability(world, neighbourPos, direction.getOpposite())) + return true; + if (VanillaFluidTargets.shouldPipesConnectTo(neighbour)) + return true; + FluidTransportBehaviour transport = BlockEntityBehaviour.get(world, neighbourPos, FluidTransportBehaviour.TYPE); + BracketedBlockEntityBehaviour bracket = + BlockEntityBehaviour.get(world, neighbourPos, BracketedBlockEntityBehaviour.TYPE); + if (isPipe(neighbour)) + return bracket == null || !bracket.isBracketPresent() + || FluidPropagator.getStraightPipeAxis(neighbour) == direction.getAxis(); + if (transport == null) + return false; + return transport.canHaveFlowToward(neighbour, direction.getOpposite()); + } + @Shadow + public static boolean shouldDrawRim(BlockAndTintGetter world, BlockPos pos, BlockState state, Direction direction) { + BlockPos offsetPos = pos.relative(direction); + BlockState facingState = world.getBlockState(offsetPos); + if (facingState.getBlock() instanceof EncasedPipeBlock) + return true; + if (!isPipe(facingState)) + return true; + if (!canConnectTo(world, offsetPos, facingState, direction)) + return true; + return false; + } + @Shadow + public static boolean isOpenAt(BlockState state, Direction direction) { + return state.getValue(PROPERTY_BY_DIRECTION.get(direction)); + } + @Shadow + public static boolean isCornerOrEndPipe(BlockAndTintGetter world, BlockPos pos, BlockState state) { + return isPipe(state) && FluidPropagator.getStraightPipeAxis(state) == null + && !shouldDrawCasing(world, pos, state); + } + @Shadow + public static boolean shouldDrawCasing(BlockAndTintGetter world, BlockPos pos, BlockState state) { + if (!isPipe(state)) + return false; + for (Axis axis : Iterate.axes) { + int connections = 0; + for (Direction direction : Iterate.directions) + if (direction.getAxis() != axis && isOpenAt(state, direction)) + connections++; + if (connections > 2) + return true; + } + return false; + } + + @Override + protected void createBlockStateDefinition(Builder builder) { + builder.add(NORTH, EAST, SOUTH, WEST, UP, DOWN, BlockStateProperties.WATERLOGGED); + super.createBlockStateDefinition(builder); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + FluidState FluidState = context.getLevel() + .getFluidState(context.getClickedPos()); + return updateBlockState(defaultBlockState(), context.getNearestLookingDirection(), null, context.getLevel(), + context.getClickedPos()).setValue(BlockStateProperties.WATERLOGGED, + Boolean.valueOf(FluidState.getType() == Fluids.WATER)); + } + + @Override + public BlockState updateShape(BlockState state, Direction direction, BlockState neighbourState, LevelAccessor world, + BlockPos pos, BlockPos neighbourPos) { + if (state.getValue(BlockStateProperties.WATERLOGGED)) + world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world)); + if (isOpenAt(state, direction) && neighbourState.hasProperty(BlockStateProperties.WATERLOGGED)) + world.scheduleTick(pos, this, 1, TickPriority.HIGH); + return updateBlockState(state, direction, direction.getOpposite(), world, pos); + } + /** + * @author DrMangoTea + * @reason locked pipes + */ + @Overwrite( remap = false) + public BlockState updateBlockState(BlockState state, Direction preferredDirection, @Nullable Direction ignore, + BlockAndTintGetter world, BlockPos pos) { + CreateTFMG.LOGGER.debug("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + BracketedBlockEntityBehaviour bracket = BlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE); + if (bracket != null && bracket.isBracketPresent()) + return state; + + BlockState prevState = state; + int prevStateSides = (int) Arrays.stream(Iterate.directions) + .map(PROPERTY_BY_DIRECTION::get) + .filter(prevState::getValue) + .count(); + + // Update sides that are not ignored + for (Direction d : Iterate.directions) + if (d != ignore) { + boolean shouldConnect = canConnectTo(world, pos.relative(d), world.getBlockState(pos.relative(d)), d); + if(world.getBlockEntity(pos.relative(d)) instanceof LockablePipeBlockEntity) + if(((LockablePipeBlockEntity)world.getBlockEntity(pos.relative(d))).locked) { + shouldConnect = false; + CreateTFMG.LOGGER.debug("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"); + } + + state = state.setValue(PROPERTY_BY_DIRECTION.get(d), shouldConnect); + } + + // See if it has enough connections + Direction connectedDirection = null; + for (Direction d : Iterate.directions) { + if (isOpenAt(state, d)) { + if (connectedDirection != null) + return state; + connectedDirection = d; + } + } + + // Add opposite end if only one connection + if (connectedDirection != null) + return state.setValue(PROPERTY_BY_DIRECTION.get(connectedDirection.getOpposite()), true); + + // If we can't connect to anything and weren't connected before, do nothing + if (prevStateSides == 2) + return prevState; + + // Use preferred + return state.setValue(PROPERTY_BY_DIRECTION.get(preferredDirection), true) + .setValue(PROPERTY_BY_DIRECTION.get(preferredDirection.getOpposite()), true); + } + + @Override + public FluidState getFluidState(BlockState state) { + return state.getValue(BlockStateProperties.WATERLOGGED) ? Fluids.WATER.getSource(false) + : Fluids.EMPTY.defaultFluidState(); + } + + @Override + public Optional removeBracket(BlockGetter world, BlockPos pos, boolean inOnReplacedContext) { + BracketedBlockEntityBehaviour behaviour = + BracketedBlockEntityBehaviour.get(world, pos, BracketedBlockEntityBehaviour.TYPE); + if (behaviour == null) + return Optional.empty(); + BlockState bracket = behaviour.removeBracket(inOnReplacedContext); + if (bracket == null) + return Optional.empty(); + return Optional.of(new ItemStack(bracket.getBlock())); + } + + @Override + public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) { + return false; + } + + @Override + public Class getBlockEntityClass() { + return FluidPipeBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return AllBlockEntityTypes.FLUID_PIPE.get(); + } + + @Override + public boolean supportsExternalFaceHiding(BlockState state) { + return false; + } + + @Override + public VoxelShape getOcclusionShape(BlockState pState, BlockGetter pLevel, BlockPos pPos) { + return OCCLUSION_BOX; + } + + @Override + public BlockState rotate(BlockState pState, Rotation pRotation) { + return FluidPipeBlockRotation.rotate(pState, pRotation); + } + + @Override + public BlockState mirror(BlockState pState, Mirror pMirror) { + return FluidPipeBlockRotation.mirror(pState, pMirror); + } + + @Override + public BlockState transform(BlockState state, StructureTransform transform) { + return FluidPipeBlockRotation.transform(state, transform); + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/mixins/FluidPropagatorMixin.java b/src/main/java/com/drmangotea/tfmg/mixins/FluidPropagatorMixin.java new file mode 100644 index 00000000..9236fcc7 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/mixins/FluidPropagatorMixin.java @@ -0,0 +1,191 @@ +package com.drmangotea.tfmg.mixins; + + +import com.drmangotea.tfmg.content.machines.pipes.normal.steel.SteelPipeBlock; +import com.drmangotea.tfmg.registry.TFMGBlocks; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllTags; +import com.simibubi.create.content.fluids.FluidPropagator; +import com.simibubi.create.content.fluids.FluidTransportBehaviour; +import com.simibubi.create.content.fluids.pipes.AxisPipeBlock; +import com.simibubi.create.content.fluids.pipes.FluidPipeBlock; +import com.simibubi.create.content.fluids.pipes.VanillaFluidTargets; +import com.simibubi.create.content.fluids.pump.PumpBlock; +import com.simibubi.create.content.fluids.pump.PumpBlockEntity; +import com.simibubi.create.foundation.advancement.AllAdvancements; +import com.simibubi.create.foundation.advancement.CreateAdvancement; +import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour; +import com.simibubi.create.foundation.utility.BlockHelper; +import com.simibubi.create.foundation.utility.Iterate; +import com.simibubi.create.foundation.utility.Pair; +import com.simibubi.create.infrastructure.config.AllConfigs; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.LiquidBlock; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.fluids.capability.CapabilityFluidHandler; +import net.minecraftforge.fluids.capability.IFluidHandler; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Overwrite; +import org.spongepowered.asm.mixin.Shadow; + +import javax.annotation.Nullable; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +@Mixin(FluidPropagator.class) +public class FluidPropagatorMixin { + @Shadow + public static CreateAdvancement[] getSharedTriggers() { + return new CreateAdvancement[] { AllAdvancements.WATER_SUPPLY, AllAdvancements.CROSS_STREAMS, + AllAdvancements.HONEY_DRAIN }; + } + + /** + * @author DrMangoTea + * @reason Custom Pipes + */ + @Overwrite( remap = false) + public static void propagateChangedPipe(LevelAccessor world, BlockPos pipePos, BlockState pipeState) { + List> frontier = new ArrayList<>(); + Set visited = new HashSet<>(); + Set> discoveredPumps = new HashSet<>(); + + frontier.add(Pair.of(0, pipePos)); + + + // Visit all connected pumps to update their network + while (!frontier.isEmpty()) { + + Pair pair = frontier.remove(0); + BlockPos currentPos = pair.getSecond(); + if (visited.contains(currentPos)) + continue; + visited.add(currentPos); + BlockState currentState = currentPos.equals(pipePos) ? pipeState : world.getBlockState(currentPos); + FluidTransportBehaviour pipe = getPipe(world, currentPos); + if (pipe == null) + continue; + pipe.wipePressure(); + + for (Direction direction : getPipeConnections(currentState, pipe)) { + BlockPos target = currentPos.relative(direction); + if (world instanceof Level l && !l.isLoaded(target)) + continue; + + BlockEntity tileEntity = world.getBlockEntity(target); + BlockState targetState = world.getBlockState(target); + if (tileEntity instanceof PumpBlockEntity) { + if ( + //!TFMGBlocks.STEEL_PUMP.has(targetState)&& + !AllBlocks.MECHANICAL_PUMP.has(targetState) || targetState.getValue(PumpBlock.FACING) + .getAxis() != direction.getAxis()) + continue; + discoveredPumps.add(Pair.of((PumpBlockEntity) tileEntity, direction.getOpposite())); + continue; + } + if (visited.contains(target)) + continue; + FluidTransportBehaviour targetPipe = getPipe(world, target); + if (targetPipe == null) + continue; + Integer distance = pair.getFirst(); + if (distance >= getPumpRange() && !targetPipe.hasAnyPressure()) + continue; + if (targetPipe.canHaveFlowToward(targetState, direction.getOpposite())) + frontier.add(Pair.of(distance + 1, target)); + } + } + + discoveredPumps.forEach(pair -> pair.getFirst() + .updatePipesOnSide(pair.getSecond())); + } + + @Shadow + public static FluidTransportBehaviour getPipe(BlockGetter reader, BlockPos pos) { + return BlockEntityBehaviour.get(reader, pos, FluidTransportBehaviour.TYPE); + } + @Shadow + public static boolean isOpenEnd(BlockGetter reader, BlockPos pos, Direction side) { + BlockPos connectedPos = pos.relative(side); + BlockState connectedState = reader.getBlockState(connectedPos); + FluidTransportBehaviour pipe = FluidPropagator.getPipe(reader, connectedPos); + if (pipe != null && pipe.canHaveFlowToward(connectedState, side.getOpposite())) + return false; + if (PumpBlock.isPump(connectedState) && connectedState.getValue(PumpBlock.FACING) + .getAxis() == side.getAxis()) + return false; + if (VanillaFluidTargets.shouldPipesConnectTo(connectedState)) + return true; + if (BlockHelper.hasBlockSolidSide(connectedState, reader, connectedPos, side.getOpposite()) + && !AllTags.AllBlockTags.FAN_TRANSPARENT.matches(connectedState)) + return false; + if (hasFluidCapability(reader, connectedPos, side.getOpposite())) + return false; + if (!(connectedState.getMaterial() + .isReplaceable() && connectedState.getDestroySpeed(reader, connectedPos) != -1) + && !connectedState.hasProperty(BlockStateProperties.WATERLOGGED)) + return false; + return true; + } + @Shadow + public static List getPipeConnections(BlockState state, FluidTransportBehaviour pipe) { + List list = new ArrayList<>(); + for (Direction d : Iterate.directions) + if (pipe.canHaveFlowToward(state, d)) + list.add(d); + return list; + } + @Shadow + public static int getPumpRange() { + return AllConfigs.server().fluids.mechanicalPumpRange.get(); + } + @Shadow + public static boolean hasFluidCapability(BlockGetter world, BlockPos pos, Direction side) { + BlockEntity tileEntity = world.getBlockEntity(pos); + if (tileEntity == null) + return false; + LazyOptional capability = + tileEntity.getCapability(CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY, side); + return capability.isPresent(); + } + @Shadow + @Nullable + public static Direction.Axis getStraightPipeAxis(BlockState state) { + if (state.getBlock() instanceof PumpBlock) + return state.getValue(PumpBlock.FACING) + .getAxis(); + if (state.getBlock() instanceof AxisPipeBlock) + return state.getValue(AxisPipeBlock.AXIS); + if (!FluidPipeBlock.isPipe(state)) + return null; + Direction.Axis axisFound = null; + int connections = 0; + for (Direction.Axis axis : Iterate.axes) { + Direction d1 = Direction.get(Direction.AxisDirection.NEGATIVE, axis); + Direction d2 = Direction.get(Direction.AxisDirection.POSITIVE, axis); + boolean openAt1 = FluidPipeBlock.isOpenAt(state, d1); + boolean openAt2 = FluidPipeBlock.isOpenAt(state, d2); + if (openAt1) + connections++; + if (openAt2) + connections++; + if (openAt1 && openAt2) + if (axisFound != null) + return null; + else + axisFound = axis; + } + return connections == 2 ? axisFound : null; + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java index 11a5d46c..dcc03f6e 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java @@ -1,20 +1,14 @@ package com.drmangotea.tfmg.registry; -import com.drmangotea.tfmg.CreateTFMG; import com.drmangotea.tfmg.content.concrete.formwork.FormWorkBlockEntity; import com.drmangotea.tfmg.content.concrete.formwork.FormWorkRenderer; import com.drmangotea.tfmg.content.deposits.FluidDepositTileEntity; -import com.simibubi.create.content.fluids.pipes.FluidPipeBlockEntity; +import com.drmangotea.tfmg.content.machines.pipes.normal.LockablePipeBlockEntity; +import com.drmangotea.tfmg.content.machines.tanks.SteelFluidTankRenderer; +import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlockEntity; +import com.simibubi.create.Create; import com.simibubi.create.content.fluids.pipes.StraightPipeBlockEntity; import com.simibubi.create.content.fluids.pipes.TransparentStraightPipeRenderer; -import com.simibubi.create.content.fluids.pump.PumpBlockEntity; -import com.simibubi.create.content.fluids.pump.PumpCogInstance; -import com.simibubi.create.content.fluids.pump.PumpRenderer; -import com.simibubi.create.content.kinetics.base.HalfShaftInstance; -import com.simibubi.create.content.kinetics.base.HorizontalHalfShaftInstance; -import com.simibubi.create.content.kinetics.simpleRelays.BracketedKineticBlockEntity; -import com.simibubi.create.content.kinetics.simpleRelays.SimpleKineticBlockEntity; -import com.simibubi.create.foundation.data.CreateRegistrate; import com.tterrag.registrate.util.entry.BlockEntityEntry; import static com.drmangotea.tfmg.CreateTFMG.REGISTRATE; @@ -35,6 +29,32 @@ public class TFMGBlockEntities { .register(); + public static final BlockEntityEntry STEEL_PIPE = REGISTRATE + .blockEntity("steel_pipe", LockablePipeBlockEntity::new) + .validBlocks(TFMGBlocks.STEEL_PIPE) + .register(); + + public static final BlockEntityEntry ENCASED_STEEL_PIPE = REGISTRATE + .blockEntity("encased_steel_pipe", LockablePipeBlockEntity::new) + .validBlocks(TFMGBlocks.COPPER_ENCASED_STEEL_PIPE) + .register(); + + + public static final BlockEntityEntry GLASS_STEEL_PIPE = REGISTRATE + .blockEntity("glass_steel_pipe", StraightPipeBlockEntity::new) + .validBlocks(TFMGBlocks.GLASS_STEEL_PIPE) + .renderer(() -> TransparentStraightPipeRenderer::new) + .register(); + + public static final BlockEntityEntry STEEL_FLUID_TANK = REGISTRATE + .blockEntity("steel_fluid_tank", SteelTankBlockEntity::new) + .validBlocks(TFMGBlocks.STEEL_FLUID_TANK) + .renderer(() -> SteelFluidTankRenderer::new) + .register(); + + + + public static void register() {} } diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java index f9ead1cc..02007cb5 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java @@ -1,25 +1,40 @@ package com.drmangotea.tfmg.registry; -import com.drmangotea.tfmg.base.TFMGBuilderTransformers; +import com.drmangotea.tfmg.base.TFMGBlockStateGen; import com.drmangotea.tfmg.base.TFMGSpriteShifts; import com.drmangotea.tfmg.content.concrete.formwork.FormWorkBlock; import com.drmangotea.tfmg.content.concrete.formwork.FormWorkGenerator; import com.drmangotea.tfmg.content.deposits.FluidDepositBlock; import com.drmangotea.tfmg.content.gadgets.explosives.napalm.NapalmBombBlock; -import com.drmangotea.tfmg.content.gadgets.explosives.thermite_grenades.ThermiteGrenadeItem; -import com.drmangotea.tfmg.content.items.TFMGFuelItem; +import com.drmangotea.tfmg.content.items.CoalCokeBlockItem; +import com.drmangotea.tfmg.content.items.FossilstoneItem; +import com.drmangotea.tfmg.content.machines.pipes.normal.steel.EncasedSteelPipeBlock; +import com.drmangotea.tfmg.content.machines.pipes.normal.steel.GlassSteelPipeBlock; +import com.drmangotea.tfmg.content.machines.pipes.normal.steel.SteelPipeAttachmentModel; +import com.drmangotea.tfmg.content.machines.pipes.normal.steel.SteelPipeBlock; +import com.drmangotea.tfmg.content.machines.tanks.SteelFluidTankModel; +import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlock; +import com.drmangotea.tfmg.content.machines.tanks.SteelTankGenerator; +import com.drmangotea.tfmg.content.machines.tanks.SteelTankItem; +import com.simibubi.create.AllBlocks; +import com.simibubi.create.AllSpriteShifts; import com.simibubi.create.content.decoration.encasing.CasingBlock; import com.simibubi.create.content.decoration.encasing.EncasedCTBehaviour; -import com.simibubi.create.content.logistics.chute.ChuteGenerator; -import com.simibubi.create.foundation.data.BuilderTransformers; +import com.simibubi.create.content.decoration.encasing.EncasingRegistry; + +import com.simibubi.create.foundation.data.*; import com.tterrag.registrate.util.entry.BlockEntry; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.core.Direction; import net.minecraft.tags.BlockTags; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.MaterialColor; +import net.minecraftforge.client.model.generators.ConfiguredModel; import net.minecraftforge.common.Tags; @@ -55,7 +70,7 @@ public class TFMGBlocks { .properties(p -> p.requiresCorrectToolForDrops()) .transform(pickaxeOnly()) .blockstate(simpleCubeAll("fossilstone")) - .item(TFMGFuelItem::fossilstone) + .item(FossilstoneItem::new) .build() .lang("Fossilstone") .register(); @@ -101,6 +116,72 @@ public class TFMGBlocks { .register(); + //pipes + public static final BlockEntry STEEL_PIPE = REGISTRATE.block("steel_pipe", SteelPipeBlock::new) + .initialProperties(Material.HEAVY_METAL) + .transform(pickaxeOnly()) + .blockstate(BlockStateGen.pipe()) + .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .item() + .transform(customItemModel()) + .register(); + + public static final BlockEntry COPPER_ENCASED_STEEL_PIPE = + REGISTRATE.block("copper_encased_steel_pipe", p -> new EncasedSteelPipeBlock(p, AllBlocks.COPPER_CASING::get)) + .initialProperties(SharedProperties::copperMetal) + .properties(p -> p.color(MaterialColor.TERRACOTTA_LIGHT_GRAY)) + .properties(BlockBehaviour.Properties::noOcclusion) + .transform(axeOrPickaxe()) + .blockstate(BlockStateGen.encasedPipe()) + .onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING))) + .onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING, + (s, f) -> !s.getValue(EncasedSteelPipeBlock.FACING_TO_PROPERTY_MAP.get(f))))) + .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) + .transform(EncasingRegistry.addVariantTo(TFMGBlocks.STEEL_PIPE)) + .register(); + + + @SuppressWarnings("removal") + public static final BlockEntry GLASS_STEEL_PIPE = + REGISTRATE.block("glass_steel_pipe", GlassSteelPipeBlock::new) + .initialProperties(SharedProperties::copperMetal) + .addLayer(() -> RenderType::cutoutMipped) + .transform(pickaxeOnly()) + .blockstate((c, p) -> { + p.getVariantBuilder(c.getEntry()) + .forAllStatesExcept(state -> { + Direction.Axis axis = state.getValue(BlockStateProperties.AXIS); + return ConfiguredModel.builder() + .modelFile(p.models() + .getExistingFile(p.modLoc("block/steel_pipe/window"))) + .uvLock(false) + .rotationX(axis == Direction.Axis.Y ? 0 : 90) + .rotationY(axis == Direction.Axis.X ? 90 : 0) + .build(); + }, BlockStateProperties.WATERLOGGED); + }) + .onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new)) + .loot((p, b) -> p.dropOther(b, STEEL_PIPE.get())) + .register(); + // + + + public static final BlockEntry STEEL_FLUID_TANK = REGISTRATE.block("steel_fluid_tank", SteelTankBlock::regular) + .initialProperties(SharedProperties::copperMetal) + .properties(BlockBehaviour.Properties::noOcclusion) + .properties(p -> p.isRedstoneConductor((p1, p2, p3) -> true)) + .transform(pickaxeOnly()) + .blockstate(new SteelTankGenerator()::generate) + .onRegister(CreateRegistrate.blockModel(() -> SteelFluidTankModel::standard)) + .addLayer(() -> RenderType::cutoutMipped) + .item(SteelTankItem::new) + .model(AssetLookup.customBlockItemModel("_", "block_single_window")) + .build() + .register(); + ///// + + //-----------------------BUILDING BLOCKS---------------------------// @@ -137,13 +218,62 @@ public class TFMGBlocks { .lang("Block of Cast Iron") .register(); + public static final BlockEntry ALUMINUM_BLOCK = REGISTRATE.block("aluminum_block", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p -> p.requiresCorrectToolForDrops()) + .onRegister(connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.CAST_IRON_BLOCK))) + .onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, TFMGSpriteShifts.CAST_IRON_BLOCK))) + .transform(pickaxeOnly()) + .blockstate(simpleCubeAll("aluminum_block")) + .tag(BlockTags.NEEDS_IRON_TOOL) + .tag(Tags.Blocks.STORAGE_BLOCKS) + .tag(BlockTags.BEACON_BASE_BLOCKS) + .transform(tagBlockAndItem("storage_blocks/aluminum")) + .tag(Tags.Items.STORAGE_BLOCKS) + .build() + .lang("Block of Aluminum") + .register(); + + public static final BlockEntry LEAD_BLOCK = REGISTRATE.block("lead_block", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p -> p.requiresCorrectToolForDrops()) + .onRegister(connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.CAST_IRON_BLOCK))) + .onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, TFMGSpriteShifts.CAST_IRON_BLOCK))) + .transform(pickaxeOnly()) + .blockstate(simpleCubeAll("lead_block")) + .tag(BlockTags.NEEDS_IRON_TOOL) + .tag(Tags.Blocks.STORAGE_BLOCKS) + .tag(BlockTags.BEACON_BASE_BLOCKS) + .transform(tagBlockAndItem("storage_blocks/lead")) + .tag(Tags.Items.STORAGE_BLOCKS) + .build() + .lang("Block of Lead") + .register(); + + + public static final BlockEntry COAL_COKE_BLOCK = REGISTRATE.block("coal_coke_block", Block::new) + .initialProperties(() -> Blocks.IRON_BLOCK) + .properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY)) + .properties(p -> p.requiresCorrectToolForDrops()) + .transform(pickaxeOnly()) + .blockstate(simpleCubeAll("coal_coke_block")) + .tag(BlockTags.NEEDS_STONE_TOOL) + .tag(Tags.Blocks.STORAGE_BLOCKS) + .item(CoalCokeBlockItem::new) + .tag(Tags.Items.STORAGE_BLOCKS) + .build() + .lang("Block of Coal Coke") + .register(); + //-----------------------CONCRETE---------------------------// static { - REGISTRATE.creativeModeTab(() -> TFMGCreativeModeTabs.TFMG_CONCRETE); + REGISTRATE.creativeModeTab(() -> TFMGCreativeModeTabs.TFMG_BUILDING_BLOCKS); } public static final BlockEntry CONCRETE = REGISTRATE.block("concrete", Block::new) .initialProperties(() -> Blocks.STONE) diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGCreativeModeTabs.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGCreativeModeTabs.java index 991d3096..d8429e00 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGCreativeModeTabs.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGCreativeModeTabs.java @@ -1,15 +1,13 @@ package com.drmangotea.tfmg.registry; import com.drmangotea.tfmg.base.creative_mode_tabs.BaseTFMGCreativeModeTab; -import com.drmangotea.tfmg.base.creative_mode_tabs.ConcreteCreativeModeTab; -import com.simibubi.create.content.decoration.palettes.PalettesCreativeModeTab; -import com.simibubi.create.infrastructure.item.BaseCreativeModeTab; +import com.drmangotea.tfmg.base.creative_mode_tabs.BuldingCreativeModeTab; import net.minecraft.world.item.CreativeModeTab; public class TFMGCreativeModeTabs { public static final CreativeModeTab TFMG_BASE = new BaseTFMGCreativeModeTab(); - public static final CreativeModeTab TFMG_CONCRETE = new ConcreteCreativeModeTab(); + public static final CreativeModeTab TFMG_BUILDING_BLOCKS = new BuldingCreativeModeTab(); public static void init() { } diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java index 8dd14e4d..54f4b688 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGItems.java @@ -2,10 +2,16 @@ package com.drmangotea.tfmg.registry; import com.drmangotea.tfmg.content.gadgets.explosives.thermite_grenades.ChemicalColor; import com.drmangotea.tfmg.content.gadgets.explosives.thermite_grenades.ThermiteGrenadeItem; +import com.drmangotea.tfmg.content.items.CoalCokeItem; +import com.drmangotea.tfmg.content.items.ScrewdriverItem; import com.tterrag.registrate.util.entry.ItemEntry; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; import static com.drmangotea.tfmg.CreateTFMG.REGISTRATE; import static com.drmangotea.tfmg.content.gadgets.explosives.thermite_grenades.ChemicalColor.*; +import static com.simibubi.create.AllTags.AllItemTags.CREATE_INGOTS; +import static com.simibubi.create.AllTags.forgeItemTag; public class TFMGItems { @@ -20,7 +26,30 @@ public class TFMGItems { public static final ItemEntry COPPER_GRENADE = thermiteGrenade("copper_grenade",BLUE); + public static final ItemEntry + STEEL_INGOT = taggedIngredient("steel_ingot", forgeItemTag("ingots/steel"), CREATE_INGOTS.tag), + CAST_IRON_INGOT = taggedIngredient("cast_iron_ingot", forgeItemTag("ingots/cast_iron"), CREATE_INGOTS.tag), + ALUMINUM_INGOT = taggedIngredient("aluminum_ingot", forgeItemTag("ingots/aluminum"), CREATE_INGOTS.tag), + LEAD_INGOT = taggedIngredient("lead_ingot", forgeItemTag("ingots/lead"), CREATE_INGOTS.tag); + + + public static final ItemEntry COAL_COKE = REGISTRATE.item("coal_coke", CoalCokeItem::new) + .register(); + + public static final ItemEntry SCREWDRIVER = REGISTRATE.item("screwdriver", ScrewdriverItem::new) + .properties(p -> p.stacksTo(1) + .durability(256)) + .register(); + ////////////////////////// + + @SafeVarargs + private static ItemEntry taggedIngredient(String name, TagKey... tags) { + return REGISTRATE.item(name, Item::new) + .tag(tags) + .register(); + } + private static ItemEntry thermiteGrenade(String name, ChemicalColor color) { return REGISTRATE.item(name, p -> new ThermiteGrenadeItem(p, color)) .register(); diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGPaletteBlocks.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGPaletteBlocks.java index 74dc2182..35d4dab9 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGPaletteBlocks.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGPaletteBlocks.java @@ -26,7 +26,7 @@ import static com.simibubi.create.foundation.data.WindowGen.*; public class TFMGPaletteBlocks { static { - REGISTRATE.creativeModeTab(() -> TFMGCreativeModeTabs.TFMG_BASE); + REGISTRATE.creativeModeTab(() -> TFMGCreativeModeTabs.TFMG_BUILDING_BLOCKS); } diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java index 567aa08d..04ecdfaa 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java @@ -18,6 +18,7 @@ import java.util.Map; public class TFMGPartialModels { public static final PartialModel + STEEL_FLUID_PIPE_CASING = block("steel_pipe/casing"), FORMWORK_BOTTOM = block("formwork_block/block_bottom"), FORMWORK_SIDE = block("formwork_block/block_side"); @@ -28,11 +29,19 @@ public class TFMGPartialModels { static { + // for (FluidTransportBehaviour.AttachmentTypes.ComponentPartials type : FluidTransportBehaviour.AttachmentTypes.ComponentPartials.values()) { + // Map map = new HashMap<>(); + // for (Direction d : Iterate.directions) { + // String asId = Lang.asId(type.name()); + // map.put(d, block("steel_pipe/" + asId + "/" + Lang.asId(d.getSerializedName()))); + // } + // STEEL_PIPE_ATTACHMENTS.put(type, map); + // } for (FluidTransportBehaviour.AttachmentTypes.ComponentPartials type : FluidTransportBehaviour.AttachmentTypes.ComponentPartials.values()) { Map map = new HashMap<>(); for (Direction d : Iterate.directions) { String asId = Lang.asId(type.name()); - map.put(d, block("steel_fluid_pipe/" + asId + "/" + Lang.asId(d.getSerializedName()))); + map.put(d, block("steel_pipe/" + asId + "/" + Lang.asId(d.getSerializedName()))); } STEEL_PIPE_ATTACHMENTS.put(type, map); } diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGParticles.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGParticles.java deleted file mode 100644 index d4323d39..00000000 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGParticles.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.drmangotea.tfmg.registry; - -public class TFMGParticles { -} diff --git a/src/main/java/com/drmangotea/tfmg/worldgen/TFMGLayeredPatterns.java b/src/main/java/com/drmangotea/tfmg/worldgen/TFMGLayeredPatterns.java index 891a8985..8edb9f88 100644 --- a/src/main/java/com/drmangotea/tfmg/worldgen/TFMGLayeredPatterns.java +++ b/src/main/java/com/drmangotea/tfmg/worldgen/TFMGLayeredPatterns.java @@ -2,6 +2,8 @@ package com.drmangotea.tfmg.worldgen; import com.drmangotea.tfmg.registry.TFMGBlocks; +import com.drmangotea.tfmg.registry.TFMGPaletteBlocks; +import com.drmangotea.tfmg.registry.TFMGPaletteStoneTypes; import com.simibubi.create.content.decoration.palettes.AllPaletteStoneTypes; import com.simibubi.create.infrastructure.worldgen.LayerPattern; import com.tterrag.registrate.util.nullness.NonNullSupplier; @@ -15,7 +17,7 @@ public class TFMGLayeredPatterns { .layer(l -> l.weight(1) .passiveBlock()) .layer(l -> l.weight(2) - .block(TFMGBlocks.CONCRETE.get()) + .block(TFMGPaletteStoneTypes.BAUXITE.getBaseBlock()) .size(1, 3)) .layer(l -> l.weight(1) .block(Blocks.SMOOTH_BASALT) diff --git a/src/main/resources/assets/tfmg/lang/default/interface.json b/src/main/resources/assets/tfmg/lang/default/interface.json index a2c87fad..b36da7d8 100644 --- a/src/main/resources/assets/tfmg/lang/default/interface.json +++ b/src/main/resources/assets/tfmg/lang/default/interface.json @@ -1,4 +1,4 @@ { "itemGroup.tfmg.base": "Create: The Factory Must Grow", - "itemGroup.tfmg.concrete": "Create: TFMG's Concrete" + "itemGroup.tfmg.building": "Create: TFMG's Building Blocks" } \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/copper_encased_steel_pipe/block_flat.json b/src/main/resources/assets/tfmg/models/block/copper_encased_steel_pipe/block_flat.json new file mode 100644 index 00000000..d084586f --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/copper_encased_steel_pipe/block_flat.json @@ -0,0 +1,16 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/copper_casing", + "particle": "create:block/copper_casing" + }, + "elements": [ + { + "from": [0, 0, 15], + "to": [16, 16, 16], + "faces": { + "south": {"uv": [0, 0, 16, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/copper_encased_steel_pipe/block_open.json b/src/main/resources/assets/tfmg/models/block/copper_encased_steel_pipe/block_open.json new file mode 100644 index 00000000..dba7e96d --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/copper_encased_steel_pipe/block_open.json @@ -0,0 +1,16 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "tfmg:block/copper_encased_steel_pipe", + "particle": "tfmg:block/copper_encased_steel_pipe" + }, + "elements": [ + { + "from": [0, 0, 15], + "to": [16, 16, 16], + "faces": { + "south": {"uv": [0, 0, 16, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/casing.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/casing.json new file mode 100644 index 00000000..7fd2878d --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/casing.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [3, 3, 3], + "to": [13, 13, 13], + "faces": { + "north": {"uv": [1, 11, 6, 16], "texture": "#0"}, + "east": {"uv": [1, 11, 6, 16], "texture": "#0"}, + "south": {"uv": [1, 11, 6, 16], "texture": "#0"}, + "west": {"uv": [1, 11, 6, 16], "texture": "#0"}, + "up": {"uv": [1, 11, 6, 16], "texture": "#0"}, + "down": {"uv": [1, 11, 6, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/down.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/down.json new file mode 100644 index 00000000..3ea2ecbc --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/down.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 4, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, -16]}, + "faces": { + "north": {"uv": [0, 6, 4, 8], "texture": "#0"}, + "east": {"uv": [0, 6, 4, 8], "texture": "#0"}, + "south": {"uv": [4, 6, 0, 8], "texture": "#0"}, + "west": {"uv": [4, 6, 0, 8], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/east.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/east.json new file mode 100644 index 00000000..dbd9770f --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/east.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [12, 4, 4], + "to": [16, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, -16]}, + "faces": { + "north": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 0, 4, 2], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 0, 0, 2], "rotation": 90, "texture": "#0"}, + "down": {"uv": [4, 6, 0, 8], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/north.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/north.json new file mode 100644 index 00000000..c3732679 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/north.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 4, 0], + "to": [12, 12, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]}, + "faces": { + "east": {"uv": [0, 0, 4, 2], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 6, 4, 8], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 0, 4, 2], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/south.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/south.json new file mode 100644 index 00000000..3238f757 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/south.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 4, 12], + "to": [12, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]}, + "faces": { + "east": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 0, 4, 2], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 0, 4, 2], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 6, 4, 8], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/up.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/up.json new file mode 100644 index 00000000..6f442a98 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/up.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 12, 4], + "to": [12, 16, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, -16]}, + "faces": { + "north": {"uv": [0, 0, 4, 2], "texture": "#0"}, + "east": {"uv": [0, 0, 4, 2], "texture": "#0"}, + "south": {"uv": [4, 0, 0, 2], "texture": "#0"}, + "west": {"uv": [4, 0, 0, 2], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/west.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/west.json new file mode 100644 index 00000000..c1f30251 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/connection/west.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [0, 4, 4], + "to": [4, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, -16]}, + "faces": { + "north": {"uv": [0, 0, 4, 2], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 6, 0, 8], "rotation": 90, "texture": "#0"}, + "down": {"uv": [4, 0, 0, 2], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/core_x.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/core_x.json new file mode 100644 index 00000000..d67c1014 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/core_x.json @@ -0,0 +1,17 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "tfmg:block/steel_pipes_connected", + "particle": "tfmg:block/steel_pipes_connected" + }, + "elements": [ + { + "from": [4, 4, 4], + "to": [12, 12, 12], + "faces": { + "east": {"uv": [16, 8, 12, 12], "rotation": 180, "texture": "#0"}, + "west": {"uv": [16, 8, 12, 12], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/core_y.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/core_y.json new file mode 100644 index 00000000..b05df846 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/core_y.json @@ -0,0 +1,17 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "tfmg:block/steel_pipes_connected", + "particle": "tfmg:block/steel_pipes_connected" + }, + "elements": [ + { + "from": [4, 4, 4], + "to": [12, 12, 12], + "faces": { + "up": {"uv": [16, 8, 12, 12], "rotation": 180, "texture": "#0"}, + "down": {"uv": [16, 8, 12, 12], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/core_z.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/core_z.json new file mode 100644 index 00000000..2a12b9ad --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/core_z.json @@ -0,0 +1,17 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "tfmg:block/steel_pipes_connected", + "particle": "tfmg:block/steel_pipes_connected" + }, + "elements": [ + { + "from": [4, 4, 4], + "to": [12, 12, 12], + "faces": { + "north": {"uv": [12, 8, 16, 12], "rotation": 180, "texture": "#0"}, + "south": {"uv": [12, 8, 16, 12], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/down.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/down.json new file mode 100644 index 00000000..df6a9b7d --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/down.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4.95, -3.95, 4.95], + "to": [11.05, -0.95, 11.05], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"}, + "east": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"}, + "south": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"}, + "west": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"}, + "down": {"uv": [13, 8, 16, 11], "rotation": 90, "texture": "#0", "cullface": "down"} + } + }, + { + "from": [2.95, -0.95, 2.95], + "to": [13.05, 2, 13.05], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 9.5, 4, 8], "texture": "#0"}, + "east": {"uv": [4, 8, 9, 9.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [4, 8, 9, 9.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 9.5, 4, 8], "texture": "#0"}, + "up": {"uv": [6, 11, 11, 16], "rotation": 90, "texture": "#0"}, + "down": {"uv": [11, 11, 16, 16], "rotation": 90, "texture": "#0", "cullface": "down"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/east.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/east.json new file mode 100644 index 00000000..ddc310d5 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/east.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [16.95, 4.95, 4.95], + "to": [19.95, 11.05, 11.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 8, 13.5, 11], "rotation": 180, "texture": "#0"}, + "east": {"uv": [13, 8, 16, 11], "texture": "#0", "cullface": "east"}, + "south": {"uv": [12, 8, 13.5, 11], "texture": "#0"}, + "up": {"uv": [12, 8, 13.5, 11], "texture": "#0"}, + "down": {"uv": [12, 8, 13.5, 11], "texture": "#0"} + } + }, + { + "from": [14, 2.95, 2.95], + "to": [16.95, 13.05, 13.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 9.5, 4, 8], "rotation": 90, "texture": "#0"}, + "east": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "east"}, + "south": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#0"}, + "west": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "up": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [9, 9.5, 4, 8], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/north.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/north.json new file mode 100644 index 00000000..e57a85ec --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/north.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [2.95, 2.95, -0.95], + "to": [13.05, 13.05, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]}, + "faces": { + "north": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "north"}, + "east": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "west": {"uv": [9, 9.5, 4, 8], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 8, 9, 9.5], "texture": "#0"}, + "down": {"uv": [9, 9.5, 4, 8], "texture": "#0"} + } + }, + { + "from": [4.95, 4.95, -3.95], + "to": [11.05, 11.05, -0.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]}, + "faces": { + "north": {"uv": [13, 8, 16, 11], "texture": "#0", "cullface": "north"}, + "east": {"uv": [12, 8, 13.5, 11], "texture": "#0"}, + "west": {"uv": [12, 8, 13.5, 11], "rotation": 180, "texture": "#0"}, + "up": {"uv": [12, 8, 13.5, 11], "rotation": 270, "texture": "#0"}, + "down": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/south.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/south.json new file mode 100644 index 00000000..b9701b87 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/south.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4.95, 4.95, 16.95], + "to": [11.05, 11.05, 19.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]}, + "faces": { + "east": {"uv": [13.5, 8, 12, 11], "texture": "#0"}, + "south": {"uv": [16, 8, 13, 11], "texture": "#0", "cullface": "south"}, + "west": {"uv": [13.5, 8, 12, 11], "rotation": 180, "texture": "#0"}, + "up": {"uv": [13.5, 8, 12, 11], "rotation": 270, "texture": "#0"}, + "down": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [2.95, 2.95, 14], + "to": [13.05, 13.05, 16.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]}, + "faces": { + "north": {"uv": [11, 11, 6, 16], "texture": "#0"}, + "east": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [16, 11, 11, 16], "texture": "#0", "cullface": "south"}, + "west": {"uv": [9, 8, 4, 9.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 9.5, 9, 8], "texture": "#0"}, + "down": {"uv": [9, 8, 4, 9.5], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/up.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/up.json new file mode 100644 index 00000000..a38ef73d --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/up.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [2.95, 14, 2.95], + "to": [13.05, 16.95, 13.05], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 8, 4, 9.5], "texture": "#0"}, + "east": {"uv": [4, 9.5, 9, 8], "rotation": 180, "texture": "#0"}, + "south": {"uv": [4, 9.5, 9, 8], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 8, 4, 9.5], "texture": "#0"}, + "up": {"uv": [16, 11, 11, 16], "rotation": 90, "texture": "#0", "cullface": "up"}, + "down": {"uv": [11, 11, 6, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [4.95, 16.95, 4.95], + "to": [11.05, 19.95, 11.05], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"}, + "east": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"}, + "south": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"}, + "west": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"}, + "up": {"uv": [16, 8, 13, 11], "rotation": 90, "texture": "#0", "cullface": "up"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/west.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/west.json new file mode 100644 index 00000000..2f190637 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/drain/west.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [-0.95, 2.95, 2.95], + "to": [2, 13.05, 13.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 8, 4, 9.5], "rotation": 90, "texture": "#0"}, + "east": {"uv": [11, 11, 6, 16], "texture": "#0"}, + "south": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#0"}, + "west": {"uv": [16, 11, 11, 16], "texture": "#0", "cullface": "west"}, + "up": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#0"}, + "down": {"uv": [9, 8, 4, 9.5], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [-3.95, 4.95, 4.95], + "to": [-0.95, 11.05, 11.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13.5, 8, 12, 11], "rotation": 180, "texture": "#0"}, + "south": {"uv": [13.5, 8, 12, 11], "texture": "#0"}, + "west": {"uv": [16, 8, 13, 11], "texture": "#0", "cullface": "west"}, + "up": {"uv": [13.5, 8, 12, 11], "texture": "#0"}, + "down": {"uv": [13.5, 8, 12, 11], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/item.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/item.json new file mode 100644 index 00000000..230783b3 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/item.json @@ -0,0 +1,78 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 4, 4], + "to": [12, 12, 12], + "faces": { + "east": {"uv": [0, 0, 4, 4], "rotation": 90, "texture": "#1"}, + "west": {"uv": [0, 0, 4, 4], "rotation": 90, "texture": "#1"}, + "up": {"uv": [0, 0, 4, 4], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 4, 4], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [4, 4, 12], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 0], "texture": "#1"}, + "east": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#1"}, + "south": {"uv": [0, 0, 0, 0], "texture": "#1"}, + "west": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#1"}, + "up": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 0], "texture": "#1"}, + "east": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#1"}, + "south": {"uv": [0, 0, 0, 0], "texture": "#1"}, + "west": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#1"}, + "up": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [3, 3, 0], + "to": [13, 13, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 28, 8]}, + "faces": { + "north": {"uv": [11, 11, 16, 16], "texture": "#1"}, + "east": {"uv": [10.5, 11, 11.5, 16], "texture": "#1"}, + "south": {"uv": [6, 11, 11, 16], "texture": "#1"}, + "west": {"uv": [11.5, 16, 10.5, 11], "texture": "#1"}, + "up": {"uv": [10.5, 11, 11.5, 16], "rotation": 270, "texture": "#1"}, + "down": {"uv": [11.5, 16, 10.5, 11], "rotation": 270, "texture": "#1"} + } + }, + { + "from": [3, 3, 14], + "to": [13, 13, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 28, 8]}, + "faces": { + "north": {"uv": [6, 11, 11, 16], "texture": "#1"}, + "east": {"uv": [11.5, 16, 10.5, 11], "texture": "#1"}, + "south": {"uv": [11, 11, 16, 16], "texture": "#1"}, + "west": {"uv": [10.5, 11, 11.5, 16], "texture": "#1"}, + "up": {"uv": [11.5, 16, 10.5, 11], "rotation": 270, "texture": "#1"}, + "down": {"uv": [10.5, 11, 11.5, 16], "rotation": 270, "texture": "#1"} + } + } + ], + "display": { + "fixed": { + "rotation": [0, 90, 0], + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/down.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/down.json new file mode 100644 index 00000000..2bb09327 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/down.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [3, 0, 3], + "to": [13, 2, 13], + "faces": { + "north": {"uv": [10.5, 11, 11.5, 16], "rotation": 90, "texture": "#0"}, + "east": {"uv": [10.5, 11, 11.5, 16], "rotation": 90, "texture": "#0"}, + "south": {"uv": [10.5, 11, 11.5, 16], "rotation": 90, "texture": "#0"}, + "west": {"uv": [10.5, 11, 11.5, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [6, 11, 11, 16], "rotation": 90, "texture": "#0"}, + "down": {"uv": [11, 11, 16, 16], "rotation": 270, "texture": "#0", "cullface": "down"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/east.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/east.json new file mode 100644 index 00000000..e25a9ad5 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/east.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [14, 3, 3], + "to": [16, 13, 13], + "faces": { + "north": {"uv": [11.5, 16, 10.5, 11], "texture": "#0"}, + "east": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "east"}, + "south": {"uv": [10.5, 11, 11.5, 16], "texture": "#0"}, + "west": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "up": {"uv": [11.5, 16, 10.5, 11], "rotation": 180, "texture": "#0"}, + "down": {"uv": [10.5, 11, 11.5, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/north.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/north.json new file mode 100644 index 00000000..a5ee4d2c --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/north.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [3, 3, 0], + "to": [13, 13, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 28, 8]}, + "faces": { + "north": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "north"}, + "east": {"uv": [10.5, 11, 11.5, 16], "texture": "#0"}, + "south": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "west": {"uv": [11.5, 16, 10.5, 11], "texture": "#0"}, + "up": {"uv": [10.5, 11, 11.5, 16], "rotation": 270, "texture": "#0"}, + "down": {"uv": [11.5, 16, 10.5, 11], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/south.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/south.json new file mode 100644 index 00000000..67b8a32a --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/south.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [3, 3, 14], + "to": [13, 13, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 28, 8]}, + "faces": { + "north": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "east": {"uv": [11.5, 16, 10.5, 11], "texture": "#0"}, + "south": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "south"}, + "west": {"uv": [10.5, 11, 11.5, 16], "texture": "#0"}, + "up": {"uv": [11.5, 16, 10.5, 11], "rotation": 270, "texture": "#0"}, + "down": {"uv": [10.5, 11, 11.5, 16], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/up.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/up.json new file mode 100644 index 00000000..78da141b --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/up.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [3, 14, 3], + "to": [13, 16, 13], + "faces": { + "north": {"uv": [11.5, 16, 10.5, 11], "rotation": 90, "texture": "#0"}, + "east": {"uv": [11.5, 16, 10.5, 11], "rotation": 90, "texture": "#0"}, + "south": {"uv": [11.5, 16, 10.5, 11], "rotation": 90, "texture": "#0"}, + "west": {"uv": [11.5, 16, 10.5, 11], "rotation": 90, "texture": "#0"}, + "up": {"uv": [11, 11, 16, 16], "rotation": 90, "texture": "#0", "cullface": "up"}, + "down": {"uv": [6, 11, 11, 16], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/west.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/west.json new file mode 100644 index 00000000..168c92e9 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim/west.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [0, 3, 3], + "to": [2, 13, 13], + "faces": { + "north": {"uv": [10.5, 11, 11.5, 16], "texture": "#0"}, + "east": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "south": {"uv": [11.5, 16, 10.5, 11], "texture": "#0"}, + "west": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "west"}, + "up": {"uv": [10.5, 11, 11.5, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [11.5, 16, 10.5, 11], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/down.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/down.json new file mode 100644 index 00000000..8aa7b123 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/down.json @@ -0,0 +1,20 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 2, 4], + "to": [12, 4, 12], + "faces": { + "north": {"uv": [0, 9, 4, 10], "texture": "#0"}, + "east": {"uv": [0, 9, 4, 10], "texture": "#0"}, + "south": {"uv": [4, 9, 0, 10], "texture": "#0"}, + "west": {"uv": [4, 9, 0, 10], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/east.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/east.json new file mode 100644 index 00000000..e4a0f370 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/east.json @@ -0,0 +1,20 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [12, 4, 4], + "to": [14, 12, 12], + "faces": { + "north": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 8, 0, 9], "rotation": 90, "texture": "#0"}, + "down": {"uv": [4, 9, 0, 10], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/north.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/north.json new file mode 100644 index 00000000..116041fe --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/north.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 4, 2], + "to": [12, 12, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "east": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/south.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/south.json new file mode 100644 index 00000000..2ff86eeb --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/south.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 4, 12], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "east": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/up.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/up.json new file mode 100644 index 00000000..b61c46df --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/up.json @@ -0,0 +1,20 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 12, 4], + "to": [12, 14, 12], + "faces": { + "north": {"uv": [0, 8, 4, 9], "texture": "#0"}, + "east": {"uv": [0, 8, 4, 9], "texture": "#0"}, + "south": {"uv": [4, 8, 0, 9], "texture": "#0"}, + "west": {"uv": [4, 8, 0, 9], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/west.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/west.json new file mode 100644 index 00000000..00ed2638 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/rim_connector/west.json @@ -0,0 +1,20 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [2, 4, 4], + "to": [4, 12, 12], + "faces": { + "north": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 9, 0, 10], "rotation": 90, "texture": "#0"}, + "down": {"uv": [4, 8, 0, 9], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/window.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/window.json new file mode 100644 index 00000000..0417cbdd --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/window.json @@ -0,0 +1,85 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/glass_steel_pipe", + "particle": "tfmg:block/steel_block" + }, + "elements": [ + { + "name": "Outer", + "from": [4, 0, 4], + "to": [12, 16, 12], + "faces": { + "north": {"uv": [0, 16, 16, 8], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 16, 16, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4, 0, 11.9], + "to": [12, 16, 11.9], + "faces": { + "north": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4.1, 0, 4], + "to": [4.1, 16, 12], + "faces": { + "east": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4, 0, 4.1], + "to": [12, 16, 4.1], + "faces": { + "south": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [11.9, 0, 4], + "to": [11.9, 16, 12], + "faces": { + "west": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [4, 0, 4], + "to": [6, 16, 6], + "faces": { + "east": {"uv": [0, 14, 16, 16], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 8, 16, 10], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [4, 0, 10], + "to": [6, 16, 12], + "faces": { + "north": {"uv": [0, 10, 16, 8], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 16, 16, 14], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [10, 0, 4], + "to": [12, 16, 6], + "faces": { + "south": {"uv": [0, 14, 16, 16], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 8, 16, 10], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [10, 0, 10], + "to": [12, 16, 12], + "faces": { + "north": {"uv": [0, 16, 16, 14], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 10, 16, 8], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/window_alt.json b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/window_alt.json new file mode 100644 index 00000000..b43bb3f3 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/locked_steel_pipe/window_alt.json @@ -0,0 +1,58 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/glass_steel_pipe", + "particle": "#0" + }, + "elements": [ + { + "name": "Outer", + "from": [4, 0, 4], + "to": [12, 16, 12], + "shade": false, + "faces": { + "north": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4, 0, 11.5], + "to": [12, 16, 11.5], + "shade": false, + "faces": { + "north": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4, 0, 4.5], + "to": [12, 16, 4.5], + "shade": false, + "faces": { + "south": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4.5, 0, 4], + "to": [4.5, 16, 12], + "shade": false, + "faces": { + "east": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [11.5, 0, 4], + "to": [11.5, 16, 12], + "shade": false, + "faces": { + "west": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom.json new file mode 100644 index 00000000..6a782c85 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom.json @@ -0,0 +1,74 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/fluid_tank" + }, + "elements": [ + { + "name": "Lid", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + }, + { + "name": "SideRight", + "from": [0, 4, 0], + "to": [16, 16, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, -23]}, + "faces": { + "north": {"uv": [0, 0, 16, 12], "texture": "#1", "cullface": "north"}, + "south": {"uv": [0, 0, 16, 12], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideRight", + "from": [15, 4, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, 8]}, + "faces": { + "east": {"uv": [0, 0, 16, 12], "texture": "#1", "cullface": "east"}, + "west": {"uv": [0, 0, 16, 12], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideRight", + "from": [0, 4, 15], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 12], "texture": "#1", "cullface": "south"}, + "south": {"uv": [0, 0, 16, 12], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideRight", + "from": [0, 4, 0], + "to": [1, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, 8]}, + "faces": { + "east": {"uv": [0, 0, 16, 12], "texture": "#1", "cullface": "west"}, + "west": {"uv": [0, 0, 16, 12], "texture": "#1", "cullface": "west"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window.json new file mode 100644 index 00000000..af778997 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window.json @@ -0,0 +1,154 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 4, 0], + "to": [4, 16, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 0, 1, 12], "texture": "#1", "cullface": "north"}, + "south": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideRight", + "from": [15, 4, 0], + "to": [16, 16, 4], + "faces": { + "east": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 0, 1, 12], "texture": "#1", "cullface": "east"}, + "west": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideRight", + "from": [12, 4, 15], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "south"}, + "south": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 0, 1, 12], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideRight", + "from": [0, 4, 12], + "to": [1, 16, 16], + "faces": { + "north": {"uv": [0, 0, 1, 12], "texture": "#1", "cullface": "west"}, + "east": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "west"}, + "west": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "west"} + } + }, + { + "name": "Window", + "from": [4, 4, 0.95], + "to": [12, 16, 0.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "north"}, + "south": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "north"} + } + }, + { + "name": "Window", + "from": [15.05, 4, 4], + "to": [15.05, 16, 12], + "faces": { + "east": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "east"}, + "west": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "east"} + } + }, + { + "name": "Window", + "from": [4, 4, 15.05], + "to": [12, 16, 15.05], + "faces": { + "north": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "south"}, + "south": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "south"} + } + }, + { + "name": "Window", + "from": [0.95, 4, 4], + "to": [0.95, 16, 12], + "faces": { + "east": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "west"}, + "west": {"uv": [0, 4, 8, 16], "texture": "#3", "cullface": "west"} + } + }, + { + "name": "SideLeft", + "from": [12, 4, 0], + "to": [16, 16, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "north"}, + "south": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "north"}, + "west": {"uv": [15, 0, 16, 12], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideLeft", + "from": [15, 4, 12], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [15, 0, 16, 12], "texture": "#1", "cullface": "east"}, + "east": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "east"}, + "west": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideLeft", + "from": [0, 4, 15], + "to": [4, 16, 16], + "faces": { + "north": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "south"}, + "east": {"uv": [15, 0, 16, 12], "texture": "#1", "cullface": "south"}, + "south": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideLeft", + "from": [0, 4, 0], + "to": [1, 16, 4], + "faces": { + "east": {"uv": [12, 0, 16, 12], "texture": "#1", "cullface": "west"}, + "south": {"uv": [15, 0, 16, 12], "texture": "#1", "cullface": "west"}, + "west": {"uv": [0, 0, 4, 12], "texture": "#1", "cullface": "west"} + } + }, + { + "name": "Bottom", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_ne.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_ne.json new file mode 100644 index 00000000..0757212e --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_ne.json @@ -0,0 +1,73 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [15, 4, 0], + "to": [16, 16, 12], + "faces": { + "east": {"uv": [4, 0, 16, 12], "texture": "#1"}, + "south": {"uv": [4, 0, 5, 12], "texture": "#1"}, + "west": {"uv": [0, 0, 12, 12], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [0, 4, 0.95], + "to": [4, 16, 0.95], + "faces": { + "north": {"uv": [0, 4, 4, 16], "texture": "#3"}, + "south": {"uv": [4, 4, 8, 16], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [15.05, 4, 12], + "to": [15.05, 16, 16], + "faces": { + "east": {"uv": [4, 4, 8, 16], "texture": "#3"}, + "west": {"uv": [0, 4, 4, 16], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [4, 4, 0], + "to": [16, 16, 1], + "faces": { + "north": {"uv": [0, 0, 12, 12], "texture": "#1"}, + "south": {"uv": [4, 0, 16, 12], "texture": "#1"}, + "west": {"uv": [11, 0, 12, 12], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-23, 8, 8]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_nw.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_nw.json new file mode 100644 index 00000000..0ddd4b3f --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_nw.json @@ -0,0 +1,73 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 4, 0], + "to": [12, 16, 1], + "faces": { + "north": {"uv": [4, 0, 16, 12], "texture": "#1"}, + "east": {"uv": [4, 0, 5, 12], "texture": "#1"}, + "south": {"uv": [0, 0, 12, 12], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [0.95, 4, 12], + "to": [0.95, 16, 16], + "faces": { + "east": {"uv": [4, 4, 8, 16], "texture": "#3"}, + "west": {"uv": [0, 4, 4, 16], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [12, 4, 0.95], + "to": [16, 16, 0.95], + "faces": { + "north": {"uv": [4, 4, 8, 16], "texture": "#3"}, + "south": {"uv": [0, 4, 4, 16], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [0, 4, 0], + "to": [1, 16, 12], + "faces": { + "east": {"uv": [4, 0, 16, 12], "texture": "#1"}, + "south": {"uv": [11, 0, 12, 12], "texture": "#1"}, + "west": {"uv": [0, 0, 12, 12], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 39]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_se.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_se.json new file mode 100644 index 00000000..489a9ebb --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_se.json @@ -0,0 +1,73 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [4, 4, 15], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 12, 12], "texture": "#1"}, + "south": {"uv": [4, 0, 16, 12], "texture": "#1"}, + "west": {"uv": [4, 0, 5, 12], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [15.05, 4, 0], + "to": [15.05, 16, 4], + "faces": { + "east": {"uv": [0, 4, 4, 16], "texture": "#3"}, + "west": {"uv": [4, 4, 8, 16], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [0, 4, 15.05], + "to": [4, 16, 15.05], + "faces": { + "north": {"uv": [0, 4, 4, 16], "texture": "#3"}, + "south": {"uv": [4, 4, 8, 16], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [15, 4, 4], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [11, 0, 12, 12], "texture": "#1"}, + "east": {"uv": [0, 0, 12, 12], "texture": "#1"}, + "west": {"uv": [4, 0, 16, 12], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_sw.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_sw.json new file mode 100644 index 00000000..bf7908c4 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_bottom_window_sw.json @@ -0,0 +1,73 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 4, 4], + "to": [1, 16, 16], + "faces": { + "north": {"uv": [4, 0, 5, 12], "texture": "#1"}, + "east": {"uv": [0, 0, 12, 12], "texture": "#1"}, + "west": {"uv": [4, 0, 16, 12], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [12, 4, 15.05], + "to": [16, 16, 15.05], + "faces": { + "north": {"uv": [4, 4, 8, 16], "texture": "#3"}, + "south": {"uv": [0, 4, 4, 16], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [0.95, 4, 0], + "to": [0.95, 16, 4], + "faces": { + "east": {"uv": [0, 4, 4, 16], "texture": "#3"}, + "west": {"uv": [4, 4, 8, 16], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [0, 4, 15], + "to": [12, 16, 16], + "faces": { + "north": {"uv": [4, 0, 16, 12], "texture": "#1"}, + "east": {"uv": [11, 0, 12, 12], "texture": "#1"}, + "south": {"uv": [0, 0, 12, 12], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [39, 8, 8]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle.json new file mode 100644 index 00000000..3127b307 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle.json @@ -0,0 +1,57 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfmg:block/steel_fluid_tank", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 0, 0], + "to": [16, 16, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, -23]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#1", "cullface": "north"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideRight", + "from": [15, 0, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, 8]}, + "faces": { + "east": {"uv": [0, 0, 16, 16], "texture": "#1", "cullface": "east"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideRight", + "from": [0, 0, 15], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 16], "texture": "#1", "cullface": "south"}, + "south": {"uv": [0, 0, 16, 16], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideRight", + "from": [0, 0, 0], + "to": [1, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, 8]}, + "faces": { + "east": {"uv": [0, 0, 16, 16], "texture": "#1", "cullface": "west"}, + "west": {"uv": [0, 0, 16, 16], "texture": "#1", "cullface": "west"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "children": [0, 1, 2, 3] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window.json new file mode 100644 index 00000000..5fed45fe --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window.json @@ -0,0 +1,138 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/fluid_tank_window", + "particle": "tfmg:block/fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 0, 0], + "to": [4, 16, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 0, 1, 16], "texture": "#1", "cullface": "north"}, + "south": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideRight", + "from": [15, 0, 0], + "to": [16, 16, 4], + "faces": { + "east": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 0, 1, 16], "texture": "#1", "cullface": "east"}, + "west": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideRight", + "from": [12, 0, 15], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "south"}, + "south": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 0, 1, 16], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideRight", + "from": [0, 0, 12], + "to": [1, 16, 16], + "faces": { + "north": {"uv": [0, 0, 1, 16], "texture": "#1", "cullface": "west"}, + "east": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "west"}, + "west": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "west"} + } + }, + { + "name": "Window", + "from": [4, 0, 0.95], + "to": [12, 16, 0.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "north"}, + "south": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "north"} + } + }, + { + "name": "Window", + "from": [15.05, 0, 4], + "to": [15.05, 16, 12], + "faces": { + "east": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "east"}, + "west": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "east"} + } + }, + { + "name": "Window", + "from": [4, 0, 15.05], + "to": [12, 16, 15.05], + "faces": { + "north": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "south"}, + "south": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "south"} + } + }, + { + "name": "Window", + "from": [0.95, 0, 4], + "to": [0.95, 16, 12], + "faces": { + "east": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "west"}, + "west": {"uv": [8, 0, 16, 16], "texture": "#3", "cullface": "west"} + } + }, + { + "name": "SideLeft", + "from": [12, 0, 0], + "to": [16, 16, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "north"}, + "south": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "north"}, + "west": {"uv": [15, 0, 16, 16], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideLeft", + "from": [15, 0, 12], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [15, 0, 16, 16], "texture": "#1", "cullface": "east"}, + "east": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "east"}, + "west": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideLeft", + "from": [0, 0, 15], + "to": [4, 16, 16], + "faces": { + "north": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "south"}, + "east": {"uv": [15, 0, 16, 16], "texture": "#1", "cullface": "south"}, + "south": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideLeft", + "from": [0, 0, 0], + "to": [1, 16, 4], + "faces": { + "east": {"uv": [12, 0, 16, 16], "texture": "#1", "cullface": "west"}, + "south": {"uv": [15, 0, 16, 16], "texture": "#1", "cullface": "west"}, + "west": {"uv": [0, 0, 4, 16], "texture": "#1", "cullface": "west"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_ne.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_ne.json new file mode 100644 index 00000000..82746bb0 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_ne.json @@ -0,0 +1,57 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [15, 0, 0], + "to": [16, 16, 12], + "faces": { + "east": {"uv": [4, 0, 16, 16], "texture": "#1"}, + "south": {"uv": [4, 0, 5, 16], "texture": "#1"}, + "west": {"uv": [0, 0, 12, 16], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [0, 0, 0.95], + "to": [4, 16, 0.95], + "faces": { + "north": {"uv": [8, 0, 12, 16], "texture": "#3"}, + "south": {"uv": [12, 0, 16, 16], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [15.05, 0, 12], + "to": [15.05, 16, 16], + "faces": { + "east": {"uv": [12, 0, 16, 16], "texture": "#3"}, + "west": {"uv": [8, 0, 12, 16], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [4, 0, 0], + "to": [16, 16, 1], + "faces": { + "north": {"uv": [0, 0, 12, 16], "texture": "#1"}, + "south": {"uv": [4, 0, 16, 16], "texture": "#1"}, + "west": {"uv": [11, 0, 12, 16], "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_nw.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_nw.json new file mode 100644 index 00000000..c4097982 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_nw.json @@ -0,0 +1,57 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 0, 0], + "to": [12, 16, 1], + "faces": { + "north": {"uv": [4, 0, 16, 16], "texture": "#1"}, + "east": {"uv": [4, 0, 5, 16], "texture": "#1"}, + "south": {"uv": [0, 0, 12, 16], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [0.95, 0, 12], + "to": [0.95, 16, 16], + "faces": { + "east": {"uv": [12, 0, 16, 16], "texture": "#3"}, + "west": {"uv": [8, 0, 12, 16], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [12, 0, 0.95], + "to": [16, 16, 0.95], + "faces": { + "north": {"uv": [12, 0, 16, 16], "texture": "#3"}, + "south": {"uv": [8, 0, 12, 16], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [0, 0, 0], + "to": [1, 16, 12], + "faces": { + "east": {"uv": [4, 0, 16, 16], "texture": "#1"}, + "south": {"uv": [11, 0, 12, 16], "texture": "#1"}, + "west": {"uv": [0, 0, 12, 16], "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_se.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_se.json new file mode 100644 index 00000000..6ab6999a --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_se.json @@ -0,0 +1,57 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [4, 0, 15], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [0, 0, 12, 16], "texture": "#1"}, + "south": {"uv": [4, 0, 16, 16], "texture": "#1"}, + "west": {"uv": [4, 0, 5, 16], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [15.05, 0, 0], + "to": [15.05, 16, 4], + "faces": { + "east": {"uv": [8, 0, 12, 16], "texture": "#3"}, + "west": {"uv": [12, 0, 16, 16], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [0, 0, 15.05], + "to": [4, 16, 15.05], + "faces": { + "north": {"uv": [8, 0, 12, 16], "texture": "#3"}, + "south": {"uv": [12, 0, 16, 16], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [15, 0, 4], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [11, 0, 12, 16], "texture": "#1"}, + "east": {"uv": [0, 0, 12, 16], "texture": "#1"}, + "west": {"uv": [4, 0, 16, 16], "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_sw.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_sw.json new file mode 100644 index 00000000..2b0392c1 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_middle_window_sw.json @@ -0,0 +1,57 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 0, 4], + "to": [1, 16, 16], + "faces": { + "north": {"uv": [4, 0, 5, 16], "texture": "#1"}, + "east": {"uv": [0, 0, 12, 16], "texture": "#1"}, + "west": {"uv": [4, 0, 16, 16], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [12, 0, 15.05], + "to": [16, 16, 15.05], + "faces": { + "north": {"uv": [12, 0, 16, 16], "texture": "#3"}, + "south": {"uv": [8, 0, 12, 16], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [0.95, 0, 0], + "to": [0.95, 16, 4], + "faces": { + "east": {"uv": [8, 0, 12, 16], "texture": "#3"}, + "west": {"uv": [12, 0, 16, 16], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [0, 0, 15], + "to": [12, 16, 16], + "faces": { + "north": {"uv": [4, 0, 16, 16], "texture": "#1"}, + "east": {"uv": [11, 0, 12, 16], "texture": "#1"}, + "south": {"uv": [0, 0, 12, 16], "texture": "#1"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single.json new file mode 100644 index 00000000..e0454ab4 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single.json @@ -0,0 +1,127 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "Lid", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + }, + { + "name": "SideRight", + "from": [15, 4, 0], + "to": [16, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, 8]}, + "faces": { + "east": {"uv": [0, 4, 16, 12], "texture": "#1", "cullface": "east"}, + "west": {"uv": [0, 4, 16, 12], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideRight", + "from": [0, 4, 15], + "to": [16, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, 8]}, + "faces": { + "north": {"uv": [0, 4, 16, 12], "texture": "#1", "cullface": "south"}, + "south": {"uv": [0, 4, 16, 12], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideRight", + "from": [0, 4, 0], + "to": [1, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 12, 8]}, + "faces": { + "east": {"uv": [0, 4, 16, 12], "texture": "#1", "cullface": "west"}, + "west": {"uv": [0, 4, 16, 12], "texture": "#1", "cullface": "west"} + } + }, + { + "name": "Lid", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + }, + { + "name": "SideRight", + "from": [0, 4, 0], + "to": [16, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 4, 16, 12], "texture": "#1", "cullface": "north"}, + "south": {"uv": [0, 4, 16, 12], "texture": "#1", "cullface": "north"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [] + }, + { + "name": "block_middle", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [] + } + ] + }, + { + "name": "block_bottom", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3] + } + ] + }, + { + "name": "block_top", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [4, 5] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window.json new file mode 100644 index 00000000..b9bca23d --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window.json @@ -0,0 +1,168 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "4": "tfmg:block/steel_fluid_tank_inner", + "5": "tfmg:block/steel_fluid_tank_window_single", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "Lid", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + }, + { + "name": "SideRight", + "from": [0, 4, 0], + "to": [4, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "north"}, + "east": {"uv": [8, 4, 9, 12], "texture": "#1", "cullface": "north"}, + "south": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideRight", + "from": [15, 4, 0], + "to": [16, 12, 4], + "faces": { + "east": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "east"}, + "south": {"uv": [8, 4, 9, 12], "texture": "#1", "cullface": "east"}, + "west": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideRight", + "from": [12, 4, 15], + "to": [16, 12, 16], + "faces": { + "north": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "south"}, + "south": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "south"}, + "west": {"uv": [8, 4, 9, 12], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideRight", + "from": [0, 4, 12], + "to": [1, 12, 16], + "faces": { + "north": {"uv": [8, 4, 9, 12], "texture": "#1", "cullface": "west"}, + "east": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "west"}, + "west": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "west"} + } + }, + { + "name": "Window", + "from": [4, 4, 0.95], + "to": [12, 12, 0.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "north"}, + "south": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "north"} + } + }, + { + "name": "Window", + "from": [15.05, 4, 4], + "to": [15.05, 12, 12], + "faces": { + "east": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "east"}, + "west": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "east"} + } + }, + { + "name": "Window", + "from": [4, 4, 15.05], + "to": [12, 12, 15.05], + "faces": { + "north": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "south"}, + "south": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "south"} + } + }, + { + "name": "Window", + "from": [0.95, 4, 4], + "to": [0.95, 12, 12], + "faces": { + "east": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "west"}, + "west": {"uv": [0, 0, 8, 8], "texture": "#5", "cullface": "west"} + } + }, + { + "name": "SideLeft", + "from": [12, 4, 0], + "to": [16, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "north"}, + "south": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "north"}, + "west": {"uv": [7, 4, 8, 12], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideLeft", + "from": [15, 4, 12], + "to": [16, 12, 16], + "faces": { + "north": {"uv": [7, 4, 8, 12], "texture": "#1", "cullface": "east"}, + "east": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "east"}, + "west": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideLeft", + "from": [0, 4, 15], + "to": [4, 12, 16], + "faces": { + "north": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "south"}, + "east": {"uv": [7, 4, 8, 12], "texture": "#1", "cullface": "south"}, + "south": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideLeft", + "from": [0, 4, 0], + "to": [1, 12, 4], + "faces": { + "east": {"uv": [12, 4, 16, 12], "texture": "#1", "cullface": "west"}, + "south": {"uv": [7, 4, 8, 12], "texture": "#1", "cullface": "west"}, + "west": {"uv": [0, 4, 4, 12], "texture": "#1", "cullface": "west"} + } + }, + { + "name": "Bottom", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_ne.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_ne.json new file mode 100644 index 00000000..a40ef9cc --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_ne.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "4": "tfmg:block/steel_fluid_tank_inner", + "5": "tfmg:block/steel_fluid_tank_window_single", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [15, 4, 0], + "to": [16, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [4, 4, 16, 12], "texture": "#1"}, + "south": {"uv": [4, 4, 5, 12], "texture": "#1"}, + "west": {"uv": [0, 4, 12, 12], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [0, 4, 0.95], + "to": [4, 12, 0.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [0, 0, 4, 8], "texture": "#5"}, + "south": {"uv": [4, 0, 8, 8], "texture": "#5"} + } + }, + { + "name": "Window", + "from": [15.05, 4, 12], + "to": [15.05, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [4, 0, 8, 8], "texture": "#5"}, + "west": {"uv": [0, 0, 4, 8], "texture": "#5"} + } + }, + { + "name": "SideLeft", + "from": [4, 4, 0], + "to": [16, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [0, 4, 12, 12], "texture": "#1"}, + "south": {"uv": [4, 4, 16, 12], "texture": "#1"}, + "west": {"uv": [11, 4, 12, 12], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-23, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + }, + { + "name": "Bottom", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-23, 8, 8]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + }, + { + "name": "block_bottom_centered_window", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [5] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_nw.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_nw.json new file mode 100644 index 00000000..08d3396f --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_nw.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "4": "tfmg:block/steel_fluid_tank_inner", + "5": "tfmg:block/steel_fluid_tank_window_single", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 4, 0], + "to": [12, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [4, 4, 16, 12], "texture": "#1"}, + "east": {"uv": [4, 4, 5, 12], "texture": "#1"}, + "south": {"uv": [0, 4, 12, 12], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [0.95, 4, 12], + "to": [0.95, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [4, 0, 8, 8], "texture": "#5"}, + "west": {"uv": [0, 0, 4, 8], "texture": "#5"} + } + }, + { + "name": "Window", + "from": [12, 4, 0.95], + "to": [16, 12, 0.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [4, 0, 8, 8], "texture": "#5"}, + "south": {"uv": [0, 0, 4, 8], "texture": "#5"} + } + }, + { + "name": "SideLeft", + "from": [0, 4, 0], + "to": [1, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [4, 4, 16, 12], "texture": "#1"}, + "south": {"uv": [11, 4, 12, 12], "texture": "#1"}, + "west": {"uv": [0, 4, 12, 12], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 39]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + }, + { + "name": "Bottom", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 39]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + }, + { + "name": "block_bottom_centered_window", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [5] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_se.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_se.json new file mode 100644 index 00000000..fe43fd30 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_se.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "4": "tfmg:block/steel_fluid_tank_inner", + "5": "tfmg:block/steel_fluid_tank_window_single", + "particle": "tfmg:block/fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [4, 4, 15], + "to": [16, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [0, 4, 12, 12], "texture": "#1"}, + "south": {"uv": [4, 4, 16, 12], "texture": "#1"}, + "west": {"uv": [4, 4, 5, 12], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [15.05, 4, 0], + "to": [15.05, 12, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [0, 0, 4, 8], "texture": "#5"}, + "west": {"uv": [4, 0, 8, 8], "texture": "#5"} + } + }, + { + "name": "Window", + "from": [0, 4, 15.05], + "to": [4, 12, 15.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [0, 0, 4, 8], "texture": "#5"}, + "south": {"uv": [4, 0, 8, 8], "texture": "#5"} + } + }, + { + "name": "SideLeft", + "from": [15, 4, 4], + "to": [16, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [11, 4, 12, 12], "texture": "#1"}, + "east": {"uv": [0, 4, 12, 12], "texture": "#1"}, + "west": {"uv": [4, 4, 16, 12], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + }, + { + "name": "Bottom", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + }, + { + "name": "block_bottom_centered_window", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [5] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_sw.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_sw.json new file mode 100644 index 00000000..af1c85e7 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_single_window_sw.json @@ -0,0 +1,104 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "4": "tfmg:block/steel_fluid_tank_inner", + "5": "tfmg:block/steel_fluid_tank_window_single", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 4, 4], + "to": [1, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [4, 4, 5, 12], "texture": "#1"}, + "east": {"uv": [0, 4, 12, 12], "texture": "#1"}, + "west": {"uv": [4, 4, 16, 12], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [12, 4, 15.05], + "to": [16, 12, 15.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [4, 0, 8, 8], "texture": "#5"}, + "south": {"uv": [0, 0, 4, 8], "texture": "#5"} + } + }, + { + "name": "Window", + "from": [0.95, 4, 0], + "to": [0.95, 12, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [0, 0, 4, 8], "texture": "#5"}, + "west": {"uv": [4, 0, 8, 8], "texture": "#5"} + } + }, + { + "name": "SideLeft", + "from": [0, 4, 15], + "to": [12, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [4, 4, 16, 12], "texture": "#1"}, + "east": {"uv": [11, 4, 12, 12], "texture": "#1"}, + "south": {"uv": [0, 4, 12, 12], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [39, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + }, + { + "name": "Bottom", + "from": [0, 0, 0], + "to": [16, 4, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [39, 8, 8]}, + "faces": { + "north": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "east": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "south": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "west": {"uv": [0, 12, 16, 16], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#4"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "down"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + }, + { + "name": "block_bottom_centered_window", + "origin": [8, 8, 8], + "color": 0, + "children": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [5] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top.json new file mode 100644 index 00000000..95c767c1 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top.json @@ -0,0 +1,71 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "Lid", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + }, + { + "name": "SideRight", + "from": [0, 0, 0], + "to": [16, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 4, 16, 16], "texture": "#1", "cullface": "north"}, + "south": {"uv": [0, 4, 16, 16], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideRight", + "from": [15, 0, 0], + "to": [16, 12, 16], + "faces": { + "east": {"uv": [0, 4, 16, 16], "texture": "#1", "cullface": "east"}, + "west": {"uv": [0, 4, 16, 16], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideRight", + "from": [0, 0, 15], + "to": [16, 12, 16], + "faces": { + "north": {"uv": [0, 4, 16, 16], "texture": "#1", "cullface": "south"}, + "south": {"uv": [0, 4, 16, 16], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideRight", + "from": [0, 0, 0], + "to": [1, 12, 16], + "faces": { + "east": {"uv": [0, 4, 16, 16], "texture": "#1", "cullface": "west"}, + "west": {"uv": [0, 4, 16, 16], "texture": "#1", "cullface": "west"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window.json new file mode 100644 index 00000000..d1d0ac08 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window.json @@ -0,0 +1,154 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "Lid", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1", "cullface": "west"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + }, + { + "name": "SideRight", + "from": [0, 0, 0], + "to": [4, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "north"}, + "east": {"uv": [0, 4, 1, 16], "texture": "#1", "cullface": "north"}, + "south": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideRight", + "from": [15, 0, 0], + "to": [16, 12, 4], + "faces": { + "east": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "east"}, + "south": {"uv": [0, 4, 1, 16], "texture": "#1", "cullface": "east"}, + "west": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideRight", + "from": [12, 0, 15], + "to": [16, 12, 16], + "faces": { + "north": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "south"}, + "south": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "south"}, + "west": {"uv": [0, 4, 1, 16], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideRight", + "from": [0, 0, 12], + "to": [1, 12, 16], + "faces": { + "north": {"uv": [0, 4, 1, 16], "texture": "#1", "cullface": "west"}, + "east": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "west"}, + "west": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "west"} + } + }, + { + "name": "Window", + "from": [4, 0, 0.95], + "to": [12, 12, 0.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "north"}, + "south": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "north"} + } + }, + { + "name": "Window", + "from": [15.05, 0, 4], + "to": [15.05, 12, 12], + "faces": { + "east": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "east"}, + "west": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "east"} + } + }, + { + "name": "Window", + "from": [4, 0, 15.05], + "to": [12, 12, 15.05], + "faces": { + "north": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "south"}, + "south": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "south"} + } + }, + { + "name": "Window", + "from": [0.95, 0, 4], + "to": [0.95, 12, 12], + "faces": { + "east": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "west"}, + "west": {"uv": [0, 0, 8, 12], "texture": "#3", "cullface": "west"} + } + }, + { + "name": "SideLeft", + "from": [12, 0, 0], + "to": [16, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "north"}, + "south": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "north"}, + "west": {"uv": [15, 4, 16, 16], "texture": "#1", "cullface": "north"} + } + }, + { + "name": "SideLeft", + "from": [15, 0, 12], + "to": [16, 12, 16], + "faces": { + "north": {"uv": [15, 4, 16, 16], "texture": "#1", "cullface": "east"}, + "east": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "east"}, + "west": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "east"} + } + }, + { + "name": "SideLeft", + "from": [0, 0, 15], + "to": [4, 12, 16], + "faces": { + "north": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "south"}, + "east": {"uv": [15, 4, 16, 16], "texture": "#1", "cullface": "south"}, + "south": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "south"} + } + }, + { + "name": "SideLeft", + "from": [0, 0, 0], + "to": [1, 12, 4], + "faces": { + "east": {"uv": [12, 4, 16, 16], "texture": "#1", "cullface": "west"}, + "south": {"uv": [15, 4, 16, 16], "texture": "#1", "cullface": "west"}, + "west": {"uv": [0, 4, 4, 16], "texture": "#1", "cullface": "west"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_ne.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_ne.json new file mode 100644 index 00000000..d60a2c2a --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_ne.json @@ -0,0 +1,77 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [15, 0, 0], + "to": [16, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [4, 4, 16, 16], "texture": "#1"}, + "south": {"uv": [4, 4, 5, 16], "texture": "#1"}, + "west": {"uv": [0, 4, 12, 16], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [0, 0, 0.95], + "to": [4, 12, 0.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [0, 0, 4, 12], "texture": "#3"}, + "south": {"uv": [4, 0, 8, 12], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [15.05, 0, 12], + "to": [15.05, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [4, 0, 8, 12], "texture": "#3"}, + "west": {"uv": [0, 0, 4, 12], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [4, 0, 0], + "to": [16, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [0, 4, 12, 16], "texture": "#1"}, + "south": {"uv": [4, 4, 16, 16], "texture": "#1"}, + "west": {"uv": [11, 4, 12, 16], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [-23, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_nw.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_nw.json new file mode 100644 index 00000000..81a4d646 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_nw.json @@ -0,0 +1,77 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 0, 0], + "to": [12, 12, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [4, 4, 16, 16], "texture": "#1"}, + "east": {"uv": [4, 4, 5, 16], "texture": "#1"}, + "south": {"uv": [0, 4, 12, 16], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [0.95, 0, 12], + "to": [0.95, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [4, 0, 8, 12], "texture": "#3"}, + "west": {"uv": [0, 0, 4, 12], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [12, 0, 0.95], + "to": [16, 12, 0.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [4, 0, 8, 12], "texture": "#3"}, + "south": {"uv": [0, 0, 4, 12], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [0, 0, 0], + "to": [1, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [4, 4, 16, 16], "texture": "#1"}, + "south": {"uv": [11, 4, 12, 16], "texture": "#1"}, + "west": {"uv": [0, 4, 12, 16], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 39]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_se.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_se.json new file mode 100644 index 00000000..3d540872 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_se.json @@ -0,0 +1,77 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [4, 0, 15], + "to": [16, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [0, 4, 12, 16], "texture": "#1"}, + "south": {"uv": [4, 4, 16, 16], "texture": "#1"}, + "west": {"uv": [4, 4, 5, 16], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [15.05, 0, 0], + "to": [15.05, 12, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [0, 0, 4, 12], "texture": "#3"}, + "west": {"uv": [4, 0, 8, 12], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [0, 0, 15.05], + "to": [4, 12, 15.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [0, 0, 4, 12], "texture": "#3"}, + "south": {"uv": [4, 0, 8, 12], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [15, 0, 4], + "to": [16, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [11, 4, 12, 16], "texture": "#1"}, + "east": {"uv": [0, 4, 12, 16], "texture": "#1"}, + "west": {"uv": [4, 4, 16, 16], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, -23]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_sw.json b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_sw.json new file mode 100644 index 00000000..ae956f67 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_fluid_tank/block_top_window_sw.json @@ -0,0 +1,77 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/steel_fluid_tank_top", + "1": "tfmg:block/steel_fluid_tank", + "3": "tfmg:block/steel_fluid_tank_window", + "4": "tfmg:block/steel_fluid_tank_inner", + "particle": "tfmg:block/steel_fluid_tank" + }, + "elements": [ + { + "name": "SideRight", + "from": [0, 0, 4], + "to": [1, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [4, 4, 5, 16], "texture": "#1"}, + "east": {"uv": [0, 4, 12, 16], "texture": "#1"}, + "west": {"uv": [4, 4, 16, 16], "texture": "#1"} + } + }, + { + "name": "Window", + "from": [12, 0, 15.05], + "to": [16, 12, 15.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [4, 0, 8, 12], "texture": "#3"}, + "south": {"uv": [0, 0, 4, 12], "texture": "#3"} + } + }, + { + "name": "Window", + "from": [0.95, 0, 0], + "to": [0.95, 12, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "east": {"uv": [0, 0, 4, 12], "texture": "#3"}, + "west": {"uv": [4, 0, 8, 12], "texture": "#3"} + } + }, + { + "name": "SideLeft", + "from": [0, 0, 15], + "to": [12, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [4, 4, 16, 16], "texture": "#1"}, + "east": {"uv": [11, 4, 12, 16], "texture": "#1"}, + "south": {"uv": [0, 4, 12, 16], "texture": "#1"} + } + }, + { + "name": "Bottom", + "from": [0, 12, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [39, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "east": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "south": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "west": {"uv": [0, 0, 16, 4], "texture": "#1"}, + "up": {"uv": [0, 0, 16, 16], "texture": "#0", "cullface": "up"}, + "down": {"uv": [0, 0, 16, 16], "texture": "#4"} + } + } + ], + "groups": [ + { + "name": "tank", + "origin": [8, 8, -23], + "color": 0, + "children": [0, 1, 2, 3, 4] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/casing.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/casing.json new file mode 100644 index 00000000..7fd2878d --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/casing.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [3, 3, 3], + "to": [13, 13, 13], + "faces": { + "north": {"uv": [1, 11, 6, 16], "texture": "#0"}, + "east": {"uv": [1, 11, 6, 16], "texture": "#0"}, + "south": {"uv": [1, 11, 6, 16], "texture": "#0"}, + "west": {"uv": [1, 11, 6, 16], "texture": "#0"}, + "up": {"uv": [1, 11, 6, 16], "texture": "#0"}, + "down": {"uv": [1, 11, 6, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/down.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/down.json new file mode 100644 index 00000000..3ea2ecbc --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/down.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 0, 4], + "to": [12, 4, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, -16]}, + "faces": { + "north": {"uv": [0, 6, 4, 8], "texture": "#0"}, + "east": {"uv": [0, 6, 4, 8], "texture": "#0"}, + "south": {"uv": [4, 6, 0, 8], "texture": "#0"}, + "west": {"uv": [4, 6, 0, 8], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/east.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/east.json new file mode 100644 index 00000000..dbd9770f --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/east.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [12, 4, 4], + "to": [16, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, -16]}, + "faces": { + "north": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 0, 4, 2], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 0, 0, 2], "rotation": 90, "texture": "#0"}, + "down": {"uv": [4, 6, 0, 8], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/north.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/north.json new file mode 100644 index 00000000..c3732679 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/north.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 4, 0], + "to": [12, 12, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]}, + "faces": { + "east": {"uv": [0, 0, 4, 2], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 6, 4, 8], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 0, 4, 2], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/south.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/south.json new file mode 100644 index 00000000..3238f757 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/south.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 4, 12], + "to": [12, 12, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [0, 8, 0]}, + "faces": { + "east": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 0, 4, 2], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 0, 4, 2], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 6, 4, 8], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/up.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/up.json new file mode 100644 index 00000000..6f442a98 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/up.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 12, 4], + "to": [12, 16, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, -16]}, + "faces": { + "north": {"uv": [0, 0, 4, 2], "texture": "#0"}, + "east": {"uv": [0, 0, 4, 2], "texture": "#0"}, + "south": {"uv": [4, 0, 0, 2], "texture": "#0"}, + "west": {"uv": [4, 0, 0, 2], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/west.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/west.json new file mode 100644 index 00000000..c1f30251 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/connection/west.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [0, 4, 4], + "to": [4, 12, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 0, -16]}, + "faces": { + "north": {"uv": [0, 0, 4, 2], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 6, 4, 8], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 6, 0, 8], "rotation": 90, "texture": "#0"}, + "down": {"uv": [4, 0, 0, 2], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/core_x.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/core_x.json new file mode 100644 index 00000000..d67c1014 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/core_x.json @@ -0,0 +1,17 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "tfmg:block/steel_pipes_connected", + "particle": "tfmg:block/steel_pipes_connected" + }, + "elements": [ + { + "from": [4, 4, 4], + "to": [12, 12, 12], + "faces": { + "east": {"uv": [16, 8, 12, 12], "rotation": 180, "texture": "#0"}, + "west": {"uv": [16, 8, 12, 12], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/core_y.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/core_y.json new file mode 100644 index 00000000..b05df846 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/core_y.json @@ -0,0 +1,17 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "tfmg:block/steel_pipes_connected", + "particle": "tfmg:block/steel_pipes_connected" + }, + "elements": [ + { + "from": [4, 4, 4], + "to": [12, 12, 12], + "faces": { + "up": {"uv": [16, 8, 12, 12], "rotation": 180, "texture": "#0"}, + "down": {"uv": [16, 8, 12, 12], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/core_z.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/core_z.json new file mode 100644 index 00000000..2a12b9ad --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/core_z.json @@ -0,0 +1,17 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "tfmg:block/steel_pipes_connected", + "particle": "tfmg:block/steel_pipes_connected" + }, + "elements": [ + { + "from": [4, 4, 4], + "to": [12, 12, 12], + "faces": { + "north": {"uv": [12, 8, 16, 12], "rotation": 180, "texture": "#0"}, + "south": {"uv": [12, 8, 16, 12], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/down.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/down.json new file mode 100644 index 00000000..df6a9b7d --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/down.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4.95, -3.95, 4.95], + "to": [11.05, -0.95, 11.05], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"}, + "east": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"}, + "south": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"}, + "west": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"}, + "down": {"uv": [13, 8, 16, 11], "rotation": 90, "texture": "#0", "cullface": "down"} + } + }, + { + "from": [2.95, -0.95, 2.95], + "to": [13.05, 2, 13.05], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 9.5, 4, 8], "texture": "#0"}, + "east": {"uv": [4, 8, 9, 9.5], "rotation": 180, "texture": "#0"}, + "south": {"uv": [4, 8, 9, 9.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 9.5, 4, 8], "texture": "#0"}, + "up": {"uv": [6, 11, 11, 16], "rotation": 90, "texture": "#0"}, + "down": {"uv": [11, 11, 16, 16], "rotation": 90, "texture": "#0", "cullface": "down"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/east.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/east.json new file mode 100644 index 00000000..ddc310d5 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/east.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [16.95, 4.95, 4.95], + "to": [19.95, 11.05, 11.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [12, 8, 13.5, 11], "rotation": 180, "texture": "#0"}, + "east": {"uv": [13, 8, 16, 11], "texture": "#0", "cullface": "east"}, + "south": {"uv": [12, 8, 13.5, 11], "texture": "#0"}, + "up": {"uv": [12, 8, 13.5, 11], "texture": "#0"}, + "down": {"uv": [12, 8, 13.5, 11], "texture": "#0"} + } + }, + { + "from": [14, 2.95, 2.95], + "to": [16.95, 13.05, 13.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 9.5, 4, 8], "rotation": 90, "texture": "#0"}, + "east": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "east"}, + "south": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#0"}, + "west": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "up": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#0"}, + "down": {"uv": [9, 9.5, 4, 8], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/north.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/north.json new file mode 100644 index 00000000..e57a85ec --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/north.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [2.95, 2.95, -0.95], + "to": [13.05, 13.05, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]}, + "faces": { + "north": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "north"}, + "east": {"uv": [4, 8, 9, 9.5], "rotation": 90, "texture": "#0"}, + "south": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "west": {"uv": [9, 9.5, 4, 8], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 8, 9, 9.5], "texture": "#0"}, + "down": {"uv": [9, 9.5, 4, 8], "texture": "#0"} + } + }, + { + "from": [4.95, 4.95, -3.95], + "to": [11.05, 11.05, -0.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]}, + "faces": { + "north": {"uv": [13, 8, 16, 11], "texture": "#0", "cullface": "north"}, + "east": {"uv": [12, 8, 13.5, 11], "texture": "#0"}, + "west": {"uv": [12, 8, 13.5, 11], "rotation": 180, "texture": "#0"}, + "up": {"uv": [12, 8, 13.5, 11], "rotation": 270, "texture": "#0"}, + "down": {"uv": [12, 8, 13.5, 11], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/south.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/south.json new file mode 100644 index 00000000..b9701b87 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/south.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4.95, 4.95, 16.95], + "to": [11.05, 11.05, 19.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]}, + "faces": { + "east": {"uv": [13.5, 8, 12, 11], "texture": "#0"}, + "south": {"uv": [16, 8, 13, 11], "texture": "#0", "cullface": "south"}, + "west": {"uv": [13.5, 8, 12, 11], "rotation": 180, "texture": "#0"}, + "up": {"uv": [13.5, 8, 12, 11], "rotation": 270, "texture": "#0"}, + "down": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [2.95, 2.95, 14], + "to": [13.05, 13.05, 16.95], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 34, 8]}, + "faces": { + "north": {"uv": [11, 11, 6, 16], "texture": "#0"}, + "east": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [16, 11, 11, 16], "texture": "#0", "cullface": "south"}, + "west": {"uv": [9, 8, 4, 9.5], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 9.5, 9, 8], "texture": "#0"}, + "down": {"uv": [9, 8, 4, 9.5], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/up.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/up.json new file mode 100644 index 00000000..a38ef73d --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/up.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [2.95, 14, 2.95], + "to": [13.05, 16.95, 13.05], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 8, 4, 9.5], "texture": "#0"}, + "east": {"uv": [4, 9.5, 9, 8], "rotation": 180, "texture": "#0"}, + "south": {"uv": [4, 9.5, 9, 8], "rotation": 180, "texture": "#0"}, + "west": {"uv": [9, 8, 4, 9.5], "texture": "#0"}, + "up": {"uv": [16, 11, 11, 16], "rotation": 90, "texture": "#0", "cullface": "up"}, + "down": {"uv": [11, 11, 6, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [4.95, 16.95, 4.95], + "to": [11.05, 19.95, 11.05], + "rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"}, + "east": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"}, + "south": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"}, + "west": {"uv": [13.5, 8, 12, 11], "rotation": 90, "texture": "#0"}, + "up": {"uv": [16, 8, 13, 11], "rotation": 90, "texture": "#0", "cullface": "up"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/west.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/west.json new file mode 100644 index 00000000..2f190637 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/drain/west.json @@ -0,0 +1,35 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [-0.95, 2.95, 2.95], + "to": [2, 13.05, 13.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [9, 8, 4, 9.5], "rotation": 90, "texture": "#0"}, + "east": {"uv": [11, 11, 6, 16], "texture": "#0"}, + "south": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#0"}, + "west": {"uv": [16, 11, 11, 16], "texture": "#0", "cullface": "west"}, + "up": {"uv": [4, 9.5, 9, 8], "rotation": 90, "texture": "#0"}, + "down": {"uv": [9, 8, 4, 9.5], "rotation": 270, "texture": "#0"} + } + }, + { + "from": [-3.95, 4.95, 4.95], + "to": [-0.95, 11.05, 11.05], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [13.5, 8, 12, 11], "rotation": 180, "texture": "#0"}, + "south": {"uv": [13.5, 8, 12, 11], "texture": "#0"}, + "west": {"uv": [16, 8, 13, 11], "texture": "#0", "cullface": "west"}, + "up": {"uv": [13.5, 8, 12, 11], "texture": "#0"}, + "down": {"uv": [13.5, 8, 12, 11], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/item.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/item.json new file mode 100644 index 00000000..230783b3 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/item.json @@ -0,0 +1,78 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "1": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 4, 4], + "to": [12, 12, 12], + "faces": { + "east": {"uv": [0, 0, 4, 4], "rotation": 90, "texture": "#1"}, + "west": {"uv": [0, 0, 4, 4], "rotation": 90, "texture": "#1"}, + "up": {"uv": [0, 0, 4, 4], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 0, 4, 4], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [4, 4, 12], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 0], "texture": "#1"}, + "east": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#1"}, + "south": {"uv": [0, 0, 0, 0], "texture": "#1"}, + "west": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#1"}, + "up": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [4, 4, 2], + "to": [12, 12, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "north": {"uv": [0, 0, 0, 0], "texture": "#1"}, + "east": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#1"}, + "south": {"uv": [0, 0, 0, 0], "texture": "#1"}, + "west": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#1"}, + "up": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#1"}, + "down": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#1"} + } + }, + { + "from": [3, 3, 0], + "to": [13, 13, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 28, 8]}, + "faces": { + "north": {"uv": [11, 11, 16, 16], "texture": "#1"}, + "east": {"uv": [10.5, 11, 11.5, 16], "texture": "#1"}, + "south": {"uv": [6, 11, 11, 16], "texture": "#1"}, + "west": {"uv": [11.5, 16, 10.5, 11], "texture": "#1"}, + "up": {"uv": [10.5, 11, 11.5, 16], "rotation": 270, "texture": "#1"}, + "down": {"uv": [11.5, 16, 10.5, 11], "rotation": 270, "texture": "#1"} + } + }, + { + "from": [3, 3, 14], + "to": [13, 13, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 28, 8]}, + "faces": { + "north": {"uv": [6, 11, 11, 16], "texture": "#1"}, + "east": {"uv": [11.5, 16, 10.5, 11], "texture": "#1"}, + "south": {"uv": [11, 11, 16, 16], "texture": "#1"}, + "west": {"uv": [10.5, 11, 11.5, 16], "texture": "#1"}, + "up": {"uv": [11.5, 16, 10.5, 11], "rotation": 270, "texture": "#1"}, + "down": {"uv": [10.5, 11, 11.5, 16], "rotation": 270, "texture": "#1"} + } + } + ], + "display": { + "fixed": { + "rotation": [0, 90, 0], + "scale": [0.5, 0.5, 0.5] + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/down.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/down.json new file mode 100644 index 00000000..2bb09327 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/down.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [3, 0, 3], + "to": [13, 2, 13], + "faces": { + "north": {"uv": [10.5, 11, 11.5, 16], "rotation": 90, "texture": "#0"}, + "east": {"uv": [10.5, 11, 11.5, 16], "rotation": 90, "texture": "#0"}, + "south": {"uv": [10.5, 11, 11.5, 16], "rotation": 90, "texture": "#0"}, + "west": {"uv": [10.5, 11, 11.5, 16], "rotation": 90, "texture": "#0"}, + "up": {"uv": [6, 11, 11, 16], "rotation": 90, "texture": "#0"}, + "down": {"uv": [11, 11, 16, 16], "rotation": 270, "texture": "#0", "cullface": "down"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/east.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/east.json new file mode 100644 index 00000000..e25a9ad5 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/east.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [14, 3, 3], + "to": [16, 13, 13], + "faces": { + "north": {"uv": [11.5, 16, 10.5, 11], "texture": "#0"}, + "east": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "east"}, + "south": {"uv": [10.5, 11, 11.5, 16], "texture": "#0"}, + "west": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "up": {"uv": [11.5, 16, 10.5, 11], "rotation": 180, "texture": "#0"}, + "down": {"uv": [10.5, 11, 11.5, 16], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/north.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/north.json new file mode 100644 index 00000000..a5ee4d2c --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/north.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [3, 3, 0], + "to": [13, 13, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 28, 8]}, + "faces": { + "north": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "north"}, + "east": {"uv": [10.5, 11, 11.5, 16], "texture": "#0"}, + "south": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "west": {"uv": [11.5, 16, 10.5, 11], "texture": "#0"}, + "up": {"uv": [10.5, 11, 11.5, 16], "rotation": 270, "texture": "#0"}, + "down": {"uv": [11.5, 16, 10.5, 11], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/south.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/south.json new file mode 100644 index 00000000..67b8a32a --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/south.json @@ -0,0 +1,23 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [3, 3, 14], + "to": [13, 13, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 28, 8]}, + "faces": { + "north": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "east": {"uv": [11.5, 16, 10.5, 11], "texture": "#0"}, + "south": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "south"}, + "west": {"uv": [10.5, 11, 11.5, 16], "texture": "#0"}, + "up": {"uv": [11.5, 16, 10.5, 11], "rotation": 270, "texture": "#0"}, + "down": {"uv": [10.5, 11, 11.5, 16], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/up.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/up.json new file mode 100644 index 00000000..78da141b --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/up.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [3, 14, 3], + "to": [13, 16, 13], + "faces": { + "north": {"uv": [11.5, 16, 10.5, 11], "rotation": 90, "texture": "#0"}, + "east": {"uv": [11.5, 16, 10.5, 11], "rotation": 90, "texture": "#0"}, + "south": {"uv": [11.5, 16, 10.5, 11], "rotation": 90, "texture": "#0"}, + "west": {"uv": [11.5, 16, 10.5, 11], "rotation": 90, "texture": "#0"}, + "up": {"uv": [11, 11, 16, 16], "rotation": 90, "texture": "#0", "cullface": "up"}, + "down": {"uv": [6, 11, 11, 16], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/west.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/west.json new file mode 100644 index 00000000..168c92e9 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim/west.json @@ -0,0 +1,22 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [0, 3, 3], + "to": [2, 13, 13], + "faces": { + "north": {"uv": [10.5, 11, 11.5, 16], "texture": "#0"}, + "east": {"uv": [6, 11, 11, 16], "texture": "#0"}, + "south": {"uv": [11.5, 16, 10.5, 11], "texture": "#0"}, + "west": {"uv": [11, 11, 16, 16], "texture": "#0", "cullface": "west"}, + "up": {"uv": [10.5, 11, 11.5, 16], "rotation": 180, "texture": "#0"}, + "down": {"uv": [11.5, 16, 10.5, 11], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/down.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/down.json new file mode 100644 index 00000000..8aa7b123 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/down.json @@ -0,0 +1,20 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 2, 4], + "to": [12, 4, 12], + "faces": { + "north": {"uv": [0, 9, 4, 10], "texture": "#0"}, + "east": {"uv": [0, 9, 4, 10], "texture": "#0"}, + "south": {"uv": [4, 9, 0, 10], "texture": "#0"}, + "west": {"uv": [4, 9, 0, 10], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/east.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/east.json new file mode 100644 index 00000000..e4a0f370 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/east.json @@ -0,0 +1,20 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [12, 4, 4], + "to": [14, 12, 12], + "faces": { + "north": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 8, 0, 9], "rotation": 90, "texture": "#0"}, + "down": {"uv": [4, 9, 0, 10], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/north.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/north.json new file mode 100644 index 00000000..116041fe --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/north.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 4, 2], + "to": [12, 12, 4], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "east": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/south.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/south.json new file mode 100644 index 00000000..2ff86eeb --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/south.json @@ -0,0 +1,21 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 4, 12], + "to": [12, 12, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]}, + "faces": { + "east": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"}, + "up": {"uv": [0, 8, 4, 9], "rotation": 180, "texture": "#0"}, + "down": {"uv": [0, 9, 4, 10], "rotation": 180, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/up.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/up.json new file mode 100644 index 00000000..b61c46df --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/up.json @@ -0,0 +1,20 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [4, 12, 4], + "to": [12, 14, 12], + "faces": { + "north": {"uv": [0, 8, 4, 9], "texture": "#0"}, + "east": {"uv": [0, 8, 4, 9], "texture": "#0"}, + "south": {"uv": [4, 8, 0, 9], "texture": "#0"}, + "west": {"uv": [4, 8, 0, 9], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/west.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/west.json new file mode 100644 index 00000000..00ed2638 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/rim_connector/west.json @@ -0,0 +1,20 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [32, 32], + "textures": { + "0": "tfmg:block/steel_pipes", + "particle": "tfmg:block/steel_pipes" + }, + "elements": [ + { + "from": [2, 4, 4], + "to": [4, 12, 12], + "faces": { + "north": {"uv": [0, 8, 4, 9], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 9, 4, 10], "rotation": 90, "texture": "#0"}, + "up": {"uv": [4, 9, 0, 10], "rotation": 90, "texture": "#0"}, + "down": {"uv": [4, 8, 0, 9], "rotation": 270, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/window.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/window.json new file mode 100644 index 00000000..0417cbdd --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/window.json @@ -0,0 +1,85 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/glass_steel_pipe", + "particle": "tfmg:block/steel_block" + }, + "elements": [ + { + "name": "Outer", + "from": [4, 0, 4], + "to": [12, 16, 12], + "faces": { + "north": {"uv": [0, 16, 16, 8], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 16, 16, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4, 0, 11.9], + "to": [12, 16, 11.9], + "faces": { + "north": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4.1, 0, 4], + "to": [4.1, 16, 12], + "faces": { + "east": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4, 0, 4.1], + "to": [12, 16, 4.1], + "faces": { + "south": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [11.9, 0, 4], + "to": [11.9, 16, 12], + "faces": { + "west": {"uv": [0, 8, 16, 16], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [4, 0, 4], + "to": [6, 16, 6], + "faces": { + "east": {"uv": [0, 14, 16, 16], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 8, 16, 10], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [4, 0, 10], + "to": [6, 16, 12], + "faces": { + "north": {"uv": [0, 10, 16, 8], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 16, 16, 14], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [10, 0, 4], + "to": [12, 16, 6], + "faces": { + "south": {"uv": [0, 14, 16, 16], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 8, 16, 10], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [10, 0, 10], + "to": [12, 16, 12], + "faces": { + "north": {"uv": [0, 16, 16, 14], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 10, 16, 8], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/steel_pipe/window_alt.json b/src/main/resources/assets/tfmg/models/block/steel_pipe/window_alt.json new file mode 100644 index 00000000..b43bb3f3 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/steel_pipe/window_alt.json @@ -0,0 +1,58 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "tfmg:block/glass_steel_pipe", + "particle": "#0" + }, + "elements": [ + { + "name": "Outer", + "from": [4, 0, 4], + "to": [12, 16, 12], + "shade": false, + "faces": { + "north": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"}, + "east": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"}, + "south": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"}, + "west": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4, 0, 11.5], + "to": [12, 16, 11.5], + "shade": false, + "faces": { + "north": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4, 0, 4.5], + "to": [12, 16, 4.5], + "shade": false, + "faces": { + "south": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [4.5, 0, 4], + "to": [4.5, 16, 12], + "shade": false, + "faces": { + "east": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"} + } + }, + { + "name": "Inner", + "from": [11.5, 0, 4], + "to": [11.5, 16, 12], + "shade": false, + "faces": { + "west": {"uv": [0, 0, 16, 8], "rotation": 90, "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/textures/block/aluminum_pipes.png b/src/main/resources/assets/tfmg/textures/block/aluminum_pipes.png new file mode 100644 index 00000000..a17166d5 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/aluminum_pipes.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/aluminum_pipes_connected.png b/src/main/resources/assets/tfmg/textures/block/aluminum_pipes_connected.png new file mode 100644 index 00000000..ab68012e Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/aluminum_pipes_connected.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/blast_furnace_slot.png b/src/main/resources/assets/tfmg/textures/block/blast_furnace_slot.png new file mode 100644 index 00000000..1be2d790 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/blast_furnace_slot.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/blast_furnace_slot_lit.png b/src/main/resources/assets/tfmg/textures/block/blast_furnace_slot_lit.png new file mode 100644 index 00000000..5eb0ea5d Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/blast_furnace_slot_lit.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/brass_pipes.png b/src/main/resources/assets/tfmg/textures/block/brass_pipes.png new file mode 100644 index 00000000..a17166d5 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/brass_pipes.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/brass_pipes_connected.png b/src/main/resources/assets/tfmg/textures/block/brass_pipes_connected.png new file mode 100644 index 00000000..ab68012e Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/brass_pipes_connected.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/cast_iron_pipes.png b/src/main/resources/assets/tfmg/textures/block/cast_iron_pipes.png new file mode 100644 index 00000000..a17166d5 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/cast_iron_pipes.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/cast_iron_pipes_connected.png b/src/main/resources/assets/tfmg/textures/block/cast_iron_pipes_connected.png new file mode 100644 index 00000000..ab68012e Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/cast_iron_pipes_connected.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/coke_ove_front.png b/src/main/resources/assets/tfmg/textures/block/coke_ove_front.png new file mode 100644 index 00000000..7e0afedb Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/coke_ove_front.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/coke_ove_front_lit.png b/src/main/resources/assets/tfmg/textures/block/coke_ove_front_lit.png new file mode 100644 index 00000000..4c03de29 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/coke_ove_front_lit.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/coke_oven_bricks.png b/src/main/resources/assets/tfmg/textures/block/coke_oven_bricks.png new file mode 100644 index 00000000..a7338a55 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/coke_oven_bricks.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/coke_oven_slot.png b/src/main/resources/assets/tfmg/textures/block/coke_oven_slot.png new file mode 100644 index 00000000..66a27c26 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/coke_oven_slot.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/encased_steel_pipe.png b/src/main/resources/assets/tfmg/textures/block/copper_encased_aluminum_pipe.png similarity index 100% rename from src/main/resources/assets/tfmg/textures/block/encased_steel_pipe.png rename to src/main/resources/assets/tfmg/textures/block/copper_encased_aluminum_pipe.png diff --git a/src/main/resources/assets/tfmg/textures/block/copper_encased_brass_pipe.png b/src/main/resources/assets/tfmg/textures/block/copper_encased_brass_pipe.png new file mode 100644 index 00000000..2ce6f97c Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/copper_encased_brass_pipe.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/copper_encased_cast_iron_pipe.png b/src/main/resources/assets/tfmg/textures/block/copper_encased_cast_iron_pipe.png new file mode 100644 index 00000000..2ce6f97c Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/copper_encased_cast_iron_pipe.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/copper_encased_lead_pipe.png b/src/main/resources/assets/tfmg/textures/block/copper_encased_lead_pipe.png new file mode 100644 index 00000000..2ce6f97c Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/copper_encased_lead_pipe.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/copper_encased_plastic_pipe.png b/src/main/resources/assets/tfmg/textures/block/copper_encased_plastic_pipe.png new file mode 100644 index 00000000..2ce6f97c Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/copper_encased_plastic_pipe.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/fireproof_bricks.png b/src/main/resources/assets/tfmg/textures/block/fireproof_bricks.png new file mode 100644 index 00000000..eba8e04c Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/fireproof_bricks.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/glass_aluminum_pipe.png b/src/main/resources/assets/tfmg/textures/block/glass_aluminum_pipe.png new file mode 100644 index 00000000..d10d9d8d Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/glass_aluminum_pipe.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/glass_brass_pipe.png b/src/main/resources/assets/tfmg/textures/block/glass_brass_pipe.png new file mode 100644 index 00000000..d10d9d8d Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/glass_brass_pipe.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/glass_cast_iron_pipe.png b/src/main/resources/assets/tfmg/textures/block/glass_cast_iron_pipe.png new file mode 100644 index 00000000..d10d9d8d Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/glass_cast_iron_pipe.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/glass_lead_pipe.png b/src/main/resources/assets/tfmg/textures/block/glass_lead_pipe.png new file mode 100644 index 00000000..d10d9d8d Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/glass_lead_pipe.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/glass_plastic_pipe.png b/src/main/resources/assets/tfmg/textures/block/glass_plastic_pipe.png new file mode 100644 index 00000000..d10d9d8d Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/glass_plastic_pipe.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/lead_block.png b/src/main/resources/assets/tfmg/textures/block/lead_block.png new file mode 100644 index 00000000..4d494363 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/lead_block.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/lead_pipes.png b/src/main/resources/assets/tfmg/textures/block/lead_pipes.png new file mode 100644 index 00000000..a17166d5 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/lead_pipes.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/lead_pipes_connected.png b/src/main/resources/assets/tfmg/textures/block/lead_pipes_connected.png new file mode 100644 index 00000000..ab68012e Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/lead_pipes_connected.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/plastic_pipes.png b/src/main/resources/assets/tfmg/textures/block/plastic_pipes.png new file mode 100644 index 00000000..a17166d5 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/plastic_pipes.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/plastic_pipes_connected.png b/src/main/resources/assets/tfmg/textures/block/plastic_pipes_connected.png new file mode 100644 index 00000000..ab68012e Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/plastic_pipes_connected.png differ diff --git a/src/main/resources/assets/tfmg/textures/item/lead_ingot.png b/src/main/resources/assets/tfmg/textures/item/lead_ingot.png new file mode 100644 index 00000000..42fc8ac7 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/item/lead_ingot.png differ diff --git a/src/main/resources/tfmg_changelog.txt b/src/main/resources/changelog.txt similarity index 65% rename from src/main/resources/tfmg_changelog.txt rename to src/main/resources/changelog.txt index b991884e..26001fa6 100644 --- a/src/main/resources/tfmg_changelog.txt +++ b/src/main/resources/changelog.txt @@ -13,4 +13,9 @@ Version 0.6.0 -sparks from thermite grenades now set mobs on fire on impact -changed id of the mod from "createindustry" to "tfmg" -increased burning time of fossilstone and coal coke --oil deposits spawn in larger but rarer groups \ No newline at end of file +-oil deposits spawn in larger but rarer groups +-removed creative mode tab for concrete +-created a building block creative mode tab +-added lead +-added steel valves and smart pipes +-added brass, lead, plastic, aluminum and cast iron pipes, smart pipes, pumps and valves \ No newline at end of file diff --git a/src/main/resources/tfmg.mixins.json b/src/main/resources/tfmg.mixins.json index 2ea852a1..a2f9ac2f 100644 --- a/src/main/resources/tfmg.mixins.json +++ b/src/main/resources/tfmg.mixins.json @@ -6,8 +6,8 @@ "compatibilityLevel": "JAVA_8", "refmap": "tfmg.refmap.json", "mixins": [ - "AllOreFeatureConfigEntriesMixin" - // "FluidPropagatorMixin" + "AllOreFeatureConfigEntriesMixin", + "FluidPropagatorMixin" ], "injectors": {