pipe locking and fluid tanks
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
// 1.19.2 2023-09-06T16:25:55.6251575 Create: The Factory Must Grow's lang merger
|
||||
eb7793620135512a7a35164f8ca9c5c881354d90 assets/tfmg/lang/en_us.json
|
||||
// 1.19.2 2023-09-09T21:03:24.5059888 Create: The Factory Must Grow's lang merger
|
||||
165747b064e1eafffc6b4a6d91249ad3c7e6ca39 assets/tfmg/lang/en_us.json
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// 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)]
|
||||
// 1.19.2 2023-09-09T11:58:31.6412487 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
|
||||
@@ -22,6 +22,7 @@ f16d1cf03e5053455ea485f7aa53a88206f61749 assets/tfmg/blockstates/formwork_block.
|
||||
e74acd9562e4b46295cf017d17f2662e20a7f5ea assets/tfmg/blockstates/fossilstone.json
|
||||
b0a3f4da5d9efdd01800c8b9738aee194565c6e7 assets/tfmg/blockstates/gasoline.json
|
||||
d23c28129bc7885986c65290071fb7a9cc5391d7 assets/tfmg/blockstates/glass_steel_pipe.json
|
||||
9753ec68aa5fe10f618000b453a242d5e685b7d7 assets/tfmg/blockstates/heavy_casing_door.json
|
||||
c7aa764cc11ee837deeed68c9c2d8567ea078f5c assets/tfmg/blockstates/heavy_machinery_casing.json
|
||||
dea24edfcb504c6c74560174a94bd7d3e5d58e76 assets/tfmg/blockstates/heavy_oil.json
|
||||
7199cbfa37e83fcedf8e99af48b05b283aef319f assets/tfmg/blockstates/kerosene.json
|
||||
@@ -44,10 +45,16 @@ 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
|
||||
7334c94b5fe23df91f43048b19c2b22121405603 assets/tfmg/blockstates/steel_door.json
|
||||
72bfce2a2795dfe461beed7c3a074e328de14d96 assets/tfmg/blockstates/steel_fluid_tank.json
|
||||
e29906d296994a13fefc2beb22f7693e1027dd1b assets/tfmg/blockstates/steel_fluid_valve.json
|
||||
6041673298a81819601e832e560771d21ddd01e9 assets/tfmg/blockstates/steel_mechanical_pump.json
|
||||
2305048c06767d728d10242e152f25911c1489fd assets/tfmg/blockstates/steel_pipe.json
|
||||
2f4c690a17de80bd2a7a0257ef923943913d50d1 assets/tfmg/lang/en_ud.json
|
||||
4a3abb850ef18abfaaf33f08710afcdd8488f4a2 assets/tfmg/lang/en_us.json
|
||||
71b4c68d8a02062252c4dfde41650b7667d8c0ca assets/tfmg/blockstates/steel_sheetmetal.json
|
||||
47b56dad1f2715aae7430b5f9acb1d51a26cf562 assets/tfmg/blockstates/steel_smart_fluid_pipe.json
|
||||
942bb86fa92b3c40fc535dccdd2e9f3b79a36d92 assets/tfmg/blockstates/surface_scanner.json
|
||||
a82f4a5b9cd04dbd195934b459e4c04b2110718d assets/tfmg/lang/en_ud.json
|
||||
555b7657893b06e861781e9ad7b8d4d557ef6869 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
|
||||
@@ -145,6 +152,7 @@ d34e5efd71420623baab6ff86cbb9a68abcb343d assets/tfmg/models/block/steel_pipe/ud_
|
||||
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
|
||||
c7b153dff2ba1a88f02e950cc8d28d61bd68b1df assets/tfmg/models/block/steel_sheetmetal.json
|
||||
714173e054b787915b8cebfb50deb61b28dba5a3 assets/tfmg/models/item/aluminum_block.json
|
||||
f685ca653c8e197986b1ac8f43297989816d39d2 assets/tfmg/models/item/aluminum_ingot.json
|
||||
4ace0da00498fcbb9ddfdf321767b40b095c8778 assets/tfmg/models/item/bauxite.json
|
||||
@@ -170,6 +178,7 @@ e6bf52c7a969b26d65cc36353a6a3e2a91752e42 assets/tfmg/models/item/cut_bauxite_sta
|
||||
a11a0b5a9887ba342d80b574a7f2c3dc5cdd7372 assets/tfmg/models/item/formwork_block.json
|
||||
7e4a58a6d05b19dc8c5fff73434c2d7cefa75343 assets/tfmg/models/item/fossilstone.json
|
||||
ed2830b2988403aebaca633b2e315878b41f7503 assets/tfmg/models/item/gasoline_bucket.json
|
||||
5b5625568b4b6e0920fd680f626b31fd3ae6d095 assets/tfmg/models/item/heavy_casing_door.json
|
||||
3fdff9e88db39939ee31968358eb51c060006766 assets/tfmg/models/item/heavy_machinery_casing.json
|
||||
f3bea42a905b7df9395bda18f751e2ee0c023e65 assets/tfmg/models/item/heavy_oil_bucket.json
|
||||
8996fe57623ded9433d6766e80a39e41a2aba1ca assets/tfmg/models/item/kerosene_bucket.json
|
||||
@@ -187,6 +196,7 @@ 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
|
||||
3cfdbac1c06b4e75416fcd24a93616d98f59d6e3 assets/tfmg/models/item/quad_potato_cannon.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
|
||||
@@ -194,13 +204,20 @@ a1149d3ee5596f2c1038b225b0086ae1601da82c assets/tfmg/models/item/small_bauxite_b
|
||||
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
|
||||
7f012e3d947b08beb69d28a6d47730878f2b85cf assets/tfmg/models/item/steel_door.json
|
||||
19dcd68a6658fd8fa8466180e26cb3f6a2b2c4f1 assets/tfmg/models/item/steel_fluid_tank.json
|
||||
57bc28274df7d54eaa3fa1991481c6339f9e2247 assets/tfmg/models/item/steel_fluid_valve.json
|
||||
61e64ad93db0bd29dec2221633c4552f37026784 assets/tfmg/models/item/steel_ingot.json
|
||||
4cea5b158cc0789fcdc8808250b993160bc62268 assets/tfmg/models/item/steel_mechanical_pump.json
|
||||
4fb5ba811196a402c750a379145aa0a14471ddc3 assets/tfmg/models/item/steel_pipe.json
|
||||
76289628b3e2bc6373737731cfb7b41a7c01119b assets/tfmg/models/item/steel_sheetmetal.json
|
||||
2badc90d08a4fd5f54c5e836ae2613b2e233f702 assets/tfmg/models/item/steel_smart_fluid_pipe.json
|
||||
e2fb504cbb8808de330d4ea87030f0d089921e23 assets/tfmg/models/item/surface_scanner.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
|
||||
1fdd0efd4d4b48c3d5989a7c43e53a6d1c2adc2b data/create/tags/items/contraption_controlled.json
|
||||
7126b9c40009d0396aff8161f30b6341b2b233c9 data/create/tags/items/create_ingots.json
|
||||
f0989952061266a02499103c1dcd9f2d7da131f5 data/forge/tags/blocks/concrete.json
|
||||
20fe475034862e222b6eb1efedf7c297d3690d8c data/forge/tags/blocks/storage_blocks.json
|
||||
@@ -226,19 +243,23 @@ d26621b9617890011a68780cf7ab40fbb4658edc data/forge/tags/items/storage_blocks/le
|
||||
37b1c9c3ae722d8110db48015993ede3e194c0a0 data/forge/tags/items/storage_blocks/steel.json
|
||||
63c4a8d8e713db70730e766f1a10f8dd9072f98f data/minecraft/tags/blocks/azalea_root_replaceable.json
|
||||
78dfadabc3df3a1ef277bd30f316bfa49d5e7a72 data/minecraft/tags/blocks/beacon_base_blocks.json
|
||||
1fdd0efd4d4b48c3d5989a7c43e53a6d1c2adc2b data/minecraft/tags/blocks/doors.json
|
||||
63c4a8d8e713db70730e766f1a10f8dd9072f98f data/minecraft/tags/blocks/dripstone_replaceable_blocks.json
|
||||
63c4a8d8e713db70730e766f1a10f8dd9072f98f data/minecraft/tags/blocks/lush_ground_replaceable.json
|
||||
2acceda2af7fd542e47641315a13d98c74f9b8f0 data/minecraft/tags/blocks/mineable/axe.json
|
||||
5f5b805d5f922e00dea2c543b30a5f74904169fe data/minecraft/tags/blocks/mineable/pickaxe.json
|
||||
2acf4cf271b27f01f5581199338af9054b239529 data/minecraft/tags/blocks/mineable/pickaxe.json
|
||||
63c4a8d8e713db70730e766f1a10f8dd9072f98f data/minecraft/tags/blocks/moss_replaceable.json
|
||||
78dfadabc3df3a1ef277bd30f316bfa49d5e7a72 data/minecraft/tags/blocks/needs_iron_tool.json
|
||||
f67e51a16b6d140324ca0201f1b05e672eb63774 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
|
||||
1fdd0efd4d4b48c3d5989a7c43e53a6d1c2adc2b data/minecraft/tags/blocks/wooden_doors.json
|
||||
1fdd0efd4d4b48c3d5989a7c43e53a6d1c2adc2b data/minecraft/tags/items/doors.json
|
||||
193c8b45d804216ca5fe2035fa8dfc4567303500 data/minecraft/tags/items/slabs.json
|
||||
e02820ff93a8835947837b6b7e4f75b90a365ffb data/minecraft/tags/items/stairs.json
|
||||
0472af44cb3c69aa62ace428304592aacc443045 data/minecraft/tags/items/walls.json
|
||||
1fdd0efd4d4b48c3d5989a7c43e53a6d1c2adc2b data/quark/tags/blocks/non_double_door.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
|
||||
@@ -292,6 +313,7 @@ ce47c0f03819dab221e70b3d4197ac82963b47d6 data/tfmg/loot_tables/blocks/cut_bauxit
|
||||
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
|
||||
673b4eaefb99f4322f2b172c2c2651969389ff9b data/tfmg/loot_tables/blocks/heavy_casing_door.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
|
||||
@@ -307,8 +329,14 @@ 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
|
||||
b0adec80b5b6c3226bd6d7044556351244474cd4 data/tfmg/loot_tables/blocks/steel_door.json
|
||||
da3aa200dc67d6a7bfbb0bb9e988a325fed4c670 data/tfmg/loot_tables/blocks/steel_fluid_tank.json
|
||||
7b78ebb7567c8b6b88a334761fbb702d17e5b337 data/tfmg/loot_tables/blocks/steel_fluid_valve.json
|
||||
216c23070392c7c085c111a0a220ae46ba8f9491 data/tfmg/loot_tables/blocks/steel_mechanical_pump.json
|
||||
1622328d319fc3c71269b0f9f1aef43a77132f3a data/tfmg/loot_tables/blocks/steel_pipe.json
|
||||
de0407a343a604ef410196b774c1dba3d65b0c61 data/tfmg/loot_tables/blocks/steel_sheetmetal.json
|
||||
7b9a14c0366a480e04473eed373e94fe8a5e8618 data/tfmg/loot_tables/blocks/steel_smart_fluid_pipe.json
|
||||
d200ab69297adec0f9d02d06f12d90ba049be5c6 data/tfmg/loot_tables/blocks/surface_scanner.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
|
||||
|
||||
@@ -0,0 +1,244 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,half=lower,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom"
|
||||
},
|
||||
"facing=east,half=lower,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom"
|
||||
},
|
||||
"facing=east,half=lower,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=lower,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom"
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom"
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top"
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top"
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top"
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top"
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom"
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom"
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top"
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top"
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom"
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom"
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top"
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top"
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/heavy_casing_door/block_top",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
244
src/generated/resources/assets/tfmg/blockstates/steel_door.json
Normal file
244
src/generated/resources/assets/tfmg/blockstates/steel_door.json
Normal file
@@ -0,0 +1,244 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east,half=lower,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom"
|
||||
},
|
||||
"facing=east,half=lower,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom"
|
||||
},
|
||||
"facing=east,half=lower,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=lower,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom"
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom"
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=lower,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top"
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top"
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=upper,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top"
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top"
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=east,half=upper,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom"
|
||||
},
|
||||
"facing=north,half=lower,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom"
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=lower,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top"
|
||||
},
|
||||
"facing=north,half=upper,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top"
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=north,half=upper,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom"
|
||||
},
|
||||
"facing=south,half=lower,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom"
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=upper,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top"
|
||||
},
|
||||
"facing=south,half=upper,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top"
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=lower,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=lower,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_bottom",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=upper,hinge=left,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 270
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=false,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=false,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=true,visible=false": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 90
|
||||
},
|
||||
"facing=west,half=upper,hinge=right,open=true,visible=true": {
|
||||
"model": "tfmg:block/steel_door/block_top",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,196 @@
|
||||
{
|
||||
"variants": {
|
||||
"axis_along_first=false,enabled=false,facing=down,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"x": 270,
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=down,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"x": 270,
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=east,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=east,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=north,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_closed",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=north,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_closed",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=south,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_closed"
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=south,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_closed"
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=up,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=up,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=west,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=false,facing=west,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=down,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"x": 270,
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=down,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"x": 270,
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=east,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=east,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=north,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_open",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=north,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_open",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=south,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_open"
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=south,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_open"
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=up,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=up,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=west,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=false,enabled=true,facing=west,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=down,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"x": 270
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=down,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"x": 270
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=east,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_closed",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=east,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_closed",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=north,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=north,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=south,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed"
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=south,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed"
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=up,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"x": 90
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=up,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_closed",
|
||||
"x": 90
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=west,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_closed",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=true,enabled=false,facing=west,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_closed",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=down,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"x": 270
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=down,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"x": 270
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=east,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_open",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=east,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_open",
|
||||
"y": 270
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=north,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=north,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"y": 180
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=south,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open"
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=south,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open"
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=up,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"x": 90
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=up,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_horizontal_open",
|
||||
"x": 90
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=west,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_open",
|
||||
"y": 90
|
||||
},
|
||||
"axis_along_first=true,enabled=true,facing=west,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_fluid_valve/block_vertical_open",
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=down": {
|
||||
"model": "tfmg:block/steel_mechanical_pump/block",
|
||||
"x": 180
|
||||
},
|
||||
"facing=east": {
|
||||
"model": "tfmg:block/steel_mechanical_pump/block",
|
||||
"x": 90,
|
||||
"y": 90
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "tfmg:block/steel_mechanical_pump/block",
|
||||
"x": 90
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "tfmg:block/steel_mechanical_pump/block",
|
||||
"x": 90,
|
||||
"y": 180
|
||||
},
|
||||
"facing=up": {
|
||||
"model": "tfmg:block/steel_mechanical_pump/block"
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "tfmg:block/steel_mechanical_pump/block",
|
||||
"x": 90,
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"variants": {
|
||||
"": {
|
||||
"model": "tfmg:block/steel_sheetmetal"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
{
|
||||
"variants": {
|
||||
"face=ceiling,facing=east,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"face=ceiling,facing=east,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 180,
|
||||
"y": 90
|
||||
},
|
||||
"face=ceiling,facing=north,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 180
|
||||
},
|
||||
"face=ceiling,facing=north,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 180
|
||||
},
|
||||
"face=ceiling,facing=south,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"face=ceiling,facing=south,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 180,
|
||||
"y": 180
|
||||
},
|
||||
"face=ceiling,facing=west,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"face=ceiling,facing=west,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 180,
|
||||
"y": 270
|
||||
},
|
||||
"face=floor,facing=east,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"y": 270
|
||||
},
|
||||
"face=floor,facing=east,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"y": 270
|
||||
},
|
||||
"face=floor,facing=north,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"y": 180
|
||||
},
|
||||
"face=floor,facing=north,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"y": 180
|
||||
},
|
||||
"face=floor,facing=south,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block"
|
||||
},
|
||||
"face=floor,facing=south,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block"
|
||||
},
|
||||
"face=floor,facing=west,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"y": 90
|
||||
},
|
||||
"face=floor,facing=west,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"y": 90
|
||||
},
|
||||
"face=wall,facing=east,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 270,
|
||||
"y": 270
|
||||
},
|
||||
"face=wall,facing=east,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 270,
|
||||
"y": 270
|
||||
},
|
||||
"face=wall,facing=north,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 270,
|
||||
"y": 180
|
||||
},
|
||||
"face=wall,facing=north,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 270,
|
||||
"y": 180
|
||||
},
|
||||
"face=wall,facing=south,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 270
|
||||
},
|
||||
"face=wall,facing=south,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 270
|
||||
},
|
||||
"face=wall,facing=west,waterlogged=false": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 270,
|
||||
"y": 90
|
||||
},
|
||||
"face=wall,facing=west,waterlogged=true": {
|
||||
"model": "tfmg:block/steel_smart_fluid_pipe/block",
|
||||
"x": 270,
|
||||
"y": 90
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"variants": {
|
||||
"facing=east": {
|
||||
"model": "tfmg:block/surface_scanner/block",
|
||||
"y": 90
|
||||
},
|
||||
"facing=north": {
|
||||
"model": "tfmg:block/surface_scanner/block"
|
||||
},
|
||||
"facing=south": {
|
||||
"model": "tfmg:block/surface_scanner/block",
|
||||
"y": 180
|
||||
},
|
||||
"facing=west": {
|
||||
"model": "tfmg:block/surface_scanner/block",
|
||||
"y": 270
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22,6 +22,7 @@
|
||||
"block.tfmg.fossilstone": "ǝuoʇsןıssoℲ",
|
||||
"block.tfmg.gasoline": "ǝuıןosɐ⅁",
|
||||
"block.tfmg.glass_steel_pipe": "ǝdıԀ ןǝǝʇS ssɐן⅁",
|
||||
"block.tfmg.heavy_casing_door": "ɹooᗡ buısɐƆ ʎʌɐǝH",
|
||||
"block.tfmg.heavy_machinery_casing": "buısɐƆ ʎɹǝuıɥɔɐW ʎʌɐǝH",
|
||||
"block.tfmg.heavy_oil": "ןıO ʎʌɐǝH",
|
||||
"block.tfmg.kerosene": "ǝuǝsoɹǝʞ",
|
||||
@@ -44,8 +45,14 @@
|
||||
"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_door": "ɹooᗡ ןǝǝʇS",
|
||||
"block.tfmg.steel_fluid_tank": "ʞuɐ⟘ pınןℲ ןǝǝʇS",
|
||||
"block.tfmg.steel_fluid_valve": "ǝʌןɐΛ pınןℲ ןǝǝʇS",
|
||||
"block.tfmg.steel_mechanical_pump": "dɯnԀ ןɐɔıuɐɥɔǝW ןǝǝʇS",
|
||||
"block.tfmg.steel_pipe": "ǝdıԀ ןǝǝʇS",
|
||||
"block.tfmg.steel_sheetmetal": "ןɐʇǝɯʇǝǝɥS ןǝǝʇS",
|
||||
"block.tfmg.steel_smart_fluid_pipe": "ǝdıԀ pınןℲ ʇɹɐɯS ןǝǝʇS",
|
||||
"block.tfmg.surface_scanner": "ɹǝuuɐɔS ǝɔɐɟɹnS",
|
||||
"entity.tfmg.blue_spark": "ʞɹɐdS ǝnןᗺ",
|
||||
"entity.tfmg.copper_grenade": "ǝpɐuǝɹ⅁ ɹǝddoƆ",
|
||||
"entity.tfmg.green_spark": "ʞɹɐdS uǝǝɹ⅁",
|
||||
@@ -88,6 +95,7 @@
|
||||
"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.quad_potato_cannon": "uouuɐƆ oʇɐʇoԀ pɐnὉ",
|
||||
"item.tfmg.screwdriver": "ɹǝʌıɹpʍǝɹɔS",
|
||||
"item.tfmg.steel_ingot": "ʇobuI ןǝǝʇS",
|
||||
"item.tfmg.thermite_grenade": "ǝpɐuǝɹ⅁ ǝʇıɯɹǝɥ⟘",
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
"block.tfmg.fossilstone": "Fossilstone",
|
||||
"block.tfmg.gasoline": "Gasoline",
|
||||
"block.tfmg.glass_steel_pipe": "Glass Steel Pipe",
|
||||
"block.tfmg.heavy_casing_door": "Heavy Casing Door",
|
||||
"block.tfmg.heavy_machinery_casing": "Heavy Machinery Casing",
|
||||
"block.tfmg.heavy_oil": "Heavy Oil",
|
||||
"block.tfmg.kerosene": "Kerosene",
|
||||
@@ -47,8 +48,14 @@
|
||||
"block.tfmg.small_bauxite_bricks": "Small Bauxite Bricks",
|
||||
"block.tfmg.steel_block": "Block of Steel",
|
||||
"block.tfmg.steel_casing": "Steel Casing",
|
||||
"block.tfmg.steel_door": "Steel Door",
|
||||
"block.tfmg.steel_fluid_tank": "Steel Fluid Tank",
|
||||
"block.tfmg.steel_fluid_valve": "Steel Fluid Valve",
|
||||
"block.tfmg.steel_mechanical_pump": "Steel Mechanical Pump",
|
||||
"block.tfmg.steel_pipe": "Steel Pipe",
|
||||
"block.tfmg.steel_sheetmetal": "Steel Sheetmetal",
|
||||
"block.tfmg.steel_smart_fluid_pipe": "Steel Smart Fluid Pipe",
|
||||
"block.tfmg.surface_scanner": "Surface Scanner",
|
||||
|
||||
"entity.tfmg.blue_spark": "Blue Spark",
|
||||
"entity.tfmg.copper_grenade": "Copper Grenade",
|
||||
@@ -94,17 +101,33 @@
|
||||
"item.tfmg.lubrication_oil_bucket": "Lubrication Oil Bucket",
|
||||
"item.tfmg.napalm_bucket": "Napalm Bucket",
|
||||
"item.tfmg.naphtha_bucket": "Naphtha Bucket",
|
||||
"item.tfmg.quad_potato_cannon": "Quad Potato Cannon",
|
||||
"item.tfmg.screwdriver": "Screwdriver",
|
||||
"item.tfmg.steel_ingot": "Steel Ingot",
|
||||
"item.tfmg.thermite_grenade": "Thermite Grenade",
|
||||
"item.tfmg.zinc_grenade": "Zinc Grenade",
|
||||
|
||||
"itemGroup.tfmg.base": "Create: The Factory Must Grow",
|
||||
"itemGroup.tfmg.building": "Create: TFMG's Building Blocks",
|
||||
|
||||
"create.goggles.misc.number": "%1$s",
|
||||
|
||||
|
||||
"_": "->------------------------] UI & Messages [------------------------<-",
|
||||
|
||||
"itemGroup.tfmg.base": "Create: The Factory Must Grow",
|
||||
"itemGroup.tfmg.building": "Create: TFMG's Building Blocks",
|
||||
|
||||
"create.goggles.misc.number": "%1$s",
|
||||
"create.goggles.misc.dot_one": ".",
|
||||
"create.goggles.misc.dot_two": "..",
|
||||
"create.goggles.misc.dot_three": "...",
|
||||
"create.goggles.surface_scanner.no_rotation": "No Rotation Provided",
|
||||
"create.goggles.surface_scanner.no_deposit": "No Deposit Found",
|
||||
"create.goggles.surface_scanner.deposit_found": "Found Deposit",
|
||||
"create.goggles.surface_scanner.distance": "Distance: %1$s Blocks",
|
||||
"create.goggles.surface_scanner.scanning_surface": "Scanning Surface",
|
||||
|
||||
"_": "Thank you for translating Create: The Factory Must Grow!"
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:block/cube_all",
|
||||
"textures": {
|
||||
"all": "tfmg:block/steel_sheetmetal"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "tfmg:item/heavy_casing_door"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "tfmg:item/quad_potato_cannon/item"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"parent": "minecraft:item/generated",
|
||||
"textures": {
|
||||
"layer0": "tfmg:item/steel_door"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "tfmg:block/steel_fluid_valve/item"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "tfmg:block/steel_mechanical_pump/item"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "tfmg:block/steel_sheetmetal"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "tfmg:block/steel_smart_fluid_pipe/item"
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"parent": "tfmg:block/surface_scanner/item"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door"
|
||||
]
|
||||
}
|
||||
@@ -8,12 +8,18 @@
|
||||
"tfmg:steel_pipe",
|
||||
"tfmg:copper_encased_steel_pipe",
|
||||
"tfmg:glass_steel_pipe",
|
||||
"tfmg:steel_mechanical_pump",
|
||||
"tfmg:steel_smart_fluid_pipe",
|
||||
"tfmg:steel_fluid_valve",
|
||||
"tfmg:steel_fluid_tank",
|
||||
"tfmg:steel_block",
|
||||
"tfmg:cast_iron_block",
|
||||
"tfmg:aluminum_block",
|
||||
"tfmg:lead_block",
|
||||
"tfmg:coal_coke_block",
|
||||
"tfmg:steel_sheetmetal",
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door",
|
||||
"tfmg:concrete",
|
||||
"tfmg:bauxite",
|
||||
"tfmg:cut_bauxite",
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"tfmg:steel_block",
|
||||
"tfmg:cast_iron_block",
|
||||
"tfmg:aluminum_block",
|
||||
"tfmg:lead_block"
|
||||
"tfmg:lead_block",
|
||||
"tfmg:steel_sheetmetal"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"values": [
|
||||
"tfmg:heavy_casing_door",
|
||||
"tfmg:steel_door"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"bonus_rolls": 0.0,
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"conditions": [
|
||||
{
|
||||
"block": "tfmg:heavy_casing_door",
|
||||
"condition": "minecraft:block_state_property",
|
||||
"properties": {
|
||||
"half": "lower"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "tfmg:heavy_casing_door"
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"bonus_rolls": 0.0,
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"conditions": [
|
||||
{
|
||||
"block": "tfmg:steel_door",
|
||||
"condition": "minecraft:block_state_property",
|
||||
"properties": {
|
||||
"half": "lower"
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "tfmg:steel_door"
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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_valve"
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"bonus_rolls": 0.0,
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "tfmg:steel_mechanical_pump"
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"bonus_rolls": 0.0,
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "tfmg:steel_sheetmetal"
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"bonus_rolls": 0.0,
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "tfmg:steel_smart_fluid_pipe"
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"type": "minecraft:block",
|
||||
"pools": [
|
||||
{
|
||||
"bonus_rolls": 0.0,
|
||||
"conditions": [
|
||||
{
|
||||
"condition": "minecraft:survives_explosion"
|
||||
}
|
||||
],
|
||||
"entries": [
|
||||
{
|
||||
"type": "minecraft:item",
|
||||
"name": "tfmg:surface_scanner"
|
||||
}
|
||||
],
|
||||
"rolls": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.drmangotea.tfmg;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.content.gadgets.quad_potato_cannon.QuadPotatoCannonRenderHandler;
|
||||
import com.drmangotea.tfmg.registry.TFMGPartialModels;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
@@ -8,7 +9,7 @@ import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
|
||||
public class CreateTFMGClient {
|
||||
|
||||
public static final QuadPotatoCannonRenderHandler QUAD_POTATO_CANNON_RENDER_HANDLER = new QuadPotatoCannonRenderHandler();
|
||||
public CreateTFMGClient() {
|
||||
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
|
||||
TFMGPartialModels.init();
|
||||
|
||||
@@ -1,28 +1,64 @@
|
||||
package com.drmangotea.tfmg.base;
|
||||
|
||||
import com.drmangotea.tfmg.content.concrete.formwork.FormWorkBlock;
|
||||
import com.drmangotea.tfmg.content.concrete.formwork.FormWorkBlockEntity;
|
||||
import com.drmangotea.tfmg.content.decoration.doors.TFMGSlidingDoorBlock;
|
||||
import com.simibubi.create.AllTags;
|
||||
import com.simibubi.create.content.contraptions.behaviour.DoorMovingInteraction;
|
||||
import com.simibubi.create.content.decoration.slidingDoor.SlidingDoorBlock;
|
||||
import com.simibubi.create.content.decoration.slidingDoor.SlidingDoorMovementBehaviour;
|
||||
import com.simibubi.create.content.kinetics.BlockStressDefaults;
|
||||
import com.simibubi.create.foundation.data.AssetLookup;
|
||||
import com.simibubi.create.foundation.data.ModelGen;
|
||||
import com.simibubi.create.foundation.data.SharedProperties;
|
||||
import com.tterrag.registrate.builders.BlockBuilder;
|
||||
import com.tterrag.registrate.util.nullness.NonNullUnaryOperator;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.data.loot.BlockLoot;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.tags.ItemTags;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.material.Material;
|
||||
import net.minecraft.world.level.material.MaterialColor;
|
||||
import net.minecraftforge.client.model.generators.ModelFile;
|
||||
|
||||
import static com.simibubi.create.AllInteractionBehaviours.interactionBehaviour;
|
||||
import static com.simibubi.create.AllMovementBehaviours.movementBehaviour;
|
||||
import static com.simibubi.create.foundation.data.TagGen.axeOnly;
|
||||
import static com.simibubi.create.foundation.data.BlockStateGen.axisBlock;
|
||||
import static com.simibubi.create.foundation.data.TagGen.pickaxeOnly;
|
||||
|
||||
|
||||
public class TFMGBuilderTransformers {
|
||||
|
||||
public static <B extends TFMGSlidingDoorBlock, P> NonNullUnaryOperator<BlockBuilder<B, P>> slidingDoor(String type) {
|
||||
return b -> b.initialProperties(Material.METAL) // for villager AI..
|
||||
.properties(p -> p.requiresCorrectToolForDrops()
|
||||
.strength(3.0F, 6.0F))
|
||||
.blockstate((c, p) -> {
|
||||
ModelFile bottom = AssetLookup.partialBaseModel(c, p, "bottom");
|
||||
ModelFile top = AssetLookup.partialBaseModel(c, p, "top");
|
||||
p.doorBlock(c.get(), bottom, bottom, bottom, bottom, top, top, top, top);
|
||||
})
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.transform(pickaxeOnly())
|
||||
.onRegister(interactionBehaviour(new DoorMovingInteraction()))
|
||||
.onRegister(movementBehaviour(new SlidingDoorMovementBehaviour()))
|
||||
.tag(BlockTags.DOORS)
|
||||
.tag(BlockTags.WOODEN_DOORS) // for villager AI
|
||||
.tag(AllTags.AllBlockTags.NON_DOUBLE_DOOR.tag)
|
||||
.loot((lr, block) -> lr.add(block, BlockLoot.createDoorTable(block)))
|
||||
.item()
|
||||
.tag(ItemTags.DOORS)
|
||||
.tag(AllTags.AllItemTags.CONTRAPTION_CONTROLLED.tag)
|
||||
.model((c, p) -> p.blockSprite(c, p.modLoc("item/" + type + "_door")))
|
||||
.build();
|
||||
}
|
||||
|
||||
public static <B extends Block, P> NonNullUnaryOperator<BlockBuilder<B, P>> surfaceScanner() {
|
||||
return b -> b.initialProperties(SharedProperties::softMetal)
|
||||
.blockstate((c, p) -> p.horizontalBlock(c.get(), p.models()
|
||||
.getExistingFile(p.modLoc("block/surface_scanner/block"))))
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.item()
|
||||
.transform(ModelGen.customItemModel("surface_scanner", "item"));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -25,6 +25,9 @@ public class TFMGSpriteShifts {
|
||||
STEEL_FLUID_TANK_TOP = getCT(AllCTTypes.RECTANGLE, "steel_fluid_tank_top"),
|
||||
STEEL_FLUID_TANK_INNER = getCT(AllCTTypes.RECTANGLE, "steel_fluid_tank_inner");
|
||||
|
||||
public static final CTSpriteShiftEntry
|
||||
STEEL_SHEETMETAL = getCT(AllCTTypes.RECTANGLE, "steel_sheetmetal");
|
||||
|
||||
public static final CTSpriteShiftEntry STEEL_SCAFFOLD_INSIDE = horizontal("scaffold/steel_scaffold_inside"),
|
||||
ALUMINUM_SCAFFOLD_INSIDE = horizontal("scaffold/aluminum_scaffold_inside");
|
||||
|
||||
|
||||
@@ -0,0 +1,254 @@
|
||||
package com.drmangotea.tfmg.content.decoration.doors;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||
import com.simibubi.create.content.contraptions.ContraptionWorld;
|
||||
import com.simibubi.create.content.decoration.slidingDoor.SlidingDoorShapes;
|
||||
import com.simibubi.create.content.equipment.wrench.IWrenchable;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
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.Entity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
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.Blocks;
|
||||
import net.minecraft.world.level.block.DoorBlock;
|
||||
import net.minecraft.world.level.block.RenderShape;
|
||||
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.DoorHingeSide;
|
||||
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf;
|
||||
import net.minecraft.world.level.gameevent.GameEvent;
|
||||
import net.minecraft.world.phys.BlockHitResult;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class TFMGSlidingDoorBlock extends DoorBlock implements IWrenchable, IBE<TFMGSlidingDoorBlockEntity> {
|
||||
|
||||
public static final BooleanProperty VISIBLE = BooleanProperty.create("visible");
|
||||
private boolean folds;
|
||||
|
||||
public TFMGSlidingDoorBlock(Properties p_52737_, boolean folds) {
|
||||
super(p_52737_);
|
||||
this.folds = folds;
|
||||
}
|
||||
|
||||
public boolean isFoldingDoor() {
|
||||
return folds;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createBlockStateDefinition(Builder<Block, BlockState> pBuilder) {
|
||||
super.createBlockStateDefinition(pBuilder.add(VISIBLE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) {
|
||||
if (!pState.getValue(OPEN) && (pState.getValue(VISIBLE) || pLevel instanceof ContraptionWorld))
|
||||
return super.getShape(pState, pLevel, pPos, pContext);
|
||||
|
||||
Direction direction = pState.getValue(FACING);
|
||||
boolean hinge = pState.getValue(HINGE) == DoorHingeSide.RIGHT;
|
||||
return SlidingDoorShapes.get(direction, hinge, isFoldingDoor());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSurvive(BlockState pState, LevelReader pLevel, BlockPos pPos) {
|
||||
return pState.getValue(HALF) == DoubleBlockHalf.LOWER || pLevel.getBlockState(pPos.below())
|
||||
.is(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VoxelShape getInteractionShape(BlockState pState, BlockGetter pLevel, BlockPos pPos) {
|
||||
return getShape(pState, pLevel, pPos, CollisionContext.empty());
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext pContext) {
|
||||
BlockState stateForPlacement = super.getStateForPlacement(pContext);
|
||||
if (stateForPlacement != null && stateForPlacement.getValue(OPEN))
|
||||
return stateForPlacement.setValue(OPEN, false)
|
||||
.setValue(POWERED, false);
|
||||
return stateForPlacement;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlace(BlockState pState, Level pLevel, BlockPos pPos, BlockState pOldState, boolean pIsMoving) {
|
||||
if (!pOldState.is(this))
|
||||
deferUpdate(pLevel, pPos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState updateShape(BlockState pState, Direction pFacing, BlockState pFacingState, LevelAccessor pLevel,
|
||||
BlockPos pCurrentPos, BlockPos pFacingPos) {
|
||||
BlockState blockState = super.updateShape(pState, pFacing, pFacingState, pLevel, pCurrentPos, pFacingPos);
|
||||
if (blockState.isAir())
|
||||
return blockState;
|
||||
DoubleBlockHalf doubleblockhalf = blockState.getValue(HALF);
|
||||
if (pFacing.getAxis() == Direction.Axis.Y
|
||||
&& doubleblockhalf == DoubleBlockHalf.LOWER == (pFacing == Direction.UP)) {
|
||||
return pFacingState.is(this) && pFacingState.getValue(HALF) != doubleblockhalf
|
||||
? blockState.setValue(VISIBLE, pFacingState.getValue(VISIBLE))
|
||||
: Blocks.AIR.defaultBlockState();
|
||||
}
|
||||
return blockState;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOpen(@Nullable Entity entity, Level level, BlockState state, BlockPos pos, boolean open) {
|
||||
if (!state.is(this))
|
||||
return;
|
||||
if (state.getValue(OPEN) == open)
|
||||
return;
|
||||
BlockState changedState = state.setValue(OPEN, open);
|
||||
if (open)
|
||||
changedState = changedState.setValue(VISIBLE, false);
|
||||
level.setBlock(pos, changedState, 10);
|
||||
|
||||
DoorHingeSide hinge = changedState.getValue(HINGE);
|
||||
Direction facing = changedState.getValue(FACING);
|
||||
BlockPos otherPos =
|
||||
pos.relative(hinge == DoorHingeSide.LEFT ? facing.getClockWise() : facing.getCounterClockWise());
|
||||
BlockState otherDoor = level.getBlockState(otherPos);
|
||||
if (isDoubleDoor(changedState, hinge, facing, otherDoor))
|
||||
setOpen(entity, level, otherDoor, otherPos, open);
|
||||
|
||||
this.playSound(level, pos, open);
|
||||
level.gameEvent(entity, open ? GameEvent.BLOCK_OPEN : GameEvent.BLOCK_CLOSE, pos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void neighborChanged(BlockState pState, Level pLevel, BlockPos pPos, Block pBlock, BlockPos pFromPos,
|
||||
boolean pIsMoving) {
|
||||
boolean lower = pState.getValue(HALF) == DoubleBlockHalf.LOWER;
|
||||
boolean isPowered = isDoorPowered(pLevel, pPos, pState);
|
||||
if (defaultBlockState().is(pBlock))
|
||||
return;
|
||||
if (isPowered == pState.getValue(POWERED))
|
||||
return;
|
||||
|
||||
TFMGSlidingDoorBlockEntity be = getBlockEntity(pLevel, lower ? pPos : pPos.below());
|
||||
if (be != null && be.deferUpdate)
|
||||
return;
|
||||
|
||||
BlockState changedState = pState.setValue(POWERED, Boolean.valueOf(isPowered))
|
||||
.setValue(OPEN, Boolean.valueOf(isPowered));
|
||||
if (isPowered)
|
||||
changedState = changedState.setValue(VISIBLE, false);
|
||||
|
||||
if (isPowered != pState.getValue(OPEN)) {
|
||||
this.playSound(pLevel, pPos, isPowered);
|
||||
pLevel.gameEvent(null, isPowered ? GameEvent.BLOCK_OPEN : GameEvent.BLOCK_CLOSE, pPos);
|
||||
|
||||
DoorHingeSide hinge = changedState.getValue(HINGE);
|
||||
Direction facing = changedState.getValue(FACING);
|
||||
BlockPos otherPos =
|
||||
pPos.relative(hinge == DoorHingeSide.LEFT ? facing.getClockWise() : facing.getCounterClockWise());
|
||||
BlockState otherDoor = pLevel.getBlockState(otherPos);
|
||||
|
||||
if (isDoubleDoor(changedState, hinge, facing, otherDoor)) {
|
||||
otherDoor = otherDoor.setValue(POWERED, Boolean.valueOf(isPowered))
|
||||
.setValue(OPEN, Boolean.valueOf(isPowered));
|
||||
if (isPowered)
|
||||
otherDoor = otherDoor.setValue(VISIBLE, false);
|
||||
pLevel.setBlock(otherPos, otherDoor, 2);
|
||||
}
|
||||
}
|
||||
|
||||
pLevel.setBlock(pPos, changedState, 2);
|
||||
}
|
||||
|
||||
public static boolean isDoorPowered(Level pLevel, BlockPos pPos, BlockState state) {
|
||||
boolean lower = state.getValue(HALF) == DoubleBlockHalf.LOWER;
|
||||
DoorHingeSide hinge = state.getValue(HINGE);
|
||||
Direction facing = state.getValue(FACING);
|
||||
BlockPos otherPos =
|
||||
pPos.relative(hinge == DoorHingeSide.LEFT ? facing.getClockWise() : facing.getCounterClockWise());
|
||||
BlockState otherDoor = pLevel.getBlockState(otherPos);
|
||||
|
||||
if (isDoubleDoor(state.cycle(OPEN), hinge, facing, otherDoor) && (pLevel.hasNeighborSignal(otherPos)
|
||||
|| pLevel.hasNeighborSignal(otherPos.relative(lower ? Direction.UP : Direction.DOWN))))
|
||||
return true;
|
||||
|
||||
return pLevel.hasNeighborSignal(pPos)
|
||||
|| pLevel.hasNeighborSignal(pPos.relative(lower ? Direction.UP : Direction.DOWN));
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult use(BlockState pState, Level pLevel, BlockPos pPos, Player pPlayer, InteractionHand pHand,
|
||||
BlockHitResult pHit) {
|
||||
|
||||
pState = pState.cycle(OPEN);
|
||||
if (pState.getValue(OPEN))
|
||||
pState = pState.setValue(VISIBLE, false);
|
||||
pLevel.setBlock(pPos, pState, 10);
|
||||
pLevel.gameEvent(pPlayer, isOpen(pState) ? GameEvent.BLOCK_OPEN : GameEvent.BLOCK_CLOSE, pPos);
|
||||
|
||||
DoorHingeSide hinge = pState.getValue(HINGE);
|
||||
Direction facing = pState.getValue(FACING);
|
||||
BlockPos otherPos =
|
||||
pPos.relative(hinge == DoorHingeSide.LEFT ? facing.getClockWise() : facing.getCounterClockWise());
|
||||
BlockState otherDoor = pLevel.getBlockState(otherPos);
|
||||
if (isDoubleDoor(pState, hinge, facing, otherDoor))
|
||||
use(otherDoor, pLevel, otherPos, pPlayer, pHand, pHit);
|
||||
else if (pState.getValue(OPEN))
|
||||
pLevel.levelEvent(pPlayer, getOpenSound(), pPos, 0);
|
||||
|
||||
return InteractionResult.sidedSuccess(pLevel.isClientSide);
|
||||
}
|
||||
|
||||
public void deferUpdate(LevelAccessor level, BlockPos pos) {
|
||||
withBlockEntityDo(level, pos, sdte -> sdte.deferUpdate = true);
|
||||
}
|
||||
|
||||
public static boolean isDoubleDoor(BlockState pState, DoorHingeSide hinge, Direction facing, BlockState otherDoor) {
|
||||
return otherDoor.getBlock() == pState.getBlock() && otherDoor.getValue(HINGE) != hinge
|
||||
&& otherDoor.getValue(FACING) == facing && otherDoor.getValue(OPEN) != pState.getValue(OPEN)
|
||||
&& otherDoor.getValue(HALF) == pState.getValue(HALF);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RenderShape getRenderShape(BlockState pState) {
|
||||
return pState.getValue(VISIBLE) ? RenderShape.MODEL : RenderShape.ENTITYBLOCK_ANIMATED;
|
||||
}
|
||||
|
||||
private void playSound(Level pLevel, BlockPos pPos, boolean pIsOpening) {
|
||||
if (pIsOpening)
|
||||
pLevel.levelEvent((Player) null, this.getOpenSound(), pPos, 0);
|
||||
}
|
||||
|
||||
private int getOpenSound() {
|
||||
return 1005;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
|
||||
if (state.getValue(HALF) == DoubleBlockHalf.UPPER)
|
||||
return null;
|
||||
return IBE.super.newBlockEntity(pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<TFMGSlidingDoorBlockEntity> getBlockEntityClass() {
|
||||
return TFMGSlidingDoorBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends TFMGSlidingDoorBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.TFMG_SLIDING_DOOR.get();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.drmangotea.tfmg.content.decoration.doors;
|
||||
|
||||
import com.simibubi.create.content.decoration.slidingDoor.SlidingDoorBlockEntity;
|
||||
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.DoorBlock;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.AABB;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TFMGSlidingDoorBlockEntity extends SlidingDoorBlockEntity {
|
||||
|
||||
LerpedFloat animation;
|
||||
int bridgeTicks;
|
||||
boolean deferUpdate;
|
||||
|
||||
public TFMGSlidingDoorBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
animation = LerpedFloat.linear()
|
||||
.startWithValue(isOpen(state) ? 1 : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
if (deferUpdate && !level.isClientSide()) {
|
||||
deferUpdate = false;
|
||||
BlockState blockState = getBlockState();
|
||||
blockState.neighborChanged(level, worldPosition, Blocks.AIR, worldPosition, false);
|
||||
}
|
||||
|
||||
super.tick();
|
||||
boolean open = isOpen(getBlockState());
|
||||
boolean wasSettled = animation.settled();
|
||||
animation.chase(open ? 1 : 0, .15f, Chaser.LINEAR);
|
||||
animation.tickChaser();
|
||||
|
||||
if (level.isClientSide()) {
|
||||
if (bridgeTicks < 2 && open)
|
||||
bridgeTicks++;
|
||||
else if (bridgeTicks > 0 && !open && isVisible(getBlockState()))
|
||||
bridgeTicks--;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!open && !wasSettled && animation.settled() && !isVisible(getBlockState()))
|
||||
showBlockModel();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AABB createRenderBoundingBox() {
|
||||
return super.createRenderBoundingBox().inflate(1);
|
||||
}
|
||||
|
||||
protected boolean isVisible(BlockState state) {
|
||||
return state.getOptionalValue(TFMGSlidingDoorBlock.VISIBLE)
|
||||
.orElse(true);
|
||||
}
|
||||
|
||||
protected boolean shouldRenderSpecial(BlockState state) {
|
||||
return !isVisible(state) || bridgeTicks != 0;
|
||||
}
|
||||
|
||||
protected void showBlockModel() {
|
||||
level.setBlock(worldPosition, getBlockState().setValue(TFMGSlidingDoorBlock.VISIBLE, true), 3);
|
||||
level.playSound(null, worldPosition, SoundEvents.IRON_DOOR_CLOSE, SoundSource.BLOCKS, .5f, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {}
|
||||
|
||||
public static boolean isOpen(BlockState state) {
|
||||
return state.getOptionalValue(DoorBlock.OPEN)
|
||||
.orElse(false);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.drmangotea.tfmg.content.decoration.doors;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.registry.TFMGPartialModels;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer;
|
||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.Couple;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider.Context;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.level.block.DoorBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.block.state.properties.DoorHingeSide;
|
||||
import net.minecraft.world.level.block.state.properties.DoubleBlockHalf;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public class TFMGSlidingDoorRenderer extends SafeBlockEntityRenderer<TFMGSlidingDoorBlockEntity> {
|
||||
|
||||
public TFMGSlidingDoorRenderer(Context context) {}
|
||||
|
||||
@Override
|
||||
protected void renderSafe(TFMGSlidingDoorBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
BlockState blockState = be.getBlockState();
|
||||
if (!be.shouldRenderSpecial(blockState))
|
||||
return;
|
||||
|
||||
Direction facing = blockState.getValue(DoorBlock.FACING);
|
||||
Direction movementDirection = facing.getClockWise();
|
||||
|
||||
if (blockState.getValue(DoorBlock.HINGE) == DoorHingeSide.LEFT)
|
||||
movementDirection = movementDirection.getOpposite();
|
||||
|
||||
float value = be.animation.getValue(partialTicks);
|
||||
float value2 = Mth.clamp(value * 10, 0, 1);
|
||||
|
||||
VertexConsumer vb = buffer.getBuffer(RenderType.cutoutMipped());
|
||||
Vec3 offset = Vec3.atLowerCornerOf(movementDirection.getNormal())
|
||||
.scale(value * value * 13 / 16f)
|
||||
.add(Vec3.atLowerCornerOf(facing.getNormal())
|
||||
.scale(value2 * 1 / 32f));
|
||||
|
||||
if (((TFMGSlidingDoorBlock) blockState.getBlock()).isFoldingDoor()) {
|
||||
Couple<PartialModel> partials =
|
||||
TFMGPartialModels.FOLDING_DOORS.get(ForgeRegistries.BLOCKS.getKey(blockState.getBlock()));
|
||||
if(partials==null)
|
||||
return;
|
||||
boolean flip = blockState.getValue(DoorBlock.HINGE) == DoorHingeSide.RIGHT;
|
||||
for (boolean left : Iterate.trueAndFalse) {
|
||||
SuperByteBuffer partial = CachedBufferer.partial(partials.get(left ^ flip), blockState);
|
||||
float f = flip ? -1 : 1;
|
||||
|
||||
partial.translate(0, -1 / 512f, 0)
|
||||
.translate(Vec3.atLowerCornerOf(facing.getNormal())
|
||||
.scale(value2 * 1 / 32f));
|
||||
partial.rotateCentered(Direction.UP,
|
||||
Mth.DEG_TO_RAD * AngleHelper.horizontalAngle(facing.getClockWise()));
|
||||
|
||||
if (flip)
|
||||
partial.translate(0, 0, 1);
|
||||
partial.rotateY(91 * f * value * value);
|
||||
|
||||
if (!left)
|
||||
partial.translate(0, 0, f / 2f)
|
||||
.rotateY(-181 * f * value * value);
|
||||
|
||||
if (flip)
|
||||
partial.translate(0, 0, -1 / 2f);
|
||||
|
||||
partial.light(light)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
for (DoubleBlockHalf half : DoubleBlockHalf.values()) {
|
||||
CachedBufferer.block(blockState.setValue(DoorBlock.OPEN, false)
|
||||
.setValue(DoorBlock.HALF, half))
|
||||
.translate(0, half == DoubleBlockHalf.UPPER ? 1 - 1 / 512f : 0, 0)
|
||||
.translate(offset)
|
||||
.light(light)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -7,19 +7,19 @@ import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
|
||||
public class FluidDepositBlock extends Block implements IBE<FluidDepositTileEntity> {
|
||||
public class FluidDepositBlock extends Block implements IBE<FluidDepositBlockEntity> {
|
||||
|
||||
public FluidDepositBlock(Properties p_49795_) {
|
||||
super(p_49795_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<FluidDepositTileEntity> getBlockEntityClass() {
|
||||
return FluidDepositTileEntity.class;
|
||||
public Class<FluidDepositBlockEntity> getBlockEntityClass() {
|
||||
return FluidDepositBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends FluidDepositTileEntity> getBlockEntityType() {
|
||||
public BlockEntityType<? extends FluidDepositBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.OIL_DEPOSIT.get();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,13 +15,13 @@ import net.minecraft.world.level.material.Fluid;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class FluidDepositTileEntity extends SmartBlockEntity {
|
||||
public class FluidDepositBlockEntity extends SmartBlockEntity {
|
||||
|
||||
public final int baseFluidAmount= Create.RANDOM.nextInt(300000000);
|
||||
public final int fluidAmountToBuckets =baseFluidAmount/1000;
|
||||
public int fluidAmount= fluidAmountToBuckets;
|
||||
|
||||
public FluidDepositTileEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
public FluidDepositBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
|
||||
super(type, pos, state);
|
||||
CreateTFMG.LOGGER.debug("Created Oil Deposit with "+baseFluidAmount+" buckets of Crude Oil");
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.drmangotea.tfmg.content.deposits.surface_scanner;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.tfmg.registry.TFMGShapes;
|
||||
import com.simibubi.create.content.kinetics.base.HorizontalKineticBlock;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
import net.minecraft.world.level.LevelReader;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
public class SurfaceScannerBlock extends HorizontalKineticBlock implements IBE<SurfaceScannerTileEntity> {
|
||||
|
||||
|
||||
|
||||
public SurfaceScannerBlock(Properties properties) {
|
||||
super(properties);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
|
||||
|
||||
return TFMGShapes.SURFACE_SCANNER;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||
Direction preferred = getPreferredHorizontalFacing(context);
|
||||
if (preferred != null)
|
||||
return defaultBlockState().setValue(HORIZONTAL_FACING, preferred.getOpposite());
|
||||
return this.defaultBlockState().setValue(HORIZONTAL_FACING, context.getHorizontalDirection().getOpposite());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
|
||||
return face == state.getValue(HORIZONTAL_FACING).getOpposite();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Direction.Axis getRotationAxis(BlockState state) {
|
||||
return state.getValue(HORIZONTAL_FACING).getAxis();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<SurfaceScannerTileEntity> getBlockEntityClass() {
|
||||
return SurfaceScannerTileEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends SurfaceScannerTileEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.SURFACE_SCANNER.get();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
package com.drmangotea.tfmg.content.deposits.surface_scanner;
|
||||
|
||||
import com.drmangotea.tfmg.registry.TFMGPartialModels;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.simibubi.create.AllPartialModels;
|
||||
import com.simibubi.create.content.kinetics.base.HorizontalKineticBlock;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
|
||||
import com.simibubi.create.content.kinetics.clock.CuckooClockBlock;
|
||||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class SurfaceScannerRenderer extends KineticBlockEntityRenderer<SurfaceScannerTileEntity> {
|
||||
|
||||
public SurfaceScannerRenderer(BlockEntityRendererProvider.Context context) {
|
||||
super(context);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected SuperByteBuffer getRotatedModel(SurfaceScannerTileEntity be, BlockState state) {
|
||||
return CachedBufferer.partialFacing(AllPartialModels.SHAFT_HALF, state, state
|
||||
.getValue(HorizontalKineticBlock.HORIZONTAL_FACING)
|
||||
.getOpposite());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderSafe(SurfaceScannerTileEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
super.renderSafe(be, partialTicks, ms, buffer, light, overlay);
|
||||
|
||||
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
|
||||
|
||||
BlockState blockState = be.getBlockState();
|
||||
|
||||
|
||||
|
||||
|
||||
CachedBufferer.partial(TFMGPartialModels.SURFACE_SCANNER_FLAG, blockState)
|
||||
.translateY(0.25)
|
||||
.centre()
|
||||
.rotateToFace(blockState.getValue(HorizontalKineticBlock.HORIZONTAL_FACING))
|
||||
.rotateX(-be.visualFlagAngle.getValue(partialTicks))
|
||||
.unCentre()
|
||||
|
||||
.light(light)
|
||||
.renderInto(ms, vb);
|
||||
///
|
||||
|
||||
|
||||
if(blockState.getValue(HorizontalKineticBlock.HORIZONTAL_FACING)==Direction.NORTH) {
|
||||
|
||||
CachedBufferer.partial(TFMGPartialModels.SURFACE_SCANNER_DIAL, blockState)
|
||||
|
||||
.translateY(-0.07)
|
||||
.translateZ(.065)
|
||||
.centre()
|
||||
.rotateY(be.visualAngle.getValue(partialTicks))
|
||||
.unCentre()
|
||||
.light(light)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
if(blockState.getValue(HorizontalKineticBlock.HORIZONTAL_FACING)==Direction.SOUTH) {
|
||||
|
||||
CachedBufferer.partial(TFMGPartialModels.SURFACE_SCANNER_DIAL, blockState)
|
||||
|
||||
.translateY(-0.08)
|
||||
.translateZ(-.065)
|
||||
.centre()
|
||||
.rotateY(be.visualAngle.getValue(partialTicks))
|
||||
.unCentre()
|
||||
.light(light)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
if(blockState.getValue(HorizontalKineticBlock.HORIZONTAL_FACING)==Direction.WEST) {
|
||||
|
||||
CachedBufferer.partial(TFMGPartialModels.SURFACE_SCANNER_DIAL, blockState)
|
||||
|
||||
.translateY(-0.08)
|
||||
.translateX(.065)
|
||||
.centre()
|
||||
.rotateY(be.visualAngle.getValue(partialTicks))
|
||||
.unCentre()
|
||||
.light(light)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
if(blockState.getValue(HorizontalKineticBlock.HORIZONTAL_FACING)==Direction.EAST) {
|
||||
|
||||
CachedBufferer.partial(TFMGPartialModels.SURFACE_SCANNER_DIAL, blockState)
|
||||
|
||||
.translateY(-0.08)
|
||||
.translateX(-.065)
|
||||
.centre()
|
||||
.rotateY(be.visualAngle.getValue(partialTicks))
|
||||
.unCentre()
|
||||
.light(light)
|
||||
.renderInto(ms, vb);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,279 @@
|
||||
package com.drmangotea.tfmg.content.deposits.surface_scanner;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.content.deposits.FluidDepositBlockEntity;
|
||||
import com.simibubi.create.AllSoundEvents;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
|
||||
import com.simibubi.create.content.equipment.wrench.IWrenchable;
|
||||
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
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 java.util.List;
|
||||
|
||||
public class SurfaceScannerTileEntity extends KineticBlockEntity implements IHaveGoggleInformation, IWrenchable {
|
||||
public FluidDepositBlockEntity deposit;
|
||||
public BlockPos checkedPosition;
|
||||
public boolean foundDeposit=false;
|
||||
public BlockPos depositPos;
|
||||
|
||||
public int locatingTimer=0;
|
||||
public boolean noDepositFound=false;
|
||||
|
||||
int dotTimer=0;
|
||||
int dotCount=1;
|
||||
|
||||
public int distanceFromDeposit=6969;
|
||||
|
||||
public LerpedFloat visualAngle = LerpedFloat.angular();
|
||||
public float angle = 0;
|
||||
|
||||
|
||||
public LerpedFloat visualFlagAngle = LerpedFloat.angular();
|
||||
public float flagAngle = 0;
|
||||
|
||||
public SurfaceScannerTileEntity(BlockEntityType<?> typeIn, BlockPos pos, BlockState state) {
|
||||
super(typeIn, pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
super.tick();
|
||||
angle%=360;
|
||||
if (getSpeed() == 0) {
|
||||
foundDeposit=false;
|
||||
noDepositFound=false;
|
||||
locatingTimer=0;
|
||||
return;
|
||||
}
|
||||
if(deposit==null) {
|
||||
foundDeposit = false;
|
||||
distanceFromDeposit=6969;
|
||||
|
||||
}
|
||||
visualAngle.chase(angle, 0.2f, LerpedFloat.Chaser.EXP);
|
||||
visualAngle.tickChaser();
|
||||
|
||||
visualFlagAngle.chase(flagAngle, 0.8f, LerpedFloat.Chaser.EXP);
|
||||
visualFlagAngle.tickChaser();
|
||||
|
||||
|
||||
if (!foundDeposit) {
|
||||
dotTimer++;
|
||||
locatingTimer++;
|
||||
distanceFromDeposit=6969;
|
||||
if(locatingTimer>=2400){
|
||||
locatingTimer=2400;
|
||||
noDepositFound=true;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
if (dotTimer >= 90) {
|
||||
dotCount = 3;
|
||||
dotTimer = 0;
|
||||
|
||||
} else if (dotTimer >= 60) {
|
||||
dotCount = 2;
|
||||
} else if (dotTimer >= 30)
|
||||
dotCount = 1;
|
||||
}
|
||||
|
||||
|
||||
if (foundDeposit) {
|
||||
|
||||
float zDistance;
|
||||
float xDistance;
|
||||
|
||||
|
||||
zDistance = deposit.getBlockPos().getZ()-getBlockPos().getZ();
|
||||
|
||||
|
||||
|
||||
xDistance = deposit.getBlockPos().getX()-getBlockPos().getX();
|
||||
|
||||
|
||||
|
||||
int positiveXsquared = Math.abs((int)xDistance)*Math.abs((int)xDistance);
|
||||
int positiveZsquared = Math.abs((int)zDistance)*Math.abs((int)xDistance);
|
||||
distanceFromDeposit = (int)Math.sqrt(positiveXsquared+positiveZsquared);
|
||||
|
||||
|
||||
if(zDistance <10 && zDistance>-10&&xDistance <10 && xDistance>-10){
|
||||
flagAngle = 90;
|
||||
// AllSoundEvents.CONTRAPTION_ASSEMBLE.play(level,null,getBlockPos().getX(),getBlockPos().getY(),getBlockPos().getZ(),50,1);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
angle = (float) Math.toDegrees(Math.atan(xDistance/zDistance));
|
||||
|
||||
if(this.getBlockPos().getZ()<deposit.getBlockPos().getZ())
|
||||
{
|
||||
angle +=180;
|
||||
}
|
||||
if(angle == 90){
|
||||
angle = -90;
|
||||
return;
|
||||
}
|
||||
|
||||
if(angle == -90)
|
||||
angle = 90;
|
||||
|
||||
return;
|
||||
}
|
||||
for (int i =0;i<100;i++){
|
||||
int random = Create.RANDOM.nextInt(200);
|
||||
random -= 100;
|
||||
int random1 = Create.RANDOM.nextInt(200);
|
||||
random1 -= 100;
|
||||
int random2 = Create.RANDOM.nextInt(2);
|
||||
for(int x = 0; x<2;x++)
|
||||
checkedPosition = new BlockPos(this.getBlockPos().getX() + random, -63-random2, this.getBlockPos().getZ() + random1);
|
||||
BlockEntity checkedTileEntity = level.getBlockEntity(checkedPosition);
|
||||
if (checkedTileEntity instanceof FluidDepositBlockEntity) {
|
||||
deposit = (FluidDepositBlockEntity) checkedTileEntity;
|
||||
if(level.getBlockState(checkedPosition.above()) != Blocks.BEDROCK.defaultBlockState()&&
|
||||
level.getBlockState(checkedPosition.above(2)) != Blocks.BEDROCK.defaultBlockState()
|
||||
&& level.getBlockState(checkedPosition.above(3)) != Blocks.BEDROCK.defaultBlockState()
|
||||
&& level.getBlockState(checkedPosition.above(4)) != Blocks.BEDROCK.defaultBlockState())
|
||||
foundDeposit = true;
|
||||
depositPos = deposit.getBlockPos();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@Override
|
||||
public InteractionResult onWrenched(BlockState state, UseOnContext context) {
|
||||
flagAngle=0;
|
||||
angle=0;
|
||||
foundDeposit=false;
|
||||
deposit=null;
|
||||
|
||||
return InteractionResult.SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void write(CompoundTag compound, boolean clientPacket) {
|
||||
if(foundDeposit&&depositPos!=null)
|
||||
compound.put("DepositPos", NbtUtils.writeBlockPos(depositPos));
|
||||
|
||||
|
||||
compound.putBoolean("FoundDeposit", foundDeposit);
|
||||
|
||||
|
||||
super.write(compound, clientPacket);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void read(CompoundTag compound, boolean clientPacket) {
|
||||
super.read(compound,clientPacket);
|
||||
if(foundDeposit)
|
||||
depositPos = NbtUtils.readBlockPos(compound.getCompound("DepositPos"));
|
||||
foundDeposit = compound.getBoolean("FoundDeposit");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||
if(getSpeed()==0){
|
||||
Lang.translate("goggles.surface_scanner.no_rotation")
|
||||
.style(ChatFormatting.DARK_RED)
|
||||
.forGoggles(tooltip);
|
||||
return true;
|
||||
}
|
||||
if(noDepositFound){
|
||||
Lang.translate("goggles.surface_scanner.no_deposit")
|
||||
.style(ChatFormatting.RED)
|
||||
.space()
|
||||
.forGoggles(tooltip);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(foundDeposit){
|
||||
|
||||
Lang.translate("goggles.surface_scanner.deposit_found")
|
||||
.style(ChatFormatting.DARK_GREEN)
|
||||
.space()
|
||||
.forGoggles(tooltip);
|
||||
|
||||
|
||||
|
||||
Lang.translate("goggles.surface_scanner.distance", this.distanceFromDeposit)
|
||||
.style(ChatFormatting.GREEN)
|
||||
.forGoggles(tooltip,1);
|
||||
|
||||
//debug
|
||||
/*
|
||||
Lang.translate("goggles.surface_scanner.coordinates")
|
||||
.style(ChatFormatting.DARK_GREEN)
|
||||
.space()
|
||||
.forGoggles(tooltip);
|
||||
|
||||
|
||||
Lang.translate("goggles.misc.number", this.deposit.getBlockPos().getX())
|
||||
.style(ChatFormatting.GREEN)
|
||||
.forGoggles(tooltip,1);
|
||||
|
||||
Lang.translate("goggles.misc.number", this.deposit.getBlockPos().getZ())
|
||||
.style(ChatFormatting.GREEN)
|
||||
.forGoggles(tooltip,1);
|
||||
|
||||
|
||||
Lang.translate("goggles.misc.number", angle)
|
||||
.style(ChatFormatting.DARK_PURPLE)
|
||||
.forGoggles(tooltip,1);
|
||||
|
||||
*/
|
||||
|
||||
}else {
|
||||
|
||||
if(dotCount==1)
|
||||
Lang.translate("goggles.surface_scanner.scanning_surface")
|
||||
.style(ChatFormatting.GOLD)
|
||||
.add(Lang.translate("goggles.misc.dot_one"))
|
||||
.forGoggles(tooltip);
|
||||
|
||||
if(dotCount==2)
|
||||
Lang.translate("goggles.surface_scanner.scanning_surface")
|
||||
.style(ChatFormatting.GOLD)
|
||||
.add(Lang.translate("goggles.misc.dot_two"))
|
||||
.forGoggles(tooltip);
|
||||
|
||||
if(dotCount==3)
|
||||
Lang.translate("goggles.surface_scanner.scanning_surface")
|
||||
.style(ChatFormatting.GOLD)
|
||||
.add(Lang.translate("goggles.misc.dot_three"))
|
||||
.forGoggles(tooltip);
|
||||
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,300 @@
|
||||
package com.drmangotea.tfmg.content.gadgets.quad_potato_cannon;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.CreateTFMGClient;
|
||||
import com.simibubi.create.AllEnchantments;
|
||||
import com.simibubi.create.AllEntityTypes;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.equipment.armor.BacktankUtil;
|
||||
import com.simibubi.create.content.equipment.potatoCannon.*;
|
||||
import com.simibubi.create.content.equipment.zapper.ShootableGadgetItemMethods;
|
||||
import com.simibubi.create.foundation.item.CustomArmPoseItem;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.AbstractClientPlayer;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.InteractionResultHolder;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.ProjectileWeaponItem;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
import net.minecraft.world.item.UseAnim;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.item.enchantment.Enchantment;
|
||||
import net.minecraft.world.item.enchantment.EnchantmentHelper;
|
||||
import net.minecraft.world.item.enchantment.Enchantments;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
public class QuadPotatoCannonItem extends ProjectileWeaponItem implements CustomArmPoseItem {
|
||||
|
||||
public static ItemStack CLIENT_CURRENT_AMMO = ItemStack.EMPTY;
|
||||
public static final int MAX_DAMAGE = 100;
|
||||
|
||||
public QuadPotatoCannonItem(Properties properties) {
|
||||
super(properties.defaultDurability(MAX_DAMAGE));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAttackBlock(BlockState state, Level world, BlockPos pos, Player player) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantment) {
|
||||
if (enchantment == Enchantments.POWER_ARROWS)
|
||||
return true;
|
||||
if (enchantment == Enchantments.PUNCH_ARROWS)
|
||||
return true;
|
||||
if (enchantment == Enchantments.FLAMING_ARROWS)
|
||||
return true;
|
||||
if (enchantment == Enchantments.MOB_LOOTING)
|
||||
return true;
|
||||
if (enchantment == AllEnchantments.POTATO_RECOVERY.get())
|
||||
return true;
|
||||
return super.canApplyAtEnchantingTable(stack, enchantment);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResult useOn(UseOnContext context) {
|
||||
return use(context.getLevel(), context.getPlayer(), context.getHand()).getResult();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBarVisible(ItemStack stack) {
|
||||
return BacktankUtil.isBarVisible(stack, 500);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBarWidth(ItemStack stack) {
|
||||
return BacktankUtil.getBarWidth(stack, 500);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBarColor(ItemStack stack) {
|
||||
return BacktankUtil.getBarColor(stack, 500);
|
||||
}
|
||||
|
||||
//private int maxUses() {
|
||||
// return AllConfigs.server()..maxPotatoCannonShots.get()*2;
|
||||
// }
|
||||
|
||||
public boolean isCannon(ItemStack stack) {
|
||||
return stack.getItem() instanceof QuadPotatoCannonItem;
|
||||
}
|
||||
|
||||
@Override
|
||||
public InteractionResultHolder<ItemStack> use(Level world, Player player, InteractionHand hand) {
|
||||
ItemStack stack = player.getItemInHand(hand);
|
||||
return findAmmoInInventory(world, player, stack).map(itemStack -> {
|
||||
|
||||
if (ShootableGadgetItemMethods.shouldSwap(player, stack, hand, this::isCannon))
|
||||
return InteractionResultHolder.fail(stack);
|
||||
|
||||
if (world.isClientSide) {
|
||||
CreateTFMGClient.QUAD_POTATO_CANNON_RENDER_HANDLER.dontAnimateItem(hand);
|
||||
return InteractionResultHolder.success(stack);
|
||||
}
|
||||
|
||||
Vec3 barrelPos = ShootableGadgetItemMethods.getGunBarrelVec(player, hand == InteractionHand.MAIN_HAND,
|
||||
new Vec3(.75f, -0.15f, 1.5f));
|
||||
Vec3 correction =
|
||||
ShootableGadgetItemMethods.getGunBarrelVec(player, hand == InteractionHand.MAIN_HAND, new Vec3(-.05f, 0, 0))
|
||||
.subtract(player.position()
|
||||
.add(0, player.getEyeHeight(), 0));
|
||||
|
||||
PotatoCannonProjectileType projectileType = PotatoProjectileTypeManager.getTypeForStack(itemStack)
|
||||
.orElse(BuiltinPotatoProjectileTypes.FALLBACK);
|
||||
Vec3 lookVec = player.getLookAngle();
|
||||
Vec3 motion = lookVec.add(correction)
|
||||
.normalize()
|
||||
.scale(2)
|
||||
.scale(projectileType.getVelocityMultiplier());
|
||||
|
||||
float soundPitch = projectileType.getSoundPitch() + (Create.RANDOM.nextFloat() - .5f) / 4f;
|
||||
|
||||
// boolean spray = projectileType.getSplit() > 1;
|
||||
Vec3 sprayBase = VecHelper.rotate(new Vec3(0, 0.1, 0), 360 * Create.RANDOM.nextFloat(), Axis.Z);
|
||||
float sprayChange = 360f;
|
||||
|
||||
for (int i = 0; i < 4 * projectileType.getSplit(); i++) {
|
||||
if (itemStack.getCount() > 0) {
|
||||
PotatoProjectileEntity projectile = AllEntityTypes.POTATO_PROJECTILE.create(world);
|
||||
projectile.setItem(itemStack);
|
||||
projectile.setEnchantmentEffectsFromCannon(stack);
|
||||
|
||||
Vec3 splitMotion = motion;
|
||||
// if (spray) {
|
||||
float imperfection = 40 * 40;
|
||||
Vec3 sprayOffset = VecHelper.rotate(sprayBase, i * 100, Axis.Z);
|
||||
splitMotion = splitMotion.add(VecHelper.lookAt(sprayOffset, motion));
|
||||
// }
|
||||
|
||||
|
||||
projectile.setPos(barrelPos.x, barrelPos.y, barrelPos.z);
|
||||
projectile.setDeltaMovement(splitMotion);
|
||||
projectile.setOwner(player);
|
||||
world.addFreshEntity(projectile);
|
||||
|
||||
if (!player.isCreative()) {
|
||||
itemStack.shrink(1);
|
||||
if (itemStack.isEmpty())
|
||||
player.getInventory().removeItem(itemStack);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!BacktankUtil.canAbsorbDamage(player, 500))
|
||||
stack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(hand));
|
||||
|
||||
Integer cooldown =
|
||||
findAmmoInInventory(world, player, stack).flatMap(PotatoProjectileTypeManager::getTypeForStack)
|
||||
.map(PotatoCannonProjectileType::getReloadTicks)
|
||||
.orElse(10);
|
||||
|
||||
ShootableGadgetItemMethods.applyCooldown(player, stack, hand, this::isCannon, cooldown);
|
||||
ShootableGadgetItemMethods.sendPackets(player,
|
||||
b -> new PotatoCannonPacket(barrelPos, lookVec.normalize(), itemStack, hand, soundPitch, b));
|
||||
|
||||
return InteractionResultHolder.success(stack);
|
||||
|
||||
})
|
||||
.orElse(InteractionResultHolder.pass(stack));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) {
|
||||
return slotChanged || newStack.getItem() != oldStack.getItem();
|
||||
}
|
||||
|
||||
private Optional<ItemStack> findAmmoInInventory(Level world, Player player, ItemStack held) {
|
||||
ItemStack findAmmo = player.getProjectile(held);
|
||||
return PotatoProjectileTypeManager.getTypeForStack(findAmmo)
|
||||
.map($ -> findAmmo);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public static Optional<ItemStack> getAmmoforPreview(ItemStack cannon) {
|
||||
if (AnimationTickHolder.getTicks() % 3 != 0)
|
||||
return Optional.of(CLIENT_CURRENT_AMMO)
|
||||
.filter(stack -> !stack.isEmpty());
|
||||
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
CLIENT_CURRENT_AMMO = ItemStack.EMPTY;
|
||||
if (player == null)
|
||||
return Optional.empty();
|
||||
ItemStack findAmmo = player.getProjectile(cannon);
|
||||
Optional<ItemStack> found = PotatoProjectileTypeManager.getTypeForStack(findAmmo)
|
||||
.map($ -> findAmmo);
|
||||
found.ifPresent(stack -> CLIENT_CURRENT_AMMO = stack);
|
||||
return found;
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void appendHoverText(ItemStack stack, Level world, List<Component> tooltip, TooltipFlag flag) {
|
||||
int power = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.POWER_ARROWS, stack);
|
||||
int punch = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.PUNCH_ARROWS, stack);
|
||||
final float additionalDamageMult = 1 + power * .2f;
|
||||
final float additionalKnockback = punch * .5f;
|
||||
|
||||
getAmmoforPreview(stack).ifPresent(ammo -> {
|
||||
String _attack = "potato_cannon.ammo.attack_damage";
|
||||
String _reload = "potato_cannon.ammo.reload_ticks";
|
||||
String _knockback = "potato_cannon.ammo.knockback";
|
||||
|
||||
tooltip.add(Components.immutableEmpty());
|
||||
tooltip.add(Components.translatable(ammo.getDescriptionId()).append(Components.literal(":"))
|
||||
.withStyle(ChatFormatting.GRAY));
|
||||
PotatoCannonProjectileType type = PotatoProjectileTypeManager.getTypeForStack(ammo)
|
||||
.get();
|
||||
MutableComponent spacing = Components.literal(" ");
|
||||
ChatFormatting green = ChatFormatting.GREEN;
|
||||
ChatFormatting darkGreen = ChatFormatting.DARK_GREEN;
|
||||
|
||||
float damageF = type.getDamage() * additionalDamageMult;
|
||||
MutableComponent damage = Components.literal(
|
||||
damageF == Mth.floor(damageF) ? "" + Mth.floor(damageF) : "" + damageF);
|
||||
MutableComponent reloadTicks = Components.literal("" + type.getReloadTicks());
|
||||
MutableComponent knockback =
|
||||
Components.literal("" + (type.getKnockback() + additionalKnockback));
|
||||
|
||||
damage = damage.withStyle(additionalDamageMult > 1 ? green : darkGreen);
|
||||
knockback = knockback.withStyle(additionalKnockback > 0 ? green : darkGreen);
|
||||
reloadTicks = reloadTicks.withStyle(darkGreen);
|
||||
|
||||
tooltip.add(spacing.plainCopy()
|
||||
.append(Lang.translateDirect(_attack, damage)
|
||||
.withStyle(darkGreen)));
|
||||
tooltip.add(spacing.plainCopy()
|
||||
.append(Lang.translateDirect(_reload, reloadTicks)
|
||||
.withStyle(darkGreen)));
|
||||
tooltip.add(spacing.plainCopy()
|
||||
.append(Lang.translateDirect(_knockback, knockback)
|
||||
.withStyle(darkGreen)));
|
||||
});
|
||||
super.appendHoverText(stack, world, tooltip, flag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<ItemStack> getAllSupportedProjectiles() {
|
||||
return stack -> PotatoProjectileTypeManager.getTypeForStack(stack)
|
||||
.isPresent();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onEntitySwing(ItemStack stack, LivingEntity entity) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public UseAnim getUseAnimation(ItemStack stack) {
|
||||
return UseAnim.NONE;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public HumanoidModel.ArmPose getArmPose(ItemStack stack, AbstractClientPlayer player, InteractionHand hand) {
|
||||
if (!player.swinging) {
|
||||
return HumanoidModel.ArmPose.CROSSBOW_HOLD;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDefaultProjectileRange() {
|
||||
return 15;
|
||||
}
|
||||
/*
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void initializeClient(Consumer<IItemRenderProperties> consumer) {
|
||||
consumer.accept(SimpleCustomRenderer.create(this, new QuadPotatoCannonItemRenderer()));
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.drmangotea.tfmg.content.gadgets.quad_potato_cannon;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.CreateTFMGClient;
|
||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.math.Vector3f;
|
||||
import com.simibubi.create.content.equipment.potatoCannon.PotatoCannonItem;
|
||||
import com.simibubi.create.foundation.item.render.CustomRenderedItemModel;
|
||||
import com.simibubi.create.foundation.item.render.CustomRenderedItemModelRenderer;
|
||||
import com.simibubi.create.foundation.item.render.PartialItemModelRenderer;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.block.model.ItemTransforms;
|
||||
import net.minecraft.client.renderer.entity.ItemRenderer;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.HumanoidArm;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
public class QuadPotatoCannonItemRenderer extends CustomRenderedItemModelRenderer {
|
||||
@Override
|
||||
protected void render(ItemStack stack, CustomRenderedItemModel model, PartialItemModelRenderer renderer,
|
||||
ItemTransforms.TransformType transformType, PoseStack ms, MultiBufferSource buffer, int light, int overlay) {
|
||||
ItemRenderer itemRenderer = Minecraft.getInstance()
|
||||
.getItemRenderer();
|
||||
renderer.render(model.getOriginalModel(), light);
|
||||
LocalPlayer player = Minecraft.getInstance().player;
|
||||
boolean mainHand = player.getMainHandItem() == stack;
|
||||
boolean offHand = player.getOffhandItem() == stack;
|
||||
boolean leftHanded = player.getMainArm() == HumanoidArm.LEFT;
|
||||
|
||||
float offset = .5f / 16;
|
||||
float worldTime = AnimationTickHolder.getRenderTime() / 10;
|
||||
float angle = worldTime * -25;
|
||||
float speed = CreateTFMGClient.QUAD_POTATO_CANNON_RENDER_HANDLER.getAnimation(mainHand ^ leftHanded,
|
||||
AnimationTickHolder.getPartialTicks());
|
||||
|
||||
if (mainHand || offHand)
|
||||
angle += 360 * Mth.clamp(speed * 5, 0, 1);
|
||||
angle %= 360;
|
||||
|
||||
ms.pushPose();
|
||||
ms.translate(0, offset, 0);
|
||||
ms.mulPose(Vector3f.ZP.rotationDegrees(angle));
|
||||
ms.translate(0, -offset, 0);
|
||||
// renderer.render(model.getPartial("cog"), light);
|
||||
ms.popPose();
|
||||
|
||||
if (transformType == ItemTransforms.TransformType.GUI) {
|
||||
PotatoCannonItem.getAmmoforPreview(stack)
|
||||
.ifPresent(ammo -> {
|
||||
PoseStack localMs = new PoseStack();
|
||||
localMs.translate(-1 / 4f, -1 / 4f, 1);
|
||||
localMs.scale(.5f, .5f, .5f);
|
||||
TransformStack.cast(localMs)
|
||||
.rotateY(-34);
|
||||
itemRenderer.renderStatic(ammo, ItemTransforms.TransformType.GUI, light, OverlayTexture.NO_OVERLAY, localMs, buffer, 0);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.drmangotea.tfmg.content.gadgets.quad_potato_cannon;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.registry.TFMGItems;
|
||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.content.equipment.potatoCannon.PotatoProjectileEntity;
|
||||
import com.simibubi.create.content.equipment.zapper.ShootableGadgetRenderHandler;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class QuadPotatoCannonRenderHandler extends ShootableGadgetRenderHandler {
|
||||
|
||||
private float nextPitch;
|
||||
|
||||
@Override
|
||||
protected void playSound(InteractionHand hand, Vec3 position) {
|
||||
PotatoProjectileEntity.playLaunchSound(Minecraft.getInstance().level, position, nextPitch);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean appliesTo(ItemStack stack) {
|
||||
return ((QuadPotatoCannonItem) TFMGItems.QUAD_POTATO_CANNON.get())
|
||||
.isCannon(stack);
|
||||
}
|
||||
/*
|
||||
public void beforeShoot(float nextPitch, Vec3 location, Vec3 motion, ItemStack stack) {
|
||||
this.nextPitch = nextPitch;
|
||||
if (stack.isEmpty())
|
||||
return;
|
||||
ClientLevel world = Minecraft.getInstance().level;
|
||||
for (int i = 0; i < 2; i++) {
|
||||
Vec3 m = VecHelper.offsetRandomly(motion.scale(0.1f), Create.RANDOM, .025f);
|
||||
world.addParticle(new ItemParticleOption(ParticleTypes.ITEM, stack), location.x, location.y, location.z, m.x,
|
||||
m.y, m.z);
|
||||
|
||||
Vec3 m2 = VecHelper.offsetRandomly(motion.scale(2f), Create.RANDOM, .5f);
|
||||
world.addParticle(new AirParticleData(1, 1 / 4f), location.x, location.y, location.z, m2.x, m2.y, m2.z);
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
@Override
|
||||
protected void transformTool(PoseStack ms, float flip, float equipProgress, float recoil, float pt) {
|
||||
ms.translate(flip * -.1f, 0, .14f);
|
||||
ms.scale(.75f, .75f, .75f);
|
||||
TransformStack.cast(ms)
|
||||
.rotateX(recoil * 80);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void transformHand(PoseStack ms, float flip, float equipProgress, float recoil, float pt) {
|
||||
ms.translate(flip * -.09, -.275, -.25);
|
||||
TransformStack.cast(ms)
|
||||
.rotateZ(flip * -10);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
package com.drmangotea.tfmg.content.machines.pipes.pumps;
|
||||
|
||||
import com.drmangotea.createindustry.registry.CIBlockEntities;
|
||||
|
||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||
import com.simibubi.create.content.fluids.pump.PumpBlock;
|
||||
import com.simibubi.create.content.fluids.pump.PumpBlockEntity;
|
||||
import net.minecraft.core.BlockPos;
|
||||
@@ -10,8 +10,8 @@ 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_) {
|
||||
public class TFMGPumpBlock extends PumpBlock {
|
||||
public TFMGPumpBlock(Properties p_i48415_1_) {
|
||||
super(p_i48415_1_);
|
||||
}
|
||||
|
||||
@@ -30,8 +30,6 @@ public class SteelPumpBlock extends PumpBlock {
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends PumpBlockEntity> getBlockEntityType() {
|
||||
return CIBlockEntities.STEEL_PUMP.get();
|
||||
return TFMGBlockEntities.TFMG_MECHANICAL_PUMP.get();
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.drmangotea.tfmg.content.machines.pipes.smart_pipes;
|
||||
|
||||
|
||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||
import com.drmangotea.tfmg.registry.TFMGBlocks;
|
||||
import com.simibubi.create.AllBlockEntityTypes;
|
||||
import com.simibubi.create.AllShapes;
|
||||
import com.simibubi.create.content.equipment.wrench.IWrenchable;
|
||||
import com.simibubi.create.content.fluids.FluidPropagator;
|
||||
import com.simibubi.create.content.fluids.pipes.FluidPipeBlock;
|
||||
import com.simibubi.create.content.fluids.pipes.IAxisPipe;
|
||||
import com.simibubi.create.content.fluids.pipes.SmartFluidPipeBlock;
|
||||
import com.simibubi.create.content.fluids.pipes.SmartFluidPipeBlockEntity;
|
||||
import com.simibubi.create.foundation.advancement.AdvancementBehaviour;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import com.simibubi.create.foundation.block.ProperWaterloggedBlock;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
import com.simibubi.create.foundation.utility.VoxelShaper;
|
||||
|
||||
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.entity.LivingEntity;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
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.FaceAttachedHorizontalDirectionalBlock;
|
||||
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.AttachFace;
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import net.minecraft.world.ticks.TickPriority;
|
||||
|
||||
public class TFMGSmartFluidPipeBlock extends SmartFluidPipeBlock
|
||||
implements IBE<SmartFluidPipeBlockEntity>, IAxisPipe, IWrenchable, ProperWaterloggedBlock {
|
||||
|
||||
public TFMGSmartFluidPipeBlock(Properties p_i48339_1_) {
|
||||
super(p_i48339_1_);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Class<SmartFluidPipeBlockEntity> getBlockEntityClass() {
|
||||
return SmartFluidPipeBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends SmartFluidPipeBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.TFMG_SMART_FLUID_PIPE.get();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.drmangotea.tfmg.content.machines.pipes.valves;
|
||||
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
|
||||
import com.simibubi.create.AllBlockEntityTypes;
|
||||
import com.simibubi.create.AllShapes;
|
||||
import com.simibubi.create.content.fluids.FluidPropagator;
|
||||
import com.simibubi.create.content.fluids.pipes.FluidPipeBlock;
|
||||
import com.simibubi.create.content.fluids.pipes.IAxisPipe;
|
||||
import com.simibubi.create.content.fluids.pipes.valve.FluidValveBlock;
|
||||
import com.simibubi.create.content.fluids.pipes.valve.FluidValveBlockEntity;
|
||||
import com.simibubi.create.content.kinetics.base.DirectionalAxisKineticBlock;
|
||||
import com.simibubi.create.foundation.block.IBE;
|
||||
import com.simibubi.create.foundation.block.ProperWaterloggedBlock;
|
||||
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.item.context.BlockPlaceContext;
|
||||
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.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.material.FluidState;
|
||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import net.minecraft.world.ticks.TickPriority;
|
||||
|
||||
public class TFMGFluidValveBlock extends FluidValveBlock
|
||||
implements IAxisPipe, IBE<FluidValveBlockEntity>, ProperWaterloggedBlock {
|
||||
|
||||
public static final BooleanProperty ENABLED = BooleanProperty.create("enabled");
|
||||
|
||||
public TFMGFluidValveBlock(Properties properties) {
|
||||
super(properties);
|
||||
registerDefaultState(defaultBlockState().setValue(ENABLED, false)
|
||||
.setValue(WATERLOGGED, false));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Class<FluidValveBlockEntity> getBlockEntityClass() {
|
||||
return FluidValveBlockEntity.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends FluidValveBlockEntity> getBlockEntityType() {
|
||||
return TFMGBlockEntities.TFMG_FLUID_VALVE.get();
|
||||
}
|
||||
}
|
||||
@@ -86,7 +86,7 @@ public class FluidPropagatorMixin {
|
||||
BlockState targetState = world.getBlockState(target);
|
||||
if (tileEntity instanceof PumpBlockEntity) {
|
||||
if (
|
||||
//!TFMGBlocks.STEEL_PUMP.has(targetState)&&
|
||||
!TFMGBlocks.STEEL_MECHANICAL_PUMP.has(targetState)&&
|
||||
!AllBlocks.MECHANICAL_PUMP.has(targetState) || targetState.getValue(PumpBlock.FACING)
|
||||
.getAxis() != direction.getAxis())
|
||||
continue;
|
||||
|
||||
@@ -2,13 +2,25 @@ package com.drmangotea.tfmg.registry;
|
||||
|
||||
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.drmangotea.tfmg.content.decoration.doors.TFMGSlidingDoorBlockEntity;
|
||||
import com.drmangotea.tfmg.content.decoration.doors.TFMGSlidingDoorRenderer;
|
||||
import com.drmangotea.tfmg.content.deposits.FluidDepositBlockEntity;
|
||||
import com.drmangotea.tfmg.content.deposits.surface_scanner.SurfaceScannerRenderer;
|
||||
import com.drmangotea.tfmg.content.deposits.surface_scanner.SurfaceScannerTileEntity;
|
||||
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.SmartFluidPipeBlockEntity;
|
||||
import com.simibubi.create.content.fluids.pipes.StraightPipeBlockEntity;
|
||||
import com.simibubi.create.content.fluids.pipes.TransparentStraightPipeRenderer;
|
||||
import com.simibubi.create.content.fluids.pipes.valve.FluidValveBlockEntity;
|
||||
import com.simibubi.create.content.fluids.pipes.valve.FluidValveInstance;
|
||||
import com.simibubi.create.content.fluids.pipes.valve.FluidValveRenderer;
|
||||
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.HorizontalHalfShaftInstance;
|
||||
import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer;
|
||||
import com.tterrag.registrate.util.entry.BlockEntityEntry;
|
||||
|
||||
import static com.drmangotea.tfmg.CreateTFMG.REGISTRATE;
|
||||
@@ -23,8 +35,8 @@ public class TFMGBlockEntities {
|
||||
.renderer(() -> FormWorkRenderer::new)
|
||||
.validBlocks(TFMGBlocks.FORMWORK_BLOCK)
|
||||
.register();
|
||||
public static final BlockEntityEntry<FluidDepositTileEntity> OIL_DEPOSIT = REGISTRATE
|
||||
.blockEntity("oil_deposit", FluidDepositTileEntity::new)
|
||||
public static final BlockEntityEntry<FluidDepositBlockEntity> OIL_DEPOSIT = REGISTRATE
|
||||
.blockEntity("oil_deposit", FluidDepositBlockEntity::new)
|
||||
// .validBlocks(TFMGBlocks.OIL_DEPOSIT)
|
||||
.register();
|
||||
|
||||
@@ -53,8 +65,40 @@ public class TFMGBlockEntities {
|
||||
.register();
|
||||
|
||||
|
||||
public static final BlockEntityEntry<TFMGSlidingDoorBlockEntity> TFMG_SLIDING_DOOR =
|
||||
REGISTRATE.blockEntity("tfmg_sliding_door", TFMGSlidingDoorBlockEntity::new)
|
||||
.renderer(() -> TFMGSlidingDoorRenderer::new)
|
||||
.validBlocks(TFMGBlocks.HEAVY_CASING_DOOR,TFMGBlocks.STEEL_CASING_DOOR)
|
||||
.register();
|
||||
|
||||
|
||||
public static final BlockEntityEntry<PumpBlockEntity> TFMG_MECHANICAL_PUMP = REGISTRATE
|
||||
.blockEntity("mechanical_pump", PumpBlockEntity::new)
|
||||
.instance(() -> PumpCogInstance::new)
|
||||
.validBlocks(TFMGBlocks.STEEL_MECHANICAL_PUMP)
|
||||
.renderer(() -> PumpRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<SmartFluidPipeBlockEntity> TFMG_SMART_FLUID_PIPE = REGISTRATE
|
||||
.blockEntity("smart_fluid_pipe", SmartFluidPipeBlockEntity::new)
|
||||
.validBlocks(TFMGBlocks.STEEL_SMART_FLUID_PIPE)
|
||||
.renderer(() -> SmartBlockEntityRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<FluidValveBlockEntity> TFMG_FLUID_VALVE = REGISTRATE
|
||||
.blockEntity("fluid_valve", FluidValveBlockEntity::new)
|
||||
.instance(() -> FluidValveInstance::new)
|
||||
.validBlocks(TFMGBlocks.STEEL_FLUID_VALVE)
|
||||
.renderer(() -> FluidValveRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<SurfaceScannerTileEntity> SURFACE_SCANNER = REGISTRATE
|
||||
.blockEntity("deposit_scanner", SurfaceScannerTileEntity::new)
|
||||
.instance(() -> HorizontalHalfShaftInstance::new)
|
||||
.validBlocks(TFMGBlocks.SURFACE_SCANNER)
|
||||
.renderer(() -> SurfaceScannerRenderer::new)
|
||||
.register();
|
||||
|
||||
|
||||
public static void register() {}
|
||||
}
|
||||
|
||||
@@ -1,17 +1,22 @@
|
||||
package com.drmangotea.tfmg.registry;
|
||||
|
||||
import com.drmangotea.tfmg.base.TFMGBlockStateGen;
|
||||
import com.drmangotea.tfmg.base.TFMGBuilderTransformers;
|
||||
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.decoration.doors.TFMGSlidingDoorBlock;
|
||||
import com.drmangotea.tfmg.content.deposits.FluidDepositBlock;
|
||||
import com.drmangotea.tfmg.content.gadgets.explosives.napalm.NapalmBombBlock;
|
||||
import com.drmangotea.tfmg.content.items.CoalCokeBlockItem;
|
||||
import com.drmangotea.tfmg.content.items.FossilstoneItem;
|
||||
import com.drmangotea.tfmg.content.deposits.surface_scanner.SurfaceScannerBlock;
|
||||
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.pipes.pumps.TFMGPumpBlock;
|
||||
import com.drmangotea.tfmg.content.machines.pipes.smart_pipes.TFMGSmartFluidPipeBlock;
|
||||
import com.drmangotea.tfmg.content.machines.pipes.valves.TFMGFluidValveBlock;
|
||||
import com.drmangotea.tfmg.content.machines.tanks.SteelFluidTankModel;
|
||||
import com.drmangotea.tfmg.content.machines.tanks.SteelTankBlock;
|
||||
import com.drmangotea.tfmg.content.machines.tanks.SteelTankGenerator;
|
||||
@@ -22,6 +27,9 @@ import com.simibubi.create.content.decoration.encasing.CasingBlock;
|
||||
import com.simibubi.create.content.decoration.encasing.EncasedCTBehaviour;
|
||||
import com.simibubi.create.content.decoration.encasing.EncasingRegistry;
|
||||
|
||||
import com.simibubi.create.content.fluids.pipes.SmartFluidPipeGenerator;
|
||||
import com.simibubi.create.content.fluids.pipes.valve.FluidValveBlock;
|
||||
import com.simibubi.create.content.kinetics.BlockStressDefaults;
|
||||
import com.simibubi.create.foundation.data.*;
|
||||
import com.tterrag.registrate.util.entry.BlockEntry;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
@@ -115,8 +123,19 @@ public class TFMGBlocks {
|
||||
.build()
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<SurfaceScannerBlock> SURFACE_SCANNER =
|
||||
REGISTRATE.block("surface_scanner", SurfaceScannerBlock::new)
|
||||
// .properties(p -> p.color(MaterialColor.COLOR_GRAY))
|
||||
// .properties(p -> p
|
||||
// .strength(4.5F))
|
||||
// .properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(TFMGBuilderTransformers.surfaceScanner())
|
||||
// .transform(axeOrPickaxe())
|
||||
// .transform(BlockStressDefaults.setImpact(10.0))
|
||||
.register();
|
||||
|
||||
//pipes
|
||||
|
||||
//fluid stuff
|
||||
public static final BlockEntry<SteelPipeBlock> STEEL_PIPE = REGISTRATE.block("steel_pipe", SteelPipeBlock::new)
|
||||
.initialProperties(Material.HEAVY_METAL)
|
||||
.transform(pickaxeOnly())
|
||||
@@ -164,9 +183,42 @@ public class TFMGBlocks {
|
||||
.onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new))
|
||||
.loot((p, b) -> p.dropOther(b, STEEL_PIPE.get()))
|
||||
.register();
|
||||
//
|
||||
|
||||
|
||||
public static final BlockEntry<TFMGPumpBlock> STEEL_MECHANICAL_PUMP = REGISTRATE.block("steel_mechanical_pump", TFMGPumpBlock::new)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.properties(p -> p.color(MaterialColor.STONE))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new))
|
||||
.transform(BlockStressDefaults.setImpact(4.0))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<TFMGSmartFluidPipeBlock> STEEL_SMART_FLUID_PIPE =
|
||||
REGISTRATE.block("steel_smart_fluid_pipe", TFMGSmartFluidPipeBlock::new)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.properties(p -> p.color(MaterialColor.STONE))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(new SmartFluidPipeGenerator()::generate)
|
||||
.onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<TFMGFluidValveBlock> STEEL_FLUID_VALVE = REGISTRATE.block("steel_fluid_valve", TFMGFluidValveBlock::new)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p,
|
||||
(state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal",
|
||||
state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed")))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> SteelPipeAttachmentModel::new))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
@SuppressWarnings("'addLayer(java.util.function.Supplier<java.util.function.Supplier<net.minecraft.client.renderer.RenderType>>)' is deprecated and marked for removal ")
|
||||
public static final BlockEntry<SteelTankBlock> STEEL_FLUID_TANK = REGISTRATE.block("steel_fluid_tank", SteelTankBlock::regular)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
@@ -184,6 +236,10 @@ public class TFMGBlocks {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//-----------------------BUILDING BLOCKS---------------------------//
|
||||
public static final BlockEntry<Block> STEEL_BLOCK = REGISTRATE.block("steel_block", Block::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
@@ -267,6 +323,36 @@ public class TFMGBlocks {
|
||||
.lang("Block of Coal Coke")
|
||||
.register();
|
||||
|
||||
//sheetmetals
|
||||
public static final BlockEntry<Block> STEEL_SHEETMETAL = REGISTRATE.block("steel_sheetmetal", Block::new)
|
||||
.initialProperties(() -> Blocks.IRON_BLOCK)
|
||||
.properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY))
|
||||
.properties(p -> p.requiresCorrectToolForDrops())
|
||||
.onRegister(connectedTextures(() -> new EncasedCTBehaviour(TFMGSpriteShifts.STEEL_SHEETMETAL)))
|
||||
.onRegister(casingConnectivity((block, cc) -> cc.makeCasing(block, TFMGSpriteShifts.STEEL_SHEETMETAL)))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(simpleCubeAll("steel_sheetmetal"))
|
||||
.tag(BlockTags.NEEDS_IRON_TOOL)
|
||||
.item()
|
||||
.build()
|
||||
.lang("Steel Sheetmetal")
|
||||
.register();
|
||||
|
||||
//
|
||||
public static final BlockEntry<TFMGSlidingDoorBlock> HEAVY_CASING_DOOR =
|
||||
REGISTRATE.block("heavy_casing_door", p -> new TFMGSlidingDoorBlock(p, false))
|
||||
.transform(TFMGBuilderTransformers.slidingDoor("heavy_casing"))
|
||||
.properties(p -> p.color(MaterialColor.TERRACOTTA_CYAN)
|
||||
.sound(SoundType.COPPER)
|
||||
.noOcclusion())
|
||||
.register();
|
||||
public static final BlockEntry<TFMGSlidingDoorBlock> STEEL_CASING_DOOR =
|
||||
REGISTRATE.block("steel_door", p -> new TFMGSlidingDoorBlock(p, true))
|
||||
.transform(TFMGBuilderTransformers.slidingDoor("steel"))
|
||||
.properties(p -> p.color(MaterialColor.TERRACOTTA_CYAN)
|
||||
.sound(SoundType.COPPER)
|
||||
.noOcclusion())
|
||||
.register();
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,8 +2,12 @@ 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.gadgets.quad_potato_cannon.QuadPotatoCannonItem;
|
||||
import com.drmangotea.tfmg.content.items.CoalCokeItem;
|
||||
import com.drmangotea.tfmg.content.items.ScrewdriverItem;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.equipment.potatoCannon.PotatoCannonItem;
|
||||
import com.simibubi.create.foundation.data.AssetLookup;
|
||||
import com.tterrag.registrate.util.entry.ItemEntry;
|
||||
import net.minecraft.tags.TagKey;
|
||||
import net.minecraft.world.item.Item;
|
||||
@@ -19,12 +23,7 @@ public class TFMGItems {
|
||||
REGISTRATE.creativeModeTab(() -> TFMGCreativeModeTabs.TFMG_BASE);
|
||||
}
|
||||
|
||||
public static final ItemEntry<ThermiteGrenadeItem>
|
||||
THERMITE_GRENADE = thermiteGrenade("thermite_grenade",BASE);
|
||||
public static final ItemEntry<ThermiteGrenadeItem>
|
||||
ZINC_GRENADE = thermiteGrenade("zinc_grenade",GREEN);
|
||||
public static final ItemEntry<ThermiteGrenadeItem>
|
||||
COPPER_GRENADE = thermiteGrenade("copper_grenade",BLUE);
|
||||
|
||||
|
||||
public static final ItemEntry<Item>
|
||||
STEEL_INGOT = taggedIngredient("steel_ingot", forgeItemTag("ingots/steel"), CREATE_INGOTS.tag),
|
||||
@@ -33,6 +32,12 @@ public class TFMGItems {
|
||||
LEAD_INGOT = taggedIngredient("lead_ingot", forgeItemTag("ingots/lead"), CREATE_INGOTS.tag);
|
||||
|
||||
|
||||
|
||||
public static final ItemEntry<QuadPotatoCannonItem> QUAD_POTATO_CANNON =
|
||||
REGISTRATE.item("quad_potato_cannon", QuadPotatoCannonItem::new)
|
||||
.model(AssetLookup.itemModelWithPartials())
|
||||
.register();
|
||||
|
||||
public static final ItemEntry<CoalCokeItem> COAL_COKE = REGISTRATE.item("coal_coke", CoalCokeItem::new)
|
||||
.register();
|
||||
|
||||
@@ -40,7 +45,12 @@ public class TFMGItems {
|
||||
.properties(p -> p.stacksTo(1)
|
||||
.durability(256))
|
||||
.register();
|
||||
|
||||
public static final ItemEntry<ThermiteGrenadeItem>
|
||||
THERMITE_GRENADE = thermiteGrenade("thermite_grenade",BASE);
|
||||
public static final ItemEntry<ThermiteGrenadeItem>
|
||||
ZINC_GRENADE = thermiteGrenade("zinc_grenade",GREEN);
|
||||
public static final ItemEntry<ThermiteGrenadeItem>
|
||||
COPPER_GRENADE = thermiteGrenade("copper_grenade",BLUE);
|
||||
//////////////////////////
|
||||
|
||||
@SafeVarargs
|
||||
|
||||
@@ -19,6 +19,8 @@ public class TFMGPartialModels {
|
||||
|
||||
public static final PartialModel
|
||||
STEEL_FLUID_PIPE_CASING = block("steel_pipe/casing"),
|
||||
SURFACE_SCANNER_DIAL = block("surface_scanner/dial"),
|
||||
SURFACE_SCANNER_FLAG = block("surface_scanner/flag"),
|
||||
FORMWORK_BOTTOM = block("formwork_block/block_bottom"),
|
||||
FORMWORK_SIDE = block("formwork_block/block_side");
|
||||
|
||||
|
||||
111
src/main/java/com/drmangotea/tfmg/registry/TFMGShapes.java
Normal file
111
src/main/java/com/drmangotea/tfmg/registry/TFMGShapes.java
Normal file
@@ -0,0 +1,111 @@
|
||||
package com.drmangotea.tfmg.registry;
|
||||
|
||||
|
||||
import com.simibubi.create.foundation.utility.VoxelShaper;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.phys.shapes.BooleanOp;
|
||||
import net.minecraft.world.phys.shapes.Shapes;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
|
||||
import java.util.function.BiFunction;
|
||||
|
||||
import static net.minecraft.core.Direction.UP;
|
||||
|
||||
public class TFMGShapes {
|
||||
|
||||
public static final VoxelShaper
|
||||
ENGINE_BACK = shape(3, 0, 3, 13, 16, 16)
|
||||
.forDirectional(),
|
||||
ENGINE_BACK_VERTICAL = shape(3, 0, 0, 13, 16, 13)
|
||||
.forDirectional(),
|
||||
ENGINE_VERTICAL = shape(3, 0, 0, 13, 14, 13)
|
||||
.forDirectional(),
|
||||
ENGINE = shape(3, 0, 3, 13, 14, 16)
|
||||
.forDirectional()
|
||||
|
||||
|
||||
|
||||
;
|
||||
public static final VoxelShape
|
||||
|
||||
|
||||
|
||||
|
||||
PUMPJACK_CRANK = shape(0, 0, 0, 16, 8, 16).build(),
|
||||
INDUSTRIAL_PIPE = shape(4, 0, 4, 12, 16, 12).build(),
|
||||
FLARESTACK = shape(3, 0, 3, 13, 14, 14).build(),
|
||||
PUMPJACK_BASE = shape(3, 0, 3, 13, 16, 13).build(),
|
||||
SURFACE_SCANNER = shape(2, 0, 2, 14, 14, 14).build();
|
||||
;
|
||||
|
||||
private static TFMGShapes.Builder shape(VoxelShape shape) {
|
||||
return new TFMGShapes.Builder(shape);
|
||||
}
|
||||
|
||||
private static TFMGShapes.Builder shape(double x1, double y1, double z1, double x2, double y2, double z2) {
|
||||
return shape(cuboid(x1, y1, z1, x2, y2, z2));
|
||||
}
|
||||
|
||||
private static VoxelShape cuboid(double x1, double y1, double z1, double x2, double y2, double z2) {
|
||||
return Block.box(x1, y1, z1, x2, y2, z2);
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
|
||||
private VoxelShape shape;
|
||||
|
||||
public Builder(VoxelShape shape) {
|
||||
this.shape = shape;
|
||||
}
|
||||
|
||||
public TFMGShapes.Builder add(VoxelShape shape) {
|
||||
this.shape = Shapes.or(this.shape, shape);
|
||||
return this;
|
||||
}
|
||||
|
||||
public TFMGShapes.Builder add(double x1, double y1, double z1, double x2, double y2, double z2) {
|
||||
return add(cuboid(x1, y1, z1, x2, y2, z2));
|
||||
}
|
||||
|
||||
public TFMGShapes.Builder erase(double x1, double y1, double z1, double x2, double y2, double z2) {
|
||||
this.shape = Shapes.join(shape, cuboid(x1, y1, z1, x2, y2, z2), BooleanOp.ONLY_FIRST);
|
||||
return this;
|
||||
}
|
||||
|
||||
public VoxelShape build() {
|
||||
return shape;
|
||||
}
|
||||
|
||||
public VoxelShaper build(BiFunction<VoxelShape, Direction, VoxelShaper> factory, Direction direction) {
|
||||
return factory.apply(shape, direction);
|
||||
}
|
||||
|
||||
public VoxelShaper build(BiFunction<VoxelShape, Axis, VoxelShaper> factory, Axis axis) {
|
||||
return factory.apply(shape, axis);
|
||||
}
|
||||
|
||||
public VoxelShaper forDirectional(Direction direction) {
|
||||
return build(VoxelShaper::forDirectional, direction);
|
||||
}
|
||||
|
||||
public VoxelShaper forAxis() {
|
||||
return build(VoxelShaper::forAxis, Axis.Y);
|
||||
}
|
||||
|
||||
public VoxelShaper forHorizontalAxis() {
|
||||
return build(VoxelShaper::forHorizontalAxis, Axis.Z);
|
||||
}
|
||||
|
||||
public VoxelShaper forHorizontal(Direction direction) {
|
||||
return build(VoxelShaper::forHorizontal, direction);
|
||||
}
|
||||
|
||||
public VoxelShaper forDirectional() {
|
||||
return forDirectional(UP);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,13 @@
|
||||
{
|
||||
"itemGroup.tfmg.base": "Create: The Factory Must Grow",
|
||||
"itemGroup.tfmg.building": "Create: TFMG's Building Blocks"
|
||||
"itemGroup.tfmg.building": "Create: TFMG's Building Blocks",
|
||||
"create.goggles.misc.number": "%1$s",
|
||||
"create.goggles.misc.dot_one": ".",
|
||||
"create.goggles.misc.dot_two": "..",
|
||||
"create.goggles.misc.dot_three": "...",
|
||||
"create.goggles.surface_scanner.no_rotation": "No Rotation Provided",
|
||||
"create.goggles.surface_scanner.no_deposit": "No Deposit Found",
|
||||
"create.goggles.surface_scanner.deposit_found": "Found Deposit",
|
||||
"create.goggles.surface_scanner.distance": "Distance: %1$s Blocks",
|
||||
"create.goggles.surface_scanner.scanning_surface": "Scanning Surface"
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/heavy_casing_side",
|
||||
"2": "tfmg:block/heavy_casing_door_bottom",
|
||||
"particle": "tfmg:block/heavy_machinery_casing"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [3, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 12, 16, 15], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 12, 16, 15], "rotation": 270, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"down": {"uv": [0, 8, 16, 11], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/heavy_casing_side",
|
||||
"2": "tfmg:block/heavy_casing_top",
|
||||
"particle": "tfmg:block/heavy_machinery_casing"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [3, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 16, 3], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/heavy_casing_side",
|
||||
"2": "tfmg:block/heavy_casing_top",
|
||||
"3": "tfmg:block/heavy_casing_door_bottom",
|
||||
"particle": "tfmg:block/heavy_machinery_casing"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 16, 0],
|
||||
"to": [3, 32, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [8, 0, 16, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 16], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 8, 3], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [3, 16, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [8, 0, 16, 16], "texture": "#3"},
|
||||
"south": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 16], "texture": "#3"},
|
||||
"down": {"uv": [0, 8, 8, 11], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/heavy_casing_side",
|
||||
"2": "tfmg:block/heavy_casing_top",
|
||||
"3": "tfmg:block/heavy_casing_door_bottom",
|
||||
"particle": "tfmg:block/heavy_machinery_casing"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 16, 0],
|
||||
"to": [3, 32, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [8, 0, 16, 16], "texture": "#2"},
|
||||
"up": {"uv": [8, 0, 16, 3], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [3, 16, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 16], "texture": "#3"},
|
||||
"south": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [8, 0, 16, 16], "texture": "#3"},
|
||||
"down": {"uv": [8, 8, 16, 11], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/steel_door_side",
|
||||
"2": "tfmg:block/steel_door_bottom",
|
||||
"particle": "tfmg:block/steel_casing"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [3, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 12, 16, 15], "rotation": 270, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 12, 16, 15], "rotation": 270, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"down": {"uv": [0, 8, 16, 11], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/steel_door_side",
|
||||
"2": "tfmg:block/steel_door_top",
|
||||
"particle": "tfmg:block/steel_casing"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [3, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 16, 16], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 16, 3], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/steel_door_side",
|
||||
"2": "tfmg:block/steel_door_top",
|
||||
"3": "tfmg:block/steel_door_bottom",
|
||||
"particle": "tfmg:block/steel_casing"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 16, 0],
|
||||
"to": [3, 32, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [8, 0, 16, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 16], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 8, 3], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [3, 16, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [8, 0, 16, 16], "texture": "#3"},
|
||||
"south": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 8, 16], "texture": "#3"},
|
||||
"down": {"uv": [0, 8, 8, 11], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"0": "tfmg:block/steel_door_side",
|
||||
"2": "tfmg:block/steel_door_top",
|
||||
"3": "tfmg:block/steel_door_bottom",
|
||||
"particle": "tfmg:block/steel_casing"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 16, 0],
|
||||
"to": [3, 32, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 16], "texture": "#2"},
|
||||
"south": {"uv": [0, 4, 16, 7], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [8, 0, 16, 16], "texture": "#2"},
|
||||
"up": {"uv": [8, 0, 16, 3], "rotation": 90, "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [3, 16, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 8, 16], "texture": "#3"},
|
||||
"south": {"uv": [16, 4, 0, 7], "rotation": 90, "texture": "#0"},
|
||||
"west": {"uv": [8, 0, 16, 16], "texture": "#3"},
|
||||
"down": {"uv": [8, 8, 16, 11], "rotation": 270, "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"2": "create:block/fluid_valve",
|
||||
"4": "create:block/pipes",
|
||||
"particle": "create:block/copper_plating"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "ValveCenter",
|
||||
"from": [2, 2, 2],
|
||||
"to": [14, 14, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [24, 11, 11]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 6, 12, 12], "texture": "#2"},
|
||||
"east": {"uv": [6, 0, 12, 6], "texture": "#2"},
|
||||
"south": {"uv": [0, 0, 6, 6], "texture": "#2"},
|
||||
"west": {"uv": [6, 0, 12, 6], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 6, 6], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [0, 0, 6, 6], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 14, 3],
|
||||
"to": [13, 16, 13],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
|
||||
"east": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
|
||||
"south": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
|
||||
"west": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
|
||||
"up": {"uv": [11, 11, 16, 16], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [0, 0, 0, 0], "rotation": 90, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 0, 3],
|
||||
"to": [13, 2, 13],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
|
||||
"east": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
|
||||
"south": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
|
||||
"west": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
|
||||
"up": {"uv": [0, 0, 0, 0], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [16, 11, 11, 16], "rotation": 90, "texture": "#4"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"2": "create:block/fluid_valve",
|
||||
"4": "create:block/pipes",
|
||||
"particle": "create:block/copper_plating"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "ValveCenter",
|
||||
"from": [2, 2, 2],
|
||||
"to": [14, 14, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [24, 11, 11]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 6, 12, 12], "texture": "#2"},
|
||||
"east": {"uv": [6, 0, 12, 6], "texture": "#2"},
|
||||
"south": {"uv": [0, 6, 6, 12], "texture": "#2"},
|
||||
"west": {"uv": [6, 0, 12, 6], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 6, 6], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [0, 0, 6, 6], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 14, 3],
|
||||
"to": [13, 16, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
|
||||
"east": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
|
||||
"south": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
|
||||
"west": {"uv": [4, 8.5, 9, 9.5], "texture": "#4"},
|
||||
"up": {"uv": [11, 11, 16, 16], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [0, 0, 0, 0], "rotation": 90, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 0, 3],
|
||||
"to": [13, 2, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
|
||||
"east": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
|
||||
"south": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
|
||||
"west": {"uv": [4, 9.5, 9, 8.5], "texture": "#4"},
|
||||
"up": {"uv": [0, 0, 0, 0], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [16, 11, 11, 16], "rotation": 90, "texture": "#4"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"2": "create:block/fluid_valve",
|
||||
"3": "create:block/pipes",
|
||||
"particle": "create:block/copper_plating"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "ValveCenter",
|
||||
"from": [2, 2, 2],
|
||||
"to": [14, 14, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [24, 11, 11]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 6, 12, 12], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [6, 6, 12, 12], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [0, 0, 6, 6], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [6, 6, 12, 12], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [6, 0, 12, 6], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [6, 0, 12, 6], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 3, 3],
|
||||
"to": [2, 13, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 8.5, 9, 9.5], "rotation": 90, "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"south": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
|
||||
"west": {"uv": [11, 11, 16, 16], "texture": "#3"},
|
||||
"up": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
|
||||
"down": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 3, 3],
|
||||
"to": [16, 13, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 9.5, 9, 8.5], "rotation": 90, "texture": "#3"},
|
||||
"east": {"uv": [16, 11, 11, 16], "texture": "#3"},
|
||||
"south": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"up": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
|
||||
"down": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"2": "create:block/fluid_valve",
|
||||
"3": "create:block/pipes",
|
||||
"particle": "create:block/copper_plating"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "ValveCenter",
|
||||
"from": [2, 2, 2],
|
||||
"to": [14, 14, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [24, 11, 11]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 6, 12, 12], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [6, 6, 12, 12], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [0, 6, 6, 12], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [6, 6, 12, 12], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [6, 0, 12, 6], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [6, 0, 12, 6], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 3, 3],
|
||||
"to": [2, 13, 13],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 8.5, 9, 9.5], "rotation": 90, "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"south": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
|
||||
"west": {"uv": [11, 11, 16, 16], "texture": "#3"},
|
||||
"up": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
|
||||
"down": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 3, 3],
|
||||
"to": [16, 13, 13],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 9.5, 9, 8.5], "rotation": 90, "texture": "#3"},
|
||||
"east": {"uv": [16, 11, 11, 16], "texture": "#3"},
|
||||
"south": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 0, 0], "texture": "#3"},
|
||||
"up": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
|
||||
"down": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,190 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"2": "create:block/fluid_valve",
|
||||
"3": "create:block/pipes",
|
||||
"4": "create:block/pump",
|
||||
"1_1": "create:block/axis_top",
|
||||
"1_0": "create:block/axis",
|
||||
"particle": "create:block/copper_plating"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "ValveCenter",
|
||||
"from": [2, 2, 2],
|
||||
"to": [14, 14, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [24, 11, 11]},
|
||||
"faces": {
|
||||
"north": {"uv": [6, 0, 12, 6], "texture": "#2"},
|
||||
"east": {"uv": [6, 6, 12, 12], "texture": "#2"},
|
||||
"south": {"uv": [6, 0, 12, 6], "texture": "#2"},
|
||||
"west": {"uv": [6, 6, 12, 12], "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 6, 6], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [6, 6, 12, 12], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Axis",
|
||||
"from": [6, 6, 0],
|
||||
"to": [10, 10, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [6, 6, 10, 10], "rotation": 180, "texture": "#1_1"},
|
||||
"east": {"uv": [6, 0, 10, 16], "rotation": 90, "texture": "#1_0"},
|
||||
"south": {"uv": [6, 6, 10, 10], "texture": "#1_1"},
|
||||
"west": {"uv": [6, 0, 10, 16], "rotation": 270, "texture": "#1_0"},
|
||||
"up": {"uv": [6, 0, 10, 16], "texture": "#1_0"},
|
||||
"down": {"uv": [6, 0, 10, 16], "rotation": 180, "texture": "#1_0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 14.1, 5],
|
||||
"to": [9, 15.1, 7],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 12, 1], "rotation": 180, "texture": "#4"},
|
||||
"east": {"uv": [14, 3, 12, 4], "texture": "#4"},
|
||||
"south": {"uv": [14, 2, 12, 3], "rotation": 180, "texture": "#4"},
|
||||
"west": {"uv": [12, 0, 13, 2], "rotation": 270, "texture": "#4"},
|
||||
"up": {"uv": [14, 2, 12, 0], "rotation": 180, "texture": "#4"},
|
||||
"down": {"uv": [12, 2, 14, 4], "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9, 14.1, 5],
|
||||
"to": [11, 15.1, 9],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 0, 14, 1], "texture": "#4"},
|
||||
"east": {"uv": [15, 0, 16, 4], "rotation": 90, "texture": "#4"},
|
||||
"south": {"uv": [16, 0, 14, 1], "rotation": 180, "texture": "#4"},
|
||||
"west": {"uv": [12, 4, 13, 0], "rotation": 90, "texture": "#4"},
|
||||
"up": {"uv": [16, 4, 14, 0], "rotation": 180, "texture": "#4"},
|
||||
"down": {"uv": [14, 0, 16, 4], "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5, 14.1, 7],
|
||||
"to": [7, 15.1, 11],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 0, 14, 1], "rotation": 180, "texture": "#4"},
|
||||
"east": {"uv": [12, 4, 13, 0], "rotation": 90, "texture": "#4"},
|
||||
"south": {"uv": [16, 0, 14, 1], "texture": "#4"},
|
||||
"west": {"uv": [15, 0, 16, 4], "rotation": 90, "texture": "#4"},
|
||||
"up": {"uv": [16, 4, 14, 0], "texture": "#4"},
|
||||
"down": {"uv": [14, 0, 16, 4], "rotation": 180, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 14.1, 9],
|
||||
"to": [9, 15.1, 11],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [14, 2, 12, 3], "rotation": 180, "texture": "#4"},
|
||||
"east": {"uv": [12, 0, 13, 2], "rotation": 270, "texture": "#4"},
|
||||
"south": {"uv": [14, 0, 12, 1], "rotation": 180, "texture": "#4"},
|
||||
"west": {"uv": [14, 3, 12, 4], "texture": "#4"},
|
||||
"up": {"uv": [14, 2, 12, 0], "texture": "#4"},
|
||||
"down": {"uv": [12, 2, 14, 4], "rotation": 180, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Center",
|
||||
"from": [7, 14, 7],
|
||||
"to": [9, 16, 9],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 15, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [12.5, 0, 12, 1], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [13, 0.5, 12, 1], "texture": "#2"},
|
||||
"south": {"uv": [12, 0.5, 13, 1], "texture": "#2"},
|
||||
"west": {"uv": [12, 1, 12.5, 0], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [12, 0, 13, 1], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 3, 3],
|
||||
"to": [2, 13, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 8.5, 9, 9.5], "rotation": 90, "texture": "#3"},
|
||||
"south": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
|
||||
"west": {"uv": [11, 11, 16, 16], "texture": "#3"},
|
||||
"up": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"},
|
||||
"down": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 3, 3],
|
||||
"to": [16, 13, 13],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [16, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [4, 9.5, 9, 8.5], "rotation": 90, "texture": "#3"},
|
||||
"east": {"uv": [16, 11, 11, 16], "texture": "#3"},
|
||||
"south": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
|
||||
"up": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"},
|
||||
"down": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#3"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, 45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, 225, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 0],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 135, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
0,
|
||||
{
|
||||
"name": "shaft",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [1]
|
||||
},
|
||||
{
|
||||
"name": "Pointer",
|
||||
"origin": [7.5, 14, 8],
|
||||
"color": 0,
|
||||
"children": [
|
||||
{
|
||||
"name": "arrow",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "arrow",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [2, 3, 4, 5]
|
||||
},
|
||||
6
|
||||
]
|
||||
},
|
||||
7,
|
||||
8
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"2": "create:block/fluid_valve",
|
||||
"4": "create:block/pump",
|
||||
"particle": "create:block/copper_plating"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [7, 14.1, 5],
|
||||
"to": [9, 15.1, 7],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 12, 1], "rotation": 180, "texture": "#4"},
|
||||
"east": {"uv": [14, 3, 12, 4], "texture": "#4"},
|
||||
"south": {"uv": [14, 2, 12, 3], "rotation": 180, "texture": "#4"},
|
||||
"west": {"uv": [12, 0, 13, 2], "rotation": 270, "texture": "#4"},
|
||||
"up": {"uv": [12, 0, 14, 2], "texture": "#4"},
|
||||
"down": {"uv": [14, 0, 12, 2], "rotation": 180, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9, 14.1, 5],
|
||||
"to": [11, 15.1, 9],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 0, 14, 1], "texture": "#4"},
|
||||
"east": {"uv": [15, 0, 16, 4], "rotation": 90, "texture": "#4"},
|
||||
"south": {"uv": [16, 0, 14, 1], "rotation": 180, "texture": "#4"},
|
||||
"up": {"uv": [14, 0, 16, 4], "texture": "#4"},
|
||||
"down": {"uv": [16, 0, 14, 4], "rotation": 180, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 14.1, 9],
|
||||
"to": [11, 15.1, 11],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"east": {"uv": [16, 0, 14, 1], "texture": "#4"},
|
||||
"south": {"uv": [15, 0, 16, 4], "rotation": 90, "texture": "#4"},
|
||||
"west": {"uv": [16, 0, 14, 1], "rotation": 180, "texture": "#4"},
|
||||
"up": {"uv": [14, 0, 16, 4], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [16, 0, 14, 4], "rotation": 90, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9, 14.1, 7],
|
||||
"to": [11, 15.1, 9],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 0, 13, 2], "rotation": 270, "texture": "#4"},
|
||||
"east": {"uv": [14, 0, 12, 1], "rotation": 180, "texture": "#4"},
|
||||
"south": {"uv": [14, 3, 12, 4], "texture": "#4"},
|
||||
"west": {"uv": [14, 2, 12, 3], "rotation": 180, "texture": "#4"},
|
||||
"up": {"uv": [12, 0, 14, 2], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [14, 0, 12, 2], "rotation": 90, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9, 14.1, 5],
|
||||
"to": [11, 15.1, 9],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 0, 14, 1], "texture": "#4"},
|
||||
"east": {"uv": [15, 0, 16, 4], "rotation": 90, "texture": "#4"},
|
||||
"south": {"uv": [16, 0, 14, 1], "rotation": 180, "texture": "#4"},
|
||||
"up": {"uv": [14, 0, 16, 4], "texture": "#4"},
|
||||
"down": {"uv": [16, 0, 14, 4], "rotation": 180, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 14.1, 5],
|
||||
"to": [9, 15.1, 7],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [14, 0, 12, 1], "rotation": 180, "texture": "#4"},
|
||||
"east": {"uv": [14, 3, 12, 4], "texture": "#4"},
|
||||
"south": {"uv": [14, 2, 12, 3], "rotation": 180, "texture": "#4"},
|
||||
"west": {"uv": [12, 0, 13, 2], "rotation": 270, "texture": "#4"},
|
||||
"up": {"uv": [12, 0, 14, 2], "texture": "#4"},
|
||||
"down": {"uv": [14, 0, 12, 2], "rotation": 180, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Center",
|
||||
"from": [7, 14, 7],
|
||||
"to": [9, 16, 9],
|
||||
"rotation": {"angle": 45, "axis": "y", "origin": [8, 15, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [12.5, 0, 12, 1], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [13, 0.5, 12, 1], "texture": "#2"},
|
||||
"south": {"uv": [12, 0.5, 13, 1], "texture": "#2"},
|
||||
"west": {"uv": [12, 1, 12.5, 0], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [12, 0, 13, 1], "texture": "#2"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, 45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, 225, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 0],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 135, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "Pointer",
|
||||
"origin": [7.5, 14, 8],
|
||||
"color": 0,
|
||||
"children": [
|
||||
{
|
||||
"name": "arrow",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "arrow",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3, 4, 5]
|
||||
},
|
||||
6
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "create:block/block",
|
||||
"textures": {
|
||||
"2": "create:block/pipes",
|
||||
"4": "create:block/pump",
|
||||
"particle": "create:block/pump"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "middle",
|
||||
"from": [4, 4, 4],
|
||||
"to": [12, 12, 12],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8.33333, 8.5, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6.5, 4, 2.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [0, 6.5, 4, 2.5], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [0, 6.5, 4, 2.5], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [0, 6.5, 4, 2.5], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [0, 6.5, 4, 2.5], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [0, 6.5, 4, 2.5], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "back",
|
||||
"from": [2, 0, 2],
|
||||
"to": [14, 5, 14],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8.33333, 8.5, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [13.5, 2, 16, 8], "rotation": 270, "texture": "#2"},
|
||||
"east": {"uv": [13.5, 2, 16, 8], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [13.5, 2, 16, 8], "rotation": 270, "texture": "#2"},
|
||||
"west": {"uv": [13.5, 2, 16, 8], "rotation": 270, "texture": "#2"},
|
||||
"up": {"uv": [0, 0, 12, 12], "rotation": 180, "texture": "#4"},
|
||||
"down": {"uv": [0, 0, 12, 12], "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "front",
|
||||
"from": [3, 11, 3],
|
||||
"to": [13, 16, 13],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8.33333, 8.5, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"east": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"south": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"west": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 90, "texture": "#2"},
|
||||
"up": {"uv": [11, 11, 16, 16], "texture": "#2"},
|
||||
"down": {"uv": [6, 11, 11, 16], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.85355, 13.25, 1.75],
|
||||
"to": [9.85355, 15.25, 13.75],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8.35355, 13.25, 7.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 0, 12, 2], "texture": "#4"},
|
||||
"east": {"uv": [15, 0, 16, 2], "texture": "#4"},
|
||||
"south": {"uv": [12, 0, 16, 2], "texture": "#4"},
|
||||
"west": {"uv": [12, 0, 13, 2], "texture": "#4"},
|
||||
"up": {"uv": [12, 0, 16, 1], "texture": "#4"},
|
||||
"down": {"uv": [12, 1, 16, 2], "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7.85355, 11.25, 1.75],
|
||||
"to": [9.85355, 13.25, 13.75],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8.35355, 13.25, 7.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 2, 14, 4], "texture": "#4"},
|
||||
"east": {"uv": [15, 2, 16, 4], "texture": "#4"},
|
||||
"south": {"uv": [14, 2, 16, 4], "texture": "#4"},
|
||||
"west": {"uv": [14, 2, 15, 4], "texture": "#4"},
|
||||
"down": {"uv": [14, 3, 16, 4], "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.35355, 10.75, 7.75],
|
||||
"to": [14.35355, 12.75, 9.75],
|
||||
"rotation": {"angle": -45, "axis": "x", "origin": [8.35355, 13.25, 7.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [14, 2, 15, 4], "texture": "#4"},
|
||||
"east": {"uv": [16, 2, 14, 4], "texture": "#4"},
|
||||
"south": {"uv": [15, 2, 16, 4], "texture": "#4"},
|
||||
"west": {"uv": [14, 2, 16, 4], "texture": "#4"},
|
||||
"down": {"uv": [14, 3, 16, 4], "rotation": 270, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.35355, 12.75, 5.75],
|
||||
"to": [14.35355, 14.75, 9.75],
|
||||
"rotation": {"angle": -45, "axis": "x", "origin": [8.35355, 13.25, 7.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 0, 13, 2], "texture": "#4"},
|
||||
"east": {"uv": [16, 0, 12, 2], "texture": "#4"},
|
||||
"south": {"uv": [15, 0, 16, 2], "texture": "#4"},
|
||||
"west": {"uv": [12, 0, 16, 2], "texture": "#4"},
|
||||
"up": {"uv": [12, 0, 16, 1], "rotation": 90, "texture": "#4"},
|
||||
"down": {"uv": [12, 1, 16, 2], "rotation": 270, "texture": "#4"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, 45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, 225, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 0],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 135, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "pump",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2]
|
||||
},
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"texture_size": [32, 32],
|
||||
"textures": {
|
||||
"5": "create:block/millstone",
|
||||
"particle": "create:block/palettes/stone_types/cut/andesite_cut"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "Gear6",
|
||||
"from": [6.5, -1, 5],
|
||||
"to": [9.5, 17, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 6.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8.5, 9, 10], "rotation": 90, "texture": "#5"},
|
||||
"east": {"uv": [0, 10, 9, 13], "rotation": 270, "texture": "#5"},
|
||||
"south": {"uv": [0, 8.5, 9, 10], "rotation": 90, "texture": "#5"},
|
||||
"west": {"uv": [0, 10, 9, 13], "rotation": 90, "texture": "#5"},
|
||||
"up": {"uv": [9, 10, 10.5, 13], "rotation": 180, "texture": "#5"},
|
||||
"down": {"uv": [9, 10, 10.5, 13], "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Gear7",
|
||||
"from": [6.5, -1, 5],
|
||||
"to": [9.5, 17, 11],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 6.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8.5, 9, 10], "rotation": 90, "texture": "#5"},
|
||||
"east": {"uv": [0, 10, 9, 13], "rotation": 270, "texture": "#5"},
|
||||
"south": {"uv": [0, 8.5, 9, 10], "rotation": 90, "texture": "#5"},
|
||||
"west": {"uv": [0, 10, 9, 13], "rotation": 90, "texture": "#5"},
|
||||
"up": {"uv": [9, 10, 10.5, 13], "rotation": 180, "texture": "#5"},
|
||||
"down": {"uv": [9, 10, 10.5, 13], "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Gear8",
|
||||
"from": [-1, 6.5, 5],
|
||||
"to": [17, 9.5, 11],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [8, 8, 6.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8.5, 9, 10], "texture": "#5"},
|
||||
"east": {"uv": [9, 10, 10.5, 13], "rotation": 270, "texture": "#5"},
|
||||
"south": {"uv": [0, 8.5, 9, 10], "texture": "#5"},
|
||||
"west": {"uv": [9, 10, 10.5, 13], "rotation": 90, "texture": "#5"},
|
||||
"up": {"uv": [0, 10, 9, 13], "rotation": 180, "texture": "#5"},
|
||||
"down": {"uv": [0, 10, 9, 13], "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Gear8",
|
||||
"from": [-1, 6.5, 5],
|
||||
"to": [17, 9.5, 11],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 6.5]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8.5, 9, 10], "texture": "#5"},
|
||||
"east": {"uv": [9, 10, 10.5, 13], "rotation": 270, "texture": "#5"},
|
||||
"south": {"uv": [0, 8.5, 9, 10], "texture": "#5"},
|
||||
"west": {"uv": [9, 10, 10.5, 13], "rotation": 90, "texture": "#5"},
|
||||
"up": {"uv": [0, 10, 9, 13], "rotation": 180, "texture": "#5"},
|
||||
"down": {"uv": [0, 10, 9, 13], "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "GearCaseInner",
|
||||
"from": [2, 2, 5.5],
|
||||
"to": [14, 14, 10.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 6, 6], "rotation": 180, "texture": "#5"},
|
||||
"east": {"uv": [0, 6, 6, 8.5], "rotation": 270, "texture": "#5"},
|
||||
"south": {"uv": [0, 0, 6, 6], "texture": "#5"},
|
||||
"west": {"uv": [0, 6, 6, 8.5], "rotation": 90, "texture": "#5"},
|
||||
"up": {"uv": [0, 6, 6, 8.5], "rotation": 180, "texture": "#5"},
|
||||
"down": {"uv": [0, 6, 6, 8.5], "texture": "#5"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, -149, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, -55, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 1, 1.25],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 45, 0],
|
||||
"translation": [2.5, -0.5, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 180, 0],
|
||||
"translation": [0, 1.75, -4.5],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "cogwheel",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3, 4]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,225 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "create:block/block",
|
||||
"textures": {
|
||||
"2": "create:block/pipes",
|
||||
"4": "create:block/pump",
|
||||
"5": "create:block/millstone",
|
||||
"particle": "create:block/pump"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "Gear5",
|
||||
"from": [5.5, 7, -1],
|
||||
"to": [11.5, 10, 17],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8.5, 8.5, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [9, 10, 10.5, 13], "rotation": 90, "texture": "#5"},
|
||||
"east": {"uv": [0, 8.5, 9, 10], "texture": "#5"},
|
||||
"south": {"uv": [9, 10, 10.5, 13], "rotation": 270, "texture": "#5"},
|
||||
"west": {"uv": [0, 8.5, 9, 10], "texture": "#5"},
|
||||
"up": {"uv": [0, 10, 9, 13], "rotation": 270, "texture": "#5"},
|
||||
"down": {"uv": [0, 10, 9, 13], "rotation": 270, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Gear6",
|
||||
"from": [5.5, 7, -1],
|
||||
"to": [11.5, 10, 17],
|
||||
"rotation": {"angle": -45, "axis": "x", "origin": [8.5, 8.5, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [9, 10, 10.5, 13], "rotation": 90, "texture": "#5"},
|
||||
"east": {"uv": [0, 8.5, 9, 10], "texture": "#5"},
|
||||
"south": {"uv": [9, 10, 10.5, 13], "rotation": 270, "texture": "#5"},
|
||||
"west": {"uv": [0, 8.5, 9, 10], "texture": "#5"},
|
||||
"up": {"uv": [0, 10, 9, 13], "rotation": 270, "texture": "#5"},
|
||||
"down": {"uv": [0, 10, 9, 13], "rotation": 270, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Gear7",
|
||||
"from": [5.5, -0.5, 6.5],
|
||||
"to": [11.5, 17.5, 9.5],
|
||||
"rotation": {"angle": -45, "axis": "x", "origin": [8.5, 8.5, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 10, 9, 13], "rotation": 90, "texture": "#5"},
|
||||
"east": {"uv": [0, 8.5, 9, 10], "rotation": 90, "texture": "#5"},
|
||||
"south": {"uv": [0, 10, 9, 13], "rotation": 270, "texture": "#5"},
|
||||
"west": {"uv": [0, 8.5, 9, 10], "rotation": 270, "texture": "#5"},
|
||||
"up": {"uv": [9, 10, 10.5, 13], "rotation": 270, "texture": "#5"},
|
||||
"down": {"uv": [9, 10, 10.5, 13], "rotation": 270, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Gear7",
|
||||
"from": [5.5, -0.5, 6.5],
|
||||
"to": [11.5, 17.5, 9.5],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8.5, 8.5, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 10, 9, 13], "rotation": 90, "texture": "#5"},
|
||||
"east": {"uv": [0, 8.5, 9, 10], "rotation": 90, "texture": "#5"},
|
||||
"south": {"uv": [0, 10, 9, 13], "rotation": 270, "texture": "#5"},
|
||||
"west": {"uv": [0, 8.5, 9, 10], "rotation": 270, "texture": "#5"},
|
||||
"up": {"uv": [9, 10, 10.5, 13], "rotation": 270, "texture": "#5"},
|
||||
"down": {"uv": [9, 10, 10.5, 13], "rotation": 270, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "GearCaseInner",
|
||||
"from": [6, 2.5, 2],
|
||||
"to": [11, 14.5, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8.5, 8.5, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 6, 6, 8.5], "rotation": 90, "texture": "#5"},
|
||||
"east": {"uv": [0, 0, 6, 6], "rotation": 270, "texture": "#5"},
|
||||
"south": {"uv": [0, 6, 6, 8.5], "rotation": 270, "texture": "#5"},
|
||||
"west": {"uv": [0, 0, 6, 6], "rotation": 270, "texture": "#5"},
|
||||
"up": {"uv": [0, 6, 6, 8.5], "rotation": 270, "texture": "#5"},
|
||||
"down": {"uv": [0, 6, 6, 8.5], "rotation": 270, "texture": "#5"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "middle",
|
||||
"from": [4.5, 4.5, 4],
|
||||
"to": [12.5, 12.5, 12],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8.5, 8.5, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [11.5, 15.5, 15.5, 11.5], "texture": "#2"},
|
||||
"east": {"uv": [11.5, 15.5, 15.5, 11.5], "texture": "#2"},
|
||||
"south": {"uv": [11.5, 15.5, 15.5, 11.5], "texture": "#2"},
|
||||
"west": {"uv": [11.5, 15.5, 15.5, 11.5], "texture": "#2"},
|
||||
"up": {"uv": [11.5, 15.5, 15.5, 11.5], "texture": "#2"},
|
||||
"down": {"uv": [11.5, 15.5, 15.5, 11.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "front",
|
||||
"from": [0.5, 3.5, 3],
|
||||
"to": [5.5, 13.5, 13],
|
||||
"rotation": {"angle": 0, "axis": "z", "origin": [8, 8, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [10.5, 2.5, 13, 7.5], "rotation": 180, "texture": "#2"},
|
||||
"east": {"uv": [6, 11, 11, 16], "rotation": 270, "texture": "#2"},
|
||||
"south": {"uv": [10.5, 2.5, 13, 7.5], "texture": "#2"},
|
||||
"west": {"uv": [11, 11, 16, 16], "rotation": 270, "texture": "#2"},
|
||||
"up": {"uv": [10.5, 2.5, 13, 7.5], "texture": "#2"},
|
||||
"down": {"uv": [10.5, 2.5, 13, 7.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "back",
|
||||
"from": [11.5, 2.5, 2],
|
||||
"to": [16.5, 14.5, 14],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8.5, 11.5, 8]},
|
||||
"faces": {
|
||||
"north": {"uv": [13.5, 2, 16, 8], "texture": "#2"},
|
||||
"east": {"uv": [0, 0, 12, 12], "rotation": 270, "texture": "#4"},
|
||||
"south": {"uv": [13.5, 2, 16, 8], "rotation": 180, "texture": "#2"},
|
||||
"west": {"uv": [0, 0, 12, 12], "rotation": 90, "texture": "#4"},
|
||||
"up": {"uv": [13.5, 2, 16, 8], "rotation": 180, "texture": "#2"},
|
||||
"down": {"uv": [13.5, 2, 16, 8], "rotation": 180, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1.70355, 6.15, 2],
|
||||
"to": [3.70355, 10.15, 14],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [3.35355, 8.25, 7.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 0, 12, 2], "rotation": 90, "texture": "#4"},
|
||||
"east": {"uv": [12, 1, 16, 2], "rotation": 270, "texture": "#4"},
|
||||
"south": {"uv": [12, 0, 16, 2], "rotation": 270, "texture": "#4"},
|
||||
"west": {"uv": [12, 0, 16, 1], "rotation": 270, "texture": "#4"},
|
||||
"up": {"uv": [15, 0, 16, 2], "rotation": 270, "texture": "#4"},
|
||||
"down": {"uv": [12, 0, 13, 2], "rotation": 270, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.70355, 8.15, 2],
|
||||
"to": [5.70355, 10.15, 14],
|
||||
"rotation": {"angle": 45, "axis": "z", "origin": [3.35355, 8.25, 7.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [16, 2, 14, 4], "rotation": 90, "texture": "#4"},
|
||||
"east": {"uv": [14, 3, 16, 4], "rotation": 270, "texture": "#4"},
|
||||
"south": {"uv": [14, 2, 16, 4], "rotation": 270, "texture": "#4"},
|
||||
"up": {"uv": [15, 2, 16, 4], "rotation": 270, "texture": "#4"},
|
||||
"down": {"uv": [14, 2, 15, 4], "rotation": 270, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.85355, 2.5, 7.75],
|
||||
"to": [5.85355, 14.5, 9.75],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [3.35355, 8.25, 7.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [14, 2, 15, 4], "rotation": 90, "texture": "#4"},
|
||||
"east": {"uv": [14, 3, 16, 4], "rotation": 180, "texture": "#4"},
|
||||
"south": {"uv": [15, 2, 16, 4], "rotation": 270, "texture": "#4"},
|
||||
"up": {"uv": [16, 2, 14, 4], "rotation": 270, "texture": "#4"},
|
||||
"down": {"uv": [14, 2, 16, 4], "rotation": 270, "texture": "#4"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1.85355, 2.5, 5.75],
|
||||
"to": [3.85355, 14.5, 9.75],
|
||||
"rotation": {"angle": -45, "axis": "y", "origin": [3.35355, 8.25, 7.75]},
|
||||
"faces": {
|
||||
"north": {"uv": [12, 0, 13, 2], "rotation": 90, "texture": "#4"},
|
||||
"east": {"uv": [12, 1, 16, 2], "rotation": 180, "texture": "#4"},
|
||||
"south": {"uv": [15, 0, 16, 2], "rotation": 270, "texture": "#4"},
|
||||
"west": {"uv": [12, 0, 16, 1], "texture": "#4"},
|
||||
"up": {"uv": [16, 0, 12, 2], "rotation": 270, "texture": "#4"},
|
||||
"down": {"uv": [12, 0, 16, 2], "rotation": 270, "texture": "#4"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, 45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, 225, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 0],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 135, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "cogwheel",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3, 4]
|
||||
},
|
||||
{
|
||||
"name": "pump",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [5, 6, 7]
|
||||
},
|
||||
{
|
||||
"name": "Arrow",
|
||||
"origin": [8, 8, 8],
|
||||
"color": 0,
|
||||
"children": [8, 9, 10, 11]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"2": "create:block/smart_pipe_1",
|
||||
"3": "create:block/smart_pipe_2",
|
||||
"particle": "create:block/smart_pipe_2"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [4.05, 4.05, 12],
|
||||
"to": [11.95, 11.95, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14]},
|
||||
"faces": {
|
||||
"east": {"uv": [6, 3, 10, 11], "texture": "#2"},
|
||||
"west": {"uv": [6, 3, 10, 11], "texture": "#2"},
|
||||
"up": {"uv": [6, 11, 10, 3], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 11, 6, 3], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 3, 3],
|
||||
"to": [13, 13, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 3, 4, 4], "texture": "#2"},
|
||||
"east": {"uv": [3, 3, 13, 13], "texture": "#2"},
|
||||
"south": {"uv": [3, 3, 4, 4], "texture": "#2"},
|
||||
"west": {"uv": [3, 3, 13, 13], "texture": "#2"},
|
||||
"up": {"uv": [3, 3, 13, 13], "rotation": 270, "texture": "#2"},
|
||||
"down": {"uv": [3, 3, 13, 13], "rotation": 270, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.05, 4.05, 0],
|
||||
"to": [11.95, 11.95, 4],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"east": {"uv": [6, 3, 10, 11], "texture": "#2"},
|
||||
"west": {"uv": [6, 3, 10, 11], "texture": "#2"},
|
||||
"up": {"uv": [6, 11, 10, 3], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 11, 6, 3], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.5, 5, 7.15],
|
||||
"to": [11.5, 12, 13.15],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [8, 12, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 9, 7, 15], "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 6, 7], "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 6, 7], "rotation": 180, "texture": "#3"},
|
||||
"up": {"uv": [0, 0, 6, 7], "rotation": 270, "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 6, 7], "rotation": 90, "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.9, 4.4, 4.15],
|
||||
"to": [12.1, 12.6, 7.15],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [8, 12, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 8, 16, 16], "texture": "#3"},
|
||||
"east": {"uv": [13, 0, 16, 8], "texture": "#3"},
|
||||
"south": {"uv": [0, 8, 8, 16], "texture": "#3"},
|
||||
"west": {"uv": [13, 8, 16, 0], "rotation": 180, "texture": "#3"},
|
||||
"up": {"uv": [13, 8, 16, 0], "rotation": 270, "texture": "#3"},
|
||||
"down": {"uv": [13, 0, 16, 8], "rotation": 90, "texture": "#3"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"1": "create:block/pipes",
|
||||
"2": "create:block/smart_pipe_1",
|
||||
"3": "create:block/smart_pipe_2"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [3, 3, 0],
|
||||
"to": [13, 13, 2],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [11, 11, 16, 16], "rotation": 180, "texture": "#1"},
|
||||
"east": {"uv": [4, 9.5, 9, 8.5], "rotation": 270, "texture": "#1"},
|
||||
"south": {"uv": [6, 11, 11, 16], "rotation": 180, "texture": "#1"},
|
||||
"west": {"uv": [4, 9.5, 9, 8.5], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [4, 9.5, 9, 8.5], "rotation": 180, "texture": "#1"},
|
||||
"down": {"uv": [4, 9.5, 9, 8.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 3, 14],
|
||||
"to": [13, 13, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 16]},
|
||||
"faces": {
|
||||
"north": {"uv": [11, 11, 6, 16], "rotation": 180, "texture": "#1"},
|
||||
"east": {"uv": [4, 8.5, 9, 9.5], "rotation": 270, "texture": "#1"},
|
||||
"south": {"uv": [16, 11, 11, 16], "rotation": 180, "texture": "#1"},
|
||||
"west": {"uv": [4, 8.5, 9, 9.5], "rotation": 90, "texture": "#1"},
|
||||
"up": {"uv": [4, 8.5, 9, 9.5], "rotation": 180, "texture": "#1"},
|
||||
"down": {"uv": [4, 8.5, 9, 9.5], "texture": "#1"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 3, 3],
|
||||
"to": [13, 13, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 3, 4, 4], "texture": "#2"},
|
||||
"east": {"uv": [3, 3, 13, 13], "texture": "#2"},
|
||||
"south": {"uv": [3, 3, 4, 4], "texture": "#2"},
|
||||
"west": {"uv": [3, 3, 13, 13], "texture": "#2"},
|
||||
"up": {"uv": [3, 3, 13, 13], "rotation": 270, "texture": "#2"},
|
||||
"down": {"uv": [3, 3, 13, 13], "rotation": 270, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.05, 4.05, 0],
|
||||
"to": [11.95, 11.95, 4],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 0]},
|
||||
"faces": {
|
||||
"east": {"uv": [6, 3, 10, 11], "texture": "#2"},
|
||||
"west": {"uv": [6, 3, 10, 11], "texture": "#2"},
|
||||
"up": {"uv": [6, 11, 10, 3], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 11, 6, 3], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.05, 4.05, 12],
|
||||
"to": [11.95, 11.95, 16],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 14]},
|
||||
"faces": {
|
||||
"east": {"uv": [6, 3, 10, 11], "texture": "#2"},
|
||||
"west": {"uv": [6, 3, 10, 11], "texture": "#2"},
|
||||
"up": {"uv": [6, 11, 10, 3], "rotation": 90, "texture": "#2"},
|
||||
"down": {"uv": [10, 11, 6, 3], "rotation": 90, "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4.5, 5, 7.15],
|
||||
"to": [11.5, 12, 13.15],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [8, 12, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [1, 9, 7, 15], "texture": "#3"},
|
||||
"east": {"uv": [0, 0, 6, 7], "texture": "#3"},
|
||||
"west": {"uv": [0, 0, 6, 7], "rotation": 180, "texture": "#3"},
|
||||
"up": {"uv": [0, 0, 6, 7], "rotation": 270, "texture": "#3"},
|
||||
"down": {"uv": [0, 0, 6, 7], "rotation": 90, "texture": "#3"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3.9, 4.4, 4.15],
|
||||
"to": [12.1, 12.6, 7.15],
|
||||
"rotation": {"angle": 45, "axis": "x", "origin": [8, 12, 13]},
|
||||
"faces": {
|
||||
"north": {"uv": [8, 8, 16, 16], "texture": "#3"},
|
||||
"east": {"uv": [13, 0, 16, 8], "texture": "#3"},
|
||||
"south": {"uv": [0, 8, 8, 16], "texture": "#3"},
|
||||
"west": {"uv": [13, 8, 16, 0], "rotation": 180, "texture": "#3"},
|
||||
"up": {"uv": [13, 8, 16, 0], "rotation": 270, "texture": "#3"},
|
||||
"down": {"uv": [13, 0, 16, 8], "rotation": 90, "texture": "#3"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, 45, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"rotation": [0, 45, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"rotation": [0, 225, 0],
|
||||
"scale": [0.4, 0.4, 0.4]
|
||||
},
|
||||
"ground": {
|
||||
"translation": [0, 3, 0],
|
||||
"scale": [0.25, 0.25, 0.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "minecraft:block/block",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"2": "tfmg:block/surface_scanner",
|
||||
"particle": "tfmg:block/surface_scanner"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 2, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [7.5, 9, 11.5, 9.5], "texture": "#2"},
|
||||
"east": {"uv": [4, 9.5, 8, 10], "texture": "#2"},
|
||||
"south": {"uv": [8, 9.5, 12, 10], "texture": "#2"},
|
||||
"west": {"uv": [4, 10, 8, 10.5], "texture": "#2"},
|
||||
"up": {"uv": [4, 4, 0, 0], "texture": "#2"},
|
||||
"down": {"uv": [4, 4, 0, 8], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 2],
|
||||
"to": [15, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 6.5, 7.5, 9.5], "texture": "#2"},
|
||||
"east": {"uv": [7.5, 3, 10.75, 6], "texture": "#2"},
|
||||
"south": {"uv": [7.5, 0, 11, 3], "texture": "#2"},
|
||||
"west": {"uv": [7.5, 6, 10.75, 9], "texture": "#2"},
|
||||
"up": {"uv": [7.5, 3.25, 4, 0], "texture": "#2"},
|
||||
"down": {"uv": [7.5, 3.25, 4, 6.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 2, 15],
|
||||
"to": [15, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [6, 10.5, 6.25, 13.5], "texture": "#2"},
|
||||
"east": {"uv": [6.25, 10.5, 6.5, 13.5], "texture": "#2"},
|
||||
"south": {"uv": [6.5, 10.5, 6.75, 13.5], "texture": "#2"},
|
||||
"west": {"uv": [6.75, 10.5, 7, 13.5], "texture": "#2"},
|
||||
"up": {"uv": [3.25, 11, 3, 10.75], "texture": "#2"},
|
||||
"down": {"uv": [3.5, 10.75, 3.25, 11], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 13, 15],
|
||||
"to": [14, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [9, 10.5, 12, 10.75], "texture": "#2"},
|
||||
"east": {"uv": [3.5, 10.75, 3.75, 11], "texture": "#2"},
|
||||
"south": {"uv": [0, 10.75, 3, 11], "texture": "#2"},
|
||||
"west": {"uv": [10.75, 3.5, 11, 3.75], "texture": "#2"},
|
||||
"up": {"uv": [13.75, 3.25, 10.75, 3], "texture": "#2"},
|
||||
"down": {"uv": [13.75, 3.25, 10.75, 3.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 15],
|
||||
"to": [2, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 10.5, 7.25, 13.5], "texture": "#2"},
|
||||
"east": {"uv": [7.25, 10.5, 7.5, 13.5], "texture": "#2"},
|
||||
"south": {"uv": [7.5, 10.5, 7.75, 13.5], "texture": "#2"},
|
||||
"west": {"uv": [7.75, 10.5, 8, 13.5], "texture": "#2"},
|
||||
"up": {"uv": [4, 11, 3.75, 10.75], "texture": "#2"},
|
||||
"down": {"uv": [11, 3.75, 10.75, 4], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 2, 0],
|
||||
"to": [12, 13, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 2, 10.75], "texture": "#2"},
|
||||
"east": {"uv": [8, 10, 8.5, 12.75], "texture": "#2"},
|
||||
"south": {"uv": [2, 8, 4, 10.75], "texture": "#2"},
|
||||
"west": {"uv": [8.5, 10, 9, 12.75], "texture": "#2"},
|
||||
"up": {"uv": [11, 10.5, 9, 10], "texture": "#2"},
|
||||
"down": {"uv": [6, 10.5, 4, 11], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [7, 14, 8],
|
||||
"to": [9, 15, 10],
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 1.25, 6, 1.5], "texture": "#2"},
|
||||
"east": {"uv": [5.5, 1.25, 6, 1.5], "texture": "#2"},
|
||||
"south": {"uv": [5.5, 1.25, 6, 1.5], "texture": "#2"},
|
||||
"west": {"uv": [5.5, 1.25, 6, 1.5], "texture": "#2"},
|
||||
"up": {"uv": [5.5, 1.25, 6, 1.75], "texture": "#2"},
|
||||
"down": {"uv": [5.5, 1.25, 6, 1.75], "texture": "#2"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"0": "tfmg:block/surface_scanner",
|
||||
"particle": "tfmg:block/surface_scanner"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [7.5, 16, 4],
|
||||
"to": [8.5, 16, 12],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1, 0], "texture": "#0"},
|
||||
"east": {"uv": [0, 0, 4, 0], "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 1, 0], "texture": "#0"},
|
||||
"west": {"uv": [0, 0, 4, 0], "texture": "#0"},
|
||||
"up": {"uv": [3.75, 7, 4, 9], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [3.75, 7, 4, 9], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"textures": {
|
||||
"0": "tfmg:block/surface_scanner",
|
||||
"particle": "tfmg:block/surface_scanner"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [15, 7.5, 7.5],
|
||||
"to": [16, 8.5, 8.5],
|
||||
"faces": {
|
||||
"north": {"uv": [12.25, 6.25, 12.5, 6.5], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [12.5, 6.25, 12.25, 6.5], "rotation": 270, "texture": "#0"},
|
||||
"south": {"uv": [12.25, 6.25, 12.5, 6.5], "texture": "#0"},
|
||||
"west": {"uv": [12.25, 6.25, 12.5, 6.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [12.25, 6.25, 12.5, 6.5], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [12.25, 6.25, 12.5, 6.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.5, 7.5, 8.5],
|
||||
"to": [15.5, 8.5, 14.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 3], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [12.25, 6.5, 12.5, 5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 0, 3], "texture": "#0"},
|
||||
"west": {"uv": [12.25, 5, 12.5, 6.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 0, 6], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 0, 6], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [15.5, 4.5, 12.5],
|
||||
"to": [15.5, 7.5, 14.5],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 0, 3], "rotation": 180, "texture": "#0"},
|
||||
"east": {"uv": [12.5, 5.5, 12.5, 5], "rotation": 90, "texture": "#0"},
|
||||
"south": {"uv": [0, 0, 0, 3], "texture": "#0"},
|
||||
"west": {"uv": [12.5, 5, 13.25, 5.5], "rotation": 90, "texture": "#0"},
|
||||
"up": {"uv": [0, 0, 0, 6], "rotation": 180, "texture": "#0"},
|
||||
"down": {"uv": [0, 0, 0, 6], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"parent": "minecraft:block/block",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"2": "tfmg:block/surface_scanner",
|
||||
"particle": "tfmg:block/surface_scanner"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 2, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [7.5, 9, 11.5, 9.5], "texture": "#2"},
|
||||
"east": {"uv": [4, 9.5, 8, 10], "texture": "#2"},
|
||||
"south": {"uv": [8, 9.5, 12, 10], "texture": "#2"},
|
||||
"west": {"uv": [4, 10, 8, 10.5], "texture": "#2"},
|
||||
"up": {"uv": [4, 4, 0, 0], "texture": "#2"},
|
||||
"down": {"uv": [4, 4, 0, 8], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 2],
|
||||
"to": [15, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 6.5, 7.5, 9.5], "texture": "#2"},
|
||||
"east": {"uv": [7.5, 3, 10.75, 6], "texture": "#2"},
|
||||
"south": {"uv": [7.5, 0, 11, 3], "texture": "#2"},
|
||||
"west": {"uv": [7.5, 6, 10.75, 9], "texture": "#2"},
|
||||
"up": {"uv": [7.5, 3.25, 4, 0], "texture": "#2"},
|
||||
"down": {"uv": [7.5, 3.25, 4, 6.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 2, 15],
|
||||
"to": [15, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [6, 10.5, 6.25, 13.5], "texture": "#2"},
|
||||
"east": {"uv": [6.25, 10.5, 6.5, 13.5], "texture": "#2"},
|
||||
"south": {"uv": [6.5, 10.5, 6.75, 13.5], "texture": "#2"},
|
||||
"west": {"uv": [6.75, 10.5, 7, 13.5], "texture": "#2"},
|
||||
"up": {"uv": [3.25, 11, 3, 10.75], "texture": "#2"},
|
||||
"down": {"uv": [3.5, 10.75, 3.25, 11], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 13, 15],
|
||||
"to": [14, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [9, 10.5, 12, 10.75], "texture": "#2"},
|
||||
"east": {"uv": [3.5, 10.75, 3.75, 11], "texture": "#2"},
|
||||
"south": {"uv": [0, 10.75, 3, 11], "texture": "#2"},
|
||||
"west": {"uv": [10.75, 3.5, 11, 3.75], "texture": "#2"},
|
||||
"up": {"uv": [13.75, 3.25, 10.75, 3], "texture": "#2"},
|
||||
"down": {"uv": [13.75, 3.25, 10.75, 3.5], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 2, 15],
|
||||
"to": [2, 14, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 10.5, 7.25, 13.5], "texture": "#2"},
|
||||
"east": {"uv": [7.25, 10.5, 7.5, 13.5], "texture": "#2"},
|
||||
"south": {"uv": [7.5, 10.5, 7.75, 13.5], "texture": "#2"},
|
||||
"west": {"uv": [7.75, 10.5, 8, 13.5], "texture": "#2"},
|
||||
"up": {"uv": [4, 11, 3.75, 10.75], "texture": "#2"},
|
||||
"down": {"uv": [11, 3.75, 10.75, 4], "texture": "#2"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 2, 0],
|
||||
"to": [12, 13, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 2, 10.75], "texture": "#2"},
|
||||
"east": {"uv": [8, 10, 8.5, 12.75], "texture": "#2"},
|
||||
"south": {"uv": [2, 8, 4, 10.75], "texture": "#2"},
|
||||
"west": {"uv": [8.5, 10, 9, 12.75], "texture": "#2"},
|
||||
"up": {"uv": [11, 10.5, 9, 10], "texture": "#2"},
|
||||
"down": {"uv": [6, 10.5, 4, 11], "texture": "#2"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,263 @@
|
||||
{
|
||||
"credit": "Made with Blockbench",
|
||||
"texture_size": [64, 64],
|
||||
"textures": {
|
||||
"0": "tfmg:item/quad_potato_cannon",
|
||||
"particle": "tfmg:item/quad_potato_cannon"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "Body",
|
||||
"from": [5, 1, 2],
|
||||
"to": [11, 7, 19],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [8, 1, 4]},
|
||||
"faces": {
|
||||
"north": {"uv": [5, 2, 6.5, 3.5], "texture": "#0"},
|
||||
"east": {"uv": [0.5, 0, 4.75, 1.5], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 5, 7, 6.5], "texture": "#0"},
|
||||
"west": {"uv": [0, 1.5, 4.25, 3], "texture": "#0"},
|
||||
"up": {"uv": [1.5, 7.75, 0, 3.5], "texture": "#0"},
|
||||
"down": {"uv": [3, 3, 1.5, 7.25], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [8, 3, 19],
|
||||
"to": [10, 5, 24],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [6, 6, 20]},
|
||||
"faces": {
|
||||
"north": {"uv": [7.75, 6.5, 8.25, 7], "texture": "#0"},
|
||||
"east": {"uv": [7.5, 2.25, 8.75, 2.75], "texture": "#0"},
|
||||
"south": {"uv": [8, 1.5, 8.5, 2], "texture": "#0"},
|
||||
"west": {"uv": [7.5, 2.25, 8.75, 2.75], "texture": "#0"},
|
||||
"up": {"uv": [8, 4, 7.5, 2.75], "texture": "#0"},
|
||||
"down": {"uv": [8, 2.75, 7.5, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [10, 5, 19],
|
||||
"to": [12, 7, 24],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [6, 6, 20]},
|
||||
"faces": {
|
||||
"north": {"uv": [7.75, 6.5, 8.25, 7], "texture": "#0"},
|
||||
"east": {"uv": [7.5, 2.25, 8.75, 2.75], "texture": "#0"},
|
||||
"south": {"uv": [8, 1.5, 8.5, 2], "texture": "#0"},
|
||||
"west": {"uv": [0.5, 7.25, 1.75, 7.75], "texture": "#0"},
|
||||
"up": {"uv": [8, 4, 7.5, 2.75], "texture": "#0"},
|
||||
"down": {"uv": [8, 2.75, 7.5, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [8, 7, 19],
|
||||
"to": [10, 9, 24],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [6, 6, 20]},
|
||||
"faces": {
|
||||
"north": {"uv": [7.75, 6.5, 8.25, 7], "texture": "#0"},
|
||||
"east": {"uv": [7.5, 2.25, 8.75, 2.75], "texture": "#0"},
|
||||
"south": {"uv": [8, 1.5, 8.5, 2], "texture": "#0"},
|
||||
"west": {"uv": [7.5, 2.25, 8.75, 2.75], "texture": "#0"},
|
||||
"up": {"uv": [8, 4, 7.5, 2.75], "texture": "#0"},
|
||||
"down": {"uv": [2.75, 7.25, 2.25, 8.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Handle",
|
||||
"from": [6, -5, 4],
|
||||
"to": [8, 0, 5],
|
||||
"rotation": {"angle": -22.5, "axis": "x", "origin": [0, 0, 0]},
|
||||
"faces": {
|
||||
"north": {"uv": [0, 7.75, 0.5, 9], "texture": "#0"},
|
||||
"east": {"uv": [0, 7.75, 0.25, 9], "texture": "#0"},
|
||||
"south": {"uv": [0, 7.75, 0.5, 9], "texture": "#0"},
|
||||
"west": {"uv": [0.125, 7.75, 0.375, 9], "texture": "#0"},
|
||||
"up": {"uv": [7.5, 8.25, 7, 8], "texture": "#0"},
|
||||
"down": {"uv": [0.5, 8.875, 0.25, 9], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Pipe",
|
||||
"from": [11, 3, 5],
|
||||
"to": [12, 5, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [6.875, 0.75, 7.125, 1.25], "texture": "#0"},
|
||||
"east": {"uv": [6.75, 0.75, 9, 1.25], "texture": "#0"},
|
||||
"south": {"uv": [8, 7.5, 8.25, 8], "texture": "#0"},
|
||||
"west": {"uv": [5.5, 6.5, 7.75, 7], "texture": "#0"},
|
||||
"up": {"uv": [10.5, 2.5, 10.25, 0.25], "texture": "#0"},
|
||||
"down": {"uv": [10.5, 0.25, 10.25, 2.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Pipe",
|
||||
"from": [4, 3, 5],
|
||||
"to": [5, 5, 14],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 1.25, 7.25, 1.75], "texture": "#0"},
|
||||
"east": {"uv": [7, 3.5, 9.25, 4], "texture": "#0"},
|
||||
"south": {"uv": [8.25, 0.5, 8.5, 1], "texture": "#0"},
|
||||
"west": {"uv": [6.75, 1.25, 9, 1.75], "texture": "#0"},
|
||||
"up": {"uv": [10.75, 2.5, 10.5, 0.25], "texture": "#0"},
|
||||
"down": {"uv": [10.75, 0.25, 10.5, 2.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [6, 5, 19],
|
||||
"to": [8, 7, 24],
|
||||
"rotation": {"angle": -45, "axis": "z", "origin": [6, 6, 20]},
|
||||
"faces": {
|
||||
"north": {"uv": [7.75, 6.5, 8.25, 7], "texture": "#0"},
|
||||
"east": {"uv": [7.25, 0, 8.5, 0.5], "texture": "#0"},
|
||||
"south": {"uv": [8, 1.5, 8.5, 2], "texture": "#0"},
|
||||
"west": {"uv": [7.5, 2.25, 8.75, 2.75], "texture": "#0"},
|
||||
"up": {"uv": [8, 4, 7.5, 2.75], "texture": "#0"},
|
||||
"down": {"uv": [8, 2.75, 7.5, 4], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Tank",
|
||||
"from": [6, 7, 11],
|
||||
"to": [10, 9, 17],
|
||||
"faces": {
|
||||
"north": {"uv": [7.75, 6.75, 8.75, 7.25], "texture": "#0"},
|
||||
"east": {"uv": [5.5, 7.25, 7, 7.75], "texture": "#0"},
|
||||
"south": {"uv": [7.75, 6.75, 8.75, 7.25], "texture": "#0"},
|
||||
"west": {"uv": [5.5, 7.25, 7, 7.75], "texture": "#0"},
|
||||
"up": {"uv": [4, 8, 3, 6.5], "texture": "#0"},
|
||||
"down": {"uv": [7.5, 1.5, 6.5, 3], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Pipe",
|
||||
"from": [5, 7, 14],
|
||||
"to": [7, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 4.25, 7.5, 4.5], "texture": "#0"},
|
||||
"east": {"uv": [8.25, 1.25, 8.75, 1.5], "texture": "#0"},
|
||||
"south": {"uv": [7, 4.5, 7.5, 4.75], "texture": "#0"},
|
||||
"west": {"uv": [8.25, 6.75, 8.75, 7], "texture": "#0"},
|
||||
"up": {"uv": [7.5, 5.5, 7, 5], "texture": "#0"},
|
||||
"down": {"uv": [8.5, 2.5, 8, 3], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Pipe",
|
||||
"from": [9, 7, 14],
|
||||
"to": [11, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 4.5, 7.5, 4.75], "texture": "#0"},
|
||||
"east": {"uv": [7.5, 8.25, 8, 8.5], "texture": "#0"},
|
||||
"south": {"uv": [7, 4.5, 7.5, 4.75], "texture": "#0"},
|
||||
"west": {"uv": [8.25, 7.75, 8.75, 8], "texture": "#0"},
|
||||
"up": {"uv": [7.5, 5.5, 7, 5], "texture": "#0"},
|
||||
"down": {"uv": [6.5, 8, 6, 8.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Pipe",
|
||||
"from": [11, 3, 14],
|
||||
"to": [12, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [7, 4.25, 7.25, 5.5], "texture": "#0"},
|
||||
"east": {"uv": [7, 4.25, 7.5, 5.5], "texture": "#0"},
|
||||
"south": {"uv": [7.25, 4.25, 7.5, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [0.5, 7.75, 1, 8.75], "texture": "#0"},
|
||||
"up": {"uv": [7.25, 5.5, 7, 5], "texture": "#0"},
|
||||
"down": {"uv": [7.5, 5, 7.25, 5.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Pipe",
|
||||
"from": [4, 3, 14],
|
||||
"to": [5, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [7.25, 4.25, 7.5, 5.5], "texture": "#0"},
|
||||
"east": {"uv": [7.75, 0.5, 8.25, 1.5], "texture": "#0"},
|
||||
"south": {"uv": [7, 4.25, 7.25, 5.5], "texture": "#0"},
|
||||
"west": {"uv": [7, 4.25, 7.5, 5.5], "texture": "#0"},
|
||||
"up": {"uv": [7.5, 5.5, 7.25, 5], "texture": "#0"},
|
||||
"down": {"uv": [7.25, 5, 7, 5.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Grip",
|
||||
"from": [7, 0, 2],
|
||||
"to": [9, 1, 19],
|
||||
"faces": {
|
||||
"north": {"uv": [8.5, 0.5, 9, 0.75], "texture": "#0"},
|
||||
"east": {"uv": [5.5, 6.5, 10, 6.75], "texture": "#0"},
|
||||
"south": {"uv": [6, 6.25, 6.5, 6.5], "texture": "#0"},
|
||||
"west": {"uv": [5.5, 6.5, 10, 6.75], "texture": "#0"},
|
||||
"up": {"uv": [5.5, 8, 5, 3.5], "texture": "#0"},
|
||||
"down": {"uv": [5, 5, 4.5, 9.5], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Back",
|
||||
"from": [5, 1, 24],
|
||||
"to": [11, 7, 25],
|
||||
"rotation": {"angle": 0, "axis": "y", "origin": [0, 0, -1]},
|
||||
"faces": {
|
||||
"north": {"uv": [5.5, 3.5, 7, 5], "texture": "#0"},
|
||||
"east": {"uv": [1.5, 7.75, 1.75, 9.25], "texture": "#0"},
|
||||
"south": {"uv": [5.5, 3.5, 7, 5], "texture": "#0"},
|
||||
"west": {"uv": [1.125, 8.125, 1.375, 9.625], "texture": "#0"},
|
||||
"up": {"uv": [1.625, 9.375, 0.125, 9.125], "texture": "#0"},
|
||||
"down": {"uv": [1.5, 9.5, 0, 9.75], "texture": "#0"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 0, 0],
|
||||
"to": [12, 8, 2],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 3, 5, 5], "texture": "#0"},
|
||||
"east": {"uv": [2, 10, 2.5, 12], "texture": "#0"},
|
||||
"south": {"uv": [3, 3, 5, 5], "texture": "#0"},
|
||||
"west": {"uv": [2, 10, 2.5, 12], "texture": "#0"},
|
||||
"up": {"uv": [2, 11.125, 0, 10.625], "texture": "#0"},
|
||||
"down": {"uv": [2, 10.625, 0, 11.125], "texture": "#0"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_righthand": {
|
||||
"translation": [1.75, 6.75, 3.75]
|
||||
},
|
||||
"thirdperson_lefthand": {
|
||||
"translation": [1.75, 6.75, 3.75]
|
||||
},
|
||||
"firstperson_righthand": {
|
||||
"translation": [0, 10.75, 5.25]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
"translation": [0, 10.75, 5.25]
|
||||
},
|
||||
"ground": {
|
||||
"rotation": [0, 0, 90],
|
||||
"translation": [-3.5, 0.75, -4.25]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [40, 39, -6],
|
||||
"translation": [-1.5, 3.5, 0],
|
||||
"scale": [0.7, 0.7, 0.7]
|
||||
},
|
||||
"head": {
|
||||
"translation": [0, 14, -2.75]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [-90, 180, 0],
|
||||
"translation": [0, 4.25, -4.5],
|
||||
"scale": [0.8, 0.8, 0.8]
|
||||
}
|
||||
},
|
||||
"groups": [
|
||||
{
|
||||
"name": "group",
|
||||
"origin": [0, 0, 0],
|
||||
"color": 0,
|
||||
"children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 673 B |
Binary file not shown.
|
Before Width: | Height: | Size: 996 B |
Binary file not shown.
|
After Width: | Height: | Size: 252 B |
Binary file not shown.
|
After Width: | Height: | Size: 379 B |
Binary file not shown.
|
After Width: | Height: | Size: 1016 B |
Reference in New Issue
Block a user