diff --git a/CREDITS.md b/CREDITS.md index 44a64ccdd..2855ab6e5 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -3,7 +3,7 @@ ## Creator of MineClone * davedevils -## Creator of MineClone2 +## Creator of VoxeLibre * Wuzzy ## Maintainers @@ -24,6 +24,8 @@ * SmokeyDope * Faerraven / Michieal * Codiac +* rudzik8 +* teknomunk ## Past Developers * jordan4ibanez @@ -37,7 +39,6 @@ ## Contributors * RandomLegoBrick -* rudzik8 * Code-Sploit * aligator * Rootyjr @@ -129,6 +130,16 @@ * Bakawun * JoseDouglas26 * Zasco +* PrWalterB +* michaljmalinowski +* nixnoxus +* Potiron +* Tuxilio +* Impulse +* Doods +* SOS-Games +* Bram +* qoheniac ## Music * Jordach for the jukebox music compilation from Big Freaking Dig diff --git a/README_locale/README.fr.md b/README_locale/README.fr.md index e5b4c893a..f6bc85eb5 100644 --- a/README_locale/README.fr.md +++ b/README_locale/README.fr.md @@ -1,7 +1,8 @@ # VoxeLibre -Un jeu non-officiel similaire à Minecraft pour Minetest. Forké depuis Mineclone par davedevils. Développé par de nombreuses personnes. Pas développé ni supporté par Mojang AB. +Un jeu inspiré de Minecraft pour Minetest. Forké depuis Mineclone par davedevils. +Développé par de nombreuses personnes, voir CREDITS.md pour une liste complète. -### Gameplay +### Gameplay Vous atterissez dans un monde fait entièrement de cubes et généré aléatoirement. Vous pouvez explorer le monde, miner et construire presque n'importe quel bloc pour créer de nouvelles structures. Vous pouvez choisir de jouer en "mode survie" dans lequel vous devez combattre des monstres et la faim et progresser lentement dans différents aspects du jeu, comme l'extraction de minerai, l'agriculture, la construction de machines et ainsi de suite. Ou alors vous pouvez jouer en "mode créatif" où vous pouvez construire à peu près n'importe quoi instantanément. ### Résumé du Gameplay @@ -21,7 +22,7 @@ Vous atterissez dans un monde fait entièrement de cubes et généré aléatoire ### Commencer * **Frappez un arbre** jusqu'à ce qu'il casse et donne du bois * Placez le **bois dans la grille 2x2** (la "grille de fabrication" de votre menu d'inventaire) et fabriquez 4 planches de bois -* Placer les 4 planches de bois dans la grille 2x2 et **fabriquez un établi** +* Placez les 4 planches de bois dans la grille 2x2 et **fabriquez un établi** * **Faites un clic droit sur l'établi** (icone livre) pour apprendre toutes les recettes possibles * **Fabriquez une pioche de bois** pour miner la pierre * Différents outils minent différentes sortes de blocs. Essayez-les ! @@ -30,10 +31,10 @@ Vous atterissez dans un monde fait entièrement de cubes et généré aléatoire ### Agriculture * Trouvez des graines * Fabriquez une houe -* Faites un clic droit sur la terre ou des blocs similaires avec la houe pour créer des terres agricoles -* Placer des graines sur des terres agricoles et regardez les pousser +* Faites un clic droit sur la terre ou un bloc similaire avec la houe pour créer des terres agricoles +* Placez des graines sur des terres agricoles et regardez les pousser * Récoltez les plantes une fois matûres -* Les terres agricoles proche de l'eau deviennent humides et accélèrent la croissance +* Les terres agricoles proches de l'eau deviennent humides et accélèrent la croissance ### Four * Fabriquez un four @@ -46,7 +47,7 @@ Vous atterissez dans un monde fait entièrement de cubes et généré aléatoire Plus d'aide à propos du jeu, des blocs, objets et plus encore peuvent être trouvés dans le jeu. Vous pouvez accéder à l'aide depuis le menu inventaire. ### Objets spéciaux -Les objets suivants sont intéressants pour le mode Créatif et pour les constructeurs de cartes d'aventure. Ils ne peuvent être obtenus dans le jeu ou dans l'inventaire créatif. +Les objets suivants sont intéressants pour le mode Créatif et pour les constructeurs de cartes d'aventure. Ils ne peuvent être obtenus dans le jeu ou dans l'inventaire créatif. * Barrière : `mcl_core:barrier` @@ -58,29 +59,31 @@ Il n'y a pas de support de VoxeLibre dans les versions développement de Minetes Pour installer VoxeLibre (si ce n'est pas déjà fait), déplacez ce dossier dans le dossier “games” de Minetest. Consultez l'aide de Minetest pour en apprendre plus. -## Liens utiles +## Liens utiles Le dépôt de VoxeLibre est hébergé sur Mesehub. Pour contribuer ou signaler des problèmes, allez là-bas. -* Mesehub : +* Mesehub : * Discord : * YouTube : -* IRC : -* Matrix : -* Reddit : -* Forums Minetest : * ContentDB : * OpenCollective : +* Mastodon : +* Lemmy : +* Espace Matrix : +* Forums Minetest : +* Reddit : +* IRC (peu utilisé) : ## Objectif -* Essentiellement, créer un clone de Minecraft stable, moddable, libre et gratuit basé sur le moteur de jeu Minetest avec des fonctionnalités abouties, utilisable à la fois en mode solo et multijoueur. Actuellement, beaucoup des fonctionnalités de **Minecraft Java Edition** sont déjà implémentées et leur amélioration est prioritaire sur les nouvelles demandes. -* Avec une priorité moindre, implémenter les fonctionnalités des versions **Minecraft + OptiFine** (OptiFine autant que supporté par le moteur Minetest). Cela signifie que les fonctionnalités présentes dans les versions listées sont priorisées. -* Dans l'idéal, créer une expérience performante qui tourne bien sur des ordinateurs à basse performance. Malheureusement, en raison des mécanismes de Minecraft et des limitations du moteur Minetest ainsi que de la petite taille de la communauté de joueurs sur des ordinateurs à basses performances, les optimisations sont difficiles à explorer. +* Créer un jeu stable, performant, moddable et libre inspiré de Minecraft en utilisant le moteur de jeu Minetest, utilisable à la fois en mode solo et multijoueur. +* Actuellement, un grand nombre de fonctionnalités sont déjà implémentées. +L'amélioration des fonctionnalités existantes est toujours la bienvenue. ## Statut de complétion Ce jeu est actuellement au stade **beta**. Il est jouable mais incomplet en fonctionnalités. La rétro-compatibilité n'est pas entièrement garantie, mettre votre monde à jour peut causer de petits bugs. -Si vous voulez utiliser la version de développement de VoxeLibre en production, la branche master est habituellement relativement stable. Les branches de test fusionnent souvent des pull requests expérimentales et doivent être considérées comme moins stable. +Si vous voulez utiliser la version de développement de VoxeLibre en production, la branche master est habituellement relativement stable. Les principales fonctionnalités suivantes sont disponibles : @@ -108,12 +111,12 @@ Les principales fonctionnalités suivantes sont disponibles : * Horloge * Boussole * Éponge -* Bloc de slime +* Bloc de slime * Petites plantes et pousses * Teintures * Bannières * Blocs de décoration : verre, verre teinté, vitres, barres de fer, terre cuites (et couleurs), têtes et plus -* Cadres d'objets +* Cadres d'objets * Juke-boxes * Lits * Menu d'inventaire @@ -122,7 +125,7 @@ Les principales fonctionnalités suivantes sont disponibles : * Livres pour écrire * Commandes * Villages -* L'End +* L'End * et plus ! Les fonctionnalités suivantes sont incomplètes : diff --git a/README_locale/README.zh_TW.md b/README_locale/README.zh_TW.md index bdf370533..47d29cd59 100644 --- a/README_locale/README.zh_TW.md +++ b/README_locale/README.zh_TW.md @@ -1,4 +1,6 @@ -# MineClone 2 +This file is severely out of date. If you can help updating this translation, please reach out to us (contact in README.md - the English version). + +# VoxeLibre 一個非官方的Minetest遊戲,遊玩方式和Minecraft類似。由davedevils從MineClone分拆。 由許多人開發。並非由Mojang Studios開發。 diff --git a/game.conf b/game.conf index 3444c0a87..61cedc596 100644 --- a/game.conf +++ b/game.conf @@ -1,4 +1,4 @@ title = VoxeLibre description = A survival sandbox game. Survive, gather, hunt, build, explore, and do much more. disallowed_mapgens = v6 -version=0.87.0-SNAPSHOT +version=0.88.0-SNAPSHOT diff --git a/mods/CORE/mcl_attached/init.lua b/mods/CORE/mcl_attached/init.lua index c75bc49e0..51ea2b0ae 100644 --- a/mods/CORE/mcl_attached/init.lua +++ b/mods/CORE/mcl_attached/init.lua @@ -94,5 +94,16 @@ function minetest.check_single_for_falling(pos) end end + if get_item_group(node.name, "supported_node_facedir") ~= 0 then + local dir = facedir_to_dir(node.param2) + if dir then + local def = registered_nodes[get_node(vector.add(pos, dir)).name] + if def and def.drawtype == "airlike" then + drop_attached_node(pos) + return true + end + end + end + return false end diff --git a/mods/CORE/mcl_oxidation/init.lua b/mods/CORE/mcl_oxidation/init.lua index 201d0260a..6f938e075 100644 --- a/mods/CORE/mcl_oxidation/init.lua +++ b/mods/CORE/mcl_oxidation/init.lua @@ -1,3 +1,15 @@ +mcl_oxidize = {} + +function mcl_oxidize.oxidize(pos, node, node_def) + local node = node or minetest.get_node(pos) + local node_def = node_def or registered_nodes[node.name] + node.name = node_def._mcl_oxidized_variant + if not node.name then return end + + minetest.swap_node(pos, node) +end +local oxidize = mcl_oxidize + minetest.register_abm({ label = "Oxidatize Nodes", nodenames = { "group:oxidizable" }, @@ -6,7 +18,9 @@ minetest.register_abm({ action = function(pos, node) local def = minetest.registered_nodes[node.name] if def and def._mcl_oxidized_variant then - minetest.set_node(pos, { name = def._mcl_oxidized_variant, param2 = node.param2 }) + local hook = def._on_oxidize + if hook then hook(pos, node, def) end + oxidize(pos, node, def) end end, }) diff --git a/mods/ENTITIES/mcl_dripping/init.lua b/mods/ENTITIES/mcl_dripping/init.lua index 5a96e65c4..c366b3682 100644 --- a/mods/ENTITIES/mcl_dripping/init.lua +++ b/mods/ENTITIES/mcl_dripping/init.lua @@ -6,7 +6,6 @@ local math = math mcl_dripping = {} - ---@param pos Vector ---@param liquid string ---@param sound SimpleSoundSpec diff --git a/mods/ENTITIES/mobs_mc/stalker.lua b/mods/ENTITIES/mobs_mc/stalker.lua index 0c9655006..69fad180a 100644 --- a/mods/ENTITIES/mobs_mc/stalker.lua +++ b/mods/ENTITIES/mobs_mc/stalker.lua @@ -32,7 +32,7 @@ local function get_texture(self) end end end - if not texture then + if not texture or texture == "" then texture = "vl_stalker_default.png" end texture = "([combine:16x24:0,0=" .. texture .. ":0,16=" .. texture .. texture_suff diff --git a/mods/ENVIRONMENT/mcl_raids/init.lua b/mods/ENVIRONMENT/mcl_raids/init.lua index 1b762b0e9..d0c10eb20 100644 --- a/mods/ENVIRONMENT/mcl_raids/init.lua +++ b/mods/ENVIRONMENT/mcl_raids/init.lua @@ -105,8 +105,6 @@ function mcl_raids.promote_to_raidcaptain(c) -- object if cmi_cause and cmi_cause.type == "punch" and cmi_cause.puncher:is_player() then awards.unlock(cmi_cause.puncher:get_player_name(), "mcl:voluntary_exile") local lv = mcl_potions.get_effect_level(cmi_cause.puncher, "bad_omen") - if not lv then lv = 0 - else lv = lv.factor end lv = math.max(5,lv + 1) mcl_potions.give_effect_by_level("bad_omen", cmi_cause.puncher, lv, 6000) end @@ -311,7 +309,7 @@ mcl_events.register_event("raid",{ self.health_max = 1 self.health = 0 local lv = mcl_potions.get_effect_level(minetest.get_player_by_name(self.player), "bad_omen") - if lv and lv.factor and lv.factor > 1 then self.max_stage = 6 end + if lv > 1 then self.max_stage = 6 end end, cond_progress = function(self) if not is_player_near(self) then return false end diff --git a/mods/HUD/mcl_credits/people.lua b/mods/HUD/mcl_credits/people.lua index 9defedb48..cbf6e569e 100644 --- a/mods/HUD/mcl_credits/people.lua +++ b/mods/HUD/mcl_credits/people.lua @@ -26,6 +26,8 @@ return { "SmokeyDope", "Faerraven / Michieal", "Codiac", + "rudzik8", + "teknomunk", }}, {S("Past Developers"), 0xF84355, { "jordan4ibanez", @@ -39,7 +41,6 @@ return { }}, {S("Contributors"), 0x52FF00, { "RandomLegoBrick", - "rudzik8", "Code-Sploit", "aligator", "Rootyjr", @@ -131,6 +132,16 @@ return { "Bakawun", "JoseDouglas26", "Zasco", + "PrWalterB", + "michaljmalinowski", + "nixnoxus", + "Potiron", + "Tuxilio", + "Impulse", + "Doods", + "SOS-Games", + "Bram", + "qoheniac", }}, {S("Music"), 0xA60014, { "Jordach for the jukebox music compilation from Big Freaking Dig", diff --git a/mods/ITEMS/REDSTONE/mesecons_button/init.lua b/mods/ITEMS/REDSTONE/mesecons_button/init.lua index 8e2159045..b0177a23c 100644 --- a/mods/ITEMS/REDSTONE/mesecons_button/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_button/init.lua @@ -207,10 +207,12 @@ function mesecon.register_button(basename, description, texture, recipeitem, sou _mcl_hardness = 0.5, }) - minetest.register_craft({ - output = "mesecons_button:button_"..basename.."_off", - recipe = {{ recipeitem }}, - }) + if recipeitem then + minetest.register_craft({ + output = "mesecons_button:button_"..basename.."_off", + recipe = {{ recipeitem }}, + }) + end if minetest.get_modpath("mesecons_mvps") then mesecon.register_mvps_unsticky("mesecons_button:button_"..basename.."_off") diff --git a/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua b/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua index a4043fb5f..6fa56e1fd 100644 --- a/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua +++ b/mods/ITEMS/REDSTONE/mesecons_pressureplates/init.lua @@ -208,11 +208,13 @@ function mesecon.register_pressure_plate(basename, description, textures_off, te _doc_items_create_entry = false, }) - minetest.register_craft({ - output = basename .. "_off", - recipe = recipe, - }) - + if recipe then + minetest.register_craft({ + output = basename .. "_off", + recipe = recipe, + }) + end + if minetest.get_modpath("doc") then doc.add_entry_alias("nodes", basename .. "_off", "nodes", basename .. "_on") end diff --git a/mods/ITEMS/mcl_copper/README.md b/mods/ITEMS/mcl_copper/README.md index fa12cd5c7..78d3f4971 100644 --- a/mods/ITEMS/mcl_copper/README.md +++ b/mods/ITEMS/mcl_copper/README.md @@ -1,7 +1,5 @@ # VoxeLibre Copper -### by NO11 +### by NO11, JoseDouglas26 and teknomunk Adds copper ore, blocks and items. - -![screenshot](./screenshot.png) diff --git a/mods/ITEMS/mcl_copper/crafting.lua b/mods/ITEMS/mcl_copper/crafting.lua index 9b0976d3a..62d56420a 100644 --- a/mods/ITEMS/mcl_copper/crafting.lua +++ b/mods/ITEMS/mcl_copper/crafting.lua @@ -1,3 +1,213 @@ +--- This function determines the format of the crafting recipe in the crafting grid based on the +--- block name. Each block must have its own crafting format for the given material(s). +--- Some materials in the recipe can be pre-defined (e.g. copper bulbs have fixed materials +--- (blaze stick and redstone) and materials that vary according to the material parameter). +--- material can be nil if the recipe uses copper ingots. +---@param name string +---@param material string|nil +---@return table +local function get_shape(name, material) + if not material then + material = "mcl_copper:copper_ingot" + end + + if name == "cut" then -- Shape of cut copper blocks. + return { + {material, material}, + {material, material} + } + elseif name == "grate" then -- Shape of copper grates. + return { + {"", material, ""}, + {material, "", material}, + {"", material, ""} + } + elseif name == "chiseled" then -- Shape of chiseled copper blocks. + return { + {material}, + {material}, + } + elseif name == "bulb_off" then -- Shape of copper bulbs (with fixed materials). + return { + {"", material, ""}, + {material, "mcl_mobitems:blaze_rod", material}, + {"", "mesecons:redstone", ""} + } + elseif name == "mcl_copper:door" then + return { + {material, material}, + {material, material}, + {material, material} + } + elseif name:find("trapdoor") then + return { + {material, material}, + {material, material} + } + elseif name:find("button_copper_off") then + return {material} + elseif name:find("pressure_plate_copper_off") then + return { + {material, material} + } + elseif name:find("bars_copper_flat") then + return { + {material, material, material}, + {material, material, material} + } + else + return {} + end +end + +--- This function is responsible for recording the recipes for each block (including oxidized variants). +--- If the recipe's main material is the Block of Copper, the material parameter must be passed as "block". +--- If the main material is another block (as in the case of the chiseled copper block), the material +--- parameter must be a table containing 8 itemstrings of the blocks used in the recipes. +--- Special fixed materials (such as copper bulbs) must be registered to the crafting grid format in the +--- get_shape function. +---@param name string +---@param material string|table +---@param amount integer +local function register_variants_recipes(name, material, amount) + local names + local materials = {} + -- Handling the inconsistency of the original itemstrings. + if name ~= "cut" then + names = { + name, "waxed_"..name, + name.."_exposed", "waxed_"..name.."_exposed", + name.."_weathered", "waxed_"..name.."_weathered", + name.."_oxidized", "waxed_"..name.."_oxidized" + } + else + names = { + "block_"..name, "waxed_block_"..name, + "block_exposed_"..name, "waxed_block_exposed_"..name, + "block_weathered_"..name, "waxed_block_weathered_"..name, + "block_oxidized_"..name, "waxed_block_oxidized_"..name + } + end + -- Checking the type of material. + if type(material) == "string" then + materials = { + "mcl_copper:"..material, "mcl_copper:waxed_"..material, + "mcl_copper:"..material.."_exposed", "mcl_copper:waxed_"..material.."_exposed", + "mcl_copper:"..material.."_weathered", "mcl_copper:waxed_"..material.."_weathered", + "mcl_copper:"..material.."_oxidized", "mcl_copper:waxed_"..material.."_oxidized" + } + else + materials = material + end + -- Registering each recipe according to the materials blocks made from copper and its oxidized and + -- waxed variations. + for i = 1, 8 do + minetest.register_craft({ + output = "mcl_copper:"..names[i].." "..tostring(amount), + recipe = get_shape(name, materials[i]) + }) + end +end +-- Using the function above to record the recipes for cut copper blocks, copper grates and copper bulbs. +register_variants_recipes("cut", "block", 4) + +register_variants_recipes("grate", "block", 4) + +register_variants_recipes("bulb_off", "block", 4) + +--- Function used to register recipes that uses copper ingots as material. +---@param name string +---@param amount integer +local function register_ingot_recipes(name, amount) + local type = "shaped" + + if name:find("button") then + type = "shapeless" + end + + minetest.register_craft({ + output = name.." "..tostring(amount), + recipe = get_shape(name, nil), + type = type + }) +end +-- Blocks made with copper ingots. +local made_of_ingots = { + {"xpanes:bars_copper_flat", 16}, + {"mesecons_button:button_copper_off", 1}, + {"mcl_copper:door", 3}, + {"mcl_copper:pressure_plate_copper_off", 1}, + {"mcl_copper:trapdoor", 2} +} +-- Registering crafting recipes for blocks made with copper ingot. +for i = 1, #made_of_ingots do + register_ingot_recipes(made_of_ingots[i][1], made_of_ingots[i][2]) +end + +-- Chiseled copper uses slabs as the main material. +local chiseled_materials = { + "mcl_stairs:slab_copper_cut", + "mcl_stairs:slab_waxed_copper_cut", + "mcl_stairs:slab_copper_exposed_cut", + "mcl_stairs:slab_waxed_copper_exposed_cut", + "mcl_stairs:slab_copper_weathered_cut", + "mcl_stairs:slab_waxed_copper_weathered_cut", + "mcl_stairs:slab_copper_oxidized_cut", + "mcl_stairs:slab_waxed_copper_oxidized_cut" +} +-- Registering recipes for chiseled copper blocks using the slabs. +register_variants_recipes("chiseled", chiseled_materials, 1) +-- List of blocks that can be waxed. +local waxable_blocks = { + "block", + "block_cut", + "grate", + "chiseled", + "bulb_off", + "block_exposed", + "block_exposed_cut", + "grate_exposed", + "chiseled_exposed", + "bulb_off_exposed", + "block_weathered", + "block_weathered_cut", + "grate_weathered", + "chiseled_weathered", + "bulb_off_weathered", + "block_oxidized", + "block_oxidized_cut", + "grate_oxidized", + "chiseled_oxidized", + "bulb_off_oxidized" +} +-- Registering the waxing recipes for each block listed above. +for _, w in ipairs(waxable_blocks) do + minetest.register_craft({ + output = "mcl_copper:waxed_"..w, + recipe = { + { "mcl_copper:"..w, "mcl_honey:honeycomb" }, + }, + }) +end +-- List of blocks that can be cutted on stonecutter. +local cuttable_blocks = { + "block", + "waxed_block", + "block_exposed", + "waxed_block_exposed", + "block_weathered", + "waxed_block_weathered", + "block_oxidized", + "waxed_block_oxidized" +} +-- Registering stonecutter recipes using the blocks listed above. +for _, c in ipairs(cuttable_blocks) do + mcl_stonecutter.register_recipe("mcl_copper:"..c, "mcl_copper:"..c.."_cut", 4) + --mcl_stonecutter.register_recipe("mcl_copper:"..c, "mcl_copper:"..c:gsub("block", "grate"), 4) + --mcl_stonecutter.register_recipe("mcl_copper:"..c, "mcl_copper:"..c:gsub("block", "chiseled"), 4) + --mcl_stonecutter.register_recipe("mcl_copper:"..c.."_cut", "mcl_copper:"..c:gsub("block", "chiseled")) +end +-- Registering blocks and items specific recipes. minetest.register_craft({ output = "mcl_copper:block_raw", recipe = { @@ -16,55 +226,6 @@ minetest.register_craft({ }, }) -minetest.register_craft({ - output = "mcl_copper:block_cut 4", - recipe = { - { "mcl_copper:block", "mcl_copper:block" }, - { "mcl_copper:block", "mcl_copper:block" }, - }, -}) - -minetest.register_craft({ - output = "mcl_copper:block_exposed_cut 4", - recipe = { - { "mcl_copper:block_exposed", "mcl_copper:block_exposed" }, - { "mcl_copper:block_exposed", "mcl_copper:block_exposed" }, - }, -}) - -minetest.register_craft({ - output = "mcl_copper:block_oxidized_cut 4", - recipe = { - { "mcl_copper:block_oxidized", "mcl_copper:block_oxidized" }, - { "mcl_copper:block_oxidized", "mcl_copper:block_oxidized" }, - }, -}) - -minetest.register_craft({ - output = "mcl_copper:block_weathered_cut 4", - recipe = { - { "mcl_copper:block_weathered", "mcl_copper:block_weathered" }, - { "mcl_copper:block_weathered", "mcl_copper:block_weathered" }, - }, -}) - -local waxable_blocks = { "block", "block_cut", "block_exposed", "block_exposed_cut", "block_weathered", "block_weathered_cut", "block_oxidized", "block_oxidized_cut" } - -for _, w in ipairs(waxable_blocks) do - minetest.register_craft({ - output = "mcl_copper:waxed_"..w, - recipe = { - { "mcl_copper:"..w, "mcl_honey:honeycomb" }, - }, - }) -end - -local cuttable_blocks = { "block", "waxed_block", "block_exposed", "waxed_block_exposed", "block_weathered", "waxed_block_weathered", "block_oxidized", "waxed_block_oxidized" } - -for _, c in ipairs(cuttable_blocks) do - mcl_stonecutter.register_recipe("mcl_copper:"..c, "mcl_copper:"..c.."_cut", 4) -end - minetest.register_craft({ output = "mcl_copper:copper_ingot 9", recipe = { diff --git a/mods/ITEMS/mcl_copper/descriptions.lua b/mods/ITEMS/mcl_copper/descriptions.lua new file mode 100644 index 000000000..4cde2ee07 --- /dev/null +++ b/mods/ITEMS/mcl_copper/descriptions.lua @@ -0,0 +1,202 @@ +local S = minetest.get_translator("mcl_copper") +-- Copper-related blocks descriptions, indexed by its names and selected by its position on the +-- oxidation chain. +mcl_copper.copper_descs = { + ["block"] = { + S("Block of Copper"), S("Waxed Block of Copper"), + S("Exposed Copper"), S("Waxed Exposed Copper"), + S("Weathered Copper"), S("Waxed Weathered Copper"), + S("Oxidized Copper"), S("Waxed Oxidized Copper") + }, + ["cut"] = { + S("Cut Copper"), S("Waxed Cut Copper"), + S("Exposed Cut Copper"), S("Waxed Exposed Cut Copper"), + S("Weathered Cut Copper"), S("Waxed Weathered Cut Copper"), + S("Oxidized Cut Copper"), S("Waxed Oxidized Cut Copper") + }, + ["grate"] = { + S("Copper Grate"), S("Waxed Copper Grate"), + S("Exposed Copper Grate"), S("Waxed Exposed Copper Grate"), + S("Weathered Copper Grate"), S("Waxed Weathered Copper Grate"), + S("Oxidized Copper Grate"), S("Waxed Oxidized Copper Grate") + }, + ["chiseled"] = { + S("Chiseled Copper"), S("Waxed Chiseled Copper"), + S("Exposed Chiseled Copper"), S("Waxed Exposed Chiseled Copper"), + S("Weathered Chiseled Copper"), S("Waxed Weathered Chiseled Copper"), + S("Oxidized Chiseled Copper"), S("Waxed Oxidized Chiseled Copper") + }, + ["bulb_off"] = { + S("Copper Bulb"), S("Waxed Copper Bulb"), + S("Exposed Copper Bulb"), S("Waxed Exposed Copper Bulb"), + S("Weathered Copper Bulb"), S("Waxed Weathered Copper Bulb"), + S("Oxidized Copper Bulb"), S("Waxed Oxidized Copper Bulb") + }, + ["bulb_on"] = { + S("Copper Bulb").." "..S("(Lit)"), + S("Waxed Copper Bulb").." "..S("(Lit)"), + S("Exposed Copper Bulb").." "..S("(Lit)"), + S("Waxed Exposed Copper Bulb").." "..S("(Lit)"), + S("Weathered Copper Bulb").." "..S("(Lit)"), + S("Waxed Weathered Copper Bulb").." "..S("(Lit)"), + S("Oxidized Copper Bulb").." "..S("(Lit)"), + S("Waxed Oxidized Copper Bulb").." "..S("(Lit)") + }, + ["bulb_powered_off"] = { + S("Copper Bulb").." "..S("(Powered)"), + S("Waxed Copper Bulb").." "..S("(Powered)"), + S("Exposed Copper Bulb").." "..S("(Powered)"), + S("Waxed Exposed Copper Bulb").." "..S("(Powered)"), + S("Weathered Copper Bulb").." "..S("(Powered)"), + S("Waxed Weathered Copper Bulb").." "..S("(Powered)"), + S("Oxidized Copper Bulb").." "..S("(Powered)"), + S("Waxed Oxidized Copper Bulb").." "..S("(Powered)") + }, + ["bulb_powered_on"] = { + S("Copper Bulb").." "..S("(Lit and Powered)"), + S("Waxed Copper Bulb").." "..S("(Lit and Powered)"), + S("Exposed Copper Bulb").." "..S("(Lit and Powered)"), + S("Waxed Exposed Copper Bulb").." "..S("(Lit and Powered)"), + S("Weathered Copper Bulb").." "..S("(Lit and Powered)"), + S("Waxed Weathered Copper Bulb").." "..S("(Lit and Powered)"), + S("Oxidized Copper Bulb").." "..S("(Lit and Powered)"), + S("Waxed Oxidized Copper Bulb").." "..S("(Lit and Powered)") + } +} +-- All longdescs for copper-related blocks. Waxed variants share the same description with its unwaxed +-- variant. Like the descriptions, they are indexed by the block name. +mcl_copper.copper_longdescs = { + ["block"] = { + S("A block of copper is mostly a decorative block."), + S("Exposed copper is a decorative block."), + S("Weathered copper is a decorative block."), + S("Oxidized copper is a decorative block.") + }, + ["cut"] = { + S("Cut copper is a decorative block."), + S("Exposed cut copper is a decorative block."), + S("Weathered cut copper is a decorative block."), + S("Oxidized cut copper is a decorative block.") + }, + ["grate"] = { + S("Copper grate is a decorative block."), + S("Exposed copper grate is a decorative block."), + S("Weathered copper grate is a decorative block."), + S("Oxidized copper grate is a decorative block.") + }, + ["chiseled"] = { + S("Chiseled copper is a decorative block."), + S("Exposed chiseled copper is a decorative block."), + S("Weathered chiseled copper is a decorative block."), + S("Oxidized chiseled copper is a decorative block.") + }, + ["bulb_off"] = { + S("Copper bulb is a decorative block and a light source when lited."), + S("Exposed copper bulb is a decorative block and a light source when lited."), + S("Weathered copper bulb is a decorative block and a light source when lited."), + S("Oxidized copper bulb is a decorative block and a light source when lited.") + }, + ["bulb_on"] = { + S("Copper bulb is a decorative block and a light source."), + S("Exposed copper bulb is a decorative block and a light source."), + S("Weathered copper bulb is a decorative block and a light source."), + S("Oxidized copper bulb is a decorative block and a light source.") + }, + ["bulb_powered_off"] = { + S("Copper bulb is a decorative block and a light source when lited."), + S("Exposed copper bulb is a decorative block and a light source when lited."), + S("Weathered copper bulb is a decorative block and a light source when lited."), + S("Oxidized copper bulb is a decorative block and a light source when lited.") + }, + ["bulb_powered_on"] = { + S("Copper bulb is a decorative block and a light source."), + S("Exposed copper bulb is a decorative block and a light source."), + S("Weathered copper bulb is a decorative block and a light source."), + S("Oxidized copper bulb is a decorative block and a light source.") + } +} +-- Subnames for copper stairs and slabs. For now, just indexed for the cut copper blocks. +mcl_copper.stairs_subnames = { + ["cut"] = { + "copper_cut", "waxed_copper_cut", + "copper_exposed_cut", "waxed_copper_exposed_cut", + "copper_weathered_cut", "waxed_copper_weathered_cut", + "copper_oxidized_cut", "waxed_copper_oxidized_cut" + } +} +-- Descriptions for the mcl_stairs blocks. Indexed by the name of oxidation stage of its material. +mcl_copper.stairs_descs = { + ["copper_cut"] = { + S("Slab of Cut Copper"), + S("Double Slab of Cut Copper"), + S("Stairs of Cut Copper"), + }, + ["waxed_copper_cut"] = { + S("Waxed Slab of Cut Copper"), + S("Waxed Double Slab of Cut Copper"), + S("Waxed Stairs of Cut Copper"), + }, + ["copper_exposed_cut"] = { + S("Slab of Exposed Cut Copper"), + S("Double Slab of Exposed Cut Copper"), + S("Stairs of Exposed Cut Copper") + }, + ["waxed_copper_exposed_cut"] = { + S("Waxed Slab of Exposed Cut Copper"), + S("Waxed Double Slab of Exposed Cut Copper"), + S("Waxed Stairs of Exposed Cut Copper") + }, + ["copper_weathered_cut"] = { + S("Slab of Weathered Cut Copper"), + S("Double Slab of Weathered Cut Copper"), + S("Stairs of Weathered Cut Copper") + }, + ["waxed_copper_weathered_cut"] = { + S("Waxed Slab of Weathered Cut Copper"), + S("Waxed Double Slab of Weathered Cut Copper"), + S("Waxed Stairs of Weathered Cut Copper") + }, + ["copper_oxidized_cut"] = { + S("Slab of Oxidized Cut Copper"), + S("Double Slab of Oxidized Cut Copper"), + S("Stairs of Oxidized Cut Copper") + }, + ["waxed_copper_oxidized_cut"] = { + S("Waxed Slab of Oxidized Cut Copper"), + S("Waxed Double Slab of Oxidized Cut Copper"), + S("Waxed Stairs of Oxidized Cut Copper") + } +} +-- Description for the mcl_doors blocks. Selected by its position on the inner table. +-- {door_description, trapdoor_description}. +mcl_copper.doors_descs = { + {S("Copper Door"), S("Copper Trapdoor")}, + {S("Waxed Copper Door"), S("Waxed Copper Trapdoor")}, + {S("Exposed Copper Door"), S("Exposed Copper Trapdoor")}, + {S("Waxed Exposed Copper Door"), S("Waxed Exposed Copper Trapdoor")}, + {S("Weathered Copper Door"), S("Weathered Copper Trapdoor")}, + {S("Waxed Weathered Copper Door"), S("Waxed Weathered Copper Trapdoor")}, + {S("Oxidized Copper Door"), S("Oxidized Copper Trapdoor")}, + {S("Waxed Oxidized Copper Door"), S("Waxed Oxidized Copper Trapdoor")} +} +-- Description for copper buttons, selected by its position on the table. +mcl_copper.button_descs = { + S("Copper Button"), S("Waxed Copper Button"), + S("Exposed Copper Button"), S("Waxed Exposed Copper Button"), + S("Weathered Copper Button"), S("Waxed Weathered Copper Button"), + S("Oxidized Copper Button"), S("Waxed Oxidized Copper Button") +} +-- Description for copper pressure plates, selected by its position on the table. +mcl_copper.pp_descs = { + S("Copper Pressure Plate"), S("Waxed Copper Pressure Plate"), + S("Exposed Copper Pressure Plate"), S("Waxed Exposed Copper Pressure Plate"), + S("Weathered Copper Pressure Plate"), S("Waxed Weathered Copper Pressure Plate"), + S("Oxidized Copper Pressure Plate"), S("Waxed Oxidized Copper Pressure Plate") +} +-- Description for copper bars, selected by its position on the table. +mcl_copper.bars_descs = { + S("Copper Bars"), S("Waxed Copper Bars"), + S("Exposed Copper Bars"), S("Waxed Exposed Copper Bars"), + S("Weathered Copper Bars"), S("Waxed Weathered Copper Bars"), + S("Oxidized Copper Bars"), S("Waxed Oxidized Copper Bars") +} diff --git a/mods/ITEMS/mcl_copper/functions.lua b/mods/ITEMS/mcl_copper/functions.lua index bd289f60f..d8ebad071 100644 --- a/mods/ITEMS/mcl_copper/functions.lua +++ b/mods/ITEMS/mcl_copper/functions.lua @@ -1,132 +1,208 @@ -local stair_oxidization = { - { "cut", "exposed_cut" }, - { "cut_inner", "exposed_cut_inner" }, - { "cut_outer", "exposed_cut_outer" }, - { "exposed_cut", "weathered_cut" }, - { "exposed_cut_inner", "weathered_cut_inner" }, - { "exposed_cut_outer", "weathered_cut_outer" }, - { "weathered_cut", "oxidized_cut" }, - { "weathered_cut_inner", "oxidized_cut_inner" }, - { "weathered_cut_outer", "oxidized_cut_outer" } +mcl_copper.subnodes = { + ["bars_copper"] = {"", "flat"}, + ["button_copper"] = {"off"}, + ["door"] = {"b_1", "b_2", "b_3", "b_4", "t_1", "t_2", "t_3", "t_4"}, + ["pressure_plate_copper"] = {"off"}, + ["slab_copper"] = {"", "double", "top"}, + ["stair_copper"] = {"", "inner", "outer"}, + ["trapdoor"] = {"", "open"} } -local slab_oxidization = { - { "cut", "exposed_cut" }, - { "cut_top", "exposed_cut_top" }, - { "cut_double", "exposed_cut_double" }, - { "exposed_cut", "weathered_cut" }, - { "exposed_cut_top", "weathered_cut_top" }, - { "exposed_cut_double", "weathered_cut_double" }, - { "weathered_cut", "oxidized_cut" }, - { "weathered_cut_top", "oxidized_cut_top" }, - { "weathered_cut_double", "oxidized_cut_double" }, -} +-- Functions used to strip wax from the other half of the door +local function strip(pos, node, node_def) + local node = node or minetest.get_node(pos) + local node_def = node_def or minetest.registered_nodes[node.name] + if not node_def then return end + if not node_def._mcl_stripped_variant then return end -local def -local def_variant_oxidized -local def_variant_waxed -local def_variant_scraped - --- set up oxidized and waxed variants. -for i = 1, #stair_oxidization do - -- stairs - def = "mcl_stairs:stair_copper_" .. stair_oxidization[i][1] - def_variant_oxidized = "mcl_stairs:stair_copper_" .. stair_oxidization[i][2] - minetest.override_item(def, { _mcl_oxidized_variant = def_variant_oxidized }) - - def_variant_waxed = "mcl_stairs:stair_waxed_copper_" .. stair_oxidization[i][1] - minetest.override_item(def, { _mcl_waxed_variant = def_variant_waxed }) - - -- slabs - def = "mcl_stairs:slab_copper_" .. slab_oxidization[i][1] - def_variant_oxidized = "mcl_stairs:slab_copper_" .. slab_oxidization[i][2] - minetest.override_item(def, { _mcl_oxidized_variant = def_variant_oxidized }) - - def_variant_waxed = "mcl_stairs:slab_waxed_copper_" .. slab_oxidization[i][1] - minetest.override_item(def, { _mcl_waxed_variant = def_variant_waxed }) + node.name = node_def._mcl_stripped_variant + minetest.swap_node(pos, node) +end +local function strip_door_top(pos, node, node_def) + strip(vector.offset(pos, 0, 1, 0)) +end +local function strip_door_bottom(pos, node, node_def) + strip(vector.offset(pos, 0, -1, 0)) end --- Set up scraped variants. -for i = 1, #stair_oxidization do - -- does both stairs and slabs. - if i > 3 then - def = "mcl_stairs:stair_copper_" .. stair_oxidization[i][1] - def_variant_scraped = "mcl_stairs:stair_copper_" .. stair_oxidization[i - 3][1] - minetest.override_item(def, { _mcl_stripped_variant = def_variant_scraped }) +-- Functions used to wax the other half of the door +local function wax(pos, node, node_def) + local node = node or minetest.get_node(pos) + local node_def = node_def or minetest.registered_nodes[node.name] + if not node_def then return end + if not node_def._mcl_waxed_variant then return end - def = "mcl_stairs:slab_copper_" .. slab_oxidization[i][1] - def_variant_scraped = "mcl_stairs:slab_copper_" .. slab_oxidization[i - 3][1] - minetest.override_item(def, { _mcl_stripped_variant = def_variant_scraped }) + node.name = node_def._mcl_waxed_variant + minetest.swap_node(pos, node) +end +local function wax_door_top(pos, node, node_def) + wax(vector.offset(pos, 0, 1, 0)) +end +local function wax_door_bottom(pos, node, node_def) + wax(vector.offset(pos, 0, -1, 0)) +end + +-- Functions used to oxidize the other half of the door. +local function oxidize_door_top(pos, node, node_def) + mcl_oxidize.oxidize(vector.offset(pos, 0, 1, 0)) +end +local function oxidize_door_bottom(pos, node, node_def) + mcl_oxidize.oxidize(vector.offset(pos, 0, 1, 0)) +end + +--- Function used to define the oxidized and stripped variants of copper-related blocks that +--- are registered by APIs external to mcl_copper (stairs, slabs, doors and trapdoors). "mod_name" +--- should be the name of the mod the blocks belong to. "subname" must be the subname of the block that +--- will receive the changes (see registered subnames below). "decay_chain" should be a table containing +--- the list of subnames of the block oxidation chain (without the waxed variants subnames). +---@param mod_name string +---@param subname string +---@param decay_chain table +local function register_oxidation_and_scraping(mod_name, subname, decay_chain) + local item, oxidized_item + -- Handling special decay chain names. + if mod_name == "mcl_stairs" then + for i = 1, 4 do + decay_chain[i] = decay_chain[i].."_cut" + end end - if i > 6 then - def = "mcl_stairs:stair_copper_" .. stair_oxidization[i][2] - def_variant_scraped = "mcl_stairs:stair_copper_" .. stair_oxidization[i][1] - minetest.override_item(def, { _mcl_stripped_variant = def_variant_scraped }) - def = "mcl_stairs:slab_copper_" .. slab_oxidization[i][2] - def_variant_scraped = "mcl_stairs:slab_copper_" .. slab_oxidization[i][1] - minetest.override_item(def, { _mcl_stripped_variant = def_variant_scraped }) + for i = 1, #decay_chain - 1 do + item = mod_name..":"..subname..decay_chain[i] + oxidized_item = mod_name..":"..subname..decay_chain[i + 1] + + for _, subnode in pairs(mcl_copper.subnodes[subname]) do + if subnode == "" then + minetest.override_item(item, {_mcl_oxidized_variant = oxidized_item}) + minetest.override_item(oxidized_item, {_mcl_stripped_variant = item}) + else + if subname == "door" then + if subnode:find("b_") then + minetest.override_item(item.."_"..subnode, + { + _mcl_oxidized_variant = oxidized_item.."_"..subnode, + _mcl_on_oxidize = oxidize_door_top, + } + ) + minetest.override_item(oxidized_item.."_"..subnode, + { + _mcl_stripped_variant = item.."_"..subnode, + _mcl_on_strip = strip_door_top, + } + ) + else + minetest.override_item(item.."_"..subnode, + { + _mcl_oxidized_variant = oxidized_item.."_"..subnode, + _mcl_on_oxidize = oxidize_door_bottom, + } + ) + minetest.override_item(oxidized_item.."_"..subnode, + { + _mcl_stripped_variant = item.."_"..subnode, + _mcl_on_strip = strip_door_bottom, + } + ) + end + else + minetest.override_item(item.."_"..subnode, + {_mcl_oxidized_variant = oxidized_item.."_"..subnode} + ) + minetest.override_item(oxidized_item.."_"..subnode, + {_mcl_stripped_variant = item.."_"..subnode} + ) + end + end + end end end --- Set up scraped variants for waxed stairs. -local waxed_variants = { - { "waxed_copper_cut", "copper_cut" }, - { "waxed_copper_exposed_cut", "copper_exposed_cut" }, - { "waxed_copper_weathered_cut", "copper_weathered_cut" }, - { "waxed_copper_oxidized_cut", "copper_oxidized_cut" }, -} +--- Function used to define the waxed and stripped variants (for the waxed variants) of copper-related +--- blocks that are registered by APIs external to mcl_copper (stairs, slabs, doors and trapdoors). +--- "mod_name" should be the name of the mod the blocks belong to. "subname" must be the subname of the +--- block that will receive the changes (see registered subnames below). "decay_chain" should be a table +--- containing the list of subnames of the block oxidation chain (without the waxed variants subnames). +local function register_waxing_and_scraping(mod_name, subname, decay_chain) + local waxed_item, unwaxed_item + -- Handling special decay chain names. + if mod_name == "mcl_stairs" then + for i = 1, 4 do + decay_chain[i] = decay_chain[i].."_cut" + end + end -for i = 1, #waxed_variants do - -- stairs - def = "mcl_stairs:stair_" .. waxed_variants[i][1] - def_variant_scraped = "mcl_stairs:stair_" .. waxed_variants[i][2] - minetest.override_item(def, { _mcl_stripped_variant = def_variant_scraped }) - - def = "mcl_stairs:stair_" .. waxed_variants[i][1] .. "_inner" - def_variant_scraped = "mcl_stairs:stair_" .. waxed_variants[i][2] .. "_inner" - minetest.override_item(def, { _mcl_stripped_variant = def_variant_scraped }) - - def = "mcl_stairs:stair_" .. waxed_variants[i][1] .. "_outer" - def_variant_scraped = "mcl_stairs:stair_" .. waxed_variants[i][2] .. "_outer" - minetest.override_item(def, { _mcl_stripped_variant = def_variant_scraped }) - - -- slab - def = "mcl_stairs:slab_" .. waxed_variants[i][1] - def_variant_scraped = "mcl_stairs:slab_" .. waxed_variants[i][2] - minetest.override_item(def, { _mcl_stripped_variant = def_variant_scraped }) - - def = "mcl_stairs:slab_" .. waxed_variants[i][1] .. "_top" - def_variant_scraped = "mcl_stairs:slab_" .. waxed_variants[i][2] .. "_top" - minetest.override_item(def, { _mcl_stripped_variant = def_variant_scraped }) - - def = "mcl_stairs:slab_" .. waxed_variants[i][1] .. "_double" - def_variant_scraped = "mcl_stairs:slab_" .. waxed_variants[i][2] .. "_double" - minetest.override_item(def, { _mcl_stripped_variant = def_variant_scraped }) + for i = 1, #decay_chain do + waxed_item = mod_name..":"..subname..decay_chain[i] + unwaxed_item = mod_name..":"..subname:gsub("waxed_", "")..decay_chain[i] + for _, subnode in pairs(mcl_copper.subnodes[subname]) do + if subnode == "" then + minetest.override_item(waxed_item, {_mcl_stripped_variant = unwaxed_item}) + minetest.override_item(unwaxed_item, {_mcl_waxed_variant = waxed_item}) + else + if subname == "door" then + if subnode:find("b_") then + minetest.override_item(waxed_item.."_"..subnode, + { + _mcl_stripped_variant = unwaxed_item.."_"..subnode, + _mcl_on_strip = strip_door_top, + } + ) + minetest.override_item(unwaxed_item.."_"..subnode, + { + _mcl_waxed_variant = waxed_item.."_"..subnode, + _mcl_on_wax = wax_door_top, + } + ) + else + minetest.override_item(waxed_item.."_"..subnode, + { + _mcl_stripped_variant = unwaxed_item.."_"..subnode, + _mcl_on_strip = strip_door_bottom, + } + ) + minetest.override_item(unwaxed_item.."_"..subnode, + { + _mcl_waxed_variant = waxed_item.."_"..subnode, + _mcl_on_wax = wax_door_bottom, + } + ) + end + else + minetest.override_item(waxed_item.."_"..subnode, + {_mcl_stripped_variant = unwaxed_item.."_"..subnode} + ) + minetest.override_item(unwaxed_item.."_"..subnode, + {_mcl_waxed_variant = waxed_item.."_"..subnode} + ) + end + end + end + end end - --- Waxed Oxidized Slabs and Stairs -local oxidized_slabs = { - "oxidized_cut", - "oxidized_cut_double", - "oxidized_cut_top" +-- Decay chain for almost all blocks. +local decay_chain = { + "", + "_exposed", + "_weathered", + "_oxidized" } - -for i = 1, #oxidized_slabs do - def = "mcl_stairs:slab_copper_" .. oxidized_slabs[i] - def_variant_waxed = "mcl_stairs:slab_waxed_copper_" .. oxidized_slabs[i] - minetest.override_item(def, { _mcl_waxed_variant = def_variant_waxed }) -end - -local oxidized_stairs = { - "oxidized_cut", - "oxidized_cut_inner", - "oxidized_cut_outer" +-- Blocks per mod. {mod_name, unwaxed (first on decay chain), waxed (first waxed on decay chain)} +local mods_and_blocks = { + {"xpanes", "bars_copper", "bars_waxed_copper"}, + {"mesecons_button", "button_copper", "button_waxed_copper"}, + {"mcl_copper", "door", "waxed_door"}, + {"mcl_copper", "pressure_plate_copper", "pressure_plate_waxed_copper"}, + {"mcl_stairs", "slab_copper", "slab_waxed_copper"}, + {"mcl_stairs", "stair_copper", "stair_waxed_copper"}, + {"mcl_copper", "trapdoor", "waxed_trapdoor"} } +-- Defining variants for almost all blocks registered by other API's. +for _, mod_and_blocks in pairs(mods_and_blocks) do + local mod = mod_and_blocks[1] + local oxidize_and_scrap = mod_and_blocks[2] + local wax_and_scrap = mod_and_blocks[3] -for i = 1, #oxidized_stairs do - def = "mcl_stairs:stair_copper_" .. oxidized_stairs[i] - def_variant_waxed = "mcl_stairs:stair_waxed_copper_" .. oxidized_stairs[i] - minetest.override_item(def, { _mcl_waxed_variant = def_variant_waxed }) + register_oxidation_and_scraping(mod, oxidize_and_scrap, decay_chain) + register_waxing_and_scraping(mod, wax_and_scrap, decay_chain) end diff --git a/mods/ITEMS/mcl_copper/init.lua b/mods/ITEMS/mcl_copper/init.lua index 01ece6d54..f960d913b 100644 --- a/mods/ITEMS/mcl_copper/init.lua +++ b/mods/ITEMS/mcl_copper/init.lua @@ -1,8 +1,15 @@ -local path = minetest.get_modpath("mcl_copper") +local path = minetest.get_modpath("mcl_copper") -- Getting mcl_copper mod path -mcl_copper = {} -- initialize global variable. +mcl_copper = {} -- Initializing global variable mcl_copper. +-- Loading the file containing the descriptions and longdescs of each block +dofile(path .. "/descriptions.lua") +-- Loading the file that registers all blocks provided by this mod dofile(path .. "/nodes.lua") +-- Loading the file that registers craftitems dofile(path .. "/items.lua") +-- Loading the file that registers the blocks crafting recipes dofile(path .. "/crafting.lua") +-- Loading the file that handles oxidized, waxed and stripped variants for blocks that are registered +-- in other mods and normally do not have these variants. dofile(path .. "/functions.lua") diff --git a/mods/ITEMS/mcl_copper/locale/mcl_copper.de.tr b/mods/ITEMS/mcl_copper/locale/mcl_copper.de.tr index cc2290e1e..7f80c1a80 100644 --- a/mods/ITEMS/mcl_copper/locale/mcl_copper.de.tr +++ b/mods/ITEMS/mcl_copper/locale/mcl_copper.de.tr @@ -1,37 +1,140 @@ # textdomain: mcl_copper -A block of copper is mostly a decorative block.=Ein Kupferblock wird meistens als dekorativer Block verwendet. -A block used for compact raw copper storage.=Ein Block für die kompakte Lagerung von Rohkupfer. Block of Copper=Kupferblock -Block of Raw Copper=Rohkupferblock -Copper Ingot=Kupfer Barren -Copper Ore=Kupfererz -Cut copper is a decorative block.=Ein Geschnittener Kupferblock ist ein dekorativer Block. -Cut Copper=Geschnittener Kupferblock -Double Slab of Cut Copper=Doppelte Geschnittene Kupferstufe -Double Slab of Exposed Cut Copper=Doppelte Angelaufene Geschnittene Kupferstufe -Double Slab of Oxidized Cut Copper=Doppelte Oxidierte Geschnittene Kupferstufe -Double Slab of Weathered Cut Copper=Doppelte Verwitterte Geschnittene Kupferstufe -Exposed copper is a decorative block.=Ein Angelaufener Kupferblock ist ein dekorativer Block. +Waxed Block of Copper= Exposed Copper=Angelaufener Kupferblock -Exposed cut copper is a decorative block.=Ein Angelaufener geschnittener Kupferblock ist ein dekorativer Block. -Exposed Cut Copper=Angelaufener geschnittener Kupferblock -Molten Raw Copper. It is used to craft blocks.=Geschmolzenes Rohkupfer. Es wird verwendet, um Blöcke herzustellen. -Oxidized copper is a decorative block.=Ein Oxidierter Kupferblockist ist ein dekorativer Block. -Oxidized Copper=Oxidierter Kupferblock -Oxidized cut copper is a decorative block.=Ein Oxidierter geschnittener Kupferblock ist ein dekorativer Block. -Oxidized Cut Copper=Oxidierter geschnittener Kupferblock -Raw Copper. Mine a Copper Ore to get it.=Bauen sie ein Kupfererz ab, um es zu erhalten. -Raw Copper=Rohkupfer -Slab of Cut Copper=Geschnittene Kupferstufe -Slab of Exposed Cut Copper=Angelaufene Geschnittene Kupferstufe -Slab of Oxidized Cut Copper=Oxidierte Geschnittene Kupferstufe -Slab of Weathered Cut Copper=Verwitterte Geschnittene Kupferstufe -Some copper contained in stone, it is pretty common and can be found below sea level.=Stein, in dem etwas Kupfer enthalten ist. Es ist ziemlich häufig und kann unter dem Meeresspiegel gefunden werden. -Stairs of Cut Copper=Geschnittene Kupfertreppe -Stairs of Exposed Cut Copper=Angelaufene Geschnittene Kupfertreppe -Stairs of Oxidized Cut Copper=Oxidierte Geschnittene Kupfertreppe -Stairs of Weathered Cut Copper=Verwitterte Geschnittene Kupfertreppe -Weathered copper is a decorative block.=Ein Verwitterter Kupferblock ist ein dekorativer Block. +Waxed Exposed Copper= Weathered Copper=Verwitterter Kupferblock -Weathered cut copper is a decorative block.=Ein Verwitterter geschnittener Kupferblock ist ein dekorativer Block. +Waxed Weathered Copper= +Oxidized Copper=Oxidierter Kupferblock +Waxed Oxidized Copper= +Cut Copper=Geschnittener Kupferblock +Waxed Cut Copper= +Exposed Cut Copper=Angelaufener geschnittener Kupferblock +Waxed Exposed Cut Copper= Weathered Cut Copper=Verwitterter geschnittener Kupferblock +Waxed Weathered Cut Copper= +Oxidized Cut Copper=Oxidierter geschnittener Kupferblock +Waxed Oxidized Cut Copper= +Copper Grate= +Waxed Copper Grate= +Exposed Copper Grate= +Waxed Exposed Copper Grate= +Weathered Copper Grate= +Waxed Weathered Copper Grate= +Oxidized Copper Grate= +Waxed Oxidized Copper Grate= +Chiseled Copper= +Waxed Chiseled Copper= +Exposed Chiseled Copper= +Waxed Exposed Chiseled Copper= +Weathered Chiseled Copper= +Waxed Weathered Chiseled Copper= +Oxidized Chiseled Copper= +Waxed Oxidized Chiseled Copper= +Copper Bulb= +Waxed Copper Bulb= +Exposed Copper Bulb= +Waxed Exposed Copper Bulb= +Weathered Copper Bulb= +Waxed Weathered Copper Bulb= +Oxidized Copper Bulb= +Waxed Oxidized Copper Bulb= +(Lit)= +(Powered)= +(Lit and Powered)= +A block of copper is mostly a decorative block.=Ein Kupferblock wird meistens als dekorativer Block verwendet. +Exposed copper is a decorative block.=Ein Angelaufener Kupferblock ist ein dekorativer Block. +Weathered copper is a decorative block.=Ein Verwitterter Kupferblock ist ein dekorativer Block. +Oxidized copper is a decorative block.=Ein Oxidierter Kupferblockist ist ein dekorativer Block. +Cut copper is a decorative block.=Ein Geschnittener Kupferblock ist ein dekorativer Block. +Exposed cut copper is a decorative block.=Ein Angelaufener geschnittener Kupferblock ist ein dekorativer Block. +Weathered cut copper is a decorative block.=Ein Verwitterter geschnittener Kupferblock ist ein dekorativer Block. +Oxidized cut copper is a decorative block.=Ein Oxidierter geschnittener Kupferblock ist ein dekorativer Block. +Copper grate is a decorative block.= +Exposed copper grate is a decorative block.= +Weathered copper grate is a decorative block.= +Oxidized copper grate is a decorative block.= +Chiseled copper is a decorative block.= +Exposed chiseled copper is a decorative block.= +Weathered chiseled copper is a decorative block.= +Oxidized chiseled copper is a decorative block.= +Copper bulb is a decorative block and a light source when lited.= +Exposed copper bulb is a decorative block and a light source when lited.= +Weathered copper bulb is a decorative block and a light source when lited.= +Oxidized copper bulb is a decorative block and a light source when lited.= +Copper bulb is a decorative block and a light source.= +Exposed copper bulb is a decorative block and a light source.= +Weathered copper bulb is a decorative block and a light source.= +Oxidized copper bulb is a decorative block and a light source.= +Slab of Cut Copper=Geschnittene Kupferstufe +Double Slab of Cut Copper=Doppelte Geschnittene Kupferstufe +Stairs of Cut Copper=Geschnittene Kupfertreppe +Waxed Slab of Cut Copper= +Waxed Double Slab of Cut Copper= +Waxed Stairs of Cut Copper= +Slab of Exposed Cut Copper=Angelaufene Geschnittene Kupferstufe +Double Slab of Exposed Cut Copper=Doppelte Angelaufene Geschnittene Kupferstufe +Stairs of Exposed Cut Copper=Angelaufene Geschnittene Kupfertreppe +Waxed Slab of Exposed Cut Copper= +Waxed Double Slab of Exposed Cut Copper= +Waxed Stairs of Exposed Cut Copper= +Slab of Weathered Cut Copper=Verwitterte Geschnittene Kupferstufe +Double Slab of Weathered Cut Copper=Doppelte Verwitterte Geschnittene Kupferstufe +Stairs of Weathered Cut Copper=Verwitterte Geschnittene Kupfertreppe +Waxed Slab of Weathered Cut Copper= +Waxed Double Slab of Weathered Cut Copper= +Waxed Stairs of Weathered Cut Copper= +Slab of Oxidized Cut Copper=Oxidierte Geschnittene Kupferstufe +Double Slab of Oxidized Cut Copper=Doppelte Oxidierte Geschnittene Kupferstufe +Stairs of Oxidized Cut Copper=Oxidierte Geschnittene Kupfertreppe +Waxed Slab of Oxidized Cut Copper= +Waxed Double Slab of Oxidized Cut Copper= +Waxed Stairs of Oxidized Cut Copper= +Copper Door= +Copper Trapdoor= +Waxed Copper Door= +Waxed Copper Trapdoor= +Exposed Copper Door= +Exposed Copper Trapdoor= +Waxed Exposed Copper Door= +Waxed Exposed Copper Trapdoor= +Weathered Copper Door= +Weathered Copper Trapdoor= +Waxed Weathered Copper Door= +Waxed Weathered Copper Trapdoor= +Oxidized Copper Door= +Oxidized Copper Trapdoor= +Waxed Oxidized Copper Door= +Waxed Oxidized Copper Trapdoor= +Copper Button= +Waxed Copper Button= +Exposed Copper Button= +Waxed Exposed Copper Button= +Weathered Copper Button= +Waxed Weathered Copper Button= +Oxidized Copper Button= +Waxed Oxidized Copper Button= +Copper Pressure Plate= +Waxed Copper Pressure Plate= +Exposed Copper Pressure Plate= +Waxed Exposed Copper Pressure Plate= +Weathered Copper Pressure Plate= +Waxed Weathered Copper Pressure Plate= +Oxidized Copper Pressure Plate= +Waxed Oxidized Copper Pressure Plate= +Copper Bars= +Waxed Copper Bars= +Exposed Copper Bars= +Waxed Exposed Copper Bars= +Weathered Copper Bars= +Waxed Weathered Copper Bars= +Oxidized Copper Bars= +Waxed Oxidized Copper Bars= +Copper Ingot=Kupfer Barren +Molten Raw Copper. It is used to craft blocks.=Geschmolzenes Rohkupfer. Es wird verwendet, um Blöcke herzustellen. +Raw Copper=Rohkupfer +Raw Copper. Mine a Copper Ore to get it.=Bauen sie ein Kupfererz ab, um es zu erhalten. +Copper Ore=Kupfererz +Some copper contained in stone, it is pretty common and can be found below sea level.=Stein, in dem etwas Kupfer enthalten ist. Es ist ziemlich häufig und kann unter dem Meeresspiegel gefunden werden. +Block of Raw Copper=Rohkupferblock +A block used for compact raw copper storage.=Ein Block für die kompakte Lagerung von Rohkupfer. diff --git a/mods/ITEMS/mcl_copper/locale/mcl_copper.fr.tr b/mods/ITEMS/mcl_copper/locale/mcl_copper.fr.tr index a2fb94c36..5225ba2da 100644 --- a/mods/ITEMS/mcl_copper/locale/mcl_copper.fr.tr +++ b/mods/ITEMS/mcl_copper/locale/mcl_copper.fr.tr @@ -1,57 +1,140 @@ # textdomain: mcl_copper -A block of copper is mostly a decorative block.=Le bloc de cuivre est surtout un bloc décoratif. -A block used for compact raw copper storage.=Un bloc utilisé pour le stockage compact de cuivre brut. Block of Copper=Bloc de cuivre Waxed Block of Copper=Bloc de cuivre ciré -Block of Raw Copper=Bloc de cuivre brut -Copper Ingot=Lingot de cuivre -Copper Ore=Minerai de cuivre -Cut copper is a decorative block.=Le cuivre taillé est un bloc décoratif. -Cut Copper=Cuivre taillé -Waxed Cut Copper=Cuivre taillé ciré -Double Slab of Cut Copper=Double dalle de cuivre taillé -Double Slab of Exposed Cut Copper=Double dalle de cuivre taillé exposé -Double Slab of Oxidized Cut Copper=Double dalle de cuivre taillé oxydé -Double Slab of Weathered Cut Copper=Double dalle de cuivre taillé érodé -Waxed Double Slab of Cut Copper=Double dalle de cuivre taillé ciré -Waxed Double Slab of Exposed Cut Copper=Double dalle de cuivre taillé exposé ciré -Waxed Double Slab of Oxidized Cut Copper=Double dalle de cuivre taillé oxydé ciré -Waxed Double Slab of Weathered Cut Copper=Double dalle de cuivre taillé érodé ciré -Exposed copper is a decorative block.=Le cuivre exposé est un bloc décoratif. Exposed Copper=Cuivre exposé Waxed Exposed Copper=Cuivre exposé ciré -Exposed cut copper is a decorative block.=Le cuivre taillé exposé est un bloc décoratif. -Exposed Cut Copper=Cuivre taillé exposé -Waxed Exposed Cut Copper=Cuivre taillé exposé ciré -Molten Raw Copper. It is used to craft blocks.=Cuivre brut fondu. Utilisé pour fabriquer des blocs. -Oxidized copper is a decorative block.=Le cuivre oxydé est un bloc décoratif. -Oxidized Copper=Cuivre oxydé -Waxed Oxidized Copper=Cuivre oxydé ciré -Oxidized cut copper is a decorative block.=Le cuivre taillé oxydé est un bloc décoratif. -Oxidized Cut Copper=Cuivre taillé oxydé -Waxed Oxidized Cut Copper=Cuivre taillé oxydé ciré -Raw Copper. Mine a Copper Ore to get it.=Cuivre brut. Creuser dans du minerai de cuivre pour l'obtenir. -Raw Copper=Cuivre brut -Slab of Cut Copper=Dalle de cuivre taillé -Slab of Exposed Cut Copper=Dalle de cuivre taillé exposé -Slab of Oxidized Cut Copper=Dalle de cuivre taillé oxydé -Slab of Weathered Cut Copper=Dalle de cuivre taillé érodé -Waxed Slab of Cut Copper=Dalle de cuivre taillé ciré -Waxed Slab of Exposed Cut Copper=Dalle de cuivre taillé exposé ciré -Waxed Slab of Oxidized Cut Copper=Dalle de cuivre taillé oxydé ciré -Waxed Slab of Weathered Cut Copper=Dalle de cuivre taillé érodé ciré -Some copper contained in stone, it is pretty common and can be found below sea level.=Un peu de cuivre se trouve dans la pierre, il est plutôt répandu et peut être trouvé sous le niveau de la mer. -Stairs of Cut Copper=Escalier de cuivre taillé -Stairs of Exposed Cut Copper=Escalier de cuivre taillé exposé -Stairs of Oxidized Cut Copper=Escalier de cuivre taillé oxydé -Stairs of Weathered Cut Copper=Escalier de cuivre taillé érodé -Waxed Stairs of Cut Copper=Escalier de cuivre taillé ciré -Waxed Stairs of Exposed Cut Copper=Escalier de cuivre taillé exposé ciré -Waxed Stairs of Oxidized Cut Copper=Escalier de cuivre taillé oxydé ciré -Waxed Stairs of Weathered Cut Copper=Escalier de cuivre taillé érodé ciré -Weathered copper is a decorative block.=Le cuivre érodé est un bloc décoratif. Weathered Copper=Cuivre érodé Waxed Weathered Copper=Cuivre érodé ciré -Weathered cut copper is a decorative block.=Le cuivre taillé érodé est un bloc décoratif. +Oxidized Copper=Cuivre oxydé +Waxed Oxidized Copper=Cuivre oxydé ciré +Cut Copper=Cuivre taillé +Waxed Cut Copper=Cuivre taillé ciré +Exposed Cut Copper=Cuivre taillé exposé +Waxed Exposed Cut Copper=Cuivre taillé exposé ciré Weathered Cut Copper=Cuivre taillé érodé Waxed Weathered Cut Copper=Cuivre taillé érodé ciré +Oxidized Cut Copper=Cuivre taillé oxydé +Waxed Oxidized Cut Copper=Cuivre taillé oxydé ciré +Copper Grate= +Waxed Copper Grate= +Exposed Copper Grate= +Waxed Exposed Copper Grate= +Weathered Copper Grate= +Waxed Weathered Copper Grate= +Oxidized Copper Grate= +Waxed Oxidized Copper Grate= +Chiseled Copper= +Waxed Chiseled Copper= +Exposed Chiseled Copper= +Waxed Exposed Chiseled Copper= +Weathered Chiseled Copper= +Waxed Weathered Chiseled Copper= +Oxidized Chiseled Copper= +Waxed Oxidized Chiseled Copper= +Copper Bulb= +Waxed Copper Bulb= +Exposed Copper Bulb= +Waxed Exposed Copper Bulb= +Weathered Copper Bulb= +Waxed Weathered Copper Bulb= +Oxidized Copper Bulb= +Waxed Oxidized Copper Bulb= +(Lit)= +(Powered)= +(Lit and Powered)= +A block of copper is mostly a decorative block.=Le bloc de cuivre est surtout un bloc décoratif. +Exposed copper is a decorative block.=Le cuivre exposé est un bloc décoratif. +Weathered copper is a decorative block.=Le cuivre érodé est un bloc décoratif. +Oxidized copper is a decorative block.=Le cuivre oxydé est un bloc décoratif. +Cut copper is a decorative block.=Le cuivre taillé est un bloc décoratif. +Exposed cut copper is a decorative block.=Le cuivre taillé exposé est un bloc décoratif. +Weathered cut copper is a decorative block.=Le cuivre taillé érodé est un bloc décoratif. +Oxidized cut copper is a decorative block.=Le cuivre taillé oxydé est un bloc décoratif. +Copper grate is a decorative block.= +Exposed copper grate is a decorative block.= +Weathered copper grate is a decorative block.= +Oxidized copper grate is a decorative block.= +Chiseled copper is a decorative block.= +Exposed chiseled copper is a decorative block.= +Weathered chiseled copper is a decorative block.= +Oxidized chiseled copper is a decorative block.= +Copper bulb is a decorative block and a light source when lited.= +Exposed copper bulb is a decorative block and a light source when lited.= +Weathered copper bulb is a decorative block and a light source when lited.= +Oxidized copper bulb is a decorative block and a light source when lited.= +Copper bulb is a decorative block and a light source.= +Exposed copper bulb is a decorative block and a light source.= +Weathered copper bulb is a decorative block and a light source.= +Oxidized copper bulb is a decorative block and a light source.= +Slab of Cut Copper=Dalle de cuivre taillé +Double Slab of Cut Copper=Double dalle de cuivre taillé +Stairs of Cut Copper=Escalier de cuivre taillé +Waxed Slab of Cut Copper=Dalle de cuivre taillé ciré +Waxed Double Slab of Cut Copper=Double dalle de cuivre taillé ciré +Waxed Stairs of Cut Copper=Escalier de cuivre taillé ciré +Slab of Exposed Cut Copper=Dalle de cuivre taillé exposé +Double Slab of Exposed Cut Copper=Double dalle de cuivre taillé exposé +Stairs of Exposed Cut Copper=Escalier de cuivre taillé exposé +Waxed Slab of Exposed Cut Copper=Dalle de cuivre taillé exposé ciré +Waxed Double Slab of Exposed Cut Copper=Double dalle de cuivre taillé exposé ciré +Waxed Stairs of Exposed Cut Copper=Escalier de cuivre taillé exposé ciré +Slab of Weathered Cut Copper=Dalle de cuivre taillé érodé +Double Slab of Weathered Cut Copper=Double dalle de cuivre taillé érodé +Stairs of Weathered Cut Copper=Escalier de cuivre taillé érodé +Waxed Slab of Weathered Cut Copper=Dalle de cuivre taillé érodé ciré +Waxed Double Slab of Weathered Cut Copper=Double dalle de cuivre taillé érodé ciré +Waxed Stairs of Weathered Cut Copper=Escalier de cuivre taillé érodé ciré +Slab of Oxidized Cut Copper=Dalle de cuivre taillé oxydé +Double Slab of Oxidized Cut Copper=Double dalle de cuivre taillé oxydé +Stairs of Oxidized Cut Copper=Escalier de cuivre taillé oxydé +Waxed Slab of Oxidized Cut Copper=Dalle de cuivre taillé oxydé ciré +Waxed Double Slab of Oxidized Cut Copper=Double dalle de cuivre taillé oxydé ciré +Waxed Stairs of Oxidized Cut Copper=Escalier de cuivre taillé oxydé ciré +Copper Door= +Copper Trapdoor= +Waxed Copper Door= +Waxed Copper Trapdoor= +Exposed Copper Door= +Exposed Copper Trapdoor= +Waxed Exposed Copper Door= +Waxed Exposed Copper Trapdoor= +Weathered Copper Door= +Weathered Copper Trapdoor= +Waxed Weathered Copper Door= +Waxed Weathered Copper Trapdoor= +Oxidized Copper Door= +Oxidized Copper Trapdoor= +Waxed Oxidized Copper Door= +Waxed Oxidized Copper Trapdoor= +Copper Button= +Waxed Copper Button= +Exposed Copper Button= +Waxed Exposed Copper Button= +Weathered Copper Button= +Waxed Weathered Copper Button= +Oxidized Copper Button= +Waxed Oxidized Copper Button= +Copper Pressure Plate= +Waxed Copper Pressure Plate= +Exposed Copper Pressure Plate= +Waxed Exposed Copper Pressure Plate= +Weathered Copper Pressure Plate= +Waxed Weathered Copper Pressure Plate= +Oxidized Copper Pressure Plate= +Waxed Oxidized Copper Pressure Plate= +Copper Bars= +Waxed Copper Bars= +Exposed Copper Bars= +Waxed Exposed Copper Bars= +Weathered Copper Bars= +Waxed Weathered Copper Bars= +Oxidized Copper Bars= +Waxed Oxidized Copper Bars= +Copper Ingot=Lingot de cuivre +Molten Raw Copper. It is used to craft blocks.=Cuivre brut fondu. Utilisé pour fabriquer des blocs. +Raw Copper=Cuivre brut +Raw Copper. Mine a Copper Ore to get it.=Cuivre brut. Creuser dans du minerai de cuivre pour l'obtenir. +Copper Ore=Minerai de cuivre +Some copper contained in stone, it is pretty common and can be found below sea level.=Un peu de cuivre se trouve dans la pierre, il est plutôt répandu et peut être trouvé sous le niveau de la mer. +Block of Raw Copper=Bloc de cuivre brut +A block used for compact raw copper storage.=Un bloc utilisé pour le stockage compact de cuivre brut. diff --git a/mods/ITEMS/mcl_copper/locale/mcl_copper.ja.tr b/mods/ITEMS/mcl_copper/locale/mcl_copper.ja.tr index f6f204e78..9b0831167 100644 --- a/mods/ITEMS/mcl_copper/locale/mcl_copper.ja.tr +++ b/mods/ITEMS/mcl_copper/locale/mcl_copper.ja.tr @@ -1,57 +1,140 @@ # textdomain: mcl_copper -A block of copper is mostly a decorative block.=銅ブロックは、そのほとんどが装飾ブロックです。 -A block used for compact raw copper storage.=銅の粗鉱をコンパクトに保管するのに使えるブロックです。 Block of Copper=銅ブロック Waxed Block of Copper=錆止め済み銅ブロック -Block of Raw Copper=銅の粗鉱ブロック -Copper Ingot=銅インゴット -Copper Ore=銅鉱石 -Cut copper is a decorative block.=溝入り銅は、装飾ブロックです。 -Cut Copper=溝入り銅 -Waxed Cut Copper=錆止め済み溝入り銅 -Double Slab of Cut Copper=溝入り銅の2重スラブ -Double Slab of Exposed Cut Copper=少し酸化した溝入り銅の2重スラブ -Double Slab of Oxidized Cut Copper=殆ど酸化した溝入り銅の2重スラブ -Double Slab of Weathered Cut Copper=半ば酸化した溝入り銅の2重スラブ -Waxed Double Slab of Cut Copper=錆止め済み溝入り銅の2重スラブ -Waxed Double Slab of Exposed Cut Copper=少し酸化した錆止め済み溝入り銅の2重スラブ -Waxed Double Slab of Oxidized Cut Copper=殆ど酸化した錆止め済み溝入り銅の2重スラブ -Waxed Double Slab of Weathered Cut Copper=半ば酸化した錆止め済み溝入り銅の2重スラブ -Exposed copper is a decorative block.=少し酸化した銅は、装飾ブロックです。 Exposed Copper=少し酸化した銅 Waxed Exposed Copper=少し酸化した錆止め済み銅 -Exposed cut copper is a decorative block.=少し酸化した溝入り銅は、装飾ブロックです。 -Exposed Cut Copper=少し酸化した溝入り銅 -Waxed Exposed Cut Copper=少し酸化した錆止め済み溝入り銅 -Molten Raw Copper. It is used to craft blocks.=溶けた未処理の銅。ブロックのクラフトに使われます。 -Oxidized copper is a decorative block.=殆ど酸化した銅は、装飾ブロックです。 -Oxidized Copper=殆ど酸化した銅 -Waxed Oxidized Copper=殆ど酸化した錆止め済み銅 -Oxidized cut copper is a decorative block.=殆ど酸化した溝入り銅は、装飾ブロックです。 -Oxidized Cut Copper=殆ど酸化した溝入り銅 -Waxed Oxidized Cut Copper=殆ど酸化した錆止め済み溝入り銅 -Raw Copper. Mine a Copper Ore to get it.=未処理の銅。銅鉱石を採掘すると手に入ります。 -Raw Copper=銅の粗鉱 -Slab of Cut Copper=溝入り銅のスラブ -Slab of Exposed Cut Copper=少し酸化した溝入り銅のスラブ -Slab of Oxidized Cut Copper=殆ど酸化した溝入り銅のスラブ -Slab of Weathered Cut Copper=半ば酸化した溝入り銅のスラブ -Waxed Slab of Cut Copper=錆止め済み溝入り銅のスラブ -Waxed Slab of Exposed Cut Copper=少し酸化した錆止め済み溝入り銅のスラブ -Waxed Slab of Oxidized Cut Copper=殆ど酸化した錆止め済み溝入り銅のスラブ -Waxed Slab of Weathered Cut Copper=半ば酸化した錆止め済み溝入り銅のスラブ -Some copper contained in stone, it is pretty common and can be found below sea level.=石に含まれる銅は ごく一般的で、海面下の高さで見られます。 -Stairs of Cut Copper=溝入り銅の階段 -Stairs of Exposed Cut Copper=少し酸化した溝入り銅の階段 -Stairs of Oxidized Cut Copper=殆ど酸化した溝入り銅の階段 -Stairs of Weathered Cut Copper=半ば酸化した溝入り銅の階段 -Waxed Stairs of Cut Copper=錆止め済み溝入り銅の階段 -Waxed Stairs of Exposed Cut Copper=少し酸化した錆止め済み溝入り銅の階段 -Waxed Stairs of Oxidized Cut Copper=殆ど酸化した錆止め済み溝入り銅の階段 -Waxed Stairs of Weathered Cut Copper=半ば酸化した錆止め済み溝入り銅の階段 -Weathered copper is a decorative block.=半ば酸化した銅は、装飾ブロックです。 Weathered Copper=半ば酸化した銅 Waxed Weathered Copper=半ば酸化した錆止め済み銅 -Weathered cut copper is a decorative block.=半ば酸化した溝入り銅は、装飾ブロックです。 +Oxidized Copper=殆ど酸化した銅 +Waxed Oxidized Copper=殆ど酸化した錆止め済み銅 +Cut Copper=溝入り銅 +Waxed Cut Copper=錆止め済み溝入り銅 +Exposed Cut Copper=少し酸化した溝入り銅 +Waxed Exposed Cut Copper=少し酸化した錆止め済み溝入り銅 Weathered Cut Copper=半ば酸化した溝入り銅 Waxed Weathered Cut Copper=半ば酸化した錆止め済み溝入り銅 +Oxidized Cut Copper=殆ど酸化した溝入り銅 +Waxed Oxidized Cut Copper=殆ど酸化した錆止め済み溝入り銅 +Copper Grate= +Waxed Copper Grate= +Exposed Copper Grate= +Waxed Exposed Copper Grate= +Weathered Copper Grate= +Waxed Weathered Copper Grate= +Oxidized Copper Grate= +Waxed Oxidized Copper Grate= +Chiseled Copper= +Waxed Chiseled Copper= +Exposed Chiseled Copper= +Waxed Exposed Chiseled Copper= +Weathered Chiseled Copper= +Waxed Weathered Chiseled Copper= +Oxidized Chiseled Copper= +Waxed Oxidized Chiseled Copper= +Copper Bulb= +Waxed Copper Bulb= +Exposed Copper Bulb= +Waxed Exposed Copper Bulb= +Weathered Copper Bulb= +Waxed Weathered Copper Bulb= +Oxidized Copper Bulb= +Waxed Oxidized Copper Bulb= +(Lit)= +(Powered)= +(Lit and Powered)= +A block of copper is mostly a decorative block.=銅ブロックは、そのほとんどが装飾ブロックです。 +Exposed copper is a decorative block.=少し酸化した銅は、装飾ブロックです。 +Weathered copper is a decorative block.=半ば酸化した銅は、装飾ブロックです。 +Oxidized copper is a decorative block.=殆ど酸化した銅は、装飾ブロックです。 +Cut copper is a decorative block.=溝入り銅は、装飾ブロックです。 +Exposed cut copper is a decorative block.=少し酸化した溝入り銅は、装飾ブロックです。 +Weathered cut copper is a decorative block.=半ば酸化した溝入り銅は、装飾ブロックです。 +Oxidized cut copper is a decorative block.=殆ど酸化した溝入り銅は、装飾ブロックです。 +Copper grate is a decorative block.= +Exposed copper grate is a decorative block.= +Weathered copper grate is a decorative block.= +Oxidized copper grate is a decorative block.= +Chiseled copper is a decorative block.= +Exposed chiseled copper is a decorative block.= +Weathered chiseled copper is a decorative block.= +Oxidized chiseled copper is a decorative block.= +Copper bulb is a decorative block and a light source when lited.= +Exposed copper bulb is a decorative block and a light source when lited.= +Weathered copper bulb is a decorative block and a light source when lited.= +Oxidized copper bulb is a decorative block and a light source when lited.= +Copper bulb is a decorative block and a light source.= +Exposed copper bulb is a decorative block and a light source.= +Weathered copper bulb is a decorative block and a light source.= +Oxidized copper bulb is a decorative block and a light source.= +Slab of Cut Copper=溝入り銅のスラブ +Double Slab of Cut Copper=溝入り銅の2重スラブ +Stairs of Cut Copper=溝入り銅の階段 +Waxed Slab of Cut Copper=錆止め済み溝入り銅のスラブ +Waxed Double Slab of Cut Copper=錆止め済み溝入り銅の2重スラブ +Waxed Stairs of Cut Copper=錆止め済み溝入り銅の階段 +Slab of Exposed Cut Copper=少し酸化した溝入り銅のスラブ +Double Slab of Exposed Cut Copper=少し酸化した溝入り銅の2重スラブ +Stairs of Exposed Cut Copper=少し酸化した溝入り銅の階段 +Waxed Slab of Exposed Cut Copper=少し酸化した錆止め済み溝入り銅のスラブ +Waxed Double Slab of Exposed Cut Copper=少し酸化した錆止め済み溝入り銅の2重スラブ +Waxed Stairs of Exposed Cut Copper=少し酸化した錆止め済み溝入り銅の階段 +Slab of Weathered Cut Copper=半ば酸化した溝入り銅のスラブ +Double Slab of Weathered Cut Copper=半ば酸化した溝入り銅の2重スラブ +Stairs of Weathered Cut Copper=半ば酸化した溝入り銅の階段 +Waxed Slab of Weathered Cut Copper=半ば酸化した錆止め済み溝入り銅のスラブ +Waxed Double Slab of Weathered Cut Copper=半ば酸化した錆止め済み溝入り銅の2重スラブ +Waxed Stairs of Weathered Cut Copper=半ば酸化した錆止め済み溝入り銅の階段 +Slab of Oxidized Cut Copper=殆ど酸化した溝入り銅のスラブ +Double Slab of Oxidized Cut Copper=殆ど酸化した溝入り銅の2重スラブ +Stairs of Oxidized Cut Copper=殆ど酸化した溝入り銅の階段 +Waxed Slab of Oxidized Cut Copper=殆ど酸化した錆止め済み溝入り銅のスラブ +Waxed Double Slab of Oxidized Cut Copper=殆ど酸化した錆止め済み溝入り銅の2重スラブ +Waxed Stairs of Oxidized Cut Copper=殆ど酸化した錆止め済み溝入り銅の階段 +Copper Door= +Copper Trapdoor= +Waxed Copper Door= +Waxed Copper Trapdoor= +Exposed Copper Door= +Exposed Copper Trapdoor= +Waxed Exposed Copper Door= +Waxed Exposed Copper Trapdoor= +Weathered Copper Door= +Weathered Copper Trapdoor= +Waxed Weathered Copper Door= +Waxed Weathered Copper Trapdoor= +Oxidized Copper Door= +Oxidized Copper Trapdoor= +Waxed Oxidized Copper Door= +Waxed Oxidized Copper Trapdoor= +Copper Button= +Waxed Copper Button= +Exposed Copper Button= +Waxed Exposed Copper Button= +Weathered Copper Button= +Waxed Weathered Copper Button= +Oxidized Copper Button= +Waxed Oxidized Copper Button= +Copper Pressure Plate= +Waxed Copper Pressure Plate= +Exposed Copper Pressure Plate= +Waxed Exposed Copper Pressure Plate= +Weathered Copper Pressure Plate= +Waxed Weathered Copper Pressure Plate= +Oxidized Copper Pressure Plate= +Waxed Oxidized Copper Pressure Plate= +Copper Bars= +Waxed Copper Bars= +Exposed Copper Bars= +Waxed Exposed Copper Bars= +Weathered Copper Bars= +Waxed Weathered Copper Bars= +Oxidized Copper Bars= +Waxed Oxidized Copper Bars= +Copper Ingot=銅インゴット +Molten Raw Copper. It is used to craft blocks.=溶けた未処理の銅。ブロックのクラフトに使われます。 +Raw Copper=銅の粗鉱 +Raw Copper. Mine a Copper Ore to get it.=未処理の銅。銅鉱石を採掘すると手に入ります。 +Copper Ore=銅鉱石 +Some copper contained in stone, it is pretty common and can be found below sea level.=石に含まれる銅は ごく一般的で、海面下の高さで見られます。 +Block of Raw Copper=銅の粗鉱ブロック +A block used for compact raw copper storage.=銅の粗鉱をコンパクトに保管するのに使えるブロックです。 diff --git a/mods/ITEMS/mcl_copper/locale/mcl_copper.pt_BR.tr b/mods/ITEMS/mcl_copper/locale/mcl_copper.pt_BR.tr index 18aeb1304..4187f6552 100644 --- a/mods/ITEMS/mcl_copper/locale/mcl_copper.pt_BR.tr +++ b/mods/ITEMS/mcl_copper/locale/mcl_copper.pt_BR.tr @@ -1,57 +1,140 @@ # textdomain: mcl_copper -A block of copper is mostly a decorative block.=Um bloco de cobre é principalmente um bloco decorativo. -A block used for compact raw copper storage.=Um bloco usado para armazenar minério de cobre compactado. Block of Copper=Bloco de Cobre Waxed Block of Copper=Bloco de Cobre Encerado -Block of Raw Copper=Bloco de Cobre Crú -Copper Ingot=Lingote de Cobre -Copper Ore=Minério de Cobre -Cut copper is a decorative block.=Cobre lapidado é um bloco decorativo -Cut Copper=Cobre Lapidado -Waxed Cut Copper=Cobre Lapidado Encerado -Double Slab of Cut Copper=Laje Dupla de Cobre Lapidado -Double Slab of Exposed Cut Copper=Laje Dupla de Cobre Lapidado Exposto -Double Slab of Oxidized Cut Copper=Laje Dupla de Cobre Lapidado Oxidado -Double Slab of Weathered Cut Copper=Laje Dupla de Cobre Lapidado Desgastado -Waxed Double Slab of Cut Copper=Laje Dupla de Cobre Lapidado Encerado -Waxed Double Slab of Exposed Cut Copper=Laje Dupla de Cobre Lapidado Exposto Encerado -Waxed Double Slab of Oxidized Cut Copper=Laje Dupla de Cobre Lapidado Oxidado Encerado -Waxed Double Slab of Weathered Cut Copper=Laje Dupla de Cobre Lapidado Desgastado Encerado -Exposed copper is a decorative block.=Cobre exposto é um bloco decorativo. Exposed Copper=Cobre Exposto Waxed Exposed Copper=Cobre Exposto Encerado -Exposed cut copper is a decorative block.=Cobre lapidado encerado é um bloco decorativo. -Exposed Cut Copper=Cobre Lapidado Exposto -Waxed Exposed Cut Copper=Cobre Lapidado Exposto Encerado -Molten Raw Copper. It is used to craft blocks.=Minério de Cobre Fundido. É utilizado para fabricar blocos. -Oxidized copper is a decorative block.=Cobre oxidado é um bloco decorativo. -Oxidized Copper=Cobre Oxidado -Waxed Oxidized Copper=Cobre Oxidado Encerado -Oxidized cut copper is a decorative block.=Cobre lapidado oxidado é um bloco decorativo. -Oxidized Cut Copper=Cobre Lapidado Oxidado -Waxed Oxidized Cut Copper=Cobre Lapidado Oxidado Encerado -Raw Copper. Mine a Copper Ore to get it.=Cobre Crú. Minere um minério de cobre para obtê-lo. -Raw Copper=Cobre Crú -Slab of Cut Copper=Laje de Cobre Lapidado -Slab of Exposed Cut Copper=Laje de Cobre Lapidado Exposto -Slab of Oxidized Cut Copper=Laje de Cobre Lapidado Oxidado -Slab of Weathered Cut Copper=Laje de Cobre Lapidado Desgastado -Waxed Slab of Cut Copper=Laje de Cobre Lapidado Encerado -Waxed Slab of Exposed Cut Copper=Laje de Cobre Lapidado Exposto Encerado -Waxed Slab of Oxidized Cut Copper=Laje de Cobre Lapidado Oxidado Encerado -Waxed Slab of Weathered Cut Copper=Laje de Cobre Lapidado Desgastado Encerado -Some copper contained in stone, it is pretty common and can be found below sea level.=Um pouco de cobre contido em rocha, é bem comum e pode ser encontrado abaixo do nível do mar. -Stairs of Cut Copper=Escadas de Cobre Lapidado -Stairs of Exposed Cut Copper=Escadas de Cobre Lapidado Exposto -Stairs of Oxidized Cut Copper=Escadas de Cobre Lapidado Oxidado -Stairs of Weathered Cut Copper=Escadas de Cobre Lapidado Desgastado -Waxed Stairs of Cut Copper=Escadas de Cobre Lapidado Encerado -Waxed Stairs of Exposed Cut Copper=Escadas de Cobre Lapidado Exposto Encerado -Waxed Stairs of Oxidized Cut Copper=Escadas de Cobre Lapidado Oxidado Encerado -Waxed Stairs of Weathered Cut Copper=Escadas de Cobre Lapidado Desgastado Encerado -Weathered copper is a decorative block.=Cobre desgastado é um bloco decorativo. Weathered Copper=Cobre Desgastado Waxed Weathered Copper=Cobre Desgastado Encerado -Weathered cut copper is a decorative block.=Cobre lapidado desgastado é um bloco decorativo. +Oxidized Copper=Cobre Oxidado +Waxed Oxidized Copper=Cobre Oxidado Encerado +Cut Copper=Cobre Lapidado +Waxed Cut Copper=Cobre Lapidado Encerado +Exposed Cut Copper=Cobre Lapidado Exposto +Waxed Exposed Cut Copper=Cobre Lapidado Exposto Encerado Weathered Cut Copper=Cobre Lapidado Desgastado Waxed Weathered Cut Copper=Cobre Lapidado Desgastado Encerado +Oxidized Cut Copper=Cobre Lapidado Oxidado +Waxed Oxidized Cut Copper=Cobre Lapidado Oxidado Encerado +Copper Grate=Grade de Cobre +Waxed Copper Grate=Grade de Cobre Encerada +Exposed Copper Grate=Grade de Cobre Exposto +Waxed Exposed Copper Grate=Grade de Cobre Exposto Encerada +Weathered Copper Grate=Grade de Cobre Desgastado +Waxed Weathered Copper Grate=Grade de Cobre Desgastado Encerada +Oxidized Copper Grate=Grade de Cobre Oxidado +Waxed Oxidized Copper Grate=Grade de Cobre Oxidado Encerada +Chiseled Copper=Cobre Talhado +Waxed Chiseled Copper=Cobre Talhado Encerado +Exposed Chiseled Copper=Cobre Talhado Exposto +Waxed Exposed Chiseled Copper=Cobre Talhado Exposto Encerado +Weathered Chiseled Copper=Cobre Talhado Desgastado +Waxed Weathered Chiseled Copper=Cobre Talhado Desgastado Encerado +Oxidized Chiseled Copper=Cobre Talhado Oxidado +Waxed Oxidized Chiseled Copper=Cobre Talhado Oxidado Encerado +Copper Bulb=Bulbo de Cobre +Waxed Copper Bulb=Bulbo de Cobre Encerado +Exposed Copper Bulb=Bulbo de Cobre Exposto +Waxed Exposed Copper Bulb=Bulbo de Cobre Exposto Encerado +Weathered Copper Bulb=Bulbo de Cobre Desgastado +Waxed Weathered Copper Bulb=Bulbo de Cobre Desgastado Encerado +Oxidized Copper Bulb=Bulbo de Cobre Oxidado +Waxed Oxidized Copper Bulb=Bulbo de Cobre Oxidado Encerado +(Lit)=(Aceso) +(Powered)=(Energizado) +(Lit and Powered)=(Aceso e Energizado) +A block of copper is mostly a decorative block.=Um bloco de cobre é principalmente um bloco decorativo. +Exposed copper is a decorative block.=Cobre exposto é um bloco decorativo. +Weathered copper is a decorative block.=Cobre desgastado é um bloco decorativo. +Oxidized copper is a decorative block.=Cobre oxidado é um bloco decorativo. +Cut copper is a decorative block.=Cobre lapidado é um bloco decorativo +Exposed cut copper is a decorative block.=Cobre lapidado encerado é um bloco decorativo. +Weathered cut copper is a decorative block.=Cobre lapidado desgastado é um bloco decorativo. +Oxidized cut copper is a decorative block.=Cobre lapidado oxidado é um bloco decorativo. +Copper grate is a decorative block.=Grade de cobre é um bloco decorativo. +Exposed copper grate is a decorative block.=Grade de cobre exposto é um bloco decorativo. +Weathered copper grate is a decorative block.=Grade de cobre de desgastado é um bloco decorativo. +Oxidized copper grate is a decorative block.=Grade de cobre oxidado é um bloco decorativo. +Chiseled copper is a decorative block.=Cobre talhado é um bloco decorativo. +Exposed chiseled copper is a decorative block.=Cobre talhado exposto é um bloco decorativo. +Weathered chiseled copper is a decorative block.=Cobre talhado desgastado é um bloco decorativo. +Oxidized chiseled copper is a decorative block.=Cobre talhado oxidado é um bloco decorativo. +Copper bulb is a decorative block and a light source when lited.=Bulbo de cobre é um bloco decorativo e uma fonte de luz quando aceso. +Exposed copper bulb is a decorative block and a light source when lited.=Bulbo de cobre exposto é um bloco decorativo e uma fonte de luz quando aceso. +Weathered copper bulb is a decorative block and a light source when lited.=Bulbo de cobre desgastado é um bloco decorativo e uma fonte de luz quando aceso. +Oxidized copper bulb is a decorative block and a light source when lited.=Bulbo de cobre oxidado é um bloco decorativo e uma fonte de luz quando aceso. +Copper bulb is a decorative block and a light source.=Bulbo de cobre é um bloco decorativo e uma fonte de luz. +Exposed copper bulb is a decorative block and a light source.=Bulbo de cobre exposto é um bloco decorativo e uma fonte de luz. +Weathered copper bulb is a decorative block and a light source.=Bulbo de cobre desgastado é um bloco decorativo e uma fonte de luz. +Oxidized copper bulb is a decorative block and a light source.=Bulbo de cobre oxidado é um bloco decorativo e uma fonte de luz. +Slab of Cut Copper=Laje de Cobre Lapidado +Double Slab of Cut Copper=Laje Dupla de Cobre Lapidado +Stairs of Cut Copper=Escadas de Cobre Lapidado +Waxed Slab of Cut Copper=Laje de Cobre Lapidado Encerado +Waxed Double Slab of Cut Copper=Laje Dupla de Cobre Lapidado Encerado +Waxed Stairs of Cut Copper=Escadas de Cobre Lapidado Encerado +Slab of Exposed Cut Copper=Laje de Cobre Lapidado Exposto +Double Slab of Exposed Cut Copper=Laje Dupla de Cobre Lapidado Exposto +Stairs of Exposed Cut Copper=Escadas de Cobre Lapidado Exposto +Waxed Slab of Exposed Cut Copper=Laje de Cobre Lapidado Exposto Encerado +Waxed Double Slab of Exposed Cut Copper=Laje Dupla de Cobre Lapidado Exposto Encerado +Waxed Stairs of Exposed Cut Copper=Escadas de Cobre Lapidado Exposto Encerado +Slab of Weathered Cut Copper=Laje de Cobre Lapidado Desgastado +Double Slab of Weathered Cut Copper=Laje Dupla de Cobre Lapidado Desgastado +Stairs of Weathered Cut Copper=Escadas de Cobre Lapidado Desgastado +Waxed Slab of Weathered Cut Copper=Laje de Cobre Lapidado Desgastado Encerado +Waxed Double Slab of Weathered Cut Copper=Laje Dupla de Cobre Lapidado Desgastado Encerado +Waxed Stairs of Weathered Cut Copper=Escadas de Cobre Lapidado Desgastado Encerado +Slab of Oxidized Cut Copper=Laje de Cobre Lapidado Oxidado +Double Slab of Oxidized Cut Copper=Laje Dupla de Cobre Lapidado Oxidado +Stairs of Oxidized Cut Copper=Escadas de Cobre Lapidado Oxidado +Waxed Slab of Oxidized Cut Copper=Laje de Cobre Lapidado Oxidado Encerado +Waxed Double Slab of Oxidized Cut Copper=Laje Dupla de Cobre Lapidado Oxidado Encerado +Waxed Stairs of Oxidized Cut Copper=Escadas de Cobre Lapidado Oxidado Encerado +Copper Door=Porta de Cobre +Copper Trapdoor=Alçapão de Cobre +Waxed Copper Door=Porta de Cobre Encerada +Waxed Copper Trapdoor=Alçapão de Cobre Encerado +Exposed Copper Door=Porta de Cobre Exposto +Exposed Copper Trapdoor=Alçapão de Cobre Exposto +Waxed Exposed Copper Door=Porta de Cobre Exposto Encerada +Waxed Exposed Copper Trapdoor=Alçapão de Cobre Exposto Encerado +Weathered Copper Door=Porta de Cobre Desgastado +Weathered Copper Trapdoor=Alçapão de Cobre Desgastado +Waxed Weathered Copper Door=Porta de Cobre Desgastado Encerada +Waxed Weathered Copper Trapdoor=Alçapão de Cobre Desgastado Encerado +Oxidized Copper Door=Porta de Cobre Oxidado +Oxidized Copper Trapdoor=Alçapão de Cobre Oxidado +Waxed Oxidized Copper Door=Porta de Cobre Oxidado Encerada +Waxed Oxidized Copper Trapdoor=Alçapão de Cobre Oxidado Encerado +Copper Button= +Waxed Copper Button= +Exposed Copper Button= +Waxed Exposed Copper Button= +Weathered Copper Button= +Waxed Weathered Copper Button= +Oxidized Copper Button= +Waxed Oxidized Copper Button= +Copper Pressure Plate= +Waxed Copper Pressure Plate= +Exposed Copper Pressure Plate= +Waxed Exposed Copper Pressure Plate= +Weathered Copper Pressure Plate= +Waxed Weathered Copper Pressure Plate= +Oxidized Copper Pressure Plate= +Waxed Oxidized Copper Pressure Plate= +Copper Bars= +Waxed Copper Bars= +Exposed Copper Bars= +Waxed Exposed Copper Bars= +Weathered Copper Bars= +Waxed Weathered Copper Bars= +Oxidized Copper Bars= +Waxed Oxidized Copper Bars= +Copper Ingot=Lingote de Cobre +Molten Raw Copper. It is used to craft blocks.=Minério de Cobre Fundido. É utilizado para fabricar blocos. +Raw Copper=Cobre Crú +Raw Copper. Mine a Copper Ore to get it.=Cobre Crú. Minere um minério de cobre para obtê-lo. +Copper Ore=Minério de Cobre +Some copper contained in stone, it is pretty common and can be found below sea level.=Um pouco de cobre contido em rocha, é bem comum e pode ser encontrado abaixo do nível do mar. +Block of Raw Copper=Bloco de Cobre Crú +A block used for compact raw copper storage.=Um bloco usado para armazenar minério de cobre compactado. diff --git a/mods/ITEMS/mcl_copper/locale/mcl_copper.ru.tr b/mods/ITEMS/mcl_copper/locale/mcl_copper.ru.tr index 50600e57b..aff249ada 100644 --- a/mods/ITEMS/mcl_copper/locale/mcl_copper.ru.tr +++ b/mods/ITEMS/mcl_copper/locale/mcl_copper.ru.tr @@ -1,57 +1,140 @@ # textdomain: mcl_copper -A block of copper is mostly a decorative block.=Медный блок — это декоративный блок. -A block used for compact raw copper storage.=Блок используется для компактного хранения необработанной меди. Block of Copper=Медный блок Waxed Block of Copper=Вощёный медный блок -Block of Raw Copper=Блок необработанной меди -Copper Ingot=Медный слиток -Copper Ore=Медная руда -Cut copper is a decorative block.=Резной медный блок это декоративный блок. -Cut Copper=Резной медный блок -Waxed Cut Copper=Вощёный резной медный блок -Double Slab of Cut Copper=Двойная плита из резного медного блока -Double Slab of Exposed Cut Copper=Двойная плита из потемневшего резного медного блока -Double Slab of Oxidized Cut Copper=Двойная плита из окисленного резного медного блока -Double Slab of Weathered Cut Copper=Двойная плита из состаренного резного медного блока -Waxed Double Slab of Cut Copper=Вощёная двойная плита из резного медного блока -Waxed Double Slab of Exposed Cut Copper=Вощёная двойная плита из потемневшего резного медного блока -Waxed Double Slab of Oxidized Cut Copper=Вощёная двойная плита из окисленного резного медного блока -Waxed Double Slab of Weathered Cut Copper=Вощёная двойная плита из состаренного резного медного блока -Exposed copper is a decorative block.=Потемневший медный блок это декоративный блок. Exposed Copper=Потемневший медный блок Waxed Exposed Copper=Вощёный потемневший медный блок -Exposed cut copper is a decorative block.=Потемневший резной медный блок это декоративный блок. -Exposed Cut Copper=Потемневший резной медный блок -Waxed Exposed Cut Copper=Вощёный потемневший резной медный блок -Molten Raw Copper. It is used to craft blocks.=Медный слиток. Используется для крафта блоков. -Oxidized copper is a decorative block.=Окисленный медный блок это декоративный блок. -Oxidized Copper=Окисленный медный блок -Waxed Oxidized Copper=Вощёный окисленный медный блок -Oxidized cut copper is a decorative block.=Окисленный резной медный блок это декоративный блок. -Oxidized Cut Copper=Окисленный резной медный блок -Waxed Oxidized Cut Copper=Вощёный окисленный резной медный блок -Raw Copper. Mine a Copper Ore to get it.=Необработанная медь. Добудьте медную руду, чтобы получить её. -Raw Copper=Необработанная медь -Slab of Cut Copper=Плита из резного медного блока -Slab of Exposed Cut Copper=Плита из потемневшего резного медного блока -Slab of Oxidized Cut Copper=Плита из окисленного резного медного блока -Slab of Weathered Cut Copper=Плита из состаренного резного медного блока -Waxed Slab of Cut Copper=Вощёная плита из резного медного блока -Waxed Slab of Exposed Cut Copper=Вощёная плита из потемневшего резного медного блока -Waxed Slab of Oxidized Cut Copper=Вощёная плита из окисленного резного медного блока -Waxed Slab of Weathered Cut Copper=Вощёная плита из состаренного резного медного блока -Some copper contained in stone, it is pretty common and can be found below sea level.=Залежи медной руды находятся в камне, медь довольно распространена и может быть найдена ниже уровня моря. -Stairs of Cut Copper=Ступени из резного медного блока -Stairs of Exposed Cut Copper=Ступени из потемневшего резного медного блока -Stairs of Oxidized Cut Copper=Ступени из окисленного резного медного блока -Stairs of Weathered Cut Copper=Ступени из состаренного резного медного блока -Waxed Stairs of Cut Copper=Вощёные ступени из резного медного блока -Waxed Stairs of Exposed Cut Copper=Вощёные ступени из потемневшего резного медного блока -Waxed Stairs of Oxidized Cut Copper=Вощёные ступени из окисленного резного медного блока -Waxed Stairs of Weathered Cut Copper=Вощёные ступени из состаренного резного медного блока -Weathered copper is a decorative block.=Состаренный медный блок это декоративный блок. Weathered Copper=Состаренный медный блок Waxed Weathered Copper=Вощёный состаренный медный блок -Weathered cut copper is a decorative block.=Состаренный резной медный блок это декоративный блок. +Oxidized Copper=Окисленный медный блок +Waxed Oxidized Copper=Вощёный окисленный медный блок +Cut Copper=Резной медный блок +Waxed Cut Copper=Вощёный резной медный блок +Exposed Cut Copper=Потемневший резной медный блок +Waxed Exposed Cut Copper=Вощёный потемневший резной медный блок Weathered Cut Copper=Состаренный резной медный блок Waxed Weathered Cut Copper=Вощёный состаренный резной медный блок +Oxidized Cut Copper=Окисленный резной медный блок +Waxed Oxidized Cut Copper=Вощёный окисленный резной медный блок +Copper Grate= +Waxed Copper Grate= +Exposed Copper Grate= +Waxed Exposed Copper Grate= +Weathered Copper Grate= +Waxed Weathered Copper Grate= +Oxidized Copper Grate= +Waxed Oxidized Copper Grate= +Chiseled Copper= +Waxed Chiseled Copper= +Exposed Chiseled Copper= +Waxed Exposed Chiseled Copper= +Weathered Chiseled Copper= +Waxed Weathered Chiseled Copper= +Oxidized Chiseled Copper= +Waxed Oxidized Chiseled Copper= +Copper Bulb= +Waxed Copper Bulb= +Exposed Copper Bulb= +Waxed Exposed Copper Bulb= +Weathered Copper Bulb= +Waxed Weathered Copper Bulb= +Oxidized Copper Bulb= +Waxed Oxidized Copper Bulb= +(Lit)= +(Powered)= +(Lit and Powered)= +A block of copper is mostly a decorative block.=Медный блок — это декоративный блок. +Exposed copper is a decorative block.=Потемневший медный блок это декоративный блок. +Weathered copper is a decorative block.=Состаренный медный блок это декоративный блок. +Oxidized copper is a decorative block.=Окисленный медный блок это декоративный блок. +Cut copper is a decorative block.=Резной медный блок это декоративный блок. +Exposed cut copper is a decorative block.=Потемневший резной медный блок это декоративный блок. +Weathered cut copper is a decorative block.=Состаренный резной медный блок это декоративный блок. +Oxidized cut copper is a decorative block.=Окисленный резной медный блок это декоративный блок. +Copper grate is a decorative block.= +Exposed copper grate is a decorative block.= +Weathered copper grate is a decorative block.= +Oxidized copper grate is a decorative block.= +Chiseled copper is a decorative block.= +Exposed chiseled copper is a decorative block.= +Weathered chiseled copper is a decorative block.= +Oxidized chiseled copper is a decorative block.= +Copper bulb is a decorative block and a light source when lited.= +Exposed copper bulb is a decorative block and a light source when lited.= +Weathered copper bulb is a decorative block and a light source when lited.= +Oxidized copper bulb is a decorative block and a light source when lited.= +Copper bulb is a decorative block and a light source.= +Exposed copper bulb is a decorative block and a light source.= +Weathered copper bulb is a decorative block and a light source.= +Oxidized copper bulb is a decorative block and a light source.= +Slab of Cut Copper=Плита из резного медного блока +Double Slab of Cut Copper=Двойная плита из резного медного блока +Stairs of Cut Copper=Ступени из резного медного блока +Waxed Slab of Cut Copper=Вощёная плита из резного медного блока +Waxed Double Slab of Cut Copper=Вощёная двойная плита из резного медного блока +Waxed Stairs of Cut Copper=Вощёные ступени из резного медного блока +Slab of Exposed Cut Copper=Плита из потемневшего резного медного блока +Double Slab of Exposed Cut Copper=Двойная плита из потемневшего резного медного блока +Stairs of Exposed Cut Copper=Ступени из потемневшего резного медного блока +Waxed Slab of Exposed Cut Copper=Вощёная плита из потемневшего резного медного блока +Waxed Double Slab of Exposed Cut Copper=Вощёная двойная плита из потемневшего резного медного блока +Waxed Stairs of Exposed Cut Copper=Вощёные ступени из потемневшего резного медного блока +Slab of Weathered Cut Copper=Плита из состаренного резного медного блока +Double Slab of Weathered Cut Copper=Двойная плита из состаренного резного медного блока +Stairs of Weathered Cut Copper=Ступени из состаренного резного медного блока +Waxed Slab of Weathered Cut Copper=Вощёная плита из состаренного резного медного блока +Waxed Double Slab of Weathered Cut Copper=Вощёная двойная плита из состаренного резного медного блока +Waxed Stairs of Weathered Cut Copper=Вощёные ступени из состаренного резного медного блока +Slab of Oxidized Cut Copper=Плита из окисленного резного медного блока +Double Slab of Oxidized Cut Copper=Двойная плита из окисленного резного медного блока +Stairs of Oxidized Cut Copper=Ступени из окисленного резного медного блока +Waxed Slab of Oxidized Cut Copper=Вощёная плита из окисленного резного медного блока +Waxed Double Slab of Oxidized Cut Copper=Вощёная двойная плита из окисленного резного медного блока +Waxed Stairs of Oxidized Cut Copper=Вощёные ступени из окисленного резного медного блока +Copper Door= +Copper Trapdoor= +Waxed Copper Door= +Waxed Copper Trapdoor= +Exposed Copper Door= +Exposed Copper Trapdoor= +Waxed Exposed Copper Door= +Waxed Exposed Copper Trapdoor= +Weathered Copper Door= +Weathered Copper Trapdoor= +Waxed Weathered Copper Door= +Waxed Weathered Copper Trapdoor= +Oxidized Copper Door= +Oxidized Copper Trapdoor= +Waxed Oxidized Copper Door= +Waxed Oxidized Copper Trapdoor= +Copper Button= +Waxed Copper Button= +Exposed Copper Button= +Waxed Exposed Copper Button= +Weathered Copper Button= +Waxed Weathered Copper Button= +Oxidized Copper Button= +Waxed Oxidized Copper Button= +Copper Pressure Plate= +Waxed Copper Pressure Plate= +Exposed Copper Pressure Plate= +Waxed Exposed Copper Pressure Plate= +Weathered Copper Pressure Plate= +Waxed Weathered Copper Pressure Plate= +Oxidized Copper Pressure Plate= +Waxed Oxidized Copper Pressure Plate= +Copper Bars= +Waxed Copper Bars= +Exposed Copper Bars= +Waxed Exposed Copper Bars= +Weathered Copper Bars= +Waxed Weathered Copper Bars= +Oxidized Copper Bars= +Waxed Oxidized Copper Bars= +Copper Ingot=Медный слиток +Molten Raw Copper. It is used to craft blocks.=Медный слиток. Используется для крафта блоков. +Raw Copper=Необработанная медь +Raw Copper. Mine a Copper Ore to get it.=Необработанная медь. Добудьте медную руду, чтобы получить её. +Copper Ore=Медная руда +Some copper contained in stone, it is pretty common and can be found below sea level.=Залежи медной руды находятся в камне, медь довольно распространена и может быть найдена ниже уровня моря. +Block of Raw Copper=Блок необработанной меди +A block used for compact raw copper storage.=Блок используется для компактного хранения необработанной меди. diff --git a/mods/ITEMS/mcl_copper/locale/template.txt b/mods/ITEMS/mcl_copper/locale/template.txt index 7022780ff..89ceb0d6a 100644 --- a/mods/ITEMS/mcl_copper/locale/template.txt +++ b/mods/ITEMS/mcl_copper/locale/template.txt @@ -1,57 +1,140 @@ # textdomain: mcl_copper -A block of copper is mostly a decorative block.= -A block used for compact raw copper storage.= Block of Copper= Waxed Block of Copper= -Block of Raw Copper= -Copper Ingot= -Copper Ore= -Cut copper is a decorative block.= -Cut Copper= -Waxed Cut Copper= -Double Slab of Cut Copper= -Double Slab of Exposed Cut Copper= -Double Slab of Oxidized Cut Copper= -Double Slab of Weathered Cut Copper= -Waxed Double Slab of Cut Copper= -Waxed Double Slab of Exposed Cut Copper= -Waxed Double Slab of Oxidized Cut Copper= -Waxed Double Slab of Weathered Cut Copper= -Exposed copper is a decorative block.= Exposed Copper= Waxed Exposed Copper= -Exposed cut copper is a decorative block.= -Exposed Cut Copper= -Waxed Exposed Cut Copper= -Molten Raw Copper. It is used to craft blocks.= -Oxidized copper is a decorative block.= -Oxidized Copper= -Waxed Oxidized Copper= -Oxidized cut copper is a decorative block.= -Oxidized Cut Copper= -Waxed Oxidized Cut Copper= -Raw Copper. Mine a Copper Ore to get it.= -Raw Copper= -Slab of Cut Copper= -Slab of Exposed Cut Copper= -Slab of Oxidized Cut Copper= -Slab of Weathered Cut Copper= -Waxed Slab of Cut Copper= -Waxed Slab of Exposed Cut Copper= -Waxed Slab of Oxidized Cut Copper= -Waxed Slab of Weathered Cut Copper= -Some copper contained in stone, it is pretty common and can be found below sea level.= -Stairs of Cut Copper= -Stairs of Exposed Cut Copper= -Stairs of Oxidized Cut Copper= -Stairs of Weathered Cut Copper= -Waxed Stairs of Cut Copper= -Waxed Stairs of Exposed Cut Copper= -Waxed Stairs of Oxidized Cut Copper= -Waxed Stairs of Weathered Cut Copper= -Weathered copper is a decorative block.= Weathered Copper= Waxed Weathered Copper= -Weathered cut copper is a decorative block.= +Oxidized Copper= +Waxed Oxidized Copper= +Cut Copper= +Waxed Cut Copper= +Exposed Cut Copper= +Waxed Exposed Cut Copper= Weathered Cut Copper= Waxed Weathered Cut Copper= +Oxidized Cut Copper= +Waxed Oxidized Cut Copper= +Copper Grate= +Waxed Copper Grate= +Exposed Copper Grate= +Waxed Exposed Copper Grate= +Weathered Copper Grate= +Waxed Weathered Copper Grate= +Oxidized Copper Grate= +Waxed Oxidized Copper Grate= +Chiseled Copper= +Waxed Chiseled Copper= +Exposed Chiseled Copper= +Waxed Exposed Chiseled Copper= +Weathered Chiseled Copper= +Waxed Weathered Chiseled Copper= +Oxidized Chiseled Copper= +Waxed Oxidized Chiseled Copper= +Copper Bulb= +Waxed Copper Bulb= +Exposed Copper Bulb= +Waxed Exposed Copper Bulb= +Weathered Copper Bulb= +Waxed Weathered Copper Bulb= +Oxidized Copper Bulb= +Waxed Oxidized Copper Bulb= +(Lit)= +(Powered)= +(Lit and Powered)= +A block of copper is mostly a decorative block.= +Exposed copper is a decorative block.= +Weathered copper is a decorative block.= +Oxidized copper is a decorative block.= +Cut copper is a decorative block.= +Exposed cut copper is a decorative block.= +Weathered cut copper is a decorative block.= +Oxidized cut copper is a decorative block.= +Copper grate is a decorative block.= +Exposed copper grate is a decorative block.= +Weathered copper grate is a decorative block.= +Oxidized copper grate is a decorative block.= +Chiseled copper is a decorative block.= +Exposed chiseled copper is a decorative block.= +Weathered chiseled copper is a decorative block.= +Oxidized chiseled copper is a decorative block.= +Copper bulb is a decorative block and a light source when lited.= +Exposed copper bulb is a decorative block and a light source when lited.= +Weathered copper bulb is a decorative block and a light source when lited.= +Oxidized copper bulb is a decorative block and a light source when lited.= +Copper bulb is a decorative block and a light source.= +Exposed copper bulb is a decorative block and a light source.= +Weathered copper bulb is a decorative block and a light source.= +Oxidized copper bulb is a decorative block and a light source.= +Slab of Cut Copper= +Double Slab of Cut Copper= +Stairs of Cut Copper= +Waxed Slab of Cut Copper= +Waxed Double Slab of Cut Copper= +Waxed Stairs of Cut Copper= +Slab of Exposed Cut Copper= +Double Slab of Exposed Cut Copper= +Stairs of Exposed Cut Copper= +Waxed Slab of Exposed Cut Copper= +Waxed Double Slab of Exposed Cut Copper= +Waxed Stairs of Exposed Cut Copper= +Slab of Weathered Cut Copper= +Double Slab of Weathered Cut Copper= +Stairs of Weathered Cut Copper= +Waxed Slab of Weathered Cut Copper= +Waxed Double Slab of Weathered Cut Copper= +Waxed Stairs of Weathered Cut Copper= +Slab of Oxidized Cut Copper= +Double Slab of Oxidized Cut Copper= +Stairs of Oxidized Cut Copper= +Waxed Slab of Oxidized Cut Copper= +Waxed Double Slab of Oxidized Cut Copper= +Waxed Stairs of Oxidized Cut Copper= +Copper Door= +Copper Trapdoor= +Waxed Copper Door= +Waxed Copper Trapdoor= +Exposed Copper Door= +Exposed Copper Trapdoor= +Waxed Exposed Copper Door= +Waxed Exposed Copper Trapdoor= +Weathered Copper Door= +Weathered Copper Trapdoor= +Waxed Weathered Copper Door= +Waxed Weathered Copper Trapdoor= +Oxidized Copper Door= +Oxidized Copper Trapdoor= +Waxed Oxidized Copper Door= +Waxed Oxidized Copper Trapdoor= +Copper Button= +Waxed Copper Button= +Exposed Copper Button= +Waxed Exposed Copper Button= +Weathered Copper Button= +Waxed Weathered Copper Button= +Oxidized Copper Button= +Waxed Oxidized Copper Button= +Copper Pressure Plate= +Waxed Copper Pressure Plate= +Exposed Copper Pressure Plate= +Waxed Exposed Copper Pressure Plate= +Weathered Copper Pressure Plate= +Waxed Weathered Copper Pressure Plate= +Oxidized Copper Pressure Plate= +Waxed Oxidized Copper Pressure Plate= +Copper Bars= +Waxed Copper Bars= +Exposed Copper Bars= +Waxed Exposed Copper Bars= +Weathered Copper Bars= +Waxed Weathered Copper Bars= +Oxidized Copper Bars= +Waxed Oxidized Copper Bars= +Copper Ingot= +Molten Raw Copper. It is used to craft blocks.= +Raw Copper= +Raw Copper. Mine a Copper Ore to get it.= +Copper Ore= +Some copper contained in stone, it is pretty common and can be found below sea level.= +Block of Raw Copper= +A block used for compact raw copper storage.= diff --git a/mods/ITEMS/mcl_copper/mod.conf b/mods/ITEMS/mcl_copper/mod.conf index 64937b2e1..e2c8b5377 100644 --- a/mods/ITEMS/mcl_copper/mod.conf +++ b/mods/ITEMS/mcl_copper/mod.conf @@ -1,4 +1,4 @@ name = mcl_copper -author = NO11 +author = NO11, JoseDouglas26, teknomunk depends = mcl_core, mcl_sounds, mcl_stairs, mcl_util, mcl_oxidation, mcl_stonecutter description = Adds Copper Ore, blocks and items. diff --git a/mods/ITEMS/mcl_copper/nodes.lua b/mods/ITEMS/mcl_copper/nodes.lua index af5a49a1c..42e061422 100644 --- a/mods/ITEMS/mcl_copper/nodes.lua +++ b/mods/ITEMS/mcl_copper/nodes.lua @@ -1,5 +1,364 @@ local S = minetest.get_translator("mcl_copper") +--- Function to set drop (only useful for copper bulbs that are not available in the creative inventory). +--- To have a special drop, the block definition must contain the "drop" parameter. +--- "old_name" must be a string containing the name of the node that will receive the special drop +--- (for example, the lit copper bulb that should drop the unlit copper bulb). +--- "index_name" contains the name of the dropped block (in the case of the previous example, name must +--- be bulb_off to define the drop as the unlit and unpowered bulb). +---@param drop string|nil +---@param old_name string +---@param index_name string +---@return string|nil +local function set_drop(drop, old_name, index_name) + if drop and old_name and index_name then + drop = "mcl_copper:"..old_name:gsub(index_name, drop) + end + + return drop +end + +--- Function used to set special groups for some blocks based on its names. +--- "oxidizable" is the group that indicates that the block can oxidize. +--- "waxed" is the group that indicates that the block can not oxidize. +--- Doors and trapdoors they will be part of groups related to mesecon, indicating that mesecon +--- (redstone) has an effect on them. +---@param name string +---@param groups table +---@return table|nil +local function set_groups(name, groups) + local groups = table.copy(groups) + + if name and groups then + if name:find("waxed") then + groups.waxed = 1 + elseif not name:find("oxidized") then + groups.oxidizable = 1 + end + + if name:find("door") then + groups.building_block = 0 + groups.mesecon_effector_on = 1 + end + else + return nil + end + + return groups +end + +--- Function to set the light level for copper bulbs. Calculated based on the index passed to the function. +--- "light_source" must be a integer which is the maximum desired light level. "index" must be a integer +--- as well. "index" is used to define the level of oxidation of the bulb, as the light level decreases +--- as the degree of oxidation advances. +---@param light_source integer +---@param index integer +---@return integer +local function set_light_level(light_source, index) + local ceil, floor_5, floor_7 = math.ceil(index / 2), math.floor(index / 5), math.floor(index / 7) + if light_source then + light_source = light_source - 3 * (ceil - 1) - floor_5 - floor_7 + end + + return light_source +end + +--- Function used to set tiles for blocks. "tiles" must be a table with 4 values as waxed variants +--- use the same textures as the unwaxed versions. "index" must be an integer that must be, at most, +--- twice the number of textures in the table (8 as the maximum value). +---@param tiles table +---@param index integer +---@return string|nil +local function set_tiles(tiles, index) + if not tiles or not index then + return + end + + return tiles[math.ceil(index / 2)] +end + +--- Function used to register all blocks on the oxidation chain, including the waxed variants for each +--- block. It also registers some special blocks like doors, trapdoors, slabs and stairs. "name" should +--- be a string containing the subname of the block. "definitions" must be a table that contains only +--- particular definitions for each block, such as the light level for copper bulbs or the "allfaces" +--- drawtype for copper grates. Some nodes contain a special definition to define the registration of +--- some other blocks (copper slabs and ladders are based on cut copper blocks). +---@param name string +---@param definitions table +local function register_copper_variants(name, definitions) + local names, oxidized_variant, stripped_variant, waxed_variant, tiles + -- Handling the inconsistency of the original itemstrings. + if name ~= "cut" then + names = { + name, "waxed_"..name, + name.."_exposed", "waxed_"..name.."_exposed", + name.."_weathered", "waxed_"..name.."_weathered", + name.."_oxidized", "waxed_"..name.."_oxidized" + } + else + names = { + "block_"..name, "waxed_block_"..name, + "block_exposed_"..name, "waxed_block_exposed_"..name, + "block_weathered_"..name, "waxed_block_weathered_"..name, + "block_oxidized_"..name, "waxed_block_oxidized_"..name + } + end + -- Also handling the inconsistency of the original texture names. + if name == "block" then + tiles = { + "mcl_copper_block.png", + "mcl_copper_exposed.png", + "mcl_copper_weathered.png", + "mcl_copper_oxidized.png" + } + else + tiles = { + "mcl_copper_block_"..name..".png", + "mcl_copper_exposed_"..name..".png", + "mcl_copper_weathered_"..name..".png", + "mcl_copper_oxidized_"..name..".png" + } + end + -- Registering the 8 nodes in the oxidation chain. + for i = 1, #names do + -- Defining whether the block is waxed and defining its stripped variant (its non-oxidized + -- variant, which must precede the waxed variant in the name table). + if names[i]:find("waxed") then + stripped_variant = "mcl_copper:"..names[i-1] + else + -- While the "oxidized" variant is not found, this snippet defines the oxidized variant of + -- the block. + if not names[i]:find("oxidized") then + oxidized_variant = "mcl_copper:"..names[i+2] + end + -- Defining the stripped variant with the exception of the first block in the chain + -- (and the waxed ones that were defined before). + if i ~= 1 then + stripped_variant = "mcl_copper:"..names[i-2] + end + -- Defining the waxed variant for unwaxed variants. + waxed_variant = "mcl_copper:"..names[i+1] + end + -- Registering the blocks. + minetest.register_node("mcl_copper:"..names[i], { + description = mcl_copper.copper_descs[name][i], + drawtype = definitions.drawtype or "normal", + drop = set_drop(definitions.drop, names[i], name), + groups = set_groups(names[i], definitions.groups), + is_ground_content = false, + light_source = set_light_level(definitions.light_source, i), + mesecons = definitions.mesecons, + paramtype = definitions.paramtype or "none", + paramtype2 = definitions.paramtype2 or "none", + sounds = mcl_sounds.node_sound_metal_defaults(), + sunlight_propagates = definitions.sunlight_propagates or false, + tiles = {set_tiles(tiles, i)}, + _doc_items_longdesc = mcl_copper.copper_longdescs[name][math.ceil(i/2)], + _mcl_blast_resistance = 6, + _mcl_hardness = 3, + _mcl_oxidized_variant = oxidized_variant, + _mcl_stripped_variant = stripped_variant, + _mcl_waxed_variant = waxed_variant, + }) + -- Defining blocks that use mcl_stairs. + if definitions._mcl_stairs then + local subname = mcl_copper.stairs_subnames[name][i] + + mcl_stairs.register_slab(subname, "mcl_copper:"..names[i], set_groups(subname, definitions.groups), + {set_tiles(tiles, i), set_tiles(tiles, i), set_tiles(tiles, i)}, + mcl_copper.stairs_descs[subname][1], nil, nil, nil, + mcl_copper.stairs_descs[subname][2] + ) + + mcl_stairs.register_stair(subname, "mcl_copper:"..names[i], set_groups(subname, definitions.groups), + {set_tiles(tiles, i), set_tiles(tiles, i), set_tiles(tiles, i), + set_tiles(tiles, i), set_tiles(tiles, i), set_tiles(tiles, i)}, + mcl_copper.stairs_descs[subname][3], nil, nil, nil, "woodlike" + ) + end + -- Defining blocks that use mcl_doors. + if definitions._mcl_doors then + local itemimg, lowertext, uppertext, frontimg, sideimg + -- Defining the special groups for doors and trapdoors. + local door_groups = set_groups(names[i]:gsub(name, "door"), definitions.groups) + local trapdoor_groups = set_groups(names[i]:gsub(name, "trapdoor"), definitions.groups) + -- Managing the textures related to doors and trapdoors, as well as the texture of the item + -- for each door. As with the other blocks, the waxed variant uses the same textures as the + -- unwaxed variants. + -- itemimg -> item image for the doors on inventory; + -- lowertext / uppertext -> lower and bottom textures for the doors; + -- frontimg / sideimg -> front and side textures for the trapdoors; + if i % 2 == 1 then + itemimg = "mcl_copper_item_"..names[i]:gsub(name, "door")..".png" + lowertext = "mcl_copper_"..names[i]:gsub(name, "door").."_lower.png" + uppertext = "mcl_copper_"..names[i]:gsub(name, "door").."_upper.png" + frontimg = "mcl_copper_"..names[i]:gsub(name, "trapdoor")..".png" + sideimg = "mcl_copper_"..names[i]:gsub(name, "trapdoor").."_side.png" + else + itemimg = "mcl_copper_item_"..names[i-1]:gsub(name, "door")..".png" + lowertext = "mcl_copper_"..names[i-1]:gsub(name, "door").."_lower.png" + uppertext = "mcl_copper_"..names[i-1]:gsub(name, "door").."_upper.png" + frontimg = "mcl_copper_"..names[i-1]:gsub(name, "trapdoor")..".png" + sideimg = "mcl_copper_"..names[i-1]:gsub(name, "trapdoor").."_side.png" + end + -- Registering doors. + mcl_doors:register_door("mcl_copper:"..names[i]:gsub(name, "door"), { + description = mcl_copper.doors_descs[i][1], + groups = door_groups, + inventory_image = itemimg, + only_redstone_can_open = false, + sounds = mcl_sounds.node_sound_metal_defaults(), + sound_close = "doors_steel_door_close", + sound_open = "doors_steel_door_open", + tiles_bottom = lowertext, + tiles_top = uppertext, + _mcl_blast_resistance = 3, + _mcl_hardness = 3 + }) + -- Registering trapdoors. + mcl_doors:register_trapdoor("mcl_copper:"..names[i]:gsub(name, "trapdoor"), { + description = mcl_copper.doors_descs[i][2], + groups = trapdoor_groups, + only_redstone_can_open = false, + sounds = mcl_sounds.node_sound_metal_defaults(), + sound_close = "doors_steel_door_close", + sound_open = "doors_steel_door_open", + tile_front = frontimg, + tile_side = sideimg, + wield_image = frontimg, + _mcl_blast_resistance = 3, + _mcl_hardness = 3 + }) + end + -- Registering buttons. + if definitions._mesecons_buttons then + mesecon.register_button( + names[i]:gsub("block", "copper"), + mcl_copper.button_descs[i], + set_tiles(tiles, i), + nil, + mcl_sounds.node_sound_metal_defaults(), + set_groups(names[i], {handy = 1, pickaxey = 1}), + math.ceil(i / 2) * 0.5, + true, + nil, + "mesecons_button_push" + ) + end + -- Registering pressure plates. + if definitions._mesecons_pp then + mesecon.register_pressure_plate( + "mcl_copper:pressure_plate_"..names[i]:gsub("block", "copper"), + mcl_copper.pp_descs[i], + {set_tiles(tiles, i)}, + {set_tiles(tiles, i)}, + set_tiles(tiles, i), + nil, + nil, + mcl_sounds.node_sound_metal_defaults(), + set_groups(names[i], {pickaxey = 1}), + {player = true, mob = true} + ) + end + -- Registering copper bars. + if definitions._xpanes then + local top_img = set_tiles(tiles, i):gsub("mcl_", "xpanes_top_") + local side_img = set_tiles(tiles, i):gsub("mcl_", "xpanes_pane_") + + xpanes.register_pane("bars_"..names[i]:gsub("block", "copper"), { + description = mcl_copper.bars_descs[i], + textures = {side_img, side_img, top_img}, + inventory_image = side_img, + wield_image = side_img, + groups = set_groups(names[i], {pickaxey = 1}), + sounds = mcl_sounds.node_sound_metal_defaults(), + recipe = nil, + _mcl_blast_resistance = 6, + _mcl_hardness = 3 + }) + end + end +end +-- Using the function above to register the copper blocks. +register_copper_variants("block", { + groups = {pickaxey = 2, building_block = 1}, + -- Copper blocks are no longer the manufacturing material for doors but this definition will be + -- maintained here to avoid individual registration of 16 blocks. + -- Same for buttons, pressure plates and panes. + _mcl_doors = true, + _mesecons_buttons = true, + _mesecons_pp = true, + _xpanes = true +}) +-- Using the function above to register the cut copper blocks. +register_copper_variants("cut", { + groups = {pickaxey = 2, building_block = 1}, + _mcl_stairs = true, +}) +-- Using the function above to register the copper grates. +register_copper_variants("grate", { + drawtype = "allfaces", + groups = {pickaxey = 2, building_block = 1, disable_suffocation = 1}, + paramtype = "light", + sunlight_propagates = true, +}) +--[[ +register_copper_variants("chiseled", { + groups = {pickaxey = 2, building_block = 1} +}) + +register_copper_variants("bulb_off", { + groups = {pickaxey = 2, building_block = 1}, + mesecons = { + effector = { + action_on = function (pos, node) + minetest.swap_node(pos, {name = node.name:gsub("bulb_off", "bulb_powered_on")}) + end + }, + }, +}) + +register_copper_variants("bulb_on", { + drop = "bulb_off", + groups = {pickaxey = 2, building_block = 1, not_in_creative_inventory = 1}, + light_source = 14, + mesecons = { + effector = { + action_on = function (pos, node) + minetest.swap_node(pos, {name = node.name:gsub("bulb_on", "bulb_powered_off")}) + end + }, + }, + paramtype = "light" +}) + +register_copper_variants("bulb_powered_off", { + drop = "bulb_off", + groups = {pickaxey = 2, building_block = 1, not_in_creative_inventory = 1}, + mesecons = { + effector = { + action_off = function (pos, node) + minetest.swap_node(pos, {name = node.name:gsub("bulb_powered_off", "bulb_off")}) + end + } + } +}) + +register_copper_variants("bulb_powered_on", { + drop = "bulb_off", + groups = {pickaxey = 2, building_block = 1, not_in_creative_inventory = 1}, + light_source = 14, + mesecons = { + effector = { + action_off = function (pos, node) + minetest.swap_node(pos, {name = node.name:gsub("bulb_powered_on", "bulb_on")}) + end + } + }, + paramtype = "light" +}) +]] +-- Registering specific blocks. minetest.register_node("mcl_copper:stone_with_copper", { description = S("Copper Ore"), _doc_items_longdesc = S("Some copper contained in stone, it is pretty common and can be found below sea level."), @@ -19,324 +378,8 @@ minetest.register_node("mcl_copper:block_raw", { _doc_items_longdesc = S("A block used for compact raw copper storage."), tiles = {"mcl_copper_block_raw.png"}, is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, blast_furnace_smeltable = 1 }, + groups = {pickaxey = 2, building_block = 1, blast_furnace_smeltable = 1}, sounds = mcl_sounds.node_sound_metal_defaults(), _mcl_blast_resistance = 6, _mcl_hardness = 5, }) - -minetest.register_node("mcl_copper:block", { - description = S("Block of Copper"), - _doc_items_longdesc = S("A block of copper is mostly a decorative block."), - tiles = {"mcl_copper_block.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, oxidizable = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 3, - _mcl_oxidized_variant = "mcl_copper:block_exposed", - _mcl_waxed_variant = "mcl_copper:waxed_block", -}) - -minetest.register_node("mcl_copper:waxed_block", { - description = S("Waxed Block of Copper"), - _doc_items_longdesc = S("A block of copper is mostly a decorative block."), - tiles = {"mcl_copper_block.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, waxed = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 3, - _mcl_stripped_variant = "mcl_copper:block", -}) - -minetest.register_node("mcl_copper:block_exposed", { - description = S("Exposed Copper"), - _doc_items_longdesc = S("Exposed copper is a decorative block."), - tiles = {"mcl_copper_exposed.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, oxidizable = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_oxidized_variant = "mcl_copper:block_weathered", - _mcl_waxed_variant = "mcl_copper:waxed_block_exposed", - _mcl_stripped_variant = "mcl_copper:block", -}) - -minetest.register_node("mcl_copper:waxed_block_exposed", { - description = S("Waxed Exposed Copper"), - _doc_items_longdesc = S("Exposed copper is a decorative block."), - tiles = {"mcl_copper_exposed.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, waxed = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_stripped_variant = "mcl_copper:block_exposed", -}) - -minetest.register_node("mcl_copper:block_weathered", { - description = S("Weathered Copper"), - _doc_items_longdesc = S("Weathered copper is a decorative block."), - tiles = {"mcl_copper_weathered.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, oxidizable = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_oxidized_variant = "mcl_copper:block_oxidized", - _mcl_waxed_variant = "mcl_copper:waxed_block_weathered", - _mcl_stripped_variant = "mcl_copper:block_exposed", -}) - -minetest.register_node("mcl_copper:waxed_block_weathered", { - description = S("Waxed Weathered Copper"), - _doc_items_longdesc = S("Weathered copper is a decorative block."), - tiles = {"mcl_copper_weathered.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, waxed = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_stripped_variant = "mcl_copper:block_weathered", -}) - -minetest.register_node("mcl_copper:block_oxidized", { - description = S("Oxidized Copper"), - _doc_items_longdesc = S("Oxidized copper is a decorative block."), - tiles = {"mcl_copper_oxidized.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_waxed_variant = "mcl_copper:waxed_block_oxidized", - _mcl_stripped_variant = "mcl_copper:block_weathered", -}) - -minetest.register_node("mcl_copper:waxed_block_oxidized", { - description = S("Waxed Oxidized Copper"), - _doc_items_longdesc = S("Oxidized copper is a decorative block."), - tiles = {"mcl_copper_oxidized.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, waxed = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_stripped_variant = "mcl_copper:block_oxidized", -}) - -minetest.register_node("mcl_copper:block_cut", { - description = S("Cut Copper"), - _doc_items_longdesc = S("Cut copper is a decorative block."), - tiles = {"mcl_copper_block_cut.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, oxidizable = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_oxidized_variant = "mcl_copper:block_exposed_cut", - _mcl_waxed_variant = "mcl_copper:waxed_block_cut", -}) - -minetest.register_node("mcl_copper:waxed_block_cut", { - description = S("Waxed Cut Copper"), - _doc_items_longdesc = S("Cut copper is a decorative block."), - tiles = {"mcl_copper_block_cut.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, waxed = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_stripped_variant = "mcl_copper:block_cut", -}) - -minetest.register_node("mcl_copper:block_exposed_cut", { - description = S("Exposed Cut Copper"), - _doc_items_longdesc = S("Exposed cut copper is a decorative block."), - tiles = {"mcl_copper_exposed_cut.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, oxidizable = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_waxed_variant = "mcl_copper:waxed_block_exposed_cut", - _mcl_oxidized_variant = "mcl_copper:block_weathered_cut", - _mcl_stripped_variant = "mcl_copper:block_cut", -}) - -minetest.register_node("mcl_copper:waxed_block_exposed_cut", { - description = S("Waxed Exposed Cut Copper"), - _doc_items_longdesc = S("Exposed cut copper is a decorative block."), - tiles = {"mcl_copper_exposed_cut.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, waxed = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_stripped_variant = "mcl_copper:block_exposed_cut", -}) - -minetest.register_node("mcl_copper:block_weathered_cut", { - description = S("Weathered Cut Copper"), - _doc_items_longdesc = S("Weathered cut copper is a decorative block."), - tiles = {"mcl_copper_weathered_cut.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, oxidizable = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_stripped_variant = "mcl_copper:block_exposed_cut", - _mcl_oxidized_variant = "mcl_copper:block_oxidized_cut", - _mcl_waxed_variant = "mcl_copper:waxed_block_weathered_cut", -}) - -minetest.register_node("mcl_copper:waxed_block_weathered_cut", { - description = S("Waxed Weathered Cut Copper"), - _doc_items_longdesc = S("Weathered cut copper is a decorative block."), - tiles = {"mcl_copper_weathered_cut.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, waxed = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_stripped_variant = "mcl_copper:block_weathered_cut", -}) - -minetest.register_node("mcl_copper:block_oxidized_cut", { - description = S("Oxidized Cut Copper"), - _doc_items_longdesc = S("Oxidized cut copper is a decorative block."), - tiles = {"mcl_copper_oxidized_cut.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_stripped_variant = "mcl_copper:block_weathered_cut", - _mcl_waxed_variant = "mcl_copper:waxed_block_oxidized_cut", -}) - -minetest.register_node("mcl_copper:waxed_block_oxidized_cut", { - description = S("Waxed Oxidized Cut Copper"), - _doc_items_longdesc = S("Oxidized cut copper is a decorative block."), - tiles = {"mcl_copper_oxidized_cut.png"}, - is_ground_content = false, - groups = {pickaxey = 2, building_block = 1, waxed = 1}, - sounds = mcl_sounds.node_sound_metal_defaults(), - _mcl_blast_resistance = 6, - _mcl_hardness = 5, - _mcl_stripped_variant = "mcl_copper:block_oxidized_cut", -}) - -mcl_stairs.register_slab("copper_cut", "mcl_copper:block_cut", - {pickaxey = 2, oxidizable = 1}, - {"mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png"}, - S("Slab of Cut Copper"), - nil, nil, nil, - S("Double Slab of Cut Copper")) - -mcl_stairs.register_slab("waxed_copper_cut", "mcl_copper:waxed_block_cut", - {pickaxey = 2, waxed = 1}, - {"mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png"}, - S("Waxed Slab of Cut Copper"), - nil, nil, nil, - S("Waxed Double Slab of Cut Copper")) - -mcl_stairs.register_slab("copper_exposed_cut", "mcl_copper:block_exposed_cut", - {pickaxey = 2, oxidizable = 1}, - {"mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png"}, - S("Slab of Exposed Cut Copper"), - nil, nil, nil, - S("Double Slab of Exposed Cut Copper")) - -mcl_stairs.register_slab("waxed_copper_exposed_cut", "mcl_copper:waxed_block_exposed_cut", - {pickaxey = 2, waxed = 1}, - {"mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png"}, - S("Waxed Slab of Exposed Cut Copper"), - nil, nil, nil, - S("Waxed Double Slab of Exposed Cut Copper")) - -mcl_stairs.register_slab("copper_weathered_cut", "mcl_copper:block_weathered_cut", - {pickaxey = 2, oxidizable = 1}, - {"mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png"}, - S("Slab of Weathered Cut Copper"), - nil, nil, nil, - S("Double Slab of Weathered Cut Copper")) - -mcl_stairs.register_slab("waxed_copper_weathered_cut", "mcl_copper:waxed_block_weathered_cut", - {pickaxey = 2, waxed = 1}, - {"mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png"}, - S("Waxed Slab of Weathered Cut Copper"), - nil, nil, nil, - S("Waxed Double Slab of Weathered Cut Copper")) - -mcl_stairs.register_slab("copper_oxidized_cut", "mcl_copper:block_oxidized_cut", - {pickaxey = 2}, - {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, - S("Slab of Oxidized Cut Copper"), - nil, nil, nil, - S("Double Slab of Oxidized Cut Copper")) - -mcl_stairs.register_slab("waxed_copper_oxidized_cut", "mcl_copper:waxed_block_oxidized_cut", - {pickaxey = 2, waxed = 1}, - {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, - S("Waxed Slab of Oxidized Cut Copper"), - nil, nil, nil, - S("Waxed Double Slab of Oxidized Cut Copper")) - -mcl_stairs.register_stair("copper_cut", "mcl_copper:block_cut", - {pickaxey = 2, oxidizable = 1}, - {"mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png"}, - S("Stairs of Cut Copper"), - nil, 6, nil, - "woodlike") - -mcl_stairs.register_stair("waxed_copper_cut", "mcl_copper:waxed_block_cut", - {pickaxey = 2, waxed = 1}, - {"mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png", "mcl_copper_block_cut.png"}, - S("Waxed Stairs of Cut Copper"), - nil, 6, nil, - "woodlike") - -mcl_stairs.register_stair("copper_exposed_cut", "mcl_copper:block_exposed_cut", - {pickaxey = 2, oxidizable = 1}, - {"mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png"}, - S("Stairs of Exposed Cut Copper"), - nil, 6, nil, - "woodlike") - -mcl_stairs.register_stair("waxed_copper_exposed_cut", "mcl_copper:waxed_block_exposed_cut", - {pickaxey = 2, waxed = 1}, - {"mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png", "mcl_copper_exposed_cut.png"}, - S("Waxed Stairs of Exposed Cut Copper"), - nil, 6, nil, - "woodlike") - -mcl_stairs.register_stair("copper_weathered_cut", "mcl_copper:block_weathered_cut", - {pickaxey = 2, oxidizable = 1}, - {"mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png"}, - S("Stairs of Weathered Cut Copper"), - nil, 6, nil, - "woodlike") - -mcl_stairs.register_stair("waxed_copper_weathered_cut", "mcl_copper:waxed_block_weathered_cut", - {pickaxey = 2, waxed = 1}, - {"mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png", "mcl_copper_weathered_cut.png"}, - S("Waxed Stairs of Weathered Cut Copper"), - nil, 6, nil, - "woodlike") - -mcl_stairs.register_stair("copper_oxidized_cut", "mcl_copper:block_oxidized_cut", - {pickaxey = 2}, - {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, - S("Stairs of Oxidized Cut Copper"), - nil, 6, nil, - "woodlike") - -mcl_stairs.register_stair("waxed_copper_oxidized_cut", "mcl_copper:waxed_block_oxidized_cut", - {pickaxey = 2, waxed = 1}, - {"mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png", "mcl_copper_oxidized_cut.png"}, - S("Waxed Stairs of Oxidized Cut Copper"), - nil, 6, nil, - "woodlike") diff --git a/mods/ITEMS/mcl_deepslate/init.lua b/mods/ITEMS/mcl_deepslate/init.lua index 0abb0c579..27e10ef97 100644 --- a/mods/ITEMS/mcl_deepslate/init.lua +++ b/mods/ITEMS/mcl_deepslate/init.lua @@ -111,7 +111,7 @@ for _, p in pairs(deepslate_ores) do end if copper_mod then - register_deepslate_ore("Copper", "mcl_copper:raw_copper", "mcl_copper:copper_ingot", 4, 4) + register_deepslate_ore("Copper", "mcl_copper:raw_copper", "mcl_copper:copper_ingot", 3, 4) end local redstone_timer = 68.28 diff --git a/mods/ITEMS/mcl_honey/init.lua b/mods/ITEMS/mcl_honey/init.lua index a870e7c08..5471f06f0 100644 --- a/mods/ITEMS/mcl_honey/init.lua +++ b/mods/ITEMS/mcl_honey/init.lua @@ -8,23 +8,34 @@ local S = minetest.get_translator(minetest.get_current_modname()) local alldirs = { { x = 0, y = 0, z = 1 }, { x = 1, y = 0, z = 0 }, { x = 0, y = 0, z = -1 }, { x = -1, y = 0, z = 0 }, { x = 0, y = -1, z = 0 }, { x = 0, y = 1, z = 0 } } -- Waxing Function -function mcl_honey.wax_block(pos, node, player, itemstack) +function mcl_honey.wax_block(pos, node, player, itemstack, pointed_thing) -- prevent modification of protected nodes. - if mcl_util.check_position_protection(pos, player) then - return - end + if mcl_util.check_position_protection(pos, player) then return end + -- Make sure we aren't trying to wax an unknown node local def = minetest.registered_nodes[node.name] + if not def then return itemstack end - if def and def._mcl_waxed_variant then - node.name = def._mcl_waxed_variant - else - return + -- Do right-click action if a handler exists and the player isn't sneaking + if def.on_rightclick and not ( player and player:get_player_control().sneak ) then + return def.on_rightclick(pos, node, player, itemstack, pointed_thing) end + -- We shouldn't try to wax blocks that don't have a waxed variant + if not def._mcl_waxed_variant then return end + + -- Wax the node node.name = def._mcl_waxed_variant - minetest.set_node(pos, node) + minetest.swap_node(pos, node) + + -- Call the node's waxed hook + local hook = def._mcl_on_wax + if hook then hook(pos, node, def) end + + -- Handle the award awards.unlock(player:get_player_name(), "mcl:wax_on") + + -- Deal with the honeycomb if not minetest.is_creative_enabled(player:get_player_name()) then itemstack:take_item() end @@ -46,7 +57,7 @@ minetest.register_craftitem("mcl_honey:honeycomb", { local pos = pointed_thing.under -- wax the block. This is the only viable usage of honeycomb's on_place. If it "fails" to wax, then nothing is changed. - return mcl_honey.wax_block(pos, node, placer, itemstack) + return mcl_honey.wax_block(pos, node, placer, itemstack, pointed_thing) end, }) diff --git a/mods/ITEMS/mcl_itemframes/item_frames_API.lua b/mods/ITEMS/mcl_itemframes/item_frames_API.lua index 3cc1aaccd..b1b59e423 100644 --- a/mods/ITEMS/mcl_itemframes/item_frames_API.lua +++ b/mods/ITEMS/mcl_itemframes/item_frames_API.lua @@ -638,7 +638,7 @@ function mcl_itemframes.create_base_definitions() paramtype = "light", paramtype2 = "facedir", sunlight_propagates = true, - groups = { dig_immediate = 3, deco_block = 1, dig_by_piston = 1, container = 1, attached_node_facedir = 1 }, + groups = { dig_immediate = 3, deco_block = 1, dig_by_piston = 1, container = 1, supported_node_facedir = 1 }, sounds = mcl_sounds.node_sound_defaults(), node_placement_prediction = "", diff --git a/mods/ITEMS/mcl_mangrove/init.lua b/mods/ITEMS/mcl_mangrove/init.lua index e23432a1f..a8ab01370 100644 --- a/mods/ITEMS/mcl_mangrove/init.lua +++ b/mods/ITEMS/mcl_mangrove/init.lua @@ -266,7 +266,7 @@ minetest.register_node("mcl_mangrove:river_water_logged_roots",rwlroots) minetest.register_node("mcl_mangrove:mangrove_mud_roots", { description = S("Muddy Mangrove Roots"), - _tt_help = S("crafted with Mud and Mangrove roots"), + _tt_help = S("Crafted with Mud and Mangrove roots"), _doc_items_longdesc = S("Muddy Mangrove Roots is a block from mangrove swamp.It drowns player a bit inside it."), tiles = { "mcl_mud.png^mcl_mangrove_roots_top.png", diff --git a/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr b/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr index 805666f67..94cc9ac6d 100644 --- a/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr +++ b/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.fr.tr @@ -21,7 +21,7 @@ water logged mangrove roots=racines de palétuvier immergées Mangrove roots, despite being a full block, can be waterlogged and do not flow water out=Les racines de palétuvier sont un bloc plein mais qui peut être immergé et ne remplace pas l'eau. These cannot be crafted yet only occure when get in contact of water.=Elles ne peuvent être fabriquées mais se forment au contact de l'eau. Muddy Mangrove Roots=Racines de palétuvier boueuses -crafted with Mud and Mangrove roots=fabriqué avec de la boue et des racines de palétuvier +Crafted with Mud and Mangrove roots=Fabriqué avec de la boue et des racines de palétuvier Muddy Mangrove Roots is a block from mangrove swamp.It drowns player a bit inside it.=Les racines de palétuvier boueuses sont un bloc du marécage de la mangrove. Il noie un joueur à l'intérieur. Mangrove Door=Porte en palétuvier Wooden doors are 2-block high barriers which can be opened or closed by hand and by a redstone signal.=Les portes en bois sont des barrières hautes à 2 blocs qui peuvent être ouvertes ou fermées à la main et par un signal redstone. diff --git a/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.ja.tr b/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.ja.tr index 3191b3d7a..e5b826bb7 100644 --- a/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.ja.tr +++ b/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.ja.tr @@ -21,7 +21,7 @@ water logged mangrove roots=水没したマングローブの根 Mangrove roots, despite being a full block, can be waterlogged and do not flow water out=マングローブの根は、フルブロックであるにもかかわらず水没することがあり、水が流出しない These cannot be crafted yet only occure when get in contact of water.=これはクラフトできないものの、水と接触したときだけ発生します。 Muddy Mangrove Roots=泥に塗れたマングローブの根 -crafted with Mud and Mangrove roots=泥とマングローブの根で作られたもの +Crafted with Mud and Mangrove roots=泥とマングローブの根で作られたもの Muddy Mangrove Roots is a block from mangrove swamp.It drowns player a bit inside it.=泥に塗れたマングローブの根は、マングローブの沼地から1ブロックの場所にあります。 Mangrove Door=マングローブのドア Wooden doors are 2-block high barriers which can be opened or closed by hand and by a redstone signal.=木製のドアは、高さ2ブロックの障壁で、手やレッドストーンの信号で開閉できます。 diff --git a/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.pt_BR.tr b/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.pt_BR.tr index fc26a7531..07b1f4826 100644 --- a/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.pt_BR.tr +++ b/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.pt_BR.tr @@ -21,7 +21,7 @@ water logged mangrove roots=Raízes de Mangue Alagadas Mangrove roots, despite being a full block, can be waterlogged and do not flow water out=Raízes de mangue, mesmo sendo um bloco inteiro, podem ser alagadas e não escorre água delas. These cannot be crafted yet only occure when get in contact of water.=Essas não podem ser fabricadas ainda ocorrendo apenas quando tem contato com a água. Muddy Mangrove Roots=Raízes Barrentas de Mangue -crafted with Mud and Mangrove roots=Fabricadas com barro e raízes de mangue +Crafted with Mud and Mangrove roots=Fabricadas com barro e raízes de mangue Muddy Mangrove Roots is a block from mangrove swamp.It drowns player a bit inside it.=Raízes barrentas de mangue é um bloco dos pântanos de mangue. Afunda o jogador um pouco para dentro de si. Mangrove Door=Porta de Mangue Wooden doors are 2-block high barriers which can be opened or closed by hand and by a redstone signal.=Portas de madeira são barreiras de 2 blocos de altura as quais podem ser abertas ou fechadas pela mão e por um sinal de redstone. diff --git a/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.ru.tr b/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.ru.tr index b36fa5a0d..c16f757cf 100644 --- a/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.ru.tr +++ b/mods/ITEMS/mcl_mangrove/locale/mcl_mangrove.ru.tr @@ -21,7 +21,7 @@ water logged mangrove roots=Затопленные мангровые корни Mangrove roots, despite being a full block, can be waterlogged and do not flow water out=Мангровые корни, не смотря на то что это полный блок, может быть затоплен и не выпускать воду наружу. These cannot be crafted yet only occure when get in contact of water.=Нельзя скрафтить, появляется только при контакте с водой. Muddy Mangrove Roots=Грязные мангровые корни -crafted with Mud and Mangrove roots=Крафтится с помощью грязи и мангровых корней +Crafted with Mud and Mangrove roots=Крафтится с помощью грязи и мангровых корней Muddy Mangrove Roots is a block from mangrove swamp.It drowns player a bit inside it.=Грязные мангровые корни это блок из мангровых болот. Игрок немного погружается внутрь них. Mangrove Door=Мангровая дверь Wooden doors are 2-block high barriers which can be opened or closed by hand and by a redstone signal.=Деревянные двери это преграды высотой в 2 блока, которые можно открывать и закрывать вручную и по сигналу редстоуна. diff --git a/mods/ITEMS/mcl_mangrove/locale/template.txt b/mods/ITEMS/mcl_mangrove/locale/template.txt index 71c713d16..cc0fccf48 100644 --- a/mods/ITEMS/mcl_mangrove/locale/template.txt +++ b/mods/ITEMS/mcl_mangrove/locale/template.txt @@ -21,7 +21,7 @@ water logged mangrove roots= Mangrove roots, despite being a full block, can be waterlogged and do not flow water out= These cannot be crafted yet only occure when get in contact of water.= Muddy Mangrove Roots= -crafted with Mud and Mangrove roots= +Crafted with Mud and Mangrove roots= Muddy Mangrove Roots is a block from mangrove swamp.It drowns player a bit inside it.= Mangrove Door= Wooden doors are 2-block high barriers which can be opened or closed by hand and by a redstone signal.= diff --git a/mods/ITEMS/mcl_potions/API.md b/mods/ITEMS/mcl_potions/API.md index be0784e22..2bcef0c71 100644 --- a/mods/ITEMS/mcl_potions/API.md +++ b/mods/ITEMS/mcl_potions/API.md @@ -66,6 +66,33 @@ This section describes parts of the API related to defining and managing effects `mcl_potions.get_effect(object, effect_name)` - returns a table containing values of the effect of the ID `effect_name` on the `object` if the object has the named effect, `false` otherwise. +* table returned by the above function is like this: +```lua + effect = { + dur = float -- duration of the effect in seconds, may be infinite + timer = float -- how much of the duration (in seconds) has already elapsed + no_particles = bool -- if this is true, no particles signifying this effect will appear + + -- player-only fields + hud_index = int -- position in the HUD used by this effect (icon, level, timer) - probably meaningless outside mcl_potions + + -- optional fields + factor = float -- power of the effect if the effect uses factor; this may mean different things depending on the effect + step = float -- how often (in seconds) the on_step() function of the effect is executed, if it exists + hit_timer = float -- how much of the step (in seconds) has already elapsed + + -- effect-specific fields + -- effects in mcl_potions have their own fields here, for now external effects can't add any here + blocked = bool -- used by conduit power + high = bool -- used by nausea + vignette = int -- handle to the HUD vignette of the effect, used by effects that use one + absorb = float -- "HP" of the absorption effect + waypoints = table -- used by glowing, indexed by player ObjectRef, contains HUD handles for the glowing waypoints + flash = float -- used by darkness, denotes vision range modifier + flashdir = bool -- used by darkness, denotes whether vision range is increasing (or decreasing) + } +``` + `mcl_potions.get_effect_level(object, effect_name)` – returns the level of the effect of the ID `effect_name` on the `object`. If the effect has no levels, returns `1`. If the object doesn't have the effect, returns `0`. If the effect is not registered, returns `nil`. @@ -120,6 +147,7 @@ This section describes parts of the API related to defining and managing effects #### Internally registered effects You can't register effects going by these names, because they are already used: + * `invisibility` * `poison` * `regeneration` diff --git a/mods/ITEMS/mcl_potions/functions.lua b/mods/ITEMS/mcl_potions/functions.lua index 460a1cb8f..90ac35004 100644 --- a/mods/ITEMS/mcl_potions/functions.lua +++ b/mods/ITEMS/mcl_potions/functions.lua @@ -372,7 +372,9 @@ mcl_potions.register_effect({ playerphysics.add_physics_factor(object, "gravity", "mcl_potions:slow_falling", 0.5) end, on_step = function(dtime, object, factor, duration) - local vel = object:get_velocity().y + local vel = object:get_velocity() + if not vel then return end + vel = vel.y if vel < -3 then object:add_velocity(vector.new(0,-3-vel,0)) end end, on_end = function(object) @@ -430,7 +432,9 @@ mcl_potions.register_effect({ return S("moves body upwards at @1 nodes/s", factor) end, on_step = function(dtime, object, factor, duration) - local vel = object:get_velocity().y + local vel = object:get_velocity() + if not vel then return end + vel = vel.y if vel []= [] +Invisibility=Invisibilité +body is invisible=le corps est invisible + +Poison=Poison +-1 HP / @1 s=-1 PV / @1 s + +Regeneration=Régénération ++1 HP / @1 s=+1 PV / @1 s + +Strength=Force ++@1% melee damage=+@1% dégâts de mêlée + +Weakness=Faiblesse +-@1% melee damage=-@1% dégâts de mêlée + +Water Breathing=Respiration aquatique +limitless breathing under water=respiration illimitée sous l'eau + +Dolphin's Grace=Grâce du dauphin +swimming gracefully=nage gracieuse + +Leaping=Saut ++@1% jumping power=+@1% puissance de saut +-@1% jumping power=-@1% puissance de saut + +Slow Falling=Chute lente +decreases gravity effects=diminue les effets de la gravité + +Swiftness=Rapidité ++@1% running speed=+@1% vitesse de course + +Slowness=Lenteur +-@1% running speed=-@1% vitesse de course + +Levitation=Lévitation +moves body upwards at @1 nodes/s=déplace le corps vers le haut à @1 nœuds/s + +Night Vision=Vision nocturne +improved vision during the night=améliore la vision durant la nuit + +Darkness=Obscurité +surrounded by darkness=entouré d'obscurité +not seeing anything beyond @1 nodes=ne vois rien au-delà de @1 nœuds + +Glowing=Surbrillance +more visible at all times=plus visible en permanence + +Health Boost=Bonus de santé +HP increased by @1=PV augmentés de @1 + +Absorption=Absorption +absorbs up to @1 incoming damage=absorbe jusqu'à @1 dégâts reçus + +Fire Resistance=Résistance au feu +resistance to fire damage=resistance aux dégâts du feu + +Resistance=Résistance +resist @1% of incoming damage=résiste à @1% des dégâts reçus + +Luck=Chance + +Bad Luck=Malchance + +Bad Omen=Mauvais présage +danger is imminent=un danger est imminent + +Hero of the Village=Héros du village + +Withering=Dépérissement +-1 HP / @1 s, can kill=-1 PV / @1 s, peut tuer + +Frost=Gel +-1 HP / 1 s, can kill, -@1% running speed=-1 PV / @1 s, peut tuer, -@1% vitesse de course + +Blindness=Cécité +impaired sight=déficience visuelle + +Nausea=Nausée +not feeling very well...=ne se sent pas très bien +frequency: @1 / 1 s=fréquence : @1 / 1 s + +Food Poisoning=Intoxication alimentaire +exhausts by @1 per second=s'épuise de @1 par seconde + +Saturation=Saturation +saturates by @1 per second=sature de @1 par seconde + +Haste=Célérité ++@1% mining and attack speed=+@1% de vitesse d'attaque et de minage + +Fatigue=Fatigue +-@1% mining and attack speed=-@1% de vitesse d'attaque et de minage + +Conduit Power=Force de conduit ++@1% mining and attack speed in water=+@1% de vitesse d'attaque et de minage sous l'eau + + +|heal|list|clear|remove |INF [] [] [NOPART]=|heal|list|clear|remove |INF [] [] [NOPART] + +Add a status effect to yourself. Arguments: : name of status effect. Passing "list" as effect name lists available effects. Passing "heal" as effect name heals (or harms) by amount designed by the next parameter. Passing "clear" as effect name removes all effects. Passing "remove" as effect name removes the effect named by the next parameter. : duration in seconds. Passing "INF" as duration makes the effect infinite. (: amount of healing when the effect is "heal", passing a negative value subtracts health. : name of a status effect to be removed when using "remove" as the previous parameter.) : effect power determinant, bigger level results in more powerful effect for effects that depend on the level (no changes for other effects), defaults to 1, pass F to use low-level factor instead. : effect strength modifier, can mean different things depending on the effect, no changes for effects that do not depend on level/factor. NOPART at the end means no particles will be shown for this effect.=Ajoute un effet de statut à vous-même. Arguments : : nom de l'effet de statut. Utiliser "list" comme nom d'effet liste les effets disponibles. Utiliser "heal" comme nom d'effet soigne (ou blesse) d'un nombre défini par le paramètre suivant. Utiliser "clear" comme nom d'effet enleve tous les effets. Utiliser "remove" comme nom d'effet enlève l'effet nommé dans le paramètre suivant. : durée en secondes. Utiliser "INF" comme durée rends l'effet infini. ( : quantité de soin lorsque l'effet est "heal", utiliser une valeur négative enlève de la santé. : nom de l'effet de statut à enlever lors de l'utilisation de "remove" comme paramètre précédent.) : détermine la puissance de l'effet, un niveau plus élevé se traduit par un effet plus puissant pour les effets qui dépendent du niveau (aucun changement pour les autres effets), défaut à 1, utiliser F pour utiliser un facteur de bas niveau à la place. : effet modificateur de force, peut avoir différentes significations en fonction de l'effet, pas de changement pour les effets qui ne dépendent pas du niveau/facteur. NOPART à la fin signifie qu'aucune particule ne sera affichée pour cet effet. + +Missing effect parameter!=Paramètre d'effet manquant ! +Missing or invalid heal amount parameter!=Paramètre de quantité de soin manquant ou invalide ! +Player @1 healed by @2 HP.=Joueur @1 soigné de @2 PV. +Player @1 harmed by @2 HP.=Joueur @1 blessé de @2 PV. +Effects cleared for player @1=Effets effacés pour le joueur @1 +Removed effect @1 from player @2=Effet @1 enlevé pour le joueur @2 +@1 is not an available status effect.=@1 n'est pas un effet de statut disponible. +Missing or invalid duration parameter!=Paramètre de durée manquant ou invalide ! +Invalid level parameter!=Paramètre de niveau invalide ! +Missing or invalid factor parameter when level is F!=Paramètre de facteur manquant ou invalide quand le niveau est F! + +@1 effect given to player @2 for @3 seconds with factor of @4.=Effet @1 donné au joueur @2 pour @3 seconds avec un facteur de @4. +@1 effect given to player @2 for @3 seconds.=Effet @1 donné au joueur @2 pour @3 seconds. +Giving effect @1 to player @2 failed.=L'attribution de l'effet @1 au joueur @2 a échoué. +@1 effect on level @2 given to player @3 for @4 seconds.=Effet @1 de niveau @2 donné au joueur @3 pendant @4 secondes. + + +A throwable potion that will shatter on impact, where it gives all nearby players and mobs a status effect or a set of status effects.=Une potion jetable qui se brisera à l'impact, où elle donne à tous les joueurs et créatures proches un effet de statut ou un ensemble d'effets de statut. +Use the “Punch” key to throw it.=Utilisez la touche "Frapper" pour la lancer. + + +A throwable potion that will shatter on impact, where it creates a magic cloud that lingers around for a while. Any player or mob inside the cloud will receive the potion's effect or set of effects, possibly repeatedly.=Une potion jetable qui se brisera à l'impact, où elle crée un nuage magique qui persiste pendant un moment. Tout joueur ou mob à l'intérieur du nuage recevra l'effet de la potion ou un ensemble d'effets, peut-être à plusieurs reprises. + + +This particular arrow is tipped and will give an effect when it hits a player or mob.=Cette flèche particulière est enchantée et donnera un effet lorsqu'elle touche un joueur ou un mob. + + +Use the “Place” key to drink it.=Utilisez la touche "Utiliser" pour la boire. +Drinking a potion gives you a particular effect or set of effects.=Boire une potion vous donne un effet particulier ou un ensemble d'effets. + +@1 Potion @2=@1 potion @2 +@1 Potion=Potion @1 +Potion @1=Potion @1 +Strange Potion=Potion étrange + +Splash @1=@1 jetable +Lingering @1=@1 persistante +@1 Arrow @2=@1 flèche @2 +@1 Arrow=Flèche @1 +Arrow @1=Flèche @1 +Strange Tipped Arrow=Flèche à pointe étrange + +Mighty=puissante +of Trolling=de trollage + +Dragon's Breath=Souffle du dragon +This item is used in brewing and can be combined with splash potions to create lingering potions.=Cet objet est utilisé dans le brassage et peut être combiné avec des potions jetables pour créer des potions persistantes. + +Awkward=étrange +No effect=Aucun effet +Has an awkward taste and is used for brewing potions.=A un goût étrange et est utilisée pour préparer des potions. + +Mundane=banale +Has a terrible taste and is not really useful for brewing potions.=A un goût terrible et n'est pas vraiment utile pour préparer des potions. + +Thick=épaisse +Has a bitter taste and may be useful for brewing potions.=A un goût amer et peut être utile pour préparer des potions. + +of Healing=de guérison ++@1 HP=+@1 PV +Instantly heals.=Guérit instantanément + +of Harming=de dégâts +-@1 HP=-@1 PV +Instantly deals damage.=Inflige des dégâts instantanément. + +of Night Vision=de vision nocturne +Increases the perceived brightness of light under a dark sky.=Augmente la luminosité de la lumière perçue sous un ciel sombre. + +of Swiftness=de rapidité +Increases walking speed.=Augmente la vitesse de marche. + +of Slowness=de lenteur +Decreases walking speed.=Diminue la vitesse de marche. + +of Leaping=de saut +Increases jump strength.=Augmente la force de saut. + +of Withering=de dépérissement +Applies the withering effect which deals damage at a regular interval and can kill.=Applique l'effet de dépérissement qui inflige des dégâts à intervalles réguliers et peut tuer. + +of Poison=de poison +Applies the poison effect which deals damage at a regular interval.=Applique l'effet de poison qui inflige des dégâts à intervalles réguliers. + +of Regeneration=de régénération +Regenerates health over time.=Régénère la santé au fil du temps. + +of Invisibility=d'invisibilité +Grants invisibility.=Confère l'invisibilité. + +of Water Breathing=de respiration aquatique +Grants limitless breath underwater.=Confère une respiration illimitée sous l'eau. + +of Fire Resistance=de résistance au feu +Grants immunity to damage from heat sources like fire.=Confère une immunité aux dégâts causés par des sources de chaleur comme le feu. + +of Strength=de force +Increases attack power.=Augmente la puissance d'attaque. + +of Weakness=de faiblesse +Decreases attack power.=Diminue la puissance d'attaque. + +of Slow Falling=de chute lente +Instead of falling, you descend gracefully.=Au lieu de tomber, vous descendez avec grâce. + +of Levitation=de lévitation +Floats body slowly upwards.=Le corps flotte lentement vers le haut. + +of Darkness=d'obscurité +Surrounds with darkness.=Entoure d'obscurité. + +of Glowing=de surbrillance +Highlights for others to see.=Mise en valeur pour que les autres voient. + +of Health Boost=de bonus de santé +Increases health.=Augmente la santé. + +of Absorption=d'absorption +Absorbs some incoming damage.=Absorbe les dégâts reçus. + +of Resistance=de résistance +Decreases damage taken.=Diminue les dégâts subis. + +of Stone Cloak=de manteau de pierre +Decreases damage taken at the cost of speed.=Diminue les dégâts subis au détriment de la vitesse. + +of Luck=de chance +Increases luck.=Augmente la chance. + +of Bad Luck=de malchance +Decreases luck.=Diminue la chance. + +of Frost=de gel +Freezes...=Gèle... + +of Blindness=de cécité +Impairs sight.=Altére la vue. + +of Nausea=de nausée +Disintegrates senses.=Désintègre les sens. + +of Food Poisoning=d'intoxication alimentaire +Moves bowels too fast.=Déplace les intestins trop rapidement. + +of Saturation=de saturation +Satisfies hunger.=Satisfait la faim. + +of Haste=de célérité +Increases digging and attack speed.=Augmente la vitesse de creusage et d'attaque. + +of Fatigue=de fatigue +Decreases digging and attack speed.=Diminue la vitesse de creusage et d'attaque. + +Ominous=funeste +Attracts danger.=Attire le danger. + +Unknown Potion=Potion inconnue +Right-click to identify=Clic droit pour identifier +Unknown Tipped Arrow=Flèche à pointe inconnue -Add a status effect to yourself. Arguments: : name of status effect, e.g. poison. : duration in seconds. : effect strength multiplier (1 @= 100%)=Ajoutez-vous un effet de statut. Arguments: : nom de l'effet de statut, par ex. poison. : durée en secondes. : multiplicateur de force d'effet (1 @= 100%) -Missing effect parameter!=Paramètre d'effet manquant! -Missing or invalid duration parameter!=Paramètre durée manquant ou invalide! -Invalid factor parameter!=Paramètre facteur invalide! -@1 is not an available status effect.=@1 n'est pas un effet disponible. Fermented Spider Eye=Oeil d'araignée fermenté +Try different combinations to create potions.=Essayez différentes combinaisons pour créer des potions. + Glass Bottle=Bouteille en verre Liquid container=Récipient de liquide -A glass bottle is used as a container for liquids and can be used to collect water directly.=Une bouteille en verre est utilisée comme récipient pour les liquides et peut être utilisée pour collecter l'eau directement. +A glass bottle is used as a container for liquids and can be used to collect water directly.=Une bouteille en verre est utilisée comme récipient pour les liquides et peut être utilisée pour recueillir l'eau directement. -To collect water, use it on a cauldron with water (which removes a level of water) or any water source (which removes no water).=Pour collecter l'eau, poser la sur un chaudron avec de l'eau (qui enlève un niveau d'eau) ou toute source d'eau (qui n'enlève pas d'eau). +To collect water, use it on a cauldron with water (which removes a level of water) or any water source (which removes no water).=Pour récolter l'eau, utilisez la sur un chaudron avec de l'eau (qui enlève un niveau d'eau) ou toute source d'eau (qui n'enlève pas d'eau). Water Bottle=Bouteille d'eau -Water bottles can be used to fill cauldrons. Drinking water has no effect.=Les bouteilles d'eau peuvent être utilisées pour remplir les chaudrons. L'eau potable n'a aucun effet. +Water bottles can be used to fill cauldrons. Drinking water has no effect.=Les bouteilles d'eau peuvent être utilisées pour remplir les chaudrons. Boire l'eau n'a aucun effet. Use the “Place” key to drink. Place this item on a cauldron to pour the water into the cauldron.=Utilisez la touche "Utiliser" pour boire. Placez cet article sur un chaudron pour verser l'eau dans le chaudron. River Water Bottle=Bouteille d'eau de rivière -River water bottles can be used to fill cauldrons. Drinking it has no effect.=Les bouteilles d'eau de rivière peuvent être utilisées pour remplir les chaudrons. Le boire n'a aucun effet. +River water bottles can be used to fill cauldrons. Drinking it has no effect.=Les bouteilles d'eau de rivière peuvent être utilisées pour remplir les chaudrons. La boire n'a aucun effet. Use the “Place” key to drink. Place this item on a cauldron to pour the river water into the cauldron.=Utilisez la touche "Utiliser" pour boire. Placez cet objet sur un chaudron pour verser l'eau de la rivière dans le chaudron. @@ -37,79 +293,3 @@ A throwable water bottle that will shatter on impact, where it creates a cloud o Glistering Melon=Melon étincelant This shiny melon is full of tiny gold nuggets and would be nice in an item frame. It isn't edible and not useful for anything else.=Ce melon brillant est plein de minuscules pépites d'or et serait bien dans un cadre d'objet. Il n'est pas comestible et n'est utile à rien d'autre. - -A throwable potion that will shatter on impact, where it creates a magic cloud that lingers around for a while. Any player or mob inside the cloud will receive the potion's effect, possibly repeatedly.=Une potion jetable qui se brisera à l'impact, où elle crée un nuage magique qui persiste pendant un moment. Tout joueur ou mob à l'intérieur du nuage recevra l'effet de la potion, peut-être à plusieurs reprises. - -Use the “Punch” key to throw it.=Utilisez la touche "Frapper" pour le lancer. -Use the “Place” key to drink it.=Utilisez la touche "Utiliser" pour le boire. -Drinking a potion gives you a particular effect.=Boire une potion vous donne un effet particulier. -1 HP/@1s | @2=1 PV/@1s | @2 -@1 HP=@1 PV -@1 Potion=Potion @1 -Splash @1 Potion=Potion @1 jetable -Lingering @1 Potion=Potion @1 persistante -Arrow of @1=Flêche de @1 - II= II - IV= IV -@1 Potion@2=@1 Potion@2 -Splash @1@2 Potion=Potion @1@2 jetable -Lingering @1@2 Potion=Potion @1@2 persistante -Arrow of @1@2=Flêche de @1@2 -@1 + Potion=@1 + Potion -Splash @1 + Potion=Potion @1 + jetable -Lingering @1 + Potion=Potion @1 + persistante -Arrow of @1 +=Flêche de @1 + -Awkward Potion=Potion étrange -Awkward Splash Potion=Potion étrange jetable -Awkward Lingering Potion=Potion étrange persistante -Has an awkward taste and is used for brewing potions.=A un goût étrange et est utilisé pour préparer des potions. -Mundane Potion=Potion banale -Mundane Splash Potion=Potion banale jetable -Mundane Lingering Potion=Potion banale persistante -Has a terrible taste and is not useful for brewing potions.=A un goût terrible et n'est pas utile pour préparer des potions. -Thick Potion=Potion épaisse -Thick Splash Potion=Potion épaisse jetable -Thick Lingering Potion=Potion épaisse persistante -Has a bitter taste and is not useful for brewing potions.=A un goût amer et n'est pas utile pour préparer des potions. -Dragon's Breath=Souffle du dragon - -This item is used in brewing and can be combined with splash potions to create lingering potions.=Cet objet est utilisé dans le brassage et peut être combiné avec des potions d'éclaboussures pour créer des potions persistantes. - -Healing=Guérison -+4 HP=+4 PV -+8 HP=+8 PV -Instantly heals.=Guérit instantanément. -Harming=Dégâts --6 HP=-6 PV --12 HP=-12 PV -Instantly deals damage.=Donne des dégâts instantanément. -Night Vision=Vision Nocturne -Increases the perceived brightness of light under a dark sky.=Augmente la luminosité perçue de la lumière sous un ciel sombre. -Swiftness=Rapidité -Increases walking speed.=Augmente la vitesse de marche. -Slowness=Lenteur -Decreases walking speed.=Diminue la vitesse de marche. -Leaping=Saut -Increases jump strength.=Augmente la force de saut. -Poison=Poison -Applies the poison effect which deals damage at a regular interval.=Applique l'effet de poison qui inflige des dégâts à intervalle régulier. -Regeneration=Régénération -Regenerates health over time.=Régénère la santé au fil du temps. -Invisibility=Invisibilité -Grants invisibility.=Accorde l'invisibilité. -Water Breathing=Respiration aquatique -Grants limitless breath underwater.=Donne une respiration illimitée sous l'eau. -Fire Resistance=Résistance au feu -Grants immunity to damage from heat sources like fire.=Confère une immunité aux dégâts causés par des sources de chaleur comme le feu. -Weakness=Faiblesse -Weakness +=Faiblesse + -Strength=Force -Strength II=Force II -Strength +=Force + -Try different combinations to create potions.=Essayez différentes combinaisons pour créer des potions. -No effect=Aucun effet - -A throwable potion that will shatter on impact, where it gives all nearby players and mobs a status effect.=Une potion jetable qui se brisera à l'impact, où elle donne à tous les joueurs et créatures proches un effet de statut. - -This particular arrow is tipped and will give an effect when it hits a player or mob.=Cette flèche particulière est enchantée et donnera un effet lorsqu'elle touche un joueur ou un mob. - diff --git a/mods/ITEMS/mcl_tools/init.lua b/mods/ITEMS/mcl_tools/init.lua index 266adc6fc..4e159343b 100644 --- a/mods/ITEMS/mcl_tools/init.lua +++ b/mods/ITEMS/mcl_tools/init.lua @@ -393,7 +393,7 @@ local function make_stripped_trunk(itemstack, placer, pointed_thing) if pointed_thing.type ~= "node" then return end local node = minetest.get_node(pointed_thing.under) - local node_name = minetest.get_node(pointed_thing.under).name + local node_name = node.name local noddef = minetest.registered_nodes[node_name] @@ -413,6 +413,9 @@ local function make_stripped_trunk(itemstack, placer, pointed_thing) if noddef._mcl_stripped_variant == nil then return itemstack else + local hook = noddef._mcl_on_strip + if hook then hook(pointed_thing.under, node, noddef) end + minetest.swap_node(pointed_thing.under, {name=noddef._mcl_stripped_variant, param2=node.param2}) if minetest.get_item_group(node_name, "waxed") ~= 0 then awards.unlock(placer:get_player_name(), "mcl:wax_off") diff --git a/mods/ITEMS/xpanes/init.lua b/mods/ITEMS/xpanes/init.lua index 85405308b..26f550874 100644 --- a/mods/ITEMS/xpanes/init.lua +++ b/mods/ITEMS/xpanes/init.lua @@ -159,10 +159,12 @@ function xpanes.register_pane(name, def) _mcl_silk_touch_drop = def._mcl_silk_touch_drop and {"xpanes:" .. name .. "_flat"}, }) - minetest.register_craft({ - output = "xpanes:" .. name .. "_flat 16", - recipe = def.recipe - }) + if def.recipe then + minetest.register_craft({ + output = "xpanes:" .. name .. "_flat 16", + recipe = def.recipe + }) + end if mod_doc and def._doc_items_create_entry ~= false then doc.add_entry_alias("nodes", "xpanes:" .. name .. "_flat", "nodes", "xpanes:" .. name) diff --git a/releasenotes/0_87-the_prismatic_release.md b/releasenotes/0_87-the_prismatic_release.md new file mode 100644 index 000000000..79668b9e5 --- /dev/null +++ b/releasenotes/0_87-the_prismatic_release.md @@ -0,0 +1,168 @@ +## 0.87 – The Prismatic release + +### Contributors +#### New Developers +* rudzik8 +* teknomunk + +#### New Contributors +* PrWalterB +* michaljmalinowski +* nixnoxus +* Potiron +* Tuxilio +* Impulse +* Doods +* SOS-Games +* Bram +* qoheniac + +### Game rename +Based on months of collecting suggestions, analysis and vetting of possible names, community voting and discussion between developers, the rename of the game has reached its conclusion! The project has been renamed to **VoxeLibre**. + +Along with this, a documentation update has been conducted by Herowl, teknomunk and rudzik8. Make sure to check out the updated Contributing Guidelines! + +### Potions and Effects redo +After more than half a year of work, it is finally here! The whole system has been rewritten from the ground up by Herowl. New effects, potions and brewing recipes have been added. Potion tooltips have been reworked. In the HUD you can now see more information about what effects you have at the moment, including level and duration. Beacon has also received more effects and is now quite functional. + +A few new items to be used as brewing ingredients have been added. For now you can obtain them from fishing and trading with villagers. Those items will be made obtainable from other sources and will get more uses, hopefully in the next release. The functionality of some effects is not complete and they are also not obtainable yet (hero of the village and conduit power). + +Some of the old potions and tipped arrows don't work with the new API and have to be converted. To avoid constant rechecking of all inventories, they have been bound to placeholder definitions. What this means is that if you notice weird potions or arrows marked with question marks, you will have to right-click them to run the conversion. A small price to pay for less lag, right? + +Improved support of mobs by the effects and potions, including effects being properly saved on mobs. Despite that, some effects still don't work with mobs, because the mobs' code doesn't support them properly: + +* the following effects don't work with mobs at all: water breathing, dolphin's grace, leaping, swiftness, slowness, slow falling, night vision, darkness, frost, health boost, absorption, fire resistance, resistance, luck, bad luck, blindness, nausea, food poisoning, saturation, haste, fatigue, conduit power +* the following effects should work with mobs: invisibility, regeneration, poison, withering, strength, weakness, levitation, glowing +* the following effects have no effect on mobs (but can be applied with the API): bad omen, hero of the village + +While not everything is available in game, a great API (documented in the module) has been exposed for modders, allowing adding new effects and potions. Potions can now have all sorts of custom effects and multiple effects at once. Effects and potions can now have indefinitely many levels and potentially infinite duration, available with the `/effect` command and the modding API. Effects can still (and even more so than before!) be fine-tuned with factors and abnormal levels, which can sometimes give unexpected results, but it's all left up to modders. + +### Nether Portals rewrite +Another large rework! Thanks to emptyshore, portals to (and from) the Nether now work better than ever, connecting properly to each other. They shouldn't cause unwelcome surprises either, stranding you where you never expected to go, and shouldn't teleport you up into the skies. + +### Mob spawning system +An update by Bakawun improved the mob spawning, optimizing it and making the randomness work better, as well as properly taking into account set spawn chances. This update also changed the mob spawn chances and ratios. + +Another improvement to the system was made by teknomunk, who wrote a new system for spawn position calculation. This enables overhead spawning, among other things allowing for some mob farms to work. + +Also, light and height checking of Slimes has been fixed by Codiac, so they should no longer spawn in large numbers in inappropriate places. + +### Mob improvements +Not only did mob spawning get improved, but mobs themselves did too. + +Rover is a new mob, replacing the enderman. Along with this rework by Herowl and teknomunk, node picking code was refactored and generalized, paving the way for more mobs visibly holding actual items in the future. + +Stalker is another new mob, replacing the creeper. This rework completed by Herowl contains a new camouflage mechanic and otherwise a new look at a well-known concept. + +Ghast received a great update by Bakawun and Herowl. Its hitbox should now work properly, and deflecting the fireballs should work properly again too. Also the achievement for killing a Ghast with a ghast fireball should now be granted properly. + +Sounds for Hoglin/Zoglin, Piglin and skeletons have been updated by Bakawun and should now be used properly. + +Strider received a few fixes by nixnoxus. Breeding, attracting and riding should now work. + +### Eating animation +Eating is no longer instant in survival mode, but delayed instead with the new system designed by Eliy21. + +To signify it properly, Herowl added an animation visible in the first-person mode. + +### New blocks +* Colored End Rod variants by Herowl. +* Colored Redstone Lamps by Herowl. +* Glazed Terracotta Pillars by Potiron. +* Compressed Cobblestone by SmokeyDope. +* Clovers and Four-leaf Clovers by Herowl. +* Hollow logs by JoseDouglas26 and Herowl + +### Capes +Thanks to the changes by chmodsayshello and rudzik8, you can now pick a cape in the character skin customization UI. Thanks for the "Minetest" cape texture to QwertyDragon. + +### Colored leather armor +Leather armor can now be colored (and washed) thanks to AFCMS and Herowl. Aside of the crafting recipes, this added a command and a modding API for this. + +### Cherry blossom particles +The particles of the cherry blossom, which fall from the cherry leaves, have been vastly improved by Wbjitscool and Herowl. Plant some cherry trees and behold the new animation and the wind direction changing 3 times a game day. + +### Signs text editing +Now you can edit the text on signs by right-clicking ("place") on a sign placed in the world, all thanks to Araca. + +### Tool durability tooltips +Yet another feature from Araca, tooltips for tools (and weapons) will now display how much durability they have remaining. Now you have more precise info than just the wearbar! + +### Creative inventory fixes +Items can't be moved around in the creative inventory, tabs there have proper tooltips and searching works on Android with Minetest 5.8+ – all thanks to rudzik8. + +### Help UI – Mobs section +A "Mobs" section added to the Help UI by SOS-Games. Translations may be missing. + +### Texture pack converter +One of our tools, the Python script allowing conversion of Minecraft resource packs (texture-wise) to the Minetest format to work with our game, has received a great update by Impulse and Doods. It should now work with packs from newer versions, but keep in mind that not everything can be automated and the packs may still require some manual fixes (and additions, if you want to cover all of our own features that have no equivalents in Minecraft). + +### New Translation +* Occitan by PrWalterB + +### Translation updates +* Spanish by megustanlosfrijoles +* French by syl +* Polish by Herowl +* German by Tuxilio, Herowl and qoheniac +* Syntax fixes in translation files by megustanlosfrijoles + +### Other changes +* Melon and pumpkin generation – by michaljmalinowski +* Golden rails accelerate carts properly – by nixnoxus +* Elytra Animation works again – by MrRar +* Mobs aggro disabled when damage is disabled – by emptyshore +* Fortune enchantment on hoes works – by JoseDouglas26 +* Typo in pumpkin.lua fixed – by SmokeyDope +* Node rotation at placement improvements – by JoseDouglas26 +* Nylium reverting to netherrack – by JoseDouglas26 +* Hunger debug setting exposed properly – by SmokeyDope +* Nether vine placement fixes – by SmokeyDope +* Survival inventory tabs API fixes – by Impulse +* Cactus damaging mobs – by Eliy21 +* Sweet berry bush slowdown decreased – by Eliy21 +* Fixed scaffolding placement replacing other blocks without a trace – by JoseDouglas26 +* Nodes fireproofing and missing plank recipes added – by Doods +* End Rods now use a proper mesh model – by Herowl +* Piglin bartering improvements – by nixnoxus +* Hopper item movement improved – by teknomunk +* Partial item stack pickup – by teknomunk +* Bone meal node protection check – by CyberMango +* Undeclared variable usage fixed – by nixnoxus +* Biome check when spawning override (API, Skyblock support) – by AncientMariner +* Reimported tga_encoder as subtree (this allows support of some mods) – by Herowl +* Bed placement and destruction fixes – by teknomunk +* Item tooltip shouldn't be modified needlessly (this fixes some bugs causing items to not stack properly) – by Herowl +* Beds now properly ignore players in other dimensions – by nixnoxus +* Stray pixels in leather cap texture removed – by SmokeyDope +* Allow lecterns to be placed on sides of blocks – by JoseDouglas26 +* Fix warnings – by JoseDouglas26 +* Experience from trading – by nixnoxus +* Boats easier to destroy with punching – by Eliy21 +* Horse and Donkey animation fix – by Bakawun +* Villagers won't eat shulker boxes (independent of their food content) anymore – by teknomunk +* Beds now properly ignore players in the wrong dimensions when counting – by nixnoxus +* Shears now wear properly when harvesting comb from a beehive – by teknomunk +* Improved compatibility with mapgen mods – by Bram +* Item frame attachment fixed – by rudzik8 +* Stray pixels in sweet berry textures removed – by rudzik8 +* Warning related to milk bucket fixed – by teknomunk +* Seed is now logged when entering a world – by Nicu +* Startup warnings from mcl_stonecutter fixed – by Herowl +* Sleeping GUI improved – by Nicu +* Description capitalization fix – by syl + +### Special thanks +* To emptyshore, for the in-depth research and testing of the Mob Spawning System rework, as well as his aforementioned Nether Portals system rework. + +### Crash fixes +* Damage animation related crash – by Herowl +* Shields-related crash – by Impulse +* Elytra-related crash – by Herowl +* Damage animation and player invulnerability related crash – by Eliy21 +* Rocket explosion related crash – by Herowl +* New game load crash – by AncientMariner +* XP orbs related crash – by teknomunk +* Ghast fireball related crash – by Araca +* Crash related to server restart while a player is dead – by teknomunk +* Crashes related to the new effects API - by teknomunk and Herowl diff --git a/textures/mcl_copper_block_grate.png b/textures/mcl_copper_block_grate.png new file mode 100644 index 000000000..191ea3790 Binary files /dev/null and b/textures/mcl_copper_block_grate.png differ diff --git a/textures/mcl_copper_exposed_grate.png b/textures/mcl_copper_exposed_grate.png new file mode 100644 index 000000000..a38f06734 Binary files /dev/null and b/textures/mcl_copper_exposed_grate.png differ diff --git a/textures/mcl_copper_oxidized_grate.png b/textures/mcl_copper_oxidized_grate.png new file mode 100644 index 000000000..1dded3aac Binary files /dev/null and b/textures/mcl_copper_oxidized_grate.png differ diff --git a/textures/mcl_copper_weathered_grate.png b/textures/mcl_copper_weathered_grate.png new file mode 100644 index 000000000..279f5531d Binary files /dev/null and b/textures/mcl_copper_weathered_grate.png differ diff --git a/textures/xpanes_pane_copper_block.png b/textures/xpanes_pane_copper_block.png new file mode 100644 index 000000000..f3f7ffa59 Binary files /dev/null and b/textures/xpanes_pane_copper_block.png differ diff --git a/textures/xpanes_pane_copper_exposed.png b/textures/xpanes_pane_copper_exposed.png new file mode 100644 index 000000000..e1ad8dcef Binary files /dev/null and b/textures/xpanes_pane_copper_exposed.png differ diff --git a/textures/xpanes_pane_copper_oxidized.png b/textures/xpanes_pane_copper_oxidized.png new file mode 100644 index 000000000..c6410500a Binary files /dev/null and b/textures/xpanes_pane_copper_oxidized.png differ diff --git a/textures/xpanes_pane_copper_weathered.png b/textures/xpanes_pane_copper_weathered.png new file mode 100644 index 000000000..aa8eecc57 Binary files /dev/null and b/textures/xpanes_pane_copper_weathered.png differ diff --git a/textures/xpanes_top_copper_block.png b/textures/xpanes_top_copper_block.png new file mode 100644 index 000000000..bb6c18e44 Binary files /dev/null and b/textures/xpanes_top_copper_block.png differ diff --git a/textures/xpanes_top_copper_exposed.png b/textures/xpanes_top_copper_exposed.png new file mode 100644 index 000000000..4752ed204 Binary files /dev/null and b/textures/xpanes_top_copper_exposed.png differ diff --git a/textures/xpanes_top_copper_oxidized.png b/textures/xpanes_top_copper_oxidized.png new file mode 100644 index 000000000..414dc05ee Binary files /dev/null and b/textures/xpanes_top_copper_oxidized.png differ diff --git a/textures/xpanes_top_copper_weathered.png b/textures/xpanes_top_copper_weathered.png new file mode 100644 index 000000000..c81cfa4eb Binary files /dev/null and b/textures/xpanes_top_copper_weathered.png differ diff --git a/tools/generate_ingame_credits.lua b/tools/generate_ingame_credits.lua index a484322c0..cfcc637f7 100755 --- a/tools/generate_ingame_credits.lua +++ b/tools/generate_ingame_credits.lua @@ -4,7 +4,7 @@ local colors = { ["Creator of MineClone"] = "0x0A9400", - ["Creator of MineClone2"] = "0xFBF837", + ["Creator of VoxeLibre"] = "0xFBF837", ["Maintainers"] = "0xFF51D5", ["Developers"] = "0xF84355", ["Past Developers"] = "0xF84355",