mirror of
https://github.com/Creators-of-Create/Create.git
synced 2025-02-14 14:25:00 +01:00
Merge branch 'Creators-of-Create:mc1.18/dev' into mc1.18/dev
This commit is contained in:
commit
fb68d4e436
361 changed files with 15161 additions and 7827 deletions
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
@ -49,6 +49,7 @@ body:
|
|||
label: Mod Version
|
||||
description: The version of the mod you were using when the bug occured
|
||||
options:
|
||||
- "0.5.0d"
|
||||
- "0.5.0c"
|
||||
- "0.5.0b"
|
||||
- "0.5.0a"
|
||||
|
|
26
.github/workflows/gradle.yml
vendored
26
.github/workflows/gradle.yml
vendored
|
@ -1,26 +0,0 @@
|
|||
# This workflow will build a Java project with Gradle
|
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
|
||||
|
||||
name: Java CI with Gradle
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ mc1.15/dev ]
|
||||
pull_request:
|
||||
branches: [ mc1.15/dev ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Set up JDK 1.8
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
- name: Grant execute permission for gradlew
|
||||
run: chmod +x gradlew
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew build
|
|
@ -9,8 +9,8 @@
|
|||
<br><br>
|
||||
</h1>
|
||||
|
||||
<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>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 set up contraptions of animated components working together in many possible arrangements.</p>
|
||||
<p>Create's visual in-game documentation called 'Ponder' will guide you through all added mechanics and gadgets.</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>
|
||||
|
|
10
build.gradle
10
build.gradle
|
@ -7,7 +7,7 @@ buildscript {
|
|||
maven { url = 'https://maven.parchmentmc.org' }
|
||||
}
|
||||
dependencies {
|
||||
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: "${forgegradle_version}", changing: true
|
||||
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: "${forgegradle_version}", changing: false
|
||||
classpath "org.spongepowered:mixingradle:${mixingradle_version}"
|
||||
classpath "org.parchmentmc:librarian:${librarian_version}"
|
||||
}
|
||||
|
@ -128,6 +128,13 @@ repositories {
|
|||
//location of the maven for curios api
|
||||
url = "https://maven.theillusivec4.top/"
|
||||
}
|
||||
maven {
|
||||
name = "Modrinth"
|
||||
url = "https://api.modrinth.com/maven"
|
||||
content {
|
||||
includeGroup "maven.modrinth"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
|
@ -161,6 +168,7 @@ dependencies {
|
|||
// runtimeOnly fg.deobf("vazkii.quark:Quark:r2.0-212.984")
|
||||
// runtimeOnly fg.deobf("slimeknights.mantle:Mantle:1.16.5-1.6.115")
|
||||
// runtimeOnly fg.deobf("slimeknights.tconstruct:TConstruct:1.16.5-3.1.1.252")
|
||||
// runtimeOnly fg.deobf("maven.modrinth:rubidium:0.5.3")
|
||||
|
||||
// https://discord.com/channels/313125603924639766/725850371834118214/910619168821354497
|
||||
// Prevent Mixin annotation processor from getting into IntelliJ's annotation processor settings
|
||||
|
|
|
@ -4,14 +4,14 @@ org.gradle.jvmargs = -Xmx3G
|
|||
org.gradle.daemon = false
|
||||
|
||||
# mod version info
|
||||
mod_version = 0.5.0.c
|
||||
mod_version = 0.5.0.d
|
||||
artifact_minecraft_version = 1.18.2
|
||||
|
||||
minecraft_version = 1.18.2
|
||||
forge_version = 40.1.60
|
||||
|
||||
# build dependency versions
|
||||
forgegradle_version = 5.1.+
|
||||
forgegradle_version = 5.1.53
|
||||
mixingradle_version = 0.7-SNAPSHOT
|
||||
mixin_version = 0.8.5
|
||||
librarian_version = 1.+
|
||||
|
@ -21,7 +21,7 @@ parchment_version = 2022.07.10
|
|||
# dependency versions
|
||||
registrate_version = MC1.18.2-1.1.3
|
||||
flywheel_minecraft_version = 1.18.2
|
||||
flywheel_version = 0.6.4-90
|
||||
flywheel_version = 0.6.5-91
|
||||
jei_minecraft_version = 1.18.2
|
||||
jei_version = 9.7.0.209
|
||||
curios_minecraft_version = 1.18.2
|
||||
|
|
|
@ -209,7 +209,7 @@ d13940ed213d7acbc6ebe3bdd21175ef89e4d613 assets/create/blockstates/encased_fluid
|
|||
8a87e42262f3f161b0e6fe10b795ff00eccf768f assets/create/blockstates/exposed_copper_tile_stairs.json
|
||||
fb41aa1a0828c9256b3f886fdcb55bb54252ba09 assets/create/blockstates/exposed_copper_tiles.json
|
||||
7a2259a71fbbbb9491fc1e6a9c935bc9fef14042 assets/create/blockstates/fake_track.json
|
||||
bb74442749b6bd688d45d919b541dbd66bbeb18a assets/create/blockstates/fluid_pipe.json
|
||||
dd6dadfeb65c4a4c4d1dc92516c411355e90dcca assets/create/blockstates/fluid_pipe.json
|
||||
f0eaab18e16c4f3f65ebf3b55b08f0dc445720fe assets/create/blockstates/fluid_tank.json
|
||||
5408d92ab02af86539ac42971d4033545970bb3a assets/create/blockstates/fluid_valve.json
|
||||
95b0775bf4d619ca5b0a42dbdc47c6f2c15d7b3d assets/create/blockstates/flywheel.json
|
||||
|
@ -559,22 +559,23 @@ bf2b0310500213ff853c748c236eb5d01f61658e assets/create/blockstates/yellow_toolbo
|
|||
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
|
||||
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
|
||||
f85edc574ee6de0de7693ffb031266643db6724a assets/create/lang/en_ud.json
|
||||
7af10a14db169232d2bc4a564e7e2f204f7de8fc assets/create/lang/en_us.json
|
||||
603af7f8a80b09da7ef5765f2aa863bbef1fc8ea assets/create/lang/unfinished/de_de.json
|
||||
83e92f5c2516919b59b4d015814ce3f0cdaca948 assets/create/lang/unfinished/es_cl.json
|
||||
ee47168049448ffa0959210d8f06b8f4b7219c85 assets/create/lang/unfinished/es_es.json
|
||||
ceea8ef9caee6d0eafa27f0d6c959d732a544f52 assets/create/lang/unfinished/fr_fr.json
|
||||
d4266c22c1265a2ef0784a13b223e4bb17ec11d0 assets/create/lang/unfinished/it_it.json
|
||||
b17fe248508a55a47ab7b685ee72f5aec199bd48 assets/create/lang/unfinished/ja_jp.json
|
||||
f642160ce3c6ffe0ded12c7e05a15cb6536c4def assets/create/lang/unfinished/ko_kr.json
|
||||
b63513673554b0ed939ef66f65896be678e8c0d2 assets/create/lang/unfinished/nl_nl.json
|
||||
c498bb7eb6f030b7b4934882e8bfc418dd8f6174 assets/create/lang/unfinished/pl_pl.json
|
||||
b9e51c59ae50ae274d0c56f60803d8a397524547 assets/create/lang/unfinished/pt_br.json
|
||||
bb1b327b6a0ffd6fb416f78a276b4269071d50c0 assets/create/lang/unfinished/pt_pt.json
|
||||
823a9e54460d3840a089ea04ed8c97b9d62ca4d5 assets/create/lang/unfinished/ro_ro.json
|
||||
eb144197fc255fef12b57c8aa82789d93737f144 assets/create/lang/unfinished/ru_ru.json
|
||||
1fba9ab348aa9cbae212657aeec53f577aca19ab assets/create/lang/unfinished/zh_cn.json
|
||||
fadbc9906e1859f62e451d3b89e210c9b8b7a4c4 assets/create/lang/unfinished/zh_tw.json
|
||||
11fd391ac3015f4dace8138ab1ec423ee822c7b4 assets/create/lang/en_us.json
|
||||
34ab109f0935b7d0a7dd306188e0bd3056a77f93 assets/create/lang/unfinished/de_de.json
|
||||
b5487949ee53302706c15051157316bb60dfa070 assets/create/lang/unfinished/es_cl.json
|
||||
6df40ff1c18bfb83a33bc17e4458feeeee058bf1 assets/create/lang/unfinished/es_es.json
|
||||
bca24c29adf91e0ee09db39783c59fac843acb46 assets/create/lang/unfinished/fr_fr.json
|
||||
d7b53a16d03be2f854dfba1e90e2a149c2abecbd assets/create/lang/unfinished/it_it.json
|
||||
42a6713a509ecd676e7eae6e6492da1e20e79102 assets/create/lang/unfinished/ja_jp.json
|
||||
38e01a060e0e468a51b1ca4f0bcbec203837ce04 assets/create/lang/unfinished/ko_kr.json
|
||||
83d812a1003fa3f25a3c28bbf54bf93f583c594a assets/create/lang/unfinished/nl_nl.json
|
||||
c8c60fe2405f37cce7309326fb62cdb9aa1b49ff assets/create/lang/unfinished/pl_pl.json
|
||||
11b3809e9c4c3c61687f7789979fdbf2332fd6a4 assets/create/lang/unfinished/pt_br.json
|
||||
dd52b8df6ea92c1218e398197a1cedae066b4e0e assets/create/lang/unfinished/pt_pt.json
|
||||
954a947034232204bd415e4bfb6c59a3a448b604 assets/create/lang/unfinished/ro_ro.json
|
||||
54a92b2d667b55675c694904752760b594ab1424 assets/create/lang/unfinished/ru_ru.json
|
||||
2f084cc7b66fe4ea82f5ac3338a1245caf67c54d assets/create/lang/unfinished/uk_ua.json
|
||||
82490ac29a0c35c07cde11c340634bf8b416b6a3 assets/create/lang/unfinished/zh_cn.json
|
||||
426b06805f08ef3fed15f404e9637b2d7082d660 assets/create/lang/unfinished/zh_tw.json
|
||||
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
|
||||
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
|
||||
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
|
||||
|
@ -1047,9 +1048,6 @@ abb8810d05128749bd7ffbbbd9d7c425886d8ef3 assets/create/models/block/fluid_pipe/l
|
|||
eefb0e3b0ed7b6d5a99ff715d4aae42db4133343 assets/create/models/block/fluid_pipe/lu_x.json
|
||||
a55a9ef109c4166c767459f88bce4f5c614fe13e assets/create/models/block/fluid_pipe/lu_y.json
|
||||
d933b8a9e5d166cb6b250eb8f359180872daa276 assets/create/models/block/fluid_pipe/lu_z.json
|
||||
8d2a247dcb09c4bc07c2c88ceaebc45f2f29ccaf assets/create/models/block/fluid_pipe/none_x.json
|
||||
817252a6729ca8dc52753de47dbfe0b30c33dfa8 assets/create/models/block/fluid_pipe/none_y.json
|
||||
ddba92d010016a0147ceecc30a30c9c1622d3daa assets/create/models/block/fluid_pipe/none_z.json
|
||||
968fc1c2d555592134554bd16abb0b38629a76dd assets/create/models/block/fluid_pipe/r_x.json
|
||||
c8fee17269f33f5e55ff0b019e535e9506dd964b assets/create/models/block/fluid_pipe/r_y.json
|
||||
f63e221319b2703083e55f4034ed2d7b7a79a5da assets/create/models/block/fluid_pipe/r_z.json
|
||||
|
@ -4229,7 +4227,7 @@ ace6ea5ed1828f4cbb1be0ae8ef10049bd4a07fc data/create/recipes/crushing/asurine.js
|
|||
c0f2d4de4d00504607a8f3e2d1327d754835eebe data/create/recipes/crushing/deepslate_coal_ore.json
|
||||
dedb4d7e958efa2218561686974ad9223848ec30 data/create/recipes/crushing/deepslate_copper_ore.json
|
||||
2f9f26daadda2d291989bccd2b0ea5f85e3ef5ae data/create/recipes/crushing/deepslate_diamond_ore.json
|
||||
ab79ae0d086ac1c90d2e802a2bbb7eb868e9ff8b data/create/recipes/crushing/deepslate_emerald_ore.json
|
||||
ae3070fc3ae237192949ad06ebb8a4c157f7e832 data/create/recipes/crushing/deepslate_emerald_ore.json
|
||||
ae0418f47a68c15247350e8b31fd24905f1bced8 data/create/recipes/crushing/deepslate_gold_ore.json
|
||||
21e591d215993dcecd92db86e14334958198d7c7 data/create/recipes/crushing/deepslate_iron_ore.json
|
||||
b85ba487f2867564c10a0870b55ce213558156bf data/create/recipes/crushing/deepslate_lapis_ore.json
|
||||
|
@ -5361,7 +5359,7 @@ f6e2fb5725f3730d01fae4a2b1a04d11095eab5f data/create/recipes/scorchia_pillar_fro
|
|||
66e8559dc15ce13042bd007247e2851022362b9e data/create/recipes/scorchia_pillar_from_stone_types_scorchia_stonecutting.json
|
||||
2e0ecbd3619f080d0fc6fe48307c5a5bcc2e91b4 data/create/recipes/scoria_pillar_from_scoria_stonecutting.json
|
||||
d6e16599de7424513e1457b07acb6370815d2bd7 data/create/recipes/scoria_pillar_from_stone_types_scoria_stonecutting.json
|
||||
b49a0da57a179edc087eee224221ded22fd1be01 data/create/recipes/sequenced_assembly/precision_mechanism.json
|
||||
b3fad45a09a05b285de31283a720b32e6fc63dc6 data/create/recipes/sequenced_assembly/precision_mechanism.json
|
||||
de17d82738a5e0242eb3109fd2a75337160fc843 data/create/recipes/sequenced_assembly/sturdy_sheet.json
|
||||
7610e0be633b1ade7ae39db3dbbfe1bd14aa333a data/create/recipes/sequenced_assembly/track.json
|
||||
5e7648d55555c263539a2696b8d1f8d352a71dc9 data/create/recipes/small_andesite_brick_slab.json
|
||||
|
@ -5628,18 +5626,17 @@ ac265a674626e0e832330086fd18fe0be37fc327 data/create/recipes/weathered_copper_ti
|
|||
5942a571f79c40524bbf408775cf91de4715f2b6 data/create/recipes/weathered_copper_tile_stairs_from_weathered_copper_tiles_stonecutting.json
|
||||
2d549ea56fb226c0e31e66c0391996093f8bece9 data/create/tags/blocks/brittle.json
|
||||
d99d5c67bdffff60789a19bd51a5c5267c75e0a4 data/create/tags/blocks/casing.json
|
||||
418c6da531d6206e3cbe4049dce3db23c4270bed data/create/tags/blocks/fan_heaters.json
|
||||
443f75adbf3d2f6fb0aad4b344372669470065b8 data/create/tags/blocks/fan_transparent.json
|
||||
6e5d3b2123fbb00e7f439c091623619502551bca data/create/tags/blocks/non_movable.json
|
||||
10781e8cfcbb3486327aace3aa00e437fb44b331 data/create/tags/blocks/ore_override_stone.json
|
||||
197ed7ee3b284045c005011d28c38ac5b2e44d8c data/create/tags/blocks/passive_boiler_heaters.json
|
||||
418c6da531d6206e3cbe4049dce3db23c4270bed data/create/tags/blocks/passive_boiler_heaters.json
|
||||
74f4ba5f6f61c30e27947c6fb4557e888d018285 data/create/tags/blocks/safe_nbt.json
|
||||
6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/blocks/seats.json
|
||||
d063e12c9ef75f39518c6d129ea35d833464d547 data/create/tags/blocks/toolboxes.json
|
||||
50936b211d94167a35ec78c89954082a336b6269 data/create/tags/blocks/valve_handles.json
|
||||
eac71740fb12bdb38b5dfaa2268613d7ba82b809 data/create/tags/blocks/windmill_sails.json
|
||||
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/create/tags/blocks/windowable.json
|
||||
893a01e6004d6d8272bd1658e98da88bb572ee57 data/create/tags/blocks/wrench_pickup.json
|
||||
c71f8ee0103d0c1b0d1b0727f1ecdc4d1999f1f6 data/create/tags/blocks/wrench_pickup.json
|
||||
a8bdc387cfa6296ebcc4af14323e2ddb632234dc data/create/tags/fluids/bottomless/allow.json
|
||||
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/create/tags/fluids/bottomless/deny.json
|
||||
74700d556ca80c7a1db5fd4efb09c3ddb26cad66 data/create/tags/items/blaze_burner_fuel/regular.json
|
||||
|
@ -5705,7 +5702,7 @@ cc82188fe8d986f4457301ed4f75ae833d263601 data/forge/tags/items/nuggets/brass.jso
|
|||
6eec92869baa44d3ac53aec6a7a92c15147b59f0 data/forge/tags/items/ores/zinc.json
|
||||
9fc688d8fac1033c7b8f4b8de1138e56d2faf527 data/forge/tags/items/ores_in_ground/deepslate.json
|
||||
d5ea262a0f5fb210612d22521818e26cf08e591a data/forge/tags/items/ores_in_ground/stone.json
|
||||
5d5ec04a61ff2b1ad19210e2859a9c96cc246ef8 data/forge/tags/items/plates.json
|
||||
e32b78851bc4fce0745d8b72c85cbd4e89e8c221 data/forge/tags/items/plates.json
|
||||
39f0d70ec10597e85df7c4783bbc5e0e4a5ffb80 data/forge/tags/items/plates/brass.json
|
||||
c3dab5fe379bc1b7b10d4a0ba7009eee1b75a27c data/forge/tags/items/plates/copper.json
|
||||
fb9bfb4c84ed9cf2da8c4b2fbc4cd4d9f37d3016 data/forge/tags/items/plates/gold.json
|
||||
|
|
|
@ -1,53 +1,5 @@
|
|||
{
|
||||
"multipart": [
|
||||
{
|
||||
"when": {
|
||||
"down": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/connection/down"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"up": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/connection/up"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"north": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/connection/north"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/connection/south"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"west": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/connection/west"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"east": "true"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/connection/east"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"up": "true",
|
||||
|
@ -158,17 +110,6 @@
|
|||
"model": "create:block/fluid_pipe/r_x"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"up": "false",
|
||||
"south": "false",
|
||||
"north": "false",
|
||||
"down": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/none_x"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "true",
|
||||
|
@ -279,17 +220,6 @@
|
|||
"model": "create:block/fluid_pipe/r_y"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"south": "false",
|
||||
"east": "false",
|
||||
"west": "false",
|
||||
"north": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/none_y"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"up": "true",
|
||||
|
@ -399,17 +329,6 @@
|
|||
"apply": {
|
||||
"model": "create:block/fluid_pipe/r_z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"when": {
|
||||
"up": "false",
|
||||
"east": "false",
|
||||
"west": "false",
|
||||
"down": "false"
|
||||
},
|
||||
"apply": {
|
||||
"model": "create:block/fluid_pipe/none_z"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -666,28 +666,28 @@
|
|||
"_": "->------------------------] Advancements [------------------------<-",
|
||||
|
||||
"advancement.create.root": "Welcome to Create",
|
||||
"advancement.create.root.desc": "Here be Contraptions",
|
||||
"advancement.create.root.desc": "Here Be Contraptions",
|
||||
"advancement.create.andesite_alloy": "Sturdier Rocks",
|
||||
"advancement.create.andesite_alloy.desc": "Obtain some Andesite Alloy, Create's most important resource",
|
||||
"advancement.create.andesite_casing": "The Andesite Age",
|
||||
"advancement.create.andesite_casing.desc": "Apply Andesite Alloy to wood creating a basic casing for your machines",
|
||||
"advancement.create.mechanical_press": "Bonk",
|
||||
"advancement.create.andesite_casing.desc": "Apply Andesite Alloy to stripped wood, creating a basic casing for your machines",
|
||||
"advancement.create.mechanical_press": "Bonk!",
|
||||
"advancement.create.mechanical_press.desc": "Create some sheets in a Mechanical Press",
|
||||
"advancement.create.encased_fan": "Wind maker",
|
||||
"advancement.create.encased_fan.desc": "Place and activate an Encased Fan",
|
||||
"advancement.create.encased_fan": "Wind Maker",
|
||||
"advancement.create.encased_fan.desc": "Place and power an Encased Fan",
|
||||
"advancement.create.fan_processing": "Processing by Particle",
|
||||
"advancement.create.fan_processing.desc": "Use an Encased Fan to process materials",
|
||||
"advancement.create.saw_processing": "Workshop's most feared",
|
||||
"advancement.create.saw_processing": "Workshop's Most Feared",
|
||||
"advancement.create.saw_processing.desc": "Use an upright Mechanical Saw to process materials",
|
||||
"advancement.create.compacting": "Compactification",
|
||||
"advancement.create.compacting.desc": "Use a Press and a Basin to create less items from more items",
|
||||
"advancement.create.compacting.desc": "Use a Mechanical Press and a Basin to create fewer items from more",
|
||||
"advancement.create.belt": "Kelp Drive",
|
||||
"advancement.create.belt.desc": "Connect two Shafts with a Mechanical Belt",
|
||||
"advancement.create.funnel": "Airport Aesthetic",
|
||||
"advancement.create.funnel.desc": "Extract or insert items into a container using a Funnel",
|
||||
"advancement.create.chute": "Vertical Logistics",
|
||||
"advancement.create.chute.desc": "Transport some items by Chute",
|
||||
"advancement.create.mechanical_mixer": "Mixing it up",
|
||||
"advancement.create.mechanical_mixer": "Mixing It Up",
|
||||
"advancement.create.mechanical_mixer.desc": "Combine ingredients in a Mechanical Mixer",
|
||||
"advancement.create.burner": "Sentient Fireplace",
|
||||
"advancement.create.burner.desc": "Obtain a Blaze Burner",
|
||||
|
@ -702,25 +702,25 @@
|
|||
"advancement.create.super_glue": "Area of Connect",
|
||||
"advancement.create.super_glue.desc": "Super Glue some blocks into a group",
|
||||
"advancement.create.contraption_actors": "Moving with Purpose",
|
||||
"advancement.create.contraption_actors.desc": "Create a contraption with drills, saws or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "Drive-by exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "Use a Portable Storage Interface to take or insert items into a contraption",
|
||||
"advancement.create.wrench_goggles": "Kitted out",
|
||||
"advancement.create.wrench_goggles.desc": "Equip Engineer's goggles and a Wrench",
|
||||
"advancement.create.contraption_actors.desc": "Create a Contraption with drills, saws, or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "Drive-By Exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "Use a Portable Storage Interface to take or insert items into a Contraption",
|
||||
"advancement.create.wrench_goggles": "Kitted Out",
|
||||
"advancement.create.wrench_goggles.desc": "Equip Engineer's Goggles and a Wrench",
|
||||
"advancement.create.stressometer": "Stress for Nerds",
|
||||
"advancement.create.stressometer.desc": "Get an exact readout with the help of Goggles and a Stressometer",
|
||||
"advancement.create.cuckoo_clock": "Is it Time?",
|
||||
"advancement.create.stressometer.desc": "Get an exact readout with the help of Engineer's Goggles and a Stressometer",
|
||||
"advancement.create.cuckoo_clock": "Is It Time?",
|
||||
"advancement.create.cuckoo_clock.desc": "Witness your Cuckoo Clock announce bedtime",
|
||||
"advancement.create.windmill_maxed": "A Strong Breeze",
|
||||
"advancement.create.windmill_maxed.desc": "Assemble a windmill of maximum strength",
|
||||
"advancement.create.ejector_maxed": "Springboard Champion",
|
||||
"advancement.create.ejector_maxed.desc": "Get launched for more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.ejector_maxed.desc": "Get launched more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.pulley_maxed": "Rope to Nowhere",
|
||||
"advancement.create.pulley_maxed.desc": "Extend a Rope Pulley over 200 blocks deep",
|
||||
"advancement.create.cart_pickup": "Strong Arms",
|
||||
"advancement.create.cart_pickup.desc": "Pick up a Minecart Contraption with at least 200 attached blocks",
|
||||
"advancement.create.anvil_plough": "Blacksmith Artillery",
|
||||
"advancement.create.anvil_plough.desc": "Launch an Anvil with Mechanical ploughs",
|
||||
"advancement.create.anvil_plough.desc": "Launch an Anvil with Mechanical Ploughs",
|
||||
"advancement.create.lava_wheel_00000": "Magma Wheel",
|
||||
"advancement.create.lava_wheel_00000.desc": "This shouldn't have worked§7\n(Hidden Advancement)",
|
||||
"advancement.create.hand_crank_000": "Workout Session",
|
||||
|
@ -729,62 +729,62 @@
|
|||
"advancement.create.belt_funnel_kiss.desc": "Make two Belt-mounted Funnels kiss§7\n(Hidden Advancement)",
|
||||
"advancement.create.stressometer_maxed": "Perfectly Stressed",
|
||||
"advancement.create.stressometer_maxed.desc": "Get a 100% readout from a Stressometer§7\n(Hidden Advancement)",
|
||||
"advancement.create.copper": "More Sturdier Rocks",
|
||||
"advancement.create.copper.desc": "Amass some Copper for your exploits in Fluid Manipulation",
|
||||
"advancement.create.copper": "Cuprum Bokum",
|
||||
"advancement.create.copper.desc": "Amass some Copper Ingots for your exploits in fluid manipulation",
|
||||
"advancement.create.copper_casing": "The Copper Age",
|
||||
"advancement.create.copper_casing.desc": "Apply Copper Ingots to wood creating a waterproof casing for your machines",
|
||||
"advancement.create.copper_casing.desc": "Apply Copper Ingots to stripped wood, creating a waterproof casing for your machines",
|
||||
"advancement.create.spout": "Sploosh",
|
||||
"advancement.create.spout.desc": "Watch a fluid containing item be filled using a Spout",
|
||||
"advancement.create.spout.desc": "Watch a fluid-containing item be filled by a Spout",
|
||||
"advancement.create.drain": "Tumble Draining",
|
||||
"advancement.create.drain.desc": "Watch a fluid containing item be emptied by an Item Drain",
|
||||
"advancement.create.drain.desc": "Watch a fluid-containing item be emptied by an Item Drain",
|
||||
"advancement.create.steam_engine": "The Powerhouse",
|
||||
"advancement.create.steam_engine.desc": "Use a Steam engine to generate torque",
|
||||
"advancement.create.steam_engine.desc": "Use a Steam Engine to generate torque",
|
||||
"advancement.create.steam_whistle": "Voice of an Angel",
|
||||
"advancement.create.steam_whistle.desc": "Activate a Steam Whistle",
|
||||
"advancement.create.backtank": "Pressure to Go",
|
||||
"advancement.create.backtank.desc": "Create a copper backtank and make it accumulate Air Pressure",
|
||||
"advancement.create.backtank.desc": "Create a Copper Backtank and make it accumulate air pressure",
|
||||
"advancement.create.diving_suit": "Ready for the Depths",
|
||||
"advancement.create.diving_suit.desc": "Equip a diving helmet together with your backtank and jump into water",
|
||||
"advancement.create.diving_suit.desc": "Equip a Diving Helmet and a Copper Backtank, then jump into water",
|
||||
"advancement.create.mechanical_pump_0": "Under Pressure",
|
||||
"advancement.create.mechanical_pump_0.desc": "Place and power a Mechanical Pump",
|
||||
"advancement.create.glass_pipe": "Flow Discovery",
|
||||
"advancement.create.glass_pipe.desc": "Use your Wrench on a pipe that contains a fluid",
|
||||
"advancement.create.water_supply": "Puddle Collector",
|
||||
"advancement.create.water_supply.desc": "Use the pulling end of a pipe or pump to collect a water block",
|
||||
"advancement.create.water_supply.desc": "Use the pulling end of a Fluid Pipe or Mechanical Pump to collect water",
|
||||
"advancement.create.hose_pulley": "Industrial Spillage",
|
||||
"advancement.create.hose_pulley.desc": "Lower a Hose Pulley and watch it drain or fill a body of fluid",
|
||||
"advancement.create.chocolate_bucket": "A World of Imagination",
|
||||
"advancement.create.chocolate_bucket.desc": "Obtain a Bucket of Molten Chocolate",
|
||||
"advancement.create.chocolate_bucket.desc": "Obtain a bucket of molten chocolate",
|
||||
"advancement.create.honey_drain": "Autonomous Bee-Keeping",
|
||||
"advancement.create.honey_drain.desc": "Use pipes to pull honey from a Bee Nest or Bee House",
|
||||
"advancement.create.honey_drain.desc": "Use pipes to pull honey from a Bee Nest or Beehive",
|
||||
"advancement.create.hose_pulley_lava": "Tapping the Mantle",
|
||||
"advancement.create.hose_pulley_lava.desc": "Pump from a body of Lava large enough to be considered infinite",
|
||||
"advancement.create.hose_pulley_lava.desc": "Pump from a body of lava large enough to be considered infinite",
|
||||
"advancement.create.steam_engine_maxed": "Full Steam",
|
||||
"advancement.create.steam_engine_maxed.desc": "Run a boiler at the maximum level of power",
|
||||
"advancement.create.foods": "Balanced Diet",
|
||||
"advancement.create.foods.desc": "Create Chocolate Berries, a Honeyed Apple and a Sweet Roll; all from the same Spout",
|
||||
"advancement.create.foods.desc": "Create Chocolate Glazed Berries, a Honeyed Apple, and a Sweet Roll all from the same Spout",
|
||||
"advancement.create.diving_suit_lava": "Swimming with the Striders",
|
||||
"advancement.create.diving_suit_lava.desc": "Attempt to take a dive in lava with your Copper Diving Gear§7\n(Hidden Advancement)",
|
||||
"advancement.create.diving_suit_lava.desc": "Attempt to take a dive in lava with your diving gear§7\n(Hidden Advancement)",
|
||||
"advancement.create.chained_drain": "On a Roll",
|
||||
"advancement.create.chained_drain.desc": "Watch an Item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "Don't cross the Streams!",
|
||||
"advancement.create.chained_drain.desc": "Watch an item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "Don't Cross the Streams!",
|
||||
"advancement.create.cross_streams.desc": "Watch two fluids meet in your pipe network§7\n(Hidden Advancement)",
|
||||
"advancement.create.pipe_organ": "The Pipe Organ",
|
||||
"advancement.create.pipe_organ.desc": "Attach 12 uniquely pitched Steam Whistles to a single fluid tank§7\n(Hidden Advancement)",
|
||||
"advancement.create.pipe_organ.desc": "Attach 12 uniquely pitched Steam Whistles to a single Fluid Tank§7\n(Hidden Advancement)",
|
||||
"advancement.create.brass": "Real Alloys",
|
||||
"advancement.create.brass.desc": "Create some Brass from Copper and Zinc ingots in your Blaze-powered Mixer",
|
||||
"advancement.create.brass.desc": "Create Brass Ingots by alloying Copper and Zinc Ingots in your Blaze-heated Mechanical Mixer",
|
||||
"advancement.create.brass_casing": "The Brass Age",
|
||||
"advancement.create.brass_casing.desc": "Apply Brass Ingots to wood creating a casing for more sophisticated machines",
|
||||
"advancement.create.brass_casing.desc": "Apply Brass Ingots to stripped wood, creating a casing for more sophisticated machines",
|
||||
"advancement.create.rose_quartz": "Pink Diamonds",
|
||||
"advancement.create.rose_quartz.desc": "Polish some Rose Quartz",
|
||||
"advancement.create.deployer": "Artificial Intelligence",
|
||||
"advancement.create.deployer.desc": "Place and activate a Deployer, the perfect reflection of yourself",
|
||||
"advancement.create.deployer.desc": "Place and power a Deployer, the perfect reflection of yourself",
|
||||
"advancement.create.precision_mechanism": "Complex Curiosities",
|
||||
"advancement.create.precision_mechanism.desc": "Assemble a Precision Mechanism",
|
||||
"advancement.create.speed_controller": "Engineers Hate Him!",
|
||||
"advancement.create.speed_controller.desc": "Fine tune your contraption with a Rotation Speed Controller",
|
||||
"advancement.create.speed_controller.desc": "Fine-tune your Contraption with a Rotation Speed Controller",
|
||||
"advancement.create.mechanical_arm": "Busy Hands",
|
||||
"advancement.create.mechanical_arm.desc": "Watch your Mechanical Arm transport its first Item",
|
||||
"advancement.create.mechanical_arm.desc": "Watch your Mechanical Arm transport its first item",
|
||||
"advancement.create.mechanical_crafter": "Automated Assembly",
|
||||
"advancement.create.mechanical_crafter.desc": "Place and power some Mechanical Crafters",
|
||||
"advancement.create.crushing_wheel": "A Pair of Giants",
|
||||
|
@ -794,7 +794,7 @@
|
|||
"advancement.create.clockwork_bearing": "Contraption O'Clock",
|
||||
"advancement.create.clockwork_bearing.desc": "Assemble a structure mounted on a Clockwork Bearing",
|
||||
"advancement.create.display_link": "Big Data",
|
||||
"advancement.create.display_link.desc": "Use a Display link to visualise information",
|
||||
"advancement.create.display_link.desc": "Use a Display Link to visualise information",
|
||||
"advancement.create.potato_cannon": "Fwoomp!",
|
||||
"advancement.create.potato_cannon.desc": "Defeat an enemy with your Potato Cannon",
|
||||
"advancement.create.extendo_grip": "Boioioing!",
|
||||
|
@ -803,54 +803,54 @@
|
|||
"advancement.create.linked_controller.desc": "Activate a Redstone Link using a Linked Controller",
|
||||
"advancement.create.arm_blaze_burner": "Combust-o-Tron",
|
||||
"advancement.create.arm_blaze_burner.desc": "Instruct a Mechanical Arm to feed your Blaze Burner",
|
||||
"advancement.create.crusher_maxed_0000": "Crushing it",
|
||||
"advancement.create.crusher_maxed_0000.desc": "Operate a Pair of Crushing wheels at max speed",
|
||||
"advancement.create.crusher_maxed_0000": "Crushing It",
|
||||
"advancement.create.crusher_maxed_0000.desc": "Operate a pair of Crushing Wheels at maximum speed",
|
||||
"advancement.create.arm_many_targets": "Organize-o-Tron",
|
||||
"advancement.create.arm_many_targets.desc": "Program a Mechanical Arm with ten or more output locations",
|
||||
"advancement.create.arm_many_targets.desc": "Program a Mechanical Arm with 10 or more output locations",
|
||||
"advancement.create.potato_cannon_collide": "Veggie Fireworks",
|
||||
"advancement.create.potato_cannon_collide.desc": "Cause potato cannon projectiles of different types to collide with each other",
|
||||
"advancement.create.potato_cannon_collide.desc": "Cause Potato Cannon projectiles of different types to collide with each other",
|
||||
"advancement.create.self_deploying": "Self-Driving Cart",
|
||||
"advancement.create.self_deploying.desc": "Create a Minecart Contraption that places tracks in front of itself",
|
||||
"advancement.create.fist_bump": "Pound It, Bro!",
|
||||
"advancement.create.fist_bump.desc": "Make two Deployers fist-bump§7\n(Hidden Advancement)",
|
||||
"advancement.create.crafter_lazy_000": "Desperate Measures",
|
||||
"advancement.create.crafter_lazy_000.desc": "Drastically slow down a Mechanical Crafter to procrastinate on proper infrastructure§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "To full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "Dual wield Extendo Grips for super-human reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "To Full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "Dual-wield Extendo Grips for superhuman reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.musical_arm": "DJ Mechanico",
|
||||
"advancement.create.musical_arm.desc": "Watch a Mechanical Arm operate your Jukebox§7\n(Hidden Advancement)",
|
||||
"advancement.create.sturdy_sheet": "The Sturdiest Rocks",
|
||||
"advancement.create.sturdy_sheet.desc": "Assemble a Sturdy Sheet from refining crushed Obsidian",
|
||||
"advancement.create.sturdy_sheet.desc": "Assemble a Sturdy Sheet by refining Powdered Obsidian",
|
||||
"advancement.create.train_casing_00": "The Logistical Age",
|
||||
"advancement.create.train_casing_00.desc": "Use Sturdy Sheets to create a Casing for Railway Components",
|
||||
"advancement.create.train_casing_00.desc": "Use Sturdy Sheets to create a casing for railway components",
|
||||
"advancement.create.train": "All Aboard!",
|
||||
"advancement.create.train.desc": "Assemble your first Train",
|
||||
"advancement.create.conductor": "Conductor Instructor",
|
||||
"advancement.create.conductor.desc": "Instruct a Train driver with a Schedule",
|
||||
"advancement.create.conductor.desc": "Instruct a Train driver with a Train Schedule",
|
||||
"advancement.create.track_signal": "Traffic Control",
|
||||
"advancement.create.track_signal.desc": "Place a Train Signal",
|
||||
"advancement.create.display_board_0": "Dynamic Timetables",
|
||||
"advancement.create.display_board_0.desc": "Forecast a Train's arrival on your Display Board with the help of Display Links",
|
||||
"advancement.create.track_0": "A new Gauge",
|
||||
"advancement.create.track_0": "A New Gauge",
|
||||
"advancement.create.track_0.desc": "Obtain some Train Tracks",
|
||||
"advancement.create.train_whistle": "Choo choo!",
|
||||
"advancement.create.train_whistle": "Choo Choo!",
|
||||
"advancement.create.train_whistle.desc": "Assemble a Steam Whistle to your Train and activate it while driving",
|
||||
"advancement.create.train_portal": "Dimensional Commuter",
|
||||
"advancement.create.train_portal.desc": "Ride a train through a Nether Portal",
|
||||
"advancement.create.train_portal.desc": "Ride a Train through a Nether portal",
|
||||
"advancement.create.track_crafting_factory": "Track Factory",
|
||||
"advancement.create.track_crafting_factory.desc": "Produce more than 1000 train tracks in the same Mechanical Press",
|
||||
"advancement.create.track_crafting_factory.desc": "Produce more than 1000 Train Tracks with the same Mechanical Press",
|
||||
"advancement.create.long_bend": "The Longest Bend",
|
||||
"advancement.create.long_bend.desc": "Create a Curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_bend.desc": "Create a curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_train": "Ambitious Endeavours",
|
||||
"advancement.create.long_train.desc": "Create a Train with at least six Carriages",
|
||||
"advancement.create.long_train.desc": "Create a Train with at least 6 carriages",
|
||||
"advancement.create.long_travel": "Field Trip",
|
||||
"advancement.create.long_travel.desc": "Leave a Train Seat over 5000 blocks away from where you started travelling",
|
||||
"advancement.create.train_roadkill": "Road Kill",
|
||||
"advancement.create.train_roadkill.desc": "Run over an Enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_roadkill.desc": "Run over an enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal": "Expert Driver",
|
||||
"advancement.create.red_signal.desc": "Run a Red Signal with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal.desc": "Run a red Train Signal§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash": "Terrible Service",
|
||||
"advancement.create.train_crash.desc": "Witness a Train Crash as a Passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash.desc": "Witness a Train crash as a passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash_backwards": "Blind Spot",
|
||||
"advancement.create.train_crash_backwards.desc": "Crash into another Train while driving backwards§7\n(Hidden Advancement)",
|
||||
|
||||
|
@ -1257,8 +1257,10 @@
|
|||
"create.item_attributes.smeltable.inverted": "cannot be Smelted",
|
||||
"create.item_attributes.smokable": "can be Smoked",
|
||||
"create.item_attributes.smokable.inverted": "cannot be Smoked",
|
||||
"create.item_attributes.blastable": "is smeltable in Blast Furnace",
|
||||
"create.item_attributes.blastable.inverted": "is not smeltable in Blast Furnace",
|
||||
"create.item_attributes.blastable": "can be Smelted in a Blast Furnace",
|
||||
"create.item_attributes.blastable.inverted": "cannot be Smelted in a Blast Furnace",
|
||||
"create.item_attributes.compostable": "can be composted",
|
||||
"create.item_attributes.compostable.inverted": "cannot be composted",
|
||||
"create.item_attributes.shulker_level": "is shulker %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "is shulker not %1$s",
|
||||
"create.item_attributes.shulker_level.full": "full",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 838",
|
||||
"_": "Missing Localizations: 840",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1260,6 +1260,8 @@
|
|||
"create.item_attributes.smokable.inverted": "kann nicht geräuchert werden",
|
||||
"create.item_attributes.blastable": "ist im Schmelzofen schmelzbar",
|
||||
"create.item_attributes.blastable.inverted": "ist nicht im Schmelzofen schmelzbar",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "ist Shulker %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "ist Shulker nicht %1$s",
|
||||
"create.item_attributes.shulker_level.full": "voll",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 984",
|
||||
"_": "Missing Localizations: 986",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -672,23 +672,23 @@
|
|||
"advancement.create.andesite_alloy.desc": "Los materiales de create tienen nombres raros. La Aleación de Andesita es uno de ellos.",
|
||||
"advancement.create.andesite_casing": "La Edad de la Andesita",
|
||||
"advancement.create.andesite_casing.desc": "Utilice un poco de madera y aleación de andesita para crear una cubierta básica.",
|
||||
"advancement.create.mechanical_press": "UNLOCALIZED: Bonk",
|
||||
"advancement.create.mechanical_press": "UNLOCALIZED: Bonk!",
|
||||
"advancement.create.mechanical_press.desc": "UNLOCALIZED: Create some sheets in a Mechanical Press",
|
||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind maker",
|
||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and activate an Encased Fan",
|
||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind Maker",
|
||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and power an Encased Fan",
|
||||
"advancement.create.fan_processing": "UNLOCALIZED: Processing by Particle",
|
||||
"advancement.create.fan_processing.desc": "UNLOCALIZED: Use an Encased Fan to process materials",
|
||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's most feared",
|
||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's Most Feared",
|
||||
"advancement.create.saw_processing.desc": "UNLOCALIZED: Use an upright Mechanical Saw to process materials",
|
||||
"advancement.create.compacting": "UNLOCALIZED: Compactification",
|
||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Press and a Basin to create less items from more items",
|
||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Mechanical Press and a Basin to create fewer items from more",
|
||||
"advancement.create.belt": "Unidad de Algas",
|
||||
"advancement.create.belt.desc": "Conecta dos ejes con una cinta mecánica.",
|
||||
"advancement.create.funnel": "UNLOCALIZED: Airport Aesthetic",
|
||||
"advancement.create.funnel.desc": "UNLOCALIZED: Extract or insert items into a container using a Funnel",
|
||||
"advancement.create.chute": "Viniendose Abajo",
|
||||
"advancement.create.chute.desc": "Coloca un tolvogán, la contraparte vertical de las cintas mecánicas.",
|
||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing it up",
|
||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing It Up",
|
||||
"advancement.create.mechanical_mixer.desc": "UNLOCALIZED: Combine ingredients in a Mechanical Mixer",
|
||||
"advancement.create.burner": "UNLOCALIZED: Sentient Fireplace",
|
||||
"advancement.create.burner.desc": "UNLOCALIZED: Obtain a Blaze Burner",
|
||||
|
@ -703,25 +703,25 @@
|
|||
"advancement.create.super_glue": "UNLOCALIZED: Area of Connect",
|
||||
"advancement.create.super_glue.desc": "UNLOCALIZED: Super Glue some blocks into a group",
|
||||
"advancement.create.contraption_actors": "UNLOCALIZED: Moving with Purpose",
|
||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a contraption with drills, saws or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-by exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a contraption",
|
||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted out",
|
||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's goggles and a Wrench",
|
||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a Contraption with drills, saws, or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-By Exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a Contraption",
|
||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted Out",
|
||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's Goggles and a Wrench",
|
||||
"advancement.create.stressometer": "Pero, ¿qué tan estresado exactamente?",
|
||||
"advancement.create.stressometer.desc": "Coloca y dale poder a un Estresómetro. Míralo con tus gafas para leer el número exacto.",
|
||||
"advancement.create.cuckoo_clock": "UNLOCALIZED: Is it Time?",
|
||||
"advancement.create.cuckoo_clock": "UNLOCALIZED: Is It Time?",
|
||||
"advancement.create.cuckoo_clock.desc": "UNLOCALIZED: Witness your Cuckoo Clock announce bedtime",
|
||||
"advancement.create.windmill_maxed": "UNLOCALIZED: A Strong Breeze",
|
||||
"advancement.create.windmill_maxed.desc": "UNLOCALIZED: Assemble a windmill of maximum strength",
|
||||
"advancement.create.ejector_maxed": "UNLOCALIZED: Springboard Champion",
|
||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched for more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.pulley_maxed": "UNLOCALIZED: Rope to Nowhere",
|
||||
"advancement.create.pulley_maxed.desc": "UNLOCALIZED: Extend a Rope Pulley over 200 blocks deep",
|
||||
"advancement.create.cart_pickup": "UNLOCALIZED: Strong Arms",
|
||||
"advancement.create.cart_pickup.desc": "UNLOCALIZED: Pick up a Minecart Contraption with at least 200 attached blocks",
|
||||
"advancement.create.anvil_plough": "UNLOCALIZED: Blacksmith Artillery",
|
||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical ploughs",
|
||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical Ploughs",
|
||||
"advancement.create.lava_wheel_00000": "UNLOCALIZED: Magma Wheel",
|
||||
"advancement.create.lava_wheel_00000.desc": "UNLOCALIZED: This shouldn't have worked§7\n(Hidden Advancement)",
|
||||
"advancement.create.hand_crank_000": "UNLOCALIZED: Workout Session",
|
||||
|
@ -730,48 +730,48 @@
|
|||
"advancement.create.belt_funnel_kiss.desc": "Haz que dos ingresos montados en una cinta mecánica se besen.",
|
||||
"advancement.create.stressometer_maxed": "UNLOCALIZED: Perfectly Stressed",
|
||||
"advancement.create.stressometer_maxed.desc": "UNLOCALIZED: Get a 100% readout from a Stressometer§7\n(Hidden Advancement)",
|
||||
"advancement.create.copper": "UNLOCALIZED: More Sturdier Rocks",
|
||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper for your exploits in Fluid Manipulation",
|
||||
"advancement.create.copper": "UNLOCALIZED: Cuprum Bokum",
|
||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper Ingots for your exploits in fluid manipulation",
|
||||
"advancement.create.copper_casing": "La Edad del Cobre",
|
||||
"advancement.create.copper_casing.desc": "Utiliza planchas de cobre y un poco de madera para crear cubiertas de cobre.",
|
||||
"advancement.create.spout": "Splash",
|
||||
"advancement.create.spout.desc": "Observa cómo se llena un objeto de líquido con un surtidor.",
|
||||
"advancement.create.drain": "UNLOCALIZED: Tumble Draining",
|
||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid containing item be emptied by an Item Drain",
|
||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid-containing item be emptied by an Item Drain",
|
||||
"advancement.create.steam_engine": "UNLOCALIZED: The Powerhouse",
|
||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam engine to generate torque",
|
||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam Engine to generate torque",
|
||||
"advancement.create.steam_whistle": "UNLOCALIZED: Voice of an Angel",
|
||||
"advancement.create.steam_whistle.desc": "UNLOCALIZED: Activate a Steam Whistle",
|
||||
"advancement.create.backtank": "UNLOCALIZED: Pressure to Go",
|
||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a copper backtank and make it accumulate Air Pressure",
|
||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a Copper Backtank and make it accumulate air pressure",
|
||||
"advancement.create.diving_suit": "UNLOCALIZED: Ready for the Depths",
|
||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a diving helmet together with your backtank and jump into water",
|
||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a Diving Helmet and a Copper Backtank, then jump into water",
|
||||
"advancement.create.mechanical_pump_0": "UNLOCALIZED: Under Pressure",
|
||||
"advancement.create.mechanical_pump_0.desc": "UNLOCALIZED: Place and power a Mechanical Pump",
|
||||
"advancement.create.glass_pipe": "Flujo Espía",
|
||||
"advancement.create.glass_pipe.desc": "Observa cómo se propaga el fluido a través de una tubería con ventana. Puedes añadir una ventana a una tubería recta con tu Llave Inglesa.",
|
||||
"advancement.create.water_supply": "UNLOCALIZED: Puddle Collector",
|
||||
"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": "UNLOCALIZED: Use the pulling end of a Fluid Pipe or Mechanical Pump to collect water",
|
||||
"advancement.create.hose_pulley": "Derrame industrial",
|
||||
"advancement.create.hose_pulley.desc": "Baja una polea manguera y observa cómo drena o llena un cuerpo de fluido.",
|
||||
"advancement.create.chocolate_bucket": "UNLOCALIZED: A World of Imagination",
|
||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a Bucket of Molten Chocolate",
|
||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a bucket of molten chocolate",
|
||||
"advancement.create.honey_drain": "UNLOCALIZED: Autonomous Bee-Keeping",
|
||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Bee House",
|
||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Beehive",
|
||||
"advancement.create.hose_pulley_lava": "UNLOCALIZED: Tapping the Mantle",
|
||||
"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": "UNLOCALIZED: Pump from a body of lava large enough to be considered infinite",
|
||||
"advancement.create.steam_engine_maxed": "UNLOCALIZED: Full Steam",
|
||||
"advancement.create.steam_engine_maxed.desc": "UNLOCALIZED: Run a boiler at the maximum level of power",
|
||||
"advancement.create.foods": "UNLOCALIZED: Balanced Diet",
|
||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Berries, a Honeyed Apple and a Sweet Roll; all from the same Spout",
|
||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Glazed Berries, a Honeyed Apple, and a Sweet Roll all from the same Spout",
|
||||
"advancement.create.diving_suit_lava": "UNLOCALIZED: Swimming with the Striders",
|
||||
"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": "UNLOCALIZED: Attempt to take a dive in lava with your diving gear§7\n(Hidden Advancement)",
|
||||
"advancement.create.chained_drain": "UNLOCALIZED: On a Roll",
|
||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an Item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't cross the Streams!",
|
||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't Cross the Streams!",
|
||||
"advancement.create.cross_streams.desc": "UNLOCALIZED: Watch two fluids meet in your pipe network§7\n(Hidden Advancement)",
|
||||
"advancement.create.pipe_organ": "UNLOCALIZED: The Pipe Organ",
|
||||
"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": "UNLOCALIZED: Attach 12 uniquely pitched Steam Whistles to a single Fluid Tank§7\n(Hidden Advancement)",
|
||||
"advancement.create.brass": "Aleaciones de verdad",
|
||||
"advancement.create.brass.desc": "Usa cobre triturado y zinc triturado para crear algo de latón.",
|
||||
"advancement.create.brass_casing": "La Edad del Latón",
|
||||
|
@ -795,7 +795,7 @@
|
|||
"advancement.create.clockwork_bearing": "Contrapción en Punto",
|
||||
"advancement.create.clockwork_bearing.desc": "Ensambla una estructura montada sobre un rodamiento de relojería.",
|
||||
"advancement.create.display_link": "UNLOCALIZED: Big Data",
|
||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display link to visualise information",
|
||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display Link to visualise information",
|
||||
"advancement.create.potato_cannon": "¡Fwoomp!",
|
||||
"advancement.create.potato_cannon.desc": "Derrota a un enemigo con tu Cañón de Papas.",
|
||||
"advancement.create.extendo_grip": "¡Boioioing!",
|
||||
|
@ -804,54 +804,54 @@
|
|||
"advancement.create.linked_controller.desc": "UNLOCALIZED: Activate a Redstone Link using a Linked Controller",
|
||||
"advancement.create.arm_blaze_burner": "Combustrón 3001",
|
||||
"advancement.create.arm_blaze_burner.desc": "Instruye a un brazo mecánico para que alimente tu Quemador Blaze.",
|
||||
"advancement.create.crusher_maxed_0000": "UNLOCALIZED: Crushing it",
|
||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a Pair of Crushing wheels at max speed",
|
||||
"advancement.create.crusher_maxed_0000": "UNLOCALIZED: Crushing It",
|
||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a pair of Crushing Wheels at maximum speed",
|
||||
"advancement.create.arm_many_targets": "Organizatrón 3000",
|
||||
"advancement.create.arm_many_targets.desc": "Programa un brazo mecánico con 10 o más localizaciones de salida.",
|
||||
"advancement.create.potato_cannon_collide": "UNLOCALIZED: Veggie Fireworks",
|
||||
"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": "UNLOCALIZED: Cause Potato Cannon projectiles of different types to collide with each other",
|
||||
"advancement.create.self_deploying": "UNLOCALIZED: Self-Driving Cart",
|
||||
"advancement.create.self_deploying.desc": "UNLOCALIZED: Create a Minecart Contraption that places tracks in front of itself",
|
||||
"advancement.create.fist_bump": "¡Dame el puño, hermano!",
|
||||
"advancement.create.fist_bump.desc": "Haz que dos Desplegadores se golpeen con el puño.",
|
||||
"advancement.create.crafter_lazy_000": "UNLOCALIZED: Desperate Measures",
|
||||
"advancement.create.crafter_lazy_000.desc": "UNLOCALIZED: Drastically slow down a Mechanical Crafter to procrastinate on proper infrastructure§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual wield Extendo Grips for super-human reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To Full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual-wield Extendo Grips for superhuman reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.musical_arm": "¡Póneme mi tema principal!",
|
||||
"advancement.create.musical_arm.desc": "Observa cómo un brazo mecánico opera un tocadiscos.",
|
||||
"advancement.create.sturdy_sheet": "UNLOCALIZED: The Sturdiest Rocks",
|
||||
"advancement.create.sturdy_sheet.desc": "UNLOCALIZED: Assemble a Sturdy Sheet from refining crushed Obsidian",
|
||||
"advancement.create.sturdy_sheet.desc": "UNLOCALIZED: Assemble a Sturdy Sheet by refining Powdered Obsidian",
|
||||
"advancement.create.train_casing_00": "UNLOCALIZED: The Logistical Age",
|
||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a Casing for Railway Components",
|
||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a casing for railway components",
|
||||
"advancement.create.train": "UNLOCALIZED: All Aboard!",
|
||||
"advancement.create.train.desc": "UNLOCALIZED: Assemble your first Train",
|
||||
"advancement.create.conductor": "UNLOCALIZED: Conductor Instructor",
|
||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Schedule",
|
||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Train Schedule",
|
||||
"advancement.create.track_signal": "UNLOCALIZED: Traffic Control",
|
||||
"advancement.create.track_signal.desc": "UNLOCALIZED: Place a Train Signal",
|
||||
"advancement.create.display_board_0": "UNLOCALIZED: Dynamic Timetables",
|
||||
"advancement.create.display_board_0.desc": "UNLOCALIZED: Forecast a Train's arrival on your Display Board with the help of Display Links",
|
||||
"advancement.create.track_0": "UNLOCALIZED: A new Gauge",
|
||||
"advancement.create.track_0": "UNLOCALIZED: A New Gauge",
|
||||
"advancement.create.track_0.desc": "UNLOCALIZED: Obtain some Train Tracks",
|
||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo choo!",
|
||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo Choo!",
|
||||
"advancement.create.train_whistle.desc": "UNLOCALIZED: Assemble a Steam Whistle to your Train and activate it while driving",
|
||||
"advancement.create.train_portal": "UNLOCALIZED: Dimensional Commuter",
|
||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a train through a Nether Portal",
|
||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a Train through a Nether portal",
|
||||
"advancement.create.track_crafting_factory": "UNLOCALIZED: Track Factory",
|
||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 train tracks in the same Mechanical Press",
|
||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 Train Tracks with the same Mechanical Press",
|
||||
"advancement.create.long_bend": "UNLOCALIZED: The Longest Bend",
|
||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a Curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_train": "UNLOCALIZED: Ambitious Endeavours",
|
||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least six Carriages",
|
||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least 6 carriages",
|
||||
"advancement.create.long_travel": "UNLOCALIZED: Field Trip",
|
||||
"advancement.create.long_travel.desc": "UNLOCALIZED: Leave a Train Seat over 5000 blocks away from where you started travelling",
|
||||
"advancement.create.train_roadkill": "UNLOCALIZED: Road Kill",
|
||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an Enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal": "UNLOCALIZED: Expert Driver",
|
||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a Red Signal with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a red Train Signal§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash": "UNLOCALIZED: Terrible Service",
|
||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train Crash as a Passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train crash as a passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash_backwards": "UNLOCALIZED: Blind Spot",
|
||||
"advancement.create.train_crash_backwards.desc": "UNLOCALIZED: Crash into another Train while driving backwards§7\n(Hidden Advancement)",
|
||||
|
||||
|
@ -1260,6 +1260,8 @@
|
|||
"create.item_attributes.smokable.inverted": "no puede ser Ahumado",
|
||||
"create.item_attributes.blastable": "puede ser cocinado en un Alto Horno",
|
||||
"create.item_attributes.blastable.inverted": "no puede ser cocinado en un Alto Horno",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "es un shulker %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "no es un shulker %1$s",
|
||||
"create.item_attributes.shulker_level.full": "lleno",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 4",
|
||||
"_": "Missing Localizations: 6",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1260,6 +1260,8 @@
|
|||
"create.item_attributes.smokable.inverted": "no puede ser ahumado",
|
||||
"create.item_attributes.blastable": "es fundible en el alto horno",
|
||||
"create.item_attributes.blastable.inverted": "no es fundible en el alto horno",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "es shulker %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "no es shulker %1$s",
|
||||
"create.item_attributes.shulker_level.full": "lleno",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 2135",
|
||||
"_": "Missing Localizations: 2137",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -671,24 +671,24 @@
|
|||
"advancement.create.andesite_alloy": "UNLOCALIZED: Sturdier Rocks",
|
||||
"advancement.create.andesite_alloy.desc": "Certains matériaux de Create ont des noms bizzares; l'alliage d'andésite est l'un d'entre eux.",
|
||||
"advancement.create.andesite_casing": "UNLOCALIZED: The Andesite Age",
|
||||
"advancement.create.andesite_casing.desc": "UNLOCALIZED: Apply Andesite Alloy to wood creating a basic casing for your machines",
|
||||
"advancement.create.mechanical_press": "UNLOCALIZED: Bonk",
|
||||
"advancement.create.andesite_casing.desc": "UNLOCALIZED: Apply Andesite Alloy to stripped wood, creating a basic casing for your machines",
|
||||
"advancement.create.mechanical_press": "UNLOCALIZED: Bonk!",
|
||||
"advancement.create.mechanical_press.desc": "UNLOCALIZED: Create some sheets in a Mechanical Press",
|
||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind maker",
|
||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and activate an Encased Fan",
|
||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind Maker",
|
||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and power an Encased Fan",
|
||||
"advancement.create.fan_processing": "UNLOCALIZED: Processing by Particle",
|
||||
"advancement.create.fan_processing.desc": "UNLOCALIZED: Use an Encased Fan to process materials",
|
||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's most feared",
|
||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's Most Feared",
|
||||
"advancement.create.saw_processing.desc": "UNLOCALIZED: Use an upright Mechanical Saw to process materials",
|
||||
"advancement.create.compacting": "UNLOCALIZED: Compactification",
|
||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Press and a Basin to create less items from more items",
|
||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Mechanical Press and a Basin to create fewer items from more",
|
||||
"advancement.create.belt": "UNLOCALIZED: Kelp Drive",
|
||||
"advancement.create.belt.desc": "UNLOCALIZED: Connect two Shafts with a Mechanical Belt",
|
||||
"advancement.create.funnel": "UNLOCALIZED: Airport Aesthetic",
|
||||
"advancement.create.funnel.desc": "UNLOCALIZED: Extract or insert items into a container using a Funnel",
|
||||
"advancement.create.chute": "UNLOCALIZED: Vertical Logistics",
|
||||
"advancement.create.chute.desc": "UNLOCALIZED: Transport some items by Chute",
|
||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing it up",
|
||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing It Up",
|
||||
"advancement.create.mechanical_mixer.desc": "UNLOCALIZED: Combine ingredients in a Mechanical Mixer",
|
||||
"advancement.create.burner": "UNLOCALIZED: Sentient Fireplace",
|
||||
"advancement.create.burner.desc": "UNLOCALIZED: Obtain a Blaze Burner",
|
||||
|
@ -703,25 +703,25 @@
|
|||
"advancement.create.super_glue": "UNLOCALIZED: Area of Connect",
|
||||
"advancement.create.super_glue.desc": "UNLOCALIZED: Super Glue some blocks into a group",
|
||||
"advancement.create.contraption_actors": "UNLOCALIZED: Moving with Purpose",
|
||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a contraption with drills, saws or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-by exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a contraption",
|
||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted out",
|
||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's goggles and a Wrench",
|
||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a Contraption with drills, saws, or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-By Exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a Contraption",
|
||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted Out",
|
||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's Goggles and a Wrench",
|
||||
"advancement.create.stressometer": "UNLOCALIZED: Stress for Nerds",
|
||||
"advancement.create.stressometer.desc": "UNLOCALIZED: Get an exact readout with the help of Goggles and a Stressometer",
|
||||
"advancement.create.cuckoo_clock": "UNLOCALIZED: Is it Time?",
|
||||
"advancement.create.stressometer.desc": "UNLOCALIZED: Get an exact readout with the help of Engineer's Goggles and a Stressometer",
|
||||
"advancement.create.cuckoo_clock": "UNLOCALIZED: Is It Time?",
|
||||
"advancement.create.cuckoo_clock.desc": "UNLOCALIZED: Witness your Cuckoo Clock announce bedtime",
|
||||
"advancement.create.windmill_maxed": "UNLOCALIZED: A Strong Breeze",
|
||||
"advancement.create.windmill_maxed.desc": "UNLOCALIZED: Assemble a windmill of maximum strength",
|
||||
"advancement.create.ejector_maxed": "UNLOCALIZED: Springboard Champion",
|
||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched for more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.pulley_maxed": "UNLOCALIZED: Rope to Nowhere",
|
||||
"advancement.create.pulley_maxed.desc": "UNLOCALIZED: Extend a Rope Pulley over 200 blocks deep",
|
||||
"advancement.create.cart_pickup": "UNLOCALIZED: Strong Arms",
|
||||
"advancement.create.cart_pickup.desc": "UNLOCALIZED: Pick up a Minecart Contraption with at least 200 attached blocks",
|
||||
"advancement.create.anvil_plough": "UNLOCALIZED: Blacksmith Artillery",
|
||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical ploughs",
|
||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical Ploughs",
|
||||
"advancement.create.lava_wheel_00000": "UNLOCALIZED: Magma Wheel",
|
||||
"advancement.create.lava_wheel_00000.desc": "UNLOCALIZED: This shouldn't have worked§7\n(Hidden Advancement)",
|
||||
"advancement.create.hand_crank_000": "UNLOCALIZED: Workout Session",
|
||||
|
@ -730,62 +730,62 @@
|
|||
"advancement.create.belt_funnel_kiss.desc": "UNLOCALIZED: Make two Belt-mounted Funnels kiss§7\n(Hidden Advancement)",
|
||||
"advancement.create.stressometer_maxed": "UNLOCALIZED: Perfectly Stressed",
|
||||
"advancement.create.stressometer_maxed.desc": "UNLOCALIZED: Get a 100% readout from a Stressometer§7\n(Hidden Advancement)",
|
||||
"advancement.create.copper": "UNLOCALIZED: More Sturdier Rocks",
|
||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper for your exploits in Fluid Manipulation",
|
||||
"advancement.create.copper": "UNLOCALIZED: Cuprum Bokum",
|
||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper Ingots for your exploits in fluid manipulation",
|
||||
"advancement.create.copper_casing": "UNLOCALIZED: The Copper Age",
|
||||
"advancement.create.copper_casing.desc": "UNLOCALIZED: Apply Copper Ingots to wood creating a waterproof casing for your machines",
|
||||
"advancement.create.copper_casing.desc": "UNLOCALIZED: Apply Copper Ingots to stripped wood, creating a waterproof casing for your machines",
|
||||
"advancement.create.spout": "UNLOCALIZED: Sploosh",
|
||||
"advancement.create.spout.desc": "UNLOCALIZED: Watch a fluid containing item be filled using a Spout",
|
||||
"advancement.create.spout.desc": "UNLOCALIZED: Watch a fluid-containing item be filled by a Spout",
|
||||
"advancement.create.drain": "UNLOCALIZED: Tumble Draining",
|
||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid containing item be emptied by an Item Drain",
|
||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid-containing item be emptied by an Item Drain",
|
||||
"advancement.create.steam_engine": "UNLOCALIZED: The Powerhouse",
|
||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam engine to generate torque",
|
||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam Engine to generate torque",
|
||||
"advancement.create.steam_whistle": "UNLOCALIZED: Voice of an Angel",
|
||||
"advancement.create.steam_whistle.desc": "UNLOCALIZED: Activate a Steam Whistle",
|
||||
"advancement.create.backtank": "UNLOCALIZED: Pressure to Go",
|
||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a copper backtank and make it accumulate Air Pressure",
|
||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a Copper Backtank and make it accumulate air pressure",
|
||||
"advancement.create.diving_suit": "UNLOCALIZED: Ready for the Depths",
|
||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a diving helmet together with your backtank and jump into water",
|
||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a Diving Helmet and a Copper Backtank, then jump into water",
|
||||
"advancement.create.mechanical_pump_0": "UNLOCALIZED: Under Pressure",
|
||||
"advancement.create.mechanical_pump_0.desc": "UNLOCALIZED: Place and power a Mechanical Pump",
|
||||
"advancement.create.glass_pipe": "UNLOCALIZED: Flow Discovery",
|
||||
"advancement.create.glass_pipe.desc": "UNLOCALIZED: Use your Wrench on a pipe that contains a fluid",
|
||||
"advancement.create.water_supply": "UNLOCALIZED: Puddle Collector",
|
||||
"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": "UNLOCALIZED: Use the pulling end of a Fluid Pipe or Mechanical Pump to collect water",
|
||||
"advancement.create.hose_pulley": "UNLOCALIZED: Industrial Spillage",
|
||||
"advancement.create.hose_pulley.desc": "UNLOCALIZED: Lower a Hose Pulley and watch it drain or fill a body of fluid",
|
||||
"advancement.create.chocolate_bucket": "UNLOCALIZED: A World of Imagination",
|
||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a Bucket of Molten Chocolate",
|
||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a bucket of molten chocolate",
|
||||
"advancement.create.honey_drain": "UNLOCALIZED: Autonomous Bee-Keeping",
|
||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Bee House",
|
||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Beehive",
|
||||
"advancement.create.hose_pulley_lava": "UNLOCALIZED: Tapping the Mantle",
|
||||
"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": "UNLOCALIZED: Pump from a body of lava large enough to be considered infinite",
|
||||
"advancement.create.steam_engine_maxed": "UNLOCALIZED: Full Steam",
|
||||
"advancement.create.steam_engine_maxed.desc": "UNLOCALIZED: Run a boiler at the maximum level of power",
|
||||
"advancement.create.foods": "UNLOCALIZED: Balanced Diet",
|
||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Berries, a Honeyed Apple and a Sweet Roll; all from the same Spout",
|
||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Glazed Berries, a Honeyed Apple, and a Sweet Roll all from the same Spout",
|
||||
"advancement.create.diving_suit_lava": "UNLOCALIZED: Swimming with the Striders",
|
||||
"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": "UNLOCALIZED: Attempt to take a dive in lava with your diving gear§7\n(Hidden Advancement)",
|
||||
"advancement.create.chained_drain": "UNLOCALIZED: On a Roll",
|
||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an Item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't cross the Streams!",
|
||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't Cross the Streams!",
|
||||
"advancement.create.cross_streams.desc": "UNLOCALIZED: Watch two fluids meet in your pipe network§7\n(Hidden Advancement)",
|
||||
"advancement.create.pipe_organ": "UNLOCALIZED: The Pipe Organ",
|
||||
"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": "UNLOCALIZED: Attach 12 uniquely pitched Steam Whistles to a single Fluid Tank§7\n(Hidden Advancement)",
|
||||
"advancement.create.brass": "UNLOCALIZED: Real Alloys",
|
||||
"advancement.create.brass.desc": "UNLOCALIZED: Create some Brass from Copper and Zinc ingots in your Blaze-powered Mixer",
|
||||
"advancement.create.brass.desc": "UNLOCALIZED: Create Brass Ingots by alloying Copper and Zinc Ingots in your Blaze-heated Mechanical Mixer",
|
||||
"advancement.create.brass_casing": "UNLOCALIZED: The Brass Age",
|
||||
"advancement.create.brass_casing.desc": "UNLOCALIZED: Apply Brass Ingots to wood creating a casing for more sophisticated machines",
|
||||
"advancement.create.brass_casing.desc": "UNLOCALIZED: Apply Brass Ingots to stripped wood, creating a casing for more sophisticated machines",
|
||||
"advancement.create.rose_quartz": "UNLOCALIZED: Pink Diamonds",
|
||||
"advancement.create.rose_quartz.desc": "UNLOCALIZED: Polish some Rose Quartz",
|
||||
"advancement.create.deployer": "UNLOCALIZED: Artificial Intelligence",
|
||||
"advancement.create.deployer.desc": "UNLOCALIZED: Place and activate a Deployer, the perfect reflection of yourself",
|
||||
"advancement.create.deployer.desc": "UNLOCALIZED: Place and power a Deployer, the perfect reflection of yourself",
|
||||
"advancement.create.precision_mechanism": "UNLOCALIZED: Complex Curiosities",
|
||||
"advancement.create.precision_mechanism.desc": "UNLOCALIZED: Assemble a Precision Mechanism",
|
||||
"advancement.create.speed_controller": "UNLOCALIZED: Engineers Hate Him!",
|
||||
"advancement.create.speed_controller.desc": "UNLOCALIZED: Fine tune your contraption with a Rotation Speed Controller",
|
||||
"advancement.create.speed_controller.desc": "UNLOCALIZED: Fine-tune your Contraption with a Rotation Speed Controller",
|
||||
"advancement.create.mechanical_arm": "UNLOCALIZED: Busy Hands",
|
||||
"advancement.create.mechanical_arm.desc": "UNLOCALIZED: Watch your Mechanical Arm transport its first Item",
|
||||
"advancement.create.mechanical_arm.desc": "UNLOCALIZED: Watch your Mechanical Arm transport its first item",
|
||||
"advancement.create.mechanical_crafter": "UNLOCALIZED: Automated Assembly",
|
||||
"advancement.create.mechanical_crafter.desc": "UNLOCALIZED: Place and power some Mechanical Crafters",
|
||||
"advancement.create.crushing_wheel": "UNLOCALIZED: A Pair of Giants",
|
||||
|
@ -795,7 +795,7 @@
|
|||
"advancement.create.clockwork_bearing": "UNLOCALIZED: Contraption O'Clock",
|
||||
"advancement.create.clockwork_bearing.desc": "UNLOCALIZED: Assemble a structure mounted on a Clockwork Bearing",
|
||||
"advancement.create.display_link": "UNLOCALIZED: Big Data",
|
||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display link to visualise information",
|
||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display Link to visualise information",
|
||||
"advancement.create.potato_cannon": "UNLOCALIZED: Fwoomp!",
|
||||
"advancement.create.potato_cannon.desc": "UNLOCALIZED: Defeat an enemy with your Potato Cannon",
|
||||
"advancement.create.extendo_grip": "UNLOCALIZED: Boioioing!",
|
||||
|
@ -804,54 +804,54 @@
|
|||
"advancement.create.linked_controller.desc": "UNLOCALIZED: Activate a Redstone Link using a Linked Controller",
|
||||
"advancement.create.arm_blaze_burner": "UNLOCALIZED: Combust-o-Tron",
|
||||
"advancement.create.arm_blaze_burner.desc": "UNLOCALIZED: Instruct a Mechanical Arm to feed your Blaze Burner",
|
||||
"advancement.create.crusher_maxed_0000": "UNLOCALIZED: Crushing it",
|
||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a Pair of Crushing wheels at max speed",
|
||||
"advancement.create.crusher_maxed_0000": "UNLOCALIZED: Crushing It",
|
||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a pair of Crushing Wheels at maximum speed",
|
||||
"advancement.create.arm_many_targets": "UNLOCALIZED: Organize-o-Tron",
|
||||
"advancement.create.arm_many_targets.desc": "UNLOCALIZED: Program a Mechanical Arm with ten or more output locations",
|
||||
"advancement.create.arm_many_targets.desc": "UNLOCALIZED: Program a Mechanical Arm with 10 or more output locations",
|
||||
"advancement.create.potato_cannon_collide": "UNLOCALIZED: Veggie Fireworks",
|
||||
"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": "UNLOCALIZED: Cause Potato Cannon projectiles of different types to collide with each other",
|
||||
"advancement.create.self_deploying": "UNLOCALIZED: Self-Driving Cart",
|
||||
"advancement.create.self_deploying.desc": "UNLOCALIZED: Create a Minecart Contraption that places tracks in front of itself",
|
||||
"advancement.create.fist_bump": "UNLOCALIZED: Pound It, Bro!",
|
||||
"advancement.create.fist_bump.desc": "UNLOCALIZED: Make two Deployers fist-bump§7\n(Hidden Advancement)",
|
||||
"advancement.create.crafter_lazy_000": "UNLOCALIZED: Desperate Measures",
|
||||
"advancement.create.crafter_lazy_000.desc": "UNLOCALIZED: Drastically slow down a Mechanical Crafter to procrastinate on proper infrastructure§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual wield Extendo Grips for super-human reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To Full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual-wield Extendo Grips for superhuman reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.musical_arm": "UNLOCALIZED: DJ Mechanico",
|
||||
"advancement.create.musical_arm.desc": "UNLOCALIZED: Watch a Mechanical Arm operate your Jukebox§7\n(Hidden Advancement)",
|
||||
"advancement.create.sturdy_sheet": "UNLOCALIZED: The Sturdiest Rocks",
|
||||
"advancement.create.sturdy_sheet.desc": "UNLOCALIZED: Assemble a Sturdy Sheet from refining crushed Obsidian",
|
||||
"advancement.create.sturdy_sheet.desc": "UNLOCALIZED: Assemble a Sturdy Sheet by refining Powdered Obsidian",
|
||||
"advancement.create.train_casing_00": "UNLOCALIZED: The Logistical Age",
|
||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a Casing for Railway Components",
|
||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a casing for railway components",
|
||||
"advancement.create.train": "UNLOCALIZED: All Aboard!",
|
||||
"advancement.create.train.desc": "UNLOCALIZED: Assemble your first Train",
|
||||
"advancement.create.conductor": "UNLOCALIZED: Conductor Instructor",
|
||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Schedule",
|
||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Train Schedule",
|
||||
"advancement.create.track_signal": "UNLOCALIZED: Traffic Control",
|
||||
"advancement.create.track_signal.desc": "UNLOCALIZED: Place a Train Signal",
|
||||
"advancement.create.display_board_0": "UNLOCALIZED: Dynamic Timetables",
|
||||
"advancement.create.display_board_0.desc": "UNLOCALIZED: Forecast a Train's arrival on your Display Board with the help of Display Links",
|
||||
"advancement.create.track_0": "UNLOCALIZED: A new Gauge",
|
||||
"advancement.create.track_0": "UNLOCALIZED: A New Gauge",
|
||||
"advancement.create.track_0.desc": "UNLOCALIZED: Obtain some Train Tracks",
|
||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo choo!",
|
||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo Choo!",
|
||||
"advancement.create.train_whistle.desc": "UNLOCALIZED: Assemble a Steam Whistle to your Train and activate it while driving",
|
||||
"advancement.create.train_portal": "UNLOCALIZED: Dimensional Commuter",
|
||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a train through a Nether Portal",
|
||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a Train through a Nether portal",
|
||||
"advancement.create.track_crafting_factory": "UNLOCALIZED: Track Factory",
|
||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 train tracks in the same Mechanical Press",
|
||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 Train Tracks with the same Mechanical Press",
|
||||
"advancement.create.long_bend": "UNLOCALIZED: The Longest Bend",
|
||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a Curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_train": "UNLOCALIZED: Ambitious Endeavours",
|
||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least six Carriages",
|
||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least 6 carriages",
|
||||
"advancement.create.long_travel": "UNLOCALIZED: Field Trip",
|
||||
"advancement.create.long_travel.desc": "UNLOCALIZED: Leave a Train Seat over 5000 blocks away from where you started travelling",
|
||||
"advancement.create.train_roadkill": "UNLOCALIZED: Road Kill",
|
||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an Enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal": "UNLOCALIZED: Expert Driver",
|
||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a Red Signal with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a red Train Signal§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash": "UNLOCALIZED: Terrible Service",
|
||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train Crash as a Passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train crash as a passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash_backwards": "UNLOCALIZED: Blind Spot",
|
||||
"advancement.create.train_crash_backwards.desc": "UNLOCALIZED: Crash into another Train while driving backwards§7\n(Hidden Advancement)",
|
||||
|
||||
|
@ -1260,6 +1260,8 @@
|
|||
"create.item_attributes.smokable.inverted": "ne peut pas être fumé",
|
||||
"create.item_attributes.blastable": "est fondable dans un Haut fourneau",
|
||||
"create.item_attributes.blastable.inverted": "n'est pas fondable dans un Haut fourneau",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
||||
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 4",
|
||||
"_": "Missing Localizations: 6",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1260,6 +1260,8 @@
|
|||
"create.item_attributes.smokable.inverted": "non può essere affumicato",
|
||||
"create.item_attributes.blastable": "è fondibile in un forno fusorio",
|
||||
"create.item_attributes.blastable.inverted": "non è fondibile in un forno fusorio",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "è uno shulker %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "non è uno shulker %1$s",
|
||||
"create.item_attributes.shulker_level.full": "pieno",
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 4",
|
||||
"_": "Missing Localizations: 6",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1260,6 +1260,8 @@
|
|||
"create.item_attributes.smokable.inverted": "훈연될 수 없음",
|
||||
"create.item_attributes.blastable": "용광로에 녹일 수 있음",
|
||||
"create.item_attributes.blastable.inverted": "용광로에 녹일 수 없음",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "셜커가 %1$s있음",
|
||||
"create.item_attributes.shulker_level.inverted": "셜커가 %1$s있지 않음",
|
||||
"create.item_attributes.shulker_level.full": "가득 차",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 2483",
|
||||
"_": "Missing Localizations: 2485",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -667,28 +667,28 @@
|
|||
"_": "->------------------------] Advancements [------------------------<-",
|
||||
|
||||
"advancement.create.root": "UNLOCALIZED: Welcome to Create",
|
||||
"advancement.create.root.desc": "UNLOCALIZED: Here be Contraptions",
|
||||
"advancement.create.root.desc": "UNLOCALIZED: Here Be Contraptions",
|
||||
"advancement.create.andesite_alloy": "UNLOCALIZED: Sturdier Rocks",
|
||||
"advancement.create.andesite_alloy.desc": "UNLOCALIZED: Obtain some Andesite Alloy, Create's most important resource",
|
||||
"advancement.create.andesite_casing": "UNLOCALIZED: The Andesite Age",
|
||||
"advancement.create.andesite_casing.desc": "UNLOCALIZED: Apply Andesite Alloy to wood creating a basic casing for your machines",
|
||||
"advancement.create.mechanical_press": "UNLOCALIZED: Bonk",
|
||||
"advancement.create.andesite_casing.desc": "UNLOCALIZED: Apply Andesite Alloy to stripped wood, creating a basic casing for your machines",
|
||||
"advancement.create.mechanical_press": "UNLOCALIZED: Bonk!",
|
||||
"advancement.create.mechanical_press.desc": "UNLOCALIZED: Create some sheets in a Mechanical Press",
|
||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind maker",
|
||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and activate an Encased Fan",
|
||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind Maker",
|
||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and power an Encased Fan",
|
||||
"advancement.create.fan_processing": "UNLOCALIZED: Processing by Particle",
|
||||
"advancement.create.fan_processing.desc": "UNLOCALIZED: Use an Encased Fan to process materials",
|
||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's most feared",
|
||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's Most Feared",
|
||||
"advancement.create.saw_processing.desc": "UNLOCALIZED: Use an upright Mechanical Saw to process materials",
|
||||
"advancement.create.compacting": "UNLOCALIZED: Compactification",
|
||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Press and a Basin to create less items from more items",
|
||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Mechanical Press and a Basin to create fewer items from more",
|
||||
"advancement.create.belt": "UNLOCALIZED: Kelp Drive",
|
||||
"advancement.create.belt.desc": "UNLOCALIZED: Connect two Shafts with a Mechanical Belt",
|
||||
"advancement.create.funnel": "UNLOCALIZED: Airport Aesthetic",
|
||||
"advancement.create.funnel.desc": "UNLOCALIZED: Extract or insert items into a container using a Funnel",
|
||||
"advancement.create.chute": "UNLOCALIZED: Vertical Logistics",
|
||||
"advancement.create.chute.desc": "UNLOCALIZED: Transport some items by Chute",
|
||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing it up",
|
||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing It Up",
|
||||
"advancement.create.mechanical_mixer.desc": "UNLOCALIZED: Combine ingredients in a Mechanical Mixer",
|
||||
"advancement.create.burner": "UNLOCALIZED: Sentient Fireplace",
|
||||
"advancement.create.burner.desc": "UNLOCALIZED: Obtain a Blaze Burner",
|
||||
|
@ -703,25 +703,25 @@
|
|||
"advancement.create.super_glue": "UNLOCALIZED: Area of Connect",
|
||||
"advancement.create.super_glue.desc": "UNLOCALIZED: Super Glue some blocks into a group",
|
||||
"advancement.create.contraption_actors": "UNLOCALIZED: Moving with Purpose",
|
||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a contraption with drills, saws or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-by exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a contraption",
|
||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted out",
|
||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's goggles and a Wrench",
|
||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a Contraption with drills, saws, or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-By Exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a Contraption",
|
||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted Out",
|
||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's Goggles and a Wrench",
|
||||
"advancement.create.stressometer": "UNLOCALIZED: Stress for Nerds",
|
||||
"advancement.create.stressometer.desc": "UNLOCALIZED: Get an exact readout with the help of Goggles and a Stressometer",
|
||||
"advancement.create.cuckoo_clock": "UNLOCALIZED: Is it Time?",
|
||||
"advancement.create.stressometer.desc": "UNLOCALIZED: Get an exact readout with the help of Engineer's Goggles and a Stressometer",
|
||||
"advancement.create.cuckoo_clock": "UNLOCALIZED: Is It Time?",
|
||||
"advancement.create.cuckoo_clock.desc": "UNLOCALIZED: Witness your Cuckoo Clock announce bedtime",
|
||||
"advancement.create.windmill_maxed": "UNLOCALIZED: A Strong Breeze",
|
||||
"advancement.create.windmill_maxed.desc": "UNLOCALIZED: Assemble a windmill of maximum strength",
|
||||
"advancement.create.ejector_maxed": "UNLOCALIZED: Springboard Champion",
|
||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched for more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.pulley_maxed": "UNLOCALIZED: Rope to Nowhere",
|
||||
"advancement.create.pulley_maxed.desc": "UNLOCALIZED: Extend a Rope Pulley over 200 blocks deep",
|
||||
"advancement.create.cart_pickup": "UNLOCALIZED: Strong Arms",
|
||||
"advancement.create.cart_pickup.desc": "UNLOCALIZED: Pick up a Minecart Contraption with at least 200 attached blocks",
|
||||
"advancement.create.anvil_plough": "UNLOCALIZED: Blacksmith Artillery",
|
||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical ploughs",
|
||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical Ploughs",
|
||||
"advancement.create.lava_wheel_00000": "UNLOCALIZED: Magma Wheel",
|
||||
"advancement.create.lava_wheel_00000.desc": "UNLOCALIZED: This shouldn't have worked§7\n(Hidden Advancement)",
|
||||
"advancement.create.hand_crank_000": "UNLOCALIZED: Workout Session",
|
||||
|
@ -730,62 +730,62 @@
|
|||
"advancement.create.belt_funnel_kiss.desc": "UNLOCALIZED: Make two Belt-mounted Funnels kiss§7\n(Hidden Advancement)",
|
||||
"advancement.create.stressometer_maxed": "UNLOCALIZED: Perfectly Stressed",
|
||||
"advancement.create.stressometer_maxed.desc": "UNLOCALIZED: Get a 100% readout from a Stressometer§7\n(Hidden Advancement)",
|
||||
"advancement.create.copper": "UNLOCALIZED: More Sturdier Rocks",
|
||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper for your exploits in Fluid Manipulation",
|
||||
"advancement.create.copper": "UNLOCALIZED: Cuprum Bokum",
|
||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper Ingots for your exploits in fluid manipulation",
|
||||
"advancement.create.copper_casing": "UNLOCALIZED: The Copper Age",
|
||||
"advancement.create.copper_casing.desc": "UNLOCALIZED: Apply Copper Ingots to wood creating a waterproof casing for your machines",
|
||||
"advancement.create.copper_casing.desc": "UNLOCALIZED: Apply Copper Ingots to stripped wood, creating a waterproof casing for your machines",
|
||||
"advancement.create.spout": "UNLOCALIZED: Sploosh",
|
||||
"advancement.create.spout.desc": "UNLOCALIZED: Watch a fluid containing item be filled using a Spout",
|
||||
"advancement.create.spout.desc": "UNLOCALIZED: Watch a fluid-containing item be filled by a Spout",
|
||||
"advancement.create.drain": "UNLOCALIZED: Tumble Draining",
|
||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid containing item be emptied by an Item Drain",
|
||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid-containing item be emptied by an Item Drain",
|
||||
"advancement.create.steam_engine": "UNLOCALIZED: The Powerhouse",
|
||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam engine to generate torque",
|
||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam Engine to generate torque",
|
||||
"advancement.create.steam_whistle": "UNLOCALIZED: Voice of an Angel",
|
||||
"advancement.create.steam_whistle.desc": "UNLOCALIZED: Activate a Steam Whistle",
|
||||
"advancement.create.backtank": "UNLOCALIZED: Pressure to Go",
|
||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a copper backtank and make it accumulate Air Pressure",
|
||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a Copper Backtank and make it accumulate air pressure",
|
||||
"advancement.create.diving_suit": "UNLOCALIZED: Ready for the Depths",
|
||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a diving helmet together with your backtank and jump into water",
|
||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a Diving Helmet and a Copper Backtank, then jump into water",
|
||||
"advancement.create.mechanical_pump_0": "UNLOCALIZED: Under Pressure",
|
||||
"advancement.create.mechanical_pump_0.desc": "UNLOCALIZED: Place and power a Mechanical Pump",
|
||||
"advancement.create.glass_pipe": "UNLOCALIZED: Flow Discovery",
|
||||
"advancement.create.glass_pipe.desc": "UNLOCALIZED: Use your Wrench on a pipe that contains a fluid",
|
||||
"advancement.create.water_supply": "UNLOCALIZED: Puddle Collector",
|
||||
"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": "UNLOCALIZED: Use the pulling end of a Fluid Pipe or Mechanical Pump to collect water",
|
||||
"advancement.create.hose_pulley": "UNLOCALIZED: Industrial Spillage",
|
||||
"advancement.create.hose_pulley.desc": "UNLOCALIZED: Lower a Hose Pulley and watch it drain or fill a body of fluid",
|
||||
"advancement.create.chocolate_bucket": "UNLOCALIZED: A World of Imagination",
|
||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a Bucket of Molten Chocolate",
|
||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a bucket of molten chocolate",
|
||||
"advancement.create.honey_drain": "UNLOCALIZED: Autonomous Bee-Keeping",
|
||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Bee House",
|
||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Beehive",
|
||||
"advancement.create.hose_pulley_lava": "UNLOCALIZED: Tapping the Mantle",
|
||||
"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": "UNLOCALIZED: Pump from a body of lava large enough to be considered infinite",
|
||||
"advancement.create.steam_engine_maxed": "UNLOCALIZED: Full Steam",
|
||||
"advancement.create.steam_engine_maxed.desc": "UNLOCALIZED: Run a boiler at the maximum level of power",
|
||||
"advancement.create.foods": "UNLOCALIZED: Balanced Diet",
|
||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Berries, a Honeyed Apple and a Sweet Roll; all from the same Spout",
|
||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Glazed Berries, a Honeyed Apple, and a Sweet Roll all from the same Spout",
|
||||
"advancement.create.diving_suit_lava": "UNLOCALIZED: Swimming with the Striders",
|
||||
"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": "UNLOCALIZED: Attempt to take a dive in lava with your diving gear§7\n(Hidden Advancement)",
|
||||
"advancement.create.chained_drain": "UNLOCALIZED: On a Roll",
|
||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an Item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't cross the Streams!",
|
||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't Cross the Streams!",
|
||||
"advancement.create.cross_streams.desc": "UNLOCALIZED: Watch two fluids meet in your pipe network§7\n(Hidden Advancement)",
|
||||
"advancement.create.pipe_organ": "UNLOCALIZED: The Pipe Organ",
|
||||
"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": "UNLOCALIZED: Attach 12 uniquely pitched Steam Whistles to a single Fluid Tank§7\n(Hidden Advancement)",
|
||||
"advancement.create.brass": "UNLOCALIZED: Real Alloys",
|
||||
"advancement.create.brass.desc": "UNLOCALIZED: Create some Brass from Copper and Zinc ingots in your Blaze-powered Mixer",
|
||||
"advancement.create.brass.desc": "UNLOCALIZED: Create Brass Ingots by alloying Copper and Zinc Ingots in your Blaze-heated Mechanical Mixer",
|
||||
"advancement.create.brass_casing": "UNLOCALIZED: The Brass Age",
|
||||
"advancement.create.brass_casing.desc": "UNLOCALIZED: Apply Brass Ingots to wood creating a casing for more sophisticated machines",
|
||||
"advancement.create.brass_casing.desc": "UNLOCALIZED: Apply Brass Ingots to stripped wood, creating a casing for more sophisticated machines",
|
||||
"advancement.create.rose_quartz": "UNLOCALIZED: Pink Diamonds",
|
||||
"advancement.create.rose_quartz.desc": "UNLOCALIZED: Polish some Rose Quartz",
|
||||
"advancement.create.deployer": "UNLOCALIZED: Artificial Intelligence",
|
||||
"advancement.create.deployer.desc": "UNLOCALIZED: Place and activate a Deployer, the perfect reflection of yourself",
|
||||
"advancement.create.deployer.desc": "UNLOCALIZED: Place and power a Deployer, the perfect reflection of yourself",
|
||||
"advancement.create.precision_mechanism": "UNLOCALIZED: Complex Curiosities",
|
||||
"advancement.create.precision_mechanism.desc": "UNLOCALIZED: Assemble a Precision Mechanism",
|
||||
"advancement.create.speed_controller": "UNLOCALIZED: Engineers Hate Him!",
|
||||
"advancement.create.speed_controller.desc": "UNLOCALIZED: Fine tune your contraption with a Rotation Speed Controller",
|
||||
"advancement.create.speed_controller.desc": "UNLOCALIZED: Fine-tune your Contraption with a Rotation Speed Controller",
|
||||
"advancement.create.mechanical_arm": "UNLOCALIZED: Busy Hands",
|
||||
"advancement.create.mechanical_arm.desc": "UNLOCALIZED: Watch your Mechanical Arm transport its first Item",
|
||||
"advancement.create.mechanical_arm.desc": "UNLOCALIZED: Watch your Mechanical Arm transport its first item",
|
||||
"advancement.create.mechanical_crafter": "UNLOCALIZED: Automated Assembly",
|
||||
"advancement.create.mechanical_crafter.desc": "UNLOCALIZED: Place and power some Mechanical Crafters",
|
||||
"advancement.create.crushing_wheel": "UNLOCALIZED: A Pair of Giants",
|
||||
|
@ -795,7 +795,7 @@
|
|||
"advancement.create.clockwork_bearing": "UNLOCALIZED: Contraption O'Clock",
|
||||
"advancement.create.clockwork_bearing.desc": "UNLOCALIZED: Assemble a structure mounted on a Clockwork Bearing",
|
||||
"advancement.create.display_link": "UNLOCALIZED: Big Data",
|
||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display link to visualise information",
|
||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display Link to visualise information",
|
||||
"advancement.create.potato_cannon": "UNLOCALIZED: Fwoomp!",
|
||||
"advancement.create.potato_cannon.desc": "UNLOCALIZED: Defeat an enemy with your Potato Cannon",
|
||||
"advancement.create.extendo_grip": "UNLOCALIZED: Boioioing!",
|
||||
|
@ -804,54 +804,54 @@
|
|||
"advancement.create.linked_controller.desc": "UNLOCALIZED: Activate a Redstone Link using a Linked Controller",
|
||||
"advancement.create.arm_blaze_burner": "UNLOCALIZED: Combust-o-Tron",
|
||||
"advancement.create.arm_blaze_burner.desc": "UNLOCALIZED: Instruct a Mechanical Arm to feed your Blaze Burner",
|
||||
"advancement.create.crusher_maxed_0000": "UNLOCALIZED: Crushing it",
|
||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a Pair of Crushing wheels at max speed",
|
||||
"advancement.create.crusher_maxed_0000": "UNLOCALIZED: Crushing It",
|
||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a pair of Crushing Wheels at maximum speed",
|
||||
"advancement.create.arm_many_targets": "UNLOCALIZED: Organize-o-Tron",
|
||||
"advancement.create.arm_many_targets.desc": "UNLOCALIZED: Program a Mechanical Arm with ten or more output locations",
|
||||
"advancement.create.arm_many_targets.desc": "UNLOCALIZED: Program a Mechanical Arm with 10 or more output locations",
|
||||
"advancement.create.potato_cannon_collide": "UNLOCALIZED: Veggie Fireworks",
|
||||
"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": "UNLOCALIZED: Cause Potato Cannon projectiles of different types to collide with each other",
|
||||
"advancement.create.self_deploying": "UNLOCALIZED: Self-Driving Cart",
|
||||
"advancement.create.self_deploying.desc": "UNLOCALIZED: Create a Minecart Contraption that places tracks in front of itself",
|
||||
"advancement.create.fist_bump": "UNLOCALIZED: Pound It, Bro!",
|
||||
"advancement.create.fist_bump.desc": "UNLOCALIZED: Make two Deployers fist-bump§7\n(Hidden Advancement)",
|
||||
"advancement.create.crafter_lazy_000": "UNLOCALIZED: Desperate Measures",
|
||||
"advancement.create.crafter_lazy_000.desc": "UNLOCALIZED: Drastically slow down a Mechanical Crafter to procrastinate on proper infrastructure§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual wield Extendo Grips for super-human reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To Full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual-wield Extendo Grips for superhuman reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.musical_arm": "UNLOCALIZED: DJ Mechanico",
|
||||
"advancement.create.musical_arm.desc": "UNLOCALIZED: Watch a Mechanical Arm operate your Jukebox§7\n(Hidden Advancement)",
|
||||
"advancement.create.sturdy_sheet": "UNLOCALIZED: The Sturdiest Rocks",
|
||||
"advancement.create.sturdy_sheet.desc": "UNLOCALIZED: Assemble a Sturdy Sheet from refining crushed Obsidian",
|
||||
"advancement.create.sturdy_sheet.desc": "UNLOCALIZED: Assemble a Sturdy Sheet by refining Powdered Obsidian",
|
||||
"advancement.create.train_casing_00": "UNLOCALIZED: The Logistical Age",
|
||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a Casing for Railway Components",
|
||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a casing for railway components",
|
||||
"advancement.create.train": "UNLOCALIZED: All Aboard!",
|
||||
"advancement.create.train.desc": "UNLOCALIZED: Assemble your first Train",
|
||||
"advancement.create.conductor": "UNLOCALIZED: Conductor Instructor",
|
||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Schedule",
|
||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Train Schedule",
|
||||
"advancement.create.track_signal": "UNLOCALIZED: Traffic Control",
|
||||
"advancement.create.track_signal.desc": "UNLOCALIZED: Place a Train Signal",
|
||||
"advancement.create.display_board_0": "UNLOCALIZED: Dynamic Timetables",
|
||||
"advancement.create.display_board_0.desc": "UNLOCALIZED: Forecast a Train's arrival on your Display Board with the help of Display Links",
|
||||
"advancement.create.track_0": "UNLOCALIZED: A new Gauge",
|
||||
"advancement.create.track_0": "UNLOCALIZED: A New Gauge",
|
||||
"advancement.create.track_0.desc": "UNLOCALIZED: Obtain some Train Tracks",
|
||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo choo!",
|
||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo Choo!",
|
||||
"advancement.create.train_whistle.desc": "UNLOCALIZED: Assemble a Steam Whistle to your Train and activate it while driving",
|
||||
"advancement.create.train_portal": "UNLOCALIZED: Dimensional Commuter",
|
||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a train through a Nether Portal",
|
||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a Train through a Nether portal",
|
||||
"advancement.create.track_crafting_factory": "UNLOCALIZED: Track Factory",
|
||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 train tracks in the same Mechanical Press",
|
||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 Train Tracks with the same Mechanical Press",
|
||||
"advancement.create.long_bend": "UNLOCALIZED: The Longest Bend",
|
||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a Curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_train": "UNLOCALIZED: Ambitious Endeavours",
|
||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least six Carriages",
|
||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least 6 carriages",
|
||||
"advancement.create.long_travel": "UNLOCALIZED: Field Trip",
|
||||
"advancement.create.long_travel.desc": "UNLOCALIZED: Leave a Train Seat over 5000 blocks away from where you started travelling",
|
||||
"advancement.create.train_roadkill": "UNLOCALIZED: Road Kill",
|
||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an Enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal": "UNLOCALIZED: Expert Driver",
|
||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a Red Signal with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a red Train Signal§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash": "UNLOCALIZED: Terrible Service",
|
||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train Crash as a Passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train crash as a passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash_backwards": "UNLOCALIZED: Blind Spot",
|
||||
"advancement.create.train_crash_backwards.desc": "UNLOCALIZED: Crash into another Train while driving backwards§7\n(Hidden Advancement)",
|
||||
|
||||
|
@ -1258,8 +1258,10 @@
|
|||
"create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted",
|
||||
"create.item_attributes.smokable": "UNLOCALIZED: can be Smoked",
|
||||
"create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked",
|
||||
"create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace",
|
||||
"create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace",
|
||||
"create.item_attributes.blastable": "UNLOCALIZED: can be Smelted in a Blast Furnace",
|
||||
"create.item_attributes.blastable.inverted": "UNLOCALIZED: cannot be Smelted in a Blast Furnace",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
||||
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 8",
|
||||
"_": "Missing Localizations: 10",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1260,6 +1260,8 @@
|
|||
"create.item_attributes.smokable.inverted": "nie może być wędzony",
|
||||
"create.item_attributes.blastable": "może być stopiony w piecu hutniczym",
|
||||
"create.item_attributes.blastable.inverted": "nie może być stopiony w piecu hutniczym",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "jest %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "nie jest %1$s",
|
||||
"create.item_attributes.shulker_level.full": "pełna",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1327",
|
||||
"_": "Missing Localizations: 1329",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1260,6 +1260,8 @@
|
|||
"create.item_attributes.smokable.inverted": "Não pode ser defumado",
|
||||
"create.item_attributes.blastable": "È fundível no alto-forno",
|
||||
"create.item_attributes.blastable.inverted": "Não é fundível no alto-forno",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "O shulker é %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "O shulker não é %1$s",
|
||||
"create.item_attributes.shulker_level.full": "Cheio",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 2192",
|
||||
"_": "Missing Localizations: 2194",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -672,23 +672,23 @@
|
|||
"advancement.create.andesite_alloy.desc": "Materiais do Create tem nomes estranhos, a liga de andesito é um deles.",
|
||||
"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.mechanical_press": "UNLOCALIZED: Bonk",
|
||||
"advancement.create.mechanical_press": "UNLOCALIZED: Bonk!",
|
||||
"advancement.create.mechanical_press.desc": "UNLOCALIZED: Create some sheets in a Mechanical Press",
|
||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind maker",
|
||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and activate an Encased Fan",
|
||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind Maker",
|
||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and power an Encased Fan",
|
||||
"advancement.create.fan_processing": "UNLOCALIZED: Processing by Particle",
|
||||
"advancement.create.fan_processing.desc": "UNLOCALIZED: Use an Encased Fan to process materials",
|
||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's most feared",
|
||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's Most Feared",
|
||||
"advancement.create.saw_processing.desc": "UNLOCALIZED: Use an upright Mechanical Saw to process materials",
|
||||
"advancement.create.compacting": "UNLOCALIZED: Compactification",
|
||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Press and a Basin to create less items from more items",
|
||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Mechanical Press and a Basin to create fewer items from more",
|
||||
"advancement.create.belt": "Correia de alga",
|
||||
"advancement.create.belt.desc": "Conecte dois eixos com uma esteira mecanica.",
|
||||
"advancement.create.funnel": "UNLOCALIZED: Airport Aesthetic",
|
||||
"advancement.create.funnel.desc": "UNLOCALIZED: Extract or insert items into a container using a Funnel",
|
||||
"advancement.create.chute": "Caindo",
|
||||
"advancement.create.chute.desc": "coloque uma calha a versão vertical da esteira mecanica.",
|
||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing it up",
|
||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing It Up",
|
||||
"advancement.create.mechanical_mixer.desc": "UNLOCALIZED: Combine ingredients in a Mechanical Mixer",
|
||||
"advancement.create.burner": "UNLOCALIZED: Sentient Fireplace",
|
||||
"advancement.create.burner.desc": "UNLOCALIZED: Obtain a Blaze Burner",
|
||||
|
@ -703,25 +703,25 @@
|
|||
"advancement.create.super_glue": "UNLOCALIZED: Area of Connect",
|
||||
"advancement.create.super_glue.desc": "UNLOCALIZED: Super Glue some blocks into a group",
|
||||
"advancement.create.contraption_actors": "UNLOCALIZED: Moving with Purpose",
|
||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a contraption with drills, saws or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-by exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a contraption",
|
||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted out",
|
||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's goggles and a Wrench",
|
||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a Contraption with drills, saws, or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-By Exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a Contraption",
|
||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted Out",
|
||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's Goggles and a Wrench",
|
||||
"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.cuckoo_clock": "UNLOCALIZED: Is it Time?",
|
||||
"advancement.create.cuckoo_clock": "UNLOCALIZED: Is It Time?",
|
||||
"advancement.create.cuckoo_clock.desc": "UNLOCALIZED: Witness your Cuckoo Clock announce bedtime",
|
||||
"advancement.create.windmill_maxed": "UNLOCALIZED: A Strong Breeze",
|
||||
"advancement.create.windmill_maxed.desc": "UNLOCALIZED: Assemble a windmill of maximum strength",
|
||||
"advancement.create.ejector_maxed": "UNLOCALIZED: Springboard Champion",
|
||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched for more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.pulley_maxed": "UNLOCALIZED: Rope to Nowhere",
|
||||
"advancement.create.pulley_maxed.desc": "UNLOCALIZED: Extend a Rope Pulley over 200 blocks deep",
|
||||
"advancement.create.cart_pickup": "UNLOCALIZED: Strong Arms",
|
||||
"advancement.create.cart_pickup.desc": "UNLOCALIZED: Pick up a Minecart Contraption with at least 200 attached blocks",
|
||||
"advancement.create.anvil_plough": "UNLOCALIZED: Blacksmith Artillery",
|
||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical ploughs",
|
||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical Ploughs",
|
||||
"advancement.create.lava_wheel_00000": "UNLOCALIZED: Magma Wheel",
|
||||
"advancement.create.lava_wheel_00000.desc": "UNLOCALIZED: This shouldn't have worked§7\n(Hidden Advancement)",
|
||||
"advancement.create.hand_crank_000": "UNLOCALIZED: Workout Session",
|
||||
|
@ -730,48 +730,48 @@
|
|||
"advancement.create.belt_funnel_kiss.desc": "UNLOCALIZED: Make two Belt-mounted Funnels kiss§7\n(Hidden Advancement)",
|
||||
"advancement.create.stressometer_maxed": "UNLOCALIZED: Perfectly Stressed",
|
||||
"advancement.create.stressometer_maxed.desc": "UNLOCALIZED: Get a 100% readout from a Stressometer§7\n(Hidden Advancement)",
|
||||
"advancement.create.copper": "UNLOCALIZED: More Sturdier Rocks",
|
||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper for your exploits in Fluid Manipulation",
|
||||
"advancement.create.copper": "UNLOCALIZED: Cuprum Bokum",
|
||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper Ingots for your exploits in fluid manipulation",
|
||||
"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.spout": "Sploosh",
|
||||
"advancement.create.spout.desc": "Assista um item ser enchido usando uma bica.",
|
||||
"advancement.create.drain": "UNLOCALIZED: Tumble Draining",
|
||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid containing item be emptied by an Item Drain",
|
||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid-containing item be emptied by an Item Drain",
|
||||
"advancement.create.steam_engine": "UNLOCALIZED: The Powerhouse",
|
||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam engine to generate torque",
|
||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam Engine to generate torque",
|
||||
"advancement.create.steam_whistle": "UNLOCALIZED: Voice of an Angel",
|
||||
"advancement.create.steam_whistle.desc": "UNLOCALIZED: Activate a Steam Whistle",
|
||||
"advancement.create.backtank": "UNLOCALIZED: Pressure to Go",
|
||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a copper backtank and make it accumulate Air Pressure",
|
||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a Copper Backtank and make it accumulate air pressure",
|
||||
"advancement.create.diving_suit": "UNLOCALIZED: Ready for the Depths",
|
||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a diving helmet together with your backtank and jump into water",
|
||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a Diving Helmet and a Copper Backtank, then jump into water",
|
||||
"advancement.create.mechanical_pump_0": "UNLOCALIZED: Under Pressure",
|
||||
"advancement.create.mechanical_pump_0.desc": "UNLOCALIZED: Place and power a Mechanical Pump",
|
||||
"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.water_supply": "UNLOCALIZED: Puddle Collector",
|
||||
"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": "UNLOCALIZED: Use the pulling end of a Fluid Pipe or Mechanical Pump to collect water",
|
||||
"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.chocolate_bucket": "UNLOCALIZED: A World of Imagination",
|
||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a Bucket of Molten Chocolate",
|
||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a bucket of molten chocolate",
|
||||
"advancement.create.honey_drain": "UNLOCALIZED: Autonomous Bee-Keeping",
|
||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Bee House",
|
||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Beehive",
|
||||
"advancement.create.hose_pulley_lava": "UNLOCALIZED: Tapping the Mantle",
|
||||
"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": "UNLOCALIZED: Pump from a body of lava large enough to be considered infinite",
|
||||
"advancement.create.steam_engine_maxed": "UNLOCALIZED: Full Steam",
|
||||
"advancement.create.steam_engine_maxed.desc": "UNLOCALIZED: Run a boiler at the maximum level of power",
|
||||
"advancement.create.foods": "UNLOCALIZED: Balanced Diet",
|
||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Berries, a Honeyed Apple and a Sweet Roll; all from the same Spout",
|
||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Glazed Berries, a Honeyed Apple, and a Sweet Roll all from the same Spout",
|
||||
"advancement.create.diving_suit_lava": "UNLOCALIZED: Swimming with the Striders",
|
||||
"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": "UNLOCALIZED: Attempt to take a dive in lava with your diving gear§7\n(Hidden Advancement)",
|
||||
"advancement.create.chained_drain": "UNLOCALIZED: On a Roll",
|
||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an Item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't cross the Streams!",
|
||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't Cross the Streams!",
|
||||
"advancement.create.cross_streams.desc": "UNLOCALIZED: Watch two fluids meet in your pipe network§7\n(Hidden Advancement)",
|
||||
"advancement.create.pipe_organ": "UNLOCALIZED: The Pipe Organ",
|
||||
"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": "UNLOCALIZED: Attach 12 uniquely pitched Steam Whistles to a single Fluid Tank§7\n(Hidden Advancement)",
|
||||
"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_casing": "a era do latão",
|
||||
|
@ -795,7 +795,7 @@
|
|||
"advancement.create.clockwork_bearing": "Hora da engenhoca",
|
||||
"advancement.create.clockwork_bearing.desc": "Ative uma estrutura conectada a um rolamento de rêlogio.",
|
||||
"advancement.create.display_link": "UNLOCALIZED: Big Data",
|
||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display link to visualise information",
|
||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display Link to visualise information",
|
||||
"advancement.create.potato_cannon": "Fwoomp!",
|
||||
"advancement.create.potato_cannon.desc": "Derrote um inimigo com o seu canhão de batata.",
|
||||
"advancement.create.extendo_grip": "Boioioing!",
|
||||
|
@ -804,54 +804,54 @@
|
|||
"advancement.create.linked_controller.desc": "UNLOCALIZED: Activate a Redstone Link using a Linked Controller",
|
||||
"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.crusher_maxed_0000": "UNLOCALIZED: Crushing it",
|
||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a Pair of Crushing wheels at max speed",
|
||||
"advancement.create.crusher_maxed_0000": "UNLOCALIZED: Crushing It",
|
||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a pair of Crushing Wheels at maximum speed",
|
||||
"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.potato_cannon_collide": "UNLOCALIZED: Veggie Fireworks",
|
||||
"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": "UNLOCALIZED: Cause Potato Cannon projectiles of different types to collide with each other",
|
||||
"advancement.create.self_deploying": "UNLOCALIZED: Self-Driving Cart",
|
||||
"advancement.create.self_deploying.desc": "UNLOCALIZED: Create a Minecart Contraption that places tracks in front of itself",
|
||||
"advancement.create.fist_bump": "UNLOCALIZED: Pound It, Bro!",
|
||||
"advancement.create.fist_bump.desc": "UNLOCALIZED: Make two Deployers fist-bump§7\n(Hidden Advancement)",
|
||||
"advancement.create.crafter_lazy_000": "UNLOCALIZED: Desperate Measures",
|
||||
"advancement.create.crafter_lazy_000.desc": "UNLOCALIZED: Drastically slow down a Mechanical Crafter to procrastinate on proper infrastructure§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual wield Extendo Grips for super-human reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To Full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual-wield Extendo Grips for superhuman reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.musical_arm": "toque minha musica!",
|
||||
"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.desc": "UNLOCALIZED: Assemble a Sturdy Sheet from refining crushed Obsidian",
|
||||
"advancement.create.sturdy_sheet.desc": "UNLOCALIZED: Assemble a Sturdy Sheet by refining Powdered Obsidian",
|
||||
"advancement.create.train_casing_00": "UNLOCALIZED: The Logistical Age",
|
||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a Casing for Railway Components",
|
||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a casing for railway components",
|
||||
"advancement.create.train": "UNLOCALIZED: All Aboard!",
|
||||
"advancement.create.train.desc": "UNLOCALIZED: Assemble your first Train",
|
||||
"advancement.create.conductor": "UNLOCALIZED: Conductor Instructor",
|
||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Schedule",
|
||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Train Schedule",
|
||||
"advancement.create.track_signal": "UNLOCALIZED: Traffic Control",
|
||||
"advancement.create.track_signal.desc": "UNLOCALIZED: Place a Train Signal",
|
||||
"advancement.create.display_board_0": "UNLOCALIZED: Dynamic Timetables",
|
||||
"advancement.create.display_board_0.desc": "UNLOCALIZED: Forecast a Train's arrival on your Display Board with the help of Display Links",
|
||||
"advancement.create.track_0": "UNLOCALIZED: A new Gauge",
|
||||
"advancement.create.track_0": "UNLOCALIZED: A New Gauge",
|
||||
"advancement.create.track_0.desc": "UNLOCALIZED: Obtain some Train Tracks",
|
||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo choo!",
|
||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo Choo!",
|
||||
"advancement.create.train_whistle.desc": "UNLOCALIZED: Assemble a Steam Whistle to your Train and activate it while driving",
|
||||
"advancement.create.train_portal": "UNLOCALIZED: Dimensional Commuter",
|
||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a train through a Nether Portal",
|
||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a Train through a Nether portal",
|
||||
"advancement.create.track_crafting_factory": "UNLOCALIZED: Track Factory",
|
||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 train tracks in the same Mechanical Press",
|
||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 Train Tracks with the same Mechanical Press",
|
||||
"advancement.create.long_bend": "UNLOCALIZED: The Longest Bend",
|
||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a Curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_train": "UNLOCALIZED: Ambitious Endeavours",
|
||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least six Carriages",
|
||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least 6 carriages",
|
||||
"advancement.create.long_travel": "UNLOCALIZED: Field Trip",
|
||||
"advancement.create.long_travel.desc": "UNLOCALIZED: Leave a Train Seat over 5000 blocks away from where you started travelling",
|
||||
"advancement.create.train_roadkill": "UNLOCALIZED: Road Kill",
|
||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an Enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal": "UNLOCALIZED: Expert Driver",
|
||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a Red Signal with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a red Train Signal§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash": "UNLOCALIZED: Terrible Service",
|
||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train Crash as a Passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train crash as a passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash_backwards": "UNLOCALIZED: Blind Spot",
|
||||
"advancement.create.train_crash_backwards.desc": "UNLOCALIZED: Crash into another Train while driving backwards§7\n(Hidden Advancement)",
|
||||
|
||||
|
@ -1258,8 +1258,10 @@
|
|||
"create.item_attributes.smeltable.inverted": "UNLOCALIZED: cannot be Smelted",
|
||||
"create.item_attributes.smokable": "UNLOCALIZED: can be Smoked",
|
||||
"create.item_attributes.smokable.inverted": "UNLOCALIZED: cannot be Smoked",
|
||||
"create.item_attributes.blastable": "UNLOCALIZED: is smeltable in Blast Furnace",
|
||||
"create.item_attributes.blastable.inverted": "UNLOCALIZED: is not smeltable in Blast Furnace",
|
||||
"create.item_attributes.blastable": "UNLOCALIZED: can be Smelted in a Blast Furnace",
|
||||
"create.item_attributes.blastable.inverted": "UNLOCALIZED: cannot be Smelted in a Blast Furnace",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
|
||||
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 651",
|
||||
"_": "Missing Localizations: 653",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -672,23 +672,23 @@
|
|||
"advancement.create.andesite_alloy.desc": "Materialele Create-ului au nume ciudate, Aliajul Din Andezit este unul dintre ele.",
|
||||
"advancement.create.andesite_casing": "Epoca Andezitului",
|
||||
"advancement.create.andesite_casing.desc": "Folosește niște Aliaj De Andezit și Lemn ca să creezi o Carcasă de bază.",
|
||||
"advancement.create.mechanical_press": "UNLOCALIZED: Bonk",
|
||||
"advancement.create.mechanical_press": "UNLOCALIZED: Bonk!",
|
||||
"advancement.create.mechanical_press.desc": "UNLOCALIZED: Create some sheets in a Mechanical Press",
|
||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind maker",
|
||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and activate an Encased Fan",
|
||||
"advancement.create.encased_fan": "UNLOCALIZED: Wind Maker",
|
||||
"advancement.create.encased_fan.desc": "UNLOCALIZED: Place and power an Encased Fan",
|
||||
"advancement.create.fan_processing": "UNLOCALIZED: Processing by Particle",
|
||||
"advancement.create.fan_processing.desc": "UNLOCALIZED: Use an Encased Fan to process materials",
|
||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's most feared",
|
||||
"advancement.create.saw_processing": "UNLOCALIZED: Workshop's Most Feared",
|
||||
"advancement.create.saw_processing.desc": "UNLOCALIZED: Use an upright Mechanical Saw to process materials",
|
||||
"advancement.create.compacting": "UNLOCALIZED: Compactification",
|
||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Press and a Basin to create less items from more items",
|
||||
"advancement.create.compacting.desc": "UNLOCALIZED: Use a Mechanical Press and a Basin to create fewer items from more",
|
||||
"advancement.create.belt": "Conducere de Alge",
|
||||
"advancement.create.belt.desc": "Conectează două rotoare cu o Bandă Mecanică.",
|
||||
"advancement.create.funnel": "UNLOCALIZED: Airport Aesthetic",
|
||||
"advancement.create.funnel.desc": "UNLOCALIZED: Extract or insert items into a container using a Funnel",
|
||||
"advancement.create.chute": "Rostogolind în Jos",
|
||||
"advancement.create.chute.desc": "Plasează un Tobogan, partea verticală echivalentă a unei Benzi.",
|
||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing it up",
|
||||
"advancement.create.mechanical_mixer": "UNLOCALIZED: Mixing It Up",
|
||||
"advancement.create.mechanical_mixer.desc": "UNLOCALIZED: Combine ingredients in a Mechanical Mixer",
|
||||
"advancement.create.burner": "UNLOCALIZED: Sentient Fireplace",
|
||||
"advancement.create.burner.desc": "UNLOCALIZED: Obtain a Blaze Burner",
|
||||
|
@ -703,25 +703,25 @@
|
|||
"advancement.create.super_glue": "UNLOCALIZED: Area of Connect",
|
||||
"advancement.create.super_glue.desc": "UNLOCALIZED: Super Glue some blocks into a group",
|
||||
"advancement.create.contraption_actors": "UNLOCALIZED: Moving with Purpose",
|
||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a contraption with drills, saws or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-by exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a contraption",
|
||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted out",
|
||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's goggles and a Wrench",
|
||||
"advancement.create.contraption_actors.desc": "UNLOCALIZED: Create a Contraption with drills, saws, or harvesters on board",
|
||||
"advancement.create.portable_storage_interface": "UNLOCALIZED: Drive-By Exchange",
|
||||
"advancement.create.portable_storage_interface.desc": "UNLOCALIZED: Use a Portable Storage Interface to take or insert items into a Contraption",
|
||||
"advancement.create.wrench_goggles": "UNLOCALIZED: Kitted Out",
|
||||
"advancement.create.wrench_goggles.desc": "UNLOCALIZED: Equip Engineer's Goggles and a Wrench",
|
||||
"advancement.create.stressometer": "Dar Cât De Stresat, Mai Exact?",
|
||||
"advancement.create.stressometer.desc": "Plasează și alimentează un Stresometru. Uită-te la el prin Ochelari ca să îi citești valoarea exactă.",
|
||||
"advancement.create.cuckoo_clock": "UNLOCALIZED: Is it Time?",
|
||||
"advancement.create.cuckoo_clock": "UNLOCALIZED: Is It Time?",
|
||||
"advancement.create.cuckoo_clock.desc": "UNLOCALIZED: Witness your Cuckoo Clock announce bedtime",
|
||||
"advancement.create.windmill_maxed": "UNLOCALIZED: A Strong Breeze",
|
||||
"advancement.create.windmill_maxed.desc": "UNLOCALIZED: Assemble a windmill of maximum strength",
|
||||
"advancement.create.ejector_maxed": "UNLOCALIZED: Springboard Champion",
|
||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched for more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.ejector_maxed.desc": "UNLOCALIZED: Get launched more than 30 blocks by a Weighted Ejector",
|
||||
"advancement.create.pulley_maxed": "UNLOCALIZED: Rope to Nowhere",
|
||||
"advancement.create.pulley_maxed.desc": "UNLOCALIZED: Extend a Rope Pulley over 200 blocks deep",
|
||||
"advancement.create.cart_pickup": "UNLOCALIZED: Strong Arms",
|
||||
"advancement.create.cart_pickup.desc": "UNLOCALIZED: Pick up a Minecart Contraption with at least 200 attached blocks",
|
||||
"advancement.create.anvil_plough": "UNLOCALIZED: Blacksmith Artillery",
|
||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical ploughs",
|
||||
"advancement.create.anvil_plough.desc": "UNLOCALIZED: Launch an Anvil with Mechanical Ploughs",
|
||||
"advancement.create.lava_wheel_00000": "UNLOCALIZED: Magma Wheel",
|
||||
"advancement.create.lava_wheel_00000.desc": "UNLOCALIZED: This shouldn't have worked§7\n(Hidden Advancement)",
|
||||
"advancement.create.hand_crank_000": "UNLOCALIZED: Workout Session",
|
||||
|
@ -730,48 +730,48 @@
|
|||
"advancement.create.belt_funnel_kiss.desc": "Fă două săruturi de Pâlnii montate pe Bandă.",
|
||||
"advancement.create.stressometer_maxed": "UNLOCALIZED: Perfectly Stressed",
|
||||
"advancement.create.stressometer_maxed.desc": "UNLOCALIZED: Get a 100% readout from a Stressometer§7\n(Hidden Advancement)",
|
||||
"advancement.create.copper": "UNLOCALIZED: More Sturdier Rocks",
|
||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper for your exploits in Fluid Manipulation",
|
||||
"advancement.create.copper": "UNLOCALIZED: Cuprum Bokum",
|
||||
"advancement.create.copper.desc": "UNLOCALIZED: Amass some Copper Ingots for your exploits in fluid manipulation",
|
||||
"advancement.create.copper_casing": "Epoca de cupru",
|
||||
"advancement.create.copper_casing.desc": "Folosește niște and Wood to create some Copper Casings.",
|
||||
"advancement.create.spout": "Splosh",
|
||||
"advancement.create.spout.desc": "Privește un obiect de fluid fiind umplut folosind o Duză.",
|
||||
"advancement.create.drain": "UNLOCALIZED: Tumble Draining",
|
||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid containing item be emptied by an Item Drain",
|
||||
"advancement.create.drain.desc": "UNLOCALIZED: Watch a fluid-containing item be emptied by an Item Drain",
|
||||
"advancement.create.steam_engine": "UNLOCALIZED: The Powerhouse",
|
||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam engine to generate torque",
|
||||
"advancement.create.steam_engine.desc": "UNLOCALIZED: Use a Steam Engine to generate torque",
|
||||
"advancement.create.steam_whistle": "UNLOCALIZED: Voice of an Angel",
|
||||
"advancement.create.steam_whistle.desc": "UNLOCALIZED: Activate a Steam Whistle",
|
||||
"advancement.create.backtank": "UNLOCALIZED: Pressure to Go",
|
||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a copper backtank and make it accumulate Air Pressure",
|
||||
"advancement.create.backtank.desc": "UNLOCALIZED: Create a Copper Backtank and make it accumulate air pressure",
|
||||
"advancement.create.diving_suit": "UNLOCALIZED: Ready for the Depths",
|
||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a diving helmet together with your backtank and jump into water",
|
||||
"advancement.create.diving_suit.desc": "UNLOCALIZED: Equip a Diving Helmet and a Copper Backtank, then jump into water",
|
||||
"advancement.create.mechanical_pump_0": "UNLOCALIZED: Under Pressure",
|
||||
"advancement.create.mechanical_pump_0.desc": "UNLOCALIZED: Place and power a Mechanical Pump",
|
||||
"advancement.create.glass_pipe": "Spion De Flux",
|
||||
"advancement.create.glass_pipe.desc": "Privește un fluid propagându-se printr-o Conductă De Fluide De Sticlă. Conducte De Fluide Drepte devin de sticlă când o cheie este folosită pe ele.",
|
||||
"advancement.create.water_supply": "UNLOCALIZED: Puddle Collector",
|
||||
"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": "UNLOCALIZED: Use the pulling end of a Fluid Pipe or Mechanical Pump to collect water",
|
||||
"advancement.create.hose_pulley": "Vărsare Industrială",
|
||||
"advancement.create.hose_pulley.desc": "Coboară un Scripete De Furtun și privește-l scurgând sau umplând un corp de fluid.",
|
||||
"advancement.create.chocolate_bucket": "UNLOCALIZED: A World of Imagination",
|
||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a Bucket of Molten Chocolate",
|
||||
"advancement.create.chocolate_bucket.desc": "UNLOCALIZED: Obtain a bucket of molten chocolate",
|
||||
"advancement.create.honey_drain": "UNLOCALIZED: Autonomous Bee-Keeping",
|
||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Bee House",
|
||||
"advancement.create.honey_drain.desc": "UNLOCALIZED: Use pipes to pull honey from a Bee Nest or Beehive",
|
||||
"advancement.create.hose_pulley_lava": "UNLOCALIZED: Tapping the Mantle",
|
||||
"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": "UNLOCALIZED: Pump from a body of lava large enough to be considered infinite",
|
||||
"advancement.create.steam_engine_maxed": "UNLOCALIZED: Full Steam",
|
||||
"advancement.create.steam_engine_maxed.desc": "UNLOCALIZED: Run a boiler at the maximum level of power",
|
||||
"advancement.create.foods": "UNLOCALIZED: Balanced Diet",
|
||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Berries, a Honeyed Apple and a Sweet Roll; all from the same Spout",
|
||||
"advancement.create.foods.desc": "UNLOCALIZED: Create Chocolate Glazed Berries, a Honeyed Apple, and a Sweet Roll all from the same Spout",
|
||||
"advancement.create.diving_suit_lava": "UNLOCALIZED: Swimming with the Striders",
|
||||
"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": "UNLOCALIZED: Attempt to take a dive in lava with your diving gear§7\n(Hidden Advancement)",
|
||||
"advancement.create.chained_drain": "UNLOCALIZED: On a Roll",
|
||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an Item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't cross the Streams!",
|
||||
"advancement.create.chained_drain.desc": "UNLOCALIZED: Watch an item move across a row of Item Drains§7\n(Hidden Advancement)",
|
||||
"advancement.create.cross_streams": "UNLOCALIZED: Don't Cross the Streams!",
|
||||
"advancement.create.cross_streams.desc": "UNLOCALIZED: Watch two fluids meet in your pipe network§7\n(Hidden Advancement)",
|
||||
"advancement.create.pipe_organ": "UNLOCALIZED: The Pipe Organ",
|
||||
"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": "UNLOCALIZED: Attach 12 uniquely pitched Steam Whistles to a single Fluid Tank§7\n(Hidden Advancement)",
|
||||
"advancement.create.brass": "Aliaje reale",
|
||||
"advancement.create.brass.desc": "Folosește Cupru Zdrobit și Zinc Zdrobit ca să creezi niște Alamă.",
|
||||
"advancement.create.brass_casing": "Epoca Alamei",
|
||||
|
@ -795,7 +795,7 @@
|
|||
"advancement.create.clockwork_bearing": "Ora Invențiilor",
|
||||
"advancement.create.clockwork_bearing.desc": "Asamblează o structură montată pe un Rulment De Ceasornic.",
|
||||
"advancement.create.display_link": "UNLOCALIZED: Big Data",
|
||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display link to visualise information",
|
||||
"advancement.create.display_link.desc": "UNLOCALIZED: Use a Display Link to visualise information",
|
||||
"advancement.create.potato_cannon": "Fwoomp!",
|
||||
"advancement.create.potato_cannon.desc": "Înfrânge un inamic cu Tunul tău De Cartofi.",
|
||||
"advancement.create.extendo_grip": "Boioioing!",
|
||||
|
@ -804,54 +804,54 @@
|
|||
"advancement.create.linked_controller.desc": "UNLOCALIZED: Activate a Redstone Link using a Linked Controller",
|
||||
"advancement.create.arm_blaze_burner": "Arzător-o-Tron",
|
||||
"advancement.create.arm_blaze_burner.desc": "Instructează un Braț Mecanic să hrănească Arzătorul tău De Dogoreală.",
|
||||
"advancement.create.crusher_maxed_0000": "UNLOCALIZED: Crushing it",
|
||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a Pair of Crushing wheels at max speed",
|
||||
"advancement.create.crusher_maxed_0000": "UNLOCALIZED: Crushing It",
|
||||
"advancement.create.crusher_maxed_0000.desc": "UNLOCALIZED: Operate a pair of Crushing Wheels at maximum speed",
|
||||
"advancement.create.arm_many_targets": "Organiz-o-Tron",
|
||||
"advancement.create.arm_many_targets.desc": "Programează un Braț Mecanic cu zece sau mai multe locații de ieșire.",
|
||||
"advancement.create.potato_cannon_collide": "UNLOCALIZED: Veggie Fireworks",
|
||||
"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": "UNLOCALIZED: Cause Potato Cannon projectiles of different types to collide with each other",
|
||||
"advancement.create.self_deploying": "UNLOCALIZED: Self-Driving Cart",
|
||||
"advancement.create.self_deploying.desc": "UNLOCALIZED: Create a Minecart Contraption that places tracks in front of itself",
|
||||
"advancement.create.fist_bump": "Bate-o, Bro!",
|
||||
"advancement.create.fist_bump.desc": "Fă două Deployere să bată pumnul.",
|
||||
"advancement.create.crafter_lazy_000": "UNLOCALIZED: Desperate Measures",
|
||||
"advancement.create.crafter_lazy_000.desc": "UNLOCALIZED: Drastically slow down a Mechanical Crafter to procrastinate on proper infrastructure§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual wield Extendo Grips for super-human reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.extendo_grip_dual": "UNLOCALIZED: To Full Extent",
|
||||
"advancement.create.extendo_grip_dual.desc": "UNLOCALIZED: Dual-wield Extendo Grips for superhuman reach§7\n(Hidden Advancement)",
|
||||
"advancement.create.musical_arm": "Cântă-mi melodia mea tematică!",
|
||||
"advancement.create.musical_arm.desc": "Privește un Braț Mecanic operând Tonomatul tău.",
|
||||
"advancement.create.sturdy_sheet": "UNLOCALIZED: The Sturdiest Rocks",
|
||||
"advancement.create.sturdy_sheet.desc": "UNLOCALIZED: Assemble a Sturdy Sheet from refining crushed Obsidian",
|
||||
"advancement.create.sturdy_sheet.desc": "UNLOCALIZED: Assemble a Sturdy Sheet by refining Powdered Obsidian",
|
||||
"advancement.create.train_casing_00": "UNLOCALIZED: The Logistical Age",
|
||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a Casing for Railway Components",
|
||||
"advancement.create.train_casing_00.desc": "UNLOCALIZED: Use Sturdy Sheets to create a casing for railway components",
|
||||
"advancement.create.train": "UNLOCALIZED: All Aboard!",
|
||||
"advancement.create.train.desc": "UNLOCALIZED: Assemble your first Train",
|
||||
"advancement.create.conductor": "UNLOCALIZED: Conductor Instructor",
|
||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Schedule",
|
||||
"advancement.create.conductor.desc": "UNLOCALIZED: Instruct a Train driver with a Train Schedule",
|
||||
"advancement.create.track_signal": "UNLOCALIZED: Traffic Control",
|
||||
"advancement.create.track_signal.desc": "UNLOCALIZED: Place a Train Signal",
|
||||
"advancement.create.display_board_0": "UNLOCALIZED: Dynamic Timetables",
|
||||
"advancement.create.display_board_0.desc": "UNLOCALIZED: Forecast a Train's arrival on your Display Board with the help of Display Links",
|
||||
"advancement.create.track_0": "UNLOCALIZED: A new Gauge",
|
||||
"advancement.create.track_0": "UNLOCALIZED: A New Gauge",
|
||||
"advancement.create.track_0.desc": "UNLOCALIZED: Obtain some Train Tracks",
|
||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo choo!",
|
||||
"advancement.create.train_whistle": "UNLOCALIZED: Choo Choo!",
|
||||
"advancement.create.train_whistle.desc": "UNLOCALIZED: Assemble a Steam Whistle to your Train and activate it while driving",
|
||||
"advancement.create.train_portal": "UNLOCALIZED: Dimensional Commuter",
|
||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a train through a Nether Portal",
|
||||
"advancement.create.train_portal.desc": "UNLOCALIZED: Ride a Train through a Nether portal",
|
||||
"advancement.create.track_crafting_factory": "UNLOCALIZED: Track Factory",
|
||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 train tracks in the same Mechanical Press",
|
||||
"advancement.create.track_crafting_factory.desc": "UNLOCALIZED: Produce more than 1000 Train Tracks with the same Mechanical Press",
|
||||
"advancement.create.long_bend": "UNLOCALIZED: The Longest Bend",
|
||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a Curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_bend.desc": "UNLOCALIZED: Create a curved track section that spans more than 30 blocks in length",
|
||||
"advancement.create.long_train": "UNLOCALIZED: Ambitious Endeavours",
|
||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least six Carriages",
|
||||
"advancement.create.long_train.desc": "UNLOCALIZED: Create a Train with at least 6 carriages",
|
||||
"advancement.create.long_travel": "UNLOCALIZED: Field Trip",
|
||||
"advancement.create.long_travel.desc": "UNLOCALIZED: Leave a Train Seat over 5000 blocks away from where you started travelling",
|
||||
"advancement.create.train_roadkill": "UNLOCALIZED: Road Kill",
|
||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an Enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_roadkill.desc": "UNLOCALIZED: Run over an enemy with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal": "UNLOCALIZED: Expert Driver",
|
||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a Red Signal with your Train§7\n(Hidden Advancement)",
|
||||
"advancement.create.red_signal.desc": "UNLOCALIZED: Run a red Train Signal§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash": "UNLOCALIZED: Terrible Service",
|
||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train Crash as a Passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash.desc": "UNLOCALIZED: Witness a Train crash as a passenger§7\n(Hidden Advancement)",
|
||||
"advancement.create.train_crash_backwards": "UNLOCALIZED: Blind Spot",
|
||||
"advancement.create.train_crash_backwards.desc": "UNLOCALIZED: Crash into another Train while driving backwards§7\n(Hidden Advancement)",
|
||||
|
||||
|
@ -1260,6 +1260,8 @@
|
|||
"create.item_attributes.smokable.inverted": "nu poate fi Afumat",
|
||||
"create.item_attributes.blastable": "poate fi topit în Furnal",
|
||||
"create.item_attributes.blastable.inverted": "nu poate fi topit în Furnal",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "este shulkerul %1$s",
|
||||
"create.item_attributes.shulker_level.inverted": "nu este shulkerul %1$s",
|
||||
"create.item_attributes.shulker_level.full": "plin",
|
||||
|
|
File diff suppressed because it is too large
Load diff
3029
src/generated/resources/assets/create/lang/unfinished/uk_ua.json
Normal file
3029
src/generated/resources/assets/create/lang/unfinished/uk_ua.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 4",
|
||||
"_": "Missing Localizations: 2",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -1260,6 +1260,8 @@
|
|||
"create.item_attributes.smokable.inverted": "不可被烟熏",
|
||||
"create.item_attributes.blastable": "可被高炉冶炼",
|
||||
"create.item_attributes.blastable.inverted": "不可被高炉冶炼",
|
||||
"create.item_attributes.compostable": "UNLOCALIZED: can be composted",
|
||||
"create.item_attributes.compostable.inverted": "UNLOCALIZED: cannot be composted",
|
||||
"create.item_attributes.shulker_level": "潜影盒是%1$s的",
|
||||
"create.item_attributes.shulker_level.inverted": "潜影盒不是%1$s的",
|
||||
"create.item_attributes.shulker_level.full": "满",
|
||||
|
@ -1366,10 +1368,10 @@
|
|||
"create.tooltip.chute.fans_pull_up": "鼓风机从上方进行吸引",
|
||||
"create.tooltip.chute.fans_pull_down": "鼓风机从下方进行吸引",
|
||||
"create.tooltip.chute.contains": "内含物品:%1$s x%2$s",
|
||||
"create.tooltip.deployer.header": "UNLOCALIZED: Deployer Information",
|
||||
"create.tooltip.deployer.using": "UNLOCALIZED: Mode: Use",
|
||||
"create.tooltip.deployer.punching": "UNLOCALIZED: Mode: Attack",
|
||||
"create.tooltip.deployer.contains": "UNLOCALIZED: Item: %1$s x%2$s",
|
||||
"create.tooltip.deployer.header": "机械手信息",
|
||||
"create.tooltip.deployer.using": "模式:使用",
|
||||
"create.tooltip.deployer.punching": "模式:攻击",
|
||||
"create.tooltip.deployer.contains": "物品:%1$s x%2$s",
|
||||
"create.tooltip.brass_tunnel.contains": "目前分配:",
|
||||
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
|
||||
"create.tooltip.brass_tunnel.retrieve": "右击取出",
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
"parent": "create:block/fluid_pipe/core_x",
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
4,
|
||||
4,
|
||||
4
|
||||
],
|
||||
"to": [
|
||||
12,
|
||||
12,
|
||||
12
|
||||
],
|
||||
"faces": {
|
||||
"west": {
|
||||
"texture": "#0",
|
||||
"uv": [
|
||||
16.0,
|
||||
8.0,
|
||||
12.0,
|
||||
12.0
|
||||
]
|
||||
},
|
||||
"east": {
|
||||
"texture": "#0",
|
||||
"uv": [
|
||||
12.0,
|
||||
8.0,
|
||||
16.0,
|
||||
12.0
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
"parent": "create:block/fluid_pipe/core_y",
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
4,
|
||||
4,
|
||||
4
|
||||
],
|
||||
"to": [
|
||||
12,
|
||||
12,
|
||||
12
|
||||
],
|
||||
"faces": {
|
||||
"down": {
|
||||
"texture": "#0",
|
||||
"uv": [
|
||||
16.0,
|
||||
8.0,
|
||||
12.0,
|
||||
12.0
|
||||
]
|
||||
},
|
||||
"up": {
|
||||
"texture": "#0",
|
||||
"uv": [
|
||||
16.0,
|
||||
12.0,
|
||||
12.0,
|
||||
8.0
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
{
|
||||
"parent": "create:block/fluid_pipe/core_z",
|
||||
"elements": [
|
||||
{
|
||||
"from": [
|
||||
4,
|
||||
4,
|
||||
4
|
||||
],
|
||||
"to": [
|
||||
12,
|
||||
12,
|
||||
12
|
||||
],
|
||||
"faces": {
|
||||
"north": {
|
||||
"texture": "#0",
|
||||
"uv": [
|
||||
12.0,
|
||||
8.0,
|
||||
16.0,
|
||||
12.0
|
||||
]
|
||||
},
|
||||
"south": {
|
||||
"texture": "#0",
|
||||
"uv": [
|
||||
16.0,
|
||||
8.0,
|
||||
12.0,
|
||||
12.0
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -19,7 +19,7 @@
|
|||
"chance": 0.75
|
||||
},
|
||||
{
|
||||
"item": "minecraft:cobblestone",
|
||||
"item": "minecraft:cobbled_deepslate",
|
||||
"chance": 0.125
|
||||
}
|
||||
],
|
||||
|
|
|
@ -73,6 +73,10 @@
|
|||
"item": "create:cogwheel",
|
||||
"chance": 5.0
|
||||
},
|
||||
{
|
||||
"item": "minecraft:gold_nugget",
|
||||
"chance": 3.0
|
||||
},
|
||||
{
|
||||
"item": "create:shaft",
|
||||
"chance": 2.0
|
||||
|
@ -81,10 +85,6 @@
|
|||
"item": "create:crushed_gold_ore",
|
||||
"chance": 2.0
|
||||
},
|
||||
{
|
||||
"item": "minecraft:gold_nugget",
|
||||
"chance": 2.0
|
||||
},
|
||||
{
|
||||
"item": "minecraft:iron_ingot"
|
||||
},
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:blaze_burner",
|
||||
"create:lit_blaze_burner",
|
||||
"#minecraft:fire",
|
||||
"#minecraft:campfires",
|
||||
"minecraft:magma_block",
|
||||
"minecraft:lava"
|
||||
]
|
||||
}
|
|
@ -1,6 +1,11 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"#create:fan_heaters"
|
||||
"create:blaze_burner",
|
||||
"create:lit_blaze_burner",
|
||||
"#minecraft:fire",
|
||||
"#minecraft:campfires",
|
||||
"minecraft:magma_block",
|
||||
"minecraft:lava"
|
||||
]
|
||||
}
|
|
@ -16,6 +16,7 @@
|
|||
"minecraft:tripwire",
|
||||
"minecraft:tripwire_hook",
|
||||
"minecraft:daylight_detector",
|
||||
"minecraft:target"
|
||||
"minecraft:target",
|
||||
"minecraft:hopper"
|
||||
]
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:sturdy_sheet",
|
||||
"create:copper_sheet",
|
||||
"create:brass_sheet",
|
||||
"create:iron_sheet",
|
||||
|
|
|
@ -161,16 +161,14 @@ public class AllBlockPartials {
|
|||
|
||||
;
|
||||
|
||||
public static final Map<FluidTransportBehaviour.AttachmentTypes, Map<Direction, PartialModel>> PIPE_ATTACHMENTS =
|
||||
new EnumMap<>(FluidTransportBehaviour.AttachmentTypes.class);
|
||||
public static final Map<FluidTransportBehaviour.AttachmentTypes.ComponentPartials, Map<Direction, PartialModel>> PIPE_ATTACHMENTS =
|
||||
new EnumMap<>(FluidTransportBehaviour.AttachmentTypes.ComponentPartials.class);
|
||||
|
||||
public static final Map<Direction, PartialModel> METAL_GIRDER_BRACKETS = new EnumMap<>(Direction.class);
|
||||
public static final Map<DyeColor, PartialModel> TOOLBOX_LIDS = new EnumMap<>(DyeColor.class);
|
||||
|
||||
static {
|
||||
for (FluidTransportBehaviour.AttachmentTypes type : FluidTransportBehaviour.AttachmentTypes.values()) {
|
||||
if (!type.hasModel())
|
||||
continue;
|
||||
for (FluidTransportBehaviour.AttachmentTypes.ComponentPartials type : FluidTransportBehaviour.AttachmentTypes.ComponentPartials.values()) {
|
||||
Map<Direction, PartialModel> map = new HashMap<>();
|
||||
for (Direction d : Iterate.directions) {
|
||||
String asId = Lang.asId(type.name());
|
||||
|
|
|
@ -172,7 +172,7 @@ import com.simibubi.create.content.logistics.block.display.source.FluidListDispl
|
|||
import com.simibubi.create.content.logistics.block.display.source.ItemCountDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ItemListDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ItemNameDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ItemThoughputDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ItemThroughputDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.KineticSpeedDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.KineticStressDisplaySource;
|
||||
import com.simibubi.create.content.logistics.block.display.source.ObservedTrainNameSource;
|
||||
|
@ -652,7 +652,7 @@ public class AllBlocks {
|
|||
.properties(p -> p.lightLevel(BlazeBurnerBlock::getLight))
|
||||
.transform(pickaxeOnly())
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.FAN_HEATERS.tag)
|
||||
.tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.PASSIVE_BOILER_HEATERS.tag)
|
||||
.loot((lt, block) -> lt.add(block, BlazeBurnerBlock.buildLootTable()))
|
||||
.blockstate((c, p) -> p.simpleBlock(c.getEntry(), AssetLookup.partialBaseModel(c, p)))
|
||||
.onRegister(movementBehaviour(new BlazeBurnerMovementBehaviour()))
|
||||
|
@ -669,7 +669,7 @@ public class AllBlocks {
|
|||
.properties(p -> p.lightLevel(LitBlazeBurnerBlock::getLight))
|
||||
.transform(pickaxeOnly())
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.FAN_HEATERS.tag)
|
||||
.tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.PASSIVE_BOILER_HEATERS.tag)
|
||||
.loot((lt, block) -> lt.dropOther(block, AllItems.EMPTY_BLAZE_BURNER.get()))
|
||||
.blockstate((c, p) -> p.getVariantBuilder(c.get())
|
||||
.forAllStates(state -> ConfiguredModel.builder()
|
||||
|
@ -812,7 +812,7 @@ public class AllBlocks {
|
|||
.initialProperties(SharedProperties::copperMetal)
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.pipe())
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::opaque))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
@ -827,7 +827,7 @@ public class AllBlocks {
|
|||
.onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING)))
|
||||
.onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.COPPER_CASING,
|
||||
(s, f) -> !s.getValue(EncasedPipeBlock.FACING_TO_PROPERTY_MAP.get(f)))))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::opaque))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
|
||||
.loot((p, b) -> p.dropOther(b, FLUID_PIPE.get()))
|
||||
.register();
|
||||
|
||||
|
@ -849,7 +849,7 @@ public class AllBlocks {
|
|||
.build();
|
||||
}, BlockStateProperties.WATERLOGGED);
|
||||
})
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::transparent))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
|
||||
.loot((p, b) -> p.dropOther(b, FLUID_PIPE.get()))
|
||||
.register();
|
||||
|
||||
|
@ -858,7 +858,7 @@ public class AllBlocks {
|
|||
.properties(p -> p.color(MaterialColor.STONE))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(BlockStateGen.directionalBlockProviderIgnoresWaterlogged(true))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::opaque))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
|
||||
.transform(BlockStressDefaults.setImpact(4.0))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
|
@ -870,7 +870,7 @@ public class AllBlocks {
|
|||
.properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW))
|
||||
.transform(pickaxeOnly())
|
||||
.blockstate(new SmartFluidPipeGenerator()::generate)
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::transparent))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
@ -881,7 +881,7 @@ public class AllBlocks {
|
|||
.blockstate((c, p) -> BlockStateGen.directionalAxisBlock(c, p,
|
||||
(state, vertical) -> AssetLookup.partialBaseModel(c, p, vertical ? "vertical" : "horizontal",
|
||||
state.getValue(FluidValveBlock.ENABLED) ? "open" : "closed")))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::opaque))
|
||||
.onRegister(CreateRegistrate.blockModel(() -> PipeAttachmentModel::new))
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
.register();
|
||||
|
@ -1696,7 +1696,7 @@ public class AllBlocks {
|
|||
.properties(p -> p.color(MaterialColor.STONE))
|
||||
.transform(BuilderTransformers.beltTunnel("andesite", new ResourceLocation("block/polished_andesite")))
|
||||
.onRegister(assignDataBehaviour(new AccumulatedItemCountDisplaySource(), "accumulate_items"))
|
||||
.onRegister(assignDataBehaviour(new ItemThoughputDisplaySource(), "item_throughput"))
|
||||
.onRegister(assignDataBehaviour(new ItemThroughputDisplaySource(), "item_throughput"))
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<BrassTunnelBlock> BRASS_TUNNEL =
|
||||
|
@ -1704,7 +1704,7 @@ public class AllBlocks {
|
|||
.properties(p -> p.color(MaterialColor.TERRACOTTA_YELLOW))
|
||||
.transform(BuilderTransformers.beltTunnel("brass", Create.asResource("block/brass_block")))
|
||||
.onRegister(assignDataBehaviour(new AccumulatedItemCountDisplaySource(), "accumulate_items"))
|
||||
.onRegister(assignDataBehaviour(new ItemThoughputDisplaySource(), "item_throughput"))
|
||||
.onRegister(assignDataBehaviour(new ItemThroughputDisplaySource(), "item_throughput"))
|
||||
.onRegister(connectedTextures(BrassTunnelCTBehaviour::new))
|
||||
.register();
|
||||
|
||||
|
|
|
@ -2,17 +2,20 @@ package com.simibubi.create;
|
|||
|
||||
import com.simibubi.create.content.logistics.trains.entity.CarriageSyncDataSerializer;
|
||||
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DataSerializerEntry;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public class AllEntityDataSerializers {
|
||||
private static final DeferredRegister<DataSerializerEntry> REGISTER = DeferredRegister.create(ForgeRegistries.Keys.DATA_SERIALIZERS, Create.ID);
|
||||
|
||||
public static final CarriageSyncDataSerializer CARRIAGE_DATA = new CarriageSyncDataSerializer();
|
||||
|
||||
public static void register(RegistryEvent.Register<DataSerializerEntry> event) {
|
||||
IForgeRegistry<DataSerializerEntry> registry = event.getRegistry();
|
||||
registry.register(new DataSerializerEntry(CARRIAGE_DATA).setRegistryName(Create.asResource("carriage_data")));
|
||||
}
|
||||
public static final RegistryObject<DataSerializerEntry> CARRIAGE_DATA_ENTRY = REGISTER.register("carriage_data", () -> new DataSerializerEntry(CARRIAGE_DATA));
|
||||
|
||||
public static void register(IEventBus modEventBus) {
|
||||
REGISTER.register(modEventBus);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,15 +10,11 @@ import com.simibubi.create.content.palettes.AllPaletteStoneTypes;
|
|||
import com.simibubi.create.foundation.data.CreateRegistrate;
|
||||
import com.tterrag.registrate.util.entry.FluidEntry;
|
||||
|
||||
import net.minecraft.client.renderer.ItemBlockRenderTypes;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.BlockAndTintGetter;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.material.Fluid;
|
||||
import net.minecraft.world.level.material.FluidState;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.fluids.FluidAttributes;
|
||||
import net.minecraftforge.fluids.ForgeFlowingFluid;
|
||||
|
||||
|
@ -28,17 +24,17 @@ public class AllFluids {
|
|||
|
||||
public static final FluidEntry<PotionFluid> POTION =
|
||||
REGISTRATE.virtualFluid("potion", PotionFluidAttributes::new, PotionFluid::new)
|
||||
.lang(f -> "fluid.create.potion", "Potion")
|
||||
.lang("Potion")
|
||||
.register();
|
||||
|
||||
public static final FluidEntry<VirtualFluid> TEA = REGISTRATE.virtualFluid("tea")
|
||||
.lang(f -> "fluid.create.tea", "Builder's Tea")
|
||||
.lang("Builder's Tea")
|
||||
.tag(AllTags.forgeFluidTag("tea"))
|
||||
.register();
|
||||
|
||||
public static final FluidEntry<ForgeFlowingFluid.Flowing> HONEY =
|
||||
REGISTRATE.standardFluid("honey", NoColorFluidAttributes::new)
|
||||
.lang(f -> "fluid.create.honey", "Honey")
|
||||
.lang("Honey")
|
||||
.attributes(b -> b.viscosity(2000)
|
||||
.density(1400))
|
||||
.properties(p -> p.levelDecreasePerBlock(2)
|
||||
|
@ -54,7 +50,7 @@ public class AllFluids {
|
|||
|
||||
public static final FluidEntry<ForgeFlowingFluid.Flowing> CHOCOLATE =
|
||||
REGISTRATE.standardFluid("chocolate", NoColorFluidAttributes::new)
|
||||
.lang(f -> "fluid.create.chocolate", "Chocolate")
|
||||
.lang("Chocolate")
|
||||
.tag(AllTags.forgeFluidTag("chocolate"))
|
||||
.attributes(b -> b.viscosity(1500)
|
||||
.density(1400))
|
||||
|
@ -68,16 +64,6 @@ public class AllFluids {
|
|||
|
||||
public static void register() {}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public static void assignRenderLayers() {}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
private static void makeTranslucent(FluidEntry<?> entry) {
|
||||
ForgeFlowingFluid fluid = entry.get();
|
||||
ItemBlockRenderTypes.setRenderLayer(fluid, RenderType.translucent());
|
||||
ItemBlockRenderTypes.setRenderLayer(fluid.getSource(), RenderType.translucent());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static BlockState getLavaInteraction(FluidState fluidState) {
|
||||
Fluid fluid = fluidState.getType();
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
package com.simibubi.create;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
@ -11,20 +9,32 @@ import com.simibubi.create.content.contraptions.components.structureMovement.Mov
|
|||
import com.simibubi.create.content.contraptions.components.structureMovement.interaction.DoorMovingInteraction;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.interaction.LeverMovingInteraction;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.interaction.TrapdoorMovingInteraction;
|
||||
import com.simibubi.create.foundation.utility.CreateRegistry;
|
||||
import com.tterrag.registrate.util.nullness.NonNullConsumer;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.tags.BlockTags;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.IRegistryDelegate;
|
||||
|
||||
public class AllInteractionBehaviours {
|
||||
private static final Map<IRegistryDelegate<Block>, MovingInteractionBehaviour> BLOCK_BEHAVIOURS = new HashMap<>();
|
||||
private static final CreateRegistry<Block, MovingInteractionBehaviour> BLOCK_BEHAVIOURS = new CreateRegistry<>(ForgeRegistries.BLOCKS);
|
||||
private static final List<BehaviourProvider> GLOBAL_BEHAVIOURS = new ArrayList<>();
|
||||
|
||||
public static void registerBehaviour(ResourceLocation block, MovingInteractionBehaviour provider) {
|
||||
BLOCK_BEHAVIOURS.register(block, provider);
|
||||
}
|
||||
|
||||
public static void registerBehaviour(Block block, MovingInteractionBehaviour provider) {
|
||||
BLOCK_BEHAVIOURS.register(block, provider);
|
||||
}
|
||||
|
||||
@Deprecated(forRemoval = true)
|
||||
public static void registerBehaviour(IRegistryDelegate<Block> block, MovingInteractionBehaviour provider) {
|
||||
BLOCK_BEHAVIOURS.put(block, provider);
|
||||
registerBehaviour(block.name(), provider);
|
||||
}
|
||||
|
||||
public static void registerBehaviourProvider(BehaviourProvider provider) {
|
||||
|
@ -33,7 +43,7 @@ public class AllInteractionBehaviours {
|
|||
|
||||
@Nullable
|
||||
public static MovingInteractionBehaviour getBehaviour(BlockState state) {
|
||||
MovingInteractionBehaviour behaviour = BLOCK_BEHAVIOURS.get(state.getBlock().delegate);
|
||||
MovingInteractionBehaviour behaviour = BLOCK_BEHAVIOURS.get(state.getBlock());
|
||||
if (behaviour != null) {
|
||||
return behaviour;
|
||||
}
|
||||
|
@ -50,11 +60,11 @@ public class AllInteractionBehaviours {
|
|||
|
||||
public static <B extends Block> NonNullConsumer<? super B> interactionBehaviour(
|
||||
MovingInteractionBehaviour behaviour) {
|
||||
return b -> registerBehaviour(b.delegate, behaviour);
|
||||
return b -> registerBehaviour(b, behaviour);
|
||||
}
|
||||
|
||||
static void registerDefaults() {
|
||||
registerBehaviour(Blocks.LEVER.delegate, new LeverMovingInteraction());
|
||||
registerBehaviour(Blocks.LEVER, new LeverMovingInteraction());
|
||||
|
||||
DoorMovingInteraction doorBehaviour = new DoorMovingInteraction();
|
||||
registerBehaviourProvider(state -> {
|
||||
|
|
|
@ -85,7 +85,7 @@ public class AllItems {
|
|||
DOUGH = taggedIngredient("dough", forgeItemTag("dough"), forgeItemTag("dough/wheat")),
|
||||
CINDER_FLOUR = ingredient("cinder_flour"), ROSE_QUARTZ = ingredient("rose_quartz"),
|
||||
POLISHED_ROSE_QUARTZ = ingredient("polished_rose_quartz"), POWDERED_OBSIDIAN = ingredient("powdered_obsidian"),
|
||||
STURDY_SHEET = taggedIngredient("sturdy_sheet", forgeItemTag("plates/obsidian")),
|
||||
STURDY_SHEET = taggedIngredient("sturdy_sheet", forgeItemTag("plates/obsidian"), PLATES.tag),
|
||||
PROPELLER = ingredient("propeller"), WHISK = ingredient("whisk"), BRASS_HAND = ingredient("brass_hand"),
|
||||
CRAFTER_SLOT_COVER = ingredient("crafter_slot_cover"), ELECTRON_TUBE = ingredient("electron_tube");
|
||||
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
package com.simibubi.create;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
@ -12,19 +10,31 @@ import com.simibubi.create.content.contraptions.components.actors.CampfireMoveme
|
|||
import com.simibubi.create.content.contraptions.components.actors.dispenser.DispenserMovementBehaviour;
|
||||
import com.simibubi.create.content.contraptions.components.actors.dispenser.DropperMovementBehaviour;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour;
|
||||
import com.simibubi.create.foundation.utility.CreateRegistry;
|
||||
import com.tterrag.registrate.util.nullness.NonNullConsumer;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.IRegistryDelegate;
|
||||
|
||||
public class AllMovementBehaviours {
|
||||
private static final Map<IRegistryDelegate<Block>, MovementBehaviour> BLOCK_BEHAVIOURS = new HashMap<>();
|
||||
private static final CreateRegistry<Block, MovementBehaviour> BLOCK_BEHAVIOURS = new CreateRegistry<>(ForgeRegistries.BLOCKS);
|
||||
private static final List<BehaviourProvider> GLOBAL_BEHAVIOURS = new ArrayList<>();
|
||||
|
||||
public static void registerBehaviour(ResourceLocation block, MovementBehaviour behaviour) {
|
||||
BLOCK_BEHAVIOURS.register(block, behaviour);
|
||||
}
|
||||
|
||||
public static void registerBehaviour(Block block, MovementBehaviour behaviour) {
|
||||
BLOCK_BEHAVIOURS.register(block, behaviour);
|
||||
}
|
||||
|
||||
@Deprecated(forRemoval = true)
|
||||
public static void registerBehaviour(IRegistryDelegate<Block> block, MovementBehaviour behaviour) {
|
||||
BLOCK_BEHAVIOURS.put(block, behaviour);
|
||||
registerBehaviour(block.name(), behaviour);
|
||||
}
|
||||
|
||||
public static void registerBehaviourProvider(BehaviourProvider provider) {
|
||||
|
@ -33,7 +43,7 @@ public class AllMovementBehaviours {
|
|||
|
||||
@Nullable
|
||||
public static MovementBehaviour getBehaviour(BlockState state) {
|
||||
MovementBehaviour behaviour = BLOCK_BEHAVIOURS.get(state.getBlock().delegate);
|
||||
MovementBehaviour behaviour = BLOCK_BEHAVIOURS.get(state.getBlock());
|
||||
if (behaviour != null) {
|
||||
return behaviour;
|
||||
}
|
||||
|
@ -50,16 +60,16 @@ public class AllMovementBehaviours {
|
|||
|
||||
public static <B extends Block> NonNullConsumer<? super B> movementBehaviour(
|
||||
MovementBehaviour behaviour) {
|
||||
return b -> registerBehaviour(b.delegate, behaviour);
|
||||
return b -> registerBehaviour(b, behaviour);
|
||||
}
|
||||
|
||||
static void registerDefaults() {
|
||||
registerBehaviour(Blocks.BELL.delegate, new BellMovementBehaviour());
|
||||
registerBehaviour(Blocks.CAMPFIRE.delegate, new CampfireMovementBehaviour());
|
||||
registerBehaviour(Blocks.BELL, new BellMovementBehaviour());
|
||||
registerBehaviour(Blocks.CAMPFIRE, new CampfireMovementBehaviour());
|
||||
|
||||
DispenserMovementBehaviour.gatherMovedDispenseItemBehaviours();
|
||||
registerBehaviour(Blocks.DISPENSER.delegate, new DispenserMovementBehaviour());
|
||||
registerBehaviour(Blocks.DROPPER.delegate, new DropperMovementBehaviour());
|
||||
registerBehaviour(Blocks.DISPENSER, new DispenserMovementBehaviour());
|
||||
registerBehaviour(Blocks.DROPPER, new DropperMovementBehaviour());
|
||||
}
|
||||
|
||||
public interface BehaviourProvider {
|
||||
|
|
|
@ -18,12 +18,13 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.client.particle.ParticleEngine;
|
||||
import net.minecraft.core.particles.ParticleOptions;
|
||||
import net.minecraft.core.particles.ParticleType;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.client.event.ParticleFactoryRegisterEvent;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public enum AllParticleTypes {
|
||||
|
||||
|
@ -39,19 +40,17 @@ public enum AllParticleTypes {
|
|||
SOUL(SoulParticle.Data::new),
|
||||
SOUL_BASE(SoulBaseParticle.Data::new),
|
||||
SOUL_PERIMETER(SoulParticle.PerimeterData::new),
|
||||
SOUL_EXPANDING_PERIMETER(SoulParticle.ExpandingPerimeterData::new)
|
||||
;
|
||||
SOUL_EXPANDING_PERIMETER(SoulParticle.ExpandingPerimeterData::new);
|
||||
|
||||
private ParticleEntry<?> entry;
|
||||
private final ParticleEntry<?> entry;
|
||||
|
||||
<D extends ParticleOptions> AllParticleTypes(Supplier<? extends ICustomParticleData<D>> typeFactory) {
|
||||
String asId = Lang.asId(this.name());
|
||||
entry = new ParticleEntry<>(new ResourceLocation(Create.ID, asId), typeFactory);
|
||||
String name = Lang.asId(name());
|
||||
entry = new ParticleEntry<>(name, typeFactory);
|
||||
}
|
||||
|
||||
public static void register(RegistryEvent.Register<ParticleType<?>> event) {
|
||||
for (AllParticleTypes particle : values())
|
||||
particle.entry.register(event.getRegistry());
|
||||
public static void register(IEventBus modEventBus) {
|
||||
ParticleEntry.REGISTER.register(modEventBus);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
|
@ -62,40 +61,31 @@ public enum AllParticleTypes {
|
|||
}
|
||||
|
||||
public ParticleType<?> get() {
|
||||
return entry.getOrCreateType();
|
||||
return entry.object.get();
|
||||
}
|
||||
|
||||
public String parameter() {
|
||||
return Lang.asId(name());
|
||||
return entry.name;
|
||||
}
|
||||
|
||||
private class ParticleEntry<D extends ParticleOptions> {
|
||||
Supplier<? extends ICustomParticleData<D>> typeFactory;
|
||||
ParticleType<D> type;
|
||||
ResourceLocation id;
|
||||
private static class ParticleEntry<D extends ParticleOptions> {
|
||||
private static final DeferredRegister<ParticleType<?>> REGISTER = DeferredRegister.create(ForgeRegistries.PARTICLE_TYPES, Create.ID);
|
||||
|
||||
public ParticleEntry(ResourceLocation id, Supplier<? extends ICustomParticleData<D>> typeFactory) {
|
||||
this.id = id;
|
||||
private final String name;
|
||||
private final Supplier<? extends ICustomParticleData<D>> typeFactory;
|
||||
private final RegistryObject<ParticleType<D>> object;
|
||||
|
||||
public ParticleEntry(String name, Supplier<? extends ICustomParticleData<D>> typeFactory) {
|
||||
this.name = name;
|
||||
this.typeFactory = typeFactory;
|
||||
}
|
||||
|
||||
void register(IForgeRegistry<ParticleType<?>> registry) {
|
||||
registry.register(getOrCreateType());
|
||||
}
|
||||
|
||||
ParticleType<D> getOrCreateType() {
|
||||
if (type != null)
|
||||
return type;
|
||||
type = typeFactory.get()
|
||||
.createType();
|
||||
type.setRegistryName(id);
|
||||
return type;
|
||||
object = REGISTER.register(name, () -> this.typeFactory.get().createType());
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
void registerFactory(ParticleEngine particles) {
|
||||
public void registerFactory(ParticleEngine particles) {
|
||||
typeFactory.get()
|
||||
.register(getOrCreateType(), particles);
|
||||
.register(object.get(), particles);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,6 +4,8 @@ import java.util.Optional;
|
|||
import java.util.Set;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import com.simibubi.create.compat.jei.ConversionRecipe;
|
||||
import com.simibubi.create.content.contraptions.components.crafter.MechanicalCraftingRecipe;
|
||||
|
@ -26,6 +28,7 @@ import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSeria
|
|||
import com.simibubi.create.content.curiosities.toolbox.ToolboxDyeingRecipe;
|
||||
import com.simibubi.create.content.curiosities.tools.SandPaperPolishingRecipe;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo;
|
||||
|
||||
import net.minecraft.core.Registry;
|
||||
|
@ -37,7 +40,10 @@ import net.minecraft.world.item.crafting.RecipeType;
|
|||
import net.minecraft.world.item.crafting.ShapedRecipe;
|
||||
import net.minecraft.world.item.crafting.SimpleRecipeSerializer;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public enum AllRecipeTypes implements IRecipeTypeInfo {
|
||||
|
||||
|
@ -60,34 +66,53 @@ public enum AllRecipeTypes implements IRecipeTypeInfo {
|
|||
MECHANICAL_CRAFTING(MechanicalCraftingRecipe.Serializer::new),
|
||||
SEQUENCED_ASSEMBLY(SequencedAssemblyRecipeSerializer::new),
|
||||
|
||||
TOOLBOX_DYEING(() -> new SimpleRecipeSerializer<>(ToolboxDyeingRecipe::new), RecipeType.CRAFTING);
|
||||
TOOLBOX_DYEING(() -> new SimpleRecipeSerializer<>(ToolboxDyeingRecipe::new), () -> RecipeType.CRAFTING, false);
|
||||
|
||||
;
|
||||
private final ResourceLocation id;
|
||||
private final RegistryObject<RecipeSerializer<?>> serializerObject;
|
||||
@Nullable
|
||||
private final RegistryObject<RecipeType<?>> typeObject;
|
||||
private final Supplier<RecipeType<?>> type;
|
||||
|
||||
private ResourceLocation id;
|
||||
private Supplier<RecipeSerializer<?>> serializerSupplier;
|
||||
private Supplier<RecipeType<?>> typeSupplier;
|
||||
private RecipeSerializer<?> serializer;
|
||||
private RecipeType<?> type;
|
||||
|
||||
AllRecipeTypes(Supplier<RecipeSerializer<?>> serializerSupplier, Supplier<RecipeType<?>> typeSupplier) {
|
||||
this.id = Create.asResource(Lang.asId(name()));
|
||||
this.serializerSupplier = serializerSupplier;
|
||||
this.typeSupplier = typeSupplier;
|
||||
}
|
||||
|
||||
AllRecipeTypes(Supplier<RecipeSerializer<?>> serializerSupplier, RecipeType<?> existingType) {
|
||||
this(serializerSupplier, () -> existingType);
|
||||
AllRecipeTypes(Supplier<RecipeSerializer<?>> serializerSupplier, Supplier<RecipeType<?>> typeSupplier, boolean registerType) {
|
||||
String name = Lang.asId(name());
|
||||
id = Create.asResource(name);
|
||||
serializerObject = Registers.SERIALIZER_REGISTER.register(name, serializerSupplier);
|
||||
if (registerType) {
|
||||
typeObject = Registers.TYPE_REGISTER.register(name, typeSupplier);
|
||||
type = typeObject;
|
||||
} else {
|
||||
typeObject = null;
|
||||
type = typeSupplier;
|
||||
}
|
||||
}
|
||||
|
||||
AllRecipeTypes(Supplier<RecipeSerializer<?>> serializerSupplier) {
|
||||
this.id = Create.asResource(Lang.asId(name()));
|
||||
this.serializerSupplier = serializerSupplier;
|
||||
this.typeSupplier = () -> simpleType(id);
|
||||
String name = Lang.asId(name());
|
||||
id = Create.asResource(name);
|
||||
serializerObject = Registers.SERIALIZER_REGISTER.register(name, serializerSupplier);
|
||||
typeObject = Registers.TYPE_REGISTER.register(name, () -> simpleType(id));
|
||||
type = typeObject;
|
||||
}
|
||||
|
||||
AllRecipeTypes(ProcessingRecipeFactory<?> processingFactory) {
|
||||
this(processingSerializer(processingFactory));
|
||||
this(() -> new ProcessingRecipeSerializer<>(processingFactory));
|
||||
}
|
||||
|
||||
public static <T extends Recipe<?>> RecipeType<T> simpleType(ResourceLocation id) {
|
||||
String stringId = id.toString();
|
||||
return new RecipeType<T>() {
|
||||
@Override
|
||||
public String toString() {
|
||||
return stringId;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static void register(IEventBus modEventBus) {
|
||||
ShapedRecipe.setCraftingSize(9, 9);
|
||||
Registers.SERIALIZER_REGISTER.register(modEventBus);
|
||||
Registers.TYPE_REGISTER.register(modEventBus);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -98,13 +123,13 @@ public enum AllRecipeTypes implements IRecipeTypeInfo {
|
|||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T extends RecipeSerializer<?>> T getSerializer() {
|
||||
return (T) serializer;
|
||||
return (T) serializerObject.get();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public <T extends RecipeType<?>> T getType() {
|
||||
return (T) type;
|
||||
return (T) type.get();
|
||||
}
|
||||
|
||||
public <C extends Container, T extends Recipe<C>> Optional<T> find(C inv, Level world) {
|
||||
|
@ -112,42 +137,21 @@ public enum AllRecipeTypes implements IRecipeTypeInfo {
|
|||
.getRecipeFor(getType(), inv, world);
|
||||
}
|
||||
|
||||
public static void register(RegistryEvent.Register<RecipeSerializer<?>> event) {
|
||||
ShapedRecipe.setCraftingSize(9, 9);
|
||||
|
||||
for (AllRecipeTypes r : AllRecipeTypes.values()) {
|
||||
r.serializer = r.serializerSupplier.get();
|
||||
r.type = r.typeSupplier.get();
|
||||
r.serializer.setRegistryName(r.id);
|
||||
event.getRegistry()
|
||||
.register(r.serializer);
|
||||
}
|
||||
}
|
||||
|
||||
private static Supplier<RecipeSerializer<?>> processingSerializer(ProcessingRecipeFactory<?> factory) {
|
||||
return () -> new ProcessingRecipeSerializer<>(factory);
|
||||
}
|
||||
|
||||
public static <T extends Recipe<?>> RecipeType<T> simpleType(ResourceLocation id) {
|
||||
String stringId = id.toString();
|
||||
return Registry.register(Registry.RECIPE_TYPE, id, new RecipeType<T>() {
|
||||
@Override
|
||||
public String toString() {
|
||||
return stringId;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static final Set<ResourceLocation> RECIPE_DENY_SET =
|
||||
ImmutableSet.of(new ResourceLocation("occultism", "spirit_trade"), new ResourceLocation("occultism", "ritual"));
|
||||
|
||||
public static boolean shouldIgnoreInAutomation(Recipe<?> recipe) {
|
||||
RecipeSerializer<?> serializer = recipe.getSerializer();
|
||||
if (serializer != null && RECIPE_DENY_SET.contains(serializer.getRegistryName()))
|
||||
if (serializer != null && RECIPE_DENY_SET.contains(RegisteredObjects.getKeyOrThrow(serializer)))
|
||||
return true;
|
||||
return recipe.getId()
|
||||
.getPath()
|
||||
.endsWith("_manual_only");
|
||||
}
|
||||
|
||||
private static class Registers {
|
||||
private static final DeferredRegister<RecipeSerializer<?>> SERIALIZER_REGISTER = DeferredRegister.create(ForgeRegistries.RECIPE_SERIALIZERS, Create.ID);
|
||||
private static final DeferredRegister<RecipeType<?>> TYPE_REGISTER = DeferredRegister.create(Registry.RECIPE_TYPE_REGISTRY, Create.ID);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,14 +6,12 @@ import java.util.ArrayList;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.simibubi.create.foundation.utility.Couple;
|
||||
import com.simibubi.create.foundation.utility.Pair;
|
||||
|
||||
import net.minecraft.core.Vec3i;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
|
@ -28,12 +26,15 @@ import net.minecraft.world.entity.player.Player;
|
|||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
//@EventBusSubscriber(bus = Bus.FORGE)
|
||||
public class AllSoundEvents {
|
||||
|
||||
public static final Map<ResourceLocation, SoundEntry> entries = new HashMap<>();
|
||||
public static final Map<ResourceLocation, SoundEntry> ALL = new HashMap<>();
|
||||
|
||||
public static final SoundEntry
|
||||
|
||||
SCHEMATICANNON_LAUNCH_BLOCK = create("schematicannon_launch_block").subtitle("Schematicannon fires")
|
||||
|
@ -306,20 +307,20 @@ public class AllSoundEvents {
|
|||
return new SoundEntryBuilder(id);
|
||||
}
|
||||
|
||||
public static void register(RegistryEvent.Register<SoundEvent> event) {
|
||||
IForgeRegistry<SoundEvent> registry = event.getRegistry();
|
||||
for (SoundEntry entry : entries.values())
|
||||
entry.register(registry);
|
||||
public static void prepare() {
|
||||
for (SoundEntry entry : ALL.values())
|
||||
entry.prepare();
|
||||
}
|
||||
|
||||
public static void prepare() {
|
||||
for (SoundEntry entry : entries.values())
|
||||
entry.prepare();
|
||||
public static void register(RegistryEvent.Register<SoundEvent> event) {
|
||||
IForgeRegistry<SoundEvent> registry = event.getRegistry();
|
||||
for (SoundEntry entry : ALL.values())
|
||||
entry.register(registry);
|
||||
}
|
||||
|
||||
public static JsonObject provideLangEntries() {
|
||||
JsonObject object = new JsonObject();
|
||||
for (SoundEntry entry : entries.values())
|
||||
for (SoundEntry entry : ALL.values())
|
||||
if (entry.hasSubtitle())
|
||||
object.addProperty(entry.getSubtitleKey(), entry.getSubtitle());
|
||||
return object;
|
||||
|
@ -370,7 +371,7 @@ public class AllSoundEvents {
|
|||
|
||||
try {
|
||||
JsonObject json = new JsonObject();
|
||||
entries.entrySet()
|
||||
ALL.entrySet()
|
||||
.stream()
|
||||
.sorted(Map.Entry.comparingByKey())
|
||||
.forEach(entry -> {
|
||||
|
@ -386,12 +387,15 @@ public class AllSoundEvents {
|
|||
|
||||
}
|
||||
|
||||
public record ConfiguredSoundEvent(Supplier<SoundEvent> event, float volume, float pitch) {
|
||||
}
|
||||
|
||||
public static class SoundEntryBuilder {
|
||||
|
||||
protected ResourceLocation id;
|
||||
protected String subtitle = "unregistered";
|
||||
protected SoundSource category = SoundSource.BLOCKS;
|
||||
protected List<Pair<SoundEvent, Couple<Float>>> wrappedEvents;
|
||||
protected List<ConfiguredSoundEvent> wrappedEvents;
|
||||
protected List<ResourceLocation> variants;
|
||||
protected int attenuationDistance;
|
||||
|
||||
|
@ -430,11 +434,15 @@ public class AllSoundEvents {
|
|||
return this;
|
||||
}
|
||||
|
||||
public SoundEntryBuilder playExisting(SoundEvent event, float volume, float pitch) {
|
||||
wrappedEvents.add(Pair.of(event, Couple.create(volume, pitch)));
|
||||
public SoundEntryBuilder playExisting(Supplier<SoundEvent> event, float volume, float pitch) {
|
||||
wrappedEvents.add(new ConfiguredSoundEvent(event, volume, pitch));
|
||||
return this;
|
||||
}
|
||||
|
||||
public SoundEntryBuilder playExisting(SoundEvent event, float volume, float pitch) {
|
||||
return playExisting(() -> event, volume, pitch);
|
||||
}
|
||||
|
||||
public SoundEntryBuilder playExisting(SoundEvent event) {
|
||||
return playExisting(event, 1, 1);
|
||||
}
|
||||
|
@ -443,7 +451,7 @@ public class AllSoundEvents {
|
|||
SoundEntry entry =
|
||||
wrappedEvents.isEmpty() ? new CustomSoundEntry(id, variants, subtitle, category, attenuationDistance)
|
||||
: new WrappedSoundEntry(id, subtitle, wrappedEvents, category, attenuationDistance);
|
||||
entries.put(entry.getId(), entry);
|
||||
ALL.put(entry.getId(), entry);
|
||||
return entry;
|
||||
}
|
||||
|
||||
|
@ -532,50 +540,53 @@ public class AllSoundEvents {
|
|||
|
||||
private static class WrappedSoundEntry extends SoundEntry {
|
||||
|
||||
private List<Pair<SoundEvent, Couple<Float>>> wrappedEvents;
|
||||
private List<Pair<SoundEvent, Couple<Float>>> compiledEvents;
|
||||
private List<ConfiguredSoundEvent> wrappedEvents;
|
||||
private List<CompiledSoundEvent> compiledEvents;
|
||||
|
||||
public WrappedSoundEntry(ResourceLocation id, String subtitle,
|
||||
List<Pair<SoundEvent, Couple<Float>>> wrappedEvents, SoundSource category, int attenuationDistance) {
|
||||
List<ConfiguredSoundEvent> wrappedEvents, SoundSource category, int attenuationDistance) {
|
||||
super(id, subtitle, category, attenuationDistance);
|
||||
this.wrappedEvents = wrappedEvents;
|
||||
compiledEvents = Lists.newArrayList();
|
||||
compiledEvents = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void prepare() {
|
||||
for (int i = 0; i < wrappedEvents.size(); i++) {
|
||||
ResourceLocation location = Create.asResource(getIdOf(i));
|
||||
SoundEvent sound = new SoundEvent(location).setRegistryName(location);
|
||||
compiledEvents.add(Pair.of(sound, wrappedEvents.get(i)
|
||||
.getSecond()));
|
||||
ConfiguredSoundEvent wrapped = wrappedEvents.get(i);
|
||||
ResourceLocation location = getIdOf(i);
|
||||
RegistryObject<SoundEvent> event = RegistryObject.create(location, ForgeRegistries.SOUND_EVENTS);
|
||||
compiledEvents.add(new CompiledSoundEvent(event, wrapped.volume(), wrapped.pitch()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void register(IForgeRegistry<SoundEvent> registry) {
|
||||
for (Pair<SoundEvent, Couple<Float>> pair : compiledEvents)
|
||||
registry.register(pair.getFirst());
|
||||
for (CompiledSoundEvent compiledEvent : compiledEvents) {
|
||||
ResourceLocation location = compiledEvent.event().getId();
|
||||
registry.register(new SoundEvent(location).setRegistryName(location));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public SoundEvent getMainEvent() {
|
||||
return compiledEvents.get(0)
|
||||
.getFirst();
|
||||
.event().get();
|
||||
}
|
||||
|
||||
protected String getIdOf(int i) {
|
||||
return i == 0 ? id.getPath() : id.getPath() + "_compounded_" + i;
|
||||
protected ResourceLocation getIdOf(int i) {
|
||||
return new ResourceLocation(id.getNamespace(), i == 0 ? id.getPath() : id.getPath() + "_compounded_" + i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(JsonObject json) {
|
||||
for (int i = 0; i < wrappedEvents.size(); i++) {
|
||||
Pair<SoundEvent, Couple<Float>> pair = wrappedEvents.get(i);
|
||||
ConfiguredSoundEvent event = wrappedEvents.get(i);
|
||||
JsonObject entry = new JsonObject();
|
||||
JsonArray list = new JsonArray();
|
||||
JsonObject s = new JsonObject();
|
||||
s.addProperty("name", pair.getFirst()
|
||||
s.addProperty("name", event.event()
|
||||
.get()
|
||||
.getLocation()
|
||||
.toString());
|
||||
s.addProperty("type", "event");
|
||||
|
@ -585,33 +596,35 @@ public class AllSoundEvents {
|
|||
entry.add("sounds", list);
|
||||
if (i == 0 && hasSubtitle())
|
||||
entry.addProperty("subtitle", getSubtitleKey());
|
||||
json.add(getIdOf(i), entry);
|
||||
json.add(getIdOf(i).getPath(), entry);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void play(Level world, Player entity, double x, double y, double z, float volume, float pitch) {
|
||||
for (Pair<SoundEvent, Couple<Float>> pair : compiledEvents) {
|
||||
Couple<Float> volPitch = pair.getSecond();
|
||||
world.playSound(entity, x, y, z, pair.getFirst(), category, volPitch.getFirst() * volume,
|
||||
volPitch.getSecond() * pitch);
|
||||
for (CompiledSoundEvent event : compiledEvents) {
|
||||
world.playSound(entity, x, y, z, event.event().get(), category, event.volume() * volume,
|
||||
event.pitch() * pitch);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playAt(Level world, double x, double y, double z, float volume, float pitch, boolean fade) {
|
||||
for (Pair<SoundEvent, Couple<Float>> pair : compiledEvents) {
|
||||
Couple<Float> volPitch = pair.getSecond();
|
||||
world.playLocalSound(x, y, z, pair.getFirst(), category, volPitch.getFirst() * volume,
|
||||
volPitch.getSecond() * pitch, fade);
|
||||
for (CompiledSoundEvent event : compiledEvents) {
|
||||
world.playLocalSound(x, y, z, event.event().get(), category, event.volume() * volume,
|
||||
event.pitch() * pitch, fade);
|
||||
}
|
||||
}
|
||||
|
||||
private record CompiledSoundEvent(RegistryObject<SoundEvent> event, float volume, float pitch) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static class CustomSoundEntry extends SoundEntry {
|
||||
|
||||
protected List<ResourceLocation> variants;
|
||||
protected SoundEvent event;
|
||||
protected RegistryObject<SoundEvent> event;
|
||||
|
||||
public CustomSoundEntry(ResourceLocation id, List<ResourceLocation> variants, String subtitle,
|
||||
SoundSource category, int attenuationDistance) {
|
||||
|
@ -621,17 +634,18 @@ public class AllSoundEvents {
|
|||
|
||||
@Override
|
||||
public void prepare() {
|
||||
event = new SoundEvent(id).setRegistryName(id);
|
||||
event = RegistryObject.create(id, ForgeRegistries.SOUND_EVENTS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void register(IForgeRegistry<SoundEvent> registry) {
|
||||
registry.register(event);
|
||||
ResourceLocation location = event.getId();
|
||||
registry.register(new SoundEvent(location).setRegistryName(location));
|
||||
}
|
||||
|
||||
@Override
|
||||
public SoundEvent getMainEvent() {
|
||||
return event;
|
||||
return event.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -663,12 +677,12 @@ public class AllSoundEvents {
|
|||
|
||||
@Override
|
||||
public void play(Level world, Player entity, double x, double y, double z, float volume, float pitch) {
|
||||
world.playSound(entity, x, y, z, event, category, volume, pitch);
|
||||
world.playSound(entity, x, y, z, event.get(), category, volume, pitch);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playAt(Level world, double x, double y, double z, float volume, float pitch, boolean fade) {
|
||||
world.playLocalSound(x, y, z, event, category, volume, pitch, fade);
|
||||
world.playLocalSound(x, y, z, event.get(), category, volume, pitch, fade);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
package com.simibubi.create;
|
||||
|
||||
import com.simibubi.create.content.schematics.SchematicProcessor;
|
||||
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProcessorType;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
import net.minecraftforge.registries.DeferredRegister;
|
||||
import net.minecraftforge.registries.RegistryObject;
|
||||
|
||||
public class AllStructureProcessorTypes {
|
||||
private static final DeferredRegister<StructureProcessorType<?>> REGISTER = DeferredRegister.create(Registry.STRUCTURE_PROCESSOR_REGISTRY, Create.ID);
|
||||
|
||||
public static final RegistryObject<StructureProcessorType<SchematicProcessor>> SCHEMATIC = REGISTER.register("schematic", () -> () -> SchematicProcessor.CODEC);
|
||||
|
||||
public static void register(IEventBus modEventBus) {
|
||||
REGISTER.register(modEventBus);
|
||||
}
|
||||
}
|
|
@ -112,9 +112,11 @@ public class AllTags {
|
|||
public enum AllBlockTags {
|
||||
|
||||
BRITTLE,
|
||||
FAN_HEATERS,
|
||||
CASING,
|
||||
FAN_TRANSPARENT,
|
||||
NON_MOVABLE,
|
||||
ORE_OVERRIDE_STONE,
|
||||
PASSIVE_BOILER_HEATERS,
|
||||
SAFE_NBT,
|
||||
SEATS,
|
||||
TOOLBOXES,
|
||||
|
@ -122,10 +124,6 @@ public class AllTags {
|
|||
WINDMILL_SAILS,
|
||||
WINDOWABLE,
|
||||
WRENCH_PICKUP,
|
||||
CASING,
|
||||
NON_MOVABLE,
|
||||
|
||||
PASSIVE_BOILER_HEATERS,
|
||||
|
||||
RELOCATION_NOT_SUPPORTED(FORGE),
|
||||
WG_STONE(FORGE),
|
||||
|
@ -208,10 +206,13 @@ public class AllTags {
|
|||
|
||||
BLAZE_BURNER_FUEL_REGULAR(MOD, "blaze_burner_fuel/regular"),
|
||||
BLAZE_BURNER_FUEL_SPECIAL(MOD, "blaze_burner_fuel/special"),
|
||||
CASING,
|
||||
CREATE_INGOTS,
|
||||
CRUSHED_ORES,
|
||||
PRESSURIZED_AIR_SOURCES,
|
||||
SANDPAPER,
|
||||
SEATS,
|
||||
SLEEPERS,
|
||||
TOOLBOXES,
|
||||
UPRIGHT_ON_BELT,
|
||||
VALVE_HANDLES,
|
||||
|
@ -219,9 +220,6 @@ public class AllTags {
|
|||
VANILLA_STRIPPED_WOOD,
|
||||
MODDED_STRIPPED_LOGS,
|
||||
MODDED_STRIPPED_WOOD,
|
||||
CASING,
|
||||
SLEEPERS,
|
||||
PRESSURIZED_AIR_SOURCES,
|
||||
|
||||
STRIPPED_LOGS(FORGE),
|
||||
STRIPPED_WOOD(FORGE),
|
||||
|
@ -402,10 +400,9 @@ public class AllTags {
|
|||
AllBlockTags.FAN_TRANSPARENT.includeAll(BlockTags.CAMPFIRES);
|
||||
AllBlockTags.FAN_TRANSPARENT.add(Blocks.IRON_BARS);
|
||||
|
||||
AllBlockTags.FAN_HEATERS.includeAll(BlockTags.FIRE);
|
||||
AllBlockTags.FAN_HEATERS.includeAll(BlockTags.CAMPFIRES);
|
||||
AllBlockTags.FAN_HEATERS.add(Blocks.MAGMA_BLOCK, Blocks.LAVA);
|
||||
AllBlockTags.FAN_HEATERS.includeIn(AllBlockTags.PASSIVE_BOILER_HEATERS);
|
||||
AllBlockTags.PASSIVE_BOILER_HEATERS.includeAll(BlockTags.FIRE);
|
||||
AllBlockTags.PASSIVE_BOILER_HEATERS.includeAll(BlockTags.CAMPFIRES);
|
||||
AllBlockTags.PASSIVE_BOILER_HEATERS.add(Blocks.MAGMA_BLOCK, Blocks.LAVA);
|
||||
|
||||
AllBlockTags.SAFE_NBT.includeAll(BlockTags.SIGNS);
|
||||
AllBlockTags.SAFE_NBT.includeAll(BlockTags.BANNERS);
|
||||
|
@ -415,7 +412,7 @@ public class AllTags {
|
|||
AllBlockTags.WRENCH_PICKUP.includeAll(BlockTags.PRESSURE_PLATES);
|
||||
AllBlockTags.WRENCH_PICKUP.add(Blocks.REDSTONE_WIRE, Blocks.REDSTONE_TORCH, Blocks.REPEATER, Blocks.LEVER,
|
||||
Blocks.COMPARATOR, Blocks.OBSERVER, Blocks.REDSTONE_WALL_TORCH, Blocks.PISTON, Blocks.STICKY_PISTON,
|
||||
Blocks.TRIPWIRE, Blocks.TRIPWIRE_HOOK, Blocks.DAYLIGHT_DETECTOR, Blocks.TARGET);
|
||||
Blocks.TRIPWIRE, Blocks.TRIPWIRE_HOOK, Blocks.DAYLIGHT_DETECTOR, Blocks.TARGET, Blocks.HOPPER);
|
||||
|
||||
AllBlockTags.ORE_OVERRIDE_STONE.includeAll(BlockTags.STONE_ORE_REPLACEABLES);
|
||||
|
||||
|
|
|
@ -21,7 +21,6 @@ import com.simibubi.create.content.logistics.block.mechanicalArm.AllArmInteracti
|
|||
import com.simibubi.create.content.logistics.trains.GlobalRailwayManager;
|
||||
import com.simibubi.create.content.palettes.AllPaletteBlocks;
|
||||
import com.simibubi.create.content.palettes.PalettesItemGroup;
|
||||
import com.simibubi.create.content.schematics.SchematicProcessor;
|
||||
import com.simibubi.create.content.schematics.ServerSchematicLoader;
|
||||
import com.simibubi.create.content.schematics.filtering.SchematicInstances;
|
||||
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
||||
|
@ -29,6 +28,7 @@ import com.simibubi.create.foundation.advancement.AllTriggers;
|
|||
import com.simibubi.create.foundation.block.CopperRegistries;
|
||||
import com.simibubi.create.foundation.command.ServerLagger;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.config.ContraptionMovementSetting;
|
||||
import com.simibubi.create.foundation.data.CreateRegistrate;
|
||||
import com.simibubi.create.foundation.data.LangMerger;
|
||||
import com.simibubi.create.foundation.data.recipe.MechanicalCraftingRecipeGen;
|
||||
|
@ -36,16 +36,19 @@ import com.simibubi.create.foundation.data.recipe.ProcessingRecipeGen;
|
|||
import com.simibubi.create.foundation.data.recipe.SequencedAssemblyRecipeGen;
|
||||
import com.simibubi.create.foundation.data.recipe.StandardRecipeGen;
|
||||
import com.simibubi.create.foundation.networking.AllPackets;
|
||||
import com.simibubi.create.foundation.worldgen.AllWorldFeatures;
|
||||
import com.simibubi.create.foundation.utility.CreateRegistry;
|
||||
import com.simibubi.create.foundation.worldgen.AllFeatures;
|
||||
import com.simibubi.create.foundation.worldgen.AllOreFeatureConfigEntries;
|
||||
import com.simibubi.create.foundation.worldgen.AllPlacementModifiers;
|
||||
import com.simibubi.create.foundation.worldgen.BuiltinRegistration;
|
||||
import com.tterrag.registrate.util.nullness.NonNullSupplier;
|
||||
|
||||
import net.minecraft.core.particles.ParticleType;
|
||||
import net.minecraft.data.DataGenerator;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.crafting.RecipeSerializer;
|
||||
import net.minecraft.world.level.levelgen.feature.Feature;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.common.ForgeMod;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
@ -57,14 +60,13 @@ import net.minecraftforge.fml.common.Mod;
|
|||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||
import net.minecraftforge.forge.event.lifecycle.GatherDataEvent;
|
||||
import net.minecraftforge.registries.DataSerializerEntry;
|
||||
|
||||
@Mod(Create.ID)
|
||||
public class Create {
|
||||
|
||||
public static final String ID = "create";
|
||||
public static final String NAME = "Create";
|
||||
public static final String VERSION = "0.5c";
|
||||
public static final String VERSION = "0.5d";
|
||||
|
||||
public static final Logger LOGGER = LogManager.getLogger();
|
||||
|
||||
|
@ -80,6 +82,8 @@ public class Create {
|
|||
public static final TorquePropagator TORQUE_PROPAGATOR = new TorquePropagator();
|
||||
public static final GlobalRailwayManager RAILWAYS = new GlobalRailwayManager();
|
||||
public static final ServerLagger LAGGER = new ServerLagger();
|
||||
/** Use the {@link Random} of a local {@link Level} or {@link Entity} or create one */
|
||||
@Deprecated
|
||||
public static final Random RANDOM = new Random();
|
||||
|
||||
private static final NonNullSupplier<CreateRegistrate> REGISTRATE = CreateRegistrate.lazy(ID);
|
||||
|
@ -91,6 +95,10 @@ public class Create {
|
|||
public static void onCtor() {
|
||||
ModLoadingContext modLoadingContext = ModLoadingContext.get();
|
||||
|
||||
IEventBus modEventBus = FMLJavaModLoadingContext.get()
|
||||
.getModEventBus();
|
||||
IEventBus forgeEventBus = MinecraftForge.EVENT_BUS;
|
||||
|
||||
AllSoundEvents.prepare();
|
||||
AllBlocks.register();
|
||||
AllItems.register();
|
||||
|
@ -100,39 +108,41 @@ public class Create {
|
|||
AllContainerTypes.register();
|
||||
AllEntityTypes.register();
|
||||
AllTileEntities.register();
|
||||
AllEnchantments.register();
|
||||
AllRecipeTypes.register(modEventBus);
|
||||
AllParticleTypes.register(modEventBus);
|
||||
AllStructureProcessorTypes.register(modEventBus);
|
||||
AllEntityDataSerializers.register(modEventBus);
|
||||
AllOreFeatureConfigEntries.init();
|
||||
AllFeatures.register(modEventBus);
|
||||
AllPlacementModifiers.register(modEventBus);
|
||||
BuiltinRegistration.register(modEventBus);
|
||||
|
||||
AllConfigs.register(modLoadingContext);
|
||||
|
||||
AllMovementBehaviours.registerDefaults();
|
||||
AllInteractionBehaviours.registerDefaults();
|
||||
AllDisplayBehaviours.registerDefaults();
|
||||
ContraptionMovementSetting.registerDefaults();
|
||||
AllArmInteractionPointTypes.register();
|
||||
AllWorldFeatures.register();
|
||||
AllEnchantments.register();
|
||||
AllConfigs.register(modLoadingContext);
|
||||
BlockSpoutingBehaviour.register();
|
||||
BlockSpoutingBehaviour.registerDefaults();
|
||||
|
||||
ForgeMod.enableMilkFluid();
|
||||
|
||||
CopperRegistries.inject();
|
||||
|
||||
IEventBus modEventBus = FMLJavaModLoadingContext.get()
|
||||
.getModEventBus();
|
||||
IEventBus forgeEventBus = MinecraftForge.EVENT_BUS;
|
||||
|
||||
modEventBus.addListener(Create::init);
|
||||
modEventBus.addListener(EventPriority.LOWEST, Create::gatherData);
|
||||
modEventBus.addGenericListener(Feature.class, AllWorldFeatures::registerOreFeatures);
|
||||
modEventBus.addGenericListener(RecipeSerializer.class, AllRecipeTypes::register);
|
||||
modEventBus.addGenericListener(ParticleType.class, AllParticleTypes::register);
|
||||
modEventBus.addGenericListener(SoundEvent.class, AllSoundEvents::register);
|
||||
modEventBus.addGenericListener(DataSerializerEntry.class, AllEntityDataSerializers::register);
|
||||
|
||||
forgeEventBus.addListener(EventPriority.HIGH, SlidingDoorBlock::stopItQuark);
|
||||
|
||||
|
||||
DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> CreateClient.onCtorClient(modEventBus, forgeEventBus));
|
||||
|
||||
Mods.CURIOS.executeIfInstalled(() -> Curios::init);
|
||||
}
|
||||
|
||||
public static void init(final FMLCommonSetupEvent event) {
|
||||
CreateRegistry.unwrapAll();
|
||||
AllPackets.registerPackets();
|
||||
SchematicInstances.register();
|
||||
BuiltinPotatoProjectileTypes.register();
|
||||
|
@ -140,22 +150,24 @@ public class Create {
|
|||
event.enqueueWork(() -> {
|
||||
AllAdvancements.register();
|
||||
AllTriggers.register();
|
||||
SchematicProcessor.register();
|
||||
AllWorldFeatures.registerFeatures();
|
||||
AllWorldFeatures.registerPlacementTypes();
|
||||
BoilerHeaters.registerDefaults();
|
||||
});
|
||||
}
|
||||
|
||||
public static void gatherData(GatherDataEvent event) {
|
||||
DataGenerator gen = event.getGenerator();
|
||||
gen.addProvider(new AllAdvancements(gen));
|
||||
gen.addProvider(new LangMerger(gen));
|
||||
gen.addProvider(AllSoundEvents.provider(gen));
|
||||
gen.addProvider(new StandardRecipeGen(gen));
|
||||
gen.addProvider(new MechanicalCraftingRecipeGen(gen));
|
||||
gen.addProvider(new SequencedAssemblyRecipeGen(gen));
|
||||
ProcessingRecipeGen.registerAll(gen);
|
||||
if (event.includeClient()) {
|
||||
gen.addProvider(new LangMerger(gen));
|
||||
gen.addProvider(AllSoundEvents.provider(gen));
|
||||
}
|
||||
if (event.includeServer()) {
|
||||
gen.addProvider(new AllAdvancements(gen));
|
||||
gen.addProvider(new StandardRecipeGen(gen));
|
||||
gen.addProvider(new MechanicalCraftingRecipeGen(gen));
|
||||
gen.addProvider(new SequencedAssemblyRecipeGen(gen));
|
||||
ProcessingRecipeGen.registerAll(gen);
|
||||
// AllOreFeatureConfigEntries.gatherData(event);
|
||||
}
|
||||
}
|
||||
|
||||
public static CreateRegistrate registrate() {
|
||||
|
|
|
@ -26,6 +26,7 @@ import com.simibubi.create.foundation.ponder.element.WorldSectionElement;
|
|||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.render.CreateContexts;
|
||||
import com.simibubi.create.foundation.render.SuperByteBufferCache;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.ModelSwapper;
|
||||
import com.simibubi.create.foundation.utility.ghost.GhostBlocks;
|
||||
import com.simibubi.create.foundation.utility.outliner.Outliner;
|
||||
|
@ -33,12 +34,10 @@ import com.simibubi.create.foundation.utility.outliner.Outliner;
|
|||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.client.GraphicsStatus;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.network.chat.ChatType;
|
||||
import net.minecraft.network.chat.ClickEvent;
|
||||
import net.minecraft.network.chat.ComponentUtils;
|
||||
import net.minecraft.network.chat.HoverEvent;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraftforge.client.gui.ForgeIngameGui;
|
||||
import net.minecraftforge.client.gui.OverlayRegistry;
|
||||
import net.minecraftforge.eventbus.api.IEventBus;
|
||||
|
@ -85,7 +84,6 @@ public class CreateClient {
|
|||
BUFFER_CACHE.registerCompartment(WorldSectionElement.DOC_WORLD_SECTION, 20);
|
||||
|
||||
AllKeys.register();
|
||||
// AllFluids.assignRenderLayers();
|
||||
AllBlockPartials.init();
|
||||
AllStitchedTextures.init();
|
||||
|
||||
|
@ -126,16 +124,16 @@ public class CreateClient {
|
|||
if (AllConfigs.CLIENT.ignoreFabulousWarning.get())
|
||||
return;
|
||||
|
||||
MutableComponent text = ComponentUtils.wrapInSquareBrackets(new TextComponent("WARN"))
|
||||
MutableComponent text = ComponentUtils.wrapInSquareBrackets(Components.literal("WARN"))
|
||||
.withStyle(ChatFormatting.GOLD)
|
||||
.append(new TextComponent(
|
||||
.append(Components.literal(
|
||||
" Some of Create's visual features will not be available while Fabulous graphics are enabled!"))
|
||||
.withStyle(style -> style
|
||||
.withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/create dismissFabulousWarning"))
|
||||
.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT,
|
||||
new TextComponent("Click here to disable this warning"))));
|
||||
Components.literal("Click here to disable this warning"))));
|
||||
|
||||
mc.gui.handleChat(ChatType.CHAT, text, mc.player.getUUID());
|
||||
mc.player.displayClientMessage(text, false);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ public abstract class BlockSpoutingBehaviour {
|
|||
public abstract int fillBlock(Level world, BlockPos pos, SpoutTileEntity spout, FluidStack availableFluid,
|
||||
boolean simulate);
|
||||
|
||||
public static void register() {
|
||||
public static void registerDefaults() {
|
||||
addCustomSpoutInteraction(Create.asResource("ticon_casting"), new SpoutCasting());
|
||||
}
|
||||
|
||||
|
|
|
@ -307,7 +307,7 @@ public class CreateJEI implements IModPlugin {
|
|||
|
||||
mysteryConversion = builder(ConversionRecipe.class)
|
||||
.addRecipes(() -> MysteriousItemConversionCategory.RECIPES)
|
||||
.itemIcon(AllItems.CHROMATIC_COMPOUND.get())
|
||||
.itemIcon(AllBlocks.PECULIAR_BELL.get())
|
||||
.emptyBackground(177, 50)
|
||||
.build("mystery_conversion", MysteriousItemConversionCategory::new);
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ import com.simibubi.create.AllFluids;
|
|||
import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
|
||||
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import mezz.jei.api.forge.ForgeTypes;
|
||||
|
@ -27,7 +28,6 @@ import mezz.jei.api.registration.IRecipeRegistration;
|
|||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.crafting.Recipe;
|
||||
|
@ -159,12 +159,12 @@ public abstract class CreateRecipeCategory<T extends Recipe<?>> implements IReci
|
|||
}
|
||||
|
||||
int amount = mbAmount == -1 ? fluidStack.getAmount() : mbAmount;
|
||||
Component text = new TextComponent(String.valueOf(amount)).append(Lang.translateDirect("generic.unit.millibuckets")).withStyle(ChatFormatting.GOLD);
|
||||
Component text = Components.literal(String.valueOf(amount)).append(Lang.translateDirect("generic.unit.millibuckets")).withStyle(ChatFormatting.GOLD);
|
||||
if (tooltip.isEmpty())
|
||||
tooltip.add(0, text);
|
||||
else {
|
||||
List<Component> siblings = tooltip.get(0).getSiblings();
|
||||
siblings.add(new TextComponent(" "));
|
||||
siblings.add(Components.literal(" "));
|
||||
siblings.add(text);
|
||||
}
|
||||
};
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler
|
|||
import com.simibubi.create.content.contraptions.processing.EmptyingRecipe;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder;
|
||||
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
|
||||
import mezz.jei.api.constants.VanillaTypes;
|
||||
import mezz.jei.api.forge.ForgeTypes;
|
||||
|
@ -68,10 +69,8 @@ public class ItemDrainCategory extends CreateRecipeCategory<EmptyingRecipe> {
|
|||
continue;
|
||||
|
||||
Ingredient ingredient = Ingredient.of(stack);
|
||||
ResourceLocation itemName = stack.getItem()
|
||||
.getRegistryName();
|
||||
ResourceLocation fluidName = extracted.getFluid()
|
||||
.getRegistryName();
|
||||
ResourceLocation itemName = RegisteredObjects.getKeyOrThrow(stack.getItem());
|
||||
ResourceLocation fluidName = RegisteredObjects.getKeyOrThrow(extracted.getFluid());
|
||||
|
||||
consumer.accept(new ProcessingRecipeBuilder<>(EmptyingRecipe::new,
|
||||
Create.asResource("empty_" + itemName.getNamespace() + "_" + itemName.getPath() + "_of_"
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.mojang.blaze3d.systems.RenderSystem;
|
|||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.compat.jei.category.animations.AnimatedCrafter;
|
||||
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
|
||||
import mezz.jei.api.constants.VanillaTypes;
|
||||
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
|
||||
|
@ -23,7 +24,7 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.client.gui.Font;
|
||||
import net.minecraft.client.renderer.entity.ItemRenderer;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.TooltipFlag;
|
||||
|
@ -183,7 +184,7 @@ public class MechanicalCraftingCategory extends CreateRecipeCategory<CraftingRec
|
|||
return ingredient.getTooltipLines(player, tooltipFlag);
|
||||
} catch (RuntimeException | LinkageError e) {
|
||||
List<Component> list = new ArrayList<>();
|
||||
TranslatableComponent crash = new TranslatableComponent("jei.tooltip.error.crash");
|
||||
MutableComponent crash = Components.translatable("jei.tooltip.error.crash");
|
||||
list.add(crash.withStyle(ChatFormatting.RED));
|
||||
return list;
|
||||
}
|
||||
|
|
|
@ -24,8 +24,8 @@ public class MysteriousItemConversionCategory extends CreateRecipeCategory<Conve
|
|||
static {
|
||||
RECIPES.add(ConversionRecipe.create(AllItems.EMPTY_BLAZE_BURNER.asStack(), AllBlocks.BLAZE_BURNER.asStack()));
|
||||
RECIPES.add(ConversionRecipe.create(AllBlocks.PECULIAR_BELL.asStack(), AllBlocks.HAUNTED_BELL.asStack()));
|
||||
RECIPES.add(ConversionRecipe.create(AllItems.CHROMATIC_COMPOUND.asStack(), AllItems.SHADOW_STEEL.asStack()));
|
||||
RECIPES.add(ConversionRecipe.create(AllItems.CHROMATIC_COMPOUND.asStack(), AllItems.REFINED_RADIANCE.asStack()));
|
||||
// RECIPES.add(ConversionRecipe.create(AllItems.CHROMATIC_COMPOUND.asStack(), AllItems.SHADOW_STEEL.asStack()));
|
||||
// RECIPES.add(ConversionRecipe.create(AllItems.CHROMATIC_COMPOUND.asStack(), AllItems.REFINED_RADIANCE.asStack()));
|
||||
}
|
||||
|
||||
public MysteriousItemConversionCategory(Info<ConversionRecipe> info) {
|
||||
|
|
|
@ -15,7 +15,9 @@ import com.simibubi.create.content.contraptions.itemAssembly.SequencedAssemblyRe
|
|||
import com.simibubi.create.content.contraptions.itemAssembly.SequencedRecipe;
|
||||
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
||||
import com.simibubi.create.foundation.gui.AllIcons;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
|
||||
import mezz.jei.api.gui.builder.IRecipeLayoutBuilder;
|
||||
import mezz.jei.api.gui.ingredient.IRecipeSlotsView;
|
||||
|
@ -25,8 +27,7 @@ import net.minecraft.ChatFormatting;
|
|||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.Font;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
@ParametersAreNonnullByDefault
|
||||
|
@ -56,8 +57,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory<SequencedAss
|
|||
return;
|
||||
|
||||
float chance = recipe.getOutputChance();
|
||||
tooltip.add(1, Lang.translateDirect("recipe.processing.chance", chance < 0.01 ? "<1" : (int) (chance * 100))
|
||||
.withStyle(ChatFormatting.GOLD));
|
||||
tooltip.add(1, chanceComponent(chance));
|
||||
});
|
||||
|
||||
int width = 0;
|
||||
|
@ -75,9 +75,8 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory<SequencedAss
|
|||
}
|
||||
|
||||
private SequencedAssemblySubCategory getSubCategory(SequencedRecipe<?> sequencedRecipe) {
|
||||
return subCategories.computeIfAbsent(sequencedRecipe.getRecipe()
|
||||
.getSerializer()
|
||||
.getRegistryName(),
|
||||
return subCategories.computeIfAbsent(RegisteredObjects.getKeyOrThrow(sequencedRecipe.getRecipe()
|
||||
.getSerializer()),
|
||||
rl -> sequencedRecipe.getAsAssemblyRecipe()
|
||||
.getJEISubCategory()
|
||||
.get()
|
||||
|
@ -100,7 +99,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory<SequencedAss
|
|||
AllGuiTextures.JEI_LONG_ARROW.render(matrixStack, 52 + xOffset, 79);
|
||||
if (!singleOutput) {
|
||||
AllGuiTextures.JEI_CHANCE_SLOT.render(matrixStack, 150 + xOffset, 75);
|
||||
Component component = new TextComponent("?").withStyle(ChatFormatting.BOLD);
|
||||
Component component = Components.literal("?").withStyle(ChatFormatting.BOLD);
|
||||
font.drawShadow(matrixStack, component, font.width(component) / -2 + 8 + 150 + xOffset, 2 + 78,
|
||||
0xefefef);
|
||||
}
|
||||
|
@ -109,7 +108,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory<SequencedAss
|
|||
matrixStack.pushPose();
|
||||
matrixStack.translate(15, 9, 0);
|
||||
AllIcons.I_SEQ_REPEAT.render(matrixStack, 50 + xOffset, 75);
|
||||
Component repeat = new TextComponent("x" + recipe.getLoops());
|
||||
Component repeat = Components.literal("x" + recipe.getLoops());
|
||||
font.draw(matrixStack, repeat, 66 + xOffset, 80, 0x888888);
|
||||
matrixStack.popPose();
|
||||
}
|
||||
|
@ -129,7 +128,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory<SequencedAss
|
|||
SequencedRecipe<?> sequencedRecipe = sequence.get(i);
|
||||
SequencedAssemblySubCategory subCategory = getSubCategory(sequencedRecipe);
|
||||
int subWidth = subCategory.getWidth();
|
||||
TextComponent component = new TextComponent("" + romans[Math.min(i, 6)]);
|
||||
MutableComponent component = Components.literal("" + romans[Math.min(i, 6)]);
|
||||
font.draw(matrixStack, component, font.width(component) / -2 + subWidth / 2, 2, 0x888888);
|
||||
subCategory.draw(sequencedRecipe, matrixStack, mouseX, mouseY, i);
|
||||
matrixStack.translate(subWidth + margin, 0, 0);
|
||||
|
@ -144,7 +143,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory<SequencedAss
|
|||
public List<Component> getTooltipStrings(SequencedAssemblyRecipe recipe, IRecipeSlotsView iRecipeSlotsView, double mouseX, double mouseY) {
|
||||
List<Component> tooltip = new ArrayList<>();
|
||||
|
||||
TranslatableComponent junk = Lang.translateDirect("recipe.assembly.junk");
|
||||
MutableComponent junk = Lang.translateDirect("recipe.assembly.junk");
|
||||
|
||||
boolean singleOutput = recipe.getOutputChance() == 1;
|
||||
boolean willRepeat = recipe.getLoops() > 1;
|
||||
|
@ -157,8 +156,7 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory<SequencedAss
|
|||
if (!singleOutput && mouseX >= minX && mouseX < maxX && mouseY >= minY && mouseY < maxY) {
|
||||
float chance = recipe.getOutputChance();
|
||||
tooltip.add(junk);
|
||||
tooltip.add(Lang.translateDirect("recipe.processing.chance", chance < 0.01 ? "<1" : 100 - (int) (chance * 100))
|
||||
.withStyle(ChatFormatting.GOLD));
|
||||
tooltip.add(chanceComponent(1 - chance));
|
||||
return tooltip;
|
||||
}
|
||||
|
||||
|
@ -198,4 +196,10 @@ public class SequencedAssemblyCategory extends CreateRecipeCategory<SequencedAss
|
|||
|
||||
return tooltip;
|
||||
}
|
||||
|
||||
protected MutableComponent chanceComponent(float chance) {
|
||||
String number = chance < 0.01 ? "<1" : chance > 0.99 ? ">99" : String.valueOf(Math.round(chance * 100));
|
||||
return Lang.translateDirect("recipe.processing.chance", number)
|
||||
.withStyle(ChatFormatting.GOLD);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler
|
|||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder;
|
||||
import com.simibubi.create.foundation.fluid.FluidIngredient;
|
||||
import com.simibubi.create.foundation.gui.AllGuiTextures;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
|
||||
import mezz.jei.api.constants.VanillaTypes;
|
||||
import mezz.jei.api.forge.ForgeTypes;
|
||||
|
@ -77,10 +78,8 @@ public class SpoutCategory extends CreateRecipeCategory<FillingRecipe> {
|
|||
return;
|
||||
|
||||
Ingredient bucket = Ingredient.of(stack);
|
||||
ResourceLocation itemName = stack.getItem()
|
||||
.getRegistryName();
|
||||
ResourceLocation fluidName = fluidCopy.getFluid()
|
||||
.getRegistryName();
|
||||
ResourceLocation itemName = RegisteredObjects.getKeyOrThrow(stack.getItem());
|
||||
ResourceLocation fluidName = RegisteredObjects.getKeyOrThrow(fluidCopy.getFluid());
|
||||
consumer.accept(new ProcessingRecipeBuilder<>(FillingRecipe::new,
|
||||
Create.asResource("fill_" + itemName.getNamespace() + "_" + itemName.getPath()
|
||||
+ "_with_" + fluidName.getNamespace() + "_" + fluidName.getPath()))
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.simibubi.create.compat.Mods;
|
|||
import com.simibubi.create.content.contraptions.fluids.actors.SpoutTileEntity;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.fluid.FluidHelper;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
|
@ -40,8 +41,7 @@ public class SpoutCasting extends BlockSpoutingBehaviour {
|
|||
if (handler.getTanks() != 1)
|
||||
return 0;
|
||||
|
||||
ResourceLocation registryName = te.getType()
|
||||
.getRegistryName();
|
||||
ResourceLocation registryName = RegisteredObjects.getKeyOrThrow(te.getType());
|
||||
if (!registryName.equals(TABLE) && !registryName.equals(BASIN))
|
||||
return 0;
|
||||
if (!handler.isFluidValid(0, availableFluid))
|
||||
|
|
|
@ -26,9 +26,7 @@ public class TorquePropagator {
|
|||
public KineticNetwork getOrCreateNetworkFor(KineticTileEntity te) {
|
||||
Long id = te.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.computeIfAbsent(te.getLevel(), $ -> new HashMap<>());
|
||||
if (id == null)
|
||||
return null;
|
||||
|
||||
|
|
|
@ -145,8 +145,8 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void writeSafe(CompoundTag compound, boolean clientPacket) {
|
||||
super.writeSafe(compound, clientPacket);
|
||||
public void writeSafe(CompoundTag compound) {
|
||||
super.writeSafe(compound);
|
||||
if (input == null)
|
||||
return;
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
|
@ -159,12 +158,16 @@ public class RecipeGridHandler {
|
|||
}
|
||||
|
||||
public static boolean isRecipeAllowed(CraftingRecipe recipe, CraftingContainer inventory) {
|
||||
if (!AllConfigs.SERVER.recipes.allowBiggerFireworksInCrafter.get() && recipe instanceof FireworkRocketRecipe) {
|
||||
int numItems = IntStream.range(0, inventory.getContainerSize())
|
||||
.map(i -> inventory.getItem(i).isEmpty() ? 0 : 1)
|
||||
.sum();
|
||||
if (numItems > 9)
|
||||
if (recipe instanceof FireworkRocketRecipe) {
|
||||
int numItems = 0;
|
||||
for (int i = 0; i < inventory.getContainerSize(); i++) {
|
||||
if (!inventory.getItem(i).isEmpty()) {
|
||||
numItems++;
|
||||
}
|
||||
}
|
||||
if (numItems > AllConfigs.SERVER.recipes.maxFireworkIngredientsInCrafter.get()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (AllRecipeTypes.shouldIgnoreInAutomation(recipe))
|
||||
return false;
|
||||
|
|
|
@ -12,11 +12,10 @@ import com.simibubi.create.content.contraptions.itemAssembly.IAssemblyRecipe;
|
|||
import com.simibubi.create.content.contraptions.processing.ItemApplicationRecipe;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
|
@ -59,9 +58,9 @@ public class DeployerApplicationRecipe extends ItemApplicationRecipe implements
|
|||
ItemStack[] matchingStacks = ingredients.get(1)
|
||||
.getItems();
|
||||
if (matchingStacks.length == 0)
|
||||
return new TextComponent("Invalid");
|
||||
return Components.literal("Invalid");
|
||||
return Lang.translateDirect("recipe.assembly.deploying_item",
|
||||
new TranslatableComponent(matchingStacks[0].getDescriptionId()).getString());
|
||||
Components.translatable(matchingStacks[0].getDescriptionId()).getString());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -51,6 +51,7 @@ public class DeployerFakePlayer extends FakePlayer {
|
|||
Pair<BlockPos, Float> blockBreakingProgress;
|
||||
ItemStack spawnedItemEffects;
|
||||
public boolean placedTracks;
|
||||
public boolean onMinecartContraption;
|
||||
|
||||
public DeployerFakePlayer(ServerLevel world) {
|
||||
super(world, DEPLOYER_PROFILE);
|
||||
|
|
|
@ -275,6 +275,7 @@ public class DeployerMovementBehaviour implements MovementBehaviour {
|
|||
private DeployerFakePlayer getPlayer(MovementContext context) {
|
||||
if (!(context.temporaryData instanceof DeployerFakePlayer) && context.world instanceof ServerLevel) {
|
||||
DeployerFakePlayer deployerFakePlayer = new DeployerFakePlayer((ServerLevel) context.world);
|
||||
deployerFakePlayer.onMinecartContraption = context.contraption instanceof MountedContraption;
|
||||
deployerFakePlayer.getInventory()
|
||||
.load(context.tileData.getList("Inventory", Tag.TAG_COMPOUND));
|
||||
if (context.data.contains("HeldItem"))
|
||||
|
|
|
@ -6,6 +6,7 @@ import com.simibubi.create.AllItems;
|
|||
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovingInteractionBehaviour;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.mounted.MountedContraption;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
@ -55,6 +56,7 @@ public class DeployerMovingInteraction extends MovingInteractionBehaviour {
|
|||
|
||||
if (!(ctx.temporaryData instanceof DeployerFakePlayer) && ctx.world instanceof ServerLevel) {
|
||||
DeployerFakePlayer deployerFakePlayer = new DeployerFakePlayer((ServerLevel) ctx.world);
|
||||
deployerFakePlayer.onMinecartContraption = ctx.contraption instanceof MountedContraption;
|
||||
deployerFakePlayer.getInventory()
|
||||
.load(ctx.tileData.getList("Inventory", Tag.TAG_COMPOUND));
|
||||
ctx.temporaryData = fake = deployerFakePlayer;
|
||||
|
|
|
@ -23,6 +23,7 @@ import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
|||
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.filtering.FilteringBehaviour;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
@ -35,7 +36,6 @@ import net.minecraft.nbt.CompoundTag;
|
|||
import net.minecraft.nbt.ListTag;
|
||||
import net.minecraft.nbt.Tag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
|
@ -403,6 +403,12 @@ public class DeployerTileEntity extends KineticTileEntity {
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeSafe(CompoundTag tag) {
|
||||
NBTHelper.writeEnum(tag, "Mode", mode);
|
||||
super.writeSafe(tag);
|
||||
}
|
||||
|
||||
private IItemHandlerModifiable createHandler() {
|
||||
return new DeployerItemHandler(this);
|
||||
}
|
||||
|
@ -474,13 +480,13 @@ public class DeployerTileEntity extends KineticTileEntity {
|
|||
|
||||
if (!heldItem.isEmpty())
|
||||
Lang.translate("tooltip.deployer.contains",
|
||||
new TranslatableComponent(heldItem.getDescriptionId()).getString(), heldItem.getCount())
|
||||
Components.translatable(heldItem.getDescriptionId()).getString(), heldItem.getCount())
|
||||
.style(ChatFormatting.GREEN)
|
||||
.forGoggles(tooltip);
|
||||
|
||||
float stressAtBase = calculateStressApplied();
|
||||
if (StressImpact.isEnabled() && !Mth.equal(stressAtBase, 0)) {
|
||||
tooltip.add(Lang.empty());
|
||||
tooltip.add(Components.immutableEmpty());
|
||||
addStressImpactStats(tooltip, stressAtBase);
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.util.List;
|
|||
|
||||
import com.simibubi.create.content.contraptions.base.GeneratingKineticTileEntity;
|
||||
import com.simibubi.create.foundation.block.BlockStressValues;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
|
@ -81,7 +82,7 @@ public class PoweredShaftTileEntity extends GeneratingKineticTileEntity {
|
|||
if (enginePos != null && capacityKey != null) {
|
||||
compound.put("EnginePos", NbtUtils.writeBlockPos(enginePos));
|
||||
compound.putFloat("EnginePower", engineEfficiency);
|
||||
compound.putString("EngineType", capacityKey.getRegistryName()
|
||||
compound.putString("EngineType", RegisteredObjects.getKeyOrThrow(capacityKey)
|
||||
.toString());
|
||||
}
|
||||
super.write(compound, clientPacket);
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.simibubi.create.foundation.advancement.AllAdvancements;
|
|||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.TileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
|
@ -25,7 +26,7 @@ import net.minecraft.core.Direction;
|
|||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
|
@ -110,7 +111,7 @@ public class WhistleTileEntity extends SmartTileEntity implements IHaveGoggleInf
|
|||
String[] pitches = Lang.translateDirect("generic.notes")
|
||||
.getString()
|
||||
.split(";");
|
||||
TextComponent textComponent = new TextComponent(spacing);
|
||||
MutableComponent textComponent = Components.literal(spacing);
|
||||
tooltip.add(textComponent.append(Lang.translateDirect("generic.pitch", pitches[pitch % pitches.length])));
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -831,7 +831,7 @@ public abstract class AbstractContraptionEntity extends Entity implements IEntit
|
|||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public abstract void doLocalTransforms(float partialTicks, PoseStack[] matrixStacks);
|
||||
public abstract void applyLocalTransforms(PoseStack matrixStack, float partialTicks);
|
||||
|
||||
public static class ContraptionRotationState {
|
||||
public static final ContraptionRotationState NONE = new ContraptionRotationState();
|
||||
|
|
|
@ -21,6 +21,8 @@ import java.util.function.BiConsumer;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.minecraft.world.level.block.DoorBlock;
|
||||
|
||||
import org.apache.commons.lang3.tuple.MutablePair;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
|
@ -1020,7 +1022,7 @@ public abstract class Contraption {
|
|||
.isEmpty()
|
||||
&& !blockState.getCollisionShape(world, targetPos)
|
||||
.isEmpty())) {
|
||||
if (targetPos.getY() == 0)
|
||||
if (targetPos.getY() == world.getMinBuildHeight())
|
||||
targetPos = targetPos.above();
|
||||
world.levelEvent(2001, targetPos, Block.getId(state));
|
||||
Block.dropResources(state, world, targetPos, null);
|
||||
|
@ -1045,7 +1047,7 @@ public abstract class Contraption {
|
|||
boolean verticalRotation = transform.rotationAxis == null || transform.rotationAxis.isHorizontal();
|
||||
verticalRotation = verticalRotation && transform.rotation != Rotation.NONE;
|
||||
if (verticalRotation) {
|
||||
if (state.getBlock() instanceof RopeBlock || state.getBlock() instanceof MagnetBlock)
|
||||
if (state.getBlock() instanceof RopeBlock || state.getBlock() instanceof MagnetBlock || state.getBlock() instanceof DoorBlock)
|
||||
world.destroyBlock(targetPos, true);
|
||||
}
|
||||
|
||||
|
|
|
@ -226,15 +226,14 @@ public class ControlledContraptionEntity extends AbstractContraptionEntity {
|
|||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void doLocalTransforms(float partialTicks, PoseStack[] matrixStacks) {
|
||||
public void applyLocalTransforms(PoseStack matrixStack, float partialTicks) {
|
||||
float angle = getAngle(partialTicks);
|
||||
Axis axis = getRotationAxis();
|
||||
|
||||
for (PoseStack stack : matrixStacks)
|
||||
TransformStack.cast(stack)
|
||||
.nudge(getId())
|
||||
.centre()
|
||||
.rotate(angle, axis)
|
||||
.unCentre();
|
||||
TransformStack.cast(matrixStack)
|
||||
.nudge(getId())
|
||||
.centre()
|
||||
.rotate(angle, axis)
|
||||
.unCentre();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,11 +5,11 @@ import java.util.List;
|
|||
|
||||
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
|
||||
import com.simibubi.create.foundation.item.TooltipHelper;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
|
||||
public interface IDisplayAssemblyExceptions {
|
||||
|
||||
|
@ -19,7 +19,7 @@ public interface IDisplayAssemblyExceptions {
|
|||
return false;
|
||||
|
||||
if (!tooltip.isEmpty())
|
||||
tooltip.add(TextComponent.EMPTY);
|
||||
tooltip.add(Components.immutableEmpty());
|
||||
|
||||
tooltip.add(IHaveGoggleInformation.componentSpacing.plainCopy()
|
||||
.append(Lang.translateDirect("gui.assembly.exception")
|
||||
|
|
|
@ -514,52 +514,48 @@ public class OrientedContraptionEntity extends AbstractContraptionEntity {
|
|||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void doLocalTransforms(float partialTicks, PoseStack[] matrixStacks) {
|
||||
public void applyLocalTransforms(PoseStack matrixStack, float partialTicks) {
|
||||
float angleInitialYaw = getInitialYaw();
|
||||
float angleYaw = getViewYRot(partialTicks);
|
||||
float anglePitch = getViewXRot(partialTicks);
|
||||
|
||||
for (PoseStack stack : matrixStacks)
|
||||
stack.translate(-.5f, 0, -.5f);
|
||||
matrixStack.translate(-.5f, 0, -.5f);
|
||||
|
||||
Entity ridingEntity = getVehicle();
|
||||
if (ridingEntity instanceof AbstractMinecart)
|
||||
repositionOnCart(partialTicks, matrixStacks, ridingEntity);
|
||||
repositionOnCart(matrixStack, partialTicks, ridingEntity);
|
||||
else if (ridingEntity instanceof AbstractContraptionEntity) {
|
||||
if (ridingEntity.getVehicle() instanceof AbstractMinecart)
|
||||
repositionOnCart(partialTicks, matrixStacks, ridingEntity.getVehicle());
|
||||
repositionOnCart(matrixStack, partialTicks, ridingEntity.getVehicle());
|
||||
else
|
||||
repositionOnContraption(partialTicks, matrixStacks, ridingEntity);
|
||||
repositionOnContraption(matrixStack, partialTicks, ridingEntity);
|
||||
}
|
||||
|
||||
for (PoseStack stack : matrixStacks)
|
||||
TransformStack.cast(stack)
|
||||
.nudge(getId())
|
||||
.centre()
|
||||
.rotateY(angleYaw)
|
||||
.rotateZ(anglePitch)
|
||||
.rotateY(angleInitialYaw)
|
||||
.unCentre();
|
||||
TransformStack.cast(matrixStack)
|
||||
.nudge(getId())
|
||||
.centre()
|
||||
.rotateY(angleYaw)
|
||||
.rotateZ(anglePitch)
|
||||
.rotateY(angleInitialYaw)
|
||||
.unCentre();
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
private void repositionOnContraption(float partialTicks, PoseStack[] matrixStacks, Entity ridingEntity) {
|
||||
private void repositionOnContraption(PoseStack matrixStack, float partialTicks, Entity ridingEntity) {
|
||||
Vec3 pos = getContraptionOffset(partialTicks, ridingEntity);
|
||||
for (PoseStack stack : matrixStacks)
|
||||
stack.translate(pos.x, pos.y, pos.z);
|
||||
matrixStack.translate(pos.x, pos.y, pos.z);
|
||||
}
|
||||
|
||||
// Minecarts do not always render at their exact location, so the contraption
|
||||
// has to adjust aswell
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
private void repositionOnCart(float partialTicks, PoseStack[] matrixStacks, Entity ridingEntity) {
|
||||
private void repositionOnCart(PoseStack matrixStack, float partialTicks, Entity ridingEntity) {
|
||||
Vec3 cartPos = getCartOffset(partialTicks, ridingEntity);
|
||||
|
||||
if (cartPos == Vec3.ZERO)
|
||||
return;
|
||||
|
||||
for (PoseStack stack : matrixStacks)
|
||||
stack.translate(cartPos.x, cartPos.y, cartPos.z);
|
||||
matrixStack.translate(cartPos.x, cartPos.y, cartPos.z);
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
|
|
|
@ -3,8 +3,8 @@ package com.simibubi.create.content.contraptions.components.structureMovement.ch
|
|||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.AllSoundEvents;
|
||||
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.components.structureMovement.StructureTransform;
|
||||
import com.simibubi.create.content.contraptions.wrench.IWrenchable;
|
||||
import com.simibubi.create.foundation.block.ITE;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
|
|
|
@ -176,7 +176,7 @@ public class GantryContraptionEntity extends AbstractContraptionEntity {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void doLocalTransforms(float partialTicks, PoseStack[] matrixStacks) { }
|
||||
public void applyLocalTransforms(PoseStack matrixStack, float partialTicks) { }
|
||||
|
||||
public void updateClientMotion() {
|
||||
float modifier = movementAxis.getAxisDirection()
|
||||
|
|
|
@ -10,6 +10,7 @@ import com.simibubi.create.AllSpecialTextures;
|
|||
import com.simibubi.create.CreateClient;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.chassis.AbstractChassisBlock;
|
||||
import com.simibubi.create.foundation.networking.AllPackets;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.RaycastHelper;
|
||||
|
||||
|
@ -18,7 +19,6 @@ import net.minecraft.client.multiplayer.ClientLevel;
|
|||
import net.minecraft.client.player.LocalPlayer;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.sounds.SoundEvents;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -62,7 +62,7 @@ public class SuperGlueSelectionHandler {
|
|||
|
||||
if (clusterCooldown > 0) {
|
||||
if (clusterCooldown == 25)
|
||||
player.displayClientMessage(TextComponent.EMPTY, true);
|
||||
player.displayClientMessage(Components.immutableEmpty(), true);
|
||||
CreateClient.OUTLINER.keep(clusterOutlineSlot);
|
||||
clusterCooldown--;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import javax.annotation.Nullable;
|
|||
import com.google.common.io.ByteArrayDataOutput;
|
||||
import com.google.common.io.ByteStreams;
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.content.contraptions.components.deployer.DeployerFakePlayer;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.OrientedContraptionEntity;
|
||||
|
@ -208,6 +209,8 @@ public class MinecartContraptionItem extends Item {
|
|||
return;
|
||||
if (!entity.isAlive())
|
||||
return;
|
||||
if (player instanceof DeployerFakePlayer dfp && dfp.onMinecartContraption)
|
||||
return;
|
||||
AbstractMinecart cart = (AbstractMinecart) entity;
|
||||
Type type = cart.getMinecartType();
|
||||
if (type != Type.RIDEABLE && type != Type.FURNACE && type != Type.CHEST)
|
||||
|
|
|
@ -34,7 +34,7 @@ public class ContraptionMatrices {
|
|||
this.viewProjection.pushPose();
|
||||
transform(this.viewProjection, viewProjection);
|
||||
model.pushPose();
|
||||
entity.doLocalTransforms(partialTicks, new PoseStack[] { model });
|
||||
entity.applyLocalTransforms(model, partialTicks);
|
||||
|
||||
modelViewProjection.pushPose();
|
||||
transform(modelViewProjection, viewProjection);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.simibubi.create.content.contraptions.fluids;
|
||||
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.tags.FluidTags;
|
||||
|
@ -43,8 +44,7 @@ public class FluidBottleItemHook extends Item {
|
|||
return;
|
||||
|
||||
FluidState fluidState = world.getFluidState(blockpos);
|
||||
if (fluidState.is(FluidTags.WATER) && fluidState.getType()
|
||||
.getRegistryName()
|
||||
if (fluidState.is(FluidTags.WATER) && RegisteredObjects.getKeyOrThrow(fluidState.getType())
|
||||
.getNamespace()
|
||||
.equals(Create.ID)) {
|
||||
event.setCancellationResult(InteractionResult.PASS);
|
||||
|
|
|
@ -4,6 +4,7 @@ import java.lang.ref.WeakReference;
|
|||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.IdentityHashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -183,6 +184,8 @@ public class FluidNetwork {
|
|||
}
|
||||
|
||||
int flowSpeed = transferSpeed;
|
||||
Map<IFluidHandler, Integer> accumulatedFill = new IdentityHashMap<>();
|
||||
|
||||
for (boolean simulate : Iterate.trueAndFalse) {
|
||||
FluidAction action = simulate ? FluidAction.SIMULATE : FluidAction.EXECUTE;
|
||||
|
||||
|
@ -211,8 +214,9 @@ public class FluidNetwork {
|
|||
return;
|
||||
if (simulate)
|
||||
flowSpeed = transfer.getAmount();
|
||||
|
||||
|
||||
List<Pair<BlockFace, LazyOptional<IFluidHandler>>> availableOutputs = new ArrayList<>(targets);
|
||||
|
||||
while (!availableOutputs.isEmpty() && transfer.getAmount() > 0) {
|
||||
int dividedTransfer = transfer.getAmount() / availableOutputs.size();
|
||||
int remainder = transfer.getAmount() % availableOutputs.size();
|
||||
|
@ -234,12 +238,22 @@ public class FluidNetwork {
|
|||
iterator.remove();
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
int simulatedTransfer = toTransfer;
|
||||
if (simulate)
|
||||
simulatedTransfer += accumulatedFill.getOrDefault(targetHandler, 0);
|
||||
|
||||
FluidStack divided = transfer.copy();
|
||||
divided.setAmount(toTransfer);
|
||||
divided.setAmount(simulatedTransfer);
|
||||
int fill = targetHandler.fill(divided, action);
|
||||
|
||||
if (simulate) {
|
||||
accumulatedFill.put(targetHandler, Integer.valueOf(fill));
|
||||
fill -= simulatedTransfer - toTransfer;
|
||||
}
|
||||
|
||||
transfer.setAmount(transfer.getAmount() - fill);
|
||||
if (fill < toTransfer)
|
||||
if (fill < simulatedTransfer)
|
||||
iterator.remove();
|
||||
}
|
||||
|
||||
|
|
|
@ -256,11 +256,30 @@ public abstract class FluidTransportBehaviour extends TileEntityBehaviour {
|
|||
return AttachmentTypes.RIM;
|
||||
}
|
||||
|
||||
public static enum AttachmentTypes {
|
||||
NONE, RIM, DRAIN;
|
||||
public enum AttachmentTypes {
|
||||
NONE,
|
||||
CONNECTION(ComponentPartials.CONNECTION),
|
||||
RIM(ComponentPartials.RIM_CONNECTOR, ComponentPartials.RIM),
|
||||
PARTIAL_RIM(ComponentPartials.RIM),
|
||||
DRAIN(ComponentPartials.RIM_CONNECTOR, ComponentPartials.DRAIN),
|
||||
PARTIAL_DRAIN(ComponentPartials.DRAIN);
|
||||
|
||||
public boolean hasModel() {
|
||||
return this != NONE;
|
||||
public final ComponentPartials[] partials;
|
||||
|
||||
AttachmentTypes(ComponentPartials... partials) {
|
||||
this.partials = partials;
|
||||
}
|
||||
|
||||
public AttachmentTypes withoutConnector() {
|
||||
if (this == AttachmentTypes.RIM)
|
||||
return AttachmentTypes.PARTIAL_RIM;
|
||||
if (this == AttachmentTypes.DRAIN)
|
||||
return AttachmentTypes.PARTIAL_DRAIN;
|
||||
return this;
|
||||
}
|
||||
|
||||
public enum ComponentPartials {
|
||||
CONNECTION, RIM_CONNECTOR, RIM, DRAIN;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.Random;
|
|||
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.fluids.FluidTransportBehaviour.AttachmentTypes;
|
||||
import com.simibubi.create.content.contraptions.fluids.FluidTransportBehaviour.AttachmentTypes.ComponentPartials;
|
||||
import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock;
|
||||
import com.simibubi.create.content.contraptions.relays.elementary.BracketedTileEntityBehaviour;
|
||||
import com.simibubi.create.foundation.block.connected.BakedModelWrapperWithData;
|
||||
|
@ -27,19 +28,9 @@ import net.minecraftforge.client.model.data.ModelProperty;
|
|||
public class PipeAttachmentModel extends BakedModelWrapperWithData {
|
||||
|
||||
private static final ModelProperty<PipeModelData> PIPE_PROPERTY = new ModelProperty<>();
|
||||
private boolean hideAttachmentConnector;
|
||||
|
||||
public static PipeAttachmentModel opaque(BakedModel template) {
|
||||
return new PipeAttachmentModel(template, false);
|
||||
}
|
||||
|
||||
public static PipeAttachmentModel transparent(BakedModel template) {
|
||||
return new PipeAttachmentModel(template, true);
|
||||
}
|
||||
|
||||
public PipeAttachmentModel(BakedModel template, boolean hideAttachmentConnector) {
|
||||
public PipeAttachmentModel(BakedModel template) {
|
||||
super(template);
|
||||
this.hideAttachmentConnector = hideAttachmentConnector;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -50,7 +41,7 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData {
|
|||
|
||||
if (transport != null)
|
||||
for (Direction d : Iterate.directions)
|
||||
data.putRim(d, transport.getRenderedRimAttachment(world, pos, state, d));
|
||||
data.putAttachment(d, transport.getRenderedRimAttachment(world, pos, state, d));
|
||||
if (bracket != null)
|
||||
data.putBracket(bracket.getBracket());
|
||||
|
||||
|
@ -63,7 +54,7 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData {
|
|||
List<BakedQuad> quads = super.getQuads(state, side, rand, data);
|
||||
if (data.hasProperty(PIPE_PROPERTY)) {
|
||||
PipeModelData pipeData = data.getData(PIPE_PROPERTY);
|
||||
quads = side != null && pipeData.hasRim(side) ? new ArrayList<>() : new ArrayList<>(quads);
|
||||
quads = new ArrayList<>(quads);
|
||||
addQuads(quads, state, side, rand, data, pipeData);
|
||||
}
|
||||
return quads;
|
||||
|
@ -74,27 +65,28 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData {
|
|||
BakedModel bracket = pipeData.getBracket();
|
||||
if (bracket != null)
|
||||
quads.addAll(bracket.getQuads(state, side, rand, data));
|
||||
if (hideAttachmentConnector && side == Direction.UP)
|
||||
return;
|
||||
for (Direction d : Iterate.directions)
|
||||
if (pipeData.hasRim(d))
|
||||
quads.addAll(AllBlockPartials.PIPE_ATTACHMENTS.get(pipeData.getRim(d))
|
||||
for (Direction d : Iterate.directions) {
|
||||
AttachmentTypes type = pipeData.getAttachment(d);
|
||||
for (ComponentPartials partial : type.partials) {
|
||||
quads.addAll(AllBlockPartials.PIPE_ATTACHMENTS.get(partial)
|
||||
.get(d)
|
||||
.get()
|
||||
.getQuads(state, side, rand, data));
|
||||
}
|
||||
}
|
||||
if (pipeData.isEncased())
|
||||
quads.addAll(AllBlockPartials.FLUID_PIPE_CASING.get()
|
||||
.getQuads(state, side, rand, data));
|
||||
}
|
||||
|
||||
private static class PipeModelData {
|
||||
AttachmentTypes[] rims;
|
||||
boolean encased;
|
||||
BakedModel bracket;
|
||||
private AttachmentTypes[] attachments;
|
||||
private boolean encased;
|
||||
private BakedModel bracket;
|
||||
|
||||
public PipeModelData() {
|
||||
rims = new AttachmentTypes[6];
|
||||
Arrays.fill(rims, AttachmentTypes.NONE);
|
||||
attachments = new AttachmentTypes[6];
|
||||
Arrays.fill(attachments, AttachmentTypes.NONE);
|
||||
}
|
||||
|
||||
public void putBracket(BlockState state) {
|
||||
|
@ -109,22 +101,18 @@ public class PipeAttachmentModel extends BakedModelWrapperWithData {
|
|||
return bracket;
|
||||
}
|
||||
|
||||
public void putRim(Direction face, AttachmentTypes rim) {
|
||||
rims[face.get3DDataValue()] = rim;
|
||||
public void putAttachment(Direction face, AttachmentTypes rim) {
|
||||
attachments[face.get3DDataValue()] = rim;
|
||||
}
|
||||
|
||||
public AttachmentTypes getAttachment(Direction face) {
|
||||
return attachments[face.get3DDataValue()];
|
||||
}
|
||||
|
||||
public void setEncased(boolean encased) {
|
||||
this.encased = encased;
|
||||
}
|
||||
|
||||
public boolean hasRim(Direction face) {
|
||||
return rims[face.get3DDataValue()] != AttachmentTypes.NONE;
|
||||
}
|
||||
|
||||
public AttachmentTypes getRim(Direction face) {
|
||||
return rims[face.get3DDataValue()];
|
||||
}
|
||||
|
||||
public boolean isEncased() {
|
||||
return encased;
|
||||
}
|
||||
|
|
|
@ -5,14 +5,18 @@ import java.util.Random;
|
|||
import com.simibubi.create.AllShapes;
|
||||
import com.simibubi.create.AllTileEntities;
|
||||
import com.simibubi.create.content.contraptions.base.DirectionalKineticBlock;
|
||||
import com.simibubi.create.content.contraptions.fluids.pipes.FluidPipeBlock;
|
||||
import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel;
|
||||
import com.simibubi.create.foundation.block.ITE;
|
||||
import com.simibubi.create.foundation.block.ProperWaterloggedBlock;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Direction.Axis;
|
||||
import net.minecraft.network.protocol.game.DebugPackets;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||
import net.minecraft.world.item.context.UseOnContext;
|
||||
import net.minecraft.world.level.BlockGetter;
|
||||
|
@ -32,7 +36,8 @@ import net.minecraft.world.phys.shapes.CollisionContext;
|
|||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import net.minecraft.world.ticks.TickPriority;
|
||||
|
||||
public class PumpBlock extends DirectionalKineticBlock implements SimpleWaterloggedBlock, ICogWheel, ITE<PumpTileEntity> {
|
||||
public class PumpBlock extends DirectionalKineticBlock
|
||||
implements SimpleWaterloggedBlock, ICogWheel, ITE<PumpTileEntity> {
|
||||
|
||||
public PumpBlock(Properties p_i48415_1_) {
|
||||
super(p_i48415_1_);
|
||||
|
@ -96,10 +101,26 @@ public class PumpBlock extends DirectionalKineticBlock implements SimpleWaterlog
|
|||
|
||||
@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));
|
||||
BlockState toPlace = super.getStateForPlacement(context);
|
||||
Level level = context.getLevel();
|
||||
BlockPos pos = context.getClickedPos();
|
||||
Player player = context.getPlayer();
|
||||
toPlace = ProperWaterloggedBlock.withWater(level, toPlace, pos);
|
||||
|
||||
if (player != null && player.isSteppingCarefully())
|
||||
return toPlace;
|
||||
|
||||
for (Direction d : Iterate.directions) {
|
||||
BlockPos adjPos = pos.relative(d);
|
||||
BlockState adjState = level.getBlockState(adjPos);
|
||||
if (!FluidPipeBlock.canConnectTo(level, adjPos, adjState, d))
|
||||
continue;
|
||||
toPlace = toPlace.setValue(FACING, d);
|
||||
if (context.getClickedFace() == d.getOpposite())
|
||||
break;
|
||||
}
|
||||
|
||||
return toPlace;
|
||||
}
|
||||
|
||||
public static boolean isPump(BlockState state) {
|
||||
|
@ -113,7 +134,7 @@ public class PumpBlock extends DirectionalKineticBlock implements SimpleWaterlog
|
|||
return;
|
||||
if (state != oldState)
|
||||
world.scheduleTick(pos, this, 1, TickPriority.HIGH);
|
||||
|
||||
|
||||
if (isPump(state) && isPump(oldState) && state.getValue(FACING) == oldState.getValue(FACING)
|
||||
.getOpposite()) {
|
||||
BlockEntity tileEntity = world.getBlockEntity(pos);
|
||||
|
|
|
@ -11,10 +11,10 @@ import com.simibubi.create.content.contraptions.itemAssembly.IAssemblyRecipe;
|
|||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams;
|
||||
import com.simibubi.create.foundation.fluid.FluidIngredient;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.world.item.crafting.Ingredient;
|
||||
import net.minecraft.world.level.ItemLike;
|
||||
import net.minecraft.world.level.Level;
|
||||
|
@ -70,7 +70,7 @@ public class FillingRecipe extends ProcessingRecipe<RecipeWrapper> implements IA
|
|||
List<FluidStack> matchingFluidStacks = fluidIngredients.get(0)
|
||||
.getMatchingFluidStacks();
|
||||
if (matchingFluidStacks.size() == 0)
|
||||
return new TextComponent("Invalid");
|
||||
return Components.literal("Invalid");
|
||||
return Lang.translateDirect("recipe.assembly.spout_filling_fluid",
|
||||
matchingFluidStacks.get(0).getDisplayName().getString());
|
||||
}
|
||||
|
|
|
@ -25,12 +25,14 @@ public class HosePulleyFluidHandler implements IFluidHandler {
|
|||
int diff = resource.getAmount();
|
||||
int totalAmountAfterFill = diff + internalTank.getFluidAmount();
|
||||
FluidStack remaining = resource.copy();
|
||||
boolean deposited = false;
|
||||
|
||||
if (predicate.get() && totalAmountAfterFill >= 1000) {
|
||||
if (filler.tryDeposit(resource.getFluid(), rootPosGetter.get(), action.simulate())) {
|
||||
drainer.counterpartActed();
|
||||
remaining.shrink(1000);
|
||||
diff -= 1000;
|
||||
deposited = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,7 +43,7 @@ public class HosePulleyFluidHandler implements IFluidHandler {
|
|||
return resource.getAmount();
|
||||
}
|
||||
|
||||
return internalTank.fill(remaining, action);
|
||||
return internalTank.fill(remaining, action) + (deposited ? 1000 : 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -76,6 +76,8 @@ public class SpoutTileEntity extends SmartTileEntity implements IHaveGoggleInfor
|
|||
|
||||
protected ProcessingResult onItemReceived(TransportedItemStack transported,
|
||||
TransportedItemStackHandlerBehaviour handler) {
|
||||
if (handler.tileEntity.isVirtual())
|
||||
return PASS;
|
||||
if (!FillingBySpout.canItemBeFilled(level, transported.stack))
|
||||
return PASS;
|
||||
if (tank.isEmpty())
|
||||
|
|
|
@ -6,6 +6,7 @@ import com.mojang.serialization.Codec;
|
|||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import com.simibubi.create.AllParticleTypes;
|
||||
import com.simibubi.create.content.contraptions.particle.ICustomParticleData;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
|
||||
import net.minecraft.client.particle.ParticleProvider;
|
||||
import net.minecraft.core.particles.ParticleOptions;
|
||||
|
@ -15,7 +16,6 @@ import net.minecraft.world.level.material.Fluids;
|
|||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public class FluidParticleData implements ParticleOptions, ICustomParticleData<FluidParticleData> {
|
||||
|
||||
|
@ -49,8 +49,7 @@ public class FluidParticleData implements ParticleOptions, ICustomParticleData<F
|
|||
|
||||
@Override
|
||||
public String writeToString() {
|
||||
return ForgeRegistries.PARTICLE_TYPES.getKey(type) + " " + fluid.getFluid()
|
||||
.getRegistryName();
|
||||
return RegisteredObjects.getKeyOrThrow(type) + " " + RegisteredObjects.getKeyOrThrow(fluid.getFluid());
|
||||
}
|
||||
|
||||
public static final Codec<FluidParticleData> CODEC = RecordCodecBuilder.create(i -> i
|
||||
|
|
|
@ -68,11 +68,13 @@ public class FluidPipeTileEntity extends SmartTileEntity implements ITransformab
|
|||
TileEntityBehaviour.get(world, offsetPos, FluidTransportBehaviour.TYPE);
|
||||
if (pipeBehaviour != null)
|
||||
if (pipeBehaviour.canHaveFlowToward(otherState, direction.getOpposite()))
|
||||
return AttachmentTypes.NONE;
|
||||
return AttachmentTypes.CONNECTION;
|
||||
}
|
||||
|
||||
if (attachment == AttachmentTypes.RIM && !FluidPipeBlock.shouldDrawRim(world, pos, state, direction))
|
||||
return AttachmentTypes.NONE;
|
||||
return AttachmentTypes.CONNECTION;
|
||||
if (attachment == AttachmentTypes.NONE && state.getValue(FluidPipeBlock.PROPERTY_BY_DIRECTION.get(direction)))
|
||||
return AttachmentTypes.CONNECTION;
|
||||
return attachment;
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ public class StraightPipeTileEntity extends SmartTileEntity {
|
|||
if (attachment == AttachmentTypes.RIM && state.getBlock() instanceof FluidValveBlock)
|
||||
return AttachmentTypes.NONE;
|
||||
if (attachment == AttachmentTypes.RIM && FluidPipeBlock.isPipe(otherState))
|
||||
return AttachmentTypes.RIM;
|
||||
return AttachmentTypes.PARTIAL_RIM;
|
||||
if (axis == otherAxis && axis != null)
|
||||
return AttachmentTypes.NONE;
|
||||
|
||||
|
@ -59,7 +59,7 @@ public class StraightPipeTileEntity extends SmartTileEntity {
|
|||
&& FluidValveBlock.getPipeAxis(otherState) == direction.getAxis())
|
||||
return AttachmentTypes.NONE;
|
||||
|
||||
return attachment;
|
||||
return attachment.withoutConnector();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,12 +5,13 @@ import java.util.List;
|
|||
|
||||
import com.simibubi.create.AllFluids;
|
||||
import com.simibubi.create.content.contraptions.fluids.VirtualFluid;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.nbt.ListTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.item.alchemy.Potion;
|
||||
|
@ -20,7 +21,6 @@ import net.minecraft.world.level.ItemLike;
|
|||
import net.minecraft.world.level.material.Fluid;
|
||||
import net.minecraftforge.fluids.FluidAttributes;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
|
||||
public class PotionFluid extends VirtualFluid {
|
||||
|
||||
|
@ -42,7 +42,7 @@ public class PotionFluid extends VirtualFluid {
|
|||
}
|
||||
|
||||
public static FluidStack addPotionToFluidStack(FluidStack fs, Potion potion) {
|
||||
ResourceLocation resourcelocation = ForgeRegistries.POTIONS.getKey(potion);
|
||||
ResourceLocation resourcelocation = RegisteredObjects.getKeyOrThrow(potion);
|
||||
if (potion == Potions.EMPTY) {
|
||||
fs.removeChildTag("Potion");
|
||||
return fs;
|
||||
|
@ -82,7 +82,7 @@ public class PotionFluid extends VirtualFluid {
|
|||
|
||||
@Override
|
||||
public Component getDisplayName(FluidStack stack) {
|
||||
return new TranslatableComponent(getTranslationKey(stack));
|
||||
return Components.translatable(getTranslationKey(stack));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -8,14 +8,14 @@ import com.google.common.collect.Lists;
|
|||
import com.simibubi.create.content.contraptions.fluids.potion.PotionFluid.BottleType;
|
||||
import com.simibubi.create.foundation.fluid.FluidHelper;
|
||||
import com.simibubi.create.foundation.fluid.FluidIngredient;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.Pair;
|
||||
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.util.Tuple;
|
||||
import net.minecraft.world.effect.MobEffect;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
|
@ -105,10 +105,10 @@ public class PotionFluidHandler {
|
|||
List<MobEffectInstance> list = PotionUtils.getAllEffects(fs.getOrCreateTag());
|
||||
List<Tuple<String, AttributeModifier>> list1 = Lists.newArrayList();
|
||||
if (list.isEmpty()) {
|
||||
tooltip.add((new TranslatableComponent("effect.none")).withStyle(ChatFormatting.GRAY));
|
||||
tooltip.add((Components.translatable("effect.none")).withStyle(ChatFormatting.GRAY));
|
||||
} else {
|
||||
for (MobEffectInstance effectinstance : list) {
|
||||
TranslatableComponent textcomponent = new TranslatableComponent(effectinstance.getDescriptionId());
|
||||
MutableComponent textcomponent = Components.translatable(effectinstance.getDescriptionId());
|
||||
MobEffect effect = effectinstance.getEffect();
|
||||
Map<Attribute, AttributeModifier> map = effect.getAttributeModifiers();
|
||||
if (!map.isEmpty()) {
|
||||
|
@ -125,7 +125,7 @@ public class PotionFluidHandler {
|
|||
|
||||
if (effectinstance.getAmplifier() > 0) {
|
||||
textcomponent.append(" ")
|
||||
.append(new TranslatableComponent("potion.potency." + effectinstance.getAmplifier()).getString());
|
||||
.append(Components.translatable("potion.potency." + effectinstance.getAmplifier()).getString());
|
||||
}
|
||||
|
||||
if (effectinstance.getDuration() > 20) {
|
||||
|
@ -140,8 +140,8 @@ public class PotionFluidHandler {
|
|||
}
|
||||
|
||||
if (!list1.isEmpty()) {
|
||||
tooltip.add(new TextComponent(""));
|
||||
tooltip.add((new TranslatableComponent("potion.whenDrank")).withStyle(ChatFormatting.DARK_PURPLE));
|
||||
tooltip.add(Components.immutableEmpty());
|
||||
tooltip.add((Components.translatable("potion.whenDrank")).withStyle(ChatFormatting.DARK_PURPLE));
|
||||
|
||||
for (Tuple<String, AttributeModifier> tuple : list1) {
|
||||
AttributeModifier attributemodifier2 = tuple.getB();
|
||||
|
@ -155,19 +155,19 @@ public class PotionFluidHandler {
|
|||
}
|
||||
|
||||
if (d0 > 0.0D) {
|
||||
tooltip.add((new TranslatableComponent(
|
||||
tooltip.add((Components.translatable(
|
||||
"attribute.modifier.plus." + attributemodifier2.getOperation()
|
||||
.toValue(),
|
||||
ItemStack.ATTRIBUTE_MODIFIER_FORMAT.format(d1),
|
||||
new TranslatableComponent(tuple.getA())))
|
||||
Components.translatable(tuple.getA())))
|
||||
.withStyle(ChatFormatting.BLUE));
|
||||
} else if (d0 < 0.0D) {
|
||||
d1 = d1 * -1.0D;
|
||||
tooltip.add((new TranslatableComponent(
|
||||
tooltip.add((Components.translatable(
|
||||
"attribute.modifier.take." + attributemodifier2.getOperation()
|
||||
.toValue(),
|
||||
ItemStack.ATTRIBUTE_MODIFIER_FORMAT.format(d1),
|
||||
new TranslatableComponent(tuple.getA())))
|
||||
Components.translatable(tuple.getA())))
|
||||
.withStyle(ChatFormatting.RED));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import com.simibubi.create.foundation.advancement.AdvancementBehaviour;
|
|||
import com.simibubi.create.foundation.advancement.AllAdvancements;
|
||||
import com.simibubi.create.foundation.block.BlockStressValues;
|
||||
import com.simibubi.create.foundation.fluid.FluidHelper;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.animation.LerpedFloat;
|
||||
|
@ -29,7 +30,6 @@ import net.minecraft.core.Direction;
|
|||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.MutableComponent;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
@ -147,8 +147,8 @@ public class BoilerData {
|
|||
if (!isActive())
|
||||
return false;
|
||||
|
||||
Component indent = new TextComponent(IHaveGoggleInformation.spacing);
|
||||
Component indent2 = new TextComponent(IHaveGoggleInformation.spacing + " ");
|
||||
Component indent = Components.literal(IHaveGoggleInformation.spacing);
|
||||
Component indent2 = Components.literal(IHaveGoggleInformation.spacing + " ");
|
||||
|
||||
calcMinMaxForSize(boilerSize);
|
||||
|
||||
|
@ -169,7 +169,7 @@ public class BoilerData {
|
|||
double totalSU = getEngineEfficiency(boilerSize) * 16 * Math.max(boilerLevel, attachedEngines)
|
||||
* BlockStressValues.getCapacity(AllBlocks.STEAM_ENGINE.get());
|
||||
|
||||
tooltip.add(Lang.empty());
|
||||
tooltip.add(Components.immutableEmpty());
|
||||
|
||||
Lang.translate("tooltip.capacityProvided")
|
||||
.style(ChatFormatting.GRAY)
|
||||
|
@ -234,12 +234,12 @@ public class BoilerData {
|
|||
}
|
||||
|
||||
private MutableComponent blockComponent(int level) {
|
||||
return new TextComponent(
|
||||
return Components.literal(
|
||||
"" + "\u2588".repeat(minValue) + "\u2592".repeat(level - minValue) + "\u2591".repeat(maxValue - level));
|
||||
}
|
||||
|
||||
private MutableComponent barComponent(int level) {
|
||||
return TextComponent.EMPTY.copy()
|
||||
return Components.empty()
|
||||
.append(bars(Math.max(0, minValue - 1), ChatFormatting.DARK_GREEN))
|
||||
.append(bars(minValue > 0 ? 1 : 0, ChatFormatting.GREEN))
|
||||
.append(bars(Math.max(0, level - minValue), ChatFormatting.DARK_GREEN))
|
||||
|
@ -250,7 +250,7 @@ public class BoilerData {
|
|||
}
|
||||
|
||||
private MutableComponent bars(int level, ChatFormatting format) {
|
||||
return new TextComponent(Strings.repeat('|', level)).withStyle(format);
|
||||
return Components.literal(Strings.repeat('|', level)).withStyle(format);
|
||||
}
|
||||
|
||||
public boolean evaluate(FluidTankTileEntity controller) {
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
package com.simibubi.create.content.contraptions.fluids.tank;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
|
@ -11,19 +9,31 @@ import com.simibubi.create.AllBlocks;
|
|||
import com.simibubi.create.AllTags.AllBlockTags;
|
||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock;
|
||||
import com.simibubi.create.content.contraptions.processing.burner.BlazeBurnerBlock.HeatLevel;
|
||||
import com.simibubi.create.foundation.utility.CreateRegistry;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraftforge.registries.ForgeRegistries;
|
||||
import net.minecraftforge.registries.IRegistryDelegate;
|
||||
|
||||
public class BoilerHeaters {
|
||||
private static final Map<IRegistryDelegate<Block>, Heater> BLOCK_HEATERS = new HashMap<>();
|
||||
private static final CreateRegistry<Block, Heater> BLOCK_HEATERS = new CreateRegistry<>(ForgeRegistries.BLOCKS);
|
||||
private static final List<HeaterProvider> GLOBAL_HEATERS = new ArrayList<>();
|
||||
|
||||
public static void registerHeater(ResourceLocation block, Heater heater) {
|
||||
BLOCK_HEATERS.register(block, heater);
|
||||
}
|
||||
|
||||
public static void registerHeater(Block block, Heater heater) {
|
||||
BLOCK_HEATERS.register(block, heater);
|
||||
}
|
||||
|
||||
@Deprecated(forRemoval = true)
|
||||
public static void registerHeater(IRegistryDelegate<Block> block, Heater heater) {
|
||||
BLOCK_HEATERS.put(block, heater);
|
||||
registerHeater(block.name(), heater);
|
||||
}
|
||||
|
||||
public static void registerHeaterProvider(HeaterProvider provider) {
|
||||
|
@ -36,7 +46,7 @@ public class BoilerHeaters {
|
|||
* All other positive values are used as the amount of active heat.
|
||||
*/
|
||||
public static float getActiveHeat(Level level, BlockPos pos, BlockState state) {
|
||||
Heater heater = BLOCK_HEATERS.get(state.getBlock().delegate);
|
||||
Heater heater = BLOCK_HEATERS.get(state.getBlock());
|
||||
if (heater != null) {
|
||||
return heater.getActiveHeat(level, pos, state);
|
||||
}
|
||||
|
@ -52,7 +62,7 @@ public class BoilerHeaters {
|
|||
}
|
||||
|
||||
public static void registerDefaults() {
|
||||
registerHeater(AllBlocks.BLAZE_BURNER.get().delegate, (level, pos, state) -> {
|
||||
registerHeater(AllBlocks.BLAZE_BURNER.get(), (level, pos, state) -> {
|
||||
HeatLevel value = state.getValue(BlazeBurnerBlock.HEAT_LEVEL);
|
||||
if (value == HeatLevel.NONE) {
|
||||
return -1;
|
||||
|
|
|
@ -8,12 +8,12 @@ import com.simibubi.create.AllItems;
|
|||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.gui.AbstractSimiScreen;
|
||||
import com.simibubi.create.foundation.gui.element.GuiGameElement;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.FormattedText;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
||||
|
@ -24,26 +24,26 @@ public class GoggleConfigScreen extends AbstractSimiScreen {
|
|||
private final List<Component> tooltip;
|
||||
|
||||
public GoggleConfigScreen() {
|
||||
Component componentSpacing = new TextComponent(" ");
|
||||
Component componentSpacing = Components.literal(" ");
|
||||
tooltip = new ArrayList<>();
|
||||
tooltip.add(componentSpacing.plainCopy()
|
||||
.append(Lang.translateDirect("gui.config.overlay1")));
|
||||
tooltip.add(componentSpacing.plainCopy()
|
||||
.append(Lang.translateDirect("gui.config.overlay2")
|
||||
.withStyle(ChatFormatting.GRAY)));
|
||||
tooltip.add(TextComponent.EMPTY);
|
||||
tooltip.add(Components.immutableEmpty());
|
||||
tooltip.add(componentSpacing.plainCopy()
|
||||
.append(Lang.translateDirect("gui.config.overlay3")));
|
||||
tooltip.add(componentSpacing.plainCopy()
|
||||
.append(Lang.translateDirect("gui.config.overlay4")));
|
||||
tooltip.add(TextComponent.EMPTY);
|
||||
tooltip.add(Components.immutableEmpty());
|
||||
tooltip.add(componentSpacing.plainCopy()
|
||||
.append(Lang.translateDirect("gui.config.overlay5")
|
||||
.withStyle(ChatFormatting.GRAY)));
|
||||
tooltip.add(componentSpacing.plainCopy()
|
||||
.append(Lang.translateDirect("gui.config.overlay6")
|
||||
.withStyle(ChatFormatting.GRAY)));
|
||||
tooltip.add(TextComponent.EMPTY);
|
||||
tooltip.add(Components.immutableEmpty());
|
||||
tooltip.add(componentSpacing.plainCopy()
|
||||
.append(Lang.translateDirect("gui.config.overlay7")));
|
||||
tooltip.add(componentSpacing.plainCopy()
|
||||
|
|
|
@ -19,6 +19,7 @@ import com.simibubi.create.foundation.gui.Theme;
|
|||
import com.simibubi.create.foundation.gui.element.GuiGameElement;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.ValueBox;
|
||||
import com.simibubi.create.foundation.utility.Color;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Iterate;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.outliner.Outline;
|
||||
|
@ -30,7 +31,6 @@ import net.minecraft.core.BlockPos;
|
|||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.FormattedText;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.level.GameType;
|
||||
|
@ -100,7 +100,7 @@ public class GoggleOverlayRenderer {
|
|||
|
||||
if (hasHoveringInformation) {
|
||||
if (!tooltip.isEmpty())
|
||||
tooltip.add(TextComponent.EMPTY);
|
||||
tooltip.add(Components.immutableEmpty());
|
||||
IHaveHoveringInformation hte = (IHaveHoveringInformation) te;
|
||||
hoverAddedInformation = hte.addToTooltip(tooltip, mc.player.isShiftKeyDown());
|
||||
|
||||
|
@ -143,11 +143,11 @@ public class GoggleOverlayRenderer {
|
|||
if (!pistonFound)
|
||||
return;
|
||||
if (!tooltip.isEmpty())
|
||||
tooltip.add(TextComponent.EMPTY);
|
||||
tooltip.add(Components.immutableEmpty());
|
||||
|
||||
tooltip.add(IHaveGoggleInformation.componentSpacing.plainCopy()
|
||||
.append(Lang.translateDirect("gui.goggles.pole_length"))
|
||||
.append(new TextComponent(" " + poles)));
|
||||
.append(Components.literal(" " + poles)));
|
||||
}
|
||||
|
||||
if (tooltip.isEmpty())
|
||||
|
|
|
@ -3,12 +3,12 @@ package com.simibubi.create.content.contraptions.goggles;
|
|||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.LangBuilder;
|
||||
|
||||
import net.minecraft.ChatFormatting;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraftforge.common.util.LazyOptional;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.capability.IFluidHandler;
|
||||
|
@ -27,7 +27,7 @@ public interface IHaveGoggleInformation {
|
|||
* Use Lang.[...].forGoggles(list)
|
||||
*/
|
||||
@Deprecated
|
||||
Component componentSpacing = new TextComponent(spacing);
|
||||
Component componentSpacing = Components.literal(spacing);
|
||||
|
||||
/**
|
||||
* this method will be called when looking at a TileEntity that implemented this
|
||||
|
|
|
@ -12,6 +12,7 @@ import com.simibubi.create.Create;
|
|||
import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
|
||||
import com.simibubi.create.foundation.fluid.FluidIngredient;
|
||||
import com.simibubi.create.foundation.utility.Components;
|
||||
import com.simibubi.create.foundation.utility.Lang;
|
||||
import com.simibubi.create.foundation.utility.Pair;
|
||||
|
||||
|
@ -19,7 +20,6 @@ import net.minecraft.ChatFormatting;
|
|||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.Container;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
@ -239,7 +239,7 @@ public class SequencedAssemblyRecipe implements Recipe<RecipeWrapper> {
|
|||
int length = sequencedAssemblyRecipe.sequence.size();
|
||||
int step = sequencedAssemblyRecipe.getStep(stack);
|
||||
int total = length * sequencedAssemblyRecipe.loops;
|
||||
toolTip.add(new TextComponent(""));
|
||||
toolTip.add(Components.immutableEmpty());
|
||||
toolTip.add(Lang.translateDirect("recipe.sequenced_assembly")
|
||||
.withStyle(ChatFormatting.GRAY));
|
||||
toolTip.add(Lang.translateDirect("recipe.assembly.progress", step, total)
|
||||
|
@ -256,7 +256,7 @@ public class SequencedAssemblyRecipe implements Recipe<RecipeWrapper> {
|
|||
toolTip.add(Lang.translateDirect("recipe.assembly.next", textComponent)
|
||||
.withStyle(ChatFormatting.AQUA));
|
||||
else
|
||||
toolTip.add(new TextComponent("-> ").append(textComponent)
|
||||
toolTip.add(Components.literal("-> ").append(textComponent)
|
||||
.withStyle(ChatFormatting.DARK_AQUA));
|
||||
}
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.google.gson.JsonObject;
|
|||
import com.google.gson.JsonParseException;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
|
||||
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
@ -35,7 +36,7 @@ public class SequencedRecipe<T extends ProcessingRecipe<?>> {
|
|||
@SuppressWarnings("unchecked")
|
||||
ProcessingRecipeSerializer<T> serializer = (ProcessingRecipeSerializer<T>) wrapped.getSerializer();
|
||||
JsonObject json = new JsonObject();
|
||||
json.addProperty("type", ForgeRegistries.RECIPE_SERIALIZERS.getKey(serializer)
|
||||
json.addProperty("type", RegisteredObjects.getKeyOrThrow(serializer)
|
||||
.toString());
|
||||
serializer.write(json, wrapped);
|
||||
return json;
|
||||
|
@ -62,7 +63,7 @@ public class SequencedRecipe<T extends ProcessingRecipe<?>> {
|
|||
public void writeToBuffer(FriendlyByteBuf buffer) {
|
||||
@SuppressWarnings("unchecked")
|
||||
ProcessingRecipeSerializer<T> serializer = (ProcessingRecipeSerializer<T>) wrapped.getSerializer();
|
||||
buffer.writeResourceLocation(ForgeRegistries.RECIPE_SERIALIZERS.getKey(serializer));
|
||||
buffer.writeResourceLocation(RegisteredObjects.getKeyOrThrow(serializer));
|
||||
buffer.writeResourceLocation(wrapped.getId());
|
||||
serializer.toNetwork(buffer, wrapped);
|
||||
}
|
||||
|
|
|
@ -588,7 +588,7 @@ public class BasinTileEntity extends SmartTileEntity implements IHaveGoggleInfor
|
|||
public static HeatLevel getHeatLevelOf(BlockState state) {
|
||||
if (state.hasProperty(BlazeBurnerBlock.HEAT_LEVEL))
|
||||
return state.getValue(BlazeBurnerBlock.HEAT_LEVEL);
|
||||
return AllTags.AllBlockTags.FAN_HEATERS.matches(state) ? HeatLevel.SMOULDERING : HeatLevel.NONE;
|
||||
return AllTags.AllBlockTags.PASSIVE_BOILER_HEATERS.matches(state) ? HeatLevel.SMOULDERING : HeatLevel.NONE;
|
||||
}
|
||||
|
||||
public Couple<SmartFluidTankBehaviour> getTanks() {
|
||||
|
|
|
@ -9,6 +9,7 @@ import com.google.gson.JsonSyntaxException;
|
|||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.foundation.utility.Pair;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
|
||||
import net.minecraft.nbt.TagParser;
|
||||
import net.minecraft.network.FriendlyByteBuf;
|
||||
|
@ -60,8 +61,8 @@ public class ProcessingOutput {
|
|||
|
||||
public JsonElement serialize() {
|
||||
JsonObject json = new JsonObject();
|
||||
ResourceLocation resourceLocation = compatDatagenOutput == null ? stack.getItem()
|
||||
.getRegistryName() : compatDatagenOutput.getFirst();
|
||||
ResourceLocation resourceLocation = compatDatagenOutput == null ? RegisteredObjects.getKeyOrThrow(stack
|
||||
.getItem()) : compatDatagenOutput.getFirst();
|
||||
json.addProperty("item", resourceLocation.toString());
|
||||
int count = compatDatagenOutput == null ? stack.getCount() : compatDatagenOutput.getSecond();
|
||||
if (count != 1)
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.Map;
|
|||
import javax.annotation.ParametersAreNonnullByDefault;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.foundation.utility.RegisteredObjects;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.MethodsReturnNonnullByDefault;
|
||||
|
@ -71,7 +72,7 @@ public class BlazeBurnerBlockItem extends BlockItem {
|
|||
|
||||
@Override
|
||||
public String getDescriptionId() {
|
||||
return hasCapturedBlaze() ? super.getDescriptionId() : "item.create." + getRegistryName().getPath();
|
||||
return hasCapturedBlaze() ? super.getDescriptionId() : "item.create." + RegisteredObjects.getKeyOrThrow(this).getPath();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -99,7 +100,7 @@ public class BlazeBurnerBlockItem extends BlockItem {
|
|||
possibleSpawns.add(spawner.nextSpawnData);
|
||||
}
|
||||
|
||||
ResourceLocation blazeId = EntityType.BLAZE.getRegistryName();
|
||||
ResourceLocation blazeId = RegisteredObjects.getKeyOrThrow(EntityType.BLAZE);
|
||||
for (SpawnData e : possibleSpawns) {
|
||||
ResourceLocation spawnerEntityId = new ResourceLocation(e.entityToSpawn()
|
||||
.getString("id"));
|
||||
|
|
|
@ -33,52 +33,67 @@ public class BlazeBurnerRenderer extends SafeTileEntityRenderer<BlazeBurnerTileE
|
|||
public BlazeBurnerRenderer(BlockEntityRendererProvider.Context context) {}
|
||||
|
||||
@Override
|
||||
protected void renderSafe(BlazeBurnerTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
protected void renderSafe(BlazeBurnerTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource bufferSource,
|
||||
int light, int overlay) {
|
||||
HeatLevel heatLevel = te.getHeatLevelFromBlock();
|
||||
if (heatLevel == HeatLevel.NONE)
|
||||
return;
|
||||
|
||||
float horizontalAngle = AngleHelper.rad(te.headAngle.getValue(partialTicks));
|
||||
Level level = te.getLevel();
|
||||
int hashCode = te.hashCode();
|
||||
float animation = te.headAnimation.getValue(partialTicks) * .175f;
|
||||
BlockState blockState = te.getBlockState();
|
||||
float animation = te.headAnimation.getValue(partialTicks) * .175f;
|
||||
float horizontalAngle = AngleHelper.rad(te.headAngle.getValue(partialTicks));
|
||||
boolean canDrawFlame = heatLevel.isAtLeast(HeatLevel.FADING);
|
||||
boolean drawGoggles = te.goggles;
|
||||
boolean drawHat = te.hat;
|
||||
int hashCode = te.hashCode();
|
||||
|
||||
renderShared(level, buffer, null, ms, blockState, horizontalAngle, animation, drawGoggles, drawHat, hashCode);
|
||||
renderShared(ms, null, bufferSource,
|
||||
level, blockState, heatLevel, animation, horizontalAngle,
|
||||
canDrawFlame, drawGoggles, drawHat, hashCode);
|
||||
}
|
||||
|
||||
public static void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer, LerpedFloat headAngle, boolean conductor) {
|
||||
ContraptionMatrices matrices, MultiBufferSource bufferSource, LerpedFloat headAngle, boolean conductor) {
|
||||
BlockState state = context.state;
|
||||
if (BlazeBurnerBlock.getHeatLevelOf(state) == HeatLevel.KINDLED)
|
||||
state = state.setValue(BlazeBurnerBlock.HEAT_LEVEL, HeatLevel.FADING);
|
||||
float value = AngleHelper.rad(headAngle.getValue(AnimationTickHolder.getPartialTicks(context.world)));
|
||||
renderShared(context.world, buffer, matrices.getModel(), matrices.getViewProjection(), state, value, 0,
|
||||
context.tileData.contains("Goggles"), conductor, context.hashCode());
|
||||
HeatLevel heatLevel = BlazeBurnerBlock.getHeatLevelOf(state);
|
||||
if (heatLevel == HeatLevel.NONE)
|
||||
return;
|
||||
|
||||
if (!heatLevel.isAtLeast(HeatLevel.FADING)) {
|
||||
heatLevel = HeatLevel.FADING;
|
||||
}
|
||||
|
||||
Level level = context.world;
|
||||
float horizontalAngle = AngleHelper.rad(headAngle.getValue(AnimationTickHolder.getPartialTicks(level)));
|
||||
boolean drawGoggles = context.tileData.contains("Goggles");
|
||||
boolean drawHat = conductor || context.tileData.contains("TrainHat");
|
||||
int hashCode = context.hashCode();
|
||||
|
||||
renderShared(matrices.getViewProjection(), matrices.getModel(), bufferSource,
|
||||
level, state, heatLevel, 0, horizontalAngle,
|
||||
false, drawGoggles, drawHat, hashCode);
|
||||
}
|
||||
|
||||
private static void renderShared(Level level, MultiBufferSource buffer, @Nullable PoseStack modelTransform,
|
||||
PoseStack ms, BlockState blockState, float horizontalAngle, float animation, boolean drawGoggles,
|
||||
boolean drawHat, int hashCode) {
|
||||
private static void renderShared(PoseStack ms, @Nullable PoseStack modelTransform, MultiBufferSource bufferSource,
|
||||
Level level, BlockState blockState, HeatLevel heatLevel, float animation, float horizontalAngle,
|
||||
boolean canDrawFlame, boolean drawGoggles, boolean drawHat, int hashCode) {
|
||||
|
||||
boolean blockAbove = animation > 0.125f;
|
||||
HeatLevel heatLevel = BlazeBurnerBlock.getHeatLevelOf(blockState);
|
||||
float time = AnimationTickHolder.getRenderTime(level);
|
||||
float renderTick = time + (hashCode % 13) * 16f;
|
||||
float offsetMult = heatLevel.isAtLeast(HeatLevel.FADING) ? 64 : 16;
|
||||
float offset = Mth.sin((float) ((renderTick / 16f) % (2 * Math.PI))) / offsetMult;
|
||||
float offset1 = Mth.sin((float) ((renderTick / 16f + Math.PI) % (2 * Math.PI))) / offsetMult;
|
||||
float offset2 = Mth.sin((float) ((renderTick / 16f + Math.PI / 2) % (2 * Math.PI))) / offsetMult;
|
||||
float headY = offset - (animation * .75f);
|
||||
|
||||
VertexConsumer solid = buffer.getBuffer(RenderType.solid());
|
||||
VertexConsumer cutout = buffer.getBuffer(RenderType.cutoutMipped());
|
||||
VertexConsumer solid = bufferSource.getBuffer(RenderType.solid());
|
||||
VertexConsumer cutout = bufferSource.getBuffer(RenderType.cutoutMipped());
|
||||
|
||||
ms.pushPose();
|
||||
|
||||
if (modelTransform == null && heatLevel.isAtLeast(HeatLevel.FADING) && blockAbove) {
|
||||
if (canDrawFlame && blockAbove) {
|
||||
SpriteShiftEntry spriteShift =
|
||||
heatLevel == HeatLevel.SEETHING ? AllSpriteShifts.SUPER_BURNER_FLAME : AllSpriteShifts.BURNER_FLAME;
|
||||
|
||||
|
@ -102,68 +117,87 @@ public class BlazeBurnerRenderer extends SafeTileEntityRenderer<BlazeBurnerTileE
|
|||
uScroll = uScroll - Math.floor(uScroll);
|
||||
uScroll = uScroll * spriteWidth / 2;
|
||||
|
||||
draw(CachedBufferer.partial(AllBlockPartials.BLAZE_BURNER_FLAME, blockState)
|
||||
.shiftUVScrolling(spriteShift, (float) uScroll, (float) vScroll), horizontalAngle, modelTransform, ms,
|
||||
cutout);
|
||||
SuperByteBuffer flameBuffer = CachedBufferer.partial(AllBlockPartials.BLAZE_BURNER_FLAME, blockState);
|
||||
if (modelTransform != null)
|
||||
flameBuffer.transform(modelTransform);
|
||||
flameBuffer.shiftUVScrolling(spriteShift, (float) uScroll, (float) vScroll);
|
||||
draw(flameBuffer, horizontalAngle, ms, cutout);
|
||||
}
|
||||
|
||||
PartialModel blazeModel = modelTransform != null ? AllBlockPartials.BLAZE_IDLE : AllBlockPartials.BLAZE_INERT;
|
||||
if (heatLevel.isAtLeast(HeatLevel.SEETHING))
|
||||
PartialModel blazeModel;
|
||||
if (heatLevel.isAtLeast(HeatLevel.SEETHING)) {
|
||||
blazeModel = blockAbove ? AllBlockPartials.BLAZE_SUPER_ACTIVE : AllBlockPartials.BLAZE_SUPER;
|
||||
else if (heatLevel.isAtLeast(HeatLevel.FADING))
|
||||
} else if (heatLevel.isAtLeast(HeatLevel.FADING)) {
|
||||
blazeModel = blockAbove && heatLevel.isAtLeast(HeatLevel.KINDLED) ? AllBlockPartials.BLAZE_ACTIVE
|
||||
: AllBlockPartials.BLAZE_IDLE;
|
||||
} else {
|
||||
blazeModel = AllBlockPartials.BLAZE_INERT;
|
||||
}
|
||||
|
||||
float headY = offset - (animation * .75f);
|
||||
SuperByteBuffer blazeBuffer = CachedBufferer.partial(blazeModel, blockState);
|
||||
if (modelTransform != null)
|
||||
blazeBuffer.transform(modelTransform);
|
||||
blazeBuffer.translate(0, headY, 0);
|
||||
draw(blazeBuffer, horizontalAngle, ms, solid);
|
||||
|
||||
draw(CachedBufferer.partial(blazeModel, blockState)
|
||||
.translate(0, headY, 0), horizontalAngle, modelTransform, ms, solid);
|
||||
if (drawGoggles) {
|
||||
PartialModel gogglesModel = blazeModel == AllBlockPartials.BLAZE_INERT
|
||||
? AllBlockPartials.BLAZE_GOGGLES_SMALL : AllBlockPartials.BLAZE_GOGGLES;
|
||||
|
||||
if (drawGoggles)
|
||||
draw(CachedBufferer.partial(blazeModel == AllBlockPartials.BLAZE_INERT
|
||||
? AllBlockPartials.BLAZE_GOGGLES_SMALL : AllBlockPartials.BLAZE_GOGGLES, blockState)
|
||||
.translate(0, headY + 8 / 16f, 0), horizontalAngle, modelTransform, ms, solid);
|
||||
SuperByteBuffer gogglesBuffer = CachedBufferer.partial(gogglesModel, blockState);
|
||||
if (modelTransform != null)
|
||||
gogglesBuffer.transform(modelTransform);
|
||||
gogglesBuffer.translate(0, headY + 8 / 16f, 0);
|
||||
draw(gogglesBuffer, horizontalAngle, ms, solid);
|
||||
}
|
||||
|
||||
if (drawHat) {
|
||||
SuperByteBuffer partial = CachedBufferer.partial(AllBlockPartials.TRAIN_HAT, blockState)
|
||||
.translate(0, headY, 0);
|
||||
SuperByteBuffer hatBuffer = CachedBufferer.partial(AllBlockPartials.TRAIN_HAT, blockState);
|
||||
if (modelTransform != null)
|
||||
hatBuffer.transform(modelTransform);
|
||||
hatBuffer.translate(0, headY, 0);
|
||||
if (blazeModel == AllBlockPartials.BLAZE_INERT) {
|
||||
partial.translateY(0.5f)
|
||||
hatBuffer.translateY(0.5f)
|
||||
.centre()
|
||||
.scale(0.75f)
|
||||
.unCentre();
|
||||
} else {
|
||||
partial.translateY(0.75f);
|
||||
hatBuffer.translateY(0.75f);
|
||||
}
|
||||
if (modelTransform != null)
|
||||
partial.transform(modelTransform);
|
||||
partial
|
||||
hatBuffer
|
||||
.rotateCentered(Direction.UP, horizontalAngle + Mth.PI)
|
||||
.translate(0.5f, 0, 0.5f)
|
||||
.light(LightTexture.FULL_BRIGHT)
|
||||
.renderInto(ms, solid);
|
||||
}
|
||||
|
||||
if (heatLevel.isAtLeast(HeatLevel.FADING) || modelTransform != null) {
|
||||
PartialModel rods = heatLevel == HeatLevel.SEETHING ? AllBlockPartials.BLAZE_BURNER_SUPER_RODS
|
||||
if (heatLevel.isAtLeast(HeatLevel.FADING)) {
|
||||
PartialModel rodsModel = heatLevel == HeatLevel.SEETHING ? AllBlockPartials.BLAZE_BURNER_SUPER_RODS
|
||||
: AllBlockPartials.BLAZE_BURNER_RODS;
|
||||
PartialModel rods2 = heatLevel == HeatLevel.SEETHING ? AllBlockPartials.BLAZE_BURNER_SUPER_RODS_2
|
||||
PartialModel rodsModel2 = heatLevel == HeatLevel.SEETHING ? AllBlockPartials.BLAZE_BURNER_SUPER_RODS_2
|
||||
: AllBlockPartials.BLAZE_BURNER_RODS_2;
|
||||
draw(CachedBufferer.partial(rods, blockState)
|
||||
.translate(0, offset1 + animation + .125f, 0), 0, modelTransform, ms, solid);
|
||||
draw(CachedBufferer.partial(rods2, blockState)
|
||||
.translate(0, offset2 + animation - 3 / 16f, 0), 0, modelTransform, ms, solid);
|
||||
|
||||
SuperByteBuffer rodsBuffer = CachedBufferer.partial(rodsModel, blockState);
|
||||
if (modelTransform != null)
|
||||
rodsBuffer.transform(modelTransform);
|
||||
rodsBuffer.translate(0, offset1 + animation + .125f, 0)
|
||||
.light(LightTexture.FULL_BRIGHT)
|
||||
.renderInto(ms, solid);
|
||||
|
||||
SuperByteBuffer rodsBuffer2 = CachedBufferer.partial(rodsModel2, blockState);
|
||||
if (modelTransform != null)
|
||||
rodsBuffer2.transform(modelTransform);
|
||||
rodsBuffer2.translate(0, offset2 + animation - 3 / 16f, 0)
|
||||
.light(LightTexture.FULL_BRIGHT)
|
||||
.renderInto(ms, solid);
|
||||
}
|
||||
|
||||
ms.popPose();
|
||||
}
|
||||
|
||||
private static void draw(SuperByteBuffer blazeBuffer, float horizontalAngle, @Nullable PoseStack modelTransform,
|
||||
PoseStack ms, VertexConsumer vb) {
|
||||
if (modelTransform != null)
|
||||
blazeBuffer.transform(modelTransform);
|
||||
blazeBuffer.rotateCentered(Direction.UP, horizontalAngle)
|
||||
private static void draw(SuperByteBuffer buffer, float horizontalAngle, PoseStack ms, VertexConsumer vc) {
|
||||
buffer.rotateCentered(Direction.UP, horizontalAngle)
|
||||
.light(LightTexture.FULL_BRIGHT)
|
||||
.renderInto(ms, vb);
|
||||
.renderInto(ms, vc);
|
||||
}
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue