Netherite Diving

- Add netherite diving helmet, netherite backtank, and netherite diving
boots
- Full netherite diving set makes entity fire immune
This commit is contained in:
PepperCode1 2022-10-07 12:32:44 -07:00
parent 959aa4afbd
commit 3d74c41c2d
81 changed files with 1355 additions and 410 deletions

View file

@ -302,6 +302,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
@ -558,24 +559,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
f85edc574ee6de0de7693ffb031266643db6724a assets/create/lang/en_ud.json
c219c77242e645f32704201dd80e279b3759b794 assets/create/lang/en_us.json
cf37534c3f98098f42b181083fd7cc1063ac2bbb assets/create/lang/unfinished/de_de.json
83d427726fdc38ec3c5b8c3c0f6f87f49d3e5ff3 assets/create/lang/unfinished/es_cl.json
d21caeb0cbe871e38dc101c34ab89ece3cbe2127 assets/create/lang/unfinished/es_es.json
2215688baa2b0beffe0c19f71a3238df1d01b0c1 assets/create/lang/unfinished/fr_fr.json
79484f2c3eba2b40f5d82ffdc3abeb3d2e6962d2 assets/create/lang/unfinished/it_it.json
d659570c9dc89653f03cd4cc82ed50db443638d8 assets/create/lang/unfinished/ja_jp.json
03c30521d9b1bc7a6eb85d2a59a4c4676dca581e assets/create/lang/unfinished/ko_kr.json
3a56d579d022cc1b20746e9d3a1483e6fa8fb4be assets/create/lang/unfinished/nl_nl.json
d5bfeacb442236c8b075fddb41364f85c8cb7feb assets/create/lang/unfinished/pl_pl.json
0f3f51d065d896a7e3b4abd8c2801fa3e8fbd8c3 assets/create/lang/unfinished/pt_br.json
9f2ec0b2f8fa9b380c7edb56bfb806bcce621cce assets/create/lang/unfinished/pt_pt.json
1f88f0d91bdf5c68224cb65249f77272771939c9 assets/create/lang/unfinished/ro_ro.json
928ac3ad2ab5e7fa3d582b8b956258c110bea868 assets/create/lang/unfinished/ru_ru.json
ed29ef4ae8f3633533485d56f7fa8cb77b790a0a assets/create/lang/unfinished/uk_ua.json
e5cf7b657be816bc15b331dd058f7ccdabee8c14 assets/create/lang/unfinished/zh_cn.json
316dae07f95fb65c984fe7c424b566eb8ddba5f9 assets/create/lang/unfinished/zh_tw.json
48a4f2df04e092f355a70994af169f8e3e23eff9 assets/create/lang/en_ud.json
697142f7df636ab2c1a4c51de518da1057f00b0d assets/create/lang/en_us.json
c748bf6346d594db47b012a642201878d6099f19 assets/create/lang/unfinished/de_de.json
d9a59a5dd0acf9f109e50536dfbb9cfd7231c02d assets/create/lang/unfinished/es_cl.json
5353625f2eeea67c3db572c76579ecceba08d07e assets/create/lang/unfinished/es_es.json
022da28dbe8794c9c70e2f56f51d194b59227910 assets/create/lang/unfinished/fr_fr.json
3d748d50b3e3452082470d4e13349e999a0ff121 assets/create/lang/unfinished/it_it.json
c1d7f5ab9f8796e9e83a98aebea60ddbd7066b5c assets/create/lang/unfinished/ja_jp.json
18dbdd8a353469d954159174c0c668af87e65a96 assets/create/lang/unfinished/ko_kr.json
783900eaad7ea3bd08c41817365025e52e8665a8 assets/create/lang/unfinished/nl_nl.json
004d34ba743ab206dea12ea4c85c00ae7cd3b191 assets/create/lang/unfinished/pl_pl.json
bbe3799eeaed6b3e00c9314607ade798b116c42b assets/create/lang/unfinished/pt_br.json
3eb467693daee7da7c40dd4a9f807ead7dd66b7e assets/create/lang/unfinished/pt_pt.json
e1cf6bdd38ab822f626e0b02c2d16637fdd2e622 assets/create/lang/unfinished/ro_ro.json
18e0fba5433d35ba1512f1c828c67443d60a0b86 assets/create/lang/unfinished/ru_ru.json
041e6917f64163ac0b8157b4aa5cbbbde9efd165 assets/create/lang/unfinished/uk_ua.json
2a5fb11b27476169d381e02f94073889b4e5fb7f assets/create/lang/unfinished/zh_cn.json
cf24b02eef0b51db5543f985e232cb84d0cc6a50 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
@ -1680,6 +1681,8 @@ dcb09deae110077bcddf090996b51cc66e9a7de3 assets/create/models/item/cogwheel.json
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
@ -1839,8 +1842,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
@ -1941,6 +1942,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
@ -2238,8 +2243,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
@ -2319,9 +2324,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
@ -3676,6 +3681,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
@ -3981,9 +3987,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
@ -5647,7 +5653,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
@ -5726,7 +5732,7 @@ e16d74571ae10007f06f3b86ddf05d3ca9b73559 data/minecraft/tags/blocks/doors.json
69f596fcb065e26b02ce246760432b5174191b76 data/minecraft/tags/blocks/impermeable.json
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/lush_ground_replaceable.json
71480793b5e5ac5eb33c5271118c62227a2769d8 data/minecraft/tags/blocks/mineable/axe.json
77511f0fca91aa40c8b2566bf9bfb78964a56db3 data/minecraft/tags/blocks/mineable/pickaxe.json
f24ab07c09d7c0cb237944099cac4e3ca1c0844c 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

@ -303,6 +303,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",
@ -589,6 +590,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",
@ -607,8 +610,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",
@ -628,6 +629,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

@ -306,6 +306,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",
@ -596,6 +597,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",
@ -614,8 +617,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",
@ -635,6 +636,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 842",
"_": "Missing Localizations: 849",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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",
@ -597,6 +598,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",
@ -615,8 +618,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",
@ -636,6 +637,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 988",
"_": "Missing Localizations: 995",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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",
@ -597,6 +598,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",
@ -615,8 +618,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",
@ -636,6 +637,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 8",
"_": "Missing Localizations: 15",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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",
@ -597,6 +598,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",
@ -615,8 +618,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",
@ -636,6 +637,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 2139",
"_": "Missing Localizations: 2144",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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",
@ -597,6 +598,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",
@ -615,8 +618,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",
@ -636,6 +637,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 2",
"_": "Missing Localizations: 9",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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",
@ -597,6 +598,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",
@ -615,8 +618,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",
@ -636,6 +637,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 4",
"_": "Missing Localizations: 11",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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": "オークの窓",
@ -597,6 +598,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": "クラフタースロットカバー",
@ -615,8 +618,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": "空のブレイズバーナー",
@ -636,6 +637,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": "黒曜石の粉",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 8",
"_": "Missing Localizations: 15",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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": "참나무 유리창",
@ -597,6 +598,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": "조합기 슬롯 덮개",
@ -615,8 +618,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": "빈 블레이즈 버너",
@ -636,6 +637,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": "흑요석 가루",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 2487",
"_": "Missing Localizations: 2492",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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",
@ -597,6 +598,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",
@ -615,8 +618,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",
@ -636,6 +637,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 12",
"_": "Missing Localizations: 19",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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",
@ -597,6 +598,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",
@ -615,8 +618,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",
@ -636,6 +637,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1331",
"_": "Missing Localizations: 1338",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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",
@ -597,6 +598,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",
@ -615,8 +618,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",
@ -636,6 +637,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 2196",
"_": "Missing Localizations: 2203",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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",
@ -597,6 +598,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",
@ -615,8 +618,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",
@ -636,6 +637,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 655",
"_": "Missing Localizations: 662",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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",
@ -597,6 +598,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",
@ -615,8 +618,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",
@ -636,6 +637,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",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 0",
"_": "Missing Localizations: 7",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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": "Дубовое окно",
@ -597,6 +598,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": "Заглушка на слот крафтера",
@ -615,8 +618,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": "Пустая горелка всполоха",
@ -636,6 +637,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": "Порошкообразный обсидиан",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 986",
"_": "Missing Localizations: 993",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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": "Скло з дубом",
@ -597,6 +598,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": "Кришка слота крафта",
@ -615,8 +618,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": "Пустий пальник блейза",
@ -636,6 +637,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": "Обсідіановий порошок",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 0",
"_": "Missing Localizations: 7",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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": "橡木窗户",
@ -597,6 +598,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": "合成槽盖板",
@ -615,8 +618,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": "空的烈焰人燃烧室",
@ -636,6 +637,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": "黑曜石粉末",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 8",
"_": "Missing Localizations: 15",
"_": "->------------------------] Game Elements [------------------------<-",
@ -307,6 +307,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": "橡木窗戶",
@ -597,6 +598,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": "合成器蓋板",
@ -615,8 +618,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": "空的烈焰使者動力爐",
@ -636,6 +637,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": "黑曜石粉末",

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

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

