Merge branch 'mc1.16/dev' into mc1.16/flw/vanilla-opt

This commit is contained in:
Jozufozu 2021-07-22 14:10:20 -07:00
commit b188f97ae0
67 changed files with 2624 additions and 2103 deletions

View file

@ -4,7 +4,7 @@ org.gradle.jvmargs = -Xmx3G
org.gradle.daemon = false
# mod version info
mod_version = 0.3.2b
mod_version = 0.3.2c
minecraft_version = 1.16.5
forge_version = 36.1.32

View file

@ -425,21 +425,21 @@ a3a11524cd3515fc01d905767b4b7ea782adaf03 assets/create/blockstates/yellow_seat.j
6801fa1f466f172700e573e5b8ee8ee5f9ca4583 assets/create/blockstates/yellow_valve_handle.json
7f39521b211441f5c3e06d60c5978cebe16cacfb assets/create/blockstates/zinc_block.json
b7181bcd8182b2f17088e5aa881f374c9c65470c assets/create/blockstates/zinc_ore.json
e1d3c02695cbd2ee7bbede97f72941835634a3a5 assets/create/lang/en_ud.json
1c0f01963b426cc119425e5201ec2415e3236383 assets/create/lang/en_us.json
13e9636b1b78008efdf354fe8535f2f19fa5d639 assets/create/lang/unfinished/de_de.json
9f9cdf45f255ac09090f9bc2d21419979c5c585c assets/create/lang/unfinished/es_es.json
d45414b7f28ac2cc821021d3e0b010a8b9904e6b assets/create/lang/unfinished/es_mx.json
ffcb0ea206af4555e8f6e5d391766ed721a6a637 assets/create/lang/unfinished/fr_fr.json
e6c7bc95ef9f798c00ff8bca6c3a2f7db1bdea97 assets/create/lang/unfinished/it_it.json
0211e888290ccf157673719396b59c1600f9a038 assets/create/lang/unfinished/ja_jp.json
7c7c3fbc64f98504b5ec99c36ce2ce2526b1d2ac assets/create/lang/unfinished/ko_kr.json
2b219b17dd8f21c444a100a88813a918416f42e3 assets/create/lang/unfinished/nl_nl.json
cb27026452c7117c271c80d792a589aa7f6b624f assets/create/lang/unfinished/pl_pl.json
03662aadb7d569baafcaf4cd12eb9cd50dbcb8b4 assets/create/lang/unfinished/pt_br.json
d40ac7c8deeef6b96fdd012117d1f3f67c60e4e0 assets/create/lang/unfinished/ru_ru.json
f43c968e694489ab3c9419b9522b1f2543551bdc assets/create/lang/unfinished/zh_cn.json
521428d50af44282bae3e0fa50c150fe6a7e9c1a assets/create/lang/unfinished/zh_tw.json
58e72b5fe2423b661e4892a817e08985c3944318 assets/create/lang/en_ud.json
6d3a0bf566fc8de302cd48ae4686582cb78110b5 assets/create/lang/en_us.json
67dce8f635842cd12a9ae98fedd492b4cfb9eb28 assets/create/lang/unfinished/de_de.json
83079afe226e306ea0c144afdb62cd54385ade16 assets/create/lang/unfinished/es_es.json
e357c238bb1b704d997434beebace6424f5a6abf assets/create/lang/unfinished/es_mx.json
67d49ab1b8a6d253a0b402021e40b3ead6ad4407 assets/create/lang/unfinished/fr_fr.json
991986bd6fffc6c9ac170451c2bc9897f451ce3f assets/create/lang/unfinished/it_it.json
4ff92f6333ec6a831a30a1c0e01f6cb40035b531 assets/create/lang/unfinished/ja_jp.json
eeadeb375d666a118a106ff413b5b3befefaaae5 assets/create/lang/unfinished/ko_kr.json
1a5f20e1c0dd6fdaa872d7cfa29c40f5223de3ae assets/create/lang/unfinished/nl_nl.json
7f9feb8db7cc5f42050e5f927ea764e2940c9a7d assets/create/lang/unfinished/pl_pl.json
8ea9e0639ac1a143baa7f82885ebd413bffefd01 assets/create/lang/unfinished/pt_br.json
0b42660049fbf141e9cc9501454dfdf7a3e71816 assets/create/lang/unfinished/ru_ru.json
52f37952e0167f97d5cf1e4d5b2ed5eccd379ea6 assets/create/lang/unfinished/zh_cn.json
355e85057e3d39d51f7aaee908884db96e4bfdd9 assets/create/lang/unfinished/zh_tw.json
487a511a01b2a4531fb672f917922312db78f958 assets/create/models/block/acacia_window.json
b48060cba1a382f373a05bf0039054053eccf076 assets/create/models/block/acacia_window_pane_noside.json
3066db1bf03cffa1a9c7fbacf47ae586632f4eb3 assets/create/models/block/acacia_window_pane_noside_alt.json
@ -1316,6 +1316,7 @@ f56bf22324faf8958eaef4d94b958f1108d52e5a assets/create/models/item/copper_tiles.
5583368909c319acfcf0f7a419bedf23272fe613 assets/create/models/item/copper_valve_handle.json
4e253e7c0626dfd76e2d39786ce1a34e0baaa62d assets/create/models/item/crafter_slot_cover.json
1f947dafff30da701b7675f5b026ccab3129b079 assets/create/models/item/crafting_blueprint.json
6fa0ffd887f51034d7ac923b1cabb6ab44d33fe9 assets/create/models/item/creative_cake.json
7b333dea353afaa27b182aedc647c9e9e34e92ef assets/create/models/item/creative_crate.json
f7d06c52c3ca8c22ad67f5741471f06ac22e7fcb assets/create/models/item/creative_fluid_tank.json
5b39403f6c81f05e566b621b62e267267de47c41 assets/create/models/item/creative_motor.json
@ -1699,7 +1700,7 @@ d080b1b25e5bc8baf5aee68691b08c7f12ece3b0 assets/create/models/item/windmill_bear
a80fb25a0b655e76be986b5b49fcb0f03461a1ab assets/create/models/item/zinc_nugget.json
b1689617190c05ef34bd18456b0c7ae09bb3210f assets/create/models/item/zinc_ore.json
58880e397902f8ca5b3b59ed4423e626109ddc4c assets/create/sounds.json
5d0cc4c0255dc241e61c173b31ddca70c88d08e4 data/create/advancements/aesthetics.json
0f1b4b980afba9bf2caf583b88e261bba8b10313 data/create/advancements/aesthetics.json
187921fa131b06721bfaf63f2623a28c141aae9a data/create/advancements/andesite_alloy.json
0ea2db7173b5be28b289ea7c9a6a0cf5805c60c7 data/create/advancements/andesite_casing.json
83c046bd200623933545c9e4326f782fb02c87fa data/create/advancements/arm_blaze_burner.json
@ -3754,7 +3755,7 @@ eac71740fb12bdb38b5dfaa2268613d7ba82b809 data/create/tags/blocks/windmill_sails.
081f5aa35602fc27af2ca01ea9f2fd5e7eb284dc data/create/tags/items/create_ingots.json
94c62bf22678ef55b2b8a5398a7960e5b00682dc data/create/tags/items/crushed_ores.json
6cdeeac1689f7b5bfd9bc40b462143d8eaf3ad0b data/create/tags/items/seats.json
c7efc23c08d5e3602c84ff43dac18f72b1cfced3 data/create/tags/items/upright_on_belt.json
94826d9ceac981342c753460b7f7ea9d23dd13a0 data/create/tags/items/upright_on_belt.json
50936b211d94167a35ec78c89954082a336b6269 data/create/tags/items/valve_handles.json
16bcb8fcbe9170c2c11f1ca8d99d8b36cd812bbd data/forge/tags/blocks/glass/colorless.json
81d3eb40b048160fcc2d6bb7ff12b49276297efd data/forge/tags/blocks/glass_panes.json

View file

@ -460,6 +460,7 @@
"item.create.copper_sheet": "\u0287\u01DD\u01DD\u0265S \u0279\u01DDddo\u0186",
"item.create.crafter_slot_cover": "\u0279\u01DD\u028Co\u0186 \u0287o\u05DFS \u0279\u01DD\u0287\u025F\u0250\u0279\u0186",
"item.create.crafting_blueprint": "\u0287u\u0131\u0279d\u01DDn\u05DF\u15FA bu\u0131\u0287\u025F\u0250\u0279\u0186",
"item.create.creative_cake": "\u01DD\u029E\u0250\u0186 \u01DD\u028C\u0131\u0287\u0250\u01DD\u0279\u0186",
"item.create.crushed_aluminum_ore": "\u01DD\u0279O \u026Fnu\u0131\u026Fn\u05DF\u2C6F p\u01DD\u0265sn\u0279\u0186",
"item.create.crushed_brass": "ss\u0250\u0279\u15FA p\u01DD\u0265sn\u0279\u0186",
"item.create.crushed_copper_ore": "\u01DD\u0279O \u0279\u01DDddo\u0186 p\u01DD\u0265sn\u0279\u0186",

View file

