Merge branch 'mc1.18/netherite-diving' into mc1.18/0.5.1

This commit is contained in:
simibubi 2022-10-18 23:02:56 +02:00
commit ad57fe158c
83 changed files with 1676 additions and 441 deletions

View file

@ -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

View file

@ -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
}
}
}

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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": "右クリックしたとき",

View file

@ -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": "아이템을 들고 우클릭",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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",

View file

@ -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": "ПКМ по рамке с предметом в руках",

View file

@ -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",

View file

@ -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": "手持物品右击时",

View file

@ -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": "手持物品右鍵時",

View file

@ -1,6 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "create:item/diving_boots"
"layer0": "create:item/copper_diving_boots"
}
}

View file

@ -1,6 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "create:item/diving_helmet"
"layer0": "create:item/copper_diving_helmet"
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "create:block/netherite_backtank/item"
}

View file

@ -0,0 +1,3 @@
{
"parent": "minecraft:item/barrier"
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "create:item/netherite_diving_boots"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "create:item/netherite_diving_helmet"
}
}

View file

@ -2,7 +2,7 @@
"parent": "create:backtank",
"display": {
"icon": {
"item": "create:diving_helmet",
"item": "create:copper_diving_helmet",
"nbt": "{Damage:0}"
},
"title": {

View file

@ -2,7 +2,7 @@
"parent": "create:backtank",
"display": {
"icon": {
"item": "create:diving_helmet",
"item": "create:copper_diving_helmet",
"nbt": "{Damage:0}"
},
"title": {

View file

@ -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"
}
}
},

View file

@ -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"
}
}
},

View file

@ -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"
}
]
}
]
}

View file

@ -14,6 +14,6 @@
}
},
"result": {
"item": "create:diving_boots"
"item": "create:copper_diving_boots"
}
}

View file

@ -13,6 +13,6 @@
}
},
"result": {
"item": "create:diving_helmet"
"item": "create:copper_diving_helmet"
}
}

View file

@ -1,6 +1,7 @@
{
"replace": false,
"values": [
"create:copper_backtank"
"create:copper_backtank",
"create:netherite_backtank"
]
}

View file

@ -160,6 +160,7 @@
"create:analog_lever",
"create:placard",
"create:copper_backtank",
"create:netherite_backtank",
"create:peculiar_bell",
"create:haunted_bell",
"create:zinc_ore",

View file

@ -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"),

View file

@ -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<CopperBacktankBlock> COPPER_BACKTANK =
REGISTRATE.block("copper_backtank", CopperBacktankBlock::new)
public static final BlockEntry<BacktankBlock> 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<BacktankBlock> NETHERITE_BACKTANK =
REGISTRATE.block("netherite_backtank", BacktankBlock::new)
.initialProperties(SharedProperties::netheriteMetal)
.transform(BuilderTransformers.backtank(AllItems.NETHERITE_BACKTANK::get))
.register();
public static final BlockEntry<PeculiarBellBlock> PECULIAR_BELL =

View file

@ -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<CopperBacktankBlockItem> COPPER_BACKTANK_PLACEABLE = REGISTRATE
.item("copper_backtank_placeable", p -> new CopperBacktankBlockItem(AllBlocks.COPPER_BACKTANK.get(), p))
public static final ItemEntry<BacktankBlockItem> 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<? extends CopperArmorItem>
// wrapped by NETHERITE_BACKTANK for block placement uses.
// must be registered as of 1.18.2
public static final ItemEntry<BacktankBlockItem> 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<? extends BacktankItem>
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<? extends DivingHelmetItem>
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<? extends DivingBootsItem>
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<SandPaperItem> SAND_PAPER = REGISTRATE.item("sand_paper", SandPaperItem::new)

View file

@ -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<CopperBacktankTileEntity> COPPER_BACKTANK = Create.registrate()
.tileEntity("copper_backtank", CopperBacktankTileEntity::new)
.instance(() -> CopperBacktankInstance::new)
.validBlocks(AllBlocks.COPPER_BACKTANK)
.renderer(() -> CopperBacktankRenderer::new)
public static final BlockEntityEntry<BacktankTileEntity> 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<PeculiarBellTileEntity> PECULIAR_BELL = Create.registrate()

View file

@ -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);

View file

@ -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<BeltTileEnt
return;
}
if (AllItems.DIVING_BOOTS.get()
.isWornBy(entityIn))
if (DivingBootsItem.isWornBy(entityIn))
return;
BeltTileEntity belt = BeltHelper.getSegmentTE(worldIn, pos);

View file

@ -4,6 +4,7 @@ import java.util.function.Supplier;
import com.google.common.base.Suppliers;
import com.simibubi.create.AllSoundEvents;
import com.simibubi.create.Create;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.entity.EquipmentSlot;
@ -13,7 +14,7 @@ import net.minecraft.world.item.crafting.Ingredient;
public enum AllArmorMaterials implements ArmorMaterial {
COPPER("copper", 7, new int[] { 1, 3, 4, 2 }, 25, () -> 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))
;

View file

