mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-12-15 17:13:40 +01:00
Safe networking and more tag datagen
- Remove NbtPacket and add safe packets for configuring symmetry wand and worldshaper separately - Expand internal functionality of AllTags and use optional tags in most cases - Datagen tags forge:stone, forge:wg_stone, and forge:buckets/honey - Fix attribute filter screen being shifted by one pixel - Add translations for "fluid_container" and "renamed" item attributes
This commit is contained in:
parent
aee058e14e
commit
1abc3a8bf9
43 changed files with 928 additions and 732 deletions
|
@ -426,19 +426,19 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
|
||||||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||||
fb760b12b4bc8114744d3acc6a597b2fad88d988 assets/create/lang/en_ud.json
|
fb760b12b4bc8114744d3acc6a597b2fad88d988 assets/create/lang/en_ud.json
|
||||||
fcd58b47e3fbe4039ea684dadd08d36bd0beaa7d assets/create/lang/en_us.json
|
c34c047c7d8f62efe3f9d92cdbd0b0c385ac77b8 assets/create/lang/en_us.json
|
||||||
2047ce757fe7b7d279b72c5d4d8d6f111e478b2f assets/create/lang/unfinished/de_de.json
|
26247b4e7fed5a2ec981bf5b1a42e6b338b9471c assets/create/lang/unfinished/de_de.json
|
||||||
3cb5a941527ad3981a094cb2599a28aa654c15b3 assets/create/lang/unfinished/es_es.json
|
57e52ca3bc790adc4e9137c3af355fe8c94cf597 assets/create/lang/unfinished/es_es.json
|
||||||
008a67a90fc7d6d59d98c3ac4f4cd45cb47fbcc2 assets/create/lang/unfinished/fr_fr.json
|
327f1b4f91eb83cad038c80f6dbedaba27bd9135 assets/create/lang/unfinished/fr_fr.json
|
||||||
80091dc7ed4ed81a18bce6e9fa0b5fc870a70c89 assets/create/lang/unfinished/it_it.json
|
ffd5ddcc1be89e5bb1ee2314791bd537a5940ef0 assets/create/lang/unfinished/it_it.json
|
||||||
a12b0fabb18a0bc7e50ad4e6760aa0a3f222edaf assets/create/lang/unfinished/ja_jp.json
|
9a7add1a53719d02edf1a2287047e88c336ece9b assets/create/lang/unfinished/ja_jp.json
|
||||||
e49e3d4cfcd43194e3904c94a167bc98179b40ff assets/create/lang/unfinished/ko_kr.json
|
a0791d3c782354a6cd8efce2e89fe0cc0fa9ffba assets/create/lang/unfinished/ko_kr.json
|
||||||
47fa6e25a19d0f8c86178954da4b50aaec247ef4 assets/create/lang/unfinished/nl_nl.json
|
2d541c648e723b0749cc54d987ed6606343ce90d assets/create/lang/unfinished/nl_nl.json
|
||||||
64581657991641f49c5888e379157939cb5bdc3c assets/create/lang/unfinished/pl_pl.json
|
d9a9dca70e96099fb3fdb2a68b9e75a63b7adb7c assets/create/lang/unfinished/pl_pl.json
|
||||||
d3f22a7ee26461f1369f100001098b9f165b7cb5 assets/create/lang/unfinished/pt_br.json
|
1e1e951a23dbc3fab963b84b25a35b2dd1f3f1eb assets/create/lang/unfinished/pt_br.json
|
||||||
c2b821bd4c0b09ba0f255c40bcd379b9ad864f10 assets/create/lang/unfinished/ru_ru.json
|
3ed90c03bd5e2c7f38e1939ab53a935901378431 assets/create/lang/unfinished/ru_ru.json
|
||||||
c43f76c83bbd9c7ac9cd8ac7f82fa1b98347771b assets/create/lang/unfinished/zh_cn.json
|
111ded42981e258ddc6462404eda1338c67c3aa4 assets/create/lang/unfinished/zh_cn.json
|
||||||
e797c8d5e89b9ecc6bf82858a1c905f8b905da16 assets/create/lang/unfinished/zh_tw.json
|
75b898e606bc74d7801b300b7e4c25a2c351be27 assets/create/lang/unfinished/zh_tw.json
|
||||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||||
|
@ -1699,7 +1699,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear
|
||||||
a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json
|
a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json
|
||||||
b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json
|
b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json
|
||||||
58880e397902f8ca5b3b59ed4423e626109ddc4c assets/create/sounds.json
|
58880e397902f8ca5b3b59ed4423e626109ddc4c assets/create/sounds.json
|
||||||
0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json
|
5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json
|
||||||
187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json
|
187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json
|
||||||
0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json
|
0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json
|
||||||
83c046bd200623933545c9e4326f782fb02c87fa data/create/advancements/arm_blaze_burner.json
|
83c046bd200623933545c9e4326f782fb02c87fa data/create/advancements/arm_blaze_burner.json
|
||||||
|
@ -3763,14 +3763,17 @@ bce28787b0271382842823d04a977912a88b01c2 data/create/tags/items/sandpaper.json
|
||||||
4b700ee8aa748c2ec70c29ef1589844879c0deae data/forge/tags/blocks/ores.json
|
4b700ee8aa748c2ec70c29ef1589844879c0deae data/forge/tags/blocks/ores.json
|
||||||
4a0b13a9835106de9a1dd0a71a02372abb48e7b6 data/forge/tags/blocks/ores/copper.json
|
4a0b13a9835106de9a1dd0a71a02372abb48e7b6 data/forge/tags/blocks/ores/copper.json
|
||||||
d5ea262a0f5fb210612d22521818e26cf08e591a data/forge/tags/blocks/ores/zinc.json
|
d5ea262a0f5fb210612d22521818e26cf08e591a data/forge/tags/blocks/ores/zinc.json
|
||||||
|
55196ee770ad20602211e26864dd62a58b2e985c data/forge/tags/blocks/stone.json
|
||||||
508730d3822c54d355329bf6a33d58071653afad data/forge/tags/blocks/storage_blocks.json
|
508730d3822c54d355329bf6a33d58071653afad data/forge/tags/blocks/storage_blocks.json
|
||||||
ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/blocks/storage_blocks/brass.json
|
ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/blocks/storage_blocks/brass.json
|
||||||
f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/blocks/storage_blocks/copper.json
|
f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/blocks/storage_blocks/copper.json
|
||||||
7f71a774800111e50b42de0e6159ed2d2a807d32 data/forge/tags/blocks/storage_blocks/zinc.json
|
7f71a774800111e50b42de0e6159ed2d2a807d32 data/forge/tags/blocks/storage_blocks/zinc.json
|
||||||
|
2072c51afc5bbc6c9d64fd086803193d8a3c40de data/forge/tags/blocks/wg_stone.json
|
||||||
6b73c57912934d09233ad2966110968a6109f2c9 data/forge/tags/fluids/chocolate.json
|
6b73c57912934d09233ad2966110968a6109f2c9 data/forge/tags/fluids/chocolate.json
|
||||||
391c9b2be5740aea943a8a5fe27eb327e2d973b0 data/forge/tags/fluids/honey.json
|
391c9b2be5740aea943a8a5fe27eb327e2d973b0 data/forge/tags/fluids/honey.json
|
||||||
d6a4e4fe1204b718010543a28a9b9ec4e0977bd7 data/forge/tags/fluids/tea.json
|
d6a4e4fe1204b718010543a28a9b9ec4e0977bd7 data/forge/tags/fluids/tea.json
|
||||||
d9ffc62a496946fc4848934e7c0a6e917337f8be data/forge/tags/items/beacon_payment.json
|
d9ffc62a496946fc4848934e7c0a6e917337f8be data/forge/tags/items/beacon_payment.json
|
||||||
|
5af3164b14c92d2d6e235b5d4eebd93cbee37c0a data/forge/tags/items/buckets/honey.json
|
||||||
05ca51cdc60a5e109b5a0e3b782de13d34ebcb24 data/forge/tags/items/cobblestone.json
|
05ca51cdc60a5e109b5a0e3b782de13d34ebcb24 data/forge/tags/items/cobblestone.json
|
||||||
16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/items/glass/colorless.json
|
16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/items/glass/colorless.json
|
||||||
81d3eb40b048160fcc2d6bb7ff12b49276297efd data/forge/tags/items/glass_panes.json
|
81d3eb40b048160fcc2d6bb7ff12b49276297efd data/forge/tags/items/glass_panes.json
|
||||||
|
@ -3790,6 +3793,7 @@ d5ea262a0f5fb210612d22521818e26cf08e591a data/forge/tags/items/ores/zinc.json
|
||||||
c3dab5fe379bc1b7b10d4a0ba7009eee1b75a27c data/forge/tags/items/plates/copper.json
|
c3dab5fe379bc1b7b10d4a0ba7009eee1b75a27c data/forge/tags/items/plates/copper.json
|
||||||
fb9bfb4c84ed9cf2da8c4b2fbc4cd4d9f37d3016 data/forge/tags/items/plates/gold.json
|
fb9bfb4c84ed9cf2da8c4b2fbc4cd4d9f37d3016 data/forge/tags/items/plates/gold.json
|
||||||
04d947ed7a5066f3cfe75a8dc564fe2dca8a9c93 data/forge/tags/items/plates/iron.json
|
04d947ed7a5066f3cfe75a8dc564fe2dca8a9c93 data/forge/tags/items/plates/iron.json
|
||||||
|
55196ee770ad20602211e26864dd62a58b2e985c data/forge/tags/items/stone.json
|
||||||
508730d3822c54d355329bf6a33d58071653afad data/forge/tags/items/storage_blocks.json
|
508730d3822c54d355329bf6a33d58071653afad data/forge/tags/items/storage_blocks.json
|
||||||
ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/items/storage_blocks/brass.json
|
ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/items/storage_blocks/brass.json
|
||||||
f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/items/storage_blocks/copper.json
|
f6c8f34ceb475546dba5cc6ff288863ea795d20b data/forge/tags/items/storage_blocks/copper.json
|
||||||
|
|
|
@ -1037,18 +1037,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "is not placeable",
|
"create.item_attributes.placeable.inverted": "is not placeable",
|
||||||
"create.item_attributes.consumable": "can be eaten",
|
"create.item_attributes.consumable": "can be eaten",
|
||||||
"create.item_attributes.consumable.inverted": "cannot be eaten",
|
"create.item_attributes.consumable.inverted": "cannot be eaten",
|
||||||
"create.item_attributes.smeltable": "can be Smelted",
|
"create.item_attributes.fluid_container": "can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "cannot be Smelted",
|
"create.item_attributes.fluid_container.inverted": "cannot store fluids",
|
||||||
"create.item_attributes.washable": "can be Washed",
|
|
||||||
"create.item_attributes.washable.inverted": "cannot be Washed",
|
|
||||||
"create.item_attributes.smokable": "can be Smoked",
|
|
||||||
"create.item_attributes.smokable.inverted": "cannot be Smoked",
|
|
||||||
"create.item_attributes.crushable": "can be Crushed",
|
|
||||||
"create.item_attributes.crushable.inverted": "cannot be Crushed",
|
|
||||||
"create.item_attributes.blastable": "is smeltable in Blast Furnace",
|
|
||||||
"create.item_attributes.blastable.inverted": "is not smeltable in Blast Furnace",
|
|
||||||
"create.item_attributes.enchanted": "is enchanted",
|
"create.item_attributes.enchanted": "is enchanted",
|
||||||
"create.item_attributes.enchanted.inverted": "is unenchanted",
|
"create.item_attributes.enchanted.inverted": "is unenchanted",
|
||||||
|
"create.item_attributes.max_enchanted": "is enchanted at max level",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "is not enchanted at max level",
|
||||||
|
"create.item_attributes.renamed": "has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "does not have a custom name",
|
||||||
"create.item_attributes.damaged": "is damaged",
|
"create.item_attributes.damaged": "is damaged",
|
||||||
"create.item_attributes.damaged.inverted": "is not damaged",
|
"create.item_attributes.damaged.inverted": "is not damaged",
|
||||||
"create.item_attributes.badly_damaged": "is heavily damaged",
|
"create.item_attributes.badly_damaged": "is heavily damaged",
|
||||||
|
@ -1059,23 +1055,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "cannot be equipped",
|
"create.item_attributes.equipable.inverted": "cannot be equipped",
|
||||||
"create.item_attributes.furnace_fuel": "is furnace fuel",
|
"create.item_attributes.furnace_fuel": "is furnace fuel",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "is not furnace fuel",
|
"create.item_attributes.furnace_fuel.inverted": "is not furnace fuel",
|
||||||
|
"create.item_attributes.washable": "can be Washed",
|
||||||
|
"create.item_attributes.washable.inverted": "cannot be Washed",
|
||||||
|
"create.item_attributes.crushable": "can be Crushed",
|
||||||
|
"create.item_attributes.crushable.inverted": "cannot be Crushed",
|
||||||
|
"create.item_attributes.smeltable": "can be Smelted",
|
||||||
|
"create.item_attributes.smeltable.inverted": "cannot be Smelted",
|
||||||
|
"create.item_attributes.smokable": "can be Smoked",
|
||||||
|
"create.item_attributes.smokable.inverted": "cannot be Smoked",
|
||||||
|
"create.item_attributes.blastable": "is smeltable in Blast Furnace",
|
||||||
|
"create.item_attributes.blastable.inverted": "is not smeltable in Blast Furnace",
|
||||||
|
"create.item_attributes.shulker_level": "is shulker %1$s",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "is shulker not %1$s",
|
||||||
|
"create.item_attributes.shulker_level.full": "full",
|
||||||
|
"create.item_attributes.shulker_level.empty": "empty",
|
||||||
|
"create.item_attributes.shulker_level.partial": "partially filled",
|
||||||
"create.item_attributes.in_tag": "is tagged %1$s",
|
"create.item_attributes.in_tag": "is tagged %1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "is not tagged %1$s",
|
"create.item_attributes.in_tag.inverted": "is not tagged %1$s",
|
||||||
"create.item_attributes.in_item_group": "is in group '%1$s'",
|
"create.item_attributes.in_item_group": "is in group '%1$s'",
|
||||||
"create.item_attributes.in_item_group.inverted": "is not in group '%1$s'",
|
"create.item_attributes.in_item_group.inverted": "is not in group '%1$s'",
|
||||||
"create.item_attributes.added_by": "was added by %1$s",
|
"create.item_attributes.added_by": "was added by %1$s",
|
||||||
"create.item_attributes.added_by.inverted": "was not added by %1$s",
|
"create.item_attributes.added_by.inverted": "was not added by %1$s",
|
||||||
"create.item_attributes.shulker_level": "is shulker %1$s",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "is shulker not %1$s",
|
|
||||||
"create.item_attributes.shulker_level.full": "full",
|
|
||||||
"create.item_attributes.shulker_level.empty": "empty",
|
|
||||||
"create.item_attributes.shulker_level.partial": "partially filled",
|
|
||||||
"create.item_attributes.has_enchant": "is enchanted with %1$s",
|
"create.item_attributes.has_enchant": "is enchanted with %1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "is not enchanted with %1$s",
|
"create.item_attributes.has_enchant.inverted": "is not enchanted with %1$s",
|
||||||
"create.item_attributes.color": "is dyed %1$s",
|
"create.item_attributes.color": "is dyed %1$s",
|
||||||
"create.item_attributes.color.inverted": "is not dyed %1$s",
|
"create.item_attributes.color.inverted": "is not dyed %1$s",
|
||||||
"create.item_attributes.max_enchanted": "is enchanted at max level",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "is not enchanted at max level",
|
|
||||||
"create.item_attributes.has_fluid": "contains %1$s",
|
"create.item_attributes.has_fluid": "contains %1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "does not contain %1$s",
|
"create.item_attributes.has_fluid.inverted": "does not contain %1$s",
|
||||||
"create.item_attributes.has_name": "has the custom name %1$s",
|
"create.item_attributes.has_name": "has the custom name %1$s",
|
||||||
|
@ -1090,14 +1094,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "is not a second-generation copy",
|
"create.item_attributes.book_copy_second.inverted": "is not a second-generation copy",
|
||||||
"create.item_attributes.book_copy_tattered": "is a tattered mess",
|
"create.item_attributes.book_copy_tattered": "is a tattered mess",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "is not a tattered mess",
|
"create.item_attributes.book_copy_tattered.inverted": "is not a tattered mess",
|
||||||
"create.item_attributes.astralsorcery_crystal": "has crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "does not have crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "is attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "is not attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "has perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "does not have perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "improves %1$s",
|
"create.item_attributes.astralsorcery_amulet": "improves %1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "does not improve %1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "does not improve %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "is attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "is not attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "has crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "does not have crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "has perk attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "does not have perk attribute %1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "No attributes selected",
|
"create.gui.attribute_filter.no_selected_attributes": "No attributes selected",
|
||||||
"create.gui.attribute_filter.selected_attributes": "Selected attributes:",
|
"create.gui.attribute_filter.selected_attributes": "Selected attributes:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1135",
|
"_": "Missing Localizations: 1139",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "UNLOCALIZED: is not placeable",
|
"create.item_attributes.placeable.inverted": "UNLOCALIZED: is not placeable",
|
||||||
"create.item_attributes.consumable": "UNLOCALIZED: can be eaten",
|
"create.item_attributes.consumable": "UNLOCALIZED: can be eaten",
|
||||||
"create.item_attributes.consumable.inverted": "UNLOCALIZED: cannot be eaten",
|
"create.item_attributes.consumable.inverted": "UNLOCALIZED: cannot be eaten",
|
||||||
"create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "UNLOCALIZED: can be Washed",
|
|
||||||
"create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed",
|
|
||||||
"create.item_attributes.smokable": "UNLOCALIZED: can be Smoked",
|
|
||||||
"create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked",
|
|
||||||
"create.item_attributes.crushable": "UNLOCALIZED: can be Crushed",
|
|
||||||
"create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed",
|
|
||||||
"create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace",
|
|
||||||
"create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace",
|
|
||||||
"create.item_attributes.enchanted": "UNLOCALIZED: is enchanted",
|
"create.item_attributes.enchanted": "UNLOCALIZED: is enchanted",
|
||||||
"create.item_attributes.enchanted.inverted": "UNLOCALIZED: is unenchanted",
|
"create.item_attributes.enchanted.inverted": "UNLOCALIZED: is unenchanted",
|
||||||
|
"create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "UNLOCALIZED: is damaged",
|
"create.item_attributes.damaged": "UNLOCALIZED: is damaged",
|
||||||
"create.item_attributes.damaged.inverted": "UNLOCALIZED: is not damaged",
|
"create.item_attributes.damaged.inverted": "UNLOCALIZED: is not damaged",
|
||||||
"create.item_attributes.badly_damaged": "UNLOCALIZED: is heavily damaged",
|
"create.item_attributes.badly_damaged": "UNLOCALIZED: is heavily damaged",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "UNLOCALIZED: cannot be equipped",
|
"create.item_attributes.equipable.inverted": "UNLOCALIZED: cannot be equipped",
|
||||||
"create.item_attributes.furnace_fuel": "UNLOCALIZED: is furnace fuel",
|
"create.item_attributes.furnace_fuel": "UNLOCALIZED: is furnace fuel",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "UNLOCALIZED: is not furnace fuel",
|
"create.item_attributes.furnace_fuel.inverted": "UNLOCALIZED: is not furnace fuel",
|
||||||
|
"create.item_attributes.washable": "UNLOCALIZED: can be Washed",
|
||||||
|
"create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed",
|
||||||
|
"create.item_attributes.crushable": "UNLOCALIZED: can be Crushed",
|
||||||
|
"create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed",
|
||||||
|
"create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted",
|
||||||
|
"create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted",
|
||||||
|
"create.item_attributes.smokable": "UNLOCALIZED: can be Smoked",
|
||||||
|
"create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked",
|
||||||
|
"create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace",
|
||||||
|
"create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace",
|
||||||
|
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
||||||
|
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
||||||
|
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||||
|
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||||
"create.item_attributes.in_tag": "UNLOCALIZED: is tagged %1$s",
|
"create.item_attributes.in_tag": "UNLOCALIZED: is tagged %1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "UNLOCALIZED: is not tagged %1$s",
|
"create.item_attributes.in_tag.inverted": "UNLOCALIZED: is not tagged %1$s",
|
||||||
"create.item_attributes.in_item_group": "UNLOCALIZED: is in group '%1$s'",
|
"create.item_attributes.in_item_group": "UNLOCALIZED: is in group '%1$s'",
|
||||||
"create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'",
|
"create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'",
|
||||||
"create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s",
|
"create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s",
|
||||||
"create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s",
|
"create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s",
|
||||||
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
|
||||||
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
|
||||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
|
||||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
|
||||||
"create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s",
|
"create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s",
|
"create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s",
|
||||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||||
"create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s",
|
"create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s",
|
||||||
"create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level",
|
|
||||||
"create.item_attributes.has_fluid": "UNLOCALIZED: contains %1$s",
|
"create.item_attributes.has_fluid": "UNLOCALIZED: contains %1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "UNLOCALIZED: does not contain %1$s",
|
"create.item_attributes.has_fluid.inverted": "UNLOCALIZED: does not contain %1$s",
|
||||||
"create.item_attributes.has_name": "UNLOCALIZED: has the custom name %1$s",
|
"create.item_attributes.has_name": "UNLOCALIZED: has the custom name %1$s",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy",
|
"create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy",
|
||||||
"create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess",
|
"create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess",
|
"create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess",
|
||||||
"create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s",
|
"create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "Keine Attribute ausgewählt",
|
"create.gui.attribute_filter.no_selected_attributes": "Keine Attribute ausgewählt",
|
||||||
"create.gui.attribute_filter.selected_attributes": "Ausgewählte Attribute:",
|
"create.gui.attribute_filter.selected_attributes": "Ausgewählte Attribute:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1",
|
"_": "Missing Localizations: 5",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "no se puede colocar",
|
"create.item_attributes.placeable.inverted": "no se puede colocar",
|
||||||
"create.item_attributes.consumable": "se puede comer",
|
"create.item_attributes.consumable": "se puede comer",
|
||||||
"create.item_attributes.consumable.inverted": "no se puede comer",
|
"create.item_attributes.consumable.inverted": "no se puede comer",
|
||||||
"create.item_attributes.smeltable": "se puede fundir",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "no se puede fundir",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "se puede lavar",
|
|
||||||
"create.item_attributes.washable.inverted": "no se puede lavar",
|
|
||||||
"create.item_attributes.smokable": "puede ser ahumado",
|
|
||||||
"create.item_attributes.smokable.inverted": "no puede ser ahumado",
|
|
||||||
"create.item_attributes.crushable": "puede ser molido",
|
|
||||||
"create.item_attributes.crushable.inverted": "no puede ser molido",
|
|
||||||
"create.item_attributes.blastable": "es fundible en el alto horno",
|
|
||||||
"create.item_attributes.blastable.inverted": "no es fundible en el alto horno",
|
|
||||||
"create.item_attributes.enchanted": "está encantado",
|
"create.item_attributes.enchanted": "está encantado",
|
||||||
"create.item_attributes.enchanted.inverted": "no está encantado",
|
"create.item_attributes.enchanted.inverted": "no está encantado",
|
||||||
|
"create.item_attributes.max_enchanted": "está encantado en el nivel máximo",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "está dañado",
|
"create.item_attributes.damaged": "está dañado",
|
||||||
"create.item_attributes.damaged.inverted": "no está dañado",
|
"create.item_attributes.damaged.inverted": "no está dañado",
|
||||||
"create.item_attributes.badly_damaged": "está muy dañado",
|
"create.item_attributes.badly_damaged": "está muy dañado",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "no se puede equipar",
|
"create.item_attributes.equipable.inverted": "no se puede equipar",
|
||||||
"create.item_attributes.furnace_fuel": "es combustible para hornos",
|
"create.item_attributes.furnace_fuel": "es combustible para hornos",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos",
|
"create.item_attributes.furnace_fuel.inverted": "no es combustible para hornos",
|
||||||
|
"create.item_attributes.washable": "se puede lavar",
|
||||||
|
"create.item_attributes.washable.inverted": "no se puede lavar",
|
||||||
|
"create.item_attributes.crushable": "puede ser molido",
|
||||||
|
"create.item_attributes.crushable.inverted": "no puede ser molido",
|
||||||
|
"create.item_attributes.smeltable": "se puede fundir",
|
||||||
|
"create.item_attributes.smeltable.inverted": "no se puede fundir",
|
||||||
|
"create.item_attributes.smokable": "puede ser ahumado",
|
||||||
|
"create.item_attributes.smokable.inverted": "no puede ser ahumado",
|
||||||
|
"create.item_attributes.blastable": "es fundible en el alto horno",
|
||||||
|
"create.item_attributes.blastable.inverted": "no es fundible en el alto horno",
|
||||||
|
"create.item_attributes.shulker_level": "es shulker %1$s",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "no es shulker %1$s",
|
||||||
|
"create.item_attributes.shulker_level.full": "lleno",
|
||||||
|
"create.item_attributes.shulker_level.empty": "vacío",
|
||||||
|
"create.item_attributes.shulker_level.partial": "parcialmente lleno",
|
||||||
"create.item_attributes.in_tag": "está etiquetado %1$s",
|
"create.item_attributes.in_tag": "está etiquetado %1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "no está etiquetado %1$s",
|
"create.item_attributes.in_tag.inverted": "no está etiquetado %1$s",
|
||||||
"create.item_attributes.in_item_group": "está en el grupo '%1$s'",
|
"create.item_attributes.in_item_group": "está en el grupo '%1$s'",
|
||||||
"create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'",
|
"create.item_attributes.in_item_group.inverted": "no está en el grupo '%1$s'",
|
||||||
"create.item_attributes.added_by": "fue añadido por %1$s",
|
"create.item_attributes.added_by": "fue añadido por %1$s",
|
||||||
"create.item_attributes.added_by.inverted": "no fue añadida por %1$s",
|
"create.item_attributes.added_by.inverted": "no fue añadida por %1$s",
|
||||||
"create.item_attributes.shulker_level": "es shulker %1$s",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "no es shulker %1$s",
|
|
||||||
"create.item_attributes.shulker_level.full": "lleno",
|
|
||||||
"create.item_attributes.shulker_level.empty": "vacío",
|
|
||||||
"create.item_attributes.shulker_level.partial": "parcialmente lleno",
|
|
||||||
"create.item_attributes.has_enchant": "está encantado con %1$s",
|
"create.item_attributes.has_enchant": "está encantado con %1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "no está encantado con %1$s",
|
"create.item_attributes.has_enchant.inverted": "no está encantado con %1$s",
|
||||||
"create.item_attributes.color": "Está teñido %1$s",
|
"create.item_attributes.color": "Está teñido %1$s",
|
||||||
"create.item_attributes.color.inverted": "No está teñido %1$s",
|
"create.item_attributes.color.inverted": "No está teñido %1$s",
|
||||||
"create.item_attributes.max_enchanted": "está encantado en el nivel máximo",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "no está encantado en el nivel máximo",
|
|
||||||
"create.item_attributes.has_fluid": "contiene %1$s",
|
"create.item_attributes.has_fluid": "contiene %1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "no contiene %1$s",
|
"create.item_attributes.has_fluid.inverted": "no contiene %1$s",
|
||||||
"create.item_attributes.has_name": "tiene el nombre personalizado %1$s",
|
"create.item_attributes.has_name": "tiene el nombre personalizado %1$s",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación",
|
"create.item_attributes.book_copy_second.inverted": "no es una copia de segunda generación",
|
||||||
"create.item_attributes.book_copy_tattered": "es un desordenado desastre",
|
"create.item_attributes.book_copy_tattered": "es un desordenado desastre",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre",
|
"create.item_attributes.book_copy_tattered.inverted": "no es un desordenado desastre",
|
||||||
"create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "mejora %1$s",
|
"create.item_attributes.astralsorcery_amulet": "mejora %1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "no mejora %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "está en sintonía con %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "no está en sintonía con %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "tiene el atributo de cristal %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "no tiene atributo de cristal %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "tiene el atributo ventaja %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "no tiene el atributo ventaja %1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados",
|
"create.gui.attribute_filter.no_selected_attributes": "No hay atributos seleccionados",
|
||||||
"create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:",
|
"create.gui.attribute_filter.selected_attributes": "Atributos seleccionados:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1387",
|
"_": "Missing Localizations: 1391",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "n'est pas plaçable",
|
"create.item_attributes.placeable.inverted": "n'est pas plaçable",
|
||||||
"create.item_attributes.consumable": "peut être mangé",
|
"create.item_attributes.consumable": "peut être mangé",
|
||||||
"create.item_attributes.consumable.inverted": "ne peut pas être mangé",
|
"create.item_attributes.consumable.inverted": "ne peut pas être mangé",
|
||||||
"create.item_attributes.smeltable": "peut être fondu",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "ne peut pas être fondu",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "peut être lavé",
|
|
||||||
"create.item_attributes.washable.inverted": "ne peut pas être lavé",
|
|
||||||
"create.item_attributes.smokable": "peut être fumé",
|
|
||||||
"create.item_attributes.smokable.inverted": "ne peut pas être fumé",
|
|
||||||
"create.item_attributes.crushable": "peut être concassé",
|
|
||||||
"create.item_attributes.crushable.inverted": "ne peut pas être concassé",
|
|
||||||
"create.item_attributes.blastable": "est fondable dans un Haut fourneau",
|
|
||||||
"create.item_attributes.blastable.inverted": "n'est pas fondable dans un Haut fourneau",
|
|
||||||
"create.item_attributes.enchanted": "est enchanté",
|
"create.item_attributes.enchanted": "est enchanté",
|
||||||
"create.item_attributes.enchanted.inverted": "n'est pas enchanté",
|
"create.item_attributes.enchanted.inverted": "n'est pas enchanté",
|
||||||
|
"create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "est endommagé",
|
"create.item_attributes.damaged": "est endommagé",
|
||||||
"create.item_attributes.damaged.inverted": "n'est pas endomagé",
|
"create.item_attributes.damaged.inverted": "n'est pas endomagé",
|
||||||
"create.item_attributes.badly_damaged": "est fortement damaged",
|
"create.item_attributes.badly_damaged": "est fortement damaged",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "ne peut pas être équipé",
|
"create.item_attributes.equipable.inverted": "ne peut pas être équipé",
|
||||||
"create.item_attributes.furnace_fuel": "est du combustible",
|
"create.item_attributes.furnace_fuel": "est du combustible",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "n'est pas un combustible",
|
"create.item_attributes.furnace_fuel.inverted": "n'est pas un combustible",
|
||||||
|
"create.item_attributes.washable": "peut être lavé",
|
||||||
|
"create.item_attributes.washable.inverted": "ne peut pas être lavé",
|
||||||
|
"create.item_attributes.crushable": "peut être concassé",
|
||||||
|
"create.item_attributes.crushable.inverted": "ne peut pas être concassé",
|
||||||
|
"create.item_attributes.smeltable": "peut être fondu",
|
||||||
|
"create.item_attributes.smeltable.inverted": "ne peut pas être fondu",
|
||||||
|
"create.item_attributes.smokable": "peut être fumé",
|
||||||
|
"create.item_attributes.smokable.inverted": "ne peut pas être fumé",
|
||||||
|
"create.item_attributes.blastable": "est fondable dans un Haut fourneau",
|
||||||
|
"create.item_attributes.blastable.inverted": "n'est pas fondable dans un Haut fourneau",
|
||||||
|
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
||||||
|
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
||||||
|
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||||
|
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||||
"create.item_attributes.in_tag": "est étiqueté %1$s",
|
"create.item_attributes.in_tag": "est étiqueté %1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "n'est pas étiqueté",
|
"create.item_attributes.in_tag.inverted": "n'est pas étiqueté",
|
||||||
"create.item_attributes.in_item_group": "appartient à %1$s",
|
"create.item_attributes.in_item_group": "appartient à %1$s",
|
||||||
"create.item_attributes.in_item_group.inverted": "n'appartient pas à %1$s'",
|
"create.item_attributes.in_item_group.inverted": "n'appartient pas à %1$s'",
|
||||||
"create.item_attributes.added_by": "a été ajouté par %1$s",
|
"create.item_attributes.added_by": "a été ajouté par %1$s",
|
||||||
"create.item_attributes.added_by.inverted": "n'a pas été ajouté par %1$s",
|
"create.item_attributes.added_by.inverted": "n'a pas été ajouté par %1$s",
|
||||||
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
|
||||||
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
|
||||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
|
||||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
|
||||||
"create.item_attributes.has_enchant": "est enchanté %1$s",
|
"create.item_attributes.has_enchant": "est enchanté %1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "n'est pas enchenté %1$s",
|
"create.item_attributes.has_enchant.inverted": "n'est pas enchenté %1$s",
|
||||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||||
"create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s",
|
"create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s",
|
||||||
"create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level",
|
|
||||||
"create.item_attributes.has_fluid": "contient %1$s",
|
"create.item_attributes.has_fluid": "contient %1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "ne contient pas %1$s",
|
"create.item_attributes.has_fluid.inverted": "ne contient pas %1$s",
|
||||||
"create.item_attributes.has_name": "est renommé %1$s",
|
"create.item_attributes.has_name": "est renommé %1$s",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy",
|
"create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy",
|
||||||
"create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess",
|
"create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess",
|
"create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess",
|
||||||
"create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s",
|
"create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "Aucun attribut sélectionné",
|
"create.gui.attribute_filter.no_selected_attributes": "Aucun attribut sélectionné",
|
||||||
"create.gui.attribute_filter.selected_attributes": "Attributs sélectionnés:",
|
"create.gui.attribute_filter.selected_attributes": "Attributs sélectionnés:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 915",
|
"_": "Missing Localizations: 919",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "non è posizionabile",
|
"create.item_attributes.placeable.inverted": "non è posizionabile",
|
||||||
"create.item_attributes.consumable": "è commestibile",
|
"create.item_attributes.consumable": "è commestibile",
|
||||||
"create.item_attributes.consumable.inverted": "non è commestibile",
|
"create.item_attributes.consumable.inverted": "non è commestibile",
|
||||||
"create.item_attributes.smeltable": "può essere fuso",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "non può essere fuso",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "può essere lavato",
|
|
||||||
"create.item_attributes.washable.inverted": "non può essere lavato",
|
|
||||||
"create.item_attributes.smokable": "può essere affumicato",
|
|
||||||
"create.item_attributes.smokable.inverted": "non può essere affumicato",
|
|
||||||
"create.item_attributes.crushable": "può essere frantumato",
|
|
||||||
"create.item_attributes.crushable.inverted": "non può essere frantumato",
|
|
||||||
"create.item_attributes.blastable": "è fondibile in un forno fusorio",
|
|
||||||
"create.item_attributes.blastable.inverted": "non è fondibile in un forno fusorio",
|
|
||||||
"create.item_attributes.enchanted": "è incantato",
|
"create.item_attributes.enchanted": "è incantato",
|
||||||
"create.item_attributes.enchanted.inverted": "non è incantato",
|
"create.item_attributes.enchanted.inverted": "non è incantato",
|
||||||
|
"create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "è danneggiato",
|
"create.item_attributes.damaged": "è danneggiato",
|
||||||
"create.item_attributes.damaged.inverted": "non è danneggiato",
|
"create.item_attributes.damaged.inverted": "non è danneggiato",
|
||||||
"create.item_attributes.badly_damaged": "è gravemente danneggiato",
|
"create.item_attributes.badly_damaged": "è gravemente danneggiato",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "non può essere equipaggiato",
|
"create.item_attributes.equipable.inverted": "non può essere equipaggiato",
|
||||||
"create.item_attributes.furnace_fuel": "è un combustibile per fornace",
|
"create.item_attributes.furnace_fuel": "è un combustibile per fornace",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "non è un combustibile per fornace",
|
"create.item_attributes.furnace_fuel.inverted": "non è un combustibile per fornace",
|
||||||
|
"create.item_attributes.washable": "può essere lavato",
|
||||||
|
"create.item_attributes.washable.inverted": "non può essere lavato",
|
||||||
|
"create.item_attributes.crushable": "può essere frantumato",
|
||||||
|
"create.item_attributes.crushable.inverted": "non può essere frantumato",
|
||||||
|
"create.item_attributes.smeltable": "può essere fuso",
|
||||||
|
"create.item_attributes.smeltable.inverted": "non può essere fuso",
|
||||||
|
"create.item_attributes.smokable": "può essere affumicato",
|
||||||
|
"create.item_attributes.smokable.inverted": "non può essere affumicato",
|
||||||
|
"create.item_attributes.blastable": "è fondibile in un forno fusorio",
|
||||||
|
"create.item_attributes.blastable.inverted": "non è fondibile in un forno fusorio",
|
||||||
|
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
||||||
|
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
||||||
|
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||||
|
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||||
"create.item_attributes.in_tag": "è etichettato %1$s",
|
"create.item_attributes.in_tag": "è etichettato %1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "non è etichettato %1$s",
|
"create.item_attributes.in_tag.inverted": "non è etichettato %1$s",
|
||||||
"create.item_attributes.in_item_group": "appartiene a %1$s",
|
"create.item_attributes.in_item_group": "appartiene a %1$s",
|
||||||
"create.item_attributes.in_item_group.inverted": "non appartiene a '%1$s'",
|
"create.item_attributes.in_item_group.inverted": "non appartiene a '%1$s'",
|
||||||
"create.item_attributes.added_by": "è stato aggiunto da %1$s",
|
"create.item_attributes.added_by": "è stato aggiunto da %1$s",
|
||||||
"create.item_attributes.added_by.inverted": "non è stato aggiunto da %1$s",
|
"create.item_attributes.added_by.inverted": "non è stato aggiunto da %1$s",
|
||||||
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
|
||||||
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
|
||||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
|
||||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
|
||||||
"create.item_attributes.has_enchant": "è stato incantato con %1$s",
|
"create.item_attributes.has_enchant": "è stato incantato con %1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "non è stato incantato con %1$s",
|
"create.item_attributes.has_enchant.inverted": "non è stato incantato con %1$s",
|
||||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||||
"create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s",
|
"create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s",
|
||||||
"create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level",
|
|
||||||
"create.item_attributes.has_fluid": "contiene %1$s",
|
"create.item_attributes.has_fluid": "contiene %1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "non contiene %1$s",
|
"create.item_attributes.has_fluid.inverted": "non contiene %1$s",
|
||||||
"create.item_attributes.has_name": "è stato rinominato in %1$s",
|
"create.item_attributes.has_name": "è stato rinominato in %1$s",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "non è una copia di seconda generazione",
|
"create.item_attributes.book_copy_second.inverted": "non è una copia di seconda generazione",
|
||||||
"create.item_attributes.book_copy_tattered": "è in condizioni precarie",
|
"create.item_attributes.book_copy_tattered": "è in condizioni precarie",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "non è in condizioni precarie",
|
"create.item_attributes.book_copy_tattered.inverted": "non è in condizioni precarie",
|
||||||
"create.item_attributes.astralsorcery_crystal": "ha l'attributo del cristallo %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "non ha l'attributo del cristallo %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "è in sintonia con %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "non è in sintonia con %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "ha l'attributo benefico %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "non ha l'attributo benefico %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "migliora %1$s",
|
"create.item_attributes.astralsorcery_amulet": "migliora %1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "non migliora %1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "non migliora %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "è in sintonia con %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "non è in sintonia con %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "ha l'attributo del cristallo %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "non ha l'attributo del cristallo %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "ha l'attributo benefico %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "non ha l'attributo benefico %1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "Nessun attributo selezionato",
|
"create.gui.attribute_filter.no_selected_attributes": "Nessun attributo selezionato",
|
||||||
"create.gui.attribute_filter.selected_attributes": "Attributi selezionati:",
|
"create.gui.attribute_filter.selected_attributes": "Attributi selezionati:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 10",
|
"_": "Missing Localizations: 14",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "設置不可能か",
|
"create.item_attributes.placeable.inverted": "設置不可能か",
|
||||||
"create.item_attributes.consumable": "食べられるか",
|
"create.item_attributes.consumable": "食べられるか",
|
||||||
"create.item_attributes.consumable.inverted": "食べられないか",
|
"create.item_attributes.consumable.inverted": "食べられないか",
|
||||||
"create.item_attributes.smeltable": "精錬可能か",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "精錬不可能か",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "洗浄可能か",
|
|
||||||
"create.item_attributes.washable.inverted": "洗浄不可能か",
|
|
||||||
"create.item_attributes.smokable": "燻製器で調理可能か",
|
|
||||||
"create.item_attributes.smokable.inverted": "燻製器で調理不可能か",
|
|
||||||
"create.item_attributes.crushable": "粉砕可能か",
|
|
||||||
"create.item_attributes.crushable.inverted": "粉砕不可能か",
|
|
||||||
"create.item_attributes.blastable": "溶鉱炉で精錬可能か",
|
|
||||||
"create.item_attributes.blastable.inverted": "溶鉱炉で精錬不可能か",
|
|
||||||
"create.item_attributes.enchanted": "エンチャント済みか",
|
"create.item_attributes.enchanted": "エンチャント済みか",
|
||||||
"create.item_attributes.enchanted.inverted": "エンチャントなしか",
|
"create.item_attributes.enchanted.inverted": "エンチャントなしか",
|
||||||
|
"create.item_attributes.max_enchanted": "最大レベルのエンチャントがされているか",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "最大レベルのエンチャントがされていないか",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "破損してるか",
|
"create.item_attributes.damaged": "破損してるか",
|
||||||
"create.item_attributes.damaged.inverted": "破損していないか",
|
"create.item_attributes.damaged.inverted": "破損していないか",
|
||||||
"create.item_attributes.badly_damaged": "ひどく損傷してるか",
|
"create.item_attributes.badly_damaged": "ひどく損傷してるか",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "装備不可能か",
|
"create.item_attributes.equipable.inverted": "装備不可能か",
|
||||||
"create.item_attributes.furnace_fuel": "かまどの燃料か",
|
"create.item_attributes.furnace_fuel": "かまどの燃料か",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "かまどの燃料でないか",
|
"create.item_attributes.furnace_fuel.inverted": "かまどの燃料でないか",
|
||||||
|
"create.item_attributes.washable": "洗浄可能か",
|
||||||
|
"create.item_attributes.washable.inverted": "洗浄不可能か",
|
||||||
|
"create.item_attributes.crushable": "粉砕可能か",
|
||||||
|
"create.item_attributes.crushable.inverted": "粉砕不可能か",
|
||||||
|
"create.item_attributes.smeltable": "精錬可能か",
|
||||||
|
"create.item_attributes.smeltable.inverted": "精錬不可能か",
|
||||||
|
"create.item_attributes.smokable": "燻製器で調理可能か",
|
||||||
|
"create.item_attributes.smokable.inverted": "燻製器で調理不可能か",
|
||||||
|
"create.item_attributes.blastable": "溶鉱炉で精錬可能か",
|
||||||
|
"create.item_attributes.blastable.inverted": "溶鉱炉で精錬不可能か",
|
||||||
|
"create.item_attributes.shulker_level": "%1$sシュルカーか",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "%1$sシュルカーでないか",
|
||||||
|
"create.item_attributes.shulker_level.full": "満杯の",
|
||||||
|
"create.item_attributes.shulker_level.empty": "空の",
|
||||||
|
"create.item_attributes.shulker_level.partial": "一部埋まっている",
|
||||||
"create.item_attributes.in_tag": "%1$sのタグが付けられてるか",
|
"create.item_attributes.in_tag": "%1$sのタグが付けられてるか",
|
||||||
"create.item_attributes.in_tag.inverted": "%1$sのタグがついていないか",
|
"create.item_attributes.in_tag.inverted": "%1$sのタグがついていないか",
|
||||||
"create.item_attributes.in_item_group": "%1$sに属してるか",
|
"create.item_attributes.in_item_group": "%1$sに属してるか",
|
||||||
"create.item_attributes.in_item_group.inverted": "%1$sに属していないか",
|
"create.item_attributes.in_item_group.inverted": "%1$sに属していないか",
|
||||||
"create.item_attributes.added_by": "%1$sによって追加されたか",
|
"create.item_attributes.added_by": "%1$sによって追加されたか",
|
||||||
"create.item_attributes.added_by.inverted": "%1$sによって追加されていないか",
|
"create.item_attributes.added_by.inverted": "%1$sによって追加されていないか",
|
||||||
"create.item_attributes.shulker_level": "%1$sシュルカーか",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "%1$sシュルカーでないか",
|
|
||||||
"create.item_attributes.shulker_level.full": "満杯の",
|
|
||||||
"create.item_attributes.shulker_level.empty": "空の",
|
|
||||||
"create.item_attributes.shulker_level.partial": "一部埋まっている",
|
|
||||||
"create.item_attributes.has_enchant": "エンチャントされているか%1$s",
|
"create.item_attributes.has_enchant": "エンチャントされているか%1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "エンチャントがされていないか",
|
"create.item_attributes.has_enchant.inverted": "エンチャントがされていないか",
|
||||||
"create.item_attributes.color": "%1$sで染められているか",
|
"create.item_attributes.color": "%1$sで染められているか",
|
||||||
"create.item_attributes.color.inverted": "%1$sで染められていないか",
|
"create.item_attributes.color.inverted": "%1$sで染められていないか",
|
||||||
"create.item_attributes.max_enchanted": "最大レベルのエンチャントがされているか",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "最大レベルのエンチャントがされていないか",
|
|
||||||
"create.item_attributes.has_fluid": "%1$sを含んでいるか",
|
"create.item_attributes.has_fluid": "%1$sを含んでいるか",
|
||||||
"create.item_attributes.has_fluid.inverted": "%1$sを含んでいないか",
|
"create.item_attributes.has_fluid.inverted": "%1$sを含んでいないか",
|
||||||
"create.item_attributes.has_name": "%1$sの名前が付けられているか",
|
"create.item_attributes.has_name": "%1$sの名前が付けられているか",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "コピーのコピーでないか",
|
"create.item_attributes.book_copy_second.inverted": "コピーのコピーでないか",
|
||||||
"create.item_attributes.book_copy_tattered": "ボロボロか",
|
"create.item_attributes.book_copy_tattered": "ボロボロか",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "ボロボロでないか",
|
"create.item_attributes.book_copy_tattered.inverted": "ボロボロでないか",
|
||||||
"create.item_attributes.astralsorcery_crystal": "%1$s クリスタル属性を持つ",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "%1$s クリスタル属性を持たない",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "%1$s に同調している",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "%1$s に同調していない",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "%1$s 特典属性がある",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 特典属性がない",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "%1$s 改善",
|
"create.item_attributes.astralsorcery_amulet": "%1$s 改善",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "%1$s 改善されない",
|
"create.item_attributes.astralsorcery_amulet.inverted": "%1$s 改善されない",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "%1$s に同調している",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "%1$s に同調していない",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "%1$s クリスタル属性を持つ",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "%1$s クリスタル属性を持たない",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "%1$s 特典属性がある",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 特典属性がない",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "属性が選択されていません",
|
"create.gui.attribute_filter.no_selected_attributes": "属性が選択されていません",
|
||||||
"create.gui.attribute_filter.selected_attributes": "選択された属性:",
|
"create.gui.attribute_filter.selected_attributes": "選択された属性:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 25",
|
"_": "Missing Localizations: 29",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "설치할 수 없음",
|
"create.item_attributes.placeable.inverted": "설치할 수 없음",
|
||||||
"create.item_attributes.consumable": "먹을 수 있음",
|
"create.item_attributes.consumable": "먹을 수 있음",
|
||||||
"create.item_attributes.consumable.inverted": "먹을 수 없음",
|
"create.item_attributes.consumable.inverted": "먹을 수 없음",
|
||||||
"create.item_attributes.smeltable": "구워질 수 있음",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "구워질 수 없음",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "세척될 수 있음",
|
|
||||||
"create.item_attributes.washable.inverted": "세척될 수 없음",
|
|
||||||
"create.item_attributes.smokable": "훈연될 수 있음",
|
|
||||||
"create.item_attributes.smokable.inverted": "훈연될 수 없음",
|
|
||||||
"create.item_attributes.crushable": "분쇄될 수 있음",
|
|
||||||
"create.item_attributes.crushable.inverted": "분쇄될 수 없음",
|
|
||||||
"create.item_attributes.blastable": "용광로에 녹일 수 있음",
|
|
||||||
"create.item_attributes.blastable.inverted": "용광로에 녹일 수 없음",
|
|
||||||
"create.item_attributes.enchanted": "마법부여됨",
|
"create.item_attributes.enchanted": "마법부여됨",
|
||||||
"create.item_attributes.enchanted.inverted": "마법부여되지 않음",
|
"create.item_attributes.enchanted.inverted": "마법부여되지 않음",
|
||||||
|
"create.item_attributes.max_enchanted": "마법부여가 최고 레벨임",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "마법부여가 최고 레벨이 아님",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "내구도가 닮",
|
"create.item_attributes.damaged": "내구도가 닮",
|
||||||
"create.item_attributes.damaged.inverted": "내구도가 닳지 않음",
|
"create.item_attributes.damaged.inverted": "내구도가 닳지 않음",
|
||||||
"create.item_attributes.badly_damaged": "심각하게 내구도가 닮",
|
"create.item_attributes.badly_damaged": "심각하게 내구도가 닮",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "장착할 수 없음",
|
"create.item_attributes.equipable.inverted": "장착할 수 없음",
|
||||||
"create.item_attributes.furnace_fuel": "화로 연료로 쓸 수 있음",
|
"create.item_attributes.furnace_fuel": "화로 연료로 쓸 수 있음",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "화로 연료로 쓸 수 없음",
|
"create.item_attributes.furnace_fuel.inverted": "화로 연료로 쓸 수 없음",
|
||||||
|
"create.item_attributes.washable": "세척될 수 있음",
|
||||||
|
"create.item_attributes.washable.inverted": "세척될 수 없음",
|
||||||
|
"create.item_attributes.crushable": "분쇄될 수 있음",
|
||||||
|
"create.item_attributes.crushable.inverted": "분쇄될 수 없음",
|
||||||
|
"create.item_attributes.smeltable": "구워질 수 있음",
|
||||||
|
"create.item_attributes.smeltable.inverted": "구워질 수 없음",
|
||||||
|
"create.item_attributes.smokable": "훈연될 수 있음",
|
||||||
|
"create.item_attributes.smokable.inverted": "훈연될 수 없음",
|
||||||
|
"create.item_attributes.blastable": "용광로에 녹일 수 있음",
|
||||||
|
"create.item_attributes.blastable.inverted": "용광로에 녹일 수 없음",
|
||||||
|
"create.item_attributes.shulker_level": "셜커가 %1$s있음",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "셜커가 %1$s있지 않음",
|
||||||
|
"create.item_attributes.shulker_level.full": "가득 차",
|
||||||
|
"create.item_attributes.shulker_level.empty": "비어",
|
||||||
|
"create.item_attributes.shulker_level.partial": "조금 차",
|
||||||
"create.item_attributes.in_tag": "%1$s로 등록됨",
|
"create.item_attributes.in_tag": "%1$s로 등록됨",
|
||||||
"create.item_attributes.in_tag.inverted": "%1$s로 등록되지 않음",
|
"create.item_attributes.in_tag.inverted": "%1$s로 등록되지 않음",
|
||||||
"create.item_attributes.in_item_group": "%1$s탭에 속함",
|
"create.item_attributes.in_item_group": "%1$s탭에 속함",
|
||||||
"create.item_attributes.in_item_group.inverted": "%1$s탭에 속함",
|
"create.item_attributes.in_item_group.inverted": "%1$s탭에 속함",
|
||||||
"create.item_attributes.added_by": "%1$s모드가 추가함",
|
"create.item_attributes.added_by": "%1$s모드가 추가함",
|
||||||
"create.item_attributes.added_by.inverted": "%1$s모드가 추가하지 않음",
|
"create.item_attributes.added_by.inverted": "%1$s모드가 추가하지 않음",
|
||||||
"create.item_attributes.shulker_level": "셜커가 %1$s있음",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "셜커가 %1$s있지 않음",
|
|
||||||
"create.item_attributes.shulker_level.full": "가득 차",
|
|
||||||
"create.item_attributes.shulker_level.empty": "비어",
|
|
||||||
"create.item_attributes.shulker_level.partial": "조금 차",
|
|
||||||
"create.item_attributes.has_enchant": "%1$s 마법부여를 가지고 있음",
|
"create.item_attributes.has_enchant": "%1$s 마법부여를 가지고 있음",
|
||||||
"create.item_attributes.has_enchant.inverted": "%1$s 마법부여를 가지고 있지 않음",
|
"create.item_attributes.has_enchant.inverted": "%1$s 마법부여를 가지고 있지 않음",
|
||||||
"create.item_attributes.color": "염색됨",
|
"create.item_attributes.color": "염색됨",
|
||||||
"create.item_attributes.color.inverted": "염색되지 않음",
|
"create.item_attributes.color.inverted": "염색되지 않음",
|
||||||
"create.item_attributes.max_enchanted": "마법부여가 최고 레벨임",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "마법부여가 최고 레벨이 아님",
|
|
||||||
"create.item_attributes.has_fluid": "%1$s을(를) 담고 있음",
|
"create.item_attributes.has_fluid": "%1$s을(를) 담고 있음",
|
||||||
"create.item_attributes.has_fluid.inverted": "%1$s을(를) 담고 있지 않음",
|
"create.item_attributes.has_fluid.inverted": "%1$s을(를) 담고 있지 않음",
|
||||||
"create.item_attributes.has_name": "%1$s이라는 이름을 갖고 있음",
|
"create.item_attributes.has_name": "%1$s이라는 이름을 갖고 있음",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "복사본의 복사본이 아님",
|
"create.item_attributes.book_copy_second.inverted": "복사본의 복사본이 아님",
|
||||||
"create.item_attributes.book_copy_tattered": "낡고 헐었음",
|
"create.item_attributes.book_copy_tattered": "낡고 헐었음",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "낡고 헐지 않음",
|
"create.item_attributes.book_copy_tattered.inverted": "낡고 헐지 않음",
|
||||||
"create.item_attributes.astralsorcery_crystal": "%1$s 수정 속성을 가짐",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "%1$s 수정 속성을 가지고 있지 않음",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "%1$s에 조율됨",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "%1$s에 조율되지 않음",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "%1$s 퍽 속성을 가짐",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 퍽 속성을 가지고 있지 않음",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "%1$s이(가) 향상됨",
|
"create.item_attributes.astralsorcery_amulet": "%1$s이(가) 향상됨",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "%1$s이(가) 향상되지 않음",
|
"create.item_attributes.astralsorcery_amulet.inverted": "%1$s이(가) 향상되지 않음",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "%1$s에 조율됨",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "%1$s에 조율되지 않음",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "%1$s 수정 속성을 가짐",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "%1$s 수정 속성을 가지고 있지 않음",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "%1$s 퍽 속성을 가짐",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 퍽 속성을 가지고 있지 않음",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "속성이 선택되지 않음",
|
"create.gui.attribute_filter.no_selected_attributes": "속성이 선택되지 않음",
|
||||||
"create.gui.attribute_filter.selected_attributes": "선택된 속성:",
|
"create.gui.attribute_filter.selected_attributes": "선택된 속성:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1767",
|
"_": "Missing Localizations: 1771",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "UNLOCALIZED: is not placeable",
|
"create.item_attributes.placeable.inverted": "UNLOCALIZED: is not placeable",
|
||||||
"create.item_attributes.consumable": "UNLOCALIZED: can be eaten",
|
"create.item_attributes.consumable": "UNLOCALIZED: can be eaten",
|
||||||
"create.item_attributes.consumable.inverted": "UNLOCALIZED: cannot be eaten",
|
"create.item_attributes.consumable.inverted": "UNLOCALIZED: cannot be eaten",
|
||||||
"create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "UNLOCALIZED: can be Washed",
|
|
||||||
"create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed",
|
|
||||||
"create.item_attributes.smokable": "UNLOCALIZED: can be Smoked",
|
|
||||||
"create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked",
|
|
||||||
"create.item_attributes.crushable": "UNLOCALIZED: can be Crushed",
|
|
||||||
"create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed",
|
|
||||||
"create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace",
|
|
||||||
"create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace",
|
|
||||||
"create.item_attributes.enchanted": "UNLOCALIZED: is enchanted",
|
"create.item_attributes.enchanted": "UNLOCALIZED: is enchanted",
|
||||||
"create.item_attributes.enchanted.inverted": "UNLOCALIZED: is unenchanted",
|
"create.item_attributes.enchanted.inverted": "UNLOCALIZED: is unenchanted",
|
||||||
|
"create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "UNLOCALIZED: is damaged",
|
"create.item_attributes.damaged": "UNLOCALIZED: is damaged",
|
||||||
"create.item_attributes.damaged.inverted": "UNLOCALIZED: is not damaged",
|
"create.item_attributes.damaged.inverted": "UNLOCALIZED: is not damaged",
|
||||||
"create.item_attributes.badly_damaged": "UNLOCALIZED: is heavily damaged",
|
"create.item_attributes.badly_damaged": "UNLOCALIZED: is heavily damaged",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "UNLOCALIZED: cannot be equipped",
|
"create.item_attributes.equipable.inverted": "UNLOCALIZED: cannot be equipped",
|
||||||
"create.item_attributes.furnace_fuel": "UNLOCALIZED: is furnace fuel",
|
"create.item_attributes.furnace_fuel": "UNLOCALIZED: is furnace fuel",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "UNLOCALIZED: is not furnace fuel",
|
"create.item_attributes.furnace_fuel.inverted": "UNLOCALIZED: is not furnace fuel",
|
||||||
|
"create.item_attributes.washable": "UNLOCALIZED: can be Washed",
|
||||||
|
"create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed",
|
||||||
|
"create.item_attributes.crushable": "UNLOCALIZED: can be Crushed",
|
||||||
|
"create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed",
|
||||||
|
"create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted",
|
||||||
|
"create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted",
|
||||||
|
"create.item_attributes.smokable": "UNLOCALIZED: can be Smoked",
|
||||||
|
"create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked",
|
||||||
|
"create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace",
|
||||||
|
"create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace",
|
||||||
|
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
||||||
|
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
||||||
|
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||||
|
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||||
"create.item_attributes.in_tag": "UNLOCALIZED: is tagged %1$s",
|
"create.item_attributes.in_tag": "UNLOCALIZED: is tagged %1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "UNLOCALIZED: is not tagged %1$s",
|
"create.item_attributes.in_tag.inverted": "UNLOCALIZED: is not tagged %1$s",
|
||||||
"create.item_attributes.in_item_group": "UNLOCALIZED: is in group '%1$s'",
|
"create.item_attributes.in_item_group": "UNLOCALIZED: is in group '%1$s'",
|
||||||
"create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'",
|
"create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'",
|
||||||
"create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s",
|
"create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s",
|
||||||
"create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s",
|
"create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s",
|
||||||
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
|
||||||
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
|
||||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
|
||||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
|
||||||
"create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s",
|
"create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s",
|
"create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s",
|
||||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||||
"create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s",
|
"create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s",
|
||||||
"create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level",
|
|
||||||
"create.item_attributes.has_fluid": "UNLOCALIZED: contains %1$s",
|
"create.item_attributes.has_fluid": "UNLOCALIZED: contains %1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "UNLOCALIZED: does not contain %1$s",
|
"create.item_attributes.has_fluid.inverted": "UNLOCALIZED: does not contain %1$s",
|
||||||
"create.item_attributes.has_name": "UNLOCALIZED: has the custom name %1$s",
|
"create.item_attributes.has_name": "UNLOCALIZED: has the custom name %1$s",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy",
|
"create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy",
|
||||||
"create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess",
|
"create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess",
|
"create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess",
|
||||||
"create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s",
|
"create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "UNLOCALIZED: No attributes selected",
|
"create.gui.attribute_filter.no_selected_attributes": "UNLOCALIZED: No attributes selected",
|
||||||
"create.gui.attribute_filter.selected_attributes": "UNLOCALIZED: Selected attributes:",
|
"create.gui.attribute_filter.selected_attributes": "UNLOCALIZED: Selected attributes:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 257",
|
"_": "Missing Localizations: 261",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "nie jest stawialny",
|
"create.item_attributes.placeable.inverted": "nie jest stawialny",
|
||||||
"create.item_attributes.consumable": "jadalny",
|
"create.item_attributes.consumable": "jadalny",
|
||||||
"create.item_attributes.consumable.inverted": "niejadalny",
|
"create.item_attributes.consumable.inverted": "niejadalny",
|
||||||
"create.item_attributes.smeltable": "może zostać przepalony",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "nie może zostać przepalony",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "może zostać opłukany",
|
|
||||||
"create.item_attributes.washable.inverted": "nie może zostać opłukany",
|
|
||||||
"create.item_attributes.smokable": "może być wędzony",
|
|
||||||
"create.item_attributes.smokable.inverted": "nie może być wędzony",
|
|
||||||
"create.item_attributes.crushable": "może być rozkruszony",
|
|
||||||
"create.item_attributes.crushable.inverted": "nie może być rozkruszony",
|
|
||||||
"create.item_attributes.blastable": "może być stopiony w piecu hutniczym",
|
|
||||||
"create.item_attributes.blastable.inverted": "nie może być stopiony w piecu hutniczym",
|
|
||||||
"create.item_attributes.enchanted": "jest zaklęty",
|
"create.item_attributes.enchanted": "jest zaklęty",
|
||||||
"create.item_attributes.enchanted.inverted": "nie jest zaklęty",
|
"create.item_attributes.enchanted.inverted": "nie jest zaklęty",
|
||||||
|
"create.item_attributes.max_enchanted": "jest zaklęte na maksymalny poziom",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "nie jest zaklęte na maksymalny poziom",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "jest uszkodzony",
|
"create.item_attributes.damaged": "jest uszkodzony",
|
||||||
"create.item_attributes.damaged.inverted": "nie jest uszkodzony",
|
"create.item_attributes.damaged.inverted": "nie jest uszkodzony",
|
||||||
"create.item_attributes.badly_damaged": "jest silnie uszkodzony",
|
"create.item_attributes.badly_damaged": "jest silnie uszkodzony",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "nie może zostać założony",
|
"create.item_attributes.equipable.inverted": "nie może zostać założony",
|
||||||
"create.item_attributes.furnace_fuel": "jest paliwem dla pieca",
|
"create.item_attributes.furnace_fuel": "jest paliwem dla pieca",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "nie jest paliwem dla pieca",
|
"create.item_attributes.furnace_fuel.inverted": "nie jest paliwem dla pieca",
|
||||||
|
"create.item_attributes.washable": "może zostać opłukany",
|
||||||
|
"create.item_attributes.washable.inverted": "nie może zostać opłukany",
|
||||||
|
"create.item_attributes.crushable": "może być rozkruszony",
|
||||||
|
"create.item_attributes.crushable.inverted": "nie może być rozkruszony",
|
||||||
|
"create.item_attributes.smeltable": "może zostać przepalony",
|
||||||
|
"create.item_attributes.smeltable.inverted": "nie może zostać przepalony",
|
||||||
|
"create.item_attributes.smokable": "może być wędzony",
|
||||||
|
"create.item_attributes.smokable.inverted": "nie może być wędzony",
|
||||||
|
"create.item_attributes.blastable": "może być stopiony w piecu hutniczym",
|
||||||
|
"create.item_attributes.blastable.inverted": "nie może być stopiony w piecu hutniczym",
|
||||||
|
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
||||||
|
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
||||||
|
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||||
|
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||||
"create.item_attributes.in_tag": "posiada znacznik %1$s",
|
"create.item_attributes.in_tag": "posiada znacznik %1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "nie posiada znacznika %1$s",
|
"create.item_attributes.in_tag.inverted": "nie posiada znacznika %1$s",
|
||||||
"create.item_attributes.in_item_group": "jest w grupie \"%1$s\"",
|
"create.item_attributes.in_item_group": "jest w grupie \"%1$s\"",
|
||||||
"create.item_attributes.in_item_group.inverted": "nie jest w grupie \"%1$s\"",
|
"create.item_attributes.in_item_group.inverted": "nie jest w grupie \"%1$s\"",
|
||||||
"create.item_attributes.added_by": "dodany przez %1$s",
|
"create.item_attributes.added_by": "dodany przez %1$s",
|
||||||
"create.item_attributes.added_by.inverted": "niedodany przez %1$s",
|
"create.item_attributes.added_by.inverted": "niedodany przez %1$s",
|
||||||
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
|
||||||
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
|
||||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
|
||||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
|
||||||
"create.item_attributes.has_enchant": "posiada zaklęcie %1$s",
|
"create.item_attributes.has_enchant": "posiada zaklęcie %1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "nie posiada zaklęcia %1$s",
|
"create.item_attributes.has_enchant.inverted": "nie posiada zaklęcia %1$s",
|
||||||
"create.item_attributes.color": "jest zafarbowane, kolor %1$s",
|
"create.item_attributes.color": "jest zafarbowane, kolor %1$s",
|
||||||
"create.item_attributes.color.inverted": "nie jest zafarbowane, kolor %1$s",
|
"create.item_attributes.color.inverted": "nie jest zafarbowane, kolor %1$s",
|
||||||
"create.item_attributes.max_enchanted": "jest zaklęte na maksymalny poziom",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "nie jest zaklęte na maksymalny poziom",
|
|
||||||
"create.item_attributes.has_fluid": "zawiera %1$s",
|
"create.item_attributes.has_fluid": "zawiera %1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "nie zawiera %1$s",
|
"create.item_attributes.has_fluid.inverted": "nie zawiera %1$s",
|
||||||
"create.item_attributes.has_name": "posiada nazwę %1$s",
|
"create.item_attributes.has_name": "posiada nazwę %1$s",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "nie jest kopią kopii",
|
"create.item_attributes.book_copy_second.inverted": "nie jest kopią kopii",
|
||||||
"create.item_attributes.book_copy_tattered": "jest postrzępiona",
|
"create.item_attributes.book_copy_tattered": "jest postrzępiona",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "nie jest postrzępiona",
|
"create.item_attributes.book_copy_tattered.inverted": "nie jest postrzępiona",
|
||||||
"create.item_attributes.astralsorcery_crystal": "posiada właściwości kryształu %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "nie posiada właściwości kryształu %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "jest dopasowany do %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "nie jest dopasowany do %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "posiada dodatkową właściwość %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "nie posiada dodatkowej właściwości %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "ulepsza %1$s",
|
"create.item_attributes.astralsorcery_amulet": "ulepsza %1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "nie ulepsza %1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "nie ulepsza %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "jest dopasowany do %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "nie jest dopasowany do %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "posiada właściwości kryształu %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "nie posiada właściwości kryształu %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "posiada dodatkową właściwość %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "nie posiada dodatkowej właściwości %1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "Brak wybranych właściwości",
|
"create.gui.attribute_filter.no_selected_attributes": "Brak wybranych właściwości",
|
||||||
"create.gui.attribute_filter.selected_attributes": "Wybrane właściwości:",
|
"create.gui.attribute_filter.selected_attributes": "Wybrane właściwości:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1808",
|
"_": "Missing Localizations: 1812",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "UNLOCALIZED: is not placeable",
|
"create.item_attributes.placeable.inverted": "UNLOCALIZED: is not placeable",
|
||||||
"create.item_attributes.consumable": "UNLOCALIZED: can be eaten",
|
"create.item_attributes.consumable": "UNLOCALIZED: can be eaten",
|
||||||
"create.item_attributes.consumable.inverted": "UNLOCALIZED: cannot be eaten",
|
"create.item_attributes.consumable.inverted": "UNLOCALIZED: cannot be eaten",
|
||||||
"create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "UNLOCALIZED: can be Washed",
|
|
||||||
"create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed",
|
|
||||||
"create.item_attributes.smokable": "UNLOCALIZED: can be Smoked",
|
|
||||||
"create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked",
|
|
||||||
"create.item_attributes.crushable": "UNLOCALIZED: can be Crushed",
|
|
||||||
"create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed",
|
|
||||||
"create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace",
|
|
||||||
"create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace",
|
|
||||||
"create.item_attributes.enchanted": "UNLOCALIZED: is enchanted",
|
"create.item_attributes.enchanted": "UNLOCALIZED: is enchanted",
|
||||||
"create.item_attributes.enchanted.inverted": "UNLOCALIZED: is unenchanted",
|
"create.item_attributes.enchanted.inverted": "UNLOCALIZED: is unenchanted",
|
||||||
|
"create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "UNLOCALIZED: is damaged",
|
"create.item_attributes.damaged": "UNLOCALIZED: is damaged",
|
||||||
"create.item_attributes.damaged.inverted": "UNLOCALIZED: is not damaged",
|
"create.item_attributes.damaged.inverted": "UNLOCALIZED: is not damaged",
|
||||||
"create.item_attributes.badly_damaged": "UNLOCALIZED: is heavily damaged",
|
"create.item_attributes.badly_damaged": "UNLOCALIZED: is heavily damaged",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "UNLOCALIZED: cannot be equipped",
|
"create.item_attributes.equipable.inverted": "UNLOCALIZED: cannot be equipped",
|
||||||
"create.item_attributes.furnace_fuel": "UNLOCALIZED: is furnace fuel",
|
"create.item_attributes.furnace_fuel": "UNLOCALIZED: is furnace fuel",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "UNLOCALIZED: is not furnace fuel",
|
"create.item_attributes.furnace_fuel.inverted": "UNLOCALIZED: is not furnace fuel",
|
||||||
|
"create.item_attributes.washable": "UNLOCALIZED: can be Washed",
|
||||||
|
"create.item_attributes.washable.inverted": "UNLOCALIZED: cannot be Washed",
|
||||||
|
"create.item_attributes.crushable": "UNLOCALIZED: can be Crushed",
|
||||||
|
"create.item_attributes.crushable.inverted": "UNLOCALIZED: cannot be Crushed",
|
||||||
|
"create.item_attributes.smeltable": "UNLOCALIZED: can be Smelted",
|
||||||
|
"create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted",
|
||||||
|
"create.item_attributes.smokable": "UNLOCALIZED: can be Smoked",
|
||||||
|
"create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked",
|
||||||
|
"create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace",
|
||||||
|
"create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace",
|
||||||
|
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
||||||
|
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
||||||
|
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
||||||
|
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
||||||
"create.item_attributes.in_tag": "UNLOCALIZED: is tagged %1$s",
|
"create.item_attributes.in_tag": "UNLOCALIZED: is tagged %1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "UNLOCALIZED: is not tagged %1$s",
|
"create.item_attributes.in_tag.inverted": "UNLOCALIZED: is not tagged %1$s",
|
||||||
"create.item_attributes.in_item_group": "UNLOCALIZED: is in group '%1$s'",
|
"create.item_attributes.in_item_group": "UNLOCALIZED: is in group '%1$s'",
|
||||||
"create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'",
|
"create.item_attributes.in_item_group.inverted": "UNLOCALIZED: is not in group '%1$s'",
|
||||||
"create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s",
|
"create.item_attributes.added_by": "UNLOCALIZED: was added by %1$s",
|
||||||
"create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s",
|
"create.item_attributes.added_by.inverted": "UNLOCALIZED: was not added by %1$s",
|
||||||
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
|
||||||
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
|
||||||
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
|
|
||||||
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
|
|
||||||
"create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s",
|
"create.item_attributes.has_enchant": "UNLOCALIZED: is enchanted with %1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s",
|
"create.item_attributes.has_enchant.inverted": "UNLOCALIZED: is not enchanted with %1$s",
|
||||||
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
"create.item_attributes.color": "UNLOCALIZED: is dyed %1$s",
|
||||||
"create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s",
|
"create.item_attributes.color.inverted": "UNLOCALIZED: is not dyed %1$s",
|
||||||
"create.item_attributes.max_enchanted": "UNLOCALIZED: is enchanted at max level",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "UNLOCALIZED: is not enchanted at max level",
|
|
||||||
"create.item_attributes.has_fluid": "UNLOCALIZED: contains %1$s",
|
"create.item_attributes.has_fluid": "UNLOCALIZED: contains %1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "UNLOCALIZED: does not contain %1$s",
|
"create.item_attributes.has_fluid.inverted": "UNLOCALIZED: does not contain %1$s",
|
||||||
"create.item_attributes.has_name": "UNLOCALIZED: has the custom name %1$s",
|
"create.item_attributes.has_name": "UNLOCALIZED: has the custom name %1$s",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy",
|
"create.item_attributes.book_copy_second.inverted": "UNLOCALIZED: is not a second-generation copy",
|
||||||
"create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess",
|
"create.item_attributes.book_copy_tattered": "UNLOCALIZED: is a tattered mess",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess",
|
"create.item_attributes.book_copy_tattered.inverted": "UNLOCALIZED: is not a tattered mess",
|
||||||
"create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s",
|
"create.item_attributes.astralsorcery_amulet": "UNLOCALIZED: improves %1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "UNLOCALIZED: does not improve %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "UNLOCALIZED: is attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "UNLOCALIZED: is not attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "UNLOCALIZED: has crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "UNLOCALIZED: does not have crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "UNLOCALIZED: has perk attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "UNLOCALIZED: does not have perk attribute %1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "UNLOCALIZED: No attributes selected",
|
"create.gui.attribute_filter.no_selected_attributes": "UNLOCALIZED: No attributes selected",
|
||||||
"create.gui.attribute_filter.selected_attributes": "UNLOCALIZED: Selected attributes:",
|
"create.gui.attribute_filter.selected_attributes": "UNLOCALIZED: Selected attributes:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 6",
|
"_": "Missing Localizations: 10",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "нельзя разместить",
|
"create.item_attributes.placeable.inverted": "нельзя разместить",
|
||||||
"create.item_attributes.consumable": "можно съесть",
|
"create.item_attributes.consumable": "можно съесть",
|
||||||
"create.item_attributes.consumable.inverted": "нельзя съесть",
|
"create.item_attributes.consumable.inverted": "нельзя съесть",
|
||||||
"create.item_attributes.smeltable": "можно расплавить",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "нельзя расплавить",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "можно промыть",
|
|
||||||
"create.item_attributes.washable.inverted": "нельзя промыть",
|
|
||||||
"create.item_attributes.smokable": "можно прокоптить",
|
|
||||||
"create.item_attributes.smokable.inverted": "нельзя прокоптить",
|
|
||||||
"create.item_attributes.crushable": "можно измельчить",
|
|
||||||
"create.item_attributes.crushable.inverted": "нельзя разместить",
|
|
||||||
"create.item_attributes.blastable": "плавится в доменной печи",
|
|
||||||
"create.item_attributes.blastable.inverted": "не плавится в доменной печи",
|
|
||||||
"create.item_attributes.enchanted": "зачарован",
|
"create.item_attributes.enchanted": "зачарован",
|
||||||
"create.item_attributes.enchanted.inverted": "не зачарован",
|
"create.item_attributes.enchanted.inverted": "не зачарован",
|
||||||
|
"create.item_attributes.max_enchanted": "Зачаровано за максимальный уровень",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "Не зачаровано за максимальный уровень",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "повреждён",
|
"create.item_attributes.damaged": "повреждён",
|
||||||
"create.item_attributes.damaged.inverted": "не повреждён",
|
"create.item_attributes.damaged.inverted": "не повреждён",
|
||||||
"create.item_attributes.badly_damaged": "сильно повреждён",
|
"create.item_attributes.badly_damaged": "сильно повреждён",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "не может быть надет",
|
"create.item_attributes.equipable.inverted": "не может быть надет",
|
||||||
"create.item_attributes.furnace_fuel": "является топливом",
|
"create.item_attributes.furnace_fuel": "является топливом",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "не является топливом",
|
"create.item_attributes.furnace_fuel.inverted": "не является топливом",
|
||||||
|
"create.item_attributes.washable": "можно промыть",
|
||||||
|
"create.item_attributes.washable.inverted": "нельзя промыть",
|
||||||
|
"create.item_attributes.crushable": "можно измельчить",
|
||||||
|
"create.item_attributes.crushable.inverted": "нельзя разместить",
|
||||||
|
"create.item_attributes.smeltable": "можно расплавить",
|
||||||
|
"create.item_attributes.smeltable.inverted": "нельзя расплавить",
|
||||||
|
"create.item_attributes.smokable": "можно прокоптить",
|
||||||
|
"create.item_attributes.smokable.inverted": "нельзя прокоптить",
|
||||||
|
"create.item_attributes.blastable": "плавится в доменной печи",
|
||||||
|
"create.item_attributes.blastable.inverted": "не плавится в доменной печи",
|
||||||
|
"create.item_attributes.shulker_level": "шалкер %1$s",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "шалкер не %1$s",
|
||||||
|
"create.item_attributes.shulker_level.full": "полный",
|
||||||
|
"create.item_attributes.shulker_level.empty": "пустой",
|
||||||
|
"create.item_attributes.shulker_level.partial": "частично заполнен",
|
||||||
"create.item_attributes.in_tag": "помечен %1$s",
|
"create.item_attributes.in_tag": "помечен %1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "не помечен %1$s",
|
"create.item_attributes.in_tag.inverted": "не помечен %1$s",
|
||||||
"create.item_attributes.in_item_group": "принадлежит %1$s",
|
"create.item_attributes.in_item_group": "принадлежит %1$s",
|
||||||
"create.item_attributes.in_item_group.inverted": "не принадлежит '%1$s'",
|
"create.item_attributes.in_item_group.inverted": "не принадлежит '%1$s'",
|
||||||
"create.item_attributes.added_by": "был добавлен %1$s",
|
"create.item_attributes.added_by": "был добавлен %1$s",
|
||||||
"create.item_attributes.added_by.inverted": "не был добавлен %1$s",
|
"create.item_attributes.added_by.inverted": "не был добавлен %1$s",
|
||||||
"create.item_attributes.shulker_level": "шалкер %1$s",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "шалкер не %1$s",
|
|
||||||
"create.item_attributes.shulker_level.full": "полный",
|
|
||||||
"create.item_attributes.shulker_level.empty": "пустой",
|
|
||||||
"create.item_attributes.shulker_level.partial": "частично заполнен",
|
|
||||||
"create.item_attributes.has_enchant": "зачарован на %1$s",
|
"create.item_attributes.has_enchant": "зачарован на %1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "не зачарован на %1$s",
|
"create.item_attributes.has_enchant.inverted": "не зачарован на %1$s",
|
||||||
"create.item_attributes.color": "Покрашено в %1$s",
|
"create.item_attributes.color": "Покрашено в %1$s",
|
||||||
"create.item_attributes.color.inverted": "Не покрашено в %1$s",
|
"create.item_attributes.color.inverted": "Не покрашено в %1$s",
|
||||||
"create.item_attributes.max_enchanted": "Зачаровано за максимальный уровень",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "Не зачаровано за максимальный уровень",
|
|
||||||
"create.item_attributes.has_fluid": "содержит %1$s",
|
"create.item_attributes.has_fluid": "содержит %1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "не содержит %1$s",
|
"create.item_attributes.has_fluid.inverted": "не содержит %1$s",
|
||||||
"create.item_attributes.has_name": "имеет нестандартное имя %1$s",
|
"create.item_attributes.has_name": "имеет нестандартное имя %1$s",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "не копия второго порядка",
|
"create.item_attributes.book_copy_second.inverted": "не копия второго порядка",
|
||||||
"create.item_attributes.book_copy_tattered": "полный беспорядок",
|
"create.item_attributes.book_copy_tattered": "полный беспорядок",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "не полный беспорядок",
|
"create.item_attributes.book_copy_tattered.inverted": "не полный беспорядок",
|
||||||
"create.item_attributes.astralsorcery_crystal": "имеет характеристики кристалла %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "не имеет характеристики кристалла %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "настроено на %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "не настроено на %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "имеет характеристики перка %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "не имеет характеристики перка %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "исправляет %1$s",
|
"create.item_attributes.astralsorcery_amulet": "исправляет %1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "не исправляет %1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "не исправляет %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "настроено на %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "не настроено на %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "имеет характеристики кристалла %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "не имеет характеристики кристалла %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "имеет характеристики перка %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "не имеет характеристики перка %1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "Атрибуты не выбраны",
|
"create.gui.attribute_filter.no_selected_attributes": "Атрибуты не выбраны",
|
||||||
"create.gui.attribute_filter.selected_attributes": "Выбранные атрибуты:",
|
"create.gui.attribute_filter.selected_attributes": "Выбранные атрибуты:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 5",
|
"_": "Missing Localizations: 9",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "不可放置",
|
"create.item_attributes.placeable.inverted": "不可放置",
|
||||||
"create.item_attributes.consumable": "可食用",
|
"create.item_attributes.consumable": "可食用",
|
||||||
"create.item_attributes.consumable.inverted": "不可食用",
|
"create.item_attributes.consumable.inverted": "不可食用",
|
||||||
"create.item_attributes.smeltable": "可被熔炉烧制",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "不可被熔炉烧制",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "可被洗涤",
|
|
||||||
"create.item_attributes.washable.inverted": "不可被洗涤",
|
|
||||||
"create.item_attributes.smokable": "可被烟熏",
|
|
||||||
"create.item_attributes.smokable.inverted": "不可被烟熏",
|
|
||||||
"create.item_attributes.crushable": "可被粉碎",
|
|
||||||
"create.item_attributes.crushable.inverted": "不可被粉碎",
|
|
||||||
"create.item_attributes.blastable": "可被高炉冶炼",
|
|
||||||
"create.item_attributes.blastable.inverted": "不可被高炉冶炼",
|
|
||||||
"create.item_attributes.enchanted": "已被附魔",
|
"create.item_attributes.enchanted": "已被附魔",
|
||||||
"create.item_attributes.enchanted.inverted": "未被附魔",
|
"create.item_attributes.enchanted.inverted": "未被附魔",
|
||||||
|
"create.item_attributes.max_enchanted": "已达到最高附魔等级",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "并未达到最高附魔等级",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "已损坏",
|
"create.item_attributes.damaged": "已损坏",
|
||||||
"create.item_attributes.damaged.inverted": "未损坏",
|
"create.item_attributes.damaged.inverted": "未损坏",
|
||||||
"create.item_attributes.badly_damaged": "严重受损",
|
"create.item_attributes.badly_damaged": "严重受损",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "不可装备",
|
"create.item_attributes.equipable.inverted": "不可装备",
|
||||||
"create.item_attributes.furnace_fuel": "可作为燃料",
|
"create.item_attributes.furnace_fuel": "可作为燃料",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "不可作为燃料",
|
"create.item_attributes.furnace_fuel.inverted": "不可作为燃料",
|
||||||
|
"create.item_attributes.washable": "可被洗涤",
|
||||||
|
"create.item_attributes.washable.inverted": "不可被洗涤",
|
||||||
|
"create.item_attributes.crushable": "可被粉碎",
|
||||||
|
"create.item_attributes.crushable.inverted": "不可被粉碎",
|
||||||
|
"create.item_attributes.smeltable": "可被熔炉烧制",
|
||||||
|
"create.item_attributes.smeltable.inverted": "不可被熔炉烧制",
|
||||||
|
"create.item_attributes.smokable": "可被烟熏",
|
||||||
|
"create.item_attributes.smokable.inverted": "不可被烟熏",
|
||||||
|
"create.item_attributes.blastable": "可被高炉冶炼",
|
||||||
|
"create.item_attributes.blastable.inverted": "不可被高炉冶炼",
|
||||||
|
"create.item_attributes.shulker_level": "潜影盒是%1$s的",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "潜影盒不是%1$s的",
|
||||||
|
"create.item_attributes.shulker_level.full": "满",
|
||||||
|
"create.item_attributes.shulker_level.empty": "空",
|
||||||
|
"create.item_attributes.shulker_level.partial": "部分填充",
|
||||||
"create.item_attributes.in_tag": "标签是%1$s",
|
"create.item_attributes.in_tag": "标签是%1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "标签不是%1$s",
|
"create.item_attributes.in_tag.inverted": "标签不是%1$s",
|
||||||
"create.item_attributes.in_item_group": "属于%1$s",
|
"create.item_attributes.in_item_group": "属于%1$s",
|
||||||
"create.item_attributes.in_item_group.inverted": "不属于%1$s",
|
"create.item_attributes.in_item_group.inverted": "不属于%1$s",
|
||||||
"create.item_attributes.added_by": "由%1$s添加",
|
"create.item_attributes.added_by": "由%1$s添加",
|
||||||
"create.item_attributes.added_by.inverted": "不由%1$s添加",
|
"create.item_attributes.added_by.inverted": "不由%1$s添加",
|
||||||
"create.item_attributes.shulker_level": "潜影盒是%1$s的",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "潜影盒不是%1$s的",
|
|
||||||
"create.item_attributes.shulker_level.full": "满",
|
|
||||||
"create.item_attributes.shulker_level.empty": "空",
|
|
||||||
"create.item_attributes.shulker_level.partial": "部分填充",
|
|
||||||
"create.item_attributes.has_enchant": "有附魔效果%1$s",
|
"create.item_attributes.has_enchant": "有附魔效果%1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "没有附魔效果%1$s",
|
"create.item_attributes.has_enchant.inverted": "没有附魔效果%1$s",
|
||||||
"create.item_attributes.color": "染色为%1$s",
|
"create.item_attributes.color": "染色为%1$s",
|
||||||
"create.item_attributes.color.inverted": "未被染成%1$s",
|
"create.item_attributes.color.inverted": "未被染成%1$s",
|
||||||
"create.item_attributes.max_enchanted": "已达到最高附魔等级",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "并未达到最高附魔等级",
|
|
||||||
"create.item_attributes.has_fluid": "含有%1$s",
|
"create.item_attributes.has_fluid": "含有%1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "不含有%1$s",
|
"create.item_attributes.has_fluid.inverted": "不含有%1$s",
|
||||||
"create.item_attributes.has_name": "有自定义名称%1$s",
|
"create.item_attributes.has_name": "有自定义名称%1$s",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "不是第二代拷贝",
|
"create.item_attributes.book_copy_second.inverted": "不是第二代拷贝",
|
||||||
"create.item_attributes.book_copy_tattered": "拷贝次数已不可查",
|
"create.item_attributes.book_copy_tattered": "拷贝次数已不可查",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "不是拷贝次数已不可查",
|
"create.item_attributes.book_copy_tattered.inverted": "不是拷贝次数已不可查",
|
||||||
"create.item_attributes.astralsorcery_crystal": "有水晶石属性%1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "没有水晶石属性%1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "与%1$s共鸣",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "不与%1$s共鸣",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "带有有星能力属性%1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "不带有星能力属性%1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "璀璨棱镜增强%1$s",
|
"create.item_attributes.astralsorcery_amulet": "璀璨棱镜增强%1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "璀璨棱镜未增强%1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "璀璨棱镜未增强%1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "与%1$s共鸣",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "不与%1$s共鸣",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "有水晶石属性%1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "没有水晶石属性%1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "带有有星能力属性%1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "不带有星能力属性%1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "未选择任何属性",
|
"create.gui.attribute_filter.no_selected_attributes": "未选择任何属性",
|
||||||
"create.gui.attribute_filter.selected_attributes": "已选择的属性:",
|
"create.gui.attribute_filter.selected_attributes": "已选择的属性:",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 20",
|
"_": "Missing Localizations: 24",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1038,18 +1038,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "不可放置",
|
"create.item_attributes.placeable.inverted": "不可放置",
|
||||||
"create.item_attributes.consumable": "可食用",
|
"create.item_attributes.consumable": "可食用",
|
||||||
"create.item_attributes.consumable.inverted": "不可食用",
|
"create.item_attributes.consumable.inverted": "不可食用",
|
||||||
"create.item_attributes.smeltable": "可被熔爐融煉",
|
"create.item_attributes.fluid_container": "UNLOCALIZED: can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "不可被熔爐融煉",
|
"create.item_attributes.fluid_container.inverted": "UNLOCALIZED: cannot store fluids",
|
||||||
"create.item_attributes.washable": "可被篩洗",
|
|
||||||
"create.item_attributes.washable.inverted": "不可被篩洗",
|
|
||||||
"create.item_attributes.smokable": "可被煙熏",
|
|
||||||
"create.item_attributes.smokable.inverted": "不可被煙熏",
|
|
||||||
"create.item_attributes.crushable": "可被粉碎",
|
|
||||||
"create.item_attributes.crushable.inverted": "不可被粉碎",
|
|
||||||
"create.item_attributes.blastable": "可被高爐融煉",
|
|
||||||
"create.item_attributes.blastable.inverted": "不可被高爐融煉",
|
|
||||||
"create.item_attributes.enchanted": "已被附魔",
|
"create.item_attributes.enchanted": "已被附魔",
|
||||||
"create.item_attributes.enchanted.inverted": "未被附魔",
|
"create.item_attributes.enchanted.inverted": "未被附魔",
|
||||||
|
"create.item_attributes.max_enchanted": "已達到最高附魔等級",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "未達到最高附魔等級",
|
||||||
|
"create.item_attributes.renamed": "UNLOCALIZED: has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "UNLOCALIZED: does not have a custom name",
|
||||||
"create.item_attributes.damaged": "已損壞",
|
"create.item_attributes.damaged": "已損壞",
|
||||||
"create.item_attributes.damaged.inverted": "未損壞",
|
"create.item_attributes.damaged.inverted": "未損壞",
|
||||||
"create.item_attributes.badly_damaged": "嚴重受損",
|
"create.item_attributes.badly_damaged": "嚴重受損",
|
||||||
|
@ -1060,23 +1056,31 @@
|
||||||
"create.item_attributes.equipable.inverted": "不可裝備",
|
"create.item_attributes.equipable.inverted": "不可裝備",
|
||||||
"create.item_attributes.furnace_fuel": "是燃料",
|
"create.item_attributes.furnace_fuel": "是燃料",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "不是燃料",
|
"create.item_attributes.furnace_fuel.inverted": "不是燃料",
|
||||||
|
"create.item_attributes.washable": "可被篩洗",
|
||||||
|
"create.item_attributes.washable.inverted": "不可被篩洗",
|
||||||
|
"create.item_attributes.crushable": "可被粉碎",
|
||||||
|
"create.item_attributes.crushable.inverted": "不可被粉碎",
|
||||||
|
"create.item_attributes.smeltable": "可被熔爐融煉",
|
||||||
|
"create.item_attributes.smeltable.inverted": "不可被熔爐融煉",
|
||||||
|
"create.item_attributes.smokable": "可被煙熏",
|
||||||
|
"create.item_attributes.smokable.inverted": "不可被煙熏",
|
||||||
|
"create.item_attributes.blastable": "可被高爐融煉",
|
||||||
|
"create.item_attributes.blastable.inverted": "不可被高爐融煉",
|
||||||
|
"create.item_attributes.shulker_level": "界伏盒是 %1$s",
|
||||||
|
"create.item_attributes.shulker_level.inverted": "界伏盒不是 %1$s",
|
||||||
|
"create.item_attributes.shulker_level.full": "滿的",
|
||||||
|
"create.item_attributes.shulker_level.empty": "空的",
|
||||||
|
"create.item_attributes.shulker_level.partial": "有裝東西但沒滿",
|
||||||
"create.item_attributes.in_tag": "標籤是%1$s",
|
"create.item_attributes.in_tag": "標籤是%1$s",
|
||||||
"create.item_attributes.in_tag.inverted": "標籤不是%1$s",
|
"create.item_attributes.in_tag.inverted": "標籤不是%1$s",
|
||||||
"create.item_attributes.in_item_group": "屬於%1$s",
|
"create.item_attributes.in_item_group": "屬於%1$s",
|
||||||
"create.item_attributes.in_item_group.inverted": "不屬於%1$s",
|
"create.item_attributes.in_item_group.inverted": "不屬於%1$s",
|
||||||
"create.item_attributes.added_by": "由%1$s添加",
|
"create.item_attributes.added_by": "由%1$s添加",
|
||||||
"create.item_attributes.added_by.inverted": "不是由%1$s添加",
|
"create.item_attributes.added_by.inverted": "不是由%1$s添加",
|
||||||
"create.item_attributes.shulker_level": "界伏盒是 %1$s",
|
|
||||||
"create.item_attributes.shulker_level.inverted": "界伏盒不是 %1$s",
|
|
||||||
"create.item_attributes.shulker_level.full": "滿的",
|
|
||||||
"create.item_attributes.shulker_level.empty": "空的",
|
|
||||||
"create.item_attributes.shulker_level.partial": "有裝東西但沒滿",
|
|
||||||
"create.item_attributes.has_enchant": "有附魔效果%1$s",
|
"create.item_attributes.has_enchant": "有附魔效果%1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "沒有附魔效果%1$s",
|
"create.item_attributes.has_enchant.inverted": "沒有附魔效果%1$s",
|
||||||
"create.item_attributes.color": "已被染色成 %1$s",
|
"create.item_attributes.color": "已被染色成 %1$s",
|
||||||
"create.item_attributes.color.inverted": "未被染色成 %1$s",
|
"create.item_attributes.color.inverted": "未被染色成 %1$s",
|
||||||
"create.item_attributes.max_enchanted": "已達到最高附魔等級",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "未達到最高附魔等級",
|
|
||||||
"create.item_attributes.has_fluid": "包含%1$s",
|
"create.item_attributes.has_fluid": "包含%1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "不包含%1$s",
|
"create.item_attributes.has_fluid.inverted": "不包含%1$s",
|
||||||
"create.item_attributes.has_name": "有自定義名稱%1$s",
|
"create.item_attributes.has_name": "有自定義名稱%1$s",
|
||||||
|
@ -1091,14 +1095,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "不是第二份複製",
|
"create.item_attributes.book_copy_second.inverted": "不是第二份複製",
|
||||||
"create.item_attributes.book_copy_tattered": "是第三份複製",
|
"create.item_attributes.book_copy_tattered": "是第三份複製",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "不是第三份複製",
|
"create.item_attributes.book_copy_tattered.inverted": "不是第三份複製",
|
||||||
"create.item_attributes.astralsorcery_crystal": "具有晶體屬性%1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "不具有晶體屬性%1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "與%1$s調諧",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "未與%1$s調諧",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "具有特殊屬性%1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "不具有特殊屬性%1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "提升%1$s",
|
"create.item_attributes.astralsorcery_amulet": "提升%1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "不提升%1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "不提升%1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "與%1$s調諧",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "未與%1$s調諧",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "具有晶體屬性%1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "不具有晶體屬性%1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "具有特殊屬性%1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "不具有特殊屬性%1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "沒有標記任何屬性",
|
"create.gui.attribute_filter.no_selected_attributes": "沒有標記任何屬性",
|
||||||
"create.gui.attribute_filter.selected_attributes": "已選擇的屬性:",
|
"create.gui.attribute_filter.selected_attributes": "已選擇的屬性:",
|
||||||
|
|
|
@ -28,8 +28,8 @@
|
||||||
"trigger": "create:bracket_apply",
|
"trigger": "create:bracket_apply",
|
||||||
"conditions": {
|
"conditions": {
|
||||||
"accepted_entries": [
|
"accepted_entries": [
|
||||||
"create:cogwheel",
|
"create:large_cogwheel",
|
||||||
"create:large_cogwheel"
|
"create:cogwheel"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -5,10 +5,10 @@
|
||||||
"create:polished_limestone",
|
"create:polished_limestone",
|
||||||
"create:weathered_limestone",
|
"create:weathered_limestone",
|
||||||
"create:polished_weathered_limestone",
|
"create:polished_weathered_limestone",
|
||||||
"create:gabbro",
|
|
||||||
"create:polished_gabbro",
|
|
||||||
"create:dolomite",
|
"create:dolomite",
|
||||||
"create:polished_dolomite",
|
"create:polished_dolomite",
|
||||||
|
"create:gabbro",
|
||||||
|
"create:polished_gabbro",
|
||||||
"create:scoria",
|
"create:scoria",
|
||||||
"create:polished_scoria",
|
"create:polished_scoria",
|
||||||
"create:dark_scoria",
|
"create:dark_scoria",
|
|
@ -3,8 +3,8 @@
|
||||||
"values": [
|
"values": [
|
||||||
"create:limestone",
|
"create:limestone",
|
||||||
"create:weathered_limestone",
|
"create:weathered_limestone",
|
||||||
"create:gabbro",
|
|
||||||
"create:dolomite",
|
"create:dolomite",
|
||||||
|
"create:gabbro",
|
||||||
"create:natural_scoria"
|
"create:natural_scoria"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -5,10 +5,10 @@
|
||||||
"create:polished_limestone",
|
"create:polished_limestone",
|
||||||
"create:weathered_limestone",
|
"create:weathered_limestone",
|
||||||
"create:polished_weathered_limestone",
|
"create:polished_weathered_limestone",
|
||||||
"create:gabbro",
|
|
||||||
"create:polished_gabbro",
|
|
||||||
"create:dolomite",
|
"create:dolomite",
|
||||||
"create:polished_dolomite",
|
"create:polished_dolomite",
|
||||||
|
"create:gabbro",
|
||||||
|
"create:polished_gabbro",
|
||||||
"create:scoria",
|
"create:scoria",
|
||||||
"create:polished_scoria",
|
"create:polished_scoria",
|
||||||
"create:dark_scoria",
|
"create:dark_scoria",
|
|
@ -46,6 +46,9 @@ public class AllFluids {
|
||||||
.slopeFindDistance(3)
|
.slopeFindDistance(3)
|
||||||
.explosionResistance(100f))
|
.explosionResistance(100f))
|
||||||
.tag(AllFluidTags.HONEY.tag)
|
.tag(AllFluidTags.HONEY.tag)
|
||||||
|
.bucket()
|
||||||
|
.tag(AllTags.forgeItemTag("buckets/honey"))
|
||||||
|
.build()
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
public static final FluidEntry<ForgeFlowingFluid.Flowing> CHOCOLATE =
|
public static final FluidEntry<ForgeFlowingFluid.Flowing> CHOCOLATE =
|
||||||
|
|
|
@ -7,7 +7,6 @@ import static com.simibubi.create.AllTags.NameSpace.TIC;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.data.CreateRegistrate;
|
import com.simibubi.create.foundation.data.CreateRegistrate;
|
||||||
import com.simibubi.create.foundation.utility.EmptyNamedTag;
|
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
import com.tterrag.registrate.builders.BlockBuilder;
|
import com.tterrag.registrate.builders.BlockBuilder;
|
||||||
import com.tterrag.registrate.builders.ItemBuilder;
|
import com.tterrag.registrate.builders.ItemBuilder;
|
||||||
|
@ -28,51 +27,60 @@ import net.minecraft.tags.ITag;
|
||||||
import net.minecraft.tags.ItemTags;
|
import net.minecraft.tags.ItemTags;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
import net.minecraftforge.common.Tags;
|
import net.minecraftforge.common.Tags;
|
||||||
import net.minecraftforge.fml.ModList;
|
|
||||||
|
|
||||||
public class AllTags {
|
public class AllTags {
|
||||||
|
|
||||||
private static final CreateRegistrate REGISTRATE = Create.registrate()
|
private static final CreateRegistrate REGISTRATE = Create.registrate()
|
||||||
.itemGroup(() -> Create.BASE_CREATIVE_TAB);
|
.itemGroup(() -> Create.BASE_CREATIVE_TAB);
|
||||||
|
|
||||||
|
public static <T> ITag.INamedTag<T> tag(Function<ResourceLocation, ITag.INamedTag<T>> wrapperFactory, String namespace,
|
||||||
|
String path) {
|
||||||
|
return wrapperFactory.apply(new ResourceLocation(namespace, path));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> ITag.INamedTag<T> forgeTag(Function<ResourceLocation, ITag.INamedTag<T>> wrapperFactory, String path) {
|
||||||
|
return tag(wrapperFactory, "forge", path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ITag.INamedTag<Block> forgeBlockTag(String path) {
|
||||||
|
return forgeTag(BlockTags::createOptional, path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ITag.INamedTag<Item> forgeItemTag(String path) {
|
||||||
|
return forgeTag(ItemTags::createOptional, path);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ITag.INamedTag<Fluid> forgeFluidTag(String path) {
|
||||||
|
return forgeTag(FluidTags::createOptional, path);
|
||||||
|
}
|
||||||
|
|
||||||
public static <T extends Block, P> NonNullFunction<BlockBuilder<T, P>, ItemBuilder<BlockItem, BlockBuilder<T, P>>> tagBlockAndItem(
|
public static <T extends Block, P> NonNullFunction<BlockBuilder<T, P>, ItemBuilder<BlockItem, BlockBuilder<T, P>>> tagBlockAndItem(
|
||||||
String tagName) {
|
String path) {
|
||||||
return b -> b.tag(forgeBlockTag(tagName))
|
return b -> b.tag(forgeBlockTag(path))
|
||||||
.item()
|
.item()
|
||||||
.tag(forgeItemTag(tagName));
|
.tag(forgeItemTag(path));
|
||||||
}
|
|
||||||
|
|
||||||
public static ITag.INamedTag<Block> forgeBlockTag(String name) {
|
|
||||||
return forgeTag(BlockTags::bind, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ITag.INamedTag<Item> forgeItemTag(String name) {
|
|
||||||
return forgeTag(ItemTags::bind, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ITag.INamedTag<Fluid> forgeFluidTag(String name) {
|
|
||||||
return forgeTag(FluidTags::bind, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static <T> ITag.INamedTag<T> forgeTag(Function<String, ITag.INamedTag<T>> wrapperFactory, String name) {
|
|
||||||
return tag(wrapperFactory, "forge", name);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static <T> ITag.INamedTag<T> tag(Function<String, ITag.INamedTag<T>> wrapperFactory, String domain,
|
|
||||||
String name) {
|
|
||||||
return wrapperFactory.apply(new ResourceLocation(domain, name).toString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum NameSpace {
|
public enum NameSpace {
|
||||||
|
|
||||||
MOD(Create.ID), FORGE("forge"), TIC("tconstruct")
|
MOD(Create.ID, false, true),
|
||||||
|
FORGE("forge"),
|
||||||
|
TIC("tconstruct")
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
public final String id;
|
public final String id;
|
||||||
|
public final boolean optionalDefault;
|
||||||
|
public final boolean alwaysDatagenDefault;
|
||||||
|
|
||||||
private NameSpace(String id) {
|
NameSpace(String id) {
|
||||||
|
this(id, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
NameSpace(String id, boolean optionalDefault, boolean alwaysDatagenDefault) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
this.optionalDefault = optionalDefault;
|
||||||
|
this.alwaysDatagenDefault = alwaysDatagenDefault;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -90,37 +98,50 @@ public class AllTags {
|
||||||
WINDOWABLE,
|
WINDOWABLE,
|
||||||
WRENCH_PICKUP,
|
WRENCH_PICKUP,
|
||||||
|
|
||||||
|
WG_STONE(FORGE),
|
||||||
|
|
||||||
SLIMY_LOGS(TIC),
|
SLIMY_LOGS(TIC),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
public final ITag.INamedTag<Block> tag;
|
public final ITag.INamedTag<Block> tag;
|
||||||
|
|
||||||
private AllBlockTags() {
|
AllBlockTags() {
|
||||||
this(MOD, "");
|
this(MOD);
|
||||||
}
|
}
|
||||||
|
|
||||||
private AllBlockTags(NameSpace namespace) {
|
AllBlockTags(NameSpace namespace) {
|
||||||
this(namespace, "");
|
this(namespace, namespace.optionalDefault, namespace.alwaysDatagenDefault);
|
||||||
}
|
}
|
||||||
|
|
||||||
private AllBlockTags(NameSpace namespace, String path) {
|
AllBlockTags(NameSpace namespace, String path) {
|
||||||
ResourceLocation id =
|
this(namespace, path, namespace.optionalDefault, namespace.alwaysDatagenDefault);
|
||||||
new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name()));
|
}
|
||||||
if (ModList.get()
|
|
||||||
.isLoaded(namespace.id)) {
|
AllBlockTags(NameSpace namespace, boolean optional, boolean alwaysDatagen) {
|
||||||
tag = BlockTags.bind(id.toString());
|
this(namespace, null, optional, alwaysDatagen);
|
||||||
REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(tag));
|
}
|
||||||
|
|
||||||
|
AllBlockTags(NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) {
|
||||||
|
ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path);
|
||||||
|
if (optional) {
|
||||||
|
tag = BlockTags.createOptional(id);
|
||||||
} else {
|
} else {
|
||||||
tag = new EmptyNamedTag<>(id);
|
tag = BlockTags.bind(id.toString());
|
||||||
|
}
|
||||||
|
if (alwaysDatagen) {
|
||||||
|
REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(tag));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean matches(Block block) {
|
||||||
public boolean matches(BlockState block) {
|
|
||||||
return tag.contains(block.getBlock());
|
return tag.contains(block.getBlock());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean matches(BlockState state) {
|
||||||
|
return matches(state.getBlock());
|
||||||
|
}
|
||||||
|
|
||||||
public void add(Block... values) {
|
public void add(Block... values) {
|
||||||
REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(tag)
|
REGISTRATE.addDataGenerator(ProviderType.BLOCK_TAGS, prov -> prov.tag(tag)
|
||||||
.add(values));
|
.add(values));
|
||||||
|
@ -144,12 +165,12 @@ public class AllTags {
|
||||||
|
|
||||||
public enum AllItemTags {
|
public enum AllItemTags {
|
||||||
|
|
||||||
CREATE_INGOTS(),
|
CREATE_INGOTS,
|
||||||
CRUSHED_ORES(),
|
CRUSHED_ORES,
|
||||||
SANDPAPER(),
|
SANDPAPER,
|
||||||
SEATS(),
|
SEATS,
|
||||||
UPRIGHT_ON_BELT(),
|
UPRIGHT_ON_BELT,
|
||||||
VALVE_HANDLES(),
|
VALVE_HANDLES,
|
||||||
|
|
||||||
BEACON_PAYMENT(FORGE),
|
BEACON_PAYMENT(FORGE),
|
||||||
PLATES(FORGE)
|
PLATES(FORGE)
|
||||||
|
@ -158,19 +179,33 @@ public class AllTags {
|
||||||
|
|
||||||
public final ITag.INamedTag<Item> tag;
|
public final ITag.INamedTag<Item> tag;
|
||||||
|
|
||||||
private AllItemTags() {
|
AllItemTags() {
|
||||||
this(MOD, "");
|
this(MOD);
|
||||||
}
|
}
|
||||||
|
|
||||||
private AllItemTags(NameSpace namespace) {
|
AllItemTags(NameSpace namespace) {
|
||||||
this(namespace, "");
|
this(namespace, namespace.optionalDefault, namespace.alwaysDatagenDefault);
|
||||||
}
|
}
|
||||||
|
|
||||||
private AllItemTags(NameSpace namespace, String path) {
|
AllItemTags(NameSpace namespace, String path) {
|
||||||
tag = ItemTags.bind(
|
this(namespace, path, namespace.optionalDefault, namespace.alwaysDatagenDefault);
|
||||||
new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name())).toString());
|
}
|
||||||
|
|
||||||
|
AllItemTags(NameSpace namespace, boolean optional, boolean alwaysDatagen) {
|
||||||
|
this(namespace, null, optional, alwaysDatagen);
|
||||||
|
}
|
||||||
|
|
||||||
|
AllItemTags(NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) {
|
||||||
|
ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path);
|
||||||
|
if (optional) {
|
||||||
|
tag = ItemTags.createOptional(id);
|
||||||
|
} else {
|
||||||
|
tag = ItemTags.bind(id.toString());
|
||||||
|
}
|
||||||
|
if (alwaysDatagen) {
|
||||||
REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(tag));
|
REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(tag));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public boolean matches(ItemStack stack) {
|
public boolean matches(ItemStack stack) {
|
||||||
return tag.contains(stack.getItem());
|
return tag.contains(stack.getItem());
|
||||||
|
@ -190,11 +225,16 @@ public class AllTags {
|
||||||
includeIn(parent.tag);
|
includeIn(parent.tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void includeAll(ITag.INamedTag<Item> child) {
|
||||||
|
REGISTRATE.addDataGenerator(ProviderType.ITEM_TAGS, prov -> prov.tag(tag)
|
||||||
|
.addTag(child));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum AllFluidTags {
|
public enum AllFluidTags {
|
||||||
|
|
||||||
NO_INFINITE_DRAINING,
|
NO_INFINITE_DRAINING(MOD, true, false),
|
||||||
|
|
||||||
HONEY(FORGE)
|
HONEY(FORGE)
|
||||||
|
|
||||||
|
@ -202,28 +242,64 @@ public class AllTags {
|
||||||
|
|
||||||
public final ITag.INamedTag<Fluid> tag;
|
public final ITag.INamedTag<Fluid> tag;
|
||||||
|
|
||||||
private AllFluidTags() {
|
AllFluidTags() {
|
||||||
this(MOD, "");
|
this(MOD);
|
||||||
}
|
}
|
||||||
|
|
||||||
private AllFluidTags(NameSpace namespace) {
|
AllFluidTags(NameSpace namespace) {
|
||||||
this(namespace, "");
|
this(namespace, namespace.optionalDefault, namespace.alwaysDatagenDefault);
|
||||||
}
|
}
|
||||||
|
|
||||||
private AllFluidTags(NameSpace namespace, String path) {
|
AllFluidTags(NameSpace namespace, String path) {
|
||||||
tag = FluidTags.createOptional(
|
this(namespace, path, namespace.optionalDefault, namespace.alwaysDatagenDefault);
|
||||||
new ResourceLocation(namespace.id, (path.isEmpty() ? "" : path + "/") + Lang.asId(name())));
|
}
|
||||||
|
|
||||||
|
AllFluidTags(NameSpace namespace, boolean optional, boolean alwaysDatagen) {
|
||||||
|
this(namespace, null, optional, alwaysDatagen);
|
||||||
|
}
|
||||||
|
|
||||||
|
AllFluidTags(NameSpace namespace, String path, boolean optional, boolean alwaysDatagen) {
|
||||||
|
ResourceLocation id = new ResourceLocation(namespace.id, path == null ? Lang.asId(name()) : path);
|
||||||
|
if (optional) {
|
||||||
|
tag = FluidTags.createOptional(id);
|
||||||
|
} else {
|
||||||
|
tag = FluidTags.bind(id.toString());
|
||||||
|
}
|
||||||
|
if (alwaysDatagen) {
|
||||||
|
REGISTRATE.addDataGenerator(ProviderType.FLUID_TAGS, prov -> prov.tag(tag));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean matches(Fluid fluid) {
|
public boolean matches(Fluid fluid) {
|
||||||
return fluid != null && fluid.is(tag);
|
return fluid != null && fluid.is(tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void add(Fluid... values) {
|
||||||
|
REGISTRATE.addDataGenerator(ProviderType.FLUID_TAGS, prov -> prov.tag(tag)
|
||||||
|
.add(values));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void includeIn(ITag.INamedTag<Fluid> parent) {
|
||||||
|
REGISTRATE.addDataGenerator(ProviderType.FLUID_TAGS, prov -> prov.tag(parent)
|
||||||
|
.addTag(tag));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void includeIn(AllFluidTags parent) {
|
||||||
|
includeIn(parent.tag);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void includeAll(ITag.INamedTag<Fluid> child) {
|
||||||
|
REGISTRATE.addDataGenerator(ProviderType.FLUID_TAGS, prov -> prov.tag(tag)
|
||||||
|
.addTag(child));
|
||||||
|
}
|
||||||
|
|
||||||
private static void loadClass() {}
|
private static void loadClass() {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void register() {
|
public static void register() {
|
||||||
|
AllFluidTags.loadClass();
|
||||||
|
|
||||||
AllItemTags.CREATE_INGOTS.includeIn(AllItemTags.BEACON_PAYMENT);
|
AllItemTags.CREATE_INGOTS.includeIn(AllItemTags.BEACON_PAYMENT);
|
||||||
AllItemTags.CREATE_INGOTS.includeIn(Tags.Items.INGOTS);
|
AllItemTags.CREATE_INGOTS.includeIn(Tags.Items.INGOTS);
|
||||||
|
|
||||||
|
@ -249,8 +325,6 @@ public class AllTags {
|
||||||
AllBlockTags.WRENCH_PICKUP.add(Blocks.REDSTONE_WIRE, Blocks.REDSTONE_TORCH, Blocks.REPEATER, Blocks.LEVER,
|
AllBlockTags.WRENCH_PICKUP.add(Blocks.REDSTONE_WIRE, Blocks.REDSTONE_TORCH, Blocks.REPEATER, Blocks.LEVER,
|
||||||
Blocks.COMPARATOR, Blocks.OBSERVER, Blocks.REDSTONE_WALL_TORCH, Blocks.PISTON, Blocks.STICKY_PISTON,
|
Blocks.COMPARATOR, Blocks.OBSERVER, Blocks.REDSTONE_WALL_TORCH, Blocks.PISTON, Blocks.STICKY_PISTON,
|
||||||
Blocks.TRIPWIRE, Blocks.TRIPWIRE_HOOK, Blocks.DAYLIGHT_DETECTOR, Blocks.TARGET);
|
Blocks.TRIPWIRE, Blocks.TRIPWIRE_HOOK, Blocks.DAYLIGHT_DETECTOR, Blocks.TARGET);
|
||||||
|
|
||||||
AllFluidTags.loadClass();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
package com.simibubi.create.content.curiosities.symmetry;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import com.simibubi.create.content.curiosities.symmetry.mirror.SymmetryMirror;
|
||||||
|
import com.simibubi.create.foundation.networking.SimplePacketBase;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraftforge.fml.network.NetworkEvent.Context;
|
||||||
|
|
||||||
|
public class ConfigureSymmetryWandPacket extends SimplePacketBase {
|
||||||
|
|
||||||
|
protected Hand hand;
|
||||||
|
protected SymmetryMirror mirror;
|
||||||
|
|
||||||
|
public ConfigureSymmetryWandPacket(Hand hand, SymmetryMirror mirror) {
|
||||||
|
this.hand = hand;
|
||||||
|
this.mirror = mirror;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConfigureSymmetryWandPacket(PacketBuffer buffer) {
|
||||||
|
hand = buffer.readEnum(Hand.class);
|
||||||
|
mirror = SymmetryMirror.fromNBT(buffer.readNbt());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(PacketBuffer buffer) {
|
||||||
|
buffer.writeEnum(hand);
|
||||||
|
buffer.writeNbt(mirror.writeToNbt());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(Supplier<Context> context) {
|
||||||
|
context.get().enqueueWork(() -> {
|
||||||
|
ServerPlayerEntity player = context.get().getSender();
|
||||||
|
if (player == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ItemStack stack = player.getItemInHand(hand);
|
||||||
|
if (stack.getItem() instanceof SymmetryWandItem) {
|
||||||
|
SymmetryWandItem.configureSettings(stack, mirror);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
context.get().setPacketHandled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -181,10 +181,15 @@ public class SymmetryWandItem extends Item {
|
||||||
|
|
||||||
public static SymmetryMirror getMirror(ItemStack stack) {
|
public static SymmetryMirror getMirror(ItemStack stack) {
|
||||||
checkNBT(stack);
|
checkNBT(stack);
|
||||||
return SymmetryMirror.fromNBT((CompoundNBT) stack.getTag()
|
return SymmetryMirror.fromNBT(stack.getTag()
|
||||||
.getCompound(SYMMETRY));
|
.getCompound(SYMMETRY));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void configureSettings(ItemStack stack, SymmetryMirror mirror) {
|
||||||
|
checkNBT(stack);
|
||||||
|
stack.getTag().put(SYMMETRY, mirror.writeToNbt());
|
||||||
|
}
|
||||||
|
|
||||||
public static void apply(World world, ItemStack wand, PlayerEntity player, BlockPos pos, BlockState block) {
|
public static void apply(World world, ItemStack wand, PlayerEntity player, BlockPos pos, BlockState block) {
|
||||||
checkNBT(wand);
|
checkNBT(wand);
|
||||||
if (!isEnabled(wand))
|
if (!isEnabled(wand))
|
||||||
|
|
|
@ -15,17 +15,14 @@ import com.simibubi.create.foundation.gui.widgets.Label;
|
||||||
import com.simibubi.create.foundation.gui.widgets.ScrollInput;
|
import com.simibubi.create.foundation.gui.widgets.ScrollInput;
|
||||||
import com.simibubi.create.foundation.gui.widgets.SelectionScrollInput;
|
import com.simibubi.create.foundation.gui.widgets.SelectionScrollInput;
|
||||||
import com.simibubi.create.foundation.networking.AllPackets;
|
import com.simibubi.create.foundation.networking.AllPackets;
|
||||||
import com.simibubi.create.foundation.networking.NbtPacket;
|
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
|
||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.math.vector.Vector3d;
|
import net.minecraft.util.math.vector.Vector3d;
|
||||||
import net.minecraft.util.math.vector.Vector3f;
|
import net.minecraft.util.math.vector.Vector3f;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import net.minecraft.util.text.StringTextComponent;
|
import net.minecraft.util.text.StringTextComponent;
|
||||||
import net.minecraftforge.fml.network.PacketDistributor;
|
|
||||||
|
|
||||||
public class SymmetryWandScreen extends AbstractSimiScreen {
|
public class SymmetryWandScreen extends AbstractSimiScreen {
|
||||||
|
|
||||||
|
@ -45,8 +42,6 @@ public class SymmetryWandScreen extends AbstractSimiScreen {
|
||||||
private Hand hand;
|
private Hand hand;
|
||||||
|
|
||||||
public SymmetryWandScreen(ItemStack wand, Hand hand) {
|
public SymmetryWandScreen(ItemStack wand, Hand hand) {
|
||||||
super();
|
|
||||||
|
|
||||||
background = AllGuiTextures.WAND_OF_SYMMETRY;
|
background = AllGuiTextures.WAND_OF_SYMMETRY;
|
||||||
|
|
||||||
currentElement = SymmetryWandItem.getMirror(wand);
|
currentElement = SymmetryWandItem.getMirror(wand);
|
||||||
|
@ -150,19 +145,14 @@ public class SymmetryWandScreen extends AbstractSimiScreen {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removed() {
|
public void removed() {
|
||||||
ItemStack heldItem = minecraft.player.getItemInHand(hand);
|
SymmetryWandItem.configureSettings(wand, currentElement);
|
||||||
CompoundNBT compound = heldItem.getTag();
|
AllPackets.channel.sendToServer(new ConfigureSymmetryWandPacket(hand, currentElement));
|
||||||
compound.put(SymmetryWandItem.SYMMETRY, currentElement.writeToNbt());
|
|
||||||
heldItem.setTag(compound);
|
|
||||||
AllPackets.channel.send(PacketDistributor.SERVER.noArg(), new NbtPacket(heldItem, hand));
|
|
||||||
minecraft.player.setItemInHand(hand, heldItem);
|
|
||||||
super.removed();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean mouseClicked(double x, double y, int button) {
|
public boolean mouseClicked(double x, double y, int button) {
|
||||||
if (confirmButton.isHovered()) {
|
if (confirmButton.isHovered()) {
|
||||||
minecraft.player.closeContainer();
|
onClose();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,51 @@
|
||||||
|
package com.simibubi.create.content.curiosities.zapper;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import com.simibubi.create.foundation.networking.SimplePacketBase;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.ServerPlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
import net.minecraftforge.fml.network.NetworkEvent.Context;
|
||||||
|
|
||||||
|
public abstract class ConfigureZapperPacket extends SimplePacketBase {
|
||||||
|
|
||||||
|
protected Hand hand;
|
||||||
|
protected PlacementPatterns pattern;
|
||||||
|
|
||||||
|
public ConfigureZapperPacket(Hand hand, PlacementPatterns pattern) {
|
||||||
|
this.hand = hand;
|
||||||
|
this.pattern = pattern;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConfigureZapperPacket(PacketBuffer buffer) {
|
||||||
|
hand = buffer.readEnum(Hand.class);
|
||||||
|
pattern = buffer.readEnum(PlacementPatterns.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(PacketBuffer buffer) {
|
||||||
|
buffer.writeEnum(hand);
|
||||||
|
buffer.writeEnum(pattern);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handle(Supplier<Context> context) {
|
||||||
|
context.get().enqueueWork(() -> {
|
||||||
|
ServerPlayerEntity player = context.get().getSender();
|
||||||
|
if (player == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ItemStack stack = player.getItemInHand(hand);
|
||||||
|
if (stack.getItem() instanceof ZapperItem) {
|
||||||
|
configureZapper(stack);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
context.get().setPacketHandled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void configureZapper(ItemStack stack);
|
||||||
|
|
||||||
|
}
|
|
@ -21,8 +21,8 @@ public enum PlacementPatterns {
|
||||||
Chance50(AllIcons.I_PATTERN_CHANCE_50),
|
Chance50(AllIcons.I_PATTERN_CHANCE_50),
|
||||||
Chance75(AllIcons.I_PATTERN_CHANCE_75);
|
Chance75(AllIcons.I_PATTERN_CHANCE_75);
|
||||||
|
|
||||||
public String translationKey;
|
public final String translationKey;
|
||||||
public AllIcons icon;
|
public final AllIcons icon;
|
||||||
|
|
||||||
private PlacementPatterns(AllIcons icon) {
|
private PlacementPatterns(AllIcons icon) {
|
||||||
this.translationKey = Lang.asId(name());
|
this.translationKey = Lang.asId(name());
|
||||||
|
|
|
@ -10,6 +10,7 @@ import com.simibubi.create.CreateClient;
|
||||||
import com.simibubi.create.foundation.item.ItemDescription;
|
import com.simibubi.create.foundation.item.ItemDescription;
|
||||||
import com.simibubi.create.foundation.utility.BlockHelper;
|
import com.simibubi.create.foundation.utility.BlockHelper;
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
import com.simibubi.create.foundation.utility.NBTProcessors;
|
import com.simibubi.create.foundation.utility.NBTProcessors;
|
||||||
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
|
@ -90,7 +91,7 @@ public abstract class ZapperItem extends Item {
|
||||||
.isShiftKeyDown()) {
|
.isShiftKeyDown()) {
|
||||||
if (context.getLevel().isClientSide) {
|
if (context.getLevel().isClientSide) {
|
||||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
|
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
|
||||||
openHandgunGUI(context.getItemInHand(), context.getHand() == Hand.OFF_HAND);
|
openHandgunGUI(context.getItemInHand(), context.getHand());
|
||||||
});
|
});
|
||||||
context.getPlayer()
|
context.getPlayer()
|
||||||
.getCooldowns()
|
.getCooldowns()
|
||||||
|
@ -112,7 +113,7 @@ public abstract class ZapperItem extends Item {
|
||||||
if (player.isShiftKeyDown()) {
|
if (player.isShiftKeyDown()) {
|
||||||
if (world.isClientSide) {
|
if (world.isClientSide) {
|
||||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
|
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> {
|
||||||
openHandgunGUI(item, hand == Hand.OFF_HAND);
|
openHandgunGUI(item, hand);
|
||||||
});
|
});
|
||||||
player.getCooldowns()
|
player.getCooldowns()
|
||||||
.addCooldown(item.getItem(), 10);
|
.addCooldown(item.getItem(), 10);
|
||||||
|
@ -187,7 +188,7 @@ public abstract class ZapperItem extends Item {
|
||||||
BlockRayTraceResult raytrace, CompoundNBT data);
|
BlockRayTraceResult raytrace, CompoundNBT data);
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
protected abstract void openHandgunGUI(ItemStack item, boolean b);
|
protected abstract void openHandgunGUI(ItemStack item, Hand hand);
|
||||||
|
|
||||||
protected abstract int getCooldownDelay(ItemStack item);
|
protected abstract int getCooldownDelay(ItemStack item);
|
||||||
|
|
||||||
|
@ -212,6 +213,11 @@ public abstract class ZapperItem extends Item {
|
||||||
return UseAction.NONE;
|
return UseAction.NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void configureSettings(ItemStack stack, PlacementPatterns pattern) {
|
||||||
|
CompoundNBT nbt = stack.getOrCreateTag();
|
||||||
|
NBTHelper.writeEnum(nbt, "Pattern", pattern);
|
||||||
|
}
|
||||||
|
|
||||||
public static void setTileData(World world, BlockPos pos, BlockState state, CompoundNBT data, PlayerEntity player) {
|
public static void setTileData(World world, BlockPos pos, BlockState state, CompoundNBT data, PlayerEntity player) {
|
||||||
if (data != null && AllBlockTags.SAFE_NBT.matches(state)) {
|
if (data != null && AllBlockTags.SAFE_NBT.matches(state)) {
|
||||||
TileEntity tile = world.getBlockEntity(pos);
|
TileEntity tile = world.getBlockEntity(pos);
|
||||||
|
|
|
@ -9,8 +9,8 @@ import com.simibubi.create.foundation.gui.AllIcons;
|
||||||
import com.simibubi.create.foundation.gui.GuiGameElement;
|
import com.simibubi.create.foundation.gui.GuiGameElement;
|
||||||
import com.simibubi.create.foundation.gui.widgets.IconButton;
|
import com.simibubi.create.foundation.gui.widgets.IconButton;
|
||||||
import com.simibubi.create.foundation.networking.AllPackets;
|
import com.simibubi.create.foundation.networking.AllPackets;
|
||||||
import com.simibubi.create.foundation.networking.NbtPacket;
|
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
|
|
||||||
import net.minecraft.block.BlockState;
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
|
@ -22,29 +22,34 @@ import net.minecraft.util.math.vector.Vector3f;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import net.minecraft.util.text.StringTextComponent;
|
import net.minecraft.util.text.StringTextComponent;
|
||||||
|
|
||||||
public class ZapperScreen extends AbstractSimiScreen {
|
public abstract class ZapperScreen extends AbstractSimiScreen {
|
||||||
|
|
||||||
protected ItemStack zapper;
|
|
||||||
protected boolean offhand;
|
|
||||||
protected float animationProgress;
|
|
||||||
protected AllGuiTextures background;
|
|
||||||
private IconButton confirmButton;
|
|
||||||
|
|
||||||
protected final ITextComponent patternSection = Lang.translate("gui.terrainzapper.patternSection");
|
protected final ITextComponent patternSection = Lang.translate("gui.terrainzapper.patternSection");
|
||||||
|
|
||||||
|
protected AllGuiTextures background;
|
||||||
|
protected ItemStack zapper;
|
||||||
|
protected Hand hand;
|
||||||
|
|
||||||
|
protected float animationProgress;
|
||||||
|
|
||||||
protected ITextComponent title;
|
protected ITextComponent title;
|
||||||
protected Vector<IconButton> patternButtons;
|
protected Vector<IconButton> patternButtons = new Vector<>(6);
|
||||||
|
private IconButton confirmButton;
|
||||||
protected int brightColor;
|
protected int brightColor;
|
||||||
protected int fontColor;
|
protected int fontColor;
|
||||||
|
|
||||||
public ZapperScreen(AllGuiTextures background, ItemStack zapper, boolean offhand) {
|
protected PlacementPatterns currentPattern;
|
||||||
super();
|
|
||||||
|
public ZapperScreen(AllGuiTextures background, ItemStack zapper, Hand hand) {
|
||||||
this.background = background;
|
this.background = background;
|
||||||
this.zapper = zapper;
|
this.zapper = zapper;
|
||||||
this.offhand = offhand;
|
this.hand = hand;
|
||||||
title = StringTextComponent.EMPTY;
|
title = StringTextComponent.EMPTY;
|
||||||
brightColor = 0xFEFEFE;
|
brightColor = 0xFEFEFE;
|
||||||
fontColor = AllGuiTextures.FONT_COLOR;
|
fontColor = AllGuiTextures.FONT_COLOR;
|
||||||
|
|
||||||
|
CompoundNBT nbt = zapper.getOrCreateTag();
|
||||||
|
currentPattern = NBTHelper.readEnum(nbt, "Pattern", PlacementPatterns.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -63,9 +68,7 @@ public class ZapperScreen extends AbstractSimiScreen {
|
||||||
new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM);
|
new IconButton(x + background.width - 33, y + background.height - 24, AllIcons.I_CONFIRM);
|
||||||
widgets.add(confirmButton);
|
widgets.add(confirmButton);
|
||||||
|
|
||||||
CompoundNBT nbt = zapper.getOrCreateTag();
|
patternButtons.clear();
|
||||||
|
|
||||||
patternButtons = new Vector<>(6);
|
|
||||||
for (int row = 0; row <= 1; row++) {
|
for (int row = 0; row <= 1; row++) {
|
||||||
for (int col = 0; col <= 2; col++) {
|
for (int col = 0; col <= 2; col++) {
|
||||||
int id = patternButtons.size();
|
int id = patternButtons.size();
|
||||||
|
@ -77,9 +80,7 @@ public class ZapperScreen extends AbstractSimiScreen {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nbt.contains("Pattern"))
|
patternButtons.get(currentPattern.ordinal()).active = false;
|
||||||
patternButtons.get(PlacementPatterns.valueOf(nbt.getString("Pattern"))
|
|
||||||
.ordinal()).active = false;
|
|
||||||
|
|
||||||
widgets.addAll(patternButtons);
|
widgets.addAll(patternButtons);
|
||||||
}
|
}
|
||||||
|
@ -108,21 +109,19 @@ public class ZapperScreen extends AbstractSimiScreen {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removed() {
|
public void removed() {
|
||||||
CompoundNBT nbt = zapper.getTag();
|
ConfigureZapperPacket packet = getConfigurationPacket();
|
||||||
writeAdditionalOptions(nbt);
|
packet.configureZapper(zapper);
|
||||||
AllPackets.channel.sendToServer(new NbtPacket(zapper, offhand ? Hand.OFF_HAND : Hand.MAIN_HAND));
|
AllPackets.channel.sendToServer(packet);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean mouseClicked(double x, double y, int button) {
|
public boolean mouseClicked(double x, double y, int button) {
|
||||||
CompoundNBT nbt = zapper.getTag();
|
|
||||||
|
|
||||||
for (IconButton patternButton : patternButtons) {
|
for (IconButton patternButton : patternButtons) {
|
||||||
if (patternButton.isHovered()) {
|
if (patternButton.isHovered()) {
|
||||||
patternButtons.forEach(b -> b.active = true);
|
patternButtons.forEach(b -> b.active = true);
|
||||||
patternButton.active = false;
|
patternButton.active = false;
|
||||||
patternButton.playDownSound(minecraft.getSoundManager());
|
patternButton.playDownSound(minecraft.getSoundManager());
|
||||||
nbt.putString("Pattern", PlacementPatterns.values()[patternButtons.indexOf(patternButton)].name());
|
currentPattern = PlacementPatterns.values()[patternButtons.indexOf(patternButton)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,6 +158,6 @@ public class ZapperScreen extends AbstractSimiScreen {
|
||||||
ms.popPose();
|
ms.popPose();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void writeAdditionalOptions(CompoundNBT nbt) {}
|
protected abstract ConfigureZapperPacket getConfigurationPacket();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
package com.simibubi.create.content.curiosities.zapper.terrainzapper;
|
||||||
|
|
||||||
|
import com.simibubi.create.content.curiosities.zapper.ConfigureZapperPacket;
|
||||||
|
import com.simibubi.create.content.curiosities.zapper.PlacementPatterns;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.network.PacketBuffer;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
|
|
||||||
|
public class ConfigureWorldshaperPacket extends ConfigureZapperPacket {
|
||||||
|
|
||||||
|
protected TerrainBrushes brush;
|
||||||
|
protected int brushParamX;
|
||||||
|
protected int brushParamY;
|
||||||
|
protected int brushParamZ;
|
||||||
|
protected TerrainTools tool;
|
||||||
|
protected PlacementOptions placement;
|
||||||
|
|
||||||
|
public ConfigureWorldshaperPacket(Hand hand, PlacementPatterns pattern, TerrainBrushes brush, int brushParamX, int brushParamY, int brushParamZ, TerrainTools tool, PlacementOptions placement) {
|
||||||
|
super(hand, pattern);
|
||||||
|
this.brush = brush;
|
||||||
|
this.brushParamX = brushParamX;
|
||||||
|
this.brushParamY = brushParamY;
|
||||||
|
this.brushParamZ = brushParamZ;
|
||||||
|
this.tool = tool;
|
||||||
|
this.placement = placement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConfigureWorldshaperPacket(PacketBuffer buffer) {
|
||||||
|
super(buffer);
|
||||||
|
brush = buffer.readEnum(TerrainBrushes.class);
|
||||||
|
brushParamX = buffer.readVarInt();
|
||||||
|
brushParamY = buffer.readVarInt();
|
||||||
|
brushParamZ = buffer.readVarInt();
|
||||||
|
tool = buffer.readEnum(TerrainTools.class);
|
||||||
|
placement = buffer.readEnum(PlacementOptions.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(PacketBuffer buffer) {
|
||||||
|
super.write(buffer);
|
||||||
|
buffer.writeEnum(brush);
|
||||||
|
buffer.writeVarInt(brushParamX);
|
||||||
|
buffer.writeVarInt(brushParamY);
|
||||||
|
buffer.writeVarInt(brushParamZ);
|
||||||
|
buffer.writeEnum(tool);
|
||||||
|
buffer.writeEnum(placement);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void configureZapper(ItemStack stack) {
|
||||||
|
WorldshaperItem.configureSettings(stack, pattern, brush, brushParamX, brushParamY, brushParamZ, tool, placement);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -14,6 +14,7 @@ import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
import net.minecraft.nbt.NBTUtil;
|
import net.minecraft.nbt.NBTUtil;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.math.BlockRayTraceResult;
|
import net.minecraft.util.math.BlockRayTraceResult;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
|
@ -29,8 +30,8 @@ public class WorldshaperItem extends ZapperItem {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@OnlyIn(value = Dist.CLIENT)
|
@OnlyIn(value = Dist.CLIENT)
|
||||||
protected void openHandgunGUI(ItemStack item, boolean b) {
|
protected void openHandgunGUI(ItemStack item, Hand hand) {
|
||||||
ScreenOpener.open(new WorldshaperScreen(item, b));
|
ScreenOpener.open(new WorldshaperScreen(item, hand));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -82,4 +83,13 @@ public class WorldshaperItem extends ZapperItem {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void configureSettings(ItemStack stack, PlacementPatterns pattern, TerrainBrushes brush, int brushParamX, int brushParamY, int brushParamZ, TerrainTools tool, PlacementOptions placement) {
|
||||||
|
ZapperItem.configureSettings(stack, pattern);
|
||||||
|
CompoundNBT nbt = stack.getOrCreateTag();
|
||||||
|
NBTHelper.writeEnum(nbt, "Brush", brush);
|
||||||
|
nbt.put("BrushParams", NBTUtil.writeBlockPos(new BlockPos(brushParamX, brushParamY, brushParamZ)));
|
||||||
|
nbt.putString("Tool", tool.name());
|
||||||
|
nbt.putString("Placement", placement.name());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.util.List;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
import com.mojang.blaze3d.matrix.MatrixStack;
|
import com.mojang.blaze3d.matrix.MatrixStack;
|
||||||
|
import com.simibubi.create.content.curiosities.zapper.ConfigureZapperPacket;
|
||||||
import com.simibubi.create.content.curiosities.zapper.ZapperScreen;
|
import com.simibubi.create.content.curiosities.zapper.ZapperScreen;
|
||||||
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
||||||
import com.simibubi.create.foundation.gui.AllIcons;
|
import com.simibubi.create.foundation.gui.AllIcons;
|
||||||
|
@ -16,13 +17,14 @@ import com.simibubi.create.foundation.gui.widgets.SelectionScrollInput;
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
|
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
import net.minecraft.nbt.NBTUtil;
|
import net.minecraft.nbt.NBTUtil;
|
||||||
|
import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
import net.minecraft.util.text.ITextComponent;
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import net.minecraft.util.text.StringTextComponent;
|
import net.minecraft.util.text.StringTextComponent;
|
||||||
|
import net.minecraftforge.common.util.Constants;
|
||||||
|
|
||||||
public class WorldshaperScreen extends ZapperScreen {
|
public class WorldshaperScreen extends ZapperScreen {
|
||||||
|
|
||||||
|
@ -36,20 +38,41 @@ public class WorldshaperScreen extends ZapperScreen {
|
||||||
|
|
||||||
protected ScrollInput brushInput;
|
protected ScrollInput brushInput;
|
||||||
protected Label brushLabel;
|
protected Label brushLabel;
|
||||||
protected Vector<ScrollInput> brushParams;
|
protected Vector<ScrollInput> brushParams = new Vector<>(3);
|
||||||
protected Vector<Label> brushParamLabels;
|
protected Vector<Label> brushParamLabels = new Vector<>(3);
|
||||||
protected IconButton followDiagonals;
|
protected IconButton followDiagonals;
|
||||||
protected IconButton acrossMaterials;
|
protected IconButton acrossMaterials;
|
||||||
protected Indicator followDiagonalsIndicator;
|
protected Indicator followDiagonalsIndicator;
|
||||||
protected Indicator acrossMaterialsIndicator;
|
protected Indicator acrossMaterialsIndicator;
|
||||||
|
|
||||||
private CompoundNBT nbt;
|
protected TerrainBrushes currentBrush;
|
||||||
|
protected int[] currentBrushParams = new int[] { 1, 1, 1 };
|
||||||
|
protected boolean currentFollowDiagonals;
|
||||||
|
protected boolean currentAcrossMaterials;
|
||||||
|
protected TerrainTools currentTool;
|
||||||
|
protected PlacementOptions currentPlacement;
|
||||||
|
|
||||||
public WorldshaperScreen(ItemStack zapper, boolean offhand) {
|
public WorldshaperScreen(ItemStack zapper, Hand hand) {
|
||||||
super(AllGuiTextures.TERRAINZAPPER, zapper, offhand);
|
super(AllGuiTextures.TERRAINZAPPER, zapper, hand);
|
||||||
fontColor = 0x767676;
|
fontColor = 0x767676;
|
||||||
title = zapper.getHoverName();
|
title = zapper.getHoverName();
|
||||||
nbt = zapper.getOrCreateTag();
|
|
||||||
|
CompoundNBT nbt = zapper.getOrCreateTag();
|
||||||
|
currentBrush = NBTHelper.readEnum(nbt, "Brush", TerrainBrushes.class);
|
||||||
|
if (nbt.contains("BrushParams", Constants.NBT.TAG_COMPOUND)) {
|
||||||
|
BlockPos paramsData = NBTUtil.readBlockPos(nbt.getCompound("BrushParams"));
|
||||||
|
currentBrushParams[0] = paramsData.getX();
|
||||||
|
currentBrushParams[1] = paramsData.getY();
|
||||||
|
currentBrushParams[2] = paramsData.getZ();
|
||||||
|
if (currentBrushParams[1] == 0) {
|
||||||
|
currentFollowDiagonals = true;
|
||||||
|
}
|
||||||
|
if (currentBrushParams[2] == 0) {
|
||||||
|
currentAcrossMaterials = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
currentTool = NBTHelper.readEnum(nbt, "Tool", TerrainTools.class);
|
||||||
|
currentPlacement = NBTHelper.readEnum(nbt, "Placement", PlacementOptions.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -63,61 +86,61 @@ public class WorldshaperScreen extends ZapperScreen {
|
||||||
brushInput = new SelectionScrollInput(x + 56, y + 20, 77, 18).forOptions(brushOptions)
|
brushInput = new SelectionScrollInput(x + 56, y + 20, 77, 18).forOptions(brushOptions)
|
||||||
.titled(Lang.translate("gui.terrainzapper.brush"))
|
.titled(Lang.translate("gui.terrainzapper.brush"))
|
||||||
.writingTo(brushLabel)
|
.writingTo(brushLabel)
|
||||||
.calling(brushIndex -> initBrushParams(x, y));
|
.calling(brushIndex -> {
|
||||||
if (nbt.contains("Brush"))
|
currentBrush = TerrainBrushes.values()[brushIndex];
|
||||||
brushInput.setState(NBTHelper.readEnum(nbt, "Brush", TerrainBrushes.class)
|
initBrushParams(x, y);
|
||||||
.ordinal());
|
});
|
||||||
|
|
||||||
|
brushInput.setState(currentBrush.ordinal());
|
||||||
|
|
||||||
widgets.add(brushLabel);
|
widgets.add(brushLabel);
|
||||||
widgets.add(brushInput);
|
widgets.add(brushInput);
|
||||||
|
|
||||||
initBrushParams(x, y);
|
initBrushParams(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initBrushParams(int x, int y) {
|
protected void initBrushParams(int x, int y) {
|
||||||
if (brushParams != null) {
|
Brush currentBrush = this.currentBrush.get();
|
||||||
nbt.put("BrushParams", NBTUtil.writeBlockPos(new BlockPos(brushParams.get(0)
|
|
||||||
.getState(),
|
// Brush Params
|
||||||
brushParams.get(1)
|
|
||||||
.getState(),
|
|
||||||
brushParams.get(2)
|
|
||||||
.getState())));
|
|
||||||
|
|
||||||
widgets.removeAll(brushParamLabels);
|
widgets.removeAll(brushParamLabels);
|
||||||
widgets.removeAll(brushParams);
|
widgets.removeAll(brushParams);
|
||||||
}
|
|
||||||
|
|
||||||
brushParamLabels = new Vector<>(3);
|
brushParamLabels.clear();
|
||||||
brushParams = new Vector<>(3);
|
brushParams.clear();
|
||||||
BlockPos data = NBTUtil.readBlockPos(nbt.getCompound("BrushParams"));
|
|
||||||
int[] params = new int[] { data.getX(), data.getY(), data.getZ() };
|
|
||||||
Brush currentBrush = TerrainBrushes.values()[brushInput.getState()].get();
|
|
||||||
for (int index = 0; index < 3; index++) {
|
for (int index = 0; index < 3; index++) {
|
||||||
|
|
||||||
Label label = new Label(x + 65 + 20 * index, y + 45, StringTextComponent.EMPTY).withShadow();
|
Label label = new Label(x + 65 + 20 * index, y + 45, StringTextComponent.EMPTY).withShadow();
|
||||||
brushParamLabels.add(label);
|
|
||||||
int indexFinal = index;
|
final int finalIndex = index;
|
||||||
ScrollInput input = new ScrollInput(x + 56 + 20 * index, y + 40, 18, 18)
|
ScrollInput input = new ScrollInput(x + 56 + 20 * index, y + 40, 18, 18)
|
||||||
.withRange(currentBrush.getMin(index), currentBrush.getMax(index) + 1)
|
.withRange(currentBrush.getMin(index), currentBrush.getMax(index) + 1)
|
||||||
.writingTo(label)
|
.writingTo(label)
|
||||||
.titled(currentBrush.getParamLabel(index)
|
.titled(currentBrush.getParamLabel(index)
|
||||||
.plainCopy())
|
.plainCopy())
|
||||||
.calling(state -> {
|
.calling(state -> {
|
||||||
label.x = x + 65 + 20 * indexFinal - font.width(label.text) / 2;
|
currentBrushParams[finalIndex] = state;
|
||||||
|
label.x = x + 65 + 20 * finalIndex - font.width(label.text) / 2;
|
||||||
});
|
});
|
||||||
input.setState(params[index]);
|
input.setState(currentBrushParams[index]);
|
||||||
input.onChanged();
|
input.onChanged();
|
||||||
|
|
||||||
if (index >= currentBrush.amtParams) {
|
if (index >= currentBrush.amtParams) {
|
||||||
input.visible = false;
|
input.visible = false;
|
||||||
label.visible = false;
|
label.visible = false;
|
||||||
input.active = false;
|
input.active = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
brushParamLabels.add(label);
|
||||||
brushParams.add(input);
|
brushParams.add(input);
|
||||||
}
|
}
|
||||||
|
|
||||||
widgets.addAll(brushParamLabels);
|
widgets.addAll(brushParamLabels);
|
||||||
widgets.addAll(brushParams);
|
widgets.addAll(brushParams);
|
||||||
|
|
||||||
|
// Connectivity Options
|
||||||
|
|
||||||
if (followDiagonals != null) {
|
if (followDiagonals != null) {
|
||||||
widgets.remove(followDiagonals);
|
widgets.remove(followDiagonals);
|
||||||
widgets.remove(followDiagonalsIndicator);
|
widgets.remove(followDiagonalsIndicator);
|
||||||
|
@ -144,13 +167,13 @@ public class WorldshaperScreen extends ZapperScreen {
|
||||||
widgets.add(followDiagonalsIndicator);
|
widgets.add(followDiagonalsIndicator);
|
||||||
widgets.add(acrossMaterials);
|
widgets.add(acrossMaterials);
|
||||||
widgets.add(acrossMaterialsIndicator);
|
widgets.add(acrossMaterialsIndicator);
|
||||||
if (params[1] == 0)
|
if (currentFollowDiagonals)
|
||||||
followDiagonalsIndicator.state = State.ON;
|
followDiagonalsIndicator.state = State.ON;
|
||||||
if (params[2] == 0)
|
if (currentAcrossMaterials)
|
||||||
acrossMaterialsIndicator.state = State.ON;
|
acrossMaterialsIndicator.state = State.ON;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TOOLS
|
// Tools
|
||||||
|
|
||||||
if (toolButtons != null)
|
if (toolButtons != null)
|
||||||
widgets.removeAll(toolButtons);
|
widgets.removeAll(toolButtons);
|
||||||
|
@ -164,26 +187,24 @@ public class WorldshaperScreen extends ZapperScreen {
|
||||||
.setToolTip(Lang.translate("gui.terrainzapper.tool." + tool.translationKey));
|
.setToolTip(Lang.translate("gui.terrainzapper.tool." + tool.translationKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!nbt.contains("Tool"))
|
int toolIndex = -1;
|
||||||
NBTHelper.writeEnum(nbt, "Tool", toolValues[0]);
|
|
||||||
int index = -1;
|
|
||||||
TerrainTools tool = NBTHelper.readEnum(nbt, "Tool", TerrainTools.class);
|
|
||||||
for (int i = 0; i < toolValues.length; i++)
|
for (int i = 0; i < toolValues.length; i++)
|
||||||
if (tool == toolValues[i])
|
if (currentTool == toolValues[i])
|
||||||
index = i;
|
toolIndex = i;
|
||||||
if (index == -1) {
|
if (toolIndex == -1) {
|
||||||
NBTHelper.writeEnum(nbt, "Tool", toolValues[0]);
|
currentTool = toolValues[0];
|
||||||
index = 0;
|
toolIndex = 0;
|
||||||
}
|
}
|
||||||
|
toolButtons.get(toolIndex).active = false;
|
||||||
|
|
||||||
toolButtons.get(index).active = false;
|
|
||||||
widgets.addAll(toolButtons);
|
widgets.addAll(toolButtons);
|
||||||
|
|
||||||
|
// Placement Options
|
||||||
|
|
||||||
if (placementButtons != null)
|
if (placementButtons != null)
|
||||||
widgets.removeAll(placementButtons);
|
widgets.removeAll(placementButtons);
|
||||||
if (!currentBrush.hasPlacementOptions())
|
|
||||||
return;
|
|
||||||
|
|
||||||
|
if (currentBrush.hasPlacementOptions()) {
|
||||||
PlacementOptions[] placementValues = PlacementOptions.values();
|
PlacementOptions[] placementValues = PlacementOptions.values();
|
||||||
placementButtons = new Vector<>(placementValues.length);
|
placementButtons = new Vector<>(placementValues.length);
|
||||||
for (int id = 0; id < placementValues.length; id++) {
|
for (int id = 0; id < placementValues.length; id++) {
|
||||||
|
@ -193,52 +214,44 @@ public class WorldshaperScreen extends ZapperScreen {
|
||||||
.setToolTip(Lang.translate("gui.terrainzapper.placement." + option.translationKey));
|
.setToolTip(Lang.translate("gui.terrainzapper.placement." + option.translationKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!nbt.contains("Placement"))
|
placementButtons.get(currentPlacement.ordinal()).active = false;
|
||||||
NBTHelper.writeEnum(nbt, "Placement", placementValues[0]);
|
|
||||||
int optionIndex = NBTHelper.readEnum(nbt, "Placement", PlacementOptions.class)
|
|
||||||
.ordinal();
|
|
||||||
if (optionIndex >= placementValues.length) {
|
|
||||||
NBTHelper.writeEnum(nbt, "Placement", placementValues[0]);
|
|
||||||
optionIndex = 0;
|
|
||||||
}
|
|
||||||
placementButtons.get(optionIndex).active = false;
|
|
||||||
widgets.addAll(placementButtons);
|
widgets.addAll(placementButtons);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean mouseClicked(double x, double y, int button) {
|
public boolean mouseClicked(double x, double y, int button) {
|
||||||
CompoundNBT nbt = zapper.getTag();
|
TerrainTools[] supportedTools = currentBrush.get()
|
||||||
TerrainBrushes brush = TerrainBrushes.values()[brushInput.getState()];
|
|
||||||
TerrainTools[] supportedTools = brush.get()
|
|
||||||
.getSupportedTools();
|
.getSupportedTools();
|
||||||
|
for (IconButton toolButton : toolButtons) {
|
||||||
|
if (toolButton.isHovered()) {
|
||||||
|
toolButtons.forEach(b -> b.active = true);
|
||||||
|
toolButton.active = false;
|
||||||
|
toolButton.playDownSound(minecraft.getSoundManager());
|
||||||
|
currentTool = supportedTools[toolButtons.indexOf(toolButton)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (placementButtons != null) {
|
if (placementButtons != null) {
|
||||||
for (IconButton placementButton : placementButtons) {
|
for (IconButton placementButton : placementButtons) {
|
||||||
if (placementButton.isHovered()) {
|
if (placementButton.isHovered()) {
|
||||||
placementButtons.forEach(b -> b.active = true);
|
placementButtons.forEach(b -> b.active = true);
|
||||||
placementButton.active = false;
|
placementButton.active = false;
|
||||||
placementButton.playDownSound(Minecraft.getInstance()
|
placementButton.playDownSound(minecraft.getSoundManager());
|
||||||
.getSoundManager());
|
currentPlacement = PlacementOptions.values()[placementButtons.indexOf(placementButton)];
|
||||||
nbt.putString("Placement",
|
|
||||||
PlacementOptions.values()[placementButtons.indexOf(placementButton)].name());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (IconButton toolButton : toolButtons) {
|
if (followDiagonals != null && followDiagonals.isHovered()) {
|
||||||
if (toolButton.isHovered()) {
|
|
||||||
toolButtons.forEach(b -> b.active = true);
|
|
||||||
toolButton.active = false;
|
|
||||||
toolButton.playDownSound(Minecraft.getInstance()
|
|
||||||
.getSoundManager());
|
|
||||||
nbt.putString("Tool", supportedTools[toolButtons.indexOf(toolButton)].name());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (followDiagonals != null && followDiagonals.isHovered())
|
|
||||||
followDiagonalsIndicator.state = followDiagonalsIndicator.state == State.OFF ? State.ON : State.OFF;
|
followDiagonalsIndicator.state = followDiagonalsIndicator.state == State.OFF ? State.ON : State.OFF;
|
||||||
if (acrossMaterials != null && acrossMaterials.isHovered())
|
currentFollowDiagonals = !currentFollowDiagonals;
|
||||||
|
}
|
||||||
|
if (acrossMaterials != null && acrossMaterials.isHovered()) {
|
||||||
acrossMaterialsIndicator.state = acrossMaterialsIndicator.state == State.OFF ? State.ON : State.OFF;
|
acrossMaterialsIndicator.state = acrossMaterialsIndicator.state == State.OFF ? State.ON : State.OFF;
|
||||||
|
currentAcrossMaterials = !currentAcrossMaterials;
|
||||||
|
}
|
||||||
|
|
||||||
return super.mouseClicked(x, y, button);
|
return super.mouseClicked(x, y, button);
|
||||||
}
|
}
|
||||||
|
@ -247,7 +260,7 @@ public class WorldshaperScreen extends ZapperScreen {
|
||||||
protected void drawOnBackground(MatrixStack matrixStack, int x, int y) {
|
protected void drawOnBackground(MatrixStack matrixStack, int x, int y) {
|
||||||
super.drawOnBackground(matrixStack, x, y);
|
super.drawOnBackground(matrixStack, x, y);
|
||||||
|
|
||||||
Brush currentBrush = TerrainBrushes.values()[brushInput.getState()].get();
|
Brush currentBrush = this.currentBrush.get();
|
||||||
for (int index = 2; index >= currentBrush.amtParams; index--)
|
for (int index = 2; index >= currentBrush.amtParams; index--)
|
||||||
AllGuiTextures.TERRAINZAPPER_INACTIVE_PARAM.draw(matrixStack, x + 56 + 20 * index, y + 40);
|
AllGuiTextures.TERRAINZAPPER_INACTIVE_PARAM.draw(matrixStack, x + 56 + 20 * index, y + 40);
|
||||||
|
|
||||||
|
@ -257,20 +270,13 @@ public class WorldshaperScreen extends ZapperScreen {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void writeAdditionalOptions(CompoundNBT nbt) {
|
protected ConfigureZapperPacket getConfigurationPacket() {
|
||||||
super.writeAdditionalOptions(nbt);
|
int brushParamX = currentBrushParams[0];
|
||||||
TerrainBrushes brush = TerrainBrushes.values()[brushInput.getState()];
|
int brushParamY = followDiagonalsIndicator != null ? followDiagonalsIndicator.state == State.ON ? 0 : 1
|
||||||
int param1 = brushParams.get(0)
|
: currentBrushParams[1];
|
||||||
.getState();
|
int brushParamZ = acrossMaterialsIndicator != null ? acrossMaterialsIndicator.state == State.ON ? 0 : 1
|
||||||
int param2 = followDiagonalsIndicator != null ? followDiagonalsIndicator.state == State.ON ? 0 : 1
|
: currentBrushParams[2];
|
||||||
: brushParams.get(1)
|
return new ConfigureWorldshaperPacket(hand, currentPattern, currentBrush, brushParamX, brushParamY, brushParamZ, currentTool, currentPlacement);
|
||||||
.getState();
|
|
||||||
int param3 = acrossMaterialsIndicator != null ? acrossMaterialsIndicator.state == State.ON ? 0 : 1
|
|
||||||
: brushParams.get(2)
|
|
||||||
.getState();
|
|
||||||
|
|
||||||
NBTHelper.writeEnum(nbt, "Brush", brush);
|
|
||||||
nbt.put("BrushParams", NBTUtil.writeBlockPos(new BlockPos(param1, param2, param3)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,7 @@ public class AttributeFilterScreen extends AbstractFilterScreen<AttributeFilterC
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void init() {
|
protected void init() {
|
||||||
setWindowOffset(-11, 7);
|
setWindowOffset(-11 + (width % 2 == 0 ? 1 : 0), 7);
|
||||||
super.init();
|
super.init();
|
||||||
|
|
||||||
int x = leftPos;
|
int x = leftPos;
|
||||||
|
|
|
@ -61,12 +61,12 @@ public interface ItemAttribute {
|
||||||
static ItemAttribute hasColor = register(ColorAttribute.EMPTY);
|
static ItemAttribute hasColor = register(ColorAttribute.EMPTY);
|
||||||
static ItemAttribute hasFluid = register(FluidContentsAttribute.EMPTY);
|
static ItemAttribute hasFluid = register(FluidContentsAttribute.EMPTY);
|
||||||
static ItemAttribute hasName = register(new ItemNameAttribute("dummy"));
|
static ItemAttribute hasName = register(new ItemNameAttribute("dummy"));
|
||||||
|
static ItemAttribute bookAuthor = register(new BookAuthorAttribute("dummy"));
|
||||||
|
static ItemAttribute bookCopy = register(new BookCopyAttribute(-1));
|
||||||
static ItemAttribute astralAmulet = register(new AstralSorceryAmuletAttribute("dummy", -1));
|
static ItemAttribute astralAmulet = register(new AstralSorceryAmuletAttribute("dummy", -1));
|
||||||
static ItemAttribute astralAttunement = register(new AstralSorceryAttunementAttribute("dummy"));
|
static ItemAttribute astralAttunement = register(new AstralSorceryAttunementAttribute("dummy"));
|
||||||
static ItemAttribute astralCrystal = register(new AstralSorceryCrystalAttribute("dummy"));
|
static ItemAttribute astralCrystal = register(new AstralSorceryCrystalAttribute("dummy"));
|
||||||
static ItemAttribute astralPerkGem = register(new AstralSorceryPerkGemAttribute("dummy"));
|
static ItemAttribute astralPerkGem = register(new AstralSorceryPerkGemAttribute("dummy"));
|
||||||
static ItemAttribute bookAuthor = register(new BookAuthorAttribute("dummy"));
|
|
||||||
static ItemAttribute bookCopy = register(new BookCopyAttribute(-1));
|
|
||||||
|
|
||||||
static ItemAttribute register(ItemAttribute attributeType) {
|
static ItemAttribute register(ItemAttribute attributeType) {
|
||||||
types.add(attributeType);
|
types.add(attributeType);
|
||||||
|
@ -131,12 +131,12 @@ public interface ItemAttribute {
|
||||||
CONSUMABLE(ItemStack::isEdible),
|
CONSUMABLE(ItemStack::isEdible),
|
||||||
FLUID_CONTAINER(s -> s.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY).isPresent()),
|
FLUID_CONTAINER(s -> s.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY).isPresent()),
|
||||||
ENCHANTED(ItemStack::isEnchanted),
|
ENCHANTED(ItemStack::isEnchanted),
|
||||||
|
MAX_ENCHANTED(StandardTraits::maxEnchanted),
|
||||||
RENAMED(ItemStack::hasCustomHoverName),
|
RENAMED(ItemStack::hasCustomHoverName),
|
||||||
DAMAGED(ItemStack::isDamaged),
|
DAMAGED(ItemStack::isDamaged),
|
||||||
BADLY_DAMAGED(s -> s.isDamaged() && s.getDamageValue() / s.getMaxDamage() > 3 / 4f),
|
BADLY_DAMAGED(s -> s.isDamaged() && s.getDamageValue() / s.getMaxDamage() > 3 / 4f),
|
||||||
NOT_STACKABLE(((Predicate<ItemStack>) ItemStack::isStackable).negate()),
|
NOT_STACKABLE(((Predicate<ItemStack>) ItemStack::isStackable).negate()),
|
||||||
EQUIPABLE(s -> s.getEquipmentSlot() != null),
|
EQUIPABLE(s -> s.getEquipmentSlot() != null),
|
||||||
MAX_ENCHANTED(StandardTraits::maxEnchanted),
|
|
||||||
FURNACE_FUEL(AbstractFurnaceTileEntity::isFuel),
|
FURNACE_FUEL(AbstractFurnaceTileEntity::isFuel),
|
||||||
WASHABLE(InWorldProcessing::isWashable),
|
WASHABLE(InWorldProcessing::isWashable),
|
||||||
CRUSHABLE((s, w) -> testRecipe(s, w, AllRecipeTypes.CRUSHING.getType())
|
CRUSHABLE((s, w) -> testRecipe(s, w, AllRecipeTypes.CRUSHING.getType())
|
||||||
|
|
|
@ -9,6 +9,7 @@ import static com.simibubi.create.foundation.data.WindowGen.woodenWindowPane;
|
||||||
|
|
||||||
import com.simibubi.create.AllItems;
|
import com.simibubi.create.AllItems;
|
||||||
import com.simibubi.create.AllSpriteShifts;
|
import com.simibubi.create.AllSpriteShifts;
|
||||||
|
import com.simibubi.create.AllTags;
|
||||||
import com.simibubi.create.Create;
|
import com.simibubi.create.Create;
|
||||||
import com.simibubi.create.content.AllSections;
|
import com.simibubi.create.content.AllSections;
|
||||||
import com.simibubi.create.foundation.block.connected.HorizontalCTBehaviour;
|
import com.simibubi.create.foundation.block.connected.HorizontalCTBehaviour;
|
||||||
|
@ -113,8 +114,7 @@ public class AllPaletteBlocks {
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
public static final BlockEntry<Block> LIMESTONE =
|
public static final BlockEntry<Block> LIMESTONE =
|
||||||
REGISTRATE.baseBlock("limestone", Block::new, () -> Blocks.SANDSTONE, true)
|
REGISTRATE.paletteStoneBlock("limestone", () -> Blocks.SANDSTONE, true)
|
||||||
.tag(BlockTags.BASE_STONE_OVERWORLD)
|
|
||||||
.loot(cobblestoneLoot(PaletteStoneVariants.LIMESTONE))
|
.loot(cobblestoneLoot(PaletteStoneVariants.LIMESTONE))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
@ -122,8 +122,7 @@ public class AllPaletteBlocks {
|
||||||
new PalettesVariantEntry(PaletteStoneVariants.LIMESTONE, PaletteBlockPattern.STANDARD_RANGE);
|
new PalettesVariantEntry(PaletteStoneVariants.LIMESTONE, PaletteBlockPattern.STANDARD_RANGE);
|
||||||
|
|
||||||
public static final BlockEntry<Block> WEATHERED_LIMESTONE =
|
public static final BlockEntry<Block> WEATHERED_LIMESTONE =
|
||||||
REGISTRATE.baseBlock("weathered_limestone", Block::new, () -> Blocks.SANDSTONE, true)
|
REGISTRATE.paletteStoneBlock("weathered_limestone", () -> Blocks.SANDSTONE, true)
|
||||||
.tag(BlockTags.BASE_STONE_OVERWORLD)
|
|
||||||
.loot(cobblestoneLoot(PaletteStoneVariants.WEATHERED_LIMESTONE))
|
.loot(cobblestoneLoot(PaletteStoneVariants.WEATHERED_LIMESTONE))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
@ -131,8 +130,7 @@ public class AllPaletteBlocks {
|
||||||
PaletteStoneVariants.WEATHERED_LIMESTONE, PaletteBlockPattern.STANDARD_RANGE);
|
PaletteStoneVariants.WEATHERED_LIMESTONE, PaletteBlockPattern.STANDARD_RANGE);
|
||||||
|
|
||||||
public static final BlockEntry<Block> DOLOMITE =
|
public static final BlockEntry<Block> DOLOMITE =
|
||||||
REGISTRATE.baseBlock("dolomite", Block::new, () -> Blocks.QUARTZ_BLOCK, true)
|
REGISTRATE.paletteStoneBlock("dolomite", () -> Blocks.QUARTZ_BLOCK, true)
|
||||||
.tag(BlockTags.BASE_STONE_OVERWORLD)
|
|
||||||
.loot(cobblestoneLoot(PaletteStoneVariants.DOLOMITE))
|
.loot(cobblestoneLoot(PaletteStoneVariants.DOLOMITE))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
@ -140,8 +138,7 @@ public class AllPaletteBlocks {
|
||||||
new PalettesVariantEntry(PaletteStoneVariants.DOLOMITE, PaletteBlockPattern.STANDARD_RANGE);
|
new PalettesVariantEntry(PaletteStoneVariants.DOLOMITE, PaletteBlockPattern.STANDARD_RANGE);
|
||||||
|
|
||||||
public static final BlockEntry<Block> GABBRO =
|
public static final BlockEntry<Block> GABBRO =
|
||||||
REGISTRATE.baseBlock("gabbro", Block::new, () -> Blocks.ANDESITE, true)
|
REGISTRATE.paletteStoneBlock("gabbro", () -> Blocks.ANDESITE, true)
|
||||||
.tag(BlockTags.BASE_STONE_OVERWORLD)
|
|
||||||
.loot(cobblestoneLoot(PaletteStoneVariants.GABBRO))
|
.loot(cobblestoneLoot(PaletteStoneVariants.GABBRO))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
@ -149,14 +146,14 @@ public class AllPaletteBlocks {
|
||||||
new PalettesVariantEntry(PaletteStoneVariants.GABBRO, PaletteBlockPattern.STANDARD_RANGE);
|
new PalettesVariantEntry(PaletteStoneVariants.GABBRO, PaletteBlockPattern.STANDARD_RANGE);
|
||||||
|
|
||||||
public static final BlockEntry<Block> SCORIA =
|
public static final BlockEntry<Block> SCORIA =
|
||||||
REGISTRATE.baseBlock("scoria", Block::new, () -> Blocks.ANDESITE, true)
|
REGISTRATE.paletteStoneBlock("scoria", () -> Blocks.ANDESITE, false)
|
||||||
.loot(cobblestoneLoot(PaletteStoneVariants.SCORIA))
|
.loot(cobblestoneLoot(PaletteStoneVariants.SCORIA))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
public static final BlockEntry<Block> NATURAL_SCORIA = REGISTRATE.block("natural_scoria", Block::new)
|
public static final BlockEntry<Block> NATURAL_SCORIA = REGISTRATE.block("natural_scoria", Block::new)
|
||||||
.initialProperties(() -> Blocks.ANDESITE)
|
.initialProperties(() -> Blocks.ANDESITE)
|
||||||
.tag(BlockTags.BASE_STONE_OVERWORLD)
|
.tag(BlockTags.BASE_STONE_OVERWORLD, AllTags.AllBlockTags.WG_STONE.tag)
|
||||||
.onRegister(CreateRegistrate.blockVertexColors(new ScoriaVertexColor()))
|
.onRegister(CreateRegistrate.blockVertexColors(ScoriaVertexColor.INSTANCE))
|
||||||
.loot((p, g) -> p.add(g, RegistrateBlockLootTables.droppingWithSilkTouch(g, SCORIA.get())))
|
.loot((p, g) -> p.add(g, RegistrateBlockLootTables.droppingWithSilkTouch(g, SCORIA.get())))
|
||||||
.blockstate(palettesCubeAll())
|
.blockstate(palettesCubeAll())
|
||||||
.simpleItem()
|
.simpleItem()
|
||||||
|
@ -166,7 +163,7 @@ public class AllPaletteBlocks {
|
||||||
new PalettesVariantEntry(PaletteStoneVariants.SCORIA, PaletteBlockPattern.STANDARD_RANGE);
|
new PalettesVariantEntry(PaletteStoneVariants.SCORIA, PaletteBlockPattern.STANDARD_RANGE);
|
||||||
|
|
||||||
public static final BlockEntry<Block> DARK_SCORIA =
|
public static final BlockEntry<Block> DARK_SCORIA =
|
||||||
REGISTRATE.baseBlock("dark_scoria", Block::new, () -> Blocks.ANDESITE, false)
|
REGISTRATE.paletteStoneBlock("dark_scoria", () -> Blocks.ANDESITE, false)
|
||||||
.loot(cobblestoneLoot(PaletteStoneVariants.DARK_SCORIA))
|
.loot(cobblestoneLoot(PaletteStoneVariants.DARK_SCORIA))
|
||||||
.register();
|
.register();
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,8 @@ public class PaletteBlockPattern {
|
||||||
}),
|
}),
|
||||||
|
|
||||||
POLISHED = create("polished", PREFIX, FOR_POLISHED)
|
POLISHED = create("polished", PREFIX, FOR_POLISHED)
|
||||||
|
.blockTags(Tags.Blocks.STONE)
|
||||||
|
.itemTags(Tags.Items.STONE)
|
||||||
.addRecipes(v -> (c, p) -> {
|
.addRecipes(v -> (c, p) -> {
|
||||||
DataIngredient ingredient = DataIngredient.items(v.getBaseBlock().get());
|
DataIngredient ingredient = DataIngredient.items(v.getBaseBlock().get());
|
||||||
ShapedRecipeBuilder.shaped(c.get(), 4)
|
ShapedRecipeBuilder.shaped(c.get(), 4)
|
||||||
|
|
|
@ -5,6 +5,8 @@ import com.simibubi.create.foundation.utility.Color;
|
||||||
|
|
||||||
public class ScoriaVertexColor implements IBlockVertexColor {
|
public class ScoriaVertexColor implements IBlockVertexColor {
|
||||||
|
|
||||||
|
public static final ScoriaVertexColor INSTANCE = new ScoriaVertexColor();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getColor(float x, float y, float z) {
|
public int getColor(float x, float y, float z) {
|
||||||
float x2 = (float) Math.floor(z + x - y * .5);
|
float x2 = (float) Math.floor(z + x - y * .5);
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
package com.simibubi.create.content.palettes;
|
|
||||||
|
|
||||||
import net.minecraft.block.BlockState;
|
|
||||||
import net.minecraft.client.renderer.color.IBlockColor;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
import net.minecraft.world.GrassColors;
|
|
||||||
import net.minecraft.world.IBlockDisplayReader;
|
|
||||||
import net.minecraft.world.biome.BiomeColors;
|
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
|
||||||
public class StandardFoliageColorHandler implements IBlockColor {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getColor(BlockState state, IBlockDisplayReader light, BlockPos pos, int layer) {
|
|
||||||
return pos != null && light != null ? BiomeColors.getAverageGrassColor(light, pos) : GrassColors.get(0.5D, 1.0D);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -9,6 +9,7 @@ import java.util.function.BiFunction;
|
||||||
import java.util.function.Supplier;
|
import java.util.function.Supplier;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import com.simibubi.create.AllTags;
|
||||||
import com.simibubi.create.Create;
|
import com.simibubi.create.Create;
|
||||||
import com.simibubi.create.CreateClient;
|
import com.simibubi.create.CreateClient;
|
||||||
import com.simibubi.create.content.AllSections;
|
import com.simibubi.create.content.AllSections;
|
||||||
|
@ -40,10 +41,12 @@ import net.minecraft.entity.EntityClassification;
|
||||||
import net.minecraft.entity.EntityType;
|
import net.minecraft.entity.EntityType;
|
||||||
import net.minecraft.fluid.Fluid;
|
import net.minecraft.fluid.Fluid;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.tags.BlockTags;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.tileentity.TileEntityType;
|
import net.minecraft.tileentity.TileEntityType;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
|
import net.minecraftforge.common.Tags;
|
||||||
import net.minecraftforge.fluids.FluidAttributes;
|
import net.minecraftforge.fluids.FluidAttributes;
|
||||||
import net.minecraftforge.fluids.ForgeFlowingFluid;
|
import net.minecraftforge.fluids.ForgeFlowingFluid;
|
||||||
import net.minecraftforge.fml.DistExecutor;
|
import net.minecraftforge.fml.DistExecutor;
|
||||||
|
@ -138,17 +141,27 @@ public class CreateRegistrate extends AbstractRegistrate<CreateRegistrate> {
|
||||||
|
|
||||||
/* Palettes */
|
/* Palettes */
|
||||||
|
|
||||||
public <T extends Block> BlockBuilder<T, CreateRegistrate> baseBlock(String name,
|
public <T extends Block> BlockBuilder<T, CreateRegistrate> paletteStoneBlock(String name,
|
||||||
NonNullFunction<Properties, T> factory, NonNullSupplier<Block> propertiesFrom, boolean TFworldGen) {
|
NonNullFunction<Properties, T> factory, NonNullSupplier<Block> propertiesFrom, boolean worldGenStone) {
|
||||||
return super.block(name, factory).initialProperties(propertiesFrom)
|
BlockBuilder<T, CreateRegistrate> builder = super.block(name, factory).initialProperties(propertiesFrom)
|
||||||
.blockstate((c, p) -> {
|
.blockstate((c, p) -> {
|
||||||
final String location = "block/palettes/" + c.getName() + "/plain";
|
final String location = "block/palettes/" + c.getName() + "/plain";
|
||||||
p.simpleBlock(c.get(), p.models()
|
p.simpleBlock(c.get(), p.models()
|
||||||
.cubeAll(c.getName(), p.modLoc(location)));
|
.cubeAll(c.getName(), p.modLoc(location)));
|
||||||
// TODO tag with forge:stone; if TFWorldGen == true tag with forge:wg_stone
|
|
||||||
// aswell
|
|
||||||
})
|
})
|
||||||
.simpleItem();
|
.tag(Tags.Blocks.STONE)
|
||||||
|
.item()
|
||||||
|
.tag(Tags.Items.STONE)
|
||||||
|
.build();
|
||||||
|
if (worldGenStone) {
|
||||||
|
builder.tag(BlockTags.BASE_STONE_OVERWORLD, AllTags.AllBlockTags.WG_STONE.tag);
|
||||||
|
}
|
||||||
|
return builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockBuilder<Block, CreateRegistrate> paletteStoneBlock(String name,
|
||||||
|
NonNullSupplier<Block> propertiesFrom, boolean worldGenStone) {
|
||||||
|
return paletteStoneBlock(name, Block::new, propertiesFrom, worldGenStone);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Fluids */
|
/* Fluids */
|
||||||
|
|
|
@ -22,12 +22,14 @@ import com.simibubi.create.content.contraptions.components.structureMovement.tra
|
||||||
import com.simibubi.create.content.contraptions.fluids.actors.FluidSplashPacket;
|
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.advanced.sequencer.ConfigureSequencedGearshiftPacket;
|
||||||
import com.simibubi.create.content.curiosities.bell.SoulPulseEffectPacket;
|
import com.simibubi.create.content.curiosities.bell.SoulPulseEffectPacket;
|
||||||
|
import com.simibubi.create.content.curiosities.symmetry.ConfigureSymmetryWandPacket;
|
||||||
import com.simibubi.create.content.curiosities.symmetry.SymmetryEffectPacket;
|
import com.simibubi.create.content.curiosities.symmetry.SymmetryEffectPacket;
|
||||||
import com.simibubi.create.content.curiosities.tools.BlueprintAssignCompleteRecipePacket;
|
import com.simibubi.create.content.curiosities.tools.BlueprintAssignCompleteRecipePacket;
|
||||||
import com.simibubi.create.content.curiosities.tools.ExtendoGripInteractionPacket;
|
import com.simibubi.create.content.curiosities.tools.ExtendoGripInteractionPacket;
|
||||||
import com.simibubi.create.content.curiosities.weapons.PotatoCannonPacket;
|
import com.simibubi.create.content.curiosities.weapons.PotatoCannonPacket;
|
||||||
import com.simibubi.create.content.curiosities.weapons.PotatoProjectileTypeManager;
|
import com.simibubi.create.content.curiosities.weapons.PotatoProjectileTypeManager;
|
||||||
import com.simibubi.create.content.curiosities.zapper.ZapperBeamPacket;
|
import com.simibubi.create.content.curiosities.zapper.ZapperBeamPacket;
|
||||||
|
import com.simibubi.create.content.curiosities.zapper.terrainzapper.ConfigureWorldshaperPacket;
|
||||||
import com.simibubi.create.content.logistics.block.depot.EjectorElytraPacket;
|
import com.simibubi.create.content.logistics.block.depot.EjectorElytraPacket;
|
||||||
import com.simibubi.create.content.logistics.block.depot.EjectorPlacementPacket;
|
import com.simibubi.create.content.logistics.block.depot.EjectorPlacementPacket;
|
||||||
import com.simibubi.create.content.logistics.block.depot.EjectorTriggerPacket;
|
import com.simibubi.create.content.logistics.block.depot.EjectorTriggerPacket;
|
||||||
|
@ -68,7 +70,6 @@ import net.minecraftforge.fml.network.simple.SimpleChannel;
|
||||||
public enum AllPackets {
|
public enum AllPackets {
|
||||||
|
|
||||||
// Client to Server
|
// Client to Server
|
||||||
NBT(NbtPacket.class, NbtPacket::new, PLAY_TO_SERVER),
|
|
||||||
CONFIGURE_SCHEMATICANNON(ConfigureSchematicannonPacket.class, ConfigureSchematicannonPacket::new, PLAY_TO_SERVER),
|
CONFIGURE_SCHEMATICANNON(ConfigureSchematicannonPacket.class, ConfigureSchematicannonPacket::new, PLAY_TO_SERVER),
|
||||||
CONFIGURE_FLEXCRATE(ConfigureFlexcratePacket.class, ConfigureFlexcratePacket::new, PLAY_TO_SERVER),
|
CONFIGURE_FLEXCRATE(ConfigureFlexcratePacket.class, ConfigureFlexcratePacket::new, PLAY_TO_SERVER),
|
||||||
CONFIGURE_STOCKSWITCH(ConfigureStockswitchPacket.class, ConfigureStockswitchPacket::new, PLAY_TO_SERVER),
|
CONFIGURE_STOCKSWITCH(ConfigureStockswitchPacket.class, ConfigureStockswitchPacket::new, PLAY_TO_SERVER),
|
||||||
|
@ -97,6 +98,8 @@ public enum AllPackets {
|
||||||
C_CONFIGURE_CONFIG(CConfigureConfigPacket.class, CConfigureConfigPacket::new, PLAY_TO_SERVER),
|
C_CONFIGURE_CONFIG(CConfigureConfigPacket.class, CConfigureConfigPacket::new, PLAY_TO_SERVER),
|
||||||
SUBMIT_GHOST_ITEM(GhostItemSubmitPacket.class, GhostItemSubmitPacket::new, PLAY_TO_SERVER),
|
SUBMIT_GHOST_ITEM(GhostItemSubmitPacket.class, GhostItemSubmitPacket::new, PLAY_TO_SERVER),
|
||||||
BLUEPRINT_COMPLETE_RECIPE(BlueprintAssignCompleteRecipePacket.class, BlueprintAssignCompleteRecipePacket::new, PLAY_TO_SERVER),
|
BLUEPRINT_COMPLETE_RECIPE(BlueprintAssignCompleteRecipePacket.class, BlueprintAssignCompleteRecipePacket::new, PLAY_TO_SERVER),
|
||||||
|
CONFIGURE_SYMMETRY_WAND(ConfigureSymmetryWandPacket.class, ConfigureSymmetryWandPacket::new, PLAY_TO_SERVER),
|
||||||
|
CONFIGURE_WORLDSHAPER(ConfigureWorldshaperPacket.class, ConfigureWorldshaperPacket::new, PLAY_TO_SERVER),
|
||||||
|
|
||||||
// Server to Client
|
// Server to Client
|
||||||
SYMMETRY_EFFECT(SymmetryEffectPacket.class, SymmetryEffectPacket::new, PLAY_TO_CLIENT),
|
SYMMETRY_EFFECT(SymmetryEffectPacket.class, SymmetryEffectPacket::new, PLAY_TO_CLIENT),
|
||||||
|
|
|
@ -1,73 +0,0 @@
|
||||||
package com.simibubi.create.foundation.networking;
|
|
||||||
|
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
import com.simibubi.create.content.curiosities.symmetry.SymmetryWandItem;
|
|
||||||
import com.simibubi.create.content.curiosities.zapper.ZapperItem;
|
|
||||||
|
|
||||||
import net.minecraft.entity.player.ServerPlayerEntity;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.network.PacketBuffer;
|
|
||||||
import net.minecraft.util.Hand;
|
|
||||||
import net.minecraftforge.fml.network.NetworkEvent.Context;
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
public class NbtPacket extends SimplePacketBase {
|
|
||||||
|
|
||||||
public ItemStack stack;
|
|
||||||
public int slot;
|
|
||||||
public Hand hand;
|
|
||||||
|
|
||||||
public NbtPacket(ItemStack stack, Hand hand) {
|
|
||||||
this(stack, -1);
|
|
||||||
this.hand = hand;
|
|
||||||
}
|
|
||||||
|
|
||||||
public NbtPacket(ItemStack stack, int slot) {
|
|
||||||
this.stack = stack;
|
|
||||||
this.slot = slot;
|
|
||||||
this.hand = Hand.MAIN_HAND;
|
|
||||||
}
|
|
||||||
|
|
||||||
public NbtPacket(PacketBuffer buffer) {
|
|
||||||
stack = buffer.readItem();
|
|
||||||
slot = buffer.readInt();
|
|
||||||
hand = Hand.values()[buffer.readInt()];
|
|
||||||
}
|
|
||||||
|
|
||||||
public void write(PacketBuffer buffer) {
|
|
||||||
buffer.writeItem(stack);
|
|
||||||
buffer.writeInt(slot);
|
|
||||||
buffer.writeInt(hand.ordinal());
|
|
||||||
}
|
|
||||||
|
|
||||||
public void handle(Supplier<Context> context) {
|
|
||||||
context.get()
|
|
||||||
.enqueueWork(() -> {
|
|
||||||
ServerPlayerEntity player = context.get()
|
|
||||||
.getSender();
|
|
||||||
if (player == null)
|
|
||||||
return;
|
|
||||||
if (!(stack.getItem() instanceof SymmetryWandItem || stack.getItem() instanceof ZapperItem)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
stack.removeTagKey("AttributeModifiers");
|
|
||||||
if (slot == -1) {
|
|
||||||
ItemStack heldItem = player.getItemInHand(hand);
|
|
||||||
if (heldItem.getItem() == stack.getItem()) {
|
|
||||||
heldItem.setTag(stack.getTag());
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemStack heldInSlot = player.inventory.getItem(slot);
|
|
||||||
if (heldInSlot.getItem() == stack.getItem()) {
|
|
||||||
heldInSlot.setTag(stack.getTag());
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
context.get()
|
|
||||||
.setPacketHandled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
package com.simibubi.create.foundation.utility;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
|
||||||
|
|
||||||
import mcp.MethodsReturnNonnullByDefault;
|
|
||||||
import net.minecraft.util.ResourceLocation;
|
|
||||||
import net.minecraftforge.common.Tags;
|
|
||||||
|
|
||||||
@ParametersAreNonnullByDefault
|
|
||||||
@MethodsReturnNonnullByDefault
|
|
||||||
public class EmptyNamedTag<T> implements Tags.IOptionalNamedTag<T> {
|
|
||||||
private final ResourceLocation id;
|
|
||||||
|
|
||||||
public EmptyNamedTag(ResourceLocation id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isDefaulted() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ResourceLocation getName() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean contains(Object p_230235_1_) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<T> getValues() {
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -13,6 +13,7 @@ import net.minecraft.nbt.FloatNBT;
|
||||||
import net.minecraft.nbt.INBT;
|
import net.minecraft.nbt.INBT;
|
||||||
import net.minecraft.nbt.ListNBT;
|
import net.minecraft.nbt.ListNBT;
|
||||||
import net.minecraft.util.math.AxisAlignedBB;
|
import net.minecraft.util.math.AxisAlignedBB;
|
||||||
|
import net.minecraftforge.common.util.Constants.NBT;
|
||||||
|
|
||||||
public class NBTHelper {
|
public class NBTHelper {
|
||||||
|
|
||||||
|
@ -22,14 +23,16 @@ public class NBTHelper {
|
||||||
|
|
||||||
public static <T extends Enum<?>> T readEnum(CompoundNBT nbt, String key, Class<T> enumClass) {
|
public static <T extends Enum<?>> T readEnum(CompoundNBT nbt, String key, Class<T> enumClass) {
|
||||||
T[] enumConstants = enumClass.getEnumConstants();
|
T[] enumConstants = enumClass.getEnumConstants();
|
||||||
String name = nbt.getString(key);
|
|
||||||
if (enumConstants == null)
|
if (enumConstants == null)
|
||||||
throw new IllegalArgumentException("Non-Enum class passed to readEnum(): " + enumClass.getName());
|
throw new IllegalArgumentException("Non-Enum class passed to readEnum: " + enumClass.getName());
|
||||||
|
if (nbt.contains(key, NBT.TAG_STRING)) {
|
||||||
|
String name = nbt.getString(key);
|
||||||
for (T t : enumConstants) {
|
for (T t : enumConstants) {
|
||||||
if (t.name()
|
if (t.name()
|
||||||
.equals(name))
|
.equals(name))
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return enumConstants[0];
|
return enumConstants[0];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -363,18 +363,14 @@
|
||||||
"create.item_attributes.placeable.inverted": "is not placeable",
|
"create.item_attributes.placeable.inverted": "is not placeable",
|
||||||
"create.item_attributes.consumable": "can be eaten",
|
"create.item_attributes.consumable": "can be eaten",
|
||||||
"create.item_attributes.consumable.inverted": "cannot be eaten",
|
"create.item_attributes.consumable.inverted": "cannot be eaten",
|
||||||
"create.item_attributes.smeltable": "can be Smelted",
|
"create.item_attributes.fluid_container": "can store fluids",
|
||||||
"create.item_attributes.smeltable.inverted": "cannot be Smelted",
|
"create.item_attributes.fluid_container.inverted": "cannot store fluids",
|
||||||
"create.item_attributes.washable": "can be Washed",
|
|
||||||
"create.item_attributes.washable.inverted": "cannot be Washed",
|
|
||||||
"create.item_attributes.smokable": "can be Smoked",
|
|
||||||
"create.item_attributes.smokable.inverted": "cannot be Smoked",
|
|
||||||
"create.item_attributes.crushable": "can be Crushed",
|
|
||||||
"create.item_attributes.crushable.inverted": "cannot be Crushed",
|
|
||||||
"create.item_attributes.blastable": "is smeltable in Blast Furnace",
|
|
||||||
"create.item_attributes.blastable.inverted": "is not smeltable in Blast Furnace",
|
|
||||||
"create.item_attributes.enchanted": "is enchanted",
|
"create.item_attributes.enchanted": "is enchanted",
|
||||||
"create.item_attributes.enchanted.inverted": "is unenchanted",
|
"create.item_attributes.enchanted.inverted": "is unenchanted",
|
||||||
|
"create.item_attributes.max_enchanted": "is enchanted at max level",
|
||||||
|
"create.item_attributes.max_enchanted.inverted": "is not enchanted at max level",
|
||||||
|
"create.item_attributes.renamed": "has a custom name",
|
||||||
|
"create.item_attributes.renamed.inverted": "does not have a custom name",
|
||||||
"create.item_attributes.damaged": "is damaged",
|
"create.item_attributes.damaged": "is damaged",
|
||||||
"create.item_attributes.damaged.inverted": "is not damaged",
|
"create.item_attributes.damaged.inverted": "is not damaged",
|
||||||
"create.item_attributes.badly_damaged": "is heavily damaged",
|
"create.item_attributes.badly_damaged": "is heavily damaged",
|
||||||
|
@ -385,12 +381,16 @@
|
||||||
"create.item_attributes.equipable.inverted": "cannot be equipped",
|
"create.item_attributes.equipable.inverted": "cannot be equipped",
|
||||||
"create.item_attributes.furnace_fuel": "is furnace fuel",
|
"create.item_attributes.furnace_fuel": "is furnace fuel",
|
||||||
"create.item_attributes.furnace_fuel.inverted": "is not furnace fuel",
|
"create.item_attributes.furnace_fuel.inverted": "is not furnace fuel",
|
||||||
"create.item_attributes.in_tag": "is tagged %1$s",
|
"create.item_attributes.washable": "can be Washed",
|
||||||
"create.item_attributes.in_tag.inverted": "is not tagged %1$s",
|
"create.item_attributes.washable.inverted": "cannot be Washed",
|
||||||
"create.item_attributes.in_item_group": "is in group '%1$s'",
|
"create.item_attributes.crushable": "can be Crushed",
|
||||||
"create.item_attributes.in_item_group.inverted": "is not in group '%1$s'",
|
"create.item_attributes.crushable.inverted": "cannot be Crushed",
|
||||||
"create.item_attributes.added_by": "was added by %1$s",
|
"create.item_attributes.smeltable": "can be Smelted",
|
||||||
"create.item_attributes.added_by.inverted": "was not added by %1$s",
|
"create.item_attributes.smeltable.inverted": "cannot be Smelted",
|
||||||
|
"create.item_attributes.smokable": "can be Smoked",
|
||||||
|
"create.item_attributes.smokable.inverted": "cannot be Smoked",
|
||||||
|
"create.item_attributes.blastable": "is smeltable in Blast Furnace",
|
||||||
|
"create.item_attributes.blastable.inverted": "is not smeltable in Blast Furnace",
|
||||||
|
|
||||||
"create.item_attributes.shulker_level": "is shulker %1$s",
|
"create.item_attributes.shulker_level": "is shulker %1$s",
|
||||||
"create.item_attributes.shulker_level.inverted": "is shulker not %1$s",
|
"create.item_attributes.shulker_level.inverted": "is shulker not %1$s",
|
||||||
|
@ -398,12 +398,16 @@
|
||||||
"create.item_attributes.shulker_level.empty": "empty",
|
"create.item_attributes.shulker_level.empty": "empty",
|
||||||
"create.item_attributes.shulker_level.partial": "partially filled",
|
"create.item_attributes.shulker_level.partial": "partially filled",
|
||||||
|
|
||||||
|
"create.item_attributes.in_tag": "is tagged %1$s",
|
||||||
|
"create.item_attributes.in_tag.inverted": "is not tagged %1$s",
|
||||||
|
"create.item_attributes.in_item_group": "is in group '%1$s'",
|
||||||
|
"create.item_attributes.in_item_group.inverted": "is not in group '%1$s'",
|
||||||
|
"create.item_attributes.added_by": "was added by %1$s",
|
||||||
|
"create.item_attributes.added_by.inverted": "was not added by %1$s",
|
||||||
"create.item_attributes.has_enchant": "is enchanted with %1$s",
|
"create.item_attributes.has_enchant": "is enchanted with %1$s",
|
||||||
"create.item_attributes.has_enchant.inverted": "is not enchanted with %1$s",
|
"create.item_attributes.has_enchant.inverted": "is not enchanted with %1$s",
|
||||||
"create.item_attributes.color": "is dyed %1$s",
|
"create.item_attributes.color": "is dyed %1$s",
|
||||||
"create.item_attributes.color.inverted": "is not dyed %1$s",
|
"create.item_attributes.color.inverted": "is not dyed %1$s",
|
||||||
"create.item_attributes.max_enchanted": "is enchanted at max level",
|
|
||||||
"create.item_attributes.max_enchanted.inverted": "is not enchanted at max level",
|
|
||||||
"create.item_attributes.has_fluid": "contains %1$s",
|
"create.item_attributes.has_fluid": "contains %1$s",
|
||||||
"create.item_attributes.has_fluid.inverted": "does not contain %1$s",
|
"create.item_attributes.has_fluid.inverted": "does not contain %1$s",
|
||||||
"create.item_attributes.has_name": "has the custom name %1$s",
|
"create.item_attributes.has_name": "has the custom name %1$s",
|
||||||
|
@ -418,14 +422,14 @@
|
||||||
"create.item_attributes.book_copy_second.inverted": "is not a second-generation copy",
|
"create.item_attributes.book_copy_second.inverted": "is not a second-generation copy",
|
||||||
"create.item_attributes.book_copy_tattered": "is a tattered mess",
|
"create.item_attributes.book_copy_tattered": "is a tattered mess",
|
||||||
"create.item_attributes.book_copy_tattered.inverted": "is not a tattered mess",
|
"create.item_attributes.book_copy_tattered.inverted": "is not a tattered mess",
|
||||||
"create.item_attributes.astralsorcery_crystal": "has crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "does not have crystal attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation": "is attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "is not attuned to %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem": "has perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "does not have perk attribute %1$s",
|
|
||||||
"create.item_attributes.astralsorcery_amulet": "improves %1$s",
|
"create.item_attributes.astralsorcery_amulet": "improves %1$s",
|
||||||
"create.item_attributes.astralsorcery_amulet.inverted": "does not improve %1$s",
|
"create.item_attributes.astralsorcery_amulet.inverted": "does not improve %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation": "is attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_constellation.inverted": "is not attuned to %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal": "has crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_crystal.inverted": "does not have crystal attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem": "has perk attribute %1$s",
|
||||||
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "does not have perk attribute %1$s",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "No attributes selected",
|
"create.gui.attribute_filter.no_selected_attributes": "No attributes selected",
|
||||||
"create.gui.attribute_filter.selected_attributes": "Selected attributes:",
|
"create.gui.attribute_filter.selected_attributes": "Selected attributes:",
|
||||||
|
|
Loading…
Reference in a new issue