@ -467,6 +467,7 @@
"item.create.copper_sheet": "Copper Sheet",
"item.create.crafter_slot_cover": "Crafter Slot Cover",
"item.create.crafting_blueprint": "Crafting Blueprint",
"item.create.creative_cake": "Creative Cake",
"item.create.crushed_aluminum_ore": "Crushed Aluminum Ore",
"item.create.crushed_brass": "Crushed Brass",
"item.create.crushed_copper_ore": "Crushed Copper Ore",
@ -1220,7 +1221,7 @@
"create.subtitle.contraption_disassemble": "Contraption stops",
"create.subtitle.peculiar_bell_use": "Peculiar Bell tolls",
"create.subtitle.mixing": "Mixing Noises",
"create.subtitle.mixing": "Mixing noises",
"create.subtitle.mechanical_press_activation_belt": "Mechanical Press bonks",
"create.subtitle.fwoomp": "Potato Launcher fwoomps",
"create.subtitle.worldshaper_place": "Worldshaper zaps",
@ -1228,7 +1229,7 @@
"create.subtitle.depot_slide": "Item slides",
"create.subtitle.saw_activate_stone": "Mechanical Saw activates",
"create.subtitle.blaze_munch": "Blaze Burner munches",
"create.subtitle.funnel_flap": "Funnel Flaps",
"create.subtitle.funnel_flap": "Funnel flaps",
"create.subtitle.schematicannon_finish": "Schematicannon dings",
"create.subtitle.haunted_bell_use": "Haunted Bell tolls",
"create.subtitle.scroll_value": "Scroll-input clicks",
@ -1411,6 +1412,11 @@
"block.create.creative_crate.tooltip.condition1": "When Item in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
"item.create.creative_cake.tooltip": "CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "_Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1129",
"_": "Missing Localizations: 1134",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Kupferblech",
"item.create.crafter_slot_cover": "Handwerkseinheit Slot Abdeckung",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Zerkleinertes Aluminiumerz",
"item.create.crushed_brass": "Zerkleinertes Messing",
"item.create.crushed_copper_ore": "Zerkleinertes Kupfererz",
@ -1221,7 +1222,7 @@
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
"create.subtitle.mixing": "UNLOCALIZED: Mixing noises",
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
@ -1229,7 +1230,7 @@
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
"create.subtitle.blaze_munch": "Lohe kaut glücklich",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel Flaps",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps",
"create.subtitle.schematicannon_finish": "Bauplankanone endet",
"create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Wenn Gegenstand in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "Alles _extrahierende_ von diesem Container wird einen _endlosen Vorrat_ des angegebenen Gegenstands zur Verfügung stellen. In diese Kiste _eingefügte_ Gegenstände werden _entsorgt_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 52",
"_": "Missing Localizations: 57",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Lámina de cobre",
"item.create.crafter_slot_cover": "Tapa de ranura del ensamblador mecánico",
"item.create.crafting_blueprint": "Plano de elaboración",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Mineral de aluminio molido",
"item.create.crushed_brass": "Latón molido",
"item.create.crushed_copper_ore": "Mineral de cobre molido",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Cuando el elemento está en la ranura para filtros",
"block.create.creative_crate.tooltip.behaviour1": "Todo lo que se _extraiga_ de este contenedor proporcionará un suministro _ilimitado_ del elemento especificado. Los objetos _insertados_ en esta caja serán _evitados_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "RAÍL DE CONTROL",
"block.create.controller_rail.tooltip.summary": "Un raíl energizado _unidireccional_ capaz de _controlar con precisión_ la _velocidad de movimiento_ de una vagoneta.",
"block.create.controller_rail.tooltip.condition1": "Cuando es alimentado con redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1496",
"_": "Missing Localizations: 1501",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Lámina de Cobre",
"item.create.crafter_slot_cover": "Cubierta de Ranura del Crafter",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Mineral de Aluminio Molido",
"item.create.crushed_brass": "Latón Molido",
"item.create.crushed_copper_ore": "Mineral de Cobre Molido",
@ -1221,7 +1222,7 @@
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
"create.subtitle.mixing": "UNLOCALIZED: Mixing noises",
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
@ -1229,7 +1230,7 @@
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
"create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel Flaps",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps",
"create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings",
"create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1381",
"_": "Missing Localizations: 1386",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Plaques de cuivre",
"item.create.crafter_slot_cover": "Couvercle",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Aluminium concassé",
"item.create.crushed_brass": "Laiton concassé",
"item.create.crushed_copper_ore": "Cuivre concassé",
@ -1221,7 +1222,7 @@
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
"create.subtitle.mixing": "UNLOCALIZED: Mixing noises",
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
@ -1229,7 +1230,7 @@
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
"create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel Flaps",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps",
"create.subtitle.schematicannon_finish": "Fin de schémacanon",
"create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Quand un objet se trouve dans l'emplacement de filtrage",
"block.create.creative_crate.tooltip.behaviour1": "Tout ce qui _extrait_ de ce conteneur aura une _alimentation illimitée_ de l'objet spécifié. Les objets _insérés_ dans cette caisse seront _éliminés_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 909",
"_": "Missing Localizations: 914",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Lamiera di rame",
"item.create.crafter_slot_cover": "Rivestimento per slot da costruzione",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Alluminio grezzo frantumato",
"item.create.crushed_brass": "Ottone frantumato",
"item.create.crushed_copper_ore": "Rame grezzo frantumato",
@ -1221,7 +1222,7 @@
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
"create.subtitle.mixing": "UNLOCALIZED: Mixing noises",
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
@ -1229,7 +1230,7 @@
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
"create.subtitle.blaze_munch": "Il blaze lo gusta felicemente",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel Flaps",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps",
"create.subtitle.schematicannon_finish": "Finiture cannoneschematico",
"create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Quando un oggetto è nel filtro",
"block.create.creative_crate.tooltip.behaviour1": "Qualsiasi _estrazione_ da questo contenitore fornisce _provviste infinite_ dell'oggetto in questione. Gli oggetti _inseriti_ in questo baule verranno _svuotati_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "BINARIO DI CONTROLLO",
"block.create.controller_rail.tooltip.summary": "Un _binario alimentato unidirezionale_ capace di _controllare precisamente_ la _velocità di movimento_ di un carrello da miniera.",
"block.create.controller_rail.tooltip.condition1": "Quando alimentato da redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 41",
"_": "Missing Localizations: 9",
"_": "->------------------------] Game Elements [------------------------<-",
@ -28,12 +28,12 @@
"block.create.belt": "メカニカルベルト",
"block.create.birch_window": "シラカバの窓",
"block.create.birch_window_pane": "シラカバの窓板",
"block.create.black_nixie_tube": "UNLOCALIZED: Black Nixie Tube",
"block.create.black_nixie_tube": "黒色のニキシー管",
"block.create.black_sail": "黒色の帆",
"block.create.black_seat": "黒色のシート",
"block.create.black_valve_handle": "黒色のバルブハンドル",
"block.create.blaze_burner": "ブレイズバーナー",
"block.create.blue_nixie_tube": "UNLOCALIZED: Blue Nixie Tube",
"block.create.blue_nixie_tube": "青色のニキシー管",
"block.create.blue_sail": "青色の帆",
"block.create.blue_seat": "青色のシート",
"block.create.blue_valve_handle": "青色のバルブハンドル",
@ -43,7 +43,7 @@
"block.create.brass_encased_shaft": "真鍮のケース入りシャフト",
"block.create.brass_funnel": "真鍮ファンネル",
"block.create.brass_tunnel": "真鍮トンネル",
"block.create.brown_nixie_tube": "UNLOCALIZED: Brown Nixie Tube",
"block.create.brown_nixie_tube": "茶色のニキシー管",
"block.create.brown_sail": "茶色の帆",
"block.create.brown_seat": "茶色のシート",
"block.create.brown_valve_handle": "茶色のバルブハンドル",
@ -76,7 +76,7 @@
"block.create.crushing_wheel": "破砕ホイール",
"block.create.crushing_wheel_controller": "破砕ホイールコントローラー",
"block.create.cuckoo_clock": "鳩時計",
"block.create.cyan_nixie_tube": "UNLOCALIZED: Cyan Nixie Tube",
"block.create.cyan_nixie_tube": "水色のニキシー管",
"block.create.cyan_sail": "水色の帆",
"block.create.cyan_seat": "水色のシート",
"block.create.cyan_valve_handle": "水色のバルブハンドル",
@ -183,11 +183,11 @@
"block.create.granite_cobblestone_stairs": "花崗岩の丸石の階段",
"block.create.granite_cobblestone_wall": "花崗岩の丸石の塀",
"block.create.granite_pillar": "花崗岩の柱",
"block.create.gray_nixie_tube": "UNLOCALIZED: Gray Nixie Tube",
"block.create.gray_nixie_tube": "灰色のニキシー管",
"block.create.gray_sail": "灰色の帆",
"block.create.gray_seat": "灰色のシート",
"block.create.gray_valve_handle": "灰色のバルブハンドル",
"block.create.green_nixie_tube": "UNLOCALIZED: Green Nixie Tube",
"block.create.green_nixie_tube": "緑色のニキシー管",
"block.create.green_sail": "緑色の帆",
"block.create.green_seat": "緑色のシート",
"block.create.green_valve_handle": "緑色のバルブハンドル",
@ -211,15 +211,15 @@
"block.create.layered_scoria": "スコリアの組石",
"block.create.layered_weathered_limestone": "風化した石灰岩の組石",
"block.create.lectern_controller": "書見台コントローラー",
"block.create.light_blue_nixie_tube": "UNLOCALIZED: Light Blue Nixie Tube",
"block.create.light_blue_nixie_tube": "空色のニキシー菅",
"block.create.light_blue_sail": "空色の帆",
"block.create.light_blue_seat": "空色のシート",
"block.create.light_blue_valve_handle": "空色のバルブハンドル",
"block.create.light_gray_nixie_tube": "UNLOCALIZED: Light Gray Nixie Tube",
"block.create.light_gray_nixie_tube": "薄灰色のニキシー管",
"block.create.light_gray_sail": "薄灰色の帆",
"block.create.light_gray_seat": "薄灰色のシート",
"block.create.light_gray_valve_handle": "薄灰色のバルブハンドル",
"block.create.lime_nixie_tube": "UNLOCALIZED: Lime Nixie Tube",
"block.create.lime_nixie_tube": "黄緑色のニキシー管",
"block.create.lime_sail": "黄緑色の帆",
"block.create.lime_seat": "黄緑色のシート",
"block.create.lime_valve_handle": "黄緑色のバルブハンドル",
@ -236,7 +236,7 @@
"block.create.limestone_pillar": "石灰岩の柱",
"block.create.linear_chassis": "リニアシャーシ",
"block.create.lit_blaze_burner": "燃焼中のブレイズバーナー",
"block.create.magenta_nixie_tube": "UNLOCALIZED: Magenta Nixie Tube",
"block.create.magenta_nixie_tube": "赤紫色のニキシー管",
"block.create.magenta_sail": "赤紫色の帆",
"block.create.magenta_seat": "赤紫色のシート",
"block.create.magenta_valve_handle": "赤紫色のバルブハンドル",
@ -321,7 +321,7 @@
"block.create.paved_weathered_limestone_stairs": "舗装された風化した石灰岩の階段",
"block.create.paved_weathered_limestone_wall": "舗装された風化した石灰岩の塀",
"block.create.peculiar_bell": "風変わりな鐘",
"block.create.pink_nixie_tube": "UNLOCALIZED: Pink Nixie Tube",
"block.create.pink_nixie_tube": "桃色のニキシー管",
"block.create.pink_sail": "桃色の帆",
"block.create.pink_seat": "桃色のシート",
"block.create.pink_valve_handle": "桃色のバルブハンドル",
@ -356,12 +356,12 @@
"block.create.powered_toggle_latch": "パワードトグルラッチ",
"block.create.pulley_magnet": "プーリーマグネット",
"block.create.pulse_repeater": "パルスリピーター",
"block.create.purple_nixie_tube": "UNLOCALIZED: Purple Nixie Tube",
"block.create.purple_nixie_tube": "紫色のニキシー管",
"block.create.purple_sail": "紫色の帆",
"block.create.purple_seat": "紫色のシート",
"block.create.purple_valve_handle": "紫色のバルブハンドル",
"block.create.radial_chassis": "ラジアルシャーシ",
"block.create.red_nixie_tube": "UNLOCALIZED: Red Nixie Tube",
"block.create.red_nixie_tube": "赤色のニキシー管",
"block.create.red_sail": "赤色の帆",
"block.create.red_seat": "赤色のシート",
"block.create.red_valve_handle": "赤色のバルブハンドル",
@ -418,21 +418,21 @@
"block.create.weathered_limestone_cobblestone_wall": "風化した石灰岩の丸石の塀",
"block.create.weathered_limestone_pillar": "風化した石灰岩の柱",
"block.create.weighted_ejector": "重量射出機",
"block.create.white_nixie_tube": "UNLOCALIZED: White Nixie Tube",
"block.create.white_nixie_tube": "白色のニキシー管",
"block.create.white_sail": "白色の帆",
"block.create.white_seat": "白色のシート",
"block.create.white_valve_handle": "白色のバルブハンドル",
"block.create.windmill_bearing": "風車ベアリング",
"block.create.wooden_bracket": "木製ブラケット",
"block.create.yellow_nixie_tube": "UNLOCALIZED: Yellow Nixie Tube",
"block.create.yellow_nixie_tube": "黄色のニキシー管",
"block.create.yellow_sail": "黄色の帆",
"block.create.yellow_seat": "黄色のシート",
"block.create.yellow_valve_handle": "黄色のバルブハンドル",
"block.create.zinc_block": "亜鉛ブロック",
"block.create.zinc_ore": "亜鉛鉱石",
"enchantment.create.capacity": "UNLOCALIZED: Capacity",
"enchantment.create.potato_recovery": "UNLOCALIZED: Potato Recovery",
"enchantment.create.capacity": "容量増加",
"enchantment.create.potato_recovery": "ポテト回収",
"entity.create.contraption": "からくり",
"entity.create.crafting_blueprint": "クラフトブループリント",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "銅板",
"item.create.crafter_slot_cover": "クラフタースロットカバー",
"item.create.crafting_blueprint": "クラフトブループリント",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "砕いたアルミニウム鉱石",
"item.create.crushed_brass": "砕いた真鍮",
"item.create.crushed_copper_ore": "砕いた銅鉱石",
@ -692,20 +693,20 @@
"itemGroup.create.base": "Create",
"itemGroup.create.palettes": "Create Palettes",
"death.attack.create.crush": "%1$s は破砕ホイールによって処理されました",
"death.attack.create.crush.player": "UNLOCALIZED: %1$s was thrown into Crushing Wheels by %2$s",
"death.attack.create.fan_fire": "%1$s は熱風で焼死した",
"death.attack.create.fan_fire.player": "UNLOCALIZED: %1$s was thrown into a smoker by %2$s",
"death.attack.create.fan_lava": "%1$s は溶岩ファンによって焼死した",
"death.attack.create.fan_lava.player": "UNLOCALIZED: %1$s was thrown into a smelter by %2$s",
"death.attack.create.mechanical_drill": "%1$s はメカニカルドリルに突き刺さった",
"death.attack.create.mechanical_drill.player": "UNLOCALIZED: %1$s was thrown in front of a Drill by %2$s",
"death.attack.create.mechanical_saw": "%1$s はメカニカルソーで半分にカットされた",
"death.attack.create.mechanical_saw.player": "UNLOCALIZED: %1$s was thrown into a Saw by %2$s",
"death.attack.create.crush": "%1$sは破砕ホイールによって処理された",
"death.attack.create.crush.player": "%1$sは%2$sに破砕ホイールに投入された",
"death.attack.create.fan_fire": "%1$sはケース入りファンによって燻製にされた",
"death.attack.create.fan_fire.player": "%1$sは%2$sによって燻製にされた",
"death.attack.create.fan_lava": "%1$sはケース入りファンで精錬された",
"death.attack.create.fan_lava.player": "%1$sは%2$sによって熱風に投げ込まれた",
"death.attack.create.mechanical_drill": "%1$sはメカニカルドリルに突き抜かれた",
"death.attack.create.mechanical_drill.player": "%1$sは%2$sにドリルの目の前に投げ込まれた",
"death.attack.create.mechanical_saw": "%1$sはメカニカルソーで半分にカットされた",
"death.attack.create.mechanical_saw.player": "%1$sは%2$sによってメカニカルソーの回転する刃に投げ込まれた",
"death.attack.create.potato_cannon": "%1$sは%2$sのポテトキャンに撃ち抜かれた",
"death.attack.create.potato_cannon.item": "%1$sは%3$sで%2$sに撃た抜かれた",
"death.attack.create.cuckoo_clock_explosion": "%1$s は改ざんされた鳩時計に爆破された",
"death.attack.create.cuckoo_clock_explosion.player": "UNLOCALIZED: %1$s was blown up by tampered cuckoo clock",
"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.cart_assembler.invalid": "トロッコアセンブラはレールの上にのみ設置できます",
@ -1065,11 +1066,11 @@
"create.item_attributes.in_item_group.inverted": "%1$sに属していないか",
"create.item_attributes.added_by": "%1$sによって追加されたか",
"create.item_attributes.added_by.inverted": "%1$sによって追加されていないか",
"create.item_attributes.shulker_level": "UNLOCALIZED: is shulker %1$s",
"create.item_attributes.shulker_level.inverted": "UNLOCALIZED: is shulker not %1$s",
"create.item_attributes.shulker_level.full": "UNLOCALIZED: full",
"create.item_attributes.shulker_level.empty": "UNLOCALIZED: empty",
"create.item_attributes.shulker_level.partial": "UNLOCALIZED: partially filled",
"create.item_attributes.shulker_level": "%1$sシュルカーか",
"create.item_attributes.shulker_level.inverted": "%1$sシュルカーでないか",
"create.item_attributes.shulker_level.full": "満杯の",
"create.item_attributes.shulker_level.empty": "空の",
"create.item_attributes.shulker_level.partial": "一部埋まっている",
"create.item_attributes.has_enchant": "エンチャントされているか%1$s",
"create.item_attributes.has_enchant.inverted": "エンチャントがされていないか",
"create.item_attributes.color": "%1$sで染められているか",
@ -1165,9 +1166,9 @@
"create.tooltip.chute.fans_pull_up": "ファンが上から吸い込んでいます",
"create.tooltip.chute.fans_pull_down": "ファンが下から吸い込んでいます",
"create.tooltip.chute.contains": "内容物: %1$s x%2$s",
"create.tooltip.brass_tunnel.contains": "UNLOCALIZED: Currently distributing:",
"create.tooltip.brass_tunnel.contains_entry": "UNLOCALIZED: > %1$s x%2$s",
"create.tooltip.brass_tunnel.retrieve": "UNLOCALIZED: Right-Click to retrieve",
"create.tooltip.brass_tunnel.contains": "配布中",
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
"create.tooltip.brass_tunnel.retrieve": "右クリックで取り出し",
"create.linked_controller.bind_mode": "割り当てモード",
"create.linked_controller.press_keybind": "%1$s、%2$s、%3$s、%4$s、%5$sまたは%6$sを押すとこの周波数がそのキーに割り当てられます",
@ -1183,9 +1184,9 @@
"create.crafting_blueprint.secondary_display_slot": "第2表示スロット",
"create.crafting_blueprint.optional": "オプション",
"create.potato_cannon.ammo.attack_damage": "UNLOCALIZED: %1$s Attack Damage",
"create.potato_cannon.ammo.reload_ticks": "UNLOCALIZED: %1$s Reload Ticks",
"create.potato_cannon.ammo.knockback": "UNLOCALIZED: %1$s Knockback",
"create.potato_cannon.ammo.attack_damage": "攻撃力: %1$s",
"create.potato_cannon.ammo.reload_ticks": "リロード時間(tick): %1$s",
"create.potato_cannon.ammo.knockback": "ノックバック: %1$s",
"create.hint.hose_pulley.title": "底なし搬出",
"create.hint.hose_pulley": "対象となる液体は無限とみなされています。",
@ -1225,7 +1226,7 @@
"create.subtitle.mechanical_press_activation_belt": "メカニカルプレスがボンと鳴る",
"create.subtitle.fwoomp": "ポテトランチャーがバキューンと鳴る",
"create.subtitle.worldshaper_place": "ワールドシェーパーが設置する",
"create.subtitle.crushing_1": "UNLOCALIZED: Crushing noises",
"create.subtitle.crushing_1": "粉砕音",
"create.subtitle.depot_slide": "アイテムが滑る",
"create.subtitle.saw_activate_stone": "メカニカルソーが動作する",
"create.subtitle.blaze_munch": "ブレイズの咀嚼音",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "フィルタースロットにアイテムが入っているとき",
"block.create.creative_crate.tooltip.behaviour1": "このクレートから何かを_搬出_すると、指定されたアイテムが_無限_に_搬出_されます。このクレートに_搬入_されたアイテムは_消滅_します。",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "コントローラーレール",
"block.create.controller_rail.tooltip.summary": "トロッコの_移動速度_を_細かく制御_できる_一方通行_の_パワード_レール",
"block.create.controller_rail.tooltip.condition1": "レッドストーン信号を受けたとき",
@ -1768,7 +1774,7 @@
"create.ponder.empty_blaze_burner.text_2": "また、ブレイズはスポーンブロックから直接捕獲することもできます",
"create.ponder.empty_blaze_burner.text_3": "これで、様々な機械で利用できる理想的な熱源が得られます",
"create.ponder.empty_blaze_burner.text_4": "空のブレイズバーナーは火打石と打ち金を使って火を付ければ装飾にも使えます",
"create.ponder.empty_blaze_burner.text_5": "UNLOCALIZED: The flame can be transformed using a soul-infused item",
"create.ponder.empty_blaze_burner.text_5": "さらに、魂の宿ったアイテムを使うことで炎を変化させられます",
"create.ponder.empty_blaze_burner.text_6": "しかし、これは加工用の熱源には適していません",
"create.ponder.encased_fluid_pipe.header": "ケース入り液体パイプ",
@ -2086,7 +2092,7 @@
"create.ponder.nixie_tube.header": "ニキシー管の使い方",
"create.ponder.nixie_tube.text_1": "ニキシー管は受けたレッドストーン信号の強度を表示します",
"create.ponder.nixie_tube.text_2": "金床で名付けた名札を使って、好きな文字を表示することもできます",
"create.ponder.nixie_tube.text_3": "UNLOCALIZED: Right-Click with Dye to change their display colour",
"create.ponder.nixie_tube.text_3": "染料で右クリックすることで表示の色を変えられます",
"create.ponder.piston_pole.header": "ピストン延長ポール",
"create.ponder.piston_pole.text_1": "ポールが無いとメカニカルピストンは動きません",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 19",
"_": "Missing Localizations: 24",
"_": "->------------------------] Game Elements [------------------------<-",
@ -7,8 +7,8 @@
"block.create.acacia_window_pane": "아카시아나무 유리판 ",
"block.create.adjustable_chain_gearshift": "벨트 변속기",
"block.create.adjustable_crate": "가변 창고",
"block.create.adjustable_pulse_repeater": "가변 펄스 리피터",
"block.create.adjustable_repeater": "가변 리피터",
"block.create.adjustable_pulse_repeater": "가변 펄스 중계기",
"block.create.adjustable_repeater": "가변 중계기",
"block.create.analog_lever": "아날로그 레버",
"block.create.andesite_belt_funnel": "안산암 퍼널",
"block.create.andesite_bricks": "안산암 벽돌",
@ -175,9 +175,9 @@
"block.create.gearshift": "기어쉬프트",
"block.create.glass_fluid_pipe": "액체 파이프",
"block.create.granite_bricks": "화강암 벽돌",
"block.create.granite_bricks_slab": "화강 벽돌 반 블록",
"block.create.granite_bricks_stairs": "화강 벽돌 계단",
"block.create.granite_bricks_wall": "화강 벽돌 담장",
"block.create.granite_bricks_slab": "화강 벽돌 반 블록",
"block.create.granite_bricks_stairs": "화강 벽돌 계단",
"block.create.granite_bricks_wall": "화강 벽돌 담장",
"block.create.granite_cobblestone": "화강암 조약돌",
"block.create.granite_cobblestone_slab": "화강암 조약돌 반 블록",
"block.create.granite_cobblestone_stairs": "화강암 조약돌 계단",
@ -258,8 +258,8 @@
"block.create.mossy_andesite": "이끼 낀 안산암",
"block.create.mossy_dark_scoria": "이끼 낀 짙은 스코리아",
"block.create.mossy_diorite": "이끼 낀 섬록암",
"block.create.mossy_dolomite": "이끼낀 백운암",
"block.create.mossy_gabbro": "이끼낀 반려암",
"block.create.mossy_dolomite": "이끼 낀 백운암",
"block.create.mossy_gabbro": "이끼 낀 반려암",
"block.create.mossy_granite": "이끼 낀 화강암 벽돌",
"block.create.mossy_limestone": "이끼 낀 석회암",
"block.create.mossy_scoria": "이끼 낀 스코리아",
@ -355,7 +355,7 @@
"block.create.powered_latch": "레드스톤 걸쇠",
"block.create.powered_toggle_latch": "레드스톤 토글 걸쇠",
"block.create.pulley_magnet": "도르래 자석",
"block.create.pulse_repeater": "펄스 리피터",
"block.create.pulse_repeater": "펄스 중계기",
"block.create.purple_nixie_tube": "보라샥 닉시관",
"block.create.purple_sail": "보라색 날개",
"block.create.purple_seat": "보라색 좌석",
@ -406,7 +406,7 @@
"block.create.vertical_framed_glass_pane": "수직 유리판",
"block.create.warped_window": "뒤틀린 유리창",
"block.create.warped_window_pane": "뒤틀린 유리판",
"block.create.water_wheel": "물레방아",
"block.create.water_wheel": "물레바퀴",
"block.create.weathered_limestone": "풍화된 석회암",
"block.create.weathered_limestone_bricks": "풍화된 석회암 벽돌",
"block.create.weathered_limestone_bricks_slab": "풍화된 석회암 벽돌 반 블록",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "구리 판",
"item.create.crafter_slot_cover": "조합기 슬롯 덮개",
"item.create.crafting_blueprint": "조합 청사진",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "UNLOCALIZED: Crushed Aluminum Ore",
"item.create.crushed_brass": "분쇄된 황동",
"item.create.crushed_copper_ore": "분쇄된 구리 광석",
@ -537,10 +538,10 @@
"advancement.create.its_alive.desc": "당신의 첫 장치가 움직입니다!",
"advancement.create.shifting_gears": "톱니바퀴 돌리고!",
"advancement.create.shifting_gears.desc": "크기가 다른 톱니바퀴를 연결하여 장치의 속도를 바꿀 수 있습니다.",
"advancement.create.overstressed": "과부",
"advancement.create.overstressed": "과부",
"advancement.create.overstressed.desc": "피로도의 한계를 경험해보세요.",
"advancement.create.belt": "켈프 벨트",
"advancement.create.belt.desc": "두 축에 컨베이어 벨트를 이으세요.",
"advancement.create.belt.desc": "두 축에 벨트를 이으세요.",
"advancement.create.tunnel": "벨트 꾸미기",
"advancement.create.tunnel.desc": "터널을 이용해 벨트를 꾸며보세요.",
"advancement.create.splitter_tunnel": "분할 정복 알고리즘",
@ -548,7 +549,7 @@
"advancement.create.chute": "쏟아져 내려와",
"advancement.create.chute.desc": "수직 벨트역할을 하는 슈트를 설치하세요.",
"advancement.create.upward_chute": "바람 납치",
"advancement.create.upward_chute.desc": "선풍기를 설치하고, 슈트안에서 아이템이 날아가는 것을 보세요.",
"advancement.create.upward_chute.desc": "선풍기를 설치하고, 슈트 안에서 아이템이 날아가는 것을 보세요.",
"advancement.create.belt_funnel": "퍼널 깔기",
"advancement.create.belt_funnel.desc": "퍼널을 벨트나 아이템 거치대에 설치하여 특별한 모양을 만들어 보세요.",
"advancement.create.belt_funnel_kiss": "퍼널는 어떻게 태어나?",
@ -574,10 +575,10 @@
"advancement.create.reinforced": "튼튼 보강!",
"advancement.create.reinforced.desc": "축, 파이프, 벨트에 적절한 케이스를 씌우세요.",
"advancement.create.water_wheel": "수력 동력화",
"advancement.create.water_wheel.desc": "물레방아를 설치하고 회전하게 만드세요!",
"advancement.create.chocolate_wheel": "초콜릿방아",
"advancement.create.chocolate_wheel.desc": "녹은 초콜릿으로 물레방아를 돌리세요.",
"advancement.create.lava_wheel": "불레방아",
"advancement.create.water_wheel.desc": "물레바퀴를 설치하고 회전하게 만드세요!",
"advancement.create.chocolate_wheel": "초콜릿바퀴",
"advancement.create.chocolate_wheel.desc": "녹은 초콜릿으로 물레바퀴를 돌리세요.",
"advancement.create.lava_wheel": "불레바퀴",
"advancement.create.lava_wheel.desc": "용암으로 물레바퀴를 회전하게 만드세ㅇ... 어?",
"advancement.create.cuckoo": "벌써 이렇게나 시간이 지났어?",
"advancement.create.cuckoo.desc": "뻐꾸기 시계가 잘 시간을 알립니다. 잘 자...",
@ -624,7 +625,7 @@
"advancement.create.chained_item_drain": "구른다!",
"advancement.create.chained_item_drain.desc": "아이템이 여러 배수구 위를 굴러가는 것을 보세요.",
"advancement.create.glass_pipe": "액체 엿보기",
"advancement.create.glass_pipe.desc": "액체가 창이 달린 파이프를 지나는 것을 보세요. 직선 파이프 렌치로 우클릭하면 창문이 생깁니다.",
"advancement.create.glass_pipe.desc": "액체가 창이 달린 파이프를 지나는 것을 보세요. 직선 파이프 렌치로 우클릭하면 창문이 생깁니다.",
"advancement.create.pipe_collision": "그 액체를 섞지 마오",
"advancement.create.pipe_collision.desc": "액체관에서 두 가지 액체가 만나는 것을 관찰하세요.",
"advancement.create.pipe_spill": "누출 사고",
@ -708,7 +709,7 @@
"death.attack.create.cuckoo_clock_explosion.player": "%1$s이(가) 조작된 뻐꾸기 시계에 의해 폭파당했습니다",
"create.block.deployer.damage_source_name": "배포기",
"create.block.cart_assembler.invalid": "카트조립기를 레일 위에 설치하세요",
"create.block.cart_assembler.invalid": "카트 조립기를 레일 위에 설치하세요",
"create.menu.return": "메뉴로 돌아가기",
"create.menu.configure": "설정...",
@ -843,12 +844,12 @@
"create.minecart_coupling.too_far": "광산 수레들이 너무 멀리 떨어져 있습니다",
"create.contraptions.movement_mode": "이동 설정",
"create.contraptions.movement_mode.move_place": "멈췄을때 항상 블록이 설치됨",
"create.contraptions.movement_mode.move_place_returned": "멈췄을때 시작 위치에서만 블록이 설치됨",
"create.contraptions.movement_mode.move_never_place": "멈춰도 블록을 설치하지 않음",
"create.contraptions.movement_mode.rotate_place": "멈췄을때 항상 블록이 설치됨",
"create.contraptions.movement_mode.rotate_place_returned": "멈췄을때 시작 위치에서만 블록이 설치됨",
"create.contraptions.movement_mode.rotate_never_place": "멈춰도 블록을 설치하지 않음",
"create.contraptions.movement_mode.move_place": "멈췄을 때 항상 구조물을 설치함",
"create.contraptions.movement_mode.move_place_returned": "멈췄을 때 시작 위치에서만 구조물을 설치함",
"create.contraptions.movement_mode.move_never_place": "멈춰도 구조물을 설치하지 않음",
"create.contraptions.movement_mode.rotate_place": "멈췄을 때 항상 구조물을 설치함",
"create.contraptions.movement_mode.rotate_place_returned": "멈췄을 때 시작 위치에서만 구조물을 설치함",
"create.contraptions.movement_mode.rotate_never_place": "멈춰도 구조물을 설치하지 않음",
"create.contraptions.cart_movement_mode": "수레 장치 이동 설정",
"create.contraptions.cart_movement_mode.rotate": "구조물이 항상 전방을 향함",
"create.contraptions.cart_movement_mode.rotate_paused": "수레가 회전할때 구조물이 행동을 멈춤",
@ -862,8 +863,8 @@
"create.logistics.filter": "필터",
"create.logistics.recipe_filter": "조합법 필터",
"create.logistics.fluid_filter": "액체 필터",
"create.logistics.firstFrequency": "주파수. #1",
"create.logistics.secondFrequency": "주파수. #2",
"create.logistics.firstFrequency": "주파수 #1",
"create.logistics.secondFrequency": "주파수 #2",
"create.logistics.filter.apply": "%1$s에 필터를 적용했습니다.",
"create.logistics.filter.apply_click_again": "%1$s에 필터를 적용했습니다. 다시 적용하면 가지고 있는 아이템의 수량을 복사하여 필터에 적용합니다.",
"create.logistics.filter.apply_count": "필터에 수량을 적용했습니다.",
@ -960,7 +961,7 @@
"create.schematic.tool.rotate.description.2": "",
"create.schematic.tool.rotate.description.3": "",
"create.schematic.tool.print.description.0": "구조물을 즉시 설치합니다.",
"create.schematic.tool.print.description.1": "[우클릭]으로 현재 지점에 설치를 허가합니다.",
"create.schematic.tool.print.description.1": "[우클릭]으로 현재 지점에 설치합니다.",
"create.schematic.tool.print.description.2": "이 도구는 크리에이티브 모드 전용입니다.",
"create.schematic.tool.print.description.3": "",
"create.schematic.tool.flip.description.0": "당신이 보는 면으로 청사진을 뒤집습니다.",
@ -1090,14 +1091,14 @@
"create.item_attributes.book_copy_second.inverted": "복사본의 복사본이 아님",
"create.item_attributes.book_copy_tattered": "낡고 헐었음",
"create.item_attributes.book_copy_tattered.inverted": "낡고 헐지 않음",
"create.item_attributes.astralsorcery_crystal": "%1$s 수정 속성을 가",
"create.item_attributes.astralsorcery_crystal.inverted": "%1$s 수정 속성을 가지고 있지 않",
"create.item_attributes.astralsorcery_constellation": "%1$s에 조율",
"create.item_attributes.astralsorcery_constellation.inverted": "%1$s에 조율되지 않",
"create.item_attributes.astralsorcery_perk_gem": "%1$s 퍽 속성을 가",
"create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 퍽 속성을 가지고 있지 않",
"create.item_attributes.astralsorcery_amulet": "%1$s이(가) 향상",
"create.item_attributes.astralsorcery_amulet.inverted": "%1$s이(가) 향상되지 않",
"create.item_attributes.astralsorcery_crystal": "%1$s 수정 속성을 가",
"create.item_attributes.astralsorcery_crystal.inverted": "%1$s 수정 속성을 가지고 있지 않",
"create.item_attributes.astralsorcery_constellation": "%1$s에 조율",
"create.item_attributes.astralsorcery_constellation.inverted": "%1$s에 조율되지 않",
"create.item_attributes.astralsorcery_perk_gem": "%1$s 퍽 속성을 가",
"create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 퍽 속성을 가지고 있지 않",
"create.item_attributes.astralsorcery_amulet": "%1$s이(가) 향상",
"create.item_attributes.astralsorcery_amulet.inverted": "%1$s이(가) 향상되지 않",
"create.gui.attribute_filter.no_selected_attributes": "속성이 선택되지 않음",
"create.gui.attribute_filter.selected_attributes": "선택된 속성:",
@ -1188,7 +1189,7 @@
"create.potato_cannon.ammo.knockback": "%1$s 밀쳐내는 거리",
"create.hint.hose_pulley.title": "무한 공급",
"create.hint.hose_pulley": "해당 액체는 _무한_으로 간주됩니다.",
"create.hint.hose_pulley": "해당 액체는 _무한_니다.",
"create.hint.mechanical_arm_no_targets.title": "목표 없음",
"create.hint.mechanical_arm_no_targets": "이 _기계 팔_은 _목표_가 설정되지 않았습니다. _기계 팔을 손에 들고_ 벨트, 아이템 거치대, 퍼널을 _우클릭_하여 목표로 지정하세요.",
"create.hint.empty_bearing.title": "베어링 업데이트",
@ -1339,7 +1340,7 @@
"item.create.schematic.tooltip": "SCHEMATIC",
"item.create.schematic.tooltip.summary": "세계에 구조물을 _홀로그램으로_ 불러와 지정하고 설치합니다. 지정된 홀로그램은 _청사진_ _대포_의 _작업_ _영역_이 됩니다.",
"item.create.schematic.tooltip.condition1": "들고 있을 ",
"item.create.schematic.tooltip.condition1": "들고 있을 ",
"item.create.schematic.tooltip.behaviour1": "UI의 도구로 _변경/설치_ 할 수 있습니다.",
"item.create.schematic.tooltip.control1": "웅크린 상태에서 우클릭",
"item.create.schematic.tooltip.action1": "정확한 _좌표_ 입력을 위한 창을 엽니다.",
@ -1360,7 +1361,7 @@
"block.create.schematicannon.tooltip": "SCHEMATICANNON",
"block.create.schematicannon.tooltip.summary": "장착된 청사진을 바탕으로 블록들을 _발포_합니다. _화약_을 연료로 사용하고 주변 보관함에서 아이템을 사용합니다.",
"block.create.schematicannon.tooltip.condition1": "우클릭",
"block.create.schematicannon.tooltip.behaviour1": "을 엽니다.",
"block.create.schematicannon.tooltip.behaviour1": "설정 창을 엽니다.",
"block.create.schematic_table.tooltip": "SCHEMATIC TABLE",
"block.create.schematic_table.tooltip.summary": "_빈_ _청사진_에 저장된 청사진을 불러옵니다.",
@ -1384,7 +1385,7 @@
"item.create.wrench.tooltip.action2": "_장치_를 _해체_하고 _즉시_ _보관함_으로 넣습니다.",
"block.create.nozzle.tooltip": "NOZZLE",
"block.create.nozzle.tooltip.summary": "덮힌 환풍기 _앞_에 붙여 환풍기의 효과를 _전방_으로 _확대_합니다.",
"block.create.nozzle.tooltip.summary": "선풍기 _앞_에 붙여 선풍기의 효과를 _전방향_으로 _확대_합니다.",
"block.create.cuckoo_clock.tooltip": "CUCKOO CLOCK",
"block.create.cuckoo_clock.tooltip.summary": "_시간의_ _흐름_을 알고 공간을 _꾸미는_ 데 좋은 공예품입니다.",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "필터에 아이템을 설정할 시",
"block.create.creative_crate.tooltip.behaviour1": "선택된 아이템을 _무한정_으로 _빼낼_ 수 있습니다. 대신 _들어간_ 아이템은 _삭제_됩니다.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "_광산 수레_의 _이동속도_를 _세밀하게_ _조정_할 수 있는 _양방향_ _전동 레일_입니다.",
"block.create.controller_rail.tooltip.condition1": "레드스톤 신호를 받을 때",
@ -1423,7 +1429,7 @@
"item.create.sand_paper.tooltip.behaviour1": "_다른 손_에있는 아이템과 _바닥에 있는 아이템_을 윤냅니다.",
"item.create.builders_tea.tooltip": "BUILDERS TEA",
"item.create.builders_tea.tooltip.summary": "하루를 시작하기에 좋은 음료입니다. _ 새로운 영감_을 줍니다.",
"item.create.builders_tea.tooltip.summary": "하루를 시작하기에 좋은 음료입니다. _새로운 영감_을 줍니다.",
"item.create.refined_radiance.tooltip": "REFINED RADIANCE",
"item.create.refined_radiance.tooltip.summary": "_흡수된_ _빛_으로 제련된 색채 혼합물입니다.",
@ -1489,8 +1495,8 @@
"create.ponder.hold_to_ponder": "[%1$s]키를 눌러 분석하기",
"create.ponder.subject": "분석의 주제",
"create.ponder.pondering": "분석 중입니다...",
"create.ponder.identify_mode": "탐색모드가 활성화되어 있습니다. [%1$s]를 눌러 중지합니다.",
"create.ponder.associated": "연관된 항들",
"create.ponder.identify_mode": "탐색모드가 활성화되어 있습니다. \n[%1$s]를 눌러 중지합니다.",
"create.ponder.associated": "연관된 항들",
"create.ponder.close": "닫기",
"create.ponder.identify": "탐색",
"create.ponder.next": "다음 장면",
@ -1511,7 +1517,7 @@
"create.ponder.shared.ctrl_and": "Ctrl +",
"create.ponder.shared.rpm32": "32 RPM",
"create.ponder.shared.rpm16_source": "기본 속도: 16 RPM",
"create.ponder.shared.movement_anchors": "섀시나 강력 접착제 큰 구조물도 옮길 수 있습니다.",
"create.ponder.shared.movement_anchors": "섀시나 강력 접착제를 이용해 큰 구조물도 옮길 수 있습니다.",
"create.ponder.tag.redstone": "레드스톤 부품",
"create.ponder.tag.redstone.description": "레드스톤 공학에 쓰이는 부품입니다.",
"create.ponder.tag.contraption_assembly": "블록 부착 도구",
@ -1539,13 +1545,13 @@
"create.ponder.tag.logistics": "아이템 수송",
"create.ponder.tag.logistics.description": "아이템을 옮기는데 도움을 줄 부품입니다.",
"create.ponder.adjustable_pulse_repeater.header": "가변 펄스 리피터를 이용해 신호 조절하기",
"create.ponder.adjustable_pulse_repeater.text_1": "가변 펄스 리피터는 딜레이 이후 짧은 신호를 보냅니다.",
"create.ponder.adjustable_pulse_repeater.header": "가변 펄스 중계기를 이용해 신호 조절하기",
"create.ponder.adjustable_pulse_repeater.text_1": "가변 펄스 중계기는 딜레이 이후 짧은 신호를 보냅니다.",
"create.ponder.adjustable_pulse_repeater.text_2": "마우스 휠을 이용하여 딜레이를 조절합니다.",
"create.ponder.adjustable_pulse_repeater.text_3": "딜레이는 최대 30분까지 조절할 수 있습니다.",
"create.ponder.adjustable_repeater.header": "가변 리피터를 이용해 신호 조절하기",
"create.ponder.adjustable_repeater.text_1": "가변 리피터는 기존 리피터와 비슷합니다.",
"create.ponder.adjustable_repeater.header": "가변 중계기를 이용해 신호 조절하기",
"create.ponder.adjustable_repeater.text_1": "가변 중계기는 기존 중계기와 비슷합니다.",
"create.ponder.adjustable_repeater.text_2": "정해진 딜레이만큼 신호를 주고...",
"create.ponder.adjustable_repeater.text_3": "...정해진 딜레이만큼 쉽니다.",
"create.ponder.adjustable_repeater.text_4": "마우스 휠을 이용해 딜레이를 조절합니다.",
@ -1571,7 +1577,7 @@
"create.ponder.basin.text_6": "수송관이 없다면, 대야는 처리된 아이템을 보관합니다.",
"create.ponder.basin.text_7": "결과물이 다시 사용될 때 유용합니다.",
"create.ponder.basin.text_8": "이 경우, 대야에서 특정 결과물을 빼내야 합니다.",
"create.ponder.basin.text_9": "처리되지 않은 아이템이 나오는 것을 방지하기 위해서는 필터가 필요할 수도 있습니다.",
"create.ponder.basin.text_9": "처리되지 않은 아이템이 나오는 것을 방지하기 위해서는 필터가 필요니다.",
"create.ponder.bearing_modes.header": "베어링의 이동 설정",
"create.ponder.bearing_modes.text_1": "멈췄을 때, 베어링은 구조물을 가까운 수직 각도로 설치합니다.",
@ -1583,7 +1589,7 @@
"create.ponder.belt_connector.header": "벨트 사용하기",
"create.ponder.belt_connector.text_1": "두 축을 벨트로 우클릭하여 연결합니다.",
"create.ponder.belt_connector.text_2": "실수로 선택했다면, 웅크리면서 우클릭하여 취소할 수 있습니다.",
"create.ponder.belt_connector.text_2": "실수로 선택했다면, 웅크리면서 우클릭하여 취소니다.",
"create.ponder.belt_connector.text_3": "벨트에 축을 추가로 넣을 수 있습니다.",
"create.ponder.belt_connector.text_4": "벨트로 연결된 축들은 같은 속도, 방향으로 회전합니다.",
"create.ponder.belt_connector.text_5": "추가된 축은 렌치로 없앨 수 있습니다.",
@ -1595,7 +1601,7 @@
"create.ponder.belt_directions.text_3": "2. 대각선으로 연결할 수 있습니다.",
"create.ponder.belt_directions.text_4": "3. 수직으로 연결할 수 있습니다.",
"create.ponder.belt_directions.text_5": "4. 또한 수직 축을 평행하게 연결할 수 있습니다.",
"create.ponder.belt_directions.text_6": "이것들이 가능한 방향입니다. 벨트는 2 ~ 20 블록 길이를 연결할 수 있습니다.",
"create.ponder.belt_directions.text_6": "이것들이 가능한 방향입니다. 벨트는 2 ~ 20 블록 길이를 연결니다.",
"create.ponder.belt_transport.header": "벨트를 이용한 수송",
"create.ponder.belt_transport.text_1": "움직이는 벨트는 아이템과 엔티티를 옮깁니다.",
@ -1610,8 +1616,8 @@
"create.ponder.brass_funnel.header": "황동 퍼널",
"create.ponder.brass_funnel.text_1": "안산암 퍼널는 아이템 한 개만 뽑아냅니다.",
"create.ponder.brass_funnel.text_2": "황동 퍼널는 한 스택까지 뽑을 수 있습니다.",
"create.ponder.brass_funnel.text_3": "핕터 슬롯에 스크롤하여 추출 갯수를 조절할 수 있습니다.",
"create.ponder.brass_funnel.text_4": "필터 슬롯에 아이템을 사용하여 추출할 아이템 종류를 정할 수 있습니다.",
"create.ponder.brass_funnel.text_3": "핕터 슬롯을 스크롤하여 추출 갯수를 조절합니다.",
"create.ponder.brass_funnel.text_4": "필터 슬롯에 아이템을 사용하여 추출할 아이템 종류를 정니다.",
"create.ponder.brass_tunnel.header": "황동 터널 사용하기",
"create.ponder.brass_tunnel.text_1": "황동 터널은 벨트를 덮는데 사용할 수 있습니다.",
@ -1624,7 +1630,7 @@
"create.ponder.brass_tunnel.text_8": "이런 식으로, 터널을 통해 직접 아이템을 넣을 수 있습니다.",
"create.ponder.brass_tunnel_modes.header": "황동 터널의 분배 모드",
"create.ponder.brass_tunnel_modes.text_1": "렌치를 이용해, 황동 터널이 어떻게 분배할지 설정할 수 있습니다.",
"create.ponder.brass_tunnel_modes.text_1": "렌치를 이용해, 황동 터널이 어떻게 분배할지 설정니다.",
"create.ponder.brass_tunnel_modes.text_10": "[입력 동기화] 설정은 황동 터널만의 고유 설정입니다.",
"create.ponder.brass_tunnel_modes.text_11": "모든 입구에 아이템이 있어야만 통과할 수 있습니다.",
"create.ponder.brass_tunnel_modes.text_12": "이 설정은 연결된 모든 벨트에 아이템을 동시에 공급할 수 있습니다.",
@ -1656,7 +1662,7 @@
"create.ponder.cart_assembler_rails.text_1": "일반 레일위의 조립기는 지나가는 수레에 아무 영향을 미치지 않습니다.",
"create.ponder.cart_assembler_rails.text_2": "전동 레일, 방향 레일 위에 있을 때, 신호를 받을 때까지 수레는 멈춥니다.",
"create.ponder.cart_assembler_rails.text_3": "다른 수레들도 쓸 수 있습니다.",
"create.ponder.cart_assembler_rails.text_4": "화로 카트는 부착된 보관함에서 연료를 가져와 스스로 움직입니다.",
"create.ponder.cart_assembler_rails.text_4": "화로 수레는 부착된 보관함에서 연료를 가져와 스스로 움직입니다.",
"create.ponder.chain_drive.header": "체인 드라이브로 회전 전달하기",
"create.ponder.chain_drive.text_1": "체인 드라이브는 한 줄로 회전을 전달합니다.",
@ -1672,12 +1678,12 @@
"create.ponder.chain_gearshift.text_6": "12 RPM",
"create.ponder.chute.header": "슈트를 이용해 아이템을 아래로 옮기기",
"create.ponder.chute.text_1": "슈트는 보관함에 있는 아이템을 수직으로 옮길 수 있습니다.",
"create.ponder.chute.text_1": "슈트는 보관함에 있는 아이템을 수직으로 옮니다.",
"create.ponder.chute.text_2": "렌치를 이용해 창문을 만들 수 있습니다.",
"create.ponder.chute.text_3": "슈트 옆면에 다른 슈트를 설치하면 대각선으로 연결됩니다.",
"create.ponder.chute_upward.header": "슈트를 이용해 아이템을 위로 옮기기",
"create.ponder.chute_upward.text_1": "선풍기를 위/아래에 설치하면, 슈트는 아이템을 위로 보낼 수 있습니다.",
"create.ponder.chute_upward.text_1": "선풍기를 위/아래에 설치하면, 슈트는 아이템을 위로 보니다.",
"create.ponder.chute_upward.text_2": "엔지니어의 고글로 슈트를 관찰하여 이동 방향을 확인하세요.",
"create.ponder.chute_upward.text_3": "막힌 끝 부분에서 아이템은 옆에서 넣거나 빼내야합니다.",
@ -1708,11 +1714,11 @@
"create.ponder.creative_fluid_tank.text_1": "크리에이티브 탱크는 무한히 액체를 공급합니다.",
"create.ponder.creative_fluid_tank.text_2": "액체가 든 용기로 우클릭하여 액체를 채울 수 있습니다.",
"create.ponder.creative_fluid_tank.text_3": "파이프로 탱크에서 액체를 무한히 뽑아낼 수 있습니다.",
"create.ponder.creative_fluid_tank.text_4": "크리에이티브 탱크로 들어가는 모든 액체는 삭제됩니다.",
"create.ponder.creative_fluid_tank.text_4": "크리에이티브 탱크로 들어가는 모든 액체는 사라집니다.",
"create.ponder.creative_motor.header": "크리에이티브 모터를 이용해 동력 생산하기",
"create.ponder.creative_motor.text_1": "크리에이티브 모터는 동력을 쉽게 생산, 조절합니다.",
"create.ponder.creative_motor.text_2": "모터 후면을 스크롤해서 모터의 RPM을 조절할 수 있습니다.",
"create.ponder.creative_motor.text_2": "모터 후면을 스크롤해서 모터의 RPM을 조절니다.",
"create.ponder.crushing_wheels.header": "분쇄 휠을 이용해 아이템 가공하기",
"create.ponder.crushing_wheels.text_1": "한 쌍의 분쇄 휠은 아이템을 매우 효과적으로 갈아버립니다.",
@ -1726,8 +1732,8 @@
"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_14": "필터에 맞는 아이템만 들어가며...",
"create.ponder.deployer.text_15": "...그 외의 아이템은 배출됩니다.",
"create.ponder.deployer.text_2": "배포기는 한 칸 떨어진 블록에 상호작용합니다.",
"create.ponder.deployer.text_3": "바로 앞에 블록이 있어도 상괸없습니다.",
"create.ponder.deployer.text_4": "배포기가 할 수 있는 것:",
@ -1738,8 +1744,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.text_1": "배포기가 움직이는 구조물의 일부면...",
"create.ponder.deployer_contraption.text_2": "...배포기는 움직일 때마다 작동하며, 구조물에 붙어있는 아무 보관함의 아이템을 사용합니다.",
"create.ponder.deployer_contraption.text_3": "필터를 이용해 어떤 아이템을 사용할 지 정할 수 있습니다.",
"create.ponder.deployer_modes.header": "배포기의 작동 방식",
@ -1747,10 +1753,10 @@
"create.ponder.deployer_modes.text_2": "렌치를 이용해, 좌클릭을 흉내내도록 설정할 수 있습니다.",
"create.ponder.deployer_processing.header": "배포기로 아이템 가공하기",
"create.ponder.deployer_processing.text_1": "배포기가 맞는 아이템을 가지고 있으면, 아래 있는 아이템을 가공할 수 있습니다.",
"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_processing.text_3": "아이템이 벨트에 있으면...",
"create.ponder.deployer_processing.text_4": "...압착기가 알아서 아이템 이동을 멈추고 가공합니다.",
"create.ponder.deployer_redstone.header": "레드스톤과 배포기",
"create.ponder.deployer_redstone.text_1": "레드스톤 신호를 받으면, 배포기는 작동하지 않습니다.",
@ -1759,12 +1765,12 @@
"create.ponder.depot.header": "아이템 거치대 사용하기",
"create.ponder.depot.text_1": "아이템 거치대는 고정된 벨트 역할입니다.",
"create.ponder.depot.text_2": "우클릭해서 아이템을 놓거나 가져갈 수 있습니다.",
"create.ponder.depot.text_2": "우클릭해서 아이템을 놓거나 가져니다.",
"create.ponder.depot.text_3": "벨트처럼, 놓여진 아이템은 가공될 수 있습니다.",
"create.ponder.depot.text_4": "그리고 기계 팔의 목표가 될 수 있습니다.",
"create.ponder.empty_blaze_burner.header": "빈 블레이즈 버너 사용하기",
"create.ponder.empty_blaze_burner.text_1": "블레이즈를 우클릭하여 버너에 가둘 수 있습니다.",
"create.ponder.empty_blaze_burner.text_1": "블레이즈를 우클릭하여 버너에 가니다.",
"create.ponder.empty_blaze_burner.text_2": "또는 스포너에서도 블레이즈를 가둘 수 있습니다.",
"create.ponder.empty_blaze_burner.text_3": "이제 당신은 다양한 장치에 쓰일 이상적인 열원을 얻었습니다.",
"create.ponder.empty_blaze_burner.text_4": "장식적인 요소로는 라이터로 불을 붙일 수 있습니다.",
@ -1784,30 +1790,30 @@
"create.ponder.fan_processing.text_1": "바람이 용암을 통과하면, 공기가 뜨거워집니다.",
"create.ponder.fan_processing.text_2": "바람이 지나가는 자리의 아이템은 구워집니다.",
"create.ponder.fan_processing.text_3": "음식은 불타 없어집니다.",
"create.ponder.fan_processing.text_4": "대신, 불을 이용하면 음식을 구울 수 있습니다.",
"create.ponder.fan_processing.text_4": "대신, 불을 이용하면 음식을 습니다.",
"create.ponder.fan_processing.text_5": "물을 통과하는 바람을 통해 세척할 수 있습니다.",
"create.ponder.fan_processing.text_6": "이를 통해 새로운 가공을 할 수 있습니다.",
"create.ponder.fan_processing.text_7": "선풍기의 속도는 가공 속도와 관련이 없습니다!",
"create.ponder.fan_processing.text_8": "선풍기 가공은 벨트나 아이템 거치대의 아이템에도 적용됩니다.",
"create.ponder.fan_source.header": "선풍기를 이용해 동력 생산하기",
"create.ponder.fan_source.text_1": "열원을 향한 선풍기는 동력을 제공할 수 있습니다.",
"create.ponder.fan_source.text_1": "열원을 향한 선풍기는 동력을 제공니다.",
"create.ponder.fan_source.text_2": "레드스톤 신호를 받으면, 동력을 제공하기 시작합니다.",
"create.ponder.fluid_pipe_flow.header": "파이프로 액체 옮기기",
"create.ponder.fluid_pipe_flow.text_1": "파이프는 한 종류의 액체만 옮길 수 있습니다.",
"create.ponder.fluid_pipe_flow.text_1": "파이프는 한 종류의 액체만 옮니다.",
"create.ponder.fluid_pipe_flow.text_2": "렌치를 이용하여 직선 파이프에 창문을 달 수 있습니다.",
"create.ponder.fluid_pipe_flow.text_3": "창문이 있는 파이프는 옆에 있는 파이프와 연결되지 않습니다.",
"create.ponder.fluid_pipe_flow.text_4": "펌프를 이용하면 파이프로 액체를 옮길 수 있습니다.",
"create.ponder.fluid_pipe_flow.text_5": "처음엔 액체가 빠지지 않습니다.",
"create.ponder.fluid_pipe_flow.text_6": "액체 흐름이 이어지면, 시작 탱크에서 끝 탱크로 액체가 본격적으로 이동합니다.",
"create.ponder.fluid_pipe_flow.text_7": "이렇기 때문에, 파이프는 실질적으로 아무런 액체도 담을 수 없습니다.",
"create.ponder.fluid_pipe_flow.text_7": "이렇기 때문에, 파이프는 실질적으로 아무런 액체도 담지 않습니다.",
"create.ponder.fluid_pipe_interaction.header": "액체 용기를 비우고 채우기",
"create.ponder.fluid_pipe_interaction.text_1": "파이프의 끝은 다양한 블록과 상호작용할 수 있습니다.",
"create.ponder.fluid_pipe_interaction.text_2": "액체를 담을 수 있는 모든 블록은 비우거나 채울 수 있습니다.",
"create.ponder.fluid_pipe_interaction.text_3": "끝 부분에 있는 액체의 원천도 흡수할 수 있으며,",
"create.ponder.fluid_pipe_interaction.text_4": "비어있는 곳에 액체를 배출할 수도 있습니다.",
"create.ponder.fluid_pipe_interaction.text_3": "끝 부분에 있는 액체의 원천도 흡수할 수 있으며...",
"create.ponder.fluid_pipe_interaction.text_4": "...비어있는 곳에 액체를 배출할 수도 있습니다.",
"create.ponder.fluid_pipe_interaction.text_5": "다양한 다른 블록에서도 액체를 뽑아낼 수도 있습니다.",
"create.ponder.fluid_tank_sizes.header": "액체 탱크의 크기",
@ -1829,7 +1835,7 @@
"create.ponder.flywheel.text_3": "용광로를 사용하면 동력 속도가 2배가 됩니다.",
"create.ponder.funnel_compat.header": "퍼널 호환성",
"create.ponder.funnel_compat.text_1": "퍼널는 다른 장치들 위에 설치할 수도 있습니다.",
"create.ponder.funnel_compat.text_1": "퍼널은 다른 장치들 위에 설치할 수 있습니다.",
"create.ponder.funnel_compat.text_2": "세로 톱",
"create.ponder.funnel_compat.text_3": "아이템 거치대",
"create.ponder.funnel_compat.text_4": "아이템 배수구",
@ -1848,7 +1854,7 @@
"create.ponder.funnel_redstone.text_1": "레드스톤 신호를 받으면 동작을 멈춥니다.",
"create.ponder.funnel_transfer.header": "직접 수송",
"create.ponder.funnel_transfer.text_1": "퍼널는 아이템을 보관함에서 다른 보관함로 옮길 수 없습니다.",
"create.ponder.funnel_transfer.text_1": "퍼널는 아이템을 보관함에서 다른 보관함로 옮니다.",
"create.ponder.funnel_transfer.text_2": "슈트나 스마트 슈트가 이런 목적에 더 적합합니다.",
"create.ponder.funnel_transfer.text_3": "수평 방향으로는 벨트가 적합합니다.",
@ -1858,8 +1864,8 @@
"create.ponder.furnace_engine.text_3": "용광로를 사용하면 동력 속도가 2배가 됩니다.",
"create.ponder.gantry_carriage.header": "갠트리 운반대 사용하기",
"create.ponder.gantry_carriage.text_1": "갠트리 운반대는 갠트리 축 위에서 움직일 수 있습니다.",
"create.ponder.gantry_carriage.text_2": "갠트리 장치는 부착된 블록들을 움직일 수 있습니다.",
"create.ponder.gantry_carriage.text_1": "갠트리 운반대는 갠트리 축 위에서 움직니다.",
"create.ponder.gantry_carriage.text_2": "갠트리 장치는 부착된 블록들을 움직니다.",
"create.ponder.gantry_cascaded.header": "계단식 갠트리",
"create.ponder.gantry_cascaded.text_1": "갠트리 운반대에 접착제 없이 갠트리 축을 붙일 수 있습니다.",
@ -1878,7 +1884,7 @@
"create.ponder.gantry_shaft.header": "갠트리 축 사용하기",
"create.ponder.gantry_shaft.text_1": "갠트리 축은 갠트리 장치에 필요합니다. 갠트리 운반대가 축을 따라 움직입니다.",
"create.ponder.gantry_shaft.text_2": "갠트리 장치는 부착된 블록들을 움직일 수 있습니다.",
"create.ponder.gantry_shaft.text_2": "갠트리 장치는 부착된 블록들을 움직니다.",
"create.ponder.gearbox.header": "기어박스를 이용해 동력 전달하기",
"create.ponder.gearbox.text_1": "회전축을 변경하는 일은 쉽게 귀찮아집니다.",
@ -1901,13 +1907,13 @@
"create.ponder.hose_pulley.text_2": "동력을 전달하여 호스의 높이를 정합니다.",
"create.ponder.hose_pulley.text_3": "동력 방향이 반전되면 호스는 올라갑니다.",
"create.ponder.hose_pulley.text_4": "반대쪽에는 파이프를 연결할 수 있습니다.",
"create.ponder.hose_pulley.text_5": "연결된 파이프에서 호스로 전달하여 액체를 채우거나,",
"create.ponder.hose_pulley.text_6": "반대 방향으로 방향을 바꿔 액체를 비울 수 있습니다.",
"create.ponder.hose_pulley.text_5": "연결된 파이프에서 호스로 전달하여 액체를 채우거나...",
"create.ponder.hose_pulley.text_6": "...반대 방향으로 방향을 바꿔 액체를 비울 수 있습니다.",
"create.ponder.hose_pulley.text_7": "호스의 채우거나 비우는 속도는 펌프 속도에 기반합니다.",
"create.ponder.hose_pulley_infinite.header": "매우 많은 양의 액체를 채우고 비우기",
"create.ponder.hose_pulley_infinite.text_1": "넓은 바다에서 호스 도르래를 작동시키면,",
"create.ponder.hose_pulley_infinite.text_2": "물 블록을 없애거나 추가하지 않고 액체를 얻거나 버릴 수 있습니다.",
"create.ponder.hose_pulley_infinite.text_1": "넓은 바다에서 호스 도르래를 작동시키면...",
"create.ponder.hose_pulley_infinite.text_2": "...물 블록을 없애거나 추가하지 않고 액체를 얻거나 버릴 수 있습니다.",
"create.ponder.hose_pulley_infinite.text_3": "파이프로 이런 도르래에서 무한한 액체를 얻을 수 있습니다.",
"create.ponder.hose_pulley_level.header": "호스 도르래의 채우고 비우는 기준",
@ -1918,14 +1924,14 @@
"create.ponder.hose_pulley_level.text_5": "호스 끝부분 위는 채우지 않습니다.",
"create.ponder.item_drain.header": "아이템 배수구로 액체 비우기",
"create.ponder.item_drain.text_1": "배수구는 아이템에서 액체를 비울 수 있습니다.",
"create.ponder.item_drain.text_2": "우클릭하여 손에 든 아이템에서 액체를 부울 수 있습니다.",
"create.ponder.item_drain.text_3": "아이템이 옆에서 들어온다면,",
"create.ponder.item_drain.text_4": "아이템은 굴라가며 담긴 액체를 비웁니다.",
"create.ponder.item_drain.text_1": "배수구는 아이템에서 액체를 비니다.",
"create.ponder.item_drain.text_2": "우클릭하여 손에 든 아이템에서 액체를 습니다.",
"create.ponder.item_drain.text_3": "아이템이 옆에서 들어온다면...",
"create.ponder.item_drain.text_4": "...아이템은 굴라가며 담긴 액체를 비웁니다.",
"create.ponder.item_drain.text_5": "배수구 탱크에 있는 액체는 파이프로 옮길 수 있습니다.",
"create.ponder.large_cogwheel.header": "큰 톱니바퀴로 동력 전달하기",
"create.ponder.large_cogwheel.text_1": "큰 톱니바퀴는 수직으로 서로 맞물릴 수 있습니다.",
"create.ponder.large_cogwheel.text_1": "큰 톱니바퀴는 수직으로 서로 맞물니다.",
"create.ponder.large_cogwheel.text_2": "이는 다른 축으로 동력을 전달하는데 도움이 됩니다.",
"create.ponder.linear_chassis_attachment.header": "직선 섀시를 이용해 블록 붙이기",
@ -1947,7 +1953,7 @@
"create.ponder.mechanical_arm.text_1": "기계 팔은 설치되기 전, 입력부와 출력부를 지정해야 합니다.",
"create.ponder.mechanical_arm.text_2": "우클릭으로 보관함을 가진 블록을 대상으로 지정합니다.",
"create.ponder.mechanical_arm.text_3": "다시 우클릭하여 입력부(파랑) 출력부(주황)을 설정합니다.",
"create.ponder.mechanical_arm.text_4": "좌클릭하여 대상 선택을 해제할 수 있습니다.",
"create.ponder.mechanical_arm.text_4": "좌클릭하여 대상 선택을 해제니다.",
"create.ponder.mechanical_arm.text_5": "설치된 기계 팔은 이전에 선택된 블록들을 대상으로 정합니다.",
"create.ponder.mechanical_arm.text_6": "거리안에 있다면 여러 블록을 지정할 수 있습니다.",
"create.ponder.mechanical_arm.text_7": "하지만 모든 보관함을 지닌 블록이 지정되지는 않습니다.",
@ -1964,8 +1970,8 @@
"create.ponder.mechanical_arm_modes.header": "기계 팔의 분배 설정",
"create.ponder.mechanical_arm_modes.text_1": "입력부",
"create.ponder.mechanical_arm_modes.text_2": "출력부",
"create.ponder.mechanical_arm_modes.text_3": "기계 팔이 여러 곳에 아이템을 전달해야 한다면,",
"create.ponder.mechanical_arm_modes.text_4": "현재 분배 설정에 따라 행동합니다.",
"create.ponder.mechanical_arm_modes.text_3": "기계 팔이 여러 곳에 아이템을 전달해야 한다면...",
"create.ponder.mechanical_arm_modes.text_4": "...현재 분배 설정에 따라 행동합니다.",
"create.ponder.mechanical_arm_modes.text_5": "렌치로 스크롤하여 어떻게 분배할지 설정하세요.",
"create.ponder.mechanical_arm_modes.text_6": "'순서대로 옮김'은 가능한 곳을 순환하며 아이템을 분배합니다.",
"create.ponder.mechanical_arm_modes.text_7": "어느 한 곳이 더 전달받을 수 없다면, 그 곳은 넘어갑니다.",
@ -1981,20 +1987,20 @@
"create.ponder.mechanical_bearing.text_1": "베어링은 앞에 있는 블록을 부착시킵니다.",
"create.ponder.mechanical_bearing.text_2": "동력을 받으면, 블록들은 회전하는 구조물로 변합니다.",
"create.ponder.mechanical_crafter.header": "기계식 조합기 설치하기",
"create.ponder.mechanical_crafter.text_1": "다수의 기계식 조합기로 모든 조합을 자동화할 수 있습니다.",
"create.ponder.mechanical_crafter.header": "조합기 설치하기",
"create.ponder.mechanical_crafter.text_1": "다수의 조합기로 모든 조합을 자동화할 수 있습니다.",
"create.ponder.mechanical_crafter.text_2": "렌치를 이용해, 조합기의 경로를 변경할 수 있습니다.",
"create.ponder.mechanical_crafter.text_3": "올바른 조합을 위해서는, 모든 조합기의 경로가 외부로 나가는 한 길로 이어져야합니다.",
"create.ponder.mechanical_crafter.text_4": "결과물은 경로 끝 보관함에 보내집니다.",
"create.ponder.mechanical_crafter.text_5": "기계식 조합기는 동력이 요구됩니다.",
"create.ponder.mechanical_crafter.text_6": "앞면을 우클릭해서 직접 아이템을 넣을 수 있습니다.",
"create.ponder.mechanical_crafter.text_5": "조합기는 동력이 요구됩니다.",
"create.ponder.mechanical_crafter.text_6": "앞면을 우클릭해서 직접 아이템을 넣습니다.",
"create.ponder.mechanical_crafter.text_7": "모든 면이 아이템을 가지고 있다면, 조합이 시작됩니다.",
"create.ponder.mechanical_crafter.text_8": "모든 면이 아이템을 가지고 있지 않아도, 레드스톤 신호로 조합을 강제 시작할 수 있습니다.",
"create.ponder.mechanical_crafter_connect.header": "조합기에 아이템 넣기",
"create.ponder.mechanical_crafter_connect.text_1": "조합기에 아이템을 자동으로 넣을 수 있습니다.",
"create.ponder.mechanical_crafter_connect.text_2": "후면에 렌치를 이용해 조합기 보관함을 연결할 수 있습니다.",
"create.ponder.mechanical_crafter_connect.text_3": "이제 모든 조합기가 한 곳에서 아이템을 받을 수 있습니다.",
"create.ponder.mechanical_crafter_connect.text_3": "이제 모든 조합기가 한 곳에서 아이템을 받습니다.",
"create.ponder.mechanical_crafter_covers.header": "조합기 슬롯 덮기",
"create.ponder.mechanical_crafter_covers.text_1": "몇몇 조합은 빈 공간을 채워줄 조합기가 필요합니다.",
@ -2006,58 +2012,58 @@
"create.ponder.mechanical_drill.text_2": "채굴 속도는 동력 속도에 비례합니다.",
"create.ponder.mechanical_drill_contraption.header": "구조물에서의 드릴",
"create.ponder.mechanical_drill_contraption.text_1": "드릴이 움직이는 구조물의 일부일 때,",
"create.ponder.mechanical_drill_contraption.text_2": "드릴이 부딫히는 블록을 파괴합니다.",
"create.ponder.mechanical_drill_contraption.text_1": "드릴이 움직이는 구조물의 일부면...",
"create.ponder.mechanical_drill_contraption.text_2": "...드릴이 부딫히는 블록을 파괴합니다.",
"create.ponder.mechanical_harvester.header": "구조물에서의 수확기",
"create.ponder.mechanical_harvester.text_1": "수확기가 움직이는 구조물의 일부일 때,",
"create.ponder.mechanical_harvester.text_2": "지나가는 길에 있는 작물을 수확하고, 성장 수치를 초기화합니다.",
"create.ponder.mechanical_harvester.text_1": "수확기가 움직이는 구조물의 일부면...",
"create.ponder.mechanical_harvester.text_2": "...지나가는 길에 있는 작물을 수확하고, 성장 수치를 초기화합니다.",
"create.ponder.mechanical_mixer.header": "믹서로 아이템 가공하기",
"create.ponder.mechanical_mixer.text_1": "믹서와 대야를 이용해 몇몇 조합을 자동화할 수 있습니다.",
"create.ponder.mechanical_mixer.text_2": "가능한 조합법은 어느 무형 조합법이나 가능하며, 모드에서 추가된 조합법도 있습니다.",
"create.ponder.mechanical_mixer.text_3": "몇몇 조합법은 블레이즈 버너의 열을 요구합니다.",
"create.ponder.mechanical_mixer.text_4": "필터 슬롯을 이용해 조합법이 겹치는 것을 방지할 수 있습니다.",
"create.ponder.mechanical_mixer.text_4": "필터 슬롯을 이용해 조합법이 겹치는 것을 방지니다.",
"create.ponder.mechanical_piston.header": "기계식 피스톤으로 구조물 옮기기",
"create.ponder.mechanical_piston.text_1": "기계식 피스톤은 블록들을 앞으로 움직일 수 있습니다.",
"create.ponder.mechanical_piston.text_1": "기계식 피스톤은 블록들을 앞으로 움직니다.",
"create.ponder.mechanical_piston.text_2": "속도와 방향은 들어오는 동력에 기반합니다.",
"create.ponder.mechanical_piston.text_3": "끈끈이 기계식 피스톤은 블록들을 다시 끌어올 수 있습니다.",
"create.ponder.mechanical_piston.text_3": "끈끈이 기계식 피스톤은 블록들을 다시 끌어니다.",
"create.ponder.mechanical_piston_modes.header": "기계식 피스톤의 이동 설정",
"create.ponder.mechanical_piston_modes.text_1": "피스톤이 움직임을 멈추면, 움직인 구조물은 블록으로 바뀝니다.",
"create.ponder.mechanical_piston_modes.text_2": "블록으로 바뀌지 않게 하거나, 시작지점에서만 바뀌도록 설정할 수 있습니다.",
"create.ponder.mechanical_plough.header": "구조물에서의 쟁기",
"create.ponder.mechanical_plough.text_1": "쟁기가 움직이는 구조물의 일부일 때,",
"create.ponder.mechanical_plough.text_2": "히트박스가 없는 블록을 파괴합니다.",
"create.ponder.mechanical_plough.text_1": "쟁기가 움직이는 구조물의 일부면...",
"create.ponder.mechanical_plough.text_2": "...히트박스가 없는 블록을 파괴합니다.",
"create.ponder.mechanical_plough.text_3": "또, 쟁기는 경작지를 만들 수 있습니다.",
"create.ponder.mechanical_plough.text_4": "...그리고 엔티티를 피해없이 날려보낼 수도 있습니다!",
"create.ponder.mechanical_press.header": "압착기로 아이템 가공하기",
"create.ponder.mechanical_press.text_1": "압착기는 아래에 놓인 아이템을 가공할 수 있습니다.",
"create.ponder.mechanical_press.text_2": "가공할 아이템은 압착기 아래에 떨구거나 아이템 거치대에 올려두어야 합니다.",
"create.ponder.mechanical_press.text_3": "아이템이 벨트에 있으면,",
"create.ponder.mechanical_press.text_4": "압착기가 알아서 아이템 이동을 멈추고 가공합니다.",
"create.ponder.mechanical_press.text_3": "아이템이 벨트에 있으면...",
"create.ponder.mechanical_press.text_4": "...압착기가 알아서 아이템 이동을 멈추고 가공합니다.",
"create.ponder.mechanical_press_compacting.header": "압착기로 아이템 압축하기",
"create.ponder.mechanical_press_compacting.text_1": "대야와 함께 사용해서 아이템을 압축할 수 있습니다.",
"create.ponder.mechanical_press_compacting.text_2": "가능한 조합법은 2x2 / 3x3 조합법을 포함하고, 모드에서 추가된 조합법도 있습니다.",
"create.ponder.mechanical_press_compacting.text_3": "몇몇 조합법은 블레이즈 버너의 열을 요구합니다.",
"create.ponder.mechanical_press_compacting.text_4": "필터 슬롯을 이용해 조합법이 겹치는 것을 방지할 수 있습니다.",
"create.ponder.mechanical_press_compacting.text_4": "필터 슬롯을 이용해 조합법이 겹치는 것을 방지니다.",
"create.ponder.mechanical_pump_flow.header": "펌프를 이용해 액체 옮기기",
"create.ponder.mechanical_pump_flow.text_1": "펌프는 연결된 파이프속 흐름을 관리합니다.",
"create.ponder.mechanical_pump_flow.text_2": "동력을 전달받으면 화살표가 흐름의 방향을 알려줍니다.",
"create.ponder.mechanical_pump_flow.text_3": "화살표 뒤의 파이프는 액체를 뽑아내고,",
"create.ponder.mechanical_pump_flow.text_4": "화살표 앞의 파이프는 액체를 밀어냅니다.",
"create.ponder.mechanical_pump_flow.text_3": "화살표 뒤의 파이프는 액체를 뽑아내고...",
"create.ponder.mechanical_pump_flow.text_4": "...화살표 앞의 파이프는 액체를 밀어냅니다.",
"create.ponder.mechanical_pump_flow.text_5": "동력 방향을 반전시키면 흐름의 방향도 반전됩니다.",
"create.ponder.mechanical_pump_flow.text_6": "렌치로 펌프 방향 자체를 돌릴 수도 있습니다.",
"create.ponder.mechanical_pump_speed.header": "펌프의 처리율",
"create.ponder.mechanical_pump_speed.text_1": "동력 속도와는 상관없이 펌프는 16블록 길이의 파이프까지 영향을 미칩니다.",
"create.ponder.mechanical_pump_speed.text_2": "동력 속도를 높이면 액체가 흐르는 속도가 높아지고,",
"create.ponder.mechanical_pump_speed.text_3": "옮기는 액체의 양도 증가합니다.",
"create.ponder.mechanical_pump_speed.text_2": "동력 속도를 높이면 액체가 흐르는 속도가 높아지고...",
"create.ponder.mechanical_pump_speed.text_3": "...옮기는 액체의 양도 증가합니다.",
"create.ponder.mechanical_pump_speed.text_4": "펌프는 병렬로 설치할 수 있습니다.",
"create.ponder.mechanical_pump_speed.text_5": "펌프 방향을 바꾸어 흐름의 뱡향을 통일할 수 있습니다.",
@ -2066,11 +2072,11 @@
"create.ponder.mechanical_saw_breaker.text_2": "두꺼운 나무를 벨려면, 땅에 붙어있는 마지막 나무 블록을 파괴해야합니다.",
"create.ponder.mechanical_saw_contraption.header": "구조물에서의 톱",
"create.ponder.mechanical_saw_contraption.text_1": "톱이 움직이는 구조물의 일부일 때,",
"create.ponder.mechanical_saw_contraption.text_2": "부딫히는 모든 나무를 벱니다.",
"create.ponder.mechanical_saw_contraption.text_1": "톱이 움직이는 구조물의 일부면...",
"create.ponder.mechanical_saw_contraption.text_2": "...부딫히는 모든 나무를 벱니다.",
"create.ponder.mechanical_saw_processing.header": "톱으로 아이템 가공하기",
"create.ponder.mechanical_saw_processing.text_1": "위를 바라보는 톱은 다양한 아이템을 가공할 수 있습니다.",
"create.ponder.mechanical_saw_processing.text_1": "위를 바라보는 톱은 다양한 아이템을 가공니다.",
"create.ponder.mechanical_saw_processing.text_2": "가공되는 아이템은 언제나 동력의 반대로 움직입니다.",
"create.ponder.mechanical_saw_processing.text_3": "톱은 벨트와 연동이 가능합니다.",
"create.ponder.mechanical_saw_processing.text_4": "재료가 여러 결과물로 가공될 수 있을 때, 필터로 제한할 수 있습니다.",
@ -2098,8 +2104,8 @@
"create.ponder.portable_fluid_interface.text_3": "두 번째 인터페이스를 1~2 블록 띄우고 설치하세요.",
"create.ponder.portable_fluid_interface.text_4": "서로를 마주칠 때마다, 접속을 시도합니다.",
"create.ponder.portable_fluid_interface.text_5": "접속한 상태에서, 블록 상태의 인터페이스는 장치의 모든 탱크와 동일합니다.",
"create.ponder.portable_fluid_interface.text_6": "액체를 넣을 수도 있고,",
"create.ponder.portable_fluid_interface.text_7": "장치에서 액체를 뺄 수도 있습니다.",
"create.ponder.portable_fluid_interface.text_6": "액체를 넣을 수도 있고...",
"create.ponder.portable_fluid_interface.text_7": "...장치에서 액체를 뺄 수도 있습니다.",
"create.ponder.portable_fluid_interface.text_8": "일정 시간동안 액체가 교환되지 않으면, 장치는 움직입니다.",
"create.ponder.portable_storage_interface.header": "구조물 장치의 아이템 교환",
@ -2108,8 +2114,8 @@
"create.ponder.portable_storage_interface.text_3": "두 번째 인터페이스를 1~2 블록 띄우고 설치하세요.",
"create.ponder.portable_storage_interface.text_4": "서로를 마주칠 때마다, 접속을 시도합니다.",
"create.ponder.portable_storage_interface.text_5": "접속한 상태에서, 블록 상태의 인터페이스는 장치의 모든 보관함과 동일합니다.",
"create.ponder.portable_storage_interface.text_6": "아이템을 넣을 수도 있고,",
"create.ponder.portable_storage_interface.text_7": "장치에서 아이템을 뺄 수도 있습니다.",
"create.ponder.portable_storage_interface.text_6": "아이템을 넣을 수도 있고...",
"create.ponder.portable_storage_interface.text_7": "...장치에서 아이템을 뺄 수도 있습니다.",
"create.ponder.portable_storage_interface.text_8": "일정 시간동안 아이템이 교환되지 않으면, 장치는 움직입니다.",
"create.ponder.portable_storage_interface_redstone.header": "레드스톤 설정",
@ -2117,8 +2123,8 @@
"create.ponder.powered_latch.header": "레드스톤 걸쇠 사용하기",
"create.ponder.powered_latch.text_1": "레드스톤 걸쇠는 설정 가능한 레버입니다.",
"create.ponder.powered_latch.text_2": "뒤에서 오는 신호는 걸쇠 신호를 키고,",
"create.ponder.powered_latch.text_3": "옆에서 오는 신호는 걸쇠 신호를 끕니다.",
"create.ponder.powered_latch.text_2": "뒤에서 오는 신호는 걸쇠 신호를 키고...",
"create.ponder.powered_latch.text_3": "...옆에서 오는 신호는 걸쇠 신호를 끕니다.",
"create.ponder.powered_latch.text_4": "레드스톤 걸쇠는 직접 끄고 킬 수도 있습니다.",
"create.ponder.powered_toggle_latch.header": "레드스톤 토글 걸쇠 사용하기",
@ -2127,8 +2133,8 @@
"create.ponder.powered_toggle_latch.text_3": "혹은 끕니다.",
"create.ponder.powered_toggle_latch.text_4": "레드스톤 토글 걸쇠는 직접 끄고 킬 수도 있습니다.",
"create.ponder.pulse_repeater.header": "펄스 리피터 사용하기",
"create.ponder.pulse_repeater.text_1": "펄스 리피터는 어느 레드스톤 신호라도 1틱 신호로 바꿉니다.",
"create.ponder.pulse_repeater.header": "펄스 중계기 사용하기",
"create.ponder.pulse_repeater.text_1": "펄스 중계기는 어느 레드스톤 신호라도 1틱 신호로 바꿉니다.",
"create.ponder.radial_chassis.header": "원형 섀시를 이용해 블록 붙이기",
"create.ponder.radial_chassis.text_1": "원형 섀시는 다른 원형 섀시와 이어집니다.",
@ -2136,8 +2142,8 @@
"create.ponder.radial_chassis.text_3": "원형 섀시의 옆면은 접착할 수 있습니다.",
"create.ponder.radial_chassis.text_4": "한번 더 클릭하여 모든 면을 접착면으로 만들 수 있습니다.",
"create.ponder.radial_chassis.text_5": "빈손으로 웅크리고 우클릭하여 접착제를 없앨 수 있습니다.",
"create.ponder.radial_chassis.text_6": "접착면에 블록이 있으면,",
"create.ponder.radial_chassis.text_7": "해당 층 반지름 안에 있는 모든 블록을 연결합니다.",
"create.ponder.radial_chassis.text_6": "접착면에 블록이 있으면...",
"create.ponder.radial_chassis.text_7": "...해당 층 반지름 안에 있는 모든 블록을 연결합니다.",
"create.ponder.radial_chassis.text_8": "렌치룰 이용하여, 섀시의 부착 반지름을 조절할 수 있습니다.",
"create.ponder.radial_chassis.text_9": "접착면 반지름 밖의 블록은 붙지 않습니다.",
@ -2154,13 +2160,13 @@
"create.ponder.redstone_link.text_6": "맞는 주파수끼리만 레드스톤 링크가 작동합니다.",
"create.ponder.rope_pulley.header": "밧줄 도르래로 구조물 옮기기",
"create.ponder.rope_pulley.text_1": "밧줄 도르래는 동력을 받으면 블록을 수직으로 옮길 수 있습니다.",
"create.ponder.rope_pulley.text_1": "밧줄 도르래는 동력을 받으면 블록을 수직으로 옮니다.",
"create.ponder.rope_pulley.text_2": "방향과 속도는 들어오는 동력에 기반합니다.",
"create.ponder.rope_pulley_attachment.header": "구조물로서의 밧줄 도르래",
"create.ponder.rope_pulley_attachment.text_1": "도르래가 장치에 의해 움직여지면,",
"create.ponder.rope_pulley_attachment.text_2": "도르래에 딸린 구조물도 함께 움직입니다.",
"create.ponder.rope_pulley_attachment.text_3": "다만 도르래는 멈춰있을 떄만 작동할 수 있습니다.",
"create.ponder.rope_pulley_attachment.text_1": "도르래가 장치에 의해 움직여지면...",
"create.ponder.rope_pulley_attachment.text_2": "...도르래에 딸린 구조물도 함께 움직입니다.",
"create.ponder.rope_pulley_attachment.text_3": "다만 도르래는 멈춰있을 때만 작동합니다.",
"create.ponder.rope_pulley_modes.header": "밧줄 도르래의 이동 설정",
"create.ponder.rope_pulley_modes.text_1": "도르래가 움직임을 멈추면, 움직인 구조물은 블록으로 바뀝니다.",
@ -2211,18 +2217,18 @@
"create.ponder.speedometer.text_3": "속도 계측기의 측정값에 따라 비교기가 레드스톤 신호를 내보냅니다.",
"create.ponder.spout_filling.header": "주입기로 아이템에 액체 채우기",
"create.ponder.spout_filling.text_1": "주입기는 아래있는 아이템을 액체를 채울 수 있습니다.",
"create.ponder.spout_filling.text_1": "주입기는 아래있는 아이템을 액체를 채니다.",
"create.ponder.spout_filling.text_2": "주입기 탱크는 직접 건드릴 수 없습니다.",
"create.ponder.spout_filling.text_3": "대신, 파이프로 액체를 공급할 수는 있습니다.",
"create.ponder.spout_filling.text_4": "주입기 아래 아이템 거치대에 아이템을 놓 수 있습니다.",
"create.ponder.spout_filling.text_5": "아이템이 벨트에 있으면,",
"create.ponder.spout_filling.text_6": "주입기가 알아서 아이템 이동을 멈추고 가공합니다.",
"create.ponder.spout_filling.text_4": "주입기 아래 아이템 거치대에 아이템을 놓아, 액체를 채울 수 있습니다.",
"create.ponder.spout_filling.text_5": "아이템이 벨트에 있으면...",
"create.ponder.spout_filling.text_6": "...주입기가 알아서 아이템 이동을 멈추고 가공합니다.",
"create.ponder.stabilized_bearings.header": "베어링 안정화",
"create.ponder.stabilized_bearings.text_1": "베어링이 움직이는 구조물의 일부분이어도,",
"create.ponder.stabilized_bearings.text_2": "방향이 유지됩니다.",
"create.ponder.stabilized_bearings.text_3": "베어링에 블록이 부착되어도,",
"create.ponder.stabilized_bearings.text_4": "부착된 구조물의 방향이 유지됩니다.",
"create.ponder.stabilized_bearings.text_1": "베어링이 움직이는 구조물의 일부분이어도...",
"create.ponder.stabilized_bearings.text_2": "...방향이 유지됩니다.",
"create.ponder.stabilized_bearings.text_3": "베어링에 블록이 부착되어도...",
"create.ponder.stabilized_bearings.text_4": "...부착된 구조물의 방향이 유지됩니다.",
"create.ponder.sticker.header": "부착기를 통한 블록 부착",
"create.ponder.sticker.text_1": "부착기는 레드스톤으로 제어할 수 있습니다.",
@ -2236,10 +2242,10 @@
"create.ponder.stressometer.text_3": "피로도 계측기의 측정값에 따라 비교기가 레드스톤 신호를 내보냅니다.",
"create.ponder.super_glue.header": "강력 접착제로 블록 붙이기",
"create.ponder.super_glue.text_1": "강력 접착제는 두 블록 사이에 사용해 블록을 붙일 수 있습니다.",
"create.ponder.super_glue.text_1": "강력 접착제는 두 블록 사이에 사용해 블록을 붙니다.",
"create.ponder.super_glue.text_2": "장치가 작동할 때, 붙은 블록들은 같이 이동됩니다.",
"create.ponder.super_glue.text_3": "강력 접착제를 다른 손에 들고,",
"create.ponder.super_glue.text_4": "블록을 설치하면 자동으로 블록을 붙일 수 있습니다.",
"create.ponder.super_glue.text_3": "강력 접착제를 다른 손에 들고...",
"create.ponder.super_glue.text_4": "...블록을 설치하면 자동으로 블록을 붙일 수 있습니다.",
"create.ponder.super_glue.text_5": "왼쪽 버튼을 누르면 강력 접착제를 제거할 수 있습니다.",
"create.ponder.valve_handle.header": "밸브 손잡이로 동력 생산하기",
@ -2256,10 +2262,10 @@
"create.ponder.valve_pipe.text_4": "반대 방향으로 동력을 제공하면 밸브가 닫힙니다.",
"create.ponder.water_wheel.header": "물레바퀴로 동력 생산하기",
"create.ponder.water_wheel.text_1": "물레바퀴는 물의 흐름으로부터 동력을 끌어올 수 있습니다.",
"create.ponder.water_wheel.text_1": "물레바퀴는 물의 흐름으로부터 동력을 끌어니다.",
"create.ponder.water_wheel.text_2": "많은 면에 힘이 가해질수록 물레바퀴가 더 빠르게 회전합니다.",
"create.ponder.water_wheel.text_3": "바퀴의 날이 물이 흐르는 방향으로 향하게 된다면,",
"create.ponder.water_wheel.text_4": "회전 속도가 감소하게 됩니다.",
"create.ponder.water_wheel.text_3": "바퀴의 날이 물이 흐르는 방향으로 향하게 된다면...",
"create.ponder.water_wheel.text_4": "...회전 속도가 감소하게 됩니다.",
"create.ponder.weighted_ejector.header": "투척기 사용하기",
"create.ponder.weighted_ejector.text_1": "투척기를 들고 웅크리고 우클릭하면, 발사 지점을 정할 수 있습니다.",
@ -2282,12 +2288,12 @@
"create.ponder.weighted_ejector_tunnel.text_1": "황동 터널과 같이 사용하면 특정 양만큼 아이템을 분할할 수 있습니다.",
"create.ponder.weighted_ejector_tunnel.text_2": "먼저, 황동 터널을 '가까운 곳 선호' 방식으로 변경하여 측면에 아이템을 먼저 출력하게 만드세요.",
"create.ponder.weighted_ejector_tunnel.text_3": "이제, 투척기에 설정량에 따라 아이템을 분할할 수 있습니다.",
"create.ponder.weighted_ejector_tunnel.text_4": "설정량만큼의 아이템이 출력되고,",
"create.ponder.weighted_ejector_tunnel.text_5": "나머지 아이템은 계속 수송됩니다",
"create.ponder.weighted_ejector_tunnel.text_4": "설정량만큼의 아이템이 출력되고...",
"create.ponder.weighted_ejector_tunnel.text_5": "...나머지 아이템은 계속 수송됩니다",
"create.ponder.windmill_source.header": "풍차 베어링으로 동력 생산하기",
"create.ponder.windmill_source.text_1": "풍차 베어링은 부착된 블록을 회전하게 만듭니다.",
"create.ponder.windmill_source.text_2": "날개 블록이 충분히 부착되어야 풍차의 역할을 할 수 있습니다.",
"create.ponder.windmill_source.text_2": "날개 블록이 충분히 부착되어야 풍차의 역할을 니다.",
"create.ponder.windmill_source.text_3": "우클릭하면 풍차 베어링이 동력을 생성합니다.",
"create.ponder.windmill_source.text_4": "날개 수에 따라 회전 속도가 바뀝니다.",
"create.ponder.windmill_source.text_5": "렌치를 들고 스크롤하면 회전 방향을 바꿀 수 있습니다.",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1762",
"_": "Missing Localizations: 1767",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "UNLOCALIZED: Copper Sheet",
"item.create.crafter_slot_cover": "UNLOCALIZED: Crafter Slot Cover",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "UNLOCALIZED: Crushed Aluminum Ore",
"item.create.crushed_brass": "Gemalen Brons",
"item.create.crushed_copper_ore": "UNLOCALIZED: Crushed Copper Ore",
@ -1221,7 +1222,7 @@
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
"create.subtitle.mixing": "UNLOCALIZED: Mixing noises",
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
@ -1229,7 +1230,7 @@
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
"create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel Flaps",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps",
"create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings",
"create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 251",
"_": "Missing Localizations: 256",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "Arkusz miedzi",
"item.create.crafter_slot_cover": "Przykrywka na slot stołu rzemieślniczego",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "Rozkruszona ruda żelaza",
"item.create.crushed_brass": "Rozkruszony mosiądz",
"item.create.crushed_copper_ore": "Rozkruszona ruda miedzi",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "Kiedy przedmiot jest w slocie na filtr",
"block.create.creative_crate.tooltip.behaviour1": "Bloki _wyciągające_ przedmioty z tego bloku będą miały _nieskończony zapas_ wybranego przedmiotu. Przedmioty włożone do tej skrzynki będą _usuwane_.",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "TORY STERUJĄCE",
"block.create.controller_rail.tooltip.summary": "_Wielokierunkowy_ zasilany tor pozwalający na _dokładną kontrolę_ nad _prędkością wagonika_.",
"block.create.controller_rail.tooltip.condition1": "Kiedy zasilone przez Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 1803",
"_": "Missing Localizations: 1808",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "UNLOCALIZED: Copper Sheet",
"item.create.crafter_slot_cover": "UNLOCALIZED: Crafter Slot Cover",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "UNLOCALIZED: Crushed Aluminum Ore",
"item.create.crushed_brass": "UNLOCALIZED: Crushed Brass",
"item.create.crushed_copper_ore": "UNLOCALIZED: Crushed Copper Ore",
@ -1221,7 +1222,7 @@
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
"create.subtitle.mixing": "UNLOCALIZED: Mixing noises",
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
@ -1229,7 +1230,7 @@
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
"create.subtitle.blaze_munch": "UNLOCALIZED: Blaze Burner munches",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel Flaps",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps",
"create.subtitle.schematicannon_finish": "UNLOCALIZED: Schematicannon dings",
"create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "UNLOCALIZED: When Item in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "UNLOCALIZED: Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "UNLOCALIZED: CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "UNLOCALIZED: A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "UNLOCALIZED: When Powered by Redstone",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 292",
"_": "Missing Localizations: 297",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "铜板",
"item.create.crafter_slot_cover": "合成器盖板",
"item.create.crafting_blueprint": "UNLOCALIZED: Crafting Blueprint",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "粉碎铝矿石",
"item.create.crushed_brass": "粉碎黄铜",
"item.create.crushed_copper_ore": "粉碎铜矿石",
@ -1221,7 +1222,7 @@
"create.subtitle.contraption_disassemble": "UNLOCALIZED: Contraption stops",
"create.subtitle.peculiar_bell_use": "UNLOCALIZED: Peculiar Bell tolls",
"create.subtitle.mixing": "UNLOCALIZED: Mixing Noises",
"create.subtitle.mixing": "UNLOCALIZED: Mixing noises",
"create.subtitle.mechanical_press_activation_belt": "UNLOCALIZED: Mechanical Press bonks",
"create.subtitle.fwoomp": "UNLOCALIZED: Potato Launcher fwoomps",
"create.subtitle.worldshaper_place": "UNLOCALIZED: Worldshaper zaps",
@ -1229,7 +1230,7 @@
"create.subtitle.depot_slide": "UNLOCALIZED: Item slides",
"create.subtitle.saw_activate_stone": "UNLOCALIZED: Mechanical Saw activates",
"create.subtitle.blaze_munch": "烈焰人:咀嚼",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel Flaps",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps",
"create.subtitle.schematicannon_finish": "蓝图加农炮:叮",
"create.subtitle.haunted_bell_use": "UNLOCALIZED: Haunted Bell tolls",
"create.subtitle.scroll_value": "UNLOCALIZED: Scroll-input clicks",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "当标记了物品时",
"block.create.creative_crate.tooltip.behaviour1": "任何从容器中_提取_的物品都是_无限量的_而任何_放置_到容器中的物品都会被_送入虚空_",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "控制铁轨",
"block.create.controller_rail.tooltip.summary": "一种_汇流的受红石信号影响的_铁轨可以_较好地控制_经过矿车的_移动速度_。",
"block.create.controller_rail.tooltip.condition1": "通入红石信号时时",

