convert lavalamps to use param2 coloring

Side effect:  Now all of Unified Dyes' colors can be applied.
This commit is contained in:
Vanessa Ezekowitz 2017-01-29 04:32:26 -05:00
parent 89e3353c5b
commit 59ae86ec0f
15 changed files with 132 additions and 81 deletions

View File

@ -1,84 +1,135 @@
local lavalamps_list = {
{ "Red Lava Lamp", "red"},
{ "Orange Lava Lamp", "orange"},
{ "Yellow Lava Lamp", "yellow"},
{ "Green Lava Lamp", "green"},
{ "Blue Lava Lamp", "blue"},
{ "Violet Lava Lamp", "violet"},
lavalamp = {}
minetest.register_node("lavalamp:lavalamp", {
description = "Lava Lamp",
drawtype = "mesh",
mesh = "lavalamp.obj",
tiles = {
{ name = "lavalamp_metal.png", color = 0xffffffff},
{
name="lavalamp_lamp_anim.png",
animation={
type="vertical_frames",
aspect_w=40,
aspect_h=40,
length=6.0,
},
},
},
inventory_image = "lavalamp_lamp_inv.png",
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette.png",
sunlight_propagates = true,
walkable = false,
light_source = 14,
selection_box = {
type = "fixed",
fixed = { -0.25, -0.5, -0.25, 0.25,0.5, 0.25 },
},
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
after_dig_node = unifieddyes.after_dig_node,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
local itemname = itemstack:get_name()
if string.find(itemname, "dye:") or string.find(itemname, "unifieddyes:") then
unifieddyes.on_rightclick(pos, node, clicker,
itemstack, pointed_thing, "lavalamp:lavalamp", false)
else
node.name = "lavalamp:lavalamp_off"
minetest.swap_node(pos, node)
return itemstack
end
end
})
minetest.register_node("lavalamp:lavalamp_off", {
description = "Lava Lamp (off)",
drawtype = "mesh",
mesh = "lavalamp.obj",
tiles = {
{ name = "lavalamp_metal.png", color = 0xffffffff },
"lavalamp_lamp_off.png",
},
paramtype = "light",
paramtype2 = "color",
palette = "unifieddyes_palette.png",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = { -0.25, -0.5, -0.25, 0.25,0.5, 0.25 },
},
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, not_in_creative_inventory=1},
sounds = default.node_sound_glass_defaults(),
drop = "lavalamp:lavalamp",
after_dig_node = unifieddyes.after_dig_node,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "lavalamp:lavalamp"
minetest.swap_node(pos, node)
return itemstack
end,
})
minetest.register_craft({
output = "lavalamp:lavalamp",
recipe = {
{"", "wool:white", "", },
{"", "bucket:bucket_water", "", },
{"", "wool:black", "", }
}
})
-- convert to param2 coloring
local colors = {
"red",
"orange",
"yellow",
"green",
"blue",
"violet"
}
for i in ipairs(lavalamps_list) do
local lavalampdesc = lavalamps_list[i][1]
local colour = lavalamps_list[i][2]
minetest.register_node("lavalamp:"..colour, {
description = lavalampdesc,
drawtype = "mesh",
mesh = "lavalamp.obj",
tiles = {
"lavalamp_metal.png",
{
name="lavalamp_lamp_anim_"..colour..".png",
animation={
type="vertical_frames",
aspect_w=40,
aspect_h=40,
length=6.0,
},
},
},
inventory_image = "lavalamp_lamp_"..colour.."_inv.png",
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
walkable = false,
light_source = 14,
selection_box = {
type = "fixed",
fixed = { -0.25, -0.5, -0.25, 0.25,0.5, 0.25 },
},
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "lavalamp:"..colour.."_off"
minetest.set_node(pos, node)
return itemstack
end,
})
minetest.register_node("lavalamp:"..colour.."_off", {
description = lavalampdesc.." off",
drawtype = "mesh",
mesh = "lavalamp.obj",
tiles = {
"lavalamp_metal.png",
"lavalamp_lamp_off.png",
},
paramtype = "light",
paramtype2 = "facedir",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = { -0.25, -0.5, -0.25, 0.25,0.5, 0.25 },
},
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, not_in_creative_inventory=1},
sounds = default.node_sound_glass_defaults(),
drop = "lavalamp:"..colour,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
node.name = "lavalamp:"..colour
minetest.set_node(pos, node)
return itemstack
end,
})
minetest.register_craft({
output = "lavalamp:"..colour,
recipe = {
{"", "wool:"..colour, "", },
{"", "bucket:bucket_water", "", },
{"", "wool:black", "", }
}
})
lavalamp.old_static_nodes = {}
for _, color in ipairs(colors) do
table.insert(lavalamp.old_static_nodes, "lavalamp:"..color)
table.insert(lavalamp.old_static_nodes, "lavalamp:"..color.."_off")
end
print(dump(lavalamp.old_static_nodes))
minetest.register_lbm({
name = "lavalamp:convert",
label = "Convert lava lamps to use param2 color",
run_at_every_load = true,
nodenames = lavalamp.old_static_nodes,
action = function(pos, node)
local name = node.name
local newname
local color
if string.find(name, "red") then
color = "red"
elseif string.find(name, "orange") then
color = "orange"
elseif string.find(name, "yellow") then
color = "yellow"
elseif string.find(name, "green") then
color = "green"
elseif string.find(name, "blue") then
color = "blue"
elseif string.find(name, "violet") then
color = "violet"
end
local paletteidx, _ = unifieddyes.getpaletteidx("unifieddyes:"..color, false)
print("LAVALAMP: "..node.name..", "..color.." ("..paletteidx..")")
minetest.set_node(pos, { name = "lavalamp:lavalamp", param2 = paletteidx })
local meta = minetest.get_meta(pos)
meta:set_string("dye", "unifieddyes:"..color)
end
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 82 B

After

Width:  |  Height:  |  Size: 86 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB