diff --git a/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e b/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e index d4b037dd..f3530960 100644 --- a/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e +++ b/src/generated/resources/.cache/9047e4e94996e73e9dfde3738763637fb609e07e @@ -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 diff --git a/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a b/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a index bf740663..8e79db72 100644 --- a/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a +++ b/src/generated/resources/.cache/ad795fb8576279849034d802e60366ec43bb396a @@ -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 diff --git a/src/generated/resources/assets/tfmg/blockstates/blast_furnace_output.json b/src/generated/resources/assets/tfmg/blockstates/blast_furnace_output.json new file mode 100644 index 00000000..c596aa0f --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/blast_furnace_output.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfmg:block/blast_furnace_output" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/fireproof_brick_reinforcement.json b/src/generated/resources/assets/tfmg/blockstates/fireproof_brick_reinforcement.json new file mode 100644 index 00000000..182ce71c --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/fireproof_brick_reinforcement.json @@ -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" + } + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/fireproof_bricks.json b/src/generated/resources/assets/tfmg/blockstates/fireproof_bricks.json new file mode 100644 index 00000000..881e492a --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/fireproof_bricks.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfmg:block/fireproof_bricks" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/industrial_pipe.json b/src/generated/resources/assets/tfmg/blockstates/industrial_pipe.json new file mode 100644 index 00000000..101b96a1 --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/industrial_pipe.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfmg:block/industrial_pipe" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/machine_input.json b/src/generated/resources/assets/tfmg/blockstates/machine_input.json new file mode 100644 index 00000000..fab55bca --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/machine_input.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfmg:block/machine_input" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/pumpjack_base.json b/src/generated/resources/assets/tfmg/blockstates/pumpjack_base.json new file mode 100644 index 00000000..016cb00b --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/pumpjack_base.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfmg:block/pumpjack_base" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/pumpjack_crank.json b/src/generated/resources/assets/tfmg/blockstates/pumpjack_crank.json new file mode 100644 index 00000000..7a71fe5e --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/pumpjack_crank.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfmg:block/pumpjack_crank" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/blockstates/pumpjack_hammer_holder.json b/src/generated/resources/assets/tfmg/blockstates/pumpjack_hammer_holder.json new file mode 100644 index 00000000..4728ea4b --- /dev/null +++ b/src/generated/resources/assets/tfmg/blockstates/pumpjack_hammer_holder.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "tfmg:block/pumpjack_hammer_holder" + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/lang/en_ud.json b/src/generated/resources/assets/tfmg/lang/en_ud.json index 278d4fb6..9ab0c9e9 100644 --- a/src/generated/resources/assets/tfmg/lang/en_ud.json +++ b/src/generated/resources/assets/tfmg/lang/en_ud.json @@ -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", diff --git a/src/generated/resources/assets/tfmg/lang/en_us.json b/src/generated/resources/assets/tfmg/lang/en_us.json index 20a5fadf..e3eb5c92 100644 --- a/src/generated/resources/assets/tfmg/lang/en_us.json +++ b/src/generated/resources/assets/tfmg/lang/en_us.json @@ -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 [------------------------<-", diff --git a/src/generated/resources/assets/tfmg/models/block/blast_furnace_output.json b/src/generated/resources/assets/tfmg/models/block/blast_furnace_output.json new file mode 100644 index 00000000..6716612e --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/blast_furnace_output.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfmg:block/blast_furnace_output" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/fireproof_brick_reinforcement_wall_post.json b/src/generated/resources/assets/tfmg/models/block/fireproof_brick_reinforcement_wall_post.json new file mode 100644 index 00000000..60935256 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/fireproof_brick_reinforcement_wall_post.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_post", + "textures": { + "wall": "tfmg:block/fireproof_brick_reinforcement" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/fireproof_brick_reinforcement_wall_side.json b/src/generated/resources/assets/tfmg/models/block/fireproof_brick_reinforcement_wall_side.json new file mode 100644 index 00000000..4894a792 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/fireproof_brick_reinforcement_wall_side.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side", + "textures": { + "wall": "tfmg:block/fireproof_brick_reinforcement" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/fireproof_brick_reinforcement_wall_side_tall.json b/src/generated/resources/assets/tfmg/models/block/fireproof_brick_reinforcement_wall_side_tall.json new file mode 100644 index 00000000..e4e5b67c --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/fireproof_brick_reinforcement_wall_side_tall.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/template_wall_side_tall", + "textures": { + "wall": "tfmg:block/fireproof_brick_reinforcement" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/fireproof_bricks.json b/src/generated/resources/assets/tfmg/models/block/fireproof_bricks.json new file mode 100644 index 00000000..3879b13b --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/fireproof_bricks.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfmg:block/fireproof_bricks" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/industrial_pipe.json b/src/generated/resources/assets/tfmg/models/block/industrial_pipe.json new file mode 100644 index 00000000..4c1a1a8a --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/industrial_pipe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfmg:block/industrial_pipe" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/machine_input.json b/src/generated/resources/assets/tfmg/models/block/machine_input.json new file mode 100644 index 00000000..36e0115c --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/machine_input.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfmg:block/machine_input" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/pumpjack_base.json b/src/generated/resources/assets/tfmg/models/block/pumpjack_base.json new file mode 100644 index 00000000..7ad6d2ee --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/pumpjack_base.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfmg:block/pumpjack_base" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/pumpjack_crank.json b/src/generated/resources/assets/tfmg/models/block/pumpjack_crank.json new file mode 100644 index 00000000..11f113c4 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/pumpjack_crank.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfmg:block/pumpjack_crank" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/block/pumpjack_hammer_holder.json b/src/generated/resources/assets/tfmg/models/block/pumpjack_hammer_holder.json new file mode 100644 index 00000000..b14ef3ef --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/block/pumpjack_hammer_holder.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "tfmg:block/pumpjack_hammer_holder" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/blast_furnace_output.json b/src/generated/resources/assets/tfmg/models/item/blast_furnace_output.json new file mode 100644 index 00000000..a17ee0c0 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/blast_furnace_output.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/blast_furnace_output" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/fireproof_brick_reinforcement.json b/src/generated/resources/assets/tfmg/models/item/fireproof_brick_reinforcement.json new file mode 100644 index 00000000..2e57ea70 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/fireproof_brick_reinforcement.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/fireproof_brick_reinforcement" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/fireproof_bricks.json b/src/generated/resources/assets/tfmg/models/item/fireproof_bricks.json new file mode 100644 index 00000000..37612526 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/fireproof_bricks.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/fireproof_bricks" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/industrial_pipe.json b/src/generated/resources/assets/tfmg/models/item/industrial_pipe.json new file mode 100644 index 00000000..5a89f6c1 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/industrial_pipe.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/industrial_pipe" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/machine_input.json b/src/generated/resources/assets/tfmg/models/item/machine_input.json new file mode 100644 index 00000000..d4beafbe --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/machine_input.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/machine_input" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/pumpjack_base.json b/src/generated/resources/assets/tfmg/models/item/pumpjack_base.json new file mode 100644 index 00000000..f165d742 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/pumpjack_base.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/pumpjack_base" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/pumpjack_crank.json b/src/generated/resources/assets/tfmg/models/item/pumpjack_crank.json new file mode 100644 index 00000000..d8221ba0 --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/pumpjack_crank.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/pumpjack_crank" +} \ No newline at end of file diff --git a/src/generated/resources/assets/tfmg/models/item/pumpjack_hammer_holder.json b/src/generated/resources/assets/tfmg/models/item/pumpjack_hammer_holder.json new file mode 100644 index 00000000..89d4579a --- /dev/null +++ b/src/generated/resources/assets/tfmg/models/item/pumpjack_hammer_holder.json @@ -0,0 +1,3 @@ +{ + "parent": "tfmg:block/pumpjack_hammer_holder" +} \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json index a5260c83..d52e23ac 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/axe.json @@ -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" ] } \ No newline at end of file diff --git a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index 966401a4..a3d35055 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -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", diff --git a/src/generated/resources/data/minecraft/tags/blocks/walls.json b/src/generated/resources/data/minecraft/tags/blocks/walls.json index 00c29213..7683b5a0 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/walls.json +++ b/src/generated/resources/data/minecraft/tags/blocks/walls.json @@ -1,5 +1,6 @@ { "values": [ + "tfmg:fireproof_brick_reinforcement", "tfmg:cut_bauxite_wall", "tfmg:polished_cut_bauxite_wall", "tfmg:cut_bauxite_brick_wall", diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/blast_furnace_output.json b/src/generated/resources/data/tfmg/loot_tables/blocks/blast_furnace_output.json new file mode 100644 index 00000000..7871057e --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/blast_furnace_output.json @@ -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 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/fireproof_brick_reinforcement.json b/src/generated/resources/data/tfmg/loot_tables/blocks/fireproof_brick_reinforcement.json new file mode 100644 index 00000000..6079f682 --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/fireproof_brick_reinforcement.json @@ -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 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/fireproof_bricks.json b/src/generated/resources/data/tfmg/loot_tables/blocks/fireproof_bricks.json new file mode 100644 index 00000000..258e3d86 --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/fireproof_bricks.json @@ -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 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/industrial_pipe.json b/src/generated/resources/data/tfmg/loot_tables/blocks/industrial_pipe.json new file mode 100644 index 00000000..33676dd0 --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/industrial_pipe.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "tfmg:industrial_pipe" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/machine_input.json b/src/generated/resources/data/tfmg/loot_tables/blocks/machine_input.json new file mode 100644 index 00000000..89a608dd --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/machine_input.json @@ -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 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/pumpjack_base.json b/src/generated/resources/data/tfmg/loot_tables/blocks/pumpjack_base.json new file mode 100644 index 00000000..eca2b4de --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/pumpjack_base.json @@ -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 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/pumpjack_crank.json b/src/generated/resources/data/tfmg/loot_tables/blocks/pumpjack_crank.json new file mode 100644 index 00000000..23d0e101 --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/pumpjack_crank.json @@ -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 + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/tfmg/loot_tables/blocks/pumpjack_hammer_holder.json b/src/generated/resources/data/tfmg/loot_tables/blocks/pumpjack_hammer_holder.json new file mode 100644 index 00000000..1f0e1e0e --- /dev/null +++ b/src/generated/resources/data/tfmg/loot_tables/blocks/pumpjack_hammer_holder.json @@ -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 + } + ] +} \ No newline at end of file diff --git a/src/main/java/com/drmangotea/tfmg/base/TFMGVanillaBlockStates.java b/src/main/java/com/drmangotea/tfmg/base/TFMGVanillaBlockStates.java new file mode 100644 index 00000000..03207167 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/base/TFMGVanillaBlockStates.java @@ -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 ctx, RegistrateBlockstateProvider prov, + String name) { + prov.wallBlock(ctx.get(), name, CreateTFMG.asResource("block/"+name)); + } + + +} diff --git a/src/main/java/com/drmangotea/tfmg/base/palettes/TFMGPaletteBlockPartial.java b/src/main/java/com/drmangotea/tfmg/base/palettes/TFMGPaletteBlockPartial.java index d0de527a..09a4c7b1 100644 --- a/src/main/java/com/drmangotea/tfmg/base/palettes/TFMGPaletteBlockPartial.java +++ b/src/main/java/com/drmangotea/tfmg/base/palettes/TFMGPaletteBlockPartial.java @@ -47,7 +47,7 @@ public abstract class TFMGPaletteBlockPartial { private String name; - private TFMGPaletteBlockPartial(String name) { + protected TFMGPaletteBlockPartial(String name) { this.name = name; } @@ -216,7 +216,7 @@ public abstract class TFMGPaletteBlockPartial { } - private static class Wall extends TFMGPaletteBlockPartial { + public static class Wall extends TFMGPaletteBlockPartial { public Wall() { super("wall"); diff --git a/src/main/java/com/drmangotea/tfmg/base/palettes/TFMGPaletteBlockPattern.java b/src/main/java/com/drmangotea/tfmg/base/palettes/TFMGPaletteBlockPattern.java index 65c1513f..e79c64ea 100644 --- a/src/main/java/com/drmangotea/tfmg/base/palettes/TFMGPaletteBlockPattern.java +++ b/src/main/java/com/drmangotea/tfmg/base/palettes/TFMGPaletteBlockPattern.java @@ -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) { diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java index 35879487..172e6ee0 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationControllerBlockEntity.java @@ -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); diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlockEntity.java index b106eb7a..162855fe 100644 --- a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlockEntity.java +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/distillation/distillation_tower/DistillationOutputBlockEntity.java @@ -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; } diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/base/PumpjackBaseBlock.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/base/PumpjackBaseBlock.java new file mode 100644 index 00000000..6d222786 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/base/PumpjackBaseBlock.java @@ -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 { + + + + + 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 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 getBlockEntityClass() { + return PumpjackBaseBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.PUMPJACK_BASE.get(); + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java new file mode 100644 index 00000000..92886322 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/base/PumpjackBaseBlockEntity.java @@ -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 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 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 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 LazyOptional getCapability(@Nonnull Capability cap, @Nullable Direction side) { + if (!fluidCapability.isPresent()) + refreshCapability(); + if (cap == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY) + return fluidCapability.cast(); + return super.getCapability(cap, side); + } + + + @Override + public void addBehaviours(List behaviours) { + + } + + 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()); + + + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/base/PumpjackBaseRenderer.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/base/PumpjackBaseRenderer.java new file mode 100644 index 00000000..aca8fd9c --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/base/PumpjackBaseRenderer.java @@ -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 { + + 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; + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankBlock.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankBlock.java new file mode 100644 index 00000000..480b5d78 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankBlock.java @@ -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, 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 getBlockEntityClass() { + return PumpjackCrankBlockEntity.class; + } + @Override + public RenderShape getRenderShape(BlockState pState) { + return RenderShape.ENTITYBLOCK_ANIMATED; + } + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.PUMPJACK_CRANK.get(); + } + protected void createBlockStateDefinition(StateDefinition.Builder p_54794_) { + p_54794_.add(FACING); + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankBlockEntity.java new file mode 100644 index 00000000..e80468ab --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankBlockEntity.java @@ -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. + + + + } + + */ +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankInstance.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankInstance.java new file mode 100644 index 00000000..ad2afdb1 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankInstance.java @@ -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 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(); + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankRenderer.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankRenderer.java new file mode 100644 index 00000000..866af0f8 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/crank/PumpjackCrankRenderer.java @@ -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)); + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderBlock.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderBlock.java new file mode 100644 index 00000000..11afae5b --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderBlock.java @@ -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 { + + public PumpjackHammerHolderBlock(Properties properties) { + super(properties); + } + + + + protected void createBlockStateDefinition(StateDefinition.Builder 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 getBlockEntityClass() { + return PumpjackHammerHolderBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.PUMPJACK_HAMMER_HOLDER.get(); + } + + + + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderBlockEntity.java new file mode 100644 index 00000000..76ff2f7a --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderBlockEntity.java @@ -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 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 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")); + } + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderInstance.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderInstance.java new file mode 100644 index 00000000..7b489b80 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderInstance.java @@ -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 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(); + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderRenderer.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderRenderer.java new file mode 100644 index 00000000..bbfe4ee2 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/hammer_holder/PumpjackHammerHolderRenderer.java @@ -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 { + + 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); + + + + + } + + + + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/machine_input/MachineInputBlock.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/machine_input/MachineInputBlock.java new file mode 100644 index 00000000..66401d01 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/machine_input/MachineInputBlock.java @@ -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 { + + + + 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 getBlockEntityClass() { + return MachineInputBlockEntity.class; + } + + @Override + public BlockEntityType getBlockEntityType() { + return TFMGBlockEntities.MACHINE_INPUT.get(); + } +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/machine_input/MachineInputBlockEntity.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/machine_input/MachineInputBlockEntity.java new file mode 100644 index 00000000..68e23603 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/machine_input/MachineInputBlockEntity.java @@ -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 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; + } + + +} diff --git a/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/machine_input/MachineInputRenderer.java b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/machine_input/MachineInputRenderer.java new file mode 100644 index 00000000..47e92d90 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/content/machines/oil_processing/pumpjack/machine_input/MachineInputRenderer.java @@ -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 { + + 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()); + } + } \ No newline at end of file diff --git a/src/main/java/com/drmangotea/tfmg/recipes/jei/AdvancedDistillationCategory.java b/src/main/java/com/drmangotea/tfmg/recipes/jei/AdvancedDistillationCategory.java index 54aa38b2..51606872 100644 --- a/src/main/java/com/drmangotea/tfmg/recipes/jei/AdvancedDistillationCategory.java +++ b/src/main/java/com/drmangotea/tfmg/recipes/jei/AdvancedDistillationCategory.java @@ -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 { - private final AnimatedDistiller distiller = new AnimatedDistiller(); + public AdvancedDistillationCategory(Info info) { super(info); @@ -33,46 +34,54 @@ public class AdvancedDistillationCategory extends CreateRecipeCategory { - private final AnimatedDistiller distiller = new AnimatedDistiller(); + private final Distillery distiller = new Distillery(); public DistillationCategory(Info info) { super(info); diff --git a/src/main/java/com/drmangotea/tfmg/recipes/jei/TFMGJei.java b/src/main/java/com/drmangotea/tfmg/recipes/jei/TFMGJei.java index 839c1066..ffa336f7 100644 --- a/src/main/java/com/drmangotea/tfmg/recipes/jei/TFMGJei.java +++ b/src/main/java/com/drmangotea/tfmg/recipes/jei/TFMGJei.java @@ -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) diff --git a/src/main/java/com/drmangotea/tfmg/recipes/jei/AnimatedDistiller.java b/src/main/java/com/drmangotea/tfmg/recipes/jei/machines/Distillery.java similarity index 97% rename from src/main/java/com/drmangotea/tfmg/recipes/jei/AnimatedDistiller.java rename to src/main/java/com/drmangotea/tfmg/recipes/jei/machines/Distillery.java index 906398af..eb845867 100644 --- a/src/main/java/com/drmangotea/tfmg/recipes/jei/AnimatedDistiller.java +++ b/src/main/java/com/drmangotea/tfmg/recipes/jei/machines/Distillery.java @@ -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() { } diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java index 6a54c939..d392355a 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlockEntities.java @@ -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 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 PUMPJACK_CRANK = REGISTRATE + .blockEntity("pumpjack_crank", PumpjackCrankBlockEntity::new) + .instance(() -> PumpjackCrankInstance::new, true) + .validBlocks(TFMGBlocks.PUMPJACK_CRANK) + .renderer(() -> PumpjackCrankRenderer::new) + .register(); + + public static final BlockEntityEntry MACHINE_INPUT = REGISTRATE + .blockEntity("machine_input", MachineInputBlockEntity::new) + .instance(() -> HalfShaftInstance::new,true) + .validBlocks(TFMGBlocks.MACHINE_INPUT) + .renderer(() -> MachineInputRenderer::new) + .register(); + + public static final BlockEntityEntry PUMPJACK_BASE = REGISTRATE + .blockEntity("pumpjack_base", PumpjackBaseBlockEntity::new) + .validBlocks(TFMGBlocks.PUMPJACK_BASE) + .renderer(() -> PumpjackBaseRenderer::new) + .register(); + public static void register() {} } diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java index a5bea9a3..261595b9 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGBlocks.java @@ -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 STEEL_DISTILLATION_OUTPU .item() .build() .register(); + public static final BlockEntry 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 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 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 PUMPJACK_BASE = + REGISTRATE.block("pumpjack_base", PumpjackBaseBlock::new) + .initialProperties(SharedProperties::copperMetal) + .properties(BlockBehaviour.Properties::noOcclusion) + .item() + .build() + .register(); + + public static final BlockEntry 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 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 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 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(); + + ////////// + diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGGuiTextures.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGGuiTextures.java new file mode 100644 index 00000000..09652423 --- /dev/null +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGGuiTextures.java @@ -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); + } + +} diff --git a/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java b/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java index e687d189..0f8174dc 100644 --- a/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java +++ b/src/main/java/com/drmangotea/tfmg/registry/TFMGPartialModels.java @@ -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"), diff --git a/src/main/resources/assets/tfmg/models/block/fireproof_brick_reinforcement.json b/src/main/resources/assets/tfmg/models/block/fireproof_brick_reinforcement.json new file mode 100644 index 00000000..ba9e2f8d --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/fireproof_brick_reinforcement.json @@ -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"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/hammer.json b/src/main/resources/assets/tfmg/models/block/pumpjack/hammer.json new file mode 100644 index 00000000..55cd84b1 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/hammer.json @@ -0,0 +1,8 @@ +{ + "parent": "block/block", + "ambientocclusion": false, + "textures": { + "0": "tfmg:block/pumpjack_hammer", + "particle": "tfmg:block/steel_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/hammer_holder.json b/src/main/resources/assets/tfmg/models/block/pumpjack/hammer_holder.json new file mode 100644 index 00000000..c3fd3ced --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/hammer_holder.json @@ -0,0 +1,6 @@ +{ + "parent": "tfmg:block/pumpjack/hammer", + "loader": "forge:obj", + "flip-v": true, + "model": "tfmg:models/block/pumpjack/pumpjack_hammer.obj" +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_base.json b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_base.json new file mode 100644 index 00000000..e8b9b8ef --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_base.json @@ -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"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_connector.json b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_connector.json new file mode 100644 index 00000000..a5aa3bd5 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_connector.json @@ -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"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_crank.json b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_crank.json new file mode 100644 index 00000000..a8daf086 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_crank.json @@ -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"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_crank_block.json b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_crank_block.json new file mode 100644 index 00000000..acf57ca7 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_crank_block.json @@ -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"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_crank_item.json b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_crank_item.json new file mode 100644 index 00000000..0001f349 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_crank_item.json @@ -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"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_front_rope.json b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_front_rope.json new file mode 100644 index 00000000..b45c9c05 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_front_rope.json @@ -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"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer.mtl b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer.mtl new file mode 100644 index 00000000..62e0a662 --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer.mtl @@ -0,0 +1,3 @@ +# Made in Blockbench 4.6.5 +newmtl m_fe4f30a7-7eab-73c8-02da-55eaec181ae2 +map_Kd #0 diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer.obj b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer.obj new file mode 100644 index 00000000..c327d5cf --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer.obj @@ -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 \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer.png b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer.png new file mode 100644 index 00000000..45e0c294 Binary files /dev/null and b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer.png differ diff --git a/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer_holder.json b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer_holder.json new file mode 100644 index 00000000..e0767f6f --- /dev/null +++ b/src/main/resources/assets/tfmg/models/block/pumpjack/pumpjack_hammer_holder.json @@ -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 + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/tfmg/textures/block/blast_furnace_output.png b/src/main/resources/assets/tfmg/textures/block/blast_furnace_output.png new file mode 100644 index 00000000..bb5ce18e Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/blast_furnace_output.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/fireproof_brick_reinforcement.png b/src/main/resources/assets/tfmg/textures/block/fireproof_brick_reinforcement.png new file mode 100644 index 00000000..d683d1e1 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/fireproof_brick_reinforcement.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/fireproof_bricks.png b/src/main/resources/assets/tfmg/textures/block/fireproof_bricks.png index eba8e04c..d683d1e1 100644 Binary files a/src/main/resources/assets/tfmg/textures/block/fireproof_bricks.png and b/src/main/resources/assets/tfmg/textures/block/fireproof_bricks.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/machine_input.png b/src/main/resources/assets/tfmg/textures/block/machine_input.png new file mode 100644 index 00000000..efdf2708 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/machine_input.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/pumpjack_hammer_holder.png b/src/main/resources/assets/tfmg/textures/block/pumpjack_hammer_holder.png new file mode 100644 index 00000000..efdf2708 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/block/pumpjack_hammer_holder.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/steel_block.png b/src/main/resources/assets/tfmg/textures/block/steel_block.png index 4d7cdebd..308ac734 100644 Binary files a/src/main/resources/assets/tfmg/textures/block/steel_block.png and b/src/main/resources/assets/tfmg/textures/block/steel_block.png differ diff --git a/src/main/resources/assets/tfmg/textures/block/steel_block_connected.png b/src/main/resources/assets/tfmg/textures/block/steel_block_connected.png index a7f5e2e4..ffb8c333 100644 Binary files a/src/main/resources/assets/tfmg/textures/block/steel_block_connected.png and b/src/main/resources/assets/tfmg/textures/block/steel_block_connected.png differ diff --git a/src/main/resources/assets/tfmg/textures/gui/distillation_tower.png b/src/main/resources/assets/tfmg/textures/gui/distillation_tower.png new file mode 100644 index 00000000..bbbc4b03 Binary files /dev/null and b/src/main/resources/assets/tfmg/textures/gui/distillation_tower.png differ