mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-02-21 17:45:33 +01:00
Merge branch 'mc1.18/dev' into fr-translate
This commit is contained in:
commit
744967a0af
52 changed files with 16033 additions and 11550 deletions
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
<p>Welcome to Create, a mod offering a variety of tools and blocks for Building, Decoration and Aesthetic Automation.</p>
|
<p>Welcome to Create, a mod offering a variety of tools and blocks for Building, Decoration and Aesthetic Automation.</p>
|
||||||
<p>The added elements of tech are designed to leave as many design choices to the player as possible. With Create, the game isn't played inside a bunch of UIs, it challenges you to setup contraptions of animated components working together in many possible arrangements.</p>
|
<p>The added elements of tech are designed to leave as many design choices to the player as possible. With Create, the game isn't played inside a bunch of UIs, it challenges you to setup contraptions of animated components working together in many possible arrangements.</p>
|
||||||
<p>Create's visual in-game documentation called 'Ponder' will guide you though all added mechanics and gadgets.</p>
|
<p>Create's visual in-game documentation called 'Ponder' will guide you through all added mechanics and gadgets.</p>
|
||||||
<p> </p>
|
<p> </p>
|
||||||
<p align="center"><a href="https://github.com/Creators-of-Create/Create/issues"><img src="https://i.imgur.com/qPmjSXy.png" width="160" /></a> <a href="https://www.youtube.com/channel/UCrKV2QTuyGcv4E3eSJpBiYA/playlists"><img src="https://i.imgur.com/L1bU9mr.png" width="160" /></a><a href="https://discord.gg/hmaD7Se"><img src="https://i.imgur.com/uf6V9ZX.png" width="160" /></a> <a href="https://github.com/Creators-of-Create/Create/wiki/Supporting-the-Project"><img src="https://i.imgur.com/fHQ45KR.png" width="227" /></a></p>
|
<p align="center"><a href="https://github.com/Creators-of-Create/Create/issues"><img src="https://i.imgur.com/qPmjSXy.png" width="160" /></a> <a href="https://www.youtube.com/channel/UCrKV2QTuyGcv4E3eSJpBiYA/playlists"><img src="https://i.imgur.com/L1bU9mr.png" width="160" /></a><a href="https://discord.gg/hmaD7Se"><img src="https://i.imgur.com/uf6V9ZX.png" width="160" /></a> <a href="https://github.com/Creators-of-Create/Create/wiki/Supporting-the-Project"><img src="https://i.imgur.com/fHQ45KR.png" width="227" /></a></p>
|
||||||
|
|
||||||
|
|
|
@ -209,6 +209,15 @@ jar {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task jarJarRelease {
|
||||||
|
doLast {
|
||||||
|
tasks.jarJar {
|
||||||
|
classifier = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finalizedBy tasks.jarJar
|
||||||
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
withSourcesJar()
|
withSourcesJar()
|
||||||
withJavadocJar()
|
withJavadocJar()
|
||||||
|
|
|
@ -287,7 +287,7 @@ bff90a8d674a839b13fd9cd1f78bf3d0ad9fad4f assets/create/blockstates/limestone_pil
|
||||||
3b3250d6e209403a93d025604a8081087965016e assets/create/blockstates/mechanical_arm.json
|
3b3250d6e209403a93d025604a8081087965016e assets/create/blockstates/mechanical_arm.json
|
||||||
ddcf4bb281e046fbb1026b8f46a2cf12448598df assets/create/blockstates/mechanical_bearing.json
|
ddcf4bb281e046fbb1026b8f46a2cf12448598df assets/create/blockstates/mechanical_bearing.json
|
||||||
5586beef2d9183dc34d8e8d2723620c0569592ae assets/create/blockstates/mechanical_crafter.json
|
5586beef2d9183dc34d8e8d2723620c0569592ae assets/create/blockstates/mechanical_crafter.json
|
||||||
044db7d50e19008bae8bf3325eac2ed0eb1ea6d2 assets/create/blockstates/mechanical_drill.json
|
0cfa8a4a37f4142fa07e04666e0aef080c517053 assets/create/blockstates/mechanical_drill.json
|
||||||
0fb175e5260ec60e130e589d682a4d3301d7364e assets/create/blockstates/mechanical_harvester.json
|
0fb175e5260ec60e130e589d682a4d3301d7364e assets/create/blockstates/mechanical_harvester.json
|
||||||
d9afcfa27c42df5fd54a7b783acb0eb45ddf5aa5 assets/create/blockstates/mechanical_mixer.json
|
d9afcfa27c42df5fd54a7b783acb0eb45ddf5aa5 assets/create/blockstates/mechanical_mixer.json
|
||||||
da612a05f94dc19e07e250efc35a7b2839d2ee76 assets/create/blockstates/mechanical_piston.json
|
da612a05f94dc19e07e250efc35a7b2839d2ee76 assets/create/blockstates/mechanical_piston.json
|
||||||
|
@ -559,22 +559,22 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
||||||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||||
f85edc574ee6de0de7693ffb031266643db6724a assets/create/lang/en_ud.json
|
f85edc574ee6de0de7693ffb031266643db6724a assets/create/lang/en_ud.json
|
||||||
f9fcf3163210806f6cea642b13d36632f3f3c533 assets/create/lang/en_us.json
|
e7f1b8936615740097ac1104733b4a07e7778653 assets/create/lang/en_us.json
|
||||||
fcf6c0723f89de67ab5f30e01305522b236bd824 assets/create/lang/unfinished/de_de.json
|
c7648afaddb071fa781b341ada4cc246efd13ebe assets/create/lang/unfinished/de_de.json
|
||||||
9083ade329d6b2c7469339f2c7ab54d7866f90ff assets/create/lang/unfinished/es_cl.json
|
be902a94314922103460c7f299aa66aacf0b9ab6 assets/create/lang/unfinished/es_cl.json
|
||||||
db21f76f89573602c77b988371453013bac530cb assets/create/lang/unfinished/es_es.json
|
d21e553df8120d658acf1de99e2fb1ed38133659 assets/create/lang/unfinished/es_es.json
|
||||||
b1ed4fc7258f6fb93127e84ed4364f7cc224be2b assets/create/lang/unfinished/fr_fr.json
|
d358cfb91006a018d80906c983a96df1564ae032 assets/create/lang/unfinished/fr_fr.json
|
||||||
7cf94dae2536d27f32cfe7aad3a9a9eb7b9978ac assets/create/lang/unfinished/it_it.json
|
f1356bd4507e49751126446bdc607f29c1dd80c3 assets/create/lang/unfinished/it_it.json
|
||||||
b8252343025f1555ae717e03b7503bfd9c1069f7 assets/create/lang/unfinished/ja_jp.json
|
c3a30c7f396e79039c6d16f2787bb68ebaa8c3ac assets/create/lang/unfinished/ja_jp.json
|
||||||
bcc01ee88c1877e46f280c967d92b506d328b08d assets/create/lang/unfinished/ko_kr.json
|
711c41782772ab9d0de06d76c70600ba37412542 assets/create/lang/unfinished/ko_kr.json
|
||||||
4fd2bf884f18bf833d9819aed2f6fe83cc8ea9a6 assets/create/lang/unfinished/nl_nl.json
|
022e7d040a6fa1ab11edeb9dc0c4dbb530a85564 assets/create/lang/unfinished/nl_nl.json
|
||||||
e32d5b48ca498b97e036f5cdf0f3b4192b478adf assets/create/lang/unfinished/pl_pl.json
|
1b8fe7bbf2a312d3cbc1680116dab2b620d08c4d assets/create/lang/unfinished/pl_pl.json
|
||||||
f9d8fdca30725e5e340f7c2727eb3da197081a25 assets/create/lang/unfinished/pt_br.json
|
90fd5500247f22dbed498b350e6331b1d5dadd81 assets/create/lang/unfinished/pt_br.json
|
||||||
f5648cf550a440d2c60dcb7f8b4605d89f0f9713 assets/create/lang/unfinished/pt_pt.json
|
4ebb68c5eb6964ca5081f74416d8a624fdeaef60 assets/create/lang/unfinished/pt_pt.json
|
||||||
6f283e7589df6c2293be271846535887bf5a288c assets/create/lang/unfinished/ro_ro.json
|
b7f314a1ac2595651ec4578add55525387c734db assets/create/lang/unfinished/ro_ro.json
|
||||||
119f9953874f07d016fd9602510221de0cd1730b assets/create/lang/unfinished/ru_ru.json
|
7b72045f7f9de2f80ba78eb9caad7d081e7ee38f assets/create/lang/unfinished/ru_ru.json
|
||||||
6a5ab805701021b67b4585f0ae014e4b509d8c45 assets/create/lang/unfinished/zh_cn.json
|
2ef4e37bf007e3cf6e5b14819048cb80e6d84628 assets/create/lang/unfinished/zh_cn.json
|
||||||
a6eff86622e24eda8f490587734c19526d0c6ecf assets/create/lang/unfinished/zh_tw.json
|
ebc88d8b1f6115b6c3303ec4357c565049888a96 assets/create/lang/unfinished/zh_tw.json
|
||||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||||
|
@ -5649,6 +5649,7 @@ c98ffdc2780c2a7690c590f46f014aeee7b0b504 data/create/tags/items/create_ingots.js
|
||||||
4480f211f4a37bfee193eba945bc9f5a8d2c6e34 data/create/tags/items/crushed_ores.json
|
4480f211f4a37bfee193eba945bc9f5a8d2c6e34 data/create/tags/items/crushed_ores.json
|
||||||
67385d5198d0796ec8f0d2c6ae144c672f4317a1 data/create/tags/items/modded_stripped_logs.json
|
67385d5198d0796ec8f0d2c6ae144c672f4317a1 data/create/tags/items/modded_stripped_logs.json
|
||||||
27a1074a88a7b939c811341086afece325ed724c data/create/tags/items/modded_stripped_wood.json
|
27a1074a88a7b939c811341086afece325ed724c data/create/tags/items/modded_stripped_wood.json
|
||||||
|
7973972edb524683ef365bc103fcfcde0858a854 data/create/tags/items/pressurized_air_sources.json
|
||||||
bce28787b0271382842823d04a977912a88b01c2 data/create/tags/items/sandpaper.json
|
bce28787b0271382842823d04a977912a88b01c2 data/create/tags/items/sandpaper.json
|
||||||
6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json
|
6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json
|
||||||
0f4276a6b7da5f4dee8909802e6717a4c97f0555 data/create/tags/items/sleepers.json
|
0f4276a6b7da5f4dee8909802e6717a4c97f0555 data/create/tags/items/sleepers.json
|
||||||
|
|
|
@ -1,27 +1,53 @@
|
||||||
{
|
{
|
||||||
"variants": {
|
"variants": {
|
||||||
"facing=down": {
|
"facing=down,waterlogged=false": {
|
||||||
"model": "create:block/mechanical_drill/block",
|
"model": "create:block/mechanical_drill/block",
|
||||||
"x": 180
|
"x": 180
|
||||||
},
|
},
|
||||||
"facing=up": {
|
"facing=up,waterlogged=false": {
|
||||||
"model": "create:block/mechanical_drill/block"
|
"model": "create:block/mechanical_drill/block"
|
||||||
},
|
},
|
||||||
"facing=north": {
|
"facing=north,waterlogged=false": {
|
||||||
"model": "create:block/mechanical_drill/block",
|
"model": "create:block/mechanical_drill/block",
|
||||||
"x": 90
|
"x": 90
|
||||||
},
|
},
|
||||||
"facing=south": {
|
"facing=south,waterlogged=false": {
|
||||||
"model": "create:block/mechanical_drill/block",
|
"model": "create:block/mechanical_drill/block",
|
||||||
"x": 90,
|
"x": 90,
|
||||||
"y": 180
|
"y": 180
|
||||||
},
|
},
|
||||||
"facing=west": {
|
"facing=west,waterlogged=false": {
|
||||||
"model": "create:block/mechanical_drill/block",
|
"model": "create:block/mechanical_drill/block",
|
||||||
"x": 90,
|
"x": 90,
|
||||||
"y": 270
|
"y": 270
|
||||||
},
|
},
|
||||||
"facing=east": {
|
"facing=east,waterlogged=false": {
|
||||||
|
"model": "create:block/mechanical_drill/block",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=down,waterlogged=true": {
|
||||||
|
"model": "create:block/mechanical_drill/block",
|
||||||
|
"x": 180
|
||||||
|
},
|
||||||
|
"facing=up,waterlogged=true": {
|
||||||
|
"model": "create:block/mechanical_drill/block"
|
||||||
|
},
|
||||||
|
"facing=north,waterlogged=true": {
|
||||||
|
"model": "create:block/mechanical_drill/block",
|
||||||
|
"x": 90
|
||||||
|
},
|
||||||
|
"facing=south,waterlogged=true": {
|
||||||
|
"model": "create:block/mechanical_drill/block",
|
||||||
|
"x": 90,
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,waterlogged=true": {
|
||||||
|
"model": "create:block/mechanical_drill/block",
|
||||||
|
"x": 90,
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,waterlogged=true": {
|
||||||
"model": "create:block/mechanical_drill/block",
|
"model": "create:block/mechanical_drill/block",
|
||||||
"x": 90,
|
"x": 90,
|
||||||
"y": 90
|
"y": 90
|
||||||
|
|
|
@ -1365,6 +1365,10 @@
|
||||||
"create.tooltip.chute.fans_pull_up": "Fans pull from Above",
|
"create.tooltip.chute.fans_pull_up": "Fans pull from Above",
|
||||||
"create.tooltip.chute.fans_pull_down": "Fans pull from Below",
|
"create.tooltip.chute.fans_pull_down": "Fans pull from Below",
|
||||||
"create.tooltip.chute.contains": "Contains: %1$s x%2$s",
|
"create.tooltip.chute.contains": "Contains: %1$s x%2$s",
|
||||||
|
"create.tooltip.deployer.header": "Deployer Information",
|
||||||
|
"create.tooltip.deployer.using": "Deployer is Using",
|
||||||
|
"create.tooltip.deployer.punching": "Deployer is Punching",
|
||||||
|
"create.tooltip.deployer.contains": "Holding: %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.contains": "Currently distributing:",
|
"create.tooltip.brass_tunnel.contains": "Currently distributing:",
|
||||||
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.retrieve": "Right-Click to retrieve",
|
"create.tooltip.brass_tunnel.retrieve": "Right-Click to retrieve",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 980",
|
"_": "Missing Localizations: 984",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1366,6 +1366,10 @@
|
||||||
"create.tooltip.chute.fans_pull_up": "Ventiladores tirando desde arriba",
|
"create.tooltip.chute.fans_pull_up": "Ventiladores tirando desde arriba",
|
||||||
"create.tooltip.chute.fans_pull_down": "Ventiladores tirando desde abajo",
|
"create.tooltip.chute.fans_pull_down": "Ventiladores tirando desde abajo",
|
||||||
"create.tooltip.chute.contains": "Contiene: %1$s x%2$s",
|
"create.tooltip.chute.contains": "Contiene: %1$s x%2$s",
|
||||||
|
"create.tooltip.deployer.header": "UNLOCALIZED: Deployer Information",
|
||||||
|
"create.tooltip.deployer.using": "UNLOCALIZED: Deployer is Using",
|
||||||
|
"create.tooltip.deployer.punching": "UNLOCALIZED: Deployer is Punching",
|
||||||
|
"create.tooltip.deployer.contains": "UNLOCALIZED: Holding: %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.contains": "Actualmente distribuyendo:",
|
"create.tooltip.brass_tunnel.contains": "Actualmente distribuyendo:",
|
||||||
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.retrieve": "Click-Derecho para recuperar",
|
"create.tooltip.brass_tunnel.retrieve": "Click-Derecho para recuperar",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
|
|
||||||
"_": "Missing Localizations: 1768",
|
"_": "Missing Localizations: 1768",
|
||||||
|
|
||||||
"_": "->------------------------] Éléments de jeu [------------------------<-",
|
"_": "->------------------------] Éléments de jeu [------------------------<-",
|
||||||
|
@ -1366,6 +1367,10 @@
|
||||||
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
||||||
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
||||||
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
||||||
|
"create.tooltip.deployer.header": "UNLOCALIZED: Deployer Information",
|
||||||
|
"create.tooltip.deployer.using": "UNLOCALIZED: Deployer is Using",
|
||||||
|
"create.tooltip.deployer.punching": "UNLOCALIZED: Deployer is Punching",
|
||||||
|
"create.tooltip.deployer.contains": "UNLOCALIZED: Holding: %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.contains": "UNLOCALIZED: Currently distributing:",
|
"create.tooltip.brass_tunnel.contains": "UNLOCALIZED: Currently distributing:",
|
||||||
"create.tooltip.brass_tunnel.contains_entry": "UNLOCALIZED: > %1$s x%2$s",
|
"create.tooltip.brass_tunnel.contains_entry": "UNLOCALIZED: > %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.retrieve": "UNLOCALIZED: Right-Click to retrieve",
|
"create.tooltip.brass_tunnel.retrieve": "UNLOCALIZED: Right-Click to retrieve",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 646",
|
"_": "Missing Localizations: 650",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1366,6 +1366,10 @@
|
||||||
"create.tooltip.chute.fans_pull_up": "ファンが上から吸い込んでいます",
|
"create.tooltip.chute.fans_pull_up": "ファンが上から吸い込んでいます",
|
||||||
"create.tooltip.chute.fans_pull_down": "ファンが下から吸い込んでいます",
|
"create.tooltip.chute.fans_pull_down": "ファンが下から吸い込んでいます",
|
||||||
"create.tooltip.chute.contains": "内容物: %1$s x%2$s",
|
"create.tooltip.chute.contains": "内容物: %1$s x%2$s",
|
||||||
|
"create.tooltip.deployer.header": "UNLOCALIZED: Deployer Information",
|
||||||
|
"create.tooltip.deployer.using": "UNLOCALIZED: Deployer is Using",
|
||||||
|
"create.tooltip.deployer.punching": "UNLOCALIZED: Deployer is Punching",
|
||||||
|
"create.tooltip.deployer.contains": "UNLOCALIZED: Holding: %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.contains": "配布中",
|
"create.tooltip.brass_tunnel.contains": "配布中",
|
||||||
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.retrieve": "右クリックで取り出し",
|
"create.tooltip.brass_tunnel.retrieve": "右クリックで取り出し",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 2479",
|
"_": "Missing Localizations: 2483",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1366,6 +1366,10 @@
|
||||||
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
||||||
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
||||||
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
||||||
|
"create.tooltip.deployer.header": "UNLOCALIZED: Deployer Information",
|
||||||
|
"create.tooltip.deployer.using": "UNLOCALIZED: Deployer is Using",
|
||||||
|
"create.tooltip.deployer.punching": "UNLOCALIZED: Deployer is Punching",
|
||||||
|
"create.tooltip.deployer.contains": "UNLOCALIZED: Holding: %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.contains": "UNLOCALIZED: Currently distributing:",
|
"create.tooltip.brass_tunnel.contains": "UNLOCALIZED: Currently distributing:",
|
||||||
"create.tooltip.brass_tunnel.contains_entry": "UNLOCALIZED: > %1$s x%2$s",
|
"create.tooltip.brass_tunnel.contains_entry": "UNLOCALIZED: > %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.retrieve": "UNLOCALIZED: Right-Click to retrieve",
|
"create.tooltip.brass_tunnel.retrieve": "UNLOCALIZED: Right-Click to retrieve",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1513",
|
"_": "Missing Localizations: 1327",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
"block.create.andesite_encased_large_cogwheel": "Roda dentada grande revestida com andesito",
|
"block.create.andesite_encased_large_cogwheel": "Roda dentada grande revestida com andesito",
|
||||||
"block.create.andesite_encased_shaft": "Eixo revestido com latão",
|
"block.create.andesite_encased_shaft": "Eixo revestido com latão",
|
||||||
"block.create.andesite_funnel": "Funil de Andesito",
|
"block.create.andesite_funnel": "Funil de Andesito",
|
||||||
"block.create.andesite_ladder": "UNLOCALIZED: Andesite Ladder",
|
"block.create.andesite_ladder": "Escada de mão de andesito",
|
||||||
"block.create.andesite_pillar": "Pilar de andesito",
|
"block.create.andesite_pillar": "Pilar de andesito",
|
||||||
"block.create.andesite_tunnel": "Tunel de Andesito",
|
"block.create.andesite_tunnel": "Tunel de Andesito",
|
||||||
"block.create.asurine": "Asurino",
|
"block.create.asurine": "Asurino",
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
"block.create.brass_encased_large_cogwheel": "Roda dentada grande revestida com latão",
|
"block.create.brass_encased_large_cogwheel": "Roda dentada grande revestida com latão",
|
||||||
"block.create.brass_encased_shaft": "Eixo Revestido com Latão",
|
"block.create.brass_encased_shaft": "Eixo Revestido com Latão",
|
||||||
"block.create.brass_funnel": "Funil de Latão",
|
"block.create.brass_funnel": "Funil de Latão",
|
||||||
"block.create.brass_ladder": "UNLOCALIZED: Brass Ladder",
|
"block.create.brass_ladder": "Escada de mão de latão",
|
||||||
"block.create.brass_tunnel": "Tunel de Latão",
|
"block.create.brass_tunnel": "Tunel de Latão",
|
||||||
"block.create.brown_nixie_tube": "Tubo de nixie marrom",
|
"block.create.brown_nixie_tube": "Tubo de nixie marrom",
|
||||||
"block.create.brown_sail": "Vela marrom",
|
"block.create.brown_sail": "Vela marrom",
|
||||||
|
@ -56,10 +56,10 @@
|
||||||
"block.create.cogwheel": "Roda Dentada",
|
"block.create.cogwheel": "Roda Dentada",
|
||||||
"block.create.content_observer": "Observador de Conteúdo",
|
"block.create.content_observer": "Observador de Conteúdo",
|
||||||
"block.create.controller_rail": "Trilho Controlador",
|
"block.create.controller_rail": "Trilho Controlador",
|
||||||
"block.create.controls": "UNLOCALIZED: Train Controls",
|
"block.create.controls": "Controles do trem",
|
||||||
"block.create.copper_backtank": "Tanque Traseiro de Cobre",
|
"block.create.copper_backtank": "Tanque Traseiro de Cobre",
|
||||||
"block.create.copper_casing": "Revestimento de Cobre",
|
"block.create.copper_casing": "Revestimento de Cobre",
|
||||||
"block.create.copper_ladder": "UNLOCALIZED: Copper Ladder",
|
"block.create.copper_ladder": "Escada de mão de cobre",
|
||||||
"block.create.copper_shingle_slab": "Laje de telha de cobre",
|
"block.create.copper_shingle_slab": "Laje de telha de cobre",
|
||||||
"block.create.copper_shingle_stairs": "Escada de telha de cobre",
|
"block.create.copper_shingle_stairs": "Escada de telha de cobre",
|
||||||
"block.create.copper_shingles": "Telha de cobre",
|
"block.create.copper_shingles": "Telha de cobre",
|
||||||
|
@ -201,8 +201,8 @@
|
||||||
"block.create.deployer": "Implantador",
|
"block.create.deployer": "Implantador",
|
||||||
"block.create.depot": "Depósito",
|
"block.create.depot": "Depósito",
|
||||||
"block.create.diorite_pillar": "Pilar de diorito",
|
"block.create.diorite_pillar": "Pilar de diorito",
|
||||||
"block.create.display_board": "UNLOCALIZED: Display Board",
|
"block.create.display_board": "Placa de exibição",
|
||||||
"block.create.display_link": "UNLOCALIZED: Display Link",
|
"block.create.display_link": "Conexão de placa de exibição",
|
||||||
"block.create.dripstone_pillar": "Pilar de espeleotema",
|
"block.create.dripstone_pillar": "Pilar de espeleotema",
|
||||||
"block.create.encased_chain_drive": "Correia Revestida",
|
"block.create.encased_chain_drive": "Correia Revestida",
|
||||||
"block.create.encased_fan": "Ventilador Revestida",
|
"block.create.encased_fan": "Ventilador Revestida",
|
||||||
|
@ -213,15 +213,15 @@
|
||||||
"block.create.exposed_copper_tile_slab": "Laje de ladrilho de cobre exposta",
|
"block.create.exposed_copper_tile_slab": "Laje de ladrilho de cobre exposta",
|
||||||
"block.create.exposed_copper_tile_stairs": "Escada de ladrilho de cobre exposta",
|
"block.create.exposed_copper_tile_stairs": "Escada de ladrilho de cobre exposta",
|
||||||
"block.create.exposed_copper_tiles": "Ladrilho de cobre exposto",
|
"block.create.exposed_copper_tiles": "Ladrilho de cobre exposto",
|
||||||
"block.create.fake_track": "UNLOCALIZED: Track Marker for Maps",
|
"block.create.fake_track": "Marcador de trilhos para mapa",
|
||||||
"block.create.fluid_pipe": "Cano de Fluido",
|
"block.create.fluid_pipe": "Cano de Fluido",
|
||||||
"block.create.fluid_tank": "Tanque de fluido",
|
"block.create.fluid_tank": "Tanque de fluido",
|
||||||
"block.create.fluid_valve": "Válvula",
|
"block.create.fluid_valve": "Válvula",
|
||||||
"block.create.flywheel": "Volante de inércia",
|
"block.create.flywheel": "Volante de inércia",
|
||||||
"block.create.framed_glass": "Vidro emoldurado",
|
"block.create.framed_glass": "Vidro emoldurado",
|
||||||
"block.create.framed_glass_door": "UNLOCALIZED: Framed Glass Door",
|
"block.create.framed_glass_door": "Porta de vidro emoldurado",
|
||||||
"block.create.framed_glass_pane": "Vidraça emoldurada",
|
"block.create.framed_glass_pane": "Vidraça emoldurada",
|
||||||
"block.create.framed_glass_trapdoor": "UNLOCALIZED: Framed Glass Trapdoor",
|
"block.create.framed_glass_trapdoor": "Alçapão de vidro emoldurado",
|
||||||
"block.create.gantry_carriage": "Carruagem de Pórtico",
|
"block.create.gantry_carriage": "Carruagem de Pórtico",
|
||||||
"block.create.gantry_shaft": "Eixo de Pórtico",
|
"block.create.gantry_shaft": "Eixo de Pórtico",
|
||||||
"block.create.gearbox": "Caixa de Transmissão",
|
"block.create.gearbox": "Caixa de Transmissão",
|
||||||
|
@ -248,7 +248,7 @@
|
||||||
"block.create.item_vault": "Cofre de itens",
|
"block.create.item_vault": "Cofre de itens",
|
||||||
"block.create.jungle_window": "Janela da selva",
|
"block.create.jungle_window": "Janela da selva",
|
||||||
"block.create.jungle_window_pane": "Vidraça da selva",
|
"block.create.jungle_window_pane": "Vidraça da selva",
|
||||||
"block.create.large_bogey": "UNLOCALIZED: Large Bogey",
|
"block.create.large_bogey": "Roda grande do trem",
|
||||||
"block.create.large_cogwheel": "Roda dentada grande",
|
"block.create.large_cogwheel": "Roda dentada grande",
|
||||||
"block.create.layered_andesite": "Andesito estratificado",
|
"block.create.layered_andesite": "Andesito estratificado",
|
||||||
"block.create.layered_asurine": "Asurino estratificado",
|
"block.create.layered_asurine": "Asurino estratificado",
|
||||||
|
@ -302,8 +302,8 @@
|
||||||
"block.create.mechanical_pump": "Bomba Mecânica",
|
"block.create.mechanical_pump": "Bomba Mecânica",
|
||||||
"block.create.mechanical_saw": "Serra Mecânica",
|
"block.create.mechanical_saw": "Serra Mecânica",
|
||||||
"block.create.metal_bracket": "Suporte de metal",
|
"block.create.metal_bracket": "Suporte de metal",
|
||||||
"block.create.metal_girder": "UNLOCALIZED: Metal Girder",
|
"block.create.metal_girder": "Viga de metal",
|
||||||
"block.create.metal_girder_encased_shaft": "UNLOCALIZED: Metal Girder Encased Shaft",
|
"block.create.metal_girder_encased_shaft": "Eixo revestido com viga de metal",
|
||||||
"block.create.millstone": "Pedra de Moer",
|
"block.create.millstone": "Pedra de Moer",
|
||||||
"block.create.minecart_anchor": "Ancóra de carrinho de Mina",
|
"block.create.minecart_anchor": "Ancóra de carrinho de Mina",
|
||||||
"block.create.mysterious_cuckoo_clock": "Relógio cuckoo",
|
"block.create.mysterious_cuckoo_clock": "Relógio cuckoo",
|
||||||
|
@ -332,7 +332,7 @@
|
||||||
"block.create.pink_toolbox": "Caixa de ferramentas rosa",
|
"block.create.pink_toolbox": "Caixa de ferramentas rosa",
|
||||||
"block.create.pink_valve_handle": "Válvula rosa",
|
"block.create.pink_valve_handle": "Válvula rosa",
|
||||||
"block.create.piston_extension_pole": "Vara de Extensão do Pistão",
|
"block.create.piston_extension_pole": "Vara de Extensão do Pistão",
|
||||||
"block.create.placard": "UNLOCALIZED: Placard",
|
"block.create.placard": "Cartaz",
|
||||||
"block.create.polished_cut_andesite": "Andesito lapidado polido",
|
"block.create.polished_cut_andesite": "Andesito lapidado polido",
|
||||||
"block.create.polished_cut_andesite_slab": "Laje de andesito lapidado polido",
|
"block.create.polished_cut_andesite_slab": "Laje de andesito lapidado polido",
|
||||||
"block.create.polished_cut_andesite_stairs": "Escada de andesito lapidado polido",
|
"block.create.polished_cut_andesite_stairs": "Escada de andesito lapidado polido",
|
||||||
|
@ -392,9 +392,9 @@
|
||||||
"block.create.portable_fluid_interface": "Interface de fluidos portátil",
|
"block.create.portable_fluid_interface": "Interface de fluidos portátil",
|
||||||
"block.create.portable_storage_interface": "Interface de armazenamento portátil",
|
"block.create.portable_storage_interface": "Interface de armazenamento portátil",
|
||||||
"block.create.powered_latch": "Trava de redstone",
|
"block.create.powered_latch": "Trava de redstone",
|
||||||
"block.create.powered_shaft": "UNLOCALIZED: Powered Shaft",
|
"block.create.powered_shaft": "Eixo energizado",
|
||||||
"block.create.powered_toggle_latch": "Trave de alternância de redstone",
|
"block.create.powered_toggle_latch": "Trava de alternância de redstone",
|
||||||
"block.create.pulley_magnet": "Imã da Polia",
|
"block.create.pulley_magnet": "Ímã da Polia",
|
||||||
"block.create.pulse_extender": "Extensor de pulso",
|
"block.create.pulse_extender": "Extensor de pulso",
|
||||||
"block.create.pulse_repeater": "Repetidor de Pulso",
|
"block.create.pulse_repeater": "Repetidor de Pulso",
|
||||||
"block.create.purple_nixie_tube": "Tubo nixie roxo",
|
"block.create.purple_nixie_tube": "Tubo nixie roxo",
|
||||||
|
@ -403,7 +403,7 @@
|
||||||
"block.create.purple_toolbox": "Caixa de ferramentas roxa",
|
"block.create.purple_toolbox": "Caixa de ferramentas roxa",
|
||||||
"block.create.purple_valve_handle": "válvula roxa",
|
"block.create.purple_valve_handle": "válvula roxa",
|
||||||
"block.create.radial_chassis": "Chassis Radial",
|
"block.create.radial_chassis": "Chassis Radial",
|
||||||
"block.create.railway_casing": "UNLOCALIZED: Train Casing",
|
"block.create.railway_casing": "Revestimento de trem",
|
||||||
"block.create.raw_zinc_block": "Bloco de zinco bruto",
|
"block.create.raw_zinc_block": "Bloco de zinco bruto",
|
||||||
"block.create.red_nixie_tube": "Tubo nixie vermelho",
|
"block.create.red_nixie_tube": "Tubo nixie vermelho",
|
||||||
"block.create.red_sail": "Vela vermelha",
|
"block.create.red_sail": "Vela vermelha",
|
||||||
|
@ -415,11 +415,11 @@
|
||||||
"block.create.refined_radiance_casing": "Revestimento Brilhante",
|
"block.create.refined_radiance_casing": "Revestimento Brilhante",
|
||||||
"block.create.rope": "Corda",
|
"block.create.rope": "Corda",
|
||||||
"block.create.rope_pulley": "Polia",
|
"block.create.rope_pulley": "Polia",
|
||||||
"block.create.rose_quartz_block": "UNLOCALIZED: Block of Rose Quartz",
|
"block.create.rose_quartz_block": "Bloco de quartzo rosa",
|
||||||
"block.create.rose_quartz_lamp": "UNLOCALIZED: Rose Quartz Lamp",
|
"block.create.rose_quartz_lamp": "Lâmpada de quartzo rosa",
|
||||||
"block.create.rose_quartz_tiles": "UNLOCALIZED: Rose Quartz Tiles",
|
"block.create.rose_quartz_tiles": "Telha de quartzo rosa",
|
||||||
"block.create.rotation_speed_controller": "Controlador de Velocidade Rotacional",
|
"block.create.rotation_speed_controller": "Controlador de velocidade rotacional",
|
||||||
"block.create.sail_frame": "moldura de vela",
|
"block.create.sail_frame": "Moldura de vela",
|
||||||
"block.create.schematic_table": "Mesa de Esquema",
|
"block.create.schematic_table": "Mesa de Esquema",
|
||||||
"block.create.schematicannon": "Canhão de Esquema",
|
"block.create.schematicannon": "Canhão de Esquema",
|
||||||
"block.create.scorchia": "Escória negra",
|
"block.create.scorchia": "Escória negra",
|
||||||
|
@ -427,8 +427,8 @@
|
||||||
"block.create.scoria": "Escória",
|
"block.create.scoria": "Escória",
|
||||||
"block.create.scoria_pillar": "Pilar de escória",
|
"block.create.scoria_pillar": "Pilar de escória",
|
||||||
"block.create.secondary_linear_chassis": "Chassis linear secundário",
|
"block.create.secondary_linear_chassis": "Chassis linear secundário",
|
||||||
"block.create.sequenced_gearshift": "Câmbio sequenciado",
|
"block.create.sequenced_gearshift": "Câmbio sequencial",
|
||||||
"block.create.shadow_steel_casing": "Revestiment das Sombras",
|
"block.create.shadow_steel_casing": "Revestimento das Sombras",
|
||||||
"block.create.shaft": "Eixo",
|
"block.create.shaft": "Eixo",
|
||||||
"block.create.small_andesite_brick_slab": "Laje de tijolos pequenos de andesito",
|
"block.create.small_andesite_brick_slab": "Laje de tijolos pequenos de andesito",
|
||||||
"block.create.small_andesite_brick_stairs": "Escada de tijolos pequenos de andesito",
|
"block.create.small_andesite_brick_stairs": "Escada de tijolos pequenos de andesito",
|
||||||
|
@ -438,7 +438,7 @@
|
||||||
"block.create.small_asurine_brick_stairs": "Escada de tijolos pequenos de Asurino",
|
"block.create.small_asurine_brick_stairs": "Escada de tijolos pequenos de Asurino",
|
||||||
"block.create.small_asurine_brick_wall": "Muro de tijolos pequenos de Asurino",
|
"block.create.small_asurine_brick_wall": "Muro de tijolos pequenos de Asurino",
|
||||||
"block.create.small_asurine_bricks": "Tijolos pequenos de Asurino",
|
"block.create.small_asurine_bricks": "Tijolos pequenos de Asurino",
|
||||||
"block.create.small_bogey": "UNLOCALIZED: Small Bogey",
|
"block.create.small_bogey": "Roda do trem pequena",
|
||||||
"block.create.small_calcite_brick_slab": "Laje de tijolos pequenos de calcita",
|
"block.create.small_calcite_brick_slab": "Laje de tijolos pequenos de calcita",
|
||||||
"block.create.small_calcite_brick_stairs": "Escada de tijolos pequenos de calcita",
|
"block.create.small_calcite_brick_stairs": "Escada de tijolos pequenos de calcita",
|
||||||
"block.create.small_calcite_brick_wall": "Muro de tijolos pequenos de calcita",
|
"block.create.small_calcite_brick_wall": "Muro de tijolos pequenos de calcita",
|
||||||
|
@ -471,7 +471,7 @@
|
||||||
"block.create.small_ochrum_brick_stairs": "Escada de tijolos pequenos de Ocrom",
|
"block.create.small_ochrum_brick_stairs": "Escada de tijolos pequenos de Ocrom",
|
||||||
"block.create.small_ochrum_brick_wall": "Muro de tijolos pequenos de Ocrom",
|
"block.create.small_ochrum_brick_wall": "Muro de tijolos pequenos de Ocrom",
|
||||||
"block.create.small_ochrum_bricks": "Tijolos pequenos de Ocrom",
|
"block.create.small_ochrum_bricks": "Tijolos pequenos de Ocrom",
|
||||||
"block.create.small_rose_quartz_tiles": "UNLOCALIZED: Small Rose Quartz Tiles",
|
"block.create.small_rose_quartz_tiles": "Telha de quartzo rosa pequena",
|
||||||
"block.create.small_scorchia_brick_slab": "Laje de tijolos pequenos de escória negra",
|
"block.create.small_scorchia_brick_slab": "Laje de tijolos pequenos de escória negra",
|
||||||
"block.create.small_scorchia_brick_stairs": "Escada de tijolos pequenos de escória negra",
|
"block.create.small_scorchia_brick_stairs": "Escada de tijolos pequenos de escória negra",
|
||||||
"block.create.small_scorchia_brick_wall": "Muro de tijolos pequenos de escória negra",
|
"block.create.small_scorchia_brick_wall": "Muro de tijolos pequenos de escória negra",
|
||||||
|
@ -494,21 +494,21 @@
|
||||||
"block.create.spout": "Bica",
|
"block.create.spout": "Bica",
|
||||||
"block.create.spruce_window": "Janela de pinheiro",
|
"block.create.spruce_window": "Janela de pinheiro",
|
||||||
"block.create.spruce_window_pane": "Vidraça de pinheiro",
|
"block.create.spruce_window_pane": "Vidraça de pinheiro",
|
||||||
"block.create.steam_engine": "UNLOCALIZED: Steam Engine",
|
"block.create.steam_engine": "Motor a vapor",
|
||||||
"block.create.steam_whistle": "UNLOCALIZED: Steam Whistle",
|
"block.create.steam_whistle": "Apito a vapor",
|
||||||
"block.create.steam_whistle_extension": "UNLOCALIZED: Steam Whistle Extension",
|
"block.create.steam_whistle_extension": "Extensão do apito a vapor",
|
||||||
"block.create.sticker": "Adesivo",
|
"block.create.sticker": "Adesivo",
|
||||||
"block.create.sticky_mechanical_piston": "Pistão Mecânico Grudento",
|
"block.create.sticky_mechanical_piston": "Pistão Mecânico Grudento",
|
||||||
"block.create.stockpile_switch": "Disjuntor de Armazenamento",
|
"block.create.stockpile_switch": "Disjuntor de Armazenamento",
|
||||||
"block.create.stressometer": "Estressómetro",
|
"block.create.stressometer": "Estressómetro",
|
||||||
"block.create.tiled_glass": "Vidro Entalhado",
|
"block.create.tiled_glass": "Vidro Entalhado",
|
||||||
"block.create.tiled_glass_pane": "Vidraça Entalhada",
|
"block.create.tiled_glass_pane": "Vidraça Entalhada",
|
||||||
"block.create.track": "UNLOCALIZED: Train Track",
|
"block.create.track": "Trilho do trem",
|
||||||
"block.create.track_observer": "UNLOCALIZED: Train Observer",
|
"block.create.track_observer": "Observador de trem",
|
||||||
"block.create.track_signal": "UNLOCALIZED: Train Signal",
|
"block.create.track_signal": "Sinal de trem",
|
||||||
"block.create.track_station": "UNLOCALIZED: Train Station",
|
"block.create.track_station": "Estação de trem",
|
||||||
"block.create.train_door": "UNLOCALIZED: Train Door",
|
"block.create.train_door": "Porta de trem",
|
||||||
"block.create.train_trapdoor": "UNLOCALIZED: Train Trapdoor",
|
"block.create.train_trapdoor": "Alçapão de trem",
|
||||||
"block.create.tuff_pillar": "Pilar de tufo",
|
"block.create.tuff_pillar": "Pilar de tufo",
|
||||||
"block.create.turntable": "Mesa giratória",
|
"block.create.turntable": "Mesa giratória",
|
||||||
"block.create.veridium": "Veridiano",
|
"block.create.veridium": "Veridiano",
|
||||||
|
@ -532,7 +532,7 @@
|
||||||
"block.create.waxed_exposed_copper_tiles": "Ladrilhos de cobre exposto encerado",
|
"block.create.waxed_exposed_copper_tiles": "Ladrilhos de cobre exposto encerado",
|
||||||
"block.create.waxed_oxidized_copper_shingle_slab": "Laje de telha de cobre oxidada encerada",
|
"block.create.waxed_oxidized_copper_shingle_slab": "Laje de telha de cobre oxidada encerada",
|
||||||
"block.create.waxed_oxidized_copper_shingle_stairs": "Escada de telha de cobre oxidada encerada",
|
"block.create.waxed_oxidized_copper_shingle_stairs": "Escada de telha de cobre oxidada encerada",
|
||||||
"block.create.waxed_oxidized_copper_shingles": "Telha de cobre oxidada encerada",
|
"block.create.waxed_oxidized_copper_shingles": "Telha de cobre oxidado encerada",
|
||||||
"block.create.waxed_oxidized_copper_tile_slab": "Laje de ladrilhos de cobre oxidada encerada",
|
"block.create.waxed_oxidized_copper_tile_slab": "Laje de ladrilhos de cobre oxidada encerada",
|
||||||
"block.create.waxed_oxidized_copper_tile_stairs": "Escada de ladrilhos de cobre oxidada encerada",
|
"block.create.waxed_oxidized_copper_tile_stairs": "Escada de ladrilhos de cobre oxidada encerada",
|
||||||
"block.create.waxed_oxidized_copper_tiles": "Ladrilhos de cobre oxidado encerado",
|
"block.create.waxed_oxidized_copper_tiles": "Ladrilhos de cobre oxidado encerado",
|
||||||
|
@ -567,10 +567,10 @@
|
||||||
"enchantment.create.capacity": "Capacidade",
|
"enchantment.create.capacity": "Capacidade",
|
||||||
"enchantment.create.potato_recovery": "Recuperação de Batata",
|
"enchantment.create.potato_recovery": "Recuperação de Batata",
|
||||||
|
|
||||||
"entity.create.carriage_contraption": "UNLOCALIZED: Carriage Contraption",
|
"entity.create.carriage_contraption": "Engenhoca de carruagem",
|
||||||
"entity.create.contraption": "Engenhoca",
|
"entity.create.contraption": "Engenhoca",
|
||||||
"entity.create.crafting_blueprint": "Esquema de Fabricação",
|
"entity.create.crafting_blueprint": "Esquema de Fabricação",
|
||||||
"entity.create.gantry_contraption": "Engenhoca de Pórticolo",
|
"entity.create.gantry_contraption": "Engenhoca de Pórtico",
|
||||||
"entity.create.potato_projectile": "Projétil de batata",
|
"entity.create.potato_projectile": "Projétil de batata",
|
||||||
"entity.create.seat": "Assento",
|
"entity.create.seat": "Assento",
|
||||||
"entity.create.stationary_contraption": "Engenhoca estacionária",
|
"entity.create.stationary_contraption": "Engenhoca estacionária",
|
||||||
|
@ -595,8 +595,8 @@
|
||||||
"item.create.chocolate_glazed_berries": "Baga com Cobertura de Chocolate",
|
"item.create.chocolate_glazed_berries": "Baga com Cobertura de Chocolate",
|
||||||
"item.create.chromatic_compound": "Composto Cromático",
|
"item.create.chromatic_compound": "Composto Cromático",
|
||||||
"item.create.cinder_flour": "Farinha de Netherrack",
|
"item.create.cinder_flour": "Farinha de Netherrack",
|
||||||
"item.create.copper_backtank": "Tanque Traseiro",
|
"item.create.copper_backtank": "Tanque Traseiro de cobre",
|
||||||
"item.create.copper_backtank_placeable": "UNLOCALIZED: Copper Backtank Placeable",
|
"item.create.copper_backtank_placeable": "Tanque de cobre traseiro colocável",
|
||||||
"item.create.copper_nugget": "Pepita de Cobre",
|
"item.create.copper_nugget": "Pepita de Cobre",
|
||||||
"item.create.copper_sheet": "Chapa de Cobre",
|
"item.create.copper_sheet": "Chapa de Cobre",
|
||||||
"item.create.crafter_slot_cover": "Cobertura do slot de fabricador",
|
"item.create.crafter_slot_cover": "Cobertura do slot de fabricador",
|
||||||
|
@ -631,7 +631,7 @@
|
||||||
"item.create.honey_bucket": "Balde de Mel",
|
"item.create.honey_bucket": "Balde de Mel",
|
||||||
"item.create.honeyed_apple": "Maçã com Cobertura de Mel",
|
"item.create.honeyed_apple": "Maçã com Cobertura de Mel",
|
||||||
"item.create.incomplete_precision_mechanism": "Mecanismo de Precisão",
|
"item.create.incomplete_precision_mechanism": "Mecanismo de Precisão",
|
||||||
"item.create.incomplete_track": "UNLOCALIZED: Incomplete Track",
|
"item.create.incomplete_track": "trilho incompleto",
|
||||||
"item.create.iron_sheet": "Chapa de Ferro",
|
"item.create.iron_sheet": "Chapa de Ferro",
|
||||||
"item.create.linked_controller": "Controle conectado",
|
"item.create.linked_controller": "Controle conectado",
|
||||||
"item.create.minecart_contraption": "Engenhoca de Carrinho de Mina",
|
"item.create.minecart_contraption": "Engenhoca de Carrinho de Mina",
|
||||||
|
@ -646,15 +646,15 @@
|
||||||
"item.create.refined_radiance": "Luz Refinada",
|
"item.create.refined_radiance": "Luz Refinada",
|
||||||
"item.create.rose_quartz": "Quartzo Rosa",
|
"item.create.rose_quartz": "Quartzo Rosa",
|
||||||
"item.create.sand_paper": "Lixa",
|
"item.create.sand_paper": "Lixa",
|
||||||
"item.create.schedule": "UNLOCALIZED: Train Schedule",
|
"item.create.schedule": "Programação do trem",
|
||||||
"item.create.schematic": "Esquema",
|
"item.create.schematic": "Esquema",
|
||||||
"item.create.schematic_and_quill": "Esquema e pena",
|
"item.create.schematic_and_quill": "Esquema e pena",
|
||||||
"item.create.shadow_steel": "Aço sombrio",
|
"item.create.shadow_steel": "Aço sombrio",
|
||||||
"item.create.sturdy_sheet": "UNLOCALIZED: Sturdy Sheet",
|
"item.create.sturdy_sheet": "Chapa resistente",
|
||||||
"item.create.super_glue": "Super Cola",
|
"item.create.super_glue": "Super Cola",
|
||||||
"item.create.sweet_roll": "Rolinho Doce",
|
"item.create.sweet_roll": "Rolinho Doce",
|
||||||
"item.create.tree_fertilizer": "Fertilizante de Árvore",
|
"item.create.tree_fertilizer": "Fertilizante de Árvore",
|
||||||
"item.create.unprocessed_obsidian_sheet": "UNLOCALIZED: Unprocessed Obsidian Sheet",
|
"item.create.unprocessed_obsidian_sheet": "Chapa de obsidiana não processada",
|
||||||
"item.create.vertical_gearbox": "Caixa de Transmissão Vertical",
|
"item.create.vertical_gearbox": "Caixa de Transmissão Vertical",
|
||||||
"item.create.wand_of_symmetry": "Varinha de Simetria",
|
"item.create.wand_of_symmetry": "Varinha de Simetria",
|
||||||
"item.create.wheat_flour": "Farinha de trigo",
|
"item.create.wheat_flour": "Farinha de trigo",
|
||||||
|
@ -669,29 +669,29 @@
|
||||||
"advancement.create.root": "Bem vindo a Create",
|
"advancement.create.root": "Bem vindo a Create",
|
||||||
"advancement.create.root.desc": "É hora de construir engenhocas maravilhosas",
|
"advancement.create.root.desc": "É hora de construir engenhocas maravilhosas",
|
||||||
"advancement.create.andesite_alloy": "Aliterações Em abundância",
|
"advancement.create.andesite_alloy": "Aliterações Em abundância",
|
||||||
"advancement.create.andesite_alloy.desc": "Materiais do Create tem nomes estranhos, a liga de andesito é um deles.",
|
"advancement.create.andesite_alloy.desc": "Materiais do Create têm nomes estranhos, a liga de andesito é um deles.",
|
||||||
"advancement.create.andesite_casing": "A era do andesito",
|
"advancement.create.andesite_casing": "A era do andesito",
|
||||||
"advancement.create.andesite_casing.desc": "Use um pouco de liga de andesito e madeira para fazer um revestimento basico.",
|
"advancement.create.andesite_casing.desc": "Use um pouco de liga de andesito e madeira para fazer um revestimento basico.",
|
||||||
"advancement.create.mechanical_press": "UNLOCALIZED: Bonk",
|
"advancement.create.mechanical_press": "Bonk",
|
||||||
"advancement.create.mechanical_press.desc": "UNLOCALIZED: Create some sheets in a Mechanical Press",
|
"advancement.create.mechanical_press.desc": "Crie algumas chapas na prensa mecânica",
|
||||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind maker",
|
"advancement.create.encased_fan": "Fazedor de vento",
|
||||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and activate an Encased Fan",
|
"advancement.create.encased_fan.desc": "Coloque e ative um ventilador revestido",
|
||||||
"advancement.create.fan_processing": "UNLOCALIZED: Processing by Particle",
|
"advancement.create.fan_processing": "Processando por particulas",
|
||||||
"advancement.create.fan_processing.desc": "UNLOCALIZED: Use an Encased Fan to process materials",
|
"advancement.create.fan_processing.desc": "Use um ventilador revestido para processar materiais",
|
||||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's most feared",
|
"advancement.create.saw_processing": "O mais temido da oficina",
|
||||||
"advancement.create.saw_processing.desc": "UNLOCALIZED: Use an upright Mechanical Saw to process materials",
|
"advancement.create.saw_processing.desc": "Use uma serra mecânica de pé para processar materiais",
|
||||||
"advancement.create.compacting": "UNLOCALIZED: Compactification",
|
"advancement.create.compacting": "Compactação",
|
||||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Press and a Basin to create less items from more items",
|
"advancement.create.compacting.desc": "Use uma prensa e uma bacia para criar menos itens de mais itens",
|
||||||
"advancement.create.belt": "Correia de alga",
|
"advancement.create.belt": "Correia de alga",
|
||||||
"advancement.create.belt.desc": "Conecte dois eixos com uma esteira mecânica.",
|
"advancement.create.belt.desc": "Conecte dois eixos com uma esteira mecânica.",
|
||||||
"advancement.create.funnel": "UNLOCALIZED: Airport Aesthetic",
|
"advancement.create.funnel": "Estética de aeroporto",
|
||||||
"advancement.create.funnel.desc": "UNLOCALIZED: Extract or insert items into a container using a Funnel",
|
"advancement.create.funnel.desc": "Extraia ou insira itens num container usando um funil de andesito",
|
||||||
"advancement.create.chute": "Caindo",
|
"advancement.create.chute": "Caindo",
|
||||||
"advancement.create.chute.desc": "coloque uma calha a versão vertical da esteira mecanica.",
|
"advancement.create.chute.desc": "coloque uma calha a versão vertical da esteira mecânica.",
|
||||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing it up",
|
"advancement.create.mechanical_mixer": "Misturando",
|
||||||
"advancement.create.mechanical_mixer.desc": "UNLOCALIZED: Combine ingredients in a Mechanical Mixer",
|
"advancement.create.mechanical_mixer.desc": "Combina ingredientes em uma batedeira mecânica",
|
||||||
"advancement.create.burner": "UNLOCALIZED: Sentient Fireplace",
|
"advancement.create.burner": "Fogueira viva",
|
||||||
"advancement.create.burner.desc": "UNLOCALIZED: Obtain a Blaze Burner",
|
"advancement.create.burner.desc": "Obtenha um queimador de blaze",
|
||||||
"advancement.create.water_wheel": "aproveitamento hidráulico",
|
"advancement.create.water_wheel": "aproveitamento hidráulico",
|
||||||
"advancement.create.water_wheel.desc": "Coloque uma roda de água e tente conseguir gira-la!",
|
"advancement.create.water_wheel.desc": "Coloque uma roda de água e tente conseguir gira-la!",
|
||||||
"advancement.create.windmill": "Uma brisa moderada",
|
"advancement.create.windmill": "Uma brisa moderada",
|
||||||
|
@ -700,160 +700,160 @@
|
||||||
"advancement.create.shifting_gears.desc": "Conecte uma roda dentada grande com uma roda dentada pequena, permitindo você a mudar a velocidade da engenhoca.",
|
"advancement.create.shifting_gears.desc": "Conecte uma roda dentada grande com uma roda dentada pequena, permitindo você a mudar a velocidade da engenhoca.",
|
||||||
"advancement.create.millstone": "Moedor portátil",
|
"advancement.create.millstone": "Moedor portátil",
|
||||||
"advancement.create.millstone.desc": "Coloque e energize uma pedra de moer",
|
"advancement.create.millstone.desc": "Coloque e energize uma pedra de moer",
|
||||||
"advancement.create.super_glue": "UNLOCALIZED: Area of Connect",
|
"advancement.create.super_glue": "Área de conexão",
|
||||||
"advancement.create.super_glue.desc": "UNLOCALIZED: Super Glue some blocks into a group",
|
"advancement.create.super_glue.desc": "Cole alguns blocos em um grupo",
|
||||||
"advancement.create.contraption_actors": "UNLOCALIZED: Moving with Purpose",
|
"advancement.create.contraption_actors": "Movimento com proposito",
|
||||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a contraption with drills, saws or harvesters on board",
|
"advancement.create.contraption_actors.desc": "Crie uma engenhoca com brocas, serras ou coletores a bordo",
|
||||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-by exchange",
|
"advancement.create.portable_storage_interface": "Troca por drive-thru",
|
||||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a contraption",
|
"advancement.create.portable_storage_interface.desc": "Use uma interface de armazenamento portátil para extrair ou inserir itens numa engenhoca",
|
||||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted out",
|
"advancement.create.wrench_goggles": "Bem equipado",
|
||||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's goggles and a Wrench",
|
"advancement.create.wrench_goggles.desc": "Equipe um óculos do engenheiro e uma chave inglesa",
|
||||||
"advancement.create.stressometer": "Mas quão estressado exatamente?",
|
"advancement.create.stressometer": "Mas quão estressado exatamente?",
|
||||||
"advancement.create.stressometer.desc": "Coloque e energise o estressômetro. Olhe a este por atraves dos seus óculos para ler o valor exato.",
|
"advancement.create.stressometer.desc": "Coloque e energise o estressômetro. Olhe a este por através dos seus óculos para ler o valor exato.",
|
||||||
"advancement.create.cuckoo_clock": "UNLOCALIZED: Is it Time?",
|
"advancement.create.cuckoo_clock": "Mas é a hora?",
|
||||||
"advancement.create.cuckoo_clock.desc": "UNLOCALIZED: Witness your Cuckoo Clock announce bedtime",
|
"advancement.create.cuckoo_clock.desc": "testemunhe seu relógio cuckoo anunciar a hora de dormir",
|
||||||
"advancement.create.windmill_maxed": "UNLOCALIZED: A Strong Breeze",
|
"advancement.create.windmill_maxed": "Uma brisa forte",
|
||||||
"advancement.create.windmill_maxed.desc": "UNLOCALIZED: Assemble a windmill of maximum strength",
|
"advancement.create.windmill_maxed.desc": "Monte um moinho de vento com força maxima",
|
||||||
"advancement.create.ejector_maxed": "UNLOCALIZED: Springboard Champion",
|
"advancement.create.ejector_maxed": "Campeão do trampolim",
|
||||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched for more than 30 blocks by a Weighted Ejector",
|
"advancement.create.ejector_maxed.desc": "Seja lançado mais de 30 blocos por um ejetor ponderado",
|
||||||
"advancement.create.pulley_maxed": "UNLOCALIZED: Rope to Nowhere",
|
"advancement.create.pulley_maxed": "Corda para lugar nenhum",
|
||||||
"advancement.create.pulley_maxed.desc": "UNLOCALIZED: Extend a Rope Pulley over 200 blocks deep",
|
"advancement.create.pulley_maxed.desc": "Extenda uma corda por mais de 200 blocos de profundidade",
|
||||||
"advancement.create.cart_pickup": "UNLOCALIZED: Strong Arms",
|
"advancement.create.cart_pickup": "Braçõs fortes",
|
||||||
"advancement.create.cart_pickup.desc": "UNLOCALIZED: Pick up a Minecart Contraption with at least 200 attached blocks",
|
"advancement.create.cart_pickup.desc": "Pegue uma engenhoca de carrinho de minas com pelos menos 200 blocos colados",
|
||||||
"advancement.create.anvil_plough": "UNLOCALIZED: Blacksmith Artillery",
|
"advancement.create.anvil_plough": "Artilharia de ferreiro",
|
||||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical ploughs",
|
"advancement.create.anvil_plough.desc": "Lance uma bigorna com um arador mecânico",
|
||||||
"advancement.create.lava_wheel_00000": "UNLOCALIZED: Magma Wheel",
|
"advancement.create.lava_wheel_00000": "Roda de magma",
|
||||||
"advancement.create.lava_wheel_00000.desc": "UNLOCALIZED: This shouldn't have worked§7\n(Hidden Advancement)",
|
"advancement.create.lava_wheel_00000.desc": "Isso nãoi deveria ter funcionado§7\n(Hidden Advancement)",
|
||||||
"advancement.create.hand_crank_000": "UNLOCALIZED: Workout Session",
|
"advancement.create.hand_crank_000": "Sessão de malhação",
|
||||||
"advancement.create.hand_crank_000.desc": "UNLOCALIZED: Use a Hand Crank until fully exhausted§7\n(Hidden Advancement)",
|
"advancement.create.hand_crank_000.desc": "Use uma manivela até estar completamente exausto§7\n(Hidden Advancement)",
|
||||||
"advancement.create.belt_funnel_kiss": "UNLOCALIZED: The Parrots and the Flaps",
|
"advancement.create.belt_funnel_kiss": "Os pombinhos",
|
||||||
"advancement.create.belt_funnel_kiss.desc": "Faça dois funis de esteira beijarem.",
|
"advancement.create.belt_funnel_kiss.desc": "Faça dois funis de esteira beijarem.",
|
||||||
"advancement.create.stressometer_maxed": "UNLOCALIZED: Perfectly Stressed",
|
"advancement.create.stressometer_maxed": "Perfeitamente estressado",
|
||||||
"advancement.create.stressometer_maxed.desc": "UNLOCALIZED: Get a 100% readout from a Stressometer§7\n(Hidden Advancement)",
|
"advancement.create.stressometer_maxed.desc": "Consiga uma leitura de 100% de um estressómetro§7\n(Hidden Advancement)",
|
||||||
"advancement.create.copper": "UNLOCALIZED: More Sturdier Rocks",
|
"advancement.create.copper": "Rochas mais resistentes",
|
||||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper for your exploits in Fluid Manipulation",
|
"advancement.create.copper.desc": "Acumule cobre para as suas explorações na manipulações de fluido",
|
||||||
"advancement.create.copper_casing": "A era do cobre",
|
"advancement.create.copper_casing": "A era do cobre",
|
||||||
"advancement.create.copper_casing.desc": "Use um pouco de chapas de cobre e madeira para criar um pouco de revestimentos de cobre.",
|
"advancement.create.copper_casing.desc": "Use um pouco de chapas de cobre e madeira para criar um pouco de revestimentos de cobre.",
|
||||||
"advancement.create.spout": "Sploosh",
|
"advancement.create.spout": "Sploosh",
|
||||||
"advancement.create.spout.desc": "Assista um item ser enchido usando uma bica.",
|
"advancement.create.spout.desc": "Assista um item ser enchido usando uma bica.",
|
||||||
"advancement.create.drain": "UNLOCALIZED: Tumble Draining",
|
"advancement.create.drain": "Cambalhotas de drenagem",
|
||||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid containing item be emptied by an Item Drain",
|
"advancement.create.drain.desc": "Assista um item contendo fluidos ser esvaziado por um dreno de itens",
|
||||||
"advancement.create.steam_engine": "UNLOCALIZED: The Powerhouse",
|
"advancement.create.steam_engine": "A usina",
|
||||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam engine to generate torque",
|
"advancement.create.steam_engine.desc": "Use um motor a vapor para gerar torque",
|
||||||
"advancement.create.steam_whistle": "UNLOCALIZED: Voice of an Angel",
|
"advancement.create.steam_whistle": "Voz de um anjo",
|
||||||
"advancement.create.steam_whistle.desc": "UNLOCALIZED: Activate a Steam Whistle",
|
"advancement.create.steam_whistle.desc": "Ative um apito a vapor",
|
||||||
"advancement.create.backtank": "UNLOCALIZED: Pressure to Go",
|
"advancement.create.backtank": "Pressão para ir",
|
||||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a copper backtank and make it accumulate Air Pressure",
|
"advancement.create.backtank.desc": "Crie um tanque traseiro de cobre e faça ele acumular pressão",
|
||||||
"advancement.create.diving_suit": "UNLOCALIZED: Ready for the Depths",
|
"advancement.create.diving_suit": "Preparado para as profundezas",
|
||||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a diving helmet together with your backtank and jump into water",
|
"advancement.create.diving_suit.desc": "Equipe um capacete de mergulhador junto com o seu tanque traseiro de cobre e pule na água",
|
||||||
"advancement.create.mechanical_pump_0": "UNLOCALIZED: Under Pressure",
|
"advancement.create.mechanical_pump_0": "Sobre pressão",
|
||||||
"advancement.create.mechanical_pump_0.desc": "UNLOCALIZED: Place and power a Mechanical Pump",
|
"advancement.create.mechanical_pump_0.desc": "Coloque e ative uma bomba mecânica",
|
||||||
"advancement.create.glass_pipe": "Espião de fluxo",
|
"advancement.create.glass_pipe": "Espião de fluxo",
|
||||||
"advancement.create.glass_pipe.desc": "Assista fluidos se propagarem por através de canos de fluido com janela. Canos retos ficam com janelas quando uma chave inglesa é usada neles.",
|
"advancement.create.glass_pipe.desc": "Assista fluidos se propagarem por através de canos de fluido com janela. Canos retos ficam com janelas quando uma chave inglesa é usada neles.",
|
||||||
"advancement.create.water_supply": "UNLOCALIZED: Puddle Collector",
|
"advancement.create.water_supply": "Coletor de poças",
|
||||||
"advancement.create.water_supply.desc": "UNLOCALIZED: Use the pulling end of a pipe or pump to collect a water block",
|
"advancement.create.water_supply.desc": "Use a extremidade sugante de um cano ou bomba para coletar blocos de água",
|
||||||
"advancement.create.hose_pulley": "Vazamento industrial",
|
"advancement.create.hose_pulley": "Vazamento industrial",
|
||||||
"advancement.create.hose_pulley.desc": "desça uma polia de mangueira e assista esta drenar ou encher qualquer corpo de fluido.",
|
"advancement.create.hose_pulley.desc": "desça uma polia de mangueira e assista esta drenar ou encher qualquer corpo de fluido.",
|
||||||
"advancement.create.chocolate_bucket": "UNLOCALIZED: A World of Imagination",
|
"advancement.create.chocolate_bucket": "Um mundo de imaginação",
|
||||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a Bucket of Molten Chocolate",
|
"advancement.create.chocolate_bucket.desc": "Obtenha um balde de chocolate derretido",
|
||||||
"advancement.create.honey_drain": "UNLOCALIZED: Autonomous Bee-Keeping",
|
"advancement.create.honey_drain": "Apicultura autônoma",
|
||||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Bee House",
|
"advancement.create.honey_drain.desc": "Use canos para sugar o mel de colmeias ou colmeias artificiais",
|
||||||
"advancement.create.hose_pulley_lava": "UNLOCALIZED: Tapping the Mantle",
|
"advancement.create.hose_pulley_lava": "Extraindo o manto",
|
||||||
"advancement.create.hose_pulley_lava.desc": "UNLOCALIZED: Pump from a body of Lava large enough to be considered infinite",
|
"advancement.create.hose_pulley_lava.desc": "Bombeie de um corpo de lava grande o bastante para ser considerado infinito",
|
||||||
"advancement.create.steam_engine_maxed": "UNLOCALIZED: Full Steam",
|
"advancement.create.steam_engine_maxed": "Todo o vapor",
|
||||||
"advancement.create.steam_engine_maxed.desc": "UNLOCALIZED: Run a boiler at the maximum level of power",
|
"advancement.create.steam_engine_maxed.desc": "Opere uma caldeira na potencia maxima",
|
||||||
"advancement.create.foods": "UNLOCALIZED: Balanced Diet",
|
"advancement.create.foods": "Dieta equilibrada",
|
||||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Berries, a Honeyed Apple and a Sweet Roll; all from the same Spout",
|
"advancement.create.foods.desc": "Crie bagas doces com chocolate, maçã com cobertura de mel e um rolinho doce; todas da mesma bica",
|
||||||
"advancement.create.diving_suit_lava": "UNLOCALIZED: Swimming with the Striders",
|
"advancement.create.diving_suit_lava": "Nadando com os lavagantes",
|
||||||
"advancement.create.diving_suit_lava.desc": "UNLOCALIZED: Attempt to take a dive in lava with your Copper Diving Gear§7\n(Hidden Advancement)",
|
"advancement.create.diving_suit_lava.desc": "Tente mergulhar na lava com o seu equipamento de mergulho de cobre§7\n(Hidden Advancement)",
|
||||||
"advancement.create.chained_drain": "UNLOCALIZED: On a Roll",
|
"advancement.create.chained_drain": "Rolando",
|
||||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an Item move across a row of Item Drains§7\n(Hidden Advancement)",
|
"advancement.create.chained_drain.desc": "Assista um item se mover através de uma fileira de drenos de item§7\n(Hidden Advancement)",
|
||||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't cross the Streams!",
|
"advancement.create.cross_streams": "Não cruze os fluxos!",
|
||||||
"advancement.create.cross_streams.desc": "UNLOCALIZED: Watch two fluids meet in your pipe network§7\n(Hidden Advancement)",
|
"advancement.create.cross_streams.desc": "Assista dois fluidos se encontrarem na sua rede de canos§7\n(Hidden Advancement)",
|
||||||
"advancement.create.pipe_organ": "UNLOCALIZED: The Pipe Organ",
|
"advancement.create.pipe_organ": "Órgão de tubo",
|
||||||
"advancement.create.pipe_organ.desc": "UNLOCALIZED: Attach 12 uniquely pitched Steam Whistles to a single fluid tank§7\n(Hidden Advancement)",
|
"advancement.create.pipe_organ.desc": "Conecte 12 apitos a vapor com afinação diferentes a um único tanque de fluidos§7\n(Hidden Advancement)",
|
||||||
"advancement.create.brass": "Ligas de verdade",
|
"advancement.create.brass": "Ligas de verdade",
|
||||||
"advancement.create.brass.desc": "Use cobre esmagado e zinco esmagado para criar um pouco de latão.",
|
"advancement.create.brass.desc": "Use cobre esmagado e zinco esmagado para criar um pouco de latão.",
|
||||||
"advancement.create.brass_casing": "a era do latão",
|
"advancement.create.brass_casing": "a era do latão",
|
||||||
"advancement.create.brass_casing.desc": "Use o recentemente obtido latão e um pouco de madeira para criar um revestimento mais avançado.",
|
"advancement.create.brass_casing.desc": "Use o recentemente obtido latão e um pouco de madeira para criar um revestimento mais avançado.",
|
||||||
"advancement.create.rose_quartz": "UNLOCALIZED: Pink Diamonds",
|
"advancement.create.rose_quartz": "Diamantes rosa",
|
||||||
"advancement.create.rose_quartz.desc": "UNLOCALIZED: Polish some Rose Quartz",
|
"advancement.create.rose_quartz.desc": "Pula alguns quartzos rosas",
|
||||||
"advancement.create.deployer": "Cutuque, coloque e ataque",
|
"advancement.create.deployer": "Cutuque, coloque e ataque",
|
||||||
"advancement.create.deployer.desc": "coloque e energize um implantador, o reflexo perfeito de voce mesmo.",
|
"advancement.create.deployer.desc": "coloque e energize um implantador, o reflexo perfeito de você mesmo.",
|
||||||
"advancement.create.precision_mechanism": "Curiosidades complexas",
|
"advancement.create.precision_mechanism": "Curiosidades complexas",
|
||||||
"advancement.create.precision_mechanism.desc": "Monte um mecanismo de precisão.",
|
"advancement.create.precision_mechanism.desc": "Monte um mecanismo de precisão.",
|
||||||
"advancement.create.speed_controller": "Engenheiros odiam ele!",
|
"advancement.create.speed_controller": "Engenheiros odiam ele!",
|
||||||
"advancement.create.speed_controller.desc": "Coloque um Controlador de velocidade rotacional, o dispositivo ultimato para mudança de marcha.",
|
"advancement.create.speed_controller.desc": "Coloque um Controlador de velocidade rotacional, o dispositivo ultimato para mudança de marcha.",
|
||||||
"advancement.create.mechanical_arm": "Mâos ocupadas!",
|
"advancement.create.mechanical_arm": "Mâos ocupadas!",
|
||||||
"advancement.create.mechanical_arm.desc": "Fabrique um braço mecânico,selecione as entradas e saidas,Coloque e energize o; em seguida assista como elo faz todo o trabalho para você.",
|
"advancement.create.mechanical_arm.desc": "Fabrique um braço mecânico,selecione as entradas e saídas,Coloque e energize o; em seguida assista como elo faz todo o trabalho para você.",
|
||||||
"advancement.create.mechanical_crafter": "UNLOCALIZED: Automated Assembly",
|
"advancement.create.mechanical_crafter": "Fabricação automatica",
|
||||||
"advancement.create.mechanical_crafter.desc": "UNLOCALIZED: Place and power some Mechanical Crafters",
|
"advancement.create.mechanical_crafter.desc": "Coloque e ative alguns fabricadores mecânicos and power some Mechanical Crafters",
|
||||||
"advancement.create.crushing_wheel": "Par de gigantes",
|
"advancement.create.crushing_wheel": "Par de gigantes",
|
||||||
"advancement.create.crushing_wheel.desc": "Crie algumas rodas de moer para triturar alguns materiais eficientemente.",
|
"advancement.create.crushing_wheel.desc": "Crie algumas rodas de moer para triturar alguns materiais eficientemente.",
|
||||||
"advancement.create.haunted_bell": "UNLOCALIZED: Shadow Sense",
|
"advancement.create.haunted_bell": "Sentido sombrio",
|
||||||
"advancement.create.haunted_bell.desc": "UNLOCALIZED: Toll a Haunted Bell",
|
"advancement.create.haunted_bell.desc": "toque um sino assombrado",
|
||||||
"advancement.create.clockwork_bearing": "Hora da engenhoca",
|
"advancement.create.clockwork_bearing": "Hora da engenhoca",
|
||||||
"advancement.create.clockwork_bearing.desc": "Ative uma estrutura conectada a um rolamento de rêlogio.",
|
"advancement.create.clockwork_bearing.desc": "Ative uma estrutura conectada a um rolamento de relógio.",
|
||||||
"advancement.create.display_link": "UNLOCALIZED: Big Data",
|
"advancement.create.display_link": "Grandes dados",
|
||||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display link to visualise information",
|
"advancement.create.display_link.desc": "Use uma conexão de placa de exibição para visualizar informações",
|
||||||
"advancement.create.potato_cannon": "Fwoomp!",
|
"advancement.create.potato_cannon": "Fwoomp!",
|
||||||
"advancement.create.potato_cannon.desc": "Derrote um inimigo com o seu canhão de batata.",
|
"advancement.create.potato_cannon.desc": "Derrote um inimigo com o seu canhão de batata.",
|
||||||
"advancement.create.extendo_grip": "Boioioing!",
|
"advancement.create.extendo_grip": "Boioioing!",
|
||||||
"advancement.create.extendo_grip.desc": "Apossar-se de uma extensão de pegador.",
|
"advancement.create.extendo_grip.desc": "Apossar-se de uma extensão de pegador.",
|
||||||
"advancement.create.linked_controller": "UNLOCALIZED: Remote Activation",
|
"advancement.create.linked_controller": "Ativação remota",
|
||||||
"advancement.create.linked_controller.desc": "UNLOCALIZED: Activate a Redstone Link using a Linked Controller",
|
"advancement.create.linked_controller.desc": "Ative uma coneção de redstone usando um controle conectado",
|
||||||
"advancement.create.arm_blaze_burner": "Combuste-tron",
|
"advancement.create.arm_blaze_burner": "Combuste-tron",
|
||||||
"advancement.create.arm_blaze_burner.desc": "Instrua um braço mecânico para alimentar seu queimador de blaze.",
|
"advancement.create.arm_blaze_burner.desc": "Instrua um braço mecânico para alimentar seu queimador de blaze.",
|
||||||
"advancement.create.crusher_maxed_0000": "UNLOCALIZED: Crushing it",
|
"advancement.create.crusher_maxed_0000": "Triturando",
|
||||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a Pair of Crushing wheels at max speed",
|
"advancement.create.crusher_maxed_0000.desc": "Opere um par de rodas de moer na velocidade maxima",
|
||||||
"advancement.create.arm_many_targets": "Organiza-tron",
|
"advancement.create.arm_many_targets": "Organiza-tron",
|
||||||
"advancement.create.arm_many_targets.desc": "Programe um braço mecânico com dez ou mais locais de saida.",
|
"advancement.create.arm_many_targets.desc": "Programe um braço mecânico com dez ou mais locais de saída.",
|
||||||
"advancement.create.potato_cannon_collide": "UNLOCALIZED: Veggie Fireworks",
|
"advancement.create.potato_cannon_collide": "Fogos de artificios vegetais",
|
||||||
"advancement.create.potato_cannon_collide.desc": "UNLOCALIZED: Cause potato cannon projectiles of different types to collide with each other",
|
"advancement.create.potato_cannon_collide.desc": "Colida diferentes tipos de projéteis do canhão de batata",
|
||||||
"advancement.create.self_deploying": "UNLOCALIZED: Self-Driving Cart",
|
"advancement.create.self_deploying": "Carrinho com auto-condução",
|
||||||
"advancement.create.self_deploying.desc": "UNLOCALIZED: Create a Minecart Contraption that places tracks in front of itself",
|
"advancement.create.self_deploying.desc": "Crie uma engenhoca de carrinho de minas que coloque trilhos à frente de si mesmo",
|
||||||
"advancement.create.fist_bump": "Bate isso, mano!",
|
"advancement.create.fist_bump": "Bate isso, mano!",
|
||||||
"advancement.create.fist_bump.desc": "Faça dois implantadores baterem com o punho.",
|
"advancement.create.fist_bump.desc": "Faça dois implantadores baterem com o punho.",
|
||||||
"advancement.create.crafter_lazy_000": "UNLOCALIZED: Desperate Measures",
|
"advancement.create.crafter_lazy_000": "Medidas desesperadas",
|
||||||
"advancement.create.crafter_lazy_000.desc": "UNLOCALIZED: Drastically slow down a Mechanical Crafter to procrastinate on proper infrastructure§7\n(Hidden Advancement)",
|
"advancement.create.crafter_lazy_000.desc": "Drasticamente desacelere um fabricador mecânico para procrastinar numa verdadeira infraestrutura§7\n(Hidden Advancement)",
|
||||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To full Extent",
|
"advancement.create.extendo_grip_dual": "Extensão completa",
|
||||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual wield Extendo Grips for super-human reach§7\n(Hidden Advancement)",
|
"advancement.create.extendo_grip_dual.desc": "Empunhe duas extensões de pegadores para ter alcance super-humano§7\n(Hidden Advancement)",
|
||||||
"advancement.create.musical_arm": "toque minha musica!",
|
"advancement.create.musical_arm": "toque minha musica!",
|
||||||
"advancement.create.musical_arm.desc": "Assista um braço mecânico operar seu toca-discos.",
|
"advancement.create.musical_arm.desc": "Assista um braço mecânico operar seu toca-discos.",
|
||||||
"advancement.create.sturdy_sheet": "UNLOCALIZED: The Sturdiest Rocks",
|
"advancement.create.sturdy_sheet": "As rochas mais resistentes",
|
||||||
"advancement.create.sturdy_sheet.desc": "UNLOCALIZED: Assemble a Sturdy Sheet from refining crushed Obsidian",
|
"advancement.create.sturdy_sheet.desc": "Monte uma chapa resistente refinado obsidiana esmagada",
|
||||||
"advancement.create.train_casing_00": "UNLOCALIZED: The Logistical Age",
|
"advancement.create.train_casing_00": "A era da logistica",
|
||||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a Casing for Railway Components",
|
"advancement.create.train_casing_00.desc": "Use chapas resistente para criar o revestimento para componentes ferroviários",
|
||||||
"advancement.create.train": "UNLOCALIZED: All Aboard!",
|
"advancement.create.train": "Todos a bordo!",
|
||||||
"advancement.create.train.desc": "UNLOCALIZED: Assemble your first Train",
|
"advancement.create.train.desc": "Monte o seu primeiro trem",
|
||||||
"advancement.create.conductor": "UNLOCALIZED: Conductor Instructor",
|
"advancement.create.conductor": "Condutor instrutor",
|
||||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Schedule",
|
"advancement.create.conductor.desc": "Instrua um maquinista com uma programação",
|
||||||
"advancement.create.track_signal": "UNLOCALIZED: Traffic Control",
|
"advancement.create.track_signal": "Controle de tráfego",
|
||||||
"advancement.create.track_signal.desc": "UNLOCALIZED: Place a Train Signal",
|
"advancement.create.track_signal.desc": "Coloque um sinal de trem",
|
||||||
"advancement.create.display_board_0": "UNLOCALIZED: Dynamic Timetables",
|
"advancement.create.display_board_0": "Horarios dinâmicos",
|
||||||
"advancement.create.display_board_0.desc": "UNLOCALIZED: Forecast a Train's arrival on your Display Board with the help of Display Links",
|
"advancement.create.display_board_0.desc": "Exiba a previsão de chegada de um trem na sua placa de exibição com a ajuda da conexão de placa de exibição",
|
||||||
"advancement.create.track_0": "UNLOCALIZED: A new Gauge",
|
"advancement.create.track_0": "Uma nova medida",
|
||||||
"advancement.create.track_0.desc": "UNLOCALIZED: Obtain some Train Tracks",
|
"advancement.create.track_0.desc": "Obtenha alguns trilhos de trem",
|
||||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo choo!",
|
"advancement.create.train_whistle": "Choo choo!",
|
||||||
"advancement.create.train_whistle.desc": "UNLOCALIZED: Assemble a Steam Whistle to your Train and activate it while driving",
|
"advancement.create.train_whistle.desc": "Monte um apito a vapor no seu trem e ative ele enquanto dirige",
|
||||||
"advancement.create.train_portal": "UNLOCALIZED: Dimensional Commuter",
|
"advancement.create.train_portal": "Transporte dimensional",
|
||||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a train through a Nether Portal",
|
"advancement.create.train_portal.desc": "Ande de trem através de um portal do Nether",
|
||||||
"advancement.create.track_crafting_factory": "UNLOCALIZED: Track Factory",
|
"advancement.create.track_crafting_factory": "Fabrica de trilhos",
|
||||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 train tracks in the same Mechanical Press",
|
"advancement.create.track_crafting_factory.desc": "Produza mais de 1000 trilhos de trem no mesmo fabricador mecânico",
|
||||||
"advancement.create.long_bend": "UNLOCALIZED: The Longest Bend",
|
"advancement.create.long_bend": "A curva mais longa",
|
||||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a Curved track section that spans more than 30 blocks in length",
|
"advancement.create.long_bend.desc": "Crie uma seção de trilho curvada que abrange mais de 30 blocos de comprimento",
|
||||||
"advancement.create.long_train": "UNLOCALIZED: Ambitious Endeavours",
|
"advancement.create.long_train": "Esforços ambiciosos",
|
||||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least six Carriages",
|
"advancement.create.long_train.desc": "Crie um trem com pelo menos 6 vagões",
|
||||||
"advancement.create.long_travel": "UNLOCALIZED: Field Trip",
|
"advancement.create.long_travel": "Viagem de campo",
|
||||||
"advancement.create.long_travel.desc": "UNLOCALIZED: Leave a Train Seat over 5000 blocks away from where you started travelling",
|
"advancement.create.long_travel.desc": "Deixe um assento de trem a mais de 5000 blocos de distância da onde você começou a viagem",
|
||||||
"advancement.create.train_roadkill": "UNLOCALIZED: Road Kill",
|
"advancement.create.train_roadkill": "Atropelamento",
|
||||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an Enemy with your Train§7\n(Hidden Advancement)",
|
"advancement.create.train_roadkill.desc": "Atropele um inimigo com o seu trem§7\n(Hidden Advancement)",
|
||||||
"advancement.create.red_signal": "UNLOCALIZED: Expert Driver",
|
"advancement.create.red_signal": "Motorista expert",
|
||||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a Red Signal with your Train§7\n(Hidden Advancement)",
|
"advancement.create.red_signal.desc": "Atravesse um sinal vermelho com o seu trem§7\n(Hidden Advancement)",
|
||||||
"advancement.create.train_crash": "UNLOCALIZED: Terrible Service",
|
"advancement.create.train_crash": "Serviço terrivel",
|
||||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train Crash as a Passenger§7\n(Hidden Advancement)",
|
"advancement.create.train_crash.desc": "Testemunhe uma batida de trem como um passageiro§7\n(Hidden Advancement)",
|
||||||
"advancement.create.train_crash_backwards": "UNLOCALIZED: Blind Spot",
|
"advancement.create.train_crash_backwards": "Ponto cego",
|
||||||
"advancement.create.train_crash_backwards.desc": "UNLOCALIZED: Crash into another Train while driving backwards§7\n(Hidden Advancement)",
|
"advancement.create.train_crash_backwards.desc": "Bata em outro trem enquanto dirige para trás§7\n(Hidden Advancement)",
|
||||||
|
|
||||||
|
|
||||||
"_": "->------------------------] UI & Messages [------------------------<-",
|
"_": "->------------------------] UI & Messages [------------------------<-",
|
||||||
|
@ -875,7 +875,7 @@
|
||||||
"death.attack.create.potato_cannon.item": "%1$s foi atirado por %2$s usando %3$s",
|
"death.attack.create.potato_cannon.item": "%1$s foi atirado por %2$s usando %3$s",
|
||||||
"death.attack.create.cuckoo_clock_explosion": "%1$s foi explodido por relógio cuco adulterado",
|
"death.attack.create.cuckoo_clock_explosion": "%1$s foi explodido por relógio cuco adulterado",
|
||||||
"death.attack.create.cuckoo_clock_explosion.player": "%1$s foi explodido por relógio cuco adulterado",
|
"death.attack.create.cuckoo_clock_explosion.player": "%1$s foi explodido por relógio cuco adulterado",
|
||||||
"death.attack.create.run_over": "UNLOCALIZED: %1$s was run over by %2$s",
|
"death.attack.create.run_over": "%1$s foi atropelado por %2$s",
|
||||||
|
|
||||||
"create.block.deployer.damage_source_name": "Implantador rebelde",
|
"create.block.deployer.damage_source_name": "Implantador rebelde",
|
||||||
"create.block.cart_assembler.invalid": "Coloque o seu montador de carrinho de minas num trilho",
|
"create.block.cart_assembler.invalid": "Coloque o seu montador de carrinho de minas num trilho",
|
||||||
|
@ -896,14 +896,14 @@
|
||||||
"create.recipe.fan_haunting": "Assombração em massa",
|
"create.recipe.fan_haunting": "Assombração em massa",
|
||||||
"create.recipe.fan_haunting.fan": "Ventilador atrás do fogo das almas ",
|
"create.recipe.fan_haunting.fan": "Ventilador atrás do fogo das almas ",
|
||||||
"create.recipe.fan_blasting": "Fundição em massa",
|
"create.recipe.fan_blasting": "Fundição em massa",
|
||||||
"create.recipe.fan_blasting.fan": "entilador atrás de lava",
|
"create.recipe.fan_blasting.fan": "ventilador atrás de lava",
|
||||||
"create.recipe.pressing": "Prensando",
|
"create.recipe.pressing": "Prensando",
|
||||||
"create.recipe.mixing": "Misturando",
|
"create.recipe.mixing": "Misturando",
|
||||||
"create.recipe.deploying": "Implantando",
|
"create.recipe.deploying": "Implantando",
|
||||||
"create.recipe.automatic_shapeless": "Fabricação sem forma automático",
|
"create.recipe.automatic_shapeless": "Fabricação sem forma automático",
|
||||||
"create.recipe.automatic_brewing": "Produção de poções",
|
"create.recipe.automatic_brewing": "Produção de poções",
|
||||||
"create.recipe.packing": "Compactando",
|
"create.recipe.packing": "Compactando",
|
||||||
"create.recipe.automatic_packing": "Compactamento automático",
|
"create.recipe.automatic_packing": "Compactação automático",
|
||||||
"create.recipe.sawing": "Serrando",
|
"create.recipe.sawing": "Serrando",
|
||||||
"create.recipe.mechanical_crafting": "Fabricação mecânica",
|
"create.recipe.mechanical_crafting": "Fabricação mecânica",
|
||||||
"create.recipe.automatic_shaped": "Fabricação com forma automática",
|
"create.recipe.automatic_shaped": "Fabricação com forma automática",
|
||||||
|
@ -913,8 +913,8 @@
|
||||||
"create.recipe.mystery_conversion": "Conversão misteriosa",
|
"create.recipe.mystery_conversion": "Conversão misteriosa",
|
||||||
"create.recipe.spout_filling": "Preenchimento com bica",
|
"create.recipe.spout_filling": "Preenchimento com bica",
|
||||||
"create.recipe.draining": "Drenação de item",
|
"create.recipe.draining": "Drenação de item",
|
||||||
"create.recipe.item_application": "UNLOCALIZED: Manual Item Application",
|
"create.recipe.item_application": "Aplicação de item manual",
|
||||||
"create.recipe.item_application.any_axe": "UNLOCALIZED: Any Axe",
|
"create.recipe.item_application.any_axe": "Qualquer machado",
|
||||||
"create.recipe.sequenced_assembly": "Montagem sequenciada",
|
"create.recipe.sequenced_assembly": "Montagem sequenciada",
|
||||||
"create.recipe.assembly.next": "Proximo: %1$s",
|
"create.recipe.assembly.next": "Proximo: %1$s",
|
||||||
"create.recipe.assembly.step": "Passo %1$s:",
|
"create.recipe.assembly.step": "Passo %1$s:",
|
||||||
|
@ -938,26 +938,26 @@
|
||||||
"create.generic.length": "Comprimento",
|
"create.generic.length": "Comprimento",
|
||||||
"create.generic.speed": "Velocidade",
|
"create.generic.speed": "Velocidade",
|
||||||
"create.generic.delay": "Demorada",
|
"create.generic.delay": "Demorada",
|
||||||
"create.generic.duration": "UNLOCALIZED: Duration",
|
"create.generic.duration": "Duração",
|
||||||
"create.generic.timeUnit": "UNLOCALIZED: Time Unit",
|
"create.generic.timeUnit": "Unidade de tempo",
|
||||||
"create.generic.unit.ticks": "Ticks",
|
"create.generic.unit.ticks": "Ticks",
|
||||||
"create.generic.unit.seconds": "Segundos",
|
"create.generic.unit.seconds": "Segundos",
|
||||||
"create.generic.unit.minutes": "Minutos",
|
"create.generic.unit.minutes": "Minutos",
|
||||||
"create.generic.daytime.hour": "UNLOCALIZED: Hour",
|
"create.generic.daytime.hour": "Horas",
|
||||||
"create.generic.daytime.minute": "UNLOCALIZED: Minute",
|
"create.generic.daytime.minute": "Minuto",
|
||||||
"create.generic.daytime.second": "UNLOCALIZED: Second",
|
"create.generic.daytime.second": "Segundo",
|
||||||
"create.generic.daytime.pm": "UNLOCALIZED: pm",
|
"create.generic.daytime.pm": "Da tarde",
|
||||||
"create.generic.daytime.am": "UNLOCALIZED: am",
|
"create.generic.daytime.am": "Da manhã",
|
||||||
"create.generic.unit.rpm": "RPM",
|
"create.generic.unit.rpm": "RPM",
|
||||||
"create.generic.unit.stress": "us",
|
"create.generic.unit.stress": "us",
|
||||||
"create.generic.unit.degrees": "°",
|
"create.generic.unit.degrees": "°",
|
||||||
"create.generic.unit.millibuckets": "%1$smB",
|
"create.generic.unit.millibuckets": "%1$smB",
|
||||||
"create.generic.unit.buckets": "UNLOCALIZED: B",
|
"create.generic.unit.buckets": "B",
|
||||||
"create.generic.clockwise": "Sentido horário",
|
"create.generic.clockwise": "Sentido horário",
|
||||||
"create.generic.counter_clockwise": "Sentido anti-horário",
|
"create.generic.counter_clockwise": "Sentido anti-horário",
|
||||||
"create.generic.in_quotes": "UNLOCALIZED: \"%1$s\"",
|
"create.generic.in_quotes": "\"%1$s\"",
|
||||||
"create.generic.pitch": "UNLOCALIZED: Pitch: %1$s",
|
"create.generic.pitch": "Afinação: %1$s",
|
||||||
"create.generic.notes": "UNLOCALIZED: F#;F;E;D#;D;C#;C;B;A#;A;G#;G",
|
"create.generic.notes": "F#;F;E;D#;D;C#;C;B;A#;A;G#;G",
|
||||||
|
|
||||||
"create.action.scroll": "Rolar",
|
"create.action.scroll": "Rolar",
|
||||||
"create.action.confirm": "Confirmar",
|
"create.action.confirm": "Confirmar",
|
||||||
|
@ -1241,7 +1241,7 @@
|
||||||
"create.item_attributes.damaged": "Está danificado",
|
"create.item_attributes.damaged": "Está danificado",
|
||||||
"create.item_attributes.damaged.inverted": "Não está danificado",
|
"create.item_attributes.damaged.inverted": "Não está danificado",
|
||||||
"create.item_attributes.badly_damaged": "Está severamente danificado",
|
"create.item_attributes.badly_damaged": "Está severamente danificado",
|
||||||
"create.item_attributes.badly_damaged.inverted": "Não esta severamente danificado",
|
"create.item_attributes.badly_damaged.inverted": "Não está severamente danificado",
|
||||||
"create.item_attributes.not_stackable": "Não pode ser empilhado",
|
"create.item_attributes.not_stackable": "Não pode ser empilhado",
|
||||||
"create.item_attributes.not_stackable.inverted": "Pode ser empilhado",
|
"create.item_attributes.not_stackable.inverted": "Pode ser empilhado",
|
||||||
"create.item_attributes.equipable": "Pode ser equipado",
|
"create.item_attributes.equipable": "Pode ser equipado",
|
||||||
|
@ -1295,8 +1295,8 @@
|
||||||
"create.item_attributes.astralsorcery_constellation.inverted": "Não esta sintonizado a %1$s",
|
"create.item_attributes.astralsorcery_constellation.inverted": "Não esta sintonizado a %1$s",
|
||||||
"create.item_attributes.astralsorcery_crystal": "Tem atributos de cristais %1$s",
|
"create.item_attributes.astralsorcery_crystal": "Tem atributos de cristais %1$s",
|
||||||
"create.item_attributes.astralsorcery_crystal.inverted": "Não tem atributos de cristais %1$s",
|
"create.item_attributes.astralsorcery_crystal.inverted": "Não tem atributos de cristais %1$s",
|
||||||
"create.item_attributes.astralsorcery_perk_gem": " %1$s Tem um atributo de benefio",
|
"create.item_attributes.astralsorcery_perk_gem": " %1$s Tem um atributo de beneficio",
|
||||||
"create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s Não tem um atributo de benefio",
|
"create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s Não tem um atributo de benefício",
|
||||||
|
|
||||||
"create.gui.attribute_filter.no_selected_attributes": "Nenhum atributo selecionado",
|
"create.gui.attribute_filter.no_selected_attributes": "Nenhum atributo selecionado",
|
||||||
"create.gui.attribute_filter.selected_attributes": "Atributos selecionados:",
|
"create.gui.attribute_filter.selected_attributes": "Atributos selecionados:",
|
||||||
|
@ -1366,6 +1366,10 @@
|
||||||
"create.tooltip.chute.fans_pull_up": "Ventiladores sugam de cima",
|
"create.tooltip.chute.fans_pull_up": "Ventiladores sugam de cima",
|
||||||
"create.tooltip.chute.fans_pull_down": "Ventiladores sugam de baixo",
|
"create.tooltip.chute.fans_pull_down": "Ventiladores sugam de baixo",
|
||||||
"create.tooltip.chute.contains": "Contem: %1$s x%2$s",
|
"create.tooltip.chute.contains": "Contem: %1$s x%2$s",
|
||||||
|
"create.tooltip.deployer.header": "UNLOCALIZED: Deployer Information",
|
||||||
|
"create.tooltip.deployer.using": "UNLOCALIZED: Deployer is Using",
|
||||||
|
"create.tooltip.deployer.punching": "UNLOCALIZED: Deployer is Punching",
|
||||||
|
"create.tooltip.deployer.contains": "UNLOCALIZED: Holding: %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.contains": "Distribuindo:",
|
"create.tooltip.brass_tunnel.contains": "Distribuindo:",
|
||||||
"create.tooltip.brass_tunnel.contains_entry": " > %1$s x%2$s",
|
"create.tooltip.brass_tunnel.contains_entry": " > %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.retrieve": "Clique direito para recuperar item",
|
"create.tooltip.brass_tunnel.retrieve": "Clique direito para recuperar item",
|
||||||
|
@ -1391,9 +1395,9 @@
|
||||||
"create.hint.hose_pulley.title": "Abastecimento sem fundo",
|
"create.hint.hose_pulley.title": "Abastecimento sem fundo",
|
||||||
"create.hint.hose_pulley": "O corpo de fluido selecionado é considerado infinito.",
|
"create.hint.hose_pulley": "O corpo de fluido selecionado é considerado infinito.",
|
||||||
"create.hint.mechanical_arm_no_targets.title": "Sem alvos",
|
"create.hint.mechanical_arm_no_targets.title": "Sem alvos",
|
||||||
"create.hint.mechanical_arm_no_targets": "Aparentemente esse _Braço_ _Mecânico_ não foi designado nenhum _alvo._ Selecione esteiras, depósitos, funis e outros blocos com o _botão direito do mouse_ enquanto _segurando_ o _Braço_ _Mecanico_ na sua _mão_.",
|
"create.hint.mechanical_arm_no_targets": "Aparentemente esse _Braço_ _Mecânico_ não foi designado nenhum _alvo._ Selecione esteiras, depósitos, funis e outros blocos com o _botão direito do mouse_ enquanto _segurando_ o _Braço_ _Mecânico_ na sua _mão_.",
|
||||||
"create.hint.empty_bearing.title": "Atualizar o rolamento",
|
"create.hint.empty_bearing.title": "Atualizar o rolamento",
|
||||||
"create.hint.empty_bearing": " _clique com o botão direito_ o rolamento com a _mão_ _vazia_ para _conectar_ a estrutura que você construiu não frente disso.",
|
"create.hint.empty_bearing": " clique com o botão direito_ o rolamento com a _mão_ _vazia_ para _conectar_ a estrutura que você construiu não frente disso.",
|
||||||
"create.hint.full_deployer.title": "Implantador transbordando de itens",
|
"create.hint.full_deployer.title": "Implantador transbordando de itens",
|
||||||
"create.hint.full_deployer": "Aparenta que esse _inplantador_ contém _itens_ em _excesso_ que precisam ser _extraídos._ Use um _funil,_ _funil de andesito/latão_ ou outros meios para extrair os itens excedentes.",
|
"create.hint.full_deployer": "Aparenta que esse _inplantador_ contém _itens_ em _excesso_ que precisam ser _extraídos._ Use um _funil,_ _funil de andesito/latão_ ou outros meios para extrair os itens excedentes.",
|
||||||
|
|
||||||
|
@ -1721,7 +1725,7 @@
|
||||||
"create.super_glue.not_enough": "UNLOCALIZED: Not enough glue in inventory",
|
"create.super_glue.not_enough": "UNLOCALIZED: Not enough glue in inventory",
|
||||||
"create.super_glue.success": "UNLOCALIZED: Applying Glue...",
|
"create.super_glue.success": "UNLOCALIZED: Applying Glue...",
|
||||||
|
|
||||||
"create.gui.config.overlay1": "Oi :)",
|
"create.gui.config.overlay1": "UNLOCALIZED: Hi :)",
|
||||||
"create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay",
|
"create.gui.config.overlay2": "UNLOCALIZED: This is a sample overlay",
|
||||||
"create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse",
|
"create.gui.config.overlay3": "UNLOCALIZED: Click or drag with your mouse",
|
||||||
"create.gui.config.overlay4": "UNLOCALIZED: to move this preview",
|
"create.gui.config.overlay4": "UNLOCALIZED: to move this preview",
|
||||||
|
@ -1747,17 +1751,17 @@
|
||||||
"create.subtitle.contraption_disassemble": "Engenhoca para",
|
"create.subtitle.contraption_disassemble": "Engenhoca para",
|
||||||
"create.subtitle.peculiar_bell_use": "Sino peculiar toca",
|
"create.subtitle.peculiar_bell_use": "Sino peculiar toca",
|
||||||
"create.subtitle.worldshaper_place": "Zaps do terraformador",
|
"create.subtitle.worldshaper_place": "Zaps do terraformador",
|
||||||
"create.subtitle.whistle_train_manual": "UNLOCALIZED: Train honks",
|
"create.subtitle.whistle_train_manual": "Buzinas de trem",
|
||||||
"create.subtitle.steam": "UNLOCALIZED: Steam noises",
|
"create.subtitle.steam": "Sons de vapor",
|
||||||
"create.subtitle.saw_activate_stone": "Serra mecânica ativa",
|
"create.subtitle.saw_activate_stone": "Serra mecânica ativa",
|
||||||
"create.subtitle.schematicannon_finish": "Ding do canhão de esquema",
|
"create.subtitle.schematicannon_finish": "Ding do canhão de esquema",
|
||||||
"create.subtitle.crafter_craft": "Fabricador fábrica",
|
"create.subtitle.crafter_craft": "Fabricador fábrica",
|
||||||
"create.subtitle.wrench_remove": "Componente quebra",
|
"create.subtitle.wrench_remove": "Componente quebra",
|
||||||
"create.subtitle.train3": "UNLOCALIZED: Bogey wheels rumble muffled",
|
"create.subtitle.train3": "Tremer abafado das rodas do trem",
|
||||||
"create.subtitle.whistle": "UNLOCALIZED: Whistling",
|
"create.subtitle.whistle": "Apito",
|
||||||
"create.subtitle.cogs": "tremer da rodas dentadas",
|
"create.subtitle.cogs": "tremer da rodas dentadas",
|
||||||
"create.subtitle.slime_added": "Slime sendo espremido",
|
"create.subtitle.slime_added": "Slime sendo espremido",
|
||||||
"create.subtitle.whistle_train_low": "UNLOCALIZED: Low whistling",
|
"create.subtitle.whistle_train_low": "Apito baixo",
|
||||||
"create.subtitle.schematicannon_launch_block": "Canhão de esquema atira",
|
"create.subtitle.schematicannon_launch_block": "Canhão de esquema atira",
|
||||||
"create.subtitle.controller_take": "Atril esvaziado",
|
"create.subtitle.controller_take": "Atril esvaziado",
|
||||||
"create.subtitle.crafter_click": "Clicks do fabricador",
|
"create.subtitle.crafter_click": "Clicks do fabricador",
|
||||||
|
@ -1779,14 +1783,14 @@
|
||||||
"create.subtitle.wrench_rotate": "Chave inglesa usada",
|
"create.subtitle.wrench_rotate": "Chave inglesa usada",
|
||||||
"create.subtitle.potato_hit": "Impacto vegetal",
|
"create.subtitle.potato_hit": "Impacto vegetal",
|
||||||
"create.subtitle.saw_activate_wood": "Serra mecânica ativa",
|
"create.subtitle.saw_activate_wood": "Serra mecânica ativa",
|
||||||
"create.subtitle.whistle_high": "UNLOCALIZED: High whistling",
|
"create.subtitle.whistle_high": "Apito alto",
|
||||||
"create.subtitle.whistle_train_manual_low": "UNLOCALIZED: Train honks",
|
"create.subtitle.whistle_train_manual_low": "Buzinas de trem",
|
||||||
"create.subtitle.whistle_train": "UNLOCALIZED: Whistling",
|
"create.subtitle.whistle_train": "Apito",
|
||||||
"create.subtitle.haunted_bell_convert": "Sino assombrado acorda",
|
"create.subtitle.haunted_bell_convert": "Sino assombrado acorda",
|
||||||
"create.subtitle.train": "UNLOCALIZED: Bogey wheels rumble",
|
"create.subtitle.train": "Tremer das rodas do trem",
|
||||||
"create.subtitle.deny": "Boop de negação",
|
"create.subtitle.deny": "Boop de negação",
|
||||||
"create.subtitle.controller_click": "Clicks do controle",
|
"create.subtitle.controller_click": "Clicks do controle",
|
||||||
"create.subtitle.whistle_low": "UNLOCALIZED: Low whistling",
|
"create.subtitle.whistle_low": "Apito baixo",
|
||||||
"create.subtitle.copper_armor_equip": "Tilintar dos equipamentos de mergulho",
|
"create.subtitle.copper_armor_equip": "Tilintar dos equipamentos de mergulho",
|
||||||
"create.subtitle.mechanical_press_activation": "Clang da prensa mecânica",
|
"create.subtitle.mechanical_press_activation": "Clang da prensa mecânica",
|
||||||
"create.subtitle.contraption_assemble": "Engenhoca move",
|
"create.subtitle.contraption_assemble": "Engenhoca move",
|
||||||
|
@ -1803,13 +1807,13 @@
|
||||||
"item.create.example_item.tooltip.control1": "Quando Ctrl pressed",
|
"item.create.example_item.tooltip.control1": "Quando Ctrl pressed",
|
||||||
"item.create.example_item.tooltip.action1": "These controls are displayed.",
|
"item.create.example_item.tooltip.action1": "These controls are displayed.",
|
||||||
|
|
||||||
"block.create.wooden_bracket.tooltip": "UNLOCALIZED: WOODEN BRACKET",
|
"block.create.wooden_bracket.tooltip": "Suporte de madeira",
|
||||||
"block.create.wooden_bracket.tooltip.summary": "_Decore_ seus _eixos, rodas dentadas_ e _canos_com um pedaço aconchegante e de madeira de reforço.",
|
"block.create.wooden_bracket.tooltip.summary": "_Decore_ seus _eixos, rodas dentadas_ e _canos_com um pedaço aconchegante e de madeira de reforço.",
|
||||||
|
|
||||||
"block.create.metal_bracket.tooltip": "UNLOCALIZED: METAL BRACKET",
|
"block.create.metal_bracket.tooltip": "Suporte de ferro",
|
||||||
"block.create.metal_bracket.tooltip.summary": "UNLOCALIZED: _Decorate_ your _Shafts, Cogwheels_ and _Pipes_ with an industrial and sturdy bit of reinforcement.",
|
"block.create.metal_bracket.tooltip.summary": "UNLOCALIZED: _Decorate_ your _Shafts, Cogwheels_ and _Pipes_ with an industrial and sturdy bit of reinforcement.",
|
||||||
|
|
||||||
"block.create.seat.tooltip": "UNLOCALIZED: SEAT",
|
"block.create.seat.tooltip": "Assento",
|
||||||
"block.create.seat.tooltip.summary": "UNLOCALIZED: Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
|
"block.create.seat.tooltip.summary": "UNLOCALIZED: Sit yourself down and enjoy the ride! Will anchor a player onto a moving _contraption_. Great for static furniture too! Comes in a variety of colours.",
|
||||||
"block.create.seat.tooltip.condition1": "UNLOCALIZED: Right click on Seat",
|
"block.create.seat.tooltip.condition1": "UNLOCALIZED: Right click on Seat",
|
||||||
"block.create.seat.tooltip.behaviour1": "UNLOCALIZED: Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
|
"block.create.seat.tooltip.behaviour1": "UNLOCALIZED: Sits the player on the _Seat_. Press L-shift to leave the _Seat_.",
|
||||||
|
@ -1837,10 +1841,10 @@
|
||||||
"item.create.handheld_worldshaper.tooltip.control3": "UNLOCALIZED: R-Click while Sneaking",
|
"item.create.handheld_worldshaper.tooltip.control3": "UNLOCALIZED: R-Click while Sneaking",
|
||||||
"item.create.handheld_worldshaper.tooltip.action3": "UNLOCALIZED: Opens the _Configuration Interface_",
|
"item.create.handheld_worldshaper.tooltip.action3": "UNLOCALIZED: Opens the _Configuration Interface_",
|
||||||
|
|
||||||
"item.create.tree_fertilizer.tooltip": "FERTILIZANTE DE ARVORE",
|
"item.create.tree_fertilizer.tooltip": "FERTILIZANTE DE ÁRVORE",
|
||||||
"item.create.tree_fertilizer.tooltip.summary": "Uma combinação poderosa de minerais para tipos comuns de arvores",
|
"item.create.tree_fertilizer.tooltip.summary": "Uma combinação poderosa de minerais para tipos comuns de árvores",
|
||||||
"item.create.tree_fertilizer.tooltip.condition1": "Quando usada em Mudas",
|
"item.create.tree_fertilizer.tooltip.condition1": "Quando usada em Mudas",
|
||||||
"item.create.tree_fertilizer.tooltip.behaviour1": "Cresce Arvores independentemente das suas Regras de espaço",
|
"item.create.tree_fertilizer.tooltip.behaviour1": "Cresce Árvores independentemente das suas Regras de espaço",
|
||||||
|
|
||||||
"item.create.extendo_grip.tooltip": "UNLOCALIZED: EXTENDO GRIP",
|
"item.create.extendo_grip.tooltip": "UNLOCALIZED: EXTENDO GRIP",
|
||||||
"item.create.extendo_grip.tooltip.summary": "UNLOCALIZED: Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Copper_ _Backtank_",
|
"item.create.extendo_grip.tooltip.summary": "UNLOCALIZED: Boioioing! Greatly _increases reach distance_ of the wielder. Can be powered with Air Pressure from a _Copper_ _Backtank_",
|
||||||
|
@ -1874,7 +1878,7 @@
|
||||||
"item.create.empty_schematic.tooltip.summary": "Usado como ingrediente em receitas e para escrever na _Mesa_ _de_ _Esquematizar_",
|
"item.create.empty_schematic.tooltip.summary": "Usado como ingrediente em receitas e para escrever na _Mesa_ _de_ _Esquematizar_",
|
||||||
|
|
||||||
"item.create.schematic.tooltip": "ESQUEMA",
|
"item.create.schematic.tooltip": "ESQUEMA",
|
||||||
"item.create.schematic.tooltip.summary": "Contem uma estrutura para ser posicionada e colocada no mundo. Posicione o Holograma como desejar e use um _Esquemaannon_ para construí-lo.",
|
"item.create.schematic.tooltip.summary": "Contém uma estrutura para ser posicionada e colocada no mundo. Posicione o Holograma como desejar e use um _Esquemaannon_ para construí-lo.",
|
||||||
"item.create.schematic.tooltip.condition1": "Quando Em mãos",
|
"item.create.schematic.tooltip.condition1": "Quando Em mãos",
|
||||||
"item.create.schematic.tooltip.behaviour1": "Pode ser posicionado usando as Ferramentas em Tela",
|
"item.create.schematic.tooltip.behaviour1": "Pode ser posicionado usando as Ferramentas em Tela",
|
||||||
"item.create.schematic.tooltip.control1": "B-Direito enquanto Abaixado",
|
"item.create.schematic.tooltip.control1": "B-Direito enquanto Abaixado",
|
||||||
|
@ -1952,7 +1956,7 @@
|
||||||
"block.create.content_observer.tooltip.behaviour2": "UNLOCALIZED: Emits a _Redstone Pulse_ when a _matching_ Item is _transferred_.",
|
"block.create.content_observer.tooltip.behaviour2": "UNLOCALIZED: Emits a _Redstone Pulse_ when a _matching_ Item is _transferred_.",
|
||||||
|
|
||||||
"block.create.creative_crate.tooltip": "Caixa Criativa",
|
"block.create.creative_crate.tooltip": "Caixa Criativa",
|
||||||
"block.create.creative_crate.tooltip.summary": "Provê um suprimento infinito de blocos para Canho~es de Esquema próximos",
|
"block.create.creative_crate.tooltip.summary": "Provê um suprimento infinito de blocos para Canhões de Esquema próximos",
|
||||||
"block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot",
|
"block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot",
|
||||||
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
|
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 2188",
|
"_": "Missing Localizations: 2192",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1366,6 +1366,10 @@
|
||||||
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
"create.tooltip.chute.fans_pull_up": "UNLOCALIZED: Fans pull from Above",
|
||||||
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
"create.tooltip.chute.fans_pull_down": "UNLOCALIZED: Fans pull from Below",
|
||||||
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
"create.tooltip.chute.contains": "UNLOCALIZED: Contains: %1$s x%2$s",
|
||||||
|
"create.tooltip.deployer.header": "UNLOCALIZED: Deployer Information",
|
||||||
|
"create.tooltip.deployer.using": "UNLOCALIZED: Deployer is Using",
|
||||||
|
"create.tooltip.deployer.punching": "UNLOCALIZED: Deployer is Punching",
|
||||||
|
"create.tooltip.deployer.contains": "UNLOCALIZED: Holding: %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.contains": "UNLOCALIZED: Currently distributing:",
|
"create.tooltip.brass_tunnel.contains": "UNLOCALIZED: Currently distributing:",
|
||||||
"create.tooltip.brass_tunnel.contains_entry": "UNLOCALIZED: > %1$s x%2$s",
|
"create.tooltip.brass_tunnel.contains_entry": "UNLOCALIZED: > %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.retrieve": "UNLOCALIZED: Right-Click to retrieve",
|
"create.tooltip.brass_tunnel.retrieve": "UNLOCALIZED: Right-Click to retrieve",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 647",
|
"_": "Missing Localizations: 651",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1366,6 +1366,10 @@
|
||||||
"create.tooltip.chute.fans_pull_up": "Ventilatoarele trag de Sus",
|
"create.tooltip.chute.fans_pull_up": "Ventilatoarele trag de Sus",
|
||||||
"create.tooltip.chute.fans_pull_down": "Ventilatoarele trag de Jos",
|
"create.tooltip.chute.fans_pull_down": "Ventilatoarele trag de Jos",
|
||||||
"create.tooltip.chute.contains": "Conține: %1$s x%2$s",
|
"create.tooltip.chute.contains": "Conține: %1$s x%2$s",
|
||||||
|
"create.tooltip.deployer.header": "UNLOCALIZED: Deployer Information",
|
||||||
|
"create.tooltip.deployer.using": "UNLOCALIZED: Deployer is Using",
|
||||||
|
"create.tooltip.deployer.punching": "UNLOCALIZED: Deployer is Punching",
|
||||||
|
"create.tooltip.deployer.contains": "UNLOCALIZED: Holding: %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.contains": "Distribuie Curent:",
|
"create.tooltip.brass_tunnel.contains": "Distribuie Curent:",
|
||||||
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.retrieve": "Click Dreapta pentru a recupera",
|
"create.tooltip.brass_tunnel.retrieve": "Click Dreapta pentru a recupera",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"_": "Missing Localizations: 1038",
|
"_": "Missing Localizations: 1042",
|
||||||
|
|
||||||
"_": "->------------------------] Game Elements [------------------------<-",
|
"_": "->------------------------] Game Elements [------------------------<-",
|
||||||
|
|
||||||
|
@ -1366,6 +1366,10 @@
|
||||||
"create.tooltip.chute.fans_pull_up": "鼓風機從下方進行吸引",
|
"create.tooltip.chute.fans_pull_up": "鼓風機從下方進行吸引",
|
||||||
"create.tooltip.chute.fans_pull_down": "鼓風機從上方進行吸引",
|
"create.tooltip.chute.fans_pull_down": "鼓風機從上方進行吸引",
|
||||||
"create.tooltip.chute.contains": "物品: %1$s x%2$s",
|
"create.tooltip.chute.contains": "物品: %1$s x%2$s",
|
||||||
|
"create.tooltip.deployer.header": "UNLOCALIZED: Deployer Information",
|
||||||
|
"create.tooltip.deployer.using": "UNLOCALIZED: Deployer is Using",
|
||||||
|
"create.tooltip.deployer.punching": "UNLOCALIZED: Deployer is Punching",
|
||||||
|
"create.tooltip.deployer.contains": "UNLOCALIZED: Holding: %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.contains": "正在處理",
|
"create.tooltip.brass_tunnel.contains": "正在處理",
|
||||||
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.retrieve": "右鍵取回",
|
"create.tooltip.brass_tunnel.retrieve": "右鍵取回",
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"create:copper_backtank"
|
||||||
|
]
|
||||||
|
}
|
|
@ -248,6 +248,7 @@ public class AllItems {
|
||||||
|
|
||||||
COPPER_BACKTANK = REGISTRATE.item("copper_backtank", p -> new CopperBacktankItem(p, COPPER_BACKTANK_PLACEABLE))
|
COPPER_BACKTANK = REGISTRATE.item("copper_backtank", p -> new CopperBacktankItem(p, COPPER_BACKTANK_PLACEABLE))
|
||||||
.model(AssetLookup.customGenericItemModel("_", "item"))
|
.model(AssetLookup.customGenericItemModel("_", "item"))
|
||||||
|
.tag(AllItemTags.PRESSURIZED_AIR_SOURCES.tag)
|
||||||
.register(),
|
.register(),
|
||||||
|
|
||||||
DIVING_HELMET = REGISTRATE.item("diving_helmet", DivingHelmetItem::new)
|
DIVING_HELMET = REGISTRATE.item("diving_helmet", DivingHelmetItem::new)
|
||||||
|
|
|
@ -221,6 +221,7 @@ public class AllTags {
|
||||||
MODDED_STRIPPED_WOOD,
|
MODDED_STRIPPED_WOOD,
|
||||||
CASING,
|
CASING,
|
||||||
SLEEPERS,
|
SLEEPERS,
|
||||||
|
PRESSURIZED_AIR_SOURCES,
|
||||||
|
|
||||||
STRIPPED_LOGS(FORGE),
|
STRIPPED_LOGS(FORGE),
|
||||||
STRIPPED_WOOD(FORGE),
|
STRIPPED_WOOD(FORGE),
|
||||||
|
@ -445,7 +446,7 @@ public class AllTags {
|
||||||
strippedWoodCompat(Mods.BOP, "fir", "redwood", "cherry", "mahogany", "jacaranda", "palm", "willow", "dead",
|
strippedWoodCompat(Mods.BOP, "fir", "redwood", "cherry", "mahogany", "jacaranda", "palm", "willow", "dead",
|
||||||
"magic", "umbran", "hellbark");
|
"magic", "umbran", "hellbark");
|
||||||
strippedWoodCompat(Mods.BSK, "bluebright", "starlit", "frostbright", "lunar", "dusk", "maple", "cherry");
|
strippedWoodCompat(Mods.BSK, "bluebright", "starlit", "frostbright", "lunar", "dusk", "maple", "cherry");
|
||||||
|
|
||||||
AllItemTags.MODDED_STRIPPED_LOGS.addOptional(Mods.BYG, "stripped_bulbis_stem");
|
AllItemTags.MODDED_STRIPPED_LOGS.addOptional(Mods.BYG, "stripped_bulbis_stem");
|
||||||
AllItemTags.MODDED_STRIPPED_WOOD.addOptional(Mods.BYG, "stripped_bulbis_wood");
|
AllItemTags.MODDED_STRIPPED_WOOD.addOptional(Mods.BYG, "stripped_bulbis_wood");
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.simibubi.create.api.behaviour;
|
package com.simibubi.create.api.behaviour;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import com.simibubi.create.Create;
|
import com.simibubi.create.Create;
|
||||||
|
@ -14,7 +15,7 @@ import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
public abstract class BlockSpoutingBehaviour {
|
public abstract class BlockSpoutingBehaviour {
|
||||||
|
|
||||||
private static final HashMap<ResourceLocation, BlockSpoutingBehaviour> BLOCK_SPOUTING_BEHAVIOURS = new HashMap<>();
|
private static final Map<ResourceLocation, BlockSpoutingBehaviour> BLOCK_SPOUTING_BEHAVIOURS = new HashMap<>();
|
||||||
|
|
||||||
public static void addCustomSpoutInteraction(ResourceLocation resourceLocation,
|
public static void addCustomSpoutInteraction(ResourceLocation resourceLocation,
|
||||||
BlockSpoutingBehaviour movementBehaviour) {
|
BlockSpoutingBehaviour movementBehaviour) {
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class RotationPropagator {
|
||||||
* Determines the change in rotation between two attached kinetic entities. For
|
* Determines the change in rotation between two attached kinetic entities. For
|
||||||
* instance, an axis connection returns 1 while a 1-to-1 gear connection
|
* instance, an axis connection returns 1 while a 1-to-1 gear connection
|
||||||
* reverses the rotation and therefore returns -1.
|
* reverses the rotation and therefore returns -1.
|
||||||
*
|
*
|
||||||
* @param from
|
* @param from
|
||||||
* @param to
|
* @param to
|
||||||
* @return
|
* @return
|
||||||
|
@ -201,7 +201,7 @@ public class RotationPropagator {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insert the added position to the kinetic network.
|
* Insert the added position to the kinetic network.
|
||||||
*
|
*
|
||||||
* @param worldIn
|
* @param worldIn
|
||||||
* @param pos
|
* @param pos
|
||||||
*/
|
*/
|
||||||
|
@ -215,7 +215,7 @@ public class RotationPropagator {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search for sourceless networks attached to the given entity and update them.
|
* Search for sourceless networks attached to the given entity and update them.
|
||||||
*
|
*
|
||||||
* @param currentTE
|
* @param currentTE
|
||||||
*/
|
*/
|
||||||
private static void propagateNewSource(KineticTileEntity currentTE) {
|
private static void propagateNewSource(KineticTileEntity currentTE) {
|
||||||
|
@ -230,11 +230,14 @@ public class RotationPropagator {
|
||||||
|
|
||||||
if (newSpeed == 0 && oppositeSpeed == 0)
|
if (newSpeed == 0 && oppositeSpeed == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
boolean incompatible =
|
boolean incompatible =
|
||||||
Math.signum(newSpeed) != Math.signum(speedOfNeighbour) && (newSpeed != 0 && speedOfNeighbour != 0);
|
Math.signum(newSpeed) != Math.signum(speedOfNeighbour) && (newSpeed != 0 && speedOfNeighbour != 0);
|
||||||
|
|
||||||
boolean tooFast = Math.abs(newSpeed) > AllConfigs.SERVER.kinetics.maxRotationSpeed.get();
|
boolean tooFast = Math.abs(newSpeed) > AllConfigs.SERVER.kinetics.maxRotationSpeed.get()
|
||||||
|
|| Math.abs(oppositeSpeed) > AllConfigs.SERVER.kinetics.maxRotationSpeed.get();
|
||||||
|
// Check for both the new speed and the opposite speed, just in case
|
||||||
|
|
||||||
boolean speedChangedTooOften = currentTE.getFlickerScore() > MAX_FLICKER_SCORE;
|
boolean speedChangedTooOften = currentTE.getFlickerScore() > MAX_FLICKER_SCORE;
|
||||||
if (tooFast || speedChangedTooOften) {
|
if (tooFast || speedChangedTooOften) {
|
||||||
world.destroyBlock(pos, true);
|
world.destroyBlock(pos, true);
|
||||||
|
@ -300,7 +303,7 @@ public class RotationPropagator {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove the given entity from the network.
|
* Remove the given entity from the network.
|
||||||
*
|
*
|
||||||
* @param worldIn
|
* @param worldIn
|
||||||
* @param pos
|
* @param pos
|
||||||
* @param removedTE
|
* @param removedTE
|
||||||
|
@ -333,7 +336,7 @@ public class RotationPropagator {
|
||||||
/**
|
/**
|
||||||
* Clear the entire subnetwork depending on the given entity and find a new
|
* Clear the entire subnetwork depending on the given entity and find a new
|
||||||
* source
|
* source
|
||||||
*
|
*
|
||||||
* @param updateTE
|
* @param updateTE
|
||||||
*/
|
*/
|
||||||
private static void propagateMissingSource(KineticTileEntity updateTE) {
|
private static void propagateMissingSource(KineticTileEntity updateTE) {
|
||||||
|
|
|
@ -26,6 +26,8 @@ public class TorquePropagator {
|
||||||
public KineticNetwork getOrCreateNetworkFor(KineticTileEntity te) {
|
public KineticNetwork getOrCreateNetworkFor(KineticTileEntity te) {
|
||||||
Long id = te.network;
|
Long id = te.network;
|
||||||
KineticNetwork network;
|
KineticNetwork network;
|
||||||
|
if (!networks.containsKey(te.getLevel()))
|
||||||
|
networks.put(te.getLevel(), new HashMap<>());
|
||||||
Map<Long, KineticNetwork> map = networks.get(te.getLevel());
|
Map<Long, KineticNetwork> map = networks.get(te.getLevel());
|
||||||
if (id == null)
|
if (id == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.simibubi.create.content.contraptions.base;
|
package com.simibubi.create.content.contraptions.base;
|
||||||
|
|
||||||
import com.simibubi.create.foundation.utility.DirectionHelper;
|
import com.simibubi.create.content.contraptions.components.structureMovement.ITransformableBlock;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.StructureTransform;
|
||||||
import com.simibubi.create.foundation.utility.Iterate;
|
import com.simibubi.create.foundation.utility.Iterate;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
@ -15,7 +16,7 @@ import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.block.state.StateDefinition.Builder;
|
import net.minecraft.world.level.block.state.StateDefinition.Builder;
|
||||||
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
||||||
|
|
||||||
public abstract class DirectionalAxisKineticBlock extends DirectionalKineticBlock {
|
public abstract class DirectionalAxisKineticBlock extends DirectionalKineticBlock implements ITransformableBlock {
|
||||||
|
|
||||||
public static final BooleanProperty AXIS_ALONG_FIRST_COORDINATE = BooleanProperty.create("axis_along_first");
|
public static final BooleanProperty AXIS_ALONG_FIRST_COORDINATE = BooleanProperty.create("axis_along_first");
|
||||||
|
|
||||||
|
@ -53,7 +54,7 @@ public abstract class DirectionalAxisKineticBlock extends DirectionalKineticBloc
|
||||||
|
|
||||||
if (faceAxis.isHorizontal()) {
|
if (faceAxis.isHorizontal()) {
|
||||||
alongFirst = faceAxis == Axis.Z;
|
alongFirst = faceAxis == Axis.Z;
|
||||||
Direction positivePerpendicular = DirectionHelper.getPositivePerpendicular(faceAxis);
|
Direction positivePerpendicular = faceAxis == Axis.X ? Direction.SOUTH : Direction.EAST;
|
||||||
|
|
||||||
boolean shaftAbove = prefersConnectionTo(world, pos, Direction.UP, true);
|
boolean shaftAbove = prefersConnectionTo(world, pos, Direction.UP, true);
|
||||||
boolean shaftBelow = prefersConnectionTo(world, pos, Direction.DOWN, true);
|
boolean shaftBelow = prefersConnectionTo(world, pos, Direction.DOWN, true);
|
||||||
|
@ -121,6 +122,23 @@ public abstract class DirectionalAxisKineticBlock extends DirectionalKineticBloc
|
||||||
return super.rotate(state, rot);
|
return super.rotate(state, rot);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState transform(BlockState state, StructureTransform transform) {
|
||||||
|
if (transform.mirror != null) {
|
||||||
|
state = mirror(state, transform.mirror);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transform.rotationAxis == Direction.Axis.Y) {
|
||||||
|
return rotate(state, transform.rotation);
|
||||||
|
}
|
||||||
|
|
||||||
|
Direction newFacing = transform.rotateFacing(state.getValue(FACING));
|
||||||
|
if (transform.rotationAxis == newFacing.getAxis() && transform.rotation.ordinal() % 2 == 1) {
|
||||||
|
state = state.cycle(AXIS_ALONG_FIRST_COORDINATE);
|
||||||
|
}
|
||||||
|
return state.setValue(FACING, newFacing);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
|
public boolean hasShaftTowards(LevelReader world, BlockPos pos, BlockState state, Direction face) {
|
||||||
return face.getAxis() == getRotationAxis(state);
|
return face.getAxis() == getRotationAxis(state);
|
||||||
|
|
|
@ -15,12 +15,19 @@ import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.damagesource.DamageSource;
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.item.ItemEntity;
|
import net.minecraft.world.entity.item.ItemEntity;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
import net.minecraft.world.level.BlockGetter;
|
import net.minecraft.world.level.BlockGetter;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraft.world.level.LevelAccessor;
|
||||||
import net.minecraft.world.level.LevelReader;
|
import net.minecraft.world.level.LevelReader;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.level.block.SimpleWaterloggedBlock;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||||
|
import net.minecraft.world.level.material.FluidState;
|
||||||
|
import net.minecraft.world.level.material.Fluids;
|
||||||
import net.minecraft.world.level.material.PushReaction;
|
import net.minecraft.world.level.material.PushReaction;
|
||||||
import net.minecraft.world.level.pathfinder.PathComputationType;
|
import net.minecraft.world.level.pathfinder.PathComputationType;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
|
@ -29,11 +36,12 @@ import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
|
|
||||||
@ParametersAreNonnullByDefault
|
@ParametersAreNonnullByDefault
|
||||||
@MethodsReturnNonnullByDefault
|
@MethodsReturnNonnullByDefault
|
||||||
public class DrillBlock extends DirectionalKineticBlock implements ITE<DrillTileEntity> {
|
public class DrillBlock extends DirectionalKineticBlock implements ITE<DrillTileEntity>, SimpleWaterloggedBlock {
|
||||||
public static DamageSource damageSourceDrill = new DamageSource("create.mechanical_drill").bypassArmor();
|
public static DamageSource damageSourceDrill = new DamageSource("create.mechanical_drill").bypassArmor();
|
||||||
|
|
||||||
public DrillBlock(Properties properties) {
|
public DrillBlock(Properties properties) {
|
||||||
super(properties);
|
super(properties);
|
||||||
|
registerDefaultState(super.defaultBlockState().setValue(BlockStateProperties.WATERLOGGED, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -83,6 +91,31 @@ public class DrillBlock extends DirectionalKineticBlock implements ITE<DrillTile
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FluidState getFluidState(BlockState state) {
|
||||||
|
return state.getValue(BlockStateProperties.WATERLOGGED) ? Fluids.WATER.getSource(false) : Fluids.EMPTY.defaultFluidState();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
builder.add(BlockStateProperties.WATERLOGGED);
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState updateShape(BlockState state, Direction direction, BlockState neighbourState,
|
||||||
|
LevelAccessor world, BlockPos pos, BlockPos neighbourPos) {
|
||||||
|
if (state.getValue(BlockStateProperties.WATERLOGGED))
|
||||||
|
world.scheduleTick(pos, Fluids.WATER, Fluids.WATER.getTickDelay(world));
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
FluidState FluidState = context.getLevel().getFluidState(context.getClickedPos());
|
||||||
|
return super.getStateForPlacement(context).setValue(BlockStateProperties.WATERLOGGED, Boolean.valueOf(FluidState.getType() == Fluids.WATER));
|
||||||
|
}
|
||||||
|
|
||||||
public static double getDamage(float speed) {
|
public static double getDamage(float speed) {
|
||||||
float speedAbs = Math.abs(speed);
|
float speedAbs = Math.abs(speed);
|
||||||
double sub1 = Math.min(speedAbs / 16, 2);
|
double sub1 = Math.min(speedAbs / 16, 2);
|
||||||
|
|
|
@ -12,6 +12,7 @@ import com.jozufozu.flywheel.core.PartialModel;
|
||||||
import com.simibubi.create.AllBlockPartials;
|
import com.simibubi.create.AllBlockPartials;
|
||||||
import com.simibubi.create.AllBlocks;
|
import com.simibubi.create.AllBlocks;
|
||||||
import com.simibubi.create.AllRecipeTypes;
|
import com.simibubi.create.AllRecipeTypes;
|
||||||
|
import com.simibubi.create.content.contraptions.base.IRotate.StressImpact;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRecipe;
|
import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRecipe;
|
||||||
import com.simibubi.create.content.curiosities.tools.SandPaperItem;
|
import com.simibubi.create.content.curiosities.tools.SandPaperItem;
|
||||||
|
@ -22,16 +23,19 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||||
import com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProcessingBehaviour;
|
import com.simibubi.create.foundation.tileEntity.behaviour.belt.BeltProcessingBehaviour;
|
||||||
import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour;
|
import com.simibubi.create.foundation.tileEntity.behaviour.belt.TransportedItemStackHandlerBehaviour;
|
||||||
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
|
import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringBehaviour;
|
||||||
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||||
import com.simibubi.create.foundation.utility.VecHelper;
|
import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||||
|
|
||||||
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.ListTag;
|
import net.minecraft.nbt.ListTag;
|
||||||
import net.minecraft.nbt.Tag;
|
import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.network.chat.TranslatableComponent;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
|
@ -459,6 +463,42 @@ public class DeployerTileEntity extends KineticTileEntity {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean addToGoggleTooltip(List<Component> tooltip, boolean isPlayerSneaking) {
|
||||||
|
Lang.translate("tooltip.deployer.header")
|
||||||
|
.forGoggles(tooltip);
|
||||||
|
|
||||||
|
float stressAtBase = calculateStressApplied();
|
||||||
|
|
||||||
|
if (StressImpact.isEnabled() && !Mth.equal(stressAtBase, 0)) {
|
||||||
|
Lang.translate("tooltip.stressImpact")
|
||||||
|
.style(ChatFormatting.GRAY)
|
||||||
|
.forGoggles(tooltip);
|
||||||
|
|
||||||
|
float stressTotal = stressAtBase * Math.abs(getTheoreticalSpeed());
|
||||||
|
|
||||||
|
Lang.number(stressTotal)
|
||||||
|
.translate("generic.unit.stress")
|
||||||
|
.style(ChatFormatting.AQUA)
|
||||||
|
.space()
|
||||||
|
.add(Lang.translate("gui.goggles.at_current_speed")
|
||||||
|
.style(ChatFormatting.DARK_GRAY))
|
||||||
|
.forGoggles(tooltip, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
Lang.translate("tooltip.deployer." + (mode == Mode.USE ? "using" : "punching"))
|
||||||
|
.style(ChatFormatting.YELLOW)
|
||||||
|
.forGoggles(tooltip);
|
||||||
|
|
||||||
|
if (!heldItem.isEmpty()) {
|
||||||
|
Lang.translate("tooltip.deployer.contains", new TranslatableComponent(heldItem.getDescriptionId()).getString(), heldItem.getCount())
|
||||||
|
.style(ChatFormatting.GREEN)
|
||||||
|
.forGoggles(tooltip);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@OnlyIn(Dist.CLIENT)
|
@OnlyIn(Dist.CLIENT)
|
||||||
public float getHandOffset(float partialTicks) {
|
public float getHandOffset(float partialTicks) {
|
||||||
if (isVirtual())
|
if (isVirtual())
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
package com.simibubi.create.content.contraptions.components.structureMovement;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
|
||||||
|
public interface ITransformableBlock {
|
||||||
|
BlockState transform(BlockState state, StructureTransform transform);
|
||||||
|
}
|
|
@ -4,13 +4,6 @@ import static net.minecraft.world.level.block.state.properties.BlockStatePropert
|
||||||
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.FACING;
|
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.FACING;
|
||||||
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING;
|
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING;
|
||||||
|
|
||||||
import com.simibubi.create.AllBlocks;
|
|
||||||
import com.simibubi.create.content.contraptions.base.DirectionalAxisKineticBlock;
|
|
||||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock;
|
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltBlock;
|
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltSlope;
|
|
||||||
import com.simibubi.create.foundation.utility.DirectionHelper;
|
|
||||||
import com.simibubi.create.foundation.utility.Iterate;
|
|
||||||
import com.simibubi.create.foundation.utility.VecHelper;
|
import com.simibubi.create.foundation.utility.VecHelper;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
@ -30,7 +23,6 @@ import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.block.state.properties.AttachFace;
|
import net.minecraft.world.level.block.state.properties.AttachFace;
|
||||||
import net.minecraft.world.level.block.state.properties.BellAttachType;
|
import net.minecraft.world.level.block.state.properties.BellAttachType;
|
||||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||||
import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
|
||||||
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
||||||
import net.minecraft.world.level.block.state.properties.Half;
|
import net.minecraft.world.level.block.state.properties.Half;
|
||||||
|
@ -55,7 +47,7 @@ public class StructureTransform {
|
||||||
}
|
}
|
||||||
|
|
||||||
public StructureTransform(BlockPos offset, Axis axis, Rotation rotation, Mirror mirror) {
|
public StructureTransform(BlockPos offset, Axis axis, Rotation rotation, Mirror mirror) {
|
||||||
this(offset, rotation == Rotation.NONE ? 0 : (4 - rotation.ordinal())*90, axis, rotation, mirror);
|
this(offset, rotation == Rotation.NONE ? 0 : (4 - rotation.ordinal()) * 90, axis, rotation, mirror);
|
||||||
}
|
}
|
||||||
|
|
||||||
public StructureTransform(BlockPos offset, float xRotation, float yRotation, float zRotation) {
|
public StructureTransform(BlockPos offset, float xRotation, float yRotation, float zRotation) {
|
||||||
|
@ -96,7 +88,7 @@ public class StructureTransform {
|
||||||
vec = VecHelper.rotate(vec, angle, rotationAxis);
|
vec = VecHelper.rotate(vec, angle, rotationAxis);
|
||||||
return vec;
|
return vec;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Vec3 applyWithoutOffset(Vec3 localVec) {
|
public Vec3 applyWithoutOffset(Vec3 localVec) {
|
||||||
Vec3 vec = localVec;
|
Vec3 vec = localVec;
|
||||||
if (mirror != null)
|
if (mirror != null)
|
||||||
|
@ -124,16 +116,18 @@ public class StructureTransform {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Minecraft does not support blockstate rotation around axes other than y. Add
|
* Vanilla does not support block state rotation around axes other than Y. Add
|
||||||
* specific cases here for blockstates, that should react to rotations around
|
* specific cases here for vanilla block states so that they can react to rotations
|
||||||
* horizontal axes
|
* around horizontal axes. For Create blocks, implement ITransformableBlock.
|
||||||
*/
|
*/
|
||||||
public BlockState apply(BlockState state) {
|
public BlockState apply(BlockState state) {
|
||||||
|
Block block = state.getBlock();
|
||||||
|
if (block instanceof ITransformableBlock transformable)
|
||||||
|
return transformable.transform(state, this);
|
||||||
|
|
||||||
if (mirror != null)
|
if (mirror != null)
|
||||||
state = state.mirror(mirror);
|
state = state.mirror(mirror);
|
||||||
|
|
||||||
Block block = state.getBlock();
|
|
||||||
|
|
||||||
if (rotationAxis == Axis.Y) {
|
if (rotationAxis == Axis.Y) {
|
||||||
if (block instanceof BellBlock) {
|
if (block instanceof BellBlock) {
|
||||||
if (state.getValue(BlockStateProperties.BELL_ATTACHMENT) == BellAttachType.DOUBLE_WALL)
|
if (state.getValue(BlockStateProperties.BELL_ATTACHMENT) == BellAttachType.DOUBLE_WALL)
|
||||||
|
@ -141,12 +135,10 @@ public class StructureTransform {
|
||||||
return state.setValue(BellBlock.FACING,
|
return state.setValue(BellBlock.FACING,
|
||||||
rotation.rotate(state.getValue(BellBlock.FACING)));
|
rotation.rotate(state.getValue(BellBlock.FACING)));
|
||||||
}
|
}
|
||||||
|
|
||||||
return state.rotate(rotation);
|
return state.rotate(rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (block instanceof AbstractChassisBlock)
|
|
||||||
return rotateChassis(state);
|
|
||||||
|
|
||||||
if (block instanceof FaceAttachedHorizontalDirectionalBlock) {
|
if (block instanceof FaceAttachedHorizontalDirectionalBlock) {
|
||||||
DirectionProperty facingProperty = FaceAttachedHorizontalDirectionalBlock.FACING;
|
DirectionProperty facingProperty = FaceAttachedHorizontalDirectionalBlock.FACING;
|
||||||
EnumProperty<AttachFace> faceProperty = FaceAttachedHorizontalDirectionalBlock.FACE;
|
EnumProperty<AttachFace> faceProperty = FaceAttachedHorizontalDirectionalBlock.FACE;
|
||||||
|
@ -185,30 +177,11 @@ public class StructureTransform {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (AllBlocks.BELT.has(state)) {
|
|
||||||
state = transformBelt(state, halfTurn);
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state.hasProperty(FACING)) {
|
if (state.hasProperty(FACING)) {
|
||||||
Direction newFacing = transformFacing(state.getValue(FACING));
|
state = state.setValue(FACING, rotateFacing(state.getValue(FACING)));
|
||||||
if (state.hasProperty(DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE)) {
|
|
||||||
if (rotationAxis == newFacing.getAxis() && rotation.ordinal() % 2 == 1)
|
|
||||||
state = state.cycle(DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE);
|
|
||||||
}
|
|
||||||
state = state.setValue(FACING, newFacing);
|
|
||||||
|
|
||||||
} else if (state.hasProperty(AXIS)) {
|
} else if (state.hasProperty(AXIS)) {
|
||||||
state = state.setValue(AXIS, transformAxis(state.getValue(AXIS)));
|
state = state.setValue(AXIS, rotateAxis(state.getValue(AXIS)));
|
||||||
|
|
||||||
} else if (halfTurn) {
|
} else if (halfTurn) {
|
||||||
|
|
||||||
if (state.hasProperty(FACING)) {
|
|
||||||
Direction stateFacing = state.getValue(FACING);
|
|
||||||
if (stateFacing.getAxis() == rotationAxis)
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state.hasProperty(HORIZONTAL_FACING)) {
|
if (state.hasProperty(HORIZONTAL_FACING)) {
|
||||||
Direction stateFacing = state.getValue(HORIZONTAL_FACING);
|
Direction stateFacing = state.getValue(HORIZONTAL_FACING);
|
||||||
if (stateFacing.getAxis() == rotationAxis)
|
if (stateFacing.getAxis() == rotationAxis)
|
||||||
|
@ -216,6 +189,7 @@ public class StructureTransform {
|
||||||
}
|
}
|
||||||
|
|
||||||
state = state.rotate(rotation);
|
state = state.rotate(rotation);
|
||||||
|
|
||||||
if (state.hasProperty(SlabBlock.TYPE) && state.getValue(SlabBlock.TYPE) != SlabType.DOUBLE)
|
if (state.hasProperty(SlabBlock.TYPE) && state.getValue(SlabBlock.TYPE) != SlabType.DOUBLE)
|
||||||
state = state.setValue(SlabBlock.TYPE,
|
state = state.setValue(SlabBlock.TYPE,
|
||||||
state.getValue(SlabBlock.TYPE) == SlabType.BOTTOM ? SlabType.TOP : SlabType.BOTTOM);
|
state.getValue(SlabBlock.TYPE) == SlabType.BOTTOM ? SlabType.TOP : SlabType.BOTTOM);
|
||||||
|
@ -244,125 +218,21 @@ public class StructureTransform {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected BlockState transformBelt(BlockState state, boolean halfTurn) {
|
public Direction mirrorFacing(Direction facing) {
|
||||||
Direction initialDirection = state.getValue(BeltBlock.HORIZONTAL_FACING);
|
|
||||||
boolean diagonal =
|
|
||||||
state.getValue(BeltBlock.SLOPE) == BeltSlope.DOWNWARD || state.getValue(BeltBlock.SLOPE) == BeltSlope.UPWARD;
|
|
||||||
|
|
||||||
if (!diagonal) {
|
|
||||||
for (int i = 0; i < rotation.ordinal(); i++) {
|
|
||||||
Direction direction = state.getValue(BeltBlock.HORIZONTAL_FACING);
|
|
||||||
BeltSlope slope = state.getValue(BeltBlock.SLOPE);
|
|
||||||
boolean vertical = slope == BeltSlope.VERTICAL;
|
|
||||||
boolean horizontal = slope == BeltSlope.HORIZONTAL;
|
|
||||||
boolean sideways = slope == BeltSlope.SIDEWAYS;
|
|
||||||
|
|
||||||
Direction newDirection = direction.getOpposite();
|
|
||||||
BeltSlope newSlope = BeltSlope.VERTICAL;
|
|
||||||
|
|
||||||
if (vertical) {
|
|
||||||
if (direction.getAxis() == rotationAxis) {
|
|
||||||
newDirection = direction.getCounterClockWise();
|
|
||||||
newSlope = BeltSlope.SIDEWAYS;
|
|
||||||
} else {
|
|
||||||
newSlope = BeltSlope.HORIZONTAL;
|
|
||||||
newDirection = direction;
|
|
||||||
if (direction.getAxis() == Axis.Z)
|
|
||||||
newDirection = direction.getOpposite();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sideways) {
|
|
||||||
newDirection = direction;
|
|
||||||
if (direction.getAxis() == rotationAxis)
|
|
||||||
newSlope = BeltSlope.HORIZONTAL;
|
|
||||||
else
|
|
||||||
newDirection = direction.getCounterClockWise();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (horizontal) {
|
|
||||||
newDirection = direction;
|
|
||||||
if (direction.getAxis() == rotationAxis)
|
|
||||||
newSlope = BeltSlope.SIDEWAYS;
|
|
||||||
else if (direction.getAxis() != Axis.Z)
|
|
||||||
newDirection = direction.getOpposite();
|
|
||||||
}
|
|
||||||
|
|
||||||
state = state.setValue(BeltBlock.HORIZONTAL_FACING, newDirection);
|
|
||||||
state = state.setValue(BeltBlock.SLOPE, newSlope);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (initialDirection.getAxis() != rotationAxis) {
|
|
||||||
for (int i = 0; i < rotation.ordinal(); i++) {
|
|
||||||
Direction direction = state.getValue(BeltBlock.HORIZONTAL_FACING);
|
|
||||||
Direction newDirection = direction.getOpposite();
|
|
||||||
BeltSlope slope = state.getValue(BeltBlock.SLOPE);
|
|
||||||
boolean upward = slope == BeltSlope.UPWARD;
|
|
||||||
boolean downward = slope == BeltSlope.DOWNWARD;
|
|
||||||
|
|
||||||
// Rotate diagonal
|
|
||||||
if (direction.getAxisDirection() == AxisDirection.POSITIVE ^ downward ^ direction.getAxis() == Axis.Z) {
|
|
||||||
state = state.setValue(BeltBlock.SLOPE, upward ? BeltSlope.DOWNWARD : BeltSlope.UPWARD);
|
|
||||||
} else {
|
|
||||||
state = state.setValue(BeltBlock.HORIZONTAL_FACING, newDirection);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (halfTurn) {
|
|
||||||
Direction direction = state.getValue(BeltBlock.HORIZONTAL_FACING);
|
|
||||||
Direction newDirection = direction.getOpposite();
|
|
||||||
BeltSlope slope = state.getValue(BeltBlock.SLOPE);
|
|
||||||
boolean vertical = slope == BeltSlope.VERTICAL;
|
|
||||||
|
|
||||||
if (diagonal) {
|
|
||||||
state = state.setValue(BeltBlock.SLOPE, slope == BeltSlope.UPWARD ? BeltSlope.DOWNWARD
|
|
||||||
: slope == BeltSlope.DOWNWARD ? BeltSlope.UPWARD : slope);
|
|
||||||
} else if (vertical) {
|
|
||||||
state = state.setValue(BeltBlock.HORIZONTAL_FACING, newDirection);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Axis transformAxis(Axis axisIn) {
|
|
||||||
Direction facing = Direction.get(AxisDirection.POSITIVE, axisIn);
|
|
||||||
facing = transformFacing(facing);
|
|
||||||
Axis axis = facing.getAxis();
|
|
||||||
return axis;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Direction transformFacing(Direction facing) {
|
|
||||||
if (mirror != null)
|
if (mirror != null)
|
||||||
facing = mirror.mirror(facing);
|
return mirror.mirror(facing);
|
||||||
for (int i = 0; i < rotation.ordinal(); i++)
|
|
||||||
facing = DirectionHelper.rotateAround(facing, rotationAxis);
|
|
||||||
return facing;
|
return facing;
|
||||||
}
|
}
|
||||||
|
|
||||||
private BlockState rotateChassis(BlockState state) {
|
public Axis rotateAxis(Axis axis) {
|
||||||
if (rotation == Rotation.NONE)
|
Direction facing = Direction.get(AxisDirection.POSITIVE, axis);
|
||||||
return state;
|
return rotateFacing(facing).getAxis();
|
||||||
|
}
|
||||||
|
|
||||||
BlockState rotated = state.setValue(AXIS, transformAxis(state.getValue(AXIS)));
|
public Direction rotateFacing(Direction facing) {
|
||||||
AbstractChassisBlock block = (AbstractChassisBlock) state.getBlock();
|
for (int i = 0; i < rotation.ordinal(); i++)
|
||||||
|
facing = facing.getClockWise(rotationAxis);
|
||||||
for (Direction face : Iterate.directions) {
|
return facing;
|
||||||
BooleanProperty glueableSide = block.getGlueableSide(rotated, face);
|
|
||||||
if (glueableSide != null)
|
|
||||||
rotated = rotated.setValue(glueableSide, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (Direction face : Iterate.directions) {
|
|
||||||
BooleanProperty glueableSide = block.getGlueableSide(state, face);
|
|
||||||
if (glueableSide == null || !state.getValue(glueableSide))
|
|
||||||
continue;
|
|
||||||
Direction rotatedFacing = transformFacing(face);
|
|
||||||
BooleanProperty rotatedGlueableSide = block.getGlueableSide(rotated, rotatedFacing);
|
|
||||||
if (rotatedGlueableSide != null)
|
|
||||||
rotated = rotated.setValue(rotatedGlueableSide, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
return rotated;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static StructureTransform fromBuffer(FriendlyByteBuf buffer) {
|
public static StructureTransform fromBuffer(FriendlyByteBuf buffer) {
|
||||||
|
|
|
@ -3,6 +3,8 @@ package com.simibubi.create.content.contraptions.components.structureMovement.ch
|
||||||
import com.simibubi.create.AllItems;
|
import com.simibubi.create.AllItems;
|
||||||
import com.simibubi.create.AllSoundEvents;
|
import com.simibubi.create.AllSoundEvents;
|
||||||
import com.simibubi.create.AllTileEntities;
|
import com.simibubi.create.AllTileEntities;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.StructureTransform;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.ITransformableBlock;
|
||||||
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
|
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
|
||||||
import com.simibubi.create.foundation.block.ITE;
|
import com.simibubi.create.foundation.block.ITE;
|
||||||
import com.simibubi.create.foundation.utility.Iterate;
|
import com.simibubi.create.foundation.utility.Iterate;
|
||||||
|
@ -26,7 +28,7 @@ import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import net.minecraftforge.common.Tags;
|
import net.minecraftforge.common.Tags;
|
||||||
|
|
||||||
public abstract class AbstractChassisBlock extends RotatedPillarBlock implements IWrenchable, ITE<ChassisTileEntity> {
|
public abstract class AbstractChassisBlock extends RotatedPillarBlock implements IWrenchable, ITE<ChassisTileEntity>, ITransformableBlock {
|
||||||
|
|
||||||
public AbstractChassisBlock(Properties properties) {
|
public AbstractChassisBlock(Properties properties) {
|
||||||
super(properties);
|
super(properties);
|
||||||
|
@ -132,6 +134,44 @@ public abstract class AbstractChassisBlock extends RotatedPillarBlock implements
|
||||||
return mirrored;
|
return mirrored;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState transform(BlockState state, StructureTransform transform) {
|
||||||
|
if (transform.mirror != null) {
|
||||||
|
state = mirror(state, transform.mirror);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transform.rotationAxis == Direction.Axis.Y) {
|
||||||
|
return rotate(state, transform.rotation);
|
||||||
|
}
|
||||||
|
return transformInner(state, transform);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected BlockState transformInner(BlockState state, StructureTransform transform) {
|
||||||
|
if (transform.rotation == Rotation.NONE)
|
||||||
|
return state;
|
||||||
|
|
||||||
|
BlockState rotated = state.setValue(AXIS, transform.rotateAxis(state.getValue(AXIS)));
|
||||||
|
AbstractChassisBlock block = (AbstractChassisBlock) state.getBlock();
|
||||||
|
|
||||||
|
for (Direction face : Iterate.directions) {
|
||||||
|
BooleanProperty glueableSide = block.getGlueableSide(rotated, face);
|
||||||
|
if (glueableSide != null)
|
||||||
|
rotated = rotated.setValue(glueableSide, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (Direction face : Iterate.directions) {
|
||||||
|
BooleanProperty glueableSide = block.getGlueableSide(state, face);
|
||||||
|
if (glueableSide == null || !state.getValue(glueableSide))
|
||||||
|
continue;
|
||||||
|
Direction rotatedFacing = transform.rotateFacing(face);
|
||||||
|
BooleanProperty rotatedGlueableSide = block.getGlueableSide(rotated, rotatedFacing);
|
||||||
|
if (rotatedGlueableSide != null)
|
||||||
|
rotated = rotated.setValue(rotatedGlueableSide, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return rotated;
|
||||||
|
}
|
||||||
|
|
||||||
public abstract BooleanProperty getGlueableSide(BlockState state, Direction face);
|
public abstract BooleanProperty getGlueableSide(BlockState state, Direction face);
|
||||||
|
|
||||||
protected boolean glueAllowedOnSide(BlockGetter world, BlockPos pos, BlockState state, Direction side) {
|
protected boolean glueAllowedOnSide(BlockGetter world, BlockPos pos, BlockState state, Direction side) {
|
||||||
|
|
|
@ -7,6 +7,8 @@ import com.simibubi.create.AllTileEntities;
|
||||||
import com.simibubi.create.content.contraptions.base.HorizontalAxisKineticBlock;
|
import com.simibubi.create.content.contraptions.base.HorizontalAxisKineticBlock;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticBlock;
|
import com.simibubi.create.content.contraptions.base.KineticBlock;
|
||||||
import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock;
|
import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.ITransformableBlock;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.StructureTransform;
|
||||||
import com.simibubi.create.foundation.block.ITE;
|
import com.simibubi.create.foundation.block.ITE;
|
||||||
import com.simibubi.create.foundation.gui.ScreenOpener;
|
import com.simibubi.create.foundation.gui.ScreenOpener;
|
||||||
|
|
||||||
|
@ -35,7 +37,7 @@ import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||||
import net.minecraftforge.fml.DistExecutor;
|
import net.minecraftforge.fml.DistExecutor;
|
||||||
|
|
||||||
public class SequencedGearshiftBlock extends HorizontalAxisKineticBlock implements ITE<SequencedGearshiftTileEntity> {
|
public class SequencedGearshiftBlock extends HorizontalAxisKineticBlock implements ITE<SequencedGearshiftTileEntity>, ITransformableBlock {
|
||||||
|
|
||||||
public static final BooleanProperty VERTICAL = BooleanProperty.create("vertical");
|
public static final BooleanProperty VERTICAL = BooleanProperty.create("vertical");
|
||||||
public static final IntegerProperty STATE = IntegerProperty.create("state", 0, 5);
|
public static final IntegerProperty STATE = IntegerProperty.create("state", 0, 5);
|
||||||
|
@ -166,4 +168,24 @@ public class SequencedGearshiftBlock extends HorizontalAxisKineticBlock implemen
|
||||||
.intValue();
|
.intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState transform(BlockState state, StructureTransform transform) {
|
||||||
|
if (transform.mirror != null) {
|
||||||
|
state = mirror(state, transform.mirror);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transform.rotationAxis == Direction.Axis.Y) {
|
||||||
|
return rotate(state, transform.rotation);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transform.rotation.ordinal() % 2 == 1) {
|
||||||
|
if (transform.rotationAxis != state.getValue(HORIZONTAL_AXIS)) {
|
||||||
|
return state.cycle(VERTICAL);
|
||||||
|
} else if (state.getValue(VERTICAL)) {
|
||||||
|
return state.cycle(VERTICAL).cycle(HORIZONTAL_AXIS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,8 @@ import com.simibubi.create.AllTileEntities;
|
||||||
import com.simibubi.create.Create;
|
import com.simibubi.create.Create;
|
||||||
import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock;
|
import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.ITransformableBlock;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.StructureTransform;
|
||||||
import com.simibubi.create.content.contraptions.processing.EmptyingByBasin;
|
import com.simibubi.create.content.contraptions.processing.EmptyingByBasin;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltSlicer.Feedback;
|
import com.simibubi.create.content.contraptions.relays.belt.BeltSlicer.Feedback;
|
||||||
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity.CasingType;
|
import com.simibubi.create.content.contraptions.relays.belt.BeltTileEntity.CasingType;
|
||||||
|
@ -82,7 +84,7 @@ import net.minecraftforge.common.Tags;
|
||||||
import net.minecraftforge.items.CapabilityItemHandler;
|
import net.minecraftforge.items.CapabilityItemHandler;
|
||||||
import net.minecraftforge.items.IItemHandler;
|
import net.minecraftforge.items.IItemHandler;
|
||||||
|
|
||||||
public class BeltBlock extends HorizontalKineticBlock implements ITE<BeltTileEntity>, ISpecialBlockItemRequirement {
|
public class BeltBlock extends HorizontalKineticBlock implements ITE<BeltTileEntity>, ISpecialBlockItemRequirement, ITransformableBlock {
|
||||||
|
|
||||||
public static final Property<BeltSlope> SLOPE = EnumProperty.create("slope", BeltSlope.class);
|
public static final Property<BeltSlope> SLOPE = EnumProperty.create("slope", BeltSlope.class);
|
||||||
public static final Property<BeltPart> PART = EnumProperty.create("part", BeltPart.class);
|
public static final Property<BeltPart> PART = EnumProperty.create("part", BeltPart.class);
|
||||||
|
@ -594,6 +596,100 @@ public class BeltBlock extends HorizontalKineticBlock implements ITE<BeltTileEnt
|
||||||
return rotate;
|
return rotate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BlockState transform(BlockState state, StructureTransform transform) {
|
||||||
|
if (transform.mirror != null) {
|
||||||
|
state = mirror(state, transform.mirror);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transform.rotationAxis == Direction.Axis.Y) {
|
||||||
|
return rotate(state, transform.rotation);
|
||||||
|
}
|
||||||
|
return transformInner(state, transform);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected BlockState transformInner(BlockState state, StructureTransform transform) {
|
||||||
|
boolean halfTurn = transform.rotation == Rotation.CLOCKWISE_180;
|
||||||
|
|
||||||
|
Direction initialDirection = state.getValue(HORIZONTAL_FACING);
|
||||||
|
boolean diagonal =
|
||||||
|
state.getValue(SLOPE) == BeltSlope.DOWNWARD || state.getValue(SLOPE) == BeltSlope.UPWARD;
|
||||||
|
|
||||||
|
if (!diagonal) {
|
||||||
|
for (int i = 0; i < transform.rotation.ordinal(); i++) {
|
||||||
|
Direction direction = state.getValue(HORIZONTAL_FACING);
|
||||||
|
BeltSlope slope = state.getValue(SLOPE);
|
||||||
|
boolean vertical = slope == BeltSlope.VERTICAL;
|
||||||
|
boolean horizontal = slope == BeltSlope.HORIZONTAL;
|
||||||
|
boolean sideways = slope == BeltSlope.SIDEWAYS;
|
||||||
|
|
||||||
|
Direction newDirection = direction.getOpposite();
|
||||||
|
BeltSlope newSlope = BeltSlope.VERTICAL;
|
||||||
|
|
||||||
|
if (vertical) {
|
||||||
|
if (direction.getAxis() == transform.rotationAxis) {
|
||||||
|
newDirection = direction.getCounterClockWise();
|
||||||
|
newSlope = BeltSlope.SIDEWAYS;
|
||||||
|
} else {
|
||||||
|
newSlope = BeltSlope.HORIZONTAL;
|
||||||
|
newDirection = direction;
|
||||||
|
if (direction.getAxis() == Axis.Z)
|
||||||
|
newDirection = direction.getOpposite();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sideways) {
|
||||||
|
newDirection = direction;
|
||||||
|
if (direction.getAxis() == transform.rotationAxis)
|
||||||
|
newSlope = BeltSlope.HORIZONTAL;
|
||||||
|
else
|
||||||
|
newDirection = direction.getCounterClockWise();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (horizontal) {
|
||||||
|
newDirection = direction;
|
||||||
|
if (direction.getAxis() == transform.rotationAxis)
|
||||||
|
newSlope = BeltSlope.SIDEWAYS;
|
||||||
|
else if (direction.getAxis() != Axis.Z)
|
||||||
|
newDirection = direction.getOpposite();
|
||||||
|
}
|
||||||
|
|
||||||
|
state = state.setValue(HORIZONTAL_FACING, newDirection);
|
||||||
|
state = state.setValue(SLOPE, newSlope);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (initialDirection.getAxis() != transform.rotationAxis) {
|
||||||
|
for (int i = 0; i < transform.rotation.ordinal(); i++) {
|
||||||
|
Direction direction = state.getValue(HORIZONTAL_FACING);
|
||||||
|
Direction newDirection = direction.getOpposite();
|
||||||
|
BeltSlope slope = state.getValue(SLOPE);
|
||||||
|
boolean upward = slope == BeltSlope.UPWARD;
|
||||||
|
boolean downward = slope == BeltSlope.DOWNWARD;
|
||||||
|
|
||||||
|
// Rotate diagonal
|
||||||
|
if (direction.getAxisDirection() == AxisDirection.POSITIVE ^ downward ^ direction.getAxis() == Axis.Z) {
|
||||||
|
state = state.setValue(SLOPE, upward ? BeltSlope.DOWNWARD : BeltSlope.UPWARD);
|
||||||
|
} else {
|
||||||
|
state = state.setValue(HORIZONTAL_FACING, newDirection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (halfTurn) {
|
||||||
|
Direction direction = state.getValue(HORIZONTAL_FACING);
|
||||||
|
Direction newDirection = direction.getOpposite();
|
||||||
|
BeltSlope slope = state.getValue(SLOPE);
|
||||||
|
boolean vertical = slope == BeltSlope.VERTICAL;
|
||||||
|
|
||||||
|
if (diagonal) {
|
||||||
|
state = state.setValue(SLOPE, slope == BeltSlope.UPWARD ? BeltSlope.DOWNWARD
|
||||||
|
: slope == BeltSlope.DOWNWARD ? BeltSlope.UPWARD : slope);
|
||||||
|
} else if (vertical) {
|
||||||
|
state = state.setValue(HORIZONTAL_FACING, newDirection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
|
public boolean isPathfindable(BlockState state, BlockGetter reader, BlockPos pos, PathComputationType type) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -6,12 +6,15 @@ import com.simibubi.create.content.contraptions.base.CasingBlock;
|
||||||
import com.simibubi.create.content.contraptions.base.IRotate;
|
import com.simibubi.create.content.contraptions.base.IRotate;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock;
|
import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.ITransformableBlock;
|
||||||
|
import com.simibubi.create.content.contraptions.components.structureMovement.StructureTransform;
|
||||||
import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock;
|
import com.simibubi.create.content.contraptions.relays.elementary.CogWheelBlock;
|
||||||
import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel;
|
import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel;
|
||||||
import com.simibubi.create.content.contraptions.relays.elementary.SimpleKineticTileEntity;
|
import com.simibubi.create.content.contraptions.relays.elementary.SimpleKineticTileEntity;
|
||||||
import com.simibubi.create.content.schematics.ISpecialBlockItemRequirement;
|
import com.simibubi.create.content.schematics.ISpecialBlockItemRequirement;
|
||||||
import com.simibubi.create.content.schematics.ItemRequirement;
|
import com.simibubi.create.content.schematics.ItemRequirement;
|
||||||
import com.simibubi.create.foundation.block.ITE;
|
import com.simibubi.create.foundation.block.ITE;
|
||||||
|
import com.simibubi.create.foundation.utility.VoxelShaper;
|
||||||
import com.tterrag.registrate.util.entry.BlockEntry;
|
import com.tterrag.registrate.util.entry.BlockEntry;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
@ -29,6 +32,8 @@ import net.minecraft.world.level.BlockGetter;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.LevelReader;
|
import net.minecraft.world.level.LevelReader;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.level.block.Mirror;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
@ -38,7 +43,7 @@ import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.minecraft.world.phys.HitResult;
|
import net.minecraft.world.phys.HitResult;
|
||||||
|
|
||||||
public class EncasedCogwheelBlock extends RotatedPillarKineticBlock
|
public class EncasedCogwheelBlock extends RotatedPillarKineticBlock
|
||||||
implements ICogWheel, ITE<SimpleKineticTileEntity>, ISpecialBlockItemRequirement {
|
implements ICogWheel, ITE<SimpleKineticTileEntity>, ISpecialBlockItemRequirement, ITransformableBlock {
|
||||||
|
|
||||||
public static final BooleanProperty TOP_SHAFT = BooleanProperty.create("top_shaft");
|
public static final BooleanProperty TOP_SHAFT = BooleanProperty.create("top_shaft");
|
||||||
public static final BooleanProperty BOTTOM_SHAFT = BooleanProperty.create("bottom_shaft");
|
public static final BooleanProperty BOTTOM_SHAFT = BooleanProperty.create("bottom_shaft");
|
||||||
|
@ -120,6 +125,16 @@ public class EncasedCogwheelBlock extends RotatedPillarKineticBlock
|
||||||
return InteractionResult.SUCCESS;
|
return InteractionResult.SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getRotatedBlockState(BlockState originalState, Direction targetedFace) {
|
||||||
|
originalState = swapShaftsForRotation(originalState, Rotation.CLOCKWISE_90, targetedFace.getAxis());
|
||||||
|
return originalState.setValue(RotatedPillarKineticBlock.AXIS,
|
||||||
|
VoxelShaper
|
||||||
|
.axisAsFace(originalState.getValue(RotatedPillarKineticBlock.AXIS))
|
||||||
|
.getClockWise(targetedFace.getAxis())
|
||||||
|
.getAxis());
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InteractionResult onSneakWrenched(BlockState state, UseOnContext context) {
|
public InteractionResult onSneakWrenched(BlockState state, UseOnContext context) {
|
||||||
if (context.getLevel().isClientSide)
|
if (context.getLevel().isClientSide)
|
||||||
|
@ -170,6 +185,81 @@ public class EncasedCogwheelBlock extends RotatedPillarKineticBlock
|
||||||
return state.getValue(AXIS);
|
return state.getValue(AXIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BlockState swapShafts(BlockState state) {
|
||||||
|
boolean bottom = state.getValue(BOTTOM_SHAFT);
|
||||||
|
boolean top = state.getValue(TOP_SHAFT);
|
||||||
|
state = state.setValue(BOTTOM_SHAFT, top);
|
||||||
|
state = state.setValue(TOP_SHAFT, bottom);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState swapShaftsForRotation(BlockState state, Rotation rotation, Direction.Axis rotationAxis) {
|
||||||
|
if (rotation == Rotation.NONE) {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
Direction.Axis axis = state.getValue(AXIS);
|
||||||
|
if (axis == rotationAxis) {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rotation == Rotation.CLOCKWISE_180) {
|
||||||
|
return swapShafts(state);
|
||||||
|
}
|
||||||
|
|
||||||
|
boolean clockwise = rotation == Rotation.CLOCKWISE_90;
|
||||||
|
|
||||||
|
if (rotationAxis == Direction.Axis.X) {
|
||||||
|
if ( axis == Direction.Axis.Z && !clockwise
|
||||||
|
|| axis == Direction.Axis.Y && clockwise) {
|
||||||
|
return swapShafts(state);
|
||||||
|
}
|
||||||
|
} else if (rotationAxis == Direction.Axis.Y) {
|
||||||
|
if ( axis == Direction.Axis.X && !clockwise
|
||||||
|
|| axis == Direction.Axis.Z && clockwise) {
|
||||||
|
return swapShafts(state);
|
||||||
|
}
|
||||||
|
} else if (rotationAxis == Direction.Axis.Z) {
|
||||||
|
if ( axis == Direction.Axis.Y && !clockwise
|
||||||
|
|| axis == Direction.Axis.X && clockwise) {
|
||||||
|
return swapShafts(state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState mirror(BlockState state, Mirror mirror) {
|
||||||
|
Direction.Axis axis = state.getValue(AXIS);
|
||||||
|
if (axis == Direction.Axis.X && mirror == Mirror.FRONT_BACK
|
||||||
|
|| axis == Direction.Axis.Z && mirror == Mirror.LEFT_RIGHT) {
|
||||||
|
return swapShafts(state);
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState rotate(BlockState state, Rotation rotation) {
|
||||||
|
state = swapShaftsForRotation(state, rotation, Direction.Axis.Y);
|
||||||
|
return super.rotate(state, rotation);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState transform(BlockState state, StructureTransform transform) {
|
||||||
|
if (transform.mirror != null) {
|
||||||
|
state = mirror(state, transform.mirror);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transform.rotationAxis == Direction.Axis.Y) {
|
||||||
|
return rotate(state, transform.rotation);
|
||||||
|
}
|
||||||
|
|
||||||
|
state = swapShaftsForRotation(state, transform.rotation, transform.rotationAxis);
|
||||||
|
state = state.setValue(AXIS, transform.rotateAxis(state.getValue(AXIS)));
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemRequirement getRequiredItems(BlockState state, BlockEntity te) {
|
public ItemRequirement getRequiredItems(BlockState state, BlockEntity te) {
|
||||||
return ItemRequirement
|
return ItemRequirement
|
||||||
|
|
|
@ -9,7 +9,6 @@ import com.simibubi.create.content.contraptions.base.HorizontalAxisKineticBlock;
|
||||||
import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock;
|
import com.simibubi.create.content.contraptions.base.HorizontalKineticBlock;
|
||||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||||
import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock;
|
import com.simibubi.create.content.contraptions.base.RotatedPillarKineticBlock;
|
||||||
import com.simibubi.create.foundation.utility.DirectionHelper;
|
|
||||||
import com.simibubi.create.foundation.utility.VoxelShaper;
|
import com.simibubi.create.foundation.utility.VoxelShaper;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
@ -81,20 +80,20 @@ public interface IWrenchable {
|
||||||
|
|
||||||
if (targetedFace.getAxis() == Direction.Axis.Y) {
|
if (targetedFace.getAxis() == Direction.Axis.Y) {
|
||||||
if (originalState.hasProperty(HorizontalAxisKineticBlock.HORIZONTAL_AXIS))
|
if (originalState.hasProperty(HorizontalAxisKineticBlock.HORIZONTAL_AXIS))
|
||||||
return originalState.setValue(HorizontalAxisKineticBlock.HORIZONTAL_AXIS, DirectionHelper
|
return originalState.setValue(HorizontalAxisKineticBlock.HORIZONTAL_AXIS, VoxelShaper
|
||||||
.rotateAround(VoxelShaper.axisAsFace(originalState.getValue(HorizontalAxisKineticBlock.HORIZONTAL_AXIS)),
|
.axisAsFace(originalState.getValue(HorizontalAxisKineticBlock.HORIZONTAL_AXIS))
|
||||||
targetedFace.getAxis())
|
.getClockWise(targetedFace.getAxis())
|
||||||
.getAxis());
|
.getAxis());
|
||||||
if (originalState.hasProperty(HorizontalKineticBlock.HORIZONTAL_FACING))
|
if (originalState.hasProperty(HorizontalKineticBlock.HORIZONTAL_FACING))
|
||||||
return originalState.setValue(HorizontalKineticBlock.HORIZONTAL_FACING, DirectionHelper
|
return originalState.setValue(HorizontalKineticBlock.HORIZONTAL_FACING, originalState
|
||||||
.rotateAround(originalState.getValue(HorizontalKineticBlock.HORIZONTAL_FACING), targetedFace.getAxis()));
|
.getValue(HorizontalKineticBlock.HORIZONTAL_FACING).getClockWise(targetedFace.getAxis()));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (originalState.hasProperty(RotatedPillarKineticBlock.AXIS))
|
if (originalState.hasProperty(RotatedPillarKineticBlock.AXIS))
|
||||||
return originalState.setValue(RotatedPillarKineticBlock.AXIS,
|
return originalState.setValue(RotatedPillarKineticBlock.AXIS,
|
||||||
DirectionHelper
|
VoxelShaper
|
||||||
.rotateAround(VoxelShaper.axisAsFace(originalState.getValue(RotatedPillarKineticBlock.AXIS)),
|
.axisAsFace(originalState.getValue(RotatedPillarKineticBlock.AXIS))
|
||||||
targetedFace.getAxis())
|
.getClockWise(targetedFace.getAxis())
|
||||||
.getAxis());
|
.getAxis());
|
||||||
|
|
||||||
if (!originalState.hasProperty(DirectionalKineticBlock.FACING))
|
if (!originalState.hasProperty(DirectionalKineticBlock.FACING))
|
||||||
|
@ -111,7 +110,7 @@ public interface IWrenchable {
|
||||||
} else {
|
} else {
|
||||||
do {
|
do {
|
||||||
newState = newState.setValue(DirectionalKineticBlock.FACING,
|
newState = newState.setValue(DirectionalKineticBlock.FACING,
|
||||||
DirectionHelper.rotateAround(newState.getValue(DirectionalKineticBlock.FACING), targetedFace.getAxis()));
|
newState.getValue(DirectionalKineticBlock.FACING).getClockWise(targetedFace.getAxis()));
|
||||||
if (targetedFace.getAxis() == Direction.Axis.Y
|
if (targetedFace.getAxis() == Direction.Axis.Y
|
||||||
&& newState.hasProperty(DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE))
|
&& newState.hasProperty(DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE))
|
||||||
newState = newState.cycle(DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE);
|
newState = newState.cycle(DirectionalAxisKineticBlock.AXIS_ALONG_FIRST_COORDINATE);
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.simibubi.create.content.curiosities.armor;
|
||||||
import com.simibubi.create.AllEnchantments;
|
import com.simibubi.create.AllEnchantments;
|
||||||
import com.simibubi.create.AllItems;
|
import com.simibubi.create.AllItems;
|
||||||
import com.simibubi.create.AllSoundEvents;
|
import com.simibubi.create.AllSoundEvents;
|
||||||
|
import com.simibubi.create.AllTags;
|
||||||
import com.simibubi.create.foundation.config.AllConfigs;
|
import com.simibubi.create.foundation.config.AllConfigs;
|
||||||
import com.simibubi.create.foundation.utility.Lang;
|
import com.simibubi.create.foundation.utility.Lang;
|
||||||
|
|
||||||
|
@ -28,7 +29,7 @@ public class BackTankUtil {
|
||||||
|
|
||||||
public static ItemStack get(LivingEntity entity) {
|
public static ItemStack get(LivingEntity entity) {
|
||||||
for (ItemStack itemStack : entity.getArmorSlots())
|
for (ItemStack itemStack : entity.getArmorSlots())
|
||||||
if (AllItems.COPPER_BACKTANK.isIn(itemStack))
|
if (AllTags.AllItemTags.PRESSURIZED_AIR_SOURCES.matches(itemStack))
|
||||||
return itemStack;
|
return itemStack;
|
||||||
return ItemStack.EMPTY;
|
return ItemStack.EMPTY;
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,7 +151,10 @@ public class ArmInteractionPoint {
|
||||||
if (type == null)
|
if (type == null)
|
||||||
return null;
|
return null;
|
||||||
BlockPos pos = NbtUtils.readBlockPos(nbt.getCompound("Pos")).offset(anchor);
|
BlockPos pos = NbtUtils.readBlockPos(nbt.getCompound("Pos")).offset(anchor);
|
||||||
ArmInteractionPoint point = type.createPoint(level, pos, level.getBlockState(pos));
|
BlockState state = level.getBlockState(pos);
|
||||||
|
if (!type.canCreatePoint(level, pos, state))
|
||||||
|
return null;
|
||||||
|
ArmInteractionPoint point = type.createPoint(level, pos, state);
|
||||||
if (point == null)
|
if (point == null)
|
||||||
return null;
|
return null;
|
||||||
point.deserialize(nbt, anchor);
|
point.deserialize(nbt, anchor);
|
||||||
|
|
|
@ -27,6 +27,7 @@ import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||||
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
|
import net.minecraft.core.SectionPos;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.ListTag;
|
import net.minecraft.nbt.ListTag;
|
||||||
import net.minecraft.nbt.Tag;
|
import net.minecraft.nbt.Tag;
|
||||||
|
@ -39,6 +40,7 @@ import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.JukeboxBlock;
|
import net.minecraft.world.level.block.JukeboxBlock;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.chunk.ChunkSource;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
|
|
||||||
|
@ -410,10 +412,45 @@ public class ArmTileEntity extends KineticTileEntity implements ITransformableTE
|
||||||
notifyUpdate();
|
notifyUpdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ClientLevel#hasChunk (and consequently #isAreaLoaded) always returns true,
|
||||||
|
// so manually check the ChunkSource to avoid weird behavior on the client side
|
||||||
|
protected boolean isAreaActuallyLoaded(BlockPos center, int range) {
|
||||||
|
if (!level.isAreaLoaded(center, range)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (level.isClientSide) {
|
||||||
|
int minY = center.getY() - range;
|
||||||
|
int maxY = center.getY() + range;
|
||||||
|
if (maxY < level.getMinBuildHeight() || minY >= level.getMaxBuildHeight()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int minX = center.getX() - range;
|
||||||
|
int minZ = center.getZ() - range;
|
||||||
|
int maxX = center.getX() + range;
|
||||||
|
int maxZ = center.getZ() + range;
|
||||||
|
|
||||||
|
int minChunkX = SectionPos.blockToSectionCoord(minX);
|
||||||
|
int maxChunkX = SectionPos.blockToSectionCoord(maxX);
|
||||||
|
int minChunkZ = SectionPos.blockToSectionCoord(minZ);
|
||||||
|
int maxChunkZ = SectionPos.blockToSectionCoord(maxZ);
|
||||||
|
|
||||||
|
ChunkSource chunkSource = level.getChunkSource();
|
||||||
|
for (int chunkX = minChunkX; chunkX <= maxChunkX; ++chunkX) {
|
||||||
|
for (int chunkZ = minChunkZ; chunkZ <= maxChunkZ; ++chunkZ) {
|
||||||
|
if (!chunkSource.hasChunk(chunkX, chunkZ)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
protected void initInteractionPoints() {
|
protected void initInteractionPoints() {
|
||||||
if (!updateInteractionPoints || interactionPointTag == null)
|
if (!updateInteractionPoints || interactionPointTag == null)
|
||||||
return;
|
return;
|
||||||
if (!level.isAreaLoaded(worldPosition, getRange() + 1))
|
if (!isAreaActuallyLoaded(worldPosition, getRange() + 1))
|
||||||
return;
|
return;
|
||||||
inputs.clear();
|
inputs.clear();
|
||||||
outputs.clear();
|
outputs.clear();
|
||||||
|
@ -506,7 +543,7 @@ public class ArmTileEntity extends KineticTileEntity implements ITransformableTE
|
||||||
previousTarget = previousPoint == null ? ArmAngleTarget.NO_TARGET
|
previousTarget = previousPoint == null ? ArmAngleTarget.NO_TARGET
|
||||||
: previousPoint.getTargetAngles(worldPosition, ceiling);
|
: previousPoint.getTargetAngles(worldPosition, ceiling);
|
||||||
if (previousPoint != null)
|
if (previousPoint != null)
|
||||||
previousBaseAngle = previousPoint.getTargetAngles(worldPosition, ceiling).baseAngle;
|
previousBaseAngle = previousTarget.baseAngle;
|
||||||
|
|
||||||
ArmInteractionPoint targetedPoint = getTargetedInteractionPoint();
|
ArmInteractionPoint targetedPoint = getTargetedInteractionPoint();
|
||||||
if (targetedPoint != null)
|
if (targetedPoint != null)
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.simibubi.create.foundation.block;
|
package com.simibubi.create.foundation.block;
|
||||||
|
|
||||||
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
|
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
|
||||||
import com.simibubi.create.foundation.utility.DirectionHelper;
|
|
||||||
|
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
@ -31,7 +30,7 @@ public class WrenchableDirectionalBlock extends DirectionalBlock implements IWre
|
||||||
if (facing.getAxis() == targetedFace.getAxis())
|
if (facing.getAxis() == targetedFace.getAxis())
|
||||||
return originalState;
|
return originalState;
|
||||||
|
|
||||||
Direction newFacing = DirectionHelper.rotateAround(facing, targetedFace.getAxis());
|
Direction newFacing = facing.getClockWise(targetedFace.getAxis());
|
||||||
|
|
||||||
return originalState.setValue(FACING, newFacing);
|
return originalState.setValue(FACING, newFacing);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
import com.simibubi.create.content.logistics.trains.CameraDistanceModifier;
|
import com.simibubi.create.content.logistics.trains.CameraDistanceModifier;
|
||||||
|
@ -26,15 +27,13 @@ public abstract class CameraMixin {
|
||||||
throw new AssertionError();
|
throw new AssertionError();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject(
|
@ModifyArg(
|
||||||
method = "Lnet/minecraft/client/Camera;setup(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/world/entity/Entity;ZZF)V",
|
method = "Lnet/minecraft/client/Camera;setup(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/world/entity/Entity;ZZF)V",
|
||||||
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Camera;move(DDD)V", ordinal = 0),
|
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Camera;move(DDD)V", ordinal = 0),
|
||||||
cancellable = true
|
index = 0
|
||||||
)
|
)
|
||||||
public void modifySetup(BlockGetter pLevel, Entity pEntity, boolean pDetached, boolean pThirdPersonReverse, float pPartialTick, CallbackInfo ci) {
|
public double modifyCameraOffset(double originalValue) {
|
||||||
move(-this.getMaxZoom(4.0D * CameraDistanceModifier.getMultiplier(AnimationTickHolder.getPartialTicks())), 0, 0);
|
return -this.getMaxZoom(4.0D * CameraDistanceModifier.getMultiplier(AnimationTickHolder.getPartialTicks()));
|
||||||
ci.cancel();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,82 +0,0 @@
|
||||||
package com.simibubi.create.foundation.utility;
|
|
||||||
|
|
||||||
import static net.minecraft.core.Direction.DOWN;
|
|
||||||
import static net.minecraft.core.Direction.EAST;
|
|
||||||
import static net.minecraft.core.Direction.NORTH;
|
|
||||||
import static net.minecraft.core.Direction.SOUTH;
|
|
||||||
import static net.minecraft.core.Direction.UP;
|
|
||||||
import static net.minecraft.core.Direction.WEST;
|
|
||||||
|
|
||||||
import net.minecraft.core.Direction;
|
|
||||||
import net.minecraft.core.Direction.Axis;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A bunch of methods that got stripped out of Direction in 1.15
|
|
||||||
*
|
|
||||||
* @author Mojang
|
|
||||||
*/
|
|
||||||
public class DirectionHelper {
|
|
||||||
|
|
||||||
public static Direction rotateAround(Direction dir, Direction.Axis axis) {
|
|
||||||
switch (axis) {
|
|
||||||
case X:
|
|
||||||
if (dir != WEST && dir != EAST) {
|
|
||||||
return rotateX(dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
return dir;
|
|
||||||
case Y:
|
|
||||||
if (dir != UP && dir != DOWN) {
|
|
||||||
return dir.getClockWise();
|
|
||||||
}
|
|
||||||
|
|
||||||
return dir;
|
|
||||||
case Z:
|
|
||||||
if (dir != NORTH && dir != SOUTH) {
|
|
||||||
return rotateZ(dir);
|
|
||||||
}
|
|
||||||
|
|
||||||
return dir;
|
|
||||||
default:
|
|
||||||
throw new IllegalStateException("Unable to get CW facing for axis " + axis);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Direction rotateX(Direction dir) {
|
|
||||||
switch (dir) {
|
|
||||||
case NORTH:
|
|
||||||
return DOWN;
|
|
||||||
case EAST:
|
|
||||||
case WEST:
|
|
||||||
default:
|
|
||||||
throw new IllegalStateException("Unable to get X-rotated facing of " + dir);
|
|
||||||
case SOUTH:
|
|
||||||
return UP;
|
|
||||||
case UP:
|
|
||||||
return NORTH;
|
|
||||||
case DOWN:
|
|
||||||
return SOUTH;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Direction rotateZ(Direction dir) {
|
|
||||||
switch (dir) {
|
|
||||||
case EAST:
|
|
||||||
return DOWN;
|
|
||||||
case SOUTH:
|
|
||||||
default:
|
|
||||||
throw new IllegalStateException("Unable to get Z-rotated facing of " + dir);
|
|
||||||
case WEST:
|
|
||||||
return UP;
|
|
||||||
case UP:
|
|
||||||
return EAST;
|
|
||||||
case DOWN:
|
|
||||||
return WEST;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Direction getPositivePerpendicular(Axis horizontalAxis) {
|
|
||||||
return horizontalAxis == Axis.X ? SOUTH : EAST;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -28,7 +28,7 @@ public enum Pointing implements StringRepresentable {
|
||||||
Direction top = axis == Axis.Y ? Direction.SOUTH : Direction.UP;
|
Direction top = axis == Axis.Y ? Direction.SOUTH : Direction.UP;
|
||||||
int rotations = direction.getAxisDirection() == AxisDirection.NEGATIVE ? 4 - ordinal() : ordinal();
|
int rotations = direction.getAxisDirection() == AxisDirection.NEGATIVE ? 4 - ordinal() : ordinal();
|
||||||
for (int i = 0; i < rotations; i++)
|
for (int i = 0; i < rotations; i++)
|
||||||
top = DirectionHelper.rotateAround(top, axis);
|
top = top.getClockWise(axis);
|
||||||
return top;
|
return top;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -529,6 +529,11 @@
|
||||||
"create.tooltip.chute.fans_pull_down": "Fans pull from Below",
|
"create.tooltip.chute.fans_pull_down": "Fans pull from Below",
|
||||||
"create.tooltip.chute.contains": "Contains: %1$s x%2$s",
|
"create.tooltip.chute.contains": "Contains: %1$s x%2$s",
|
||||||
|
|
||||||
|
"create.tooltip.deployer.header": "Deployer Information",
|
||||||
|
"create.tooltip.deployer.using": "Deployer is Using",
|
||||||
|
"create.tooltip.deployer.punching": "Deployer is Punching",
|
||||||
|
"create.tooltip.deployer.contains": "Holding: %1$s x%2$s",
|
||||||
|
|
||||||
"create.tooltip.brass_tunnel.contains": "Currently distributing:",
|
"create.tooltip.brass_tunnel.contains": "Currently distributing:",
|
||||||
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
||||||
"create.tooltip.brass_tunnel.retrieve": "Right-Click to retrieve",
|
"create.tooltip.brass_tunnel.retrieve": "Right-Click to retrieve",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue