distillation tower jei interface

This commit is contained in:
DrMangoTea
2023-09-19 14:48:10 +02:00
parent db1907f09e
commit ee22ebc828
89 changed files with 2956 additions and 53 deletions

View File

@@ -1,2 +1,2 @@
// 1.19.2 2023-09-17T13:43:24.4728645 Create: The Factory Must Grow's lang merger
b20b2d55c4ecebb0f868c512c69646ba4d3d98cf assets/tfmg/lang/en_us.json
// 1.19.2 2023-09-19T14:23:32.3677565 Create: The Factory Must Grow's lang merger
279de59a50ebc382a1a701878d0e99bf46265336 assets/tfmg/lang/en_us.json

View File

@@ -1,7 +1,8 @@
// 1.19.2 2023-09-17T11:15:14.4329646 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-19T14:23:32.3567546 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
83154b3fd031e4e10e1103d4befc800a82da4bbe assets/tfmg/blockstates/blast_furnace_output.json
9ca537517fb8baeff3d4e4137c93aebd6b874c81 assets/tfmg/blockstates/cast_iron_block.json
e13ba2fa789c784e4b7cfec3dd4603e29152387e assets/tfmg/blockstates/cast_iron_distillation_controller.json
61bcb8f09523c05fe8ee07a4b8b71a59e98393fe assets/tfmg/blockstates/cast_iron_distillation_output.json
@@ -20,6 +21,8 @@ e11a6159da224e69f12e11a594c20bb2bd8c0e68 assets/tfmg/blockstates/cut_bauxite_bri
3803629d3a0fe11a30c7dedaf0ae8e396df4c994 assets/tfmg/blockstates/cut_bauxite_stairs.json
700d6569dd98adc6a3167c99295816453bf351b9 assets/tfmg/blockstates/cut_bauxite_wall.json
03983ce3de10310cd75b98f17c9161653b7034cd assets/tfmg/blockstates/diesel.json
13c8eae3dd74b79d0e43c31ff101111e0af058f1 assets/tfmg/blockstates/fireproof_bricks.json
fe071d9f7c86c74e47390c35709f6c59b71bfa59 assets/tfmg/blockstates/fireproof_brick_reinforcement.json
f16d1cf03e5053455ea485f7aa53a88206f61749 assets/tfmg/blockstates/formwork_block.json
e74acd9562e4b46295cf017d17f2662e20a7f5ea assets/tfmg/blockstates/fossilstone.json
b0a3f4da5d9efdd01800c8b9738aee194565c6e7 assets/tfmg/blockstates/gasoline.json
@@ -27,12 +30,14 @@ d23c28129bc7885986c65290071fb7a9cc5391d7 assets/tfmg/blockstates/glass_steel_pip
9753ec68aa5fe10f618000b453a242d5e685b7d7 assets/tfmg/blockstates/heavy_casing_door.json
c7aa764cc11ee837deeed68c9c2d8567ea078f5c assets/tfmg/blockstates/heavy_machinery_casing.json
dea24edfcb504c6c74560174a94bd7d3e5d58e76 assets/tfmg/blockstates/heavy_oil.json
4205e4d0f3967a25f65dc2a250d037a662fc0476 assets/tfmg/blockstates/industrial_pipe.json
7199cbfa37e83fcedf8e99af48b05b283aef319f assets/tfmg/blockstates/kerosene.json
a8f81ce72c3f074ffef304b238ae805f3b4ea763 assets/tfmg/blockstates/layered_bauxite.json
34b4665b1ad1f302cebf30a5b1694c47b7ec1b8a assets/tfmg/blockstates/lead_block.json
55cba7d103b52b31f2deb59effcc01cfae6e2c05 assets/tfmg/blockstates/liquid_concrete.json
d3ba2682652fd44337d1f82ec382df17611fabe1 assets/tfmg/blockstates/liquid_plastic.json
2dc4b1da2bee0275cbb13ef89003d56f62d4443d assets/tfmg/blockstates/lubrication_oil.json
6c819d5f63ca53146d069ba0d00b3e1b10391a68 assets/tfmg/blockstates/machine_input.json
ebd6804b999acea36abbf07c2381ee6dee0d7a16 assets/tfmg/blockstates/napalm.json
0f33dc6b2a736164b17f416ce7d127c87bfb6441 assets/tfmg/blockstates/napalm_bomb.json
89f2902010903aad686571ef37c781b111147456 assets/tfmg/blockstates/naphtha.json
@@ -41,6 +46,9 @@ de9db40aec6d8dfe1afc222cd136df66a5ea0ff4 assets/tfmg/blockstates/polished_cut_ba
666a8272c3b88cc95106ff6c517b39d5f405cd15 assets/tfmg/blockstates/polished_cut_bauxite_slab.json
09b0074325813fc7b3cc47d406127abd0cfff21a assets/tfmg/blockstates/polished_cut_bauxite_stairs.json
92ac841c40e42468c4a01f98c61bc7df13eb4b9f assets/tfmg/blockstates/polished_cut_bauxite_wall.json
59fb2e38fb27b009de937602af7fb6b93a882f52 assets/tfmg/blockstates/pumpjack_base.json
9c839b1cc9aa5450ca4bc3501a055a0b5f8b5eee assets/tfmg/blockstates/pumpjack_crank.json
48e6c14565bf2d1c3a33a6642ce17e76d99f200c assets/tfmg/blockstates/pumpjack_hammer_holder.json
759968da877221c21f6979f6af6cf201a9a8c1b7 assets/tfmg/blockstates/small_bauxite_bricks.json
bf9dcbeabbd8d9da8dcd1cd9d42c3fce6509e7e6 assets/tfmg/blockstates/small_bauxite_brick_slab.json
e80f4610e3272a4edfb47572aff71f1db3d283d7 assets/tfmg/blockstates/small_bauxite_brick_stairs.json
@@ -57,8 +65,8 @@ e29906d296994a13fefc2beb22f7693e1027dd1b assets/tfmg/blockstates/steel_fluid_val
71b4c68d8a02062252c4dfde41650b7667d8c0ca assets/tfmg/blockstates/steel_sheetmetal.json
47b56dad1f2715aae7430b5f9acb1d51a26cf562 assets/tfmg/blockstates/steel_smart_fluid_pipe.json
942bb86fa92b3c40fc535dccdd2e9f3b79a36d92 assets/tfmg/blockstates/surface_scanner.json
587858610506ca0b063af552a67b96dd3a85e232 assets/tfmg/lang/en_ud.json
595fc774dfdc75f633a922ef452984d0c5d4df1d assets/tfmg/lang/en_us.json
67b8a6fd76d364c98275a66fb3f4cc9bbb043359 assets/tfmg/lang/en_ud.json
4bb8653cbdb013bc36e507bc2408c5b4279a4864 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
@@ -66,6 +74,7 @@ e29906d296994a13fefc2beb22f7693e1027dd1b assets/tfmg/blockstates/steel_fluid_val
b43711f35915b71b15db638538a83a4ea46480dc assets/tfmg/models/block/bauxite_natural_3.json
920f96d4b648414ce8331e5a81e6b7ddbce7e225 assets/tfmg/models/block/bauxite_pillar.json
cd5ade5f9a0b3b5e28b5d11a685408dd922dbe2d assets/tfmg/models/block/bauxite_pillar_horizontal.json
15597a6b96250c5ac383daca00e7cbf47d629947 assets/tfmg/models/block/blast_furnace_output.json
37789d06ec6cfc0312be7b1b66ac1ec6403d4516 assets/tfmg/models/block/cast_iron_block.json
925d61d0f1379e02c1f8892e3b86be5aa623b9ae assets/tfmg/models/block/cast_iron_distillation_controller.json
73cb08b1b298a3e02731e61326b65f94ef39e9bb assets/tfmg/models/block/cast_iron_distillation_output.json
@@ -93,16 +102,22 @@ c85e3f557de57442a06502abd302f2b0deb4c6bf assets/tfmg/models/block/cut_bauxite_wa
38e83097489baf251fba2c4229a6fedf6b441528 assets/tfmg/models/block/cut_bauxite_wall_side.json
a98527559bb1385b628e465d629ac429cdfb9f8e assets/tfmg/models/block/cut_bauxite_wall_side_tall.json
997750c71f9ead915c393c5821146a57dcd01bfa assets/tfmg/models/block/diesel.json
9202745e6093098507d6b800f5e52a99b74eaa20 assets/tfmg/models/block/fireproof_bricks.json
88d17739f2b8a2d77397f20bdbba486f95f88d18 assets/tfmg/models/block/fireproof_brick_reinforcement_wall_post.json
157a113acb124b65874defe8379d70552838339f assets/tfmg/models/block/fireproof_brick_reinforcement_wall_side.json
a657ae729b3afadf239d0a48b55f54ab756f4ec9 assets/tfmg/models/block/fireproof_brick_reinforcement_wall_side_tall.json
b0cb044b77cb3ffaf0628e0a06a8fe12c7462da0 assets/tfmg/models/block/fossilstone.json
e0cf42adbfeaa5c781b8239352335985658ae2d3 assets/tfmg/models/block/gasoline.json
717ee09803cb584062c9717f45475fbd15673cde assets/tfmg/models/block/heavy_machinery_casing.json
725ac5c4c5aade982edbcb6c4e6c53626f0e68e4 assets/tfmg/models/block/heavy_oil.json
6c893c24e234b70930e69cfc742df3af97d9a337 assets/tfmg/models/block/industrial_pipe.json
796f870ee5d3f55ace500798ae389e532c7233b8 assets/tfmg/models/block/kerosene.json
87cc75cb9bc8e65f8e46785b14e21ac5a4356faa assets/tfmg/models/block/layered_bauxite.json
79862c4e9a084be72f402e1378c3bb009a8db889 assets/tfmg/models/block/lead_block.json
eced115e0feb825f719abc480c4f9d7e7cc698c8 assets/tfmg/models/block/liquid_concrete.json
03ace76bbda220374985683aeea1eb4466bd4f13 assets/tfmg/models/block/liquid_plastic.json
6de36688139c9b11ed1ce6ef26ef1b65dfad34f5 assets/tfmg/models/block/lubrication_oil.json
0eb63c5a02a37435d1abef55fb1373aa67cf7b88 assets/tfmg/models/block/machine_input.json
80fb4a90f861992322bfd63f1232593e8cce708e assets/tfmg/models/block/napalm.json
b541c0cab9298f1d2578639349755b93f1019621 assets/tfmg/models/block/napalm_bomb.json
e8e7bb74d46f9cec768a5443c10870fe1dd2105b assets/tfmg/models/block/naphtha.json
@@ -117,6 +132,9 @@ f92bda412c3057000812a86a702b1f7d94d696a8 assets/tfmg/models/block/polished_cut_b
931053f2b5c646d80f1a74820733fe072b11a83f assets/tfmg/models/block/polished_cut_bauxite_wall_post.json
ad9fe70859fbb4152c183c33f159e88f1f1e532b assets/tfmg/models/block/polished_cut_bauxite_wall_side.json
dfaec7706609f1df7535203fbc653e53907f6885 assets/tfmg/models/block/polished_cut_bauxite_wall_side_tall.json
cd235893ef4ab30f83c76635dba2ed6a09e5aa3a assets/tfmg/models/block/pumpjack_base.json
46190cbdab7774010229d537796d8396aecf3288 assets/tfmg/models/block/pumpjack_crank.json
f134b83206ab8fa1199aecbfb110a8cc5e964cee assets/tfmg/models/block/pumpjack_hammer_holder.json
0527561f96904dabea20a824baf8828ff1bbfc32 assets/tfmg/models/block/small_bauxite_bricks.json
35349e72beddafb42b477c100ba16e41eb0bc473 assets/tfmg/models/block/small_bauxite_bricks_wall_post.json
86658ab1a36973071032dd844664d817e0628adb assets/tfmg/models/block/small_bauxite_bricks_wall_side.json
@@ -165,6 +183,7 @@ c7b153dff2ba1a88f02e950cc8d28d61bd68b1df assets/tfmg/models/block/steel_sheetmet
f685ca653c8e197986b1ac8f43297989816d39d2 assets/tfmg/models/item/aluminum_ingot.json
4ace0da00498fcbb9ddfdf321767b40b095c8778 assets/tfmg/models/item/bauxite.json
41091873d85bac787e4752d0ff81189432f1e28e assets/tfmg/models/item/bauxite_pillar.json
8ef0374ff08be7e1501c64fce1e075144e0c070f assets/tfmg/models/item/blast_furnace_output.json
ec38882fb9010884823d6d6afa604f8a6512d279 assets/tfmg/models/item/cast_iron_block.json
25acd7ba8827401619c5faf7bdbe60228b411864 assets/tfmg/models/item/cast_iron_distillation_controller.json
fc48286f0e70651f3d5a915558c3c91ae3ad0da6 assets/tfmg/models/item/cast_iron_distillation_output.json
@@ -185,12 +204,15 @@ cb56b95b0aad65f7d51e707eb7c4e5fa406bb741 assets/tfmg/models/item/cut_bauxite_bri
e6bf52c7a969b26d65cc36353a6a3e2a91752e42 assets/tfmg/models/item/cut_bauxite_stairs.json
0cef1f82baa51acdbe768b60f54ba126f9f6eb60 assets/tfmg/models/item/cut_bauxite_wall.json
3497bcbaee50b2f766de659043bf3c36823b570d assets/tfmg/models/item/diesel_bucket.json
080629b77cc20daacb129c7fe3c3a97d5df677f2 assets/tfmg/models/item/fireproof_bricks.json
c0137c7e66f70afe28cac27fe903fe000e4c8eae assets/tfmg/models/item/fireproof_brick_reinforcement.json
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
81bf095f356d9dc74a83af78b860ef8d3aed9b72 assets/tfmg/models/item/industrial_pipe.json
8996fe57623ded9433d6766e80a39e41a2aba1ca assets/tfmg/models/item/kerosene_bucket.json
c0f668fca568bc4c35aba97d9ac93986720e501f assets/tfmg/models/item/layered_bauxite.json
ee1682c21054b9a9ffde5983141d49e8177f9a2a assets/tfmg/models/item/lead_block.json
@@ -198,6 +220,7 @@ ee1682c21054b9a9ffde5983141d49e8177f9a2a assets/tfmg/models/item/lead_block.json
46bda405310f45b8faff7d29f3e2b76b6e6d512f assets/tfmg/models/item/liquid_concrete_bucket.json
630e09bfe78ed89d966b0e78599e818ef69f56a6 assets/tfmg/models/item/liquid_plastic_bucket.json
c86a836bfcf884dc13094fd908a561dd1d8f7ad8 assets/tfmg/models/item/lubrication_oil_bucket.json
e5b540df3672daceba8eac388904fa91cad98277 assets/tfmg/models/item/machine_input.json
afac1fce0904a0df4e68d731b897ff1be6c68766 assets/tfmg/models/item/napalm_bomb.json
b41853a4ae8b890f924058e57d274e956e6f4e37 assets/tfmg/models/item/napalm_bucket.json
aa94f1afebb7c458e85849d8ddff76c27efefb80 assets/tfmg/models/item/naphtha_bucket.json
@@ -206,6 +229,9 @@ 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
a6da50f604abf3b381b447c494a217cdac2a9b65 assets/tfmg/models/item/pumpjack_base.json
3bcbd66f8acbdafc865012eb6cc1307c4c1efa8e assets/tfmg/models/item/pumpjack_crank.json
01e6301c2b992c89790fdf385c1f89e2c71469c8 assets/tfmg/models/item/pumpjack_hammer_holder.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
@@ -258,14 +284,14 @@ d26621b9617890011a68780cf7ab40fbb4658edc data/forge/tags/items/storage_blocks/le
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
9b558f29e672499a30354b9113c1d494e858b208 data/minecraft/tags/blocks/mineable/axe.json
cd64e606ab00398ec320c641e554951e7f30aedd data/minecraft/tags/blocks/mineable/pickaxe.json
694d1673a052cf6c604fd75f5f0b8954a04a05e3 data/minecraft/tags/blocks/mineable/axe.json
b156ae4361196e2464f03fb95a11d5d9e3d03850 data/minecraft/tags/blocks/mineable/pickaxe.json
63c4a8d8e713db70730e766f1a10f8dd9072f98f data/minecraft/tags/blocks/moss_replaceable.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
ab31c3dbbad90f45620470d3c22c64a2cc475790 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
@@ -310,6 +336,7 @@ d152c8826235944ea57ff042dcd0bd19e13a7c29 data/tfmg/advancements/recipes/tfmg.bui
a4b393a2526bd10fa38095ac80769f913f139889 data/tfmg/loot_tables/blocks/aluminum_block.json
56d114d40ea3160b5c06cf9cfaa2e5107543c460 data/tfmg/loot_tables/blocks/bauxite.json
473b0effd9a768189aa232855cd09e7b380c3adc data/tfmg/loot_tables/blocks/bauxite_pillar.json
42f0a002820ca15e79fbc28e45e0f34638e9aeab data/tfmg/loot_tables/blocks/blast_furnace_output.json
60857d034446187e758de87644a80a7bc4d6b150 data/tfmg/loot_tables/blocks/cast_iron_block.json
300a96dcae25ba9bc085ee75f066b4ad2590b6e0 data/tfmg/loot_tables/blocks/cast_iron_distillation_controller.json
24517e07383f7a7eb8651f58721cf9f6f49393c0 data/tfmg/loot_tables/blocks/cast_iron_distillation_output.json
@@ -324,19 +351,26 @@ d32a75f20ca3f2da6ba69b0a91e295c63f65de92 data/tfmg/loot_tables/blocks/concrete.j
ce0c785984e63fa57a0cc8a9d5af0ce997285554 data/tfmg/loot_tables/blocks/cut_bauxite_slab.json
efba82fdf0c26dd90aacf5f604e613e29513b60e data/tfmg/loot_tables/blocks/cut_bauxite_stairs.json
ce47c0f03819dab221e70b3d4197ac82963b47d6 data/tfmg/loot_tables/blocks/cut_bauxite_wall.json
84715ecae584c6da15030710e401288881c3b845 data/tfmg/loot_tables/blocks/fireproof_bricks.json
1ce0e68d76b640ce1c668cfdcf4acf744288982f data/tfmg/loot_tables/blocks/fireproof_brick_reinforcement.json
51818c7cf522c10c409c8737fdc30a58d7560f71 data/tfmg/loot_tables/blocks/formwork_block.json
fd7674b996fd961339614656498a1ff54f092bb8 data/tfmg/loot_tables/blocks/fossilstone.json
1622328d319fc3c71269b0f9f1aef43a77132f3a data/tfmg/loot_tables/blocks/glass_steel_pipe.json
673b4eaefb99f4322f2b172c2c2651969389ff9b data/tfmg/loot_tables/blocks/heavy_casing_door.json
661cc61f9c13ddf8c6bf06470defa93170e8ee7f data/tfmg/loot_tables/blocks/heavy_machinery_casing.json
922fec21549635d98ec80e7a2a4bf92bd8878da8 data/tfmg/loot_tables/blocks/industrial_pipe.json
1633b0609c1f7b71d0ccda03bdb95bf873692b18 data/tfmg/loot_tables/blocks/layered_bauxite.json
a5ecc7b7daab82db283453319f5bae9057e63e62 data/tfmg/loot_tables/blocks/lead_block.json
c54478618ec2bcb1433ef2ad69a9b2453b3b8424 data/tfmg/loot_tables/blocks/machine_input.json
7da9b20012e584104331da961756d6c1d02682b5 data/tfmg/loot_tables/blocks/napalm_bomb.json
04ed0121924425d89886398da07c98277cb26100 data/tfmg/loot_tables/blocks/oil_deposit.json
c8658b25761345012c9861389a95a4605380f868 data/tfmg/loot_tables/blocks/polished_cut_bauxite.json
df7e518e9def864a4fad6b6bfbb605ae5bd4e57b data/tfmg/loot_tables/blocks/polished_cut_bauxite_slab.json
699d56aed6ceeeecb9ba94634130a05167ca041c data/tfmg/loot_tables/blocks/polished_cut_bauxite_stairs.json
4490dd2dd5e3d851c4dac4b37374094d6e90478b data/tfmg/loot_tables/blocks/polished_cut_bauxite_wall.json
8979e04ca8e0b1874baad459d35d7c80bb3fc5a8 data/tfmg/loot_tables/blocks/pumpjack_base.json
0fc9c3218514717c907b1f76f2abc55911459670 data/tfmg/loot_tables/blocks/pumpjack_crank.json
7e589d000c28526e306c5da5948e6c88ffb73d93 data/tfmg/loot_tables/blocks/pumpjack_hammer_holder.json
8392e6fbbaeb3a1f1316b3f12ecaf8927042a7ea data/tfmg/loot_tables/blocks/small_bauxite_bricks.json
211d6ba8f5576975698ad91ebdf5feb36f618ac7 data/tfmg/loot_tables/blocks/small_bauxite_brick_slab.json
b43d1fa7a2ac0534ab2867dec787d97f205f4a8d data/tfmg/loot_tables/blocks/small_bauxite_brick_stairs.json

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "tfmg:block/blast_furnace_output"
}
}
}

View File

@@ -0,0 +1,90 @@
{
"multipart": [
{
"apply": {
"model": "tfmg:block/fireproof_brick_reinforcement_wall_post"
},
"when": {
"up": "true"
}
},
{
"apply": {
"model": "tfmg:block/fireproof_brick_reinforcement_wall_side",
"uvlock": true,
"y": 90
},
"when": {
"east": "low"
}
},
{
"apply": {
"model": "tfmg:block/fireproof_brick_reinforcement_wall_side_tall",
"uvlock": true,
"y": 90
},
"when": {
"east": "tall"
}
},
{
"apply": {
"model": "tfmg:block/fireproof_brick_reinforcement_wall_side",
"uvlock": true
},
"when": {
"north": "low"
}
},
{
"apply": {
"model": "tfmg:block/fireproof_brick_reinforcement_wall_side_tall",
"uvlock": true
},
"when": {
"north": "tall"
}
},
{
"apply": {
"model": "tfmg:block/fireproof_brick_reinforcement_wall_side",
"uvlock": true,
"y": 180
},
"when": {
"south": "low"
}
},
{
"apply": {
"model": "tfmg:block/fireproof_brick_reinforcement_wall_side_tall",
"uvlock": true,
"y": 180
},
"when": {
"south": "tall"
}
},
{
"apply": {
"model": "tfmg:block/fireproof_brick_reinforcement_wall_side",
"uvlock": true,
"y": 270
},
"when": {
"west": "low"
}
},
{
"apply": {
"model": "tfmg:block/fireproof_brick_reinforcement_wall_side_tall",
"uvlock": true,
"y": 270
},
"when": {
"west": "tall"
}
}
]
}

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "tfmg:block/fireproof_bricks"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "tfmg:block/industrial_pipe"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "tfmg:block/machine_input"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "tfmg:block/pumpjack_base"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "tfmg:block/pumpjack_crank"
}
}
}

View File

@@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "tfmg:block/pumpjack_hammer_holder"
}
}
}

View File

@@ -2,6 +2,7 @@
"block.tfmg.aluminum_block": "ɯnuıɯnןⱯ ɟo ʞɔoןᗺ",
"block.tfmg.bauxite": "ǝʇıxnɐᗺ",
"block.tfmg.bauxite_pillar": "ɹɐןןıԀ ǝʇıxnɐᗺ",
"block.tfmg.blast_furnace_output": "ʇndʇnO ǝɔɐuɹnℲ ʇsɐןᗺ",
"block.tfmg.cast_iron_block": "uoɹI ʇsɐƆ ɟo ʞɔoןᗺ",
"block.tfmg.cast_iron_distillation_controller": "ɹǝןןoɹʇuoƆ uoıʇɐןןıʇsıᗡ uoɹI ʇsɐƆ",
"block.tfmg.cast_iron_distillation_output": "ʇndʇnO uoıʇɐןןıʇsıᗡ uoɹI ʇsɐƆ",
@@ -20,6 +21,8 @@
"block.tfmg.cut_bauxite_stairs": "sɹıɐʇS ǝʇıxnɐᗺ ʇnƆ",
"block.tfmg.cut_bauxite_wall": "ןןɐM ǝʇıxnɐᗺ ʇnƆ",
"block.tfmg.diesel": "ןǝsǝıᗡ",
"block.tfmg.fireproof_brick_reinforcement": "ʇuǝɯǝɔɹoɟuıǝᴚ ʞɔıɹᗺ ɟooɹdǝɹıℲ",
"block.tfmg.fireproof_bricks": "sʞɔıɹᗺ ɟooɹdǝɹıℲ",
"block.tfmg.formwork_block": "ʞɔoןᗺ ʞɹoʍɯɹoℲ",
"block.tfmg.fossilstone": "ǝuoʇsןıssoℲ",
"block.tfmg.gasoline": "ǝuıןosɐ⅁",
@@ -27,12 +30,14 @@
"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.industrial_pipe": "ǝdıԀ ןɐıɹʇsnpuI",
"block.tfmg.kerosene": "ǝuǝsoɹǝʞ",
"block.tfmg.layered_bauxite": "ǝʇıxnɐᗺ pǝɹǝʎɐꞀ",
"block.tfmg.lead_block": "pɐǝꞀ ɟo ʞɔoןᗺ",
"block.tfmg.liquid_concrete": "ǝʇǝɹɔuoƆ pınbıꞀ",
"block.tfmg.liquid_plastic": ıʇsɐןԀ pınbıꞀ",
"block.tfmg.lubrication_oil": "ןıO uoıʇɐɔıɹqnꞀ",
"block.tfmg.machine_input": "ʇnduI ǝuıɥɔɐW",
"block.tfmg.napalm": "ɯןɐdɐN",
"block.tfmg.napalm_bomb": "qɯoᗺ ɯןɐdɐN",
"block.tfmg.naphtha": "ɐɥʇɥdɐN",
@@ -41,6 +46,9 @@
"block.tfmg.polished_cut_bauxite_slab": "qɐןS ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ",
"block.tfmg.polished_cut_bauxite_stairs": "sɹıɐʇS ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ",
"block.tfmg.polished_cut_bauxite_wall": "ןןɐM ǝʇıxnɐᗺ ʇnƆ pǝɥsıןoԀ",
"block.tfmg.pumpjack_base": "ǝsɐᗺ ʞɔɐظdɯnԀ",
"block.tfmg.pumpjack_crank": "ʞuɐɹƆ ʞɔɐظdɯnԀ",
"block.tfmg.pumpjack_hammer_holder": "ɹǝpןoH ɹǝɯɯɐH ʞɔɐظdɯnԀ",
"block.tfmg.small_bauxite_brick_slab": "qɐןS ʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS",
"block.tfmg.small_bauxite_brick_stairs": "sɹıɐʇS ʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS",
"block.tfmg.small_bauxite_brick_wall": "ןןɐM ʞɔıɹᗺ ǝʇıxnɐᗺ ןןɐɯS",

View File

@@ -5,6 +5,7 @@
"block.tfmg.aluminum_block": "Block of Aluminum",
"block.tfmg.bauxite": "Bauxite",
"block.tfmg.bauxite_pillar": "Bauxite Pillar",
"block.tfmg.blast_furnace_output": "Blast Furnace Output",
"block.tfmg.cast_iron_block": "Block of Cast Iron",
"block.tfmg.cast_iron_distillation_controller": "Cast Iron Distillation Controller",
"block.tfmg.cast_iron_distillation_output": "Cast Iron Distillation Output",
@@ -23,6 +24,8 @@
"block.tfmg.cut_bauxite_stairs": "Cut Bauxite Stairs",
"block.tfmg.cut_bauxite_wall": "Cut Bauxite Wall",
"block.tfmg.diesel": "Diesel",
"block.tfmg.fireproof_brick_reinforcement": "Fireproof Brick Reinforcement",
"block.tfmg.fireproof_bricks": "Fireproof Bricks",
"block.tfmg.formwork_block": "Formwork Block",
"block.tfmg.fossilstone": "Fossilstone",
"block.tfmg.gasoline": "Gasoline",
@@ -30,12 +33,14 @@
"block.tfmg.heavy_casing_door": "Heavy Casing Door",
"block.tfmg.heavy_machinery_casing": "Heavy Machinery Casing",
"block.tfmg.heavy_oil": "Heavy Oil",
"block.tfmg.industrial_pipe": "Industrial Pipe",
"block.tfmg.kerosene": "Kerosene",
"block.tfmg.layered_bauxite": "Layered Bauxite",
"block.tfmg.lead_block": "Block of Lead",
"block.tfmg.liquid_concrete": "Liquid Concrete",
"block.tfmg.liquid_plastic": "Liquid Plastic",
"block.tfmg.lubrication_oil": "Lubrication Oil",
"block.tfmg.machine_input": "Machine Input",
"block.tfmg.napalm": "Napalm",
"block.tfmg.napalm_bomb": "Napalm Bomb",
"block.tfmg.naphtha": "Naphtha",
@@ -44,6 +49,9 @@
"block.tfmg.polished_cut_bauxite_slab": "Polished Cut Bauxite Slab",
"block.tfmg.polished_cut_bauxite_stairs": "Polished Cut Bauxite Stairs",
"block.tfmg.polished_cut_bauxite_wall": "Polished Cut Bauxite Wall",
"block.tfmg.pumpjack_base": "Pumpjack Base",
"block.tfmg.pumpjack_crank": "Pumpjack Crank",
"block.tfmg.pumpjack_hammer_holder": "Pumpjack Hammer Holder",
"block.tfmg.small_bauxite_brick_slab": "Small Bauxite Brick Slab",
"block.tfmg.small_bauxite_brick_stairs": "Small Bauxite Brick Stairs",
"block.tfmg.small_bauxite_brick_wall": "Small Bauxite Brick Wall",
@@ -118,17 +126,18 @@
"create.goggles.misc.dot_one": ".",
"create.goggles.misc.dot_two": "..",
"create.goggles.misc.dot_three": "...",
"create.goggles.fluid_in_tank": "Fluid In Tank:",
"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",
"create.goggles.distillation_tower.status": "Distillation Tower Info:",
"create.goggles.distillation_tower.tank_not_found": "Steel Fluid Tank Not Found",
"create.goggles.distillation_tower.not_tall_enough": "Distillation Tower is Not Tall Enough",
"create.goggles.distillation_tower.level": "Distillation Tower Level: %1$s",
"create.goggles.distillation_tower.found_outputs": "Found Outputs: %1$s",
"create.goggles.distillation_tower.no_outputs": "No Output Blocks Found",
"create.goggles.distillation_tower.status": "Distillation Tower Info:",
"create.goggles.fluid_in_tank": "Fluid In Tank:",
"_": "->------------------------] UI & Messages [------------------------<-",

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "tfmg:block/blast_furnace_output"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_wall_post",
"textures": {
"wall": "tfmg:block/fireproof_brick_reinforcement"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_wall_side",
"textures": {
"wall": "tfmg:block/fireproof_brick_reinforcement"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/template_wall_side_tall",
"textures": {
"wall": "tfmg:block/fireproof_brick_reinforcement"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "tfmg:block/fireproof_bricks"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "tfmg:block/industrial_pipe"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "tfmg:block/machine_input"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "tfmg:block/pumpjack_base"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "tfmg:block/pumpjack_crank"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "tfmg:block/pumpjack_hammer_holder"
}
}

View File

@@ -0,0 +1,3 @@
{
"parent": "tfmg:block/blast_furnace_output"
}

View File

@@ -0,0 +1,3 @@
{
"parent": "tfmg:block/fireproof_brick_reinforcement"
}

View File

@@ -0,0 +1,3 @@
{
"parent": "tfmg:block/fireproof_bricks"
}

View File

@@ -0,0 +1,3 @@
{
"parent": "tfmg:block/industrial_pipe"
}

View File

@@ -0,0 +1,3 @@
{
"parent": "tfmg:block/machine_input"
}

View File

@@ -0,0 +1,3 @@
{
"parent": "tfmg:block/pumpjack_base"
}

View File

@@ -0,0 +1,3 @@
{
"parent": "tfmg:block/pumpjack_crank"
}

View File

@@ -0,0 +1,3 @@
{
"parent": "tfmg:block/pumpjack_hammer_holder"
}

View File

@@ -5,6 +5,8 @@
"tfmg:formwork_block",
"tfmg:copper_encased_steel_pipe",
"tfmg:cast_iron_distillation_output",
"tfmg:steel_distillation_output"
"tfmg:steel_distillation_output",
"tfmg:machine_input",
"tfmg:pumpjack_crank"
]
}

View File

@@ -14,6 +14,12 @@
"tfmg:steel_fluid_tank",
"tfmg:cast_iron_distillation_output",
"tfmg:steel_distillation_output",
"tfmg:industrial_pipe",
"tfmg:machine_input",
"tfmg:pumpjack_crank",
"tfmg:fireproof_bricks",
"tfmg:fireproof_brick_reinforcement",
"tfmg:blast_furnace_output",
"tfmg:steel_block",
"tfmg:cast_iron_block",
"tfmg:aluminum_block",

View File

@@ -1,5 +1,6 @@
{
"values": [
"tfmg:fireproof_brick_reinforcement",
"tfmg:cut_bauxite_wall",
"tfmg:polished_cut_bauxite_wall",
"tfmg:cut_bauxite_brick_wall",

View File

@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "tfmg:blast_furnace_output"
}
],
"rolls": 1.0
}
]
}

View File

@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "tfmg:fireproof_brick_reinforcement"
}
],
"rolls": 1.0
}
]
}

View File

@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "tfmg:fireproof_bricks"
}
],
"rolls": 1.0
}
]
}

View File

@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "tfmg:industrial_pipe"
}
],
"rolls": 1.0
}
]
}

View File

@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "tfmg:machine_input"
}
],
"rolls": 1.0
}
]
}

View File

@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "tfmg:pumpjack_base"
}
],
"rolls": 1.0
}
]
}

View File

@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "tfmg:pumpjack_crank"
}
],
"rolls": 1.0
}
]
}

View File

@@ -0,0 +1,20 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "tfmg:pumpjack_hammer_holder"
}
],
"rolls": 1.0
}
]
}

View File

@@ -0,0 +1,18 @@
package com.drmangotea.tfmg.base;
import com.drmangotea.tfmg.CreateTFMG;
import com.tterrag.registrate.providers.DataGenContext;
import com.tterrag.registrate.providers.RegistrateBlockstateProvider;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.WallBlock;
public class TFMGVanillaBlockStates {
public static void generateWallBlockState(DataGenContext<Block, WallBlock> ctx, RegistrateBlockstateProvider prov,
String name) {
prov.wallBlock(ctx.get(), name, CreateTFMG.asResource("block/"+name));
}
}

View File

