diff --git a/src/generated/resources/.cache/cache b/src/generated/resources/.cache/cache index 4cb3fe1d5..529a795b7 100644 --- a/src/generated/resources/.cache/cache +++ b/src/generated/resources/.cache/cache @@ -305,6 +305,7 @@ e20699a753e7b12abd4a881de473d494a4ffeaa9 assets/create/blockstates/metal_girder_ 4e48ad0936647065c2322390e7c0fe115c853a98 assets/create/blockstates/millstone.json 468202df0802e17c75fcad0993daf1bc5300ca91 assets/create/blockstates/minecart_anchor.json b1126c191877cff86b4e2de83e1fcbd151451cb7 assets/create/blockstates/mysterious_cuckoo_clock.json +828fadf676c75b2a11235a106b018b0505d54ec5 assets/create/blockstates/netherite_backtank.json 304e5e7b2927f3e8e8b8c6932c35c5c6892d2eb5 assets/create/blockstates/nixie_tube.json 36e46e65003a8d0b8555fe5e8f8dc980d6559bc5 assets/create/blockstates/nozzle.json cf60989f63f02067fc4e4ad25033ac83167cdeb0 assets/create/blockstates/oak_window.json @@ -561,24 +562,24 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo 5616dda664dd106d576848124fc0fc1de18d0fd3 assets/create/blockstates/yellow_valve_handle.json 7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json -030897fc54ff8948c4f75c12fc0cb75b7533a7d3 assets/create/lang/en_ud.json -b1efd3b09b9b99864c62946609e2fda2b27289ca assets/create/lang/en_us.json -0674019c1a174515a411399f8072014c0262e9e3 assets/create/lang/unfinished/de_de.json -c97060d5ac1e4e1ec44e9c24ddfe981414c5d38c assets/create/lang/unfinished/es_cl.json -118ccd144daec81fd505cd09f97d55dc054a663b assets/create/lang/unfinished/es_es.json -26fc490f390650044c853be59d6b27e2bd0accc5 assets/create/lang/unfinished/fr_fr.json -d64bcf8740ef1c117148388399f332015b1a35c2 assets/create/lang/unfinished/it_it.json -cc277bc6cc78bf7c943b428321d685a64bc25ebd assets/create/lang/unfinished/ja_jp.json -0c9199e23e24af99b7878b9278308ebf63db1eb9 assets/create/lang/unfinished/ko_kr.json -086ca8f196d987b1bb0b7cfe2b285c173d46a499 assets/create/lang/unfinished/nl_nl.json -0ce3cc278b14d36493f48aeb221ce9f6e7153b3f assets/create/lang/unfinished/pl_pl.json -7ef6bb7a596f4d5ac9273a0f5e8424229ca457ee assets/create/lang/unfinished/pt_br.json -c93a7d9275c0cc755e859ad57e352b9f1e2ee2f9 assets/create/lang/unfinished/pt_pt.json -c4aaebf10dd4a94e64d0fc2f48e4242d63cc6f71 assets/create/lang/unfinished/ro_ro.json -2fddf07de6613c3d680a645325d83d925c82aebc assets/create/lang/unfinished/ru_ru.json -ab7e76507c58c93e2e0619bbf78dd1a7c6459b00 assets/create/lang/unfinished/uk_ua.json -46e97308f1bfe26232952139f99d902f7f465c1a assets/create/lang/unfinished/zh_cn.json -d0d72e70e30f7d3a02293f15acd31e042deda59b assets/create/lang/unfinished/zh_tw.json +29da6f08028cfed0f311c8073d7615d6821aaee6 assets/create/lang/en_ud.json +f16b180625bb72138bcb57e27b91b1b4b9c71db7 assets/create/lang/en_us.json +cab6bdb4325f41b3309bc9f7381dacbe50bc284a assets/create/lang/unfinished/de_de.json +52206a7b8357a3ba74b265a87ef01f4f5ccff521 assets/create/lang/unfinished/es_cl.json +9dbfe72c9585e0eaec5b185ede7a7f58c2896c31 assets/create/lang/unfinished/es_es.json +8cbbfeb3f1697d013517754bcd2a6b08831d4f84 assets/create/lang/unfinished/fr_fr.json +218ea3097c9979909d897d978cbad61facfb1b8c assets/create/lang/unfinished/it_it.json +ae2dfc2bd8196fce9f30dc1469e94f050a1a49f5 assets/create/lang/unfinished/ja_jp.json +271fc874fe49205e3fbcfe1d27148ab4f4cf3d96 assets/create/lang/unfinished/ko_kr.json +032e905563d9257b9423c88706ab8a4cfb1b5bb3 assets/create/lang/unfinished/nl_nl.json +3012ab3a76e359db944d1d6330772dd15e6e8c5c assets/create/lang/unfinished/pl_pl.json +df65548cb9c722b93bee0a570b75aac37442a517 assets/create/lang/unfinished/pt_br.json +5cb5a8ab92c155131dfcfc1e593d5a0e04cbd219 assets/create/lang/unfinished/pt_pt.json +3afabc1553ae8c007c31c79686d0d36502f54687 assets/create/lang/unfinished/ro_ro.json +ccb8e554f34afdd21f9d6920c9a503f275ec676c assets/create/lang/unfinished/ru_ru.json +b6ecf4c99b64ecf194253a8595ced0732a53beb3 assets/create/lang/unfinished/uk_ua.json +fe13c0665e0359ec356d0656f1b5715b1e6a6213 assets/create/lang/unfinished/zh_cn.json +9f80d15820f6d308e31c3a31b2e98251bdc93b01 assets/create/lang/unfinished/zh_tw.json 487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json 3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json @@ -1684,6 +1685,8 @@ f5f1ad973341f8bebc474d5e65ff877ac6303b0d assets/create/models/item/contraption_c 10397036fc0bb1e18a767cfd7b19b10d805a83fe assets/create/models/item/copper_backtank.json 3652f8f7b454940050f090ab32d38e04b93e14f8 assets/create/models/item/copper_backtank_placeable.json 759bcb5fe7dfdd628716f9b4ff19a5ab00393381 assets/create/models/item/copper_casing.json +16182c4c32b11b370cf5b1116250cf3dda838954 assets/create/models/item/copper_diving_boots.json +dc517e70cee9c5d74edfedd49ac43a67fe258c1b assets/create/models/item/copper_diving_helmet.json 599845f2382da5b43a3c610f6ed7a87c032e1c6a assets/create/models/item/copper_ladder.json 751324b03f657f4166460eb10a64dae47cb97bd4 assets/create/models/item/copper_nugget.json 177dafb51d70c55ec62036332868efed4e01f353 assets/create/models/item/copper_sheet.json @@ -1843,8 +1846,6 @@ f786a43e296d9f10d7c302fe3ae9cddf4ba9984e assets/create/models/item/dark_oak_wind e0ecc0a20cf9dd54ccfc48e0041d5220b2c8316e assets/create/models/item/diorite_pillar.json 0ff9267a39783dce5e0aa59e78088c64337ad6ee assets/create/models/item/display_board.json c89ab6316518a19974cbed73edb54aaaafd073f5 assets/create/models/item/display_link.json -6006f88e56d74a3fd75a9dddb25af39075e0482b assets/create/models/item/diving_boots.json -df8cfe7e8eb527329094396e11222e9097e309d7 assets/create/models/item/diving_helmet.json 4b2af721dccfcf4e5b5a7b0f64f295d7cfd27f69 assets/create/models/item/dough.json c25cd4d5cdf67b0d7e15f5a56c63e6bf35fe2917 assets/create/models/item/dripstone_pillar.json 5c45bf31bc4b6d2c6482318f19a660ad949d796b assets/create/models/item/electron_tube.json @@ -1947,6 +1948,10 @@ f8d0d4b2a890ea7a69ab0c390947b48fe0478d3f assets/create/models/item/mechanical_pi 363c5a2b8ac945b676c838cdf7b0494c3ab13599 assets/create/models/item/minecart_contraption.json 01e3fda31e549a3b6a1e5e615b59478e8f06f16a assets/create/models/item/minecart_coupling.json dae5cffa4e1263d6a113469f79fba8695fa8232a assets/create/models/item/mysterious_cuckoo_clock.json +cfacabb82a073bb03845f88397e04496128e0889 assets/create/models/item/netherite_backtank.json +3652f8f7b454940050f090ab32d38e04b93e14f8 assets/create/models/item/netherite_backtank_placeable.json +cae57da9a495dec4a17e4452111332ee5e0967ca assets/create/models/item/netherite_diving_boots.json +507ea9c5eac8c381ab99b6236ab26ca953388d8c assets/create/models/item/netherite_diving_helmet.json bafe601f186e868819da3d29f7be7dc96f9ba790 assets/create/models/item/nixie_tube.json 366a60447bbbd61eb25aecf191a01e8d9417ad61 assets/create/models/item/nozzle.json 7a336a340f3e4927d7a35f9d79e8a03693b802aa assets/create/models/item/oak_window.json @@ -2244,8 +2249,8 @@ d53e397aef8dc2fc674f6f1c7a059a17678ec56c data/create/advancements/cuckoo_clock.j 27c72072683dad1a8ca9976a58367c965ca35fe7 data/create/advancements/deployer.json b30ed29c6e69d0964e810a470a8725bf9496e9b5 data/create/advancements/display_board_0.json 92fdb65633cf93b7aca5f359abeb5a9ec715ae40 data/create/advancements/display_link.json -12a4c76b2d1eff364ed15926711fdf5a79957899 data/create/advancements/diving_suit.json -9e3fc44ae8997b03881fddd3938397cac3f580e1 data/create/advancements/diving_suit_lava.json +0c6d98542523d90ff3848c07ee6fd4963c85ed2c data/create/advancements/diving_suit.json +50d2f42e9d63b5dff964c60800997ebd26a736f6 data/create/advancements/diving_suit_lava.json ebf21bebdeb29fc7f1ffa078123256241921681f data/create/advancements/drain.json f87f17fb29afda4fc46a81b5c3967bd21c068e36 data/create/advancements/ejector_maxed.json 0c19f535f04e653e0263ab9c3e9f04a203fa6765 data/create/advancements/encased_fan.json @@ -2325,9 +2330,9 @@ c2ca0ac0d670fa4d7e8150ba6e314de2881248b6 data/create/advancements/recipes/create f605ac221fbd565152f8e987beb7697299588da2 data/create/advancements/recipes/create.base/copper_tile_stairs_from_copper_tiles_stonecutting.json 5190d5c155ebd9a670dc8271e4920a048e633d25 data/create/advancements/recipes/create.base/copper_tiles_from_plates_copper_stonecutting.json 376bda381f3dedb52b03eb1504b103d8ddd1b672 data/create/advancements/recipes/create.base/crafting/appliances/copper_backtank.json +9833d16405f8c51646590e98588fb410f96d9523 data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_boots.json +680c982dd1d3c45bed4d390fc0da5042750c157a data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_helmet.json 265a953eaac909fd2817c6dc3d1a08b376579a25 data/create/advancements/recipes/create.base/crafting/appliances/crafting_blueprint.json -29a77555e4d9eb1c8d4740f95b784fe0e53c72b1 data/create/advancements/recipes/create.base/crafting/appliances/diving_boots.json -638f93712e176fa3ef5cd6ecaf8dac4eebe1cd1e data/create/advancements/recipes/create.base/crafting/appliances/diving_helmet.json fa2e18298f7710465d9b0798a69288e846c646fd data/create/advancements/recipes/create.base/crafting/appliances/dough.json a9b163744b1c494d07ec256d0367884f9601176d data/create/advancements/recipes/create.base/crafting/appliances/linked_controller.json c4769d7ac9c537eb4409b02883e89d0930514a8b data/create/advancements/recipes/create.base/crafting/appliances/tree_fertilizer.json @@ -3685,6 +3690,7 @@ afdff197c9d1a6940e988c00435135f9705fd0e5 data/create/loot_tables/blocks/metal_gi b83a90fbe83906b171fc0de6bdc2d9aa3a8c542e data/create/loot_tables/blocks/millstone.json 5c1df8443043b3fe3b665dba348e2ff188bcbe31 data/create/loot_tables/blocks/minecart_anchor.json 1e73d28fdd2e54910074aeadbe5617425a8ae656 data/create/loot_tables/blocks/mysterious_cuckoo_clock.json +a5fa8fdc10efe534e5c7d8bdb687f226b39f63ef data/create/loot_tables/blocks/netherite_backtank.json 2e21a06c0d671e543bffecb0b67d97b51fa83ddc data/create/loot_tables/blocks/nixie_tube.json f6b4095a518a01081f3663d7268d67063bdb44ee data/create/loot_tables/blocks/nozzle.json d378be8f13fc7ed625813eae3a50b68e8706a297 data/create/loot_tables/blocks/oak_window.json @@ -3990,9 +3996,9 @@ bea832822e0e5f0048eb94649641ea541e11f943 data/create/recipes/copper_shingles_fro 15da07234ee005be984f060520d0cf87bca672f5 data/create/recipes/copper_tile_stairs_from_copper_tiles_stonecutting.json 10fdc13f5b2b745e13e6e4e949a07ceaf4544a26 data/create/recipes/copper_tiles_from_plates_copper_stonecutting.json eb18d5972484418fa5a768633e68688ad20d2bd7 data/create/recipes/crafting/appliances/copper_backtank.json +5771562086710eb5a3a05d464989d2f23d6c5e86 data/create/recipes/crafting/appliances/copper_diving_boots.json +ec38ddb44e4bf8eaaba6f9d27e8469234fc98528 data/create/recipes/crafting/appliances/copper_diving_helmet.json c077375d16b4505e52548613fbc9356993556e6b data/create/recipes/crafting/appliances/crafting_blueprint.json -cba3566f09234b9cd17d8bc87dc87b2f779214e9 data/create/recipes/crafting/appliances/diving_boots.json -3e6bbbd6aa2b1373e9d6063d48560e4b547a5a5b data/create/recipes/crafting/appliances/diving_helmet.json edf96556bb2357f54fd398fe573641afa15239b2 data/create/recipes/crafting/appliances/dough.json 75cdbd88973a8ca943ebe890153b01a344b96b01 data/create/recipes/crafting/appliances/linked_controller.json 7b5f863dda3d05a79cb85943a178eba0bd8a7dc7 data/create/recipes/crafting/appliances/slime_ball.json @@ -5656,7 +5662,7 @@ c98ffdc2780c2a7690c590f46f014aeee7b0b504 data/create/tags/items/create_ingots.js 4480f211f4a37bfee193eba945bc9f5a8d2c6e34 data/create/tags/items/crushed_ores.json 67385d5198d0796ec8f0d2c6ae144c672f4317a1 data/create/tags/items/modded_stripped_logs.json 27a1074a88a7b939c811341086afece325ed724c data/create/tags/items/modded_stripped_wood.json -7973972edb524683ef365bc103fcfcde0858a854 data/create/tags/items/pressurized_air_sources.json +8c8f6658ee72bdea2fcef77bade7bfa48de784c8 data/create/tags/items/pressurized_air_sources.json bce28787b0271382842823d04a977912a88b01c2 data/create/tags/items/sandpaper.json 6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json 0f4276a6b7da5f4dee8909802e6717a4c97f0555 data/create/tags/items/sleepers.json @@ -5735,7 +5741,7 @@ e16d74571ae10007f06f3b86ddf05d3ca9b73559 data/minecraft/tags/blocks/doors.json 69f596fcb065e26b02ce246760432b5174191b76 data/minecraft/tags/blocks/impermeable.json 2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/lush_ground_replaceable.json f1d3b91aab8ea3c59a06b8ccc1a469b3ef953220 data/minecraft/tags/blocks/mineable/axe.json -95508e50d0c11690a4a8938c731930cca3384c90 data/minecraft/tags/blocks/mineable/pickaxe.json +53541d9dce5cf1462da568b9bde5a11d8fbe24b7 data/minecraft/tags/blocks/mineable/pickaxe.json 2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/moss_replaceable.json e157c1d3af30e409e34bbefbe15a037e6e1c8daa data/minecraft/tags/blocks/needs_iron_tool.json a08f67865337f62601c5e333b4011382d10020e4 data/minecraft/tags/blocks/needs_stone_tool.json diff --git a/src/generated/resources/assets/create/blockstates/netherite_backtank.json b/src/generated/resources/assets/create/blockstates/netherite_backtank.json new file mode 100644 index 000000000..c8113d106 --- /dev/null +++ b/src/generated/resources/assets/create/blockstates/netherite_backtank.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,waterlogged=false": { + "model": "create:block/netherite_backtank/block" + }, + "facing=south,waterlogged=false": { + "model": "create:block/netherite_backtank/block", + "y": 180 + }, + "facing=west,waterlogged=false": { + "model": "create:block/netherite_backtank/block", + "y": 270 + }, + "facing=east,waterlogged=false": { + "model": "create:block/netherite_backtank/block", + "y": 90 + }, + "facing=north,waterlogged=true": { + "model": "create:block/netherite_backtank/block" + }, + "facing=south,waterlogged=true": { + "model": "create:block/netherite_backtank/block", + "y": 180 + }, + "facing=west,waterlogged=true": { + "model": "create:block/netherite_backtank/block", + "y": 270 + }, + "facing=east,waterlogged=true": { + "model": "create:block/netherite_backtank/block", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/lang/en_ud.json b/src/generated/resources/assets/create/lang/en_ud.json index d25c3ca47..f707d980c 100644 --- a/src/generated/resources/assets/create/lang/en_ud.json +++ b/src/generated/resources/assets/create/lang/en_ud.json @@ -306,6 +306,7 @@ "block.create.millstone": "\u01DDuo\u0287s\u05DF\u05DF\u0131W", "block.create.minecart_anchor": "\u0279o\u0265\u0254u\u2C6F \u0287\u0279\u0250\u0254\u01DDu\u0131W", "block.create.mysterious_cuckoo_clock": "\u029E\u0254o\u05DF\u0186 oo\u029E\u0254n\u0186", + "block.create.netherite_backtank": "\u029Eu\u0250\u0287\u029E\u0254\u0250\u15FA \u01DD\u0287\u0131\u0279\u01DD\u0265\u0287\u01DDN", "block.create.nixie_tube": "\u01DDqn\u27D8 \u01DD\u0131x\u0131N", "block.create.nozzle": "\u01DD\u05DFzzoN", "block.create.oak_window": "\u028Dopu\u0131M \u029E\u0250O", @@ -592,6 +593,8 @@ "item.create.cinder_flour": "\u0279no\u05DF\u2132 \u0279\u01DDpu\u0131\u0186", "item.create.copper_backtank": "\u029Eu\u0250\u0287\u029E\u0254\u0250\u15FA \u0279\u01DDddo\u0186", "item.create.copper_backtank_placeable": "\u01DD\u05DFq\u0250\u01DD\u0254\u0250\u05DF\u0500 \u029Eu\u0250\u0287\u029E\u0254\u0250\u15FA \u0279\u01DDddo\u0186", + "item.create.copper_diving_boots": "s\u0287oo\u15FA bu\u0131\u028C\u0131\u15E1 \u0279\u01DDddo\u0186", + "item.create.copper_diving_helmet": "\u0287\u01DD\u026F\u05DF\u01DDH bu\u0131\u028C\u0131\u15E1 \u0279\u01DDddo\u0186", "item.create.copper_nugget": "\u0287\u01DDbbnN \u0279\u01DDddo\u0186", "item.create.copper_sheet": "\u0287\u01DD\u01DD\u0265S \u0279\u01DDddo\u0186", "item.create.crafter_slot_cover": "\u0279\u01DD\u028Co\u0186 \u0287o\u05DFS \u0279\u01DD\u0287\u025F\u0250\u0279\u0186", @@ -610,8 +613,6 @@ "item.create.crushed_tin_ore": "\u01DD\u0279O u\u0131\u27D8 p\u01DD\u0265sn\u0279\u0186", "item.create.crushed_uranium_ore": "\u01DD\u0279O \u026Fn\u0131u\u0250\u0279\u2229 p\u01DD\u0265sn\u0279\u0186", "item.create.crushed_zinc_ore": "\u01DD\u0279O \u0254u\u0131Z p\u01DD\u0265sn\u0279\u0186", - "item.create.diving_boots": "s\u0287oo\u15FA bu\u0131\u028C\u0131\u15E1", - "item.create.diving_helmet": "\u0287\u01DD\u026F\u05DF\u01DDH bu\u0131\u028C\u0131\u15E1", "item.create.dough": "\u0265bno\u15E1", "item.create.electron_tube": "\u01DDqn\u27D8 uo\u0279\u0287\u0254\u01DD\u05DF\u018E", "item.create.empty_blaze_burner": "\u0279\u01DDu\u0279n\u15FA \u01DDz\u0250\u05DF\u15FA \u028E\u0287d\u026F\u018E", @@ -631,6 +632,10 @@ "item.create.linked_controller": "\u0279\u01DD\u05DF\u05DFo\u0279\u0287uo\u0186 p\u01DD\u029Eu\u0131\uA780", "item.create.minecart_contraption": "uo\u0131\u0287d\u0250\u0279\u0287uo\u0186 \u0287\u0279\u0250\u0254\u01DDu\u0131W", "item.create.minecart_coupling": "bu\u0131\u05DFdno\u0186 \u0287\u0279\u0250\u0254\u01DDu\u0131W", + "item.create.netherite_backtank": "\u029Eu\u0250\u0287\u029E\u0254\u0250\u15FA \u01DD\u0287\u0131\u0279\u01DD\u0265\u0287\u01DDN", + "item.create.netherite_backtank_placeable": "\u01DD\u05DFq\u0250\u01DD\u0254\u0250\u05DF\u0500 \u029Eu\u0250\u0287\u029E\u0254\u0250\u15FA \u01DD\u0287\u0131\u0279\u01DD\u0265\u0287\u01DDN", + "item.create.netherite_diving_boots": "s\u0287oo\u15FA bu\u0131\u028C\u0131\u15E1 \u01DD\u0287\u0131\u0279\u01DD\u0265\u0287\u01DDN", + "item.create.netherite_diving_helmet": "\u0287\u01DD\u026F\u05DF\u01DDH bu\u0131\u028C\u0131\u15E1 \u01DD\u0287\u0131\u0279\u01DD\u0265\u0287\u01DDN", "item.create.polished_rose_quartz": "z\u0287\u0279\u0250n\u1F49 \u01DDso\u1D1A p\u01DD\u0265s\u0131\u05DFo\u0500", "item.create.potato_cannon": "uouu\u0250\u0186 o\u0287\u0250\u0287o\u0500", "item.create.powdered_obsidian": "u\u0250\u0131p\u0131sqO p\u01DD\u0279\u01DDp\u028Do\u0500", diff --git a/src/generated/resources/assets/create/lang/en_us.json b/src/generated/resources/assets/create/lang/en_us.json index f1be35b9c..b1f5c9e4e 100644 --- a/src/generated/resources/assets/create/lang/en_us.json +++ b/src/generated/resources/assets/create/lang/en_us.json @@ -309,6 +309,7 @@ "block.create.millstone": "Millstone", "block.create.minecart_anchor": "Minecart Anchor", "block.create.mysterious_cuckoo_clock": "Cuckoo Clock", + "block.create.netherite_backtank": "Netherite Backtank", "block.create.nixie_tube": "Nixie Tube", "block.create.nozzle": "Nozzle", "block.create.oak_window": "Oak Window", @@ -599,6 +600,8 @@ "item.create.cinder_flour": "Cinder Flour", "item.create.copper_backtank": "Copper Backtank", "item.create.copper_backtank_placeable": "Copper Backtank Placeable", + "item.create.copper_diving_boots": "Copper Diving Boots", + "item.create.copper_diving_helmet": "Copper Diving Helmet", "item.create.copper_nugget": "Copper Nugget", "item.create.copper_sheet": "Copper Sheet", "item.create.crafter_slot_cover": "Crafter Slot Cover", @@ -617,8 +620,6 @@ "item.create.crushed_tin_ore": "Crushed Tin Ore", "item.create.crushed_uranium_ore": "Crushed Uranium Ore", "item.create.crushed_zinc_ore": "Crushed Zinc Ore", - "item.create.diving_boots": "Diving Boots", - "item.create.diving_helmet": "Diving Helmet", "item.create.dough": "Dough", "item.create.electron_tube": "Electron Tube", "item.create.empty_blaze_burner": "Empty Blaze Burner", @@ -638,6 +639,10 @@ "item.create.linked_controller": "Linked Controller", "item.create.minecart_contraption": "Minecart Contraption", "item.create.minecart_coupling": "Minecart Coupling", + "item.create.netherite_backtank": "Netherite Backtank", + "item.create.netherite_backtank_placeable": "Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "Netherite Diving Boots", + "item.create.netherite_diving_helmet": "Netherite Diving Helmet", "item.create.polished_rose_quartz": "Polished Rose Quartz", "item.create.potato_cannon": "Potato Cannon", "item.create.powdered_obsidian": "Powdered Obsidian", @@ -1862,17 +1867,17 @@ "item.create.tree_fertilizer.tooltip.behaviour1": "Grows Trees _regardless_ of their _spacing conditions_", "item.create.extendo_grip.tooltip": "EXTENDO GRIP", - "item.create.extendo_grip.tooltip.summary": "Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.extendo_grip.tooltip.summary": "Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Backtank_", "item.create.extendo_grip.tooltip.condition1": "When in Off-Hand", "item.create.extendo_grip.tooltip.behaviour1": "Increases _reach distance_ of items used in the _Main-Hand_.", - "item.create.extendo_grip.tooltip.condition2": "While wearing Copper Backtank", + "item.create.extendo_grip.tooltip.condition2": "While wearing Backtank", "item.create.extendo_grip.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.potato_cannon.tooltip": "POTATO CANNON", - "item.create.potato_cannon.tooltip.summary": "Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.potato_cannon.tooltip.summary": "Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Backtank_", "item.create.potato_cannon.tooltip.condition1": "When R-Clicked", "item.create.potato_cannon.tooltip.behaviour1": "_Shoots_ a suitable item from your _Inventory_.", - "item.create.potato_cannon.tooltip.condition2": "While wearing Copper Backtank", + "item.create.potato_cannon.tooltip.condition2": "While wearing Backtank", "item.create.potato_cannon.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.filter.tooltip": "FILTER", @@ -2015,7 +2020,7 @@ "item.create.linked_controller.tooltip.behaviour4": "Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)", "item.create.diving_helmet.tooltip": "DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "Together with a _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "When Worn", "item.create.diving_helmet.tooltip.behaviour1": "Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -2026,6 +2031,13 @@ "item.create.copper_backtank.tooltip.condition2": "When placed, Powered by Kinetics", "item.create.copper_backtank.tooltip.behaviour2": "_Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "item.create.netherite_backtank.tooltip": "NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "_Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "PLACARD", "block.create.placard.tooltip.summary": "_Frame_ your _items_ in brass using this fancy wall panel. Safe for contraptions!", "block.create.placard.tooltip.condition1": "When R-Clicked with Item", diff --git a/src/generated/resources/assets/create/lang/unfinished/de_de.json b/src/generated/resources/assets/create/lang/unfinished/de_de.json index d567eac6b..044a0069c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/de_de.json +++ b/src/generated/resources/assets/create/lang/unfinished/de_de.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 853", + "_": "Missing Localizations: 866", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "Mahlstein", "block.create.minecart_anchor": "Lorenanker", "block.create.mysterious_cuckoo_clock": "Kuckucksuhr", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "Nixie-Röhre", "block.create.nozzle": "Düse", "block.create.oak_window": "Eichenfenster", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Aschenmehl", "item.create.copper_backtank": "Kupferner Rückentank", "item.create.copper_backtank_placeable": "Platzierbarer Kupferner Rückentank", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Kupferklumpen", "item.create.copper_sheet": "Kupferblech", "item.create.crafter_slot_cover": "Handwerkseinheit Slot Abdeckung", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Zerkleinertes Zinnerz", "item.create.crushed_uranium_ore": "Zerkleinertes Uranerz", "item.create.crushed_zinc_ore": "Zerkleinertes Zinkerz", - "item.create.diving_boots": "Tauchstiefel", - "item.create.diving_helmet": "Tauchhelm", "item.create.dough": "Teig", "item.create.electron_tube": "Elektronenröhre", "item.create.empty_blaze_burner": "Leerer Lohenbrenner", @@ -639,6 +640,10 @@ "item.create.linked_controller": "Fernsteuerung", "item.create.minecart_contraption": "Loren Vorrichtung", "item.create.minecart_coupling": "Lorenkupplung", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Polierter Rosenquarz", "item.create.potato_cannon": "Kartoffelkanone", "item.create.powdered_obsidian": "Pulverisierter Obsidian", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "Wenn platziert und mit kinetischer Energie betrieben", "item.create.copper_backtank.tooltip.behaviour2": "_Sammelt_ _komprimierte_ _Luft_ mit einer Geschwindigkeit basierend auf der Rotationsgeschwindigkeit.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "UNLOCALIZED: PLACARD", "block.create.placard.tooltip.summary": "UNLOCALIZED: _Frame_ your _items_ in brass using this fancy wall panel. Safe for contraptions!", "block.create.placard.tooltip.condition1": "UNLOCALIZED: When R-Clicked with Item", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_cl.json b/src/generated/resources/assets/create/lang/unfinished/es_cl.json index 78a7e6d2b..54776c155 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_cl.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_cl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 999", + "_": "Missing Localizations: 1012", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "Piedra de Molino", "block.create.minecart_anchor": "Ancla de Vagoneta", "block.create.mysterious_cuckoo_clock": "Reloj Cu-Cú", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "Tubo Nixie", "block.create.nozzle": "Boquilla", "block.create.oak_window": "Ventana de Roble", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Harina de Cenizas", "item.create.copper_backtank": "Mochila-Tanque de Cobre", "item.create.copper_backtank_placeable": "UNLOCALIZED: Copper Backtank Placeable", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Nugget de Cobre", "item.create.copper_sheet": "Plancha de Cobre", "item.create.crafter_slot_cover": "Cubre Ranuras", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Mineral de Estaño Triturado", "item.create.crushed_uranium_ore": "Mineral de Uranio Triturado", "item.create.crushed_zinc_ore": "Mineral de Zinc Triturado", - "item.create.diving_boots": "Botas de Buceo", - "item.create.diving_helmet": "Casco de Buceo", "item.create.dough": "Masa", "item.create.electron_tube": "Tubo de Electrones", "item.create.empty_blaze_burner": "Quemador Blaze Vacío", @@ -639,6 +640,10 @@ "item.create.linked_controller": "Controlador Vinculable", "item.create.minecart_contraption": "Contrapción de Vagoneta", "item.create.minecart_coupling": "Acoplamiento de Vagonetas", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Cuarzo Rosa Pulido", "item.create.potato_cannon": "Cañón de Papas", "item.create.powdered_obsidian": "Obsidiana Pulverizada", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "Al colocarlo, y darle Cinética", "item.create.copper_backtank.tooltip.behaviour2": "_Recolecta_ _Aire_ _Comprimido_ a una velocidad dependiente de la velocidad de rotación.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "UNLOCALIZED: PLACARD", "block.create.placard.tooltip.summary": "UNLOCALIZED: _Frame_ your _items_ in brass using this fancy wall panel. Safe for contraptions!", "block.create.placard.tooltip.condition1": "UNLOCALIZED: When R-Clicked with Item", diff --git a/src/generated/resources/assets/create/lang/unfinished/es_es.json b/src/generated/resources/assets/create/lang/unfinished/es_es.json index 3f5be979d..4fdc694f1 100644 --- a/src/generated/resources/assets/create/lang/unfinished/es_es.json +++ b/src/generated/resources/assets/create/lang/unfinished/es_es.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 19", + "_": "Missing Localizations: 32", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "Piedra de molino", "block.create.minecart_anchor": "Ancla de vagonetas", "block.create.mysterious_cuckoo_clock": "Reloj de cuco", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "Tubo Nixie", "block.create.nozzle": "Boquilla", "block.create.oak_window": "Ventana de roble", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Harina del Nether", "item.create.copper_backtank": "Depósito trasero de cobre", "item.create.copper_backtank_placeable": "Depósito de cobre colocable", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Pepita de cobre", "item.create.copper_sheet": "Lámina de cobre", "item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Mineral de estaño molido", "item.create.crushed_uranium_ore": "Mineral de uranio molido", "item.create.crushed_zinc_ore": "Mineral de cinc molido", - "item.create.diving_boots": "Botas de buceo", - "item.create.diving_helmet": "Casco de buceo", "item.create.dough": "Masa", "item.create.electron_tube": "Tubo de electrones", "item.create.empty_blaze_burner": "Quemador de blaze vacío", @@ -639,6 +640,10 @@ "item.create.linked_controller": "Controlador enlazado", "item.create.minecart_contraption": "Artefacto móvil de vagoneta", "item.create.minecart_coupling": "Acoplamiento de vagoneta", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Cuarzo rosado pulido", "item.create.potato_cannon": "Cañón de patatas", "item.create.powdered_obsidian": "Polvo de obsidiana", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "Cuando se coloca y es alimentado por cinética", "item.create.copper_backtank.tooltip.behaviour2": "Recoge _aire presurizado_ a un ritmo que depende de la velocidad rotacional.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "Pancarta", "block.create.placard.tooltip.summary": "_Enmarca_ tus _objetos_ en latón usando este fantástico mural. ¡Seguro para artefactos móviles!", "block.create.placard.tooltip.condition1": "Cuando se usa clic derecho con un objeto", diff --git a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json index 5a4ee5f26..3f590a96c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/fr_fr.json +++ b/src/generated/resources/assets/create/lang/unfinished/fr_fr.json @@ -310,6 +310,7 @@ "block.create.millstone": "UNLOCALIZED: Millstone", "block.create.minecart_anchor": "UNLOCALIZED: Minecart Anchor", "block.create.mysterious_cuckoo_clock": "UNLOCALIZED: Cuckoo Clock", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "UNLOCALIZED: Nixie Tube", "block.create.nozzle": "Buse", "block.create.oak_window": "UNLOCALIZED: Oak Window", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Farine de braise", "item.create.copper_backtank": "UNLOCALIZED: Copper Backtank", "item.create.copper_backtank_placeable": "UNLOCALIZED: Copper Backtank Placeable", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Pépite de cuivre", "item.create.copper_sheet": "Plaques de cuivre", "item.create.crafter_slot_cover": "Couvercle", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Etain concassé", "item.create.crushed_uranium_ore": "Uranium concassé", "item.create.crushed_zinc_ore": "Zinc concassé", - "item.create.diving_boots": "UNLOCALIZED: Diving Boots", - "item.create.diving_helmet": "UNLOCALIZED: Diving Helmet", "item.create.dough": "Pâte", "item.create.electron_tube": "Tube électronique", "item.create.empty_blaze_burner": "Brûleur à blaze vide", @@ -639,6 +640,10 @@ "item.create.linked_controller": "UNLOCALIZED: Linked Controller", "item.create.minecart_contraption": "Engin de wagonnet", "item.create.minecart_coupling": "Lien pour wagonnet", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Quartz rose poli", "item.create.potato_cannon": "UNLOCALIZED: Potato Cannon", "item.create.powdered_obsidian": "Obsidienne concassée", @@ -1863,17 +1868,17 @@ "item.create.tree_fertilizer.tooltip.behaviour1": "Fait pousser des rotors _indépendamment_ de leurs _conditions_ _d'emplacement_", "item.create.extendo_grip.tooltip": "UNLOCALIZED: EXTENDO GRIP", - "item.create.extendo_grip.tooltip.summary": "UNLOCALIZED: Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.extendo_grip.tooltip.summary": "UNLOCALIZED: Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Backtank_", "item.create.extendo_grip.tooltip.condition1": "UNLOCALIZED: When in Off-Hand", "item.create.extendo_grip.tooltip.behaviour1": "UNLOCALIZED: Increases _reach distance_ of items used in the _Main-Hand_.", - "item.create.extendo_grip.tooltip.condition2": "UNLOCALIZED: While wearing Copper Backtank", + "item.create.extendo_grip.tooltip.condition2": "UNLOCALIZED: While wearing Backtank", "item.create.extendo_grip.tooltip.behaviour2": "UNLOCALIZED: _No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.potato_cannon.tooltip": "UNLOCALIZED: POTATO CANNON", - "item.create.potato_cannon.tooltip.summary": "UNLOCALIZED: Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.potato_cannon.tooltip.summary": "UNLOCALIZED: Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Backtank_", "item.create.potato_cannon.tooltip.condition1": "UNLOCALIZED: When R-Clicked", "item.create.potato_cannon.tooltip.behaviour1": "UNLOCALIZED: _Shoots_ a suitable item from your _Inventory_.", - "item.create.potato_cannon.tooltip.condition2": "UNLOCALIZED: While wearing Copper Backtank", + "item.create.potato_cannon.tooltip.condition2": "UNLOCALIZED: While wearing Backtank", "item.create.potato_cannon.tooltip.behaviour2": "UNLOCALIZED: _No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.filter.tooltip": "FILTRE", @@ -2016,7 +2021,7 @@ "item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", "item.create.copper_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "UNLOCALIZED: PLACARD", "block.create.placard.tooltip.summary": "UNLOCALIZED: _Frame_ your _items_ in brass using this fancy wall panel. Safe for contraptions!", "block.create.placard.tooltip.condition1": "UNLOCALIZED: When R-Clicked with Item", diff --git a/src/generated/resources/assets/create/lang/unfinished/it_it.json b/src/generated/resources/assets/create/lang/unfinished/it_it.json index 9324ec9b6..1044a7dea 100644 --- a/src/generated/resources/assets/create/lang/unfinished/it_it.json +++ b/src/generated/resources/assets/create/lang/unfinished/it_it.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 13", + "_": "Missing Localizations: 26", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "Macina", "block.create.minecart_anchor": "Ancora per carrello da miniera", "block.create.mysterious_cuckoo_clock": "Orologio a cucù misterioso", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "Tubo Nixie", "block.create.nozzle": "Dispersore", "block.create.oak_window": "Finestra di quercia", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Cenere farinosa", "item.create.copper_backtank": "Zaino serbatoio", "item.create.copper_backtank_placeable": "Zaino serbatoio posizionabile", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Pepita di rame", "item.create.copper_sheet": "Lamiera di rame", "item.create.crafter_slot_cover": "Copertura per slot di fabbricazione", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Stagno grezzo frantumato", "item.create.crushed_uranium_ore": "Uranio grezzo frantumato", "item.create.crushed_zinc_ore": "Zinco grezzo frantumato", - "item.create.diving_boots": "Stivali da immersione", - "item.create.diving_helmet": "Elmo da immersione", "item.create.dough": "Impasto", "item.create.electron_tube": "Tubo a vuoto", "item.create.empty_blaze_burner": "Inceneritore vuoto", @@ -639,6 +640,10 @@ "item.create.linked_controller": "Pulsantiera di comando", "item.create.minecart_contraption": "Macchinario con carrello da miniera", "item.create.minecart_coupling": "Aggancio per carrelli da miniera", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Quarzo rosa levigato", "item.create.potato_cannon": "Cannone a patate", "item.create.powdered_obsidian": "Ossidiana in polvere", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "Quando posizionato e collegato a un sistema cinetico", "item.create.copper_backtank.tooltip.behaviour2": "_Assorbe_ _aria_ _compressa_ ad una velocità dipendente dalla velocità di rotazione.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "CORNICE DI OTTONE", "block.create.placard.tooltip.summary": "_Incornicia_ i tuoi _oggetti_ in ottone usando questo elegante pannello da muro. Sicuro per i macchinari!", "block.create.placard.tooltip.condition1": "Click destro con un oggetto", diff --git a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json index 34fdc20ca..355cf6504 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ja_jp.json +++ b/src/generated/resources/assets/create/lang/unfinished/ja_jp.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 15", + "_": "Missing Localizations: 28", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "石臼", "block.create.minecart_anchor": "トロッコアンカー", "block.create.mysterious_cuckoo_clock": "鳩時計", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "ニキシー管", "block.create.nozzle": "ノズル", "block.create.oak_window": "オークの窓", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "ネザーラックの粉", "item.create.copper_backtank": "銅のバックタンク", "item.create.copper_backtank_placeable": "設置可能な銅のバックタンク", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "銅塊", "item.create.copper_sheet": "銅板", "item.create.crafter_slot_cover": "クラフタースロットカバー", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "砕いた錫鉱石", "item.create.crushed_uranium_ore": "砕いたウラン鉱石", "item.create.crushed_zinc_ore": "砕いた亜鉛鉱石", - "item.create.diving_boots": "潜水ブーツ", - "item.create.diving_helmet": "潜水ヘルメット", "item.create.dough": "生地", "item.create.electron_tube": "電子管", "item.create.empty_blaze_burner": "空のブレイズバーナー", @@ -639,6 +640,10 @@ "item.create.linked_controller": "リンクコントローラー", "item.create.minecart_contraption": "からくりトロッコ", "item.create.minecart_coupling": "トロッコ連結器", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "磨かれたローズクォーツ", "item.create.potato_cannon": "ポテトキャノン", "item.create.powdered_obsidian": "黒曜石の粉", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "設置して動力を供給したとき", "item.create.copper_backtank.tooltip.behaviour2": "_圧縮空気_を_集めます_。速度は回転速度によって決まります。", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "プラカード", "block.create.placard.tooltip.summary": "このイカした真鍮の壁掛けパネルにアイテムを飾ろう。からくりにつけても大丈夫!", "block.create.placard.tooltip.condition1": "右クリックしたとき", diff --git a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json index 80394cd5a..719a7b46c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ko_kr.json +++ b/src/generated/resources/assets/create/lang/unfinished/ko_kr.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 19", + "_": "Missing Localizations: 32", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "맷돌", "block.create.minecart_anchor": "광산 수레 정박기", "block.create.mysterious_cuckoo_clock": "뻐꾸기 시계", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "닉시관", "block.create.nozzle": "노즐", "block.create.oak_window": "참나무 유리창", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "잿가루", "item.create.copper_backtank": "구리 산소통", "item.create.copper_backtank_placeable": "구리 산소통", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "구리 조각", "item.create.copper_sheet": "구리 판", "item.create.crafter_slot_cover": "조합기 슬롯 덮개", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "분쇄된 주석 광석", "item.create.crushed_uranium_ore": "분쇄된 우라늄 광석", "item.create.crushed_zinc_ore": "분쇄된 아연 광석", - "item.create.diving_boots": "다이빙 부츠", - "item.create.diving_helmet": "다이빙 헬멧", "item.create.dough": "반죽", "item.create.electron_tube": "전지 튜브", "item.create.empty_blaze_burner": "빈 블레이즈 버너", @@ -639,6 +640,10 @@ "item.create.linked_controller": "레드스톤 링크 조작기", "item.create.minecart_contraption": "광산 수레 구조물", "item.create.minecart_coupling": "광산 수레 커플링", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "윤나는 장밋빛 석영", "item.create.potato_cannon": "감자포", "item.create.powdered_obsidian": "흑요석 가루", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "설치되고 동력으로 회전될 때", "item.create.copper_backtank.tooltip.behaviour2": "동력 속도에 따라 _공기_를 _모읍니다_.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "PLACARD", "block.create.placard.tooltip.summary": "_아이템_을 황동안에 _장식_하세요. 구조물에도 사용할 수 있습니다!", "block.create.placard.tooltip.condition1": "아이템을 들고 우클릭", diff --git a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json index 207b4ac50..056daaa70 100644 --- a/src/generated/resources/assets/create/lang/unfinished/nl_nl.json +++ b/src/generated/resources/assets/create/lang/unfinished/nl_nl.json @@ -310,6 +310,7 @@ "block.create.millstone": "UNLOCALIZED: Millstone", "block.create.minecart_anchor": "UNLOCALIZED: Minecart Anchor", "block.create.mysterious_cuckoo_clock": "UNLOCALIZED: Cuckoo Clock", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "UNLOCALIZED: Nixie Tube", "block.create.nozzle": "UNLOCALIZED: Nozzle", "block.create.oak_window": "UNLOCALIZED: Oak Window", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "UNLOCALIZED: Cinder Flour", "item.create.copper_backtank": "UNLOCALIZED: Copper Backtank", "item.create.copper_backtank_placeable": "UNLOCALIZED: Copper Backtank Placeable", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Koper klompje", "item.create.copper_sheet": "UNLOCALIZED: Copper Sheet", "item.create.crafter_slot_cover": "UNLOCALIZED: Crafter Slot Cover", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "UNLOCALIZED: Crushed Tin Ore", "item.create.crushed_uranium_ore": "UNLOCALIZED: Crushed Uranium Ore", "item.create.crushed_zinc_ore": "UNLOCALIZED: Crushed Zinc Ore", - "item.create.diving_boots": "UNLOCALIZED: Diving Boots", - "item.create.diving_helmet": "UNLOCALIZED: Diving Helmet", "item.create.dough": "Deeg", "item.create.electron_tube": "UNLOCALIZED: Electron Tube", "item.create.empty_blaze_burner": "UNLOCALIZED: Empty Blaze Burner", @@ -639,6 +640,10 @@ "item.create.linked_controller": "UNLOCALIZED: Linked Controller", "item.create.minecart_contraption": "UNLOCALIZED: Minecart Contraption", "item.create.minecart_coupling": "UNLOCALIZED: Minecart Coupling", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "UNLOCALIZED: Polished Rose Quartz", "item.create.potato_cannon": "UNLOCALIZED: Potato Cannon", "item.create.powdered_obsidian": "UNLOCALIZED: Powdered Obsidian", @@ -1863,17 +1868,17 @@ "item.create.tree_fertilizer.tooltip.behaviour1": "Groeit bomen onafhankelijk van beschikbare ruimte", "item.create.extendo_grip.tooltip": "UNLOCALIZED: EXTENDO GRIP", - "item.create.extendo_grip.tooltip.summary": "UNLOCALIZED: Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.extendo_grip.tooltip.summary": "UNLOCALIZED: Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Backtank_", "item.create.extendo_grip.tooltip.condition1": "UNLOCALIZED: When in Off-Hand", "item.create.extendo_grip.tooltip.behaviour1": "UNLOCALIZED: Increases _reach distance_ of items used in the _Main-Hand_.", - "item.create.extendo_grip.tooltip.condition2": "UNLOCALIZED: While wearing Copper Backtank", + "item.create.extendo_grip.tooltip.condition2": "UNLOCALIZED: While wearing Backtank", "item.create.extendo_grip.tooltip.behaviour2": "UNLOCALIZED: _No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.potato_cannon.tooltip": "UNLOCALIZED: POTATO CANNON", - "item.create.potato_cannon.tooltip.summary": "UNLOCALIZED: Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.potato_cannon.tooltip.summary": "UNLOCALIZED: Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Backtank_", "item.create.potato_cannon.tooltip.condition1": "UNLOCALIZED: When R-Clicked", "item.create.potato_cannon.tooltip.behaviour1": "UNLOCALIZED: _Shoots_ a suitable item from your _Inventory_.", - "item.create.potato_cannon.tooltip.condition2": "UNLOCALIZED: While wearing Copper Backtank", + "item.create.potato_cannon.tooltip.condition2": "UNLOCALIZED: While wearing Backtank", "item.create.potato_cannon.tooltip.behaviour2": "UNLOCALIZED: _No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.filter.tooltip": "UNLOCALIZED: FILTER", @@ -2016,7 +2021,7 @@ "item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", "item.create.copper_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "UNLOCALIZED: PLACARD", "block.create.placard.tooltip.summary": "UNLOCALIZED: _Frame_ your _items_ in brass using this fancy wall panel. Safe for contraptions!", "block.create.placard.tooltip.condition1": "UNLOCALIZED: When R-Clicked with Item", diff --git a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json index eca30b91b..4b9101779 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pl_pl.json +++ b/src/generated/resources/assets/create/lang/unfinished/pl_pl.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 23", + "_": "Missing Localizations: 36", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "Młynek", "block.create.minecart_anchor": "Kotwica wagonikowa", "block.create.mysterious_cuckoo_clock": "Zegar z kukułką", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "Lampa cyfrowa", "block.create.nozzle": "Dysza", "block.create.oak_window": "Dębowe okno", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Rozżarzona mąka", "item.create.copper_backtank": "Miedziany zbiornik w plecaku", "item.create.copper_backtank_placeable": "Stacjonarny miedziany zbiornik w plecaku", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Bryłka miedzi", "item.create.copper_sheet": "Arkusz miedzi", "item.create.crafter_slot_cover": "Przykrywka na slot stołu rzemieślniczego", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Rozkruszona ruda cyny", "item.create.crushed_uranium_ore": "Rozkruszona ruda uranu", "item.create.crushed_zinc_ore": "Rozkruszona ruda cynku", - "item.create.diving_boots": "Buty do nurkowania", - "item.create.diving_helmet": "Hełm do nurkowania", "item.create.dough": "Ciasto", "item.create.electron_tube": "Lampa elektronowa", "item.create.empty_blaze_burner": "Pusty płomienny palnik", @@ -639,6 +640,10 @@ "item.create.linked_controller": "Zdalny sterownik", "item.create.minecart_contraption": "Maszyna w wagoniku", "item.create.minecart_coupling": "Łącznik wagoników", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Wypolerowany różowy kwarc", "item.create.potato_cannon": "Armata na ziemniaki", "item.create.powdered_obsidian": "Sproszkowany obsydian", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "Po postawieniu i zasileniu siłą obrotową", "item.create.copper_backtank.tooltip.behaviour2": "_Zbiera_ _sprężone_ _powietrze_, w tempie zależnym od prędkości obrotu.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "Plakietka", "block.create.placard.tooltip.summary": "_Opraw_ swoje przedmioty w mosiądzu używając tego eleganckiego panelu ściennego. Dozwolone na maszynach!", "block.create.placard.tooltip.condition1": "Kliknięcie PPM przedmiotem", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_br.json b/src/generated/resources/assets/create/lang/unfinished/pt_br.json index a06725447..a47a0b41c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_br.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_br.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 1342", + "_": "Missing Localizations: 1355", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "Pedra de Moer", "block.create.minecart_anchor": "Ancóra de carrinho de Mina", "block.create.mysterious_cuckoo_clock": "Relógio cuckoo", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "Tubo Nixie", "block.create.nozzle": "Bocal", "block.create.oak_window": "janela de carvalho", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Farinha de Netherrack", "item.create.copper_backtank": "Tanque Traseiro de cobre", "item.create.copper_backtank_placeable": "Tanque de cobre traseiro colocável", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Pepita de Cobre", "item.create.copper_sheet": "Chapa de Cobre", "item.create.crafter_slot_cover": "Cobertura do slot de fabricador", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Minério de Estanho Esmagado", "item.create.crushed_uranium_ore": "Urânio Esmagado", "item.create.crushed_zinc_ore": "Minério de Zinco Esmagado", - "item.create.diving_boots": "Botas de Mergulhador", - "item.create.diving_helmet": "Capacete de Mergulhador", "item.create.dough": "Massa de pão", "item.create.electron_tube": "Tubo de Elétron", "item.create.empty_blaze_burner": "Queimador de Blaze Vazio", @@ -639,6 +640,10 @@ "item.create.linked_controller": "Controle conectado", "item.create.minecart_contraption": "Engenhoca de Carrinho de Mina", "item.create.minecart_coupling": "Acoplamento de Carrinho de Mina", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Quartzo Rosa Polido", "item.create.potato_cannon": "Canhão de Batata", "item.create.powdered_obsidian": "Pó de Obsidiana", @@ -1863,17 +1868,17 @@ "item.create.tree_fertilizer.tooltip.behaviour1": "Cresce Árvores independentemente das suas Regras de espaço", "item.create.extendo_grip.tooltip": "UNLOCALIZED: EXTENDO GRIP", - "item.create.extendo_grip.tooltip.summary": "UNLOCALIZED: Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.extendo_grip.tooltip.summary": "UNLOCALIZED: Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Backtank_", "item.create.extendo_grip.tooltip.condition1": "UNLOCALIZED: When in Off-Hand", "item.create.extendo_grip.tooltip.behaviour1": "UNLOCALIZED: Increases _reach distance_ of items used in the _Main-Hand_.", - "item.create.extendo_grip.tooltip.condition2": "UNLOCALIZED: While wearing Copper Backtank", + "item.create.extendo_grip.tooltip.condition2": "UNLOCALIZED: While wearing Backtank", "item.create.extendo_grip.tooltip.behaviour2": "UNLOCALIZED: _No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.potato_cannon.tooltip": "UNLOCALIZED: POTATO CANNON", - "item.create.potato_cannon.tooltip.summary": "UNLOCALIZED: Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.potato_cannon.tooltip.summary": "UNLOCALIZED: Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Backtank_", "item.create.potato_cannon.tooltip.condition1": "UNLOCALIZED: When R-Clicked", "item.create.potato_cannon.tooltip.behaviour1": "UNLOCALIZED: _Shoots_ a suitable item from your _Inventory_.", - "item.create.potato_cannon.tooltip.condition2": "UNLOCALIZED: While wearing Copper Backtank", + "item.create.potato_cannon.tooltip.condition2": "UNLOCALIZED: While wearing Backtank", "item.create.potato_cannon.tooltip.behaviour2": "UNLOCALIZED: _No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.filter.tooltip": "UNLOCALIZED: FILTER", @@ -2016,7 +2021,7 @@ "item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", "item.create.copper_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "UNLOCALIZED: PLACARD", "block.create.placard.tooltip.summary": "UNLOCALIZED: _Frame_ your _items_ in brass using this fancy wall panel. Safe for contraptions!", "block.create.placard.tooltip.condition1": "UNLOCALIZED: When R-Clicked with Item", diff --git a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json index 4c2e0ac5a..a4a5fc425 100644 --- a/src/generated/resources/assets/create/lang/unfinished/pt_pt.json +++ b/src/generated/resources/assets/create/lang/unfinished/pt_pt.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 2207", + "_": "Missing Localizations: 2220", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "Pedra de Moer", "block.create.minecart_anchor": "Ancóra de carrinho de Mina", "block.create.mysterious_cuckoo_clock": "Relógio cuckoo", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "Tubo Nixie", "block.create.nozzle": "Bocal", "block.create.oak_window": "UNLOCALIZED: Oak Window", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Farinha de Netherrack", "item.create.copper_backtank": "Tanque Traseiro", "item.create.copper_backtank_placeable": "UNLOCALIZED: Copper Backtank Placeable", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Pepita de Cobre", "item.create.copper_sheet": "Chapa de Cobre", "item.create.crafter_slot_cover": "Cobertura do slot de fabricador", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Minério de Estanho Esmagado", "item.create.crushed_uranium_ore": "Urânio Esmagado", "item.create.crushed_zinc_ore": "Minério de Zinco Esmagado", - "item.create.diving_boots": "Botas de Mergulhador", - "item.create.diving_helmet": "Capacete de Mergulhador", "item.create.dough": "Massa de pão", "item.create.electron_tube": "Tubo de Elétron", "item.create.empty_blaze_burner": "Queimador de Blaze Vazio", @@ -639,6 +640,10 @@ "item.create.linked_controller": "Controle conectado", "item.create.minecart_contraption": "Engenhoca de Carrino de Mina", "item.create.minecart_coupling": "Acoplamento de Carrinho de Mina", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Quartzo Rosa Polido", "item.create.potato_cannon": "Canhão de Batata", "item.create.powdered_obsidian": "Pó de Obsidiana", @@ -1863,17 +1868,17 @@ "item.create.tree_fertilizer.tooltip.behaviour1": "Cresce Arvores independentemente das suas Regras de espaço", "item.create.extendo_grip.tooltip": "UNLOCALIZED: EXTENDO GRIP", - "item.create.extendo_grip.tooltip.summary": "UNLOCALIZED: Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.extendo_grip.tooltip.summary": "UNLOCALIZED: Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Backtank_", "item.create.extendo_grip.tooltip.condition1": "UNLOCALIZED: When in Off-Hand", "item.create.extendo_grip.tooltip.behaviour1": "UNLOCALIZED: Increases _reach distance_ of items used in the _Main-Hand_.", - "item.create.extendo_grip.tooltip.condition2": "UNLOCALIZED: While wearing Copper Backtank", + "item.create.extendo_grip.tooltip.condition2": "UNLOCALIZED: While wearing Backtank", "item.create.extendo_grip.tooltip.behaviour2": "UNLOCALIZED: _No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.potato_cannon.tooltip": "UNLOCALIZED: POTATO CANNON", - "item.create.potato_cannon.tooltip.summary": "UNLOCALIZED: Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.potato_cannon.tooltip.summary": "UNLOCALIZED: Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Backtank_", "item.create.potato_cannon.tooltip.condition1": "UNLOCALIZED: When R-Clicked", "item.create.potato_cannon.tooltip.behaviour1": "UNLOCALIZED: _Shoots_ a suitable item from your _Inventory_.", - "item.create.potato_cannon.tooltip.condition2": "UNLOCALIZED: While wearing Copper Backtank", + "item.create.potato_cannon.tooltip.condition2": "UNLOCALIZED: While wearing Backtank", "item.create.potato_cannon.tooltip.behaviour2": "UNLOCALIZED: _No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.filter.tooltip": "UNLOCALIZED: FILTER", @@ -2016,7 +2021,7 @@ "item.create.linked_controller.tooltip.behaviour4": "UNLOCALIZED: Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)", "item.create.diving_helmet.tooltip": "UNLOCALIZED: DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "UNLOCALIZED: Together with a _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "UNLOCALIZED: When Worn", "item.create.diving_helmet.tooltip.behaviour1": "UNLOCALIZED: Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", "item.create.copper_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "UNLOCALIZED: PLACARD", "block.create.placard.tooltip.summary": "UNLOCALIZED: _Frame_ your _items_ in brass using this fancy wall panel. Safe for contraptions!", "block.create.placard.tooltip.condition1": "UNLOCALIZED: When R-Clicked with Item", diff --git a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json index 37d996dec..e6e5d8cf9 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ro_ro.json +++ b/src/generated/resources/assets/create/lang/unfinished/ro_ro.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 666", + "_": "Missing Localizations: 679", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "Moară De Piatră", "block.create.minecart_anchor": "Ancoră De Vagonet", "block.create.mysterious_cuckoo_clock": "Ceas Cucu", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "Tub Nixie", "block.create.nozzle": "Plasă", "block.create.oak_window": "Sticlă De Stejar", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Făină De Zgură", "item.create.copper_backtank": "Backtank De Cupru", "item.create.copper_backtank_placeable": "UNLOCALIZED: Copper Backtank Placeable", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Pepită De Cupru", "item.create.copper_sheet": "Placă De Cupru", "item.create.crafter_slot_cover": "Capac De Meșter Mecanic", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Minereu De Staniu Zdrobit", "item.create.crushed_uranium_ore": "Minereu De Uraniu Zdrobit", "item.create.crushed_zinc_ore": "Minereu De Zinc Zdrobit", - "item.create.diving_boots": "Bocanci De Scufundare", - "item.create.diving_helmet": "Cască De Scufundare", "item.create.dough": "Aluat", "item.create.electron_tube": "Tub De Electroni", "item.create.empty_blaze_burner": "Arzător De Dogoreală Gol", @@ -639,6 +640,10 @@ "item.create.linked_controller": "Controlor Legat", "item.create.minecart_contraption": "Invenție De Vagonet", "item.create.minecart_coupling": "Cuplare De Vagonet", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Cuarț Roz Șlefuit", "item.create.potato_cannon": "Tun De Cartofi", "item.create.powdered_obsidian": "Praf De Obsidian", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "Când este plasat, Alimentat de Cinetice", "item.create.copper_backtank.tooltip.behaviour2": "_Colectează_ _Presiune de_ _Aer_ într-un ritm depinzând de Viteză de Rotație.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "UNLOCALIZED: PLACARD", "block.create.placard.tooltip.summary": "UNLOCALIZED: _Frame_ your _items_ in brass using this fancy wall panel. Safe for contraptions!", "block.create.placard.tooltip.condition1": "UNLOCALIZED: When R-Clicked with Item", diff --git a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json index bed5a534d..718150b8a 100644 --- a/src/generated/resources/assets/create/lang/unfinished/ru_ru.json +++ b/src/generated/resources/assets/create/lang/unfinished/ru_ru.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 11", + "_": "Missing Localizations: 24", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "Жёрнов", "block.create.minecart_anchor": "Вагонеточная опора", "block.create.mysterious_cuckoo_clock": "Странные часы с кукушкой", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "Газоразрядный индикатор", "block.create.nozzle": "Форсунка", "block.create.oak_window": "Дубовое окно", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Незераковая пыль", "item.create.copper_backtank": "Медный баллон", "item.create.copper_backtank_placeable": "Размещаемый медный баллон", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Кусочек меди", "item.create.copper_sheet": "Медный лист", "item.create.crafter_slot_cover": "Заглушка на слот крафтера", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Дроблёная оловянная руда", "item.create.crushed_uranium_ore": "Дроблёная урановая руда", "item.create.crushed_zinc_ore": "Дроблёная цинковая руда", - "item.create.diving_boots": "Ботинки для дайвинга", - "item.create.diving_helmet": "Шлем для дайвинга", "item.create.dough": "Тесто", "item.create.electron_tube": "Электронная лампа", "item.create.empty_blaze_burner": "Пустая горелка всполоха", @@ -639,6 +640,10 @@ "item.create.linked_controller": "Контроллер связей", "item.create.minecart_contraption": "Вагонеточная штуковина", "item.create.minecart_coupling": "Соединитель вагонеток", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Полированный розовый кварц", "item.create.potato_cannon": "Картофельная пушка", "item.create.powdered_obsidian": "Порошкообразный обсидиан", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "При вращении", "item.create.copper_backtank.tooltip.behaviour2": "Собирает и сжимает воздух со скоростью, зависящей от скорости вращения.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "УМНАЯ РАМКА", "block.create.placard.tooltip.summary": "_Обрамите_ свои предметы латунью с помощью этой красивой рамки. Безопасна для штуковин!", "block.create.placard.tooltip.condition1": "ПКМ по рамке с предметом в руках", diff --git a/src/generated/resources/assets/create/lang/unfinished/uk_ua.json b/src/generated/resources/assets/create/lang/unfinished/uk_ua.json index 522132907..07a44b6a0 100644 --- a/src/generated/resources/assets/create/lang/unfinished/uk_ua.json +++ b/src/generated/resources/assets/create/lang/unfinished/uk_ua.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 997", + "_": "Missing Localizations: 1010", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "Жорна", "block.create.minecart_anchor": "Якір вагонетки", "block.create.mysterious_cuckoo_clock": "Годинник із зозулею", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "Ніксі-труба", "block.create.nozzle": "Насадка", "block.create.oak_window": "Скло з дубом", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "Борошно з незераку", "item.create.copper_backtank": "Мідний балон", "item.create.copper_backtank_placeable": "UNLOCALIZED: Copper Backtank Placeable", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "Мідний самородок", "item.create.copper_sheet": "Мідний лист", "item.create.crafter_slot_cover": "Кришка слота крафта", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "Подрібнена олов'яна руда", "item.create.crushed_uranium_ore": "Подрібнена уранова руда", "item.create.crushed_zinc_ore": "Подрібнена цинкова руда", - "item.create.diving_boots": "Чоботи для дайвінгу", - "item.create.diving_helmet": "Шолом для дайвінгу", "item.create.dough": "Тісто", "item.create.electron_tube": "Електронна лампа", "item.create.empty_blaze_burner": "Пустий пальник блейза", @@ -639,6 +640,10 @@ "item.create.linked_controller": "Підключений контролер", "item.create.minecart_contraption": "Вагонеточна штуковина", "item.create.minecart_coupling": "З'єднувач вагонеток", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "Полірований рожевий кварц", "item.create.potato_cannon": "Картопляна гармата", "item.create.powdered_obsidian": "Обсідіановий порошок", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "При розміщенні та живленні від кінетичної енергії", "item.create.copper_backtank.tooltip.behaviour2": "_Збирає та стискає повітря_ зі швидкістю, яка залежить від швидкості обертання_.", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "UNLOCALIZED: PLACARD", "block.create.placard.tooltip.summary": "UNLOCALIZED: _Frame_ your _items_ in brass using this fancy wall panel. Safe for contraptions!", "block.create.placard.tooltip.condition1": "UNLOCALIZED: When R-Clicked with Item", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json index 6e9b3c486..0bf7da01c 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_cn.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_cn.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 11", + "_": "Missing Localizations: 24", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "石磨", "block.create.minecart_anchor": "矿车锚", "block.create.mysterious_cuckoo_clock": "布谷鸟闹钟", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "辉光管", "block.create.nozzle": "分散网", "block.create.oak_window": "橡木窗户", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "余烬面粉", "item.create.copper_backtank": "铜背罐", "item.create.copper_backtank_placeable": "可放置的铜背罐", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "铜粒", "item.create.copper_sheet": "铜板", "item.create.crafter_slot_cover": "合成槽盖板", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "粉碎锡矿石", "item.create.crushed_uranium_ore": "粉碎铀矿石", "item.create.crushed_zinc_ore": "粉碎锌矿石", - "item.create.diving_boots": "潜水靴", - "item.create.diving_helmet": "潜水头盔", "item.create.dough": "面团", "item.create.electron_tube": "电子管", "item.create.empty_blaze_burner": "空的烈焰人燃烧室", @@ -639,6 +640,10 @@ "item.create.linked_controller": "无线红石遥控器", "item.create.minecart_contraption": "装配过的矿车", "item.create.minecart_coupling": "矿车连轴器", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "磨制玫瑰石英", "item.create.potato_cannon": "土豆加农炮", "item.create.powdered_obsidian": "黑曜石粉末", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "放下并接入动力时", "item.create.copper_backtank.tooltip.behaviour2": "基于转速从周围环境中_收集_并_加压空气_", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "置物板", "block.create.placard.tooltip.summary": "用这个漂亮的墙板把你的物品用黄铜框起来,支持移动装置!", "block.create.placard.tooltip.condition1": "手持物品右击时", diff --git a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json index a3edce07f..7ab5bcc94 100644 --- a/src/generated/resources/assets/create/lang/unfinished/zh_tw.json +++ b/src/generated/resources/assets/create/lang/unfinished/zh_tw.json @@ -1,5 +1,5 @@ { - "_": "Missing Localizations: 19", + "_": "Missing Localizations: 32", "_": "->------------------------] Game Elements [------------------------<-", @@ -310,6 +310,7 @@ "block.create.millstone": "石磨", "block.create.minecart_anchor": "礦車錨", "block.create.mysterious_cuckoo_clock": "神秘布穀鳥鐘", + "block.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", "block.create.nixie_tube": "真空管顯示器", "block.create.nozzle": "鼓風機噴嘴", "block.create.oak_window": "橡木窗戶", @@ -600,6 +601,8 @@ "item.create.cinder_flour": "地獄麵粉", "item.create.copper_backtank": "銅製後背包", "item.create.copper_backtank_placeable": "可放置的銅製後背包", + "item.create.copper_diving_boots": "UNLOCALIZED: Copper Diving Boots", + "item.create.copper_diving_helmet": "UNLOCALIZED: Copper Diving Helmet", "item.create.copper_nugget": "銅粒", "item.create.copper_sheet": "銅板", "item.create.crafter_slot_cover": "合成器蓋板", @@ -618,8 +621,6 @@ "item.create.crushed_tin_ore": "碎狀錫礦石", "item.create.crushed_uranium_ore": "碎狀鈾礦石", "item.create.crushed_zinc_ore": "碎狀鋅礦石", - "item.create.diving_boots": "潛水鞋", - "item.create.diving_helmet": "潛水頭盔", "item.create.dough": "麵團", "item.create.electron_tube": "真空管", "item.create.empty_blaze_burner": "空的烈焰使者動力爐", @@ -639,6 +640,10 @@ "item.create.linked_controller": "遙控器", "item.create.minecart_contraption": "裝修過的礦車", "item.create.minecart_coupling": "礦車連結器", + "item.create.netherite_backtank": "UNLOCALIZED: Netherite Backtank", + "item.create.netherite_backtank_placeable": "UNLOCALIZED: Netherite Backtank Placeable", + "item.create.netherite_diving_boots": "UNLOCALIZED: Netherite Diving Boots", + "item.create.netherite_diving_helmet": "UNLOCALIZED: Netherite Diving Helmet", "item.create.polished_rose_quartz": "拋光玫瑰石英", "item.create.potato_cannon": "馬鈴薯大砲", "item.create.powdered_obsidian": "黑曜石粉末", @@ -2027,6 +2032,13 @@ "item.create.copper_backtank.tooltip.condition2": "當放置時,由轉動來補充驅動", "item.create.copper_backtank.tooltip.behaviour2": "旋轉的速度決定收集_壓縮空氣_的速率", + "item.create.netherite_backtank.tooltip": "UNLOCALIZED: NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "UNLOCALIZED: A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "UNLOCALIZED: When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "UNLOCALIZED: Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "UNLOCALIZED: When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "UNLOCALIZED: _Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "標示牌", "block.create.placard.tooltip.summary": "用這個精美的牆板將你的_物品_用黃銅_框起來_。對器械安全!", "block.create.placard.tooltip.condition1": "手持物品右鍵時", diff --git a/src/generated/resources/assets/create/models/item/diving_boots.json b/src/generated/resources/assets/create/models/item/copper_diving_boots.json similarity index 56% rename from src/generated/resources/assets/create/models/item/diving_boots.json rename to src/generated/resources/assets/create/models/item/copper_diving_boots.json index 88c9dccb5..fab121e04 100644 --- a/src/generated/resources/assets/create/models/item/diving_boots.json +++ b/src/generated/resources/assets/create/models/item/copper_diving_boots.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "create:item/diving_boots" + "layer0": "create:item/copper_diving_boots" } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/diving_helmet.json b/src/generated/resources/assets/create/models/item/copper_diving_helmet.json similarity index 56% rename from src/generated/resources/assets/create/models/item/diving_helmet.json rename to src/generated/resources/assets/create/models/item/copper_diving_helmet.json index f287c2ca8..e21e9b4ee 100644 --- a/src/generated/resources/assets/create/models/item/diving_helmet.json +++ b/src/generated/resources/assets/create/models/item/copper_diving_helmet.json @@ -1,6 +1,6 @@ { "parent": "minecraft:item/generated", "textures": { - "layer0": "create:item/diving_helmet" + "layer0": "create:item/copper_diving_helmet" } } \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/netherite_backtank.json b/src/generated/resources/assets/create/models/item/netherite_backtank.json new file mode 100644 index 000000000..267a98e10 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/netherite_backtank.json @@ -0,0 +1,3 @@ +{ + "parent": "create:block/netherite_backtank/item" +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/netherite_backtank_placeable.json b/src/generated/resources/assets/create/models/item/netherite_backtank_placeable.json new file mode 100644 index 000000000..ff77c281b --- /dev/null +++ b/src/generated/resources/assets/create/models/item/netherite_backtank_placeable.json @@ -0,0 +1,3 @@ +{ + "parent": "minecraft:item/barrier" +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/netherite_diving_boots.json b/src/generated/resources/assets/create/models/item/netherite_diving_boots.json new file mode 100644 index 000000000..ed1728d3f --- /dev/null +++ b/src/generated/resources/assets/create/models/item/netherite_diving_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "create:item/netherite_diving_boots" + } +} \ No newline at end of file diff --git a/src/generated/resources/assets/create/models/item/netherite_diving_helmet.json b/src/generated/resources/assets/create/models/item/netherite_diving_helmet.json new file mode 100644 index 000000000..fde66a4b6 --- /dev/null +++ b/src/generated/resources/assets/create/models/item/netherite_diving_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "create:item/netherite_diving_helmet" + } +} \ No newline at end of file diff --git a/src/generated/resources/data/create/advancements/diving_suit.json b/src/generated/resources/data/create/advancements/diving_suit.json index 94db68db5..aec7ce96e 100644 --- a/src/generated/resources/data/create/advancements/diving_suit.json +++ b/src/generated/resources/data/create/advancements/diving_suit.json @@ -2,7 +2,7 @@ "parent": "create:backtank", "display": { "icon": { - "item": "create:diving_helmet", + "item": "create:copper_diving_helmet", "nbt": "{Damage:0}" }, "title": { diff --git a/src/generated/resources/data/create/advancements/diving_suit_lava.json b/src/generated/resources/data/create/advancements/diving_suit_lava.json index 9f8b1630e..0c888be2c 100644 --- a/src/generated/resources/data/create/advancements/diving_suit_lava.json +++ b/src/generated/resources/data/create/advancements/diving_suit_lava.json @@ -2,7 +2,7 @@ "parent": "create:backtank", "display": { "icon": { - "item": "create:diving_helmet", + "item": "create:copper_diving_helmet", "nbt": "{Damage:0}" }, "title": { diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/diving_boots.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_boots.json similarity index 80% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/diving_boots.json rename to src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_boots.json index d0d7f07e1..d2a401732 100644 --- a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/diving_boots.json +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_boots.json @@ -2,7 +2,7 @@ "parent": "minecraft:recipes/root", "rewards": { "recipes": [ - "create:crafting/appliances/diving_boots" + "create:crafting/appliances/copper_diving_boots" ] }, "criteria": { @@ -21,7 +21,7 @@ "has_the_recipe": { "trigger": "minecraft:recipe_unlocked", "conditions": { - "recipe": "create:crafting/appliances/diving_boots" + "recipe": "create:crafting/appliances/copper_diving_boots" } } }, diff --git a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/diving_helmet.json b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_helmet.json similarity index 80% rename from src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/diving_helmet.json rename to src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_helmet.json index 5491317c8..36cadac5d 100644 --- a/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/diving_helmet.json +++ b/src/generated/resources/data/create/advancements/recipes/create.base/crafting/appliances/copper_diving_helmet.json @@ -2,7 +2,7 @@ "parent": "minecraft:recipes/root", "rewards": { "recipes": [ - "create:crafting/appliances/diving_helmet" + "create:crafting/appliances/copper_diving_helmet" ] }, "criteria": { @@ -21,7 +21,7 @@ "has_the_recipe": { "trigger": "minecraft:recipe_unlocked", "conditions": { - "recipe": "create:crafting/appliances/diving_helmet" + "recipe": "create:crafting/appliances/copper_diving_helmet" } } }, diff --git a/src/generated/resources/data/create/loot_tables/blocks/netherite_backtank.json b/src/generated/resources/data/create/loot_tables/blocks/netherite_backtank.json new file mode 100644 index 000000000..4418da818 --- /dev/null +++ b/src/generated/resources/data/create/loot_tables/blocks/netherite_backtank.json @@ -0,0 +1,48 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "function": "minecraft:copy_name", + "source": "block_entity" + }, + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "Air", + "target": "Air", + "op": "replace" + } + ] + }, + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "Enchantments", + "target": "Enchantments", + "op": "replace" + } + ] + } + ], + "name": "create:netherite_backtank" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/appliances/diving_boots.json b/src/generated/resources/data/create/recipes/crafting/appliances/copper_diving_boots.json similarity index 85% rename from src/generated/resources/data/create/recipes/crafting/appliances/diving_boots.json rename to src/generated/resources/data/create/recipes/crafting/appliances/copper_diving_boots.json index 8ea573d10..76059a797 100644 --- a/src/generated/resources/data/create/recipes/crafting/appliances/diving_boots.json +++ b/src/generated/resources/data/create/recipes/crafting/appliances/copper_diving_boots.json @@ -14,6 +14,6 @@ } }, "result": { - "item": "create:diving_boots" + "item": "create:copper_diving_boots" } } \ No newline at end of file diff --git a/src/generated/resources/data/create/recipes/crafting/appliances/diving_helmet.json b/src/generated/resources/data/create/recipes/crafting/appliances/copper_diving_helmet.json similarity index 83% rename from src/generated/resources/data/create/recipes/crafting/appliances/diving_helmet.json rename to src/generated/resources/data/create/recipes/crafting/appliances/copper_diving_helmet.json index c2434ae43..68e63efc2 100644 --- a/src/generated/resources/data/create/recipes/crafting/appliances/diving_helmet.json +++ b/src/generated/resources/data/create/recipes/crafting/appliances/copper_diving_helmet.json @@ -13,6 +13,6 @@ } }, "result": { - "item": "create:diving_helmet" + "item": "create:copper_diving_helmet" } } \ No newline at end of file diff --git a/src/generated/resources/data/create/tags/items/pressurized_air_sources.json b/src/generated/resources/data/create/tags/items/pressurized_air_sources.json index 9c5cb97a4..3b3bbadd0 100644 --- a/src/generated/resources/data/create/tags/items/pressurized_air_sources.json +++ b/src/generated/resources/data/create/tags/items/pressurized_air_sources.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "create:copper_backtank" + "create:copper_backtank", + "create:netherite_backtank" ] } \ 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 8ad563b28..e89703356 100644 --- a/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/generated/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -160,6 +160,7 @@ "create:analog_lever", "create:placard", "create:copper_backtank", + "create:netherite_backtank", "create:peculiar_bell", "create:haunted_bell", "create:zinc_ore", diff --git a/src/main/java/com/simibubi/create/AllBlockPartials.java b/src/main/java/com/simibubi/create/AllBlockPartials.java index 5979377b7..90402767f 100644 --- a/src/main/java/com/simibubi/create/AllBlockPartials.java +++ b/src/main/java/com/simibubi/create/AllBlockPartials.java @@ -107,6 +107,9 @@ public class AllBlockPartials { COPPER_BACKTANK_SHAFT = block("copper_backtank/block_shaft_input"), COPPER_BACKTANK_COGS = block("copper_backtank/block_cogs"), + NETHERITE_BACKTANK_SHAFT = block("netherite_backtank/block_shaft_input"), + NETHERITE_BACKTANK_COGS = block("netherite_backtank/block_cogs"), + TRACK_SEGMENT_LEFT = block("track/segment_left"), TRACK_SEGMENT_RIGHT = block("track/segment_right"), TRACK_TIE = block("track/tie"), GIRDER_SEGMENT_TOP = block("metal_girder/segment_top"), GIRDER_SEGMENT_MIDDLE = block("metal_girder/segment_middle"), diff --git a/src/main/java/com/simibubi/create/AllBlocks.java b/src/main/java/com/simibubi/create/AllBlocks.java index 316fe62b2..620af8219 100644 --- a/src/main/java/com/simibubi/create/AllBlocks.java +++ b/src/main/java/com/simibubi/create/AllBlocks.java @@ -135,7 +135,7 @@ import com.simibubi.create.content.contraptions.relays.encased.GearshiftBlock; import com.simibubi.create.content.contraptions.relays.gauge.GaugeBlock; import com.simibubi.create.content.contraptions.relays.gauge.GaugeGenerator; import com.simibubi.create.content.contraptions.relays.gearbox.GearboxBlock; -import com.simibubi.create.content.curiosities.armor.CopperBacktankBlock; +import com.simibubi.create.content.curiosities.armor.BacktankBlock; import com.simibubi.create.content.curiosities.bell.HauntedBellBlock; import com.simibubi.create.content.curiosities.bell.HauntedBellMovementBehaviour; import com.simibubi.create.content.curiosities.bell.PeculiarBellBlock; @@ -1944,26 +1944,16 @@ public class AllBlocks { REGISTRATE.startSection(AllSections.CURIOSITIES); } - public static final BlockEntry COPPER_BACKTANK = - REGISTRATE.block("copper_backtank", CopperBacktankBlock::new) + public static final BlockEntry COPPER_BACKTANK = + REGISTRATE.block("copper_backtank", BacktankBlock::new) .initialProperties(SharedProperties::copperMetal) - .blockstate((c, p) -> p.horizontalBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) - .transform(pickaxeOnly()) - .addLayer(() -> RenderType::cutoutMipped) - .transform(BlockStressDefaults.setImpact(4.0)) - .loot((lt, block) -> { - Builder builder = LootTable.lootTable(); - LootItemCondition.Builder survivesExplosion = ExplosionCondition.survivesExplosion(); - lt.add(block, builder.withPool(LootPool.lootPool() - .when(survivesExplosion) - .setRolls(ConstantValue.exactly(1)) - .add(LootItem.lootTableItem(AllItems.COPPER_BACKTANK.get()) - .apply(CopyNameFunction.copyName(CopyNameFunction.NameSource.BLOCK_ENTITY)) - .apply(CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY) - .copy("Air", "Air")) - .apply(CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY) - .copy("Enchantments", "Enchantments"))))); - }) + .transform(BuilderTransformers.backtank(AllItems.COPPER_BACKTANK::get)) + .register(); + + public static final BlockEntry NETHERITE_BACKTANK = + REGISTRATE.block("netherite_backtank", BacktankBlock::new) + .initialProperties(SharedProperties::netheriteMetal) + .transform(BuilderTransformers.backtank(AllItems.NETHERITE_BACKTANK::get)) .register(); public static final BlockEntry PECULIAR_BELL = diff --git a/src/main/java/com/simibubi/create/AllItems.java b/src/main/java/com/simibubi/create/AllItems.java index ad474e17c..0dc603498 100644 --- a/src/main/java/com/simibubi/create/AllItems.java +++ b/src/main/java/com/simibubi/create/AllItems.java @@ -38,9 +38,9 @@ import com.simibubi.create.content.curiosities.ExperienceNuggetItem; import com.simibubi.create.content.curiosities.RefinedRadianceItem; import com.simibubi.create.content.curiosities.ShadowSteelItem; import com.simibubi.create.content.curiosities.TreeFertilizerItem; -import com.simibubi.create.content.curiosities.armor.CopperArmorItem; -import com.simibubi.create.content.curiosities.armor.CopperBacktankItem; -import com.simibubi.create.content.curiosities.armor.CopperBacktankItem.CopperBacktankBlockItem; +import com.simibubi.create.content.curiosities.armor.AllArmorMaterials; +import com.simibubi.create.content.curiosities.armor.BacktankItem; +import com.simibubi.create.content.curiosities.armor.BacktankItem.BacktankBlockItem; import com.simibubi.create.content.curiosities.armor.DivingBootsItem; import com.simibubi.create.content.curiosities.armor.DivingHelmetItem; import com.simibubi.create.content.curiosities.symmetry.SymmetryWandItem; @@ -65,6 +65,7 @@ import com.tterrag.registrate.util.entry.ItemEntry; import net.minecraft.tags.ItemTags; import net.minecraft.tags.TagKey; import net.minecraft.world.food.FoodProperties; +import net.minecraft.world.item.ArmorMaterials; import net.minecraft.world.item.Item; import net.minecraft.world.item.Rarity; import net.minecraftforge.common.Tags; @@ -239,22 +240,44 @@ public class AllItems { // wrapped by COPPER_BACKTANK for block placement uses. // must be registered as of 1.18.2 - public static final ItemEntry COPPER_BACKTANK_PLACEABLE = REGISTRATE - .item("copper_backtank_placeable", p -> new CopperBacktankBlockItem(AllBlocks.COPPER_BACKTANK.get(), p)) + public static final ItemEntry COPPER_BACKTANK_PLACEABLE = REGISTRATE + .item("copper_backtank_placeable", p -> new BacktankBlockItem(AllBlocks.COPPER_BACKTANK.get(), AllItems.COPPER_BACKTANK::get, p)) .model((c, p) -> p.withExistingParent(c.getName(), p.mcLoc("item/barrier"))) .register(); - public static final ItemEntry + // wrapped by NETHERITE_BACKTANK for block placement uses. + // must be registered as of 1.18.2 + public static final ItemEntry NETHERITE_BACKTANK_PLACEABLE = REGISTRATE + .item("netherite_backtank_placeable", p -> new BacktankBlockItem(AllBlocks.NETHERITE_BACKTANK.get(), AllItems.NETHERITE_BACKTANK::get, p)) + .model((c, p) -> p.withExistingParent(c.getName(), p.mcLoc("item/barrier"))) + .register(); - COPPER_BACKTANK = REGISTRATE.item("copper_backtank", p -> new CopperBacktankItem(p, COPPER_BACKTANK_PLACEABLE)) - .model(AssetLookup.customGenericItemModel("_", "item")) - .tag(AllItemTags.PRESSURIZED_AIR_SOURCES.tag) - .register(), + public static final ItemEntry - DIVING_HELMET = REGISTRATE.item("diving_helmet", DivingHelmetItem::new) + COPPER_BACKTANK = REGISTRATE.item("copper_backtank", p -> new BacktankItem(AllArmorMaterials.COPPER, p, Create.asResource("copper_diving"), COPPER_BACKTANK_PLACEABLE)) + .model(AssetLookup.customGenericItemModel("_", "item")) + .tag(AllItemTags.PRESSURIZED_AIR_SOURCES.tag) .register(), - DIVING_BOOTS = REGISTRATE.item("diving_boots", DivingBootsItem::new) + NETHERITE_BACKTANK = REGISTRATE.item("netherite_backtank", p -> new BacktankItem.MultiLayered(ArmorMaterials.NETHERITE, p, Create.asResource("netherite_diving"), NETHERITE_BACKTANK_PLACEABLE)) + .model(AssetLookup.customGenericItemModel("_", "item")) + .tag(AllItemTags.PRESSURIZED_AIR_SOURCES.tag) + .register(); + + public static final ItemEntry + + COPPER_DIVING_HELMET = REGISTRATE.item("copper_diving_helmet", p -> new DivingHelmetItem(AllArmorMaterials.COPPER, p, Create.asResource("copper_diving"))) + .register(), + + NETHERITE_DIVING_HELMET = REGISTRATE.item("netherite_diving_helmet", p -> new DivingHelmetItem.MultiLayered(ArmorMaterials.NETHERITE, p, Create.asResource("netherite_diving"))) + .register(); + + public static final ItemEntry + + COPPER_DIVING_BOOTS = REGISTRATE.item("copper_diving_boots", p -> new DivingBootsItem(AllArmorMaterials.COPPER, p, Create.asResource("copper_diving"))) + .register(), + + NETHERITE_DIVING_BOOTS = REGISTRATE.item("netherite_diving_boots", p -> new DivingBootsItem.MultiLayered(ArmorMaterials.NETHERITE, p, Create.asResource("netherite_diving"))) .register(); public static final ItemEntry SAND_PAPER = REGISTRATE.item("sand_paper", SandPaperItem::new) diff --git a/src/main/java/com/simibubi/create/AllTileEntities.java b/src/main/java/com/simibubi/create/AllTileEntities.java index baeed8dc6..54bc797ba 100644 --- a/src/main/java/com/simibubi/create/AllTileEntities.java +++ b/src/main/java/com/simibubi/create/AllTileEntities.java @@ -132,9 +132,9 @@ import com.simibubi.create.content.contraptions.relays.gearbox.GearboxInstance; import com.simibubi.create.content.contraptions.relays.gearbox.GearboxRenderer; import com.simibubi.create.content.contraptions.relays.gearbox.GearboxTileEntity; import com.simibubi.create.content.contraptions.relays.gearbox.GearshiftTileEntity; -import com.simibubi.create.content.curiosities.armor.CopperBacktankInstance; -import com.simibubi.create.content.curiosities.armor.CopperBacktankRenderer; -import com.simibubi.create.content.curiosities.armor.CopperBacktankTileEntity; +import com.simibubi.create.content.curiosities.armor.BacktankInstance; +import com.simibubi.create.content.curiosities.armor.BacktankRenderer; +import com.simibubi.create.content.curiosities.armor.BacktankTileEntity; import com.simibubi.create.content.curiosities.bell.BellRenderer; import com.simibubi.create.content.curiosities.bell.HauntedBellTileEntity; import com.simibubi.create.content.curiosities.bell.PeculiarBellTileEntity; @@ -771,11 +771,11 @@ public class AllTileEntities { .register(); // Curiosities - public static final BlockEntityEntry COPPER_BACKTANK = Create.registrate() - .tileEntity("copper_backtank", CopperBacktankTileEntity::new) - .instance(() -> CopperBacktankInstance::new) - .validBlocks(AllBlocks.COPPER_BACKTANK) - .renderer(() -> CopperBacktankRenderer::new) + public static final BlockEntityEntry BACKTANK = Create.registrate() + .tileEntity("backtank", BacktankTileEntity::new) + .instance(() -> BacktankInstance::new) + .validBlocks(AllBlocks.COPPER_BACKTANK, AllBlocks.NETHERITE_BACKTANK) + .renderer(() -> BacktankRenderer::new) .register(); public static final BlockEntityEntry PECULIAR_BELL = Create.registrate() diff --git a/src/main/java/com/simibubi/create/CreateClient.java b/src/main/java/com/simibubi/create/CreateClient.java index d20076543..cb68f1a4a 100644 --- a/src/main/java/com/simibubi/create/CreateClient.java +++ b/src/main/java/com/simibubi/create/CreateClient.java @@ -7,7 +7,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren import com.simibubi.create.content.contraptions.components.structureMovement.render.SBBContraptionManager; import com.simibubi.create.content.contraptions.goggles.GoggleOverlayRenderer; import com.simibubi.create.content.contraptions.relays.encased.CasingConnectivity; -import com.simibubi.create.content.curiosities.armor.CopperBacktankArmorLayer; +import com.simibubi.create.content.curiosities.armor.RemainingAirOverlay; import com.simibubi.create.content.curiosities.bell.SoulPulseEffectHandler; import com.simibubi.create.content.curiosities.toolbox.ToolboxHandlerClient; import com.simibubi.create.content.curiosities.tools.BlueprintOverlayRenderer; @@ -97,7 +97,7 @@ public class CreateClient { private static void registerOverlays() { // Register overlays in reverse order - OverlayRegistry.registerOverlayAbove(ForgeIngameGui.AIR_LEVEL_ELEMENT, "Create's Remaining Air", CopperBacktankArmorLayer.REMAINING_AIR_OVERLAY); + OverlayRegistry.registerOverlayAbove(ForgeIngameGui.AIR_LEVEL_ELEMENT, "Create's Remaining Air", RemainingAirOverlay.INSTANCE); OverlayRegistry.registerOverlayAbove(ForgeIngameGui.EXPERIENCE_BAR_ELEMENT, "Create's Train Driver HUD", TrainHUD.OVERLAY); OverlayRegistry.registerOverlayAbove(ForgeIngameGui.HOTBAR_ELEMENT, "Create's Goggle Information", GoggleOverlayRenderer.OVERLAY); OverlayRegistry.registerOverlayAbove(ForgeIngameGui.HOTBAR_ELEMENT, "Create's Blueprints", BlueprintOverlayRenderer.OVERLAY); diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java index 8581b69ee..747699d80 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/BeltBlock.java @@ -20,6 +20,7 @@ import com.simibubi.create.content.contraptions.relays.belt.BeltSlicer.Feedback; import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity.CasingType; import com.simibubi.create.content.contraptions.relays.belt.transport.BeltMovementHandler.TransportedEntityInfo; import com.simibubi.create.content.contraptions.relays.belt.transport.BeltTunnelInteractionHandler; +import com.simibubi.create.content.curiosities.armor.DivingBootsItem; import com.simibubi.create.content.logistics.block.belts.tunnel.BeltTunnelBlock; import com.simibubi.create.content.schematics.ISpecialBlockItemRequirement; import com.simibubi.create.content.schematics.ItemRequirement; @@ -191,8 +192,7 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE AllSoundEvents.COPPER_ARMOR_EQUIP.getMainEvent(), 0.0F, 0.0F, + COPPER(Create.asResource("copper").toString(), 7, new int[] { 1, 3, 4, 2 }, 25, () -> AllSoundEvents.COPPER_ARMOR_EQUIP.getMainEvent(), 0.0F, 0.0F, () -> Ingredient.of(Items.COPPER_INGOT)) ; diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankArmorLayer.java similarity index 53% rename from src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java rename to src/main/java/com/simibubi/create/content/curiosities/armor/BacktankArmorLayer.java index 67dffa2a8..6cec2efa5 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankArmorLayer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankArmorLayer.java @@ -1,21 +1,13 @@ package com.simibubi.create.content.curiosities.armor; import com.mojang.blaze3d.vertex.PoseStack; -import com.simibubi.create.AllBlockPartials; -import com.simibubi.create.AllBlocks; -import com.simibubi.create.AllItems; -import com.simibubi.create.foundation.gui.element.GuiGameElement; import com.simibubi.create.foundation.render.CachedBufferer; import com.simibubi.create.foundation.render.SuperByteBuffer; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.AnimationTickHolder; -import com.simibubi.create.foundation.utility.Color; -import com.simibubi.create.foundation.utility.Components; -import net.minecraft.client.Minecraft; import net.minecraft.client.model.EntityModel; import net.minecraft.client.model.HumanoidModel; -import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.Sheets; @@ -25,22 +17,13 @@ import net.minecraft.client.renderer.entity.LivingEntityRenderer; import net.minecraft.client.renderer.entity.RenderLayerParent; import net.minecraft.client.renderer.entity.layers.RenderLayer; import net.minecraft.core.Direction; -import net.minecraft.network.chat.Component; -import net.minecraft.tags.FluidTags; -import net.minecraft.util.StringUtil; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.Pose; import net.minecraft.world.entity.player.Player; -import net.minecraft.world.level.GameType; import net.minecraft.world.level.block.state.BlockState; -import net.minecraftforge.client.gui.ForgeIngameGui; -import net.minecraftforge.client.gui.IIngameOverlay; -public class CopperBacktankArmorLayer> extends RenderLayer { - - public static final IIngameOverlay REMAINING_AIR_OVERLAY = CopperBacktankArmorLayer::renderRemainingAirOverlay; - - public CopperBacktankArmorLayer(RenderLayerParent renderer) { +public class BacktankArmorLayer> extends RenderLayer { + public BacktankArmorLayer(RenderLayerParent renderer) { super(renderer); } @@ -49,8 +32,9 @@ public class CopperBacktankArmorLayer model = (HumanoidModel) entityModel; RenderType renderType = Sheets.cutoutBlockSheet(); - BlockState renderedState = AllBlocks.COPPER_BACKTANK.getDefaultState() - .setValue(CopperBacktankBlock.HORIZONTAL_FACING, Direction.SOUTH); + BlockState renderedState = item.getBlock().defaultBlockState() + .setValue(BacktankBlock.HORIZONTAL_FACING, Direction.SOUTH); SuperByteBuffer backtank = CachedBufferer.block(renderedState); - SuperByteBuffer cogs = CachedBufferer.partial(AllBlockPartials.COPPER_BACKTANK_COGS, renderedState); + SuperByteBuffer cogs = CachedBufferer.partial(BacktankRenderer.getCogsModel(renderedState), renderedState); ms.pushPose(); @@ -102,44 +86,7 @@ public class CopperBacktankArmorLayer livingRenderer = (LivingEntityRenderer) entityRenderer; if (!(livingRenderer.getModel() instanceof HumanoidModel)) return; - CopperBacktankArmorLayer layer = new CopperBacktankArmorLayer<>(livingRenderer); - livingRenderer.addLayer((CopperBacktankArmorLayer) layer); + BacktankArmorLayer layer = new BacktankArmorLayer<>(livingRenderer); + livingRenderer.addLayer((BacktankArmorLayer) layer); } - - public static void renderRemainingAirOverlay(ForgeIngameGui gui, PoseStack poseStack, float partialTicks, int width, int height) { - Minecraft mc = Minecraft.getInstance(); - if (mc.options.hideGui || mc.gameMode.getPlayerMode() == GameType.SPECTATOR) - return; - - LocalPlayer player = mc.player; - if (player == null) - return; - if (player.isCreative()) - return; - if (!player.getPersistentData() - .contains("VisualBacktankAir")) - return; - if (!player.isEyeInFluid(FluidTags.WATER)) - return; - - int timeLeft = player.getPersistentData() - .getInt("VisualBacktankAir"); - - poseStack.pushPose(); - - poseStack.translate(width / 2 + 90, height - 53, 0); - - Component text = Components.literal(StringUtil.formatTickDuration(timeLeft * 20)); - GuiGameElement.of(AllItems.COPPER_BACKTANK.asStack()) - .at(0, 0) - .render(poseStack); - int color = 0xFF_FFFFFF; - if (timeLeft < 60 && timeLeft % 2 == 0) { - color = Color.mixColors(0xFF_FF0000, color, Math.max(timeLeft / 60f, .25f)); - } - Minecraft.getInstance().font.drawShadow(poseStack, text, 16, 5, color); - - poseStack.popPose(); - } - } diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankBlock.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankBlock.java similarity index 77% rename from src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankBlock.java rename to src/main/java/com/simibubi/create/content/curiosities/armor/BacktankBlock.java index a83030faa..42cedf76d 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankBlock.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankBlock.java @@ -3,7 +3,6 @@ package com.simibubi.create.content.curiosities.armor; import java.util.Optional; import com.simibubi.create.AllEnchantments; -import com.simibubi.create.AllItems; import com.simibubi.create.AllShapes; import com.simibubi.create.AllTileEntities; import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock; @@ -25,6 +24,7 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.item.enchantment.EnchantmentHelper; @@ -46,12 +46,12 @@ import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; import net.minecraftforge.common.util.FakePlayer; -public class CopperBacktankBlock extends HorizontalKineticBlock - implements ITE, SimpleWaterloggedBlock { +public class BacktankBlock extends HorizontalKineticBlock + implements ITE, SimpleWaterloggedBlock { - public CopperBacktankBlock(Properties properties) { + public BacktankBlock(Properties properties) { super(properties); - registerDefaultState(super.defaultBlockState().setValue(BlockStateProperties.WATERLOGGED, false)); + registerDefaultState(defaultBlockState().setValue(BlockStateProperties.WATERLOGGED, false)); } @Override @@ -73,10 +73,10 @@ public class CopperBacktankBlock extends HorizontalKineticBlock public boolean hasAnalogOutputSignal(BlockState p_149740_1_) { return true; } - + @Override - public int getAnalogOutputSignal(BlockState p_180641_1_, Level world, BlockPos pos) { - return getTileEntityOptional(world, pos).map(CopperBacktankTileEntity::getComparatorOutput) + public int getAnalogOutputSignal(BlockState state, Level world, BlockPos pos) { + return getTileEntityOptional(world, pos).map(BacktankTileEntity::getComparatorOutput) .orElse(0); } @@ -90,10 +90,10 @@ public class CopperBacktankBlock extends HorizontalKineticBlock @Override public BlockState getStateForPlacement(BlockPlaceContext context) { - FluidState ifluidstate = context.getLevel() + FluidState fluidState = context.getLevel() .getFluidState(context.getClickedPos()); return super.getStateForPlacement(context).setValue(BlockStateProperties.WATERLOGGED, - Boolean.valueOf(ifluidstate.getType() == Fluids.WATER)); + fluidState.getType() == Fluids.WATER); } @Override @@ -125,8 +125,8 @@ public class CopperBacktankBlock extends HorizontalKineticBlock } @Override - public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand p_225533_5_, - BlockHitResult p_225533_6_) { + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, + BlockHitResult hit) { if (player == null) return InteractionResult.PASS; if (player instanceof FakePlayer) @@ -148,28 +148,33 @@ public class CopperBacktankBlock extends HorizontalKineticBlock } @Override - public ItemStack getCloneItemStack(BlockGetter p_185473_1_, BlockPos p_185473_2_, BlockState p_185473_3_) { - ItemStack item = AllItems.COPPER_BACKTANK.asStack(); - Optional tileEntityOptional = getTileEntityOptional(p_185473_1_, p_185473_2_); + public ItemStack getCloneItemStack(BlockGetter blockGetter, BlockPos pos, BlockState state) { + Item item = asItem(); + if (item instanceof BacktankItem.BacktankBlockItem placeable) { + item = placeable.getActualItem(); + } - int air = tileEntityOptional.map(CopperBacktankTileEntity::getAirLevel) + ItemStack stack = new ItemStack(item); + Optional tileEntityOptional = getTileEntityOptional(blockGetter, pos); + + int air = tileEntityOptional.map(BacktankTileEntity::getAirLevel) .orElse(0); - CompoundTag tag = item.getOrCreateTag(); + CompoundTag tag = stack.getOrCreateTag(); tag.putInt("Air", air); - ListTag enchants = tileEntityOptional.map(CopperBacktankTileEntity::getEnchantmentTag) + ListTag enchants = tileEntityOptional.map(BacktankTileEntity::getEnchantmentTag) .orElse(new ListTag()); if (!enchants.isEmpty()) { - ListTag enchantmentTagList = item.getEnchantmentTags(); + ListTag enchantmentTagList = stack.getEnchantmentTags(); enchantmentTagList.addAll(enchants); tag.put("Enchantments", enchantmentTagList); } - Component customName = tileEntityOptional.map(CopperBacktankTileEntity::getCustomName) + Component customName = tileEntityOptional.map(BacktankTileEntity::getCustomName) .orElse(null); if (customName != null) - item.setHoverName(customName); - return item; + stack.setHoverName(customName); + return stack; } @Override @@ -179,13 +184,13 @@ public class CopperBacktankBlock extends HorizontalKineticBlock } @Override - public Class getTileEntityClass() { - return CopperBacktankTileEntity.class; + public Class getTileEntityClass() { + return BacktankTileEntity.class; } @Override - public BlockEntityType getTileEntityType() { - return AllTileEntities.COPPER_BACKTANK.get(); + public BlockEntityType getTileEntityType() { + return AllTileEntities.BACKTANK.get(); } @Override diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankInstance.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankInstance.java similarity index 61% rename from src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankInstance.java rename to src/main/java/com/simibubi/create/content/curiosities/armor/BacktankInstance.java index 26d1b9139..ccb5d1c69 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankInstance.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankInstance.java @@ -2,20 +2,19 @@ package com.simibubi.create.content.curiosities.armor; import com.jozufozu.flywheel.api.Instancer; import com.jozufozu.flywheel.api.MaterialManager; -import com.simibubi.create.AllBlockPartials; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.SingleRotatingInstance; import com.simibubi.create.content.contraptions.base.flwdata.RotatingData; -public class CopperBacktankInstance extends SingleRotatingInstance { +public class BacktankInstance extends SingleRotatingInstance { - public CopperBacktankInstance(MaterialManager modelManager, KineticTileEntity tile) { + public BacktankInstance(MaterialManager modelManager, KineticTileEntity tile) { super(modelManager, tile); } @Override protected Instancer getModel() { - return getRotatingMaterial().getModel(AllBlockPartials.COPPER_BACKTANK_SHAFT, blockState); + return getRotatingMaterial().getModel(BacktankRenderer.getShaftModel(blockState), blockState); } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankItem.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankItem.java new file mode 100644 index 000000000..2f6ec43eb --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankItem.java @@ -0,0 +1,132 @@ +package com.simibubi.create.content.curiosities.armor; + +import java.util.Locale; +import java.util.function.Supplier; + +import org.jetbrains.annotations.Nullable; + +import com.simibubi.create.content.curiosities.armor.CapacityEnchantment.ICapacityEnchantable; +import com.simibubi.create.foundation.item.MultiLayeredArmorItem; + +import net.minecraft.core.NonNullList; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.util.Mth; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.block.Block; + +public class BacktankItem extends BaseArmorItem implements ICapacityEnchantable { + public static final EquipmentSlot SLOT = EquipmentSlot.CHEST; + public static final int BAR_COLOR = 0xEFEFEF; + + private final Supplier blockItem; + + public BacktankItem(ArmorMaterial material, Properties properties, ResourceLocation textureLoc, Supplier placeable) { + super(material, SLOT, properties, textureLoc); + this.blockItem = placeable; + } + + @Nullable + public static BacktankItem getWornBy(Entity entity) { + if (!(entity instanceof LivingEntity livingEntity)) { + return null; + } + if (!(livingEntity.getItemBySlot(SLOT).getItem() instanceof BacktankItem item)) { + return null; + } + return item; + } + + @Override + public InteractionResult useOn(UseOnContext ctx) { + return blockItem.get() + .useOn(ctx); + } + + @Override + public boolean canBeDepleted() { + return false; + } + + @Override + public boolean isEnchantable(ItemStack p_77616_1_) { + return true; + } + + @Override + public void fillItemCategory(CreativeModeTab tab, NonNullList items) { + if (!allowdedIn(tab)) + return; + + ItemStack stack = new ItemStack(this); + CompoundTag nbt = new CompoundTag(); + nbt.putInt("Air", BacktankUtil.maxAirWithoutEnchants()); + stack.setTag(nbt); + items.add(stack); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return true; + } + + @Override + public int getBarWidth(ItemStack stack) { + return Math.round(13.0F * Mth.clamp(getRemainingAir(stack) / ((float) BacktankUtil.maxAir(stack)), 0, 1)); + } + + @Override + public int getBarColor(ItemStack stack) { + return BAR_COLOR; + } + + public Block getBlock() { + return blockItem.get().getBlock(); + } + + public static int getRemainingAir(ItemStack stack) { + CompoundTag orCreateTag = stack.getOrCreateTag(); + return orCreateTag.getInt("Air"); + } + + public static class BacktankBlockItem extends BlockItem { + private final Supplier actualItem; + + public BacktankBlockItem(Block block, Supplier actualItem, Properties properties) { + super(block, properties); + this.actualItem = actualItem; + } + + @Override + public void fillItemCategory(CreativeModeTab group, NonNullList items) {} + + @Override + public String getDescriptionId() { + return this.getOrCreateDescriptionId(); + } + + public Item getActualItem() { + return actualItem.get(); + } + } + + public static class MultiLayered extends BacktankItem implements MultiLayeredArmorItem { + public MultiLayered(ArmorMaterial material, Properties properties, ResourceLocation textureLoc, Supplier placeable) { + super(material, properties, textureLoc, placeable); + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlot slot, String layer) { + return String.format(Locale.ROOT, "%s:textures/models/armor/%s_layer_%s.png", textureLoc.getNamespace(), textureLoc.getPath(), layer); + } + } +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankRenderer.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankRenderer.java similarity index 65% rename from src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankRenderer.java rename to src/main/java/com/simibubi/create/content/curiosities/armor/BacktankRenderer.java index fc7b1d87a..674e16691 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankRenderer.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankRenderer.java @@ -1,7 +1,9 @@ package com.simibubi.create.content.curiosities.armor; +import com.jozufozu.flywheel.core.PartialModel; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllBlockPartials; +import com.simibubi.create.AllBlocks; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer; import com.simibubi.create.foundation.render.CachedBufferer; @@ -15,9 +17,8 @@ import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider; import net.minecraft.core.Direction; import net.minecraft.world.level.block.state.BlockState; -public class CopperBacktankRenderer extends KineticTileEntityRenderer { - - public CopperBacktankRenderer(BlockEntityRendererProvider.Context context) { +public class BacktankRenderer extends KineticTileEntityRenderer { + public BacktankRenderer(BlockEntityRendererProvider.Context context) { super(context); } @@ -27,9 +28,9 @@ public class CopperBacktankRenderer extends KineticTileEntityRenderer { super.renderSafe(te, partialTicks, ms, buffer, light, overlay); BlockState blockState = te.getBlockState(); - SuperByteBuffer cogs = CachedBufferer.partial(AllBlockPartials.COPPER_BACKTANK_COGS, blockState); + SuperByteBuffer cogs = CachedBufferer.partial(getCogsModel(blockState), blockState); cogs.centre() - .rotateY(180 + AngleHelper.horizontalAngle(blockState.getValue(CopperBacktankBlock.HORIZONTAL_FACING))) + .rotateY(180 + AngleHelper.horizontalAngle(blockState.getValue(BacktankBlock.HORIZONTAL_FACING))) .unCentre() .translate(0, 6.5f / 16, 11f / 16) .rotate(Direction.EAST, @@ -41,7 +42,20 @@ public class CopperBacktankRenderer extends KineticTileEntityRenderer { @Override protected SuperByteBuffer getRotatedModel(KineticTileEntity te, BlockState state) { - return CachedBufferer.partial(AllBlockPartials.COPPER_BACKTANK_SHAFT, state); + return CachedBufferer.partial(getShaftModel(state), state); } + public static PartialModel getCogsModel(BlockState state) { + if (AllBlocks.NETHERITE_BACKTANK.has(state)) { + return AllBlockPartials.NETHERITE_BACKTANK_COGS; + } + return AllBlockPartials.COPPER_BACKTANK_COGS; + } + + public static PartialModel getShaftModel(BlockState state) { + if (AllBlocks.NETHERITE_BACKTANK.has(state)) { + return AllBlockPartials.NETHERITE_BACKTANK_SHAFT; + } + return AllBlockPartials.COPPER_BACKTANK_SHAFT; + } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankTileEntity.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankTileEntity.java similarity index 86% rename from src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankTileEntity.java rename to src/main/java/com/simibubi/create/content/curiosities/armor/BacktankTileEntity.java index da941de04..445a5e352 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankTileEntity.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankTileEntity.java @@ -2,9 +2,9 @@ package com.simibubi.create.content.curiosities.armor; import java.util.List; +import com.simibubi.create.AllBlocks; import com.simibubi.create.AllItems; import com.simibubi.create.AllSoundEvents; -import com.simibubi.create.Create; import com.simibubi.create.content.contraptions.base.KineticTileEntity; import com.simibubi.create.content.contraptions.particle.AirParticleData; import com.simibubi.create.foundation.advancement.AllAdvancements; @@ -27,33 +27,43 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.phys.Vec3; -public class CopperBacktankTileEntity extends KineticTileEntity implements Nameable { +public class BacktankTileEntity extends KineticTileEntity implements Nameable { public int airLevel; public int airLevelTimer; + private Component defaultName; private Component customName; private int capacityEnchantLevel; private ListTag enchantmentTag; - public CopperBacktankTileEntity(BlockEntityType typeIn, BlockPos pos, BlockState state) { - super(typeIn, pos, state); + public BacktankTileEntity(BlockEntityType type, BlockPos pos, BlockState state) { + super(type, pos, state); + defaultName = getDefaultName(state); enchantmentTag = new ListTag(); } - + + public static Component getDefaultName(BlockState state) { + if (AllBlocks.NETHERITE_BACKTANK.has(state)) { + AllItems.NETHERITE_BACKTANK.get().getDescription(); + } + + return AllItems.COPPER_BACKTANK.get().getDescription(); + } + @Override public void addBehaviours(List behaviours) { super.addBehaviours(behaviours); registerAwardables(behaviours, AllAdvancements.BACKTANK); } - + @Override public void onSpeedChanged(float previousSpeed) { super.onSpeedChanged(previousSpeed); if (getSpeed() != 0) award(AllAdvancements.BACKTANK); } - + @Override public void tick() { super.tick(); @@ -70,10 +80,10 @@ public class CopperBacktankTileEntity extends KineticTileEntity implements Namea return; } - int max = BackTankUtil.maxAir(capacityEnchantLevel); + int max = BacktankUtil.maxAir(capacityEnchantLevel); if (level.isClientSide) { Vec3 centerOf = VecHelper.getCenterOf(worldPosition); - Vec3 v = VecHelper.offsetRandomly(centerOf, Create.RANDOM, .65f); + Vec3 v = VecHelper.offsetRandomly(centerOf, level.random, .65f); Vec3 m = centerOf.subtract(v); if (airLevel != max) level.addParticle(new AirParticleData(1, .05f), v.x, v.y, v.z, m.x, m.y, m.z); @@ -95,7 +105,7 @@ public class CopperBacktankTileEntity extends KineticTileEntity implements Namea } public int getComparatorOutput() { - int max = BackTankUtil.maxAir(capacityEnchantLevel); + int max = BacktankUtil.maxAir(capacityEnchantLevel); return ComparatorUtil.fractionToRedstoneLevel(airLevel / (float) max); } @@ -120,7 +130,7 @@ public class CopperBacktankTileEntity extends KineticTileEntity implements Namea enchantmentTag = compound.getList("Enchantments", Tag.TAG_COMPOUND); if (compound.contains("CustomName", 8)) this.customName = Component.Serializer.fromJson(compound.getString("CustomName")); - if (prev != 0 && prev != airLevel && airLevel == BackTankUtil.maxAir(capacityEnchantLevel) && clientPacket) + if (prev != 0 && prev != airLevel && airLevel == BacktankUtil.maxAir(capacityEnchantLevel) && clientPacket) playFilledEffect(); } @@ -140,8 +150,7 @@ public class CopperBacktankTileEntity extends KineticTileEntity implements Namea @Override public Component getName() { return this.customName != null ? this.customName - : AllItems.COPPER_BACKTANK.get() - .getDescription(); + : defaultName; } public int getAirLevel() { diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/BackTankUtil.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankUtil.java similarity index 99% rename from src/main/java/com/simibubi/create/content/curiosities/armor/BackTankUtil.java rename to src/main/java/com/simibubi/create/content/curiosities/armor/BacktankUtil.java index 70cd85197..fe9a8b2bb 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/BackTankUtil.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BacktankUtil.java @@ -23,7 +23,7 @@ import net.minecraft.world.item.enchantment.EnchantmentHelper; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.fml.DistExecutor; -public class BackTankUtil { +public class BacktankUtil { public static ItemStack get(LivingEntity entity) { for (ItemStack itemStack : entity.getArmorSlots()) diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/BaseArmorItem.java b/src/main/java/com/simibubi/create/content/curiosities/armor/BaseArmorItem.java new file mode 100644 index 000000000..de5eb487b --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/BaseArmorItem.java @@ -0,0 +1,24 @@ +package com.simibubi.create.content.curiosities.armor; + +import java.util.Locale; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.ItemStack; + +public class BaseArmorItem extends ArmorItem { + protected final ResourceLocation textureLoc; + + public BaseArmorItem(ArmorMaterial armorMaterial, EquipmentSlot slot, Properties properties, ResourceLocation textureLoc) { + super(armorMaterial, slot, properties.stacksTo(1)); + this.textureLoc = textureLoc; + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlot slot, String type) { + return String.format(Locale.ROOT, "%s:textures/models/armor/%s_layer_%d%s.png", textureLoc.getNamespace(), textureLoc.getPath(), slot == EquipmentSlot.LEGS ? 2 : 1, type == null ? "" : String.format(Locale.ROOT, "_%s", type)); + } +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CapacityEnchantment.java b/src/main/java/com/simibubi/create/content/curiosities/armor/CapacityEnchantment.java index 531e1bf4e..3d894e219 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CapacityEnchantment.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/CapacityEnchantment.java @@ -7,8 +7,8 @@ import net.minecraft.world.item.enchantment.EnchantmentCategory; public class CapacityEnchantment extends Enchantment { - public CapacityEnchantment(Rarity p_i46731_1_, EnchantmentCategory p_i46731_2_, EquipmentSlot[] p_i46731_3_) { - super(p_i46731_1_, p_i46731_2_, p_i46731_3_); + public CapacityEnchantment(Rarity rarity, EnchantmentCategory category, EquipmentSlot[] slots) { + super(rarity, category, slots); } @Override diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperArmorItem.java b/src/main/java/com/simibubi/create/content/curiosities/armor/CopperArmorItem.java deleted file mode 100644 index 8b3220ad1..000000000 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperArmorItem.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.simibubi.create.content.curiosities.armor; - -import com.simibubi.create.Create; - -import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EquipmentSlot; -import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.item.ArmorItem; -import net.minecraft.world.item.ItemStack; - -public class CopperArmorItem extends ArmorItem { - - public static final ResourceLocation TEXTURE = Create.asResource("textures/models/armor/copper.png"); - private static final String TEXTURE_STRING = TEXTURE.toString(); - - public CopperArmorItem(EquipmentSlot p_i48534_2_, Properties p_i48534_3_) { - super(AllArmorMaterials.COPPER, p_i48534_2_, p_i48534_3_.stacksTo(1)); - } - - public boolean isWornBy(Entity entity) { - if (!(entity instanceof LivingEntity)) - return false; - LivingEntity livingEntity = (LivingEntity) entity; - return livingEntity.getItemBySlot(slot).getItem() == this; - } - - @Override - public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlot slot, String type) { - return TEXTURE_STRING; - } - -} diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankItem.java b/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankItem.java deleted file mode 100644 index eef4852c6..000000000 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/CopperBacktankItem.java +++ /dev/null @@ -1,91 +0,0 @@ -package com.simibubi.create.content.curiosities.armor; - -import com.simibubi.create.content.curiosities.armor.CapacityEnchantment.ICapacityEnchantable; -import com.tterrag.registrate.util.entry.ItemEntry; - -import net.minecraft.core.NonNullList; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.util.Mth; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.EquipmentSlot; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.context.UseOnContext; -import net.minecraft.world.level.block.Block; - -public class CopperBacktankItem extends CopperArmorItem implements ICapacityEnchantable { - - public static final int DURABILITY_BAR = 0xEFEFEF; - private ItemEntry blockItem; - - public CopperBacktankItem(Properties p_i48534_3_, ItemEntry copperBacktankPlaceable) { - super(EquipmentSlot.CHEST, p_i48534_3_); - this.blockItem = copperBacktankPlaceable; - } - - @Override - public InteractionResult useOn(UseOnContext p_195939_1_) { - return blockItem.get() - .useOn(p_195939_1_); - } - - @Override - public boolean canBeDepleted() { - return false; - } - - @Override - public boolean isEnchantable(ItemStack p_77616_1_) { - return true; - } - - @Override - public void fillItemCategory(CreativeModeTab p_150895_1_, NonNullList p_150895_2_) { - if (!allowdedIn(p_150895_1_)) - return; - - ItemStack stack = new ItemStack(this); - CompoundTag nbt = new CompoundTag(); - nbt.putInt("Air", BackTankUtil.maxAirWithoutEnchants()); - stack.setTag(nbt); - p_150895_2_.add(stack); - } - - @Override - public boolean isBarVisible(ItemStack stack) { - return true; - } - - @Override - public int getBarWidth(ItemStack stack) { - return Math.round(13.0F * Mth.clamp(getRemainingAir(stack) / ((float) BackTankUtil.maxAir(stack)), 0, 1)); - } - - @Override - public int getBarColor(ItemStack stack) { - return DURABILITY_BAR; - } - - public static int getRemainingAir(ItemStack stack) { - CompoundTag orCreateTag = stack.getOrCreateTag(); - return orCreateTag.getInt("Air"); - } - - public static class CopperBacktankBlockItem extends BlockItem { - - public CopperBacktankBlockItem(Block pBlock, Properties pProperties) { - super(pBlock, pProperties); - } - - @Override - public void fillItemCategory(CreativeModeTab pGroup, NonNullList pItems) {} - - @Override - public String getDescriptionId() { - return this.getOrCreateDescriptionId(); - } - - } - -} diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/DivingBootsItem.java b/src/main/java/com/simibubi/create/content/curiosities/armor/DivingBootsItem.java index 4f154a3fd..dfffc1bd5 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/DivingBootsItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/DivingBootsItem.java @@ -1,22 +1,36 @@ package com.simibubi.create.content.curiosities.armor; -import com.simibubi.create.AllItems; +import java.util.Locale; + +import com.simibubi.create.foundation.item.MultiLayeredArmorItem; import com.simibubi.create.foundation.utility.NBTHelper; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.Pose; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.ItemStack; import net.minecraft.world.phys.Vec3; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; @EventBusSubscriber -public class DivingBootsItem extends CopperArmorItem { +public class DivingBootsItem extends BaseArmorItem { + public static final EquipmentSlot SLOT = EquipmentSlot.FEET; - public DivingBootsItem(Properties p_i48534_3_) { - super(EquipmentSlot.FEET, p_i48534_3_); + public DivingBootsItem(ArmorMaterial material, Properties properties, ResourceLocation textureLoc) { + super(material, SLOT, properties, textureLoc); + } + + public static boolean isWornBy(Entity entity) { + if (!(entity instanceof LivingEntity livingEntity)) { + return false; + } + return livingEntity.getItemBySlot(SLOT).getItem() instanceof DivingBootsItem; } @SubscribeEvent @@ -44,8 +58,7 @@ public class DivingBootsItem extends CopperArmorItem { } protected static boolean affects(LivingEntity entity) { - if (!AllItems.DIVING_BOOTS.get() - .isWornBy(entity)) { + if (!isWornBy(entity)) { entity.getPersistentData() .remove("HeavyBoots"); return false; @@ -64,4 +77,14 @@ public class DivingBootsItem extends CopperArmorItem { return true; } + public static class MultiLayered extends DivingBootsItem implements MultiLayeredArmorItem { + public MultiLayered(ArmorMaterial material, Properties properties, ResourceLocation textureLoc) { + super(material, properties, textureLoc); + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlot slot, String layer) { + return String.format(Locale.ROOT, "%s:textures/models/armor/%s_layer_%s.png", textureLoc.getNamespace(), textureLoc.getPath(), layer); + } + } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/DivingHelmetItem.java b/src/main/java/com/simibubi/create/content/curiosities/armor/DivingHelmetItem.java index bde2a4e65..a525dc198 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/armor/DivingHelmetItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/DivingHelmetItem.java @@ -1,15 +1,20 @@ package com.simibubi.create.content.curiosities.armor; -import com.simibubi.create.AllItems; -import com.simibubi.create.foundation.advancement.AllAdvancements; +import java.util.Locale; +import com.simibubi.create.foundation.advancement.AllAdvancements; +import com.simibubi.create.foundation.item.MultiLayeredArmorItem; + +import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.tags.FluidTags; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ArmorMaterial; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.Level; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; @@ -17,10 +22,18 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; @EventBusSubscriber -public class DivingHelmetItem extends CopperArmorItem { +public class DivingHelmetItem extends BaseArmorItem { + public static final EquipmentSlot SLOT = EquipmentSlot.HEAD; - public DivingHelmetItem(Properties p_i48534_3_) { - super(EquipmentSlot.HEAD, p_i48534_3_); + public DivingHelmetItem(ArmorMaterial material, Properties properties, ResourceLocation textureLoc) { + super(material, SLOT, properties, textureLoc); + } + + public static boolean isWornBy(Entity entity) { + if (!(entity instanceof LivingEntity livingEntity)) { + return false; + } + return livingEntity.getItemBySlot(SLOT).getItem() instanceof DivingHelmetItem; } @SubscribeEvent @@ -34,8 +47,7 @@ public class DivingHelmetItem extends CopperArmorItem { entity.getPersistentData() .remove("VisualBacktankAir"); - if (!AllItems.DIVING_HELMET.get() - .isWornBy(entity)) + if (!isWornBy(entity)) return; boolean lavaDiving = entity.isEyeInFluid(FluidTags.LAVA); @@ -44,10 +56,10 @@ public class DivingHelmetItem extends CopperArmorItem { if (entity instanceof Player && ((Player) entity).isCreative()) return; - ItemStack backtank = BackTankUtil.get(entity); + ItemStack backtank = BacktankUtil.get(entity); if (backtank.isEmpty()) return; - if (!BackTankUtil.hasAirRemaining(backtank)) + if (!BacktankUtil.hasAirRemaining(backtank)) return; if (lavaDiving) { @@ -61,7 +73,7 @@ public class DivingHelmetItem extends CopperArmorItem { if (world.isClientSide) entity.getPersistentData() - .putInt("VisualBacktankAir", (int) BackTankUtil.getAir(backtank)); + .putInt("VisualBacktankAir", (int) BacktankUtil.getAir(backtank)); if (!second) return; @@ -71,7 +83,17 @@ public class DivingHelmetItem extends CopperArmorItem { entity.setAirSupply(Math.min(entity.getMaxAirSupply(), entity.getAirSupply() + 10)); entity.addEffect(new MobEffectInstance(MobEffects.WATER_BREATHING, 30, 0, true, false, true)); - BackTankUtil.consumeAir(entity, backtank, 1); + BacktankUtil.consumeAir(entity, backtank, 1); } + public static class MultiLayered extends DivingHelmetItem implements MultiLayeredArmorItem { + public MultiLayered(ArmorMaterial material, Properties properties, ResourceLocation textureLoc) { + super(material, properties, textureLoc); + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EquipmentSlot slot, String layer) { + return String.format(Locale.ROOT, "%s:textures/models/armor/%s_layer_%s.png", textureLoc.getNamespace(), textureLoc.getPath(), layer); + } + } } diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/NetheriteDivingHandler.java b/src/main/java/com/simibubi/create/content/curiosities/armor/NetheriteDivingHandler.java new file mode 100644 index 000000000..1b83fb565 --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/NetheriteDivingHandler.java @@ -0,0 +1,150 @@ +package com.simibubi.create.content.curiosities.armor; + +import java.util.function.Supplier; + +import com.simibubi.create.AllItems; +import com.simibubi.create.foundation.networking.AllPackets; +import com.simibubi.create.foundation.networking.SimplePacketBase; + +import net.minecraft.client.Minecraft; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.FriendlyByteBuf; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ArmorMaterials; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.event.entity.living.LivingEquipmentChangeEvent; +import net.minecraftforge.event.entity.player.PlayerEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +import net.minecraftforge.network.NetworkEvent.Context; +import net.minecraftforge.network.PacketDistributor; + +@EventBusSubscriber +public final class NetheriteDivingHandler { + public static final String NETHERITE_DIVING_BITS_KEY = "CreateNetheriteDivingBits"; + public static final String FIRE_IMMUNE_KEY = "CreateFireImmune"; + + @SubscribeEvent + public static void onLivingEquipmentChange(LivingEquipmentChangeEvent event) { + EquipmentSlot slot = event.getSlot(); + if (slot.getType() != EquipmentSlot.Type.ARMOR) { + return; + } + + LivingEntity entity = event.getEntityLiving(); + ItemStack to = event.getTo(); + + if (slot == EquipmentSlot.HEAD) { + if (AllItems.NETHERITE_DIVING_HELMET.isIn(to)) { + setBit(entity, 0); + } else { + clearBit(entity, 0); + } + } else if (slot == EquipmentSlot.CHEST) { + if (AllItems.NETHERITE_BACKTANK.isIn(to)) { + setBit(entity, 1); + } else { + clearBit(entity, 1); + } + } else if (slot == EquipmentSlot.LEGS) { + if (to.getItem() instanceof ArmorItem armorItem && armorItem.getMaterial() == ArmorMaterials.NETHERITE) { + setBit(entity, 2); + } else { + clearBit(entity, 2); + } + } else if (slot == EquipmentSlot.FEET) { + if (to.getItem() instanceof ArmorItem armorItem && armorItem.getMaterial() == ArmorMaterials.NETHERITE) { + setBit(entity, 3); + } else { + clearBit(entity, 3); + } + } + } + + public static void setBit(LivingEntity entity, int i) { + CompoundTag nbt = entity.getPersistentData(); + byte bits = nbt.getByte(NETHERITE_DIVING_BITS_KEY); + bits |= 1 << i; + nbt.putByte(NETHERITE_DIVING_BITS_KEY, bits); + + if ((bits & 0xF) == 0xF) { + setFireImmune(entity, true); + } + } + + public static void clearBit(LivingEntity entity, int i) { + CompoundTag nbt = entity.getPersistentData(); + if (!nbt.contains(NETHERITE_DIVING_BITS_KEY)) { + return; + } + + byte bits = nbt.getByte(NETHERITE_DIVING_BITS_KEY); + boolean prevFullSet = (bits & 0xF) == 0xF; + bits &= ~(1 << i); + nbt.putByte(NETHERITE_DIVING_BITS_KEY, bits); + + if (prevFullSet) { + setFireImmune(entity, false); + } + } + + public static void setFireImmune(LivingEntity entity, boolean fireImmune) { + entity.getPersistentData().putBoolean(FIRE_IMMUNE_KEY, fireImmune); + AllPackets.channel.send(PacketDistributor.TRACKING_ENTITY_AND_SELF.with(() -> entity), SetFireImmunePacket.create(entity)); + } + + @SubscribeEvent + public static void onStartTrackingEntity(PlayerEvent.StartTracking event) { + if (!(event.getPlayer() instanceof ServerPlayer player)) { + return; + } + + if (!(event.getTarget() instanceof LivingEntity entity)) { + return; + } + + AllPackets.channel.send(PacketDistributor.PLAYER.with(() -> player), SetFireImmunePacket.create(entity)); + } + + public static class SetFireImmunePacket extends SimplePacketBase { + private final int entityId; + private final boolean fireImmune; + + public SetFireImmunePacket(int entityId, boolean fireImmune) { + this.entityId = entityId; + this.fireImmune = fireImmune; + } + + public static SetFireImmunePacket create(Entity entity) { + int entityId = entity.getId(); + boolean fireImmune = entity.getPersistentData().getBoolean(FIRE_IMMUNE_KEY); + return new SetFireImmunePacket(entityId, fireImmune); + } + + public SetFireImmunePacket(FriendlyByteBuf buffer) { + entityId = buffer.readVarInt(); + fireImmune = buffer.readBoolean(); + } + + @Override + public void write(FriendlyByteBuf buffer) { + buffer.writeVarInt(entityId); + buffer.writeBoolean(fireImmune); + } + + @Override + public void handle(Supplier context) { + context.get().enqueueWork(() -> { + Entity entity = Minecraft.getInstance().level.getEntity(entityId); + if (entity != null) { + entity.getPersistentData().putBoolean(FIRE_IMMUNE_KEY, fireImmune); + } + }); + context.get().setPacketHandled(true); + } + } +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/armor/RemainingAirOverlay.java b/src/main/java/com/simibubi/create/content/curiosities/armor/RemainingAirOverlay.java new file mode 100644 index 000000000..e806d41ef --- /dev/null +++ b/src/main/java/com/simibubi/create/content/curiosities/armor/RemainingAirOverlay.java @@ -0,0 +1,66 @@ +package com.simibubi.create.content.curiosities.armor; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.AllItems; +import com.simibubi.create.foundation.gui.element.GuiGameElement; +import com.simibubi.create.foundation.utility.Color; +import com.simibubi.create.foundation.utility.Components; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.player.LocalPlayer; +import net.minecraft.network.chat.Component; +import net.minecraft.tags.FluidTags; +import net.minecraft.util.StringUtil; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.GameType; +import net.minecraftforge.client.gui.ForgeIngameGui; +import net.minecraftforge.client.gui.IIngameOverlay; + +public class RemainingAirOverlay implements IIngameOverlay { + public static final RemainingAirOverlay INSTANCE = new RemainingAirOverlay(); + + @Override + public void render(ForgeIngameGui gui, PoseStack poseStack, float partialTick, int width, int height) { + Minecraft mc = Minecraft.getInstance(); + if (mc.options.hideGui || mc.gameMode.getPlayerMode() == GameType.SPECTATOR) + return; + + LocalPlayer player = mc.player; + if (player == null) + return; + if (player.isCreative()) + return; + if (!player.getPersistentData() + .contains("VisualBacktankAir")) + return; + if (!player.isEyeInFluid(FluidTags.WATER)) + return; + + int timeLeft = player.getPersistentData() + .getInt("VisualBacktankAir"); + + poseStack.pushPose(); + + poseStack.translate(width / 2 + 90, height - 53, 0); + + Component text = Components.literal(StringUtil.formatTickDuration(timeLeft * 20)); + GuiGameElement.of(getDisplayedBacktank(player)) + .at(0, 0) + .render(poseStack); + int color = 0xFF_FFFFFF; + if (timeLeft < 60 && timeLeft % 2 == 0) { + color = Color.mixColors(0xFF_FF0000, color, Math.max(timeLeft / 60f, .25f)); + } + mc.font.drawShadow(poseStack, text, 16, 5, color); + + poseStack.popPose(); + } + + public static ItemStack getDisplayedBacktank(LocalPlayer player) { + ItemStack backtank = BacktankUtil.get(player); + if (!backtank.isEmpty()) { + return backtank; + } + return AllItems.COPPER_BACKTANK.asStack(); + } +} diff --git a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripItem.java b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripItem.java index a32a7c5dd..161275653 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/tools/ExtendoGripItem.java @@ -8,7 +8,7 @@ import com.google.common.base.Suppliers; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; import com.simibubi.create.AllItems; -import com.simibubi.create.content.curiosities.armor.BackTankUtil; +import com.simibubi.create.content.curiosities.armor.BacktankUtil; import com.simibubi.create.foundation.advancement.AllAdvancements; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; @@ -205,23 +205,23 @@ public class ExtendoGripItem extends Item { if (!AllItems.EXTENDO_GRIP.isIn(extendo)) return; final InteractionHand h = hand; - if (!BackTankUtil.canAbsorbDamage(player, maxUses())) + if (!BacktankUtil.canAbsorbDamage(player, maxUses())) extendo.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(h)); } @Override public boolean isBarVisible(ItemStack stack) { - return BackTankUtil.isBarVisible(stack, maxUses()); + return BacktankUtil.isBarVisible(stack, maxUses()); } @Override public int getBarWidth(ItemStack stack) { - return BackTankUtil.getBarWidth(stack, maxUses()); + return BacktankUtil.getBarWidth(stack, maxUses()); } @Override public int getBarColor(ItemStack stack) { - return BackTankUtil.getBarColor(stack, maxUses()); + return BacktankUtil.getBarColor(stack, maxUses()); } private static int maxUses() { diff --git a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java index 7b132d8d0..8a808a0c8 100644 --- a/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java +++ b/src/main/java/com/simibubi/create/content/curiosities/weapons/PotatoCannonItem.java @@ -9,7 +9,7 @@ import com.simibubi.create.AllEnchantments; import com.simibubi.create.AllEntityTypes; import com.simibubi.create.Create; import com.simibubi.create.CreateClient; -import com.simibubi.create.content.curiosities.armor.BackTankUtil; +import com.simibubi.create.content.curiosities.armor.BacktankUtil; import com.simibubi.create.content.curiosities.zapper.ShootableGadgetItemMethods; import com.simibubi.create.foundation.config.AllConfigs; import com.simibubi.create.foundation.item.render.SimpleCustomRenderer; @@ -82,17 +82,17 @@ public class PotatoCannonItem extends ProjectileWeaponItem { @Override public boolean isBarVisible(ItemStack stack) { - return BackTankUtil.isBarVisible(stack, maxUses()); + return BacktankUtil.isBarVisible(stack, maxUses()); } @Override public int getBarWidth(ItemStack stack) { - return BackTankUtil.getBarWidth(stack, maxUses()); + return BacktankUtil.getBarWidth(stack, maxUses()); } @Override public int getBarColor(ItemStack stack) { - return BackTankUtil.getBarColor(stack, maxUses()); + return BacktankUtil.getBarColor(stack, maxUses()); } private int maxUses() { @@ -164,7 +164,7 @@ public class PotatoCannonItem extends ProjectileWeaponItem { player.getInventory().removeItem(itemStack); } - if (!BackTankUtil.canAbsorbDamage(player, maxUses())) + if (!BacktankUtil.canAbsorbDamage(player, maxUses())) stack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(hand)); Integer cooldown = diff --git a/src/main/java/com/simibubi/create/events/ClientEvents.java b/src/main/java/com/simibubi/create/events/ClientEvents.java index e3830192a..e40e05ddf 100644 --- a/src/main/java/com/simibubi/create/events/ClientEvents.java +++ b/src/main/java/com/simibubi/create/events/ClientEvents.java @@ -6,7 +6,6 @@ import java.util.List; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; import com.simibubi.create.AllFluids; -import com.simibubi.create.AllItems; import com.simibubi.create.Create; import com.simibubi.create.CreateClient; import com.simibubi.create.content.contraptions.KineticDebugger; @@ -25,7 +24,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.tra import com.simibubi.create.content.contraptions.components.turntable.TurntableHandler; import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRecipe; import com.simibubi.create.content.contraptions.relays.belt.item.BeltConnectorHandler; -import com.simibubi.create.content.curiosities.armor.CopperBacktankArmorLayer; +import com.simibubi.create.content.curiosities.armor.BacktankArmorLayer; +import com.simibubi.create.content.curiosities.armor.DivingHelmetItem; import com.simibubi.create.content.curiosities.girder.GirderWrenchBehavior; import com.simibubi.create.content.curiosities.toolbox.ToolboxHandlerClient; import com.simibubi.create.content.curiosities.tools.BlueprintOverlayRenderer; @@ -334,7 +334,7 @@ public class ClientEvents { return; } - if (FluidHelper.isWater(fluid) && AllItems.DIVING_HELMET.get() + if (FluidHelper.isWater(fluid) && DivingHelmetItem .isWornBy(Minecraft.getInstance().cameraEntity)) { event.scaleFarPlaneDistance(6.25f); event.setCanceled(true); @@ -390,7 +390,7 @@ public class ClientEvents { public static void addEntityRendererLayers(EntityRenderersEvent.AddLayers event) { EntityRenderDispatcher dispatcher = Minecraft.getInstance() .getEntityRenderDispatcher(); - CopperBacktankArmorLayer.registerOnAll(dispatcher); + BacktankArmorLayer.registerOnAll(dispatcher); TrainHatArmorLayer.registerOnAll(dispatcher); } diff --git a/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java b/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java index ebd311337..d0f8407fe 100644 --- a/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java +++ b/src/main/java/com/simibubi/create/foundation/advancement/AllAdvancements.java @@ -270,7 +270,7 @@ public class AllAdvancements implements DataProvider { .description("Create a Copper Backtank and make it accumulate air pressure") .after(STEAM_WHISTLE)), - DIVING_SUIT = create("diving_suit", b -> b.icon(AllItems.DIVING_HELMET) + DIVING_SUIT = create("diving_suit", b -> b.icon(AllItems.COPPER_DIVING_HELMET) .title("Ready for the Depths") .description("Equip a Diving Helmet and a Copper Backtank, then jump into water") .after(BACKTANK)), @@ -331,7 +331,7 @@ public class AllAdvancements implements DataProvider { // Copper - Hidden - DIVING_SUIT_LAVA = create("diving_suit_lava", b -> b.icon(AllItems.DIVING_HELMET) + DIVING_SUIT_LAVA = create("diving_suit_lava", b -> b.icon(AllItems.COPPER_DIVING_HELMET) .title("Swimming with the Striders") .description("Attempt to take a dive in lava with your diving gear") .after(BACKTANK) diff --git a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java index 2c410b692..1574a414f 100644 --- a/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java +++ b/src/main/java/com/simibubi/create/foundation/data/BuilderTransformers.java @@ -62,6 +62,16 @@ import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.PistonType; import net.minecraft.world.level.material.Material; +import net.minecraft.world.level.storage.loot.LootPool; +import net.minecraft.world.level.storage.loot.LootTable; +import net.minecraft.world.level.storage.loot.LootTable.Builder; +import net.minecraft.world.level.storage.loot.entries.LootItem; +import net.minecraft.world.level.storage.loot.functions.CopyNameFunction; +import net.minecraft.world.level.storage.loot.functions.CopyNbtFunction; +import net.minecraft.world.level.storage.loot.predicates.ExplosionCondition; +import net.minecraft.world.level.storage.loot.predicates.LootItemCondition; +import net.minecraft.world.level.storage.loot.providers.nbt.ContextNbtProvider; +import net.minecraft.world.level.storage.loot.providers.number.ConstantValue; import net.minecraftforge.client.model.generators.ConfiguredModel; import net.minecraftforge.client.model.generators.ModelFile; @@ -360,6 +370,27 @@ public class BuilderTransformers { .transform(ModelGen.customItemModel("crate", type, "single")); } + public static NonNullUnaryOperator> backtank(Supplier drop) { + return b -> b + .blockstate((c, p) -> p.horizontalBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p))) + .transform(pickaxeOnly()) + .addLayer(() -> RenderType::cutoutMipped) + .transform(BlockStressDefaults.setImpact(4.0)) + .loot((lt, block) -> { + Builder builder = LootTable.lootTable(); + LootItemCondition.Builder survivesExplosion = ExplosionCondition.survivesExplosion(); + lt.add(block, builder.withPool(LootPool.lootPool() + .when(survivesExplosion) + .setRolls(ConstantValue.exactly(1)) + .add(LootItem.lootTableItem(drop.get()) + .apply(CopyNameFunction.copyName(CopyNameFunction.NameSource.BLOCK_ENTITY)) + .apply(CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY) + .copy("Air", "Air")) + .apply(CopyNbtFunction.copyData(ContextNbtProvider.BLOCK_ENTITY) + .copy("Enchantments", "Enchantments"))))); + }); + } + public static NonNullUnaryOperator> bell() { return b -> b.initialProperties(SharedProperties::softMetal) .properties(p -> p.noOcclusion() diff --git a/src/main/java/com/simibubi/create/foundation/data/SharedProperties.java b/src/main/java/com/simibubi/create/foundation/data/SharedProperties.java index f1838c470..256aafed4 100644 --- a/src/main/java/com/simibubi/create/foundation/data/SharedProperties.java +++ b/src/main/java/com/simibubi/create/foundation/data/SharedProperties.java @@ -15,6 +15,10 @@ public class SharedProperties { public static final Material CRUSHING_WHEEL_CONTROLLER_MATERIAL = new Material(MaterialColor.NONE, false, false, true, true, false, false, PushReaction.BLOCK); + public static Block wooden() { + return Blocks.STRIPPED_SPRUCE_WOOD; + } + public static Block stone() { return Blocks.ANDESITE; } @@ -22,12 +26,12 @@ public class SharedProperties { public static Block softMetal() { return Blocks.GOLD_BLOCK; } - + public static Block copperMetal() { return Blocks.COPPER_BLOCK; } - public static Block wooden() { - return Blocks.STRIPPED_SPRUCE_WOOD; + public static Block netheriteMetal() { + return Blocks.NETHERITE_BLOCK; } } diff --git a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java index 1c6451ea9..31b4dda4b 100644 --- a/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java +++ b/src/main/java/com/simibubi/create/foundation/data/recipe/StandardRecipeGen.java @@ -988,7 +988,7 @@ public class StandardRecipeGen extends CreateRecipeProvider { .viaShapeless(b -> b.requires(I.wheatFlour()) .requires(Items.WATER_BUCKET)), - DIVING_HELMET = create(AllItems.DIVING_HELMET).unlockedBy(I::copper) + DIVING_HELMET = create(AllItems.COPPER_DIVING_HELMET).unlockedBy(I::copper) .viaShaped(b -> b.define('G', Tags.Items.GLASS) .define('P', I.copper()) .pattern("PPP") @@ -1003,7 +1003,7 @@ public class StandardRecipeGen extends CreateRecipeProvider { .pattern("PBP") .pattern(" P ")), - DIVING_BOOTS = create(AllItems.DIVING_BOOTS).unlockedBy(I::copper) + DIVING_BOOTS = create(AllItems.COPPER_DIVING_BOOTS).unlockedBy(I::copper) .viaShaped(b -> b.define('G', I.andesite()) .define('P', I.copper()) .pattern("P P") diff --git a/src/main/java/com/simibubi/create/foundation/item/MultiLayeredArmorItem.java b/src/main/java/com/simibubi/create/foundation/item/MultiLayeredArmorItem.java new file mode 100644 index 000000000..025faf134 --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/item/MultiLayeredArmorItem.java @@ -0,0 +1,20 @@ +package com.simibubi.create.foundation.item; + +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.DyeableLeatherItem; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.common.extensions.IForgeItem; + +/** + * This interface is meant to be implemented on {@link ArmorItem}s, which will allow them to be rendered on both the inner model and outer model. + * + *