View file

@ -1,5 +1,5 @@
{
"_": "Missing Localizations: 14",
"_": "Missing Localizations: 19",
"_": "->------------------------] Game Elements [------------------------<-",
@ -468,6 +468,7 @@
"item.create.copper_sheet": "銅板",
"item.create.crafter_slot_cover": "合成器蓋板",
"item.create.crafting_blueprint": "合成藍圖",
"item.create.creative_cake": "UNLOCALIZED: Creative Cake",
"item.create.crushed_aluminum_ore": "碎狀鋁礦石",
"item.create.crushed_brass": "碎狀黃銅",
"item.create.crushed_copper_ore": "碎狀銅礦石",
@ -1229,7 +1230,7 @@
"create.subtitle.depot_slide": "物品滑動聲",
"create.subtitle.saw_activate_stone": "機械鋸子聲",
"create.subtitle.blaze_munch": "烈焰使者開心地吃著",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel Flaps",
"create.subtitle.funnel_flap": "UNLOCALIZED: Funnel flaps",
"create.subtitle.schematicannon_finish": "藍圖大炮完成任務",
"create.subtitle.haunted_bell_use": "靈魂鐘敲響",
"create.subtitle.scroll_value": "滾動輸入聲",
@ -1412,6 +1413,11 @@
"block.create.creative_crate.tooltip.condition1": "當標記了物品時",
"block.create.creative_crate.tooltip.behaviour1": "容器將會從虛空中提供_無限量_的標記物品並且任何放置到容器中的物品都會被_送入虛空_",
"item.create.creative_cake.tooltip": "UNLOCALIZED: CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "UNLOCALIZED: A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "UNLOCALIZED: R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "UNLOCALIZED: _Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "控制鐵軌",
"block.create.controller_rail.tooltip.summary": "單向電動導軌,能夠精細控制礦車的移動速度。",
"block.create.controller_rail.tooltip.condition1": "被紅石激活時",

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "create:item/creative_cake"
}
}

View file

@ -28,8 +28,8 @@
"trigger": "create:bracket_apply",
"conditions": {
"accepted_entries": [
"create:large_cogwheel",
"create:cogwheel"
"create:cogwheel",
"create:large_cogwheel"
]
}
},

View file

@ -3,6 +3,7 @@
"values": [
"create:blaze_cake_base",
"create:blaze_cake",
"create:creative_cake",
"create:builders_tea",
"minecraft:glass_bottle",
"minecraft:potion",

View file

@ -484,7 +484,7 @@ public class AllBlocks {
public static final BlockEntry<BlazeBurnerBlock> BLAZE_BURNER =
REGISTRATE.block("blaze_burner", BlazeBurnerBlock::new)
.initialProperties(SharedProperties::softMetal)
.properties(p -> p.lightLevel($ -> 12))
.properties(p -> p.lightLevel(BlazeBurnerBlock::getLight))
.addLayer(() -> RenderType::cutoutMipped)
.tag(AllBlockTags.FAN_TRANSPARENT.tag, AllBlockTags.FAN_HEATERS.tag)
.loot((lt, block) -> lt.add(block, BlazeBurnerBlock.buildLootTable()))

View file

@ -105,6 +105,13 @@ public class AllItems {
public static final ItemEntry<CombustibleItem> BLAZE_CAKE = REGISTRATE.item("blaze_cake", CombustibleItem::new)
.tag(AllItemTags.UPRIGHT_ON_BELT.tag)
.onRegister(i -> i.setBurnTime(6400))
.register();
public static final ItemEntry<CombustibleItem> CREATIVE_CAKE = REGISTRATE.item("creative_cake", CombustibleItem::new)
.properties(p -> p.rarity(Rarity.EPIC))
.tag(AllItemTags.UPRIGHT_ON_BELT.tag)
.onRegister(i -> i.setBurnTime(Integer.MAX_VALUE))
.register();
public static final ItemEntry<Item> BAR_OF_CHOCOLATE = REGISTRATE.item("bar_of_chocolate", Item::new)

View file

@ -21,6 +21,7 @@ import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuild
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer;
import com.simibubi.create.content.curiosities.tools.SandPaperPolishingRecipe;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.crafting.IRecipe;
@ -32,7 +33,7 @@ import net.minecraft.util.registry.Registry;
import net.minecraft.world.World;
import net.minecraftforge.event.RegistryEvent;
public enum AllRecipeTypes {
public enum AllRecipeTypes implements IRecipeTypeInfo {
MECHANICAL_CRAFTING(MechanicalCraftingRecipe.Serializer::new),
CONVERSION(ConversionRecipe::new),
@ -78,16 +79,19 @@ public enum AllRecipeTypes {
this(processingSerializer(processingFactory));
}
@Override
public ResourceLocation getId() {
return id;
}
@SuppressWarnings("unchecked")
@Override
public <T extends IRecipeSerializer<?>> T getSerializer() {
return (T) serializer;
}
@SuppressWarnings("unchecked")
@Override
public <T extends IRecipeType<?>> T getType() {
return (T) type;
}

View file

@ -55,7 +55,7 @@ public class AllSoundEvents {
.category(SoundCategory.BLOCKS)
.build(),
FUNNEL_FLAP = create("funnel_flap").subtitle("Funnel Flaps")
FUNNEL_FLAP = create("funnel_flap").subtitle("Funnel flaps")
.playExisting(SoundEvents.ITEM_FRAME_ROTATE_ITEM, .125f, 1.5f)
.playExisting(SoundEvents.WOOL_BREAK, .0425f, .75f)
.category(SoundCategory.BLOCKS)
@ -79,7 +79,7 @@ public class AllSoundEvents {
.category(SoundCategory.BLOCKS)
.build(),
MIXING = create("mixing").subtitle("Mixing Noises")
MIXING = create("mixing").subtitle("Mixing noises")
.playExisting(SoundEvents.GILDED_BLACKSTONE_BREAK, .125f, .5f)
.playExisting(SoundEvents.NETHERRACK_BREAK, .125f, .5f)
.category(SoundCategory.BLOCKS)

View file

@ -56,7 +56,7 @@ public class Create {
public static final String ID = "create";
public static final String NAME = "Create";
public static final String VERSION = "0.3.2b";
public static final String VERSION = "0.3.2c";
public static final Logger LOGGER = LogManager.getLogger();

View file

@ -51,6 +51,7 @@ import com.simibubi.create.content.schematics.block.SchematicannonScreen;
import com.simibubi.create.foundation.config.AllConfigs;
import com.simibubi.create.foundation.config.CRecipes;
import com.simibubi.create.foundation.config.ConfigBase.ConfigBool;
import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo;
import mezz.jei.api.IModPlugin;
import mezz.jei.api.JeiPlugin;
@ -79,12 +80,6 @@ public class CreateJEI implements IModPlugin {
private static final ResourceLocation ID = new ResourceLocation(Create.ID, "jei_plugin");
@Override
@Nonnull
public ResourceLocation getPluginUid() {
return ID;
}
public IIngredientManager ingredientManager;
private final List<CreateRecipeCategory<?>> allCategories = new ArrayList<>();
private final CreateRecipeCategory<?>
@ -221,6 +216,12 @@ public class CreateJEI implements IModPlugin {
return new CategoryBuilder<T>(name, supplier);
}
@Override
@Nonnull
public ResourceLocation getPluginUid() {
return ID;
}
@Override
public void registerRecipeTransferHandlers(IRecipeTransferRegistration registration) {
registration.addRecipeTransferHandler(new BlueprintTransferHandler(), VanillaRecipeCategoryUid.CRAFTING);
@ -269,7 +270,7 @@ public class CreateJEI implements IModPlugin {
pred = Predicates.alwaysTrue();
}
public CategoryBuilder<T> recipes(AllRecipeTypes recipeTypeEntry) {
public CategoryBuilder<T> recipes(IRecipeTypeInfo recipeTypeEntry) {
return recipes(recipeTypeEntry::getType);
}

View file

@ -70,7 +70,7 @@ public abstract class CreateRecipeCategory<T extends IRecipe<?>> implements IRec
return icon;
}
protected static AllGuiTextures getRenderedSlot(IRecipe<?> recipe, int index) {
public static AllGuiTextures getRenderedSlot(IRecipe<?> recipe, int index) {
AllGuiTextures jeiSlot = AllGuiTextures.JEI_SLOT;
if (!(recipe instanceof ProcessingRecipe))
return jeiSlot;
@ -85,23 +85,29 @@ public abstract class CreateRecipeCategory<T extends IRecipe<?>> implements IRec
return AllGuiTextures.JEI_CHANCE_SLOT;
}
protected static IDrawable emptyBackground(int width, int height) {
public static IDrawable emptyBackground(int width, int height) {
return new EmptyBackground(width, height);
}
protected static IDrawable doubleItemIcon(IItemProvider item1, IItemProvider item2) {
public static IDrawable doubleItemIcon(IItemProvider item1, IItemProvider item2) {
return new DoubleItemIcon(() -> new ItemStack(item1), () -> new ItemStack(item2));
}
protected static IDrawable itemIcon(IItemProvider item) {
public static IDrawable itemIcon(IItemProvider item) {
return new DoubleItemIcon(() -> new ItemStack(item), () -> ItemStack.EMPTY);
}
protected static void addStochasticTooltip(IGuiItemStackGroup itemStacks, List<ProcessingOutput> results) {
public static void addStochasticTooltip(IGuiItemStackGroup itemStacks, List<ProcessingOutput> results) {
addStochasticTooltip(itemStacks, results, 1);
}
public static void addStochasticTooltip(IGuiItemStackGroup itemStacks, List<ProcessingOutput> results, int startIndex) {
itemStacks.addTooltipCallback((slotIndex, input, ingredient, tooltip) -> {
if (input)
return;
ProcessingOutput output = results.get(slotIndex - 1);
if (slotIndex < startIndex)
return;
ProcessingOutput output = results.get(slotIndex - startIndex);
float chance = output.getChance();
if (chance != 1)
tooltip.add(1, Lang.translate("recipe.processing.chance", chance < 0.01 ? "<1" : (int) (chance * 100))

View file

@ -53,6 +53,8 @@ public class DeployingCategory extends CreateRecipeCategory<DeployerApplicationR
.getItems()));
itemStacks.init(2, false, 131, 50);
itemStacks.set(2, recipe.getResultItem());
addStochasticTooltip(itemStacks, recipe.getRollableResults(), 2);
}
@Override

View file

@ -70,6 +70,8 @@ public class ItemDrainCategory extends CreateRecipeCategory<EmptyingRecipe> {
ItemStack result = handler.getContainer();
if (extracted.isEmpty())
return;
if (result.isEmpty())
return;
Ingredient ingredient = Ingredient.of(stack);
ResourceLocation itemName = stack.getItem()

View file

@ -4,8 +4,10 @@ import java.util.Arrays;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.compat.jei.category.animations.AnimatedBlazeBurner;
import com.simibubi.create.compat.jei.category.animations.AnimatedPress;
import com.simibubi.create.content.contraptions.processing.BasinRecipe;
import com.simibubi.create.content.contraptions.processing.HeatCondition;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import mezz.jei.api.gui.IRecipeLayout;
@ -19,6 +21,7 @@ import net.minecraft.util.NonNullList;
public class PackingCategory extends BasinCategory {
private AnimatedPress press = new AnimatedPress(true);
private final AnimatedBlazeBurner heater = new AnimatedBlazeBurner();
private PackingType type;
enum PackingType {
@ -80,7 +83,11 @@ public class PackingCategory extends BasinCategory {
AllGuiTextures.JEI_SHADOW.draw(matrixStack, 81, 68);
}
press.draw(matrixStack, getBackground().getWidth() / 2 + 6, 40);
HeatCondition requiredHeat = recipe.getRequiredHeat();
if (requiredHeat != HeatCondition.NONE)
heater.withHeat(requiredHeat.visualizeAsBlazeBurner())
.draw(matrixStack, getBackground().getWidth() / 2 + 3, 55);
press.draw(matrixStack, getBackground().getWidth() / 2 + 3, 34);
}
}

View file

@ -10,7 +10,6 @@ import com.simibubi.create.AllBlockPartials;
import com.simibubi.create.AllBlocks;
import com.simibubi.create.compat.jei.category.animations.AnimatedKinetics;
import com.simibubi.create.foundation.gui.AllGuiTextures;
import com.simibubi.create.foundation.gui.GuiGameElement;
import com.simibubi.create.foundation.utility.Lang;
import mezz.jei.api.constants.VanillaTypes;
@ -75,17 +74,15 @@ public abstract class ProcessingViaFanCategory<T extends IRecipe<?>> extends Cre
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
int scale = 24;
GuiGameElement.of(AllBlockPartials.ENCASED_FAN_INNER)
AnimatedKinetics.defaultBlockElement(AllBlockPartials.ENCASED_FAN_INNER)
.rotateBlock(180, 0, AnimatedKinetics.getCurrentAngle() * 16)
.scale(scale)
.lighting(AnimatedKinetics.DEFAULT_LIGHTING)
.render(matrixStack);
GuiGameElement.of(AllBlocks.ENCASED_FAN.getDefaultState())
AnimatedKinetics.defaultBlockElement(AllBlocks.ENCASED_FAN.getDefaultState())
.rotateBlock(0, 180, 0)
.atLocal(0, 0, 0)
.scale(scale)
.lighting(AnimatedKinetics.DEFAULT_LIGHTING)
.render(matrixStack);
renderAttachedBlock(matrixStack);

View file

@ -26,14 +26,14 @@ public class AnimatedBlazeBurner extends AnimatedKinetics {
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
int scale = 23;
defaultBlockElement(AllBlocks.BLAZE_BURNER.getDefaultState())
blockElement(AllBlocks.BLAZE_BURNER.getDefaultState())
.atLocal(0, 1.65, 0)
.scale(scale)
.render(matrixStack);
float offset = (MathHelper.sin(AnimationTickHolder.getRenderTime() / 16f) + 0.5f) / 16f;
PartialModel blaze = AllBlockPartials.BLAZES.get(heatLevel);
defaultBlockElement(blaze)
blockElement(blaze)
.atLocal(1, 1.65 + offset, 1)
.rotate(0, 180, 0)
.scale(scale)

View file

@ -19,12 +19,12 @@ public class AnimatedCrafter extends AnimatedKinetics {
.rotateY(-22.5f);
int scale = 22;
defaultBlockElement(cogwheel())
blockElement(cogwheel())
.rotateBlock(90, 0, getCurrentAngle())
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlocks.MECHANICAL_CRAFTER.getDefaultState())
blockElement(AllBlocks.MECHANICAL_CRAFTER.getDefaultState())
.rotateBlock(0, 180, 0)
.scale(scale)
.render(matrixStack);

View file

@ -20,12 +20,12 @@ public class AnimatedCrushingWheels extends AnimatedKinetics {
matrixStack.mulPose(Vector3f.YP.rotationDegrees(-22.5f));
int scale = 22;
defaultBlockElement(wheel)
blockElement(wheel)
.rotateBlock(0, 90, -getCurrentAngle())
.scale(scale)
.render(matrixStack);
defaultBlockElement(wheel)
blockElement(wheel)
.rotateBlock(0, 90, getCurrentAngle())
.atLocal(2, 0, 0)
.scale(scale)

View file

@ -20,12 +20,12 @@ public class AnimatedDeployer extends AnimatedKinetics {
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
int scale = 20;
defaultBlockElement(shaft(Axis.Z))
blockElement(shaft(Axis.Z))
.rotateBlock(0, 0, getCurrentAngle())
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlocks.DEPLOYER.getDefaultState()
blockElement(AllBlocks.DEPLOYER.getDefaultState()
.setValue(DeployerBlock.FACING, Direction.DOWN)
.setValue(DeployerBlock.AXIS_ALONG_FIRST_COORDINATE, false))
.scale(scale)
@ -37,18 +37,18 @@ public class AnimatedDeployer extends AnimatedKinetics {
matrixStack.pushPose();
matrixStack.translate(0, offset * 17, 0);
defaultBlockElement(AllBlockPartials.DEPLOYER_POLE)
blockElement(AllBlockPartials.DEPLOYER_POLE)
.rotateBlock(90, 0, 0)
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlockPartials.DEPLOYER_HAND_HOLDING)
blockElement(AllBlockPartials.DEPLOYER_HAND_HOLDING)
.rotateBlock(90, 0, 0)
.scale(scale)
.render(matrixStack);
matrixStack.popPose();
defaultBlockElement(AllBlocks.DEPOT.getDefaultState())
blockElement(AllBlocks.DEPOT.getDefaultState())
.atLocal(0, 2, 0)
.scale(scale)
.render(matrixStack);

View file

@ -27,7 +27,7 @@ public class AnimatedItemDrain extends AnimatedKinetics {
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
int scale = 20;
defaultBlockElement(AllBlocks.ITEM_DRAIN.getDefaultState())
blockElement(AllBlocks.ITEM_DRAIN.getDefaultState())
.scale(scale)
.render(matrixStack);

View file

@ -22,6 +22,24 @@ public abstract class AnimatedKinetics implements IDrawable {
.secondLightRotation(-20.0f, 50.0f)
.build();
/**
* <b>Only use this method outside of subclasses.</b>
* Use {@link #blockElement(BlockState)} if calling from inside a subclass.
*/
public static GuiGameElement.GuiRenderBuilder defaultBlockElement(BlockState state) {
return GuiGameElement.of(state)
.lighting(DEFAULT_LIGHTING);
}
/**
* <b>Only use this method outside of subclasses.</b>
* Use {@link #blockElement(PartialModel)} if calling from inside a subclass.
*/
public static GuiGameElement.GuiRenderBuilder defaultBlockElement(PartialModel partial) {
return GuiGameElement.of(partial)
.lighting(DEFAULT_LIGHTING);
}
public static float getCurrentAngle() {
return (AnimationTickHolder.getRenderTime() * 4f) % 360;
}
@ -34,14 +52,12 @@ public abstract class AnimatedKinetics implements IDrawable {
return AllBlockPartials.SHAFTLESS_COGWHEEL;
}
protected GuiGameElement.GuiRenderBuilder defaultBlockElement(BlockState state) {
return GuiGameElement.of(state)
.lighting(DEFAULT_LIGHTING);
protected GuiGameElement.GuiRenderBuilder blockElement(BlockState state) {
return defaultBlockElement(state);
}
protected GuiGameElement.GuiRenderBuilder defaultBlockElement(PartialModel partial) {
return GuiGameElement.of(partial)
.lighting(DEFAULT_LIGHTING);
protected GuiGameElement.GuiRenderBuilder blockElement(PartialModel partial) {
return defaultBlockElement(partial);
}
@Override

View file

@ -15,12 +15,12 @@ public class AnimatedMillstone extends AnimatedKinetics {
matrixStack.translate(-2, 18, 0);
int scale = 22;
defaultBlockElement(AllBlockPartials.MILLSTONE_COG)
blockElement(AllBlockPartials.MILLSTONE_COG)
.rotateBlock(22.5, getCurrentAngle() * 2, 0)
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlocks.MILLSTONE.getDefaultState())
blockElement(AllBlocks.MILLSTONE.getDefaultState())
.rotateBlock(22.5, 22.5, 0)
.scale(scale)
.render(matrixStack);

View file

@ -18,31 +18,31 @@ public class AnimatedMixer extends AnimatedKinetics {
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
int scale = 23;
defaultBlockElement(cogwheel())
blockElement(cogwheel())
.rotateBlock(0, getCurrentAngle() * 2, 0)
.atLocal(0, 0, 0)
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlocks.MECHANICAL_MIXER.getDefaultState())
blockElement(AllBlocks.MECHANICAL_MIXER.getDefaultState())
.atLocal(0, 0, 0)
.scale(scale)
.render(matrixStack);
float animation = ((MathHelper.sin(AnimationTickHolder.getRenderTime() / 32f) + 1) / 5) + .5f;
defaultBlockElement(AllBlockPartials.MECHANICAL_MIXER_POLE)
blockElement(AllBlockPartials.MECHANICAL_MIXER_POLE)
.atLocal(0, animation, 0)
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlockPartials.MECHANICAL_MIXER_HEAD)
blockElement(AllBlockPartials.MECHANICAL_MIXER_HEAD)
.rotateBlock(0, getCurrentAngle() * 4, 0)
.atLocal(0, animation, 0)
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlocks.BASIN.getDefaultState())
blockElement(AllBlocks.BASIN.getDefaultState())
.atLocal(0, 1.65, 0)
.scale(scale)
.render(matrixStack);

View file

@ -19,27 +19,27 @@ public class AnimatedPress extends AnimatedKinetics {
@Override
public void draw(MatrixStack matrixStack, int xOffset, int yOffset) {
matrixStack.pushPose();
matrixStack.translate(xOffset, yOffset, 100);
matrixStack.translate(xOffset, yOffset, 200);
matrixStack.mulPose(Vector3f.XP.rotationDegrees(-15.5f));
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
int scale = basin ? 20 : 24;
int scale = basin ? 23 : 24;
defaultBlockElement(shaft(Axis.Z))
blockElement(shaft(Axis.Z))
.rotateBlock(0, 0, getCurrentAngle())
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlocks.MECHANICAL_PRESS.getDefaultState())
blockElement(AllBlocks.MECHANICAL_PRESS.getDefaultState())
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlockPartials.MECHANICAL_PRESS_HEAD)
blockElement(AllBlockPartials.MECHANICAL_PRESS_HEAD)
.atLocal(0, -getAnimatedHeadOffset(), 0)
.scale(scale)
.render(matrixStack);
if (basin)
defaultBlockElement(AllBlocks.BASIN.getDefaultState())
blockElement(AllBlocks.BASIN.getDefaultState())
.atLocal(0, 1.65, 0)
.scale(scale)
.render(matrixStack);

View file

@ -21,18 +21,18 @@ public class AnimatedSaw extends AnimatedKinetics {
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f + 90));
int scale = 25;
defaultBlockElement(shaft(Axis.X))
blockElement(shaft(Axis.X))
.rotateBlock(-getCurrentAngle(), 0, 0)
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlocks.MECHANICAL_SAW.getDefaultState()
blockElement(AllBlocks.MECHANICAL_SAW.getDefaultState()
.setValue(SawBlock.FACING, Direction.UP))
.rotateBlock(0, 0, 0)
.scale(scale)
.render(matrixStack);
defaultBlockElement(AllBlockPartials.SAW_BLADE_VERTICAL_ACTIVE)
blockElement(AllBlockPartials.SAW_BLADE_VERTICAL_ACTIVE)
.rotateBlock(0, -90, -90)
.scale(scale)
.render(matrixStack);

View file

@ -32,7 +32,7 @@ public class AnimatedSpout extends AnimatedKinetics {
matrixStack.mulPose(Vector3f.YP.rotationDegrees(22.5f));
int scale = 20;
defaultBlockElement(AllBlocks.SPOUT.getDefaultState())
blockElement(AllBlocks.SPOUT.getDefaultState())
.scale(scale)
.render(matrixStack);
@ -42,22 +42,22 @@ public class AnimatedSpout extends AnimatedKinetics {
matrixStack.pushPose();
defaultBlockElement(AllBlockPartials.SPOUT_TOP)
blockElement(AllBlockPartials.SPOUT_TOP)
.scale(scale)
.render(matrixStack);
matrixStack.translate(0, -3 * squeeze / 32f, 0);
defaultBlockElement(AllBlockPartials.SPOUT_MIDDLE)
blockElement(AllBlockPartials.SPOUT_MIDDLE)
.scale(scale)
.render(matrixStack);
matrixStack.translate(0, -3 * squeeze / 32f, 0);
defaultBlockElement(AllBlockPartials.SPOUT_BOTTOM)
blockElement(AllBlockPartials.SPOUT_BOTTOM)
.scale(scale)
.render(matrixStack);
matrixStack.translate(0, -3 * squeeze / 32f, 0);
matrixStack.popPose();
defaultBlockElement(AllBlocks.DEPOT.getDefaultState())
blockElement(AllBlocks.DEPOT.getDefaultState())
.atLocal(0, 2, 0)
.scale(scale)
.render(matrixStack);

View file

@ -1,14 +1,14 @@
package com.simibubi.create.content.contraptions.components.crusher;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams;
import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo;
import net.minecraftforge.items.wrapper.RecipeWrapper;
public abstract class AbstractCrushingRecipe extends ProcessingRecipe<RecipeWrapper> {
public AbstractCrushingRecipe(AllRecipeTypes recipeType, ProcessingRecipeParams params) {
public AbstractCrushingRecipe(IRecipeTypeInfo recipeType, ProcessingRecipeParams params) {
super(recipeType, params);
}

View file

@ -22,7 +22,7 @@ public class CrushingRecipe extends AbstractCrushingRecipe {
return ingredients.get(0)
.test(inv.getItem(0));
}
@Override
protected int getMaxOutputCount() {
return 7;

View file

@ -3,6 +3,7 @@ package com.simibubi.create.content.contraptions.fluids;
import static net.minecraft.state.properties.BlockStateProperties.LEVEL_HONEY;
import static net.minecraft.state.properties.BlockStateProperties.WATERLOGGED;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
@ -16,7 +17,6 @@ import com.simibubi.create.foundation.utility.BlockFace;
import net.minecraft.block.BlockState;
import net.minecraft.block.FlowingFluidBlock;
import net.minecraft.entity.LivingEntity;
import net.minecraft.fluid.Fluid;
import net.minecraft.fluid.FluidState;
import net.minecraft.fluid.Fluids;
import net.minecraft.item.ItemStack;
@ -40,9 +40,16 @@ import net.minecraftforge.fluids.capability.templates.FluidTank;
public class OpenEndedPipe extends FlowSource {
World world;
BlockPos pos;
AxisAlignedBB aoe;
private static final List<IEffectHandler> EFFECT_HANDLERS = new ArrayList<>();
static {
registerEffectHandler(new PotionEffectHandler());
registerEffectHandler(new MilkEffectHandler());
}
private World world;
private BlockPos pos;
private AxisAlignedBB aoe;
private OpenEndFluidHandler fluidHandler;
private BlockPos outputPos;
@ -61,11 +68,57 @@ public class OpenEndedPipe extends FlowSource {
aoe = aoe.expandTowards(0, -1, 0);
}
public static void registerEffectHandler(IEffectHandler handler) {
EFFECT_HANDLERS.add(handler);
}
public World getWorld() {
return world;
}
public BlockPos getPos() {
return pos;
}
public BlockPos getOutputPos() {
return outputPos;
}
public AxisAlignedBB getAOE() {
return aoe;
}
@Override
public void manageSource(World world) {
this.world = world;
}
@Override
public LazyOptional<IFluidHandler> provideHandler() {
return LazyOptional.of(() -> fluidHandler);
}
@Override
public boolean isEndpoint() {
return true;
}
public CompoundNBT serializeNBT() {
CompoundNBT compound = new CompoundNBT();
fluidHandler.writeToNBT(compound);
compound.putBoolean("Pulling", wasPulling);
compound.put("Location", location.serializeNBT());
return compound;
}
public static OpenEndedPipe fromNBT(CompoundNBT compound, BlockPos tilePos) {
BlockFace fromNBT = BlockFace.fromNBT(compound.getCompound("Location"));
OpenEndedPipe oep = new OpenEndedPipe(new BlockFace(tilePos, fromNBT.getFace()));
oep.fluidHandler.readFromNBT(compound);
oep.wasPulling = compound.getBoolean("Pulling");
return oep;
}
private FluidStack removeFluidFromSpace(boolean simulate) {
FluidStack empty = FluidStack.EMPTY;
if (world == null)
@ -125,7 +178,7 @@ public class OpenEndedPipe extends FlowSource {
return false;
if (!FluidHelper.hasBlockState(fluid.getFluid())) {
if (!simulate)
applyEffects(world, fluid);
applyEffects(fluid);
return true;
}
@ -167,78 +220,23 @@ public class OpenEndedPipe extends FlowSource {
return true;
}
private boolean canApplyEffects(World world, FluidStack fluid) {
Fluid fluidType = fluid.getFluid();
if (fluidType.isSame(AllFluids.POTION.get()))
return true;
if (Tags.Fluids.MILK.contains(fluidType))
return true;
private boolean canApplyEffects(FluidStack fluid) {
for (IEffectHandler handler : EFFECT_HANDLERS) {
if (handler.canApplyEffects(this, fluid)) {
return true;
}
}
return false;
}
private void applyEffects(World world, FluidStack fluid) {
Fluid fluidType = fluid.getFluid();
if (fluidType.isSame(AllFluids.POTION.get()))
applyPotionEffects(world, fluid);
if (Tags.Fluids.MILK.contains(fluidType)) {
if (world.getGameTime() % 5 != 0)
return;
List<LivingEntity> list =
world.getEntitiesOfClass(LivingEntity.class, aoe, LivingEntity::isAffectedByPotions);
ItemStack curativeItem = new ItemStack(Items.MILK_BUCKET);
for (LivingEntity livingentity : list)
livingentity.curePotionEffects(curativeItem);
}
}
private void applyPotionEffects(World world, FluidStack fluid) {
if (cachedFluid == null || cachedEffects == null || !fluid.isFluidEqual(cachedFluid)) {
FluidStack copy = fluid.copy();
copy.setAmount(250);
ItemStack bottle = PotionFluidHandler.fillBottle(new ItemStack(Items.GLASS_BOTTLE), fluid);
cachedEffects = PotionUtils.getMobEffects(bottle);
}
if (cachedEffects.isEmpty())
return;
List<LivingEntity> list =
world.getEntitiesOfClass(LivingEntity.class, aoe, LivingEntity::isAffectedByPotions);
for (LivingEntity livingentity : list) {
for (EffectInstance effectinstance : cachedEffects) {
Effect effect = effectinstance.getEffect();
if (effect.isInstantenous()) {
effect.applyInstantenousEffect(null, null, livingentity, effectinstance.getAmplifier(), 0.5D);
continue;
}
livingentity.addEffect(new EffectInstance(effectinstance));
private void applyEffects(FluidStack fluid) {
for (IEffectHandler handler : EFFECT_HANDLERS) {
if (handler.canApplyEffects(this, fluid)) {
handler.applyEffects(this, fluid);
}
}
}
@Override
public LazyOptional<IFluidHandler> provideHandler() {
return LazyOptional.of(() -> fluidHandler);
}
public CompoundNBT serializeNBT() {
CompoundNBT compound = new CompoundNBT();
fluidHandler.writeToNBT(compound);
compound.putBoolean("Pulling", wasPulling);
compound.put("Location", location.serializeNBT());
return compound;
}
public static OpenEndedPipe fromNBT(CompoundNBT compound, BlockPos tilePos) {
BlockFace fromNBT = BlockFace.fromNBT(compound.getCompound("Location"));
OpenEndedPipe oep = new OpenEndedPipe(new BlockFace(tilePos, fromNBT.getFace()));
oep.fluidHandler.readFromNBT(compound);
oep.wasPulling = compound.getBoolean("Pulling");
return oep;
}
private class OpenEndFluidHandler extends FluidTank {
public OpenEndFluidHandler() {
@ -262,7 +260,7 @@ public class OpenEndedPipe extends FlowSource {
setFluid(FluidStack.EMPTY);
if (wasPulling)
wasPulling = false;
if (canApplyEffects(world, resource))
if (canApplyEffects(resource))
resource = FluidHelper.copyStackWithAmount(resource, 1);
int fill = super.fill(resource, action);
@ -326,9 +324,62 @@ public class OpenEndedPipe extends FlowSource {
}
@Override
public boolean isEndpoint() {
return true;
public interface IEffectHandler {
boolean canApplyEffects(OpenEndedPipe pipe, FluidStack fluid);
void applyEffects(OpenEndedPipe pipe, FluidStack fluid);
}
public static class PotionEffectHandler implements IEffectHandler {
@Override
public boolean canApplyEffects(OpenEndedPipe pipe, FluidStack fluid) {
return fluid.getFluid().isSame(AllFluids.POTION.get());
}
@Override
public void applyEffects(OpenEndedPipe pipe, FluidStack fluid) {
if (pipe.cachedFluid == null || pipe.cachedEffects == null || !fluid.isFluidEqual(pipe.cachedFluid)) {
FluidStack copy = fluid.copy();
copy.setAmount(250);
ItemStack bottle = PotionFluidHandler.fillBottle(new ItemStack(Items.GLASS_BOTTLE), fluid);
pipe.cachedEffects = PotionUtils.getMobEffects(bottle);
}
if (pipe.cachedEffects.isEmpty())
return;
List<LivingEntity> list =
pipe.getWorld().getEntitiesOfClass(LivingEntity.class, pipe.getAOE(), LivingEntity::isAffectedByPotions);
for (LivingEntity livingentity : list) {
for (EffectInstance effectinstance : pipe.cachedEffects) {
Effect effect = effectinstance.getEffect();
if (effect.isInstantenous()) {
effect.applyInstantenousEffect(null, null, livingentity, effectinstance.getAmplifier(), 0.5D);
} else {
livingentity.addEffect(new EffectInstance(effectinstance));
}
}
}
}
}
public static class MilkEffectHandler implements IEffectHandler {
@Override
public boolean canApplyEffects(OpenEndedPipe pipe, FluidStack fluid) {
return Tags.Fluids.MILK.contains(fluid.getFluid());
}
@Override
public void applyEffects(OpenEndedPipe pipe, FluidStack fluid) {
World world = pipe.getWorld();
if (world.getGameTime() % 5 != 0)
return;
List<LivingEntity> list =
world.getEntitiesOfClass(LivingEntity.class, pipe.getAOE(), LivingEntity::isAffectedByPotions);
ItemStack curativeItem = new ItemStack(Items.MILK_BUCKET);
for (LivingEntity livingentity : list)
livingentity.curePotionEffects(curativeItem);
}
}
}

View file

@ -36,14 +36,14 @@ import net.minecraftforge.items.wrapper.RecipeWrapper;
public class SequencedAssemblyRecipe implements IRecipe<RecipeWrapper> {
ResourceLocation id;
SequencedAssemblyRecipeSerializer serializer;
protected ResourceLocation id;
protected SequencedAssemblyRecipeSerializer serializer;
Ingredient ingredient;
List<SequencedRecipe<?>> sequence;
int loops;
ProcessingOutput transitionalItem;
List<ProcessingOutput> resultPool;
protected Ingredient ingredient;
protected List<SequencedRecipe<?>> sequence;
protected int loops;
protected ProcessingOutput transitionalItem;
protected List<ProcessingOutput> resultPool;
public SequencedAssemblyRecipe(ResourceLocation recipeId, SequencedAssemblyRecipeSerializer serializer) {
this.id = recipeId;

View file

@ -8,12 +8,10 @@ import java.util.function.UnaryOperator;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.Create;
import com.simibubi.create.content.contraptions.processing.ProcessingOutput;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeFactory;
import com.simibubi.create.foundation.utility.Lang;
import net.minecraft.data.IFinishedRecipe;
import net.minecraft.item.Item;
@ -82,22 +80,27 @@ public class SequencedAssemblyRecipeBuilder {
return this;
}
public SequencedAssemblyRecipe build() {
return recipe;
}
public void build(Consumer<IFinishedRecipe> consumer) {
consumer.accept(new DataGenResult(recipe, recipeConditions));
consumer.accept(new DataGenResult(build(), recipeConditions));
}
public static class DataGenResult implements IFinishedRecipe {
private List<ICondition> recipeConditions;
private SequencedAssemblyRecipeSerializer serializer;
private ResourceLocation id;
private SequencedAssemblyRecipe recipe;
private List<ICondition> recipeConditions;
private ResourceLocation id;
private SequencedAssemblyRecipeSerializer serializer;
public DataGenResult(SequencedAssemblyRecipe recipe, List<ICondition> recipeConditions) {
this.recipeConditions = recipeConditions;
this.recipe = recipe;
this.id = Create.asResource(Lang.asId(AllRecipeTypes.SEQUENCED_ASSEMBLY.name()) + "/" + recipe.getId()
.getPath());
recipe.getId();
this.id = new ResourceLocation(recipe.getId().getNamespace(),
AllRecipeTypes.SEQUENCED_ASSEMBLY.getId().getPath() + "/" + recipe.getId().getPath());
this.serializer = (SequencedAssemblyRecipeSerializer) recipe.getSerializer();
}

View file

@ -10,11 +10,10 @@ import javax.annotation.ParametersAreNonnullByDefault;
import org.apache.logging.log4j.Logger;
import com.google.gson.JsonObject;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.Create;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder.ProcessingRecipeParams;
import com.simibubi.create.foundation.fluid.FluidIngredient;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo;
import mcp.MethodsReturnNonnullByDefault;
import net.minecraft.inventory.IInventory;
@ -42,24 +41,23 @@ public abstract class ProcessingRecipe<T extends IInventory> implements IRecipe<
private IRecipeType<?> type;
private IRecipeSerializer<?> serializer;
private AllRecipeTypes enumType;
private IRecipeTypeInfo typeInfo;
private Supplier<ItemStack> forcedResult;
public ProcessingRecipe(AllRecipeTypes recipeType, ProcessingRecipeParams params) {
public ProcessingRecipe(IRecipeTypeInfo typeInfo, ProcessingRecipeParams params) {
this.forcedResult = null;
this.enumType = recipeType;
this.typeInfo = typeInfo;
this.processingDuration = params.processingDuration;
this.fluidIngredients = params.fluidIngredients;
this.fluidResults = params.fluidResults;
this.serializer = recipeType.getSerializer();
this.serializer = typeInfo.getSerializer();
this.requiredHeat = params.requiredHeat;
this.ingredients = params.ingredients;
this.type = recipeType.getType();
this.type = typeInfo.getType();
this.results = params.results;
this.id = params.id;
validate(Lang.asId(recipeType.name()));
validate(typeInfo.getId());
}
// Recipe type options:
@ -86,8 +84,8 @@ public abstract class ProcessingRecipe<T extends IInventory> implements IRecipe<
//
private void validate(String recipeTypeName) {
String messageHeader = "Your custom " + recipeTypeName + " recipe (" + id.toString() + ")";
private void validate(ResourceLocation recipeTypeId) {
String messageHeader = "Your custom " + recipeTypeId + " recipe (" + id.toString() + ")";
Logger logger = Create.LOGGER;
int ingredientCount = ingredients.size();
int outputCount = results.size();
@ -185,32 +183,36 @@ public abstract class ProcessingRecipe<T extends IInventory> implements IRecipe<
.getStack();
}
@Override
public ResourceLocation getId() {
return id;
}
@Override
public boolean isSpecial() {
return true;
}
@Override
public IRecipeSerializer<?> getSerializer() {
return serializer;
}
// Processing recipes do not show up in the recipe book
@Override
public String getGroup() {
return "processing";
}
@Override
public ResourceLocation getId() {
return id;
}
@Override
public IRecipeSerializer<?> getSerializer() {
return serializer;
}
@Override
public IRecipeType<?> getType() {
return type;
}
public IRecipeTypeInfo getTypeInfo() {
return typeInfo;
}
// Additional Data added by subtypes
public void readAdditional(JsonObject json) {}
@ -221,8 +223,4 @@ public abstract class ProcessingRecipe<T extends IInventory> implements IRecipe<
public void writeAdditional(PacketBuffer buffer) {}
public AllRecipeTypes getEnumType() {
return enumType;
}
}

View file

@ -6,11 +6,10 @@ import java.util.function.Consumer;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.foundation.fluid.FluidHelper;
import com.simibubi.create.foundation.fluid.FluidIngredient;
import com.simibubi.create.foundation.utility.Lang;
import com.simibubi.create.foundation.utility.Pair;
import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo;
import net.minecraft.data.IFinishedRecipe;
import net.minecraft.fluid.Fluid;
@ -221,16 +220,16 @@ public class ProcessingRecipeBuilder<T extends ProcessingRecipe<?>> {
@SuppressWarnings("unchecked")
public DataGenResult(S recipe, List<ICondition> recipeConditions) {
this.recipeConditions = recipeConditions;
AllRecipeTypes recipeType = recipe.getEnumType();
String typeName = Lang.asId(recipeType.name());
this.recipe = recipe;
this.recipeConditions = recipeConditions;
IRecipeTypeInfo recipeType = this.recipe.getTypeInfo();
ResourceLocation typeId = recipeType.getId();
if (!(recipeType.getSerializer() instanceof ProcessingRecipeSerializer))
throw new IllegalStateException("Cannot datagen ProcessingRecipe of type: " + typeName);
throw new IllegalStateException("Cannot datagen ProcessingRecipe of type: " + typeId);
this.id = new ResourceLocation(recipe.getId().getNamespace(),
typeName + "/" + recipe.getId().getPath());
typeId.getPath() + "/" + recipe.getId().getPath());
this.serializer = (ProcessingRecipeSerializer<S>) recipe.getSerializer();
}

View file

@ -32,7 +32,6 @@ import net.minecraft.loot.conditions.ILootCondition.IBuilder;
import net.minecraft.loot.conditions.SurvivesExplosion;
import net.minecraft.pathfinding.PathType;
import net.minecraft.state.EnumProperty;
import net.minecraft.state.Property;
import net.minecraft.state.StateContainer.Builder;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ActionResult;
@ -58,11 +57,11 @@ import net.minecraftforge.common.util.FakePlayer;
@ParametersAreNonnullByDefault
public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity> {
public static final Property<HeatLevel> HEAT_LEVEL = EnumProperty.create("blaze", HeatLevel.class);
public static final EnumProperty<HeatLevel> HEAT_LEVEL = EnumProperty.create("blaze", HeatLevel.class);
public BlazeBurnerBlock(Properties properties) {
super(properties);
registerDefaultState(super.defaultBlockState().setValue(HEAT_LEVEL, HeatLevel.NONE));
registerDefaultState(defaultBlockState().setValue(HEAT_LEVEL, HeatLevel.NONE));
}
@Override
@ -89,9 +88,9 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
}
@Override
public void fillItemCategory(ItemGroup p_149666_1_, NonNullList<ItemStack> p_149666_2_) {
p_149666_2_.add(AllItems.EMPTY_BLAZE_BURNER.asStack());
super.fillItemCategory(p_149666_1_, p_149666_2_);
public void fillItemCategory(ItemGroup group, NonNullList<ItemStack> list) {
list.add(AllItems.EMPTY_BLAZE_BURNER.asStack());
super.fillItemCategory(group, list);
}
@Nullable
@ -109,8 +108,6 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand,
BlockRayTraceResult blockRayTraceResult) {
ItemStack heldItem = player.getItemInHand(hand);
boolean dontConsume = player.isCreative();
boolean forceOverflow = !(player instanceof FakePlayer);
if (!state.hasTileEntity()) {
if (heldItem.getItem() instanceof FlintAndSteelItem) {
@ -125,9 +122,12 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
return ActionResultType.PASS;
}
ActionResult<ItemStack> res = tryInsert(state, world, pos, dontConsume ? heldItem.copy() : heldItem, forceOverflow, false);
boolean doNotConsume = player.isCreative();
boolean forceOverflow = !(player instanceof FakePlayer);
ActionResult<ItemStack> res = tryInsert(state, world, pos, heldItem, doNotConsume, forceOverflow, false);
ItemStack leftover = res.getObject();
if (!world.isClientSide && !dontConsume && !leftover.isEmpty()) {
if (!world.isClientSide && !doNotConsume && !leftover.isEmpty()) {
if (heldItem.isEmpty()) {
player.setItemInHand(hand, leftover);
} else if (!player.inventory.add(leftover)) {
@ -135,11 +135,11 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
}
}
return res.getResult() == ActionResultType.SUCCESS ? res.getResult() : ActionResultType.PASS;
return res.getResult() == ActionResultType.SUCCESS ? ActionResultType.SUCCESS : ActionResultType.PASS;
}
public static ActionResult<ItemStack> tryInsert(BlockState state, World world, BlockPos pos, ItemStack stack, boolean forceOverflow,
boolean simulate) {
public static ActionResult<ItemStack> tryInsert(BlockState state, World world, BlockPos pos, ItemStack stack, boolean doNotConsume,
boolean forceOverflow, boolean simulate) {
if (!state.hasTileEntity())
return ActionResult.fail(ItemStack.EMPTY);
@ -148,17 +148,22 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
return ActionResult.fail(ItemStack.EMPTY);
BlazeBurnerTileEntity burnerTE = (BlazeBurnerTileEntity) te;
if (burnerTE.isCreativeFuel(stack)) {
if (!simulate)
burnerTE.applyCreativeFuel();
return ActionResult.success(ItemStack.EMPTY);
}
if (!burnerTE.tryUpdateFuel(stack, forceOverflow, simulate))
return ActionResult.fail(ItemStack.EMPTY);
ItemStack container = stack.getContainerItem();
if (!simulate && !world.isClientSide) {
world.playSound(null, pos, SoundEvents.BLAZE_SHOOT, SoundCategory.BLOCKS,
.125f + world.random.nextFloat() * .125f, .75f - world.random.nextFloat() * .25f);
stack.shrink(1);
}
if (!container.isEmpty()) {
return ActionResult.success(container);
if (!doNotConsume) {
ItemStack container = stack.getContainerItem();
if (!world.isClientSide && !simulate) {
stack.shrink(1);
}
if (!container.isEmpty()) {
return ActionResult.success(container);
}
}
return ActionResult.success(ItemStack.EMPTY);
}
@ -189,9 +194,30 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
}
@Override
public int getLightValue(BlockState state, IBlockReader world, BlockPos pos) {
return MathHelper.clamp(state.getValue(HEAT_LEVEL)
.ordinal() * 4 - 1, 0, 15);
public boolean hasAnalogOutputSignal(BlockState p_149740_1_) {
return true;
}
@Override
public int getAnalogOutputSignal(BlockState state, World p_180641_2_, BlockPos p_180641_3_) {
return Math.max(0, state.getValue(HEAT_LEVEL).ordinal() - 1);
}
@Override
public boolean isPathfindable(BlockState state, IBlockReader reader, BlockPos pos, PathType type) {
return false;
}
@OnlyIn(Dist.CLIENT)
public void animateTick(BlockState state, World world, BlockPos pos, Random random) {
if (random.nextInt(10) != 0)
return;
if (!state.getValue(HEAT_LEVEL)
.isAtLeast(HeatLevel.SMOULDERING))
return;
world.playLocalSound((double) ((float) pos.getX() + 0.5F), (double) ((float) pos.getY() + 0.5F),
(double) ((float) pos.getZ() + 0.5F), SoundEvents.CAMPFIRE_CRACKLE, SoundCategory.BLOCKS,
0.5F + random.nextFloat(), random.nextFloat() * 0.7F + 0.6F, false);
}
public static HeatLevel getHeatLevelOf(BlockState blockState) {
@ -199,6 +225,11 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
: HeatLevel.NONE;
}
public static int getLight(BlockState state) {
return MathHelper.clamp(state.getValue(HEAT_LEVEL)
.ordinal() * 4 - 1, 0, 15);
}
public static LootTable.Builder buildLootTable() {
IBuilder survivesExplosion = SurvivesExplosion.survivesExplosion();
BlazeBurnerBlock block = AllBlocks.BLAZE_BURNER.get();
@ -217,49 +248,26 @@ public class BlazeBurnerBlock extends Block implements ITE<BlazeBurnerTileEntity
builder.withPool(poolBuilder.setRolls(ConstantRange.exactly(1)));
return builder;
}
@Override
public boolean hasAnalogOutputSignal(BlockState p_149740_1_) {
return true;
}
@Override
public int getAnalogOutputSignal(BlockState state, World p_180641_2_, BlockPos p_180641_3_) {
return Math.max(0, state.getValue(HEAT_LEVEL).ordinal() -1);
}
@OnlyIn(Dist.CLIENT)
public void animateTick(BlockState state, World world, BlockPos pos, Random random) {
if (random.nextInt(10) != 0)
return;
if (!state.getValue(HEAT_LEVEL)
.isAtLeast(HeatLevel.SMOULDERING))
return;
world.playLocalSound((double) ((float) pos.getX() + 0.5F), (double) ((float) pos.getY() + 0.5F),
(double) ((float) pos.getZ() + 0.5F), SoundEvents.CAMPFIRE_CRACKLE, SoundCategory.BLOCKS,
0.5F + random.nextFloat(), random.nextFloat() * 0.7F + 0.6F, false);
}
public enum HeatLevel implements IStringSerializable {
NONE, SMOULDERING, FADING, KINDLED, SEETHING,;
NONE, SMOULDERING, FADING, KINDLED, SEETHING, ;
public static HeatLevel byIndex(int index) {
return values()[index];
}
public HeatLevel nextActiveLevel() {
return byIndex(ordinal() % (values().length - 1) + 1);
}
public boolean isAtLeast(HeatLevel heatLevel) {
return this.ordinal() >= heatLevel.ordinal();
}
@Override
public String getSerializedName() {
return Lang.asId(name());
}
}
public boolean isAtLeast(HeatLevel heatLevel) {
return this.ordinal() >= heatLevel.ordinal();
}
}
@Override
public boolean isPathfindable(BlockState state, IBlockReader reader, BlockPos pos, PathType type) {
return false;
}
}

View file

@ -57,16 +57,18 @@ public class BlazeBurnerHandler {
World world = event.getThrowable().level;
if (world.isClientSide)
return;
BlazeBurnerTileEntity heater = (BlazeBurnerTileEntity) tile;
if (heater.activeFuel != FuelType.SPECIAL) {
heater.activeFuel = FuelType.NORMAL;
heater.remainingBurnTime =
MathHelper.clamp(heater.remainingBurnTime + 80, 0, BlazeBurnerTileEntity.maxHeatCapacity);
heater.updateBlockState();
heater.notifyUpdate();
if (!heater.isCreative()) {
if (heater.activeFuel != FuelType.SPECIAL) {
heater.activeFuel = FuelType.NORMAL;
heater.remainingBurnTime =
MathHelper.clamp(heater.remainingBurnTime + 80, 0, BlazeBurnerTileEntity.MAX_HEAT_CAPACITY);
heater.updateBlockState();
heater.notifyUpdate();
}
}
AllSoundEvents.BLAZE_MUNCH.playOnServer(world, heater.getBlockPos());
}

View file

@ -19,42 +19,76 @@ import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompoundNBT;
import net.minecraft.tileentity.TileEntityType;
import net.minecraft.util.SoundCategory;
import net.minecraft.util.SoundEvents;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraftforge.common.ForgeHooks;
public class BlazeBurnerTileEntity extends SmartTileEntity {
private final static int[][] heatParticleColors =
{ { 0x3B141A, 0x47141A, 0x7A3B24, 0x854D26 }, { 0x2A0103, 0x741B0A, 0xC38246, 0xCCBD78 },
{ 0x630B03, 0x8B3503, 0xBC8200, 0xCCC849 }, { 0x1C6378, 0x4798B5, 0x4DA6C0, 0xBAC8CE } };
public static final int MAX_HEAT_CAPACITY = 10000;
public static final int maxHeatCapacity = 10000;
private static final Vector3d EMPTY_COLOR = new Vector3d(0, 0, 0);
private final static Vector3d[][] PARTICLE_COLORS;
private final static Vector3d[] CREATIVE_PARTICLE_COLORS;
static {
int[][] colors = {
{ },
{ 0x3B141A, 0x47141A, 0x7A3B24, 0x854D26 },
{ 0x2A0103, 0x741B0A, 0xC38246, 0xCCBD78 },
{ 0x630B03, 0x8B3503, 0xBC8200, 0xCCC849 },
{ 0x1C6378, 0x4798B5, 0x4DA6C0, 0xBAC8CE }
};
public static enum FuelType {
NONE, NORMAL, SPECIAL
int[] creativeColors = { 0x54295D, 0x6E3C76, 0xA5479F, 0x85157C };
PARTICLE_COLORS = new Vector3d[colors.length][];
for (int i = 0; i < colors.length; i++) {
PARTICLE_COLORS[i] = ColorHelper.toVectors(colors[i]);
}
CREATIVE_PARTICLE_COLORS = ColorHelper.toVectors(creativeColors);
}
int remainingBurnTime;
FuelType activeFuel;
LerpedFloat headAngle;
protected FuelType activeFuel;
protected int remainingBurnTime;
protected LerpedFloat headAngle;
protected boolean isCreative;
public BlazeBurnerTileEntity(TileEntityType<? extends BlazeBurnerTileEntity> tileEntityTypeIn) {
super(tileEntityTypeIn);
activeFuel = FuelType.NONE;
remainingBurnTime = 0;
headAngle = LerpedFloat.angular();
isCreative = false;
}
public FuelType getActiveFuel() {
return activeFuel;
}
public int getRemainingBurnTime() {
return remainingBurnTime;
}
public boolean isCreative() {
return isCreative;
}
@Override
public void tick() {
super.tick();
if (level.isClientSide) {
tickRotation();
spawnParticles(getHeatLevelFromBlock(), 1);
return;
}
if (isCreative)
return;
if (remainingBurnTime > 0)
remainingBurnTime--;
@ -65,22 +99,26 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
if (activeFuel == FuelType.SPECIAL) {
activeFuel = FuelType.NORMAL;
remainingBurnTime = maxHeatCapacity / 2;
remainingBurnTime = MAX_HEAT_CAPACITY / 2;
} else
activeFuel = FuelType.NONE;
updateBlockState();
notifyUpdate();
}
private void tickRotation() {
ClientPlayerEntity player = Minecraft.getInstance().player;
float target = 0;
ClientPlayerEntity player = Minecraft.getInstance().player;
if (player != null) {
double x = player.getX();
double z = player.getZ();
double x;
double z;
if (isVirtual()) {
x = -4;
z = -10;
} else {
x = player.getX();
z = player.getZ();
}
double dx = x - (getBlockPos().getX() + 0.5);
double dz = z - (getBlockPos().getZ() + 0.5);
@ -96,8 +134,12 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
@Override
public void write(CompoundNBT compound, boolean clientPacket) {
compound.putInt("fuelLevel", activeFuel.ordinal());
compound.putInt("burnTimeRemaining", remainingBurnTime);
if (!isCreative) {
compound.putInt("fuelLevel", activeFuel.ordinal());
compound.putInt("burnTimeRemaining", remainingBurnTime);
} else {
compound.putBoolean("isCreative", true);
}
super.write(compound, clientPacket);
}
@ -105,22 +147,44 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
protected void fromTag(BlockState state, CompoundNBT compound, boolean clientPacket) {
activeFuel = FuelType.values()[compound.getInt("fuelLevel")];
remainingBurnTime = compound.getInt("burnTimeRemaining");
isCreative = compound.getBoolean("isCreative");
super.fromTag(state, compound, clientPacket);
}
public BlazeBurnerBlock.HeatLevel getHeatLevelFromBlock() {
return BlazeBurnerBlock.getHeatLevelOf(getBlockState());
}
public void updateBlockState() {
setBlockHeat(getHeatLevelFromFuelType(activeFuel));
}
protected void setBlockHeat(HeatLevel heat) {
HeatLevel inBlockState = getHeatLevelFromBlock();
if (inBlockState == heat)
return;
level.setBlockAndUpdate(worldPosition, getBlockState().setValue(BlazeBurnerBlock.HEAT_LEVEL, heat));
notifyUpdate();
}
/**
* @return true if the heater updated its burn time and a item should be
* @return true if the heater updated its burn time and an item should be
* consumed
*/
boolean tryUpdateFuel(ItemStack itemStack, boolean forceOverflow, boolean simulate) {
FuelType newFuel = FuelType.NONE;
int newBurnTime = ForgeHooks.getBurnTime(itemStack);
protected boolean tryUpdateFuel(ItemStack itemStack, boolean forceOverflow, boolean simulate) {
if (isCreative)
return false;
FuelType newFuel = FuelType.NONE;
int newBurnTime;
if (newBurnTime > 0)
newFuel = FuelType.NORMAL;
if (AllItems.BLAZE_CAKE.isIn(itemStack)) {
newBurnTime = 1000;
newFuel = FuelType.SPECIAL;
} else {
newBurnTime = ForgeHooks.getBurnTime(itemStack);
if (newBurnTime > 0)
newFuel = FuelType.NORMAL;
}
if (newFuel == FuelType.NONE)
@ -131,9 +195,9 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
return false;
if (newFuel == activeFuel) {
if (remainingBurnTime + newBurnTime > maxHeatCapacity && !forceOverflow)
if (remainingBurnTime + newBurnTime > MAX_HEAT_CAPACITY && !forceOverflow)
return false;
newBurnTime = MathHelper.clamp(remainingBurnTime + newBurnTime, 0, maxHeatCapacity);
newBurnTime = MathHelper.clamp(remainingBurnTime + newBurnTime, 0, MAX_HEAT_CAPACITY);
}
if (simulate)
@ -143,27 +207,43 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
remainingBurnTime = newBurnTime;
if (level.isClientSide) {
HeatLevel level = getHeatLevelFromFuelType(newFuel);
HeatLevel level = getHeatLevelFromFuelType(activeFuel);
for (int i = 0; i < 20; i++)
spawnParticles(level, 1 + (.25 * (i / 4)));
return true;
} else {
playSound();
updateBlockState();
}
updateBlockState();
return true;
}
public BlazeBurnerBlock.HeatLevel getHeatLevelFromBlock() {
return BlazeBurnerBlock.getHeatLevelOf(getBlockState());
protected void applyCreativeFuel() {
boolean wasCreative = isCreative;
activeFuel = FuelType.NONE;
remainingBurnTime = 0;
isCreative = true;
if (level.isClientSide) {
for (int i = 0; i < 30; i++) {
double burstMult = 1 + (.25 * (i / 4));
spawnParticle(CREATIVE_PARTICLE_COLORS, 0.04F, 35, false, 0.03 * burstMult, 0.15 * burstMult);
}
} else {
playSound();
if (wasCreative)
setBlockHeat(getHeatLevelFromBlock().nextActiveLevel());
}
}
public void updateBlockState() {
HeatLevel inBlockState = getHeatLevelFromBlock();
HeatLevel inTE = getHeatLevelFromFuelType(activeFuel);
if (inBlockState == inTE)
return;
level.setBlockAndUpdate(worldPosition, getBlockState().setValue(BlazeBurnerBlock.HEAT_LEVEL, inTE));
notifyUpdate();
public boolean isCreativeFuel(ItemStack stack) {
return AllItems.CREATIVE_CAKE.isIn(stack);
}
protected void playSound() {
level.playSound(null, worldPosition, SoundEvents.BLAZE_SHOOT, SoundCategory.BLOCKS,
.125f + level.random.nextFloat() * .125f, .75f - level.random.nextFloat() * .25f);
}
protected HeatLevel getHeatLevelFromFuelType(FuelType fuel) {
@ -173,7 +253,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
level = HeatLevel.SEETHING;
break;
case NORMAL:
boolean lowPercent = (double) remainingBurnTime / maxHeatCapacity < 0.1;
boolean lowPercent = (double) remainingBurnTime / MAX_HEAT_CAPACITY < 0.1;
level = lowPercent ? HeatLevel.FADING : HeatLevel.KINDLED;
break;
default:
@ -183,7 +263,7 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
return level;
}
private void spawnParticles(HeatLevel heatLevel, double burstMult) {
protected void spawnParticles(HeatLevel heatLevel, double burstMult) {
if (level == null)
return;
if (heatLevel == BlazeBurnerBlock.HeatLevel.NONE)
@ -216,9 +296,8 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
}
}
private void spawnParticle(HeatLevel heatLevel, float scale, int avgAge, boolean hot, double speed, double spread) {
protected void spawnParticle(Vector3d color, float scale, int avgAge, boolean hot, double speed, double spread) {
Random random = level.getRandom();
Vector3d color = randomColor(heatLevel);
level.addAlwaysVisibleParticle(
new CubeParticleData((float) color.x, (float) color.y, (float) color.z, scale, avgAge, hot),
(double) worldPosition.getX() + 0.5D + (random.nextDouble() * 2.0 - 1D) * spread,
@ -226,10 +305,22 @@ public class BlazeBurnerTileEntity extends SmartTileEntity {
(double) worldPosition.getZ() + 0.5D + (random.nextDouble() * 2.0 - 1D) * spread, 0.0D, speed, 0.0D);
}
private static Vector3d randomColor(BlazeBurnerBlock.HeatLevel heatLevel) {
if (heatLevel == BlazeBurnerBlock.HeatLevel.NONE)
return new Vector3d(0, 0, 0);
return ColorHelper.getRGB(heatParticleColors[heatLevel.ordinal() - 1][(int) (Math.random() * 4)]);
protected void spawnParticle(Vector3d[] colors, float scale, int avgAge, boolean hot, double speed, double spread) {
Vector3d color;
if (colors.length == 0) {
color = EMPTY_COLOR;
} else {
color = colors[(int) (Math.random() * colors.length)];
}
spawnParticle(color, scale, avgAge, hot, speed, spread);
}
protected void spawnParticle(HeatLevel heatLevel, float scale, int avgAge, boolean hot, double speed, double spread) {
spawnParticle(PARTICLE_COLORS[heatLevel.ordinal()], scale, avgAge, hot, speed, spread);
}
public enum FuelType {
NONE, NORMAL, SPECIAL
}
}

View file

@ -43,14 +43,6 @@ public class FlapData extends InstanceData implements IFlatLight<FlapData> {
return setPosition(pos.x(), pos.y(), pos.z());
}
public FlapData setPosition(int x, int y, int z) {
Vector3i origin = owner.originCoordinate.get();
return setPosition((float) (x - origin.getX()),
(float) (y - origin.getY()),
(float) (z - origin.getZ()));
}
public FlapData setPosition(float x, float y, float z) {
this.x = x;
this.y = y;

View file

@ -51,7 +51,7 @@ public class BeltTunnelInstance extends TileEntityInstance<BeltTunnelTileEntity>
FlapData key = model.createInstance();
key.setPosition(pos)
key.setPosition(getInstancePosition())
.setSegmentOffset(segmentOffset, 0, 0)
.setBlockLight(blockLight)
.setSkyLight(skyLight)

View file

@ -47,7 +47,7 @@ public class FunnelInstance extends TileEntityInstance<FunnelTileEntity> impleme
FlapData key = model.createInstance();
key.setPosition(pos)
key.setPosition(getInstancePosition())
.setSegmentOffset(segmentOffset, 0, -tile.getFlapOffset())
.setBlockLight(blockLight)
.setSkyLight(skyLight)

View file

@ -332,12 +332,12 @@ public abstract class ArmInteractionPoint {
@Override
protected ItemStack insert(World world, ItemStack stack, boolean simulate) {
ItemStack input = stack.copy();
if (!BlazeBurnerBlock.tryInsert(state, world, pos, input, false, true)
if (!BlazeBurnerBlock.tryInsert(state, world, pos, input, false, false, true)
.getObject()
.isEmpty()) {
return stack;
}
ActionResult<ItemStack> res = BlazeBurnerBlock.tryInsert(state, world, pos, input, false, simulate);
ActionResult<ItemStack> res = BlazeBurnerBlock.tryInsert(state, world, pos, input, false, false, simulate);
return res.getResult() == ActionResultType.SUCCESS
? ItemHandlerHelper.copyStackWithSize(stack, stack.getCount() - 1)
: stack;

View file

@ -34,6 +34,8 @@ public class OpenCreateMenuButton extends Button {
@Override
public void render(MatrixStack mstack, int mouseX, int mouseY, float pticks) {
super.render(mstack, mouseX, mouseY, pticks);
if (!visible)
return;
Minecraft.getInstance().getItemRenderer().renderGuiItem(icon, x + 2, y + 2);
}

View file

@ -20,10 +20,10 @@ import net.minecraftforge.common.Tags;
public abstract class CreateRecipeProvider extends RecipeProvider {
final List<GeneratedRecipe> all = new ArrayList<>();
protected final List<GeneratedRecipe> all = new ArrayList<>();
public CreateRecipeProvider(DataGenerator p_i48262_1_) {
super(p_i48262_1_);
public CreateRecipeProvider(DataGenerator generator) {
super(generator);
}
@Override
@ -32,16 +32,16 @@ public abstract class CreateRecipeProvider extends RecipeProvider {
Create.LOGGER.info(getName() + " registered " + all.size() + " recipe" + (all.size() == 1 ? "" : "s"));
}
@FunctionalInterface
public interface GeneratedRecipe {
void register(Consumer<IFinishedRecipe> consumer);
}
protected GeneratedRecipe register(GeneratedRecipe recipe) {
all.add(recipe);
return recipe;
}
@FunctionalInterface
public interface GeneratedRecipe {
void register(Consumer<IFinishedRecipe> consumer);
}
protected static class Marker {
}

View file

@ -6,11 +6,11 @@ import java.util.List;
import java.util.function.Supplier;
import java.util.function.UnaryOperator;
import com.simibubi.create.AllRecipeTypes;
import com.simibubi.create.Create;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipe;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeSerializer;
import com.simibubi.create.foundation.utility.recipe.IRecipeTypeInfo;
import net.minecraft.data.DataGenerator;
import net.minecraft.data.DirectoryCache;
@ -22,22 +22,22 @@ import net.minecraftforge.fluids.FluidAttributes;
public abstract class ProcessingRecipeGen extends CreateRecipeProvider {
protected static List<ProcessingRecipeGen> generators = new ArrayList<>();
protected static final List<ProcessingRecipeGen> GENERATORS = new ArrayList<>();
protected static final int BUCKET = FluidAttributes.BUCKET_VOLUME;
protected static final int BOTTLE = 250;
public static void registerAll(DataGenerator gen) {
generators.add(new CrushingRecipeGen(gen));
generators.add(new MillingRecipeGen(gen));
generators.add(new CuttingRecipeGen(gen));
generators.add(new WashingRecipeGen(gen));
generators.add(new PolishingRecipeGen(gen));
generators.add(new DeployingRecipeGen(gen));
generators.add(new MixingRecipeGen(gen));
generators.add(new CompactingRecipeGen(gen));
generators.add(new PressingRecipeGen(gen));
generators.add(new FillingRecipeGen(gen));
generators.add(new EmptyingRecipeGen(gen));
GENERATORS.add(new CrushingRecipeGen(gen));
GENERATORS.add(new MillingRecipeGen(gen));
GENERATORS.add(new CuttingRecipeGen(gen));
GENERATORS.add(new WashingRecipeGen(gen));
GENERATORS.add(new PolishingRecipeGen(gen));
GENERATORS.add(new DeployingRecipeGen(gen));
GENERATORS.add(new MixingRecipeGen(gen));
GENERATORS.add(new CompactingRecipeGen(gen));
GENERATORS.add(new PressingRecipeGen(gen));
GENERATORS.add(new FillingRecipeGen(gen));
GENERATORS.add(new EmptyingRecipeGen(gen));
gen.addProvider(new IDataProvider() {
@ -48,7 +48,7 @@ public abstract class ProcessingRecipeGen extends CreateRecipeProvider {
@Override
public void run(DirectoryCache dc) throws IOException {
generators.forEach(g -> {
GENERATORS.forEach(g -> {
try {
g.run(dc);
} catch (IOException e) {
@ -59,8 +59,8 @@ public abstract class ProcessingRecipeGen extends CreateRecipeProvider {
});
}
public ProcessingRecipeGen(DataGenerator p_i48262_1_) {
super(p_i48262_1_);
public ProcessingRecipeGen(DataGenerator generator) {
super(generator);
}
/**
@ -86,7 +86,7 @@ public abstract class ProcessingRecipeGen extends CreateRecipeProvider {
* Create a processing recipe with a single itemstack ingredient, using its id
* as the name of the recipe
*/
protected <T extends ProcessingRecipe<?>> GeneratedRecipe create(Supplier<IItemProvider> singleIngredient,
<T extends ProcessingRecipe<?>> GeneratedRecipe create(Supplier<IItemProvider> singleIngredient,
UnaryOperator<ProcessingRecipeBuilder<T>> transform) {
return create(Create.ID, singleIngredient, transform);
}
@ -109,21 +109,20 @@ public abstract class ProcessingRecipeGen extends CreateRecipeProvider {
* Create a new processing recipe, with recipe definitions provided by the
* function
*/
protected <T extends ProcessingRecipe<?>> GeneratedRecipe create(String name,
<T extends ProcessingRecipe<?>> GeneratedRecipe create(String name,
UnaryOperator<ProcessingRecipeBuilder<T>> transform) {
return create(Create.asResource(name), transform);
}
protected <T extends ProcessingRecipe<?>> ProcessingRecipeSerializer<T> getSerializer() {
ProcessingRecipeSerializer<T> serializer = getRecipeType().getSerializer();
return serializer;
protected abstract IRecipeTypeInfo getRecipeType();
protected <T extends ProcessingRecipe<?>> ProcessingRecipeSerializer<T> getSerializer() {
return getRecipeType().getSerializer();
}
@Override
public final String getName() {
return "Create's Processing Recipes: " + getRecipeType();
public String getName() {
return "Create's Processing Recipes: " + getRecipeType().getId().getPath();
}
protected abstract AllRecipeTypes getRecipeType();
}

View file

@ -37,7 +37,7 @@ public class ColorHelper {
public static int applyAlpha(int color, float alpha) {
int prevAlphaChannel = (color >> 24) & 0xFF;
if (prevAlphaChannel > 0)
alpha *= prevAlphaChannel / 256f;
alpha *= prevAlphaChannel / 255f;
int alphaChannel = (int) (0xFF * MathHelper.clamp(alpha, 0, 1));
return (color & 0xFFFFFF) | alphaChannel << 24;
}
@ -98,7 +98,7 @@ public class ColorHelper {
int g = (color >> 8) & 0xFF;
int b = color & 0xFF;
RenderSystem.color4f(r / 256f, g / 256f, b / 256f, 1);
RenderSystem.color4f(r / 255f, g / 255f, b / 255f, 1);
}
public static void glResetColor() {
@ -109,7 +109,15 @@ public class ColorHelper {
int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = color & 0xFF;
return new Vector3d(r, g, b).scale(1 / 256d);
return new Vector3d(r, g, b).scale(1 / 255d);
}
public static Vector3d[] toVectors(int[] colors) {
Vector3d[] vectors = new Vector3d[colors.length];
for (int i = 0; i < colors.length; i++) {
vectors[i] = ColorHelper.getRGB(colors[i]);
}
return vectors;
}
public static int colorFromUUID(UUID uuid) {

View file

@ -0,0 +1,15 @@
package com.simibubi.create.foundation.utility.recipe;
import net.minecraft.item.crafting.IRecipeSerializer;
import net.minecraft.item.crafting.IRecipeType;
import net.minecraft.util.ResourceLocation;
public interface IRecipeTypeInfo {
ResourceLocation getId();
<T extends IRecipeSerializer<?>> T getSerializer();
<T extends IRecipeType<?>> T getType();
}

View file

@ -5,7 +5,7 @@ license="MIT"
[[mods]]
modId="create"
version="v0.3.2b for 1.16.5"
version="v0.3.2c for 1.16.5"
displayName="Create"
#updateJSONURL=""
displayURL="https://www.curseforge.com/minecraft/mc-mods/create"

View file

@ -154,6 +154,11 @@
"block.create.creative_crate.tooltip.condition1": "When Item in Filter Slot",
"block.create.creative_crate.tooltip.behaviour1": "Anything _extracting_ from this container will provide an _endless supply_ of the item specified. Items _inserted_ into this crate will be _voided._",
"item.create.creative_cake.tooltip": "CREATIVE CAKE",
"item.create.creative_cake.tooltip.summary": "A very special treat for _Blaze Burners_ that allows _controlling their heat level_. After eating this cake, Blaze Burners will _never run out of fuel_.",
"item.create.creative_cake.tooltip.condition1": "R-Click on Blaze Burner",
"item.create.creative_cake.tooltip.behaviour1": "_Locks_ the Blaze Burner's heat level. If used again, _cycles_ the Blaze Burner's heat level.",
"block.create.controller_rail.tooltip": "CONTROLLER RAIL",
"block.create.controller_rail.tooltip.summary": "A _uni-directional powered rail_ capable of _fine control_ over a minecarts' _movement speed_.",
"block.create.controller_rail.tooltip.condition1": "When Powered by Redstone",

View file

@ -27,10 +27,12 @@
"block.create.belt": "メカニカルベルト",
"block.create.birch_window": "シラカバの窓",
"block.create.birch_window_pane": "シラカバの窓板",
"block.create.black_nixie_tube": "黒色のニキシー管",
"block.create.black_sail": "黒色の帆",
"block.create.black_seat": "黒色のシート",
"block.create.black_valve_handle": "黒色のバルブハンドル",
"block.create.blaze_burner": "ブレイズバーナー",
"block.create.blue_nixie_tube": "青色のニキシー管",
"block.create.blue_sail": "青色の帆",
"block.create.blue_seat": "青色のシート",
"block.create.blue_valve_handle": "青色のバルブハンドル",
@ -40,6 +42,7 @@
"block.create.brass_encased_shaft": "真鍮のケース入りシャフト",
"block.create.brass_funnel": "真鍮ファンネル",
"block.create.brass_tunnel": "真鍮トンネル",
"block.create.brown_nixie_tube": "茶色のニキシー管",
"block.create.brown_sail": "茶色の帆",
"block.create.brown_seat": "茶色のシート",
"block.create.brown_valve_handle": "茶色のバルブハンドル",
@ -72,6 +75,7 @@
"block.create.crushing_wheel": "破砕ホイール",
"block.create.crushing_wheel_controller": "破砕ホイールコントローラー",
"block.create.cuckoo_clock": "鳩時計",
"block.create.cyan_nixie_tube": "水色のニキシー管",
"block.create.cyan_sail": "水色の帆",
"block.create.cyan_seat": "水色のシート",
"block.create.cyan_valve_handle": "水色のバルブハンドル",
@ -178,9 +182,11 @@
"block.create.granite_cobblestone_stairs": "花崗岩の丸石の階段",
"block.create.granite_cobblestone_wall": "花崗岩の丸石の塀",
"block.create.granite_pillar": "花崗岩の柱",
"block.create.gray_nixie_tube": "灰色のニキシー管",
"block.create.gray_sail": "灰色の帆",
"block.create.gray_seat": "灰色のシート",
"block.create.gray_valve_handle": "灰色のバルブハンドル",
"block.create.green_nixie_tube": "緑色のニキシー管",
"block.create.green_sail": "緑色の帆",
"block.create.green_seat": "緑色のシート",
"block.create.green_valve_handle": "緑色のバルブハンドル",
@ -204,12 +210,15 @@
"block.create.layered_scoria": "スコリアの組石",
"block.create.layered_weathered_limestone": "風化した石灰岩の組石",
"block.create.lectern_controller": "書見台コントローラー",
"block.create.light_blue_nixie_tube": "空色のニキシー菅",
"block.create.light_blue_sail": "空色の帆",
"block.create.light_blue_seat": "空色のシート",
"block.create.light_blue_valve_handle": "空色のバルブハンドル",
"block.create.light_gray_nixie_tube": "薄灰色のニキシー管",
"block.create.light_gray_sail": "薄灰色の帆",
"block.create.light_gray_seat": "薄灰色のシート",
"block.create.light_gray_valve_handle": "薄灰色のバルブハンドル",
"block.create.lime_nixie_tube": "黄緑色のニキシー管",
"block.create.lime_sail": "黄緑色の帆",
"block.create.lime_seat": "黄緑色のシート",
"block.create.lime_valve_handle": "黄緑色のバルブハンドル",
@ -226,6 +235,7 @@
"block.create.limestone_pillar": "石灰岩の柱",
"block.create.linear_chassis": "リニアシャーシ",
"block.create.lit_blaze_burner": "燃焼中のブレイズバーナー",
"block.create.magenta_nixie_tube": "赤紫色のニキシー管",
"block.create.magenta_sail": "赤紫色の帆",
"block.create.magenta_seat": "赤紫色のシート",
"block.create.magenta_valve_handle": "赤紫色のバルブハンドル",
@ -310,6 +320,7 @@
"block.create.paved_weathered_limestone_stairs": "舗装された風化した石灰岩の階段",
"block.create.paved_weathered_limestone_wall": "舗装された風化した石灰岩の塀",
"block.create.peculiar_bell": "風変わりな鐘",
"block.create.pink_nixie_tube": "桃色のニキシー管",
"block.create.pink_sail": "桃色の帆",
"block.create.pink_seat": "桃色のシート",
"block.create.pink_valve_handle": "桃色のバルブハンドル",
@ -344,10 +355,12 @@
"block.create.powered_toggle_latch": "パワードトグルラッチ",
"block.create.pulley_magnet": "プーリーマグネット",
"block.create.pulse_repeater": "パルスリピーター",
"block.create.purple_nixie_tube": "紫色のニキシー管",
"block.create.purple_sail": "紫色の帆",
"block.create.purple_seat": "紫色のシート",
"block.create.purple_valve_handle": "紫色のバルブハンドル",
"block.create.radial_chassis": "ラジアルシャーシ",
"block.create.red_nixie_tube": "赤色のニキシー管",
"block.create.red_sail": "赤色の帆",
"block.create.red_seat": "赤色のシート",
"block.create.red_valve_handle": "赤色のバルブハンドル",
@ -404,17 +417,22 @@
"block.create.weathered_limestone_cobblestone_wall": "風化した石灰岩の丸石の塀",
"block.create.weathered_limestone_pillar": "風化した石灰岩の柱",
"block.create.weighted_ejector": "重量射出機",
"block.create.white_nixie_tube": "白色のニキシー管",
"block.create.white_sail": "白色の帆",
"block.create.white_seat": "白色のシート",
"block.create.white_valve_handle": "白色のバルブハンドル",
"block.create.windmill_bearing": "風車ベアリング",
"block.create.wooden_bracket": "木製ブラケット",
"block.create.yellow_nixie_tube": "黄色のニキシー管",
"block.create.yellow_sail": "黄色の帆",
"block.create.yellow_seat": "黄色のシート",
"block.create.yellow_valve_handle": "黄色のバルブハンドル",
"block.create.zinc_block": "亜鉛ブロック",
"block.create.zinc_ore": "亜鉛鉱石",
"enchantment.create.capacity": "容量増加",
"enchantment.create.potato_recovery": "ポテト回収",
"entity.create.contraption": "からくり",
"entity.create.crafting_blueprint": "クラフトブループリント",
"entity.create.gantry_contraption": "ガントリーからくり",
@ -673,14 +691,20 @@
"itemGroup.create.base": "Create",
"itemGroup.create.palettes": "Create Palettes",
"death.attack.create.crush": "%1$s は破砕ホイールによって処理されました",
"death.attack.create.fan_fire": "%1$s は熱風で焼死した",
"death.attack.create.fan_lava": "%1$s は溶岩ファンによって焼死した",
"death.attack.create.mechanical_drill": "%1$s はメカニカルドリルに突き刺さった",
"death.attack.create.mechanical_saw": "%1$s はメカニカルソーで半分にカットされた",
"death.attack.create.crush": "%1$sは破砕ホイールによって処理された",
"death.attack.create.crush.player": "%1$sは%2$sに破砕ホイールに投入された",
"death.attack.create.fan_fire": "%1$sはケース入りファンによって燻製にされた",
"death.attack.create.fan_fire.player": "%1$sは%2$sによって燻製にされた",
"death.attack.create.fan_lava": "%1$sはケース入りファンで精錬された",
"death.attack.create.fan_lava.player": "%1$sは%2$sによって熱風に投げ込まれた",
"death.attack.create.mechanical_drill": "%1$sはメカニカルドリルに突き抜かれた",
"death.attack.create.mechanical_drill.player": "%1$sは%2$sにドリルの目の前に投げ込まれた",
"death.attack.create.mechanical_saw": "%1$sはメカニカルソーで半分にカットされた",
"death.attack.create.mechanical_saw.player": "%1$sは%2$sによってメカニカルソーの回転する刃に投げ込まれた",
"death.attack.create.potato_cannon": "%1$sは%2$sのポテトキャンに撃ち抜かれた",
"death.attack.create.potato_cannon.item": "%1$sは%3$sで%2$sに撃た抜かれた",
"death.attack.create.cuckoo_clock_explosion": "%1$s は改ざんされた鳩時計に爆破された",
"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.cart_assembler.invalid": "トロッコアセンブラはレールの上にのみ設置できます",
@ -1040,6 +1064,11 @@
"create.item_attributes.in_item_group.inverted": "%1$sに属していないか",
"create.item_attributes.added_by": "%1$sによって追加されたか",
"create.item_attributes.added_by.inverted": "%1$sによって追加されていないか",
"create.item_attributes.shulker_level": "%1$sシュルカーか",
"create.item_attributes.shulker_level.inverted": "%1$sシュルカーでないか",
"create.item_attributes.shulker_level.full": "満杯の",
"create.item_attributes.shulker_level.empty": "空の",
"create.item_attributes.shulker_level.partial": "一部埋まっている",
"create.item_attributes.has_enchant": "エンチャントされているか%1$s",
"create.item_attributes.has_enchant.inverted": "エンチャントがされていないか",
"create.item_attributes.color": "%1$sで染められているか",
@ -1135,6 +1164,9 @@
"create.tooltip.chute.fans_pull_up": "ファンが上から吸い込んでいます",
"create.tooltip.chute.fans_pull_down": "ファンが下から吸い込んでいます",
"create.tooltip.chute.contains": "内容物: %1$s x%2$s",
"create.tooltip.brass_tunnel.contains": "配布中",
"create.tooltip.brass_tunnel.contains_entry": "> %1$s x%2$s",
"create.tooltip.brass_tunnel.retrieve": "右クリックで取り出し",
"create.linked_controller.bind_mode": "割り当てモード",
"create.linked_controller.press_keybind": "%1$s、%2$s、%3$s、%4$s、%5$sまたは%6$sを押すとこの周波数がそのキーに割り当てられます",
@ -1150,6 +1182,10 @@
"create.crafting_blueprint.secondary_display_slot": "第2表示スロット",
"create.crafting_blueprint.optional": "オプション",
"create.potato_cannon.ammo.attack_damage": "攻撃力: %1$s",
"create.potato_cannon.ammo.reload_ticks": "リロード時間(tick): %1$s",
"create.potato_cannon.ammo.knockback": "ノックバック: %1$s",
"create.hint.hose_pulley.title": "底なし搬出",
"create.hint.hose_pulley": "対象となる液体は無限とみなされています。",
"create.hint.mechanical_arm_no_targets.title": "ターゲットが見つかりません",
@ -1188,6 +1224,7 @@
"create.subtitle.mechanical_press_activation_belt": "メカニカルプレスがボンと鳴る",
"create.subtitle.fwoomp": "ポテトランチャーがバキューンと鳴る",
"create.subtitle.worldshaper_place": "ワールドシェーパーが設置する",
"create.subtitle.crushing_1": "粉砕音",
"create.subtitle.depot_slide": "アイテムが滑る",
"create.subtitle.saw_activate_stone": "メカニカルソーが動作する",
"create.subtitle.blaze_munch": "ブレイズの咀嚼音",
@ -1730,6 +1767,7 @@
"create.ponder.empty_blaze_burner.text_2": "また、ブレイズはスポーンブロックから直接捕獲することもできます",
"create.ponder.empty_blaze_burner.text_3": "これで、様々な機械で利用できる理想的な熱源が得られます",
"create.ponder.empty_blaze_burner.text_4": "空のブレイズバーナーは火打石と打ち金を使って火を付ければ装飾にも使えます",
"create.ponder.empty_blaze_burner.text_5": "さらに、魂の宿ったアイテムを使うことで炎を変化させられます",
"create.ponder.empty_blaze_burner.text_6": "しかし、これは加工用の熱源には適していません",
"create.ponder.encased_fluid_pipe.header": "ケース入り液体パイプ",
@ -2047,6 +2085,7 @@
"create.ponder.nixie_tube.header": "ニキシー管の使い方",
"create.ponder.nixie_tube.text_1": "ニキシー管は受けたレッドストーン信号の強度を表示します",
"create.ponder.nixie_tube.text_2": "金床で名付けた名札を使って、好きな文字を表示することもできます",
"create.ponder.nixie_tube.text_3": "染料で右クリックすることで表示の色を変えられます",
"create.ponder.piston_pole.header": "ピストン延長ポール",
"create.ponder.piston_pole.text_1": "ポールが無いとメカニカルピストンは動きません",
@ -2258,4 +2297,4 @@
"_": "Thank you for translating Create!"
}
}

View file

@ -1,7 +1,7 @@
{
"_": "->------------------------] Game Elements [------------------------<-",
"block.create.andesite_bricks": "안산 벽돌",
"block.create.andesite_bricks": "안산 벽돌",
"block.create.layered_andesite": "이어지는 안산암",
"block.create.andesite_bricks": "안산암 벽돌",
"block.create.andesite_bricks_slab": "안산암 벽돌 반 블록",
@ -102,7 +102,7 @@
"block.create.polished_dolomite_stairs": "윤나는 백운암 계단",
"block.create.polished_dolomite_wall": "윤나는 백운암 담장",
"block.create.chiseled_dolomite": "조각된 백운암",
"block.create.mossy_dolomite": "이끼낀 백운암",
"block.create.mossy_dolomite": "이끼 낀 백운암",
"block.create.overgrown_dolomite": "이끼로 뒤덮힌 백운암",
"block.create.dolomite_pillar": "백운암 기둥",
@ -130,7 +130,7 @@
"block.create.gabbro_cobblestone_stairs": "반려암 조약돌 계단",
"block.create.gabbro_cobblestone_wall": "반려암 조약돌 담장",
"block.create.layered_gabbro": "이어지는 반려암",
"block.create.mossy_gabbro": "이끼낀 반려암",
"block.create.mossy_gabbro": "이끼 낀 반려암",
"block.create.overgrown_gabbro": "이끼로 뒤덮힌 반려암",
"block.create.paved_gabbro": "포장된 반려암",
"block.create.paved_gabbro_slab": "포장된 반려암 반 블록",
@ -149,9 +149,9 @@
"block.create.fancy_granite_bricks_slab": "장식된 화강암 벽돌 반 블록",
"block.create.fancy_granite_bricks_stairs": "장식된 화강암 벽돌 계단",
"block.create.fancy_granite_bricks_wall": "장식된 화강암 벽돌 담장",
"block.create.granite_bricks_slab": "화강 벽돌 반 블록",
"block.create.granite_bricks_stairs": "화강 벽돌 계단",
"block.create.granite_bricks_wall": "화강 벽돌 담장",
"block.create.granite_bricks_slab": "화강 벽돌 반 블록",
"block.create.granite_bricks_stairs": "화강 벽돌 계단",
"block.create.granite_bricks_wall": "화강 벽돌 담장",
"block.create.granite_cobblestone": "화강암 조약돌",
"block.create.granite_cobblestone_slab": "화강암 조약돌 반 블록",
"block.create.granite_cobblestone_stairs": "화강암 조약돌 계단",
@ -371,7 +371,7 @@
"block.create.encased_fan": "선풍기",
"block.create.flywheel": "플라이휠",
"block.create.furnace_engine": "화로 엔진",
"block.create.water_wheel": "물레방아",
"block.create.water_wheel": "물레바퀴",
"block.create.windmill_bearing": "풍차 베어링",
"block.create.hand_crank": "핸드 크랭크",
@ -465,11 +465,11 @@
"block.create.powered_latch": "레드스톤 걸쇠",
"block.create.powered_toggle_latch": "레드스톤 토글 걸쇠",
"block.create.pulse_repeater": "펄스 리피터",
"block.create.pulse_repeater": "펄스 중계기",
"block.create.redstone_contact": "동형 감지기",
"block.create.redstone_link": "레드스톤 링크",
"block.create.adjustable_pulse_repeater": "가변 펄스 리피터",
"block.create.adjustable_repeater": "가변 리피터",
"block.create.adjustable_pulse_repeater": "가변 펄스 중계기",
"block.create.adjustable_repeater": "가변 중계기",
"block.create.analog_lever": "아날로그 레버",
"block.create.stockpile_switch": "수량 스위치",
"block.create.controller_rail": "방향 레일",
@ -584,10 +584,10 @@
"advancement.create.its_alive.desc": "당신의 첫 장치가 움직입니다!",
"advancement.create.shifting_gears": "톱니바퀴 돌리고!",
"advancement.create.shifting_gears.desc": "크기가 다른 톱니바퀴를 연결하여 장치의 속도를 바꿀 수 있습니다.",
"advancement.create.overstressed": "과부",
"advancement.create.overstressed": "과부",
"advancement.create.overstressed.desc": "피로도의 한계를 경험해보세요.",
"advancement.create.belt": "켈프 벨트",
"advancement.create.belt.desc": "두 축에 컨베이어 벨트를 이으세요.",
"advancement.create.belt.desc": "두 축에 벨트를 이으세요.",
"advancement.create.tunnel": "벨트 꾸미기",
"advancement.create.tunnel.desc": "터널을 이용해 벨트를 꾸며보세요.",
"advancement.create.splitter_tunnel": "분할 정복 알고리즘",
@ -595,7 +595,7 @@
"advancement.create.chute": "쏟아져 내려와",
"advancement.create.chute.desc": "수직 벨트역할을 하는 슈트를 설치하세요.",
"advancement.create.upward_chute": "바람 납치",
"advancement.create.upward_chute.desc": "선풍기를 설치하고, 슈트안에서 아이템이 날아가는 것을 보세요.",
"advancement.create.upward_chute.desc": "선풍기를 설치하고, 슈트 안에서 아이템이 날아가는 것을 보세요.",
"advancement.create.belt_funnel": "퍼널 깔기",
"advancement.create.belt_funnel.desc": "퍼널을 벨트나 아이템 거치대에 설치하여 특별한 모양을 만들어 보세요.",
"advancement.create.belt_funnel_kiss": "퍼널는 어떻게 태어나?",
@ -621,10 +621,10 @@
"advancement.create.reinforced": "튼튼 보강!",
"advancement.create.reinforced.desc": "축, 파이프, 벨트에 적절한 케이스를 씌우세요.",
"advancement.create.water_wheel": "수력 동력화",
"advancement.create.water_wheel.desc": "물레방아를 설치하고 회전하게 만드세요!",
"advancement.create.chocolate_wheel": "초콜릿방아",
"advancement.create.chocolate_wheel.desc": "녹은 초콜릿으로 물레방아를 돌리세요.",
"advancement.create.lava_wheel": "불레방아",
"advancement.create.water_wheel.desc": "물레바퀴를 설치하고 회전하게 만드세요!",
"advancement.create.chocolate_wheel": "초콜릿바퀴",
"advancement.create.chocolate_wheel.desc": "녹은 초콜릿으로 물레바퀴를 돌리세요.",
"advancement.create.lava_wheel": "불레바퀴",
"advancement.create.lava_wheel.desc": "용암으로 물레바퀴를 회전하게 만드세ㅇ... 어?",
"advancement.create.cuckoo": "벌써 이렇게나 시간이 지났어?",
"advancement.create.cuckoo.desc": "뻐꾸기 시계가 잘 시간을 알립니다. 잘 자...",
@ -672,7 +672,7 @@
"advancement.create.chained_item_drain": "구른다!",
"advancement.create.chained_item_drain.desc": "아이템이 여러 배수구 위를 굴러가는 것을 보세요.",
"advancement.create.glass_pipe": "액체 엿보기",
"advancement.create.glass_pipe.desc": "액체가 창이 달린 파이프를 지나는 것을 보세요. 직선 파이프 렌치로 우클릭하면 창문이 생깁니다.",
"advancement.create.glass_pipe.desc": "액체가 창이 달린 파이프를 지나는 것을 보세요. 직선 파이프 렌치로 우클릭하면 창문이 생깁니다.",
"advancement.create.pipe_collision": "그 액체를 섞지 마오",
"advancement.create.pipe_collision.desc": "액체관에서 두 가지 액체가 만나는 것을 관찰하세요.",
"advancement.create.pipe_spill": "누출 사고",
@ -766,7 +766,7 @@
"death.attack.create.cuckoo_clock_explosion.player": "%1$s이(가) 조작된 뻐꾸기 시계에 의해 폭파당했습니다",
"create.block.deployer.damage_source_name": "배포기",
"create.block.cart_assembler.invalid": "카트조립기를 레일 위에 설치하세요",
"create.block.cart_assembler.invalid": "카트 조립기를 레일 위에 설치하세요",
"create.menu.return": "메뉴로 돌아가기",
"create.menu.configure": "설정...",
@ -901,12 +901,12 @@
"create.minecart_coupling.too_far": "광산 수레들이 너무 멀리 떨어져 있습니다",
"create.contraptions.movement_mode": "이동 설정",
"create.contraptions.movement_mode.move_place": "멈췄을때 항상 블록이 설치됨",
"create.contraptions.movement_mode.move_place_returned": "멈췄을때 시작 위치에서만 블록이 설치됨",
"create.contraptions.movement_mode.move_never_place": "멈춰도 블록을 설치하지 않음",
"create.contraptions.movement_mode.rotate_place": "멈췄을때 항상 블록이 설치됨",
"create.contraptions.movement_mode.rotate_place_returned": "멈췄을때 시작 위치에서만 블록이 설치됨",
"create.contraptions.movement_mode.rotate_never_place": "멈춰도 블록을 설치하지 않음",
"create.contraptions.movement_mode.move_place": "멈췄을 때 항상 구조물을 설치함",
"create.contraptions.movement_mode.move_place_returned": "멈췄을 때 시작 위치에서만 구조물을 설치함",
"create.contraptions.movement_mode.move_never_place": "멈춰도 구조물을 설치하지 않음",
"create.contraptions.movement_mode.rotate_place": "멈췄을 때 항상 구조물을 설치함",
"create.contraptions.movement_mode.rotate_place_returned": "멈췄을 때 시작 위치에서만 구조물을 설치함",
"create.contraptions.movement_mode.rotate_never_place": "멈춰도 구조물을 설치하지 않음",
"create.contraptions.cart_movement_mode": "수레 장치 이동 설정",
"create.contraptions.cart_movement_mode.rotate": "구조물이 항상 전방을 향함",
"create.contraptions.cart_movement_mode.rotate_paused": "수레가 회전할때 구조물이 행동을 멈춤",
@ -920,8 +920,8 @@
"create.logistics.filter": "필터",
"create.logistics.recipe_filter": "조합법 필터",
"create.logistics.fluid_filter": "액체 필터",
"create.logistics.firstFrequency": "주파수. #1",
"create.logistics.secondFrequency": "주파수. #2",
"create.logistics.firstFrequency": "주파수 #1",
"create.logistics.secondFrequency": "주파수 #2",
"create.logistics.filter.apply": "%1$s에 필터를 적용했습니다.",
"create.logistics.filter.apply_click_again": "%1$s에 필터를 적용했습니다. 다시 적용하면 가지고 있는 아이템의 수량을 복사하여 필터에 적용합니다.",
"create.logistics.filter.apply_count": "필터에 수량을 적용했습니다.",
@ -1019,7 +1019,7 @@
"create.schematic.tool.rotate.description.2": "",
"create.schematic.tool.rotate.description.3": "",
"create.schematic.tool.print.description.0": "구조물을 즉시 설치합니다.",
"create.schematic.tool.print.description.1": "[우클릭]으로 현재 지점에 설치를 허가합니다.",
"create.schematic.tool.print.description.1": "[우클릭]으로 현재 지점에 설치합니다.",
"create.schematic.tool.print.description.2": "이 도구는 크리에이티브 모드 전용입니다.",
"create.schematic.tool.print.description.3": "",
"create.schematic.tool.flip.description.0": "당신이 보는 면으로 청사진을 뒤집습니다.",
@ -1149,14 +1149,14 @@
"create.item_attributes.book_copy_second.inverted": "복사본의 복사본이 아님",
"create.item_attributes.book_copy_tattered": "낡고 헐었음",
"create.item_attributes.book_copy_tattered.inverted": "낡고 헐지 않음",
"create.item_attributes.astralsorcery_crystal": "%1$s 수정 속성을 가",
"create.item_attributes.astralsorcery_crystal.inverted": "%1$s 수정 속성을 가지고 있지 않",
"create.item_attributes.astralsorcery_constellation": "%1$s에 조율",
"create.item_attributes.astralsorcery_constellation.inverted": "%1$s에 조율되지 않",
"create.item_attributes.astralsorcery_perk_gem": "%1$s 퍽 속성을 가",
"create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 퍽 속성을 가지고 있지 않",
"create.item_attributes.astralsorcery_amulet": "%1$s이(가) 향상",
"create.item_attributes.astralsorcery_amulet.inverted": "%1$s이(가) 향상되지 않",
"create.item_attributes.astralsorcery_crystal": "%1$s 수정 속성을 가",
"create.item_attributes.astralsorcery_crystal.inverted": "%1$s 수정 속성을 가지고 있지 않",
"create.item_attributes.astralsorcery_constellation": "%1$s에 조율",
"create.item_attributes.astralsorcery_constellation.inverted": "%1$s에 조율되지 않",
"create.item_attributes.astralsorcery_perk_gem": "%1$s 퍽 속성을 가",
"create.item_attributes.astralsorcery_perk_gem.inverted": "%1$s 퍽 속성을 가지고 있지 않",
"create.item_attributes.astralsorcery_amulet": "%1$s이(가) 향상",
"create.item_attributes.astralsorcery_amulet.inverted": "%1$s이(가) 향상되지 않",
"create.gui.attribute_filter.no_selected_attributes": "속성이 선택되지 않음",
"create.gui.attribute_filter.selected_attributes": "선택된 속성:",
@ -1247,7 +1247,7 @@
"create.potato_cannon.ammo.knockback": "%1$s 밀쳐내는 거리",
"create.hint.hose_pulley.title": "무한 공급",
"create.hint.hose_pulley": "해당 액체는 _무한_으로 간주됩니다.",
"create.hint.hose_pulley": "해당 액체는 _무한_니다.",
"create.hint.mechanical_arm_no_targets.title": "목표 없음",
"create.hint.mechanical_arm_no_targets": "이 _기계 팔_은 _목표_가 설정되지 않았습니다. _기계 팔을 손에 들고_ 벨트, 아이템 거치대, 퍼널을 _우클릭_하여 목표로 지정하세요.",
"create.hint.empty_bearing.title": "베어링 업데이트",
@ -1398,7 +1398,7 @@
"item.create.schematic.tooltip": "SCHEMATIC",
"item.create.schematic.tooltip.summary": "세계에 구조물을 _홀로그램으로_ 불러와 지정하고 설치합니다. 지정된 홀로그램은 _청사진_ _대포_의 _작업_ _영역_이 됩니다.",
"item.create.schematic.tooltip.condition1": "들고 있을 ",
"item.create.schematic.tooltip.condition1": "들고 있을 ",
"item.create.schematic.tooltip.behaviour1": "UI의 도구로 _변경/설치_ 할 수 있습니다.",
"item.create.schematic.tooltip.control1": "웅크린 상태에서 우클릭",
"item.create.schematic.tooltip.action1": "정확한 _좌표_ 입력을 위한 창을 엽니다.",
@ -1419,7 +1419,7 @@
"block.create.schematicannon.tooltip": "SCHEMATICANNON",
"block.create.schematicannon.tooltip.summary": "장착된 청사진을 바탕으로 블록들을 _발포_합니다. _화약_을 연료로 사용하고 주변 보관함에서 아이템을 사용합니다.",
"block.create.schematicannon.tooltip.condition1": "우클릭",
"block.create.schematicannon.tooltip.behaviour1": "을 엽니다.",
"block.create.schematicannon.tooltip.behaviour1": "설정 창을 엽니다.",
"block.create.schematic_table.tooltip": "SCHEMATIC TABLE",
"block.create.schematic_table.tooltip.summary": "_빈_ _청사진_에 저장된 청사진을 불러옵니다.",
@ -1443,7 +1443,7 @@
"item.create.wrench.tooltip.action2": "_장치_를 _해체_하고 _즉시_ _보관함_으로 넣습니다.",
"block.create.nozzle.tooltip": "NOZZLE",
"block.create.nozzle.tooltip.summary": "덮힌 환풍기 _앞_에 붙여 환풍기의 효과를 _전방_으로 _확대_합니다.",
"block.create.nozzle.tooltip.summary": "선풍기 _앞_에 붙여 선풍기의 효과를 _전방향_으로 _확대_합니다.",
"block.create.cuckoo_clock.tooltip": "CUCKOO CLOCK",
"block.create.cuckoo_clock.tooltip.summary": "_시간의_ _흐름_을 알고 공간을 _꾸미는_ 데 좋은 공예품입니다.",
@ -1482,7 +1482,7 @@
"item.create.sand_paper.tooltip.behaviour1": "_다른 손_에있는 아이템과 _바닥에 있는 아이템_을 윤냅니다.",
"item.create.builders_tea.tooltip": "BUILDERS TEA",
"item.create.builders_tea.tooltip.summary": "하루를 시작하기에 좋은 음료입니다. _ 새로운 영감_을 줍니다.",
"item.create.builders_tea.tooltip.summary": "하루를 시작하기에 좋은 음료입니다. _새로운 영감_을 줍니다.",
"item.create.refined_radiance.tooltip": "REFINED RADIANCE",
"item.create.refined_radiance.tooltip.summary": "_흡수된_ _빛_으로 제련된 색채 혼합물입니다.",
@ -1555,8 +1555,8 @@
"create.ponder.hold_to_ponder": "[%1$s]키를 눌러 분석하기",
"create.ponder.subject": "분석의 주제",
"create.ponder.pondering": "분석 중입니다...",
"create.ponder.identify_mode": "탐색모드가 활성화되어 있습니다. [%1$s]를 눌러 중지합니다.",
"create.ponder.associated": "연관된 항들",
"create.ponder.identify_mode": "탐색모드가 활성화되어 있습니다. \n[%1$s]를 눌러 중지합니다.",
"create.ponder.associated": "연관된 항들",
"create.ponder.close": "닫기",
"create.ponder.identify": "탐색",
"create.ponder.next": "다음 장면",
@ -1569,7 +1569,7 @@
"create.ponder.categories": "Create에서 둘러볼 수 있는 목록들",
"create.ponder.index_description": "아이콘을 클릭해 관련 아이템과 블록에 대해 알아볼 수 있습니다.",
"create.ponder.index_title": "분석 메뉴 제목",
"create.ponder.shared.movement_anchors": "섀시나 강력 접착제 큰 구조물도 옮길 수 있습니다.",
"create.ponder.shared.movement_anchors": "섀시나 강력 접착제를 이용해 큰 구조물도 옮길 수 있습니다.",
"create.ponder.shared.rpm32": "32 RPM",
"create.ponder.shared.sneak_and": "웅크리기 +",
"create.ponder.shared.storage_on_contraption": "구조물에 부착된 보관함은 구조물이 떨어뜨린 아이템을 자동으로 줍습니다.",
@ -1605,13 +1605,13 @@
"create.ponder.tag.fluids": "액체 조정",
"create.ponder.tag.fluids.description": "액체를 나르고 사용하는 장치입니다.",
"create.ponder.adjustable_pulse_repeater.header": "가변 펄스 리피터를 이용해 신호 조절하기",
"create.ponder.adjustable_pulse_repeater.text_1": "가변 펄스 리피터는 딜레이 이후 짧은 신호를 보냅니다.",
"create.ponder.adjustable_pulse_repeater.header": "가변 펄스 중계기를 이용해 신호 조절하기",
"create.ponder.adjustable_pulse_repeater.text_1": "가변 펄스 중계기는 딜레이 이후 짧은 신호를 보냅니다.",
"create.ponder.adjustable_pulse_repeater.text_2": "마우스 휠을 이용하여 딜레이를 조절합니다.",
"create.ponder.adjustable_pulse_repeater.text_3": "딜레이는 최대 30분까지 조절할 수 있습니다.",
"create.ponder.adjustable_repeater.header": "가변 리피터를 이용해 신호 조절하기",
"create.ponder.adjustable_repeater.text_1": "가변 리피터는 기존 리피터와 비슷합니다.",
"create.ponder.adjustable_repeater.header": "가변 중계기를 이용해 신호 조절하기",
"create.ponder.adjustable_repeater.text_1": "가변 중계기는 기존 중계기와 비슷합니다.",
"create.ponder.adjustable_repeater.text_2": "정해진 딜레이만큼 신호를 주고...",
"create.ponder.adjustable_repeater.text_3": "...정해진 딜레이만큼 쉽니다.",
"create.ponder.adjustable_repeater.text_4": "마우스 휠을 이용해 딜레이를 조절합니다.",
@ -1637,7 +1637,7 @@
"create.ponder.basin.text_6": "수송관이 없다면, 대야는 처리된 아이템을 보관합니다.",
"create.ponder.basin.text_7": "결과물이 다시 사용될 때 유용합니다.",
"create.ponder.basin.text_8": "이 경우, 대야에서 특정 결과물을 빼내야 합니다.",
"create.ponder.basin.text_9": "처리되지 않은 아이템이 나오는 것을 방지하기 위해서는 필터가 필요할 수도 있습니다.",
"create.ponder.basin.text_9": "처리되지 않은 아이템이 나오는 것을 방지하기 위해서는 필터가 필요니다.",
"create.ponder.bearing_modes.header": "베어링의 이동 설정",
"create.ponder.bearing_modes.text_1": "멈췄을 때, 베어링은 구조물을 가까운 수직 각도로 설치합니다.",
@ -1649,7 +1649,7 @@
"create.ponder.belt_connector.header": "벨트 사용하기",
"create.ponder.belt_connector.text_1": "두 축을 벨트로 우클릭하여 연결합니다.",
"create.ponder.belt_connector.text_2": "실수로 선택했다면, 웅크리면서 우클릭하여 취소할 수 있습니다.",
"create.ponder.belt_connector.text_2": "실수로 선택했다면, 웅크리면서 우클릭하여 취소니다.",
"create.ponder.belt_connector.text_3": "벨트에 축을 추가로 넣을 수 있습니다.",
"create.ponder.belt_connector.text_4": "벨트로 연결된 축들은 같은 속도, 방향으로 회전합니다.",
"create.ponder.belt_connector.text_5": "추가된 축은 렌치로 없앨 수 있습니다.",
@ -1661,7 +1661,7 @@
"create.ponder.belt_directions.text_3": "2. 대각선으로 연결할 수 있습니다.",
"create.ponder.belt_directions.text_4": "3. 수직으로 연결할 수 있습니다.",
"create.ponder.belt_directions.text_5": "4. 또한 수직 축을 평행하게 연결할 수 있습니다.",
"create.ponder.belt_directions.text_6": "이것들이 가능한 방향입니다. 벨트는 2 ~ 20 블록 길이를 연결할 수 있습니다.",
"create.ponder.belt_directions.text_6": "이것들이 가능한 방향입니다. 벨트는 2 ~ 20 블록 길이를 연결니다.",
"create.ponder.belt_transport.header": "벨트를 이용한 수송",
"create.ponder.belt_transport.text_1": "움직이는 벨트는 아이템과 엔티티를 옮깁니다.",
@ -1676,8 +1676,8 @@
"create.ponder.brass_funnel.header": "황동 퍼널",
"create.ponder.brass_funnel.text_1": "안산암 퍼널는 아이템 한 개만 뽑아냅니다.",
"create.ponder.brass_funnel.text_2": "황동 퍼널는 한 스택까지 뽑을 수 있습니다.",
"create.ponder.brass_funnel.text_3": "핕터 슬롯에 스크롤하여 추출 갯수를 조절할 수 있습니다.",
"create.ponder.brass_funnel.text_4": "필터 슬롯에 아이템을 사용하여 추출할 아이템 종류를 정할 수 있습니다.",
"create.ponder.brass_funnel.text_3": "핕터 슬롯을 스크롤하여 추출 갯수를 조절합니다.",
"create.ponder.brass_funnel.text_4": "필터 슬롯에 아이템을 사용하여 추출할 아이템 종류를 정니다.",
"create.ponder.brass_tunnel.header": "황동 터널 사용하기",
"create.ponder.brass_tunnel.text_1": "황동 터널은 벨트를 덮는데 사용할 수 있습니다.",
@ -1690,7 +1690,7 @@
"create.ponder.brass_tunnel.text_8": "이런 식으로, 터널을 통해 직접 아이템을 넣을 수 있습니다.",
"create.ponder.brass_tunnel_modes.header": "황동 터널의 분배 모드",
"create.ponder.brass_tunnel_modes.text_1": "렌치를 이용해, 황동 터널이 어떻게 분배할지 설정할 수 있습니다.",
"create.ponder.brass_tunnel_modes.text_1": "렌치를 이용해, 황동 터널이 어떻게 분배할지 설정니다.",
"create.ponder.brass_tunnel_modes.text_10": "[입력 동기화] 설정은 황동 터널만의 고유 설정입니다.",
"create.ponder.brass_tunnel_modes.text_11": "모든 입구에 아이템이 있어야만 통과할 수 있습니다.",
"create.ponder.brass_tunnel_modes.text_12": "이 설정은 연결된 모든 벨트에 아이템을 동시에 공급할 수 있습니다.",
@ -1722,7 +1722,7 @@
"create.ponder.cart_assembler_rails.text_1": "일반 레일위의 조립기는 지나가는 수레에 아무 영향을 미치지 않습니다.",
"create.ponder.cart_assembler_rails.text_2": "전동 레일, 방향 레일 위에 있을 때, 신호를 받을 때까지 수레는 멈춥니다.",
"create.ponder.cart_assembler_rails.text_3": "다른 수레들도 쓸 수 있습니다.",
"create.ponder.cart_assembler_rails.text_4": "화로 카트는 부착된 보관함에서 연료를 가져와 스스로 움직입니다.",
"create.ponder.cart_assembler_rails.text_4": "화로 수레는 부착된 보관함에서 연료를 가져와 스스로 움직입니다.",
"create.ponder.chain_drive.header": "체인 드라이브로 회전 전달하기",
"create.ponder.chain_drive.text_1": "체인 드라이브는 한 줄로 회전을 전달합니다.",
@ -1738,12 +1738,12 @@
"create.ponder.chain_gearshift.text_6": "12 RPM",
"create.ponder.chute.header": "슈트를 이용해 아이템을 아래로 옮기기",
"create.ponder.chute.text_1": "슈트는 보관함에 있는 아이템을 수직으로 옮길 수 있습니다.",
"create.ponder.chute.text_1": "슈트는 보관함에 있는 아이템을 수직으로 옮니다.",
"create.ponder.chute.text_2": "렌치를 이용해 창문을 만들 수 있습니다.",
"create.ponder.chute.text_3": "슈트 옆면에 다른 슈트를 설치하면 대각선으로 연결됩니다.",
"create.ponder.chute_upward.header": "슈트를 이용해 아이템을 위로 옮기기",
"create.ponder.chute_upward.text_1": "선풍기를 위/아래에 설치하면, 슈트는 아이템을 위로 보낼 수 있습니다.",
"create.ponder.chute_upward.text_1": "선풍기를 위/아래에 설치하면, 슈트는 아이템을 위로 보니다.",
"create.ponder.chute_upward.text_2": "엔지니어의 고글로 슈트를 관찰하여 이동 방향을 확인하세요.",
"create.ponder.chute_upward.text_3": "막힌 끝 부분에서 아이템은 옆에서 넣거나 빼내야합니다.",
@ -1774,11 +1774,11 @@
"create.ponder.creative_fluid_tank.text_1": "크리에이티브 탱크는 무한히 액체를 공급합니다.",
"create.ponder.creative_fluid_tank.text_2": "액체가 든 용기로 우클릭하여 액체를 채울 수 있습니다.",
"create.ponder.creative_fluid_tank.text_3": "파이프로 탱크에서 액체를 무한히 뽑아낼 수 있습니다.",
"create.ponder.creative_fluid_tank.text_4": "크리에이티브 탱크로 들어가는 모든 액체는 삭제됩니다.",
"create.ponder.creative_fluid_tank.text_4": "크리에이티브 탱크로 들어가는 모든 액체는 사라집니다.",
"create.ponder.creative_motor.header": "크리에이티브 모터를 이용해 동력 생산하기",
"create.ponder.creative_motor.text_1": "크리에이티브 모터는 동력을 쉽게 생산, 조절합니다.",
"create.ponder.creative_motor.text_2": "모터 후면을 스크롤해서 모터의 RPM을 조절할 수 있습니다.",
"create.ponder.creative_motor.text_2": "모터 후면을 스크롤해서 모터의 RPM을 조절니다.",
"create.ponder.crushing_wheels.header": "분쇄 휠을 이용해 아이템 가공하기",
"create.ponder.crushing_wheels.text_1": "한 쌍의 분쇄 휠은 아이템을 매우 효과적으로 갈아버립니다.",
@ -1792,8 +1792,8 @@
"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_14": "필터에 맞는 아이템만 들어가며...",
"create.ponder.deployer.text_15": "...그 외의 아이템은 배출됩니다.",
"create.ponder.deployer.text_2": "배포기는 한 칸 떨어진 블록에 상호작용합니다.",
"create.ponder.deployer.text_3": "바로 앞에 블록이 있어도 상괸없습니다.",
"create.ponder.deployer.text_4": "배포기가 할 수 있는 것:",
@ -1804,8 +1804,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.text_1": "배포기가 움직이는 구조물의 일부면...",
"create.ponder.deployer_contraption.text_2": "...배포기는 움직일 때마다 작동하며, 구조물에 붙어있는 아무 보관함의 아이템을 사용합니다.",
"create.ponder.deployer_contraption.text_3": "필터를 이용해 어떤 아이템을 사용할 지 정할 수 있습니다.",
"create.ponder.deployer_modes.header": "배포기의 작동 방식",
@ -1813,10 +1813,10 @@
"create.ponder.deployer_modes.text_2": "렌치를 이용해, 좌클릭을 흉내내도록 설정할 수 있습니다.",
"create.ponder.deployer_processing.header": "배포기로 아이템 가공하기",
"create.ponder.deployer_processing.text_1": "배포기가 맞는 아이템을 가지고 있으면, 아래 있는 아이템을 가공할 수 있습니다.",
"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_processing.text_3": "아이템이 벨트에 있으면...",
"create.ponder.deployer_processing.text_4": "...압착기가 알아서 아이템 이동을 멈추고 가공합니다.",
"create.ponder.deployer_redstone.header": "레드스톤과 배포기",
"create.ponder.deployer_redstone.text_1": "레드스톤 신호를 받으면, 배포기는 작동하지 않습니다.",
@ -1825,12 +1825,12 @@
"create.ponder.depot.header": "아이템 거치대 사용하기",
"create.ponder.depot.text_1": "아이템 거치대는 고정된 벨트 역할입니다.",
"create.ponder.depot.text_2": "우클릭해서 아이템을 놓거나 가져갈 수 있습니다.",
"create.ponder.depot.text_2": "우클릭해서 아이템을 놓거나 가져니다.",
"create.ponder.depot.text_3": "벨트처럼, 놓여진 아이템은 가공될 수 있습니다.",
"create.ponder.depot.text_4": "그리고 기계 팔의 목표가 될 수 있습니다.",
"create.ponder.empty_blaze_burner.header": "빈 블레이즈 버너 사용하기",
"create.ponder.empty_blaze_burner.text_1": "블레이즈를 우클릭하여 버너에 가둘 수 있습니다.",
"create.ponder.empty_blaze_burner.text_1": "블레이즈를 우클릭하여 버너에 가니다.",
"create.ponder.empty_blaze_burner.text_2": "또는 스포너에서도 블레이즈를 가둘 수 있습니다.",
"create.ponder.empty_blaze_burner.text_3": "이제 당신은 다양한 장치에 쓰일 이상적인 열원을 얻었습니다.",
"create.ponder.empty_blaze_burner.text_4": "장식적인 요소로는 라이터로 불을 붙일 수 있습니다.",
@ -1850,30 +1850,30 @@
"create.ponder.fan_processing.text_1": "바람이 용암을 통과하면, 공기가 뜨거워집니다.",
"create.ponder.fan_processing.text_2": "바람이 지나가는 자리의 아이템은 구워집니다.",
"create.ponder.fan_processing.text_3": "음식은 불타 없어집니다.",
"create.ponder.fan_processing.text_4": "대신, 불을 이용하면 음식을 구울 수 있습니다.",
"create.ponder.fan_processing.text_4": "대신, 불을 이용하면 음식을 습니다.",
"create.ponder.fan_processing.text_5": "물을 통과하는 바람을 통해 세척할 수 있습니다.",
"create.ponder.fan_processing.text_6": "이를 통해 새로운 가공을 할 수 있습니다.",
"create.ponder.fan_processing.text_7": "선풍기의 속도는 가공 속도와 관련이 없습니다!",
"create.ponder.fan_processing.text_8": "선풍기 가공은 벨트나 아이템 거치대의 아이템에도 적용됩니다.",
"create.ponder.fan_source.header": "선풍기를 이용해 동력 생산하기",
"create.ponder.fan_source.text_1": "열원을 향한 선풍기는 동력을 제공할 수 있습니다.",
"create.ponder.fan_source.text_1": "열원을 향한 선풍기는 동력을 제공니다.",
"create.ponder.fan_source.text_2": "레드스톤 신호를 받으면, 동력을 제공하기 시작합니다.",
"create.ponder.fluid_pipe_flow.header": "파이프로 액체 옮기기",
"create.ponder.fluid_pipe_flow.text_1": "파이프는 한 종류의 액체만 옮길 수 있습니다.",
"create.ponder.fluid_pipe_flow.text_1": "파이프는 한 종류의 액체만 옮니다.",
"create.ponder.fluid_pipe_flow.text_2": "렌치를 이용하여 직선 파이프에 창문을 달 수 있습니다.",
"create.ponder.fluid_pipe_flow.text_3": "창문이 있는 파이프는 옆에 있는 파이프와 연결되지 않습니다.",
"create.ponder.fluid_pipe_flow.text_4": "펌프를 이용하면 파이프로 액체를 옮길 수 있습니다.",
"create.ponder.fluid_pipe_flow.text_5": "처음엔 액체가 빠지지 않습니다.",
"create.ponder.fluid_pipe_flow.text_6": "액체 흐름이 이어지면, 시작 탱크에서 끝 탱크로 액체가 본격적으로 이동합니다.",
"create.ponder.fluid_pipe_flow.text_7": "이렇기 때문에, 파이프는 실질적으로 아무런 액체도 담을 수 없습니다.",
"create.ponder.fluid_pipe_flow.text_7": "이렇기 때문에, 파이프는 실질적으로 아무런 액체도 담지 않습니다.",
"create.ponder.fluid_pipe_interaction.header": "액체 용기를 비우고 채우기",
"create.ponder.fluid_pipe_interaction.text_1": "파이프의 끝은 다양한 블록과 상호작용할 수 있습니다.",
"create.ponder.fluid_pipe_interaction.text_2": "액체를 담을 수 있는 모든 블록은 비우거나 채울 수 있습니다.",
"create.ponder.fluid_pipe_interaction.text_3": "끝 부분에 있는 액체의 원천도 흡수할 수 있으며,",
"create.ponder.fluid_pipe_interaction.text_4": "비어있는 곳에 액체를 배출할 수도 있습니다.",
"create.ponder.fluid_pipe_interaction.text_3": "끝 부분에 있는 액체의 원천도 흡수할 수 있으며...",
"create.ponder.fluid_pipe_interaction.text_4": "...비어있는 곳에 액체를 배출할 수도 있습니다.",
"create.ponder.fluid_pipe_interaction.text_5": "다양한 다른 블록에서도 액체를 뽑아낼 수도 있습니다.",
"create.ponder.fluid_tank_sizes.header": "액체 탱크의 크기",
@ -1895,7 +1895,7 @@
"create.ponder.flywheel.text_3": "용광로를 사용하면 동력 속도가 2배가 됩니다.",
"create.ponder.funnel_compat.header": "퍼널 호환성",
"create.ponder.funnel_compat.text_1": "퍼널는 다른 장치들 위에 설치할 수도 있습니다.",
"create.ponder.funnel_compat.text_1": "퍼널은 다른 장치들 위에 설치할 수 있습니다.",
"create.ponder.funnel_compat.text_2": "세로 톱",
"create.ponder.funnel_compat.text_3": "아이템 거치대",
"create.ponder.funnel_compat.text_4": "아이템 배수구",
@ -1914,7 +1914,7 @@
"create.ponder.funnel_redstone.text_1": "레드스톤 신호를 받으면 동작을 멈춥니다.",
"create.ponder.funnel_transfer.header": "직접 수송",
"create.ponder.funnel_transfer.text_1": "퍼널는 아이템을 보관함에서 다른 보관함로 옮길 수 없습니다.",
"create.ponder.funnel_transfer.text_1": "퍼널는 아이템을 보관함에서 다른 보관함로 옮니다.",
"create.ponder.funnel_transfer.text_2": "슈트나 스마트 슈트가 이런 목적에 더 적합합니다.",
"create.ponder.funnel_transfer.text_3": "수평 방향으로는 벨트가 적합합니다.",
@ -1924,8 +1924,8 @@
"create.ponder.furnace_engine.text_3": "용광로를 사용하면 동력 속도가 2배가 됩니다.",
"create.ponder.gantry_carriage.header": "갠트리 운반대 사용하기",
"create.ponder.gantry_carriage.text_1": "갠트리 운반대는 갠트리 축 위에서 움직일 수 있습니다.",
"create.ponder.gantry_carriage.text_2": "갠트리 장치는 부착된 블록들을 움직일 수 있습니다.",
"create.ponder.gantry_carriage.text_1": "갠트리 운반대는 갠트리 축 위에서 움직니다.",
"create.ponder.gantry_carriage.text_2": "갠트리 장치는 부착된 블록들을 움직니다.",
"create.ponder.gantry_cascaded.header": "계단식 갠트리",
"create.ponder.gantry_cascaded.text_1": "갠트리 운반대에 접착제 없이 갠트리 축을 붙일 수 있습니다.",
@ -1944,7 +1944,7 @@
"create.ponder.gantry_shaft.header": "갠트리 축 사용하기",
"create.ponder.gantry_shaft.text_1": "갠트리 축은 갠트리 장치에 필요합니다. 갠트리 운반대가 축을 따라 움직입니다.",
"create.ponder.gantry_shaft.text_2": "갠트리 장치는 부착된 블록들을 움직일 수 있습니다.",
"create.ponder.gantry_shaft.text_2": "갠트리 장치는 부착된 블록들을 움직니다.",
"create.ponder.gearbox.header": "기어박스를 이용해 동력 전달하기",
"create.ponder.gearbox.text_1": "회전축을 변경하는 일은 쉽게 귀찮아집니다.",
@ -1967,13 +1967,13 @@
"create.ponder.hose_pulley.text_2": "동력을 전달하여 호스의 높이를 정합니다.",
"create.ponder.hose_pulley.text_3": "동력 방향이 반전되면 호스는 올라갑니다.",
"create.ponder.hose_pulley.text_4": "반대쪽에는 파이프를 연결할 수 있습니다.",
"create.ponder.hose_pulley.text_5": "연결된 파이프에서 호스로 전달하여 액체를 채우거나,",
"create.ponder.hose_pulley.text_6": "반대 방향으로 방향을 바꿔 액체를 비울 수 있습니다.",
"create.ponder.hose_pulley.text_5": "연결된 파이프에서 호스로 전달하여 액체를 채우거나...",
"create.ponder.hose_pulley.text_6": "...반대 방향으로 방향을 바꿔 액체를 비울 수 있습니다.",
"create.ponder.hose_pulley.text_7": "호스의 채우거나 비우는 속도는 펌프 속도에 기반합니다.",
"create.ponder.hose_pulley_infinite.header": "매우 많은 양의 액체를 채우고 비우기",
"create.ponder.hose_pulley_infinite.text_1": "넓은 바다에서 호스 도르래를 작동시키면,",
"create.ponder.hose_pulley_infinite.text_2": "물 블록을 없애거나 추가하지 않고 액체를 얻거나 버릴 수 있습니다.",
"create.ponder.hose_pulley_infinite.text_1": "넓은 바다에서 호스 도르래를 작동시키면...",
"create.ponder.hose_pulley_infinite.text_2": "...물 블록을 없애거나 추가하지 않고 액체를 얻거나 버릴 수 있습니다.",
"create.ponder.hose_pulley_infinite.text_3": "파이프로 이런 도르래에서 무한한 액체를 얻을 수 있습니다.",
"create.ponder.hose_pulley_level.header": "호스 도르래의 채우고 비우는 기준",
@ -1984,14 +1984,14 @@
"create.ponder.hose_pulley_level.text_5": "호스 끝부분 위는 채우지 않습니다.",
"create.ponder.item_drain.header": "아이템 배수구로 액체 비우기",
"create.ponder.item_drain.text_1": "배수구는 아이템에서 액체를 비울 수 있습니다.",
"create.ponder.item_drain.text_2": "우클릭하여 손에 든 아이템에서 액체를 부울 수 있습니다.",
"create.ponder.item_drain.text_3": "아이템이 옆에서 들어온다면,",
"create.ponder.item_drain.text_4": "아이템은 굴라가며 담긴 액체를 비웁니다.",
"create.ponder.item_drain.text_1": "배수구는 아이템에서 액체를 비니다.",
"create.ponder.item_drain.text_2": "우클릭하여 손에 든 아이템에서 액체를 습니다.",
"create.ponder.item_drain.text_3": "아이템이 옆에서 들어온다면...",
"create.ponder.item_drain.text_4": "...아이템은 굴라가며 담긴 액체를 비웁니다.",
"create.ponder.item_drain.text_5": "배수구 탱크에 있는 액체는 파이프로 옮길 수 있습니다.",
"create.ponder.large_cogwheel.header": "큰 톱니바퀴로 동력 전달하기",
"create.ponder.large_cogwheel.text_1": "큰 톱니바퀴는 수직으로 서로 맞물릴 수 있습니다.",
"create.ponder.large_cogwheel.text_1": "큰 톱니바퀴는 수직으로 서로 맞물니다.",
"create.ponder.large_cogwheel.text_2": "이는 다른 축으로 동력을 전달하는데 도움이 됩니다.",
"create.ponder.linear_chassis_attachment.header": "직선 섀시를 이용해 블록 붙이기",
@ -2013,7 +2013,7 @@
"create.ponder.mechanical_arm.text_1": "기계 팔은 설치되기 전, 입력부와 출력부를 지정해야 합니다.",
"create.ponder.mechanical_arm.text_2": "우클릭으로 보관함을 가진 블록을 대상으로 지정합니다.",
"create.ponder.mechanical_arm.text_3": "다시 우클릭하여 입력부(파랑) 출력부(주황)을 설정합니다.",
"create.ponder.mechanical_arm.text_4": "좌클릭하여 대상 선택을 해제할 수 있습니다.",
"create.ponder.mechanical_arm.text_4": "좌클릭하여 대상 선택을 해제니다.",
"create.ponder.mechanical_arm.text_5": "설치된 기계 팔은 이전에 선택된 블록들을 대상으로 정합니다.",
"create.ponder.mechanical_arm.text_6": "거리안에 있다면 여러 블록을 지정할 수 있습니다.",
"create.ponder.mechanical_arm.text_7": "하지만 모든 보관함을 지닌 블록이 지정되지는 않습니다.",
@ -2030,8 +2030,8 @@
"create.ponder.mechanical_arm_modes.header": "기계 팔의 분배 설정",
"create.ponder.mechanical_arm_modes.text_1": "입력부",
"create.ponder.mechanical_arm_modes.text_2": "출력부",
"create.ponder.mechanical_arm_modes.text_3": "기계 팔이 여러 곳에 아이템을 전달해야 한다면,",
"create.ponder.mechanical_arm_modes.text_4": "현재 분배 설정에 따라 행동합니다.",
"create.ponder.mechanical_arm_modes.text_3": "기계 팔이 여러 곳에 아이템을 전달해야 한다면...",
"create.ponder.mechanical_arm_modes.text_4": "...현재 분배 설정에 따라 행동합니다.",
"create.ponder.mechanical_arm_modes.text_5": "렌치로 스크롤하여 어떻게 분배할지 설정하세요.",
"create.ponder.mechanical_arm_modes.text_6": "'순서대로 옮김'은 가능한 곳을 순환하며 아이템을 분배합니다.",
"create.ponder.mechanical_arm_modes.text_7": "어느 한 곳이 더 전달받을 수 없다면, 그 곳은 넘어갑니다.",
@ -2047,20 +2047,20 @@
"create.ponder.mechanical_bearing.text_1": "베어링은 앞에 있는 블록을 부착시킵니다.",
"create.ponder.mechanical_bearing.text_2": "동력을 받으면, 블록들은 회전하는 구조물로 변합니다.",
"create.ponder.mechanical_crafter.header": "기계식 조합기 설치하기",
"create.ponder.mechanical_crafter.text_1": "다수의 기계식 조합기로 모든 조합을 자동화할 수 있습니다.",
"create.ponder.mechanical_crafter.header": "조합기 설치하기",
"create.ponder.mechanical_crafter.text_1": "다수의 조합기로 모든 조합을 자동화할 수 있습니다.",
"create.ponder.mechanical_crafter.text_2": "렌치를 이용해, 조합기의 경로를 변경할 수 있습니다.",
"create.ponder.mechanical_crafter.text_3": "올바른 조합을 위해서는, 모든 조합기의 경로가 외부로 나가는 한 길로 이어져야합니다.",
"create.ponder.mechanical_crafter.text_4": "결과물은 경로 끝 보관함에 보내집니다.",
"create.ponder.mechanical_crafter.text_5": "기계식 조합기는 동력이 요구됩니다.",
"create.ponder.mechanical_crafter.text_6": "앞면을 우클릭해서 직접 아이템을 넣을 수 있습니다.",
"create.ponder.mechanical_crafter.text_5": "조합기는 동력이 요구됩니다.",
"create.ponder.mechanical_crafter.text_6": "앞면을 우클릭해서 직접 아이템을 넣습니다.",
"create.ponder.mechanical_crafter.text_7": "모든 면이 아이템을 가지고 있다면, 조합이 시작됩니다.",
"create.ponder.mechanical_crafter.text_8": "모든 면이 아이템을 가지고 있지 않아도, 레드스톤 신호로 조합을 강제 시작할 수 있습니다.",
"create.ponder.mechanical_crafter_connect.header": "조합기에 아이템 넣기",
"create.ponder.mechanical_crafter_connect.text_1": "조합기에 아이템을 자동으로 넣을 수 있습니다.",
"create.ponder.mechanical_crafter_connect.text_2": "후면에 렌치를 이용해 조합기 보관함을 연결할 수 있습니다.",
"create.ponder.mechanical_crafter_connect.text_3": "이제 모든 조합기가 한 곳에서 아이템을 받을 수 있습니다.",
"create.ponder.mechanical_crafter_connect.text_3": "이제 모든 조합기가 한 곳에서 아이템을 받습니다.",
"create.ponder.mechanical_crafter_covers.header": "조합기 슬롯 덮기",
"create.ponder.mechanical_crafter_covers.text_1": "몇몇 조합은 빈 공간을 채워줄 조합기가 필요합니다.",
@ -2072,58 +2072,58 @@
"create.ponder.mechanical_drill.text_2": "채굴 속도는 동력 속도에 비례합니다.",
"create.ponder.mechanical_drill_contraption.header": "구조물에서의 드릴",
"create.ponder.mechanical_drill_contraption.text_1": "드릴이 움직이는 구조물의 일부일 때,",
"create.ponder.mechanical_drill_contraption.text_2": "드릴이 부딫히는 블록을 파괴합니다.",
"create.ponder.mechanical_drill_contraption.text_1": "드릴이 움직이는 구조물의 일부면...",
"create.ponder.mechanical_drill_contraption.text_2": "...드릴이 부딫히는 블록을 파괴합니다.",
"create.ponder.mechanical_harvester.header": "구조물에서의 수확기",
"create.ponder.mechanical_harvester.text_1": "수확기가 움직이는 구조물의 일부일 때,",
"create.ponder.mechanical_harvester.text_2": "지나가는 길에 있는 작물을 수확하고, 성장 수치를 초기화합니다.",
"create.ponder.mechanical_harvester.text_1": "수확기가 움직이는 구조물의 일부면...",
"create.ponder.mechanical_harvester.text_2": "...지나가는 길에 있는 작물을 수확하고, 성장 수치를 초기화합니다.",
"create.ponder.mechanical_mixer.header": "믹서로 아이템 가공하기",
"create.ponder.mechanical_mixer.text_1": "믹서와 대야를 이용해 몇몇 조합을 자동화할 수 있습니다.",
"create.ponder.mechanical_mixer.text_2": "가능한 조합법은 어느 무형 조합법이나 가능하며, 모드에서 추가된 조합법도 있습니다.",
"create.ponder.mechanical_mixer.text_3": "몇몇 조합법은 블레이즈 버너의 열을 요구합니다.",
"create.ponder.mechanical_mixer.text_4": "필터 슬롯을 이용해 조합법이 겹치는 것을 방지할 수 있습니다.",
"create.ponder.mechanical_mixer.text_4": "필터 슬롯을 이용해 조합법이 겹치는 것을 방지니다.",
"create.ponder.mechanical_piston.header": "기계식 피스톤으로 구조물 옮기기",
"create.ponder.mechanical_piston.text_1": "기계식 피스톤은 블록들을 앞으로 움직일 수 있습니다.",
"create.ponder.mechanical_piston.text_1": "기계식 피스톤은 블록들을 앞으로 움직니다.",
"create.ponder.mechanical_piston.text_2": "속도와 방향은 들어오는 동력에 기반합니다.",
"create.ponder.mechanical_piston.text_3": "끈끈이 기계식 피스톤은 블록들을 다시 끌어올 수 있습니다.",
"create.ponder.mechanical_piston.text_3": "끈끈이 기계식 피스톤은 블록들을 다시 끌어니다.",
"create.ponder.mechanical_piston_modes.header": "기계식 피스톤의 이동 설정",
"create.ponder.mechanical_piston_modes.text_1": "피스톤이 움직임을 멈추면, 움직인 구조물은 블록으로 바뀝니다.",
"create.ponder.mechanical_piston_modes.text_2": "블록으로 바뀌지 않게 하거나, 시작지점에서만 바뀌도록 설정할 수 있습니다.",
"create.ponder.mechanical_plough.header": "구조물에서의 쟁기",
"create.ponder.mechanical_plough.text_1": "쟁기가 움직이는 구조물의 일부일 때,",
"create.ponder.mechanical_plough.text_2": "히트박스가 없는 블록을 파괴합니다.",
"create.ponder.mechanical_plough.text_1": "쟁기가 움직이는 구조물의 일부면...",
"create.ponder.mechanical_plough.text_2": "...히트박스가 없는 블록을 파괴합니다.",
"create.ponder.mechanical_plough.text_3": "또, 쟁기는 경작지를 만들 수 있습니다.",
"create.ponder.mechanical_plough.text_4": "...그리고 엔티티를 피해없이 날려보낼 수도 있습니다!",
"create.ponder.mechanical_press.header": "압착기로 아이템 가공하기",
"create.ponder.mechanical_press.text_1": "압착기는 아래에 놓인 아이템을 가공할 수 있습니다.",
"create.ponder.mechanical_press.text_2": "가공할 아이템은 압착기 아래에 떨구거나 아이템 거치대에 올려두어야 합니다.",
"create.ponder.mechanical_press.text_3": "아이템이 벨트에 있으면,",
"create.ponder.mechanical_press.text_4": "압착기가 알아서 아이템 이동을 멈추고 가공합니다.",
"create.ponder.mechanical_press.text_3": "아이템이 벨트에 있으면...",
"create.ponder.mechanical_press.text_4": "...압착기가 알아서 아이템 이동을 멈추고 가공합니다.",
"create.ponder.mechanical_press_compacting.header": "압착기로 아이템 압축하기",
"create.ponder.mechanical_press_compacting.text_1": "대야와 함께 사용해서 아이템을 압축할 수 있습니다.",
"create.ponder.mechanical_press_compacting.text_2": "가능한 조합법은 2x2 / 3x3 조합법을 포함하고, 모드에서 추가된 조합법도 있습니다.",
"create.ponder.mechanical_press_compacting.text_3": "몇몇 조합법은 블레이즈 버너의 열을 요구합니다.",
"create.ponder.mechanical_press_compacting.text_4": "필터 슬롯을 이용해 조합법이 겹치는 것을 방지할 수 있습니다.",
"create.ponder.mechanical_press_compacting.text_4": "필터 슬롯을 이용해 조합법이 겹치는 것을 방지니다.",
"create.ponder.mechanical_pump_flow.header": "펌프를 이용해 액체 옮기기",
"create.ponder.mechanical_pump_flow.text_1": "펌프는 연결된 파이프속 흐름을 관리합니다.",
"create.ponder.mechanical_pump_flow.text_2": "동력을 전달받으면 화살표가 흐름의 방향을 알려줍니다.",
"create.ponder.mechanical_pump_flow.text_3": "화살표 뒤의 파이프는 액체를 뽑아내고,",
"create.ponder.mechanical_pump_flow.text_4": "화살표 앞의 파이프는 액체를 밀어냅니다.",
"create.ponder.mechanical_pump_flow.text_3": "화살표 뒤의 파이프는 액체를 뽑아내고...",
"create.ponder.mechanical_pump_flow.text_4": "...화살표 앞의 파이프는 액체를 밀어냅니다.",
"create.ponder.mechanical_pump_flow.text_5": "동력 방향을 반전시키면 흐름의 방향도 반전됩니다.",
"create.ponder.mechanical_pump_flow.text_6": "렌치로 펌프 방향 자체를 돌릴 수도 있습니다.",
"create.ponder.mechanical_pump_speed.header": "펌프의 처리율",
"create.ponder.mechanical_pump_speed.text_1": "동력 속도와는 상관없이 펌프는 16블록 길이의 파이프까지 영향을 미칩니다.",
"create.ponder.mechanical_pump_speed.text_2": "동력 속도를 높이면 액체가 흐르는 속도가 높아지고,",
"create.ponder.mechanical_pump_speed.text_3": "옮기는 액체의 양도 증가합니다.",
"create.ponder.mechanical_pump_speed.text_2": "동력 속도를 높이면 액체가 흐르는 속도가 높아지고...",
"create.ponder.mechanical_pump_speed.text_3": "...옮기는 액체의 양도 증가합니다.",
"create.ponder.mechanical_pump_speed.text_4": "펌프는 병렬로 설치할 수 있습니다.",
"create.ponder.mechanical_pump_speed.text_5": "펌프 방향을 바꾸어 흐름의 뱡향을 통일할 수 있습니다.",
@ -2132,11 +2132,11 @@
"create.ponder.mechanical_saw_breaker.text_2": "두꺼운 나무를 벨려면, 땅에 붙어있는 마지막 나무 블록을 파괴해야합니다.",
"create.ponder.mechanical_saw_contraption.header": "구조물에서의 톱",
"create.ponder.mechanical_saw_contraption.text_1": "톱이 움직이는 구조물의 일부일 때,",
"create.ponder.mechanical_saw_contraption.text_2": "부딫히는 모든 나무를 벱니다.",
"create.ponder.mechanical_saw_contraption.text_1": "톱이 움직이는 구조물의 일부면...",
"create.ponder.mechanical_saw_contraption.text_2": "...부딫히는 모든 나무를 벱니다.",
"create.ponder.mechanical_saw_processing.header": "톱으로 아이템 가공하기",
"create.ponder.mechanical_saw_processing.text_1": "위를 바라보는 톱은 다양한 아이템을 가공할 수 있습니다.",
"create.ponder.mechanical_saw_processing.text_1": "위를 바라보는 톱은 다양한 아이템을 가공니다.",
"create.ponder.mechanical_saw_processing.text_2": "가공되는 아이템은 언제나 동력의 반대로 움직입니다.",
"create.ponder.mechanical_saw_processing.text_3": "톱은 벨트와 연동이 가능합니다.",
"create.ponder.mechanical_saw_processing.text_4": "재료가 여러 결과물로 가공될 수 있을 때, 필터로 제한할 수 있습니다.",
@ -2164,8 +2164,8 @@
"create.ponder.portable_storage_interface.text_3": "두 번째 인터페이스를 1~2 블록 띄우고 설치하세요.",
"create.ponder.portable_storage_interface.text_4": "서로를 마주칠 때마다, 접속을 시도합니다.",
"create.ponder.portable_storage_interface.text_5": "접속한 상태에서, 블록 상태의 인터페이스는 장치의 모든 보관함과 동일합니다.",
"create.ponder.portable_storage_interface.text_6": "아이템을 넣을 수도 있고,",
"create.ponder.portable_storage_interface.text_7": "장치에서 아이템을 뺄 수도 있습니다.",
"create.ponder.portable_storage_interface.text_6": "아이템을 넣을 수도 있고...",
"create.ponder.portable_storage_interface.text_7": "...장치에서 아이템을 뺄 수도 있습니다.",
"create.ponder.portable_storage_interface.text_8": "일정 시간동안 아이템이 교환되지 않으면, 장치는 움직입니다.",
"create.ponder.portable_fluid_interface.header": "구조물 장치의 액체 교환",
@ -2173,8 +2173,8 @@
"create.ponder.portable_fluid_interface.text_3": "두 번째 인터페이스를 1~2 블록 띄우고 설치하세요.",
"create.ponder.portable_fluid_interface.text_4": "서로를 마주칠 때마다, 접속을 시도합니다.",
"create.ponder.portable_fluid_interface.text_5": "접속한 상태에서, 블록 상태의 인터페이스는 장치의 모든 탱크와 동일합니다.",
"create.ponder.portable_fluid_interface.text_6": "액체를 넣을 수도 있고,",
"create.ponder.portable_fluid_interface.text_7": "장치에서 액체를 뺄 수도 있습니다.",
"create.ponder.portable_fluid_interface.text_6": "액체를 넣을 수도 있고...",
"create.ponder.portable_fluid_interface.text_7": "...장치에서 액체를 뺄 수도 있습니다.",
"create.ponder.portable_fluid_interface.text_8": "일정 시간동안 액체가 교환되지 않으면, 장치는 움직입니다.",
"create.ponder.portable_storage_interface_redstone.header": "레드스톤 설정",
@ -2182,8 +2182,8 @@
"create.ponder.powered_latch.header": "레드스톤 걸쇠 사용하기",
"create.ponder.powered_latch.text_1": "레드스톤 걸쇠는 설정 가능한 레버입니다.",
"create.ponder.powered_latch.text_2": "뒤에서 오는 신호는 걸쇠 신호를 키고,",
"create.ponder.powered_latch.text_3": "옆에서 오는 신호는 걸쇠 신호를 끕니다.",
"create.ponder.powered_latch.text_2": "뒤에서 오는 신호는 걸쇠 신호를 키고...",
"create.ponder.powered_latch.text_3": "...옆에서 오는 신호는 걸쇠 신호를 끕니다.",
"create.ponder.powered_latch.text_4": "레드스톤 걸쇠는 직접 끄고 킬 수도 있습니다.",
"create.ponder.powered_toggle_latch.header": "레드스톤 토글 걸쇠 사용하기",
@ -2192,8 +2192,8 @@
"create.ponder.powered_toggle_latch.text_3": "혹은 끕니다.",
"create.ponder.powered_toggle_latch.text_4": "레드스톤 토글 걸쇠는 직접 끄고 킬 수도 있습니다.",
"create.ponder.pulse_repeater.header": "펄스 리피터 사용하기",
"create.ponder.pulse_repeater.text_1": "펄스 리피터는 어느 레드스톤 신호라도 1틱 신호로 바꿉니다.",
"create.ponder.pulse_repeater.header": "펄스 중계기 사용하기",
"create.ponder.pulse_repeater.text_1": "펄스 중계기는 어느 레드스톤 신호라도 1틱 신호로 바꿉니다.",
"create.ponder.radial_chassis.header": "원형 섀시를 이용해 블록 붙이기",
"create.ponder.radial_chassis.text_1": "원형 섀시는 다른 원형 섀시와 이어집니다.",
@ -2201,8 +2201,8 @@
"create.ponder.radial_chassis.text_3": "원형 섀시의 옆면은 접착할 수 있습니다.",
"create.ponder.radial_chassis.text_4": "한번 더 클릭하여 모든 면을 접착면으로 만들 수 있습니다.",
"create.ponder.radial_chassis.text_5": "빈손으로 웅크리고 우클릭하여 접착제를 없앨 수 있습니다.",
"create.ponder.radial_chassis.text_6": "접착면에 블록이 있으면,",
"create.ponder.radial_chassis.text_7": "해당 층 반지름 안에 있는 모든 블록을 연결합니다.",
"create.ponder.radial_chassis.text_6": "접착면에 블록이 있으면...",
"create.ponder.radial_chassis.text_7": "...해당 층 반지름 안에 있는 모든 블록을 연결합니다.",
"create.ponder.radial_chassis.text_8": "렌치룰 이용하여, 섀시의 부착 반지름을 조절할 수 있습니다.",
"create.ponder.radial_chassis.text_9": "접착면 반지름 밖의 블록은 붙지 않습니다.",
@ -2219,13 +2219,13 @@
"create.ponder.redstone_link.text_6": "맞는 주파수끼리만 레드스톤 링크가 작동합니다.",
"create.ponder.rope_pulley.header": "밧줄 도르래로 구조물 옮기기",
"create.ponder.rope_pulley.text_1": "밧줄 도르래는 동력을 받으면 블록을 수직으로 옮길 수 있습니다.",
"create.ponder.rope_pulley.text_1": "밧줄 도르래는 동력을 받으면 블록을 수직으로 옮니다.",
"create.ponder.rope_pulley.text_2": "방향과 속도는 들어오는 동력에 기반합니다.",
"create.ponder.rope_pulley_attachment.header": "구조물로서의 밧줄 도르래",
"create.ponder.rope_pulley_attachment.text_1": "도르래가 장치에 의해 움직여지면,",
"create.ponder.rope_pulley_attachment.text_2": "도르래에 딸린 구조물도 함께 움직입니다.",
"create.ponder.rope_pulley_attachment.text_3": "다만 도르래는 멈춰있을 떄만 작동할 수 있습니다.",
"create.ponder.rope_pulley_attachment.text_1": "도르래가 장치에 의해 움직여지면...",
"create.ponder.rope_pulley_attachment.text_2": "...도르래에 딸린 구조물도 함께 움직입니다.",
"create.ponder.rope_pulley_attachment.text_3": "다만 도르래는 멈춰있을 때만 작동합니다.",
"create.ponder.rope_pulley_modes.header": "밧줄 도르래의 이동 설정",
"create.ponder.rope_pulley_modes.text_1": "도르래가 움직임을 멈추면, 움직인 구조물은 블록으로 바뀝니다.",
@ -2276,18 +2276,18 @@
"create.ponder.speedometer.text_3": "속도 계측기의 측정값에 따라 비교기가 레드스톤 신호를 내보냅니다.",
"create.ponder.spout_filling.header": "주입기로 아이템에 액체 채우기",
"create.ponder.spout_filling.text_1": "주입기는 아래있는 아이템을 액체를 채울 수 있습니다.",
"create.ponder.spout_filling.text_1": "주입기는 아래있는 아이템을 액체를 채니다.",
"create.ponder.spout_filling.text_2": "주입기 탱크는 직접 건드릴 수 없습니다.",
"create.ponder.spout_filling.text_3": "대신, 파이프로 액체를 공급할 수는 있습니다.",
"create.ponder.spout_filling.text_4": "주입기 아래 아이템 거치대에 아이템을 놓 수 있습니다.",
"create.ponder.spout_filling.text_5": "아이템이 벨트에 있으면,",
"create.ponder.spout_filling.text_6": "주입기가 알아서 아이템 이동을 멈추고 가공합니다.",
"create.ponder.spout_filling.text_4": "주입기 아래 아이템 거치대에 아이템을 놓아, 액체를 채울 수 있습니다.",
"create.ponder.spout_filling.text_5": "아이템이 벨트에 있으면...",
"create.ponder.spout_filling.text_6": "...주입기가 알아서 아이템 이동을 멈추고 가공합니다.",
"create.ponder.stabilized_bearings.header": "베어링 안정화",
"create.ponder.stabilized_bearings.text_1": "베어링이 움직이는 구조물의 일부분이어도,",
"create.ponder.stabilized_bearings.text_2": "방향이 유지됩니다.",
"create.ponder.stabilized_bearings.text_3": "베어링에 블록이 부착되어도,",
"create.ponder.stabilized_bearings.text_4": "부착된 구조물의 방향이 유지됩니다.",
"create.ponder.stabilized_bearings.text_1": "베어링이 움직이는 구조물의 일부분이어도...",
"create.ponder.stabilized_bearings.text_2": "...방향이 유지됩니다.",
"create.ponder.stabilized_bearings.text_3": "베어링에 블록이 부착되어도...",
"create.ponder.stabilized_bearings.text_4": "...부착된 구조물의 방향이 유지됩니다.",
"create.ponder.sticker.header": "부착기를 통한 블록 부착",
"create.ponder.sticker.text_1": "부착기는 레드스톤으로 제어할 수 있습니다.",
@ -2301,10 +2301,10 @@
"create.ponder.stressometer.text_3": "피로도 계측기의 측정값에 따라 비교기가 레드스톤 신호를 내보냅니다.",
"create.ponder.super_glue.header": "강력 접착제로 블록 붙이기",
"create.ponder.super_glue.text_1": "강력 접착제는 두 블록 사이에 사용해 블록을 붙일 수 있습니다.",
"create.ponder.super_glue.text_1": "강력 접착제는 두 블록 사이에 사용해 블록을 붙니다.",
"create.ponder.super_glue.text_2": "장치가 작동할 때, 붙은 블록들은 같이 이동됩니다.",
"create.ponder.super_glue.text_3": "강력 접착제를 다른 손에 들고,",
"create.ponder.super_glue.text_4": "블록을 설치하면 자동으로 블록을 붙일 수 있습니다.",
"create.ponder.super_glue.text_3": "강력 접착제를 다른 손에 들고...",
"create.ponder.super_glue.text_4": "...블록을 설치하면 자동으로 블록을 붙일 수 있습니다.",
"create.ponder.super_glue.text_5": "왼쪽 버튼을 누르면 강력 접착제를 제거할 수 있습니다.",
"create.ponder.valve_handle.header": "밸브 손잡이로 동력 생산하기",
@ -2321,10 +2321,10 @@
"create.ponder.valve_pipe.text_4": "반대 방향으로 동력을 제공하면 밸브가 닫힙니다.",
"create.ponder.water_wheel.header": "물레바퀴로 동력 생산하기",
"create.ponder.water_wheel.text_1": "물레바퀴는 물의 흐름으로부터 동력을 끌어올 수 있습니다.",
"create.ponder.water_wheel.text_1": "물레바퀴는 물의 흐름으로부터 동력을 끌어니다.",
"create.ponder.water_wheel.text_2": "많은 면에 힘이 가해질수록 물레바퀴가 더 빠르게 회전합니다.",
"create.ponder.water_wheel.text_3": "바퀴의 날이 물이 흐르는 방향으로 향하게 된다면,",
"create.ponder.water_wheel.text_4": "회전 속도가 감소하게 됩니다.",
"create.ponder.water_wheel.text_3": "바퀴의 날이 물이 흐르는 방향으로 향하게 된다면...",
"create.ponder.water_wheel.text_4": "...회전 속도가 감소하게 됩니다.",
"create.ponder.weighted_ejector.header": "투척기 사용하기",
"create.ponder.weighted_ejector.text_1": "투척기를 들고 웅크리고 우클릭하면, 발사 지점을 정할 수 있습니다.",
@ -2347,12 +2347,12 @@
"create.ponder.weighted_ejector_tunnel.text_1": "황동 터널과 같이 사용하면 특정 양만큼 아이템을 분할할 수 있습니다.",
"create.ponder.weighted_ejector_tunnel.text_2": "먼저, 황동 터널을 '가까운 곳 선호' 방식으로 변경하여 측면에 아이템을 먼저 출력하게 만드세요.",
"create.ponder.weighted_ejector_tunnel.text_3": "이제, 투척기에 설정량에 따라 아이템을 분할할 수 있습니다.",
"create.ponder.weighted_ejector_tunnel.text_4": "설정량만큼의 아이템이 출력되고,",
"create.ponder.weighted_ejector_tunnel.text_5": "나머지 아이템은 계속 수송됩니다",
"create.ponder.weighted_ejector_tunnel.text_4": "설정량만큼의 아이템이 출력되고...",
"create.ponder.weighted_ejector_tunnel.text_5": "...나머지 아이템은 계속 수송됩니다",
"create.ponder.windmill_source.header": "풍차 베어링으로 동력 생산하기",
"create.ponder.windmill_source.text_1": "풍차 베어링은 부착된 블록을 회전하게 만듭니다.",
"create.ponder.windmill_source.text_2": "날개 블록이 충분히 부착되어야 풍차의 역할을 할 수 있습니다.",
"create.ponder.windmill_source.text_2": "날개 블록이 충분히 부착되어야 풍차의 역할을 니다.",
"create.ponder.windmill_source.text_3": "우클릭하면 풍차 베어링이 동력을 생성합니다.",
"create.ponder.windmill_source.text_4": "날개 수에 따라 회전 속도가 바뀝니다.",
"create.ponder.windmill_source.text_5": "렌치를 들고 스크롤하면 회전 방향을 바꿀 수 있습니다.",
@ -2360,7 +2360,6 @@
"create.ponder.windmill_structure.header": "풍차 구조물",
"create.ponder.windmill_structure.text_1": "최소 8개 이상의 날개 블록이 있는 구조물만 풍차로 사용할 수 있습니다.",
"_": "Thank you for translating Create!"
}

File diff suppressed because it is too large Load diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 476 B