@@ -47,7 +47,7 @@ public abstract class TFMGPaletteBlockPartial<B extends Block> {
private String name;
private TFMGPaletteBlockPartial(String name) {
protected TFMGPaletteBlockPartial(String name) {
this.name = name;
}
@@ -216,7 +216,7 @@ public abstract class TFMGPaletteBlockPartial<B extends Block> {
}
private static class Wall extends TFMGPaletteBlockPartial<WallBlock> {
public static class Wall extends TFMGPaletteBlockPartial<WallBlock> {
public Wall() {
super("wall");

View File

@@ -201,7 +201,7 @@ public class TFMGPaletteBlockPattern {
// Utility
protected String createName(String variant) {
public String createName(String variant) {
if (nameType == WRAP) {
String[] split = id.split("_");
if (split.length == 2) {

View File

@@ -192,7 +192,7 @@ public class DistillationControllerBlockEntity extends DistilleryControllerBlock
for(int i = 0; i <5;i++){
if(
level.getBlockState(checkedPos).is(TFMGBlocks.STEEL_DISTILLATION_OUTPUT.get())&&
level.getBlockState(checkedPos.below()).is(TFMGBlocks.ALUMINUM_BLOCK.get())
level.getBlockState(checkedPos.below()).is(TFMGBlocks.INDUSTRIAL_PIPE.get())
){
outputCount++;
checkedPos = checkedPos.above(2);

View File

@@ -380,7 +380,7 @@ if(!(((AdvancedDistillationRecipe) currentRecipe).getThirdItemResult().isEmpty()
for(int i = 0;i<(outputAmount-1);i++){
checkedBlock = level.getBlockState(checkedPos).getBlock();
if(checkedBlock == TFMGBlocks.ALUMINUM_BLOCK.get()){
if(checkedBlock == TFMGBlocks.INDUSTRIAL_PIPE.get()){
checkedPos=checkedPos.above(2);
continue;
}

View File

@@ -0,0 +1,72 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.base;
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
import com.drmangotea.tfmg.registry.TFMGShapes;
import com.simibubi.create.content.equipment.wrench.IWrenchable;
import com.simibubi.create.foundation.block.IBE;
import net.minecraft.core.BlockPos;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
import net.minecraft.world.level.block.Mirror;
import net.minecraft.world.level.block.Rotation;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
public class PumpjackBaseBlock extends HorizontalDirectionalBlock implements IWrenchable, IBE<PumpjackBaseBlockEntity> {
public PumpjackBaseBlock(Properties p_i48440_1_) {
super(p_i48440_1_);
}
@Override
public VoxelShape getShape(BlockState pState, BlockGetter worldIn, BlockPos pos, CollisionContext context) {
return TFMGShapes.PUMPJACK_BASE;
}
public BlockState rotate(BlockState p_54540_, Rotation p_54541_) {
return p_54540_.setValue(FACING, p_54541_.rotate(p_54540_.getValue(FACING)));
}
public BlockState mirror(BlockState p_54537_, Mirror p_54538_) {
return p_54537_.rotate(p_54538_.getRotation(p_54537_.getValue(FACING)));
}
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> p_54543_) {
p_54543_.add(FACING);
}
@Override
public BlockState getStateForPlacement(BlockPlaceContext context) {
return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite());
}
@Override
public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) {
world.removeBlockEntity(pos);
}
@Override
public Class<PumpjackBaseBlockEntity> getBlockEntityClass() {
return PumpjackBaseBlockEntity.class;
}
@Override
public BlockEntityType<? extends PumpjackBaseBlockEntity> getBlockEntityType() {
return TFMGBlockEntities.PUMPJACK_BASE.get();
}
}

View File

@@ -0,0 +1,374 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.base;
import com.drmangotea.tfmg.content.deposits.FluidDepositBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank.PumpjackCrankBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input.MachineInputBlockEntity;
import com.drmangotea.tfmg.registry.TFMGBlocks;
import com.drmangotea.tfmg.registry.TFMGFluids;
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.foundation.blockEntity.SmartBlockEntity;
import com.simibubi.create.foundation.blockEntity.behaviour.BlockEntityBehaviour;
import com.simibubi.create.foundation.fluid.SmartFluidTank;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.LangBuilder;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.IFluidTank;
import net.minecraftforge.fluids.capability.CapabilityFluidHandler;
import net.minecraftforge.fluids.capability.IFluidHandler;
import net.minecraftforge.fluids.capability.templates.FluidTank;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.List;
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
public class PumpjackBaseBlockEntity extends SmartBlockEntity implements IHaveGoggleInformation {
public BlockPos crankPos = this.getBlockPos();
protected LazyOptional<IFluidHandler> fluidCapability;
public FluidTank tankInventory;
public FluidDepositBlockEntity deposit;
public Direction direction = this.getBlockState().getValue(FACING).getOpposite();
int debugCounter = 0;
public int miningRate = 0;
int depositCheckTimer = 0;
private static final int SYNC_RATE = 8;
protected int syncCooldown;
protected boolean queuedSync;
public PumpjackBaseBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
tankInventory = createInventory();
fluidCapability = LazyOptional.of(() -> tankInventory);
refreshCapability();
}
@Override
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
Lang.translate("goggles.pumpjack_info")
.forGoggles(tooltip);
if (!isComplete()) {
Lang.translate("goggles.pumpjack.part_missing")
.style(ChatFormatting.DARK_RED)
.forGoggles(tooltip);
if(isWronglyRotated()){
Lang.translate("goggles.pumpjack.wrong_rotation1")
.style(ChatFormatting.GOLD)
.forGoggles(tooltip);
Lang.translate("goggles.pumpjack.wrong_rotation2")
.style(ChatFormatting.GOLD)
.forGoggles(tooltip);
}
return true;
}
LangBuilder mb = Lang.translate("generic.unit.millibuckets");
Lang.translate("goggles.pumpjack.deposit_info")
.style(ChatFormatting.GRAY)
.forGoggles(tooltip);
if (!(deposit == null || deposit.fluidAmount == 0)) {
Lang.translate("goggles.pumpjack.fluid_amount")
.style(ChatFormatting.DARK_GRAY)
.add(
Lang.translate("pumpjack_deposit_amount", this.deposit.baseFluidAmount)
.style(ChatFormatting.BLUE)
// .add(mb))
).forGoggles(tooltip, 1);
} else {
Lang.translate("goggles.zero")
.style(ChatFormatting.DARK_RED)
.forGoggles(tooltip, 1);
}
return true;
}
public void process() {
if (deposit == null || deposit.fluidAmount == 0)
return;
if (tankInventory.getFluidAmount() + miningRate > 1000)
return;
deposit.fluidAmount -= miningRate;
tankInventory.setFluid(new FluidStack(deposit.getDepositFluid(), tankInventory.getFluidAmount() + miningRate));
}
public boolean hasPipe() {
for (int i = -62; i != getBlockPos().getY(); i++) {
BlockPos pos = new BlockPos(getBlockPos().getX(), i, getBlockPos().getZ());
if (!(level.getBlockState(pos).is(TFMGBlocks.INDUSTRIAL_PIPE.get())))
return false;
}
return true;
}
public void findDeposit() {
for (int i = 0; i < this.getBlockPos().getY() + 64; i++) {
debugCounter = this.getBlockPos().getY() - i;
BlockPos checkedPos = new BlockPos(this.getBlockPos().getX(), (this.getBlockPos().getY() - 1) - i, this.getBlockPos().getZ());
if (level.getBlockState(new BlockPos(checkedPos)).is(TFMGBlocks.OIL_DEPOSIT.get())) {
deposit = (FluidDepositBlockEntity) level.getBlockEntity(checkedPos);
return;
}
if (!(level.getBlockState(new BlockPos(checkedPos)).is(TFMGBlocks.INDUSTRIAL_PIPE.get()))) {
deposit = null;
return;
}
}
debugCounter = 0;
deposit = null;
return;
/*
if(!hasPipe()) {
deposit = null;
return;
}
if(level.getBlockEntity(new BlockPos(getBlockPos().getX(),-63,getBlockPos().getZ())) instanceof FluidDepositTileEntity) {
deposit = (FluidDepositTileEntity) (level.getBlockEntity(new BlockPos(getBlockPos().getX(),-64,getBlockPos().getZ())));
}else {
deposit=null;
}
*/
}
protected SmartFluidTank createInventory() {
return new SmartFluidTank(1000, this::onFluidStackChanged) {
@Override
public boolean isFluidValid(FluidStack stack) {
return stack.getFluid().isSame(TFMGFluids.CRUDE_OIL.getSource());
}
};
}
protected void onFluidStackChanged(FluidStack newFluidStack) {
}
@Override
public void tick() {
super.tick();
if (!isComplete())
return;
MachineInputBlockEntity input = null;
if (level.getBlockEntity(crankPos.below()) instanceof MachineInputBlockEntity)
input = (MachineInputBlockEntity) level.getBlockEntity(crankPos.below());
if (input == null)
return;
miningRate = input.powerLevel * 12;
depositCheckTimer++;
if (depositCheckTimer > 50) {
depositCheckTimer = 0;
findDeposit();
}
direction = this.getBlockState().getValue(FACING).getOpposite();
process();
if (syncCooldown > 0) {
syncCooldown--;
if (syncCooldown == 0 && queuedSync)
sendData();
}
}
@Override
public void initialize() {
super.initialize();
sendData();
if (level.isClientSide)
invalidateRenderBoundingBox();
}
@Override
public void sendData() {
if (syncCooldown > 0) {
queuedSync = true;
return;
}
super.sendData();
queuedSync = false;
syncCooldown = SYNC_RATE;
}
private void refreshCapability() {
LazyOptional<IFluidHandler> oldCap = fluidCapability;
fluidCapability = LazyOptional.of(() -> handlerForCapability());
oldCap.invalidate();
}
private IFluidHandler handlerForCapability() {
return tankInventory;
}
@Override
protected void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket);
tankInventory.setCapacity(1000);
tankInventory.readFromNBT(compound.getCompound("TankContent"));
}
@Override
public void write(CompoundTag compound, boolean clientPacket) {
compound.put("TankContent", tankInventory.writeToNBT(new CompoundTag()));
super.write(compound, clientPacket);
}
@Nonnull
@Override
public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
if (!fluidCapability.isPresent())
refreshCapability();
if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
return fluidCapability.cast();
return super.getCapability(cap, side);
}
@Override
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
}
public IFluidTank getTankInventory() {
return tankInventory;
}
public boolean isComplete() {
BlockPos hammerPos = this.getBlockPos();
crankPos = this.getBlockPos();
if (direction == Direction.WEST) {
hammerPos = new BlockPos(this.getBlockPos().west(2).above(2));
crankPos = new BlockPos(this.getBlockPos().west(4).above(1));
}
if (direction == Direction.EAST) {
hammerPos = new BlockPos(this.getBlockPos().east(2).above(2));
crankPos = new BlockPos(this.getBlockPos().east(4).above(1));
}
if (direction == Direction.NORTH) {
hammerPos = new BlockPos(this.getBlockPos().north(2).above(2));
crankPos = new BlockPos(this.getBlockPos().north(4).above(1));
}
if (direction == Direction.SOUTH) {
hammerPos = new BlockPos(this.getBlockPos().south(2).above(2));
crankPos = new BlockPos(this.getBlockPos().south(4).above(1));
}
if (!(level.getBlockEntity(hammerPos) instanceof PumpjackHammerHolderBlockEntity &&
level.getBlockEntity(crankPos) instanceof PumpjackCrankBlockEntity)) {
return false;
}
//MachineInputTileEntity input = (MachineInputTileEntity) level.getBlockEntity(crankPos.below());
// if(input.powerLevel==0)
// return false;
if (level.getBlockEntity(hammerPos).getBlockState().getValue(FACING).getOpposite() == direction
&& level.getBlockEntity(crankPos).getBlockState().getValue(FACING).getOpposite() == direction
)
return true;
return false;
}
public boolean isWronglyRotated() {
if (isComplete())
return false;
BlockPos hammerPos1 = this.getBlockPos();
BlockPos hammerPos2 = this.getBlockPos();
BlockPos hammerPos3 = this.getBlockPos();
crankPos = this.getBlockPos();
if (direction == Direction.WEST) {
hammerPos1 = new BlockPos(this.getBlockPos().east(2).above(2));
hammerPos2 = new BlockPos(this.getBlockPos().north(2).above(2));
hammerPos3 = new BlockPos(this.getBlockPos().south(2).above(2));
}
if (direction == Direction.EAST) {
hammerPos1 = new BlockPos(this.getBlockPos().west(2).above(2));
hammerPos2 = new BlockPos(this.getBlockPos().north(2).above(2));
hammerPos3 = new BlockPos(this.getBlockPos().south(2).above(2));
}
if (direction == Direction.NORTH) {
hammerPos1 = new BlockPos(this.getBlockPos().south(2).above(2));
hammerPos2 = new BlockPos(this.getBlockPos().west(2).above(2));
hammerPos3 = new BlockPos(this.getBlockPos().east(2).above(2));
}
if (direction == Direction.SOUTH) {
hammerPos1 = new BlockPos(this.getBlockPos().north(2).above(2));
hammerPos2 = new BlockPos(this.getBlockPos().east(2).above(2));
hammerPos3 = new BlockPos(this.getBlockPos().west(2).above(2));
}
BlockState hammer1 = level.getBlockState(hammerPos1);
BlockState hammer2 = level.getBlockState(hammerPos2);
BlockState hammer3 = level.getBlockState(hammerPos3);
return hammer1.is(TFMGBlocks.PUMPJACK_HAMMER_HOLDER.get())||
hammer2.is(TFMGBlocks.PUMPJACK_HAMMER_HOLDER.get())||
hammer3.is(TFMGBlocks.PUMPJACK_HAMMER_HOLDER.get());
}
}

View File

@@ -0,0 +1,50 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.base;
import com.drmangotea.tfmg.registry.TFMGPartialModels;
import com.jozufozu.flywheel.util.transform.TransformStack;
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 net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.world.level.block.state.BlockState;
public class PumpjackBaseRenderer extends SafeBlockEntityRenderer<PumpjackBaseBlockEntity> {
public PumpjackBaseRenderer(BlockEntityRendererProvider.Context context) {}
@Override
protected void renderSafe(PumpjackBaseBlockEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
int light, int overlay) {
BlockState blockState = te.getBlockState();
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
ms.pushPose();
TransformStack msr = TransformStack.cast(ms);
msr.translate(1 / 2f, 0.5, 1 / 2f);
float dialPivot = 5.75f / 16;
if(te.isComplete()) {
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_FRONT_ROPE, blockState)
// .rotateY(d.toYRot())
.unCentre()
.translateY(1)
.light(light)
.renderInto(ms, vb);
}
ms.popPose();
}
@Override
public boolean shouldRenderOffScreen(PumpjackBaseBlockEntity te) {
return false;
}
}

View File

@@ -0,0 +1,48 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank;
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
import com.drmangotea.tfmg.registry.TFMGShapes;
import com.simibubi.create.content.equipment.wrench.IWrenchable;
import com.simibubi.create.foundation.block.IBE;
import net.minecraft.core.BlockPos;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
import net.minecraft.world.level.block.RenderShape;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
public class PumpjackCrankBlock extends HorizontalDirectionalBlock implements IBE<PumpjackCrankBlockEntity>, IWrenchable {
public PumpjackCrankBlock(Properties p_54120_) {
super(p_54120_);
}
public BlockState getStateForPlacement(BlockPlaceContext p_54779_) {
return this.defaultBlockState().setValue(FACING, p_54779_.getHorizontalDirection());
}
@Override
public VoxelShape getShape(BlockState state, BlockGetter p_220053_2_, BlockPos p_220053_3_,
CollisionContext p_220053_4_) {
return TFMGShapes.PUMPJACK_CRANK;
}
@Override
public Class<PumpjackCrankBlockEntity> getBlockEntityClass() {
return PumpjackCrankBlockEntity.class;
}
@Override
public RenderShape getRenderShape(BlockState pState) {
return RenderShape.ENTITYBLOCK_ANIMATED;
}
@Override
public BlockEntityType<? extends PumpjackCrankBlockEntity> getBlockEntityType() {
return TFMGBlockEntities.PUMPJACK_CRANK.get();
}
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> p_54794_) {
p_54794_.add(FACING);
}
}

View File

@@ -0,0 +1,122 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input.MachineInputBlockEntity;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import static net.minecraft.world.level.block.HorizontalDirectionalBlock.FACING;
public class PumpjackCrankBlockEntity extends KineticBlockEntity {
float targetSpeed;
public float angle=0;
public Direction direction;
public BlockPos hammerPos;
public PumpjackCrankBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
angle=177;
if(direction==Direction.NORTH)
hammerPos =this.getBlockPos().north(2).above();
if(direction==Direction.SOUTH)
hammerPos =this.getBlockPos().south(2).above();
if(direction==Direction.WEST)
hammerPos =this.getBlockPos().west(2).above();
if(direction==Direction.EAST)
hammerPos =this.getBlockPos().east(2).above();
}
@Override
public void write(CompoundTag compound, boolean clientPacket) {
super.write(compound, clientPacket);
if (clientPacket) {
compound.putFloat("Angle", angle);
}
}
@Override
protected void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket);
if (clientPacket) {
angle = compound.getFloat("Angle");
}
}
@Override
public void tick() {
super.tick();
direction = this.getBlockState().getValue(FACING);
if (!level.isClientSide)
return;
if(direction==Direction.NORTH)
hammerPos =this.getBlockPos().north(2).above();
if(direction==Direction.SOUTH)
hammerPos =this.getBlockPos().south(2).above();
if(direction==Direction.WEST)
hammerPos =this.getBlockPos().west(2).above();
if(direction==Direction.EAST)
hammerPos =this.getBlockPos().east(2).above();
if(!isValid()) {
angle = 177;
return;
}
if(level.getBlockEntity(this.getBlockPos().below())instanceof MachineInputBlockEntity) {
if(((MachineInputBlockEntity)level.getBlockEntity(this.getBlockPos().below())).powerLevel!=0) {
angle += 3;
}else angle=177;
}else
angle=177;
targetSpeed= 10;
angle%=360;
}
public boolean isValid(){
if(hammerPos==null)
return false;
if(!(level.getBlockEntity(hammerPos) instanceof PumpjackHammerHolderBlockEntity))
return false;
if(!(direction==level.getBlockEntity(hammerPos).getBlockState().getValue(FACING)))
return false;
return true;
}
/*
private void moveConnectionPos() {
connectionPos = new BlockPos(this.getBlockPos().getX()+0.5f,this.getBlockPos().getY()+0.25f,this.getBlockPos().getZ()+0.5f);
float y=0.8f;
float x=0.8f;
// connectionPos.
}
*/
}

View File

@@ -0,0 +1,112 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.api.instance.DynamicInstance;
import com.jozufozu.flywheel.core.materials.model.ModelData;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance;
import com.simibubi.create.foundation.utility.AngleHelper;
import net.minecraft.core.Direction;
public class PumpjackCrankInstance extends KineticBlockEntityInstance<PumpjackCrankBlockEntity> implements DynamicInstance {
protected final ModelData hammer;
protected float lastAngle = Float.NaN;
static float originOffset = 1 / 16f;
public PumpjackCrankInstance(MaterialManager modelManager, PumpjackCrankBlockEntity tile) {
super(modelManager, tile);
hammer = getTransformMaterial().getModel(blockState)
.createInstance();
animate(tile.angle);
}
@Override
public void beginFrame() {
float angle = blockEntity.angle;
animate(angle);
lastAngle = angle;
}
private void animate(float angle) {
PoseStack ms = new PoseStack();
TransformStack msr = TransformStack.cast(ms);
msr.translate(getInstancePosition());
// msr.centre()
// .rotateCentered(Direction.EAST, AngleHelper.rad(angle))
// .unCentre();
if(blockEntity.direction==Direction.EAST) {
msr.translateY(-0.5);
msr
.centre()
.translate(0, .25, 0)
.rotate(Direction.SOUTH, AngleHelper.rad(angle))
.translateBack(0, -.25, 0)
.unCentre();
}
if(blockEntity.direction==Direction.WEST) {
msr.translateY(-0.5);
msr
.centre()
.translate(0, .25, 0)
.rotate(Direction.NORTH, AngleHelper.rad(angle))
.translateBack(0, -.25, 0)
.unCentre();
}
if(blockEntity.direction==Direction.NORTH) {
msr.translateY(-0.5);
msr
.centre()
.translate(0, .25, 0)
.rotate(Direction.EAST, AngleHelper.rad(angle))
.translateBack(0, -.25, 0)
.unCentre();
}
if(blockEntity.direction==Direction.SOUTH) {
msr.translateY(-0.5);
msr
.centre()
.translate(0, .25, 0)
.rotate(Direction.WEST, AngleHelper.rad(angle))
.translateBack(0, -.25, 0)
.unCentre();
}
hammer.setTransform(ms);
}
@Override
public void updateLight() {
relight(pos, hammer);
}
@Override
public void remove() {
hammer.delete();
}
}

View File

@@ -0,0 +1,178 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank;
import com.drmangotea.tfmg.registry.TFMGPartialModels;
import com.jozufozu.flywheel.backend.Backend;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
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 PumpjackCrankRenderer extends KineticBlockEntityRenderer {
public PumpjackCrankRenderer(BlockEntityRendererProvider.Context context) {
super(context);
}
@Override
protected void renderSafe(KineticBlockEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
int light, int overlay) {
renderBlock((PumpjackCrankBlockEntity) te, ms, light,buffer);
if (Backend.canUseInstancing(te.getLevel()))
return;
BlockState blockState = te.getBlockState();
PumpjackCrankBlockEntity wte = (PumpjackCrankBlockEntity) te;
float angle = wte.angle * partialTicks;
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
renderCrank(te, ms, light, blockState, angle, vb);
}
private void renderCrank(KineticBlockEntity te, PoseStack ms, int light, BlockState blockState, float angle,
VertexConsumer vb) {
/**
* check
*/
SuperByteBuffer hammer = CachedBufferer.block(blockState);
//kineticRotationTransform(hammer, te, getRotationAxisOf(te), AngleHelper.rad(angle), light);
hammer.renderInto(ms, vb);
}
private void renderBlock(PumpjackCrankBlockEntity te, PoseStack ms, int light,
MultiBufferSource buffer) {
BlockState blockState = te.getBlockState();
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
ms.pushPose();
TransformStack msr = TransformStack.cast(ms);
msr.translate(1 / 2f, 0.5, 1 / 2f);
float dialPivot = 5.75f / 16;
if (te.direction == Direction.NORTH){
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CRANK_BLOCK, blockState)
// .rotateY(d.toYRot())
.unCentre()
.light(light)
.renderInto(ms, vb);
if(te.isValid()) {
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CONNECTOR, blockState)
.translate(-0.5, -0.75, -0.5)
.centre()
.rotate(Direction.WEST, -AngleHelper.rad(te.angle))
.unCentre()
.translateY(0.4)
.centre()
.rotate(Direction.WEST, AngleHelper.rad(te.angle))
.unCentre()
.light(light)
.translateY(0.4)
.renderInto(ms, vb);
}
}
if(te.direction == Direction.EAST) {
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CRANK_BLOCK, blockState)
.rotateY(270)
.unCentre()
.light(light)
.renderInto(ms, vb);
if(te.isValid()) {
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CONNECTOR, blockState)
.rotateY(270)
.translate(-0.5, -0.75, -0.5)
.centre()
.rotate(Direction.WEST, -AngleHelper.rad(te.angle))
.unCentre()
.translateY(0.4)
.centre()
.rotate(Direction.WEST, AngleHelper.rad(te.angle))
.unCentre()
.light(light)
.translateY(0.4)
.renderInto(ms, vb);
}
}
if(te.direction == Direction.SOUTH) {
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CRANK_BLOCK, blockState)
.rotateY(180)
.unCentre()
.light(light)
.renderInto(ms, vb);
if(te.isValid()) {
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CONNECTOR, blockState)
.rotateY(180)
.translate(-0.5, -0.75, -0.5)
.centre()
.rotate(Direction.WEST, -AngleHelper.rad(te.angle))
.unCentre()
.translateY(0.4)
.centre()
.rotate(Direction.WEST, AngleHelper.rad(te.angle))
.unCentre()
.light(light)
.translateY(0.4)
.renderInto(ms, vb);
}
}
if(te.direction == Direction.WEST) {
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CRANK_BLOCK, blockState)
.rotateY(90)
.unCentre()
.light(light)
.renderInto(ms, vb);
if(te.isValid()) {
CachedBufferer.partial(TFMGPartialModels.PUMPJACK_CONNECTOR, blockState)
.rotateY(90)
.translate(-0.5, -0.75, -0.5)
.centre()
.rotate(Direction.WEST, -AngleHelper.rad(te.angle))
.unCentre()
.translateY(0.4)
.centre()
.rotate(Direction.WEST, AngleHelper.rad(te.angle))
.unCentre()
.light(light)
.translateY(0.4)
.renderInto(ms, vb);
}
}
ms.popPose();
}
@Override
protected BlockState getRenderedBlockState(KineticBlockEntity te) {
return shaft(getRotationAxisOf(te));
}
}

View File

@@ -0,0 +1,45 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder;
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
import com.simibubi.create.foundation.block.IBE;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
import net.minecraft.world.level.block.RenderShape;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.state.StateDefinition;
public class PumpjackHammerHolderBlock extends HorizontalDirectionalBlock implements IBE<PumpjackHammerHolderBlockEntity> {
public PumpjackHammerHolderBlock(Properties properties) {
super(properties);
}
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> p_54794_) {
p_54794_.add(FACING);
}
public BlockState getStateForPlacement(BlockPlaceContext p_54779_) {
return this.defaultBlockState().setValue(FACING, p_54779_.getHorizontalDirection());
}
@Override
public RenderShape getRenderShape(BlockState pState) {
return RenderShape.ENTITYBLOCK_ANIMATED;
}
@Override
public Class<PumpjackHammerHolderBlockEntity> getBlockEntityClass() {
return PumpjackHammerHolderBlockEntity.class;
}
@Override
public BlockEntityType<? extends PumpjackHammerHolderBlockEntity> getBlockEntityType() {
return TFMGBlockEntities.PUMPJACK_HAMMER_HOLDER.get();
}
}

View File

@@ -0,0 +1,156 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank.PumpjackCrankBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input.MachineInputBlockEntity;
import com.simibubi.create.content.equipment.goggles.IHaveGoggleInformation;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
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.core.Direction;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import java.util.List;
public class PumpjackHammerHolderBlockEntity extends KineticBlockEntity implements IHaveGoggleInformation {
float targetSpeed;
LerpedFloat visualSpeed = LerpedFloat.linear();
LerpedFloat angle = LerpedFloat.angular();
float debugMogus = 0.4f;
float speedModifier=0;
public BlockPos crankPos;
public PumpjackCrankBlockEntity crank;
public float crankAngle;
public Direction direction = this.getBlockState().getValue(HorizontalDirectionalBlock.FACING);;
public Direction direction2 = this.getBlockState().getValue(HorizontalDirectionalBlock.FACING).getCounterClockWise();;
public PumpjackHammerHolderBlockEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
super(type, pos, state);
angle.setValue(14);
}
@Override
public void addBehaviours(List<BlockEntityBehaviour> behaviours) {
}
public boolean hasCrank(){
BlockPos theoreticalPos;
if(direction == Direction.NORTH){
theoreticalPos = this.getBlockPos().south(2).below();
if(level.getBlockEntity(theoreticalPos) instanceof PumpjackCrankBlockEntity){
crankPos = theoreticalPos;
crank = (PumpjackCrankBlockEntity) level.getBlockEntity(crankPos);
return true;
}
}
if(direction == Direction.SOUTH){
theoreticalPos = this.getBlockPos().north(2).below();
if(level.getBlockEntity(theoreticalPos) instanceof PumpjackCrankBlockEntity){
crankPos = theoreticalPos;
crank = (PumpjackCrankBlockEntity) level.getBlockEntity(crankPos);
return true;
}
}
if(direction == Direction.WEST){
theoreticalPos = this.getBlockPos().east(2).below();
if(level.getBlockEntity(theoreticalPos) instanceof PumpjackCrankBlockEntity){
crankPos = theoreticalPos;
crank = (PumpjackCrankBlockEntity) level.getBlockEntity(crankPos);
return true;
}
}
if(direction == Direction.EAST){
theoreticalPos = this.getBlockPos().west(2).below();
if(level.getBlockEntity(theoreticalPos) instanceof PumpjackCrankBlockEntity) {
crankPos = theoreticalPos;
crank = (PumpjackCrankBlockEntity) level.getBlockEntity(crankPos);
return true;
}
}
return false;
}
@Override
public void tick() {
super.tick();
direction = this.getBlockState().getValue(HorizontalDirectionalBlock.FACING);
if (!level.isClientSide)
return;
if(!hasCrank()) {
angle.setValue(14);
return;
}
if(!(level.getBlockEntity(crankPos.below()) instanceof MachineInputBlockEntity)){
angle.setValue(14);
return;
}
if(((MachineInputBlockEntity) level.getBlockEntity(crankPos.below())).powerLevel==0) {
angle.setValue(14);
return;
}
if(!(crank.isValid())){
angle.setValue(14);
return;
}
angle.tickChaser();
if(angle.getValue()>0){
speedModifier=(angle.getValue()/25)*-1;
}else
speedModifier=angle.getValue()/25;
crankAngle=crank.angle;
//if(crankAngle==90||crankAngle==270) {
// angle.chase(13, 0.125f, Chaser.EXP);
//}
angle.updateChaseSpeed(.8f+speedModifier);
if(crankAngle==180){
angle.chase(-14, .8f+speedModifier, Chaser.LINEAR);
}
if(crankAngle==0) {
angle.chase(14, .8f+speedModifier, Chaser.LINEAR);
//angle.updateChaseSpeed(angle.getValue());
}
}
/*
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
if(hasCrank()){
Lang.translate("goggles.surface_scanner.no_rotation")
.style(ChatFormatting.GREEN)
.forGoggles(tooltip);
return true;
}
return false;
}
*/
@Override
public void write(CompoundTag compound, boolean clientPacket) {
super.write(compound, clientPacket);
if (clientPacket) {
compound.putFloat("Angle", angle.getValue());
}
}
@Override
protected void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket);
if (clientPacket) {
angle.setValue(compound.getFloat("Angle"));
}
}
}

View File

@@ -0,0 +1,85 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder;
import com.drmangotea.tfmg.registry.TFMGPartialModels;
import com.jozufozu.flywheel.api.MaterialManager;
import com.jozufozu.flywheel.api.instance.DynamicInstance;
import com.jozufozu.flywheel.core.materials.model.ModelData;
import com.jozufozu.flywheel.util.transform.TransformStack;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityInstance;
import com.simibubi.create.foundation.utility.AngleHelper;
import com.simibubi.create.foundation.utility.AnimationTickHolder;
public class PumpjackHammerHolderInstance extends KineticBlockEntityInstance<PumpjackHammerHolderBlockEntity> implements DynamicInstance {
protected final ModelData hammer;
protected final ModelData holder;
protected float lastAngle = Float.NaN;
public PumpjackHammerHolderInstance(MaterialManager modelManager, PumpjackHammerHolderBlockEntity tile) {
super(modelManager, tile);
hammer = getTransformMaterial()
.getModel(TFMGPartialModels.PUMPJACK_HAMMER,blockState,tile.direction)
.createInstance();
holder = getTransformMaterial()
.getModel(blockState)
.createInstance();
}
@Override
public void beginFrame() {
float partialTicks = AnimationTickHolder.getPartialTicks();
float speed = blockEntity.visualSpeed.getValue(partialTicks) * 3 / 10f;
float angle = blockEntity.angle.getValue() + speed * partialTicks;
if (Math.abs(angle - lastAngle) < 0.001)
return;
animate(angle);
lastAngle = angle;
}
private void animate(float angle) {
PoseStack ms = new PoseStack();
TransformStack msr = TransformStack.cast(ms);
msr.translate(getInstancePosition());
msr.centre()
.rotate(blockEntity.direction.getClockWise(), AngleHelper.rad(angle))
.unCentre();
PoseStack ms2 = new PoseStack();
TransformStack msr2 = TransformStack.cast(ms2);
msr2.translate(getInstancePosition());
//msr.centre()
// .rotate(blockEntity.direction.getClockWise(), AngleHelper.rad(angle))
// .unCentre();
hammer.setTransform(ms);
holder.setTransform(ms2);
}
@Override
public void updateLight() {
relight(pos, hammer,holder);
}
@Override
public void remove() {
hammer.delete();
holder.delete();
}
}

View File

@@ -0,0 +1,66 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder;
import com.drmangotea.tfmg.registry.TFMGPartialModels;
import com.jozufozu.flywheel.backend.Backend;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedBufferer;
import com.simibubi.create.foundation.render.SuperByteBuffer;
import net.minecraft.client.renderer.LevelRenderer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.world.level.block.state.BlockState;
public class PumpjackHammerHolderRenderer extends KineticBlockEntityRenderer<PumpjackHammerHolderBlockEntity> {
protected float lastAngle = Float.NaN;
public PumpjackHammerHolderRenderer(BlockEntityRendererProvider.Context context) {
super(context);
}
@Override
protected void renderSafe(PumpjackHammerHolderBlockEntity be, float partialTicks, PoseStack ms, MultiBufferSource buffer,
int light, int overlay) {
// super.renderSafe(te, partialTicks, ms, buffer, light, overlay);
if (Backend.canUseInstancing(be.getLevel()))
return;
BlockState blockState = be.getBlockState();
PumpjackHammerHolderBlockEntity wte = (PumpjackHammerHolderBlockEntity) be;
float speed = be.visualSpeed.getValue(partialTicks) * 3 / 10f;
float angle = be.angle.getValue() + speed * partialTicks;
if (Math.abs(angle - lastAngle) < 0.001)
return;
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
renderHammer(be, ms, light, blockState, angle, vb);
lastAngle = angle;
}
private void renderHammer(PumpjackHammerHolderBlockEntity be, PoseStack ms, int light, BlockState blockState, float angle,
VertexConsumer vb) {
SuperByteBuffer hammer =
CachedBufferer.partialFacing(TFMGPartialModels.PUMPJACK_HAMMER, be.getBlockState(), be.direction);
int lightInFront = LevelRenderer.getLightColor(be.getLevel(), be.getBlockPos().relative(be.direction));
kineticRotationTransform(hammer, be, be.direction2.getAxis(), angle, lightInFront).renderInto(ms, vb);
}
}

View File

@@ -0,0 +1,47 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input;
import com.drmangotea.tfmg.registry.TFMGBlockEntities;
import com.simibubi.create.content.kinetics.base.DirectionalKineticBlock;
import com.simibubi.create.foundation.block.IBE;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
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;
public class MachineInputBlock extends DirectionalKineticBlock implements IBE<MachineInputBlockEntity> {
public MachineInputBlock(Properties properties) {
super(properties);
}
@Override
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
return face == state.getValue(FACING);
}
@Override
public Direction.Axis getRotationAxis(BlockState state) {
return state.getValue(FACING).getAxis();
}
@Override
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
return false;
}
@Override
public Class<MachineInputBlockEntity> getBlockEntityClass() {
return MachineInputBlockEntity.class;
}
@Override
public BlockEntityType<? extends MachineInputBlockEntity> getBlockEntityType() {
return TFMGBlockEntities.MACHINE_INPUT.get();
}
}

View File

@@ -0,0 +1,79 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input;
import com.simibubi.create.content.kinetics.base.KineticBlockEntity;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.ChatFormatting;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockState;
import java.util.List;
public class MachineInputBlockEntity extends KineticBlockEntity {
public int powerLevel=0;
public MachineInputBlockEntity(BlockEntityType<?> typeIn, BlockPos pos, BlockState state) {
super(typeIn, pos, state);
}
@Override
public void tick(){
super.tick();
if(stress<80)
powerLevel=0;
if(stress>=80)
powerLevel=1;
if(stress>=160)
powerLevel=2;
if(stress>=320)
powerLevel=3;
if(stress>=512)
powerLevel=4;
}
public int getPowerLevel(){
return powerLevel;
}
@Override
protected void write(CompoundTag compound, boolean clientPacket) {
compound.putInt("PowerLevel", powerLevel);
super.write(compound, clientPacket);
}
@Override
protected void read(CompoundTag compound, boolean clientPacket) {
super.read(compound, clientPacket);
powerLevel = compound.getInt("PowerLevel");
}
@Override
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
Lang.translate("goggles.machine_input.info")
.forGoggles(tooltip);
/*
if(powerLevel==0){
Lang.translate("goggles.machine_input.no_rot")
.style(ChatFormatting.DARK_RED)
.forGoggles(tooltip);
return true;
}
*/
Lang.translate("goggles.machine_input.power_level")
.style(ChatFormatting.AQUA)
.add(Lang.translate("goggles.number", this.getPowerLevel()))
.forGoggles(tooltip,1);
return true;
}
}

View File

@@ -0,0 +1,25 @@
package com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input;
import com.simibubi.create.AllPartialModels;
import com.simibubi.create.content.kinetics.base.KineticBlockEntityRenderer;
import com.simibubi.create.foundation.render.CachedBufferer;
import com.simibubi.create.foundation.render.SuperByteBuffer;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.world.level.block.state.BlockState;
public class MachineInputRenderer extends KineticBlockEntityRenderer<MachineInputBlockEntity> {
public MachineInputRenderer(BlockEntityRendererProvider.Context context) {
super(context);
}
@Override
protected SuperByteBuffer getRotatedModel(MachineInputBlockEntity be, BlockState state) {
return CachedBufferer.partialFacing(AllPartialModels.SHAFT_HALF, state, state
.getValue(MachineInputBlock.FACING)
.getOpposite());
}
}

View File

@@ -4,6 +4,8 @@ package com.drmangotea.tfmg.recipes.jei;
import com.drmangotea.tfmg.recipes.distillation.AdvancedDistillationRecipe;
import com.drmangotea.tfmg.recipes.jei.machines.Distillery;
import com.drmangotea.tfmg.registry.TFMGGuiTextures;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.compat.jei.category.CreateRecipeCategory;
import com.simibubi.create.foundation.fluid.FluidIngredient;
@@ -13,14 +15,13 @@ import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
import mezz.jei.api.recipe.IFocusGroup;
import mezz.jei.api.recipe.RecipeIngredientRole;
import net.minecraft.world.item.ItemStack;
import javax.annotation.ParametersAreNonnullByDefault;
@ParametersAreNonnullByDefault
public class AdvancedDistillationCategory extends CreateRecipeCategory<AdvancedDistillationRecipe> {
private final AnimatedDistiller distiller = new AnimatedDistiller();
public AdvancedDistillationCategory(Info<AdvancedDistillationRecipe> info) {
super(info);
@@ -33,46 +34,54 @@ public class AdvancedDistillationCategory extends CreateRecipeCategory<AdvancedD
public void setRecipe(IRecipeLayoutBuilder builder, AdvancedDistillationRecipe recipe, IFocusGroup focuses) {
FluidIngredient fluidIngredient=recipe.getInputFluid();
int outputCount = recipe.getOutputCount(recipe);
int yModifier = 60 -(outputCount*10);
int y = 147-yModifier;
builder
.addSlot(RecipeIngredientRole.INPUT, 2, 75)
.addSlot(RecipeIngredientRole.INPUT, 18, 130-yModifier)
.setBackground(getRenderedSlot(), -1, -1)
.addIngredients(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getInputFluid().getMatchingFluidStacks()))
.addTooltipCallback(addFluidTooltip(recipe.getInputFluid().getRequiredAmount()));
builder
.addSlot(RecipeIngredientRole.OUTPUT,150, 55)
.setBackground(getRenderedSlot(), -1, -1)
.addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getFirstFluidResult()))
.addTooltipCallback(addFluidTooltip(recipe.getFirstFluidResult().getAmount()));
builder
.addSlot(RecipeIngredientRole.OUTPUT,150, 33)
.setBackground(getRenderedSlot(), -1, -1)
.addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getSecondFluidResult()))
.addTooltipCallback(addFluidTooltip(recipe.getSecondFluidResult().getAmount()));
builder
.addSlot(RecipeIngredientRole.OUTPUT,150, 12)
.setBackground(getRenderedSlot(), -1, -1)
.addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getThirdFluidResult()))
.addTooltipCallback(addFluidTooltip(recipe.getThirdFluidResult().getAmount()));
for(int i = 0; i<outputCount;i++) {
y -= 24;
builder
.addSlot(RecipeIngredientRole.OUTPUT, 105, y)
.setBackground(getRenderedSlot(), -1, -1)
.addIngredient(ForgeTypes.FLUID_STACK, withImprovedVisibility(recipe.getFluidResults().get(i)))
.addTooltipCallback(addFluidTooltip(recipe.getFirstFluidResult().getAmount()));
}
}
@Override
public void draw(AdvancedDistillationRecipe recipe, IRecipeSlotsView iRecipeSlotsView, PoseStack matrixStack, double mouseX, double mouseY) {
distiller
.draw(matrixStack, 65, 27);
AllGuiTextures.JEI_ARROW.render(matrixStack, 20, 80);
AllGuiTextures.JEI_ARROW.render(matrixStack, 100, 14);
AllGuiTextures.JEI_ARROW.render(matrixStack, 100, 35);
AllGuiTextures.JEI_ARROW.render(matrixStack, 100, 57);
AllGuiTextures.JEI_DOWN_ARROW.render(matrixStack, 100, 79);
int outputCount = recipe.getOutputCount(recipe);
int yModifier = 60 -(outputCount*10);
int y = 126-yModifier;
TFMGGuiTextures.DISTILLATION_TOWER_BOTTOM.render(matrixStack,10,y);
// TFMGGuiTextures.DISTILLATION_TOWER_FIRE.render(matrixStack,10,y+24);
AllGuiTextures.JEI_ARROW.render(matrixStack, 56, y);
for(int i = 0; i<(outputCount-1);i++){
y -= 24;
TFMGGuiTextures.DISTILLATION_TOWER_MIDDLE.render(matrixStack,10,y);
AllGuiTextures.JEI_ARROW.render(matrixStack, 56, y);
}
y -= 12;
TFMGGuiTextures.DISTILLATION_TOWER_TOP.render(matrixStack,10,y);
}
}

View File

