Convert to darkage colored nodes if unified dyes aviable

master
adrido 2017-02-22 09:35:42 +01:00
parent 73b3b6524d
commit 95b9ad6f55
2 changed files with 58 additions and 35 deletions

View File

@ -1,2 +1,3 @@
default
darkage
unifieddyes?

View File

@ -1,25 +1,5 @@
minetest.register_node("medieval:glass_square", {
description = "Square Glass",
drawtype = "glasslike",
tiles = { "medieval_square_glass.png" },
paramtype = "light",
use_texture_alpha = true,
sunlight_propagates = true,
sounds = default.node_sound_glass_defaults(),
groups = {cracky=3,oddly_breakable_by_hand=3},
})
minetest.register_node("medieval:glass_round", {
description = "Round Glass",
drawtype = "glasslike",
tiles = { "medieval_round_glass.png" },
paramtype = "light",
use_texture_alpha = true,
sunlight_propagates = true,
sounds = default.node_sound_glass_defaults(),
groups = {cracky=3,oddly_breakable_by_hand=3},
})
minetest.register_alias("medieval:glass_round","darkage:glass_round")
minetest.register_alias("medieval:glass_square","darkage:glass_square")
local function register_square(name, description, colorCode, dye)
@ -39,12 +19,12 @@ local function register_square(name, description, colorCode, dye)
minetest.register_craft({
type = "shapeless",
output = "medieval:glass_square_"..name ,
recipe = {"medieval:glass_square","dye:"..dye,},
recipe = {"darkage:glass_square","dye:"..dye,},
})
minetest.register_craft({
type = "cooking",
output = "medieval:glass_square",
output = "darkage:glass_square",
recipe = "medieval:glass_square_"..name,
cooktime = 10,
})
@ -69,13 +49,13 @@ local function register_round(name, description, colorCode, dye)
minetest.register_craft({
type = "shapeless",
output = "medieval:glass_round_"..name ,
recipe = {"medieval:glass_round","dye:"..dye,},
recipe = {"darkage:glass_round","dye:"..dye,},
})
minetest.register_craft({
type = "cooking",
output = "medieval:glass_round",
output = "darkage:glass_round",
recipe = "medieval:glass_round_"..name,
cooktime = 10,
})
@ -94,7 +74,7 @@ local function register_dimond(name, description, colorCode, dye)
sunlight_propagates = true,
sounds = default.node_sound_glass_defaults(),
groups = {cracky=3,oddly_breakable_by_hand=3},
})
})
-- todo register craft reziep for dimond <name> glass here
minetest.register_craft({
@ -104,7 +84,7 @@ local function register_dimond(name, description, colorCode, dye)
})
minetest.register_craft({
minetest.register_craft({
type = "cooking",
output = "darkage:glass",
recipe = "medieval:glass_dimond_"..name,
@ -112,10 +92,9 @@ local function register_dimond(name, description, colorCode, dye)
})
minetest.register_alias("medieval_craft:medieval_glass_"..name , "medieval:glass_dimond_"..name)
end
colours = {
local colours = {
-- RGB Prime Colours --
{name="red", code="FF000099", description="Red", dye="red"},
{name="green", code="00FF0099", description="Green", dye="green"},
@ -136,9 +115,52 @@ colours = {
{name="darkgrey", code="14141499", description="Dark Grey", dye="dark_grey"}
}
for i,colour in ipairs(colours) do
register_round(colour.name, colour.description, colour.code, colour.dye)
register_square(colour.name, colour.description, colour.code, colour.dye)
register_dimond(colour.name, colour.description, colour.code, colour.dye)
-- register whatever here
local old_nodes = {}
local name_dye_map = {}
-- If unifieddyes installed convert all nodes to darkage
if minetest.get_modpath("unifieddyes") then
for _, colour in ipairs(colours) do
table.insert(old_nodes, "medieval:glass_dimond_"..colour.name)
table.insert(old_nodes, "medieval:glass_round_"..colour.name)
table.insert(old_nodes, "medieval:glass_square_"..colour.name)
name_dye_map[colour.name] = colour.dye;
end
minetest.register_lbm({
name = "medieval:convert_glass",
label = "Convert glass nodes to new darkage param2 colored glass",
run_at_every_load = false,
nodenames = old_nodes,
action = function(pos, node)
local table = string.split(node.name, "_")
local type = table[2]
local name = table[3]
local colorname = name_dye_map[name]
local newnode
local paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..colorname, false)
if type == "dimond" then
newnode = "darkage:milk_glass"
else
newnode = "darkage:milk_glass_"..type
end
minetest.set_node(pos, { name = newnode, param2 = paletteidx })
local meta = minetest.get_meta(pos)
meta:set_string("dye", "dye:"..colorname)
end
})
else
-- Else register colored nodes
for i,colour in ipairs(colours) do
register_round(colour.name, colour.description, colour.code, colour.dye)
register_square(colour.name, colour.description, colour.code, colour.dye)
register_dimond(colour.name, colour.description, colour.code, colour.dye)
-- register whatever here
end
end