Classes implementing this interface must not also implement {@link DyeableLeatherItem}. + * + *

Classes that implement this interface and override {@link IForgeItem#getArmorTexture(ItemStack, Entity, EquipmentSlot, String) getArmorTexture} + * must note that the {@code String} argument will be used for layer context instead of the type. + * This string will always be {@code "1"} when querying the location for the outer model or {@code "2"} when querying the location for the inner model. + */ +public interface MultiLayeredArmorItem { +} diff --git a/src/main/java/com/simibubi/create/foundation/mixin/EntityMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/EntityMixin.java new file mode 100644 index 000000000..18cfd4b6a --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/mixin/EntityMixin.java @@ -0,0 +1,22 @@ +package com.simibubi.create.foundation.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +import com.simibubi.create.content.curiosities.armor.NetheriteDivingHandler; + +import net.minecraft.world.entity.Entity; + +@Mixin(Entity.class) +public class EntityMixin { + @Inject(method = "fireImmune()Z", at = @At("RETURN"), cancellable = true) + public void fireImmune(CallbackInfoReturnable cir) { + if (!cir.getReturnValueZ()) { + Entity self = (Entity) (Object) this; + boolean immune = self.getPersistentData().getBoolean(NetheriteDivingHandler.FIRE_IMMUNE_KEY); + cir.setReturnValue(immune); + } + } +} diff --git a/src/main/java/com/simibubi/create/foundation/mixin/HumanoidArmorLayerMixin.java b/src/main/java/com/simibubi/create/foundation/mixin/HumanoidArmorLayerMixin.java new file mode 100644 index 000000000..4aa5abd0f --- /dev/null +++ b/src/main/java/com/simibubi/create/foundation/mixin/HumanoidArmorLayerMixin.java @@ -0,0 +1,87 @@ +package com.simibubi.create.foundation.mixin; + +import javax.annotation.Nullable; + +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.ModifyVariable; +import org.spongepowered.asm.mixin.injection.At.Shift; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; + +import com.mojang.blaze3d.vertex.PoseStack; +import com.simibubi.create.foundation.item.MultiLayeredArmorItem; + +import net.minecraft.client.model.HumanoidModel; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ItemStack; + +@Mixin(HumanoidArmorLayer.class) +public class HumanoidArmorLayerMixin { + @Shadow + @Final + private HumanoidModel innerModel; + @Shadow + @Final + private HumanoidModel outerModel; + + @Unique + private boolean intercepted; + @Unique + private Boolean useInnerTexture; + + @Shadow + private void renderArmorPiece(PoseStack poseStack, MultiBufferSource buffer, LivingEntity livingEntity, EquipmentSlot slot, int packedLight, HumanoidModel model) { + } + + @Shadow + private boolean usesInnerModel(EquipmentSlot slot) { + return false; + } + + @Inject(method = "renderArmorPiece", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/layers/HumanoidArmorLayer;getParentModel()Lnet/minecraft/client/model/EntityModel;"), locals = LocalCapture.CAPTURE_FAILHARD, cancellable = true) + private void onRenderArmorPiece(PoseStack poseStack, MultiBufferSource buffer, LivingEntity livingEntity, EquipmentSlot slot, int packedLight, HumanoidModel model, CallbackInfo ci, ItemStack stack, ArmorItem armorItem) { + if (intercepted) { + return; + } + + if (armorItem instanceof MultiLayeredArmorItem) { + intercepted = true; + + useInnerTexture = true; + renderArmorPiece(poseStack, buffer, livingEntity, slot, packedLight, innerModel); + useInnerTexture = false; + renderArmorPiece(poseStack, buffer, livingEntity, slot, packedLight, outerModel); + + useInnerTexture = null; + intercepted = false; + ci.cancel(); + } + } + + @Inject(method = "usesInnerModel", at = @At("HEAD"), cancellable = true) + private void onUsesInnerModel(EquipmentSlot slot, CallbackInfoReturnable cir) { + if (useInnerTexture != null) { + cir.setReturnValue(useInnerTexture); + } + } + + @ModifyVariable(method = "getArmorResource", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/client/ForgeHooksClient;getArmorTexture(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/item/ItemStack;Ljava/lang/String;Lnet/minecraft/world/entity/EquipmentSlot;Ljava/lang/String;)Ljava/lang/String;", shift = Shift.BEFORE), ordinal = 0) + private String modifyType(@Nullable String type, Entity entity, ItemStack stack, EquipmentSlot slot, @Nullable String typeArg) { + if (stack.getItem() instanceof MultiLayeredArmorItem) { + return usesInnerModel(slot) ? "2" : "1"; + } + + return type; + } +} diff --git a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java index 1fd3ea695..e30bd3873 100644 --- a/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java +++ b/src/main/java/com/simibubi/create/foundation/networking/AllPackets.java @@ -35,6 +35,7 @@ import com.simibubi.create.content.contraptions.components.structureMovement.tra import com.simibubi.create.content.contraptions.fluids.actors.FluidSplashPacket; import com.simibubi.create.content.contraptions.relays.advanced.sequencer.ConfigureSequencedGearshiftPacket; import com.simibubi.create.content.contraptions.relays.gauge.GaugeObservedPacket; +import com.simibubi.create.content.curiosities.armor.NetheriteDivingHandler; import com.simibubi.create.content.curiosities.bell.SoulPulseEffectPacket; import com.simibubi.create.content.curiosities.symmetry.ConfigureSymmetryWandPacket; import com.simibubi.create.content.curiosities.symmetry.SymmetryEffectPacket; @@ -194,6 +195,7 @@ public enum AllPackets { TRACK_GRAPH_ROLL_CALL(TrackGraphRollCallPacket.class, TrackGraphRollCallPacket::new, PLAY_TO_CLIENT), UPDATE_ELEVATOR_FLOORS(ElevatorFloorListPacket.class, ElevatorFloorListPacket::new, PLAY_TO_CLIENT), CONTRAPTION_ACTOR_TOGGLE(ContraptionDisableActorPacket.class, ContraptionDisableActorPacket::new, PLAY_TO_CLIENT), + SET_FIRE_IMMUNE(NetheriteDivingHandler.SetFireImmunePacket.class, NetheriteDivingHandler.SetFireImmunePacket::new, PLAY_TO_CLIENT), ; diff --git a/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java b/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java index 9c579b473..77cb32db0 100644 --- a/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java +++ b/src/main/java/com/simibubi/create/foundation/utility/RemapHelper.java @@ -25,6 +25,8 @@ import static com.simibubi.create.AllBlocks.STOCKPILE_SWITCH; import static com.simibubi.create.AllBlocks.STRESSOMETER; import static com.simibubi.create.AllItems.ATTRIBUTE_FILTER; import static com.simibubi.create.AllItems.CRAFTER_SLOT_COVER; +import static com.simibubi.create.AllItems.COPPER_DIVING_BOOTS; +import static com.simibubi.create.AllItems.COPPER_DIVING_HELMET; import static com.simibubi.create.AllItems.GOLDEN_SHEET; import static com.simibubi.create.AllItems.POWDERED_OBSIDIAN; import static com.simibubi.create.AllItems.SCHEMATIC; @@ -51,12 +53,14 @@ import static com.simibubi.create.content.palettes.AllPaletteBlocks.SPRUCE_WINDO import java.util.HashMap; import java.util.Map; +import com.simibubi.create.AllTileEntities; import com.simibubi.create.Create; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.material.Fluid; import net.minecraftforge.common.ForgeMod; import net.minecraftforge.event.RegistryEvent; @@ -179,6 +183,8 @@ public class RemapHelper { reMap.put("terrain_zapper", WORLDSHAPER.getId()); reMap.put("property_filter", ATTRIBUTE_FILTER.getId()); reMap.put("obsidian_dust", POWDERED_OBSIDIAN.getId()); + reMap.put("diving_helmet", COPPER_DIVING_HELMET.getId()); + reMap.put("diving_boots", COPPER_DIVING_BOOTS.getId()); } private static void remapPaletteBlock(String type, String newType, boolean vanilla) { @@ -274,4 +280,16 @@ public class RemapHelper { } } + @SubscribeEvent + public static void remapBlockEntities(RegistryEvent.MissingMappings> event) { + for (Mapping> mapping : event.getMappings(Create.ID)) { + ResourceLocation key = mapping.key; + String path = key.getPath(); + + if (path.equals("copper_backtank")) { + mapping.remap(AllTileEntities.BACKTANK.get()); + } + } + } + } diff --git a/src/main/resources/assets/create/lang/default/tooltips.json b/src/main/resources/assets/create/lang/default/tooltips.json index 870b1f292..be7e4a106 100644 --- a/src/main/resources/assets/create/lang/default/tooltips.json +++ b/src/main/resources/assets/create/lang/default/tooltips.json @@ -49,17 +49,17 @@ "item.create.tree_fertilizer.tooltip.behaviour1": "Grows Trees _regardless_ of their _spacing conditions_", "item.create.extendo_grip.tooltip": "EXTENDO GRIP", - "item.create.extendo_grip.tooltip.summary": "Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.extendo_grip.tooltip.summary": "Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Backtank_", "item.create.extendo_grip.tooltip.condition1": "When in Off-Hand", "item.create.extendo_grip.tooltip.behaviour1": "Increases _reach distance_ of items used in the _Main-Hand_.", - "item.create.extendo_grip.tooltip.condition2": "While wearing Copper Backtank", + "item.create.extendo_grip.tooltip.condition2": "While wearing Backtank", "item.create.extendo_grip.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.potato_cannon.tooltip": "POTATO CANNON", - "item.create.potato_cannon.tooltip.summary": "Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Copper_ _Backtank_", + "item.create.potato_cannon.tooltip.summary": "Fwoomp! Launch your home-grown vegetables at your Enemies. Can be powered with Air Pressure from a _Backtank_", "item.create.potato_cannon.tooltip.condition1": "When R-Clicked", "item.create.potato_cannon.tooltip.behaviour1": "_Shoots_ a suitable item from your _Inventory_.", - "item.create.potato_cannon.tooltip.condition2": "While wearing Copper Backtank", + "item.create.potato_cannon.tooltip.condition2": "While wearing Backtank", "item.create.potato_cannon.tooltip.behaviour2": "_No_ _Durability_ will be used. Instead, _Air_ _pressure_ is drained from the Tank", "item.create.filter.tooltip": "FILTER", @@ -202,7 +202,7 @@ "item.create.linked_controller.tooltip.behaviour4": "Places the Controller into the Lectern for easy activation. (R-Click while Sneaking to retrieve it)", "item.create.diving_helmet.tooltip": "DIVING HELMET", - "item.create.diving_helmet.tooltip.summary": "Together with a _Copper_ _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", + "item.create.diving_helmet.tooltip.summary": "Together with a _Backtank_, allows the wielder to _breathe_ _underwater_ for an extended amount of time.", "item.create.diving_helmet.tooltip.condition1": "When Worn", "item.create.diving_helmet.tooltip.behaviour1": "Provides the _Water Breathing_ effect, slowly draining _Air Pressure_ from the Backtank.", @@ -213,6 +213,13 @@ "item.create.copper_backtank.tooltip.condition2": "When placed, Powered by Kinetics", "item.create.copper_backtank.tooltip.behaviour2": "_Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "item.create.netherite_backtank.tooltip": "NETHERITE BACKTANK", + "item.create.netherite_backtank.tooltip.summary": "A _Wearable_ _Tank_ for carrying Pressurized Air.", + "item.create.netherite_backtank.tooltip.condition1": "When Worn", + "item.create.netherite_backtank.tooltip.behaviour1": "Provides _Pressurized_ _Air_ to Equipment that requires it.", + "item.create.netherite_backtank.tooltip.condition2": "When placed, Powered by Kinetics", + "item.create.netherite_backtank.tooltip.behaviour2": "_Collects_ _Pressurized_ _Air_ at a rate depending on the Rotational Speed.", + "block.create.placard.tooltip": "PLACARD", "block.create.placard.tooltip.summary": "_Frame_ your _items_ in brass using this fancy wall panel. Safe for contraptions!", "block.create.placard.tooltip.condition1": "When R-Clicked with Item", diff --git a/src/main/resources/assets/create/models/block/netherite_backtank/block.json b/src/main/resources/assets/create/models/block/netherite_backtank/block.json new file mode 100644 index 000000000..8af694a87 --- /dev/null +++ b/src/main/resources/assets/create/models/block/netherite_backtank/block.json @@ -0,0 +1,74 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/netherite_backtank", + "particle": "create:block/netherite_backtank" + }, + "elements": [ + { + "from": [5, 0, 5], + "to": [11, 4, 11], + "faces": { + "north": {"uv": [8.5, 4, 11.5, 6], "texture": "#0"}, + "east": {"uv": [4.5, 4, 7.5, 6], "texture": "#0"}, + "south": {"uv": [0.5, 4, 3.5, 6], "texture": "#0"}, + "west": {"uv": [4.5, 4, 7.5, 6], "texture": "#0"}, + "down": {"uv": [4.5, 6.5, 7.5, 9.5], "texture": "#0"} + } + }, + { + "from": [5, 10, 5], + "to": [11, 12, 11], + "faces": { + "north": {"uv": [8.5, 0, 11.5, 1], "texture": "#0"}, + "east": {"uv": [4.5, 0, 7.5, 1], "texture": "#0"}, + "south": {"uv": [0.5, 0, 3.5, 1], "texture": "#0"}, + "west": {"uv": [4.5, 0, 7.5, 1], "texture": "#0"}, + "up": {"uv": [0.5, 6.5, 3.5, 9.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 4], + "to": [12, 10, 12], + "faces": { + "north": {"uv": [8, 1, 12, 4], "texture": "#0"}, + "east": {"uv": [4, 1, 8, 4], "texture": "#0"}, + "south": {"uv": [0, 1, 4, 4], "texture": "#0"}, + "west": {"uv": [4, 1, 8, 4], "texture": "#0"}, + "up": {"uv": [0, 6, 4, 10], "texture": "#0"}, + "down": {"uv": [4, 6, 8, 10], "texture": "#0"} + } + }, + { + "from": [4, 4, 9], + "to": [12, 10, 11], + "faces": { + "south": {"uv": [0, 12.5, 1, 13], "texture": "#0"} + } + }, + { + "from": [5, 2, 3], + "to": [11, 11, 5], + "faces": { + "north": {"uv": [1, 11.5, 4, 16], "texture": "#0"}, + "east": {"uv": [5, 11.5, 4, 16], "texture": "#0"}, + "south": {"uv": [0, 0, 6, 9], "texture": "#0"}, + "west": {"uv": [4, 11.5, 5, 16], "texture": "#0"}, + "up": {"uv": [1, 10.5, 4, 11.5], "texture": "#0"}, + "down": {"uv": [0, 11.5, 1, 14.5], "rotation": 90, "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "Tank", + "origin": [0, 0, 0], + "children": [0, 1, 2, 3, 4] + }, + { + "name": "Axle", + "origin": [8, 8, 8], + "children": [] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/netherite_backtank/block_cogs.json b/src/main/resources/assets/create/models/block/netherite_backtank/block_cogs.json new file mode 100644 index 000000000..3db35b065 --- /dev/null +++ b/src/main/resources/assets/create/models/block/netherite_backtank/block_cogs.json @@ -0,0 +1,125 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/netherite_backtank", + "particle": "create:block/netherite_backtank" + }, + "elements": [ + { + "from": [5, 4, 10.5], + "to": [7, 9, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"}, + "east": {"uv": [6.5, 11.5, 7, 14], "texture": "#0"}, + "south": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"}, + "west": {"uv": [5.5, 11.5, 6, 14], "texture": "#0"}, + "up": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "down": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"} + } + }, + { + "from": [5, 4, 10.5], + "to": [7, 9, 11.5], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"}, + "east": {"uv": [6.5, 11.5, 7, 14], "texture": "#0"}, + "south": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"}, + "west": {"uv": [5.5, 11.5, 6, 14], "texture": "#0"}, + "up": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "down": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"} + } + }, + { + "from": [5, 6, 8.5], + "to": [7, 7, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [6.5, 11.5, 7, 14], "rotation": 270, "texture": "#0"}, + "south": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "west": {"uv": [5.5, 11.5, 6, 14], "rotation": 90, "texture": "#0"}, + "up": {"uv": [6.5, 11.5, 5.5, 14], "rotation": 180, "texture": "#0"}, + "down": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"} + } + }, + { + "from": [5, 6, 8.5], + "to": [7, 7, 13.5], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [6.5, 11.5, 7, 14], "rotation": 270, "texture": "#0"}, + "south": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "west": {"uv": [5.5, 11.5, 6, 14], "rotation": 90, "texture": "#0"}, + "up": {"uv": [6.5, 11.5, 5.5, 14], "rotation": 180, "texture": "#0"}, + "down": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"} + } + }, + { + "from": [9, 4, 10.5], + "to": [11, 9, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"}, + "east": {"uv": [5.5, 11.5, 6, 14], "texture": "#0"}, + "south": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"}, + "west": {"uv": [6.5, 11.5, 7, 14], "texture": "#0"}, + "up": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [9, 4, 10.5], + "to": [11, 9, 11.5], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"}, + "east": {"uv": [5.5, 11.5, 6, 14], "texture": "#0"}, + "south": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"}, + "west": {"uv": [6.5, 11.5, 7, 14], "texture": "#0"}, + "up": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [9, 6, 8.5], + "to": [11, 7, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "east": {"uv": [5.5, 11.5, 6, 14], "rotation": 270, "texture": "#0"}, + "south": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [6.5, 11.5, 7, 14], "rotation": 90, "texture": "#0"}, + "up": {"uv": [5.5, 11.5, 6.5, 14], "rotation": 180, "texture": "#0"}, + "down": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"} + } + }, + { + "from": [9, 6, 8.5], + "to": [11, 7, 13.5], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "east": {"uv": [5.5, 11.5, 6, 14], "rotation": 270, "texture": "#0"}, + "south": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [6.5, 11.5, 7, 14], "rotation": 90, "texture": "#0"}, + "up": {"uv": [5.5, 11.5, 6.5, 14], "rotation": 180, "texture": "#0"}, + "down": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "Gears", + "origin": [1, 2.5, 0.5], + "children": [0, 1, 2, 3, 4, 5, 6, 7] + }, + { + "name": "Axle", + "origin": [8, 8, 8], + "children": [] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/netherite_backtank/block_shaft_input.json b/src/main/resources/assets/create/models/block/netherite_backtank/block_shaft_input.json new file mode 100644 index 000000000..09a4d316e --- /dev/null +++ b/src/main/resources/assets/create/models/block/netherite_backtank/block_shaft_input.json @@ -0,0 +1,37 @@ +{ + "credit": "Made with Blockbench", + "textures": { + "0": "create:block/netherite_backtank", + "particle": "create:block/netherite_backtank" + }, + "elements": [ + { + "from": [6.5, 12, 6.5], + "to": [9.5, 13, 9.5], + "faces": { + "north": {"uv": [14.5, 4, 16, 4.5], "texture": "#0"}, + "east": {"uv": [14.5, 3.5, 16, 4], "texture": "#0"}, + "south": {"uv": [14.5, 3.5, 16, 4], "texture": "#0"}, + "west": {"uv": [14.5, 3, 16, 3.5], "texture": "#0"} + } + }, + { + "from": [6, 13, 6], + "to": [10, 16, 10], + "faces": { + "north": {"uv": [14, 2, 16, 3.5], "texture": "#0"}, + "east": {"uv": [14, 2, 16, 3.5], "texture": "#0"}, + "south": {"uv": [14, 2, 16, 3.5], "texture": "#0"}, + "west": {"uv": [14, 2, 16, 3.5], "texture": "#0"}, + "up": {"uv": [14, 0, 16, 2], "texture": "#0"}, + "down": {"uv": [15.5, 5, 16, 5.5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "Axle", + "origin": [8, 8, 8], + "children": [] + }, 0, 1] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/models/block/netherite_backtank/item.json b/src/main/resources/assets/create/models/block/netherite_backtank/item.json new file mode 100644 index 000000000..20607aa1f --- /dev/null +++ b/src/main/resources/assets/create/models/block/netherite_backtank/item.json @@ -0,0 +1,205 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/block", + "textures": { + "0": "create:block/netherite_backtank", + "particle": "create:block/netherite_backtank" + }, + "elements": [ + { + "from": [5, 4, 10.5], + "to": [7, 9, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"}, + "east": {"uv": [6.5, 11.5, 7, 14], "texture": "#0"}, + "south": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"}, + "west": {"uv": [5.5, 11.5, 6, 14], "texture": "#0"}, + "up": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "down": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"} + } + }, + { + "from": [5, 4, 10.5], + "to": [7, 9, 11.5], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"}, + "east": {"uv": [6.5, 11.5, 7, 14], "texture": "#0"}, + "south": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"}, + "west": {"uv": [5.5, 11.5, 6, 14], "texture": "#0"}, + "up": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "down": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"} + } + }, + { + "from": [5, 6, 8.5], + "to": [7, 7, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [6.5, 11.5, 7, 14], "rotation": 270, "texture": "#0"}, + "south": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "west": {"uv": [5.5, 11.5, 6, 14], "rotation": 90, "texture": "#0"}, + "up": {"uv": [6.5, 11.5, 5.5, 14], "rotation": 180, "texture": "#0"}, + "down": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"} + } + }, + { + "from": [5, 6, 8.5], + "to": [7, 7, 13.5], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "east": {"uv": [6.5, 11.5, 7, 14], "rotation": 270, "texture": "#0"}, + "south": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "west": {"uv": [5.5, 11.5, 6, 14], "rotation": 90, "texture": "#0"}, + "up": {"uv": [6.5, 11.5, 5.5, 14], "rotation": 180, "texture": "#0"}, + "down": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"} + } + }, + { + "from": [9, 4, 10.5], + "to": [11, 9, 11.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"}, + "east": {"uv": [5.5, 11.5, 6, 14], "texture": "#0"}, + "south": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"}, + "west": {"uv": [6.5, 11.5, 7, 14], "texture": "#0"}, + "up": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [9, 4, 10.5], + "to": [11, 9, 11.5], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11.5, 6.5, 14], "texture": "#0"}, + "east": {"uv": [5.5, 11.5, 6, 14], "texture": "#0"}, + "south": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"}, + "west": {"uv": [6.5, 11.5, 7, 14], "texture": "#0"}, + "up": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "down": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"} + } + }, + { + "from": [9, 6, 8.5], + "to": [11, 7, 13.5], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "east": {"uv": [5.5, 11.5, 6, 14], "rotation": 270, "texture": "#0"}, + "south": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [6.5, 11.5, 7, 14], "rotation": 90, "texture": "#0"}, + "up": {"uv": [5.5, 11.5, 6.5, 14], "rotation": 180, "texture": "#0"}, + "down": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"} + } + }, + { + "from": [9, 6, 8.5], + "to": [11, 7, 13.5], + "rotation": {"angle": 45, "axis": "x", "origin": [8, 6.5, 11]}, + "faces": { + "north": {"uv": [5.5, 11, 6.5, 11.5], "texture": "#0"}, + "east": {"uv": [5.5, 11.5, 6, 14], "rotation": 270, "texture": "#0"}, + "south": {"uv": [5.5, 11, 6.5, 11.5], "rotation": 180, "texture": "#0"}, + "west": {"uv": [6.5, 11.5, 7, 14], "rotation": 90, "texture": "#0"}, + "up": {"uv": [5.5, 11.5, 6.5, 14], "rotation": 180, "texture": "#0"}, + "down": {"uv": [6.5, 11.5, 5.5, 14], "texture": "#0"} + } + }, + { + "from": [5, 0, 5], + "to": [11, 4, 11], + "faces": { + "north": {"uv": [8.5, 4, 11.5, 6], "texture": "#0"}, + "east": {"uv": [4.5, 4, 7.5, 6], "texture": "#0"}, + "south": {"uv": [0.5, 4, 3.5, 6], "texture": "#0"}, + "west": {"uv": [4.5, 4, 7.5, 6], "texture": "#0"}, + "down": {"uv": [4.5, 6.5, 7.5, 9.5], "texture": "#0"} + } + }, + { + "from": [5, 10, 5], + "to": [11, 12, 11], + "faces": { + "north": {"uv": [8.5, 0, 11.5, 1], "texture": "#0"}, + "east": {"uv": [4.5, 0, 7.5, 1], "texture": "#0"}, + "south": {"uv": [0.5, 0, 3.5, 1], "texture": "#0"}, + "west": {"uv": [4.5, 0, 7.5, 1], "texture": "#0"}, + "up": {"uv": [0.5, 6.5, 3.5, 9.5], "texture": "#0"} + } + }, + { + "from": [4, 4, 4], + "to": [12, 10, 12], + "faces": { + "north": {"uv": [8, 1, 12, 4], "texture": "#0"}, + "east": {"uv": [4, 1, 8, 4], "texture": "#0"}, + "south": {"uv": [0, 1, 4, 4], "texture": "#0"}, + "west": {"uv": [4, 1, 8, 4], "texture": "#0"}, + "up": {"uv": [0, 6, 4, 10], "texture": "#0"}, + "down": {"uv": [4, 6, 8, 10], "texture": "#0"} + } + }, + { + "from": [4, 4, 9], + "to": [12, 10, 11], + "faces": { + "south": {"uv": [0, 12.5, 1, 13], "texture": "#0"} + } + }, + { + "from": [5, 2, 3], + "to": [11, 11, 5], + "faces": { + "north": {"uv": [1, 11.5, 4, 16], "texture": "#0"}, + "east": {"uv": [5, 11.5, 4, 16], "texture": "#0"}, + "south": {"uv": [0, 0, 6, 9], "texture": "#0"}, + "west": {"uv": [4, 11.5, 5, 16], "texture": "#0"}, + "up": {"uv": [1, 10.5, 4, 11.5], "texture": "#0"}, + "down": {"uv": [0, 11.5, 1, 14.5], "rotation": 90, "texture": "#0"} + } + }, + { + "from": [6.5, 12, 6.5], + "to": [9.5, 13, 9.5], + "faces": { + "north": {"uv": [14.5, 4, 16, 4.5], "texture": "#0"}, + "east": {"uv": [14.5, 3.5, 16, 4], "texture": "#0"}, + "south": {"uv": [14.5, 3.5, 16, 4], "texture": "#0"}, + "west": {"uv": [14.5, 3, 16, 3.5], "texture": "#0"} + } + }, + { + "from": [6, 13, 6], + "to": [10, 16, 10], + "faces": { + "north": {"uv": [14, 2, 16, 3.5], "texture": "#0"}, + "east": {"uv": [14, 2, 16, 3.5], "texture": "#0"}, + "south": {"uv": [14, 2, 16, 3.5], "texture": "#0"}, + "west": {"uv": [14, 2, 16, 3.5], "texture": "#0"}, + "up": {"uv": [14, 0, 16, 2], "texture": "#0"}, + "down": {"uv": [15.5, 5, 16, 5.5], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "Gears", + "origin": [1, 2.5, 0.5], + "children": [0, 1, 2, 3, 4, 5, 6, 7] + }, + { + "name": "Tank", + "origin": [0, 0, 0], + "children": [8, 9, 10, 11, 12] + }, + { + "name": "Axle", + "origin": [8, 8, 8], + "children": [] + }, 13, 14] +} \ No newline at end of file diff --git a/src/main/resources/assets/create/textures/block/netherite_backtank.png b/src/main/resources/assets/create/textures/block/netherite_backtank.png new file mode 100644 index 000000000..27e53312b Binary files /dev/null and b/src/main/resources/assets/create/textures/block/netherite_backtank.png differ diff --git a/src/main/resources/assets/create/textures/item/diving_boots.png b/src/main/resources/assets/create/textures/item/copper_diving_boots.png similarity index 100% rename from src/main/resources/assets/create/textures/item/diving_boots.png rename to src/main/resources/assets/create/textures/item/copper_diving_boots.png diff --git a/src/main/resources/assets/create/textures/item/diving_helmet.png b/src/main/resources/assets/create/textures/item/copper_diving_helmet.png similarity index 100% rename from src/main/resources/assets/create/textures/item/diving_helmet.png rename to src/main/resources/assets/create/textures/item/copper_diving_helmet.png diff --git a/src/main/resources/assets/create/textures/item/netherite_diving_boots.png b/src/main/resources/assets/create/textures/item/netherite_diving_boots.png new file mode 100644 index 000000000..6355dc214 Binary files /dev/null and b/src/main/resources/assets/create/textures/item/netherite_diving_boots.png differ diff --git a/src/main/resources/assets/create/textures/item/netherite_diving_helmet.png b/src/main/resources/assets/create/textures/item/netherite_diving_helmet.png new file mode 100644 index 000000000..211fc65ed Binary files /dev/null and b/src/main/resources/assets/create/textures/item/netherite_diving_helmet.png differ diff --git a/src/main/resources/assets/create/textures/models/armor/copper.png b/src/main/resources/assets/create/textures/models/armor/copper_diving_layer_1.png similarity index 100% rename from src/main/resources/assets/create/textures/models/armor/copper.png rename to src/main/resources/assets/create/textures/models/armor/copper_diving_layer_1.png diff --git a/src/main/resources/assets/create/textures/models/armor/netherite_diving_layer_1.png b/src/main/resources/assets/create/textures/models/armor/netherite_diving_layer_1.png new file mode 100644 index 000000000..850bcece6 Binary files /dev/null and b/src/main/resources/assets/create/textures/models/armor/netherite_diving_layer_1.png differ diff --git a/src/main/resources/assets/create/textures/models/armor/netherite_diving_layer_2.png b/src/main/resources/assets/create/textures/models/armor/netherite_diving_layer_2.png new file mode 100644 index 000000000..515a9a12d Binary files /dev/null and b/src/main/resources/assets/create/textures/models/armor/netherite_diving_layer_2.png differ diff --git a/src/main/resources/create.mixins.json b/src/main/resources/create.mixins.json index f3af76190..b58d1fc36 100644 --- a/src/main/resources/create.mixins.json +++ b/src/main/resources/create.mixins.json @@ -6,6 +6,8 @@ "refmap": "create.refmap.json", "mixins": [ "CustomItemUseEffectsMixin", + "EntityMixin", + "HumanoidArmorLayerMixin", "MapItemSavedDataMixin", "ContraptionDriverInteractMixin", "accessor.AbstractProjectileDispenseBehaviorAccessor",