@@ -3,6 +3,7 @@ package com.drmangotea.tfmg.recipes.jei;
import com.drmangotea.tfmg.recipes.distillation.DistillationRecipe;
import com.drmangotea.tfmg.recipes.jei.machines.Distillery;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.compat.jei.category.CreateRecipeCategory;
import com.simibubi.create.foundation.fluid.FluidIngredient;
@@ -19,7 +20,7 @@ import javax.annotation.ParametersAreNonnullByDefault;
@ParametersAreNonnullByDefault
public class DistillationCategory extends CreateRecipeCategory<DistillationRecipe> {
private final AnimatedDistiller distiller = new AnimatedDistiller();
private final Distillery distiller = new Distillery();
public DistillationCategory(Info<DistillationRecipe> info) {
super(info);

View File

@@ -66,9 +66,10 @@ public class TFMGJei implements IModPlugin {
advancedDistillation = builder(AdvancedDistillationRecipe.class)
.addTypedRecipes(TFMGRecipeTypes.ADVANCED_DISTILLATION)
.catalyst(TFMGBlocks.CAST_IRON_DISTILLATION_CONTROLLER::get)
.itemIcon(TFMGFluids.KEROSENE.getBucket().get())
.emptyBackground(177, 123)
.catalyst(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER::get)
.catalyst(TFMGBlocks.STEEL_DISTILLATION_OUTPUT::get)
.itemIcon(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER.get())
.emptyBackground(177, 150)
.build("advanced_distillation", AdvancedDistillationCategory::new)

View File

@@ -1,4 +1,4 @@
package com.drmangotea.tfmg.recipes.jei;
package com.drmangotea.tfmg.recipes.jei.machines;
import com.drmangotea.tfmg.registry.TFMGBlocks;
@@ -21,11 +21,11 @@ import net.minecraft.client.renderer.RenderType;
import net.minecraft.util.Mth;
import net.minecraft.world.level.block.Blocks;
public class AnimatedDistiller extends AnimatedKinetics {
public class Distillery extends AnimatedKinetics {
public AnimatedDistiller() {
public Distillery() {
}

View File

@@ -11,6 +11,16 @@ import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distilla
import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillation_tower.DistillationOutputBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillery.DistilleryControllerBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillery.DistilleryOutputBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.base.PumpjackBaseRenderer;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.base.PumpjackBaseBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank.PumpjackCrankInstance;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank.PumpjackCrankRenderer;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank.PumpjackCrankBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderInstance;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderRenderer;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderBlockEntity;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input.MachineInputRenderer;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input.MachineInputBlockEntity;
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;
@@ -23,6 +33,7 @@ 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.HalfShaftInstance;
import com.simibubi.create.content.kinetics.base.HorizontalHalfShaftInstance;
import com.simibubi.create.foundation.blockEntity.renderer.SmartBlockEntityRenderer;
import com.tterrag.registrate.util.entry.BlockEntityEntry;
@@ -124,6 +135,33 @@ public class TFMGBlockEntities {
.validBlocks(TFMGBlocks.STEEL_DISTILLATION_CONTROLLER)
.register();
public static final BlockEntityEntry<PumpjackHammerHolderBlockEntity> PUMPJACK_HAMMER_HOLDER = REGISTRATE
.blockEntity("pumpjack_hammer_holder", PumpjackHammerHolderBlockEntity::new)
.instance(() -> PumpjackHammerHolderInstance::new, false)
.validBlocks(TFMGBlocks.PUMPJACK_HAMMER_HOLDER)
.renderer(() -> PumpjackHammerHolderRenderer::new)
.register();
public static final BlockEntityEntry<PumpjackCrankBlockEntity> PUMPJACK_CRANK = REGISTRATE
.blockEntity("pumpjack_crank", PumpjackCrankBlockEntity::new)
.instance(() -> PumpjackCrankInstance::new, true)
.validBlocks(TFMGBlocks.PUMPJACK_CRANK)
.renderer(() -> PumpjackCrankRenderer::new)
.register();
public static final BlockEntityEntry<MachineInputBlockEntity> MACHINE_INPUT = REGISTRATE
.blockEntity("machine_input", MachineInputBlockEntity::new)
.instance(() -> HalfShaftInstance::new,true)
.validBlocks(TFMGBlocks.MACHINE_INPUT)
.renderer(() -> MachineInputRenderer::new)
.register();
public static final BlockEntityEntry<PumpjackBaseBlockEntity> PUMPJACK_BASE = REGISTRATE
.blockEntity("pumpjack_base", PumpjackBaseBlockEntity::new)
.validBlocks(TFMGBlocks.PUMPJACK_BASE)
.renderer(() -> PumpjackBaseRenderer::new)
.register();
public static void register() {}
}

View File

@@ -2,6 +2,7 @@ package com.drmangotea.tfmg.registry;
import com.drmangotea.tfmg.base.TFMGBuilderTransformers;
import com.drmangotea.tfmg.base.TFMGSpriteShifts;
import com.drmangotea.tfmg.base.TFMGVanillaBlockStates;
import com.drmangotea.tfmg.content.concrete.formwork.FormWorkBlock;
import com.drmangotea.tfmg.content.concrete.formwork.FormWorkGenerator;
import com.drmangotea.tfmg.content.decoration.doors.TFMGSlidingDoorBlock;
@@ -14,6 +15,10 @@ import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distilla
import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillation_tower.DistillationOutputBlock;
import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillery.DistilleryControllerBlock;
import com.drmangotea.tfmg.content.machines.oil_processing.distillation.distillery.DistilleryOutputBlock;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.base.PumpjackBaseBlock;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.crank.PumpjackCrankBlock;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.hammer_holder.PumpjackHammerHolderBlock;
import com.drmangotea.tfmg.content.machines.oil_processing.pumpjack.machine_input.MachineInputBlock;
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;
@@ -43,6 +48,7 @@ import net.minecraft.tags.BlockTags;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.block.WallBlock;
import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraft.world.level.material.Material;
@@ -272,10 +278,92 @@ public static final BlockEntry<DistillationOutputBlock> STEEL_DISTILLATION_OUTPU
.item()
.build()
.register();
public static final BlockEntry<Block> INDUSTRIAL_PIPE = REGISTRATE.block("industrial_pipe", Block::new)
.initialProperties(() -> Blocks.IRON_BLOCK)
.properties(p -> p.color(MaterialColor.COLOR_LIGHT_GRAY))
.properties(p -> p.requiresCorrectToolForDrops())
.transform(pickaxeOnly())
.item()
.build()
.lang("Industrial Pipe")
.register();
////////////////
//Pumpjack
public static final BlockEntry<MachineInputBlock> MACHINE_INPUT =
REGISTRATE.block("machine_input", MachineInputBlock::new)
.properties(p -> p.color(MaterialColor.COLOR_GRAY))
.properties(BlockBehaviour.Properties::noOcclusion)
.properties(p -> p
.strength(4.5F))
.transform(axeOrPickaxe())
.transform(BlockStressDefaults.setImpact(4.0))
.item()
.build()
.register();
public static final BlockEntry<PumpjackCrankBlock> PUMPJACK_CRANK =
REGISTRATE.block("pumpjack_crank", PumpjackCrankBlock::new)
.properties(p -> p.color(MaterialColor.COLOR_GRAY))
.properties(p -> p
.strength(4.5F))
.properties(BlockBehaviour.Properties::noOcclusion)
.transform(axeOrPickaxe())
.item()
.build()
.register();
public static final BlockEntry<PumpjackBaseBlock> PUMPJACK_BASE =
REGISTRATE.block("pumpjack_base", PumpjackBaseBlock::new)
.initialProperties(SharedProperties::copperMetal)
.properties(BlockBehaviour.Properties::noOcclusion)
.item()
.build()
.register();
public static final BlockEntry<PumpjackHammerHolderBlock> PUMPJACK_HAMMER_HOLDER =
REGISTRATE.block("pumpjack_hammer_holder", PumpjackHammerHolderBlock::new)
.initialProperties(SharedProperties::copperMetal)
.properties(BlockBehaviour.Properties::noOcclusion)
.item()
.build()
.register();
//////
//Blast Furnace
public static final BlockEntry<Block> FIREPROOF_BRICKS = REGISTRATE.block("fireproof_bricks", Block::new)
.initialProperties(() -> Blocks.BRICKS)
.properties(p -> p.color(MaterialColor.COLOR_RED))
.properties(p -> p.requiresCorrectToolForDrops())
.transform(pickaxeOnly())
.item()
.build()
.lang("Fireproof Bricks")
.register();
public static final BlockEntry<WallBlock> FIREPROOF_BRICK_REINFORCEMENT = REGISTRATE.block("fireproof_brick_reinforcement", WallBlock::new)
.initialProperties(() -> Blocks.BRICKS)
.properties(p -> p.color(MaterialColor.COLOR_RED))
.properties(p -> p.requiresCorrectToolForDrops())
.transform(pickaxeOnly())
.tag(BlockTags.WALLS)
.blockstate((c, p) -> TFMGVanillaBlockStates.generateWallBlockState(c, p, "fireproof_brick_reinforcement"))
.item()
.build()
.lang("Fireproof Brick Reinforcement")
.register();
public static final BlockEntry<Block> BLAST_FURNACE_OUTPUT = REGISTRATE.block("blast_furnace_output", Block::new)
.initialProperties(() -> Blocks.BRICKS)
.properties(p -> p.color(MaterialColor.COLOR_RED))
.properties(p -> p.requiresCorrectToolForDrops())
.transform(pickaxeOnly())
.item()
.build()
.lang("Blast Furnace Output")
.register();
//////////

View File

@@ -0,0 +1,71 @@
package com.drmangotea.tfmg.registry;
import com.drmangotea.tfmg.CreateTFMG;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.PoseStack;
import com.simibubi.create.foundation.gui.UIRenderHelper;
import com.simibubi.create.foundation.gui.element.ScreenElement;
import com.simibubi.create.foundation.utility.Color;
import net.minecraft.client.gui.GuiComponent;
import net.minecraft.resources.ResourceLocation;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
public enum TFMGGuiTextures implements ScreenElement {
// JEI
DISTILLATION_TOWER_TOP("distillation_tower", 0, 0, 44, 12),
DISTILLATION_TOWER_MIDDLE("distillation_tower", 0, 12, 44, 24),
DISTILLATION_TOWER_BOTTOM("distillation_tower", 0, 36, 44, 24),
DISTILLATION_TOWER_FIRE("distillation_tower", 0, 60, 44, 12),
;
public final ResourceLocation location;
public int width, height;
public int startX, startY;
private TFMGGuiTextures(String location, int startX, int startY, int width, int height) {
this(CreateTFMG.MOD_ID, location, startX, startY, width, height);
}
private TFMGGuiTextures(String namespace, String location, int startX, int startY, int width, int height) {
this.location = new ResourceLocation(namespace, "textures/gui/" + location + ".png");
this.width = width;
this.height = height;
this.startX = startX;
this.startY = startY;
}
@OnlyIn(Dist.CLIENT)
public void bind() {
RenderSystem.setShaderTexture(0, location);
}
@OnlyIn(Dist.CLIENT)
@Override
public void render(PoseStack ms, int x, int y) {
bind();
GuiComponent.blit(ms, x, y, 0, startX, startY, width, height, 256, 256);
}
@OnlyIn(Dist.CLIENT)
public void render(PoseStack ms, int x, int y, GuiComponent component) {
bind();
component.blit(ms, x, y, startX, startY, width, height);
}
@OnlyIn(Dist.CLIENT)
public void render(PoseStack ms, int x, int y, Color c) {
bind();
UIRenderHelper.drawColoredTexture(ms, c, x, y, startX, startY, width, height);
}
}

View File

@@ -18,6 +18,10 @@ import java.util.Map;
public class TFMGPartialModels {
public static final PartialModel
PUMPJACK_HAMMER = block("pumpjack/hammer_holder"),
PUMPJACK_FRONT_ROPE = block("pumpjack/pumpjack_front_rope"),
PUMPJACK_CONNECTOR = block("pumpjack/pumpjack_connector"),
PUMPJACK_CRANK_BLOCK = block("pumpjack/pumpjack_crank_block"),
TOWER_GAUGE = block("distillation_tower/gauge"),
STEEL_FLUID_PIPE_CASING = block("steel_pipe/casing"),
SURFACE_SCANNER_DIAL = block("surface_scanner/dial"),

View File

@@ -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], "tex ture": "#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"}
}
}
]
}

View File

@@ -0,0 +1,8 @@
{
"parent": "block/block",
"ambientocclusion": false,
"textures": {
"0": "tfmg:block/pumpjack_hammer",
"particle": "tfmg:block/steel_block"
}
}

View File

@@ -0,0 +1,6 @@
{
"parent": "tfmg:block/pumpjack/hammer",
"loader": "forge:obj",
"flip-v": true,
"model": "tfmg:models/block/pumpjack/pumpjack_hammer.obj"
}

View File

@@ -0,0 +1,34 @@
{
"credit": "Made with Blockbench",
"parent": "minecraft:block/block",
"textures": {
"0": "tfmg:block/pumpjack_base",
"particle": "tfmg:block/pumpjack_base"
},
"elements": [
{
"from": [3, 0, 3],
"to": [13, 14, 13],
"faces": {
"north": {"uv": [0, 2, 5, 9], "texture": "#0"},
"east": {"uv": [0, 2, 5, 9], "texture": "#0"},
"south": {"uv": [0, 2, 5, 9], "texture": "#0"},
"west": {"uv": [0, 2, 5, 9], "texture": "#0"},
"up": {"uv": [10.5, 0, 14, 4], "texture": "#0"},
"down": {"uv": [0, 11, 5, 16], "texture": "#0"}
}
},
{
"from": [2, 14, 2],
"to": [14, 16, 14],
"faces": {
"north": {"uv": [10, 0, 16, 1], "texture": "#0"},
"east": {"uv": [10, 0, 16, 1], "texture": "#0"},
"south": {"uv": [10, 0, 16, 1], "texture": "#0"},
"west": {"uv": [10, 0, 16, 1], "texture": "#0"},
"up": {"uv": [10, 0, 16, 6], "texture": "#0"},
"down": {"uv": [10, 0, 16, 6], "texture": "#0"}
}
}
]
}

View File

@@ -0,0 +1,58 @@
{
"credit": "Made with Blockbench",
"textures": {
"0": "tfmg:block/fossilstone",
"1": "tfmg:block/steel_fluid_tank_connected",
"particle": "tfmg:block/fossilstone"
},
"elements": [
{
"from": [-3.01, 0, 7],
"to": [-3.01, 14, 9],
"faces": {
"north": {"uv": [0, 0, 0, 16], "texture": "#0"},
"east": {"uv": [4, 0, 5, 16], "texture": "#0"},
"south": {"uv": [11, 0, 11, 16], "texture": "#0"},
"west": {"uv": [6, 0, 7, 16], "texture": "#0"},
"up": {"uv": [0, 0, 0, 1], "texture": "#0"},
"down": {"uv": [0, 0, 0, 1], "texture": "#0"}
}
},
{
"from": [19.01, 0, 7],
"to": [19.01, 14, 9],
"faces": {
"north": {"uv": [0, 0, 0, 16], "texture": "#0"},
"east": {"uv": [4, 0, 5, 16], "texture": "#0"},
"south": {"uv": [11, 0, 11, 16], "texture": "#0"},
"west": {"uv": [6, 0, 7, 16], "texture": "#0"},
"up": {"uv": [0, 0, 0, 1], "texture": "#0"},
"down": {"uv": [0, 0, 0, 1], "texture": "#0"}
}
},
{
"from": [-3, 14, 7],
"to": [19, 15, 9],
"faces": {
"north": {"uv": [0, 7, 4, 7.25], "texture": "#1"},
"east": {"uv": [0, 0, 0.5, 0.25], "texture": "#1"},
"south": {"uv": [0, 0, 4, 0.25], "texture": "#1"},
"west": {"uv": [0, 0, 0.5, 0.25], "texture": "#1"},
"up": {"uv": [0, 11.75, 4, 12.25], "texture": "#1"},
"down": {"uv": [0, 7.5, 4, 8], "texture": "#1"}
}
},
{
"from": [7, 15, 7],
"to": [9, 17, 9],
"faces": {
"north": {"uv": [2.5, 4.25, 3, 4.75], "texture": "#1"},
"east": {"uv": [0, 0, 0.5, 0.5], "texture": "#1"},
"south": {"uv": [0, 0, 0.5, 0.5], "texture": "#1"},
"west": {"uv": [0, 0, 0.5, 0.5], "texture": "#1"},
"up": {"uv": [0, 11.75, 0.5, 12.25], "texture": "#1"},
"down": {"uv": [0, 7.5, 0.5, 8], "texture": "#1"}
}
}
]
}

View File

@@ -0,0 +1,152 @@
{
"credit": "Made with Blockbench",
"textures": {
"0": "tfmg:block/pumpjack_crank",
"particle": "tfmg:block/pumpjack_crank"
},
"elements": [
{
"from": [-2, 2, 6],
"to": [18, 6, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
"east": {"uv": [2.5, 12.5, 4.5, 14.5], "texture": "#0"},
"south": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
"west": {"uv": [2.5, 12.5, 4.5, 14.5], "texture": "#0"},
"up": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
"down": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"}
}
},
{
"from": [-3, 13, 2],
"to": [0, 14, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11.5, 4, 12], "texture": "#0"},
"east": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
"south": {"uv": [2.5, 11.5, 4, 12], "texture": "#0"},
"west": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
"up": {"uv": [0.5, 9, 6.5, 10.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 0, 3, 12], "texture": "#0"}
}
},
{
"from": [-2, 6, 6],
"to": [0, 9, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
"east": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
"south": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
"west": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
"up": {"uv": [0, 0, 2, 4], "texture": "#0"},
"down": {"uv": [0, 0, 2, 4], "texture": "#0"}
}
},
{
"from": [-2, 0, 6],
"to": [0, 2, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
"south": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
"up": {"uv": [0, 0, 2, 4], "texture": "#0"},
"down": {"uv": [2.5, 11.5, 4.5, 12.5], "rotation": 90, "texture": "#0"}
}
},
{
"from": [16, 14, 6],
"to": [18, 16, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
"south": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
"up": {"uv": [2.5, 11, 4.5, 12.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"}
}
},
{
"from": [16, 13, 2],
"to": [19, 14, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [3, 11.5, 4.5, 12], "texture": "#0"},
"east": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
"south": {"uv": [3, 11.5, 4.5, 12], "texture": "#0"},
"west": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
"up": {"uv": [0.5, 9, 6.5, 10.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 0, 3, 12], "rotation": 180, "texture": "#0"}
}
},
{
"from": [16, 9, 1],
"to": [19, 13, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
"east": {"uv": [0, 9, 7, 11], "texture": "#0"},
"south": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
"west": {"uv": [0, 9, 7, 11], "texture": "#0"},
"up": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"}
}
},
{
"from": [16, 6, 6],
"to": [18, 9, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
"east": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
"south": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
"west": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
"up": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"},
"down": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"}
}
},
{
"from": [16, 0, 6],
"to": [18, 2, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
"south": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
"up": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"},
"down": {"uv": [2.5, 11.5, 4.5, 12.5], "rotation": 90, "texture": "#0"}
}
},
{
"from": [-2, 14, 6],
"to": [0, 16, 10],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
"south": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
"up": {"uv": [2.5, 11, 4.5, 12.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 0, 2, 4], "texture": "#0"}
}
},
{
"from": [-3, 9, 1],
"to": [0, 13, 15],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
"east": {"uv": [0, 9, 7, 11], "texture": "#0"},
"south": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
"west": {"uv": [0, 9, 7, 11], "texture": "#0"},
"up": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"}
}
}
]
}

View File

@@ -0,0 +1,34 @@
{
"credit": "Made with Blockbench",
"textures": {
"0": "tfmg:block/pumpjack_crank",
"1": "tfmg:block/heavy_machinery_casing",
"particle": "tfmg:block/pumpjack_crank"
},
"elements": [
{
"from": [0, 0, 0],
"to": [16, 8, 16],
"faces": {
"north": {"uv": [0, 4, 8, 8], "texture": "#0"},
"east": {"uv": [0, 0, 8, 4], "texture": "#0"},
"south": {"uv": [0, 4, 8, 8], "texture": "#0"},
"west": {"uv": [0, 0, 8, 4], "texture": "#0"},
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
"down": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#1"}
}
},
{
"from": [7, 8.01, 1],
"to": [9, 8.01, 2],
"faces": {
"north": {"uv": [0, 0, 4, 0], "texture": "#missing"},
"east": {"uv": [0, 0, 2, 0], "texture": "#missing"},
"south": {"uv": [0, 0, 4, 0], "texture": "#0"},
"west": {"uv": [0, 0, 2, 0], "texture": "#missing"},
"up": {"uv": [9.5, 3, 10.5, 3.5], "texture": "#0"},
"down": {"uv": [0, 0, 4, 2], "texture": "#missing"}
}
}
]
}

View File

@@ -0,0 +1,166 @@
{
"credit": "Made with Blockbench",
"parent": "minecraft:block/block",
"textures": {
"0": "tfmg:block/pumpjack_crank",
"1": "tfmg:block/heavy_machinery_casing",
"particle": "tfmg:block/pumpjack_crank"
},
"elements": [
{
"from": [-2, 2, 6],
"to": [18, 6, 10],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
"east": {"uv": [2.5, 12.5, 4.5, 14.5], "texture": "#0"},
"south": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
"west": {"uv": [2.5, 12.5, 4.5, 14.5], "texture": "#0"},
"up": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"},
"down": {"uv": [8.5, 0, 10.5, 9], "rotation": 90, "texture": "#0"}
}
},
{
"from": [-3, 13, 2],
"to": [0, 14, 14],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11.5, 4, 12], "texture": "#0"},
"east": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
"south": {"uv": [2.5, 11.5, 4, 12], "texture": "#0"},
"west": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
"up": {"uv": [0.5, 9, 6.5, 10.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 0, 3, 12], "texture": "#0"}
}
},
{
"from": [-2, 6, 6],
"to": [0, 9, 10],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
"east": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
"south": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
"west": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
"up": {"uv": [0, 0, 2, 4], "texture": "#0"},
"down": {"uv": [0, 0, 2, 4], "texture": "#0"}
}
},
{
"from": [-2, 0, 6],
"to": [0, 2, 10],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
"south": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
"up": {"uv": [0, 0, 2, 4], "texture": "#0"},
"down": {"uv": [2.5, 11.5, 4.5, 12.5], "rotation": 90, "texture": "#0"}
}
},
{
"from": [16, 14, 6],
"to": [18, 16, 10],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
"south": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
"up": {"uv": [2.5, 11, 4.5, 12.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"}
}
},
{
"from": [16, 13, 2],
"to": [19, 14, 14],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [3, 11.5, 4.5, 12], "texture": "#0"},
"east": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
"south": {"uv": [3, 11.5, 4.5, 12], "texture": "#0"},
"west": {"uv": [0.5, 8.5, 6.5, 9], "texture": "#0"},
"up": {"uv": [0.5, 9, 6.5, 10.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 0, 3, 12], "rotation": 180, "texture": "#0"}
}
},
{
"from": [16, 9, 1],
"to": [19, 13, 15],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
"east": {"uv": [0, 9, 7, 11], "texture": "#0"},
"south": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
"west": {"uv": [0, 9, 7, 11], "texture": "#0"},
"up": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"}
}
},
{
"from": [16, 6, 6],
"to": [18, 9, 10],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
"east": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
"south": {"uv": [2.5, 11, 3.5, 12.5], "texture": "#0"},
"west": {"uv": [2.5, 11, 4.5, 12.5], "texture": "#0"},
"up": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"},
"down": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"}
}
},
{
"from": [16, 0, 6],
"to": [18, 2, 10],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
"south": {"uv": [2.5, 11.5, 3.5, 12.5], "texture": "#0"},
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "texture": "#0"},
"up": {"uv": [0, 0, 2, 4], "rotation": 180, "texture": "#0"},
"down": {"uv": [2.5, 11.5, 4.5, 12.5], "rotation": 90, "texture": "#0"}
}
},
{
"from": [-2, 14, 6],
"to": [0, 16, 10],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
"east": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
"south": {"uv": [2.5, 11, 3.5, 12], "texture": "#0"},
"west": {"uv": [2.5, 14.5, 4.5, 15.5], "rotation": 180, "texture": "#0"},
"up": {"uv": [2.5, 11, 4.5, 12.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 0, 2, 4], "texture": "#0"}
}
},
{
"from": [-3, 9, 1],
"to": [0, 13, 15],
"rotation": {"angle": 0, "axis": "x", "origin": [8, 4, 8]},
"faces": {
"north": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
"east": {"uv": [0, 9, 7, 11], "texture": "#0"},
"south": {"uv": [2.5, 9.5, 4, 11.5], "texture": "#0"},
"west": {"uv": [0, 9, 7, 11], "texture": "#0"},
"up": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 9, 7, 10.5], "rotation": 90, "texture": "#0"}
}
},
{
"from": [0, 0, 0],
"to": [16, 8, 16],
"faces": {
"north": {"uv": [0, 4, 8, 8], "texture": "#0"},
"east": {"uv": [0, 0, 8, 4], "texture": "#0"},
"south": {"uv": [0, 4, 8, 8], "texture": "#0"},
"west": {"uv": [0, 0, 8, 4], "texture": "#0"},
"up": {"uv": [0, 0, 16, 16], "rotation": 270, "texture": "#1"},
"down": {"uv": [0, 0, 16, 16], "rotation": 90, "texture": "#1"}
}
}
]
}

View File

@@ -0,0 +1,33 @@
{
"credit": "Made with Blockbench",
"textures": {
"0": "tfmg:block/fossilstone",
"particle": "tfmg:block/fossilstone"
},
"elements": [
{
"from": [8, 0, 7.5],
"to": [8, 20, 8.5],
"faces": {
"north": {"uv": [6, 0, 6, 16], "texture": "#0"},
"east": {"uv": [4, 0, 5, 16], "texture": "#0"},
"south": {"uv": [2, 0, 2, 16], "texture": "#0"},
"west": {"uv": [12, 0, 13, 16], "texture": "#0"},
"up": {"uv": [0, 0, 0, 1], "texture": "#0"},
"down": {"uv": [0, 0, 0, 1], "texture": "#0"}
}
},
{
"from": [7.5, 0, 8],
"to": [8.5, 20, 8],
"faces": {
"north": {"uv": [6, 0, 7, 16], "texture": "#0"},
"east": {"uv": [4, 0, 4, 16], "texture": "#0"},
"south": {"uv": [2, 0, 3, 16], "texture": "#0"},
"west": {"uv": [12, 0, 12, 16], "texture": "#0"},
"up": {"uv": [0, 0, 0, 1], "rotation": 270, "texture": "#0"},
"down": {"uv": [0, 0, 0, 1], "rotation": 90, "texture": "#0"}
}
}
]
}

View File

@@ -0,0 +1,3 @@
# Made in Blockbench 4.6.5
newmtl m_fe4f30a7-7eab-73c8-02da-55eaec181ae2
map_Kd #0

View File

@@ -0,0 +1,95 @@
# Made in Blockbench 4.7.4
mtllib pumpjack_hammer.mtl
o cube
v 0.8124999999999925 -0.25000000000000255 2.2500000000000018
v 0.18749999999999256 -0.25000000000000366 2.2499999999999982
v 0.8124999999999893 -0.25000000000000366 2.8125000000000018
v 0.18749999999998956 -0.2500000000000048 2.8124999999999982
v 0.18749999999999023 1.062499999999996 2.250000000000001
v 0.8124999999999902 1.0624999999999973 2.2500000000000044
v 0.18749999999998712 1.0624999999999951 2.8125000000000004
v 0.8124999999999871 1.062499999999996 2.812500000000004
vt 0.0859375 1
vt 0.25 1
vt 0.25 0.921875
vt 0.0859375 0.921875
vt 0 0.921875
vt 0 1
vt 0.0703125 1
vt 0.0703125 0.921875
vt 0.0859375 1
vt 0.25 1
vt 0.25 0.921875
vt 0.0859375 0.921875
vt 0 0.921875
vt 0 1
vt 0.0703125 1
vt 0.0703125 0.921875
vt 0 0.9140625
vt 0.1640625 0.9140625
vt 0.1640625 0.84375
vt 0 0.84375
vt 0 0.9140625
vt 0.1640625 0.9140625
vt 0.1640625 0.84375
vt 0 0.84375
vn -1 -1.7763568394002404e-15 -5.440092820663271e-15
vn 1.665334536937746e-15 -1 -1.9984014443252727e-15
vn 1 1.7763568394002404e-15 5.440092820663271e-15
vn -1.665334536937746e-15 1 1.9984014443252727e-15
vn 5.5511151231257795e-15 1.887379141862776e-15 -1
vn -5.5511151231257795e-15 -1.887379141862776e-15 1
usemtl m_fe4f30a7-7eab-73c8-02da-55eaec181ae2
f 4/4/1 7/3/1 5/2/1 2/1/1
f 3/8/2 4/7/2 2/6/2 1/5/2
f 8/12/3 3/11/3 1/10/3 6/9/3
f 7/16/4 8/15/4 6/14/4 5/13/4
f 6/20/5 1/19/5 2/18/5 5/17/5
f 7/24/6 4/23/6 3/22/6 8/21/6
o octagon
v 0.25444173824157956 0.1250000000000231 -2.0625
v 0.25444173824158034 0.8750000000000231 -2.062499999999994
v 0.25444173824160066 0.12499999999998579 2.2499999999999982
v 0.25444173824160143 0.8749999999999858 2.250000000000005
v 0.7544417382415802 0.8750000000000226 -2.0624999999999964
v 0.7544417382415796 0.12500000000002265 -2.0625000000000027
v 0.7544417382416015 0.8749999999999853 2.2500000000000027
v 0.7544417382416007 0.12499999999998523 2.2499999999999956
vt 0 0.7734375
vt 0 0.8359375
vt 0.5390625 0.8359375
vt 0.5390625 0.7734375
vt 0 0.671875
vt 0 0.765625
vt 0.5390625 0.765625
vt 0.5390625 0.671875
vt 0 0.7734375
vt 0 0.8359375
vt 0.5390625 0.8359375
vt 0.5390625 0.7734375
vt 0 0.671875
vt 0 0.765625
vt 0.5390625 0.765625
vt 0.5390625 0.671875
vt 0.171875 0.8515625
vt 0.171875 0.9140625
vt 0.265625 0.9140625
vt 0.265625 0.8515625
vt 0 1
vt 0.0625 1
vt 0.0625 0.9375
vt 0 0.9375
vn 1.0106430996149036e-15 1 8.659739592076216e-15
vn -1 1.010643099614861e-15 4.887165570769081e-15
vn -1.0106430996149036e-15 -1 -8.659739592076216e-15
vn 1 -1.010643099614861e-15 -4.887165570769081e-15
vn -4.887165570769073e-15 8.659739592076226e-15 -1
vn 4.887165570769073e-15 -8.659739592076226e-15 1
usemtl m_fe4f30a7-7eab-73c8-02da-55eaec181ae2
f 12/28/7 15/27/7 13/26/7 10/25/7
f 11/32/8 12/31/8 10/30/8 9/29/8
f 16/36/9 11/35/9 9/34/9 14/33/9
f 15/40/10 16/39/10 14/38/10 13/37/10
f 14/44/11 9/43/11 10/42/11 13/41/11
f 15/48/12 12/47/12 11/46/12 16/45/12

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

View File

@@ -0,0 +1,112 @@
{
"credit": "Made with Blockbench",
"parent": "minecraft:block/block",
"texture_size": [32, 32],
"textures": {
"0": "tfmg:block/aluminum_post",
"1": "tfmg:block/steel_truss",
"particle": "tfmg:block/aluminum_post"
},
"elements": [
{
"from": [0, 6, 6],
"to": [16, 10, 10],
"faces": {
"north": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#0"},
"east": {"uv": [8, 0, 10, 2], "texture": "#0"},
"south": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#0"},
"west": {"uv": [8, 0, 10, 2], "texture": "#0"},
"up": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#0"},
"down": {"uv": [0, 0, 2, 8], "rotation": 90, "texture": "#0"}
}
},
{
"from": [1, 0, 2],
"to": [1, 16, 14],
"faces": {
"north": {"uv": [0, 0, 0, 8], "texture": "#1"},
"east": {"uv": [2, 0, 14, 16], "texture": "#1"},
"south": {"uv": [0, 0, 0, 8], "texture": "#1"},
"west": {"uv": [2, 0, 14, 16], "texture": "#1"},
"up": {"uv": [0, 0, 6, 0], "rotation": 90, "texture": "#1"},
"down": {"uv": [0, 0, 6, 0], "rotation": 270, "texture": "#1"}
}
},
{
"from": [0, 0, 0],
"to": [2, 16, 2],
"faces": {
"north": {"uv": [0, 0, 2, 16], "texture": "#1"},
"east": {"uv": [0, 0, 3, 16], "texture": "#1"},
"south": {"uv": [0, 0, 2, 16], "texture": "#1"},
"west": {"uv": [0, 0, 2, 16], "texture": "#1"},
"up": {"uv": [0, 0, 2, 2], "texture": "#1"},
"down": {"uv": [0, 0, 2, 2], "texture": "#1"}
}
},
{
"from": [14, 0, 0],
"to": [16, 16, 2],
"faces": {
"north": {"uv": [0, 0, 2, 16], "texture": "#1"},
"east": {"uv": [0, 0, 2, 16], "texture": "#1"},
"south": {"uv": [0, 0, 2, 16], "texture": "#1"},
"west": {"uv": [0, 0, 2, 16], "texture": "#1"},
"up": {"uv": [0, 0, 2, 2], "texture": "#1"},
"down": {"uv": [0, 0, 2, 2], "texture": "#1"}
}
},
{
"from": [0, 0, 14],
"to": [2, 16, 16],
"faces": {
"north": {"uv": [0, 0, 2, 16], "texture": "#1"},
"east": {"uv": [0, 0, 2, 16], "texture": "#1"},
"south": {"uv": [0, 0, 2, 16], "texture": "#1"},
"west": {"uv": [0, 0, 2, 16], "texture": "#1"},
"up": {"uv": [0, 0, 2, 2], "texture": "#1"},
"down": {"uv": [0, 0, 2, 2], "texture": "#1"}
}
},
{
"from": [14, 0, 14],
"to": [16, 16, 16],
"faces": {
"north": {"uv": [0, 0, 1, 8], "texture": "#1"},
"east": {"uv": [0, 0, 2, 16], "texture": "#1"},
"south": {"uv": [0, 0, 2, 16], "texture": "#1"},
"west": {"uv": [0, 0, 2, 16], "texture": "#1"},
"up": {"uv": [0, 0, 2, 2], "texture": "#1"},
"down": {"uv": [0, 0, 2, 2], "texture": "#1"}
}
},
{
"from": [15, 0, 2],
"to": [15, 16, 14],
"faces": {
"north": {"uv": [0, 0, 0, 8], "texture": "#1"},
"east": {"uv": [2, 0, 14, 16], "texture": "#1"},
"south": {"uv": [0, 0, 0, 8], "texture": "#1"},
"west": {"uv": [2, 0, 14, 16], "texture": "#1"},
"up": {"uv": [0, 0, 6, 0], "rotation": 90, "texture": "#1"},
"down": {"uv": [0, 0, 6, 0], "rotation": 270, "texture": "#1"}
}
}
],
"groups": [
{
"name": "bone",
"origin": [0, 0, 0],
"color": 0,
"nbt": "{}",
"children": []
},
0,
1,
2,
3,
4,
5,
6
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 273 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 B

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB