diff --git a/depends.txt b/depends.txt index eb61028..20e22bd 100644 --- a/depends.txt +++ b/depends.txt @@ -1,2 +1,3 @@ default darkage +unifieddyes? diff --git a/mod_files/coloured_glass.lua b/mod_files/coloured_glass.lua index 6856c14..19076c3 100644 --- a/mod_files/coloured_glass.lua +++ b/mod_files/coloured_glass.lua @@ -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 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