@ -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<T extends LivingEntity, M extends EntityModel<T>> extends RenderLayer<T, M> {
public static final IIngameOverlay REMAINING_AIR_OVERLAY = CopperBacktankArmorLayer::renderRemainingAirOverlay;
public CopperBacktankArmorLayer(RenderLayerParent<T, M> renderer) {
public class BacktankArmorLayer<T extends LivingEntity, M extends EntityModel<T>> extends RenderLayer<T, M> {
public BacktankArmorLayer(RenderLayerParent<T, M> renderer) {
super(renderer);
}
@ -49,8 +32,9 @@ public class CopperBacktankArmorLayer<T extends LivingEntity, M extends EntityMo
float pt, float p_225628_8_, float p_225628_9_, float p_225628_10_) {
if (entity.getPose() == Pose.SLEEPING)
return;
if (!AllItems.COPPER_BACKTANK.get()
.isWornBy(entity))
BacktankItem item = BacktankItem.getWornBy(entity);
if (item == null)
return;
M entityModel = getParentModel();
@ -59,10 +43,10 @@ public class CopperBacktankArmorLayer<T extends LivingEntity, M extends EntityMo
HumanoidModel<?> 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<T extends LivingEntity, M extends EntityMo
LivingEntityRenderer<?, ?> 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();
}
}

View file

@ -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<CopperBacktankTileEntity>, SimpleWaterloggedBlock {
public class BacktankBlock extends HorizontalKineticBlock
implements ITE<BacktankTileEntity>, 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<CopperBacktankTileEntity> 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<BacktankTileEntity> 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<CopperBacktankTileEntity> getTileEntityClass() {
return CopperBacktankTileEntity.class;
public Class<BacktankTileEntity> getTileEntityClass() {
return BacktankTileEntity.class;
}
@Override
public BlockEntityType<? extends CopperBacktankTileEntity> getTileEntityType() {
return AllTileEntities.COPPER_BACKTANK.get();
public BlockEntityType<? extends BacktankTileEntity> getTileEntityType() {
return AllTileEntities.BACKTANK.get();
}
@Override

View file

@ -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<RotatingData> getModel() {
return getRotatingMaterial().getModel(AllBlockPartials.COPPER_BACKTANK_SHAFT, blockState);
return getRotatingMaterial().getModel(BacktankRenderer.getShaftModel(blockState), blockState);
}
}

View file

@ -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<BacktankBlockItem> blockItem;
public BacktankItem(ArmorMaterial material, Properties properties, ResourceLocation textureLoc, Supplier<BacktankBlockItem> 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<ItemStack> 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<Item> actualItem;
public BacktankBlockItem(Block block, Supplier<Item> actualItem, Properties properties) {
super(block, properties);
this.actualItem = actualItem;
}
@Override
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> 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<BacktankBlockItem> 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);
}
}
}

View file

@ -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;
}
}

View file

@ -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<TileEntityBehaviour> 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() {

View file

@ -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())

View file

@ -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));
}
}

View file

@ -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

View file

@ -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;
}
}

View file

@ -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<CopperBacktankBlockItem> blockItem;
public CopperBacktankItem(Properties p_i48534_3_, ItemEntry<CopperBacktankBlockItem> 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<ItemStack> 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<ItemStack> pItems) {}
@Override
public String getDescriptionId() {
return this.getOrCreateDescriptionId();
}
}
}

View file

@ -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);
}
}
}

View file

@ -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);
}
}
}

View file

@ -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) {
context.get().enqueueWork(() -> {
Entity entity = Minecraft.getInstance().level.getEntity(entityId);
if (entity != null) {
entity.getPersistentData().putBoolean(FIRE_IMMUNE_KEY, fireImmune);
}
});
context.get().setPacketHandled(true);
}
}
}

View file

@ -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();
}
}

View file

@ -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() {

View file

@ -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 =

View file

@ -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);
}

View file

@ -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)

View file

@ -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 <B extends Block, P> NonNullUnaryOperator<BlockBuilder<B, P>> backtank(Supplier<ItemLike> 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 <B extends Block, P> NonNullUnaryOperator<BlockBuilder<B, P>> bell() {
return b -> b.initialProperties(SharedProperties::softMetal)
.properties(p -> p.noOcclusion()

View file

@ -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;
}
}

View file

@ -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")

View file

@ -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.
*
* <p>Classes implementing this interface <b>must not</b> also implement {@link DyeableLeatherItem}.
*
* <p>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 {
}

View file

@ -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<Boolean> cir) {
if (!cir.getReturnValueZ()) {
Entity self = (Entity) (Object) this;
boolean immune = self.getPersistentData().getBoolean(NetheriteDivingHandler.FIRE_IMMUNE_KEY);
cir.setReturnValue(immune);
}
}
}

View file

@ -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<Boolean> 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;
}
}

View file

@ -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),
;

View file

@ -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<BlockEntityType<?>> event) {
for (Mapping<BlockEntityType<?>> mapping : event.getMappings(Create.ID)) {
ResourceLocation key = mapping.key;
String path = key.getPath();
if (path.equals("copper_backtank")) {
mapping.remap(AllTileEntities.BACKTANK.get());
}
}
}
}

View file

@ -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",

View file

@ -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": []
}
]
}

View file

@ -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": []
}
]
}

View file

@ -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]
}

View file

@ -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]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View file

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9 KiB

View file

@ -6,6 +6,8 @@
"refmap": "create.refmap.json",
"mixins": [
"CustomItemUseEffectsMixin",
"EntityMixin",
"HumanoidArmorLayerMixin",
"MapItemSavedDataMixin",
"ContraptionDriverInteractMixin",
"accessor.AbstractProjectileDispenseBehaviorAccessor",