View file

@ -102,6 +102,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

@ -130,7 +130,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;
@ -1892,26 +1892,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(), 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(), 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<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(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<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(ArmorMaterials.NETHERITE, p, Create.asResource("netherite_diving")))
.register();
public static final ItemEntry<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(ArmorMaterials.NETHERITE, p, Create.asResource("netherite_diving")))
.register();
public static final ItemEntry<SandPaperItem> SAND_PAPER = REGISTRATE.item("sand_paper", SandPaperItem::new)

View file

@ -127,9 +127,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;
@ -748,11 +748,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;
@ -46,12 +45,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 +72,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 +89,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 +124,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,16 +147,16 @@ 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) {
ItemStack item = super.getCloneItemStack(blockGetter, pos, state);
Optional<BacktankTileEntity> tileEntityOptional = getTileEntityOptional(blockGetter, pos);
int air = tileEntityOptional.map(CopperBacktankTileEntity::getAirLevel)
int air = tileEntityOptional.map(BacktankTileEntity::getAirLevel)
.orElse(0);
CompoundTag tag = item.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();
@ -165,7 +164,7 @@ public class CopperBacktankBlock extends HorizontalKineticBlock
tag.put("Enchantments", enchantmentTagList);
}
Component customName = tileEntityOptional.map(CopperBacktankTileEntity::getCustomName)
Component customName = tileEntityOptional.map(BacktankTileEntity::getCustomName)
.orElse(null);
if (customName != null)
item.setHoverName(customName);
@ -179,13 +178,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,111 @@
package com.simibubi.create.content.curiosities.armor;
import java.util.function.Supplier;
import org.jetbrains.annotations.Nullable;
import com.simibubi.create.content.curiosities.armor.CapacityEnchantment.ICapacityEnchantable;
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.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> copperBacktankPlaceable) {
super(material, SLOT, properties, textureLoc);
this.blockItem = copperBacktankPlaceable;
}
@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 {
public BacktankBlockItem(Block block, Properties properties) {
super(block, properties);
}
@Override
public void fillItemCategory(CreativeModeTab group, NonNullList<ItemStack> items) {}
@Override
public String getDescriptionId() {
return this.getOrCreateDescriptionId();
}
}
}

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

@ -24,7 +24,7 @@ import net.minecraft.world.item.enchantment.EnchantmentHelper;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
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,32 @@
package com.simibubi.create.content.curiosities.armor;
import com.simibubi.create.AllItems;
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.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 +54,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;
@ -63,5 +72,4 @@ public class DivingBootsItem extends CopperArmorItem {
}
return true;
}
}

View file

@ -1,15 +1,17 @@
package com.simibubi.create.content.curiosities.armor;
import com.simibubi.create.AllItems;
import com.simibubi.create.foundation.advancement.AllAdvancements;
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 +19,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 +44,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 +53,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 +70,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 +80,6 @@ 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);
}
}

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 (AllItems.NETHERITE_DIVING_BOOTS.isIn(to)) {
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,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

@ -31,6 +31,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;
@ -184,6 +185,7 @@ public enum AllPackets {
S_TRAIN_PROMPT(TrainPromptPacket.class, TrainPromptPacket::new, PLAY_TO_CLIENT),
CONTRAPTION_RELOCATION(ContraptionRelocationPacket.class, ContraptionRelocationPacket::new, PLAY_TO_CLIENT),
TRACK_GRAPH_ROLL_CALL(TrackGraphRollCallPacket.class, TrackGraphRollCallPacket::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

@ -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: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View file

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