mirror of
https://github.com/Creators-of-Create/Create.git
synced 2024-11-10 03:53:12 +01:00
Vault Virtual
- Double chests no longer split when moved on a contraption - Changed the way contraption storage interacts with known multi-block item storage (band-aid solution) - Changed a few blocks' sound types - Fixed in-world icons not rendering - Added Ponder Scenes for the Item Vault - Added crafting recipe for Item Vaults - Changed crafting recipe for Fluid Tanks - Fixed ponder tracking items in inactive inventory screens - Removed unreachable Advancements
This commit is contained in:
parent
5e1479d147
commit
9362374b1e
53 changed files with 779 additions and 585 deletions
|
@ -531,20 +531,20 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
|||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
64a8442735a333c7444cac12cfb22c454ca06b6b assets/create/lang/en_ud.json
|
||||
d55b3065c12ede60d54b8e306a9bba4f4e834da7 assets/create/lang/en_us.json
|
||||
e933c3b22a1f7827b7e677b5c35db329322a027f assets/create/lang/unfinished/de_de.json
|
||||
47b6a70be75560f4b11e51d3e9323418fa470ad6 assets/create/lang/unfinished/es_cl.json
|
||||
c6379e293e835b0fa563ad3b2aaa10a664cab25e assets/create/lang/unfinished/es_es.json
|
||||
840b1b5e3654f30b618ba8ce47af0a80a5152454 assets/create/lang/unfinished/fr_fr.json
|
||||
5e9efb7f3bfa3d5139fbd435a54e6adcea1d9703 assets/create/lang/unfinished/it_it.json
|
||||
d2e1e80d157228f7fb213d3c2c954794857c5343 assets/create/lang/unfinished/ja_jp.json
|
||||
dd3f49b0ccd45d2b722e0d317681878b34e4409d assets/create/lang/unfinished/ko_kr.json
|
||||
0fc3b0582a47c6a1d9525f2e8b11b2a6ff04eb7c assets/create/lang/unfinished/nl_nl.json
|
||||
51cc98f752fcf0df71762c1dd119e0b30fdf3af6 assets/create/lang/unfinished/pl_pl.json
|
||||
2bac31d64b08d5a581daae5befc6503fa638d075 assets/create/lang/unfinished/pt_br.json
|
||||
8925ca5a897dc87b28a3e6c679d5a26b554bf8f8 assets/create/lang/unfinished/ru_ru.json
|
||||
be1f4cd6c5db0aa8056793930319a7e48bdd549c assets/create/lang/unfinished/zh_cn.json
|
||||
c65b6367315ee06afc45deda461d15bf0272065b assets/create/lang/unfinished/zh_tw.json
|
||||
b984531bff326c47aa13a4aee8e230b03d97eb6e assets/create/lang/en_us.json
|
||||
367a1c79a27c9d0496457a164f1d192eeabd5fa4 assets/create/lang/unfinished/de_de.json
|
||||
842b0aaf8ad5a404a128fb29f312da8b6b6a61b7 assets/create/lang/unfinished/es_cl.json
|
||||
7c42d400daae6a49b30de6180dc467cb42afe602 assets/create/lang/unfinished/es_es.json
|
||||
322d3a2b9303659ffd0633afe067e6f753d58d84 assets/create/lang/unfinished/fr_fr.json
|
||||
e85c66d2cbbc2db9b2f5504d44f345c5d4be47cb assets/create/lang/unfinished/it_it.json
|
||||
f1176ef353e193be026d3c3581a9ed5f40576e6f assets/create/lang/unfinished/ja_jp.json
|
||||
0e042c6fa4e1ed497c3eeee4203e41f4b9d644cf assets/create/lang/unfinished/ko_kr.json
|
||||
26c92f47ceacbc236bb2ef1a60837a361d39c07c assets/create/lang/unfinished/nl_nl.json
|
||||
20dc5fd426c579319c1c5f8d8a0b961867dae295 assets/create/lang/unfinished/pl_pl.json
|
||||
890c8c28f57270f5b8ff871d9b0d5a8c68c71cbd assets/create/lang/unfinished/pt_br.json
|
||||
dbb9348844951afa663d750b87f333f095007bec assets/create/lang/unfinished/ru_ru.json
|
||||
60c5ddb490b9293b42647595f95e06ebbcf48c20 assets/create/lang/unfinished/zh_cn.json
|
||||
d5ebaf58f6356272d311d8e12bf4ecd218d7d29a assets/create/lang/unfinished/zh_tw.json
|
||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||
|
@ -2125,7 +2125,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear
|
|||
a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json
|
||||
b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json
|
||||
5049f72c327a88f175f6f9425909e098fc711100 assets/create/sounds.json
|
||||
5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json
|
||||
0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json
|
||||
613e64b44bed959da899fdd54c1cacb227fb33f2 data/create/advancements/andesite_alloy.json
|
||||
81885c6bfb85792c88aaa7c9b70f58832945d31f data/create/advancements/andesite_casing.json
|
||||
83c046bd200623933545c9e4326f782fb02c87fa data/create/advancements/arm_blaze_burner.json
|
||||
|
@ -2141,9 +2141,6 @@ b243e73ea26c5c8c8c57570d7d91a50d035653a4 data/create/advancements/arm_many_targe
|
|||
88adc39840259e79e46c4f33abb8eeaeb41dcdc8 data/create/advancements/chained_item_drain.json
|
||||
759688aa3c8085841e47f7174b3894607a0e2ad4 data/create/advancements/chocolate.json
|
||||
0c84fe24f49330a7491016235afd8fad02b560fe data/create/advancements/chocolate_wheel.json
|
||||
5b6fbcb6595267f5acd658eb9c1d6fb226e76e6f data/create/advancements/chromatic_age.json
|
||||
e0001634bbcabe55959365ca5efa86b05efb3214 data/create/advancements/chromatic_compound.json
|
||||
6ef2f15e92f5335efe59a26260c53155c604fc35 data/create/advancements/chromatic_eob.json
|
||||
f37551a788dfb3ff3d65db97a03c0420edf2c041 data/create/advancements/chute.json
|
||||
0ffacd497176afdb26670783b65d383ac6236c19 data/create/advancements/clockwork_bearing.json
|
||||
e754b950e25a5a5a19554a918760521794fc21f8 data/create/advancements/clockwork_component_eob.json
|
||||
|
@ -2325,7 +2322,7 @@ cd1a6ea80663ec9251bb13e27d90e6ccdd10ce3e data/create/advancements/recipes/create
|
|||
3a9aef30af8d9694548da236fe3129c16dba4883 data/create/advancements/recipes/create.base/crafting/kinetics/encased_fan.json
|
||||
0669da1ba8a761589d14c9b172abd65f8a995bad data/create/advancements/recipes/create.base/crafting/kinetics/filter.json
|
||||
8d4b4ebfe4b7b70dcb34f1b79eda3aee4f5b7abb data/create/advancements/recipes/create.base/crafting/kinetics/fluid_pipe.json
|
||||
c227f65c7ef64f7244030354c9a7e87527998531 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_tank.json
|
||||
450a84018a6df61921e2c7eac507928e42d82b93 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_tank.json
|
||||
5b68a2e467e01d2255c448691ec5b4be20ac35c2 data/create/advancements/recipes/create.base/crafting/kinetics/fluid_valve.json
|
||||
4049cbeed4452bf6fe7608e06f4a4c90f58d6da0 data/create/advancements/recipes/create.base/crafting/kinetics/gantry_carriage.json
|
||||
10529af8626e0d60d041aaebeadd4ac6a22cf061 data/create/advancements/recipes/create.base/crafting/kinetics/gantry_shaft.json
|
||||
|
@ -2342,6 +2339,7 @@ c023b9221d7983487d21e5ecc7d92246cfc7e791 data/create/advancements/recipes/create
|
|||
f2dadb365c75dd2604ee96e0217cd8024d0d137d data/create/advancements/recipes/create.base/crafting/kinetics/hand_crank.json
|
||||
f4e8fd79cb27e0677460f5c260b106338f2a48cc data/create/advancements/recipes/create.base/crafting/kinetics/hose_pulley.json
|
||||
a9f2c8a0b0b322741575ef833a461006ef2f0421 data/create/advancements/recipes/create.base/crafting/kinetics/item_drain.json
|
||||
2ccfaf572456e8642a0070ea6928a082f98c63af data/create/advancements/recipes/create.base/crafting/kinetics/item_vault.json
|
||||
73433a5cd400ed392796a4e543f15c42dd499fe8 data/create/advancements/recipes/create.base/crafting/kinetics/large_cogwheel.json
|
||||
eb007bb079bbe6b6aaad2ca90f5af84261e3f8ea data/create/advancements/recipes/create.base/crafting/kinetics/light_blue_seat.json
|
||||
571da50fbf5f2fcd3363b3dab91e7233e0ebffa0 data/create/advancements/recipes/create.base/crafting/kinetics/light_blue_seat_from_other_seat.json
|
||||
|
@ -3258,10 +3256,8 @@ d7b126eef46e9179c10d19d247f58e74f61818bc data/create/advancements/recipes/misc/s
|
|||
2599cc5ed09e70881aca4bb1550d21b4f65a9608 data/create/advancements/recipes/misc/smelting/iron_ingot_from_crushed.json
|
||||
a1afb005cc23607cb4d84d42664b4bc28eef9ead data/create/advancements/recipes/transportation/crafting/kinetics/furnace_minecart_from_contraption_cart.json
|
||||
c1434c26c854d6b723c4f4d0fbb051268043da07 data/create/advancements/recipes/transportation/crafting/kinetics/minecart_from_contraption_cart.json
|
||||
aca270ea8db5e00ba17c1c8fa46ee2445c2bc961 data/create/advancements/refined_radiance.json
|
||||
67edd7bd314a85a1fddc2aa9f6b2207879aa5c3e data/create/advancements/reinforced.json
|
||||
9654f4952c39175825a3deb2d9bb56d525f0539a data/create/advancements/root.json
|
||||
1ab3abcd219b9efb225588f4c797c775e96e07ff data/create/advancements/shadow_steel.json
|
||||
6c1a67e193a4c5af356b31a1d5b5e9d3faeca87e data/create/advancements/shifting_gears.json
|
||||
65132cb27041c848230781cca8020a2e5ae4365e data/create/advancements/speed_controller.json
|
||||
a203d509a6038f0bad707e232a425388e62e1ae1 data/create/advancements/speedometer.json
|
||||
|
@ -3271,7 +3267,7 @@ b69d174d7a5e9eab8ca013b66bc9d02244d7f9a3 data/create/advancements/spout.json
|
|||
0efdaf483d84791044f085f79197b6bab3e15872 data/create/advancements/stressometer.json
|
||||
1aceaa6e47709aa03f3d4f606fa5dcaacc899835 data/create/advancements/tunnel.json
|
||||
4fef92dce84fa1a075db31fb33081f5fb8ec7e9e data/create/advancements/upward_chute.json
|
||||
36f61712fafb6956c6e2289d61bd7eb8f7c97a29 data/create/advancements/wand_of_symmetry.json
|
||||
0b65ff92a7a48ba9f4c21f725831206313b37dba data/create/advancements/wand_of_symmetry.json
|
||||
2c278dc6e6e4c12c0cfce22b5192844586a2d5c1 data/create/advancements/water_wheel.json
|
||||
d6b94fd499cb4fb0ae587b0e9e7088832f67fe01 data/create/advancements/windmill.json
|
||||
ef4fa382442aacbda1ca8b762bd51ff80b708a93 data/create/advancements/wrench.json
|
||||
|
@ -3935,7 +3931,7 @@ ad1c3ce1e98b8483512bdd754f2e5930c7b3ae85 data/create/recipes/crafting/kinetics/d
|
|||
b07496e4ba5bc56a2c5a395b612c68ba21328867 data/create/recipes/crafting/kinetics/encased_fan.json
|
||||
0dd0cc11eaa6789fc612af3231ed247893852178 data/create/recipes/crafting/kinetics/filter.json
|
||||
371a80e2a93d9fb68b892db5685aaeea55f34a11 data/create/recipes/crafting/kinetics/fluid_pipe.json
|
||||
86ad4d2820e8e2b01de8d977af7796119dfb7430 data/create/recipes/crafting/kinetics/fluid_tank.json
|
||||
284e8554d7285989a1684a5e14c72063d152cc9e data/create/recipes/crafting/kinetics/fluid_tank.json
|
||||
3dad2a849796df268cd3a06ed37376f2cc529957 data/create/recipes/crafting/kinetics/fluid_valve.json
|
||||
84153bd478c0e63a04c77579d6595043f604b7ab data/create/recipes/crafting/kinetics/furnace_minecart_from_contraption_cart.json
|
||||
9e75756423b7f9372a2330a7140f80b1b87bd30e data/create/recipes/crafting/kinetics/gantry_carriage.json
|
||||
|
@ -3953,6 +3949,7 @@ b5da8c58f6b8aba525ae8a12ad906db37b78a566 data/create/recipes/crafting/kinetics/g
|
|||
9f08bdaeec88e04a43c2dc103869f9648deee079 data/create/recipes/crafting/kinetics/hand_crank.json
|
||||
d10639b0c3999481531fe0a9383a1bb4af60225e data/create/recipes/crafting/kinetics/hose_pulley.json
|
||||
f4fbb11ef55f3431bd387f3f6f258513bfbc8011 data/create/recipes/crafting/kinetics/item_drain.json
|
||||
8f7110447f039f80a6f5b1d854bc760c3d77da82 data/create/recipes/crafting/kinetics/item_vault.json
|
||||
237541c1c318b8426734c1c43be31fbd01413d39 data/create/recipes/crafting/kinetics/large_cogwheel.json
|
||||
0397b107ab380cd23390c96f298971a70e9bceef data/create/recipes/crafting/kinetics/light_blue_seat.json
|
||||
aa06f0594e1b2d31aa41bace309ed95a16529498 data/create/recipes/crafting/kinetics/light_blue_seat_from_other_seat.json
|
||||
|
|
|
@ -771,14 +771,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "Create some Crushing Wheels to break down more materials more effectively.",
|
||||
"advancement.create.blaze_cake": "Sugar Rush",
|
||||
"advancement.create.blaze_cake.desc": "Bake your blaze burner a special cake.",
|
||||
"advancement.create.chromatic_compound": "Mysterious Minerals",
|
||||
"advancement.create.chromatic_compound.desc": "Create a Bar of Chromatic Compound.",
|
||||
"advancement.create.shadow_steel": "Void Returner",
|
||||
"advancement.create.shadow_steel.desc": "Create Shadow Steel, a metal bar of nothingness.",
|
||||
"advancement.create.refined_radiance": "Bright and Inspiring",
|
||||
"advancement.create.refined_radiance.desc": "Create Refined Radiance, a powerful chromatic substance.",
|
||||
"advancement.create.chromatic_age": "The Chromatic Age",
|
||||
"advancement.create.chromatic_age.desc": "Create casing blocks of the light and dark.",
|
||||
"advancement.create.wand_of_symmetry": "Radiant Mirrors",
|
||||
"advancement.create.wand_of_symmetry.desc": "Craft a Staff of Symmetry.",
|
||||
"advancement.create.extendo_grip": "Boioioing!",
|
||||
|
@ -2053,6 +2045,17 @@
|
|||
"create.ponder.item_drain.text_4": "...they roll across, emptying out their contained fluid",
|
||||
"create.ponder.item_drain.text_5": "Pipe Networks can now pull the fluid from the drains' internal buffer",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "Relaying rotational force using Large Cogwheels",
|
||||
"create.ponder.large_cogwheel.text_1": "Large cogwheels can connect to each other at right angles",
|
||||
"create.ponder.large_cogwheel.text_2": "It will help relaying conveyed speed to other axes of rotation",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1318",
|
||||
"_": "Missing Localizations: 1319",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "UNLOCALIZED: Create some Crushing Wheels to break down more materials more effectively.",
|
||||
"advancement.create.blaze_cake": "UNLOCALIZED: Sugar Rush",
|
||||
"advancement.create.blaze_cake.desc": "UNLOCALIZED: Bake your blaze burner a special cake.",
|
||||
"advancement.create.chromatic_compound": "UNLOCALIZED: Mysterious Minerals",
|
||||
"advancement.create.chromatic_compound.desc": "UNLOCALIZED: Create a Bar of Chromatic Compound.",
|
||||
"advancement.create.shadow_steel": "UNLOCALIZED: Void Returner",
|
||||
"advancement.create.shadow_steel.desc": "UNLOCALIZED: Create Shadow Steel, a metal bar of nothingness.",
|
||||
"advancement.create.refined_radiance": "UNLOCALIZED: Bright and Inspiring",
|
||||
"advancement.create.refined_radiance.desc": "UNLOCALIZED: Create Refined Radiance, a powerful chromatic substance.",
|
||||
"advancement.create.chromatic_age": "UNLOCALIZED: The Chromatic Age",
|
||||
"advancement.create.chromatic_age.desc": "UNLOCALIZED: Create casing blocks of the light and dark.",
|
||||
"advancement.create.wand_of_symmetry": "UNLOCALIZED: Radiant Mirrors",
|
||||
"advancement.create.wand_of_symmetry.desc": "UNLOCALIZED: Craft a Staff of Symmetry.",
|
||||
"advancement.create.extendo_grip": "Boioioing!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "UNLOCALIZED: ...they roll across, emptying out their contained fluid",
|
||||
"create.ponder.item_drain.text_5": "UNLOCALIZED: Pipe Networks can now pull the fluid from the drains' internal buffer",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "UNLOCALIZED: Relaying rotational force using Large Cogwheels",
|
||||
"create.ponder.large_cogwheel.text_1": "UNLOCALIZED: Large cogwheels can connect to each other at right angles",
|
||||
"create.ponder.large_cogwheel.text_2": "UNLOCALIZED: It will help relaying conveyed speed to other axes of rotation",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 321",
|
||||
"_": "Missing Localizations: 330",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "Crea ruedas trituradoras para descomponer los materiales de manera más efectiva.",
|
||||
"advancement.create.blaze_cake": "Rush de Azúcar",
|
||||
"advancement.create.blaze_cake.desc": "Preparale a tu Quemador Blaze un pastel especial.",
|
||||
"advancement.create.chromatic_compound": "Minerales Misteriosos",
|
||||
"advancement.create.chromatic_compound.desc": "Crea una barra de Compuesto Cromático.",
|
||||
"advancement.create.shadow_steel": "Retorno Vacío",
|
||||
"advancement.create.shadow_steel.desc": "Crea Acero Sombrío, una barra de nada.",
|
||||
"advancement.create.refined_radiance": "Brillante e Inspirador",
|
||||
"advancement.create.refined_radiance.desc": "Crea Radiancia Refinada, una poderosa sustancia cromática.",
|
||||
"advancement.create.chromatic_age": "La Edad Cromática",
|
||||
"advancement.create.chromatic_age.desc": "Crea bloques de cubierta de la luz y de la oscuridad.",
|
||||
"advancement.create.wand_of_symmetry": "Espejos Radiantes",
|
||||
"advancement.create.wand_of_symmetry.desc": "Crea la Vara de Simetría.",
|
||||
"advancement.create.extendo_grip": "¡Boioioing!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "...ruedan, vaciando su líquido contenido",
|
||||
"create.ponder.item_drain.text_5": "Las redes de tuberías ahora pueden extraer el fluido del búfer interno de los Drenajes.",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "Transmitiendo la fuerza rotacional mediante engranajes grandes",
|
||||
"create.ponder.large_cogwheel.text_1": "Los engranajes grandes se pueden conectar entre sí en ángulo recto",
|
||||
"create.ponder.large_cogwheel.text_2": "Te ayudará a transmitir la velocidad transportada a otros ejes de rotación",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 321",
|
||||
"_": "Missing Localizations: 330",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "Crea algunas ruedas de trituración para descomponer más materiales de forma más eficaz.",
|
||||
"advancement.create.blaze_cake": "Fiebre del azúcar",
|
||||
"advancement.create.blaze_cake.desc": "Hornea en tu quemador de blaze un pastel especial.",
|
||||
"advancement.create.chromatic_compound": "Minerales misteriosos",
|
||||
"advancement.create.chromatic_compound.desc": "Crea una barra de compuesto cromático.",
|
||||
"advancement.create.shadow_steel": "Retorno del vacío",
|
||||
"advancement.create.shadow_steel.desc": "Crea acero sombrío, una barra de metal de la nada.",
|
||||
"advancement.create.refined_radiance": "Brillante e inspirador",
|
||||
"advancement.create.refined_radiance.desc": "Crea un resplandor refinado, una poderosa sustancia cromática.",
|
||||
"advancement.create.chromatic_age": "La edad cromática",
|
||||
"advancement.create.chromatic_age.desc": "Crear bloques de revestimiento de la luz y la oscuridad.",
|
||||
"advancement.create.wand_of_symmetry": "Espejos radiantes",
|
||||
"advancement.create.wand_of_symmetry.desc": "Crear un bastón de simetría.",
|
||||
"advancement.create.extendo_grip": "¡Boioioing!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "...ruedan a través, vaciando su líquido contenido",
|
||||
"create.ponder.item_drain.text_5": "Las redes de tuberías pueden ahora extraer el fluido del buffer interno de los desagües",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "Transmitir fuerza rotacional mediante engranajes grandes",
|
||||
"create.ponder.large_cogwheel.text_1": "Los engranajes grandes pueden conectarse entre sí en ángulo recto",
|
||||
"create.ponder.large_cogwheel.text_2": "Ayudarán a transmitir la velocidad transportada a otros ejes de rotación.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1580",
|
||||
"_": "Missing Localizations: 1581",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "UNLOCALIZED: Create some Crushing Wheels to break down more materials more effectively.",
|
||||
"advancement.create.blaze_cake": "UNLOCALIZED: Sugar Rush",
|
||||
"advancement.create.blaze_cake.desc": "UNLOCALIZED: Bake your blaze burner a special cake.",
|
||||
"advancement.create.chromatic_compound": "UNLOCALIZED: Mysterious Minerals",
|
||||
"advancement.create.chromatic_compound.desc": "UNLOCALIZED: Create a Bar of Chromatic Compound.",
|
||||
"advancement.create.shadow_steel": "UNLOCALIZED: Void Returner",
|
||||
"advancement.create.shadow_steel.desc": "UNLOCALIZED: Create Shadow Steel, a metal bar of nothingness.",
|
||||
"advancement.create.refined_radiance": "UNLOCALIZED: Bright and Inspiring",
|
||||
"advancement.create.refined_radiance.desc": "UNLOCALIZED: Create Refined Radiance, a powerful chromatic substance.",
|
||||
"advancement.create.chromatic_age": "UNLOCALIZED: The Chromatic Age",
|
||||
"advancement.create.chromatic_age.desc": "UNLOCALIZED: Create casing blocks of the light and dark.",
|
||||
"advancement.create.wand_of_symmetry": "UNLOCALIZED: Radiant Mirrors",
|
||||
"advancement.create.wand_of_symmetry.desc": "UNLOCALIZED: Craft a Staff of Symmetry.",
|
||||
"advancement.create.extendo_grip": "UNLOCALIZED: Boioioing!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "UNLOCALIZED: ...they roll across, emptying out their contained fluid",
|
||||
"create.ponder.item_drain.text_5": "UNLOCALIZED: Pipe Networks can now pull the fluid from the drains' internal buffer",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "UNLOCALIZED: Relaying rotational force using Large Cogwheels",
|
||||
"create.ponder.large_cogwheel.text_1": "UNLOCALIZED: Large cogwheels can connect to each other at right angles",
|
||||
"create.ponder.large_cogwheel.text_2": "UNLOCALIZED: It will help relaying conveyed speed to other axes of rotation",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1261",
|
||||
"_": "Missing Localizations: 1270",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "Crea delle ruote di frantumazione per frantumare i materiali.",
|
||||
"advancement.create.blaze_cake": "Sugar Rush",
|
||||
"advancement.create.blaze_cake.desc": "Dai una torta di blaze al tuo inceneritore.",
|
||||
"advancement.create.chromatic_compound": "Minerali bipolari",
|
||||
"advancement.create.chromatic_compound.desc": "Crea una barra di composto cromatico.",
|
||||
"advancement.create.shadow_steel": "Il ritorno del Vuoto",
|
||||
"advancement.create.shadow_steel.desc": "Crea l'acciaio oscuro, una barra di metallo composta dalla non-esistenza.",
|
||||
"advancement.create.refined_radiance": "Illumina e ispira",
|
||||
"advancement.create.refined_radiance.desc": "Crea la radiance raffinata, una sostanza cromatica potente.",
|
||||
"advancement.create.chromatic_age": "L'era cromatica",
|
||||
"advancement.create.chromatic_age.desc": "Crea involucri di luce e d'ombra.",
|
||||
"advancement.create.wand_of_symmetry": "Perfettamente simmetrico",
|
||||
"advancement.create.wand_of_symmetry.desc": "Crea un'asta di simmetria.",
|
||||
"advancement.create.extendo_grip": "BOIOIOING",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "UNLOCALIZED: ...they roll across, emptying out their contained fluid",
|
||||
"create.ponder.item_drain.text_5": "UNLOCALIZED: Pipe Networks can now pull the fluid from the drains' internal buffer",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "UNLOCALIZED: Relaying rotational force using Large Cogwheels",
|
||||
"create.ponder.large_cogwheel.text_1": "UNLOCALIZED: Large cogwheels can connect to each other at right angles",
|
||||
"create.ponder.large_cogwheel.text_2": "UNLOCALIZED: It will help relaying conveyed speed to other axes of rotation",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 321",
|
||||
"_": "Missing Localizations: 330",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "より効率的に粉砕するために、破砕ホイールを作る",
|
||||
"advancement.create.blaze_cake": "シュガー・ラッシュ",
|
||||
"advancement.create.blaze_cake.desc": "ブレイズバーナーで特別なケーキを焼く",
|
||||
"advancement.create.chromatic_compound": "二極性化合物",
|
||||
"advancement.create.chromatic_compound.desc": "色彩の化合物を作る",
|
||||
"advancement.create.shadow_steel": "奈落からの帰還",
|
||||
"advancement.create.shadow_steel.desc": "究極の虚無、「シャドウスチール」を作る",
|
||||
"advancement.create.refined_radiance": "光輝の吹入",
|
||||
"advancement.create.refined_radiance.desc": "究極の色彩、「高貴な光輝」を作る",
|
||||
"advancement.create.chromatic_age": "色彩の時代",
|
||||
"advancement.create.chromatic_age.desc": "光と闇のケーシングを作る",
|
||||
"advancement.create.wand_of_symmetry": "輝く鏡",
|
||||
"advancement.create.wand_of_symmetry.desc": "対象の杖を作る",
|
||||
"advancement.create.extendo_grip": "ビヨヨーン!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "...中に詰まった液体を出しながら横に転がっていきます",
|
||||
"create.ponder.item_drain.text_5": "液体ネットワークで、排液口から液体を取り出せます",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "大きな歯車による回転力の伝達",
|
||||
"create.ponder.large_cogwheel.text_1": "大きな歯車は、直角に接続できます",
|
||||
"create.ponder.large_cogwheel.text_2": "回転力の回転軸を変えてに伝達するのに役立ちます",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 321",
|
||||
"_": "Missing Localizations: 330",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "더 많은 재료를 더 효율적으로 갈 분쇄 휠을 만드세요.",
|
||||
"advancement.create.blaze_cake": "폭주",
|
||||
"advancement.create.blaze_cake.desc": "블레이즈 버너에게 줄 특별한 케이크를 만드세요.",
|
||||
"advancement.create.chromatic_compound": "양극성 재료",
|
||||
"advancement.create.chromatic_compound.desc": "색채 혼합물를 만드세요.",
|
||||
"advancement.create.shadow_steel": "공허에서의 복귀",
|
||||
"advancement.create.shadow_steel.desc": "무의 금속, 그림자 강철을 생성하세요.",
|
||||
"advancement.create.refined_radiance": "빛으로부터의 자극",
|
||||
"advancement.create.refined_radiance.desc": "강력한 색채 물질, 정제된 빛을 생성하세요.",
|
||||
"advancement.create.chromatic_age": "양극 시대",
|
||||
"advancement.create.chromatic_age.desc": "빛과 어둠의 케이스를 제작하세요.",
|
||||
"advancement.create.wand_of_symmetry": "빛나는 건축",
|
||||
"advancement.create.wand_of_symmetry.desc": "대칭의 지팡이를 만드세요.",
|
||||
"advancement.create.extendo_grip": "띠요옹!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "...아이템은 굴라가며 담긴 액체를 비웁니다.",
|
||||
"create.ponder.item_drain.text_5": "배수구 탱크에 있는 액체는 파이프로 옮길 수 있습니다.",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "큰 톱니바퀴로 동력 전달하기",
|
||||
"create.ponder.large_cogwheel.text_1": "큰 톱니바퀴는 수직으로 서로 맞물립니다.",
|
||||
"create.ponder.large_cogwheel.text_2": "이는 다른 축으로 동력을 전달하는데 도움이 됩니다.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1933",
|
||||
"_": "Missing Localizations: 1934",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "UNLOCALIZED: Create some Crushing Wheels to break down more materials more effectively.",
|
||||
"advancement.create.blaze_cake": "UNLOCALIZED: Sugar Rush",
|
||||
"advancement.create.blaze_cake.desc": "UNLOCALIZED: Bake your blaze burner a special cake.",
|
||||
"advancement.create.chromatic_compound": "UNLOCALIZED: Mysterious Minerals",
|
||||
"advancement.create.chromatic_compound.desc": "UNLOCALIZED: Create a Bar of Chromatic Compound.",
|
||||
"advancement.create.shadow_steel": "UNLOCALIZED: Void Returner",
|
||||
"advancement.create.shadow_steel.desc": "UNLOCALIZED: Create Shadow Steel, a metal bar of nothingness.",
|
||||
"advancement.create.refined_radiance": "UNLOCALIZED: Bright and Inspiring",
|
||||
"advancement.create.refined_radiance.desc": "UNLOCALIZED: Create Refined Radiance, a powerful chromatic substance.",
|
||||
"advancement.create.chromatic_age": "UNLOCALIZED: The Chromatic Age",
|
||||
"advancement.create.chromatic_age.desc": "UNLOCALIZED: Create casing blocks of the light and dark.",
|
||||
"advancement.create.wand_of_symmetry": "UNLOCALIZED: Radiant Mirrors",
|
||||
"advancement.create.wand_of_symmetry.desc": "UNLOCALIZED: Craft a Staff of Symmetry.",
|
||||
"advancement.create.extendo_grip": "UNLOCALIZED: Boioioing!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "UNLOCALIZED: ...they roll across, emptying out their contained fluid",
|
||||
"create.ponder.item_drain.text_5": "UNLOCALIZED: Pipe Networks can now pull the fluid from the drains' internal buffer",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "UNLOCALIZED: Relaying rotational force using Large Cogwheels",
|
||||
"create.ponder.large_cogwheel.text_1": "UNLOCALIZED: Large cogwheels can connect to each other at right angles",
|
||||
"create.ponder.large_cogwheel.text_2": "UNLOCALIZED: It will help relaying conveyed speed to other axes of rotation",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 360",
|
||||
"_": "Missing Localizations: 369",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "Wytwórz parę kół kruszących, aby kruszyły więcej materiałów w krótszym czasie.",
|
||||
"advancement.create.blaze_cake": "Przypływ energii",
|
||||
"advancement.create.blaze_cake.desc": "Upiecz dla swojego palnika pyszne ciasto.",
|
||||
"advancement.create.chromatic_compound": "Minerały dwubiegunowe",
|
||||
"advancement.create.chromatic_compound.desc": "Wytwórz sztabkę związku chromatycznego.",
|
||||
"advancement.create.shadow_steel": "Dar otchłani",
|
||||
"advancement.create.shadow_steel.desc": "Uzyskaj mroczną stal, sztabkę pełną nicości.",
|
||||
"advancement.create.refined_radiance": "Czysty blask",
|
||||
"advancement.create.refined_radiance.desc": "Uzyskaj świetlisty materiał, silną substancję chromatyczną.",
|
||||
"advancement.create.chromatic_age": "Epoka kolorów",
|
||||
"advancement.create.chromatic_age.desc": "Wytwórz jasną i mroczną obudowę.",
|
||||
"advancement.create.wand_of_symmetry": "Symetria.",
|
||||
"advancement.create.wand_of_symmetry.desc": "Zdobądź różdżkę symetrii.",
|
||||
"advancement.create.extendo_grip": "Dalej dalej ręce Gadżeta!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "...są opróżniane i przesuwane na drugą stronę",
|
||||
"create.ponder.item_drain.text_5": "Systemy rur mogą wyciągać zawartą w odpływie ciecz",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "Przekazywanie siły obrotowej z użyciem dużych kół zębatych",
|
||||
"create.ponder.large_cogwheel.text_1": "Duże koła zębate mogą się łączyć ze sobą pod kątem prostym",
|
||||
"create.ponder.large_cogwheel.text_2": "Pomogą one w przekazywaniu siły obrotowej na inne osie obrotu",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1669",
|
||||
"_": "Missing Localizations: 1670",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "UNLOCALIZED: Create some Crushing Wheels to break down more materials more effectively.",
|
||||
"advancement.create.blaze_cake": "UNLOCALIZED: Sugar Rush",
|
||||
"advancement.create.blaze_cake.desc": "UNLOCALIZED: Bake your blaze burner a special cake.",
|
||||
"advancement.create.chromatic_compound": "UNLOCALIZED: Mysterious Minerals",
|
||||
"advancement.create.chromatic_compound.desc": "UNLOCALIZED: Create a Bar of Chromatic Compound.",
|
||||
"advancement.create.shadow_steel": "UNLOCALIZED: Void Returner",
|
||||
"advancement.create.shadow_steel.desc": "UNLOCALIZED: Create Shadow Steel, a metal bar of nothingness.",
|
||||
"advancement.create.refined_radiance": "UNLOCALIZED: Bright and Inspiring",
|
||||
"advancement.create.refined_radiance.desc": "UNLOCALIZED: Create Refined Radiance, a powerful chromatic substance.",
|
||||
"advancement.create.chromatic_age": "UNLOCALIZED: The Chromatic Age",
|
||||
"advancement.create.chromatic_age.desc": "UNLOCALIZED: Create casing blocks of the light and dark.",
|
||||
"advancement.create.wand_of_symmetry": "UNLOCALIZED: Radiant Mirrors",
|
||||
"advancement.create.wand_of_symmetry.desc": "UNLOCALIZED: Craft a Staff of Symmetry.",
|
||||
"advancement.create.extendo_grip": "UNLOCALIZED: Boioioing!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "UNLOCALIZED: ...they roll across, emptying out their contained fluid",
|
||||
"create.ponder.item_drain.text_5": "UNLOCALIZED: Pipe Networks can now pull the fluid from the drains' internal buffer",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "UNLOCALIZED: Relaying rotational force using Large Cogwheels",
|
||||
"create.ponder.large_cogwheel.text_1": "UNLOCALIZED: Large cogwheels can connect to each other at right angles",
|
||||
"create.ponder.large_cogwheel.text_2": "UNLOCALIZED: It will help relaying conveyed speed to other axes of rotation",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 365",
|
||||
"_": "Missing Localizations: 374",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "Создайте несколько дробящих колес, чтобы более эффективно разрушать больше материалов.",
|
||||
"advancement.create.blaze_cake": "Сахарная лихорадка",
|
||||
"advancement.create.blaze_cake.desc": "Испеките особый торт для вашей Горелки Всполоха.",
|
||||
"advancement.create.chromatic_compound": "Биполярные минералы",
|
||||
"advancement.create.chromatic_compound.desc": "Создайте хроматический компаунд",
|
||||
"advancement.create.shadow_steel": "Возвращение пустоты",
|
||||
"advancement.create.shadow_steel.desc": "Создайте призрачную сталь, металлический слиток небытия.",
|
||||
"advancement.create.refined_radiance": "Яркий и вдохновляющий",
|
||||
"advancement.create.refined_radiance.desc": "Создайте изысканное сияние, мощное хроматическое вещество.",
|
||||
"advancement.create.chromatic_age": "Хроматический век",
|
||||
"advancement.create.chromatic_age.desc": "Создайте блоки корпуса из света и тьмы.",
|
||||
"advancement.create.wand_of_symmetry": "Сияющие зеркала",
|
||||
"advancement.create.wand_of_symmetry.desc": "Создайте жезл симметрии.",
|
||||
"advancement.create.extendo_grip": "Бойоиоинг!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "...они переворачиваются, выливая содержащуюся в них жидкость",
|
||||
"create.ponder.item_drain.text_5": "Сети труб теперь могут вытягивать жидкость из внутреннего хранилища осушителей",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "Передаче силы вращения при помощи Больших шестерней",
|
||||
"create.ponder.large_cogwheel.text_1": "Большие шестерни могут соединяться между собой под прямым углом",
|
||||
"create.ponder.large_cogwheel.text_2": "Это поможет передавать скорость на другие оси вращения",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 321",
|
||||
"_": "Missing Localizations: 330",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "制作一些能更快粉碎物品的粉碎轮",
|
||||
"advancement.create.blaze_cake": "糖份超标",
|
||||
"advancement.create.blaze_cake.desc": "给烈焰人燃烧室烤一份特别蛋糕。",
|
||||
"advancement.create.chromatic_compound": "两极材料",
|
||||
"advancement.create.chromatic_compound.desc": "制作一个异彩化合物",
|
||||
"advancement.create.shadow_steel": "虚空归来者",
|
||||
"advancement.create.shadow_steel.desc": "制作一些暗影钢",
|
||||
"advancement.create.refined_radiance": "明亮而启灵",
|
||||
"advancement.create.refined_radiance.desc": "制作一个光辉石",
|
||||
"advancement.create.chromatic_age": "异彩时代",
|
||||
"advancement.create.chromatic_age.desc": "创造出光与影的机壳。",
|
||||
"advancement.create.wand_of_symmetry": "简单的镜面几何学",
|
||||
"advancement.create.wand_of_symmetry.desc": "制作一个对称之杖",
|
||||
"advancement.create.extendo_grip": "biu biu biu!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "...物品将会经过分液池顶部,并在此过程中将其包含的液体排入分液池内",
|
||||
"create.ponder.item_drain.text_5": "流体管道可以从分液池中抽取液体",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "使用大齿轮传递旋转力",
|
||||
"create.ponder.large_cogwheel.text_1": "大齿轮可以以特定的角度相互连接",
|
||||
"create.ponder.large_cogwheel.text_2": "可以利用大齿轮变更旋转轴向",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 379",
|
||||
"_": "Missing Localizations: 388",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -772,14 +772,6 @@
|
|||
"advancement.create.crushing_wheel.desc": "製作一對能更快粉碎物品的粉碎輪",
|
||||
"advancement.create.blaze_cake": "糖份超標",
|
||||
"advancement.create.blaze_cake.desc": "幫烈焰使者動力爐烤一份特別的蛋糕。",
|
||||
"advancement.create.chromatic_compound": "兩極材料",
|
||||
"advancement.create.chromatic_compound.desc": "製作一個異彩化合物",
|
||||
"advancement.create.shadow_steel": "自虛空的歸來的寶石",
|
||||
"advancement.create.shadow_steel.desc": "製作暗影鋼",
|
||||
"advancement.create.refined_radiance": "閃耀著純白的聖光",
|
||||
"advancement.create.refined_radiance.desc": "製作光輝石",
|
||||
"advancement.create.chromatic_age": "繽紛時代",
|
||||
"advancement.create.chromatic_age.desc": "創造出光與影的機殼。",
|
||||
"advancement.create.wand_of_symmetry": "簡單的鏡面幾何學",
|
||||
"advancement.create.wand_of_symmetry.desc": "製作一個對稱杖",
|
||||
"advancement.create.extendo_grip": "piu piu piu!",
|
||||
|
@ -2054,6 +2046,17 @@
|
|||
"create.ponder.item_drain.text_4": "...... 他會從上方滑過,並清空裡面的液體",
|
||||
"create.ponder.item_drain.text_5": "現在液體網路可以抽取分液池中的液體了",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "使用大齒輪傳遞動能",
|
||||
"create.ponder.large_cogwheel.text_1": "大齒輪可以以特定的角度相互連接",
|
||||
"create.ponder.large_cogwheel.text_2": "可以利用大齒輪變更旋轉軸向",
|
||||
|
|
|
@ -1,52 +0,0 @@
|
|||
{
|
||||
"parent": "create:chromatic_compound",
|
||||
"display": {
|
||||
"icon": {
|
||||
"item": "create:refined_radiance_casing"
|
||||
},
|
||||
"title": {
|
||||
"translate": "advancement.create.chromatic_age"
|
||||
},
|
||||
"description": {
|
||||
"translate": "advancement.create.chromatic_age.desc"
|
||||
},
|
||||
"frame": "goal",
|
||||
"show_toast": true,
|
||||
"announce_to_chat": true,
|
||||
"hidden": false
|
||||
},
|
||||
"criteria": {
|
||||
"0": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": [
|
||||
"create:shadow_steel_casing"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": [
|
||||
"create:refined_radiance_casing"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"0"
|
||||
],
|
||||
[
|
||||
"1"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
"parent": "create:blaze_cake",
|
||||
"display": {
|
||||
"icon": {
|
||||
"item": "create:chromatic_compound"
|
||||
},
|
||||
"title": {
|
||||
"translate": "advancement.create.chromatic_compound"
|
||||
},
|
||||
"description": {
|
||||
"translate": "advancement.create.chromatic_compound.desc"
|
||||
},
|
||||
"frame": "task",
|
||||
"show_toast": true,
|
||||
"announce_to_chat": false,
|
||||
"hidden": false
|
||||
},
|
||||
"criteria": {
|
||||
"0": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": [
|
||||
"create:chromatic_compound"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"0"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
{
|
||||
"parent": "create:chromatic_age",
|
||||
"display": {
|
||||
"icon": {
|
||||
"item": "minecraft:oak_sapling"
|
||||
},
|
||||
"title": {
|
||||
"translate": "advancement.create.eob"
|
||||
},
|
||||
"description": {
|
||||
"translate": "advancement.create.eob.desc"
|
||||
},
|
||||
"frame": "challenge",
|
||||
"show_toast": false,
|
||||
"announce_to_chat": false,
|
||||
"hidden": false
|
||||
},
|
||||
"criteria": {
|
||||
"0": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": [
|
||||
"create:shadow_steel_casing"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": [
|
||||
"create:refined_radiance_casing"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"0"
|
||||
],
|
||||
[
|
||||
"1"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -11,9 +11,7 @@
|
|||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": [
|
||||
"create:copper_casing"
|
||||
]
|
||||
"tag": "forge:barrels/wooden"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
{
|
||||
"parent": "minecraft:recipes/root",
|
||||
"rewards": {
|
||||
"recipes": [
|
||||
"create:crafting/kinetics/item_vault"
|
||||
]
|
||||
},
|
||||
"criteria": {
|
||||
"has_item": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"tag": "forge:barrels/wooden"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"has_the_recipe": {
|
||||
"trigger": "minecraft:recipe_unlocked",
|
||||
"conditions": {
|
||||
"recipe": "create:crafting/kinetics/item_vault"
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"has_item",
|
||||
"has_the_recipe"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
"parent": "create:chromatic_compound",
|
||||
"display": {
|
||||
"icon": {
|
||||
"item": "create:refined_radiance"
|
||||
},
|
||||
"title": {
|
||||
"translate": "advancement.create.refined_radiance"
|
||||
},
|
||||
"description": {
|
||||
"translate": "advancement.create.refined_radiance.desc"
|
||||
},
|
||||
"frame": "goal",
|
||||
"show_toast": true,
|
||||
"announce_to_chat": true,
|
||||
"hidden": false
|
||||
},
|
||||
"criteria": {
|
||||
"0": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": [
|
||||
"create:refined_radiance"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"0"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
"parent": "create:chromatic_compound",
|
||||
"display": {
|
||||
"icon": {
|
||||
"item": "create:shadow_steel"
|
||||
},
|
||||
"title": {
|
||||
"translate": "advancement.create.shadow_steel"
|
||||
},
|
||||
"description": {
|
||||
"translate": "advancement.create.shadow_steel.desc"
|
||||
},
|
||||
"frame": "goal",
|
||||
"show_toast": true,
|
||||
"announce_to_chat": true,
|
||||
"hidden": false
|
||||
},
|
||||
"criteria": {
|
||||
"0": {
|
||||
"trigger": "minecraft:inventory_changed",
|
||||
"conditions": {
|
||||
"items": [
|
||||
{
|
||||
"items": [
|
||||
"create:shadow_steel"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"requirements": [
|
||||
[
|
||||
"0"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"parent": "create:refined_radiance",
|
||||
"parent": "create:precision_mechanism",
|
||||
"display": {
|
||||
"icon": {
|
||||
"item": "create:wand_of_symmetry"
|
||||
|
|
|
@ -1,23 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" B ",
|
||||
"SCS",
|
||||
" B "
|
||||
"B",
|
||||
"C",
|
||||
"B"
|
||||
],
|
||||
"key": {
|
||||
"B": {
|
||||
"item": "create:copper_casing"
|
||||
},
|
||||
"S": {
|
||||
"tag": "forge:nuggets/copper"
|
||||
"tag": "forge:plates/copper"
|
||||
},
|
||||
"C": {
|
||||
"tag": "forge:glass"
|
||||
"tag": "forge:barrels/wooden"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:fluid_tank",
|
||||
"count": 2
|
||||
"item": "create:fluid_tank"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"B",
|
||||
"C",
|
||||
"B"
|
||||
],
|
||||
"key": {
|
||||
"B": {
|
||||
"tag": "forge:plates/iron"
|
||||
},
|
||||
"C": {
|
||||
"tag": "forge:barrels/wooden"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "create:item_vault"
|
||||
}
|
||||
}
|
|
@ -157,9 +157,9 @@ import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock
|
|||
import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkBlock;
|
||||
import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkGenerator;
|
||||
import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchBlock;
|
||||
import com.simibubi.create.content.logistics.block.vault.VaultBlock;
|
||||
import com.simibubi.create.content.logistics.block.vault.VaultCTBehaviour;
|
||||
import com.simibubi.create.content.logistics.block.vault.VaultItem;
|
||||
import com.simibubi.create.content.logistics.block.vault.ItemVaultBlock;
|
||||
import com.simibubi.create.content.logistics.block.vault.ItemVaultCTBehaviour;
|
||||
import com.simibubi.create.content.logistics.block.vault.ItemVaultItem;
|
||||
import com.simibubi.create.content.logistics.item.LecternControllerBlock;
|
||||
import com.simibubi.create.content.schematics.block.SchematicTableBlock;
|
||||
import com.simibubi.create.content.schematics.block.SchematicannonBlock;
|
||||
|
@ -637,6 +637,7 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<BracketBlock> WOODEN_BRACKET = REGISTRATE.block("wooden_bracket", BracketBlock::new)
|
||||
.blockstate(new BracketGenerator("wooden")::generate)
|
||||
.properties(p -> p.sound(SoundType.SCAFFOLDING))
|
||||
.transform(axeOrPickaxe())
|
||||
.item(BracketBlockItem::new)
|
||||
.transform(BracketGenerator.itemModel("wooden"))
|
||||
|
@ -644,6 +645,7 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<BracketBlock> METAL_BRACKET = REGISTRATE.block("metal_bracket", BracketBlock::new)
|
||||
.blockstate(new BracketGenerator("metal")::generate)
|
||||
.properties(p -> p.sound(SoundType.NETHERITE_BLOCK))
|
||||
.transform(pickaxeOnly())
|
||||
.item(BracketBlockItem::new)
|
||||
.transform(BracketGenerator.itemModel("metal"))
|
||||
|
@ -652,7 +654,7 @@ public class AllBlocks {
|
|||
// Fluids
|
||||
|
||||
public static final BlockEntry<FluidPipeBlock> FLUID_PIPE = REGISTRATE.block("fluid_pipe", FluidPipeBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.pipe())
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
|
||||
|
@ -662,7 +664,7 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<EncasedPipeBlock> ENCASED_FLUID_PIPE =
|
||||
REGISTRATE.block("encased_fluid_pipe", EncasedPipeBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(axeOrPickaxe())
|
||||
.blockstate(BlockStateGen.encasedPipe())
|
||||
|
@ -675,7 +677,7 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<GlassFluidPipeBlock> GLASS_FLUID_PIPE =
|
||||
REGISTRATE.block("glass_fluid_pipe", GlassFluidPipeBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate((c, p) -> BlockStateGen.axisBlock(c, p, s -> p.models()
|
||||
|
@ -686,7 +688,7 @@ public class AllBlocks {
|
|||
.register();
|
||||
|
||||
public static final BlockEntry<PumpBlock> MECHANICAL_PUMP = REGISTRATE.block("mechanical_pump", PumpBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
|
||||
|
@ -697,7 +699,7 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<SmartFluidPipeBlock> SMART_FLUID_PIPE =
|
||||
REGISTRATE.block("smart_fluid_pipe", SmartFluidPipeBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(new SmartFluidPipeGenerator()::generate)
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
|
||||
|
@ -706,7 +708,7 @@ public class AllBlocks {
|
|||
.register();
|
||||
|
||||
public static final BlockEntry<FluidValveBlock> FLUID_VALVE = REGISTRATE.block("fluid_valve", FluidValveBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p,
|
||||
(state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal",
|
||||
|
@ -736,7 +738,7 @@ public class AllBlocks {
|
|||
});
|
||||
|
||||
public static final BlockEntry<FluidTankBlock> FLUID_TANK = REGISTRATE.block("fluid_tank", FluidTankBlock::regular)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(new FluidTankGenerator()::generate)
|
||||
|
@ -749,7 +751,7 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<FluidTankBlock> CREATIVE_FLUID_TANK =
|
||||
REGISTRATE.block("creative_fluid_tank", FluidTankBlock::creative)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(pickaxeOnly())
|
||||
.tag(AllBlockTags.SAFE_NBT.tag)
|
||||
|
@ -766,7 +768,7 @@ public class AllBlocks {
|
|||
.register();
|
||||
|
||||
public static final BlockEntry<HosePulleyBlock> HOSE_PULLEY = REGISTRATE.block("hose_pulley", HosePulleyBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(true))
|
||||
.transform(BlockStressDefaults.setImpact(4.0))
|
||||
|
@ -775,7 +777,7 @@ public class AllBlocks {
|
|||
.register();
|
||||
|
||||
public static final BlockEntry<ItemDrainBlock> ITEM_DRAIN = REGISTRATE.block("item_drain", ItemDrainBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.blockstate((c, p) -> p.simpleBlock(c.get(), AssetLookup.standardModel(c, p)))
|
||||
|
@ -783,7 +785,7 @@ public class AllBlocks {
|
|||
.register();
|
||||
|
||||
public static final BlockEntry<SpoutBlock> SPOUT = REGISTRATE.block("spout", SpoutBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate((ctx, prov) -> prov.simpleBlock(ctx.getEntry(), AssetLookup.partialBaseModel(ctx, prov)))
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
|
@ -793,7 +795,7 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<PortableStorageInterfaceBlock> PORTABLE_FLUID_INTERFACE =
|
||||
REGISTRATE.block("portable_fluid_interface", PortableStorageInterfaceBlock::forFluids)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.transform(axeOrPickaxe())
|
||||
.blockstate((c, p) -> p.directionalBlock(c.get(), AssetLookup.partialBaseModel(c, p)))
|
||||
.onRegister(addMovementBehaviour(new PortableStorageInterfaceMovement()))
|
||||
|
@ -820,6 +822,7 @@ public class AllBlocks {
|
|||
public static final BlockEntry<PistonExtensionPoleBlock> PISTON_EXTENSION_POLE =
|
||||
REGISTRATE.block("piston_extension_pole", PistonExtensionPoleBlock::new)
|
||||
.initialProperties(() -> Blocks.PISTON_HEAD)
|
||||
.properties(p -> p.sound(SoundType.SCAFFOLDING))
|
||||
.transform(axeOrPickaxe())
|
||||
.blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(false))
|
||||
.simpleItem()
|
||||
|
@ -1104,7 +1107,8 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<SailBlock> SAIL_FRAME = REGISTRATE.block("sail_frame", p -> SailBlock.frame(p))
|
||||
.initialProperties(SharedProperties::wooden)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.properties(p -> p.sound(SoundType.SCAFFOLDING)
|
||||
.noOcclusion())
|
||||
.transform(axeOnly())
|
||||
.blockstate(BlockStateGen.directionalBlockProvider(false))
|
||||
.tag(AllBlockTags.WINDMILL_SAILS.tag)
|
||||
|
@ -1115,7 +1119,8 @@ public class AllBlocks {
|
|||
public static final BlockEntry<SailBlock> SAIL =
|
||||
REGISTRATE.block("white_sail", p -> SailBlock.withCanvas(p, DyeColor.WHITE))
|
||||
.initialProperties(SharedProperties::wooden)
|
||||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.properties(p -> p.sound(SoundType.SCAFFOLDING)
|
||||
.noOcclusion())
|
||||
.transform(axeOnly())
|
||||
.blockstate(BlockStateGen.directionalBlockProvider(false))
|
||||
.tag(AllBlockTags.WINDMILL_SAILS.tag)
|
||||
|
@ -1150,6 +1155,7 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<CasingBlock> COPPER_CASING = REGISTRATE.block("copper_casing", CasingBlock::new)
|
||||
.transform(BuilderTransformers.casing(AllSpriteShifts.COPPER_CASING))
|
||||
.properties(p -> p.sound(SoundType.COPPER))
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<CasingBlock> SHADOW_STEEL_CASING =
|
||||
|
@ -1241,7 +1247,7 @@ public class AllBlocks {
|
|||
.transform(customItemModel())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<VaultBlock> ITEM_VAULT = REGISTRATE.block("item_vault", VaultBlock::new)
|
||||
public static final BlockEntry<ItemVaultBlock> ITEM_VAULT = REGISTRATE.block("item_vault", ItemVaultBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.properties(p -> p.sound(SoundType.NETHERITE_BLOCK)
|
||||
.explosionResistance(1200))
|
||||
|
@ -1249,10 +1255,10 @@ public class AllBlocks {
|
|||
.blockstate((c, p) -> p.getVariantBuilder(c.get())
|
||||
.forAllStates(s -> ConfiguredModel.builder()
|
||||
.modelFile(AssetLookup.standardModel(c, p))
|
||||
.rotationY(s.getValue(VaultBlock.HORIZONTAL_AXIS) == Axis.X ? 90 : 0)
|
||||
.rotationY(s.getValue(ItemVaultBlock.HORIZONTAL_AXIS) == Axis.X ? 90 : 0)
|
||||
.build()))
|
||||
.onRegister(connectedTextures(new VaultCTBehaviour()))
|
||||
.item(VaultItem::new)
|
||||
.onRegister(connectedTextures(new ItemVaultCTBehaviour()))
|
||||
.item(ItemVaultItem::new)
|
||||
.build()
|
||||
.register();
|
||||
|
||||
|
@ -1436,7 +1442,7 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<CopperBacktankBlock> COPPER_BACKTANK =
|
||||
REGISTRATE.block("copper_backtank", CopperBacktankBlock::new)
|
||||
.initialProperties(SharedProperties::softMetal)
|
||||
.initialProperties(SharedProperties::copperMetal)
|
||||
.blockstate((c, p) -> p.horizontalBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p)))
|
||||
.transform(pickaxeOnly())
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
|
|
|
@ -163,7 +163,7 @@ import com.simibubi.create.content.logistics.block.redstone.NixieTubeRenderer;
|
|||
import com.simibubi.create.content.logistics.block.redstone.NixieTubeTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.redstone.StockpileSwitchTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.vault.VaultTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.vault.ItemVaultTileEntity;
|
||||
import com.simibubi.create.content.logistics.item.LecternControllerRenderer;
|
||||
import com.simibubi.create.content.logistics.item.LecternControllerTileEntity;
|
||||
import com.simibubi.create.content.schematics.block.SchematicTableTileEntity;
|
||||
|
@ -408,8 +408,8 @@ public class AllTileEntities {
|
|||
.renderer(() -> ArmRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final TileEntityEntry<VaultTileEntity> ITEM_VAULT = Create.registrate()
|
||||
.tileEntity("item_vault", VaultTileEntity::new)
|
||||
public static final TileEntityEntry<ItemVaultTileEntity> ITEM_VAULT = Create.registrate()
|
||||
.tileEntity("item_vault", ItemVaultTileEntity::new)
|
||||
.validBlocks(AllBlocks.ITEM_VAULT)
|
||||
.register();
|
||||
|
||||
|
|
|
@ -29,8 +29,8 @@ import com.simibubi.create.content.contraptions.components.structureMovement.pul
|
|||
import com.simibubi.create.content.contraptions.fluids.tank.FluidTankBlock;
|
||||
import com.simibubi.create.content.contraptions.fluids.tank.FluidTankConnectivityHandler;
|
||||
import com.simibubi.create.content.logistics.block.redstone.RedstoneLinkBlock;
|
||||
import com.simibubi.create.content.logistics.block.vault.VaultBlock;
|
||||
import com.simibubi.create.content.logistics.block.vault.VaultConnectivityHandler;
|
||||
import com.simibubi.create.content.logistics.block.vault.ItemVaultBlock;
|
||||
import com.simibubi.create.content.logistics.block.vault.ItemVaultConnectivityHandler;
|
||||
import com.simibubi.create.foundation.config.ContraptionMovementSetting;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
@ -333,8 +333,8 @@ public class BlockMovementChecks {
|
|||
.getAxis();
|
||||
if (state.getBlock() instanceof FluidTankBlock)
|
||||
return FluidTankConnectivityHandler.isConnected(world, pos, pos.relative(direction));
|
||||
if (state.getBlock() instanceof VaultBlock)
|
||||
return VaultConnectivityHandler.isConnected(world, pos, pos.relative(direction));
|
||||
if (state.getBlock() instanceof ItemVaultBlock)
|
||||
return ItemVaultConnectivityHandler.isConnected(world, pos, pos.relative(direction));
|
||||
if (AllBlocks.STICKER.has(state) && state.getValue(StickerBlock.EXTENDED)) {
|
||||
return direction == state.getValue(StickerBlock.FACING)
|
||||
&& !isNotSupportive(world.getBlockState(pos.relative(direction)), direction.getOpposite());
|
||||
|
|
|
@ -57,9 +57,10 @@ import com.simibubi.create.content.contraptions.relays.advanced.GantryShaftBlock
|
|||
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
|
||||
import com.simibubi.create.content.logistics.block.inventories.CreativeCrateTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.redstone.RedstoneContactBlock;
|
||||
import com.simibubi.create.content.logistics.block.vault.VaultTileEntity;
|
||||
import com.simibubi.create.content.logistics.block.vault.ItemVaultTileEntity;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.fluid.CombinedTankWrapper;
|
||||
import com.simibubi.create.foundation.tileEntity.IMultiTileContainer;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
|
||||
import com.simibubi.create.foundation.utility.BlockFace;
|
||||
import com.simibubi.create.foundation.utility.ICoordinate;
|
||||
|
@ -337,6 +338,15 @@ public abstract class Contraption {
|
|||
frontier.add(attached);
|
||||
}
|
||||
|
||||
// Double Chest halves stick together
|
||||
if (state.hasProperty(ChestBlock.TYPE) && state.hasProperty(ChestBlock.FACING)
|
||||
&& state.getValue(ChestBlock.TYPE) != ChestType.SINGLE) {
|
||||
Direction offset = ChestBlock.getConnectedDirection(state);
|
||||
BlockPos attached = pos.relative(offset);
|
||||
if (!visited.contains(attached))
|
||||
frontier.add(attached);
|
||||
}
|
||||
|
||||
// Bearings potentially create stabilized sub-contraptions
|
||||
if (AllBlocks.MECHANICAL_BEARING.has(state))
|
||||
moveBearing(pos, frontier, visited, state);
|
||||
|
@ -593,8 +603,6 @@ public abstract class Contraption {
|
|||
|
||||
protected Pair<StructureBlockInfo, BlockEntity> capture(Level world, BlockPos pos) {
|
||||
BlockState blockstate = world.getBlockState(pos);
|
||||
if (blockstate.getBlock() instanceof ChestBlock)
|
||||
blockstate = blockstate.setValue(ChestBlock.TYPE, ChestType.SINGLE);
|
||||
if (AllBlocks.REDSTONE_CONTACT.has(blockstate))
|
||||
blockstate = blockstate.setValue(RedstoneContactBlock.POWERED, true);
|
||||
if (blockstate.getBlock() instanceof ButtonBlock) {
|
||||
|
@ -647,7 +655,7 @@ public abstract class Contraption {
|
|||
nbt.remove("y");
|
||||
nbt.remove("z");
|
||||
|
||||
if ((tileentity instanceof FluidTankTileEntity || tileentity instanceof VaultTileEntity)
|
||||
if ((tileentity instanceof FluidTankTileEntity || tileentity instanceof ItemVaultTileEntity)
|
||||
&& nbt.contains("Controller"))
|
||||
nbt.put("Controller",
|
||||
NbtUtils.writeBlockPos(toLocalPos(NbtUtils.readBlockPos(nbt.getCompound("Controller")))));
|
||||
|
@ -1066,8 +1074,8 @@ public abstract class Contraption {
|
|||
tag.remove("InitialOffset");
|
||||
}
|
||||
|
||||
if (tileEntity instanceof FluidTankTileEntity && tag.contains("LastKnownPos"))
|
||||
tag.put("LastKnownPos", NbtUtils.writeBlockPos(BlockPos.ZERO.below()));
|
||||
if (tileEntity instanceof IMultiTileContainer && tag.contains("LastKnownPos"))
|
||||
tag.put("LastKnownPos", NbtUtils.writeBlockPos(BlockPos.ZERO.below(Integer.MAX_VALUE - 1)));
|
||||
|
||||
tileEntity.load(tag);
|
||||
|
||||
|
|
|
@ -4,17 +4,17 @@ import com.simibubi.create.AllTileEntities;
|
|||
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCrafterTileEntity;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingInventory;
|
||||
import com.simibubi.create.content.logistics.block.inventories.BottomlessItemHandler;
|
||||
import com.simibubi.create.content.logistics.block.vault.ItemVaultTileEntity;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
|
||||
import net.minecraft.core.NonNullList;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.world.ContainerHelper;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.block.ChestBlock;
|
||||
import net.minecraft.world.level.block.entity.BarrelBlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.entity.ChestBlockEntity;
|
||||
import net.minecraft.world.level.block.entity.ShulkerBoxBlockEntity;
|
||||
import net.minecraft.world.level.block.state.properties.ChestType;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
import net.minecraftforge.items.IItemHandler;
|
||||
|
@ -32,7 +32,7 @@ public class MountedStorage {
|
|||
public static boolean canUseAsStorage(BlockEntity te) {
|
||||
if (te == null)
|
||||
return false;
|
||||
|
||||
|
||||
if (te instanceof MechanicalCrafterTileEntity)
|
||||
return false;
|
||||
|
||||
|
@ -44,6 +44,8 @@ public class MountedStorage {
|
|||
return true;
|
||||
if (te instanceof BarrelBlockEntity)
|
||||
return true;
|
||||
if (te instanceof ItemVaultTileEntity)
|
||||
return true;
|
||||
|
||||
LazyOptional<IItemHandler> capability = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY);
|
||||
IItemHandler handler = capability.orElse(null);
|
||||
|
@ -60,13 +62,18 @@ public class MountedStorage {
|
|||
if (te == null)
|
||||
return;
|
||||
|
||||
// Split double chests
|
||||
if (te.getType() == BlockEntityType.CHEST || te.getType() == BlockEntityType.TRAPPED_CHEST) {
|
||||
if (te.getBlockState()
|
||||
.getValue(ChestBlock.TYPE) != ChestType.SINGLE)
|
||||
te.getLevel()
|
||||
.setBlockAndUpdate(te.getBlockPos(), te.getBlockState()
|
||||
.setValue(ChestBlock.TYPE, ChestType.SINGLE));
|
||||
if (te instanceof ChestBlockEntity) {
|
||||
CompoundTag tag = te.save(new CompoundTag());
|
||||
if (tag.contains("LootTable", 8))
|
||||
return;
|
||||
|
||||
handler = new ItemStackHandler(((ChestBlockEntity) te).getContainerSize());
|
||||
NonNullList<ItemStack> items = NonNullList.withSize(handler.getSlots(), ItemStack.EMPTY);
|
||||
ContainerHelper.loadAllItems(tag, items);
|
||||
for (int i = 0; i < items.size(); i++)
|
||||
handler.setStackInSlot(i, items.get(i));
|
||||
valid = true;
|
||||
return;
|
||||
}
|
||||
|
||||
IItemHandler teHandler = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
|
||||
|
@ -74,6 +81,13 @@ public class MountedStorage {
|
|||
if (teHandler == dummyHandler)
|
||||
return;
|
||||
|
||||
// multiblock vaults need to provide individual invs
|
||||
if (te instanceof ItemVaultTileEntity) {
|
||||
handler = ((ItemVaultTileEntity) te).getInventoryOfBlock();
|
||||
valid = true;
|
||||
return;
|
||||
}
|
||||
|
||||
// te uses ItemStackHandler
|
||||
if (teHandler instanceof ItemStackHandler) {
|
||||
handler = (ItemStackHandler) teHandler;
|
||||
|
@ -99,7 +113,23 @@ public class MountedStorage {
|
|||
// FIXME: More dynamic mounted storage in .4
|
||||
if (handler instanceof BottomlessItemHandler)
|
||||
return;
|
||||
|
||||
if (te instanceof ChestBlockEntity) {
|
||||
CompoundTag tag = te.save(new CompoundTag());
|
||||
tag.remove("Items");
|
||||
NonNullList<ItemStack> items = NonNullList.withSize(handler.getSlots(), ItemStack.EMPTY);
|
||||
for (int i = 0; i < items.size(); i++)
|
||||
items.set(i, handler.getStackInSlot(i));
|
||||
ContainerHelper.saveAllItems(tag, items);
|
||||
te.load(tag);
|
||||
return;
|
||||
}
|
||||
|
||||
if (te instanceof ItemVaultTileEntity) {
|
||||
((ItemVaultTileEntity) te).applyInventoryToBlock(handler);
|
||||
return;
|
||||
}
|
||||
|
||||
LazyOptional<IItemHandler> capability = te.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY);
|
||||
IItemHandler teHandler = capability.orElse(null);
|
||||
if (!(teHandler instanceof IItemHandlerModifiable))
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
|||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.InteractionResult;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
|
@ -48,7 +49,15 @@ public class BracketBlockItem extends BlockItem {
|
|||
return InteractionResult.SUCCESS;
|
||||
|
||||
BlockState bracket = behaviour.getBracket();
|
||||
behaviour.applyBracket(suitableBracket.get());
|
||||
BlockState newBracket = suitableBracket.get();
|
||||
|
||||
if (bracket == newBracket)
|
||||
return InteractionResult.SUCCESS;
|
||||
|
||||
world.playSound(null, pos, newBracket
|
||||
.getSoundType()
|
||||
.getPlaceSound(), SoundSource.BLOCKS, 0.75f, 1);
|
||||
behaviour.applyBracket(newBracket);
|
||||
|
||||
if (!world.isClientSide && player != null)
|
||||
behaviour.triggerAdvancements(world, player, state);
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.simibubi.create.content.contraptions.fluids.tank.FluidTankBlock.Shape
|
|||
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.fluid.SmartFluidTank;
|
||||
import com.simibubi.create.foundation.tileEntity.IMultiTileContainer;
|
||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.utility.animation.InterpolatedChasingValue;
|
||||
|
@ -36,7 +37,7 @@ import net.minecraftforge.fluids.capability.IFluidHandler;
|
|||
import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction;
|
||||
import net.minecraftforge.fluids.capability.templates.FluidTank;
|
||||
|
||||
public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleInformation {
|
||||
public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleInformation, IMultiTileContainer {
|
||||
|
||||
private static final int MAX_SIZE = 3;
|
||||
|
||||
|
@ -106,10 +107,12 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
|
|||
fluidLevel.tick();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockPos getLastKnownPos() {
|
||||
return lastKnownPos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isController() {
|
||||
return controller == null
|
||||
|| worldPosition.getX() == controller.getX() && worldPosition.getY() == controller.getY() && worldPosition.getZ() == controller.getZ();
|
||||
|
@ -277,6 +280,7 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setController(BlockPos controller) {
|
||||
if (level.isClientSide && !isVirtual())
|
||||
return;
|
||||
|
@ -295,6 +299,7 @@ public class FluidTankTileEntity extends SmartTileEntity implements IHaveGoggleI
|
|||
oldCap.invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockPos getController() {
|
||||
return isController() ? worldPosition : controller;
|
||||
}
|
||||
|
|
|
@ -33,12 +33,12 @@ import net.minecraft.world.level.block.state.properties.Property;
|
|||
import net.minecraftforge.common.util.ForgeSoundType;
|
||||
import net.minecraftforge.items.CapabilityItemHandler;
|
||||
|
||||
public class VaultBlock extends Block implements IWrenchable, ITE<VaultTileEntity> {
|
||||
public class ItemVaultBlock extends Block implements IWrenchable, ITE<ItemVaultTileEntity> {
|
||||
|
||||
public static final Property<Axis> HORIZONTAL_AXIS = BlockStateProperties.HORIZONTAL_AXIS;
|
||||
public static final BooleanProperty LARGE = BooleanProperty.create("large");
|
||||
|
||||
public VaultBlock(Properties p_i48440_1_) {
|
||||
public ItemVaultBlock(Properties p_i48440_1_) {
|
||||
super(p_i48440_1_);
|
||||
registerDefaultState(defaultBlockState().setValue(LARGE, false));
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ public class VaultBlock extends Block implements IWrenchable, ITE<VaultTileEntit
|
|||
return;
|
||||
if (pIsMoving)
|
||||
return;
|
||||
withTileEntityDo(pLevel, pPos, VaultTileEntity::updateConnectivity);
|
||||
withTileEntityDo(pLevel, pPos, ItemVaultTileEntity::updateConnectivity);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -83,9 +83,9 @@ public class VaultBlock extends Block implements IWrenchable, ITE<VaultTileEntit
|
|||
.isVertical()) {
|
||||
BlockEntity te = context.getLevel()
|
||||
.getBlockEntity(context.getClickedPos());
|
||||
if (te instanceof VaultTileEntity) {
|
||||
VaultTileEntity vault = (VaultTileEntity) te;
|
||||
VaultConnectivityHandler.splitVault(vault);
|
||||
if (te instanceof ItemVaultTileEntity) {
|
||||
ItemVaultTileEntity vault = (ItemVaultTileEntity) te;
|
||||
ItemVaultConnectivityHandler.splitVault(vault);
|
||||
vault.removeController(true);
|
||||
}
|
||||
state = state.setValue(LARGE, false);
|
||||
|
@ -98,12 +98,12 @@ public class VaultBlock extends Block implements IWrenchable, ITE<VaultTileEntit
|
|||
public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean pIsMoving) {
|
||||
if (state.hasBlockEntity() && (state.getBlock() != newState.getBlock() || !newState.hasBlockEntity())) {
|
||||
BlockEntity te = world.getBlockEntity(pos);
|
||||
if (!(te instanceof VaultTileEntity))
|
||||
if (!(te instanceof ItemVaultTileEntity))
|
||||
return;
|
||||
VaultTileEntity tankTE = (VaultTileEntity) te;
|
||||
ItemVaultTileEntity tankTE = (ItemVaultTileEntity) te;
|
||||
ItemHelper.dropContents(world, pos, tankTE.inventory);
|
||||
world.removeBlockEntity(pos);
|
||||
VaultConnectivityHandler.splitVault(tankTE);
|
||||
ItemVaultConnectivityHandler.splitVault(tankTE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,12 +166,12 @@ public class VaultBlock extends Block implements IWrenchable, ITE<VaultTileEntit
|
|||
}
|
||||
|
||||
@Override
|
||||
public BlockEntityType<? extends VaultTileEntity> getTileEntityType() {
|
||||
public BlockEntityType<? extends ItemVaultTileEntity> getTileEntityType() {
|
||||
return AllTileEntities.ITEM_VAULT.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<VaultTileEntity> getTileEntityClass() {
|
||||
return VaultTileEntity.class;
|
||||
public Class<ItemVaultTileEntity> getTileEntityClass() {
|
||||
return ItemVaultTileEntity.class;
|
||||
}
|
||||
}
|
|
@ -11,12 +11,12 @@ import net.minecraft.core.Direction.AxisDirection;
|
|||
import net.minecraft.world.level.BlockAndTintGetter;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class VaultCTBehaviour extends ConnectedTextureBehaviour {
|
||||
public class ItemVaultCTBehaviour extends ConnectedTextureBehaviour {
|
||||
|
||||
@Override
|
||||
public CTSpriteShiftEntry get(BlockState state, Direction direction) {
|
||||
Axis vaultBlockAxis = VaultBlock.getVaultBlockAxis(state);
|
||||
boolean small = !VaultBlock.isLarge(state);
|
||||
Axis vaultBlockAxis = ItemVaultBlock.getVaultBlockAxis(state);
|
||||
boolean small = !ItemVaultBlock.isLarge(state);
|
||||
if (vaultBlockAxis == null)
|
||||
return null;
|
||||
|
||||
|
@ -32,7 +32,7 @@ public class VaultCTBehaviour extends ConnectedTextureBehaviour {
|
|||
|
||||
@Override
|
||||
protected Direction getUpDirection(BlockAndTintGetter reader, BlockPos pos, BlockState state, Direction face) {
|
||||
Axis vaultBlockAxis = VaultBlock.getVaultBlockAxis(state);
|
||||
Axis vaultBlockAxis = ItemVaultBlock.getVaultBlockAxis(state);
|
||||
boolean alongX = vaultBlockAxis == Axis.X;
|
||||
if (face.getAxis()
|
||||
.isVertical() && alongX)
|
||||
|
@ -45,7 +45,7 @@ public class VaultCTBehaviour extends ConnectedTextureBehaviour {
|
|||
|
||||
@Override
|
||||
protected Direction getRightDirection(BlockAndTintGetter reader, BlockPos pos, BlockState state, Direction face) {
|
||||
Axis vaultBlockAxis = VaultBlock.getVaultBlockAxis(state);
|
||||
Axis vaultBlockAxis = ItemVaultBlock.getVaultBlockAxis(state);
|
||||
if (face.getAxis()
|
||||
.isVertical() && vaultBlockAxis == Axis.X)
|
||||
return super.getRightDirection(reader, pos, state, face).getClockWise();
|
||||
|
@ -62,7 +62,7 @@ public class VaultCTBehaviour extends ConnectedTextureBehaviour {
|
|||
@Override
|
||||
public boolean connectsTo(BlockState state, BlockState other, BlockAndTintGetter reader, BlockPos pos,
|
||||
BlockPos otherPos, Direction face) {
|
||||
return state == other && VaultConnectivityHandler.isConnected(reader, pos, otherPos);
|
||||
return state == other && ItemVaultConnectivityHandler.isConnected(reader, pos, otherPos);
|
||||
}
|
||||
|
||||
}
|
|
@ -26,22 +26,22 @@ import net.minecraft.world.level.block.entity.BlockEntity;
|
|||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class VaultConnectivityHandler {
|
||||
public class ItemVaultConnectivityHandler {
|
||||
|
||||
public static void formVaults(VaultTileEntity te) {
|
||||
public static void formVaults(ItemVaultTileEntity te) {
|
||||
VaultSearchCache cache = new VaultSearchCache();
|
||||
List<VaultTileEntity> frontier = new ArrayList<>();
|
||||
List<ItemVaultTileEntity> frontier = new ArrayList<>();
|
||||
frontier.add(te);
|
||||
formVaults(te.getType(), te.getLevel(), cache, frontier);
|
||||
}
|
||||
|
||||
private static void formVaults(BlockEntityType<?> type, BlockGetter world, VaultSearchCache cache,
|
||||
List<VaultTileEntity> frontier) {
|
||||
PriorityQueue<Pair<Integer, VaultTileEntity>> creationQueue = makeCreationQueue();
|
||||
List<ItemVaultTileEntity> frontier) {
|
||||
PriorityQueue<Pair<Integer, ItemVaultTileEntity>> creationQueue = makeCreationQueue();
|
||||
Set<BlockPos> visited = new HashSet<>();
|
||||
|
||||
int minY = Integer.MAX_VALUE;
|
||||
for (VaultTileEntity fluidTankTileEntity : frontier) {
|
||||
for (ItemVaultTileEntity fluidTankTileEntity : frontier) {
|
||||
BlockPos pos = fluidTankTileEntity.getBlockPos();
|
||||
minY = Math.min(pos.getY(), minY);
|
||||
}
|
||||
|
@ -49,7 +49,7 @@ public class VaultConnectivityHandler {
|
|||
minY -= 3;
|
||||
|
||||
while (!frontier.isEmpty()) {
|
||||
VaultTileEntity tank = frontier.remove(0);
|
||||
ItemVaultTileEntity tank = frontier.remove(0);
|
||||
BlockPos tankPos = tank.getBlockPos();
|
||||
if (visited.contains(tankPos))
|
||||
continue;
|
||||
|
@ -68,7 +68,7 @@ public class VaultConnectivityHandler {
|
|||
continue;
|
||||
if (visited.contains(next))
|
||||
continue;
|
||||
VaultTileEntity nextTank = vaultAt(type, world, next);
|
||||
ItemVaultTileEntity nextTank = vaultAt(type, world, next);
|
||||
if (nextTank == null)
|
||||
continue;
|
||||
if (nextTank.isRemoved())
|
||||
|
@ -80,8 +80,8 @@ public class VaultConnectivityHandler {
|
|||
visited.clear();
|
||||
|
||||
while (!creationQueue.isEmpty()) {
|
||||
Pair<Integer, VaultTileEntity> next = creationQueue.poll();
|
||||
VaultTileEntity toCreate = next.getValue();
|
||||
Pair<Integer, ItemVaultTileEntity> next = creationQueue.poll();
|
||||
ItemVaultTileEntity toCreate = next.getValue();
|
||||
if (visited.contains(toCreate.getBlockPos()))
|
||||
continue;
|
||||
visited.add(toCreate.getBlockPos());
|
||||
|
@ -90,11 +90,11 @@ public class VaultConnectivityHandler {
|
|||
|
||||
}
|
||||
|
||||
public static void splitVault(VaultTileEntity te) {
|
||||
public static void splitVault(ItemVaultTileEntity te) {
|
||||
splitVaultAndInvalidate(te, null, false);
|
||||
}
|
||||
|
||||
private static int tryToFormNewVault(VaultTileEntity te, VaultSearchCache cache, boolean simulate) {
|
||||
private static int tryToFormNewVault(ItemVaultTileEntity te, VaultSearchCache cache, boolean simulate) {
|
||||
int bestWidth = 1;
|
||||
int bestAmount = -1;
|
||||
|
||||
|
@ -120,9 +120,9 @@ public class VaultConnectivityHandler {
|
|||
te.length = bestAmount / bestWidth / bestWidth;
|
||||
|
||||
BlockState state = te.getBlockState();
|
||||
if (VaultBlock.isVault(state))
|
||||
if (ItemVaultBlock.isVault(state))
|
||||
te.getLevel()
|
||||
.setBlock(te.getBlockPos(), state.setValue(VaultBlock.LARGE, te.radius > 2), 22);
|
||||
.setBlock(te.getBlockPos(), state.setValue(ItemVaultBlock.LARGE, te.radius > 2), 22);
|
||||
|
||||
te.itemCapability.invalidate();
|
||||
te.setChanged();
|
||||
|
@ -131,34 +131,34 @@ public class VaultConnectivityHandler {
|
|||
return bestAmount;
|
||||
}
|
||||
|
||||
private static int tryToFormNewVaultOfRadius(VaultTileEntity te, int width, VaultSearchCache cache,
|
||||
private static int tryToFormNewVaultOfRadius(ItemVaultTileEntity te, int width, VaultSearchCache cache,
|
||||
boolean simulate) {
|
||||
int amount = 0;
|
||||
int height = 0;
|
||||
BlockEntityType<?> type = te.getType();
|
||||
Level world = te.getLevel();
|
||||
BlockPos origin = te.getBlockPos();
|
||||
boolean alongZ = VaultBlock.getVaultBlockAxis(te.getBlockState()) == Axis.Z;
|
||||
boolean alongZ = ItemVaultBlock.getVaultBlockAxis(te.getBlockState()) == Axis.Z;
|
||||
|
||||
Search:
|
||||
|
||||
for (int yOffset = 0; yOffset < VaultTileEntity.getMaxLength(width); yOffset++) {
|
||||
for (int yOffset = 0; yOffset < ItemVaultTileEntity.getMaxLength(width); yOffset++) {
|
||||
for (int xOffset = 0; xOffset < width; xOffset++) {
|
||||
for (int zOffset = 0; zOffset < width; zOffset++) {
|
||||
|
||||
BlockPos pos =
|
||||
alongZ ? origin.offset(xOffset, zOffset, yOffset) : origin.offset(yOffset, xOffset, zOffset);
|
||||
Optional<VaultTileEntity> tank = cache.getOrCache(type, world, pos);
|
||||
Optional<ItemVaultTileEntity> tank = cache.getOrCache(type, world, pos);
|
||||
if (!tank.isPresent())
|
||||
break Search;
|
||||
|
||||
VaultTileEntity controller = tank.get();
|
||||
ItemVaultTileEntity controller = tank.get();
|
||||
int otherWidth = controller.radius;
|
||||
if (otherWidth > width)
|
||||
break Search;
|
||||
if (otherWidth == width && controller.length == VaultTileEntity.getMaxLength(width))
|
||||
if (otherWidth == width && controller.length == ItemVaultTileEntity.getMaxLength(width))
|
||||
break Search;
|
||||
if ((VaultBlock.getVaultBlockAxis(controller.getBlockState()) == Axis.Z) != alongZ)
|
||||
if ((ItemVaultBlock.getVaultBlockAxis(controller.getBlockState()) == Axis.Z) != alongZ)
|
||||
break Search;
|
||||
|
||||
BlockPos controllerPos = controller.getBlockPos();
|
||||
|
@ -192,7 +192,7 @@ public class VaultConnectivityHandler {
|
|||
for (int zOffset = 0; zOffset < width; zOffset++) {
|
||||
BlockPos pos =
|
||||
alongZ ? origin.offset(xOffset, zOffset, yOffset) : origin.offset(yOffset, xOffset, zOffset);
|
||||
VaultTileEntity tank = vaultAt(type, world, pos);
|
||||
ItemVaultTileEntity tank = vaultAt(type, world, pos);
|
||||
if (tank == te)
|
||||
continue;
|
||||
|
||||
|
@ -202,9 +202,9 @@ public class VaultConnectivityHandler {
|
|||
cache.put(pos, te);
|
||||
|
||||
BlockState state = world.getBlockState(pos);
|
||||
if (!VaultBlock.isVault(state))
|
||||
if (!ItemVaultBlock.isVault(state))
|
||||
continue;
|
||||
state = state.setValue(VaultBlock.LARGE, width > 2);
|
||||
state = state.setValue(ItemVaultBlock.LARGE, width > 2);
|
||||
world.setBlock(pos, state, 22);
|
||||
}
|
||||
}
|
||||
|
@ -213,7 +213,7 @@ public class VaultConnectivityHandler {
|
|||
return amount;
|
||||
}
|
||||
|
||||
private static void splitVaultAndInvalidate(VaultTileEntity te, @Nullable VaultSearchCache cache,
|
||||
private static void splitVaultAndInvalidate(ItemVaultTileEntity te, @Nullable VaultSearchCache cache,
|
||||
boolean tryReconnect) {
|
||||
// tryReconnect helps whenever only few tanks have been removed
|
||||
|
||||
|
@ -224,13 +224,13 @@ public class VaultConnectivityHandler {
|
|||
int height = te.length;
|
||||
int width = te.radius;
|
||||
BlockState state = te.getBlockState();
|
||||
boolean alongZ = VaultBlock.getVaultBlockAxis(state) == Axis.Z;
|
||||
boolean alongZ = ItemVaultBlock.getVaultBlockAxis(state) == Axis.Z;
|
||||
if (width == 1 && height == 1)
|
||||
return;
|
||||
|
||||
Level world = te.getLevel();
|
||||
BlockPos origin = te.getBlockPos();
|
||||
List<VaultTileEntity> frontier = new ArrayList<>();
|
||||
List<ItemVaultTileEntity> frontier = new ArrayList<>();
|
||||
|
||||
for (int yOffset = 0; yOffset < height; yOffset++) {
|
||||
for (int xOffset = 0; xOffset < width; xOffset++) {
|
||||
|
@ -238,7 +238,7 @@ public class VaultConnectivityHandler {
|
|||
|
||||
BlockPos pos =
|
||||
alongZ ? origin.offset(xOffset, zOffset, yOffset) : origin.offset(yOffset, xOffset, zOffset);
|
||||
VaultTileEntity tankAt = vaultAt(te.getType(), world, pos);
|
||||
ItemVaultTileEntity tankAt = vaultAt(te.getType(), world, pos);
|
||||
if (tankAt == null)
|
||||
continue;
|
||||
if (!tankAt.getController()
|
||||
|
@ -262,31 +262,31 @@ public class VaultConnectivityHandler {
|
|||
formVaults(te.getType(), world, cache == null ? new VaultSearchCache() : cache, frontier);
|
||||
}
|
||||
|
||||
private static PriorityQueue<Pair<Integer, VaultTileEntity>> makeCreationQueue() {
|
||||
return new PriorityQueue<>(new Comparator<Pair<Integer, VaultTileEntity>>() {
|
||||
private static PriorityQueue<Pair<Integer, ItemVaultTileEntity>> makeCreationQueue() {
|
||||
return new PriorityQueue<>(new Comparator<Pair<Integer, ItemVaultTileEntity>>() {
|
||||
@Override
|
||||
public int compare(Pair<Integer, VaultTileEntity> o1, Pair<Integer, VaultTileEntity> o2) {
|
||||
public int compare(Pair<Integer, ItemVaultTileEntity> o1, Pair<Integer, ItemVaultTileEntity> o2) {
|
||||
return o2.getKey() - o1.getKey();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static VaultTileEntity vaultAt(BlockEntityType<?> type, BlockGetter world, BlockPos pos) {
|
||||
public static ItemVaultTileEntity vaultAt(BlockEntityType<?> type, BlockGetter world, BlockPos pos) {
|
||||
BlockEntity te = world.getBlockEntity(pos);
|
||||
if (te instanceof VaultTileEntity && te.getType() == type)
|
||||
return (VaultTileEntity) te;
|
||||
if (te instanceof ItemVaultTileEntity && te.getType() == type)
|
||||
return (ItemVaultTileEntity) te;
|
||||
return null;
|
||||
}
|
||||
|
||||
private static class VaultSearchCache {
|
||||
Map<BlockPos, Optional<VaultTileEntity>> controllerMap;
|
||||
Map<BlockPos, Optional<ItemVaultTileEntity>> controllerMap;
|
||||
|
||||
public VaultSearchCache() {
|
||||
controllerMap = new HashMap<>();
|
||||
}
|
||||
|
||||
void put(BlockPos pos, VaultTileEntity target) {
|
||||
void put(BlockPos pos, ItemVaultTileEntity target) {
|
||||
controllerMap.put(pos, Optional.of(target));
|
||||
}
|
||||
|
||||
|
@ -298,15 +298,15 @@ public class VaultConnectivityHandler {
|
|||
return controllerMap.containsKey(pos);
|
||||
}
|
||||
|
||||
Optional<VaultTileEntity> getOrCache(BlockEntityType<?> type, BlockGetter world, BlockPos pos) {
|
||||
Optional<ItemVaultTileEntity> getOrCache(BlockEntityType<?> type, BlockGetter world, BlockPos pos) {
|
||||
if (hasVisited(pos))
|
||||
return controllerMap.get(pos);
|
||||
VaultTileEntity tankAt = vaultAt(type, world, pos);
|
||||
ItemVaultTileEntity tankAt = vaultAt(type, world, pos);
|
||||
if (tankAt == null) {
|
||||
putEmpty(pos);
|
||||
return Optional.empty();
|
||||
}
|
||||
VaultTileEntity controller = tankAt.getControllerTE();
|
||||
ItemVaultTileEntity controller = tankAt.getControllerTE();
|
||||
if (controller == null) {
|
||||
putEmpty(pos);
|
||||
return Optional.empty();
|
||||
|
@ -320,10 +320,10 @@ public class VaultConnectivityHandler {
|
|||
public static boolean isConnected(BlockGetter world, BlockPos tankPos, BlockPos otherTankPos) {
|
||||
BlockEntity te1 = world.getBlockEntity(tankPos);
|
||||
BlockEntity te2 = world.getBlockEntity(otherTankPos);
|
||||
if (!(te1 instanceof VaultTileEntity) || !(te2 instanceof VaultTileEntity))
|
||||
if (!(te1 instanceof ItemVaultTileEntity) || !(te2 instanceof ItemVaultTileEntity))
|
||||
return false;
|
||||
return ((VaultTileEntity) te1).getController()
|
||||
.equals(((VaultTileEntity) te2).getController());
|
||||
return ((ItemVaultTileEntity) te1).getController()
|
||||
.equals(((ItemVaultTileEntity) te2).getController());
|
||||
}
|
||||
|
||||
}
|
|
@ -18,9 +18,9 @@ import net.minecraft.world.level.Level;
|
|||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class VaultItem extends BlockItem {
|
||||
public class ItemVaultItem extends BlockItem {
|
||||
|
||||
public VaultItem(Block p_i48527_1_, Properties p_i48527_2_) {
|
||||
public ItemVaultItem(Block p_i48527_1_, Properties p_i48527_2_) {
|
||||
super(p_i48527_1_, p_i48527_2_);
|
||||
}
|
||||
|
||||
|
@ -62,12 +62,12 @@ public class VaultItem extends BlockItem {
|
|||
BlockPos placedOnPos = pos.relative(face.getOpposite());
|
||||
BlockState placedOnState = world.getBlockState(placedOnPos);
|
||||
|
||||
if (!VaultBlock.isVault(placedOnState))
|
||||
if (!ItemVaultBlock.isVault(placedOnState))
|
||||
return;
|
||||
VaultTileEntity tankAt = VaultConnectivityHandler.vaultAt(AllTileEntities.ITEM_VAULT.get(), world, placedOnPos);
|
||||
ItemVaultTileEntity tankAt = ItemVaultConnectivityHandler.vaultAt(AllTileEntities.ITEM_VAULT.get(), world, placedOnPos);
|
||||
if (tankAt == null)
|
||||
return;
|
||||
VaultTileEntity controllerTE = tankAt.getControllerTE();
|
||||
ItemVaultTileEntity controllerTE = tankAt.getControllerTE();
|
||||
if (controllerTE == null)
|
||||
return;
|
||||
|
||||
|
@ -76,7 +76,7 @@ public class VaultItem extends BlockItem {
|
|||
return;
|
||||
|
||||
int tanksToPlace = 0;
|
||||
Axis vaultBlockAxis = VaultBlock.getVaultBlockAxis(placedOnState);
|
||||
Axis vaultBlockAxis = ItemVaultBlock.getVaultBlockAxis(placedOnState);
|
||||
if (vaultBlockAxis == null)
|
||||
return;
|
||||
if (face.getAxis() != vaultBlockAxis)
|
||||
|
@ -96,7 +96,7 @@ public class VaultItem extends BlockItem {
|
|||
BlockPos offsetPos = vaultBlockAxis == Axis.X ? startPos.offset(0, xOffset, zOffset)
|
||||
: startPos.offset(xOffset, zOffset, 0);
|
||||
BlockState blockState = world.getBlockState(offsetPos);
|
||||
if (VaultBlock.isVault(blockState))
|
||||
if (ItemVaultBlock.isVault(blockState))
|
||||
continue;
|
||||
if (!blockState.getMaterial()
|
||||
.isReplaceable())
|
||||
|
@ -113,7 +113,7 @@ public class VaultItem extends BlockItem {
|
|||
BlockPos offsetPos = vaultBlockAxis == Axis.X ? startPos.offset(0, xOffset, zOffset)
|
||||
: startPos.offset(xOffset, zOffset, 0);
|
||||
BlockState blockState = world.getBlockState(offsetPos);
|
||||
if (VaultBlock.isVault(blockState))
|
||||
if (ItemVaultBlock.isVault(blockState))
|
||||
continue;
|
||||
BlockPlaceContext context = BlockPlaceContext.at(ctx, offsetPos, face);
|
||||
player.getPersistentData()
|
|
@ -4,6 +4,7 @@ import java.util.List;
|
|||
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.tileEntity.IMultiTileContainer;
|
||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
|
||||
|
@ -12,6 +13,7 @@ import net.minecraft.core.Direction;
|
|||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.NbtUtils;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
|
@ -23,7 +25,7 @@ import net.minecraftforge.items.IItemHandlerModifiable;
|
|||
import net.minecraftforge.items.ItemStackHandler;
|
||||
import net.minecraftforge.items.wrapper.CombinedInvWrapper;
|
||||
|
||||
public class VaultTileEntity extends SmartTileEntity {
|
||||
public class ItemVaultTileEntity extends SmartTileEntity implements IMultiTileContainer {
|
||||
|
||||
protected LazyOptional<IItemHandler> itemCapability;
|
||||
|
||||
|
@ -35,7 +37,7 @@ public class VaultTileEntity extends SmartTileEntity {
|
|||
protected int length;
|
||||
protected Axis axis;
|
||||
|
||||
public VaultTileEntity(BlockEntityType<?> tileEntityTypeIn, BlockPos pos, BlockState state) {
|
||||
public ItemVaultTileEntity(BlockEntityType<?> tileEntityTypeIn, BlockPos pos, BlockState state) {
|
||||
super(tileEntityTypeIn, pos, state);
|
||||
|
||||
inventory = new ItemStackHandler(AllConfigs.SERVER.logistics.vaultCapacity.get()) {
|
||||
|
@ -60,11 +62,11 @@ public class VaultTileEntity extends SmartTileEntity {
|
|||
return;
|
||||
if (!isController())
|
||||
return;
|
||||
VaultConnectivityHandler.formVaults(this);
|
||||
ItemVaultConnectivityHandler.formVaults(this);
|
||||
}
|
||||
|
||||
protected void updateComparators() {
|
||||
VaultTileEntity controllerTE = getControllerTE();
|
||||
ItemVaultTileEntity controllerTE = getControllerTE();
|
||||
if (controllerTE == null)
|
||||
return;
|
||||
|
||||
|
@ -92,23 +94,29 @@ public class VaultTileEntity extends SmartTileEntity {
|
|||
if (updateConnectivity)
|
||||
updateConnectivity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockPos getLastKnownPos() {
|
||||
return lastKnownPos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isController() {
|
||||
return controller == null || worldPosition.getX() == controller.getX()
|
||||
&& worldPosition.getY() == controller.getY() && worldPosition.getZ() == controller.getZ();
|
||||
}
|
||||
|
||||
|
||||
private void onPositionChanged() {
|
||||
removeController(true);
|
||||
lastKnownPos = worldPosition;
|
||||
}
|
||||
|
||||
public VaultTileEntity getControllerTE() {
|
||||
public ItemVaultTileEntity getControllerTE() {
|
||||
if (isController())
|
||||
return this;
|
||||
BlockEntity tileEntity = level.getBlockEntity(controller);
|
||||
if (tileEntity instanceof VaultTileEntity)
|
||||
return (VaultTileEntity) tileEntity;
|
||||
if (tileEntity instanceof ItemVaultTileEntity)
|
||||
return (ItemVaultTileEntity) tileEntity;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -121,8 +129,8 @@ public class VaultTileEntity extends SmartTileEntity {
|
|||
length = 1;
|
||||
|
||||
BlockState state = getBlockState();
|
||||
if (VaultBlock.isVault(state)) {
|
||||
state = state.setValue(VaultBlock.LARGE, false);
|
||||
if (ItemVaultBlock.isVault(state)) {
|
||||
state = state.setValue(ItemVaultBlock.LARGE, false);
|
||||
getLevel().setBlock(worldPosition, state, 22);
|
||||
}
|
||||
|
||||
|
@ -131,8 +139,9 @@ public class VaultTileEntity extends SmartTileEntity {
|
|||
sendData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setController(BlockPos controller) {
|
||||
if (level.isClientSide())
|
||||
if (level.isClientSide && !isVirtual())
|
||||
return;
|
||||
if (controller.equals(this.controller))
|
||||
return;
|
||||
|
@ -142,10 +151,11 @@ public class VaultTileEntity extends SmartTileEntity {
|
|||
sendData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockPos getController() {
|
||||
return isController() ? worldPosition : controller;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void fromTag(CompoundTag compound, boolean clientPacket) {
|
||||
super.fromTag(compound, clientPacket);
|
||||
|
@ -194,8 +204,19 @@ public class VaultTileEntity extends SmartTileEntity {
|
|||
|
||||
super.write(compound, clientPacket);
|
||||
|
||||
if (!clientPacket)
|
||||
if (!clientPacket) {
|
||||
compound.putString("StorageType", "CombinedInv");
|
||||
compound.put("Inventory", inventory.serializeNBT());
|
||||
}
|
||||
}
|
||||
|
||||
public ItemStackHandler getInventoryOfBlock() {
|
||||
return inventory;
|
||||
}
|
||||
|
||||
public void applyInventoryToBlock(ItemStackHandler handler) {
|
||||
for (int i = 0; i < inventory.getSlots(); i++)
|
||||
inventory.setStackInSlot(i, i < handler.getSlots() ? handler.getStackInSlot(i) : ItemStack.EMPTY);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -211,7 +232,7 @@ public class VaultTileEntity extends SmartTileEntity {
|
|||
if (itemCapability.isPresent())
|
||||
return;
|
||||
if (!isController()) {
|
||||
VaultTileEntity controllerTE = getControllerTE();
|
||||
ItemVaultTileEntity controllerTE = getControllerTE();
|
||||
if (controllerTE == null)
|
||||
return;
|
||||
controllerTE.initCapability();
|
||||
|
@ -219,15 +240,15 @@ public class VaultTileEntity extends SmartTileEntity {
|
|||
return;
|
||||
}
|
||||
|
||||
boolean alongZ = VaultBlock.getVaultBlockAxis(getBlockState()) == Axis.Z;
|
||||
boolean alongZ = ItemVaultBlock.getVaultBlockAxis(getBlockState()) == Axis.Z;
|
||||
IItemHandlerModifiable[] invs = new IItemHandlerModifiable[length * radius * radius];
|
||||
for (int yOffset = 0; yOffset < length; yOffset++) {
|
||||
for (int xOffset = 0; xOffset < radius; xOffset++) {
|
||||
for (int zOffset = 0; zOffset < radius; zOffset++) {
|
||||
BlockPos vaultPos = alongZ ? worldPosition.offset(xOffset, zOffset, yOffset)
|
||||
: worldPosition.offset(yOffset, xOffset, zOffset);
|
||||
VaultTileEntity vaultAt =
|
||||
VaultConnectivityHandler.vaultAt(AllTileEntities.ITEM_VAULT.get(), level, vaultPos);
|
||||
ItemVaultTileEntity vaultAt =
|
||||
ItemVaultConnectivityHandler.vaultAt(AllTileEntities.ITEM_VAULT.get(), level, vaultPos);
|
||||
invs[yOffset * radius * radius + xOffset * radius + zOffset] =
|
||||
vaultAt != null ? vaultAt.inventory : new ItemStackHandler();
|
||||
}
|
|
@ -405,31 +405,8 @@ public class AllAdvancements implements DataProvider {
|
|||
itemAdvancement("blaze_cake", AllItems.BLAZE_CAKE, TaskType.NORMAL).parent(crushing_wheel)
|
||||
.save(t, id + ":blaze_cake");
|
||||
|
||||
Advancement chromatic_compound =
|
||||
itemAdvancement("chromatic_compound", AllItems.CHROMATIC_COMPOUND, TaskType.NORMAL).parent(blaze_cake)
|
||||
.save(t, id + ":chromatic_compound");
|
||||
|
||||
Advancement shadow_steel =
|
||||
itemAdvancement("shadow_steel", AllItems.SHADOW_STEEL, TaskType.GOAL).parent(chromatic_compound)
|
||||
.save(t, id + ":shadow_steel");
|
||||
|
||||
Advancement refined_radiance =
|
||||
itemAdvancement("refined_radiance", AllItems.REFINED_RADIANCE, TaskType.GOAL).parent(chromatic_compound)
|
||||
.save(t, id + ":refined_radiance");
|
||||
|
||||
Advancement chromatic_age = advancement("chromatic_age", AllBlocks.REFINED_RADIANCE_CASING.get(), TaskType.GOAL)
|
||||
.parent(chromatic_compound)
|
||||
.addCriterion("0", itemGathered(AllBlocks.SHADOW_STEEL_CASING.get()))
|
||||
.addCriterion("1", itemGathered(AllBlocks.REFINED_RADIANCE_CASING.get()))
|
||||
.save(t, id + ":chromatic_age");
|
||||
|
||||
Advancement chromatic_eob = deadEnd().parent(chromatic_age)
|
||||
.addCriterion("0", itemGathered(AllBlocks.SHADOW_STEEL_CASING.get()))
|
||||
.addCriterion("1", itemGathered(AllBlocks.REFINED_RADIANCE_CASING.get()))
|
||||
.save(t, id + ":chromatic_eob");
|
||||
|
||||
Advancement symmetry_wand =
|
||||
itemAdvancement("wand_of_symmetry", AllItems.WAND_OF_SYMMETRY, TaskType.NORMAL).parent(refined_radiance)
|
||||
itemAdvancement("wand_of_symmetry", AllItems.WAND_OF_SYMMETRY, TaskType.NORMAL).parent(clockwork_component)
|
||||
.save(t, id + ":wand_of_symmetry");
|
||||
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ public class CLogistics extends ConfigBase {
|
|||
public final ConfigInt psiTimeout = i(20, 1, "psiTimeout", Comments.psiTimeout);
|
||||
public final ConfigInt mechanicalArmRange = i(5, 1, "mechanicalArmRange", Comments.mechanicalArmRange);
|
||||
public final ConfigInt linkRange = i(128, 1, "linkRange", Comments.linkRange);
|
||||
public final ConfigInt vaultCapacity = i(27, 1, "vaultCapacity", Comments.vaultCapacity);
|
||||
public final ConfigInt vaultCapacity = i(20, 1, "vaultCapacity", Comments.vaultCapacity);
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
|
|
|
@ -123,7 +123,7 @@ public class BuilderTransformers {
|
|||
|
||||
public static <B extends ValveHandleBlock> NonNullUnaryOperator<BlockBuilder<B, CreateRegistrate>> valveHandle(
|
||||
@Nullable DyeColor color) {
|
||||
return b -> b.initialProperties(SharedProperties::softMetal)
|
||||
return b -> b.initialProperties(SharedProperties::copperMetal)
|
||||
.blockstate((c, p) -> {
|
||||
String variant = color == null ? "copper" : color.getSerializedName();
|
||||
p.directionalBlock(c.get(), p.models()
|
||||
|
|
|
@ -19,6 +19,10 @@ public class SharedProperties {
|
|||
public static Block softMetal() {
|
||||
return Blocks.GOLD_BLOCK;
|
||||
}
|
||||
|
||||
public static Block copperMetal() {
|
||||
return Blocks.COPPER_BLOCK;
|
||||
}
|
||||
|
||||
public static Block wooden() {
|
||||
return Blocks.STRIPPED_SPRUCE_WOOD;
|
||||
|
|
|
@ -536,14 +536,19 @@ public class StandardRecipeGen extends CreateRecipeProvider {
|
|||
.pattern("P")
|
||||
.pattern("S")),
|
||||
|
||||
FLUID_TANK = create(AllBlocks.FLUID_TANK).returns(2)
|
||||
.unlockedBy(I::copperCasing)
|
||||
.viaShaped(b -> b.define('B', I.copperCasing())
|
||||
.define('S', I.copperNugget())
|
||||
.define('C', Tags.Items.GLASS)
|
||||
.pattern(" B ")
|
||||
.pattern("SCS")
|
||||
.pattern(" B ")),
|
||||
FLUID_TANK = create(AllBlocks.FLUID_TANK).unlockedByTag(() -> Tags.Items.BARRELS_WOODEN)
|
||||
.viaShaped(b -> b.define('B', I.copperSheet())
|
||||
.define('C', Tags.Items.BARRELS_WOODEN)
|
||||
.pattern("B")
|
||||
.pattern("C")
|
||||
.pattern("B")),
|
||||
|
||||
ITEM_VAULT = create(AllBlocks.ITEM_VAULT).unlockedByTag(() -> Tags.Items.BARRELS_WOODEN)
|
||||
.viaShaped(b -> b.define('B', I.ironSheet())
|
||||
.define('C', Tags.Items.BARRELS_WOODEN)
|
||||
.pattern("B")
|
||||
.pattern("C")
|
||||
.pattern("B")),
|
||||
|
||||
DEPLOYER = create(AllBlocks.DEPLOYER).unlockedBy(I::electronTube)
|
||||
.viaShaped(b -> b.define('I', AllItems.BRASS_HAND.get())
|
||||
|
|
|
@ -196,10 +196,10 @@ public class AllIcons implements ScreenElement {
|
|||
Vec3 vec3 = new Vec3(1, 1, 0);
|
||||
Vec3 vec4 = new Vec3(1, 0, 0);
|
||||
|
||||
float u1 = iconX / ICON_ATLAS_SIZE;
|
||||
float u2 = (iconX + 16) / ICON_ATLAS_SIZE;
|
||||
float v1 = iconY / ICON_ATLAS_SIZE;
|
||||
float v2 = (iconY + 16) / ICON_ATLAS_SIZE;
|
||||
float u1 = iconX * 1f / ICON_ATLAS_SIZE;
|
||||
float u2 = (iconX + 16) * 1f / ICON_ATLAS_SIZE;
|
||||
float v1 = iconY * 1f / ICON_ATLAS_SIZE;
|
||||
float v2 = (iconY + 16) * 1f / ICON_ATLAS_SIZE;
|
||||
|
||||
vertex(builder, matrix, vec1, rgb, u1, v1, light);
|
||||
vertex(builder, matrix, vec2, rgb, u1, v2, light);
|
||||
|
|
|
@ -24,6 +24,8 @@ import net.minecraftforge.client.event.RenderTooltipEvent;
|
|||
|
||||
public class PonderTooltipHandler {
|
||||
|
||||
public static boolean enable = true;
|
||||
|
||||
static LerpedFloat holdWProgress = LerpedFloat.linear()
|
||||
.startWithValue(0);
|
||||
static ItemStack hoveredStack = ItemStack.EMPTY;
|
||||
|
@ -40,14 +42,15 @@ public class PonderTooltipHandler {
|
|||
|
||||
public static void deferredTick() {
|
||||
deferTick = false;
|
||||
Minecraft instance = Minecraft.getInstance();
|
||||
Screen currentScreen = instance.screen;
|
||||
|
||||
if (hoveredStack.isEmpty() || trackingStack.isEmpty()) {
|
||||
trackingStack = ItemStack.EMPTY;
|
||||
holdWProgress.startWithValue(0);
|
||||
return;
|
||||
}
|
||||
|
||||
Minecraft instance = Minecraft.getInstance();
|
||||
Screen currentScreen = instance.screen;
|
||||
float value = holdWProgress.getValue();
|
||||
int keyCode = ponderKeybind().getKey()
|
||||
.getValue();
|
||||
|
@ -70,6 +73,9 @@ public class PonderTooltipHandler {
|
|||
}
|
||||
|
||||
public static void addToTooltip(List<Component> toolTip, ItemStack stack) {
|
||||
if (!enable)
|
||||
return;
|
||||
|
||||
updateHovered(stack);
|
||||
|
||||
if (deferTick)
|
||||
|
@ -92,11 +98,13 @@ public class PonderTooltipHandler {
|
|||
protected static void updateHovered(ItemStack stack) {
|
||||
Minecraft instance = Minecraft.getInstance();
|
||||
Screen currentScreen = instance.screen;
|
||||
boolean inPonderUI = currentScreen instanceof PonderUI;
|
||||
|
||||
ItemStack prevStack = trackingStack;
|
||||
hoveredStack = ItemStack.EMPTY;
|
||||
subject = false;
|
||||
|
||||
if (currentScreen instanceof PonderUI) {
|
||||
if (inPonderUI) {
|
||||
PonderUI ponderUI = (PonderUI) currentScreen;
|
||||
if (stack.sameItem(ponderUI.getSubject()))
|
||||
subject = true;
|
||||
|
@ -108,7 +116,7 @@ public class PonderTooltipHandler {
|
|||
.getRegistryName()))
|
||||
return;
|
||||
|
||||
if (prevStack.isEmpty() || !prevStack.sameItem(stack))
|
||||
if (prevStack.isEmpty() || !prevStack.sameItem(stack))
|
||||
holdWProgress.startWithValue(0);
|
||||
|
||||
hoveredStack = stack;
|
||||
|
|
|
@ -9,12 +9,12 @@ import java.util.Map;
|
|||
import javax.annotation.Nullable;
|
||||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.content.contraptions.fluids.tank.FluidTankTileEntity;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
|
||||
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity;
|
||||
import com.simibubi.create.content.schematics.SchematicWorld;
|
||||
import com.simibubi.create.foundation.ponder.element.WorldSectionElement;
|
||||
import com.simibubi.create.foundation.render.SuperRenderTypeBuffer;
|
||||
import com.simibubi.create.foundation.tileEntity.IMultiTileContainer;
|
||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.WrappedClientWorld;
|
||||
|
||||
|
@ -259,6 +259,7 @@ public class PonderWorld extends SchematicWorld {
|
|||
|
||||
public void fixControllerTileEntities() {
|
||||
for (BlockEntity tileEntity : tileEntities.values()) {
|
||||
|
||||
if (tileEntity instanceof BeltTileEntity) {
|
||||
BeltTileEntity beltTileEntity = (BeltTileEntity) tileEntity;
|
||||
if (!beltTileEntity.isController())
|
||||
|
@ -272,20 +273,22 @@ public class PonderWorld extends SchematicWorld {
|
|||
belt2.setController(controllerPos);
|
||||
}
|
||||
}
|
||||
if (tileEntity instanceof FluidTankTileEntity) {
|
||||
FluidTankTileEntity fluidTankTileEntity = (FluidTankTileEntity) tileEntity;
|
||||
BlockPos lastKnown = fluidTankTileEntity.getLastKnownPos();
|
||||
BlockPos current = fluidTankTileEntity.getBlockPos();
|
||||
|
||||
if (tileEntity instanceof IMultiTileContainer) {
|
||||
IMultiTileContainer multiTile = (IMultiTileContainer) tileEntity;
|
||||
BlockPos lastKnown = multiTile.getLastKnownPos();
|
||||
BlockPos current = tileEntity.getBlockPos();
|
||||
if (lastKnown == null || current == null)
|
||||
continue;
|
||||
if (fluidTankTileEntity.isController())
|
||||
if (multiTile.isController())
|
||||
continue;
|
||||
if (!lastKnown.equals(current)) {
|
||||
BlockPos newControllerPos = fluidTankTileEntity.getController()
|
||||
BlockPos newControllerPos = multiTile.getController()
|
||||
.offset(current.subtract(lastKnown));
|
||||
fluidTankTileEntity.setController(newControllerPos);
|
||||
multiTile.setController(newControllerPos);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,238 @@
|
|||
package com.simibubi.create.foundation.ponder.content;
|
||||
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.foundation.gui.AllIcons;
|
||||
import com.simibubi.create.foundation.ponder.ElementLink;
|
||||
import com.simibubi.create.foundation.ponder.PonderPalette;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuilder;
|
||||
import com.simibubi.create.foundation.ponder.SceneBuildingUtil;
|
||||
import com.simibubi.create.foundation.ponder.Selection;
|
||||
import com.simibubi.create.foundation.ponder.element.InputWindowElement;
|
||||
import com.simibubi.create.foundation.ponder.element.WorldSectionElement;
|
||||
import com.simibubi.create.foundation.utility.Pointing;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class ItemVaultScenes {
|
||||
|
||||
public static void storage(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("item_vault_storage", "Storing Items in Vaults");
|
||||
scene.configureBasePlate(0, 0, 5);
|
||||
scene.showBasePlate();
|
||||
scene.idle(5);
|
||||
|
||||
Selection chests = util.select.fromTo(4, 3, 2, 3, 4, 3);
|
||||
Selection largeCog = util.select.position(3, 0, 5);
|
||||
Selection belt1 = util.select.fromTo(0, 2, 3, 2, 1, 5);
|
||||
Selection gearbox = util.select.position(2, 1, 2);
|
||||
Selection belt2 = util.select.fromTo(0, 1, 1, 2, 2, 1);
|
||||
Selection vault = util.select.fromTo(3, 2, 3, 4, 1, 1);
|
||||
|
||||
scene.world.showSection(vault, Direction.NORTH);
|
||||
scene.idle(5);
|
||||
ElementLink<WorldSectionElement> chestLink = scene.world.showIndependentSection(chests, Direction.NORTH);
|
||||
scene.world.moveSection(chestLink, util.vector.of(-3, -2, 0), 0);
|
||||
scene.idle(10);
|
||||
|
||||
scene.overlay.showOutline(PonderPalette.GREEN, "chestOutline", util.select.fromTo(1, 1, 2, 0, 2, 3), 40);
|
||||
scene.idle(10);
|
||||
scene.overlay.showLine(PonderPalette.GREEN, util.vector.of(2, 1, 2), util.vector.of(3, 1, 1), 30);
|
||||
scene.overlay.showLine(PonderPalette.GREEN, util.vector.of(2, 3, 2), util.vector.of(3, 3, 1), 30);
|
||||
scene.overlay.showLine(PonderPalette.GREEN, util.vector.of(2, 3, 4), util.vector.of(3, 3, 4), 30);
|
||||
scene.overlay.showOutline(PonderPalette.GREEN, "vaultOutline", vault, 40);
|
||||
scene.idle(10);
|
||||
|
||||
BlockPos frontVault = util.grid.at(3, 2, 1);
|
||||
scene.overlay.showText(60)
|
||||
.text("Item Vaults can be used to store large amounts of items")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(frontVault, Direction.NORTH));
|
||||
scene.idle(70);
|
||||
|
||||
scene.world.hideIndependentSection(chestLink, Direction.DOWN);
|
||||
scene.idle(15);
|
||||
|
||||
ItemStack hand = AllItems.BRASS_HAND.asStack();
|
||||
scene.overlay
|
||||
.showControls(new InputWindowElement(util.vector.blockSurface(frontVault, Direction.NORTH), Pointing.RIGHT)
|
||||
.showing(AllIcons.I_MTD_CLOSE)
|
||||
.withItem(hand), 40);
|
||||
scene.idle(7);
|
||||
|
||||
scene.overlay.showText(60)
|
||||
.text("However, contents cannot be added or taken manually")
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.RED)
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(frontVault, Direction.WEST));
|
||||
scene.idle(70);
|
||||
|
||||
scene.world.showSection(largeCog, Direction.UP);
|
||||
scene.idle(5);
|
||||
scene.world.showSection(belt1, Direction.EAST);
|
||||
scene.idle(20);
|
||||
|
||||
scene.overlay.showText(80)
|
||||
.text("Any components for item transfer can both insert...")
|
||||
.attachKeyFrame()
|
||||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(2, 2, 3));
|
||||
|
||||
ItemStack[] junk =
|
||||
{ new ItemStack(Items.APPLE), new ItemStack(Items.GOLD_INGOT, 8), new ItemStack(Items.TUFF, 32) };
|
||||
for (int i = 0; i < junk.length + 2; i++) {
|
||||
scene.idle(4);
|
||||
|
||||
if (i > 1) {
|
||||
scene.world.removeItemsFromBelt(util.grid.at(2, 1, 3));
|
||||
scene.world.flapFunnel(util.grid.at(2, 2, 3), false);
|
||||
}
|
||||
|
||||
scene.idle(5);
|
||||
if (i < junk.length)
|
||||
scene.world.createItemOnBeltLike(util.grid.at(0, 1, 3), Direction.SOUTH, junk[i]);
|
||||
scene.idle(9);
|
||||
}
|
||||
|
||||
scene.world.showSection(gearbox, Direction.SOUTH);
|
||||
scene.idle(5);
|
||||
scene.world.showSection(belt2, Direction.EAST);
|
||||
scene.idle(15);
|
||||
|
||||
scene.overlay.showText(80)
|
||||
.text("...and take contents from this container")
|
||||
.colored(PonderPalette.GREEN)
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(2, 1, 1));
|
||||
|
||||
for (int i = 0; i < junk.length; i++) {
|
||||
scene.world.createItemOnBeltLike(util.grid.at(2, 1, 1), Direction.EAST, junk[i]);
|
||||
scene.idle(18);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void sizes(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("item_vault_sizes", "Dimensions of an Item Vault");
|
||||
scene.configureBasePlate(0, 0, 6);
|
||||
scene.scaleSceneView(0.9f);
|
||||
scene.showBasePlate();
|
||||
scene.idle(5);
|
||||
|
||||
Selection single = util.select.position(2, 4, 2);
|
||||
Selection single2 = util.select.fromTo(2, 4, 3, 3, 5, 3);
|
||||
Selection single3 = util.select.fromTo(2, 4, 4, 4, 6, 4);
|
||||
|
||||
ElementLink<WorldSectionElement> s1 = scene.world.showIndependentSection(single, Direction.DOWN);
|
||||
scene.world.moveSection(s1, util.vector.of(0, -3, 0), 0);
|
||||
scene.idle(10);
|
||||
|
||||
scene.overlay.showText(60)
|
||||
.text("Item Vaults can be combined to increase the total capacity")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.topOf(2, 1, 2));
|
||||
scene.idle(40);
|
||||
|
||||
ElementLink<WorldSectionElement> s2 = scene.world.showIndependentSection(single, Direction.DOWN);
|
||||
scene.world.moveSection(s2, util.vector.of(1, -3, 0), 0);
|
||||
scene.idle(5);
|
||||
ElementLink<WorldSectionElement> s3 = scene.world.showIndependentSection(single, Direction.DOWN);
|
||||
scene.world.moveSection(s3, util.vector.of(1, -2, 0), 0);
|
||||
scene.idle(5);
|
||||
ElementLink<WorldSectionElement> s4 = scene.world.showIndependentSection(single, Direction.DOWN);
|
||||
scene.world.moveSection(s4, util.vector.of(0, -2, 0), 0);
|
||||
scene.idle(10);
|
||||
|
||||
scene.world.moveSection(s1, util.vector.of(0, -100, 0), 0);
|
||||
scene.world.moveSection(s2, util.vector.of(0, -100, 0), 0);
|
||||
scene.world.moveSection(s3, util.vector.of(0, -100, 0), 0);
|
||||
scene.world.moveSection(s4, util.vector.of(0, -100, 0), 0);
|
||||
|
||||
ElementLink<WorldSectionElement> d = scene.world.showIndependentSectionImmediately(single2);
|
||||
scene.world.moveSection(d, util.vector.of(0, -3, -1), 0);
|
||||
scene.effects.indicateSuccess(util.grid.at(2, 1, 2));
|
||||
scene.effects.indicateSuccess(util.grid.at(2, 2, 2));
|
||||
scene.effects.indicateSuccess(util.grid.at(3, 2, 2));
|
||||
scene.effects.indicateSuccess(util.grid.at(3, 1, 2));
|
||||
scene.world.hideIndependentSection(s1, Direction.DOWN);
|
||||
scene.world.hideIndependentSection(s2, Direction.DOWN);
|
||||
scene.world.hideIndependentSection(s3, Direction.DOWN);
|
||||
scene.world.hideIndependentSection(s4, Direction.DOWN);
|
||||
scene.idle(25);
|
||||
|
||||
scene.overlay.showText(60)
|
||||
.text("Their base square can be up to 3 blocks wide...")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(util.vector.blockSurface(util.grid.at(2, 2, 2), Direction.NORTH));
|
||||
scene.idle(40);
|
||||
|
||||
s1 = scene.world.showIndependentSection(single, Direction.DOWN);
|
||||
scene.world.moveSection(s1, util.vector.of(2, -3, 0), 0);
|
||||
scene.idle(3);
|
||||
s2 = scene.world.showIndependentSection(single, Direction.DOWN);
|
||||
scene.world.moveSection(s2, util.vector.of(2, -2, 0), 0);
|
||||
scene.idle(3);
|
||||
s3 = scene.world.showIndependentSection(single, Direction.DOWN);
|
||||
scene.world.moveSection(s3, util.vector.of(2, -1, 0), 0);
|
||||
scene.idle(3);
|
||||
s4 = scene.world.showIndependentSection(single, Direction.DOWN);
|
||||
scene.world.moveSection(s4, util.vector.of(1, -1, 0), 0);
|
||||
scene.idle(3);
|
||||
ElementLink<WorldSectionElement> s5 = scene.world.showIndependentSection(single, Direction.DOWN);
|
||||
scene.world.moveSection(s5, util.vector.of(0, -1, 0), 0);
|
||||
scene.idle(10);
|
||||
|
||||
scene.world.moveSection(d, util.vector.of(0, -100, 0), 0);
|
||||
scene.world.moveSection(s1, util.vector.of(0, -100, 0), 0);
|
||||
scene.world.moveSection(s2, util.vector.of(0, -100, 0), 0);
|
||||
scene.world.moveSection(s3, util.vector.of(0, -100, 0), 0);
|
||||
scene.world.moveSection(s4, util.vector.of(0, -100, 0), 0);
|
||||
scene.world.moveSection(s5, util.vector.of(0, -100, 0), 0);
|
||||
|
||||
ElementLink<WorldSectionElement> t = scene.world.showIndependentSectionImmediately(single3);
|
||||
scene.world.moveSection(t, util.vector.of(0, -3, -2), 0);
|
||||
|
||||
for (int i = 1; i < 4; i++)
|
||||
for (int j = 2; j < 5; j++)
|
||||
scene.effects.indicateSuccess(util.grid.at(j, i, 2));
|
||||
|
||||
scene.world.hideIndependentSection(d, Direction.DOWN);
|
||||
scene.world.hideIndependentSection(s1, Direction.DOWN);
|
||||
scene.world.hideIndependentSection(s2, Direction.DOWN);
|
||||
scene.world.hideIndependentSection(s3, Direction.DOWN);
|
||||
scene.world.hideIndependentSection(s4, Direction.DOWN);
|
||||
scene.world.hideIndependentSection(s5, Direction.DOWN);
|
||||
scene.idle(25);
|
||||
|
||||
scene.world.hideIndependentSection(t, Direction.DOWN);
|
||||
scene.idle(15);
|
||||
|
||||
Selection full1 = util.select.fromTo(2, 1, 0, 4, 1, 0);
|
||||
Selection full2 = util.select.fromTo(0, 1, 1, 3, 2, 2);
|
||||
Selection full3 = util.select.fromTo(1, 1, 5, 5, 3, 3);
|
||||
|
||||
scene.world.showSection(full3, Direction.WEST);
|
||||
scene.idle(5);
|
||||
scene.world.showSection(full2, Direction.EAST);
|
||||
scene.idle(5);
|
||||
scene.world.showSection(full1, Direction.WEST);
|
||||
scene.idle(10);
|
||||
|
||||
Vec3 blockSurface = util.vector.blockSurface(util.grid.at(1, 3, 3), Direction.NORTH);
|
||||
scene.overlay.showText(60)
|
||||
.text("...and grow in length up to 3x their diameter")
|
||||
.attachKeyFrame()
|
||||
.placeNearTarget()
|
||||
.pointAt(blockSurface);
|
||||
scene.idle(40);
|
||||
}
|
||||
|
||||
}
|
|
@ -58,8 +58,7 @@ public class PonderIndex {
|
|||
.addStoryBoard("gearbox", KineticsScenes::gearbox, PonderTag.KINETIC_RELAYS);
|
||||
|
||||
HELPER.addStoryBoard(AllBlocks.CLUTCH, "clutch", KineticsScenes::clutch, PonderTag.KINETIC_RELAYS);
|
||||
HELPER.addStoryBoard(AllBlocks.GEARSHIFT, "gearshift", KineticsScenes::gearshift,
|
||||
PonderTag.KINETIC_RELAYS);
|
||||
HELPER.addStoryBoard(AllBlocks.GEARSHIFT, "gearshift", KineticsScenes::gearshift, PonderTag.KINETIC_RELAYS);
|
||||
|
||||
HELPER.forComponents(AllBlocks.SEQUENCED_GEARSHIFT)
|
||||
.addStoryBoard("sequenced_gearshift", KineticsScenes::sequencedGearshift);
|
||||
|
@ -70,24 +69,23 @@ public class PonderIndex {
|
|||
.addStoryBoard("fan/source", FanScenes::source, PonderTag.KINETIC_SOURCES);
|
||||
|
||||
HELPER.addStoryBoard(AllBlocks.CREATIVE_MOTOR, "creative_motor", KineticsScenes::creativeMotor,
|
||||
PonderTag.KINETIC_SOURCES);
|
||||
PonderTag.KINETIC_SOURCES);
|
||||
HELPER.addStoryBoard(AllBlocks.WATER_WHEEL, "water_wheel", KineticsScenes::waterWheel,
|
||||
PonderTag.KINETIC_SOURCES);
|
||||
HELPER.addStoryBoard(AllBlocks.HAND_CRANK, "hand_crank", KineticsScenes::handCrank,
|
||||
PonderTag.KINETIC_SOURCES);
|
||||
PonderTag.KINETIC_SOURCES);
|
||||
HELPER.addStoryBoard(AllBlocks.HAND_CRANK, "hand_crank", KineticsScenes::handCrank, PonderTag.KINETIC_SOURCES);
|
||||
|
||||
HELPER.addStoryBoard(AllBlocks.COPPER_VALVE_HANDLE, "valve_handle", KineticsScenes::valveHandle,
|
||||
PonderTag.KINETIC_SOURCES);
|
||||
PonderTag.KINETIC_SOURCES);
|
||||
HELPER.forComponents(AllBlocks.DYED_VALVE_HANDLES.toArray())
|
||||
.addStoryBoard("valve_handle", KineticsScenes::valveHandle);
|
||||
.addStoryBoard("valve_handle", KineticsScenes::valveHandle);
|
||||
|
||||
HELPER.addStoryBoard(AllBlocks.ENCASED_CHAIN_DRIVE, "chain_drive/relay",
|
||||
ChainDriveScenes::chainDriveAsRelay, PonderTag.KINETIC_RELAYS);
|
||||
HELPER.addStoryBoard(AllBlocks.ENCASED_CHAIN_DRIVE, "chain_drive/relay", ChainDriveScenes::chainDriveAsRelay,
|
||||
PonderTag.KINETIC_RELAYS);
|
||||
HELPER.forComponents(AllBlocks.ENCASED_CHAIN_DRIVE, AllBlocks.ADJUSTABLE_CHAIN_GEARSHIFT)
|
||||
.addStoryBoard("chain_drive/gearshift", ChainDriveScenes::adjustableChainGearshift);
|
||||
.addStoryBoard("chain_drive/gearshift", ChainDriveScenes::adjustableChainGearshift);
|
||||
|
||||
HELPER.forComponents(AllBlocks.FURNACE_ENGINE)
|
||||
.addStoryBoard("furnace_engine", KineticsScenes::furnaceEngine);
|
||||
.addStoryBoard("furnace_engine", KineticsScenes::furnaceEngine);
|
||||
HELPER.forComponents(AllBlocks.FLYWHEEL)
|
||||
.addStoryBoard("furnace_engine", KineticsScenes::flywheel);
|
||||
HELPER.forComponents(AllBlocks.ROTATION_SPEED_CONTROLLER)
|
||||
|
@ -108,8 +106,7 @@ public class PonderIndex {
|
|||
.addStoryBoard("basin", ProcessingScenes::basin)
|
||||
.addStoryBoard("mechanical_mixer/mixing", ProcessingScenes::mixing)
|
||||
.addStoryBoard("mechanical_press/compacting", ProcessingScenes::compacting);
|
||||
HELPER.addStoryBoard(AllItems.EMPTY_BLAZE_BURNER, "empty_blaze_burner",
|
||||
ProcessingScenes::emptyBlazeBurner);
|
||||
HELPER.addStoryBoard(AllItems.EMPTY_BLAZE_BURNER, "empty_blaze_burner", ProcessingScenes::emptyBlazeBurner);
|
||||
HELPER.addStoryBoard(AllBlocks.BLAZE_BURNER, "blaze_burner", ProcessingScenes::blazeBurner);
|
||||
HELPER.addStoryBoard(AllBlocks.DEPOT, "depot", BeltScenes::depot);
|
||||
HELPER.forComponents(AllBlocks.WEIGHTED_EJECTOR)
|
||||
|
@ -124,6 +121,11 @@ public class PonderIndex {
|
|||
HELPER.forComponents(AllBlocks.MECHANICAL_CRAFTER, AllItems.CRAFTER_SLOT_COVER)
|
||||
.addStoryBoard("mechanical_crafter/covers", CrafterScenes::covers);
|
||||
|
||||
// Vaults
|
||||
HELPER.forComponents(AllBlocks.ITEM_VAULT)
|
||||
.addStoryBoard("item_vault/storage", ItemVaultScenes::storage, PonderTag.LOGISTICS)
|
||||
.addStoryBoard("item_vault/sizes", ItemVaultScenes::sizes);
|
||||
|
||||
// Chutes
|
||||
HELPER.forComponents(AllBlocks.CHUTE)
|
||||
.addStoryBoard("chute/downward", ChuteScenes::downward, PonderTag.LOGISTICS)
|
||||
|
@ -265,7 +267,8 @@ public class PonderIndex {
|
|||
.addStoryBoard("fluid_tank/storage", FluidTankScenes::storage, PonderTag.FLUIDS)
|
||||
.addStoryBoard("fluid_tank/sizes", FluidTankScenes::sizes);
|
||||
HELPER.forComponents(AllBlocks.CREATIVE_FLUID_TANK)
|
||||
.addStoryBoard("fluid_tank/storage_creative", FluidTankScenes::creative, PonderTag.FLUIDS, PonderTag.CREATIVE)
|
||||
.addStoryBoard("fluid_tank/storage_creative", FluidTankScenes::creative, PonderTag.FLUIDS,
|
||||
PonderTag.CREATIVE)
|
||||
.addStoryBoard("fluid_tank/sizes_creative", FluidTankScenes::sizes);
|
||||
HELPER.forComponents(AllBlocks.HOSE_PULLEY)
|
||||
.addStoryBoard("hose_pulley/intro", HosePulleyScenes::intro, PonderTag.FLUIDS, PonderTag.KINETIC_APPLIANCES)
|
||||
|
@ -300,7 +303,7 @@ public class PonderIndex {
|
|||
if (REGISTER_DEBUG_SCENES)
|
||||
DebugScenes.registerAll();
|
||||
}
|
||||
|
||||
|
||||
public static boolean editingModeActive() {
|
||||
return AllConfigs.CLIENT.editingMode.get();
|
||||
}
|
||||
|
@ -388,6 +391,7 @@ public class PonderIndex {
|
|||
.add(AllItems.ATTRIBUTE_FILTER)
|
||||
.add(AllBlocks.CHUTE)
|
||||
.add(AllBlocks.SMART_CHUTE)
|
||||
.add(AllBlocks.ITEM_VAULT)
|
||||
.add(AllBlocks.DEPOT)
|
||||
.add(AllBlocks.WEIGHTED_EJECTOR)
|
||||
.add(AllBlocks.MECHANICAL_ARM)
|
||||
|
|
|
@ -219,6 +219,7 @@ public class FluidTankScenes {
|
|||
public static void sizes(SceneBuilder scene, SceneBuildingUtil util) {
|
||||
scene.title("fluid_tank_sizes", "Dimensions of a Fluid tank");
|
||||
scene.configureBasePlate(0, 0, 6);
|
||||
scene.scaleSceneView(0.9f);
|
||||
scene.showBasePlate();
|
||||
scene.idle(5);
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ import com.simibubi.create.foundation.gui.ScreenOpener;
|
|||
import com.simibubi.create.foundation.gui.Theme;
|
||||
import com.simibubi.create.foundation.gui.UIRenderHelper;
|
||||
import com.simibubi.create.foundation.ponder.PonderLocalization;
|
||||
import com.simibubi.create.foundation.ponder.PonderTooltipHandler;
|
||||
import com.simibubi.create.foundation.utility.Color;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
|
@ -141,7 +142,9 @@ public abstract class NavigatableSimiScreen extends AbstractSimiScreen {
|
|||
UIRenderHelper.framebuffer.clear(Minecraft.ON_OSX);
|
||||
ms.translate(0, 0, -1000);
|
||||
UIRenderHelper.framebuffer.bindWrite(true);
|
||||
PonderTooltipHandler.enable = false;
|
||||
lastScreen.render(ms, mouseX, mouseY, partialTicks);
|
||||
PonderTooltipHandler.enable = true;
|
||||
|
||||
ms.popPose();
|
||||
ms.pushPose();
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
package com.simibubi.create.foundation.tileEntity;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
||||
public interface IMultiTileContainer {
|
||||
|
||||
public BlockPos getController();
|
||||
public boolean isController();
|
||||
public void setController(BlockPos pos);
|
||||
public BlockPos getLastKnownPos();
|
||||
|
||||
}
|
|
@ -144,15 +144,6 @@
|
|||
"advancement.create.blaze_cake": "Sugar Rush",
|
||||
"advancement.create.blaze_cake.desc": "Bake your blaze burner a special cake.",
|
||||
|
||||
"advancement.create.chromatic_compound": "Mysterious Minerals",
|
||||
"advancement.create.chromatic_compound.desc": "Create a Bar of Chromatic Compound.",
|
||||
"advancement.create.shadow_steel": "Void Returner",
|
||||
"advancement.create.shadow_steel.desc": "Create Shadow Steel, a metal bar of nothingness.",
|
||||
"advancement.create.refined_radiance": "Bright and Inspiring",
|
||||
"advancement.create.refined_radiance.desc": "Create Refined Radiance, a powerful chromatic substance.",
|
||||
"advancement.create.chromatic_age": "The Chromatic Age",
|
||||
"advancement.create.chromatic_age.desc": "Create casing blocks of the light and dark.",
|
||||
|
||||
"advancement.create.wand_of_symmetry": "Radiant Mirrors",
|
||||
"advancement.create.wand_of_symmetry.desc": "Craft a Staff of Symmetry.",
|
||||
"advancement.create.extendo_grip": "Boioioing!",
|
||||
|
|
BIN
src/main/resources/assets/create/ponder/item_vault/sizes.nbt
Normal file
BIN
src/main/resources/assets/create/ponder/item_vault/sizes.nbt
Normal file
Binary file not shown.
BIN
src/main/resources/assets/create/ponder/item_vault/storage.nbt
Normal file
BIN
src/main/resources/assets/create/ponder/item_vault/storage.nbt
Normal file
Binary file not shown.
Loading…
Reference in a new issue