Merge branch 'mc1.18/dev' into pr/2503
This commit is contained in:
commit
8a99a08d7c
207 changed files with 4316 additions and 3945 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.4.0b"
|
||||
- "0.4.0a"
|
||||
- "0.4.0"
|
||||
- "0.3.2g"
|
||||
|
|
|
@ -17,11 +17,10 @@ plugins {
|
|||
id 'com.matthewprenger.cursegradle' version "${cursegradle_version}"
|
||||
}
|
||||
apply plugin: 'net.minecraftforge.gradle'
|
||||
// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
|
||||
apply plugin: 'org.parchmentmc.librarian.forgegradle'
|
||||
apply plugin: 'eclipse'
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: 'org.spongepowered.mixin'
|
||||
apply plugin: 'org.parchmentmc.librarian.forgegradle'
|
||||
|
||||
boolean dev = System.getenv('RELEASE') == null || System.getenv('RELEASE').equals('false');
|
||||
// jozu: I use a gradle workspace with both projects.
|
||||
|
|
|
@ -4,7 +4,7 @@ org.gradle.jvmargs = -Xmx3G
|
|||
org.gradle.daemon = false
|
||||
|
||||
# mod version info
|
||||
mod_version = 0.4a
|
||||
mod_version = 0.4b
|
||||
minecraft_version = 1.18.1
|
||||
forge_version = 39.0.8
|
||||
|
||||
|
@ -19,7 +19,7 @@ parchment_version = 2021.12.19
|
|||
|
||||
# dependency versions
|
||||
registrate_version = MC1.18-1.0.21
|
||||
flywheel_version = 1.18-0.4.2-rc.26
|
||||
flywheel_version = 1.18-0.5.1.42
|
||||
jei_minecraft_version = 1.18
|
||||
jei_version = 9.0.0.40
|
||||
|
||||
|
|
|
@ -537,13 +537,13 @@ f7b78c385c001eccef20718886ec62aebb49920b assets/create/lang/unfinished/de_de.jso
|
|||
a8cc635c26b070336407991f068e7b42b476aed7 assets/create/lang/unfinished/es_es.json
|
||||
ce38f5577b7b96460025372563ee88cef2318e7c assets/create/lang/unfinished/fr_fr.json
|
||||
2c85e6efd817348d94c55292e20fadf6b704209c assets/create/lang/unfinished/it_it.json
|
||||
5f72b4b2cee27254765f63e309568bcec78959f4 assets/create/lang/unfinished/ja_jp.json
|
||||
26880b09a44d9642be8764fbbae52e384fd5883b assets/create/lang/unfinished/ko_kr.json
|
||||
f6ed2a6f0f241e73f1e6a88b8500043ef0668b1d assets/create/lang/unfinished/ja_jp.json
|
||||
133188f5196da148f9dd8aa122d9b008daf36685 assets/create/lang/unfinished/ko_kr.json
|
||||
983b53cab576e43b0e61f899590b6488d220cd36 assets/create/lang/unfinished/nl_nl.json
|
||||
0d4aa18fa90d8620d4761ce2fbe900ef8f407a50 assets/create/lang/unfinished/pl_pl.json
|
||||
776f4179fd212ca6faf0d66ad08bf204f019db6a assets/create/lang/unfinished/pt_br.json
|
||||
2c765f1b8ea570d837212a7e86aec653fe155477 assets/create/lang/unfinished/pt_br.json
|
||||
9a1d7bbd01321fae009c00bbf5b2bc091ef38e13 assets/create/lang/unfinished/ru_ru.json
|
||||
703c7a655bedc1f1a59ba6c6df5a3f7f56f28bee assets/create/lang/unfinished/zh_cn.json
|
||||
ecc1c5d0b5434804db76a5b6d4a589b16fa490be assets/create/lang/unfinished/zh_cn.json
|
||||
b316488ca9891c2444a6df03bc5ddfbcd1f84de0 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
|
||||
|
@ -4103,7 +4103,6 @@ a7c97582bae243ab04ff5ff9914b24af25d40d59 data/create/recipes/crushing/iron_horse
|
|||
554b6555888fe01de349efaaab36b68a338ac397 data/create/recipes/crushing/iron_ore.json
|
||||
c9a9d6d28a7eac1210108d52840b60b26d58bcfe data/create/recipes/crushing/lapis_ore.json
|
||||
e870d049abc5cd5f389f70414c67e76ddc14060d data/create/recipes/crushing/leather_horse_armor.json
|
||||
a3b45ccedd37bfc7e69eb72863576b6482f6fddf data/create/recipes/crushing/magma_block.json
|
||||
cc5a817901d6f0d68e4ceb3e65d7f2187ab37ceb data/create/recipes/crushing/nether_gold_ore.json
|
||||
6cd97c6f12687790943db810f85036b02586c753 data/create/recipes/crushing/nether_quartz_ore.json
|
||||
6e424d7e9f7d8b585384053a713db28f9d36448b data/create/recipes/crushing/nether_wart_block.json
|
||||
|
@ -5216,10 +5215,14 @@ fb9bfb4c84ed9cf2da8c4b2fbc4cd4d9f37d3016 data/forge/tags/items/plates/gold.json
|
|||
9f7a428085b1aac66da32a43e9d51c7efc1f0d81 data/forge/tags/items/storage_blocks.json
|
||||
ff1900963bc4cd8ceffa78d58ef1952ceacb2fb7 data/forge/tags/items/storage_blocks/brass.json
|
||||
7f71a774800111e50b42de0e6159ed2d2a807d32 data/forge/tags/items/storage_blocks/zinc.json
|
||||
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/azalea_root_replaceable.json
|
||||
9f7a428085b1aac66da32a43e9d51c7efc1f0d81 data/minecraft/tags/blocks/beacon_base_blocks.json
|
||||
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/dripstone_replaceable_blocks.json
|
||||
69f596fcb065e26b02ce246760432b5174191b76 data/minecraft/tags/blocks/impermeable.json
|
||||
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/lush_ground_replaceable.json
|
||||
59681910c06f8b7385c6641a409d352056235506 data/minecraft/tags/blocks/mineable/axe.json
|
||||
f8c66b3808efb61d2d928748783bb7eb8a1357f9 data/minecraft/tags/blocks/mineable/pickaxe.json
|
||||
2db7759fe036160c14c6ed19a68604ca16f4de60 data/minecraft/tags/blocks/moss_replaceable.json
|
||||
e157c1d3af30e409e34bbefbe15a037e6e1c8daa data/minecraft/tags/blocks/needs_iron_tool.json
|
||||
a08f67865337f62601c5e333b4011382d10020e4 data/minecraft/tags/blocks/needs_stone_tool.json
|
||||
6bcabbc1c0479caa80a0ebc676bb34ce0052efb0 data/minecraft/tags/blocks/rails.json
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 333",
|
||||
"_": "Missing Localizations: 5",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -9,14 +9,14 @@
|
|||
"block.create.analog_lever": "아날로그 레버",
|
||||
"block.create.andesite_belt_funnel": "안산암 퍼널",
|
||||
"block.create.andesite_casing": "안산암 케이스",
|
||||
"block.create.andesite_encased_cogwheel": "UNLOCALIZED: Andesite Encased Cogwheel",
|
||||
"block.create.andesite_encased_large_cogwheel": "UNLOCALIZED: Andesite Encased Large Cogwheel",
|
||||
"block.create.andesite_encased_cogwheel": "안산암 케이스를 씌운 톱니바퀴",
|
||||
"block.create.andesite_encased_large_cogwheel": "안산암 케이스를 씌운 큰 톱니바퀴",
|
||||
"block.create.andesite_encased_shaft": "안산암 케이스를 씌운 축",
|
||||
"block.create.andesite_funnel": "안산암 퍼널",
|
||||
"block.create.andesite_pillar": "안산암 기둥",
|
||||
"block.create.andesite_tunnel": "안산암 터널",
|
||||
"block.create.asurine": "UNLOCALIZED: Asurine",
|
||||
"block.create.asurine_pillar": "UNLOCALIZED: Asurine Pillar",
|
||||
"block.create.asurine": "유리암",
|
||||
"block.create.asurine_pillar": "유리암 기둥",
|
||||
"block.create.basin": "대야",
|
||||
"block.create.belt": "벨트",
|
||||
"block.create.birch_window": "자작나무 유리창",
|
||||
|
@ -35,8 +35,8 @@
|
|||
"block.create.brass_belt_funnel": "황동 퍼널",
|
||||
"block.create.brass_block": "황동 블록",
|
||||
"block.create.brass_casing": "황동 케이스",
|
||||
"block.create.brass_encased_cogwheel": "UNLOCALIZED: Brass Encased Cogwheel",
|
||||
"block.create.brass_encased_large_cogwheel": "UNLOCALIZED: Brass Encased Large Cogwheel",
|
||||
"block.create.brass_encased_cogwheel": "황동 케이스를 씌운 톱니바퀴",
|
||||
"block.create.brass_encased_large_cogwheel": "황동 케이스를 씌운 큰 톱니바퀴",
|
||||
"block.create.brass_encased_shaft": "황동 케이스를 씌운 축",
|
||||
"block.create.brass_funnel": "황동 퍼널",
|
||||
"block.create.brass_tunnel": "황동 터널",
|
||||
|
@ -45,7 +45,7 @@
|
|||
"block.create.brown_seat": "갈색 좌석",
|
||||
"block.create.brown_toolbox": "갈색 공구상자",
|
||||
"block.create.brown_valve_handle": "갈색 밸브 손잡이",
|
||||
"block.create.calcite_pillar": "UNLOCALIZED: Calcite Pillar",
|
||||
"block.create.calcite_pillar": "방해석 기둥",
|
||||
"block.create.cart_assembler": "카트 조립기",
|
||||
"block.create.chocolate": "초콜릿",
|
||||
"block.create.chute": "슈트",
|
||||
|
@ -56,135 +56,135 @@
|
|||
"block.create.controller_rail": "방향 레일",
|
||||
"block.create.copper_backtank": "구리 산소통",
|
||||
"block.create.copper_casing": "구리 케이스",
|
||||
"block.create.copper_shingle_slab": "UNLOCALIZED: Copper Shingle Slab",
|
||||
"block.create.copper_shingle_stairs": "UNLOCALIZED: Copper Shingle Stairs",
|
||||
"block.create.copper_shingle_slab": "구리 판자 반 블록",
|
||||
"block.create.copper_shingle_stairs": "구리 판자 계단",
|
||||
"block.create.copper_shingles": "구리 판자",
|
||||
"block.create.copper_tile_slab": "UNLOCALIZED: Copper Tile Slab",
|
||||
"block.create.copper_tile_stairs": "UNLOCALIZED: Copper Tile Stairs",
|
||||
"block.create.copper_tile_slab": "구리 타일 반 블록",
|
||||
"block.create.copper_tile_stairs": "구리 타일 계단",
|
||||
"block.create.copper_tiles": "구리 타일",
|
||||
"block.create.copper_valve_handle": "구리 밸브 손잡이",
|
||||
"block.create.creative_crate": "크리에이티브 창고",
|
||||
"block.create.creative_fluid_tank": "크리에이티브 탱크",
|
||||
"block.create.creative_motor": "크리에이티브 모터",
|
||||
"block.create.crimsite": "UNLOCALIZED: Crimsite",
|
||||
"block.create.crimsite_pillar": "UNLOCALIZED: Crimsite Pillar",
|
||||
"block.create.crimsite": "진홍암",
|
||||
"block.create.crimsite_pillar": "진홍암 기둥",
|
||||
"block.create.crimson_window": "진홍빛 유리창",
|
||||
"block.create.crimson_window_pane": "진홍빛 유리판",
|
||||
"block.create.crushing_wheel": "분쇄 휠",
|
||||
"block.create.crushing_wheel_controller": "분쇄 휠 컨트롤러",
|
||||
"block.create.cuckoo_clock": "뻐꾸기 시계",
|
||||
"block.create.cut_andesite": "UNLOCALIZED: Cut Andesite",
|
||||
"block.create.cut_andesite_brick_slab": "UNLOCALIZED: Cut Andesite Brick Slab",
|
||||
"block.create.cut_andesite_brick_stairs": "UNLOCALIZED: Cut Andesite Brick Stairs",
|
||||
"block.create.cut_andesite_brick_wall": "UNLOCALIZED: Cut Andesite Brick Wall",
|
||||
"block.create.cut_andesite_bricks": "UNLOCALIZED: Cut Andesite Bricks",
|
||||
"block.create.cut_andesite_slab": "UNLOCALIZED: Cut Andesite Slab",
|
||||
"block.create.cut_andesite_stairs": "UNLOCALIZED: Cut Andesite Stairs",
|
||||
"block.create.cut_andesite_wall": "UNLOCALIZED: Cut Andesite Wall",
|
||||
"block.create.cut_asurine": "UNLOCALIZED: Cut Asurine",
|
||||
"block.create.cut_asurine_brick_slab": "UNLOCALIZED: Cut Asurine Brick Slab",
|
||||
"block.create.cut_asurine_brick_stairs": "UNLOCALIZED: Cut Asurine Brick Stairs",
|
||||
"block.create.cut_asurine_brick_wall": "UNLOCALIZED: Cut Asurine Brick Wall",
|
||||
"block.create.cut_asurine_bricks": "UNLOCALIZED: Cut Asurine Bricks",
|
||||
"block.create.cut_asurine_slab": "UNLOCALIZED: Cut Asurine Slab",
|
||||
"block.create.cut_asurine_stairs": "UNLOCALIZED: Cut Asurine Stairs",
|
||||
"block.create.cut_asurine_wall": "UNLOCALIZED: Cut Asurine Wall",
|
||||
"block.create.cut_calcite": "UNLOCALIZED: Cut Calcite",
|
||||
"block.create.cut_calcite_brick_slab": "UNLOCALIZED: Cut Calcite Brick Slab",
|
||||
"block.create.cut_calcite_brick_stairs": "UNLOCALIZED: Cut Calcite Brick Stairs",
|
||||
"block.create.cut_calcite_brick_wall": "UNLOCALIZED: Cut Calcite Brick Wall",
|
||||
"block.create.cut_calcite_bricks": "UNLOCALIZED: Cut Calcite Bricks",
|
||||
"block.create.cut_calcite_slab": "UNLOCALIZED: Cut Calcite Slab",
|
||||
"block.create.cut_calcite_stairs": "UNLOCALIZED: Cut Calcite Stairs",
|
||||
"block.create.cut_calcite_wall": "UNLOCALIZED: Cut Calcite Wall",
|
||||
"block.create.cut_crimsite": "UNLOCALIZED: Cut Crimsite",
|
||||
"block.create.cut_crimsite_brick_slab": "UNLOCALIZED: Cut Crimsite Brick Slab",
|
||||
"block.create.cut_crimsite_brick_stairs": "UNLOCALIZED: Cut Crimsite Brick Stairs",
|
||||
"block.create.cut_crimsite_brick_wall": "UNLOCALIZED: Cut Crimsite Brick Wall",
|
||||
"block.create.cut_crimsite_bricks": "UNLOCALIZED: Cut Crimsite Bricks",
|
||||
"block.create.cut_crimsite_slab": "UNLOCALIZED: Cut Crimsite Slab",
|
||||
"block.create.cut_crimsite_stairs": "UNLOCALIZED: Cut Crimsite Stairs",
|
||||
"block.create.cut_crimsite_wall": "UNLOCALIZED: Cut Crimsite Wall",
|
||||
"block.create.cut_deepslate": "UNLOCALIZED: Cut Deepslate",
|
||||
"block.create.cut_deepslate_brick_slab": "UNLOCALIZED: Cut Deepslate Brick Slab",
|
||||
"block.create.cut_deepslate_brick_stairs": "UNLOCALIZED: Cut Deepslate Brick Stairs",
|
||||
"block.create.cut_deepslate_brick_wall": "UNLOCALIZED: Cut Deepslate Brick Wall",
|
||||
"block.create.cut_deepslate_bricks": "UNLOCALIZED: Cut Deepslate Bricks",
|
||||
"block.create.cut_deepslate_slab": "UNLOCALIZED: Cut Deepslate Slab",
|
||||
"block.create.cut_deepslate_stairs": "UNLOCALIZED: Cut Deepslate Stairs",
|
||||
"block.create.cut_deepslate_wall": "UNLOCALIZED: Cut Deepslate Wall",
|
||||
"block.create.cut_diorite": "UNLOCALIZED: Cut Diorite",
|
||||
"block.create.cut_diorite_brick_slab": "UNLOCALIZED: Cut Diorite Brick Slab",
|
||||
"block.create.cut_diorite_brick_stairs": "UNLOCALIZED: Cut Diorite Brick Stairs",
|
||||
"block.create.cut_diorite_brick_wall": "UNLOCALIZED: Cut Diorite Brick Wall",
|
||||
"block.create.cut_diorite_bricks": "UNLOCALIZED: Cut Diorite Bricks",
|
||||
"block.create.cut_diorite_slab": "UNLOCALIZED: Cut Diorite Slab",
|
||||
"block.create.cut_diorite_stairs": "UNLOCALIZED: Cut Diorite Stairs",
|
||||
"block.create.cut_diorite_wall": "UNLOCALIZED: Cut Diorite Wall",
|
||||
"block.create.cut_dripstone": "UNLOCALIZED: Cut Dripstone",
|
||||
"block.create.cut_dripstone_brick_slab": "UNLOCALIZED: Cut Dripstone Brick Slab",
|
||||
"block.create.cut_dripstone_brick_stairs": "UNLOCALIZED: Cut Dripstone Brick Stairs",
|
||||
"block.create.cut_dripstone_brick_wall": "UNLOCALIZED: Cut Dripstone Brick Wall",
|
||||
"block.create.cut_dripstone_bricks": "UNLOCALIZED: Cut Dripstone Bricks",
|
||||
"block.create.cut_dripstone_slab": "UNLOCALIZED: Cut Dripstone Slab",
|
||||
"block.create.cut_dripstone_stairs": "UNLOCALIZED: Cut Dripstone Stairs",
|
||||
"block.create.cut_dripstone_wall": "UNLOCALIZED: Cut Dripstone Wall",
|
||||
"block.create.cut_granite": "UNLOCALIZED: Cut Granite",
|
||||
"block.create.cut_granite_brick_slab": "UNLOCALIZED: Cut Granite Brick Slab",
|
||||
"block.create.cut_granite_brick_stairs": "UNLOCALIZED: Cut Granite Brick Stairs",
|
||||
"block.create.cut_granite_brick_wall": "UNLOCALIZED: Cut Granite Brick Wall",
|
||||
"block.create.cut_granite_bricks": "UNLOCALIZED: Cut Granite Bricks",
|
||||
"block.create.cut_granite_slab": "UNLOCALIZED: Cut Granite Slab",
|
||||
"block.create.cut_granite_stairs": "UNLOCALIZED: Cut Granite Stairs",
|
||||
"block.create.cut_granite_wall": "UNLOCALIZED: Cut Granite Wall",
|
||||
"block.create.cut_limestone": "UNLOCALIZED: Cut Limestone",
|
||||
"block.create.cut_limestone_brick_slab": "UNLOCALIZED: Cut Limestone Brick Slab",
|
||||
"block.create.cut_limestone_brick_stairs": "UNLOCALIZED: Cut Limestone Brick Stairs",
|
||||
"block.create.cut_limestone_brick_wall": "UNLOCALIZED: Cut Limestone Brick Wall",
|
||||
"block.create.cut_limestone_bricks": "UNLOCALIZED: Cut Limestone Bricks",
|
||||
"block.create.cut_limestone_slab": "UNLOCALIZED: Cut Limestone Slab",
|
||||
"block.create.cut_limestone_stairs": "UNLOCALIZED: Cut Limestone Stairs",
|
||||
"block.create.cut_limestone_wall": "UNLOCALIZED: Cut Limestone Wall",
|
||||
"block.create.cut_ochrum": "UNLOCALIZED: Cut Ochrum",
|
||||
"block.create.cut_ochrum_brick_slab": "UNLOCALIZED: Cut Ochrum Brick Slab",
|
||||
"block.create.cut_ochrum_brick_stairs": "UNLOCALIZED: Cut Ochrum Brick Stairs",
|
||||
"block.create.cut_ochrum_brick_wall": "UNLOCALIZED: Cut Ochrum Brick Wall",
|
||||
"block.create.cut_ochrum_bricks": "UNLOCALIZED: Cut Ochrum Bricks",
|
||||
"block.create.cut_ochrum_slab": "UNLOCALIZED: Cut Ochrum Slab",
|
||||
"block.create.cut_ochrum_stairs": "UNLOCALIZED: Cut Ochrum Stairs",
|
||||
"block.create.cut_ochrum_wall": "UNLOCALIZED: Cut Ochrum Wall",
|
||||
"block.create.cut_scorchia": "UNLOCALIZED: Cut Scorchia",
|
||||
"block.create.cut_scorchia_brick_slab": "UNLOCALIZED: Cut Scorchia Brick Slab",
|
||||
"block.create.cut_scorchia_brick_stairs": "UNLOCALIZED: Cut Scorchia Brick Stairs",
|
||||
"block.create.cut_scorchia_brick_wall": "UNLOCALIZED: Cut Scorchia Brick Wall",
|
||||
"block.create.cut_scorchia_bricks": "UNLOCALIZED: Cut Scorchia Bricks",
|
||||
"block.create.cut_scorchia_slab": "UNLOCALIZED: Cut Scorchia Slab",
|
||||
"block.create.cut_scorchia_stairs": "UNLOCALIZED: Cut Scorchia Stairs",
|
||||
"block.create.cut_scorchia_wall": "UNLOCALIZED: Cut Scorchia Wall",
|
||||
"block.create.cut_scoria": "UNLOCALIZED: Cut Scoria",
|
||||
"block.create.cut_scoria_brick_slab": "UNLOCALIZED: Cut Scoria Brick Slab",
|
||||
"block.create.cut_scoria_brick_stairs": "UNLOCALIZED: Cut Scoria Brick Stairs",
|
||||
"block.create.cut_scoria_brick_wall": "UNLOCALIZED: Cut Scoria Brick Wall",
|
||||
"block.create.cut_scoria_bricks": "UNLOCALIZED: Cut Scoria Bricks",
|
||||
"block.create.cut_scoria_slab": "UNLOCALIZED: Cut Scoria Slab",
|
||||
"block.create.cut_scoria_stairs": "UNLOCALIZED: Cut Scoria Stairs",
|
||||
"block.create.cut_scoria_wall": "UNLOCALIZED: Cut Scoria Wall",
|
||||
"block.create.cut_tuff": "UNLOCALIZED: Cut Tuff",
|
||||
"block.create.cut_tuff_brick_slab": "UNLOCALIZED: Cut Tuff Brick Slab",
|
||||
"block.create.cut_tuff_brick_stairs": "UNLOCALIZED: Cut Tuff Brick Stairs",
|
||||
"block.create.cut_tuff_brick_wall": "UNLOCALIZED: Cut Tuff Brick Wall",
|
||||
"block.create.cut_tuff_bricks": "UNLOCALIZED: Cut Tuff Bricks",
|
||||
"block.create.cut_tuff_slab": "UNLOCALIZED: Cut Tuff Slab",
|
||||
"block.create.cut_tuff_stairs": "UNLOCALIZED: Cut Tuff Stairs",
|
||||
"block.create.cut_tuff_wall": "UNLOCALIZED: Cut Tuff Wall",
|
||||
"block.create.cut_veridium": "UNLOCALIZED: Cut Veridium",
|
||||
"block.create.cut_veridium_brick_slab": "UNLOCALIZED: Cut Veridium Brick Slab",
|
||||
"block.create.cut_veridium_brick_stairs": "UNLOCALIZED: Cut Veridium Brick Stairs",
|
||||
"block.create.cut_veridium_brick_wall": "UNLOCALIZED: Cut Veridium Brick Wall",
|
||||
"block.create.cut_veridium_bricks": "UNLOCALIZED: Cut Veridium Bricks",
|
||||
"block.create.cut_veridium_slab": "UNLOCALIZED: Cut Veridium Slab",
|
||||
"block.create.cut_veridium_stairs": "UNLOCALIZED: Cut Veridium Stairs",
|
||||
"block.create.cut_veridium_wall": "UNLOCALIZED: Cut Veridium Wall",
|
||||
"block.create.cut_andesite": "깎인 안산암",
|
||||
"block.create.cut_andesite_brick_slab": "깎인 안산암 벽돌 반 블록",
|
||||
"block.create.cut_andesite_brick_stairs": "깎인 안산암 벽돌 계단",
|
||||
"block.create.cut_andesite_brick_wall": "깎인 안산암 벽돌 담장",
|
||||
"block.create.cut_andesite_bricks": "깎인 안산암 벽돌",
|
||||
"block.create.cut_andesite_slab": "깎인 안산암 반 블록",
|
||||
"block.create.cut_andesite_stairs": "깎인 안산암 계단",
|
||||
"block.create.cut_andesite_wall": "깎인 안산암 담장",
|
||||
"block.create.cut_asurine": "깎인 유리암",
|
||||
"block.create.cut_asurine_brick_slab": "깎인 유리암 벽돌 반 블록",
|
||||
"block.create.cut_asurine_brick_stairs": "깎인 유리암 벽돌 계단",
|
||||
"block.create.cut_asurine_brick_wall": "깎인 유리암 벽돌 담장",
|
||||
"block.create.cut_asurine_bricks": "깎인 유리암 벽돌",
|
||||
"block.create.cut_asurine_slab": "깎인 유리암 반 블록",
|
||||
"block.create.cut_asurine_stairs": "깎인 유리암 계단",
|
||||
"block.create.cut_asurine_wall": "깎인 유리암 담장",
|
||||
"block.create.cut_calcite": "깎인 방해석",
|
||||
"block.create.cut_calcite_brick_slab": "깎인 방해석 벽돌 반 블록",
|
||||
"block.create.cut_calcite_brick_stairs": "깎인 방해석 벽돌 계단",
|
||||
"block.create.cut_calcite_brick_wall": "깎인 방해석 벽돌 담장",
|
||||
"block.create.cut_calcite_bricks": "깎인 방해석 벽돌",
|
||||
"block.create.cut_calcite_slab": "깎인 방해석 반 블록",
|
||||
"block.create.cut_calcite_stairs": "깎인 방해석 계단",
|
||||
"block.create.cut_calcite_wall": "깎인 방해석 담장",
|
||||
"block.create.cut_crimsite": "깎인 진홍암",
|
||||
"block.create.cut_crimsite_brick_slab": "깎인 진홍암 벽돌 반 블록",
|
||||
"block.create.cut_crimsite_brick_stairs": "깎인 진홍암 벽돌 계단",
|
||||
"block.create.cut_crimsite_brick_wall": "깎인 진홍암 벽돌 담장",
|
||||
"block.create.cut_crimsite_bricks": "깎인 진홍암 벽돌",
|
||||
"block.create.cut_crimsite_slab": "깎인 진홍암 반 블록",
|
||||
"block.create.cut_crimsite_stairs": "깎인 진홍암 계단",
|
||||
"block.create.cut_crimsite_wall": "깎인 진홍암 담장",
|
||||
"block.create.cut_deepslate": "깎인 심층암",
|
||||
"block.create.cut_deepslate_brick_slab": "깎인 심층암 벽돌 반 블록",
|
||||
"block.create.cut_deepslate_brick_stairs": "깎인 심층암 벽돌 계단",
|
||||
"block.create.cut_deepslate_brick_wall": "깎인 심층암 벽돌 담장",
|
||||
"block.create.cut_deepslate_bricks": "깎인 심층암 벽돌",
|
||||
"block.create.cut_deepslate_slab": "깎인 심층암 반 블록",
|
||||
"block.create.cut_deepslate_stairs": "깎인 심층암 계단",
|
||||
"block.create.cut_deepslate_wall": "깎인 심층암 담장",
|
||||
"block.create.cut_diorite": "깎인 섬록암",
|
||||
"block.create.cut_diorite_brick_slab": "깎인 섬록암 벽돌 반 블록",
|
||||
"block.create.cut_diorite_brick_stairs": "깎인 섬록암 벽돌 계단",
|
||||
"block.create.cut_diorite_brick_wall": "깎인 섬록암 벽돌 담장",
|
||||
"block.create.cut_diorite_bricks": "깎인 섬록암 벽돌",
|
||||
"block.create.cut_diorite_slab": "깎인 섬록암 반 블록",
|
||||
"block.create.cut_diorite_stairs": "깎인 섬록암 계단",
|
||||
"block.create.cut_diorite_wall": "깎인 섬록암 담장",
|
||||
"block.create.cut_dripstone": "깎인 점적석",
|
||||
"block.create.cut_dripstone_brick_slab": "깎인 점적석 벽돌 반 블록",
|
||||
"block.create.cut_dripstone_brick_stairs": "깎인 점적석 벽돌 계단",
|
||||
"block.create.cut_dripstone_brick_wall": "깎인 점적석 벽돌 담장",
|
||||
"block.create.cut_dripstone_bricks": "깎인 점적석 벽돌",
|
||||
"block.create.cut_dripstone_slab": "깎인 점적석 반 블록",
|
||||
"block.create.cut_dripstone_stairs": "깎인 점적석 계단",
|
||||
"block.create.cut_dripstone_wall": "깎인 점적석 담장",
|
||||
"block.create.cut_granite": "깎인 화강암",
|
||||
"block.create.cut_granite_brick_slab": "깎인 화강암 벽돌 반 블록",
|
||||
"block.create.cut_granite_brick_stairs": "깎인 화강암 벽돌 계단",
|
||||
"block.create.cut_granite_brick_wall": "깎인 화강암 벽돌 담장",
|
||||
"block.create.cut_granite_bricks": "깎인 화강암 벽돌",
|
||||
"block.create.cut_granite_slab": "깎인 화강암 반 블록",
|
||||
"block.create.cut_granite_stairs": "깎인 화강암 계단",
|
||||
"block.create.cut_granite_wall": "깎인 화강암 담장",
|
||||
"block.create.cut_limestone": "깎인 석회암",
|
||||
"block.create.cut_limestone_brick_slab": "깎인 석회암 벽돌 반 블록",
|
||||
"block.create.cut_limestone_brick_stairs": "깎인 석회암 벽돌 계단",
|
||||
"block.create.cut_limestone_brick_wall": "깎인 석회암 벽돌 담장",
|
||||
"block.create.cut_limestone_bricks": "깎인 석회암 벽돌",
|
||||
"block.create.cut_limestone_slab": "깎인 석회암 반 블록",
|
||||
"block.create.cut_limestone_stairs": "깎인 석회암 계단",
|
||||
"block.create.cut_limestone_wall": "깎인 석회암 담장",
|
||||
"block.create.cut_ochrum": "깎인 황토암",
|
||||
"block.create.cut_ochrum_brick_slab": "깎인 황토암 벽돌 반 블록",
|
||||
"block.create.cut_ochrum_brick_stairs": "깎인 황토암 벽돌 계단",
|
||||
"block.create.cut_ochrum_brick_wall": "깎인 황토암 벽돌 담장",
|
||||
"block.create.cut_ochrum_bricks": "깎인 황토암 벽돌",
|
||||
"block.create.cut_ochrum_slab": "깎인 황토암 반 블록",
|
||||
"block.create.cut_ochrum_stairs": "깎인 황토암 계단",
|
||||
"block.create.cut_ochrum_wall": "깎인 황토암 담장",
|
||||
"block.create.cut_scorchia": "깎인 짙은 스코리아",
|
||||
"block.create.cut_scorchia_brick_slab": "깎인 짙은 스코리아 벽돌 반 블록",
|
||||
"block.create.cut_scorchia_brick_stairs": "깎인 짙은 스코리아 벽돌 계단",
|
||||
"block.create.cut_scorchia_brick_wall": "깎인 짙은 스코리아 벽돌 담장",
|
||||
"block.create.cut_scorchia_bricks": "깎인 짙은 스코리아 벽돌",
|
||||
"block.create.cut_scorchia_slab": "깎인 짙은 스코리아 반 블록",
|
||||
"block.create.cut_scorchia_stairs": "깎인 짙은 스코리아 계단",
|
||||
"block.create.cut_scorchia_wall": "깎인 짙은 스코리아 담장",
|
||||
"block.create.cut_scoria": "깎인 스코리아",
|
||||
"block.create.cut_scoria_brick_slab": "깎인 스코리아 벽돌 반 블록",
|
||||
"block.create.cut_scoria_brick_stairs": "깎인 스코리아 벽돌 계단",
|
||||
"block.create.cut_scoria_brick_wall": "깎인 스코리아 벽돌 담장",
|
||||
"block.create.cut_scoria_bricks": "깎인 스코리아 벽돌",
|
||||
"block.create.cut_scoria_slab": "깎인 스코리아 반 블록",
|
||||
"block.create.cut_scoria_stairs": "깎인 스코리아 계단",
|
||||
"block.create.cut_scoria_wall": "깎인 스코리아 담장",
|
||||
"block.create.cut_tuff": "깎인 응회암",
|
||||
"block.create.cut_tuff_brick_slab": "깎인 응회암 벽돌 반 블록",
|
||||
"block.create.cut_tuff_brick_stairs": "깎인 응회암 벽돌 계단",
|
||||
"block.create.cut_tuff_brick_wall": "깎인 응회암 벽돌 담장",
|
||||
"block.create.cut_tuff_bricks": "깎인 응회암 벽돌",
|
||||
"block.create.cut_tuff_slab": "깎인 응회암 반 블록",
|
||||
"block.create.cut_tuff_stairs": "깎인 응회암 계단",
|
||||
"block.create.cut_tuff_wall": "깎인 응회암 담장",
|
||||
"block.create.cut_veridium": "깎인 심록암",
|
||||
"block.create.cut_veridium_brick_slab": "깎인 심록암 벽돌 반 블록",
|
||||
"block.create.cut_veridium_brick_stairs": "깎인 심록암 벽돌 계단",
|
||||
"block.create.cut_veridium_brick_wall": "깎인 심록암 벽돌 담장",
|
||||
"block.create.cut_veridium_bricks": "깎인 심록암 벽돌",
|
||||
"block.create.cut_veridium_slab": "깎인 심록암 반 블록",
|
||||
"block.create.cut_veridium_stairs": "깎인 심록암 계단",
|
||||
"block.create.cut_veridium_wall": "깎인 심록암 담장",
|
||||
"block.create.cyan_nixie_tube": "청록색 닉시관",
|
||||
"block.create.cyan_sail": "청록색 날개",
|
||||
"block.create.cyan_seat": "청록색 좌석",
|
||||
|
@ -192,21 +192,21 @@
|
|||
"block.create.cyan_valve_handle": "청록색 밸브 손잡이",
|
||||
"block.create.dark_oak_window": "짙은 참나무 유리창",
|
||||
"block.create.dark_oak_window_pane": "짙은 참나무 유리판",
|
||||
"block.create.deepslate_pillar": "UNLOCALIZED: Deepslate Pillar",
|
||||
"block.create.deepslate_zinc_ore": "UNLOCALIZED: Deepslate Zinc Ore",
|
||||
"block.create.deployer": "배포기",
|
||||
"block.create.deepslate_pillar": "심층암 기둥",
|
||||
"block.create.deepslate_zinc_ore": "심층암 아연 광석",
|
||||
"block.create.deployer": "기계 손",
|
||||
"block.create.depot": "아이템 거치대",
|
||||
"block.create.diorite_pillar": "섬록암 기둥",
|
||||
"block.create.dripstone_pillar": "UNLOCALIZED: Dripstone Pillar",
|
||||
"block.create.dripstone_pillar": "점적석 기둥",
|
||||
"block.create.encased_chain_drive": "체인 드라이브",
|
||||
"block.create.encased_fan": "선풍기",
|
||||
"block.create.encased_fluid_pipe": "구리 케이스를 씌운 파이프",
|
||||
"block.create.exposed_copper_shingle_slab": "UNLOCALIZED: Exposed Copper Shingle Slab",
|
||||
"block.create.exposed_copper_shingle_stairs": "UNLOCALIZED: Exposed Copper Shingle Stairs",
|
||||
"block.create.exposed_copper_shingles": "UNLOCALIZED: Exposed Copper Shingles",
|
||||
"block.create.exposed_copper_tile_slab": "UNLOCALIZED: Exposed Copper Tile Slab",
|
||||
"block.create.exposed_copper_tile_stairs": "UNLOCALIZED: Exposed Copper Tile Stairs",
|
||||
"block.create.exposed_copper_tiles": "UNLOCALIZED: Exposed Copper Tiles",
|
||||
"block.create.exposed_copper_shingle_slab": "약간 녹슨 구리 판자 반 블록",
|
||||
"block.create.exposed_copper_shingle_stairs": "약간 녹슨 구리 판자 계단",
|
||||
"block.create.exposed_copper_shingles": "약간 녹슨 구리 판자",
|
||||
"block.create.exposed_copper_tile_slab": "약간 녹슨 구리 타일 반 블록",
|
||||
"block.create.exposed_copper_tile_stairs": "약간 녹슨 구리 타일 계단",
|
||||
"block.create.exposed_copper_tiles": "약간 녹슨 구리 타일",
|
||||
"block.create.fluid_pipe": "액체 파이프",
|
||||
"block.create.fluid_tank": "액체 탱크",
|
||||
"block.create.fluid_valve": "액체 밸브",
|
||||
|
@ -237,24 +237,24 @@
|
|||
"block.create.horizontal_framed_glass_pane": "수평 유리판",
|
||||
"block.create.hose_pulley": "호스 도르래",
|
||||
"block.create.item_drain": "아이템 배수구",
|
||||
"block.create.item_vault": "UNLOCALIZED: Item Vault",
|
||||
"block.create.item_vault": "아이템 금고",
|
||||
"block.create.jungle_window": "정글나무 유리창",
|
||||
"block.create.jungle_window_pane": "정글나무 유리판",
|
||||
"block.create.large_cogwheel": "큰 톱니바퀴",
|
||||
"block.create.layered_andesite": "이어지는 안산암",
|
||||
"block.create.layered_asurine": "UNLOCALIZED: Layered Asurine",
|
||||
"block.create.layered_calcite": "UNLOCALIZED: Layered Calcite",
|
||||
"block.create.layered_crimsite": "UNLOCALIZED: Layered Crimsite",
|
||||
"block.create.layered_deepslate": "UNLOCALIZED: Layered Deepslate",
|
||||
"block.create.layered_asurine": "이어지는 유리암",
|
||||
"block.create.layered_calcite": "이어지는 방해석",
|
||||
"block.create.layered_crimsite": "이어지는 진홍암",
|
||||
"block.create.layered_deepslate": "이어지는 심층암",
|
||||
"block.create.layered_diorite": "이어지는 섬록암",
|
||||
"block.create.layered_dripstone": "UNLOCALIZED: Layered Dripstone",
|
||||
"block.create.layered_dripstone": "이어지는 점적석",
|
||||
"block.create.layered_granite": "이어지는 화강암",
|
||||
"block.create.layered_limestone": "이어지는 석회암",
|
||||
"block.create.layered_ochrum": "UNLOCALIZED: Layered Ochrum",
|
||||
"block.create.layered_scorchia": "UNLOCALIZED: Layered Scorchia",
|
||||
"block.create.layered_ochrum": "이어지는 황토암",
|
||||
"block.create.layered_scorchia": "이어지는 짙은 스코리아",
|
||||
"block.create.layered_scoria": "이어지는 스코리아",
|
||||
"block.create.layered_tuff": "UNLOCALIZED: Layered Tuff",
|
||||
"block.create.layered_veridium": "UNLOCALIZED: Layered Veridium",
|
||||
"block.create.layered_tuff": "이어지는 응회암",
|
||||
"block.create.layered_veridium": "이어지는 심록암",
|
||||
"block.create.lectern_controller": "독서대 조작기",
|
||||
"block.create.light_blue_nixie_tube": "하늘색 닉시관",
|
||||
"block.create.light_blue_sail": "하늘색 날개",
|
||||
|
@ -300,20 +300,20 @@
|
|||
"block.create.nozzle": "노즐",
|
||||
"block.create.oak_window": "참나무 유리창",
|
||||
"block.create.oak_window_pane": "참나무 유리판",
|
||||
"block.create.ochrum": "UNLOCALIZED: Ochrum",
|
||||
"block.create.ochrum_pillar": "UNLOCALIZED: Ochrum Pillar",
|
||||
"block.create.ochrum": "황토암",
|
||||
"block.create.ochrum_pillar": "황토암 기둥",
|
||||
"block.create.orange_sail": "주황색 날개",
|
||||
"block.create.orange_seat": "주황색 좌석",
|
||||
"block.create.orange_toolbox": "주황색 공구상자",
|
||||
"block.create.orange_valve_handle": "주황색 밸브 손잡이",
|
||||
"block.create.ornate_iron_window": "장식된 철 유리창",
|
||||
"block.create.ornate_iron_window_pane": "장식된 철 유리판",
|
||||
"block.create.oxidized_copper_shingle_slab": "UNLOCALIZED: Oxidized Copper Shingle Slab",
|
||||
"block.create.oxidized_copper_shingle_stairs": "UNLOCALIZED: Oxidized Copper Shingle Stairs",
|
||||
"block.create.oxidized_copper_shingles": "UNLOCALIZED: Oxidized Copper Shingles",
|
||||
"block.create.oxidized_copper_tile_slab": "UNLOCALIZED: Oxidized Copper Tile Slab",
|
||||
"block.create.oxidized_copper_tile_stairs": "UNLOCALIZED: Oxidized Copper Tile Stairs",
|
||||
"block.create.oxidized_copper_tiles": "UNLOCALIZED: Oxidized Copper Tiles",
|
||||
"block.create.oxidized_copper_shingle_slab": "산화된 구리 판자 반 블록",
|
||||
"block.create.oxidized_copper_shingle_stairs": "산화된 구리 판자 계단",
|
||||
"block.create.oxidized_copper_shingles": "산화된 구리 판자",
|
||||
"block.create.oxidized_copper_tile_slab": "산화된 구리 타일 반 블록",
|
||||
"block.create.oxidized_copper_tile_stairs": "산화된 구리 타일 계단",
|
||||
"block.create.oxidized_copper_tiles": "산화된 구리 타일",
|
||||
"block.create.peculiar_bell": "황동 종",
|
||||
"block.create.pink_nixie_tube": "분홍색 닉시관",
|
||||
"block.create.pink_sail": "분홍색 날개",
|
||||
|
@ -321,68 +321,68 @@
|
|||
"block.create.pink_toolbox": "분홍색 공구상자",
|
||||
"block.create.pink_valve_handle": "분홍색 밸브 손잡이",
|
||||
"block.create.piston_extension_pole": "피스톤 연장 축",
|
||||
"block.create.polished_cut_andesite": "UNLOCALIZED: Polished Cut Andesite",
|
||||
"block.create.polished_cut_andesite_slab": "UNLOCALIZED: Polished Cut Andesite Slab",
|
||||
"block.create.polished_cut_andesite_stairs": "UNLOCALIZED: Polished Cut Andesite Stairs",
|
||||
"block.create.polished_cut_andesite_wall": "UNLOCALIZED: Polished Cut Andesite Wall",
|
||||
"block.create.polished_cut_asurine": "UNLOCALIZED: Polished Cut Asurine",
|
||||
"block.create.polished_cut_asurine_slab": "UNLOCALIZED: Polished Cut Asurine Slab",
|
||||
"block.create.polished_cut_asurine_stairs": "UNLOCALIZED: Polished Cut Asurine Stairs",
|
||||
"block.create.polished_cut_asurine_wall": "UNLOCALIZED: Polished Cut Asurine Wall",
|
||||
"block.create.polished_cut_calcite": "UNLOCALIZED: Polished Cut Calcite",
|
||||
"block.create.polished_cut_calcite_slab": "UNLOCALIZED: Polished Cut Calcite Slab",
|
||||
"block.create.polished_cut_calcite_stairs": "UNLOCALIZED: Polished Cut Calcite Stairs",
|
||||
"block.create.polished_cut_calcite_wall": "UNLOCALIZED: Polished Cut Calcite Wall",
|
||||
"block.create.polished_cut_crimsite": "UNLOCALIZED: Polished Cut Crimsite",
|
||||
"block.create.polished_cut_crimsite_slab": "UNLOCALIZED: Polished Cut Crimsite Slab",
|
||||
"block.create.polished_cut_crimsite_stairs": "UNLOCALIZED: Polished Cut Crimsite Stairs",
|
||||
"block.create.polished_cut_crimsite_wall": "UNLOCALIZED: Polished Cut Crimsite Wall",
|
||||
"block.create.polished_cut_deepslate": "UNLOCALIZED: Polished Cut Deepslate",
|
||||
"block.create.polished_cut_deepslate_slab": "UNLOCALIZED: Polished Cut Deepslate Slab",
|
||||
"block.create.polished_cut_deepslate_stairs": "UNLOCALIZED: Polished Cut Deepslate Stairs",
|
||||
"block.create.polished_cut_deepslate_wall": "UNLOCALIZED: Polished Cut Deepslate Wall",
|
||||
"block.create.polished_cut_diorite": "UNLOCALIZED: Polished Cut Diorite",
|
||||
"block.create.polished_cut_diorite_slab": "UNLOCALIZED: Polished Cut Diorite Slab",
|
||||
"block.create.polished_cut_diorite_stairs": "UNLOCALIZED: Polished Cut Diorite Stairs",
|
||||
"block.create.polished_cut_diorite_wall": "UNLOCALIZED: Polished Cut Diorite Wall",
|
||||
"block.create.polished_cut_dripstone": "UNLOCALIZED: Polished Cut Dripstone",
|
||||
"block.create.polished_cut_dripstone_slab": "UNLOCALIZED: Polished Cut Dripstone Slab",
|
||||
"block.create.polished_cut_dripstone_stairs": "UNLOCALIZED: Polished Cut Dripstone Stairs",
|
||||
"block.create.polished_cut_dripstone_wall": "UNLOCALIZED: Polished Cut Dripstone Wall",
|
||||
"block.create.polished_cut_granite": "UNLOCALIZED: Polished Cut Granite",
|
||||
"block.create.polished_cut_granite_slab": "UNLOCALIZED: Polished Cut Granite Slab",
|
||||
"block.create.polished_cut_granite_stairs": "UNLOCALIZED: Polished Cut Granite Stairs",
|
||||
"block.create.polished_cut_granite_wall": "UNLOCALIZED: Polished Cut Granite Wall",
|
||||
"block.create.polished_cut_limestone": "UNLOCALIZED: Polished Cut Limestone",
|
||||
"block.create.polished_cut_limestone_slab": "UNLOCALIZED: Polished Cut Limestone Slab",
|
||||
"block.create.polished_cut_limestone_stairs": "UNLOCALIZED: Polished Cut Limestone Stairs",
|
||||
"block.create.polished_cut_limestone_wall": "UNLOCALIZED: Polished Cut Limestone Wall",
|
||||
"block.create.polished_cut_ochrum": "UNLOCALIZED: Polished Cut Ochrum",
|
||||
"block.create.polished_cut_ochrum_slab": "UNLOCALIZED: Polished Cut Ochrum Slab",
|
||||
"block.create.polished_cut_ochrum_stairs": "UNLOCALIZED: Polished Cut Ochrum Stairs",
|
||||
"block.create.polished_cut_ochrum_wall": "UNLOCALIZED: Polished Cut Ochrum Wall",
|
||||
"block.create.polished_cut_scorchia": "UNLOCALIZED: Polished Cut Scorchia",
|
||||
"block.create.polished_cut_scorchia_slab": "UNLOCALIZED: Polished Cut Scorchia Slab",
|
||||
"block.create.polished_cut_scorchia_stairs": "UNLOCALIZED: Polished Cut Scorchia Stairs",
|
||||
"block.create.polished_cut_scorchia_wall": "UNLOCALIZED: Polished Cut Scorchia Wall",
|
||||
"block.create.polished_cut_scoria": "UNLOCALIZED: Polished Cut Scoria",
|
||||
"block.create.polished_cut_scoria_slab": "UNLOCALIZED: Polished Cut Scoria Slab",
|
||||
"block.create.polished_cut_scoria_stairs": "UNLOCALIZED: Polished Cut Scoria Stairs",
|
||||
"block.create.polished_cut_scoria_wall": "UNLOCALIZED: Polished Cut Scoria Wall",
|
||||
"block.create.polished_cut_tuff": "UNLOCALIZED: Polished Cut Tuff",
|
||||
"block.create.polished_cut_tuff_slab": "UNLOCALIZED: Polished Cut Tuff Slab",
|
||||
"block.create.polished_cut_tuff_stairs": "UNLOCALIZED: Polished Cut Tuff Stairs",
|
||||
"block.create.polished_cut_tuff_wall": "UNLOCALIZED: Polished Cut Tuff Wall",
|
||||
"block.create.polished_cut_veridium": "UNLOCALIZED: Polished Cut Veridium",
|
||||
"block.create.polished_cut_veridium_slab": "UNLOCALIZED: Polished Cut Veridium Slab",
|
||||
"block.create.polished_cut_veridium_stairs": "UNLOCALIZED: Polished Cut Veridium Stairs",
|
||||
"block.create.polished_cut_veridium_wall": "UNLOCALIZED: Polished Cut Veridium Wall",
|
||||
"block.create.polished_cut_andesite": "윤나는 깎인 안산암",
|
||||
"block.create.polished_cut_andesite_slab": "윤나는 깎인 안산암 반 블록",
|
||||
"block.create.polished_cut_andesite_stairs": "윤나는 깎인 안산암 계단",
|
||||
"block.create.polished_cut_andesite_wall": "윤나는 깎인 안산암 담장",
|
||||
"block.create.polished_cut_asurine": "윤나는 깎인 유리암",
|
||||
"block.create.polished_cut_asurine_slab": "윤나는 깎인 유리암 반 블록",
|
||||
"block.create.polished_cut_asurine_stairs": "윤나는 깎인 유리암 계단",
|
||||
"block.create.polished_cut_asurine_wall": "윤나는 깎인 유리암 담장",
|
||||
"block.create.polished_cut_calcite": "윤나는 깎인 방해석",
|
||||
"block.create.polished_cut_calcite_slab": "윤나는 깎인 방해석 반 블록",
|
||||
"block.create.polished_cut_calcite_stairs": "윤나는 깎인 방해석 계단",
|
||||
"block.create.polished_cut_calcite_wall": "윤나는 깎인 방해석 담장",
|
||||
"block.create.polished_cut_crimsite": "윤나는 깎인 진홍암",
|
||||
"block.create.polished_cut_crimsite_slab": "윤나는 깎인 진홍암 반 블록",
|
||||
"block.create.polished_cut_crimsite_stairs": "윤나는 깎인 진홍암 계단",
|
||||
"block.create.polished_cut_crimsite_wall": "윤나는 깎인 진홍암 담장",
|
||||
"block.create.polished_cut_deepslate": "윤나는 깎인 심층암",
|
||||
"block.create.polished_cut_deepslate_slab": "윤나는 깎인 심층암 반 블록",
|
||||
"block.create.polished_cut_deepslate_stairs": "윤나는 깎인 심층암 계단",
|
||||
"block.create.polished_cut_deepslate_wall": "윤나는 깎인 심층암 담장",
|
||||
"block.create.polished_cut_diorite": "윤나는 깎인 섬록암",
|
||||
"block.create.polished_cut_diorite_slab": "윤나는 깎인 섬록암 반 블록",
|
||||
"block.create.polished_cut_diorite_stairs": "윤나는 깎인 섬록암 계단",
|
||||
"block.create.polished_cut_diorite_wall": "윤나는 깎인 섬록암 담장",
|
||||
"block.create.polished_cut_dripstone": "윤나는 깎인 점적석",
|
||||
"block.create.polished_cut_dripstone_slab": "윤나는 깎인 점적석 반 블록",
|
||||
"block.create.polished_cut_dripstone_stairs": "윤나는 깎인 점적석 계단",
|
||||
"block.create.polished_cut_dripstone_wall": "윤나는 깎인 점적석 담장",
|
||||
"block.create.polished_cut_granite": "윤나는 깎인 화강암",
|
||||
"block.create.polished_cut_granite_slab": "윤나는 깎인 화강암 반 블록",
|
||||
"block.create.polished_cut_granite_stairs": "윤나는 깎인 화강암 계단",
|
||||
"block.create.polished_cut_granite_wall": "윤나는 깎인 화강암 담장",
|
||||
"block.create.polished_cut_limestone": "윤나는 깎인 석회암",
|
||||
"block.create.polished_cut_limestone_slab": "윤나는 깎인 석회암 반 블록",
|
||||
"block.create.polished_cut_limestone_stairs": "윤나는 깎인 석회암 계단",
|
||||
"block.create.polished_cut_limestone_wall": "윤나는 깎인 석회암 담장",
|
||||
"block.create.polished_cut_ochrum": "윤나는 깎인 황토암",
|
||||
"block.create.polished_cut_ochrum_slab": "윤나는 깎인 황토암 반 블록",
|
||||
"block.create.polished_cut_ochrum_stairs": "윤나는 깎인 황토암 계단",
|
||||
"block.create.polished_cut_ochrum_wall": "윤나는 깎인 황토암 담장",
|
||||
"block.create.polished_cut_scorchia": "윤나는 깎인 짙은 스코리아",
|
||||
"block.create.polished_cut_scorchia_slab": "윤나는 깎인 짙은 스코리아 반 블록",
|
||||
"block.create.polished_cut_scorchia_stairs": "윤나는 깎인 짙은 스코리아 계단",
|
||||
"block.create.polished_cut_scorchia_wall": "윤나는 깎인 짙은 스코리아 담장",
|
||||
"block.create.polished_cut_scoria": "윤나는 깎인 스코리아",
|
||||
"block.create.polished_cut_scoria_slab": "윤나는 깎인 스코리아 반 블록",
|
||||
"block.create.polished_cut_scoria_stairs": "윤나는 깎인 스코리아 계단",
|
||||
"block.create.polished_cut_scoria_wall": "윤나는 깎인 스코리아 담장",
|
||||
"block.create.polished_cut_tuff": "윤나는 깎인 응회암",
|
||||
"block.create.polished_cut_tuff_slab": "윤나는 깎인 응회암 반 블록",
|
||||
"block.create.polished_cut_tuff_stairs": "윤나는 깎인 응회암 계단",
|
||||
"block.create.polished_cut_tuff_wall": "윤나는 깎인 응회암 담장",
|
||||
"block.create.polished_cut_veridium": "윤나는 깎인 심록암",
|
||||
"block.create.polished_cut_veridium_slab": "윤나는 깎인 심록암 반 블록",
|
||||
"block.create.polished_cut_veridium_stairs": "윤나는 깎인 심록암 계단",
|
||||
"block.create.polished_cut_veridium_wall": "윤나는 깎인 심록암 담장",
|
||||
"block.create.portable_fluid_interface": "액체 인터페이스",
|
||||
"block.create.portable_storage_interface": "아이템 인터페이스",
|
||||
"block.create.powered_latch": "레드스톤 걸쇠",
|
||||
"block.create.powered_toggle_latch": "레드스톤 토글 걸쇠",
|
||||
"block.create.pulley_magnet": "도르래 자석",
|
||||
"block.create.pulse_extender": "UNLOCALIZED: Pulse Extender",
|
||||
"block.create.pulse_extender": "펄스 연장기",
|
||||
"block.create.pulse_repeater": "펄스 중계기",
|
||||
"block.create.purple_nixie_tube": "보라색 닉시관",
|
||||
"block.create.purple_sail": "보라색 날개",
|
||||
|
@ -390,7 +390,7 @@
|
|||
"block.create.purple_toolbox": "보라색 공구상자",
|
||||
"block.create.purple_valve_handle": "보라색 밸브 손잡이",
|
||||
"block.create.radial_chassis": "원형 섀시",
|
||||
"block.create.raw_zinc_block": "UNLOCALIZED: Block of Raw Zinc",
|
||||
"block.create.raw_zinc_block": "아연 원석 블록",
|
||||
"block.create.red_nixie_tube": "빨간색 닉시관",
|
||||
"block.create.red_sail": "빨간색 날개",
|
||||
"block.create.red_seat": "빨간색 좌석",
|
||||
|
@ -405,70 +405,70 @@
|
|||
"block.create.sail_frame": "풍차 날개 틀",
|
||||
"block.create.schematic_table": "청사진 탁자",
|
||||
"block.create.schematicannon": "청사진 대포",
|
||||
"block.create.scorchia": "UNLOCALIZED: Scorchia",
|
||||
"block.create.scorchia_pillar": "UNLOCALIZED: Scorchia Pillar",
|
||||
"block.create.scorchia": "짙은 스코리아",
|
||||
"block.create.scorchia_pillar": "짙은 스코리아 기둥",
|
||||
"block.create.scoria": "스코리아",
|
||||
"block.create.scoria_pillar": "스코리아 기둥",
|
||||
"block.create.secondary_linear_chassis": "밝은 직선 섀시",
|
||||
"block.create.sequenced_gearshift": "순서 기어쉬프트",
|
||||
"block.create.shadow_steel_casing": "그림자 케이스",
|
||||
"block.create.shaft": "축",
|
||||
"block.create.small_andesite_brick_slab": "UNLOCALIZED: Small Andesite Brick Slab",
|
||||
"block.create.small_andesite_brick_stairs": "UNLOCALIZED: Small Andesite Brick Stairs",
|
||||
"block.create.small_andesite_brick_wall": "UNLOCALIZED: Small Andesite Brick Wall",
|
||||
"block.create.small_andesite_bricks": "UNLOCALIZED: Small Andesite Bricks",
|
||||
"block.create.small_asurine_brick_slab": "UNLOCALIZED: Small Asurine Brick Slab",
|
||||
"block.create.small_asurine_brick_stairs": "UNLOCALIZED: Small Asurine Brick Stairs",
|
||||
"block.create.small_asurine_brick_wall": "UNLOCALIZED: Small Asurine Brick Wall",
|
||||
"block.create.small_asurine_bricks": "UNLOCALIZED: Small Asurine Bricks",
|
||||
"block.create.small_calcite_brick_slab": "UNLOCALIZED: Small Calcite Brick Slab",
|
||||
"block.create.small_calcite_brick_stairs": "UNLOCALIZED: Small Calcite Brick Stairs",
|
||||
"block.create.small_calcite_brick_wall": "UNLOCALIZED: Small Calcite Brick Wall",
|
||||
"block.create.small_calcite_bricks": "UNLOCALIZED: Small Calcite Bricks",
|
||||
"block.create.small_crimsite_brick_slab": "UNLOCALIZED: Small Crimsite Brick Slab",
|
||||
"block.create.small_crimsite_brick_stairs": "UNLOCALIZED: Small Crimsite Brick Stairs",
|
||||
"block.create.small_crimsite_brick_wall": "UNLOCALIZED: Small Crimsite Brick Wall",
|
||||
"block.create.small_crimsite_bricks": "UNLOCALIZED: Small Crimsite Bricks",
|
||||
"block.create.small_deepslate_brick_slab": "UNLOCALIZED: Small Deepslate Brick Slab",
|
||||
"block.create.small_deepslate_brick_stairs": "UNLOCALIZED: Small Deepslate Brick Stairs",
|
||||
"block.create.small_deepslate_brick_wall": "UNLOCALIZED: Small Deepslate Brick Wall",
|
||||
"block.create.small_deepslate_bricks": "UNLOCALIZED: Small Deepslate Bricks",
|
||||
"block.create.small_diorite_brick_slab": "UNLOCALIZED: Small Diorite Brick Slab",
|
||||
"block.create.small_diorite_brick_stairs": "UNLOCALIZED: Small Diorite Brick Stairs",
|
||||
"block.create.small_diorite_brick_wall": "UNLOCALIZED: Small Diorite Brick Wall",
|
||||
"block.create.small_diorite_bricks": "UNLOCALIZED: Small Diorite Bricks",
|
||||
"block.create.small_dripstone_brick_slab": "UNLOCALIZED: Small Dripstone Brick Slab",
|
||||
"block.create.small_dripstone_brick_stairs": "UNLOCALIZED: Small Dripstone Brick Stairs",
|
||||
"block.create.small_dripstone_brick_wall": "UNLOCALIZED: Small Dripstone Brick Wall",
|
||||
"block.create.small_dripstone_bricks": "UNLOCALIZED: Small Dripstone Bricks",
|
||||
"block.create.small_granite_brick_slab": "UNLOCALIZED: Small Granite Brick Slab",
|
||||
"block.create.small_granite_brick_stairs": "UNLOCALIZED: Small Granite Brick Stairs",
|
||||
"block.create.small_granite_brick_wall": "UNLOCALIZED: Small Granite Brick Wall",
|
||||
"block.create.small_granite_bricks": "UNLOCALIZED: Small Granite Bricks",
|
||||
"block.create.small_limestone_brick_slab": "UNLOCALIZED: Small Limestone Brick Slab",
|
||||
"block.create.small_limestone_brick_stairs": "UNLOCALIZED: Small Limestone Brick Stairs",
|
||||
"block.create.small_limestone_brick_wall": "UNLOCALIZED: Small Limestone Brick Wall",
|
||||
"block.create.small_limestone_bricks": "UNLOCALIZED: Small Limestone Bricks",
|
||||
"block.create.small_ochrum_brick_slab": "UNLOCALIZED: Small Ochrum Brick Slab",
|
||||
"block.create.small_ochrum_brick_stairs": "UNLOCALIZED: Small Ochrum Brick Stairs",
|
||||
"block.create.small_ochrum_brick_wall": "UNLOCALIZED: Small Ochrum Brick Wall",
|
||||
"block.create.small_ochrum_bricks": "UNLOCALIZED: Small Ochrum Bricks",
|
||||
"block.create.small_scorchia_brick_slab": "UNLOCALIZED: Small Scorchia Brick Slab",
|
||||
"block.create.small_scorchia_brick_stairs": "UNLOCALIZED: Small Scorchia Brick Stairs",
|
||||
"block.create.small_scorchia_brick_wall": "UNLOCALIZED: Small Scorchia Brick Wall",
|
||||
"block.create.small_scorchia_bricks": "UNLOCALIZED: Small Scorchia Bricks",
|
||||
"block.create.small_scoria_brick_slab": "UNLOCALIZED: Small Scoria Brick Slab",
|
||||
"block.create.small_scoria_brick_stairs": "UNLOCALIZED: Small Scoria Brick Stairs",
|
||||
"block.create.small_scoria_brick_wall": "UNLOCALIZED: Small Scoria Brick Wall",
|
||||
"block.create.small_scoria_bricks": "UNLOCALIZED: Small Scoria Bricks",
|
||||
"block.create.small_tuff_brick_slab": "UNLOCALIZED: Small Tuff Brick Slab",
|
||||
"block.create.small_tuff_brick_stairs": "UNLOCALIZED: Small Tuff Brick Stairs",
|
||||
"block.create.small_tuff_brick_wall": "UNLOCALIZED: Small Tuff Brick Wall",
|
||||
"block.create.small_tuff_bricks": "UNLOCALIZED: Small Tuff Bricks",
|
||||
"block.create.small_veridium_brick_slab": "UNLOCALIZED: Small Veridium Brick Slab",
|
||||
"block.create.small_veridium_brick_stairs": "UNLOCALIZED: Small Veridium Brick Stairs",
|
||||
"block.create.small_veridium_brick_wall": "UNLOCALIZED: Small Veridium Brick Wall",
|
||||
"block.create.small_veridium_bricks": "UNLOCALIZED: Small Veridium Bricks",
|
||||
"block.create.small_andesite_brick_slab": "작은 안산암 벽돌 반 블록",
|
||||
"block.create.small_andesite_brick_stairs": "작은 안산암 벽돌 계단",
|
||||
"block.create.small_andesite_brick_wall": "작은 안산암 벽돌 담장",
|
||||
"block.create.small_andesite_bricks": "작은 안산암 벽돌",
|
||||
"block.create.small_asurine_brick_slab": "작은 유리암 벽돌 반 블록",
|
||||
"block.create.small_asurine_brick_stairs": "작은 유리암 벽돌 계단",
|
||||
"block.create.small_asurine_brick_wall": "작은 유리암 벽돌 담장",
|
||||
"block.create.small_asurine_bricks": "작은 유리암 벽돌",
|
||||
"block.create.small_calcite_brick_slab": "작은 방해석 벽돌 반 블록",
|
||||
"block.create.small_calcite_brick_stairs": "작은 방해석 벽돌 계단",
|
||||
"block.create.small_calcite_brick_wall": "작은 방해석 벽돌 담장",
|
||||
"block.create.small_calcite_bricks": "작은 방해석 벽돌",
|
||||
"block.create.small_crimsite_brick_slab": "작은 진홍암 벽돌 반 블록",
|
||||
"block.create.small_crimsite_brick_stairs": "작은 진홍암 벽돌 계단",
|
||||
"block.create.small_crimsite_brick_wall": "작은 진홍암 벽돌 담장",
|
||||
"block.create.small_crimsite_bricks": "작은 진홍암 벽돌",
|
||||
"block.create.small_deepslate_brick_slab": "작은 심층암 벽돌 반 블록",
|
||||
"block.create.small_deepslate_brick_stairs": "작은 심층암 벽돌 계단",
|
||||
"block.create.small_deepslate_brick_wall": "작은 심층암 벽돌 담장",
|
||||
"block.create.small_deepslate_bricks": "작은 심층암 벽돌",
|
||||
"block.create.small_diorite_brick_slab": "작은 섬록암 벽돌 반 블록",
|
||||
"block.create.small_diorite_brick_stairs": "작은 섬록암 벽돌 계단",
|
||||
"block.create.small_diorite_brick_wall": "작은 섬록암 벽돌 담장",
|
||||
"block.create.small_diorite_bricks": "작은 섬록암 벽돌",
|
||||
"block.create.small_dripstone_brick_slab": "작은 점적석 벽돌 반 블록",
|
||||
"block.create.small_dripstone_brick_stairs": "작은 점적석 벽돌 계단",
|
||||
"block.create.small_dripstone_brick_wall": "작은 점적석 벽돌 담장",
|
||||
"block.create.small_dripstone_bricks": "작은 점적석 벽돌",
|
||||
"block.create.small_granite_brick_slab": "작은 화강암 벽돌 반 블록",
|
||||
"block.create.small_granite_brick_stairs": "작은 화강암 벽돌 계단",
|
||||
"block.create.small_granite_brick_wall": "작은 화강암 벽돌 담장",
|
||||
"block.create.small_granite_bricks": "작은 화강암 벽돌",
|
||||
"block.create.small_limestone_brick_slab": "작은 석회암 벽돌 반 블록",
|
||||
"block.create.small_limestone_brick_stairs": "작은 석회암 벽돌 계단",
|
||||
"block.create.small_limestone_brick_wall": "작은 석회암 벽돌 담장",
|
||||
"block.create.small_limestone_bricks": "작은 석회암 벽돌",
|
||||
"block.create.small_ochrum_brick_slab": "작은 황토암 벽돌 반 블록",
|
||||
"block.create.small_ochrum_brick_stairs": "작은 황토암 벽돌 계단",
|
||||
"block.create.small_ochrum_brick_wall": "작은 황토암 벽돌 담장",
|
||||
"block.create.small_ochrum_bricks": "작은 황토암 벽돌",
|
||||
"block.create.small_scorchia_brick_slab": "작은 짙은 스코리아 벽돌 반 블록",
|
||||
"block.create.small_scorchia_brick_stairs": "작은 짙은 스코리아 벽돌 계단",
|
||||
"block.create.small_scorchia_brick_wall": "작은 짙은 스코리아 벽돌 담장",
|
||||
"block.create.small_scorchia_bricks": "작은 짙은 스코리아 벽돌",
|
||||
"block.create.small_scoria_brick_slab": "작은 스코리아 벽돌 반 블록",
|
||||
"block.create.small_scoria_brick_stairs": "작은 스코리아 벽돌 계단",
|
||||
"block.create.small_scoria_brick_wall": "작은 스코리아 벽돌 담장",
|
||||
"block.create.small_scoria_bricks": "작은 스코리아 벽돌",
|
||||
"block.create.small_tuff_brick_slab": "작은 응회암 벽돌 반 블록",
|
||||
"block.create.small_tuff_brick_stairs": "작은 응회암 벽돌 계단",
|
||||
"block.create.small_tuff_brick_wall": "작은 응회암 벽돌 담장",
|
||||
"block.create.small_tuff_bricks": "작은 응회암 벽돌",
|
||||
"block.create.small_veridium_brick_slab": "작은 심록암 벽돌 반 블록",
|
||||
"block.create.small_veridium_brick_stairs": "작은 심록암 벽돌 계단",
|
||||
"block.create.small_veridium_brick_wall": "작은 심록암 벽돌 담장",
|
||||
"block.create.small_veridium_bricks": "작은 심록암 벽돌",
|
||||
"block.create.smart_chute": "스마트 슈트",
|
||||
"block.create.smart_fluid_pipe": "스마트 액체 파이프",
|
||||
"block.create.speedometer": "속도 계측기",
|
||||
|
@ -481,45 +481,45 @@
|
|||
"block.create.stressometer": "피로도 계측기",
|
||||
"block.create.tiled_glass": "타일 유리",
|
||||
"block.create.tiled_glass_pane": "타일 유리판",
|
||||
"block.create.tuff_pillar": "UNLOCALIZED: Tuff Pillar",
|
||||
"block.create.tuff_pillar": "응회암 기둥",
|
||||
"block.create.turntable": "돌림판",
|
||||
"block.create.veridium": "UNLOCALIZED: Veridium",
|
||||
"block.create.veridium_pillar": "UNLOCALIZED: Veridium Pillar",
|
||||
"block.create.veridium": "심록암",
|
||||
"block.create.veridium_pillar": "심록암 기둥",
|
||||
"block.create.vertical_framed_glass": "수직 유리",
|
||||
"block.create.vertical_framed_glass_pane": "수직 유리판",
|
||||
"block.create.warped_window": "뒤틀린 유리창",
|
||||
"block.create.warped_window_pane": "뒤틀린 유리판",
|
||||
"block.create.water_wheel": "물레바퀴",
|
||||
"block.create.waxed_copper_shingle_slab": "UNLOCALIZED: Waxed Copper Shingle Slab",
|
||||
"block.create.waxed_copper_shingle_stairs": "UNLOCALIZED: Waxed Copper Shingle Stairs",
|
||||
"block.create.waxed_copper_shingles": "UNLOCALIZED: Waxed Copper Shingles",
|
||||
"block.create.waxed_copper_tile_slab": "UNLOCALIZED: Waxed Copper Tile Slab",
|
||||
"block.create.waxed_copper_tile_stairs": "UNLOCALIZED: Waxed Copper Tile Stairs",
|
||||
"block.create.waxed_copper_tiles": "UNLOCALIZED: Waxed Copper Tiles",
|
||||
"block.create.waxed_exposed_copper_shingle_slab": "UNLOCALIZED: Waxed Exposed Copper Shingle Slab",
|
||||
"block.create.waxed_exposed_copper_shingle_stairs": "UNLOCALIZED: Waxed Exposed Copper Shingle Stairs",
|
||||
"block.create.waxed_exposed_copper_shingles": "UNLOCALIZED: Waxed Exposed Copper Shingles",
|
||||
"block.create.waxed_exposed_copper_tile_slab": "UNLOCALIZED: Waxed Exposed Copper Tile Slab",
|
||||
"block.create.waxed_exposed_copper_tile_stairs": "UNLOCALIZED: Waxed Exposed Copper Tile Stairs",
|
||||
"block.create.waxed_exposed_copper_tiles": "UNLOCALIZED: Waxed Exposed Copper Tiles",
|
||||
"block.create.waxed_oxidized_copper_shingle_slab": "UNLOCALIZED: Waxed Oxidized Copper Shingle Slab",
|
||||
"block.create.waxed_oxidized_copper_shingle_stairs": "UNLOCALIZED: Waxed Oxidized Copper Shingle Stairs",
|
||||
"block.create.waxed_oxidized_copper_shingles": "UNLOCALIZED: Waxed Oxidized Copper Shingles",
|
||||
"block.create.waxed_oxidized_copper_tile_slab": "UNLOCALIZED: Waxed Oxidized Copper Tile Slab",
|
||||
"block.create.waxed_oxidized_copper_tile_stairs": "UNLOCALIZED: Waxed Oxidized Copper Tile Stairs",
|
||||
"block.create.waxed_oxidized_copper_tiles": "UNLOCALIZED: Waxed Oxidized Copper Tiles",
|
||||
"block.create.waxed_weathered_copper_shingle_slab": "UNLOCALIZED: Waxed Weathered Copper Shingle Slab",
|
||||
"block.create.waxed_weathered_copper_shingle_stairs": "UNLOCALIZED: Waxed Weathered Copper Shingle Stairs",
|
||||
"block.create.waxed_weathered_copper_shingles": "UNLOCALIZED: Waxed Weathered Copper Shingles",
|
||||
"block.create.waxed_weathered_copper_tile_slab": "UNLOCALIZED: Waxed Weathered Copper Tile Slab",
|
||||
"block.create.waxed_weathered_copper_tile_stairs": "UNLOCALIZED: Waxed Weathered Copper Tile Stairs",
|
||||
"block.create.waxed_weathered_copper_tiles": "UNLOCALIZED: Waxed Weathered Copper Tiles",
|
||||
"block.create.weathered_copper_shingle_slab": "UNLOCALIZED: Weathered Copper Shingle Slab",
|
||||
"block.create.weathered_copper_shingle_stairs": "UNLOCALIZED: Weathered Copper Shingle Stairs",
|
||||
"block.create.weathered_copper_shingles": "UNLOCALIZED: Weathered Copper Shingles",
|
||||
"block.create.weathered_copper_tile_slab": "UNLOCALIZED: Weathered Copper Tile Slab",
|
||||
"block.create.weathered_copper_tile_stairs": "UNLOCALIZED: Weathered Copper Tile Stairs",
|
||||
"block.create.weathered_copper_tiles": "UNLOCALIZED: Weathered Copper Tiles",
|
||||
"block.create.waxed_copper_shingle_slab": "밀랍칠한 구리 판자 반 블록",
|
||||
"block.create.waxed_copper_shingle_stairs": "밀랍칠한 구리 판자 계단",
|
||||
"block.create.waxed_copper_shingles": "밀랍칠한 구리 판자",
|
||||
"block.create.waxed_copper_tile_slab": "밀랍칠한 구리 타일 반 블록",
|
||||
"block.create.waxed_copper_tile_stairs": "밀랍칠한 구리 타일 계단",
|
||||
"block.create.waxed_copper_tiles": "밀랍칠한 구리 타일",
|
||||
"block.create.waxed_exposed_copper_shingle_slab": "밀랍칠한 약간 녹슨 구리 판자 반 블록",
|
||||
"block.create.waxed_exposed_copper_shingle_stairs": "밀랍칠한 약간 녹슨 구리 판자 계단",
|
||||
"block.create.waxed_exposed_copper_shingles": "밀랍칠한 약간 녹슨 구리 판자",
|
||||
"block.create.waxed_exposed_copper_tile_slab": "밀랍칠한 약간 녹슨 구리 타일 반 블록",
|
||||
"block.create.waxed_exposed_copper_tile_stairs": "밀랍칠한 약간 녹슨 구리 타일 계단",
|
||||
"block.create.waxed_exposed_copper_tiles": "밀랍칠한 약간 녹슨 구리 타일",
|
||||
"block.create.waxed_oxidized_copper_shingle_slab": "밀랍칠한 산화된 구리 판자 반 블록",
|
||||
"block.create.waxed_oxidized_copper_shingle_stairs": "밀랍칠한 산화된 구리 판자 계단",
|
||||
"block.create.waxed_oxidized_copper_shingles": "밀랍칠한 산화된 구리 판자",
|
||||
"block.create.waxed_oxidized_copper_tile_slab": "밀랍칠한 산화된 구리 타일 반 블록",
|
||||
"block.create.waxed_oxidized_copper_tile_stairs": "밀랍칠한 산화된 구리 타일 계단",
|
||||
"block.create.waxed_oxidized_copper_tiles": "밀랍칠한 산화된 구리 타일",
|
||||
"block.create.waxed_weathered_copper_shingle_slab": "밀랍칠한 녹슨 구리 판자 반 블록",
|
||||
"block.create.waxed_weathered_copper_shingle_stairs": "밀랍칠한 녹슨 구리 판자 계단",
|
||||
"block.create.waxed_weathered_copper_shingles": "밀랍칠한 녹슨 구리 판자",
|
||||
"block.create.waxed_weathered_copper_tile_slab": "밀랍칠한 녹슨 구리 타일 반 블록",
|
||||
"block.create.waxed_weathered_copper_tile_stairs": "밀랍칠한 녹슨 구리 타일 계단",
|
||||
"block.create.waxed_weathered_copper_tiles": "밀랍칠한 녹슨 구리 타일",
|
||||
"block.create.weathered_copper_shingle_slab": "녹슨 구리 판자 반 블록",
|
||||
"block.create.weathered_copper_shingle_stairs": "녹슨 구리 판자 계단",
|
||||
"block.create.weathered_copper_shingles": "녹슨 구리 판자",
|
||||
"block.create.weathered_copper_tile_slab": "녹슨 구리 타일 반 블록",
|
||||
"block.create.weathered_copper_tile_stairs": "녹슨 구리 타일 계단",
|
||||
"block.create.weathered_copper_tiles": "녹슨 구리 타일",
|
||||
"block.create.weighted_ejector": "투척기",
|
||||
"block.create.white_nixie_tube": "하얀색 닉시관",
|
||||
"block.create.white_sail": "하얀색 날개",
|
||||
|
@ -591,7 +591,7 @@
|
|||
"item.create.electron_tube": "전지 튜브",
|
||||
"item.create.empty_blaze_burner": "빈 블레이즈 버너",
|
||||
"item.create.empty_schematic": "빈 청사진",
|
||||
"item.create.experience_nugget": "UNLOCALIZED: Nugget of Experience",
|
||||
"item.create.experience_nugget": "경험의 조각",
|
||||
"item.create.extendo_grip": "외장형 연장 팔",
|
||||
"item.create.filter": "필터 틀",
|
||||
"item.create.furnace_minecart_contraption": "화로가 실린 광산 수레 구조물",
|
||||
|
@ -613,7 +613,7 @@
|
|||
"item.create.powdered_obsidian": "흑요석 가루",
|
||||
"item.create.precision_mechanism": "정밀 기계장치",
|
||||
"item.create.propeller": "프로펠러",
|
||||
"item.create.raw_zinc": "UNLOCALIZED: Raw Zinc",
|
||||
"item.create.raw_zinc": "아연 원석",
|
||||
"item.create.red_sand_paper": "붉은 사포",
|
||||
"item.create.refined_radiance": "정제된 광채",
|
||||
"item.create.rose_quartz": "장밋빛 석영",
|
||||
|
@ -750,7 +750,7 @@
|
|||
"advancement.create.nixie_tube": "나는 스타일있게 표시해",
|
||||
"advancement.create.nixie_tube.desc": "닉시관을 만들고 설치하세요.",
|
||||
"advancement.create.deployer": "찌르고, 설치하고, 공격!",
|
||||
"advancement.create.deployer.desc": "당신의 분신, 배포기를 설치하고 작동시키세요.",
|
||||
"advancement.create.deployer.desc": "당신의 분신, 기계 손을 설치하고 작동시키세요.",
|
||||
"advancement.create.speed_controller": "엔지니어들이 이 장치를 싫어합니다",
|
||||
"advancement.create.speed_controller.desc": "궁극의 회전속도 변경장치, 회전 속도 컨트롤러를 설치하세요.",
|
||||
"advancement.create.flywheel": "공장의 심장",
|
||||
|
@ -768,7 +768,7 @@
|
|||
"advancement.create.arm_blaze_burner": "연료를 줄 수 있는 정도의 능력",
|
||||
"advancement.create.arm_blaze_burner.desc": "기계 팔이 블레이즈 버너에 연료를 넣도록 하세요.",
|
||||
"advancement.create.fist_bump": "하이파이브!",
|
||||
"advancement.create.fist_bump.desc": "두 배포기를 서로 부딫치게 하세요.",
|
||||
"advancement.create.fist_bump.desc": "두 기계 손을 서로 부딫치게 하세요.",
|
||||
"advancement.create.crushing_wheel": "한 쌍의 거인들",
|
||||
"advancement.create.crushing_wheel.desc": "더 많은 재료를 더 효율적으로 갈 분쇄 휠을 만드세요.",
|
||||
"advancement.create.blaze_cake": "폭주",
|
||||
|
@ -805,7 +805,7 @@
|
|||
"death.attack.create.cuckoo_clock_explosion": "%1$s이(가) 조작된 뻐꾸기 시계에 의해 폭파당했습니다",
|
||||
"death.attack.create.cuckoo_clock_explosion.player": "%1$s이(가) 조작된 뻐꾸기 시계에 의해 폭파당했습니다",
|
||||
|
||||
"create.block.deployer.damage_source_name": "배포기",
|
||||
"create.block.deployer.damage_source_name": "기계 손",
|
||||
"create.block.cart_assembler.invalid": "카트 조립기를 레일 위에 설치하세요",
|
||||
|
||||
"create.menu.return": "메뉴로 돌아가기",
|
||||
|
@ -828,7 +828,7 @@
|
|||
"create.recipe.fan_blasting.fan": "용암과 선풍기",
|
||||
"create.recipe.pressing": "압착",
|
||||
"create.recipe.mixing": "혼합",
|
||||
"create.recipe.deploying": "Deploying",
|
||||
"create.recipe.deploying": "행동 모방",
|
||||
"create.recipe.automatic_shapeless": "무형 자동 조합",
|
||||
"create.recipe.automatic_brewing": "자동 양조",
|
||||
"create.recipe.packing": "압축",
|
||||
|
@ -1101,12 +1101,12 @@
|
|||
"create.gui.schematicannon.option.replaceWithAny": "온전한 블록을 아무 재료로 대체함",
|
||||
"create.gui.schematicannon.option.replaceWithEmpty": "온전한 블록을 공기로 채움",
|
||||
"create.gui.schematicannon.option.skipMissing": "부족한 블록을 무시하고 진행",
|
||||
"create.gui.schematicannon.option.skipTileEntities": "타일 엔티티를 보호",
|
||||
"create.gui.schematicannon.option.skipTileEntities": "UNLOCALIZED: Protect Tile Entities",
|
||||
"create.gui.schematicannon.slot.gunpowder": "화약을 넣어 대포 연료를 채우세요",
|
||||
"create.gui.schematicannon.slot.listPrinter": "책을 넣어 건축 재료 체크리스트를 인쇄하세요",
|
||||
"create.gui.schematicannon.slot.schematic": "여기에 청사진을 넣으세요. 건설 구역이 설정되어 있어야 합니다.",
|
||||
"create.gui.schematicannon.option.skipMissing.description": "만약 대포가 설치에 필요한 블록을 찾지 못할 경우,건너뛰고 다음 블록 설치를 진행합니다.",
|
||||
"create.gui.schematicannon.option.skipTileEntities.description": "대포가 상세정보가 든 상자같은 타일 엔티티 설치를 무시합니다.",
|
||||
"create.gui.schematicannon.option.skipTileEntities.description": "UNLOCALIZED: The cannon will avoid replacing data holding blocks such as Chests.",
|
||||
"create.gui.schematicannon.option.dontReplaceSolid.description": "대포가 작업구역의 온전한 블록을 대체하지 않습니다.",
|
||||
"create.gui.schematicannon.option.replaceWithSolid.description": "대포가 작업구역의 온전한 블록을 대포가 가진 재료로 대체합니다.",
|
||||
"create.gui.schematicannon.option.replaceWithAny.description": "대포가 작업구역의 온전한 블록을 대포가 가진 어떠한 재료로든 대체합니다.",
|
||||
|
@ -1131,7 +1131,7 @@
|
|||
"create.schematicannon.status.schematicExpired": "청사진 파일이 제거됨",
|
||||
|
||||
"create.materialChecklist": "재료 목록",
|
||||
"create.materialChecklist.blocksNotLoaded": "* 경고 *\n\n관련된 청크가 불러와지지 않아 재료 목록이 부정확할 수 있습니다.",
|
||||
"create.materialChecklist.blocksNotLoaded": "* 경고 *\n\n관련된 청크가 불러올 수 없어 재료 목록이 부정확할 수 있습니다.",
|
||||
|
||||
"create.gui.filter.deny_list": "블랙리스트",
|
||||
"create.gui.filter.deny_list.description": "위에 등록된 아이템은 통과할 수 없습니다. 빈 블랙리스트는 모든 아이템을 통과시킵니다.",
|
||||
|
@ -1306,8 +1306,8 @@
|
|||
"create.hint.mechanical_arm_no_targets": "이 _기계 팔_은 _목표_가 설정되지 않았습니다. _기계 팔을 손에 들고_ 벨트, 아이템 거치대, 퍼널을 _우클릭_하여 목표로 지정하세요.",
|
||||
"create.hint.empty_bearing.title": "베어링 업데이트",
|
||||
"create.hint.empty_bearing": "_맨 손_으로 베어링을 _우클릭_하여 구조물을 _부착_하세요.",
|
||||
"create.hint.full_deployer.title": "배포기 아이템 과적",
|
||||
"create.hint.full_deployer": "이 _배포기_는 _배출_할 아이템을 가지고 있습니다. 호퍼 , 퍼널 등을 이용해 아이템을 빼내세요.",
|
||||
"create.hint.full_deployer.title": "기계 손 아이템 과적",
|
||||
"create.hint.full_deployer": "이 _기계 손_은 _배출_할 아이템을 가지고 있습니다. 호퍼 , 퍼널 등을 이용해 아이템을 빼내세요.",
|
||||
|
||||
"create.gui.config.overlay1": "Hi :)",
|
||||
"create.gui.config.overlay2": "This is a sample overlay",
|
||||
|
@ -1338,7 +1338,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "압착기가 작동함",
|
||||
"create.subtitle.fwoomp": "감자포를 쏨",
|
||||
"create.subtitle.worldshaper_place": "세계편집기가 쏨",
|
||||
"create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises",
|
||||
"create.subtitle.sanding_long": "사포를 사용함",
|
||||
"create.subtitle.crushing_1": "분쇄되는 소리",
|
||||
"create.subtitle.depot_slide": "아이템이 미끄러짐",
|
||||
"create.subtitle.saw_activate_stone": "톱이 작동함",
|
||||
|
@ -1351,7 +1351,7 @@
|
|||
"create.subtitle.controller_put": "조작기를 놓음",
|
||||
"create.subtitle.cranking": "크랭크가 돌아감",
|
||||
"create.subtitle.wrench_remove": "장치가 부숴짐",
|
||||
"create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises",
|
||||
"create.subtitle.sanding_short": "사포를 사용함",
|
||||
"create.subtitle.cogs": "톱니바퀴가 돌아감",
|
||||
"create.subtitle.slime_added": "슬라임이 철퍽거림",
|
||||
"create.subtitle.wrench_rotate": "렌치를 사용함",
|
||||
|
@ -1545,7 +1545,7 @@
|
|||
"block.create.controller_rail.tooltip.behaviour1": "_신호 세기에 따라_ 지나가는 수레를 _가속, 감속_합니다. 레드스톤 신호는 다른 방향 레일에도 전달됩니다. 두 방향레일에 다른 세기를 전달하면 중간 레일들은 두 세기 사이의 신호를 받습니다.",
|
||||
|
||||
"item.create.sand_paper.tooltip": "SAND PAPER",
|
||||
"item.create.sand_paper.tooltip.summary": "재료들을 _윤내는 데_ 쓰이는 거친 종이입니다. 배포기가 자동으로 쓸 수 있습니다.",
|
||||
"item.create.sand_paper.tooltip.summary": "재료들을 _윤내는 데_ 쓰이는 거친 종이입니다. 기계 손이 자동으로 쓸 수 있습니다.",
|
||||
"item.create.sand_paper.tooltip.condition1": "사용할 때",
|
||||
"item.create.sand_paper.tooltip.behaviour1": "_다른 손_에있는 아이템과 _바닥에 있는 아이템_을 윤냅니다.",
|
||||
|
||||
|
@ -1602,10 +1602,10 @@
|
|||
"item.create.minecart_coupling.tooltip.condition1": "광산 수레에 사용할 때",
|
||||
"item.create.minecart_coupling.tooltip.behaviour1": "_두 수레를 묶어_ 이동할 때 고정된 _거리를 유지하게_ 합니다.",
|
||||
|
||||
"item.create.experience_nugget.tooltip": "UNLOCALIZED: NUGGET OF EXPERIENCE",
|
||||
"item.create.experience_nugget.tooltip.summary": "UNLOCALIZED: _Ding!_ A speck of _inspiration_ from your fantastic inventions.",
|
||||
"item.create.experience_nugget.tooltip.condition1": "UNLOCALIZED: When Used",
|
||||
"item.create.experience_nugget.tooltip.behaviour1": "UNLOCALIZED: _Redeems_ _Experience_ points contained within.",
|
||||
"item.create.experience_nugget.tooltip": "NUGGET OF EXPERIENCE",
|
||||
"item.create.experience_nugget.tooltip.summary": "_띵!_ 당신의 멋진 발명품에서 탄생한 _영감_의 알맹이입니다.",
|
||||
"item.create.experience_nugget.tooltip.condition1": "사용했을 때",
|
||||
"item.create.experience_nugget.tooltip.behaviour1": "담겨져 있던 _경험치_를 _배출_합니다.",
|
||||
|
||||
"block.create.peculiar_bell.tooltip": "PECULIAR BELL",
|
||||
"block.create.peculiar_bell.tooltip.summary": "장식을 위한 황동 종입니다. 영혼 불꽃 위에 설치하면 _기이한_ 일이 일어난다고 합니다...",
|
||||
|
@ -1725,7 +1725,7 @@
|
|||
"create.ponder.blaze_burner.text_1": "블레이즈 버너는 대야 안에서 처리되는 아이템에 열을 제공합니다.",
|
||||
"create.ponder.blaze_burner.text_2": "이런 식으로, 블레이즈는 가연성 물질을 먹습니다.",
|
||||
"create.ponder.blaze_burner.text_3": "블레이즈 케아크를 먹이면 버너는 더 뜨겁게 타오릅니다.",
|
||||
"create.ponder.blaze_burner.text_4": "이 시스템은 배포기나 기계 팔을 이용해 자동화될 수 있습니다.",
|
||||
"create.ponder.blaze_burner.text_4": "이 시스템은 기계 손이나 기계 팔을 이용해 자동화될 수 있습니다.",
|
||||
|
||||
"create.ponder.brass_funnel.header": "황동 퍼널",
|
||||
"create.ponder.brass_funnel.text_1": "안산암 퍼널는 아이템 한 개만 뽑아냅니다.",
|
||||
|
@ -1824,10 +1824,10 @@
|
|||
"create.ponder.cogwheel.text_1": "톱니바퀴는 인접한 톱니바퀴에 동력을 전달합니다.",
|
||||
"create.ponder.cogwheel.text_2": "이렇게 연결된 톱니바퀴 축은 반대방향으로 돌아갑니다.",
|
||||
|
||||
"create.ponder.cogwheel_casing.header": "UNLOCALIZED: Encasing Cogwheels",
|
||||
"create.ponder.cogwheel_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Cogwheels",
|
||||
"create.ponder.cogwheel_casing.text_2": "UNLOCALIZED: Components added after encasing will not connect to the shaft outputs",
|
||||
"create.ponder.cogwheel_casing.text_3": "UNLOCALIZED: The Wrench can be used to toggle connections",
|
||||
"create.ponder.cogwheel_casing.header": "톱니바쿼에 케이스 씌우기",
|
||||
"create.ponder.cogwheel_casing.text_1": "황동, 안산암 케이스는 톱니바퀴를 꾸밀 때 사용할 수 있습니다.",
|
||||
"create.ponder.cogwheel_casing.text_2": "기본적으로 케이스를 씌운 톱니바퀴는 축과 연결되지 않습니다.",
|
||||
"create.ponder.cogwheel_casing.text_3": "렌치를 사용하여 축과 연결하거나 차단할 수 있습니다.",
|
||||
|
||||
"create.ponder.creative_fluid_tank.header": "크리에이티브 탱크",
|
||||
"create.ponder.creative_fluid_tank.text_1": "크리에이티브 탱크는 무한히 액체를 공급합니다.",
|
||||
|
@ -1845,41 +1845,41 @@
|
|||
"create.ponder.crushing_wheels.text_3": "위에서 투입된 아이템은 가공되고, 아래로 떨어집니다.",
|
||||
"create.ponder.crushing_wheels.text_4": "이 과정은 자동화 될 수 있습니다.",
|
||||
|
||||
"create.ponder.deployer.header": "배포기 이용하기",
|
||||
"create.ponder.deployer.text_1": "동력을 받으면, 배포기는 플레이어의 행동을 흉내냅니다.",
|
||||
"create.ponder.deployer.text_10": "손에다 우클릭하여 배포기가 쓸 아이템을 건네세요.",
|
||||
"create.ponder.deployer.header": "기계 손 이용하기",
|
||||
"create.ponder.deployer.text_1": "동력을 받으면, 기계 손은 플레이어의 행동을 흉내냅니다.",
|
||||
"create.ponder.deployer.text_10": "손에다 우클릭하여 기계 손이 쓸 아이템을 건네세요.",
|
||||
"create.ponder.deployer.text_11": "아이템은 자동으로 투입될 수 있습니다.",
|
||||
"create.ponder.deployer.text_12": "필터 슬롯도 있습니다.",
|
||||
"create.ponder.deployer.text_13": "필터가 설정되면, 필터에 맞는 아이템을 들고있을 때 작동합니다.",
|
||||
"create.ponder.deployer.text_14": "필터에 맞는 아이템만 들어가며...",
|
||||
"create.ponder.deployer.text_15": "...그 외의 아이템은 배출됩니다.",
|
||||
"create.ponder.deployer.text_2": "배포기는 한 칸 떨어진 블록에 상호작용합니다.",
|
||||
"create.ponder.deployer.text_2": "기계 손은 한 칸 떨어진 블록에 상호작용합니다.",
|
||||
"create.ponder.deployer.text_3": "바로 앞에 블록이 있어도 상괸없습니다.",
|
||||
"create.ponder.deployer.text_4": "배포기가 할 수 있는 것:",
|
||||
"create.ponder.deployer.text_4": "기계 손이 할 수 있는 것:",
|
||||
"create.ponder.deployer.text_5": "블록 설치하기",
|
||||
"create.ponder.deployer.text_6": "아이템 사용하기",
|
||||
"create.ponder.deployer.text_7": "블록 활성화하기",
|
||||
"create.ponder.deployer.text_8": "블록 수확하기",
|
||||
"create.ponder.deployer.text_9": "몹 공격하기",
|
||||
|
||||
"create.ponder.deployer_contraption.header": "구조물에서의 배포기",
|
||||
"create.ponder.deployer_contraption.text_1": "배포기가 움직이는 구조물의 일부면...",
|
||||
"create.ponder.deployer_contraption.text_2": "...배포기는 움직일 때마다 작동하며, 구조물에 붙어있는 아무 보관함의 아이템을 사용합니다.",
|
||||
"create.ponder.deployer_contraption.header": "구조물에서의 기계 손",
|
||||
"create.ponder.deployer_contraption.text_1": "기계 손이 움직이는 구조물의 일부면...",
|
||||
"create.ponder.deployer_contraption.text_2": "...기계 손은 움직일 때마다 작동하며, 구조물에 붙어있는 아무 보관함의 아이템을 사용합니다.",
|
||||
"create.ponder.deployer_contraption.text_3": "필터를 이용해 어떤 아이템을 사용할 지 정할 수 있습니다.",
|
||||
|
||||
"create.ponder.deployer_modes.header": "배포기의 작동 방식",
|
||||
"create.ponder.deployer_modes.text_1": "배포기는 기본적으로 우클릭을 흉내냅니다.",
|
||||
"create.ponder.deployer_modes.header": "기계 손의 작동 방식",
|
||||
"create.ponder.deployer_modes.text_1": "기계 손은 기본적으로 우클릭을 흉내냅니다.",
|
||||
"create.ponder.deployer_modes.text_2": "렌치를 이용해, 좌클릭을 흉내내도록 설정할 수 있습니다.",
|
||||
|
||||
"create.ponder.deployer_processing.header": "배포기로 아이템 가공하기",
|
||||
"create.ponder.deployer_processing.text_1": "배포기가 적절한 아이템을 가지고 있으면, 아래 있는 아이템을 가공합니다.",
|
||||
"create.ponder.deployer_processing.text_2": "가공할 아이템은 배포기 아래에 떨구거나 아이템 거치대에 올려두어야 합니다.",
|
||||
"create.ponder.deployer_processing.header": "기계 손으로 아이템 가공하기",
|
||||
"create.ponder.deployer_processing.text_1": "기계 손이 적절한 아이템을 가지고 있으면, 아래 있는 아이템을 가공합니다.",
|
||||
"create.ponder.deployer_processing.text_2": "가공할 아이템은 기계 손 아래에 떨구거나 아이템 거치대에 올려두어야 합니다.",
|
||||
"create.ponder.deployer_processing.text_3": "아이템이 벨트에 있으면...",
|
||||
"create.ponder.deployer_processing.text_4": "...압착기가 알아서 아이템 이동을 멈추고 가공합니다.",
|
||||
|
||||
"create.ponder.deployer_redstone.header": "레드스톤과 배포기",
|
||||
"create.ponder.deployer_redstone.text_1": "레드스톤 신호를 받으면, 배포기는 작동하지 않습니다.",
|
||||
"create.ponder.deployer_redstone.text_2": "작동을 멈추기 전에, 배포기는 입력된 행동을 마무리합니다.",
|
||||
"create.ponder.deployer_redstone.header": "레드스톤과 기계 손",
|
||||
"create.ponder.deployer_redstone.text_1": "레드스톤 신호를 받으면, 기계 손은 작동하지 않습니다.",
|
||||
"create.ponder.deployer_redstone.text_2": "작동을 멈추기 전에, 기계 손은 입력된 행동을 마무리합니다.",
|
||||
"create.ponder.deployer_redstone.text_3": "따라서 부정 펄스는 한 번만 작동하게 합니다.",
|
||||
|
||||
"create.ponder.depot.header": "아이템 거치대 사용하기",
|
||||
|
@ -2049,16 +2049,16 @@
|
|||
"create.ponder.item_drain.text_4": "...아이템은 굴라가며 담긴 액체를 비웁니다.",
|
||||
"create.ponder.item_drain.text_5": "배수구 탱크에 있는 액체는 파이프로 옮길 수 있습니다.",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
"create.ponder.item_vault_sizes.header": "아이템 금고의 크기",
|
||||
"create.ponder.item_vault_sizes.text_1": "아이템 금고를 여러개 연결하여 총량을 늘릴 수 있습니다.",
|
||||
"create.ponder.item_vault_sizes.text_2": "최대 너비는 3 블록이고...",
|
||||
"create.ponder.item_vault_sizes.text_3": "...길이는 너비의 3배까지 늘릴 수 있습니다.",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
"create.ponder.item_vault_storage.header": "금고에 아이템 보관하기",
|
||||
"create.ponder.item_vault_storage.text_1": "아이템 금고는 많은 아이템을 보관할 수 있습니다.",
|
||||
"create.ponder.item_vault_storage.text_2": "하지만, 플레이어가 직접 꺼내거나 보관할 수는 없습니다.",
|
||||
"create.ponder.item_vault_storage.text_3": "아이템을 수송할 수 있는 모든 부품은 아이템을 넣거나...",
|
||||
"create.ponder.item_vault_storage.text_4": "...금고에서 아이템을 빼낼 수 있습니다",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "큰 톱니바퀴로 동력 전달하기",
|
||||
"create.ponder.large_cogwheel.text_1": "큰 톱니바퀴는 수직으로 서로 맞물립니다.",
|
||||
|
@ -2263,17 +2263,17 @@
|
|||
"create.ponder.powered_toggle_latch.text_3": "혹은 끕니다.",
|
||||
"create.ponder.powered_toggle_latch.text_4": "레드스톤 토글 걸쇠는 직접 끄고 킬 수도 있습니다.",
|
||||
|
||||
"create.ponder.pulse_extender.header": "UNLOCALIZED: Controlling signals using Pulse Extenders",
|
||||
"create.ponder.pulse_extender.text_1": "UNLOCALIZED: Pulse Extenders can lengthen a signal passing through",
|
||||
"create.ponder.pulse_extender.text_2": "UNLOCALIZED: They activate after a short delay...",
|
||||
"create.ponder.pulse_extender.text_3": "UNLOCALIZED: ...and cool down for the configured duration",
|
||||
"create.ponder.pulse_extender.text_4": "UNLOCALIZED: Using the mouse wheel, the discharge time can be configured",
|
||||
"create.ponder.pulse_extender.text_5": "UNLOCALIZED: The configured duration can range up to 30 minutes",
|
||||
"create.ponder.pulse_extender.header": "펄스 연장기로 신호 조절하기",
|
||||
"create.ponder.pulse_extender.text_1": "펄스 연장기는 지나가는 신호의 길이를 늘릴 수 있습니다.",
|
||||
"create.ponder.pulse_extender.text_2": "연장기는 짧은 딜레이 후에 작동하고...",
|
||||
"create.ponder.pulse_extender.text_3": "...설정된 시간 이후에 꺼집니다.",
|
||||
"create.ponder.pulse_extender.text_4": "마우스 휠을 이용하여 연장 시간을 조절할 수 있습니다.",
|
||||
"create.ponder.pulse_extender.text_5": "최대 신호 연장 시간은 30분입니다",
|
||||
|
||||
"create.ponder.pulse_repeater.header": "펄스 중계기 사용하기",
|
||||
"create.ponder.pulse_repeater.text_1": "펄스 중계기는 어느 레드스톤 신호라도 1틱 신호로 바꿉니다.",
|
||||
"create.ponder.pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured",
|
||||
"create.ponder.pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes",
|
||||
"create.ponder.pulse_repeater.text_1": "펄스 중계기는 모든 레드스톤 신호를 1틱 신호로 바꿉니다.",
|
||||
"create.ponder.pulse_repeater.text_2": "마우스 휠을 이용하여 딜레이 시간을 조절할 수 있습니다.",
|
||||
"create.ponder.pulse_repeater.text_3": "최대 신호 딜레이 시간은 30분입니다",
|
||||
|
||||
"create.ponder.radial_chassis.header": "원형 섀시를 이용해 블록 붙이기",
|
||||
"create.ponder.radial_chassis.text_1": "원형 섀시는 다른 원형 섀시와 이어집니다.",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 1673",
|
||||
"_": "Missing Localizations: 1556",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -9,8 +9,8 @@
|
|||
"block.create.analog_lever": "Alavanca Analógica",
|
||||
"block.create.andesite_belt_funnel": "Funil de Esteira de Andesito",
|
||||
"block.create.andesite_casing": "Revestimento de Andesito",
|
||||
"block.create.andesite_encased_cogwheel": "UNLOCALIZED: Andesite Encased Cogwheel",
|
||||
"block.create.andesite_encased_large_cogwheel": "UNLOCALIZED: Andesite Encased Large Cogwheel",
|
||||
"block.create.andesite_encased_cogwheel": "Roda dentada revestida com andesito",
|
||||
"block.create.andesite_encased_large_cogwheel": "Roda dentada grande revestida com andesito",
|
||||
"block.create.andesite_encased_shaft": "Eixo revestido com latão",
|
||||
"block.create.andesite_funnel": "Funil de Andesito",
|
||||
"block.create.andesite_pillar": "UNLOCALIZED: Andesite Pillar",
|
||||
|
@ -21,7 +21,7 @@
|
|||
"block.create.belt": "Esteira Mecânica",
|
||||
"block.create.birch_window": "UNLOCALIZED: Birch Window",
|
||||
"block.create.birch_window_pane": "UNLOCALIZED: Birch Window Pane",
|
||||
"block.create.black_nixie_tube": "UNLOCALIZED: Black Nixie Tube",
|
||||
"block.create.black_nixie_tube": "Tubo nixie preto",
|
||||
"block.create.black_sail": "Vela preta",
|
||||
"block.create.black_seat": "Assento preto",
|
||||
"block.create.black_toolbox": "Caixa de ferramentas preta",
|
||||
|
@ -35,8 +35,8 @@
|
|||
"block.create.brass_belt_funnel": "Funil de Esteira de Latão",
|
||||
"block.create.brass_block": "Bloco de Latão",
|
||||
"block.create.brass_casing": "Revestimento de Latão",
|
||||
"block.create.brass_encased_cogwheel": "UNLOCALIZED: Brass Encased Cogwheel",
|
||||
"block.create.brass_encased_large_cogwheel": "UNLOCALIZED: Brass Encased Large Cogwheel",
|
||||
"block.create.brass_encased_cogwheel": "Roda dentada revestida com latão",
|
||||
"block.create.brass_encased_large_cogwheel": "Roda dentada grande revestida com latão",
|
||||
"block.create.brass_encased_shaft": "Eixo Revestido com Latão",
|
||||
"block.create.brass_funnel": "Funil de Latão",
|
||||
"block.create.brass_tunnel": "Tunel de Latão",
|
||||
|
@ -72,7 +72,7 @@
|
|||
"block.create.crimson_window_pane": "UNLOCALIZED: Crimson Window Pane",
|
||||
"block.create.crushing_wheel": "Roda de Moer",
|
||||
"block.create.crushing_wheel_controller": "UNLOCALIZED: Crushing Wheel Controller",
|
||||
"block.create.cuckoo_clock": "Relógio Cuckok",
|
||||
"block.create.cuckoo_clock": "Relógio Cuckoo",
|
||||
"block.create.cut_andesite": "UNLOCALIZED: Cut Andesite",
|
||||
"block.create.cut_andesite_brick_slab": "UNLOCALIZED: Cut Andesite Brick Slab",
|
||||
"block.create.cut_andesite_brick_stairs": "UNLOCALIZED: Cut Andesite Brick Stairs",
|
||||
|
@ -193,7 +193,7 @@
|
|||
"block.create.dark_oak_window": "UNLOCALIZED: Dark Oak Window",
|
||||
"block.create.dark_oak_window_pane": "UNLOCALIZED: Dark Oak Window Pane",
|
||||
"block.create.deepslate_pillar": "UNLOCALIZED: Deepslate Pillar",
|
||||
"block.create.deepslate_zinc_ore": "UNLOCALIZED: Deepslate Zinc Ore",
|
||||
"block.create.deepslate_zinc_ore": "Minério de zinco de ardósia",
|
||||
"block.create.deployer": "Implantador",
|
||||
"block.create.depot": "Depósito",
|
||||
"block.create.diorite_pillar": "UNLOCALIZED: Diorite Pillar",
|
||||
|
@ -237,10 +237,10 @@
|
|||
"block.create.horizontal_framed_glass_pane": "UNLOCALIZED: Horizontal Framed Glass Pane",
|
||||
"block.create.hose_pulley": "Polia de Mangueira",
|
||||
"block.create.item_drain": "Dreno de Item",
|
||||
"block.create.item_vault": "UNLOCALIZED: Item Vault",
|
||||
"block.create.item_vault": "Cofre de itens",
|
||||
"block.create.jungle_window": "UNLOCALIZED: Jungle Window",
|
||||
"block.create.jungle_window_pane": "UNLOCALIZED: Jungle Window Pane",
|
||||
"block.create.large_cogwheel": "Roda Dentada Grande",
|
||||
"block.create.large_cogwheel": "UNLOCALIZED: Large Cogwheel",
|
||||
"block.create.layered_andesite": "UNLOCALIZED: Layered Andesite",
|
||||
"block.create.layered_asurine": "UNLOCALIZED: Layered Asurine",
|
||||
"block.create.layered_calcite": "UNLOCALIZED: Layered Calcite",
|
||||
|
@ -292,7 +292,7 @@
|
|||
"block.create.mechanical_press": "Prensa Mecânica",
|
||||
"block.create.mechanical_pump": "Bomba Mecânica",
|
||||
"block.create.mechanical_saw": "Serra Mecânica",
|
||||
"block.create.metal_bracket": "UNLOCALIZED: Metal Bracket",
|
||||
"block.create.metal_bracket": "Suporte de metal",
|
||||
"block.create.millstone": "Pedra de Moer",
|
||||
"block.create.minecart_anchor": "Ancóra de carrinho de Mina",
|
||||
"block.create.mysterious_cuckoo_clock": "Relógio cuckoo",
|
||||
|
@ -377,12 +377,12 @@
|
|||
"block.create.polished_cut_veridium_slab": "UNLOCALIZED: Polished Cut Veridium Slab",
|
||||
"block.create.polished_cut_veridium_stairs": "UNLOCALIZED: Polished Cut Veridium Stairs",
|
||||
"block.create.polished_cut_veridium_wall": "UNLOCALIZED: Polished Cut Veridium Wall",
|
||||
"block.create.portable_fluid_interface": "UNLOCALIZED: Portable Fluid Interface",
|
||||
"block.create.portable_fluid_interface": "Interface de fluidos portátil",
|
||||
"block.create.portable_storage_interface": "Interface de armazenamento portátil",
|
||||
"block.create.powered_latch": "UNLOCALIZED: Powered Latch",
|
||||
"block.create.powered_toggle_latch": "UNLOCALIZED: Powered Toggle Latch",
|
||||
"block.create.pulley_magnet": "Imã da Polia",
|
||||
"block.create.pulse_extender": "UNLOCALIZED: Pulse Extender",
|
||||
"block.create.pulse_extender": "Extensor de pulso",
|
||||
"block.create.pulse_repeater": "Repetidor de Pulso",
|
||||
"block.create.purple_nixie_tube": "Tubo nixie roxo",
|
||||
"block.create.purple_sail": "Vela roxo",
|
||||
|
@ -390,7 +390,7 @@
|
|||
"block.create.purple_toolbox": "Caixa de ferramentas roxa",
|
||||
"block.create.purple_valve_handle": "válvula roxa",
|
||||
"block.create.radial_chassis": "Chassis Radial",
|
||||
"block.create.raw_zinc_block": "UNLOCALIZED: Block of Raw Zinc",
|
||||
"block.create.raw_zinc_block": "Bloco de zinco bruto",
|
||||
"block.create.red_nixie_tube": "Tubo nixie vermelho",
|
||||
"block.create.red_sail": "Vela vermelha",
|
||||
"block.create.red_seat": "Assento vermelho",
|
||||
|
@ -401,7 +401,7 @@
|
|||
"block.create.refined_radiance_casing": "Revestimento Brilhante",
|
||||
"block.create.rope": "Corda",
|
||||
"block.create.rope_pulley": "Polia",
|
||||
"block.create.rotation_speed_controller": "Controlador de Velocidade Rotacionalr",
|
||||
"block.create.rotation_speed_controller": "Controlador de Velocidade Rotacional",
|
||||
"block.create.sail_frame": "moldura de vela",
|
||||
"block.create.schematic_table": "Mesa de Esquema",
|
||||
"block.create.schematicannon": "Canhão de Esquema",
|
||||
|
@ -472,7 +472,7 @@
|
|||
"block.create.smart_chute": "calha Inteligente",
|
||||
"block.create.smart_fluid_pipe": "Cano de Fluidos Inteligente",
|
||||
"block.create.speedometer": "Velocímetro",
|
||||
"block.create.spout": "UNLOCALIZED: Spout",
|
||||
"block.create.spout": "Bica",
|
||||
"block.create.spruce_window": "UNLOCALIZED: Spruce Window",
|
||||
"block.create.spruce_window_pane": "UNLOCALIZED: Spruce Window Pane",
|
||||
"block.create.sticker": "Adesivo",
|
||||
|
@ -520,14 +520,14 @@
|
|||
"block.create.weathered_copper_tile_slab": "UNLOCALIZED: Weathered Copper Tile Slab",
|
||||
"block.create.weathered_copper_tile_stairs": "UNLOCALIZED: Weathered Copper Tile Stairs",
|
||||
"block.create.weathered_copper_tiles": "UNLOCALIZED: Weathered Copper Tiles",
|
||||
"block.create.weighted_ejector": "UNLOCALIZED: Weighted Ejector",
|
||||
"block.create.weighted_ejector": "Ejetor ´ponderado",
|
||||
"block.create.white_nixie_tube": "Tubo nixie branco",
|
||||
"block.create.white_sail": "Vela branca",
|
||||
"block.create.white_seat": "Assento branco",
|
||||
"block.create.white_toolbox": "Caixa de ferramentas branca",
|
||||
"block.create.white_valve_handle": "Válvula branca",
|
||||
"block.create.windmill_bearing": "Rolamento de moinho",
|
||||
"block.create.wooden_bracket": "UNLOCALIZED: Wooden Bracket",
|
||||
"block.create.wooden_bracket": "Suporte de madeira",
|
||||
"block.create.yellow_nixie_tube": "Tubo nixie amarelo",
|
||||
"block.create.yellow_sail": "Vela amarela",
|
||||
"block.create.yellow_seat": "Assento amarelo",
|
||||
|
@ -569,7 +569,7 @@
|
|||
"item.create.copper_backtank": "Tanque Traseiro",
|
||||
"item.create.copper_nugget": "Pepita de Cobre",
|
||||
"item.create.copper_sheet": "Chapa de Cobre",
|
||||
"item.create.crafter_slot_cover": "UNLOCALIZED: Crafter Slot Cover",
|
||||
"item.create.crafter_slot_cover": "Cobertura do slot de fabricador",
|
||||
"item.create.crafting_blueprint": "Esquema de Fabricação",
|
||||
"item.create.creative_blaze_cake": "Bolo de Blaze Criativo",
|
||||
"item.create.crushed_aluminum_ore": "Minério de Alumínio Esmagado",
|
||||
|
@ -591,7 +591,7 @@
|
|||
"item.create.electron_tube": "Tubo de Elétron",
|
||||
"item.create.empty_blaze_burner": "Queimador de Blaze Vazio",
|
||||
"item.create.empty_schematic": "Esquema vazio",
|
||||
"item.create.experience_nugget": "UNLOCALIZED: Nugget of Experience",
|
||||
"item.create.experience_nugget": "Pepita de experiencia",
|
||||
"item.create.extendo_grip": "Extensão de Pegador",
|
||||
"item.create.filter": "Filtro",
|
||||
"item.create.furnace_minecart_contraption": "Engenhoca de Carrinho de Mina com Fornalha",
|
||||
|
@ -609,11 +609,11 @@
|
|||
"item.create.minecart_contraption": "Engenhoca de Carrino de Mina",
|
||||
"item.create.minecart_coupling": "Acoplamento de Carrinho de Mina",
|
||||
"item.create.polished_rose_quartz": "Quartzo Rosa Polido",
|
||||
"item.create.potato_cannon": "Canhão de Batata",
|
||||
"item.create.potato_cannon": "Canhão de Batata",
|
||||
"item.create.powdered_obsidian": "Pó de Obsidiana",
|
||||
"item.create.precision_mechanism": "Mecanismo de Precisão",
|
||||
"item.create.propeller": "Hélice",
|
||||
"item.create.raw_zinc": "UNLOCALIZED: Raw Zinc",
|
||||
"item.create.raw_zinc": "Zinco bruto",
|
||||
"item.create.red_sand_paper": "Lixa Vermelha",
|
||||
"item.create.refined_radiance": "Luz Refinada",
|
||||
"item.create.rose_quartz": "Quartzo Rosa",
|
||||
|
@ -624,7 +624,7 @@
|
|||
"item.create.super_glue": "Super Cola",
|
||||
"item.create.sweet_roll": "Rolinho Doce",
|
||||
"item.create.tree_fertilizer": "Fertilizante de Árvore",
|
||||
"item.create.vertical_gearbox": "Caixa de Transmissão Verticla",
|
||||
"item.create.vertical_gearbox": "Caixa de Transmissão Vertical",
|
||||
"item.create.wand_of_symmetry": "Varinha de Simetria",
|
||||
"item.create.wheat_flour": "Farinha de trigo",
|
||||
"item.create.whisk": "Batedeira",
|
||||
|
@ -637,7 +637,7 @@
|
|||
|
||||
"advancement.create.root": "Bem vindo a Create",
|
||||
"advancement.create.root.desc": "É hora de construir engenhocas maravilhosas",
|
||||
"advancement.create.andesite_alloy": "UNLOCALIZED: Alliterations Aplenty",
|
||||
"advancement.create.andesite_alloy": "Alinterações Em abundância",
|
||||
"advancement.create.andesite_alloy.desc": "Materiais do Create tem nomes estranhos, a liga de andesito é um deles.",
|
||||
"advancement.create.its_alive": "Esta vivo!",
|
||||
"advancement.create.its_alive.desc": "Assista o seu primeiro componente cinético rodar.",
|
||||
|
@ -647,8 +647,8 @@
|
|||
"advancement.create.overstressed.desc": "Experience os limites da tensão.",
|
||||
"advancement.create.belt": "Correia de alga",
|
||||
"advancement.create.belt.desc": "Conecte dois eixos com uma esteira mecanica.",
|
||||
"advancement.create.tunnel": "UNLOCALIZED: Take cover!",
|
||||
"advancement.create.tunnel.desc": "UNLOCALIZED: Embellish your mechanical belt with a Tunnel.",
|
||||
"advancement.create.tunnel": "Pegue cover!",
|
||||
"advancement.create.tunnel.desc": "Embeleze suas esteiras mecânicas com um tunel.",
|
||||
"advancement.create.splitter_tunnel": "Divida e Conquiste",
|
||||
"advancement.create.splitter_tunnel.desc": "Crie um divisor com um grupo de túneis de latão.",
|
||||
"advancement.create.chute": "Caindo",
|
||||
|
@ -659,48 +659,48 @@
|
|||
"advancement.create.belt_funnel.desc": "Coloque um funil lateral em cima de uma esteira ou depósito para criar um tipo especial.",
|
||||
"advancement.create.belt_funnel_kiss": "UNLOCALIZED: The Parrots and the Flaps",
|
||||
"advancement.create.belt_funnel_kiss.desc": "UNLOCALIZED: Make two belt mounted funnels kiss.",
|
||||
"advancement.create.fan": "UNLOCALIZED: Mechanical Airbender",
|
||||
"advancement.create.fan.desc": "UNLOCALIZED: Ride the stream of air provided by an Encased Fan.",
|
||||
"advancement.create.fan_lava": "UNLOCALIZED: Geothermal Space Heater",
|
||||
"advancement.create.fan_lava.desc": "UNLOCALIZED: Get caught in a stream of air that smelts things.",
|
||||
"advancement.create.fan_water": "UNLOCALIZED: Wacky Washing",
|
||||
"advancement.create.fan_water.desc": "UNLOCALIZED: Get caught in a stream of air that washes things.",
|
||||
"advancement.create.fan_smoke": "UNLOCALIZED: Mechanical Bellows",
|
||||
"advancement.create.fan_smoke.desc": "UNLOCALIZED: Get caught in a stream of air that smokes items.",
|
||||
"advancement.create.wrench": "UNLOCALIZED: Configure Conveniently",
|
||||
"advancement.create.wrench.desc": "UNLOCALIZED: Create a Wrench to aid you in building your contraptions.",
|
||||
"advancement.create.goggles": "UNLOCALIZED: Stress-O-Vision",
|
||||
"advancement.create.goggles.desc": "UNLOCALIZED: Create some Engineer's Goggles to aid you in getting more kinetic information from components.",
|
||||
"advancement.create.speedometer": "UNLOCALIZED: But How Fast Exactly?",
|
||||
"advancement.create.speedometer.desc": "UNLOCALIZED: Place and power a Speedometer. Look at it through your goggles to read its exact value.",
|
||||
"advancement.create.stressometer": "UNLOCALIZED: But How Stressed Exactly?",
|
||||
"advancement.create.stressometer.desc": "UNLOCALIZED: Place and power a Stressometer. Look at it through your goggles to read its exact value.",
|
||||
"advancement.create.aesthetics": "UNLOCALIZED: Boom, Aesthetics!",
|
||||
"advancement.create.aesthetics.desc": "UNLOCALIZED: Place brackets on a shaft, pipe and cogwheel.",
|
||||
"advancement.create.reinforced": "UNLOCALIZED: Boom, Reinforced!",
|
||||
"advancement.create.reinforced.desc": "UNLOCALIZED: Use fitting casing blocks on a shaft, pipe and mechanical belt.",
|
||||
"advancement.create.water_wheel": "UNLOCALIZED: Harnessing Hydraulics",
|
||||
"advancement.create.water_wheel.desc": "UNLOCALIZED: Place a Water Wheel and try getting it to spin!",
|
||||
"advancement.create.chocolate_wheel": "UNLOCALIZED: Tasteful power",
|
||||
"advancement.create.chocolate_wheel.desc": "UNLOCALIZED: Run a Water Wheel with molten Chocolate.",
|
||||
"advancement.create.lava_wheel": "UNLOCALIZED: Magma Wheel",
|
||||
"advancement.create.lava_wheel.desc": "UNLOCALIZED: This shouldn't have worked.",
|
||||
"advancement.create.cuckoo": "UNLOCALIZED: Is it time?",
|
||||
"advancement.create.cuckoo.desc": "UNLOCALIZED: Witness a cuckhoo clock announce bedtime.",
|
||||
"advancement.create.millstone": "UNLOCALIZED: Pocket Crusher",
|
||||
"advancement.create.millstone.desc": "UNLOCALIZED: Place and power a Millstone.",
|
||||
"advancement.create.windmill": "UNLOCALIZED: A mild Breeze",
|
||||
"advancement.create.windmill.desc": "UNLOCALIZED: Assemble a windmill.",
|
||||
"advancement.create.maxed_windmill": "UNLOCALIZED: A strong breeze",
|
||||
"advancement.create.maxed_windmill.desc": "UNLOCALIZED: Assemble a windmill of maximum strength.",
|
||||
"advancement.create.fan": "Dobrador de ar mecânico",
|
||||
"advancement.create.fan.desc": "Pegue uma carona no fluxo de ar provido pelo ventilador revestido.",
|
||||
"advancement.create.fan_lava": "Aquecedor de espaço geotermal",
|
||||
"advancement.create.fan_lava.desc": "Seja pego pelo fluxo de ar que fundi coisas.",
|
||||
"advancement.create.fan_water": "Lavagem maluca",
|
||||
"advancement.create.fan_water.desc": "Seja pego no fluxo de ar que lava coisas.",
|
||||
"advancement.create.fan_smoke": "Fole mecânico",
|
||||
"advancement.create.fan_smoke.desc": "Seja pego no fluxo de ar que defuma coisas.",
|
||||
"advancement.create.wrench": "Configurado convenientemente",
|
||||
"advancement.create.wrench.desc": "Crie a chave inglesa para ajuda-lo em construi suas engenhocas.",
|
||||
"advancement.create.goggles": "Visão do stress",
|
||||
"advancement.create.goggles.desc": "Crie o óculos de engenheiro para ajuda-lo a conseguir mais informações cineticas dos conponentes.",
|
||||
"advancement.create.speedometer": "Mas quão rapido exatamente?",
|
||||
"advancement.create.speedometer.desc": "Coloque e energise o velocimetro. Olhe a este por atraves dos seus óculos para ler o valor exato.",
|
||||
"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.aesthetics": "Boom, estética!",
|
||||
"advancement.create.aesthetics.desc": "Coloque suportes em eixos, canos e rodas dentadas.",
|
||||
"advancement.create.reinforced": "Boom, Reinforçado!",
|
||||
"advancement.create.reinforced.desc": "Use um bloco de revestimento apropriado em um eixo, cano e esteira mecânica.",
|
||||
"advancement.create.water_wheel": "aproveitamento hidráulico",
|
||||
"advancement.create.water_wheel.desc": "Coloque uma roda de água e tente conseguir gira-la!",
|
||||
"advancement.create.chocolate_wheel": "Poder delicioso",
|
||||
"advancement.create.chocolate_wheel.desc": "Gire uma roda de água com chocolate derretido.",
|
||||
"advancement.create.lava_wheel": "Roda de magma",
|
||||
"advancement.create.lava_wheel.desc": "Isso não deveria ter funcionado.",
|
||||
"advancement.create.cuckoo": "É a hora?",
|
||||
"advancement.create.cuckoo.desc": "Veja um relógio cuckoo anunciar a hora de dormir.",
|
||||
"advancement.create.millstone": "Moedor portátil",
|
||||
"advancement.create.millstone.desc": "Coloque e energize uma pedra de moer",
|
||||
"advancement.create.windmill": "Uma brisa moderada",
|
||||
"advancement.create.windmill.desc": "Monte um moinho de vento",
|
||||
"advancement.create.maxed_windmill": "Uma brisa forte",
|
||||
"advancement.create.maxed_windmill.desc": "Monte um moinho de vento com força maxima.",
|
||||
"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_drill": "Mineradores estacionarios",
|
||||
"advancement.create.mechanical_drill.desc": "coloque e energize uma broca mecânica.",
|
||||
"advancement.create.press": "UNLOCALIZED: Press Goes 'Bonk!'",
|
||||
"advancement.create.press.desc": "UNLOCALIZED: Power a Mechanical Press and use it to create some Sheets.",
|
||||
"advancement.create.press": "Prensa faz 'Bonk!'",
|
||||
"advancement.create.press.desc": "Energize uma prensa mecânica e usa-lá para criar algumas chapas.",
|
||||
"advancement.create.polished_rose_quartz": "Diamantes rosa",
|
||||
"advancement.create.polished_rose_quartz.desc": "UNLOCALIZED: Use a piece of Sand Paper to polish Rose Quartz until it becomes transparent.",
|
||||
"advancement.create.polished_rose_quartz.desc": "Use uma lixa para polir um quartzo rosa até este ficar transparente.",
|
||||
"advancement.create.electron_tube": "Beep Boop",
|
||||
"advancement.create.electron_tube.desc": "Faça alguns tubos de elétron, uteis para fabricar maquinas menos primitivas.",
|
||||
"advancement.create.mechanical_saw": "Cortadores estacionarios",
|
||||
|
@ -718,71 +718,71 @@
|
|||
"advancement.create.brass_casing": "a era do latão",
|
||||
"advancement.create.brass_casing.desc": "Use o recentemente obtido latão e um pouco de madeira para criar um revestimento mais avançado.",
|
||||
"advancement.create.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 cobrepper Casings.",
|
||||
"advancement.create.spout": "UNLOCALIZED: Sploosh",
|
||||
"advancement.create.spout.desc": "UNLOCALIZED: Watch a fluid item being filled using a spout.",
|
||||
"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.spout_potion": "UNLOCALIZED: Global Brewery",
|
||||
"advancement.create.spout_potion.desc": "UNLOCALIZED: Watch a spout fill a bottle with potion fluid.",
|
||||
"advancement.create.chocolate": "UNLOCALIZED: A world of Imagination",
|
||||
"advancement.create.chocolate.desc": "UNLOCALIZED: Obtain a bucket of Molten Chocolate.",
|
||||
"advancement.create.item_drain": "UNLOCALIZED: Tumble Draining",
|
||||
"advancement.create.item_drain.desc": "UNLOCALIZED: Watch a fluid item being emptied by an item drain.",
|
||||
"advancement.create.chained_item_drain": "UNLOCALIZED: Let it roll!",
|
||||
"advancement.create.chained_item_drain.desc": "UNLOCALIZED: Watch an item roll across several chained item drains.",
|
||||
"advancement.create.glass_pipe": "UNLOCALIZED: Flow Spy",
|
||||
"advancement.create.glass_pipe.desc": "UNLOCALIZED: Watch fluid propagate through a windowed fluid pipe. Straight fluid pipes become windowed when a wrench is used on them.",
|
||||
"advancement.create.pipe_collision": "UNLOCALIZED: Never cross the Streams!",
|
||||
"advancement.create.pipe_collision.desc": "UNLOCALIZED: Watch two fluids meet in your pipe network.",
|
||||
"advancement.create.pipe_spill": "UNLOCALIZED: There's a leak!",
|
||||
"advancement.create.pipe_spill.desc": "UNLOCALIZED: Watch an open end of a pipe take or place fluids into the world.",
|
||||
"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.infinite_water": "UNLOCALIZED: Draining the Ocean",
|
||||
"advancement.create.infinite_water.desc": "UNLOCALIZED: Pump from a body of Water large enough to be considered Infinite.",
|
||||
"advancement.create.infinite_lava": "UNLOCALIZED: Draining the Planets' Core",
|
||||
"advancement.create.infinite_lava.desc": "UNLOCALIZED: Pump from a body of Lava large enough to be considered Infinite.",
|
||||
"advancement.create.infinite_chocolate": "UNLOCALIZED: Drowning in Imagination",
|
||||
"advancement.create.infinite_chocolate.desc": "UNLOCALIZED: Pump from a body of Molten Chocolate large enough to be considered Infinite.",
|
||||
"advancement.create.crafter": "UNLOCALIZED: Automated Assembly",
|
||||
"advancement.create.crafter.desc": "UNLOCALIZED: Place and power some Mechanical Crafters.",
|
||||
"advancement.create.clockwork_bearing": "UNLOCALIZED: Contraption o'clock",
|
||||
"advancement.create.clockwork_bearing.desc": "UNLOCALIZED: Assemble a Structure mounted on a Clockwork Bearing.",
|
||||
"advancement.create.nixie_tube": "UNLOCALIZED: Signs of Style",
|
||||
"advancement.create.nixie_tube.desc": "UNLOCALIZED: Obtain and place down a pair of Nixie Tubes.",
|
||||
"advancement.create.deployer": "UNLOCALIZED: Poke, Place, and Attack",
|
||||
"advancement.create.deployer.desc": "UNLOCALIZED: Place and power a Deployer, the perfect reflection of yourself.",
|
||||
"advancement.create.speed_controller": "UNLOCALIZED: Engineers hate him!",
|
||||
"advancement.create.speed_controller.desc": "UNLOCALIZED: Place a Rotation Speed Controller, the ultimate device for changing gear.",
|
||||
"advancement.create.flywheel": "UNLOCALIZED: Heart of the Factory",
|
||||
"advancement.create.flywheel.desc": "UNLOCALIZED: Successfully connect an engine to the Flywheel.",
|
||||
"advancement.create.overstress_flywheel": "UNLOCALIZED: High levels of Stress",
|
||||
"advancement.create.overstress_flywheel.desc": "UNLOCALIZED: Overstress a Furnace Engine.",
|
||||
"advancement.create.precision_mechanism": "UNLOCALIZED: Complex Curiosities",
|
||||
"advancement.create.precision_mechanism.desc": "UNLOCALIZED: Assemble a Precision Mechanism.",
|
||||
"advancement.create.mechanical_arm": "UNLOCALIZED: Busy Hands!",
|
||||
"advancement.create.mechanical_arm.desc": "UNLOCALIZED: Craft a Mechanical Arm, select in- and outputs, place it down and give it power; then watch as it does all the work for you.",
|
||||
"advancement.create.musical_arm": "UNLOCALIZED: Play Me My Theme Tune!",
|
||||
"advancement.create.musical_arm.desc": "UNLOCALIZED: Watch a Mechanical Arm operate your Jukebox.",
|
||||
"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_blaze_burner": "UNLOCALIZED: Combust-o-Tron",
|
||||
"advancement.create.arm_blaze_burner.desc": "UNLOCALIZED: Instruct a Mechanical Arm to feed your Blaze Burner.",
|
||||
"advancement.create.spout_potion.desc": "Assista uma bica encher uma garrafa com uma poção.",
|
||||
"advancement.create.chocolate": "Um mundo de imaginação",
|
||||
"advancement.create.chocolate.desc": "Obtenha um balde de chocolate.",
|
||||
"advancement.create.item_drain": "Cambalhota de drenação",
|
||||
"advancement.create.item_drain.desc": "assista um item de fluido ser esvaziado por um dreno de item.",
|
||||
"advancement.create.chained_item_drain": "Deixe rolar!",
|
||||
"advancement.create.chained_item_drain.desc": "assista um item rolar através de varios drenos consecutivos.",
|
||||
"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.pipe_collision": "Nunca cruze o fluxo!",
|
||||
"advancement.create.pipe_collision.desc": "Assista dois fluidos se encontrarem na sua rede de canos.",
|
||||
"advancement.create.pipe_spill": "Tem um vazamento!",
|
||||
"advancement.create.pipe_spill.desc": "Assista a extremidade aberta de um cano pegar ou colocar um fluido no mundo.",
|
||||
"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.infinite_water": "Drenando o oceano",
|
||||
"advancement.create.infinite_water.desc": "Bombeie de um corpo de água grande o bastante para ser considerado infinito.",
|
||||
"advancement.create.infinite_lava": "Drenando o nucleo do planeta",
|
||||
"advancement.create.infinite_lava.desc": "Bombeie de um corpo de lava grande o bastante para ser considerado infinito.",
|
||||
"advancement.create.infinite_chocolate": "Afogando em imaginação",
|
||||
"advancement.create.infinite_chocolate.desc": "Bombeie de um corpo de chocolate grande o bastante para ser considerado infinito.",
|
||||
"advancement.create.crafter": "Montagem automatica",
|
||||
"advancement.create.crafter.desc": "Coloque e energize alguns fabricadores mecânicos.",
|
||||
"advancement.create.clockwork_bearing": "Hora da engenhoca",
|
||||
"advancement.create.clockwork_bearing.desc": "Ative uma estrutura conectada a um rolamento de rêlogio.",
|
||||
"advancement.create.nixie_tube": "Placas estilosas",
|
||||
"advancement.create.nixie_tube.desc": "Obtenha e coloque um par de tubos nixie.",
|
||||
"advancement.create.deployer": "Cutuque, coloque e ataque",
|
||||
"advancement.create.deployer.desc": "coloque e energize um implantador, o reflexo perfeito de voce mesmo.",
|
||||
"advancement.create.speed_controller": "Engenheiros odiam ele!",
|
||||
"advancement.create.speed_controller.desc": "Coloque um Controlador de velocidade rotacional, o dispositivo ultimato para mudança de marcha.",
|
||||
"advancement.create.flywheel": "Coração da fabrica",
|
||||
"advancement.create.flywheel.desc": "Sucessivamente conecte um motor de fornalha a um volante de inércia.",
|
||||
"advancement.create.overstress_flywheel": "Altos niveis de stress",
|
||||
"advancement.create.overstress_flywheel.desc": "Emperre um motor de fornalha.",
|
||||
"advancement.create.precision_mechanism": "Curiosidades complexas",
|
||||
"advancement.create.precision_mechanism.desc": "Monte um mecanismo de precisão.",
|
||||
"advancement.create.mechanical_arm": "Mâos ocupadas!",
|
||||
"advancement.create.mechanical_arm.desc": "Fabrique um braço mecânico,selecione as entradas e saidas,Coloque e energize o; em seguida assista como elo faz todo o trabalho para você.",
|
||||
"advancement.create.musical_arm": "toque minha musica!",
|
||||
"advancement.create.musical_arm.desc": "Assista um braço mecânico operar seu toca-discos.",
|
||||
"advancement.create.arm_many_targets": "Organiza-tron",
|
||||
"advancement.create.arm_many_targets.desc": "Programe um braço mecânico com dez ou mais locais de saida.",
|
||||
"advancement.create.arm_blaze_burner": "Combuste-tron",
|
||||
"advancement.create.arm_blaze_burner.desc": "Instrua um braço mecânico para alimentar seu queimador de blaze.",
|
||||
"advancement.create.fist_bump": "UNLOCALIZED: Pound It, Bro!",
|
||||
"advancement.create.fist_bump.desc": "UNLOCALIZED: Make two Deployers fist-bump.",
|
||||
"advancement.create.crushing_wheel": "UNLOCALIZED: A Pair of Giants",
|
||||
"advancement.create.crushing_wheel.desc": "UNLOCALIZED: Create some Crushing Wheels to break down more materials more effectively.",
|
||||
"advancement.create.crushing_wheel": "Par de gigantes",
|
||||
"advancement.create.crushing_wheel.desc": "Crie algumas rodas de moer para triturar alguns materiais eficientemente.",
|
||||
"advancement.create.blaze_cake": "UNLOCALIZED: Sugar Rush",
|
||||
"advancement.create.blaze_cake.desc": "UNLOCALIZED: Bake your blaze burner a special cake.",
|
||||
"advancement.create.wand_of_symmetry": "UNLOCALIZED: Radiant Mirrors",
|
||||
"advancement.create.wand_of_symmetry.desc": "UNLOCALIZED: Craft a Staff of Symmetry.",
|
||||
"advancement.create.extendo_grip": "UNLOCALIZED: Boioioing!",
|
||||
"advancement.create.extendo_grip.desc": "UNLOCALIZED: Get hold of an Extendo Grip.",
|
||||
"advancement.create.potato_cannon": "UNLOCALIZED: Fwoomp!",
|
||||
"advancement.create.potato_cannon.desc": "UNLOCALIZED: Defeat an enemy with your Potato Cannon.",
|
||||
"advancement.create.dual_extendo_grip": "UNLOCALIZED: Ultimate Boing-age",
|
||||
"advancement.create.dual_extendo_grip.desc": "UNLOCALIZED: Dual wield Extendo Grips for super-human reach.",
|
||||
"advancement.create.eob": "UNLOCALIZED: End of Beta",
|
||||
"advancement.create.eob.desc": "UNLOCALIZED: Expect more content here in the future. <3",
|
||||
"advancement.create.blaze_cake.desc": "Asse para o seu queimador de blaze um bolo especial.",
|
||||
"advancement.create.wand_of_symmetry": "Espelhos radiantes",
|
||||
"advancement.create.wand_of_symmetry.desc": "Fabrique uma varinha de simetria.",
|
||||
"advancement.create.extendo_grip": "Boioioing!",
|
||||
"advancement.create.extendo_grip.desc": "Apossar-se de uma extensão de pegador.",
|
||||
"advancement.create.potato_cannon": "Fwoomp!",
|
||||
"advancement.create.potato_cannon.desc": "Derrote um inimigo com o seu canhão de batata.",
|
||||
"advancement.create.dual_extendo_grip": "A era ultimata do boing",
|
||||
"advancement.create.dual_extendo_grip.desc": "Empunhe duas extensões de pegador para ter alcance super humano.",
|
||||
"advancement.create.eob": "Fim do beta",
|
||||
"advancement.create.eob.desc": "Espere mais conteudo aqui no futuro. <3",
|
||||
|
||||
|
||||
"_": "->------------------------] UI & Messages [------------------------<-",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"_": "Missing Localizations: 333",
|
||||
"_": "Missing Localizations: 3",
|
||||
|
||||
"_": "->------------------------] Game Elements [------------------------<-",
|
||||
|
||||
|
@ -9,14 +9,14 @@
|
|||
"block.create.analog_lever": "模拟拉杆",
|
||||
"block.create.andesite_belt_funnel": "安山岩传送带漏斗",
|
||||
"block.create.andesite_casing": "安山机壳",
|
||||
"block.create.andesite_encased_cogwheel": "UNLOCALIZED: Andesite Encased Cogwheel",
|
||||
"block.create.andesite_encased_large_cogwheel": "UNLOCALIZED: Andesite Encased Large Cogwheel",
|
||||
"block.create.andesite_encased_cogwheel": "安山齿轮箱",
|
||||
"block.create.andesite_encased_large_cogwheel": "安山大齿轮箱",
|
||||
"block.create.andesite_encased_shaft": "安山传动杆箱",
|
||||
"block.create.andesite_funnel": "安山岩漏斗",
|
||||
"block.create.andesite_pillar": "竖纹安山岩",
|
||||
"block.create.andesite_pillar": "安山岩柱",
|
||||
"block.create.andesite_tunnel": "安山岩隧道",
|
||||
"block.create.asurine": "UNLOCALIZED: Asurine",
|
||||
"block.create.asurine_pillar": "UNLOCALIZED: Asurine Pillar",
|
||||
"block.create.asurine": "皓蓝石",
|
||||
"block.create.asurine_pillar": "皓蓝石柱",
|
||||
"block.create.basin": "工作盆",
|
||||
"block.create.belt": "传送带",
|
||||
"block.create.birch_window": "白桦木窗户",
|
||||
|
@ -35,8 +35,8 @@
|
|||
"block.create.brass_belt_funnel": "黄铜传送带漏斗",
|
||||
"block.create.brass_block": "黄铜块",
|
||||
"block.create.brass_casing": "黄铜机壳",
|
||||
"block.create.brass_encased_cogwheel": "UNLOCALIZED: Brass Encased Cogwheel",
|
||||
"block.create.brass_encased_large_cogwheel": "UNLOCALIZED: Brass Encased Large Cogwheel",
|
||||
"block.create.brass_encased_cogwheel": "黄铜齿轮箱",
|
||||
"block.create.brass_encased_large_cogwheel": "黄铜大齿轮箱",
|
||||
"block.create.brass_encased_shaft": "黄铜传动杆箱",
|
||||
"block.create.brass_funnel": "黄铜漏斗",
|
||||
"block.create.brass_tunnel": "黄铜隧道",
|
||||
|
@ -45,7 +45,7 @@
|
|||
"block.create.brown_seat": "棕色坐垫",
|
||||
"block.create.brown_toolbox": "棕色工具箱",
|
||||
"block.create.brown_valve_handle": "棕色阀门手轮",
|
||||
"block.create.calcite_pillar": "UNLOCALIZED: Calcite Pillar",
|
||||
"block.create.calcite_pillar": "方解石柱",
|
||||
"block.create.cart_assembler": "矿车装配站",
|
||||
"block.create.chocolate": "巧克力",
|
||||
"block.create.chute": "溜槽",
|
||||
|
@ -54,137 +54,137 @@
|
|||
"block.create.cogwheel": "齿轮",
|
||||
"block.create.content_observer": "物品侦测器",
|
||||
"block.create.controller_rail": "控制铁轨",
|
||||
"block.create.copper_backtank": "Copper Backtank",
|
||||
"block.create.copper_backtank": "铜制背罐",
|
||||
"block.create.copper_casing": "铜机壳",
|
||||
"block.create.copper_shingle_slab": "UNLOCALIZED: Copper Shingle Slab",
|
||||
"block.create.copper_shingle_stairs": "UNLOCALIZED: Copper Shingle Stairs",
|
||||
"block.create.copper_shingle_slab": "铜砖块台阶",
|
||||
"block.create.copper_shingle_stairs": "铜砖块楼梯",
|
||||
"block.create.copper_shingles": "铜砖块",
|
||||
"block.create.copper_tile_slab": "UNLOCALIZED: Copper Tile Slab",
|
||||
"block.create.copper_tile_stairs": "UNLOCALIZED: Copper Tile Stairs",
|
||||
"block.create.copper_tiles": "铜砖块",
|
||||
"block.create.copper_tile_slab": "铜瓦块台阶",
|
||||
"block.create.copper_tile_stairs": "铜瓦块楼梯",
|
||||
"block.create.copper_tiles": "铜瓦块",
|
||||
"block.create.copper_valve_handle": "铜阀门手轮",
|
||||
"block.create.creative_crate": "创造板条箱",
|
||||
"block.create.creative_fluid_tank": "创造流体储罐",
|
||||
"block.create.creative_motor": "创造马达",
|
||||
"block.create.crimsite": "UNLOCALIZED: Crimsite",
|
||||
"block.create.crimsite_pillar": "UNLOCALIZED: Crimsite Pillar",
|
||||
"block.create.crimsite": "绯红岩",
|
||||
"block.create.crimsite_pillar": "绯红岩柱",
|
||||
"block.create.crimson_window": "绯红木窗户",
|
||||
"block.create.crimson_window_pane": "绯红木窗户板",
|
||||
"block.create.crushing_wheel": "粉碎轮",
|
||||
"block.create.crushing_wheel_controller": "粉碎轮控制器",
|
||||
"block.create.cuckoo_clock": "布谷鸟闹钟",
|
||||
"block.create.cut_andesite": "UNLOCALIZED: Cut Andesite",
|
||||
"block.create.cut_andesite_brick_slab": "UNLOCALIZED: Cut Andesite Brick Slab",
|
||||
"block.create.cut_andesite_brick_stairs": "UNLOCALIZED: Cut Andesite Brick Stairs",
|
||||
"block.create.cut_andesite_brick_wall": "UNLOCALIZED: Cut Andesite Brick Wall",
|
||||
"block.create.cut_andesite_bricks": "UNLOCALIZED: Cut Andesite Bricks",
|
||||
"block.create.cut_andesite_slab": "UNLOCALIZED: Cut Andesite Slab",
|
||||
"block.create.cut_andesite_stairs": "UNLOCALIZED: Cut Andesite Stairs",
|
||||
"block.create.cut_andesite_wall": "UNLOCALIZED: Cut Andesite Wall",
|
||||
"block.create.cut_asurine": "UNLOCALIZED: Cut Asurine",
|
||||
"block.create.cut_asurine_brick_slab": "UNLOCALIZED: Cut Asurine Brick Slab",
|
||||
"block.create.cut_asurine_brick_stairs": "UNLOCALIZED: Cut Asurine Brick Stairs",
|
||||
"block.create.cut_asurine_brick_wall": "UNLOCALIZED: Cut Asurine Brick Wall",
|
||||
"block.create.cut_asurine_bricks": "UNLOCALIZED: Cut Asurine Bricks",
|
||||
"block.create.cut_asurine_slab": "UNLOCALIZED: Cut Asurine Slab",
|
||||
"block.create.cut_asurine_stairs": "UNLOCALIZED: Cut Asurine Stairs",
|
||||
"block.create.cut_asurine_wall": "UNLOCALIZED: Cut Asurine Wall",
|
||||
"block.create.cut_calcite": "UNLOCALIZED: Cut Calcite",
|
||||
"block.create.cut_calcite_brick_slab": "UNLOCALIZED: Cut Calcite Brick Slab",
|
||||
"block.create.cut_calcite_brick_stairs": "UNLOCALIZED: Cut Calcite Brick Stairs",
|
||||
"block.create.cut_calcite_brick_wall": "UNLOCALIZED: Cut Calcite Brick Wall",
|
||||
"block.create.cut_calcite_bricks": "UNLOCALIZED: Cut Calcite Bricks",
|
||||
"block.create.cut_calcite_slab": "UNLOCALIZED: Cut Calcite Slab",
|
||||
"block.create.cut_calcite_stairs": "UNLOCALIZED: Cut Calcite Stairs",
|
||||
"block.create.cut_calcite_wall": "UNLOCALIZED: Cut Calcite Wall",
|
||||
"block.create.cut_crimsite": "UNLOCALIZED: Cut Crimsite",
|
||||
"block.create.cut_crimsite_brick_slab": "UNLOCALIZED: Cut Crimsite Brick Slab",
|
||||
"block.create.cut_crimsite_brick_stairs": "UNLOCALIZED: Cut Crimsite Brick Stairs",
|
||||
"block.create.cut_crimsite_brick_wall": "UNLOCALIZED: Cut Crimsite Brick Wall",
|
||||
"block.create.cut_crimsite_bricks": "UNLOCALIZED: Cut Crimsite Bricks",
|
||||
"block.create.cut_crimsite_slab": "UNLOCALIZED: Cut Crimsite Slab",
|
||||
"block.create.cut_crimsite_stairs": "UNLOCALIZED: Cut Crimsite Stairs",
|
||||
"block.create.cut_crimsite_wall": "UNLOCALIZED: Cut Crimsite Wall",
|
||||
"block.create.cut_deepslate": "UNLOCALIZED: Cut Deepslate",
|
||||
"block.create.cut_deepslate_brick_slab": "UNLOCALIZED: Cut Deepslate Brick Slab",
|
||||
"block.create.cut_deepslate_brick_stairs": "UNLOCALIZED: Cut Deepslate Brick Stairs",
|
||||
"block.create.cut_deepslate_brick_wall": "UNLOCALIZED: Cut Deepslate Brick Wall",
|
||||
"block.create.cut_deepslate_bricks": "UNLOCALIZED: Cut Deepslate Bricks",
|
||||
"block.create.cut_deepslate_slab": "UNLOCALIZED: Cut Deepslate Slab",
|
||||
"block.create.cut_deepslate_stairs": "UNLOCALIZED: Cut Deepslate Stairs",
|
||||
"block.create.cut_deepslate_wall": "UNLOCALIZED: Cut Deepslate Wall",
|
||||
"block.create.cut_diorite": "UNLOCALIZED: Cut Diorite",
|
||||
"block.create.cut_diorite_brick_slab": "UNLOCALIZED: Cut Diorite Brick Slab",
|
||||
"block.create.cut_diorite_brick_stairs": "UNLOCALIZED: Cut Diorite Brick Stairs",
|
||||
"block.create.cut_diorite_brick_wall": "UNLOCALIZED: Cut Diorite Brick Wall",
|
||||
"block.create.cut_diorite_bricks": "UNLOCALIZED: Cut Diorite Bricks",
|
||||
"block.create.cut_diorite_slab": "UNLOCALIZED: Cut Diorite Slab",
|
||||
"block.create.cut_diorite_stairs": "UNLOCALIZED: Cut Diorite Stairs",
|
||||
"block.create.cut_diorite_wall": "UNLOCALIZED: Cut Diorite Wall",
|
||||
"block.create.cut_dripstone": "UNLOCALIZED: Cut Dripstone",
|
||||
"block.create.cut_dripstone_brick_slab": "UNLOCALIZED: Cut Dripstone Brick Slab",
|
||||
"block.create.cut_dripstone_brick_stairs": "UNLOCALIZED: Cut Dripstone Brick Stairs",
|
||||
"block.create.cut_dripstone_brick_wall": "UNLOCALIZED: Cut Dripstone Brick Wall",
|
||||
"block.create.cut_dripstone_bricks": "UNLOCALIZED: Cut Dripstone Bricks",
|
||||
"block.create.cut_dripstone_slab": "UNLOCALIZED: Cut Dripstone Slab",
|
||||
"block.create.cut_dripstone_stairs": "UNLOCALIZED: Cut Dripstone Stairs",
|
||||
"block.create.cut_dripstone_wall": "UNLOCALIZED: Cut Dripstone Wall",
|
||||
"block.create.cut_granite": "UNLOCALIZED: Cut Granite",
|
||||
"block.create.cut_granite_brick_slab": "UNLOCALIZED: Cut Granite Brick Slab",
|
||||
"block.create.cut_granite_brick_stairs": "UNLOCALIZED: Cut Granite Brick Stairs",
|
||||
"block.create.cut_granite_brick_wall": "UNLOCALIZED: Cut Granite Brick Wall",
|
||||
"block.create.cut_granite_bricks": "UNLOCALIZED: Cut Granite Bricks",
|
||||
"block.create.cut_granite_slab": "UNLOCALIZED: Cut Granite Slab",
|
||||
"block.create.cut_granite_stairs": "UNLOCALIZED: Cut Granite Stairs",
|
||||
"block.create.cut_granite_wall": "UNLOCALIZED: Cut Granite Wall",
|
||||
"block.create.cut_limestone": "UNLOCALIZED: Cut Limestone",
|
||||
"block.create.cut_limestone_brick_slab": "UNLOCALIZED: Cut Limestone Brick Slab",
|
||||
"block.create.cut_limestone_brick_stairs": "UNLOCALIZED: Cut Limestone Brick Stairs",
|
||||
"block.create.cut_limestone_brick_wall": "UNLOCALIZED: Cut Limestone Brick Wall",
|
||||
"block.create.cut_limestone_bricks": "UNLOCALIZED: Cut Limestone Bricks",
|
||||
"block.create.cut_limestone_slab": "UNLOCALIZED: Cut Limestone Slab",
|
||||
"block.create.cut_limestone_stairs": "UNLOCALIZED: Cut Limestone Stairs",
|
||||
"block.create.cut_limestone_wall": "UNLOCALIZED: Cut Limestone Wall",
|
||||
"block.create.cut_ochrum": "UNLOCALIZED: Cut Ochrum",
|
||||
"block.create.cut_ochrum_brick_slab": "UNLOCALIZED: Cut Ochrum Brick Slab",
|
||||
"block.create.cut_ochrum_brick_stairs": "UNLOCALIZED: Cut Ochrum Brick Stairs",
|
||||
"block.create.cut_ochrum_brick_wall": "UNLOCALIZED: Cut Ochrum Brick Wall",
|
||||
"block.create.cut_ochrum_bricks": "UNLOCALIZED: Cut Ochrum Bricks",
|
||||
"block.create.cut_ochrum_slab": "UNLOCALIZED: Cut Ochrum Slab",
|
||||
"block.create.cut_ochrum_stairs": "UNLOCALIZED: Cut Ochrum Stairs",
|
||||
"block.create.cut_ochrum_wall": "UNLOCALIZED: Cut Ochrum Wall",
|
||||
"block.create.cut_scorchia": "UNLOCALIZED: Cut Scorchia",
|
||||
"block.create.cut_scorchia_brick_slab": "UNLOCALIZED: Cut Scorchia Brick Slab",
|
||||
"block.create.cut_scorchia_brick_stairs": "UNLOCALIZED: Cut Scorchia Brick Stairs",
|
||||
"block.create.cut_scorchia_brick_wall": "UNLOCALIZED: Cut Scorchia Brick Wall",
|
||||
"block.create.cut_scorchia_bricks": "UNLOCALIZED: Cut Scorchia Bricks",
|
||||
"block.create.cut_scorchia_slab": "UNLOCALIZED: Cut Scorchia Slab",
|
||||
"block.create.cut_scorchia_stairs": "UNLOCALIZED: Cut Scorchia Stairs",
|
||||
"block.create.cut_scorchia_wall": "UNLOCALIZED: Cut Scorchia Wall",
|
||||
"block.create.cut_scoria": "UNLOCALIZED: Cut Scoria",
|
||||
"block.create.cut_scoria_brick_slab": "UNLOCALIZED: Cut Scoria Brick Slab",
|
||||
"block.create.cut_scoria_brick_stairs": "UNLOCALIZED: Cut Scoria Brick Stairs",
|
||||
"block.create.cut_scoria_brick_wall": "UNLOCALIZED: Cut Scoria Brick Wall",
|
||||
"block.create.cut_scoria_bricks": "UNLOCALIZED: Cut Scoria Bricks",
|
||||
"block.create.cut_scoria_slab": "UNLOCALIZED: Cut Scoria Slab",
|
||||
"block.create.cut_scoria_stairs": "UNLOCALIZED: Cut Scoria Stairs",
|
||||
"block.create.cut_scoria_wall": "UNLOCALIZED: Cut Scoria Wall",
|
||||
"block.create.cut_tuff": "UNLOCALIZED: Cut Tuff",
|
||||
"block.create.cut_tuff_brick_slab": "UNLOCALIZED: Cut Tuff Brick Slab",
|
||||
"block.create.cut_tuff_brick_stairs": "UNLOCALIZED: Cut Tuff Brick Stairs",
|
||||
"block.create.cut_tuff_brick_wall": "UNLOCALIZED: Cut Tuff Brick Wall",
|
||||
"block.create.cut_tuff_bricks": "UNLOCALIZED: Cut Tuff Bricks",
|
||||
"block.create.cut_tuff_slab": "UNLOCALIZED: Cut Tuff Slab",
|
||||
"block.create.cut_tuff_stairs": "UNLOCALIZED: Cut Tuff Stairs",
|
||||
"block.create.cut_tuff_wall": "UNLOCALIZED: Cut Tuff Wall",
|
||||
"block.create.cut_veridium": "UNLOCALIZED: Cut Veridium",
|
||||
"block.create.cut_veridium_brick_slab": "UNLOCALIZED: Cut Veridium Brick Slab",
|
||||
"block.create.cut_veridium_brick_stairs": "UNLOCALIZED: Cut Veridium Brick Stairs",
|
||||
"block.create.cut_veridium_brick_wall": "UNLOCALIZED: Cut Veridium Brick Wall",
|
||||
"block.create.cut_veridium_bricks": "UNLOCALIZED: Cut Veridium Bricks",
|
||||
"block.create.cut_veridium_slab": "UNLOCALIZED: Cut Veridium Slab",
|
||||
"block.create.cut_veridium_stairs": "UNLOCALIZED: Cut Veridium Stairs",
|
||||
"block.create.cut_veridium_wall": "UNLOCALIZED: Cut Veridium Wall",
|
||||
"block.create.cut_andesite": "切制安山岩",
|
||||
"block.create.cut_andesite_brick_slab": "切制安山岩砖块台阶",
|
||||
"block.create.cut_andesite_brick_stairs": "切制安山岩砖块楼梯",
|
||||
"block.create.cut_andesite_brick_wall": "切制安山岩砖块墙",
|
||||
"block.create.cut_andesite_bricks": "切制安山岩砖块",
|
||||
"block.create.cut_andesite_slab": "切制安山岩台阶",
|
||||
"block.create.cut_andesite_stairs": "切制安山岩楼梯",
|
||||
"block.create.cut_andesite_wall": "切制安山岩墙",
|
||||
"block.create.cut_asurine": "切制皓蓝石",
|
||||
"block.create.cut_asurine_brick_slab": "切制皓蓝石砖块台阶",
|
||||
"block.create.cut_asurine_brick_stairs": "切制皓蓝石砖块楼梯",
|
||||
"block.create.cut_asurine_brick_wall": "切制皓蓝石砖块墙",
|
||||
"block.create.cut_asurine_bricks": "切制皓蓝石砖块",
|
||||
"block.create.cut_asurine_slab": "切制皓蓝石台阶",
|
||||
"block.create.cut_asurine_stairs": "切制皓蓝石楼梯",
|
||||
"block.create.cut_asurine_wall": "切制皓蓝石墙",
|
||||
"block.create.cut_calcite": "切制方解石",
|
||||
"block.create.cut_calcite_brick_slab": "切制方解石砖块台阶",
|
||||
"block.create.cut_calcite_brick_stairs": "切制方解石砖块楼梯",
|
||||
"block.create.cut_calcite_brick_wall": "切制方解石砖块墙",
|
||||
"block.create.cut_calcite_bricks": "切制方解石砖块",
|
||||
"block.create.cut_calcite_slab": "切制方解石台阶",
|
||||
"block.create.cut_calcite_stairs": "切制方解石楼梯",
|
||||
"block.create.cut_calcite_wall": "切制方解石墙",
|
||||
"block.create.cut_crimsite": "切制绯红岩",
|
||||
"block.create.cut_crimsite_brick_slab": "切制绯红岩砖块台阶",
|
||||
"block.create.cut_crimsite_brick_stairs": "切制绯红岩砖块楼梯",
|
||||
"block.create.cut_crimsite_brick_wall": "切制绯红岩砖块墙",
|
||||
"block.create.cut_crimsite_bricks": "切制绯红岩砖块",
|
||||
"block.create.cut_crimsite_slab": "切制绯红岩台阶",
|
||||
"block.create.cut_crimsite_stairs": "切制绯红岩楼梯",
|
||||
"block.create.cut_crimsite_wall": "切制绯红岩墙",
|
||||
"block.create.cut_deepslate": "切制深板岩",
|
||||
"block.create.cut_deepslate_brick_slab": "切制深板岩砖块台阶",
|
||||
"block.create.cut_deepslate_brick_stairs": "切制深板岩砖块楼梯",
|
||||
"block.create.cut_deepslate_brick_wall": "切制深板岩砖块墙",
|
||||
"block.create.cut_deepslate_bricks": "切制深板岩砖块",
|
||||
"block.create.cut_deepslate_slab": "切制深板岩台阶",
|
||||
"block.create.cut_deepslate_stairs": "切制深板岩楼梯",
|
||||
"block.create.cut_deepslate_wall": "切制深板岩墙",
|
||||
"block.create.cut_diorite": "切制闪长岩",
|
||||
"block.create.cut_diorite_brick_slab": "切制闪长岩砖块台阶",
|
||||
"block.create.cut_diorite_brick_stairs": "切制闪长岩砖块楼梯",
|
||||
"block.create.cut_diorite_brick_wall": "切制闪长岩砖块墙",
|
||||
"block.create.cut_diorite_bricks": "切制闪长岩砖块",
|
||||
"block.create.cut_diorite_slab": "切制闪长岩台阶",
|
||||
"block.create.cut_diorite_stairs": "切制闪长岩楼梯",
|
||||
"block.create.cut_diorite_wall": "切制闪长岩墙",
|
||||
"block.create.cut_dripstone": "切制滴水石",
|
||||
"block.create.cut_dripstone_brick_slab": "切制滴水石砖块台阶",
|
||||
"block.create.cut_dripstone_brick_stairs": "切制滴水石砖块楼梯",
|
||||
"block.create.cut_dripstone_brick_wall": "切制滴水石砖块墙",
|
||||
"block.create.cut_dripstone_bricks": "切制滴水石砖块",
|
||||
"block.create.cut_dripstone_slab": "切制滴水石台阶",
|
||||
"block.create.cut_dripstone_stairs": "切制滴水石楼梯",
|
||||
"block.create.cut_dripstone_wall": "切制滴水石墙",
|
||||
"block.create.cut_granite": "切制花岗岩",
|
||||
"block.create.cut_granite_brick_slab": "切制花岗岩砖块台阶",
|
||||
"block.create.cut_granite_brick_stairs": "切制花岗岩砖块楼梯",
|
||||
"block.create.cut_granite_brick_wall": "切制花岗岩砖块墙",
|
||||
"block.create.cut_granite_bricks": "切制花岗岩砖块",
|
||||
"block.create.cut_granite_slab": "切制花岗岩台阶",
|
||||
"block.create.cut_granite_stairs": "切制花岗岩楼梯",
|
||||
"block.create.cut_granite_wall": "切制花岗岩墙",
|
||||
"block.create.cut_limestone": "切制石灰岩",
|
||||
"block.create.cut_limestone_brick_slab": "切制石灰岩砖块台阶",
|
||||
"block.create.cut_limestone_brick_stairs": "切制石灰岩砖块楼梯",
|
||||
"block.create.cut_limestone_brick_wall": "切制石灰岩砖块墙",
|
||||
"block.create.cut_limestone_bricks": "切制石灰岩砖块",
|
||||
"block.create.cut_limestone_slab": "切制石灰岩台阶",
|
||||
"block.create.cut_limestone_stairs": "切制石灰岩楼梯",
|
||||
"block.create.cut_limestone_wall": "切制石灰岩墙",
|
||||
"block.create.cut_ochrum": "切制赭金砂",
|
||||
"block.create.cut_ochrum_brick_slab": "切制赭金砂砖块台阶",
|
||||
"block.create.cut_ochrum_brick_stairs": "切制赭金砂砖块楼梯",
|
||||
"block.create.cut_ochrum_brick_wall": "切制赭金砂砖块墙",
|
||||
"block.create.cut_ochrum_bricks": "切制赭金砂砖块",
|
||||
"block.create.cut_ochrum_slab": "切制赭金砂台阶",
|
||||
"block.create.cut_ochrum_stairs": "切制赭金砂楼梯",
|
||||
"block.create.cut_ochrum_wall": "切制赭金砂墙",
|
||||
"block.create.cut_scorchia": "切制焦黑熔渣",
|
||||
"block.create.cut_scorchia_brick_slab": "切制焦黑熔渣砖块台阶",
|
||||
"block.create.cut_scorchia_brick_stairs": "切制焦黑熔渣砖块楼梯",
|
||||
"block.create.cut_scorchia_brick_wall": "切制焦黑熔渣砖块墙",
|
||||
"block.create.cut_scorchia_bricks": "切制焦黑熔渣砖块",
|
||||
"block.create.cut_scorchia_slab": "切制焦黑熔渣台阶",
|
||||
"block.create.cut_scorchia_stairs": "切制焦黑熔渣楼梯",
|
||||
"block.create.cut_scorchia_wall": "切制焦黑熔渣墙",
|
||||
"block.create.cut_scoria": "切制熔渣",
|
||||
"block.create.cut_scoria_brick_slab": "切制熔渣砖块台阶",
|
||||
"block.create.cut_scoria_brick_stairs": "切制熔渣砖块楼梯",
|
||||
"block.create.cut_scoria_brick_wall": "切制熔渣砖块墙",
|
||||
"block.create.cut_scoria_bricks": "切制熔渣砖块",
|
||||
"block.create.cut_scoria_slab": "切制熔渣台阶",
|
||||
"block.create.cut_scoria_stairs": "切制熔渣楼梯",
|
||||
"block.create.cut_scoria_wall": "切制熔渣墙",
|
||||
"block.create.cut_tuff": "切制凝灰岩",
|
||||
"block.create.cut_tuff_brick_slab": "切制凝灰岩砖块台阶",
|
||||
"block.create.cut_tuff_brick_stairs": "切制凝灰岩砖块楼梯",
|
||||
"block.create.cut_tuff_brick_wall": "切制凝灰岩砖块墙",
|
||||
"block.create.cut_tuff_bricks": "切制凝灰岩砖块",
|
||||
"block.create.cut_tuff_slab": "切制凝灰岩台阶",
|
||||
"block.create.cut_tuff_stairs": "切制凝灰岩楼梯",
|
||||
"block.create.cut_tuff_wall": "切制凝灰岩墙",
|
||||
"block.create.cut_veridium": "切制辉绿矿",
|
||||
"block.create.cut_veridium_brick_slab": "切制辉绿矿砖块台阶",
|
||||
"block.create.cut_veridium_brick_stairs": "切制辉绿矿砖块楼梯",
|
||||
"block.create.cut_veridium_brick_wall": "切制辉绿矿砖块墙",
|
||||
"block.create.cut_veridium_bricks": "切制辉绿矿砖块",
|
||||
"block.create.cut_veridium_slab": "切制辉绿矿台阶",
|
||||
"block.create.cut_veridium_stairs": "切制辉绿矿楼梯",
|
||||
"block.create.cut_veridium_wall": "切制辉绿矿墙",
|
||||
"block.create.cyan_nixie_tube": "青色辉光管",
|
||||
"block.create.cyan_sail": "青色风帆",
|
||||
"block.create.cyan_seat": "青色坐垫",
|
||||
|
@ -192,21 +192,21 @@
|
|||
"block.create.cyan_valve_handle": "青色阀门手轮",
|
||||
"block.create.dark_oak_window": "深色橡木窗户",
|
||||
"block.create.dark_oak_window_pane": "深色橡木窗户板",
|
||||
"block.create.deepslate_pillar": "UNLOCALIZED: Deepslate Pillar",
|
||||
"block.create.deepslate_zinc_ore": "UNLOCALIZED: Deepslate Zinc Ore",
|
||||
"block.create.deepslate_pillar": "深板岩柱",
|
||||
"block.create.deepslate_zinc_ore": "深层锌矿石",
|
||||
"block.create.deployer": "机械手",
|
||||
"block.create.depot": "置物台",
|
||||
"block.create.diorite_pillar": "竖纹闪长岩",
|
||||
"block.create.dripstone_pillar": "UNLOCALIZED: Dripstone Pillar",
|
||||
"block.create.diorite_pillar": "闪长岩柱",
|
||||
"block.create.dripstone_pillar": "滴水石柱",
|
||||
"block.create.encased_chain_drive": "链式传动箱",
|
||||
"block.create.encased_fan": "鼓风机",
|
||||
"block.create.encased_fluid_pipe": "流体管道箱",
|
||||
"block.create.exposed_copper_shingle_slab": "UNLOCALIZED: Exposed Copper Shingle Slab",
|
||||
"block.create.exposed_copper_shingle_stairs": "UNLOCALIZED: Exposed Copper Shingle Stairs",
|
||||
"block.create.exposed_copper_shingles": "UNLOCALIZED: Exposed Copper Shingles",
|
||||
"block.create.exposed_copper_tile_slab": "UNLOCALIZED: Exposed Copper Tile Slab",
|
||||
"block.create.exposed_copper_tile_stairs": "UNLOCALIZED: Exposed Copper Tile Stairs",
|
||||
"block.create.exposed_copper_tiles": "UNLOCALIZED: Exposed Copper Tiles",
|
||||
"block.create.exposed_copper_shingle_slab": "斑驳的铜砖块台阶",
|
||||
"block.create.exposed_copper_shingle_stairs": "斑驳的铜砖块楼梯",
|
||||
"block.create.exposed_copper_shingles": "斑驳的铜砖块",
|
||||
"block.create.exposed_copper_tile_slab": "斑驳的铜瓦块台阶",
|
||||
"block.create.exposed_copper_tile_stairs": "斑驳的铜瓦块楼梯",
|
||||
"block.create.exposed_copper_tiles": "斑驳的铜瓦块",
|
||||
"block.create.fluid_pipe": "流体管道",
|
||||
"block.create.fluid_tank": "流体储罐",
|
||||
"block.create.fluid_valve": "流体阀门",
|
||||
|
@ -219,7 +219,7 @@
|
|||
"block.create.gearbox": "十字齿轮箱",
|
||||
"block.create.gearshift": "反转齿轮箱",
|
||||
"block.create.glass_fluid_pipe": "玻璃流体管道",
|
||||
"block.create.granite_pillar": "竖纹花岗岩",
|
||||
"block.create.granite_pillar": "花岗岩柱",
|
||||
"block.create.gray_nixie_tube": "灰色辉光管",
|
||||
"block.create.gray_sail": "灰色风帆",
|
||||
"block.create.gray_seat": "灰色坐垫",
|
||||
|
@ -237,24 +237,24 @@
|
|||
"block.create.horizontal_framed_glass_pane": "竖直边框玻璃板",
|
||||
"block.create.hose_pulley": "软管滑轮",
|
||||
"block.create.item_drain": "分液池",
|
||||
"block.create.item_vault": "UNLOCALIZED: Item Vault",
|
||||
"block.create.item_vault": "物品保险库",
|
||||
"block.create.jungle_window": "丛林木窗户",
|
||||
"block.create.jungle_window_pane": "丛林木窗户板",
|
||||
"block.create.large_cogwheel": "大齿轮",
|
||||
"block.create.layered_andesite": "层叠安山岩",
|
||||
"block.create.layered_asurine": "UNLOCALIZED: Layered Asurine",
|
||||
"block.create.layered_calcite": "UNLOCALIZED: Layered Calcite",
|
||||
"block.create.layered_crimsite": "UNLOCALIZED: Layered Crimsite",
|
||||
"block.create.layered_deepslate": "UNLOCALIZED: Layered Deepslate",
|
||||
"block.create.layered_asurine": "层叠皓蓝石",
|
||||
"block.create.layered_calcite": "层叠方解石",
|
||||
"block.create.layered_crimsite": "层叠绯红岩",
|
||||
"block.create.layered_deepslate": "层叠深板岩",
|
||||
"block.create.layered_diorite": "层叠闪长岩",
|
||||
"block.create.layered_dripstone": "UNLOCALIZED: Layered Dripstone",
|
||||
"block.create.layered_dripstone": "层叠滴水石",
|
||||
"block.create.layered_granite": "层叠花岗岩",
|
||||
"block.create.layered_limestone": "层叠石灰岩",
|
||||
"block.create.layered_ochrum": "UNLOCALIZED: Layered Ochrum",
|
||||
"block.create.layered_scorchia": "UNLOCALIZED: Layered Scorchia",
|
||||
"block.create.layered_ochrum": "层叠赭金砂",
|
||||
"block.create.layered_scorchia": "层叠焦黑熔渣",
|
||||
"block.create.layered_scoria": "层叠熔渣",
|
||||
"block.create.layered_tuff": "UNLOCALIZED: Layered Tuff",
|
||||
"block.create.layered_veridium": "UNLOCALIZED: Layered Veridium",
|
||||
"block.create.layered_tuff": "层叠凝灰岩",
|
||||
"block.create.layered_veridium": "层叠辉绿矿",
|
||||
"block.create.lectern_controller": "遥控器讲台",
|
||||
"block.create.light_blue_nixie_tube": "淡蓝色辉光管",
|
||||
"block.create.light_blue_sail": "淡蓝色风帆",
|
||||
|
@ -272,7 +272,7 @@
|
|||
"block.create.lime_toolbox": "黄绿色工具箱",
|
||||
"block.create.lime_valve_handle": "黄绿色阀门手轮",
|
||||
"block.create.limestone": "石灰岩",
|
||||
"block.create.limestone_pillar": "竖纹石灰岩",
|
||||
"block.create.limestone_pillar": "石灰岩柱",
|
||||
"block.create.linear_chassis": "机壳底盘",
|
||||
"block.create.lit_blaze_burner": "烈焰人燃烧室(已点燃)",
|
||||
"block.create.magenta_nixie_tube": "品红色辉光管",
|
||||
|
@ -300,20 +300,20 @@
|
|||
"block.create.nozzle": "分散网",
|
||||
"block.create.oak_window": "橡木窗户",
|
||||
"block.create.oak_window_pane": "橡木窗户板",
|
||||
"block.create.ochrum": "UNLOCALIZED: Ochrum",
|
||||
"block.create.ochrum_pillar": "UNLOCALIZED: Ochrum Pillar",
|
||||
"block.create.ochrum": "赭金砂",
|
||||
"block.create.ochrum_pillar": "赭金砂柱",
|
||||
"block.create.orange_sail": "橙色风帆",
|
||||
"block.create.orange_seat": "橙色坐垫",
|
||||
"block.create.orange_toolbox": "橙色工具箱",
|
||||
"block.create.orange_valve_handle": "橙色阀门手轮",
|
||||
"block.create.ornate_iron_window": "华丽铁窗户",
|
||||
"block.create.ornate_iron_window_pane": "华丽铁窗户板",
|
||||
"block.create.oxidized_copper_shingle_slab": "UNLOCALIZED: Oxidized Copper Shingle Slab",
|
||||
"block.create.oxidized_copper_shingle_stairs": "UNLOCALIZED: Oxidized Copper Shingle Stairs",
|
||||
"block.create.oxidized_copper_shingles": "UNLOCALIZED: Oxidized Copper Shingles",
|
||||
"block.create.oxidized_copper_tile_slab": "UNLOCALIZED: Oxidized Copper Tile Slab",
|
||||
"block.create.oxidized_copper_tile_stairs": "UNLOCALIZED: Oxidized Copper Tile Stairs",
|
||||
"block.create.oxidized_copper_tiles": "UNLOCALIZED: Oxidized Copper Tiles",
|
||||
"block.create.oxidized_copper_shingle_slab": "氧化的铜砖块台阶",
|
||||
"block.create.oxidized_copper_shingle_stairs": "氧化的铜砖块楼梯",
|
||||
"block.create.oxidized_copper_shingles": "氧化的铜砖块",
|
||||
"block.create.oxidized_copper_tile_slab": "氧化的铜瓦块台阶",
|
||||
"block.create.oxidized_copper_tile_stairs": "氧化的铜瓦块楼梯",
|
||||
"block.create.oxidized_copper_tiles": "氧化的铜瓦块",
|
||||
"block.create.peculiar_bell": "奇异钟",
|
||||
"block.create.pink_nixie_tube": "粉红色辉光管",
|
||||
"block.create.pink_sail": "粉红色风帆",
|
||||
|
@ -321,68 +321,68 @@
|
|||
"block.create.pink_toolbox": "粉红色工具箱",
|
||||
"block.create.pink_valve_handle": "粉红色阀门手轮",
|
||||
"block.create.piston_extension_pole": "活塞杆",
|
||||
"block.create.polished_cut_andesite": "UNLOCALIZED: Polished Cut Andesite",
|
||||
"block.create.polished_cut_andesite_slab": "UNLOCALIZED: Polished Cut Andesite Slab",
|
||||
"block.create.polished_cut_andesite_stairs": "UNLOCALIZED: Polished Cut Andesite Stairs",
|
||||
"block.create.polished_cut_andesite_wall": "UNLOCALIZED: Polished Cut Andesite Wall",
|
||||
"block.create.polished_cut_asurine": "UNLOCALIZED: Polished Cut Asurine",
|
||||
"block.create.polished_cut_asurine_slab": "UNLOCALIZED: Polished Cut Asurine Slab",
|
||||
"block.create.polished_cut_asurine_stairs": "UNLOCALIZED: Polished Cut Asurine Stairs",
|
||||
"block.create.polished_cut_asurine_wall": "UNLOCALIZED: Polished Cut Asurine Wall",
|
||||
"block.create.polished_cut_calcite": "UNLOCALIZED: Polished Cut Calcite",
|
||||
"block.create.polished_cut_calcite_slab": "UNLOCALIZED: Polished Cut Calcite Slab",
|
||||
"block.create.polished_cut_calcite_stairs": "UNLOCALIZED: Polished Cut Calcite Stairs",
|
||||
"block.create.polished_cut_calcite_wall": "UNLOCALIZED: Polished Cut Calcite Wall",
|
||||
"block.create.polished_cut_crimsite": "UNLOCALIZED: Polished Cut Crimsite",
|
||||
"block.create.polished_cut_crimsite_slab": "UNLOCALIZED: Polished Cut Crimsite Slab",
|
||||
"block.create.polished_cut_crimsite_stairs": "UNLOCALIZED: Polished Cut Crimsite Stairs",
|
||||
"block.create.polished_cut_crimsite_wall": "UNLOCALIZED: Polished Cut Crimsite Wall",
|
||||
"block.create.polished_cut_deepslate": "UNLOCALIZED: Polished Cut Deepslate",
|
||||
"block.create.polished_cut_deepslate_slab": "UNLOCALIZED: Polished Cut Deepslate Slab",
|
||||
"block.create.polished_cut_deepslate_stairs": "UNLOCALIZED: Polished Cut Deepslate Stairs",
|
||||
"block.create.polished_cut_deepslate_wall": "UNLOCALIZED: Polished Cut Deepslate Wall",
|
||||
"block.create.polished_cut_diorite": "UNLOCALIZED: Polished Cut Diorite",
|
||||
"block.create.polished_cut_diorite_slab": "UNLOCALIZED: Polished Cut Diorite Slab",
|
||||
"block.create.polished_cut_diorite_stairs": "UNLOCALIZED: Polished Cut Diorite Stairs",
|
||||
"block.create.polished_cut_diorite_wall": "UNLOCALIZED: Polished Cut Diorite Wall",
|
||||
"block.create.polished_cut_dripstone": "UNLOCALIZED: Polished Cut Dripstone",
|
||||
"block.create.polished_cut_dripstone_slab": "UNLOCALIZED: Polished Cut Dripstone Slab",
|
||||
"block.create.polished_cut_dripstone_stairs": "UNLOCALIZED: Polished Cut Dripstone Stairs",
|
||||
"block.create.polished_cut_dripstone_wall": "UNLOCALIZED: Polished Cut Dripstone Wall",
|
||||
"block.create.polished_cut_granite": "UNLOCALIZED: Polished Cut Granite",
|
||||
"block.create.polished_cut_granite_slab": "UNLOCALIZED: Polished Cut Granite Slab",
|
||||
"block.create.polished_cut_granite_stairs": "UNLOCALIZED: Polished Cut Granite Stairs",
|
||||
"block.create.polished_cut_granite_wall": "UNLOCALIZED: Polished Cut Granite Wall",
|
||||
"block.create.polished_cut_limestone": "UNLOCALIZED: Polished Cut Limestone",
|
||||
"block.create.polished_cut_limestone_slab": "UNLOCALIZED: Polished Cut Limestone Slab",
|
||||
"block.create.polished_cut_limestone_stairs": "UNLOCALIZED: Polished Cut Limestone Stairs",
|
||||
"block.create.polished_cut_limestone_wall": "UNLOCALIZED: Polished Cut Limestone Wall",
|
||||
"block.create.polished_cut_ochrum": "UNLOCALIZED: Polished Cut Ochrum",
|
||||
"block.create.polished_cut_ochrum_slab": "UNLOCALIZED: Polished Cut Ochrum Slab",
|
||||
"block.create.polished_cut_ochrum_stairs": "UNLOCALIZED: Polished Cut Ochrum Stairs",
|
||||
"block.create.polished_cut_ochrum_wall": "UNLOCALIZED: Polished Cut Ochrum Wall",
|
||||
"block.create.polished_cut_scorchia": "UNLOCALIZED: Polished Cut Scorchia",
|
||||
"block.create.polished_cut_scorchia_slab": "UNLOCALIZED: Polished Cut Scorchia Slab",
|
||||
"block.create.polished_cut_scorchia_stairs": "UNLOCALIZED: Polished Cut Scorchia Stairs",
|
||||
"block.create.polished_cut_scorchia_wall": "UNLOCALIZED: Polished Cut Scorchia Wall",
|
||||
"block.create.polished_cut_scoria": "UNLOCALIZED: Polished Cut Scoria",
|
||||
"block.create.polished_cut_scoria_slab": "UNLOCALIZED: Polished Cut Scoria Slab",
|
||||
"block.create.polished_cut_scoria_stairs": "UNLOCALIZED: Polished Cut Scoria Stairs",
|
||||
"block.create.polished_cut_scoria_wall": "UNLOCALIZED: Polished Cut Scoria Wall",
|
||||
"block.create.polished_cut_tuff": "UNLOCALIZED: Polished Cut Tuff",
|
||||
"block.create.polished_cut_tuff_slab": "UNLOCALIZED: Polished Cut Tuff Slab",
|
||||
"block.create.polished_cut_tuff_stairs": "UNLOCALIZED: Polished Cut Tuff Stairs",
|
||||
"block.create.polished_cut_tuff_wall": "UNLOCALIZED: Polished Cut Tuff Wall",
|
||||
"block.create.polished_cut_veridium": "UNLOCALIZED: Polished Cut Veridium",
|
||||
"block.create.polished_cut_veridium_slab": "UNLOCALIZED: Polished Cut Veridium Slab",
|
||||
"block.create.polished_cut_veridium_stairs": "UNLOCALIZED: Polished Cut Veridium Stairs",
|
||||
"block.create.polished_cut_veridium_wall": "UNLOCALIZED: Polished Cut Veridium Wall",
|
||||
"block.create.polished_cut_andesite": "磨制切制安山岩",
|
||||
"block.create.polished_cut_andesite_slab": "磨制切制安山岩台阶",
|
||||
"block.create.polished_cut_andesite_stairs": "磨制切制安山岩楼梯",
|
||||
"block.create.polished_cut_andesite_wall": "磨制切制安山岩墙",
|
||||
"block.create.polished_cut_asurine": "磨制切制皓蓝石",
|
||||
"block.create.polished_cut_asurine_slab": "磨制切制皓蓝石台阶",
|
||||
"block.create.polished_cut_asurine_stairs": "磨制切制皓蓝石楼梯",
|
||||
"block.create.polished_cut_asurine_wall": "磨制切制皓蓝石墙",
|
||||
"block.create.polished_cut_calcite": "磨制切制方解石",
|
||||
"block.create.polished_cut_calcite_slab": "磨制切制方解石台阶",
|
||||
"block.create.polished_cut_calcite_stairs": "磨制切制方解石楼梯",
|
||||
"block.create.polished_cut_calcite_wall": "磨制切制方解石墙",
|
||||
"block.create.polished_cut_crimsite": "磨制切制绯红岩",
|
||||
"block.create.polished_cut_crimsite_slab": "磨制切制绯红岩台阶",
|
||||
"block.create.polished_cut_crimsite_stairs": "磨制切制绯红岩楼梯",
|
||||
"block.create.polished_cut_crimsite_wall": "磨制切制绯红岩墙",
|
||||
"block.create.polished_cut_deepslate": "磨制切制深板岩",
|
||||
"block.create.polished_cut_deepslate_slab": "磨制切制深板岩台阶",
|
||||
"block.create.polished_cut_deepslate_stairs": "磨制切制深板岩楼梯",
|
||||
"block.create.polished_cut_deepslate_wall": "磨制切制深板岩墙",
|
||||
"block.create.polished_cut_diorite": "磨制切制闪长岩",
|
||||
"block.create.polished_cut_diorite_slab": "磨制切制闪长岩台阶",
|
||||
"block.create.polished_cut_diorite_stairs": "磨制切制闪长岩楼梯",
|
||||
"block.create.polished_cut_diorite_wall": "磨制切制闪长岩墙",
|
||||
"block.create.polished_cut_dripstone": "磨制切制滴水石",
|
||||
"block.create.polished_cut_dripstone_slab": "磨制切制滴水石台阶",
|
||||
"block.create.polished_cut_dripstone_stairs": "磨制切制滴水石楼梯",
|
||||
"block.create.polished_cut_dripstone_wall": "磨制切制滴水石墙",
|
||||
"block.create.polished_cut_granite": "磨制切制花岗岩",
|
||||
"block.create.polished_cut_granite_slab": "磨制切制花岗岩台阶",
|
||||
"block.create.polished_cut_granite_stairs": "磨制切制花岗岩楼梯",
|
||||
"block.create.polished_cut_granite_wall": "磨制切制花岗岩墙",
|
||||
"block.create.polished_cut_limestone": "磨制切制石灰岩",
|
||||
"block.create.polished_cut_limestone_slab": "磨制切制石灰岩台阶",
|
||||
"block.create.polished_cut_limestone_stairs": "磨制切制石灰岩楼梯",
|
||||
"block.create.polished_cut_limestone_wall": "磨制切制石灰岩墙",
|
||||
"block.create.polished_cut_ochrum": "磨制切制赭金砂",
|
||||
"block.create.polished_cut_ochrum_slab": "磨制切制赭金砂台阶",
|
||||
"block.create.polished_cut_ochrum_stairs": "磨制切制赭金砂楼梯",
|
||||
"block.create.polished_cut_ochrum_wall": "磨制切制赭金砂墙",
|
||||
"block.create.polished_cut_scorchia": "磨制切制焦黑熔渣",
|
||||
"block.create.polished_cut_scorchia_slab": "磨制切制焦黑熔渣台阶",
|
||||
"block.create.polished_cut_scorchia_stairs": "磨制切制焦黑熔渣楼梯",
|
||||
"block.create.polished_cut_scorchia_wall": "磨制切制焦黑熔渣墙",
|
||||
"block.create.polished_cut_scoria": "磨制切制熔渣",
|
||||
"block.create.polished_cut_scoria_slab": "磨制切制熔渣台阶",
|
||||
"block.create.polished_cut_scoria_stairs": "磨制切制熔渣楼梯",
|
||||
"block.create.polished_cut_scoria_wall": "磨制切制熔渣墙",
|
||||
"block.create.polished_cut_tuff": "磨制切制凝灰岩",
|
||||
"block.create.polished_cut_tuff_slab": "磨制切制凝灰岩台阶",
|
||||
"block.create.polished_cut_tuff_stairs": "磨制切制凝灰岩楼梯",
|
||||
"block.create.polished_cut_tuff_wall": "磨制切制凝灰岩墙",
|
||||
"block.create.polished_cut_veridium": "磨制切制辉绿矿",
|
||||
"block.create.polished_cut_veridium_slab": "磨制切制辉绿矿台阶",
|
||||
"block.create.polished_cut_veridium_stairs": "磨制切制辉绿矿楼梯",
|
||||
"block.create.polished_cut_veridium_wall": "磨制切制辉绿矿墙",
|
||||
"block.create.portable_fluid_interface": "移动式流体接口",
|
||||
"block.create.portable_storage_interface": "移动式存储接口",
|
||||
"block.create.powered_latch": "锁存器",
|
||||
"block.create.powered_toggle_latch": "转换锁存器",
|
||||
"block.create.pulley_magnet": "滑轮磁铁",
|
||||
"block.create.pulse_extender": "UNLOCALIZED: Pulse Extender",
|
||||
"block.create.pulse_extender": "脉冲延长器",
|
||||
"block.create.pulse_repeater": "脉冲中继器",
|
||||
"block.create.purple_nixie_tube": "紫色辉光管",
|
||||
"block.create.purple_sail": "紫色风帆",
|
||||
|
@ -390,7 +390,7 @@
|
|||
"block.create.purple_toolbox": "紫色工具箱",
|
||||
"block.create.purple_valve_handle": "紫色阀门手轮",
|
||||
"block.create.radial_chassis": "旋转底盘",
|
||||
"block.create.raw_zinc_block": "UNLOCALIZED: Block of Raw Zinc",
|
||||
"block.create.raw_zinc_block": "粗锌块",
|
||||
"block.create.red_nixie_tube": "红色辉光管",
|
||||
"block.create.red_sail": "红色风帆",
|
||||
"block.create.red_seat": "红色坐垫",
|
||||
|
@ -405,70 +405,70 @@
|
|||
"block.create.sail_frame": "风帆框架",
|
||||
"block.create.schematic_table": "蓝图桌",
|
||||
"block.create.schematicannon": "蓝图加农炮",
|
||||
"block.create.scorchia": "UNLOCALIZED: Scorchia",
|
||||
"block.create.scorchia_pillar": "UNLOCALIZED: Scorchia Pillar",
|
||||
"block.create.scorchia": "焦黑熔渣",
|
||||
"block.create.scorchia_pillar": "焦黑熔渣柱",
|
||||
"block.create.scoria": "熔渣",
|
||||
"block.create.scoria_pillar": "竖纹熔渣",
|
||||
"block.create.scoria_pillar": "熔渣柱",
|
||||
"block.create.secondary_linear_chassis": "机壳底盘 2 号",
|
||||
"block.create.sequenced_gearshift": "可编程齿轮箱",
|
||||
"block.create.shadow_steel_casing": "暗影机壳",
|
||||
"block.create.shaft": "传动杆",
|
||||
"block.create.small_andesite_brick_slab": "UNLOCALIZED: Small Andesite Brick Slab",
|
||||
"block.create.small_andesite_brick_stairs": "UNLOCALIZED: Small Andesite Brick Stairs",
|
||||
"block.create.small_andesite_brick_wall": "UNLOCALIZED: Small Andesite Brick Wall",
|
||||
"block.create.small_andesite_bricks": "UNLOCALIZED: Small Andesite Bricks",
|
||||
"block.create.small_asurine_brick_slab": "UNLOCALIZED: Small Asurine Brick Slab",
|
||||
"block.create.small_asurine_brick_stairs": "UNLOCALIZED: Small Asurine Brick Stairs",
|
||||
"block.create.small_asurine_brick_wall": "UNLOCALIZED: Small Asurine Brick Wall",
|
||||
"block.create.small_asurine_bricks": "UNLOCALIZED: Small Asurine Bricks",
|
||||
"block.create.small_calcite_brick_slab": "UNLOCALIZED: Small Calcite Brick Slab",
|
||||
"block.create.small_calcite_brick_stairs": "UNLOCALIZED: Small Calcite Brick Stairs",
|
||||
"block.create.small_calcite_brick_wall": "UNLOCALIZED: Small Calcite Brick Wall",
|
||||
"block.create.small_calcite_bricks": "UNLOCALIZED: Small Calcite Bricks",
|
||||
"block.create.small_crimsite_brick_slab": "UNLOCALIZED: Small Crimsite Brick Slab",
|
||||
"block.create.small_crimsite_brick_stairs": "UNLOCALIZED: Small Crimsite Brick Stairs",
|
||||
"block.create.small_crimsite_brick_wall": "UNLOCALIZED: Small Crimsite Brick Wall",
|
||||
"block.create.small_crimsite_bricks": "UNLOCALIZED: Small Crimsite Bricks",
|
||||
"block.create.small_deepslate_brick_slab": "UNLOCALIZED: Small Deepslate Brick Slab",
|
||||
"block.create.small_deepslate_brick_stairs": "UNLOCALIZED: Small Deepslate Brick Stairs",
|
||||
"block.create.small_deepslate_brick_wall": "UNLOCALIZED: Small Deepslate Brick Wall",
|
||||
"block.create.small_deepslate_bricks": "UNLOCALIZED: Small Deepslate Bricks",
|
||||
"block.create.small_diorite_brick_slab": "UNLOCALIZED: Small Diorite Brick Slab",
|
||||
"block.create.small_diorite_brick_stairs": "UNLOCALIZED: Small Diorite Brick Stairs",
|
||||
"block.create.small_diorite_brick_wall": "UNLOCALIZED: Small Diorite Brick Wall",
|
||||
"block.create.small_diorite_bricks": "UNLOCALIZED: Small Diorite Bricks",
|
||||
"block.create.small_dripstone_brick_slab": "UNLOCALIZED: Small Dripstone Brick Slab",
|
||||
"block.create.small_dripstone_brick_stairs": "UNLOCALIZED: Small Dripstone Brick Stairs",
|
||||
"block.create.small_dripstone_brick_wall": "UNLOCALIZED: Small Dripstone Brick Wall",
|
||||
"block.create.small_dripstone_bricks": "UNLOCALIZED: Small Dripstone Bricks",
|
||||
"block.create.small_granite_brick_slab": "UNLOCALIZED: Small Granite Brick Slab",
|
||||
"block.create.small_granite_brick_stairs": "UNLOCALIZED: Small Granite Brick Stairs",
|
||||
"block.create.small_granite_brick_wall": "UNLOCALIZED: Small Granite Brick Wall",
|
||||
"block.create.small_granite_bricks": "UNLOCALIZED: Small Granite Bricks",
|
||||
"block.create.small_limestone_brick_slab": "UNLOCALIZED: Small Limestone Brick Slab",
|
||||
"block.create.small_limestone_brick_stairs": "UNLOCALIZED: Small Limestone Brick Stairs",
|
||||
"block.create.small_limestone_brick_wall": "UNLOCALIZED: Small Limestone Brick Wall",
|
||||
"block.create.small_limestone_bricks": "UNLOCALIZED: Small Limestone Bricks",
|
||||
"block.create.small_ochrum_brick_slab": "UNLOCALIZED: Small Ochrum Brick Slab",
|
||||
"block.create.small_ochrum_brick_stairs": "UNLOCALIZED: Small Ochrum Brick Stairs",
|
||||
"block.create.small_ochrum_brick_wall": "UNLOCALIZED: Small Ochrum Brick Wall",
|
||||
"block.create.small_ochrum_bricks": "UNLOCALIZED: Small Ochrum Bricks",
|
||||
"block.create.small_scorchia_brick_slab": "UNLOCALIZED: Small Scorchia Brick Slab",
|
||||
"block.create.small_scorchia_brick_stairs": "UNLOCALIZED: Small Scorchia Brick Stairs",
|
||||
"block.create.small_scorchia_brick_wall": "UNLOCALIZED: Small Scorchia Brick Wall",
|
||||
"block.create.small_scorchia_bricks": "UNLOCALIZED: Small Scorchia Bricks",
|
||||
"block.create.small_scoria_brick_slab": "UNLOCALIZED: Small Scoria Brick Slab",
|
||||
"block.create.small_scoria_brick_stairs": "UNLOCALIZED: Small Scoria Brick Stairs",
|
||||
"block.create.small_scoria_brick_wall": "UNLOCALIZED: Small Scoria Brick Wall",
|
||||
"block.create.small_scoria_bricks": "UNLOCALIZED: Small Scoria Bricks",
|
||||
"block.create.small_tuff_brick_slab": "UNLOCALIZED: Small Tuff Brick Slab",
|
||||
"block.create.small_tuff_brick_stairs": "UNLOCALIZED: Small Tuff Brick Stairs",
|
||||
"block.create.small_tuff_brick_wall": "UNLOCALIZED: Small Tuff Brick Wall",
|
||||
"block.create.small_tuff_bricks": "UNLOCALIZED: Small Tuff Bricks",
|
||||
"block.create.small_veridium_brick_slab": "UNLOCALIZED: Small Veridium Brick Slab",
|
||||
"block.create.small_veridium_brick_stairs": "UNLOCALIZED: Small Veridium Brick Stairs",
|
||||
"block.create.small_veridium_brick_wall": "UNLOCALIZED: Small Veridium Brick Wall",
|
||||
"block.create.small_veridium_bricks": "UNLOCALIZED: Small Veridium Bricks",
|
||||
"block.create.small_andesite_brick_slab": "安山岩小砖块台阶",
|
||||
"block.create.small_andesite_brick_stairs": "安山岩小砖块楼梯",
|
||||
"block.create.small_andesite_brick_wall": "安山岩小砖块墙",
|
||||
"block.create.small_andesite_bricks": "安山岩小砖块",
|
||||
"block.create.small_asurine_brick_slab": "皓蓝石小砖块台阶",
|
||||
"block.create.small_asurine_brick_stairs": "皓蓝石小砖块楼梯",
|
||||
"block.create.small_asurine_brick_wall": "皓蓝石小砖块墙",
|
||||
"block.create.small_asurine_bricks": "皓蓝石小砖块",
|
||||
"block.create.small_calcite_brick_slab": "方解石小砖块台阶",
|
||||
"block.create.small_calcite_brick_stairs": "方解石小砖块楼梯",
|
||||
"block.create.small_calcite_brick_wall": "方解石小砖块墙",
|
||||
"block.create.small_calcite_bricks": "方解石小砖块",
|
||||
"block.create.small_crimsite_brick_slab": "绯红岩小砖块台阶",
|
||||
"block.create.small_crimsite_brick_stairs": "绯红岩小砖块楼梯",
|
||||
"block.create.small_crimsite_brick_wall": "绯红岩小砖块墙",
|
||||
"block.create.small_crimsite_bricks": "绯红岩小砖块",
|
||||
"block.create.small_deepslate_brick_slab": "深板岩小砖块台阶",
|
||||
"block.create.small_deepslate_brick_stairs": "深板岩小砖块楼梯",
|
||||
"block.create.small_deepslate_brick_wall": "深板岩小砖块墙",
|
||||
"block.create.small_deepslate_bricks": "深板岩小砖块",
|
||||
"block.create.small_diorite_brick_slab": "闪长岩小砖块台阶",
|
||||
"block.create.small_diorite_brick_stairs": "闪长岩小砖块楼梯",
|
||||
"block.create.small_diorite_brick_wall": "闪长岩小砖块墙",
|
||||
"block.create.small_diorite_bricks": "闪长岩小砖块",
|
||||
"block.create.small_dripstone_brick_slab": "滴水石小砖块台阶",
|
||||
"block.create.small_dripstone_brick_stairs": "滴水石小砖块楼梯",
|
||||
"block.create.small_dripstone_brick_wall": "滴水石小砖块墙",
|
||||
"block.create.small_dripstone_bricks": "滴水石小砖块",
|
||||
"block.create.small_granite_brick_slab": "花岗岩小砖块台阶",
|
||||
"block.create.small_granite_brick_stairs": "花岗岩小砖块楼梯",
|
||||
"block.create.small_granite_brick_wall": "花岗岩小砖块墙",
|
||||
"block.create.small_granite_bricks": "花岗岩小砖块",
|
||||
"block.create.small_limestone_brick_slab": "石灰岩小砖块台阶",
|
||||
"block.create.small_limestone_brick_stairs": "石灰岩小砖块楼梯",
|
||||
"block.create.small_limestone_brick_wall": "石灰岩小砖块墙",
|
||||
"block.create.small_limestone_bricks": "石灰岩小砖块",
|
||||
"block.create.small_ochrum_brick_slab": "赭金砂小砖块台阶",
|
||||
"block.create.small_ochrum_brick_stairs": "赭金砂小砖块楼梯",
|
||||
"block.create.small_ochrum_brick_wall": "赭金砂小砖块墙",
|
||||
"block.create.small_ochrum_bricks": "赭金砂小砖块",
|
||||
"block.create.small_scorchia_brick_slab": "焦黑熔渣小砖块台阶",
|
||||
"block.create.small_scorchia_brick_stairs": "焦黑熔渣小砖块楼梯",
|
||||
"block.create.small_scorchia_brick_wall": "焦黑熔渣小砖块墙",
|
||||
"block.create.small_scorchia_bricks": "焦黑熔渣小砖块",
|
||||
"block.create.small_scoria_brick_slab": "熔渣小砖块台阶",
|
||||
"block.create.small_scoria_brick_stairs": "熔渣小砖块楼梯",
|
||||
"block.create.small_scoria_brick_wall": "熔渣小砖块墙",
|
||||
"block.create.small_scoria_bricks": "熔渣小砖块",
|
||||
"block.create.small_tuff_brick_slab": "凝灰岩小砖块台阶",
|
||||
"block.create.small_tuff_brick_stairs": "凝灰岩小砖块楼梯",
|
||||
"block.create.small_tuff_brick_wall": "凝灰岩小砖块墙",
|
||||
"block.create.small_tuff_bricks": "凝灰岩小砖块",
|
||||
"block.create.small_veridium_brick_slab": "辉绿矿小砖块台阶",
|
||||
"block.create.small_veridium_brick_stairs": "辉绿矿小砖块楼梯",
|
||||
"block.create.small_veridium_brick_wall": "辉绿矿小砖块墙",
|
||||
"block.create.small_veridium_bricks": "辉绿矿小砖块",
|
||||
"block.create.smart_chute": "智能溜槽",
|
||||
"block.create.smart_fluid_pipe": "智能流体管道",
|
||||
"block.create.speedometer": "速度表",
|
||||
|
@ -481,45 +481,45 @@
|
|||
"block.create.stressometer": "应力表",
|
||||
"block.create.tiled_glass": "十字玻璃窗",
|
||||
"block.create.tiled_glass_pane": "十字玻璃窗户板",
|
||||
"block.create.tuff_pillar": "UNLOCALIZED: Tuff Pillar",
|
||||
"block.create.tuff_pillar": "凝灰岩柱",
|
||||
"block.create.turntable": "转盘",
|
||||
"block.create.veridium": "UNLOCALIZED: Veridium",
|
||||
"block.create.veridium_pillar": "UNLOCALIZED: Veridium Pillar",
|
||||
"block.create.veridium": "辉绿矿",
|
||||
"block.create.veridium_pillar": "辉绿矿柱",
|
||||
"block.create.vertical_framed_glass": "竖直边框玻璃",
|
||||
"block.create.vertical_framed_glass_pane": "竖直边框玻璃板",
|
||||
"block.create.warped_window": "诡异木窗户",
|
||||
"block.create.warped_window_pane": "诡异木窗户板",
|
||||
"block.create.water_wheel": "水车",
|
||||
"block.create.waxed_copper_shingle_slab": "UNLOCALIZED: Waxed Copper Shingle Slab",
|
||||
"block.create.waxed_copper_shingle_stairs": "UNLOCALIZED: Waxed Copper Shingle Stairs",
|
||||
"block.create.waxed_copper_shingles": "UNLOCALIZED: Waxed Copper Shingles",
|
||||
"block.create.waxed_copper_tile_slab": "UNLOCALIZED: Waxed Copper Tile Slab",
|
||||
"block.create.waxed_copper_tile_stairs": "UNLOCALIZED: Waxed Copper Tile Stairs",
|
||||
"block.create.waxed_copper_tiles": "UNLOCALIZED: Waxed Copper Tiles",
|
||||
"block.create.waxed_exposed_copper_shingle_slab": "UNLOCALIZED: Waxed Exposed Copper Shingle Slab",
|
||||
"block.create.waxed_exposed_copper_shingle_stairs": "UNLOCALIZED: Waxed Exposed Copper Shingle Stairs",
|
||||
"block.create.waxed_exposed_copper_shingles": "UNLOCALIZED: Waxed Exposed Copper Shingles",
|
||||
"block.create.waxed_exposed_copper_tile_slab": "UNLOCALIZED: Waxed Exposed Copper Tile Slab",
|
||||
"block.create.waxed_exposed_copper_tile_stairs": "UNLOCALIZED: Waxed Exposed Copper Tile Stairs",
|
||||
"block.create.waxed_exposed_copper_tiles": "UNLOCALIZED: Waxed Exposed Copper Tiles",
|
||||
"block.create.waxed_oxidized_copper_shingle_slab": "UNLOCALIZED: Waxed Oxidized Copper Shingle Slab",
|
||||
"block.create.waxed_oxidized_copper_shingle_stairs": "UNLOCALIZED: Waxed Oxidized Copper Shingle Stairs",
|
||||
"block.create.waxed_oxidized_copper_shingles": "UNLOCALIZED: Waxed Oxidized Copper Shingles",
|
||||
"block.create.waxed_oxidized_copper_tile_slab": "UNLOCALIZED: Waxed Oxidized Copper Tile Slab",
|
||||
"block.create.waxed_oxidized_copper_tile_stairs": "UNLOCALIZED: Waxed Oxidized Copper Tile Stairs",
|
||||
"block.create.waxed_oxidized_copper_tiles": "UNLOCALIZED: Waxed Oxidized Copper Tiles",
|
||||
"block.create.waxed_weathered_copper_shingle_slab": "UNLOCALIZED: Waxed Weathered Copper Shingle Slab",
|
||||
"block.create.waxed_weathered_copper_shingle_stairs": "UNLOCALIZED: Waxed Weathered Copper Shingle Stairs",
|
||||
"block.create.waxed_weathered_copper_shingles": "UNLOCALIZED: Waxed Weathered Copper Shingles",
|
||||
"block.create.waxed_weathered_copper_tile_slab": "UNLOCALIZED: Waxed Weathered Copper Tile Slab",
|
||||
"block.create.waxed_weathered_copper_tile_stairs": "UNLOCALIZED: Waxed Weathered Copper Tile Stairs",
|
||||
"block.create.waxed_weathered_copper_tiles": "UNLOCALIZED: Waxed Weathered Copper Tiles",
|
||||
"block.create.weathered_copper_shingle_slab": "UNLOCALIZED: Weathered Copper Shingle Slab",
|
||||
"block.create.weathered_copper_shingle_stairs": "UNLOCALIZED: Weathered Copper Shingle Stairs",
|
||||
"block.create.weathered_copper_shingles": "UNLOCALIZED: Weathered Copper Shingles",
|
||||
"block.create.weathered_copper_tile_slab": "UNLOCALIZED: Weathered Copper Tile Slab",
|
||||
"block.create.weathered_copper_tile_stairs": "UNLOCALIZED: Weathered Copper Tile Stairs",
|
||||
"block.create.weathered_copper_tiles": "UNLOCALIZED: Weathered Copper Tiles",
|
||||
"block.create.waxed_copper_shingle_slab": "涂蜡铜砖块台阶",
|
||||
"block.create.waxed_copper_shingle_stairs": "涂蜡铜砖块楼梯",
|
||||
"block.create.waxed_copper_shingles": "涂蜡铜砖块",
|
||||
"block.create.waxed_copper_tile_slab": "涂蜡铜瓦块台阶",
|
||||
"block.create.waxed_copper_tile_stairs": "涂蜡铜瓦块楼梯",
|
||||
"block.create.waxed_copper_tiles": "涂蜡铜瓦块",
|
||||
"block.create.waxed_exposed_copper_shingle_slab": "斑驳的涂蜡铜砖块台阶",
|
||||
"block.create.waxed_exposed_copper_shingle_stairs": "斑驳的涂蜡铜砖块楼梯",
|
||||
"block.create.waxed_exposed_copper_shingles": "斑驳的涂蜡铜砖块",
|
||||
"block.create.waxed_exposed_copper_tile_slab": "斑驳的涂蜡铜瓦块台阶",
|
||||
"block.create.waxed_exposed_copper_tile_stairs": "斑驳的涂蜡铜瓦块楼梯",
|
||||
"block.create.waxed_exposed_copper_tiles": "斑驳的涂蜡铜瓦块",
|
||||
"block.create.waxed_oxidized_copper_shingle_slab": "氧化的涂蜡铜砖块台阶",
|
||||
"block.create.waxed_oxidized_copper_shingle_stairs": "氧化的涂蜡铜砖块楼梯",
|
||||
"block.create.waxed_oxidized_copper_shingles": "氧化的涂蜡铜砖块",
|
||||
"block.create.waxed_oxidized_copper_tile_slab": "氧化的涂蜡铜瓦块台阶",
|
||||
"block.create.waxed_oxidized_copper_tile_stairs": "氧化的涂蜡铜瓦块楼梯",
|
||||
"block.create.waxed_oxidized_copper_tiles": "氧化的涂蜡铜瓦块",
|
||||
"block.create.waxed_weathered_copper_shingle_slab": "锈蚀的涂蜡铜砖块台阶",
|
||||
"block.create.waxed_weathered_copper_shingle_stairs": "锈蚀的涂蜡铜砖块楼梯",
|
||||
"block.create.waxed_weathered_copper_shingles": "锈蚀的涂蜡铜砖块",
|
||||
"block.create.waxed_weathered_copper_tile_slab": "锈蚀的涂蜡铜瓦块台阶",
|
||||
"block.create.waxed_weathered_copper_tile_stairs": "锈蚀的涂蜡铜瓦块楼梯",
|
||||
"block.create.waxed_weathered_copper_tiles": "锈蚀的涂蜡铜瓦块",
|
||||
"block.create.weathered_copper_shingle_slab": "锈蚀的铜砖块台阶",
|
||||
"block.create.weathered_copper_shingle_stairs": "锈蚀的铜砖块楼梯",
|
||||
"block.create.weathered_copper_shingles": "锈蚀的铜砖块",
|
||||
"block.create.weathered_copper_tile_slab": "锈蚀的铜瓦块台阶",
|
||||
"block.create.weathered_copper_tile_stairs": "锈蚀的铜瓦块楼梯",
|
||||
"block.create.weathered_copper_tiles": "锈蚀的铜瓦块",
|
||||
"block.create.weighted_ejector": "弹射置物台",
|
||||
"block.create.white_nixie_tube": "白色辉光管",
|
||||
"block.create.white_sail": "白色风帆",
|
||||
|
@ -591,7 +591,7 @@
|
|||
"item.create.electron_tube": "电子管",
|
||||
"item.create.empty_blaze_burner": "空的烈焰人燃烧室",
|
||||
"item.create.empty_schematic": "空白蓝图",
|
||||
"item.create.experience_nugget": "UNLOCALIZED: Nugget of Experience",
|
||||
"item.create.experience_nugget": "经验颗粒",
|
||||
"item.create.extendo_grip": "伸缩机械手",
|
||||
"item.create.filter": "过滤器",
|
||||
"item.create.furnace_minecart_contraption": "装配过的动力矿车",
|
||||
|
@ -613,7 +613,7 @@
|
|||
"item.create.powdered_obsidian": "黑曜石粉末",
|
||||
"item.create.precision_mechanism": "精密构件",
|
||||
"item.create.propeller": "扇叶",
|
||||
"item.create.raw_zinc": "UNLOCALIZED: Raw Zinc",
|
||||
"item.create.raw_zinc": "粗锌",
|
||||
"item.create.red_sand_paper": "红沙砂纸",
|
||||
"item.create.refined_radiance": "光辉石",
|
||||
"item.create.rose_quartz": "玫瑰石英",
|
||||
|
@ -986,10 +986,10 @@
|
|||
"create.gui.assembly.exception": "无法组装该装置:",
|
||||
"create.gui.assembly.exception.unmovableBlock": "无法移动的方块:(%4$s)位于 [%1$s,%2$s,%3$s]",
|
||||
"create.gui.assembly.exception.chunkNotLoaded": "位于 [%1$s,%2$s,%3$s] 的方块未处于加载区块",
|
||||
"create.gui.assembly.exception.structureTooLarge": "装置中的方块数量过多。",
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "活塞加装的活塞杆数量过多。",
|
||||
"create.gui.assembly.exception.structureTooLarge": "装置中的方块数量过多。\n配置的最大值为:%1$s",
|
||||
"create.gui.assembly.exception.tooManyPistonPoles": "活塞加装的活塞杆数量过多。\n配置的最大值为:%1$s",
|
||||
"create.gui.assembly.exception.noPistonPoles": "活塞缺失部分活塞杆",
|
||||
"create.gui.assembly.exception.not_enough_sails": "相接的结构所包含的类风帆方块的数量不足。%1$s",
|
||||
"create.gui.assembly.exception.not_enough_sails": "相接的结构所包含的类风帆方块的数量不足:%1$s。\n至少需要 %2$s",
|
||||
"create.gui.gauge.info_header": "仪表信息:",
|
||||
"create.gui.speedometer.title": "旋转速度",
|
||||
"create.gui.stressometer.title": "网络应力",
|
||||
|
@ -1035,7 +1035,7 @@
|
|||
"create.schematicAndQuill.fallbackName": "我的蓝图",
|
||||
"create.schematicAndQuill.saved": "另存为%1$s",
|
||||
|
||||
"create.schematic.invalid": "[!] 无效的项目",
|
||||
"create.schematic.invalid": "[!] 无效的物品 - 使用蓝图桌来替换",
|
||||
"create.schematic.position": "位置",
|
||||
"create.schematic.rotation": "旋转",
|
||||
"create.schematic.rotation.none": "无",
|
||||
|
@ -1078,7 +1078,7 @@
|
|||
"create.schematic.tool.flip.description.3": "",
|
||||
|
||||
"create.schematics.synchronizing": "正在同步..",
|
||||
"create.schematics.uploadTooLarge": "你的蓝图太大",
|
||||
"create.schematics.uploadTooLarge": "你的蓝图超出了服务器指定的限制。",
|
||||
"create.schematics.maxAllowedSize": "允许的最大蓝图文件大小为:",
|
||||
|
||||
"create.gui.schematicTable.refresh": "刷新文件",
|
||||
|
@ -1104,7 +1104,7 @@
|
|||
"create.gui.schematicannon.option.skipTileEntities": "保护存储方块",
|
||||
"create.gui.schematicannon.slot.gunpowder": "向蓝图加农炮添加火药以提供动力",
|
||||
"create.gui.schematicannon.slot.listPrinter": "在此处放置书以打印蓝图所需的材料清单",
|
||||
"create.gui.schematicannon.slot.schematic": "在此处添加你的蓝图,务必确保其已经被部署在了特点位置",
|
||||
"create.gui.schematicannon.slot.schematic": "在此处添加你的蓝图,务必确保其已经被部署在了特定位置",
|
||||
"create.gui.schematicannon.option.skipMissing.description": "如果缺失材料,蓝图加农炮将忽略当前缺失材料并且使用其他已有材料继续工作",
|
||||
"create.gui.schematicannon.option.skipTileEntities.description": "蓝图将避免更换存储方块,如箱子。",
|
||||
"create.gui.schematicannon.option.dontReplaceSolid.description": "蓝图加农炮将不会替换工作范围内的任何固体方块。",
|
||||
|
@ -1131,7 +1131,7 @@
|
|||
"create.schematicannon.status.schematicExpired": "蓝图文件已过期",
|
||||
|
||||
"create.materialChecklist": "材料清单",
|
||||
"create.materialChecklist.blocksNotLoaded": "*免责声明* ",
|
||||
"create.materialChecklist.blocksNotLoaded": "*免责声明*\n\n由于相关区块没有被加载,材料列表可能不准确。",
|
||||
|
||||
"create.gui.filter.deny_list": "黑名单",
|
||||
"create.gui.filter.deny_list.description": "只通过不在黑名单中的物品,如果黑名单为空,所有物品都可以通过",
|
||||
|
@ -1338,7 +1338,7 @@
|
|||
"create.subtitle.mechanical_press_activation_belt": "辊压机:撞击传送带",
|
||||
"create.subtitle.fwoomp": "土豆加农炮:发射",
|
||||
"create.subtitle.worldshaper_place": "环境塑型器:放置方块",
|
||||
"create.subtitle.sanding_long": "UNLOCALIZED: Sanding noises",
|
||||
"create.subtitle.sanding_long": "打磨噪音",
|
||||
"create.subtitle.crushing_1": "磨碎声",
|
||||
"create.subtitle.depot_slide": "物品:滑入",
|
||||
"create.subtitle.saw_activate_stone": "动力锯:切割",
|
||||
|
@ -1351,7 +1351,7 @@
|
|||
"create.subtitle.controller_put": "遥控器:放进讲台",
|
||||
"create.subtitle.cranking": "手摇曲柄:转动",
|
||||
"create.subtitle.wrench_remove": "组件:被破坏",
|
||||
"create.subtitle.sanding_short": "UNLOCALIZED: Sanding noises",
|
||||
"create.subtitle.sanding_short": "打磨噪音",
|
||||
"create.subtitle.cogs": "齿轮:嘎吱作响",
|
||||
"create.subtitle.slime_added": "粘液:挤碎声",
|
||||
"create.subtitle.wrench_rotate": "扳手:拧动",
|
||||
|
@ -1602,10 +1602,10 @@
|
|||
"item.create.minecart_coupling.tooltip.condition1": "作用与矿车时",
|
||||
"item.create.minecart_coupling.tooltip.behaviour1": "将两个矿车耦合在一起,在移动时将它们保持_恒定的距离_。",
|
||||
|
||||
"item.create.experience_nugget.tooltip": "UNLOCALIZED: NUGGET OF EXPERIENCE",
|
||||
"item.create.experience_nugget.tooltip.summary": "UNLOCALIZED: _Ding!_ A speck of _inspiration_ from your fantastic inventions.",
|
||||
"item.create.experience_nugget.tooltip.condition1": "UNLOCALIZED: When Used",
|
||||
"item.create.experience_nugget.tooltip.behaviour1": "UNLOCALIZED: _Redeems_ _Experience_ points contained within.",
|
||||
"item.create.experience_nugget.tooltip": "经验颗粒",
|
||||
"item.create.experience_nugget.tooltip.summary": "_叮!_从你的奇妙发明中汲取_灵感_",
|
||||
"item.create.experience_nugget.tooltip.condition1": "当使用时",
|
||||
"item.create.experience_nugget.tooltip.behaviour1": "_吸收_其中包含的_经验值_。",
|
||||
|
||||
"block.create.peculiar_bell.tooltip": "奇异钟",
|
||||
"block.create.peculiar_bell.tooltip.summary": "装饰用的_黄铜质钟_。放在_灵魂火_的正上方可能会产生意料之外的后果......",
|
||||
|
@ -1824,10 +1824,10 @@
|
|||
"create.ponder.cogwheel.text_1": "齿轮会将动力传递至临近的齿轮",
|
||||
"create.ponder.cogwheel.text_2": "以此方式连接的齿轮,旋转方向相反",
|
||||
|
||||
"create.ponder.cogwheel_casing.header": "UNLOCALIZED: Encasing Cogwheels",
|
||||
"create.ponder.cogwheel_casing.text_1": "UNLOCALIZED: Brass or Andesite Casing can be used to decorate Cogwheels",
|
||||
"create.ponder.cogwheel_casing.text_2": "UNLOCALIZED: Components added after encasing will not connect to the shaft outputs",
|
||||
"create.ponder.cogwheel_casing.text_3": "UNLOCALIZED: The Wrench can be used to toggle connections",
|
||||
"create.ponder.cogwheel_casing.header": "装壳齿轮",
|
||||
"create.ponder.cogwheel_casing.text_1": "黄铜机壳或安山机壳可用于装饰齿轮",
|
||||
"create.ponder.cogwheel_casing.text_2": "在装壳后添加的组件将不会与传动轴相连",
|
||||
"create.ponder.cogwheel_casing.text_3": "扳手可用于切换连接",
|
||||
|
||||
"create.ponder.creative_fluid_tank.header": "创造流体储罐",
|
||||
"create.ponder.creative_fluid_tank.text_1": "创造流体储罐可以提供无限量的流体",
|
||||
|
@ -2049,16 +2049,16 @@
|
|||
"create.ponder.item_drain.text_4": "...物品将会经过分液池顶部,并在此过程中将其包含的液体排入分液池内",
|
||||
"create.ponder.item_drain.text_5": "流体管道可以从分液池中抽取液体",
|
||||
|
||||
"create.ponder.item_vault_sizes.header": "UNLOCALIZED: Dimensions of an Item Vault",
|
||||
"create.ponder.item_vault_sizes.text_1": "UNLOCALIZED: Item Vaults can be combined to increase the total capacity",
|
||||
"create.ponder.item_vault_sizes.text_2": "UNLOCALIZED: Their base square can be up to 3 blocks wide...",
|
||||
"create.ponder.item_vault_sizes.text_3": "UNLOCALIZED: ...and grow in length up to 3x their diameter",
|
||||
"create.ponder.item_vault_sizes.header": "物品保险库的尺寸",
|
||||
"create.ponder.item_vault_sizes.text_1": "可以组合物品保险库以增加总容量",
|
||||
"create.ponder.item_vault_sizes.text_2": "它们的直径最多可以有 3 个方块宽……",
|
||||
"create.ponder.item_vault_sizes.text_3": "……长度最多为直径的 3 倍",
|
||||
|
||||
"create.ponder.item_vault_storage.header": "UNLOCALIZED: Storing Items in Vaults",
|
||||
"create.ponder.item_vault_storage.text_1": "UNLOCALIZED: Item Vaults can be used to store large amounts of items",
|
||||
"create.ponder.item_vault_storage.text_2": "UNLOCALIZED: However, contents cannot be added or taken manually",
|
||||
"create.ponder.item_vault_storage.text_3": "UNLOCALIZED: Any components for item transfer can both insert...",
|
||||
"create.ponder.item_vault_storage.text_4": "UNLOCALIZED: ...and take contents from this container",
|
||||
"create.ponder.item_vault_storage.header": "在保险库中存储物品",
|
||||
"create.ponder.item_vault_storage.text_1": "物品保险库可用于存储大量物品",
|
||||
"create.ponder.item_vault_storage.text_2": "但是,不能手动添加或获取物品",
|
||||
"create.ponder.item_vault_storage.text_3": "任何用于物品传输的组件都可以用于添加……",
|
||||
"create.ponder.item_vault_storage.text_4": "……和从该容器中取出物品",
|
||||
|
||||
"create.ponder.large_cogwheel.header": "使用大齿轮传递旋转力",
|
||||
"create.ponder.large_cogwheel.text_1": "大齿轮可以以特定的角度相互连接",
|
||||
|
@ -2263,17 +2263,17 @@
|
|||
"create.ponder.powered_toggle_latch.text_3": "...开启或者是关闭",
|
||||
"create.ponder.powered_toggle_latch.text_4": "你也可以手动切换其状态",
|
||||
|
||||
"create.ponder.pulse_extender.header": "UNLOCALIZED: Controlling signals using Pulse Extenders",
|
||||
"create.ponder.pulse_extender.text_1": "UNLOCALIZED: Pulse Extenders can lengthen a signal passing through",
|
||||
"create.ponder.pulse_extender.text_2": "UNLOCALIZED: They activate after a short delay...",
|
||||
"create.ponder.pulse_extender.text_3": "UNLOCALIZED: ...and cool down for the configured duration",
|
||||
"create.ponder.pulse_extender.text_4": "UNLOCALIZED: Using the mouse wheel, the discharge time can be configured",
|
||||
"create.ponder.pulse_extender.text_5": "UNLOCALIZED: The configured duration can range up to 30 minutes",
|
||||
"create.ponder.pulse_extender.header": "使用脉冲延长器控制信号",
|
||||
"create.ponder.pulse_extender.text_1": "脉冲延长器可以延长通过的信号",
|
||||
"create.ponder.pulse_extender.text_2": "它会在短暂延迟后激活……",
|
||||
"create.ponder.pulse_extender.text_3": "……并在配置的持续时间后取消激活",
|
||||
"create.ponder.pulse_extender.text_4": "通过鼠标滚轮,可以配置持续时间",
|
||||
"create.ponder.pulse_extender.text_5": "配置的持续时间最长可达 30 分钟",
|
||||
|
||||
"create.ponder.pulse_repeater.header": "使用脉冲中继器控制信号",
|
||||
"create.ponder.pulse_repeater.text_1": "脉冲中继器会将所有通入的红石信号缩减为一次脉冲",
|
||||
"create.ponder.pulse_repeater.text_2": "UNLOCALIZED: Using the mouse wheel, the charge time can be configured",
|
||||
"create.ponder.pulse_repeater.text_3": "UNLOCALIZED: Configured delays can range up to 30 minutes",
|
||||
"create.ponder.pulse_repeater.text_2": "通过鼠标滚轮,可以配置充能时间",
|
||||
"create.ponder.pulse_repeater.text_3": "配置的延迟范围最长可达 30 分钟",
|
||||
|
||||
"create.ponder.radial_chassis.header": "使用旋转底盘黏着方块",
|
||||
"create.ponder.radial_chassis.text_1": "同一行上的旋转底盘会相互连接在一起",
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:asurine",
|
||||
"create:crimsite",
|
||||
"create:limestone",
|
||||
"create:ochrum",
|
||||
"create:scoria",
|
||||
"create:scorchia",
|
||||
"create:veridium"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:asurine",
|
||||
"create:crimsite",
|
||||
"create:limestone",
|
||||
"create:ochrum",
|
||||
"create:scoria",
|
||||
"create:scorchia",
|
||||
"create:veridium"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:asurine",
|
||||
"create:crimsite",
|
||||
"create:limestone",
|
||||
"create:ochrum",
|
||||
"create:scoria",
|
||||
"create:scorchia",
|
||||
"create:veridium"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"create:asurine",
|
||||
"create:crimsite",
|
||||
"create:limestone",
|
||||
"create:ochrum",
|
||||
"create:scoria",
|
||||
"create:scorchia",
|
||||
"create:veridium"
|
||||
]
|
||||
}
|
|
@ -294,20 +294,20 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<EncasedShaftBlock> ANDESITE_ENCASED_SHAFT =
|
||||
REGISTRATE.block("andesite_encased_shaft", EncasedShaftBlock::andesite)
|
||||
.transform(BuilderTransformers.encasedShaft("andesite", AllSpriteShifts.ANDESITE_CASING))
|
||||
.transform(BuilderTransformers.encasedShaft("andesite", () -> AllSpriteShifts.ANDESITE_CASING))
|
||||
.transform(axeOrPickaxe())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<EncasedShaftBlock> BRASS_ENCASED_SHAFT =
|
||||
REGISTRATE.block("brass_encased_shaft", EncasedShaftBlock::brass)
|
||||
.transform(BuilderTransformers.encasedShaft("brass", AllSpriteShifts.BRASS_CASING))
|
||||
.transform(BuilderTransformers.encasedShaft("brass", () -> AllSpriteShifts.BRASS_CASING))
|
||||
.transform(axeOrPickaxe())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<EncasedCogwheelBlock> ANDESITE_ENCASED_COGWHEEL =
|
||||
REGISTRATE.block("andesite_encased_cogwheel", p -> EncasedCogwheelBlock.andesite(false, p))
|
||||
.transform(BuilderTransformers.encasedCogwheel("andesite", AllSpriteShifts.ANDESITE_CASING))
|
||||
.onRegister(CreateRegistrate.connectedTextures(new EncasedCogCTBehaviour(AllSpriteShifts.ANDESITE_CASING,
|
||||
.transform(BuilderTransformers.encasedCogwheel("andesite", () -> AllSpriteShifts.ANDESITE_CASING))
|
||||
.onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(AllSpriteShifts.ANDESITE_CASING,
|
||||
Couple.create(AllSpriteShifts.ANDESITE_ENCASED_COGWHEEL_SIDE,
|
||||
AllSpriteShifts.ANDESITE_ENCASED_COGWHEEL_OTHERSIDE))))
|
||||
.transform(axeOrPickaxe())
|
||||
|
@ -315,8 +315,8 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<EncasedCogwheelBlock> BRASS_ENCASED_COGWHEEL =
|
||||
REGISTRATE.block("brass_encased_cogwheel", p -> EncasedCogwheelBlock.brass(false, p))
|
||||
.transform(BuilderTransformers.encasedCogwheel("brass", AllSpriteShifts.BRASS_CASING))
|
||||
.onRegister(CreateRegistrate.connectedTextures(new EncasedCogCTBehaviour(AllSpriteShifts.BRASS_CASING,
|
||||
.transform(BuilderTransformers.encasedCogwheel("brass", () -> AllSpriteShifts.BRASS_CASING))
|
||||
.onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCogCTBehaviour(AllSpriteShifts.BRASS_CASING,
|
||||
Couple.create(AllSpriteShifts.BRASS_ENCASED_COGWHEEL_SIDE,
|
||||
AllSpriteShifts.BRASS_ENCASED_COGWHEEL_OTHERSIDE))))
|
||||
.transform(axeOrPickaxe())
|
||||
|
@ -324,13 +324,13 @@ public class AllBlocks {
|
|||
|
||||
public static final BlockEntry<EncasedCogwheelBlock> ANDESITE_ENCASED_LARGE_COGWHEEL =
|
||||
REGISTRATE.block("andesite_encased_large_cogwheel", p -> EncasedCogwheelBlock.andesite(true, p))
|
||||
.transform(BuilderTransformers.encasedLargeCogwheel("andesite", AllSpriteShifts.ANDESITE_CASING))
|
||||
.transform(BuilderTransformers.encasedLargeCogwheel("andesite", () -> AllSpriteShifts.ANDESITE_CASING))
|
||||
.transform(axeOrPickaxe())
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<EncasedCogwheelBlock> BRASS_ENCASED_LARGE_COGWHEEL =
|
||||
REGISTRATE.block("brass_encased_large_cogwheel", p -> EncasedCogwheelBlock.brass(true, p))
|
||||
.transform(BuilderTransformers.encasedLargeCogwheel("brass", AllSpriteShifts.BRASS_CASING))
|
||||
.transform(BuilderTransformers.encasedLargeCogwheel("brass", () -> AllSpriteShifts.BRASS_CASING))
|
||||
.transform(axeOrPickaxe())
|
||||
.register();
|
||||
|
||||
|
@ -339,7 +339,7 @@ public class AllBlocks {
|
|||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(BlockStressDefaults.setNoImpact())
|
||||
.transform(axeOrPickaxe())
|
||||
.onRegister(CreateRegistrate.connectedTextures(new EncasedCTBehaviour(AllSpriteShifts.ANDESITE_CASING)))
|
||||
.onRegister(CreateRegistrate.connectedTextures(() -> new EncasedCTBehaviour(AllSpriteShifts.ANDESITE_CASING)))
|
||||
.onRegister(CreateRegistrate.casingConnectivity((block, cc) -> cc.make(block, AllSpriteShifts.ANDESITE_CASING,
|
||||
(s, f) -> f.getAxis() == s.getValue(GearboxBlock.AXIS))))
|
||||
.blockstate((c, p) -> axisBlock(c, p, $ -> AssetLookup.partialBaseModel(c, p), true))
|
||||
|
@ -668,7 +668,7 @@ public class AllBlocks {
|
|||
.properties(BlockBehaviour.Properties::noOcclusion)
|
||||
.transform(axeOrPickaxe())
|
||||
.blockstate(BlockStateGen.encasedPipe())
|
||||
.onRegister(CreateRegistrate.connectedTextures(new EncasedCTBehaviour(AllSpriteShifts.COPPER_CASING)))
|
||||
.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::new))
|
||||
|
@ -962,7 +962,7 @@ public class AllBlocks {
|
|||
.transform(axeOrPickaxe())
|
||||
.tag(AllBlockTags.SAFE_NBT.tag)
|
||||
.blockstate(BlockStateGen.linearChassis())
|
||||
.onRegister(connectedTextures(new ChassisCTBehaviour()))
|
||||
.onRegister(connectedTextures(ChassisCTBehaviour::new))
|
||||
.lang("Linear Chassis")
|
||||
.simpleItem()
|
||||
.register();
|
||||
|
@ -973,7 +973,7 @@ public class AllBlocks {
|
|||
.transform(axeOrPickaxe())
|
||||
.tag(AllBlockTags.SAFE_NBT.tag)
|
||||
.blockstate(BlockStateGen.linearChassis())
|
||||
.onRegister(connectedTextures(new ChassisCTBehaviour()))
|
||||
.onRegister(connectedTextures(ChassisCTBehaviour::new))
|
||||
.simpleItem()
|
||||
.register();
|
||||
|
||||
|
@ -1146,27 +1146,27 @@ public class AllBlocks {
|
|||
});
|
||||
|
||||
public static final BlockEntry<CasingBlock> ANDESITE_CASING = REGISTRATE.block("andesite_casing", CasingBlock::new)
|
||||
.transform(BuilderTransformers.casing(AllSpriteShifts.ANDESITE_CASING))
|
||||
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.ANDESITE_CASING))
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<CasingBlock> BRASS_CASING = REGISTRATE.block("brass_casing", CasingBlock::new)
|
||||
.transform(BuilderTransformers.casing(AllSpriteShifts.BRASS_CASING))
|
||||
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.BRASS_CASING))
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<CasingBlock> COPPER_CASING = REGISTRATE.block("copper_casing", CasingBlock::new)
|
||||
.transform(BuilderTransformers.casing(AllSpriteShifts.COPPER_CASING))
|
||||
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.COPPER_CASING))
|
||||
.properties(p -> p.sound(SoundType.COPPER))
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<CasingBlock> SHADOW_STEEL_CASING =
|
||||
REGISTRATE.block("shadow_steel_casing", CasingBlock::deprecated)
|
||||
.transform(BuilderTransformers.casing(AllSpriteShifts.SHADOW_STEEL_CASING))
|
||||
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.SHADOW_STEEL_CASING))
|
||||
.lang("Shadow Casing")
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<CasingBlock> REFINED_RADIANCE_CASING =
|
||||
REGISTRATE.block("refined_radiance_casing", CasingBlock::deprecated)
|
||||
.transform(BuilderTransformers.casing(AllSpriteShifts.REFINED_RADIANCE_CASING))
|
||||
.transform(BuilderTransformers.casing(() -> AllSpriteShifts.REFINED_RADIANCE_CASING))
|
||||
.properties(p -> p.lightLevel($ -> 12))
|
||||
.lang("Radiant Casing")
|
||||
.register();
|
||||
|
@ -1178,7 +1178,7 @@ public class AllBlocks {
|
|||
.transform(axeOrPickaxe())
|
||||
.blockstate(BlockStateGen.horizontalBlockProvider(true))
|
||||
.transform(BlockStressDefaults.setImpact(2.0))
|
||||
.onRegister(CreateRegistrate.connectedTextures(new CrafterCTBehaviour()))
|
||||
.onRegister(CreateRegistrate.connectedTextures(CrafterCTBehaviour::new))
|
||||
.addLayer(() -> RenderType::cutoutMipped)
|
||||
.item()
|
||||
.transform(customItemModel())
|
||||
|
@ -1257,7 +1257,7 @@ public class AllBlocks {
|
|||
.modelFile(AssetLookup.standardModel(c, p))
|
||||
.rotationY(s.getValue(ItemVaultBlock.HORIZONTAL_AXIS) == Axis.X ? 90 : 0)
|
||||
.build()))
|
||||
.onRegister(connectedTextures(new ItemVaultCTBehaviour()))
|
||||
.onRegister(connectedTextures(ItemVaultCTBehaviour::new))
|
||||
.item(ItemVaultItem::new)
|
||||
.build()
|
||||
.register();
|
||||
|
@ -1312,7 +1312,7 @@ public class AllBlocks {
|
|||
public static final BlockEntry<BrassTunnelBlock> BRASS_TUNNEL =
|
||||
REGISTRATE.block("brass_tunnel", BrassTunnelBlock::new)
|
||||
.transform(BuilderTransformers.beltTunnel("brass", Create.asResource("block/brass_block")))
|
||||
.onRegister(connectedTextures(new BrassTunnelCTBehaviour()))
|
||||
.onRegister(connectedTextures(BrassTunnelCTBehaviour::new))
|
||||
.register();
|
||||
|
||||
public static final BlockEntry<ContentObserverBlock> CONTENT_OBSERVER =
|
||||
|
|
|
@ -40,7 +40,7 @@ public class AllEntityTypes {
|
|||
|
||||
public static final EntityEntry<SuperGlueEntity> SUPER_GLUE =
|
||||
register("super_glue", SuperGlueEntity::new, () -> SuperGlueRenderer::new, MobCategory.MISC, 10,
|
||||
Integer.MAX_VALUE, false, true, SuperGlueEntity::build).instance(() -> GlueInstance::new)
|
||||
Integer.MAX_VALUE, false, true, SuperGlueEntity::build).instance(() -> GlueInstance::new, false)
|
||||
.register();
|
||||
|
||||
public static final EntityEntry<BlueprintEntity> CRAFTING_BLUEPRINT =
|
||||
|
|
|
@ -10,7 +10,6 @@ import java.util.IdentityHashMap;
|
|||
import java.util.Map;
|
||||
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShiftEntry;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShifter;
|
||||
import com.simibubi.create.foundation.block.connected.CTSpriteShifter.CTType;
|
||||
import com.simibubi.create.foundation.block.render.SpriteShiftEntry;
|
||||
import com.simibubi.create.foundation.block.render.SpriteShifter;
|
||||
|
@ -21,7 +20,7 @@ import net.minecraft.world.level.block.state.properties.WoodType;
|
|||
|
||||
public class AllSpriteShifts {
|
||||
|
||||
static final Map<WoodType, CTSpriteShiftEntry> WOODEN_WINDOWS = new IdentityHashMap<>();
|
||||
private static final Map<WoodType, CTSpriteShiftEntry> WOODEN_WINDOWS = new IdentityHashMap<>();
|
||||
|
||||
public static final Map<DyeColor, SpriteShiftEntry> DYED_BELTS = new IdentityHashMap<>(),
|
||||
DYED_OFFSET_BELTS = new IdentityHashMap<>(), DYED_DIAGONAL_BELTS = new IdentityHashMap<>();
|
||||
|
@ -33,22 +32,22 @@ public class AllSpriteShifts {
|
|||
ORNATE_IRON_WINDOW = vertical("palettes/ornate_iron_window");
|
||||
|
||||
public static final CTSpriteShiftEntry CRAFTER_FRONT = getCT(CTType.OMNIDIRECTIONAL, "crafter_top", "brass_casing"),
|
||||
CRAFTER_SIDE = getCT(CTType.VERTICAL, "crafter_side"),
|
||||
CRAFTER_OTHERSIDE = getCT(CTType.HORIZONTAL, "crafter_side"),
|
||||
ANDESITE_ENCASED_COGWHEEL_SIDE = getCT(CTType.VERTICAL, "andesite_encased_cogwheel_side"),
|
||||
ANDESITE_ENCASED_COGWHEEL_OTHERSIDE = getCT(CTType.HORIZONTAL, "andesite_encased_cogwheel_side"),
|
||||
BRASS_ENCASED_COGWHEEL_SIDE = getCT(CTType.VERTICAL, "brass_encased_cogwheel_side"),
|
||||
BRASS_ENCASED_COGWHEEL_OTHERSIDE = getCT(CTType.HORIZONTAL, "brass_encased_cogwheel_side");
|
||||
CRAFTER_SIDE = vertical("crafter_side"),
|
||||
CRAFTER_OTHERSIDE = horizontal("crafter_side"),
|
||||
ANDESITE_ENCASED_COGWHEEL_SIDE = vertical("andesite_encased_cogwheel_side"),
|
||||
ANDESITE_ENCASED_COGWHEEL_OTHERSIDE = horizontal("andesite_encased_cogwheel_side"),
|
||||
BRASS_ENCASED_COGWHEEL_SIDE = vertical("brass_encased_cogwheel_side"),
|
||||
BRASS_ENCASED_COGWHEEL_OTHERSIDE = horizontal("brass_encased_cogwheel_side");
|
||||
|
||||
public static final CTSpriteShiftEntry ANDESITE_CASING = omni("andesite_casing"),
|
||||
BRASS_CASING = omni("brass_casing"), COPPER_CASING = omni("copper_casing"),
|
||||
SHADOW_STEEL_CASING = omni("shadow_steel_casing"), REFINED_RADIANCE_CASING = omni("refined_radiance_casing"),
|
||||
CREATIVE_CASING = getCT(CTType.CROSS, "creative_casing");
|
||||
|
||||
public static final CTSpriteShiftEntry CHASSIS_SIDE = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_side"),
|
||||
SECONDARY_CHASSIS_SIDE = getCT(CTType.OMNIDIRECTIONAL, "secondary_linear_chassis_side"),
|
||||
CHASSIS = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_end"),
|
||||
CHASSIS_STICKY = getCT(CTType.OMNIDIRECTIONAL, "linear_chassis_end_sticky");
|
||||
public static final CTSpriteShiftEntry CHASSIS_SIDE = omni("linear_chassis_side"),
|
||||
SECONDARY_CHASSIS_SIDE = omni("secondary_linear_chassis_side"),
|
||||
CHASSIS = omni("linear_chassis_end"),
|
||||
CHASSIS_STICKY = omni("linear_chassis_end_sticky");
|
||||
|
||||
public static final CTSpriteShiftEntry BRASS_TUNNEL_TOP = vertical("brass_tunnel_top"),
|
||||
FLUID_TANK = getCT(CTType.CROSS, "fluid_tank"),
|
||||
|
@ -67,14 +66,6 @@ public class AllSpriteShifts {
|
|||
populateMaps();
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
public static CTSpriteShiftEntry getWoodenWindow(WoodType woodType) {
|
||||
return WOODEN_WINDOWS.get(woodType);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
private static void populateMaps() {
|
||||
WoodType[] supportedWoodTypes = new WoodType[] { WoodType.OAK, WoodType.SPRUCE, WoodType.BIRCH, WoodType.ACACIA,
|
||||
WoodType.JUNGLE, WoodType.DARK_OAK, WoodType.CRIMSON, WoodType.WARPED };
|
||||
|
@ -90,24 +81,30 @@ public class AllSpriteShifts {
|
|||
}
|
||||
}
|
||||
|
||||
static Couple<CTSpriteShiftEntry> vault(String name) {
|
||||
private static Couple<CTSpriteShiftEntry> vault(String name) {
|
||||
final String prefixed = "vault_" + name;
|
||||
return Couple
|
||||
.createWithContext(b -> getCT(CTSpriteShifter.CTType.CROSS, prefixed, b ? prefixed : prefixed + "_large"));
|
||||
.createWithContext(b -> getCT(CTType.CROSS, prefixed, b ? prefixed : prefixed + "_large"));
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
static CTSpriteShiftEntry omni(String name) {
|
||||
private static CTSpriteShiftEntry omni(String name) {
|
||||
return getCT(OMNIDIRECTIONAL, name);
|
||||
}
|
||||
|
||||
static CTSpriteShiftEntry vertical(String name) {
|
||||
return getCT(VERTICAL, name);
|
||||
}
|
||||
|
||||
static CTSpriteShiftEntry horizontal(String name) {
|
||||
private static CTSpriteShiftEntry horizontal(String name) {
|
||||
return getCT(HORIZONTAL, name);
|
||||
}
|
||||
|
||||
private static CTSpriteShiftEntry vertical(String name) {
|
||||
return getCT(VERTICAL, name);
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
public static CTSpriteShiftEntry getWoodenWindow(WoodType woodType) {
|
||||
return WOODEN_WINDOWS.get(woodType);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@ import com.simibubi.create.content.contraptions.components.actors.DrillRenderer;
|
|||
import com.simibubi.create.content.contraptions.components.actors.DrillTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.actors.HarvesterRenderer;
|
||||
import com.simibubi.create.content.contraptions.components.actors.HarvesterTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.actors.PSIInstance;
|
||||
import com.simibubi.create.content.contraptions.components.actors.PortableFluidInterfaceTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.actors.PortableItemInterfaceTileEntity;
|
||||
import com.simibubi.create.content.contraptions.components.actors.PortableStorageInterfaceRenderer;
|
||||
|
@ -191,56 +192,56 @@ public class AllTileEntities {
|
|||
// Kinetics
|
||||
public static final BlockEntityEntry<BracketedKineticTileEntity> BRACKETED_KINETIC = Create.registrate()
|
||||
.tileEntity("simple_kinetic", BracketedKineticTileEntity::new)
|
||||
.instance(() -> BracketedKineticTileInstance::new)
|
||||
.instance(() -> BracketedKineticTileInstance::new, false)
|
||||
.validBlocks(AllBlocks.SHAFT, AllBlocks.COGWHEEL, AllBlocks.LARGE_COGWHEEL)
|
||||
.renderer(() -> BracketedKineticTileRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<CreativeMotorTileEntity> MOTOR = Create.registrate()
|
||||
.tileEntity("motor", CreativeMotorTileEntity::new)
|
||||
.instance(() -> HalfShaftInstance::new)
|
||||
.instance(() -> HalfShaftInstance::new, false)
|
||||
.validBlocks(AllBlocks.CREATIVE_MOTOR)
|
||||
.renderer(() -> CreativeMotorRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<GearboxTileEntity> GEARBOX = Create.registrate()
|
||||
.tileEntity("gearbox", GearboxTileEntity::new)
|
||||
.instance(() -> GearboxInstance::new)
|
||||
.instance(() -> GearboxInstance::new, false)
|
||||
.validBlocks(AllBlocks.GEARBOX)
|
||||
.renderer(() -> GearboxRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<KineticTileEntity> ENCASED_SHAFT = Create.registrate()
|
||||
.tileEntity("encased_shaft", KineticTileEntity::new)
|
||||
.instance(() -> ShaftInstance::new)
|
||||
.instance(() -> ShaftInstance::new, false)
|
||||
.validBlocks(AllBlocks.ANDESITE_ENCASED_SHAFT, AllBlocks.BRASS_ENCASED_SHAFT, AllBlocks.ENCASED_CHAIN_DRIVE)
|
||||
.renderer(() -> ShaftRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<SimpleKineticTileEntity> ENCASED_COGWHEEL = Create.registrate()
|
||||
.tileEntity("encased_cogwheel", SimpleKineticTileEntity::new)
|
||||
.instance(() -> EncasedCogInstance::small)
|
||||
.instance(() -> EncasedCogInstance::small, false)
|
||||
.validBlocks(AllBlocks.ANDESITE_ENCASED_COGWHEEL, AllBlocks.BRASS_ENCASED_COGWHEEL)
|
||||
.renderer(() -> EncasedCogRenderer::small)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<SimpleKineticTileEntity> ENCASED_LARGE_COGWHEEL = Create.registrate()
|
||||
.tileEntity("encased_large_cogwheel", SimpleKineticTileEntity::new)
|
||||
.instance(() -> EncasedCogInstance::large)
|
||||
.instance(() -> EncasedCogInstance::large, false)
|
||||
.validBlocks(AllBlocks.ANDESITE_ENCASED_LARGE_COGWHEEL, AllBlocks.BRASS_ENCASED_LARGE_COGWHEEL)
|
||||
.renderer(() -> EncasedCogRenderer::large)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<AdjustablePulleyTileEntity> ADJUSTABLE_PULLEY = Create.registrate()
|
||||
.tileEntity("adjustable_pulley", AdjustablePulleyTileEntity::new)
|
||||
.instance(() -> ShaftInstance::new)
|
||||
.instance(() -> ShaftInstance::new, false)
|
||||
.validBlocks(AllBlocks.ADJUSTABLE_CHAIN_GEARSHIFT)
|
||||
.renderer(() -> ShaftRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<EncasedFanTileEntity> ENCASED_FAN = Create.registrate()
|
||||
.tileEntity("encased_fan", EncasedFanTileEntity::new)
|
||||
.instance(() -> FanInstance::new)
|
||||
.instance(() -> FanInstance::new, false)
|
||||
.validBlocks(AllBlocks.ENCASED_FAN)
|
||||
.renderer(() -> EncasedFanRenderer::new)
|
||||
.register();
|
||||
|
@ -253,21 +254,21 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<ClutchTileEntity> CLUTCH = Create.registrate()
|
||||
.tileEntity("clutch", ClutchTileEntity::new)
|
||||
.instance(() -> SplitShaftInstance::new)
|
||||
.instance(() -> SplitShaftInstance::new, false)
|
||||
.validBlocks(AllBlocks.CLUTCH)
|
||||
.renderer(() -> SplitShaftRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<GearshiftTileEntity> GEARSHIFT = Create.registrate()
|
||||
.tileEntity("gearshift", GearshiftTileEntity::new)
|
||||
.instance(() -> SplitShaftInstance::new)
|
||||
.instance(() -> SplitShaftInstance::new, false)
|
||||
.validBlocks(AllBlocks.GEARSHIFT)
|
||||
.renderer(() -> SplitShaftRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<TurntableTileEntity> TURNTABLE = Create.registrate()
|
||||
.tileEntity("turntable", TurntableTileEntity::new)
|
||||
.instance(() -> SingleRotatingInstance::new)
|
||||
.instance(() -> SingleRotatingInstance::new, false)
|
||||
.validBlocks(AllBlocks.TURNTABLE)
|
||||
.renderer(() -> KineticTileEntityRenderer::new)
|
||||
.register();
|
||||
|
@ -289,7 +290,7 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<GantryShaftTileEntity> GANTRY_SHAFT = Create.registrate()
|
||||
.tileEntity("gantry_shaft", GantryShaftTileEntity::new)
|
||||
.instance(() -> SingleRotatingInstance::new)
|
||||
.instance(() -> SingleRotatingInstance::new, false)
|
||||
.validBlocks(AllBlocks.GANTRY_SHAFT)
|
||||
.renderer(() -> KineticTileEntityRenderer::new)
|
||||
.register();
|
||||
|
@ -370,7 +371,7 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<BeltTileEntity> BELT = Create.registrate()
|
||||
.tileEntity("belt", BeltTileEntity::new)
|
||||
.instance(() -> BeltInstance::new)
|
||||
.instance(() -> BeltInstance::new, BeltTileEntity::shouldRenderNormally)
|
||||
.validBlocks(AllBlocks.BELT)
|
||||
.renderer(() -> BeltRenderer::new)
|
||||
.register();
|
||||
|
@ -415,7 +416,7 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<MechanicalPistonTileEntity> MECHANICAL_PISTON = Create.registrate()
|
||||
.tileEntity("mechanical_piston", MechanicalPistonTileEntity::new)
|
||||
.instance(() -> ShaftInstance::new)
|
||||
.instance(() -> ShaftInstance::new, false)
|
||||
.validBlocks(AllBlocks.MECHANICAL_PISTON, AllBlocks.STICKY_MECHANICAL_PISTON)
|
||||
.renderer(() -> MechanicalPistonRenderer::new)
|
||||
.register();
|
||||
|
@ -443,7 +444,7 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<PulleyTileEntity> ROPE_PULLEY = Create.registrate()
|
||||
.tileEntity("rope_pulley", PulleyTileEntity::new)
|
||||
.instance(() -> RopePulleyInstance::new)
|
||||
.instance(() -> RopePulleyInstance::new, false)
|
||||
.validBlocks(AllBlocks.ROPE_PULLEY)
|
||||
.renderer(() -> PulleyRenderer::new)
|
||||
.register();
|
||||
|
@ -456,14 +457,14 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<StickerTileEntity> STICKER = Create.registrate()
|
||||
.tileEntity("sticker", StickerTileEntity::new)
|
||||
.instance(() -> StickerInstance::new)
|
||||
.instance(() -> StickerInstance::new, false)
|
||||
.validBlocks(AllBlocks.STICKER)
|
||||
.renderer(() -> StickerRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<DrillTileEntity> DRILL = Create.registrate()
|
||||
.tileEntity("drill", DrillTileEntity::new)
|
||||
.instance(() -> DrillInstance::new)
|
||||
.instance(() -> DrillInstance::new, false)
|
||||
.validBlocks(AllBlocks.MECHANICAL_DRILL)
|
||||
.renderer(() -> DrillRenderer::new)
|
||||
.register();
|
||||
|
@ -484,40 +485,42 @@ public class AllTileEntities {
|
|||
public static final BlockEntityEntry<PortableItemInterfaceTileEntity> PORTABLE_STORAGE_INTERFACE =
|
||||
Create.registrate()
|
||||
.tileEntity("portable_storage_interface", PortableItemInterfaceTileEntity::new)
|
||||
.instance(() -> PSIInstance::new)
|
||||
.validBlocks(AllBlocks.PORTABLE_STORAGE_INTERFACE)
|
||||
.renderer(() -> PortableStorageInterfaceRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<PortableFluidInterfaceTileEntity> PORTABLE_FLUID_INTERFACE = Create.registrate()
|
||||
.tileEntity("portable_fluid_interface", PortableFluidInterfaceTileEntity::new)
|
||||
.instance(() -> PSIInstance::new)
|
||||
.validBlocks(AllBlocks.PORTABLE_FLUID_INTERFACE)
|
||||
.renderer(() -> PortableStorageInterfaceRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<FlywheelTileEntity> FLYWHEEL = Create.registrate()
|
||||
.tileEntity("flywheel", FlywheelTileEntity::new)
|
||||
.instance(() -> FlyWheelInstance::new)
|
||||
.instance(() -> FlyWheelInstance::new, false)
|
||||
.validBlocks(AllBlocks.FLYWHEEL)
|
||||
.renderer(() -> FlywheelRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<FurnaceEngineTileEntity> FURNACE_ENGINE = Create.registrate()
|
||||
.tileEntity("furnace_engine", FurnaceEngineTileEntity::new)
|
||||
.instance(() -> EngineInstance::new)
|
||||
.instance(() -> EngineInstance::new, false)
|
||||
.validBlocks(AllBlocks.FURNACE_ENGINE)
|
||||
.renderer(() -> EngineRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<MillstoneTileEntity> MILLSTONE = Create.registrate()
|
||||
.tileEntity("millstone", MillstoneTileEntity::new)
|
||||
.instance(() -> MillStoneCogInstance::new)
|
||||
.instance(() -> MillStoneCogInstance::new, false)
|
||||
.validBlocks(AllBlocks.MILLSTONE)
|
||||
.renderer(() -> MillstoneRenderer::new)
|
||||
.register();
|
||||
|
||||
public static final BlockEntityEntry<CrushingWheelTileEntity> CRUSHING_WHEEL = Create.registrate()
|
||||
.tileEntity("crushing_wheel", CrushingWheelTileEntity::new)
|
||||
.instance(() -> CutoutRotatingInstance::new)
|
||||
.instance(() -> CutoutRotatingInstance::new, false)
|
||||
.validBlocks(AllBlocks.CRUSHING_WHEEL)
|
||||
.renderer(() -> KineticTileEntityRenderer::new)
|
||||
.register();
|
||||
|
@ -531,7 +534,7 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<WaterWheelTileEntity> WATER_WHEEL = Create.registrate()
|
||||
.tileEntity("water_wheel", WaterWheelTileEntity::new)
|
||||
.instance(() -> CutoutRotatingInstance::new)
|
||||
.instance(() -> CutoutRotatingInstance::new, false)
|
||||
.validBlocks(AllBlocks.WATER_WHEEL)
|
||||
.renderer(() -> KineticTileEntityRenderer::new)
|
||||
.register();
|
||||
|
@ -578,7 +581,7 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<SequencedGearshiftTileEntity> SEQUENCED_GEARSHIFT = Create.registrate()
|
||||
.tileEntity("sequenced_gearshift", SequencedGearshiftTileEntity::new)
|
||||
.instance(() -> SplitShaftInstance::new)
|
||||
.instance(() -> SplitShaftInstance::new, false)
|
||||
.validBlocks(AllBlocks.SEQUENCED_GEARSHIFT)
|
||||
.renderer(() -> SplitShaftRenderer::new)
|
||||
.register();
|
||||
|
@ -606,7 +609,7 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<AnalogLeverTileEntity> ANALOG_LEVER = Create.registrate()
|
||||
.tileEntity("analog_lever", AnalogLeverTileEntity::new)
|
||||
.instance(() -> AnalogLeverInstance::new)
|
||||
.instance(() -> AnalogLeverInstance::new, false)
|
||||
.validBlocks(AllBlocks.ANALOG_LEVER)
|
||||
.renderer(() -> AnalogLeverRenderer::new)
|
||||
.register();
|
||||
|
@ -672,7 +675,7 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<PulseExtenderTileEntity> PULSE_EXTENDER = Create.registrate()
|
||||
.tileEntity("pulse_extender", PulseExtenderTileEntity::new)
|
||||
.instance(() -> BrassDiodeInstance::new)
|
||||
.instance(() -> BrassDiodeInstance::new, false)
|
||||
.validBlocks(AllBlocks.PULSE_EXTENDER)
|
||||
.renderer(() -> BrassDiodeRenderer::new)
|
||||
.register();
|
||||
|
@ -680,7 +683,7 @@ public class AllTileEntities {
|
|||
public static final BlockEntityEntry<PulseRepeaterTileEntity> PULSE_REPEATER =
|
||||
Create.registrate()
|
||||
.tileEntity("pulse_repeater", PulseRepeaterTileEntity::new)
|
||||
.instance(() -> BrassDiodeInstance::new)
|
||||
.instance(() -> BrassDiodeInstance::new, false)
|
||||
.validBlocks(AllBlocks.PULSE_REPEATER)
|
||||
.renderer(() -> BrassDiodeRenderer::new)
|
||||
.register();
|
||||
|
@ -714,7 +717,7 @@ public class AllTileEntities {
|
|||
|
||||
public static final BlockEntityEntry<ToolboxTileEntity> TOOLBOX = Create.registrate()
|
||||
.tileEntity("toolbox", ToolboxTileEntity::new)
|
||||
.instance(() -> ToolBoxInstance::new)
|
||||
.instance(() -> ToolBoxInstance::new, false)
|
||||
.validBlocks(AllBlocks.TOOLBOXES.toArray())
|
||||
.renderer(() -> ToolboxRenderer::new)
|
||||
.register();
|
||||
|
|
|
@ -30,7 +30,6 @@ 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.utility.ShippedResourcePacks;
|
||||
import com.simibubi.create.foundation.worldgen.AllWorldFeatures;
|
||||
import com.tterrag.registrate.util.NonNullLazyValue;
|
||||
|
||||
|
@ -58,7 +57,7 @@ public class Create {
|
|||
|
||||
public static final String ID = "create";
|
||||
public static final String NAME = "Create";
|
||||
public static final String VERSION = "0.4a";
|
||||
public static final String VERSION = "0.4b";
|
||||
|
||||
public static final Logger LOGGER = LogManager.getLogger();
|
||||
|
||||
|
@ -125,8 +124,6 @@ public class Create {
|
|||
SchematicInstances.register();
|
||||
BuiltinPotatoProjectileTypes.register();
|
||||
|
||||
ShippedResourcePacks.extractFiles("Copper Legacy Pack");
|
||||
|
||||
event.enqueueWork(() -> {
|
||||
AllTriggers.register();
|
||||
SchematicProcessor.register();
|
||||
|
|
|
@ -25,6 +25,7 @@ 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.ModelSwapper;
|
||||
import com.simibubi.create.foundation.utility.ShippedResourcePacks;
|
||||
import com.simibubi.create.foundation.utility.ghost.GhostBlocks;
|
||||
import com.simibubi.create.foundation.utility.outliner.Outliner;
|
||||
|
||||
|
@ -81,6 +82,8 @@ public class CreateClient {
|
|||
BUFFER_CACHE.registerCompartment(SBBContraptionManager.CONTRAPTION, 20);
|
||||
BUFFER_CACHE.registerCompartment(WorldSectionElement.DOC_WORLD_SECTION, 20);
|
||||
|
||||
ShippedResourcePacks.extractFiles("Copper Legacy Pack");
|
||||
|
||||
AllKeys.register();
|
||||
// AllFluids.assignRenderLayers();
|
||||
AllBlockPartials.init();
|
||||
|
|
|
@ -38,4 +38,14 @@ public enum Mods {
|
|||
return Optional.of(toRun.get().get());
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
/**
|
||||
* Simple hook to execute code if a mod is installed
|
||||
* @param toExecute will be executed only if the mod is loaded
|
||||
*/
|
||||
public void executeIfInstalled(Supplier<Runnable> toExecute) {
|
||||
if (isLoaded()) {
|
||||
toExecute.get().run();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -341,11 +341,13 @@ public class CreateJEI implements IModPlugin {
|
|||
}
|
||||
|
||||
public static List<Recipe<?>> findRecipes(Predicate<Recipe<?>> predicate) {
|
||||
return Minecraft.getInstance().level.getRecipeManager()
|
||||
.getRecipes()
|
||||
.stream()
|
||||
.filter(predicate)
|
||||
.collect(Collectors.toList());
|
||||
return Minecraft.getInstance()
|
||||
.getConnection()
|
||||
.getRecipeManager()
|
||||
.getRecipes()
|
||||
.stream()
|
||||
.filter(predicate)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public static List<Recipe<?>> findRecipesByType(RecipeType<?> type) {
|
||||
|
|
|
@ -12,6 +12,6 @@ public class BackHalfShaftInstance extends HalfShaftInstance {
|
|||
|
||||
@Override
|
||||
protected Direction getShaftDirection() {
|
||||
return tile.getBlockState().getValue(BlockStateProperties.FACING).getOpposite();
|
||||
return blockEntity.getBlockState().getValue(BlockStateProperties.FACING).getOpposite();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,6 @@ import java.util.List;
|
|||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.jozufozu.flywheel.api.FlywheelRendered;
|
||||
import com.jozufozu.flywheel.backend.instancing.InstancedRenderDispatcher;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.KineticNetwork;
|
||||
|
@ -49,7 +48,7 @@ import net.minecraftforge.api.distmarker.OnlyIn;
|
|||
import net.minecraftforge.fml.DistExecutor;
|
||||
|
||||
public class KineticTileEntity extends SmartTileEntity
|
||||
implements IHaveGoggleInformation, IHaveHoveringInformation, FlywheelRendered {
|
||||
implements IHaveGoggleInformation, IHaveHoveringInformation {
|
||||
|
||||
public @Nullable Long network;
|
||||
public @Nullable BlockPos source;
|
||||
|
@ -151,6 +150,7 @@ public class KineticTileEntity extends SmartTileEntity
|
|||
this.stress = currentStress;
|
||||
this.networkSize = networkSize;
|
||||
boolean overStressed = maxStress < currentStress && StressImpact.isEnabled();
|
||||
setChanged();
|
||||
|
||||
if (overStressed != this.overStressed) {
|
||||
float prevSpeed = getSpeed();
|
||||
|
@ -181,6 +181,7 @@ public class KineticTileEntity extends SmartTileEntity
|
|||
boolean directionSwap = !fromOrToZero && Math.signum(previousSpeed) != Math.signum(getSpeed());
|
||||
if (fromOrToZero || directionSwap)
|
||||
flickerTally = getFlickerScore() + 5;
|
||||
setChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -324,6 +325,7 @@ public class KineticTileEntity extends SmartTileEntity
|
|||
getOrCreateNetwork().remove(this);
|
||||
|
||||
network = networkIn;
|
||||
setChanged();
|
||||
|
||||
if (networkIn == null)
|
||||
return;
|
||||
|
|
|
@ -42,7 +42,7 @@ public class KineticTileEntityRenderer extends SafeTileEntityRenderer<KineticTil
|
|||
@Override
|
||||
protected void renderSafe(KineticTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
BlockState state = getRenderedBlockState(te);
|
||||
RenderType type = getRenderType(te, state);
|
||||
|
@ -117,7 +117,7 @@ public class KineticTileEntityRenderer extends SafeTileEntityRenderer<KineticTil
|
|||
float offset = ICogWheel.isLargeCog(te.getBlockState()) ? 11.25f : 0;
|
||||
double d = (((axis == Axis.X) ? 0 : pos.getX()) + ((axis == Axis.Y) ? 0 : pos.getY())
|
||||
+ ((axis == Axis.Z) ? 0 : pos.getZ())) % 2;
|
||||
if (d == 0)
|
||||
if (d == 0)
|
||||
offset = 22.5f;
|
||||
return offset;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ package com.simibubi.create.content.contraptions.base;
|
|||
|
||||
import com.jozufozu.flywheel.api.Material;
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance;
|
||||
import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.base.flwdata.RotatingData;
|
||||
import com.simibubi.create.content.contraptions.relays.elementary.ICogWheel;
|
||||
|
@ -12,7 +12,7 @@ import com.simibubi.create.foundation.render.AllMaterialSpecs;
|
|||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public abstract class KineticTileInstance<T extends KineticTileEntity> extends TileEntityInstance<T> {
|
||||
public abstract class KineticTileInstance<T extends KineticTileEntity> extends BlockEntityInstance<T> {
|
||||
|
||||
protected final Direction.Axis axis;
|
||||
|
||||
|
@ -38,7 +38,7 @@ public abstract class KineticTileInstance<T extends KineticTileEntity> extends T
|
|||
instance.setRotationAxis(axis)
|
||||
.setRotationOffset(getRotationOffset(axis))
|
||||
.setRotationalSpeed(speed)
|
||||
.setColor(tile);
|
||||
.setColor(blockEntity);
|
||||
}
|
||||
|
||||
protected final RotatingData setup(RotatingData key) {
|
||||
|
@ -57,7 +57,7 @@ public abstract class KineticTileInstance<T extends KineticTileEntity> extends T
|
|||
key.setRotationAxis(axis)
|
||||
.setRotationalSpeed(speed)
|
||||
.setRotationOffset(getRotationOffset(axis))
|
||||
.setColor(tile)
|
||||
.setColor(blockEntity)
|
||||
.setPosition(getInstancePosition());
|
||||
|
||||
return key;
|
||||
|
@ -78,7 +78,7 @@ public abstract class KineticTileInstance<T extends KineticTileEntity> extends T
|
|||
}
|
||||
|
||||
protected float getTileSpeed() {
|
||||
return tile.getSpeed();
|
||||
return blockEntity.getSpeed();
|
||||
}
|
||||
|
||||
protected BlockState shaft() {
|
||||
|
|
|
@ -1,14 +1,17 @@
|
|||
package com.simibubi.create.content.contraptions.base.flwdata;
|
||||
|
||||
import com.jozufozu.flywheel.api.struct.Batched;
|
||||
import com.jozufozu.flywheel.api.struct.BatchingTransformer;
|
||||
import com.jozufozu.flywheel.api.struct.Instanced;
|
||||
import com.jozufozu.flywheel.api.struct.StructWriter;
|
||||
import com.jozufozu.flywheel.backend.gl.attrib.VertexFormat;
|
||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||
import com.jozufozu.flywheel.core.model.Model;
|
||||
import com.jozufozu.flywheel.core.layout.BufferLayout;
|
||||
import com.jozufozu.flywheel.core.model.ModelTransformer;
|
||||
import com.jozufozu.flywheel.util.RenderMath;
|
||||
import com.mojang.math.Quaternion;
|
||||
import com.simibubi.create.content.contraptions.KineticDebugger;
|
||||
import com.simibubi.create.foundation.render.AllInstanceFormats;
|
||||
import com.simibubi.create.foundation.render.AllProgramSpecs;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
|
@ -19,13 +22,13 @@ public class BeltType implements Instanced<BeltData>, Batched<BeltData> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public VertexFormat format() {
|
||||
public BufferLayout getLayout() {
|
||||
return AllInstanceFormats.BELT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StructWriter<BeltData> getWriter(VecBuffer backing) {
|
||||
return new UnsafeBeltWriter(backing, this);
|
||||
return new BeltWriterUnsafe(backing, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,7 +37,26 @@ public class BeltType implements Instanced<BeltData>, Batched<BeltData> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public BatchingTransformer<BeltData> getTransformer(Model model) {
|
||||
return null;
|
||||
public void transform(BeltData d, ModelTransformer.Params b) {
|
||||
float spriteHeight = d.maxV - d.minV;
|
||||
double scroll = d.rotationalSpeed * AnimationTickHolder.getRenderTime() / (31.5 * 16) + d.rotationOffset;
|
||||
scroll = scroll - Math.floor(scroll);
|
||||
scroll = scroll * spriteHeight * RenderMath.f(d.scrollMult);
|
||||
|
||||
float finalScroll = (float) scroll;
|
||||
b.shiftUV((builder, u, v) -> {
|
||||
float targetU = u - d.sourceU + d.minU;
|
||||
float targetV = v - d.sourceV + d.minV
|
||||
+ finalScroll;
|
||||
builder.uv(targetU, targetV);
|
||||
});
|
||||
|
||||
b.translate(d.x + 0.5, d.y + 0.5, d.z + 0.5)
|
||||
.multiply(new Quaternion(d.qX, d.qY, d.qZ, d.qW))
|
||||
.unCentre()
|
||||
.light(d.getPackedLight());
|
||||
if (KineticDebugger.isActive()) {
|
||||
b.color(d.r, d.g, d.b, d.a);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,27 +4,16 @@ import org.lwjgl.system.MemoryUtil;
|
|||
|
||||
import com.jozufozu.flywheel.api.struct.StructType;
|
||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||
import com.jozufozu.flywheel.backend.struct.UnsafeBufferWriter;
|
||||
|
||||
public class UnsafeBeltWriter extends UnsafeBufferWriter<BeltData> {
|
||||
public UnsafeBeltWriter(VecBuffer backingBuffer, StructType<BeltData> vertexType) {
|
||||
public class BeltWriterUnsafe extends KineticWriterUnsafe<BeltData> {
|
||||
public BeltWriterUnsafe(VecBuffer backingBuffer, StructType<BeltData> vertexType) {
|
||||
super(backingBuffer, vertexType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(BeltData d) {
|
||||
protected void writeInternal(BeltData d) {
|
||||
super.writeInternal(d);
|
||||
long addr = writePointer;
|
||||
MemoryUtil.memPutByte(addr, d.blockLight);
|
||||
MemoryUtil.memPutByte(addr + 1, d.skyLight);
|
||||
MemoryUtil.memPutByte(addr + 2, d.r);
|
||||
MemoryUtil.memPutByte(addr + 3, d.g);
|
||||
MemoryUtil.memPutByte(addr + 4, d.b);
|
||||
MemoryUtil.memPutByte(addr + 5, d.a);
|
||||
MemoryUtil.memPutFloat(addr + 6, d.x);
|
||||
MemoryUtil.memPutFloat(addr + 10, d.y);
|
||||
MemoryUtil.memPutFloat(addr + 14, d.z);
|
||||
MemoryUtil.memPutFloat(addr + 18, d.rotationalSpeed);
|
||||
MemoryUtil.memPutFloat(addr + 22, d.rotationOffset);
|
||||
MemoryUtil.memPutFloat(addr + 26, d.qX);
|
||||
MemoryUtil.memPutFloat(addr + 30, d.qY);
|
||||
MemoryUtil.memPutFloat(addr + 34, d.qZ);
|
||||
|
@ -36,7 +25,5 @@ public class UnsafeBeltWriter extends UnsafeBufferWriter<BeltData> {
|
|||
MemoryUtil.memPutFloat(addr + 58, d.maxU);
|
||||
MemoryUtil.memPutFloat(addr + 62, d.maxV);
|
||||
MemoryUtil.memPutByte(addr + 66, d.scrollMult);
|
||||
|
||||
advance();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package com.simibubi.create.content.contraptions.base.flwdata;
|
||||
|
||||
import org.lwjgl.system.MemoryUtil;
|
||||
|
||||
import com.jozufozu.flywheel.api.struct.StructType;
|
||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||
import com.jozufozu.flywheel.core.materials.BasicWriterUnsafe;
|
||||
|
||||
public abstract class KineticWriterUnsafe<D extends KineticData> extends BasicWriterUnsafe<D> {
|
||||
public KineticWriterUnsafe(VecBuffer backingBuffer, StructType<D> vertexType) {
|
||||
super(backingBuffer, vertexType);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeInternal(D d) {
|
||||
super.writeInternal(d);
|
||||
long addr = writePointer;
|
||||
MemoryUtil.memPutFloat(addr + 6, d.x);
|
||||
MemoryUtil.memPutFloat(addr + 10, d.y);
|
||||
MemoryUtil.memPutFloat(addr + 14, d.z);
|
||||
MemoryUtil.memPutFloat(addr + 18, d.rotationalSpeed);
|
||||
MemoryUtil.memPutFloat(addr + 22, d.rotationOffset);
|
||||
}
|
||||
}
|
|
@ -1,14 +1,17 @@
|
|||
package com.simibubi.create.content.contraptions.base.flwdata;
|
||||
|
||||
import com.jozufozu.flywheel.api.struct.Batched;
|
||||
import com.jozufozu.flywheel.api.struct.BatchingTransformer;
|
||||
import com.jozufozu.flywheel.api.struct.Instanced;
|
||||
import com.jozufozu.flywheel.api.struct.StructWriter;
|
||||
import com.jozufozu.flywheel.backend.gl.attrib.VertexFormat;
|
||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||
import com.jozufozu.flywheel.core.model.Model;
|
||||
import com.jozufozu.flywheel.core.layout.BufferLayout;
|
||||
import com.jozufozu.flywheel.core.model.ModelTransformer;
|
||||
import com.jozufozu.flywheel.util.RenderMath;
|
||||
import com.mojang.math.Vector3f;
|
||||
import com.simibubi.create.content.contraptions.KineticDebugger;
|
||||
import com.simibubi.create.foundation.render.AllInstanceFormats;
|
||||
import com.simibubi.create.foundation.render.AllProgramSpecs;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
||||
|
@ -19,13 +22,13 @@ public class RotatingType implements Instanced<RotatingData>, Batched<RotatingDa
|
|||
}
|
||||
|
||||
@Override
|
||||
public VertexFormat format() {
|
||||
public BufferLayout getLayout() {
|
||||
return AllInstanceFormats.ROTATING;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StructWriter<RotatingData> getWriter(VecBuffer backing) {
|
||||
return new UnsafeRotatingWriter(backing, this);
|
||||
return new RotatingWriterUnsafe(backing, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -34,7 +37,17 @@ public class RotatingType implements Instanced<RotatingData>, Batched<RotatingDa
|
|||
}
|
||||
|
||||
@Override
|
||||
public BatchingTransformer<RotatingData> getTransformer(Model model) {
|
||||
return null;
|
||||
public void transform(RotatingData d, ModelTransformer.Params b) {
|
||||
float angle = ((AnimationTickHolder.getRenderTime() * d.rotationalSpeed * 3f / 10 + d.rotationOffset) % 360);
|
||||
|
||||
Vector3f axis = new Vector3f(RenderMath.f(d.rotationAxisX), RenderMath.f(d.rotationAxisY), RenderMath.f(d.rotationAxisZ));
|
||||
b.light(d.getPackedLight())
|
||||
.translate(d.x + 0.5, d.y + 0.5, d.z + 0.5)
|
||||
.multiply(axis.rotationDegrees(angle))
|
||||
.unCentre();
|
||||
|
||||
if (KineticDebugger.isActive()) {
|
||||
b.color(d.r, d.g, d.b, d.a);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
package com.simibubi.create.content.contraptions.base.flwdata;
|
||||
|
||||
import org.lwjgl.system.MemoryUtil;
|
||||
|
||||
import com.jozufozu.flywheel.api.struct.StructType;
|
||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||
|
||||
public class RotatingWriterUnsafe extends KineticWriterUnsafe<RotatingData> {
|
||||
public RotatingWriterUnsafe(VecBuffer backingBuffer, StructType<RotatingData> vertexType) {
|
||||
super(backingBuffer, vertexType);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeInternal(RotatingData d) {
|
||||
super.writeInternal(d);
|
||||
long addr = writePointer;
|
||||
MemoryUtil.memPutByte(addr + 26, d.rotationAxisX);
|
||||
MemoryUtil.memPutByte(addr + 27, d.rotationAxisY);
|
||||
MemoryUtil.memPutByte(addr + 28, d.rotationAxisZ);
|
||||
}
|
||||
}
|
|
@ -1,34 +0,0 @@
|
|||
package com.simibubi.create.content.contraptions.base.flwdata;
|
||||
|
||||
import org.lwjgl.system.MemoryUtil;
|
||||
|
||||
import com.jozufozu.flywheel.api.struct.StructType;
|
||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||
import com.jozufozu.flywheel.backend.struct.UnsafeBufferWriter;
|
||||
|
||||
public class UnsafeRotatingWriter extends UnsafeBufferWriter<RotatingData> {
|
||||
public UnsafeRotatingWriter(VecBuffer backingBuffer, StructType<RotatingData> vertexType) {
|
||||
super(backingBuffer, vertexType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void write(RotatingData d) {
|
||||
long addr = writePointer;
|
||||
MemoryUtil.memPutByte(addr, d.blockLight);
|
||||
MemoryUtil.memPutByte(addr + 1, d.skyLight);
|
||||
MemoryUtil.memPutByte(addr + 2, d.r);
|
||||
MemoryUtil.memPutByte(addr + 3, d.g);
|
||||
MemoryUtil.memPutByte(addr + 4, d.b);
|
||||
MemoryUtil.memPutByte(addr + 5, d.a);
|
||||
MemoryUtil.memPutFloat(addr + 6, d.x);
|
||||
MemoryUtil.memPutFloat(addr + 10, d.y);
|
||||
MemoryUtil.memPutFloat(addr + 14, d.z);
|
||||
MemoryUtil.memPutFloat(addr + 18, d.rotationalSpeed);
|
||||
MemoryUtil.memPutFloat(addr + 22, d.rotationOffset);
|
||||
MemoryUtil.memPutByte(addr + 26, d.rotationAxisX);
|
||||
MemoryUtil.memPutByte(addr + 27, d.rotationAxisY);
|
||||
MemoryUtil.memPutByte(addr + 28, d.rotationAxisZ);
|
||||
|
||||
advance();
|
||||
}
|
||||
}
|
|
@ -2,6 +2,7 @@ package com.simibubi.create.content.contraptions.components.actors;
|
|||
|
||||
import com.jozufozu.flywheel.api.Material;
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.mojang.math.Quaternion;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.components.actors.flwdata.ActorData;
|
||||
|
@ -10,7 +11,6 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren
|
|||
import com.simibubi.create.foundation.render.AllMaterialSpecs;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
@ -20,7 +20,7 @@ public class DrillActorInstance extends ActorInstance {
|
|||
ActorData drillHead;
|
||||
private final Direction facing;
|
||||
|
||||
public DrillActorInstance(MaterialManager materialManager, PlacementSimulationWorld contraption, MovementContext context) {
|
||||
public DrillActorInstance(MaterialManager materialManager, VirtualRenderWorld contraption, MovementContext context) {
|
||||
super(materialManager, contraption, context);
|
||||
|
||||
Material<ActorData> material = materialManager.defaultSolid()
|
||||
|
|
|
@ -19,7 +19,7 @@ public class DrillInstance extends SingleRotatingInstance {
|
|||
|
||||
@Override
|
||||
protected Instancer<RotatingData> getModel() {
|
||||
BlockState referenceState = tile.getBlockState();
|
||||
BlockState referenceState = blockEntity.getBlockState();
|
||||
Direction facing = referenceState.getValue(BlockStateProperties.FACING);
|
||||
return getRotatingMaterial().getModel(AllBlockPartials.DRILL_HEAD, referenceState, facing);
|
||||
}
|
||||
|
|
|
@ -4,11 +4,11 @@ import javax.annotation.Nullable;
|
|||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
@ -35,9 +35,9 @@ public class DrillMovementBehaviour extends BlockBreakingMovementBehaviour {
|
|||
|
||||
@Override
|
||||
@OnlyIn(value = Dist.CLIENT)
|
||||
public void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer) {
|
||||
if (!Backend.getInstance().canUseInstancing())
|
||||
if (!Backend.isOn())
|
||||
DrillRenderer.renderInContraption(context, renderWorld, matrices, buffer);
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ public class DrillMovementBehaviour extends BlockBreakingMovementBehaviour {
|
|||
|
||||
@Nullable
|
||||
@Override
|
||||
public ActorInstance createInstance(MaterialManager materialManager, PlacementSimulationWorld simulationWorld, MovementContext context) {
|
||||
public ActorInstance createInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
|
||||
return new DrillActorInstance(materialManager, simulationWorld, context);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.simibubi.create.content.contraptions.components.actors;
|
||||
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntityRenderer;
|
||||
|
@ -11,7 +12,6 @@ import com.simibubi.create.foundation.render.SuperByteBuffer;
|
|||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
|
@ -30,7 +30,7 @@ public class DrillRenderer extends KineticTileEntityRenderer {
|
|||
return CachedBufferer.partialFacing(AllBlockPartials.DRILL_HEAD, state);
|
||||
}
|
||||
|
||||
public static void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public static void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer) {
|
||||
BlockState state = context.state;
|
||||
SuperByteBuffer superBuffer = CachedBufferer.partial(AllBlockPartials.DRILL_HEAD, state);
|
||||
|
|
|
@ -4,13 +4,13 @@ import com.jozufozu.flywheel.api.Material;
|
|||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.core.Materials;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
@ -31,7 +31,7 @@ public class HarvesterActorInstance extends ActorInstance {
|
|||
private double rotation;
|
||||
private double previousRotation;
|
||||
|
||||
public HarvesterActorInstance(MaterialManager materialManager, PlacementSimulationWorld simulationWorld, MovementContext context) {
|
||||
public HarvesterActorInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
|
||||
super(materialManager, simulationWorld, context);
|
||||
|
||||
Material<ModelData> material = materialManager.defaultCutout()
|
||||
|
|
|
@ -6,6 +6,7 @@ import org.apache.commons.lang3.mutable.MutableBoolean;
|
|||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance;
|
||||
|
@ -13,7 +14,6 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren
|
|||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.utility.BlockHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
@ -50,16 +50,15 @@ public class HarvesterMovementBehaviour extends MovementBehaviour {
|
|||
|
||||
@Nullable
|
||||
@Override
|
||||
public ActorInstance createInstance(MaterialManager materialManager, PlacementSimulationWorld simulationWorld,
|
||||
public ActorInstance createInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld,
|
||||
MovementContext context) {
|
||||
return new HarvesterActorInstance(materialManager, simulationWorld, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffers) {
|
||||
if (!Backend.getInstance()
|
||||
.canUseInstancing())
|
||||
if (!Backend.isOn())
|
||||
HarvesterRenderer.renderInContraption(context, renderWorld, matrices, buffers);
|
||||
}
|
||||
|
||||
|
@ -108,7 +107,7 @@ public class HarvesterMovementBehaviour extends MovementBehaviour {
|
|||
world.setBlockAndUpdate(pos, cutCrop(world, pos, stateVisited));
|
||||
}
|
||||
|
||||
private boolean isValidCrop(Level world, BlockPos pos, BlockState state) {
|
||||
public boolean isValidCrop(Level world, BlockPos pos, BlockState state) {
|
||||
boolean harvestPartial = AllConfigs.SERVER.kinetics.harvestPartiallyGrown.get();
|
||||
boolean replant = AllConfigs.SERVER.kinetics.harvesterReplants.get();
|
||||
|
||||
|
@ -142,7 +141,7 @@ public class HarvesterMovementBehaviour extends MovementBehaviour {
|
|||
return false;
|
||||
}
|
||||
|
||||
private boolean isValidOther(Level world, BlockPos pos, BlockState state) {
|
||||
public boolean isValidOther(Level world, BlockPos pos, BlockState state) {
|
||||
if (state.getBlock() instanceof CropBlock)
|
||||
return false;
|
||||
if (state.getBlock() instanceof SugarCaneBlock)
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.simibubi.create.content.contraptions.components.actors;
|
|||
|
||||
import static net.minecraft.world.level.block.state.properties.BlockStateProperties.HORIZONTAL_FACING;
|
||||
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
|
@ -13,7 +14,6 @@ import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer
|
|||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
|
@ -40,7 +40,7 @@ public class HarvesterRenderer extends SafeTileEntityRenderer<HarvesterTileEntit
|
|||
.renderInto(ms, buffer.getBuffer(RenderType.cutoutMipped()));
|
||||
}
|
||||
|
||||
public static void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public static void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffers) {
|
||||
BlockState blockState = context.state;
|
||||
Direction facing = blockState.getValue(HORIZONTAL_FACING);
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
package com.simibubi.create.content.contraptions.components.actors;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.core.Materials;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class PIInstance {
|
||||
private final MaterialManager materialManager;
|
||||
private final BlockState blockState;
|
||||
private final BlockPos instancePos;
|
||||
private final float angleX;
|
||||
private final float angleY;
|
||||
|
||||
private boolean lit;
|
||||
ModelData middle;
|
||||
ModelData top;
|
||||
|
||||
public PIInstance(MaterialManager materialManager, BlockState blockState, BlockPos instancePos) {
|
||||
this.materialManager = materialManager;
|
||||
this.blockState = blockState;
|
||||
this.instancePos = instancePos;
|
||||
Direction facing = blockState.getValue(PortableStorageInterfaceBlock.FACING);
|
||||
angleX = facing == Direction.UP ? 0 : facing == Direction.DOWN ? 180 : 90;
|
||||
angleY = AngleHelper.horizontalAngle(facing);
|
||||
}
|
||||
|
||||
public void init(boolean lit) {
|
||||
this.lit = lit;
|
||||
middle = materialManager.defaultSolid()
|
||||
.material(Materials.TRANSFORMED)
|
||||
.getModel(PortableStorageInterfaceRenderer.getMiddleForState(blockState, lit), blockState)
|
||||
.createInstance();
|
||||
top = materialManager.defaultSolid()
|
||||
.material(Materials.TRANSFORMED)
|
||||
.getModel(PortableStorageInterfaceRenderer.getTopForState(blockState), blockState)
|
||||
.createInstance();
|
||||
}
|
||||
|
||||
public void beginFrame(float progress) {
|
||||
middle.loadIdentity()
|
||||
.translate(instancePos)
|
||||
.centre()
|
||||
.rotateY(angleY)
|
||||
.rotateX(angleX)
|
||||
.unCentre();
|
||||
|
||||
top.loadIdentity()
|
||||
.translate(instancePos)
|
||||
.centre()
|
||||
.rotateY(angleY)
|
||||
.rotateX(angleX)
|
||||
.unCentre();
|
||||
|
||||
middle.translate(0, progress * 0.5f + 0.375f, 0);
|
||||
top.translate(0, progress, 0);
|
||||
|
||||
}
|
||||
|
||||
public void tick(boolean lit) {
|
||||
if (this.lit != lit) {
|
||||
this.lit = lit;
|
||||
materialManager.defaultSolid()
|
||||
.material(Materials.TRANSFORMED)
|
||||
.getModel(PortableStorageInterfaceRenderer.getMiddleForState(blockState, lit), blockState)
|
||||
.stealInstance(middle);
|
||||
}
|
||||
}
|
||||
|
||||
public void remove() {
|
||||
middle.delete();
|
||||
top.delete();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package com.simibubi.create.content.contraptions.components.actors;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
|
||||
public class PSIActorInstance extends ActorInstance {
|
||||
|
||||
private final PIInstance instance;
|
||||
|
||||
public PSIActorInstance(MaterialManager materialManager, VirtualRenderWorld world, MovementContext context) {
|
||||
super(materialManager, world, context);
|
||||
|
||||
instance = new PIInstance(materialManager, context.state, context.localPos);
|
||||
|
||||
instance.init(false);
|
||||
instance.middle.setBlockLight(localBlockLight());
|
||||
instance.top.setBlockLight(localBlockLight());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beginFrame() {
|
||||
PortableStorageInterfaceTileEntity psi = PortableStorageInterfaceRenderer.getTargetPSI(context);
|
||||
instance.tick(psi != null && psi.isConnected());
|
||||
instance.beginFrame(psi == null ? 0f : psi.getExtensionDistance(AnimationTickHolder.getPartialTicks()));
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
package com.simibubi.create.content.contraptions.components.actors;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.api.instance.TickableInstance;
|
||||
import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
|
||||
public class PSIInstance extends BlockEntityInstance<PortableStorageInterfaceTileEntity> implements DynamicInstance, TickableInstance {
|
||||
|
||||
private final PIInstance instance;
|
||||
|
||||
public PSIInstance(MaterialManager materialManager, PortableStorageInterfaceTileEntity tile) {
|
||||
super(materialManager, tile);
|
||||
|
||||
instance = new PIInstance(materialManager, blockState, getInstancePosition());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init() {
|
||||
instance.init(isLit());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
instance.tick(isLit());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beginFrame() {
|
||||
instance.beginFrame(blockEntity.getExtensionDistance(AnimationTickHolder.getPartialTicks()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateLight() {
|
||||
relight(pos, instance.middle, instance.top);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
instance.remove();
|
||||
}
|
||||
|
||||
private boolean isLit() {
|
||||
return blockEntity.isConnected();
|
||||
}
|
||||
|
||||
}
|
|
@ -2,11 +2,16 @@ package com.simibubi.create.content.contraptions.components.actors;
|
|||
|
||||
import java.util.Optional;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementBehaviour;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
@ -30,11 +35,23 @@ public class PortableStorageInterfaceMovement extends MovementBehaviour {
|
|||
.getNormal()).scale(1.85f);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasSpecialInstancedRendering() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public ActorInstance createInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
|
||||
return new PSIActorInstance(materialManager, simulationWorld, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer) {
|
||||
PortableStorageInterfaceRenderer.renderInContraption(context, renderWorld, matrices, buffer);
|
||||
if (!Backend.isOn())
|
||||
PortableStorageInterfaceRenderer.renderInContraption(context, renderWorld, matrices, buffer);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.simibubi.create.content.contraptions.components.actors;
|
|||
import java.util.function.Consumer;
|
||||
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
|
@ -15,7 +16,6 @@ import com.simibubi.create.foundation.render.SuperByteBuffer;
|
|||
import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
|
@ -41,7 +41,7 @@ public class PortableStorageInterfaceRenderer extends SafeTileEntityRenderer<Por
|
|||
.renderInto(ms, vb));
|
||||
}
|
||||
|
||||
public static void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public static void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer) {
|
||||
BlockState blockState = context.state;
|
||||
PortableStorageInterfaceTileEntity te = getTargetPSI(context);
|
||||
|
@ -86,17 +86,16 @@ public class PortableStorageInterfaceRenderer extends SafeTileEntityRenderer<Por
|
|||
.unCentre();
|
||||
}
|
||||
|
||||
protected static PortableStorageInterfaceTileEntity getTargetPSI(MovementContext context) {
|
||||
static PortableStorageInterfaceTileEntity getTargetPSI(MovementContext context) {
|
||||
String _workingPos_ = PortableStorageInterfaceMovement._workingPos_;
|
||||
if (!context.contraption.stalled || !context.data.contains(_workingPos_))
|
||||
return null;
|
||||
|
||||
BlockPos pos = NbtUtils.readBlockPos(context.data.getCompound(_workingPos_));
|
||||
BlockEntity tileEntity = context.world.getBlockEntity(pos);
|
||||
if (!(tileEntity instanceof PortableStorageInterfaceTileEntity))
|
||||
if (!(tileEntity instanceof PortableStorageInterfaceTileEntity psi))
|
||||
return null;
|
||||
|
||||
PortableStorageInterfaceTileEntity psi = (PortableStorageInterfaceTileEntity) tileEntity;
|
||||
if (!psi.isTransferring())
|
||||
return null;
|
||||
return psi;
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.simibubi.create.content.contraptions.components.actors;
|
|||
|
||||
import java.util.Optional;
|
||||
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.simibubi.create.content.contraptions.components.saw.SawBlock;
|
||||
import com.simibubi.create.content.contraptions.components.saw.SawRenderer;
|
||||
import com.simibubi.create.content.contraptions.components.saw.SawTileEntity;
|
||||
|
@ -10,7 +11,6 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren
|
|||
import com.simibubi.create.foundation.utility.AbstractBlockBreakQueue;
|
||||
import com.simibubi.create.foundation.utility.TreeCutter;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
@ -86,7 +86,7 @@ public class SawMovementBehaviour extends BlockBreakingMovementBehaviour {
|
|||
|
||||
@Override
|
||||
@OnlyIn(value = Dist.CLIENT)
|
||||
public void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer) {
|
||||
SawRenderer.renderInContraption(context, renderWorld, matrices, buffer);
|
||||
}
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
package com.simibubi.create.content.contraptions.components.actors.flwdata;
|
||||
|
||||
import com.jozufozu.flywheel.api.struct.Batched;
|
||||
import com.jozufozu.flywheel.api.struct.BatchingTransformer;
|
||||
import com.jozufozu.flywheel.api.struct.Instanced;
|
||||
import com.jozufozu.flywheel.api.struct.StructWriter;
|
||||
import com.jozufozu.flywheel.backend.gl.attrib.VertexFormat;
|
||||
import com.jozufozu.flywheel.backend.gl.buffer.VecBuffer;
|
||||
import com.jozufozu.flywheel.core.model.Model;
|
||||
import com.jozufozu.flywheel.core.layout.BufferLayout;
|
||||
import com.jozufozu.flywheel.core.model.ModelTransformer;
|
||||
import com.simibubi.create.foundation.render.AllInstanceFormats;
|
||||
import com.simibubi.create.foundation.render.AllProgramSpecs;
|
||||
|
||||
|
@ -19,7 +18,7 @@ public class ActorType implements Instanced<ActorData>, Batched<ActorData> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public VertexFormat format() {
|
||||
public BufferLayout getLayout() {
|
||||
return AllInstanceFormats.ACTOR;
|
||||
}
|
||||
|
||||
|
@ -34,7 +33,7 @@ public class ActorType implements Instanced<ActorData>, Batched<ActorData> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public BatchingTransformer<ActorData> getTransformer(Model model) {
|
||||
return null;
|
||||
public void transform(ActorData d, ModelTransformer.Params b) {
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ public class UnsafeActorWriter extends UnsafeBufferWriter<ActorData> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void write(ActorData d) {
|
||||
protected void writeInternal(ActorData d) {
|
||||
long addr = writePointer;
|
||||
MemoryUtil.memPutFloat(addr, d.x);
|
||||
MemoryUtil.memPutFloat(addr + 4, d.y);
|
||||
|
@ -31,6 +31,5 @@ public class UnsafeActorWriter extends UnsafeBufferWriter<ActorData> {
|
|||
MemoryUtil.memPutByte(addr + 38, d.rotationCenterY);
|
||||
MemoryUtil.memPutByte(addr + 39, d.rotationCenterZ);
|
||||
MemoryUtil.memPutFloat(addr + 40, d.speed);
|
||||
advance();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -187,9 +187,4 @@ public class CuckooClockTileEntity extends KineticTileEntity {
|
|||
Vec3 vec = VecHelper.getCenterOf(worldPosition);
|
||||
level.playLocalSound(vec.x, vec.y, vec.z, sound, SoundSource.BLOCKS, volume, pitch, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRenderNormally() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -169,8 +169,7 @@ public class MechanicalCrafterRenderer extends SafeTileEntityRenderer<Mechanical
|
|||
BlockState blockState = te.getBlockState();
|
||||
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
|
||||
|
||||
if (!Backend.getInstance()
|
||||
.canUseInstancing(te.getLevel())) {
|
||||
if (!Backend.canUseInstancing(te.getLevel())) {
|
||||
SuperByteBuffer superBuffer = CachedBufferer.partial(AllBlockPartials.SHAFTLESS_COGWHEEL, blockState);
|
||||
standardKineticRotationTransform(superBuffer, te, light);
|
||||
superBuffer.rotateCentered(Direction.UP, (float) (blockState.getValue(HORIZONTAL_FACING)
|
||||
|
|
|
@ -523,11 +523,6 @@ public class MechanicalCrafterTileEntity extends KineticTileEntity {
|
|||
return inventory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRenderNormally() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setScriptedResult(ItemStack scriptedResult) {
|
||||
this.scriptedResult = scriptedResult;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ package com.simibubi.create.content.contraptions.components.crank;
|
|||
|
||||
import com.jozufozu.flywheel.api.Instancer;
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.IDynamicInstance;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.simibubi.create.content.contraptions.base.SingleRotatingInstance;
|
||||
|
@ -12,7 +12,7 @@ import net.minecraft.core.Direction;
|
|||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
|
||||
public class HandCrankInstance extends SingleRotatingInstance implements IDynamicInstance {
|
||||
public class HandCrankInstance extends SingleRotatingInstance implements DynamicInstance {
|
||||
|
||||
private final HandCrankTileEntity tile;
|
||||
private ModelData crank;
|
||||
|
|
|
@ -28,7 +28,7 @@ public class HandCrankRenderer extends KineticTileEntityRenderer {
|
|||
int light, int overlay) {
|
||||
super.renderSafe(te, partialTicks, ms, buffer, light, overlay);
|
||||
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
BlockState state = te.getBlockState();
|
||||
Block block = state.getBlock();
|
||||
|
|
|
@ -79,11 +79,6 @@ public class HandCrankTileEntity extends GeneratingKineticTileEntity {
|
|||
return AllBlocks.HAND_CRANK.get();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRenderNormally() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void tickAudio() {
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.jozufozu.flywheel.api.MaterialManager;
|
|||
import com.jozufozu.flywheel.core.Materials;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.jozufozu.flywheel.util.transform.MatrixTransformStack;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.base.IRotate;
|
||||
|
@ -20,7 +21,6 @@ import com.simibubi.create.foundation.utility.AngleHelper;
|
|||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
|
@ -42,7 +42,7 @@ public class DeployerActorInstance extends ActorInstance {
|
|||
ModelData hand;
|
||||
RotatingData shaft;
|
||||
|
||||
public DeployerActorInstance(MaterialManager materialManager, PlacementSimulationWorld simulationWorld, MovementContext context) {
|
||||
public DeployerActorInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
|
||||
super(materialManager, simulationWorld, context);
|
||||
|
||||
Material<ModelData> mat = materialManager.defaultSolid()
|
||||
|
|
|
@ -78,7 +78,7 @@ public class DeployerHandler {
|
|||
boolean rayMode = false;
|
||||
|
||||
private ItemUseWorld(Level world, Direction face, BlockPos pos) {
|
||||
super(world, world.getChunkSource());
|
||||
super(world);
|
||||
this.face = face;
|
||||
this.pos = pos;
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ import static com.simibubi.create.content.contraptions.base.DirectionalAxisKinet
|
|||
import static com.simibubi.create.content.contraptions.base.DirectionalKineticBlock.FACING;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.IDynamicInstance;
|
||||
import com.jozufozu.flywheel.api.instance.ITickableInstance;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.api.instance.TickableInstance;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
||||
import com.mojang.math.Quaternion;
|
||||
|
@ -20,7 +20,7 @@ import net.minecraft.core.Direction;
|
|||
import net.minecraft.core.Vec3i;
|
||||
import net.minecraft.util.Mth;
|
||||
|
||||
public class DeployerInstance extends ShaftInstance implements IDynamicInstance, ITickableInstance {
|
||||
public class DeployerInstance extends ShaftInstance implements DynamicInstance, TickableInstance {
|
||||
|
||||
final DeployerTileEntity tile;
|
||||
final Direction facing;
|
||||
|
@ -34,12 +34,11 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance,
|
|||
|
||||
PartialModel currentHand;
|
||||
float progress;
|
||||
private boolean newHand = false;
|
||||
|
||||
public DeployerInstance(MaterialManager dispatcher, KineticTileEntity tile) {
|
||||
super(dispatcher, tile);
|
||||
|
||||
this.tile = (DeployerTileEntity) super.tile;
|
||||
this.tile = (DeployerTileEntity) super.blockEntity;
|
||||
facing = blockState.getValue(FACING);
|
||||
|
||||
boolean rotatePole = blockState.getValue(AXIS_ALONG_FIRST_COORDINATE) ^ facing.getAxis() == Direction.Axis.Z;
|
||||
|
@ -50,28 +49,34 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance,
|
|||
|
||||
pole = getOrientedMaterial().getModel(AllBlockPartials.DEPLOYER_POLE, blockState).createInstance();
|
||||
|
||||
updateHandPose();
|
||||
relight(pos, pole);
|
||||
currentHand = this.tile.getHandPose();
|
||||
|
||||
progress = getProgress(AnimationTickHolder.getPartialTicks());
|
||||
hand = getOrientedMaterial().getModel(currentHand, blockState).createInstance();
|
||||
|
||||
progress = getProgress(AnimationTickHolder.getPartialTicks());
|
||||
updateRotation(pole, hand, yRot, xRot, zRot);
|
||||
updatePosition();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
newHand = updateHandPose();
|
||||
}
|
||||
PartialModel handPose = tile.getHandPose();
|
||||
|
||||
if (currentHand != handPose) {
|
||||
currentHand = handPose;
|
||||
getOrientedMaterial().getModel(currentHand, blockState)
|
||||
.stealInstance(hand);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beginFrame() {
|
||||
|
||||
float newProgress = getProgress(AnimationTickHolder.getPartialTicks());
|
||||
|
||||
if (!newHand && Mth.equal(newProgress, progress)) return;
|
||||
if (Mth.equal(newProgress, progress)) return;
|
||||
|
||||
progress = newProgress;
|
||||
newHand = false;
|
||||
|
||||
updatePosition();
|
||||
}
|
||||
|
@ -89,24 +94,7 @@ public class DeployerInstance extends ShaftInstance implements IDynamicInstance,
|
|||
pole.delete();
|
||||
}
|
||||
|
||||
private boolean updateHandPose() {
|
||||
PartialModel handPose = tile.getHandPose();
|
||||
|
||||
if (currentHand == handPose) return false;
|
||||
currentHand = handPose;
|
||||
|
||||
if (hand != null) hand.delete();
|
||||
|
||||
hand = getOrientedMaterial().getModel(currentHand, blockState).createInstance();
|
||||
|
||||
relight(pos, hand);
|
||||
updateRotation(pole, hand, yRot, xRot, zRot);
|
||||
updatePosition();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private float getProgress(float partialTicks) {
|
||||
private float getProgress(float partialTicks) {
|
||||
if (tile.state == DeployerTileEntity.State.EXPANDING)
|
||||
return 1 - (tile.timer - partialTicks * tile.getTimerSpeed()) / 1000f;
|
||||
if (tile.state == DeployerTileEntity.State.RETRACTING)
|
||||
|
|
|
@ -9,6 +9,7 @@ import org.apache.commons.lang3.tuple.Pair;
|
|||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.AllTags.AllBlockTags;
|
||||
|
@ -27,7 +28,6 @@ import com.simibubi.create.foundation.item.ItemHelper.ExtractionCountMode;
|
|||
import com.simibubi.create.foundation.utility.BlockHelper;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.NBTProcessors;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
@ -255,9 +255,9 @@ public class DeployerMovementBehaviour extends MovementBehaviour {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffers) {
|
||||
if (!Backend.getInstance().canUseInstancing())
|
||||
if (!Backend.isOn())
|
||||
DeployerRenderer.renderInContraption(context, renderWorld, matrices, buffers);
|
||||
}
|
||||
|
||||
|
@ -268,7 +268,7 @@ public class DeployerMovementBehaviour extends MovementBehaviour {
|
|||
|
||||
@Nullable
|
||||
@Override
|
||||
public ActorInstance createInstance(MaterialManager materialManager, PlacementSimulationWorld simulationWorld, MovementContext context) {
|
||||
public ActorInstance createInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
|
||||
return new DeployerActorInstance(materialManager, simulationWorld, context);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import static com.simibubi.create.content.contraptions.base.DirectionalKineticBl
|
|||
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.jozufozu.flywheel.util.transform.MatrixTransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
|
@ -26,7 +27,6 @@ import com.simibubi.create.foundation.utility.AngleHelper;
|
|||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.NBTHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
|
@ -54,7 +54,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
|
|||
renderItem(te, partialTicks, ms, buffer, light, overlay);
|
||||
FilteringRenderer.renderOnTileEntity(te, partialTicks, ms, buffer, light, overlay);
|
||||
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
renderComponents(te, partialTicks, ms, buffer, light, overlay);
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
|
|||
protected void renderComponents(DeployerTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
VertexConsumer vb = buffer.getBuffer(RenderType.solid());
|
||||
if (!Backend.getInstance().canUseInstancing(te.getLevel())) {
|
||||
if (!Backend.canUseInstancing(te.getLevel())) {
|
||||
KineticTileEntityRenderer.renderRotatingKineticBlock(te, getRenderedBlockState(te), ms, vb, light);
|
||||
}
|
||||
|
||||
|
@ -155,7 +155,7 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
|
|||
return buffer;
|
||||
}
|
||||
|
||||
public static void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public static void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer) {
|
||||
VertexConsumer builder = buffer.getBuffer(RenderType.solid());
|
||||
BlockState blockState = context.state;
|
||||
|
@ -193,10 +193,10 @@ public class DeployerRenderer extends SafeTileEntityRenderer<DeployerTileEntity>
|
|||
IRotate def = (IRotate) context.state.getBlock();
|
||||
axis = def.getRotationAxis(context.state);
|
||||
}
|
||||
|
||||
|
||||
float time = AnimationTickHolder.getRenderTime(context.world) / 20;
|
||||
float angle = (time * speed) % 360;
|
||||
|
||||
|
||||
new MatrixTransformStack(m)
|
||||
.centre()
|
||||
.rotateY(axis == Axis.Z ? 90 : 0)
|
||||
|
|
|
@ -424,11 +424,6 @@ public class DeployerTileEntity extends KineticTileEntity {
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRenderNormally() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public float getHandOffset(float partialTicks) {
|
||||
if (isVirtual())
|
||||
return animatedOffset.getValue(partialTicks);
|
||||
|
|
|
@ -28,7 +28,7 @@ public class EncasedFanRenderer extends KineticTileEntityRenderer {
|
|||
@Override
|
||||
protected void renderSafe(KineticTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
Direction direction = te.getBlockState()
|
||||
.getValue(FACING);
|
||||
|
|
|
@ -36,7 +36,7 @@ public class FanInstance extends KineticTileInstance<EncasedFanTileEntity> {
|
|||
}
|
||||
|
||||
private float getFanSpeed() {
|
||||
float speed = tile.getSpeed() * 5;
|
||||
float speed = blockEntity.getSpeed() * 5;
|
||||
if (speed > 0)
|
||||
speed = Mth.clamp(speed, 80, 64 * 20);
|
||||
if (speed < 0)
|
||||
|
|
|
@ -10,7 +10,7 @@ import com.jozufozu.flywheel.api.InstanceData;
|
|||
import com.jozufozu.flywheel.api.Instancer;
|
||||
import com.jozufozu.flywheel.api.Material;
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.IDynamicInstance;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.jozufozu.flywheel.util.transform.TransformStack;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
|
@ -25,7 +25,7 @@ import net.minecraft.util.Mth;
|
|||
import net.minecraft.world.level.block.Rotation;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
public class FlyWheelInstance extends KineticTileInstance<FlywheelTileEntity> implements IDynamicInstance {
|
||||
public class FlyWheelInstance extends KineticTileInstance<FlywheelTileEntity> implements DynamicInstance {
|
||||
|
||||
protected final Direction facing;
|
||||
protected final Direction connection;
|
||||
|
@ -90,8 +90,8 @@ public class FlyWheelInstance extends KineticTileInstance<FlywheelTileEntity> im
|
|||
|
||||
float partialTicks = AnimationTickHolder.getPartialTicks();
|
||||
|
||||
float speed = tile.visualSpeed.get(partialTicks) * 3 / 10f;
|
||||
float angle = tile.angle + speed * partialTicks;
|
||||
float speed = blockEntity.visualSpeed.get(partialTicks) * 3 / 10f;
|
||||
float angle = blockEntity.angle + speed * partialTicks;
|
||||
|
||||
if (Math.abs(angle - lastAngle) < 0.001)
|
||||
return;
|
||||
|
|
|
@ -36,7 +36,7 @@ public class FlywheelRenderer extends KineticTileEntityRenderer {
|
|||
int light, int overlay) {
|
||||
super.renderSafe(te, partialTicks, ms, buffer, light, overlay);
|
||||
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
BlockState blockState = te.getBlockState();
|
||||
FlywheelTileEntity wte = (FlywheelTileEntity) te;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance;
|
||||
import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
|
@ -10,7 +10,7 @@ import net.minecraft.core.Direction;
|
|||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
|
||||
public class EngineInstance extends TileEntityInstance<EngineTileEntity> {
|
||||
public class EngineInstance extends BlockEntityInstance<EngineTileEntity> {
|
||||
|
||||
protected ModelData frame;
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ public class EngineRenderer<T extends EngineTileEntity> extends SafeTileEntityRe
|
|||
protected void renderSafe(T te, float partialTicks, PoseStack ms, MultiBufferSource buffer, int light,
|
||||
int overlay) {
|
||||
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
Block block = te.getBlockState()
|
||||
.getBlock();
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.jozufozu.flywheel.api.FlywheelRendered;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelBlock;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.FlywheelTileEntity;
|
||||
|
@ -18,7 +17,7 @@ import net.minecraft.world.phys.AABB;
|
|||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
|
||||
public class EngineTileEntity extends SmartTileEntity implements FlywheelRendered {
|
||||
public class EngineTileEntity extends SmartTileEntity {
|
||||
|
||||
public float appliedCapacity;
|
||||
public float appliedSpeed;
|
||||
|
|
|
@ -33,7 +33,7 @@ public class FurnaceEngineBlock extends EngineBlock implements ITE<FurnaceEngine
|
|||
|
||||
@Override
|
||||
protected boolean isValidBaseBlock(BlockState baseBlock, BlockGetter world, BlockPos pos) {
|
||||
return baseBlock.getBlock() instanceof AbstractFurnaceBlock;
|
||||
return FurnaceEngineModifiers.get().getEngineState(baseBlock).isEngine();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,7 +2,9 @@ package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
|||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Function;
|
||||
|
||||
import net.minecraft.world.level.block.AbstractFurnaceBlock;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
@ -10,23 +12,73 @@ import net.minecraftforge.registries.IRegistryDelegate;
|
|||
|
||||
public class FurnaceEngineModifiers {
|
||||
|
||||
public final static FurnaceEngineModifiers INSTANCE = new FurnaceEngineModifiers();
|
||||
private final static FurnaceEngineModifiers INSTANCE = new FurnaceEngineModifiers();
|
||||
|
||||
protected FurnaceEngineModifiers() {
|
||||
blockModifiers = new HashMap<>();
|
||||
blockActivators = new HashMap<>();
|
||||
}
|
||||
|
||||
protected Map<IRegistryDelegate<Block>, Float> blockModifiers = new HashMap<>();
|
||||
private final Map<IRegistryDelegate<Block>, Float> blockModifiers;
|
||||
private final Map<IRegistryDelegate<Block>, Function<BlockState, EngineState>> blockActivators;
|
||||
|
||||
public void register(IRegistryDelegate<Block> block, float modifier) {
|
||||
this.blockModifiers.put(block, modifier);
|
||||
}
|
||||
|
||||
public void register(IRegistryDelegate<Block> block, float modifier, Function<BlockState, EngineState> engineState) {
|
||||
this.blockModifiers.put(block, modifier);
|
||||
this.blockActivators.put(block, engineState);
|
||||
}
|
||||
|
||||
public float getModifierOrDefault(BlockState state, float defaultValue) {
|
||||
private float getModifierOrDefault(BlockState state, float defaultValue) {
|
||||
return blockModifiers.getOrDefault(state.getBlock().delegate, defaultValue);
|
||||
}
|
||||
|
||||
private Function<BlockState, EngineState> getEngineStateOrDefault(BlockState state, Function<BlockState, EngineState> engineState) {
|
||||
return blockActivators.getOrDefault(state.getBlock().delegate, engineState);
|
||||
}
|
||||
|
||||
public float getModifier(BlockState state) {
|
||||
return getModifierOrDefault(state, 1f);
|
||||
}
|
||||
|
||||
public EngineState getEngineState(BlockState state) {
|
||||
return getEngineStateOrDefault(state,
|
||||
s -> s.getBlock() instanceof AbstractFurnaceBlock && s.hasProperty(AbstractFurnaceBlock.LIT) ?
|
||||
(s.getValue(AbstractFurnaceBlock.LIT) ? EngineState.ACTIVE : EngineState.VALID) : EngineState.EMPTY).apply(state);
|
||||
}
|
||||
|
||||
public static void register() {
|
||||
INSTANCE.register(Blocks.BLAST_FURNACE.delegate, 2f);
|
||||
get().register(Blocks.BLAST_FURNACE.delegate, 2f);
|
||||
|
||||
/*
|
||||
Example:
|
||||
get().register(Blocks.REDSTONE_LAMP.delegate, 1f,
|
||||
s -> s.getBlock() instanceof RedstoneLampBlock && s.hasProperty(RedstoneLampBlock.LIT) ?
|
||||
(s.getValue(RedstoneLampBlock.LIT) ? EngineState.ACTIVE : EngineState.VALID) : EngineState.EMPTY);
|
||||
*/
|
||||
}
|
||||
|
||||
public static FurnaceEngineModifiers get() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
public enum EngineState {
|
||||
EMPTY,
|
||||
VALID,
|
||||
ACTIVE;
|
||||
|
||||
public boolean isEngine() {
|
||||
return this != EMPTY;
|
||||
}
|
||||
|
||||
public boolean isActive() {
|
||||
return this == ACTIVE;
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return this == EMPTY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package com.simibubi.create.content.contraptions.components.flywheel.engine;
|
||||
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.content.contraptions.components.flywheel.engine.FurnaceEngineModifiers.EngineState;
|
||||
import com.simibubi.create.foundation.block.BlockStressValues;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.world.level.block.AbstractFurnaceBlock;
|
||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
||||
|
@ -22,11 +22,12 @@ public class FurnaceEngineTileEntity extends EngineTileEntity {
|
|||
|
||||
public void updateFurnace() {
|
||||
BlockState state = level.getBlockState(EngineBlock.getBaseBlockPos(getBlockState(), worldPosition));
|
||||
if (!(state.getBlock() instanceof AbstractFurnaceBlock))
|
||||
EngineState engineState = FurnaceEngineModifiers.get().getEngineState(state);
|
||||
if (engineState.isEmpty())
|
||||
return;
|
||||
|
||||
float modifier = FurnaceEngineModifiers.INSTANCE.getModifier(state);
|
||||
boolean active = state.hasProperty(AbstractFurnaceBlock.LIT) && state.getValue(AbstractFurnaceBlock.LIT);
|
||||
float modifier = FurnaceEngineModifiers.get().getModifier(state);
|
||||
boolean active = engineState.isActive();
|
||||
float speed = active ? 16 * modifier : 0;
|
||||
float capacity =
|
||||
(float) (active ? BlockStressValues.getCapacity(AllBlocks.FURNACE_ENGINE.get())
|
||||
|
|
|
@ -15,6 +15,6 @@ public class MillStoneCogInstance extends SingleRotatingInstance {
|
|||
|
||||
@Override
|
||||
protected Instancer<RotatingData> getModel() {
|
||||
return getRotatingMaterial().getModel(AllBlockPartials.MILLSTONE_COG, tile.getBlockState());
|
||||
return getRotatingMaterial().getModel(AllBlockPartials.MILLSTONE_COG, blockEntity.getBlockState());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@ public class MechanicalMixerRenderer extends KineticTileEntityRenderer {
|
|||
protected void renderSafe(KineticTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
BlockState blockState = te.getBlockState();
|
||||
MechanicalMixerTileEntity mixer = (MechanicalMixerTileEntity) te;
|
||||
|
|
|
@ -2,7 +2,7 @@ package com.simibubi.create.content.contraptions.components.mixer;
|
|||
|
||||
import com.jozufozu.flywheel.api.Instancer;
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.IDynamicInstance;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.base.flwdata.RotatingData;
|
||||
|
@ -12,7 +12,7 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
|||
|
||||
import net.minecraft.core.Direction;
|
||||
|
||||
public class MixerInstance extends EncasedCogInstance implements IDynamicInstance {
|
||||
public class MixerInstance extends EncasedCogInstance implements DynamicInstance {
|
||||
|
||||
private final RotatingData mixerHead;
|
||||
private final OrientedData mixerPole;
|
||||
|
@ -42,7 +42,7 @@ public class MixerInstance extends EncasedCogInstance implements IDynamicInstanc
|
|||
protected Instancer<RotatingData> getCogModel() {
|
||||
return materialManager.defaultSolid()
|
||||
.material(AllMaterialSpecs.ROTATING)
|
||||
.getModel(AllBlockPartials.SHAFTLESS_COGWHEEL, tile.getBlockState());
|
||||
.getModel(AllBlockPartials.SHAFTLESS_COGWHEEL, blockEntity.getBlockState());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -31,7 +31,7 @@ public class MechanicalPressRenderer extends KineticTileEntityRenderer {
|
|||
int light, int overlay) {
|
||||
super.renderSafe(te, partialTicks, ms, buffer, light, overlay);
|
||||
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
BlockState blockState = te.getBlockState();
|
||||
float renderedHeadOffset = ((MechanicalPressTileEntity) te).getRenderedHeadOffset(partialTicks);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.simibubi.create.content.contraptions.components.press;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.IDynamicInstance;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.core.Materials;
|
||||
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
||||
import com.mojang.math.Quaternion;
|
||||
|
@ -11,7 +11,7 @@ import com.simibubi.create.content.contraptions.relays.encased.ShaftInstance;
|
|||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
|
||||
public class PressInstance extends ShaftInstance implements IDynamicInstance {
|
||||
public class PressInstance extends ShaftInstance implements DynamicInstance {
|
||||
|
||||
private final OrientedData pressHead;
|
||||
private final MechanicalPressTileEntity press;
|
||||
|
|
|
@ -23,7 +23,7 @@ public class SawInstance extends SingleRotatingInstance {
|
|||
if (blockState.getValue(BlockStateProperties.FACING)
|
||||
.getAxis()
|
||||
.isHorizontal()) {
|
||||
BlockState referenceState = blockState.rotate(tile.getLevel(), tile.getBlockPos(), Rotation.CLOCKWISE_180);
|
||||
BlockState referenceState = blockState.rotate(blockEntity.getLevel(), blockEntity.getBlockPos(), Rotation.CLOCKWISE_180);
|
||||
Direction facing = referenceState.getValue(BlockStateProperties.FACING);
|
||||
return getRotatingMaterial().getModel(AllBlockPartials.SHAFT_HALF, referenceState, facing);
|
||||
} else {
|
||||
|
|
|
@ -4,6 +4,7 @@ import static net.minecraft.world.level.block.state.properties.BlockStatePropert
|
|||
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.math.Vector3f;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
|
@ -18,7 +19,6 @@ import com.simibubi.create.foundation.tileEntity.behaviour.filtering.FilteringRe
|
|||
import com.simibubi.create.foundation.tileEntity.renderer.SafeTileEntityRenderer;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
|
@ -46,8 +46,7 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
|
|||
renderItems(te, partialTicks, ms, buffer, light, overlay);
|
||||
FilteringRenderer.renderOnTileEntity(te, partialTicks, ms, buffer, light, overlay);
|
||||
|
||||
if (Backend.getInstance()
|
||||
.canUseInstancing(te.getLevel()))
|
||||
if (Backend.canUseInstancing(te.getLevel()))
|
||||
return;
|
||||
|
||||
renderShaft(te, ms, buffer, light, overlay);
|
||||
|
@ -158,7 +157,7 @@ public class SawRenderer extends SafeTileEntityRenderer<SawTileEntity> {
|
|||
return KineticTileEntityRenderer.shaft(KineticTileEntityRenderer.getRotationAxisOf(te));
|
||||
}
|
||||
|
||||
public static void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public static void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer) {
|
||||
BlockState state = context.state;
|
||||
Direction facing = state.getValue(SawBlock.FACING);
|
||||
|
|
|
@ -499,9 +499,4 @@ public class SawTileEntity extends BlockBreakingKineticTileEntity {
|
|||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRenderNormally() {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.util.IdentityHashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.simibubi.create.AllTags.AllBlockTags;
|
|||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.content.contraptions.components.actors.AttachedActorBlock;
|
||||
import com.simibubi.create.content.contraptions.components.actors.HarvesterBlock;
|
||||
import com.simibubi.create.content.contraptions.components.actors.PloughBlock;
|
||||
import com.simibubi.create.content.contraptions.components.actors.PortableStorageInterfaceBlock;
|
||||
import com.simibubi.create.content.contraptions.components.crank.HandCrankBlock;
|
||||
import com.simibubi.create.content.contraptions.components.fan.NozzleBlock;
|
||||
|
@ -347,6 +348,11 @@ public class BlockMovementChecks {
|
|||
return state.getValue(BlockStateProperties.FACING) == facing;
|
||||
if (AllBlocks.MECHANICAL_BEARING.has(state))
|
||||
return state.getValue(BlockStateProperties.FACING) == facing;
|
||||
if (AllBlocks.MECHANICAL_HARVESTER.has(state))
|
||||
return state.getValue(HarvesterBlock.FACING) == facing;
|
||||
if (AllBlocks.MECHANICAL_PLOUGH.has(state))
|
||||
return state.getValue(PloughBlock.FACING) == facing;
|
||||
|
||||
if (AllBlocks.CART_ASSEMBLER.has(state))
|
||||
return Direction.DOWN == facing;
|
||||
if (AllBlocks.MECHANICAL_SAW.has(state))
|
||||
|
|
|
@ -25,8 +25,6 @@ import javax.annotation.Nullable;
|
|||
import org.apache.commons.lang3.tuple.MutablePair;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
|
||||
import com.jozufozu.flywheel.light.GridAlignedBB;
|
||||
import com.jozufozu.flywheel.light.ImmutableBox;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllInteractionBehaviours;
|
||||
import com.simibubi.create.AllMovementBehaviours;
|
||||
|
@ -874,9 +872,9 @@ public abstract class Contraption {
|
|||
}
|
||||
|
||||
ListTag paletteNBT = new ListTag();
|
||||
for(int i = 0; i < palette.getSize(); ++i)
|
||||
for(int i = 0; i < palette.getSize(); ++i)
|
||||
paletteNBT.add(NbtUtils.writeBlockState(palette.values.byId(i)));
|
||||
|
||||
|
||||
compound.put("Palette", paletteNBT);
|
||||
compound.put("BlockList", blockList);
|
||||
|
||||
|
@ -891,7 +889,7 @@ public abstract class Contraption {
|
|||
palette = new HashMapPalette<>(GameData.getBlockStateIDMap(), 16, (i, s) -> {
|
||||
throw new IllegalStateException("Palette Map index exceeded maximum");
|
||||
});
|
||||
|
||||
|
||||
ListTag list = c.getList("Palette", 10);
|
||||
palette.values.clear();
|
||||
for (int i = 0; i < list.size(); ++i)
|
||||
|
@ -1178,21 +1176,25 @@ public abstract class Contraption {
|
|||
|
||||
int radius = (int) (Math.ceil(Math.sqrt(getRadius(blocks, axis))));
|
||||
|
||||
GridAlignedBB betterBounds = GridAlignedBB.ofRadius(radius);
|
||||
int maxX = radius + 2;
|
||||
int maxY = radius + 2;
|
||||
int maxZ = radius + 2;
|
||||
int minX = -radius - 1;
|
||||
int minY = -radius - 1;
|
||||
int minZ = -radius - 1;
|
||||
|
||||
ImmutableBox contraptionBounds = GridAlignedBB.from(bounds);
|
||||
if (axis == Direction.Axis.X) {
|
||||
betterBounds.setMaxX(contraptionBounds.getMaxX());
|
||||
betterBounds.setMinX(contraptionBounds.getMinX());
|
||||
maxX = (int) bounds.maxX;
|
||||
minX = (int) bounds.minX;
|
||||
} else if (axis == Direction.Axis.Y) {
|
||||
betterBounds.setMaxY(contraptionBounds.getMaxY());
|
||||
betterBounds.setMinY(contraptionBounds.getMinY());
|
||||
maxY = (int) bounds.maxY;
|
||||
minY = (int) bounds.minY;
|
||||
} else if (axis == Direction.Axis.Z) {
|
||||
betterBounds.setMaxZ(contraptionBounds.getMaxZ());
|
||||
betterBounds.setMinZ(contraptionBounds.getMinZ());
|
||||
maxZ = (int) bounds.maxZ;
|
||||
minZ = (int) bounds.minZ;
|
||||
}
|
||||
|
||||
bounds = betterBounds.toAABB();
|
||||
bounds = new AABB(minX, minY, minZ, maxX, maxY, maxZ);
|
||||
}
|
||||
|
||||
public void addExtraInventories(Entity entity) {}
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.google.common.base.Predicates;
|
|||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllMovementBehaviours;
|
||||
import com.simibubi.create.content.contraptions.components.actors.BlockBreakingMovementBehaviour;
|
||||
import com.simibubi.create.content.contraptions.components.actors.HarvesterMovementBehaviour;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity.ContraptionRotationState;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.sync.ClientMotionPacket;
|
||||
import com.simibubi.create.foundation.collision.ContinuousOBBCollider.ContinuousSeparationManifold;
|
||||
|
@ -242,10 +243,10 @@ public class ContraptionCollider {
|
|||
boolean hasNormal = !collisionNormal.equals(Vec3.ZERO);
|
||||
boolean anyCollision = hardCollision || temporalCollision;
|
||||
|
||||
if (bounce > 0 && hasNormal && anyCollision && bounceEntity(entity, collisionNormal, contraptionEntity, bounce)) {
|
||||
entity.level.playSound(playerType == PlayerType.CLIENT ? (Player) entity : null,
|
||||
entity.getX(), entity.getY(), entity.getZ(), SoundEvents.SLIME_BLOCK_FALL,
|
||||
SoundSource.BLOCKS, .5f, 1);
|
||||
if (bounce > 0 && hasNormal && anyCollision
|
||||
&& bounceEntity(entity, collisionNormal, contraptionEntity, bounce)) {
|
||||
entity.level.playSound(playerType == PlayerType.CLIENT ? (Player) entity : null, entity.getX(),
|
||||
entity.getY(), entity.getZ(), SoundEvents.SLIME_BLOCK_FALL, SoundSource.BLOCKS, .5f, 1);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -339,25 +340,30 @@ public class ContraptionCollider {
|
|||
return false;
|
||||
|
||||
Vec3 contactPointMotion = contraption.getContactPointMotion(entity.position());
|
||||
Vec3 motion = entity.getDeltaMovement().subtract(contactPointMotion);
|
||||
Vec3 deltav = normal.scale(factor*2*motion.dot(normal));
|
||||
Vec3 motion = entity.getDeltaMovement()
|
||||
.subtract(contactPointMotion);
|
||||
Vec3 deltav = normal.scale(factor * 2 * motion.dot(normal));
|
||||
if (deltav.dot(deltav) < 0.1f)
|
||||
return false;
|
||||
entity.setDeltaMovement(entity.getDeltaMovement().subtract(deltav));
|
||||
return false;
|
||||
entity.setDeltaMovement(entity.getDeltaMovement()
|
||||
.subtract(deltav));
|
||||
return true;
|
||||
}
|
||||
|
||||
public static Vec3 getWorldToLocalTranslation(Entity entity, AbstractContraptionEntity contraptionEntity) {
|
||||
return getWorldToLocalTranslation(entity, contraptionEntity.getAnchorVec(), contraptionEntity.getRotationState());
|
||||
return getWorldToLocalTranslation(entity, contraptionEntity.getAnchorVec(),
|
||||
contraptionEntity.getRotationState());
|
||||
}
|
||||
|
||||
public static Vec3 getWorldToLocalTranslation(Entity entity, Vec3 anchorVec, ContraptionRotationState rotation) {
|
||||
return getWorldToLocalTranslation(entity, anchorVec, rotation.asMatrix(), rotation.getYawOffset());
|
||||
}
|
||||
|
||||
public static Vec3 getWorldToLocalTranslation(Entity entity, Vec3 anchorVec, Matrix3d rotationMatrix, float yawOffset) {
|
||||
public static Vec3 getWorldToLocalTranslation(Entity entity, Vec3 anchorVec, Matrix3d rotationMatrix,
|
||||
float yawOffset) {
|
||||
Vec3 entityPosition = entity.position();
|
||||
Vec3 centerY = new Vec3(0, entity.getBoundingBox().getYsize() / 2, 0);
|
||||
Vec3 centerY = new Vec3(0, entity.getBoundingBox()
|
||||
.getYsize() / 2, 0);
|
||||
Vec3 position = entityPosition;
|
||||
position = position.add(centerY);
|
||||
position = position.subtract(VecHelper.CENTER_OF_ORIGIN);
|
||||
|
@ -371,14 +377,16 @@ public class ContraptionCollider {
|
|||
}
|
||||
|
||||
public static Vec3 getWorldToLocalTranslation(Vec3 entity, AbstractContraptionEntity contraptionEntity) {
|
||||
return getWorldToLocalTranslation(entity, contraptionEntity.getAnchorVec(), contraptionEntity.getRotationState());
|
||||
return getWorldToLocalTranslation(entity, contraptionEntity.getAnchorVec(),
|
||||
contraptionEntity.getRotationState());
|
||||
}
|
||||
|
||||
public static Vec3 getWorldToLocalTranslation(Vec3 inPos, Vec3 anchorVec, ContraptionRotationState rotation) {
|
||||
return getWorldToLocalTranslation(inPos, anchorVec, rotation.asMatrix(), rotation.getYawOffset());
|
||||
}
|
||||
|
||||
public static Vec3 getWorldToLocalTranslation(Vec3 inPos, Vec3 anchorVec, Matrix3d rotationMatrix, float yawOffset) {
|
||||
public static Vec3 getWorldToLocalTranslation(Vec3 inPos, Vec3 anchorVec, Matrix3d rotationMatrix,
|
||||
float yawOffset) {
|
||||
Vec3 position = inPos;
|
||||
position = position.subtract(VecHelper.CENTER_OF_ORIGIN);
|
||||
position = position.subtract(anchorVec);
|
||||
|
@ -436,8 +444,7 @@ public class ContraptionCollider {
|
|||
return entity instanceof LocalPlayer;
|
||||
}
|
||||
|
||||
private static List<VoxelShape> getPotentiallyCollidedShapes(Level world, Contraption contraption,
|
||||
AABB localBB) {
|
||||
private static List<VoxelShape> getPotentiallyCollidedShapes(Level world, Contraption contraption, AABB localBB) {
|
||||
|
||||
double height = localBB.getYsize();
|
||||
double width = localBB.getXsize();
|
||||
|
@ -536,16 +543,24 @@ public class ContraptionCollider {
|
|||
BlockState collidedState = world.getBlockState(colliderPos);
|
||||
StructureBlockInfo blockInfo = contraption.getBlocks()
|
||||
.get(pos);
|
||||
boolean emptyCollider = collidedState.getCollisionShape(world, pos)
|
||||
.isEmpty();
|
||||
|
||||
if (AllMovementBehaviours.contains(blockInfo.state.getBlock())) {
|
||||
MovementBehaviour movementBehaviour = AllMovementBehaviours.of(blockInfo.state.getBlock());
|
||||
if (movementBehaviour instanceof BlockBreakingMovementBehaviour) {
|
||||
BlockBreakingMovementBehaviour behaviour = (BlockBreakingMovementBehaviour) movementBehaviour;
|
||||
if (!behaviour.canBreak(world, colliderPos, collidedState)
|
||||
&& !collidedState.getCollisionShape(world, pos)
|
||||
.isEmpty()) {
|
||||
if (!behaviour.canBreak(world, colliderPos, collidedState) && !emptyCollider)
|
||||
return true;
|
||||
continue;
|
||||
}
|
||||
if (movementBehaviour instanceof HarvesterMovementBehaviour) {
|
||||
HarvesterMovementBehaviour harvesterMovementBehaviour =
|
||||
(HarvesterMovementBehaviour) movementBehaviour;
|
||||
if (!harvesterMovementBehaviour.isValidCrop(world, colliderPos, collidedState)
|
||||
&& !harvesterMovementBehaviour.isValidOther(world, colliderPos, collidedState)
|
||||
&& !emptyCollider)
|
||||
return true;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -556,9 +571,7 @@ public class ContraptionCollider {
|
|||
if (collidedState.getBlock() instanceof CocoaBlock)
|
||||
continue;
|
||||
if (!collidedState.getMaterial()
|
||||
.isReplaceable()
|
||||
&& !collidedState.getCollisionShape(world, colliderPos)
|
||||
.isEmpty()) {
|
||||
.isReplaceable() && !emptyCollider) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement;
|
||||
|
||||
import com.jozufozu.flywheel.light.GPULightVolume;
|
||||
import com.jozufozu.flywheel.light.GridAlignedBB;
|
||||
import com.jozufozu.flywheel.light.ImmutableBox;
|
||||
import com.jozufozu.flywheel.light.LightListener;
|
||||
import com.jozufozu.flywheel.light.LightProvider;
|
||||
import com.jozufozu.flywheel.light.LightUpdater;
|
||||
import com.jozufozu.flywheel.light.ListenerStatus;
|
||||
import com.jozufozu.flywheel.util.box.GridAlignedBB;
|
||||
import com.jozufozu.flywheel.util.box.ImmutableBox;
|
||||
|
||||
import net.minecraft.world.level.LightLayer;
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import com.simibubi.create.foundation.utility.worldWrappers.WrappedWorld;
|
|||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.sounds.SoundSource;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.Level;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
|
@ -14,15 +15,24 @@ import net.minecraft.world.phys.Vec3;
|
|||
|
||||
public class ContraptionWorld extends WrappedWorld {
|
||||
final Contraption contraption;
|
||||
private final int minY;
|
||||
private final int height;
|
||||
|
||||
public ContraptionWorld(Level world, Contraption contraption) {
|
||||
public ContraptionWorld(Level world, Contraption contraption) {
|
||||
super(world);
|
||||
|
||||
this.contraption = contraption;
|
||||
}
|
||||
|
||||
minY = nextMultipleOf16(contraption.bounds.minY);
|
||||
height = nextMultipleOf16(contraption.bounds.maxY) - minY;
|
||||
}
|
||||
|
||||
@Override
|
||||
// https://math.stackexchange.com/questions/291468
|
||||
private static int nextMultipleOf16(double a) {
|
||||
return (((Math.abs((int) a) - 1) | 15) + 1) * Mth.sign(a);
|
||||
}
|
||||
|
||||
@Override
|
||||
public BlockState getBlockState(BlockPos pos) {
|
||||
StructureTemplate.StructureBlockInfo blockInfo = contraption.getBlocks().get(pos);
|
||||
|
||||
|
@ -46,4 +56,17 @@ public class ContraptionWorld extends WrappedWorld {
|
|||
public void playLocalSound(double x, double y, double z, SoundEvent p_184134_7_, SoundSource p_184134_8_, float p_184134_9_, float p_184134_10_, boolean p_184134_11_) {
|
||||
world.playLocalSound(x, y, z, p_184134_7_, p_184134_8_, p_184134_9_, p_184134_10_, p_184134_11_);
|
||||
}
|
||||
|
||||
// Ensure that we provide accurate information about ContraptionWorld height to mods (such as Starlight) which
|
||||
// expect Levels to only have blocks located in chunks within their height range.
|
||||
|
||||
@Override
|
||||
public int getHeight() {
|
||||
return height;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMinBuildHeight() {
|
||||
return minY;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,10 +3,10 @@ package com.simibubi.create.content.contraptions.components.structureMovement;
|
|||
import javax.annotation.Nullable;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ContraptionMatrices;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.core.BlockPos;
|
||||
|
@ -66,12 +66,12 @@ public abstract class MovementBehaviour {
|
|||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer) {}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
@Nullable
|
||||
public ActorInstance createInstance(MaterialManager materialManager, PlacementSimulationWorld simulationWorld, MovementContext context) {
|
||||
public ActorInstance createInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement;
|
||||
|
||||
import com.jozufozu.flywheel.light.GridAlignedBB;
|
||||
import com.jozufozu.flywheel.light.ImmutableBox;
|
||||
import com.jozufozu.flywheel.light.LightProvider;
|
||||
import com.jozufozu.flywheel.light.MovingListener;
|
||||
import com.jozufozu.flywheel.util.box.GridAlignedBB;
|
||||
import com.jozufozu.flywheel.util.box.ImmutableBox;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
|
||||
public class NonStationaryLighter<C extends Contraption> extends ContraptionLighter<C> implements MovingListener {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement.bearing;
|
||||
|
||||
import com.jozufozu.flywheel.light.GridAlignedBB;
|
||||
import com.jozufozu.flywheel.util.box.GridAlignedBB;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.Contraption;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionLighter;
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement.bearing;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.IDynamicInstance;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
||||
import com.mojang.math.Quaternion;
|
||||
|
@ -15,7 +15,7 @@ import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
|||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
|
||||
public class BearingInstance<B extends KineticTileEntity & IBearingTileEntity> extends BackHalfShaftInstance implements IDynamicInstance {
|
||||
public class BearingInstance<B extends KineticTileEntity & IBearingTileEntity> extends BackHalfShaftInstance implements DynamicInstance {
|
||||
final B bearing;
|
||||
|
||||
final OrientedData topInstance;
|
||||
|
|
|
@ -27,7 +27,7 @@ public class BearingRenderer extends KineticTileEntityRenderer {
|
|||
protected void renderSafe(KineticTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
super.renderSafe(te, partialTicks, ms, buffer, light, overlay);
|
||||
|
||||
|
|
|
@ -420,11 +420,6 @@ public class ClockworkBearingTileEntity extends KineticTileEntity
|
|||
return worldPosition;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRenderNormally() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setAngle(float forcedAngle) {
|
||||
hourAngle = forcedAngle;
|
||||
}
|
||||
|
|
|
@ -321,11 +321,6 @@ public class MechanicalBearingTileEntity extends GeneratingKineticTileEntity
|
|||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRenderNormally() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setAngle(float forcedAngle) {
|
||||
angle = forcedAngle;
|
||||
}
|
||||
|
|
|
@ -3,13 +3,13 @@ package com.simibubi.create.content.contraptions.components.structureMovement.be
|
|||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.core.Materials;
|
||||
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.mojang.math.Quaternion;
|
||||
import com.mojang.math.Vector3f;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.MovementContext;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.render.ActorInstance;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
|
@ -23,7 +23,7 @@ public class StabilizedBearingInstance extends ActorInstance {
|
|||
final Vector3f rotationAxis;
|
||||
final Quaternion blockOrientation;
|
||||
|
||||
public StabilizedBearingInstance(MaterialManager materialManager, PlacementSimulationWorld simulationWorld, MovementContext context) {
|
||||
public StabilizedBearingInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
|
||||
super(materialManager, simulationWorld, context);
|
||||
|
||||
BlockState blockState = context.state;
|
||||
|
|
|
@ -5,6 +5,7 @@ import javax.annotation.Nullable;
|
|||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.backend.Backend;
|
||||
import com.jozufozu.flywheel.core.PartialModel;
|
||||
import com.jozufozu.flywheel.core.virtual.VirtualRenderWorld;
|
||||
import com.mojang.math.Quaternion;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.AbstractContraptionEntity;
|
||||
|
@ -18,7 +19,6 @@ import com.simibubi.create.content.contraptions.components.structureMovement.ren
|
|||
import com.simibubi.create.foundation.render.CachedBufferer;
|
||||
import com.simibubi.create.foundation.render.SuperByteBuffer;
|
||||
import com.simibubi.create.foundation.utility.AnimationTickHolder;
|
||||
import com.simibubi.create.foundation.utility.worldWrappers.PlacementSimulationWorld;
|
||||
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
|
@ -32,9 +32,9 @@ public class StabilizedBearingMovementBehaviour extends MovementBehaviour {
|
|||
|
||||
@Override
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
public void renderInContraption(MovementContext context, PlacementSimulationWorld renderWorld,
|
||||
public void renderInContraption(MovementContext context, VirtualRenderWorld renderWorld,
|
||||
ContraptionMatrices matrices, MultiBufferSource buffer) {
|
||||
if (Backend.getInstance().canUseInstancing()) return;
|
||||
if (Backend.isOn()) return;
|
||||
|
||||
Direction facing = context.state.getValue(BlockStateProperties.FACING);
|
||||
PartialModel top = AllBlockPartials.BEARING_TOP;
|
||||
|
@ -70,7 +70,7 @@ public class StabilizedBearingMovementBehaviour extends MovementBehaviour {
|
|||
|
||||
@Nullable
|
||||
@Override
|
||||
public ActorInstance createInstance(MaterialManager materialManager, PlacementSimulationWorld simulationWorld, MovementContext context) {
|
||||
public ActorInstance createInstance(MaterialManager materialManager, VirtualRenderWorld simulationWorld, MovementContext context) {
|
||||
return new StabilizedBearingInstance(materialManager, simulationWorld, context);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement.chassis;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.IDynamicInstance;
|
||||
import com.jozufozu.flywheel.backend.instancing.tile.TileEntityInstance;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.backend.instancing.blockentity.BlockEntityInstance;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
|
@ -12,7 +12,7 @@ import net.minecraft.client.Minecraft;
|
|||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.util.Mth;
|
||||
|
||||
public class StickerInstance extends TileEntityInstance<StickerTileEntity> implements IDynamicInstance {
|
||||
public class StickerInstance extends BlockEntityInstance<StickerTileEntity> implements DynamicInstance {
|
||||
|
||||
float lastOffset = Float.NaN;
|
||||
final Direction facing;
|
||||
|
@ -35,7 +35,7 @@ public class StickerInstance extends TileEntityInstance<StickerTileEntity> imple
|
|||
|
||||
@Override
|
||||
public void beginFrame() {
|
||||
float offset = tile.piston.getValue(AnimationTickHolder.getPartialTicks());
|
||||
float offset = blockEntity.piston.getValue(AnimationTickHolder.getPartialTicks());
|
||||
|
||||
if (fakeWorld)
|
||||
offset = this.offset;
|
||||
|
@ -51,7 +51,7 @@ public class StickerInstance extends TileEntityInstance<StickerTileEntity> imple
|
|||
private void animateHead(float offset) {
|
||||
head.loadIdentity()
|
||||
.translate(getInstancePosition())
|
||||
.nudge(tile.hashCode())
|
||||
.nudge(blockEntity.hashCode())
|
||||
.centre()
|
||||
.rotateY(AngleHelper.horizontalAngle(facing))
|
||||
.rotateX(AngleHelper.verticalAngle(facing) + 90)
|
||||
|
|
|
@ -25,7 +25,7 @@ public class StickerRenderer extends SafeTileEntityRenderer<StickerTileEntity> {
|
|||
protected void renderSafe(StickerTileEntity te, float partialTicks, PoseStack ms, MultiBufferSource buffer,
|
||||
int light, int overlay) {
|
||||
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
BlockState state = te.getBlockState();
|
||||
SuperByteBuffer head = CachedBufferer.partial(AllBlockPartials.STICKER_HEAD, state);
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.components.structureMovement.ch
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import com.jozufozu.flywheel.api.FlywheelRendered;
|
||||
import com.jozufozu.flywheel.backend.instancing.InstancedRenderDispatcher;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllSoundEvents;
|
||||
|
@ -23,7 +22,7 @@ import net.minecraftforge.api.distmarker.Dist;
|
|||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.fml.DistExecutor;
|
||||
|
||||
public class StickerTileEntity extends SmartTileEntity implements FlywheelRendered {
|
||||
public class StickerTileEntity extends SmartTileEntity {
|
||||
|
||||
LerpedFloat piston;
|
||||
boolean update;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement.gantry;
|
||||
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.IDynamicInstance;
|
||||
import com.jozufozu.flywheel.api.instance.DynamicInstance;
|
||||
import com.jozufozu.flywheel.core.materials.model.ModelData;
|
||||
import com.simibubi.create.AllBlockPartials;
|
||||
import com.simibubi.create.content.contraptions.base.KineticTileEntity;
|
||||
|
@ -14,7 +14,7 @@ import net.minecraft.core.BlockPos;
|
|||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.util.Mth;
|
||||
|
||||
public class GantryCarriageInstance extends ShaftInstance implements IDynamicInstance {
|
||||
public class GantryCarriageInstance extends ShaftInstance implements DynamicInstance {
|
||||
|
||||
private final ModelData gantryCogs;
|
||||
|
||||
|
@ -56,7 +56,7 @@ public class GantryCarriageInstance extends ShaftInstance implements IDynamicIns
|
|||
}
|
||||
|
||||
private float getCogAngle() {
|
||||
return GantryCarriageRenderer.getAngleForTe(tile, visualPos, rotationAxis) * rotationMult;
|
||||
return GantryCarriageRenderer.getAngleForTe(blockEntity, visualPos, rotationAxis) * rotationMult;
|
||||
}
|
||||
|
||||
private void animateCogs(float cogAngle) {
|
||||
|
|
|
@ -31,7 +31,7 @@ public class GantryCarriageRenderer extends KineticTileEntityRenderer {
|
|||
int light, int overlay) {
|
||||
super.renderSafe(te, partialTicks, ms, buffer, light, overlay);
|
||||
|
||||
if (Backend.getInstance().canUseInstancing(te.getLevel())) return;
|
||||
if (Backend.canUseInstancing(te.getLevel())) return;
|
||||
|
||||
BlockState state = te.getBlockState();
|
||||
Direction facing = state.getValue(GantryCarriageBlock.FACING);
|
||||
|
|
|
@ -171,9 +171,4 @@ public class GantryCarriageTileEntity extends KineticTileEntity implements IDisp
|
|||
BlockEntity te = level.getBlockEntity(worldPosition.relative(facing));
|
||||
return te instanceof GantryShaftTileEntity && ((GantryShaftTileEntity) te).canAssembleOn();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRenderNormally() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,35 +3,26 @@ package com.simibubi.create.content.contraptions.components.structureMovement.gl
|
|||
import com.jozufozu.flywheel.api.Instancer;
|
||||
import com.jozufozu.flywheel.api.MaterialGroup;
|
||||
import com.jozufozu.flywheel.api.MaterialManager;
|
||||
import com.jozufozu.flywheel.api.instance.ITickableInstance;
|
||||
import com.jozufozu.flywheel.backend.gl.attrib.VertexFormat;
|
||||
import com.jozufozu.flywheel.api.instance.TickableInstance;
|
||||
import com.jozufozu.flywheel.backend.instancing.entity.EntityInstance;
|
||||
import com.jozufozu.flywheel.core.Formats;
|
||||
import com.jozufozu.flywheel.core.Materials;
|
||||
import com.jozufozu.flywheel.core.instancing.ConditionalInstance;
|
||||
import com.jozufozu.flywheel.core.materials.oriented.OrientedData;
|
||||
import com.jozufozu.flywheel.core.model.Model;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.mojang.math.Quaternion;
|
||||
import com.simibubi.create.AllItems;
|
||||
import com.simibubi.create.AllStitchedTextures;
|
||||
import com.simibubi.create.Create;
|
||||
import com.simibubi.create.foundation.utility.AngleHelper;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.level.LightLayer;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class GlueInstance extends EntityInstance<SuperGlueEntity> implements ITickableInstance {
|
||||
public class GlueInstance extends EntityInstance<SuperGlueEntity> implements TickableInstance {
|
||||
|
||||
private static final boolean USE_ATLAS = false;
|
||||
private static final ResourceLocation TEXTURE = Create.asResource("textures/entity/super_glue/slime.png");
|
||||
|
||||
private final Quaternion rotation;
|
||||
|
@ -52,9 +43,9 @@ public class GlueInstance extends EntityInstance<SuperGlueEntity> implements ITi
|
|||
}
|
||||
|
||||
private Instancer<OrientedData> getInstancer(MaterialManager materialManager, SuperGlueEntity entity) {
|
||||
MaterialGroup group = USE_ATLAS ? materialManager.defaultCutout() : materialManager.cutout(RenderType.entityCutout(TEXTURE));
|
||||
MaterialGroup group = GlueModel.USE_ATLAS ? materialManager.defaultCutout() : materialManager.cutout(RenderType.entityCutout(TEXTURE));
|
||||
|
||||
return group.material(Materials.ORIENTED).model(entity.getType(), GlueModel::new);
|
||||
return group.material(Materials.ORIENTED).model(entity.getType(), GlueModel::get);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -95,75 +86,4 @@ public class GlueInstance extends EntityInstance<SuperGlueEntity> implements ITi
|
|||
|| AllItems.SUPER_GLUE.isIn(player.getOffhandItem());
|
||||
}
|
||||
|
||||
public static class GlueModel implements Model {
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return "glue";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void buffer(VertexConsumer buffer) {
|
||||
Vec3 diff = Vec3.atLowerCornerOf(Direction.SOUTH.getNormal());
|
||||
Vec3 extension = diff.normalize()
|
||||
.scale(1 / 32f - 1 / 128f);
|
||||
|
||||
Vec3 plane = VecHelper.axisAlingedPlaneOf(diff);
|
||||
Direction.Axis axis = Direction.getNearest(diff.x, diff.y, diff.z)
|
||||
.getAxis();
|
||||
|
||||
Vec3 start = Vec3.ZERO.subtract(extension);
|
||||
Vec3 end = Vec3.ZERO.add(extension);
|
||||
|
||||
plane = plane.scale(1 / 2f);
|
||||
Vec3 a1 = plane.add(start);
|
||||
Vec3 b1 = plane.add(end);
|
||||
plane = VecHelper.rotate(plane, -90, axis);
|
||||
Vec3 a2 = plane.add(start);
|
||||
Vec3 b2 = plane.add(end);
|
||||
plane = VecHelper.rotate(plane, -90, axis);
|
||||
Vec3 a3 = plane.add(start);
|
||||
Vec3 b3 = plane.add(end);
|
||||
plane = VecHelper.rotate(plane, -90, axis);
|
||||
Vec3 a4 = plane.add(start);
|
||||
Vec3 b4 = plane.add(end);
|
||||
|
||||
float minU;
|
||||
float maxU;
|
||||
float minV;
|
||||
float maxV;
|
||||
|
||||
if (USE_ATLAS) {
|
||||
TextureAtlasSprite sprite = AllStitchedTextures.SUPER_GLUE.get();
|
||||
minU = sprite.getU0();
|
||||
maxU = sprite.getU1();
|
||||
minV = sprite.getV0();
|
||||
maxV = sprite.getV1();
|
||||
} else {
|
||||
minU = minV = 0;
|
||||
maxU = maxV = 1;
|
||||
}
|
||||
|
||||
// inside quad
|
||||
buffer.vertex(a1.x, a1.y, a1.z).normal(0, 0, -1f).uv(maxU, minV).endVertex();
|
||||
buffer.vertex(a2.x, a2.y, a2.z).normal(0, 0, -1f).uv(maxU, maxV).endVertex();
|
||||
buffer.vertex(a3.x, a3.y, a3.z).normal(0, 0, -1f).uv(minU, maxV).endVertex();
|
||||
buffer.vertex(a4.x, a4.y, a4.z).normal(0, 0, -1f).uv(minU, minV).endVertex();
|
||||
// outside quad
|
||||
buffer.vertex(b4.x, b4.y, b4.z).normal(0, 0, 1f).uv(minU, minV).endVertex();
|
||||
buffer.vertex(b3.x, b3.y, b3.z).normal(0, 0, 1f).uv(minU, maxV).endVertex();
|
||||
buffer.vertex(b2.x, b2.y, b2.z).normal(0, 0, 1f).uv(maxU, maxV).endVertex();
|
||||
buffer.vertex(b1.x, b1.y, b1.z).normal(0, 0, 1f).uv(maxU, minV).endVertex();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int vertexCount() {
|
||||
return 8;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VertexFormat format() {
|
||||
return Formats.UNLIT_MODEL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,99 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement.glue;
|
||||
|
||||
import com.jozufozu.flywheel.api.vertex.VertexList;
|
||||
import com.jozufozu.flywheel.core.Formats;
|
||||
import com.jozufozu.flywheel.core.model.Model;
|
||||
import com.jozufozu.flywheel.core.vertex.PosTexNormalWriterUnsafe;
|
||||
import com.mojang.blaze3d.platform.MemoryTracker;
|
||||
import com.simibubi.create.AllStitchedTextures;
|
||||
import com.simibubi.create.foundation.utility.VecHelper;
|
||||
|
||||
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
public class GlueModel implements Model {
|
||||
|
||||
public static final GlueModel INSTANCE = new GlueModel();
|
||||
static final boolean USE_ATLAS = false;
|
||||
|
||||
public static GlueModel get() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private final VertexList reader;
|
||||
|
||||
private GlueModel() {
|
||||
PosTexNormalWriterUnsafe writer = Formats.POS_TEX_NORMAL.createWriter(MemoryTracker.create(size()));
|
||||
createGlueModel(writer);
|
||||
reader = writer.intoReader();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String name() {
|
||||
return "glue";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int vertexCount() {
|
||||
return 8;
|
||||
}
|
||||
|
||||
@Override
|
||||
public VertexList getReader() {
|
||||
return reader;
|
||||
}
|
||||
|
||||
public static void createGlueModel(PosTexNormalWriterUnsafe buffer) {
|
||||
Vec3 diff = Vec3.atLowerCornerOf(Direction.SOUTH.getNormal());
|
||||
Vec3 extension = diff.normalize()
|
||||
.scale(1 / 32f - 1 / 128f);
|
||||
|
||||
Vec3 plane = VecHelper.axisAlingedPlaneOf(diff);
|
||||
Direction.Axis axis = Direction.getNearest(diff.x, diff.y, diff.z)
|
||||
.getAxis();
|
||||
|
||||
Vec3 start = Vec3.ZERO.subtract(extension);
|
||||
Vec3 end = Vec3.ZERO.add(extension);
|
||||
|
||||
plane = plane.scale(1 / 2f);
|
||||
Vec3 a1 = plane.add(start);
|
||||
Vec3 b1 = plane.add(end);
|
||||
plane = VecHelper.rotate(plane, -90, axis);
|
||||
Vec3 a2 = plane.add(start);
|
||||
Vec3 b2 = plane.add(end);
|
||||
plane = VecHelper.rotate(plane, -90, axis);
|
||||
Vec3 a3 = plane.add(start);
|
||||
Vec3 b3 = plane.add(end);
|
||||
plane = VecHelper.rotate(plane, -90, axis);
|
||||
Vec3 a4 = plane.add(start);
|
||||
Vec3 b4 = plane.add(end);
|
||||
|
||||
float minU;
|
||||
float maxU;
|
||||
float minV;
|
||||
float maxV;
|
||||
|
||||
if (USE_ATLAS) {
|
||||
TextureAtlasSprite sprite = AllStitchedTextures.SUPER_GLUE.get();
|
||||
minU = sprite.getU0();
|
||||
maxU = sprite.getU1();
|
||||
minV = sprite.getV0();
|
||||
maxV = sprite.getV1();
|
||||
} else {
|
||||
minU = minV = 0;
|
||||
maxU = maxV = 1;
|
||||
}
|
||||
|
||||
// inside quad
|
||||
buffer.putVertex((float) a1.x, (float) a1.y, (float) a1.z, 0, 0, -1, maxU, minV);
|
||||
buffer.putVertex((float) a2.x, (float) a2.y, (float) a2.z, 0, 0, -1, maxU, maxV);
|
||||
buffer.putVertex((float) a3.x, (float) a3.y, (float) a3.z, 0, 0, -1, minU, maxV);
|
||||
buffer.putVertex((float) a4.x, (float) a4.y, (float) a4.z, 0, 0, -1, minU, minV);
|
||||
// outside quad
|
||||
buffer.putVertex((float) b4.x, (float) b4.y, (float) b4.z, 0, 0, 1f, minU, minV);
|
||||
buffer.putVertex((float) b3.x, (float) b3.y, (float) b3.z, 0, 0, 1f, minU, maxV);
|
||||
buffer.putVertex((float) b2.x, (float) b2.y, (float) b2.z, 0, 0, 1f, maxU, maxV);
|
||||
buffer.putVertex((float) b1.x, (float) b1.y, (float) b1.z, 0, 0, 1f, maxU, minV);
|
||||
}
|
||||
}
|
|
@ -4,7 +4,6 @@ import javax.annotation.Nullable;
|
|||
|
||||
import org.apache.commons.lang3.Validate;
|
||||
|
||||
import com.jozufozu.flywheel.api.FlywheelRendered;
|
||||
import com.simibubi.create.AllBlocks;
|
||||
import com.simibubi.create.AllEntityTypes;
|
||||
import com.simibubi.create.AllItems;
|
||||
|
@ -68,7 +67,7 @@ import net.minecraftforge.network.NetworkHooks;
|
|||
import net.minecraftforge.network.PacketDistributor;
|
||||
|
||||
public class SuperGlueEntity extends Entity
|
||||
implements IEntityAdditionalSpawnData, ISpecialEntityItemRequirement, FlywheelRendered {
|
||||
implements IEntityAdditionalSpawnData, ISpecialEntityItemRequirement {
|
||||
|
||||
private int validationTimer;
|
||||
protected BlockPos hangingPosition;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package com.simibubi.create.content.contraptions.components.structureMovement.piston;
|
||||
|
||||
import com.jozufozu.flywheel.light.GridAlignedBB;
|
||||
import com.jozufozu.flywheel.util.box.GridAlignedBB;
|
||||
import com.simibubi.create.content.contraptions.components.structureMovement.ContraptionLighter;
|
||||
|
||||
import net.minecraft.core.Vec3i;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue