Version MFF.
0
lavalamp/README.txt
Normal file → Executable file
4
lavalamp/depends.txt
Normal file → Executable file
@ -1,4 +1,2 @@
|
||||
wool
|
||||
bucket
|
||||
homedecor_i18n
|
||||
unifieddyes
|
||||
bucket
|
222
lavalamp/init.lua
Normal file → Executable file
@ -1,146 +1,82 @@
|
||||
|
||||
local S = homedecor_i18n.gettext
|
||||
|
||||
lavalamp = {}
|
||||
|
||||
minetest.register_node("lavalamp:lavalamp", {
|
||||
description = S("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_extended.png",
|
||||
place_param2 = 240,
|
||||
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, ud_param2_colorable = 1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
after_dig_node = unifieddyes.after_dig_node,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
node.name = "lavalamp:lavalamp_off"
|
||||
minetest.swap_node(pos, node)
|
||||
return itemstack
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node("lavalamp:lavalamp_off", {
|
||||
description = S("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_extended.png",
|
||||
place_param2 = 240,
|
||||
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"
|
||||
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.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")
|
||||
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)
|
||||
node.name = "lavalamp:"..colour.."_off"
|
||||
minetest.set_node(pos, node)
|
||||
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)
|
||||
node.name = "lavalamp:"..colour
|
||||
minetest.set_node(pos, node)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "lavalamp:"..colour,
|
||||
recipe = {
|
||||
{"", "wool:"..colour, "", },
|
||||
{"", "bucket:bucket_water", "", },
|
||||
{"", "wool:black", "", }
|
||||
}
|
||||
})
|
||||
|
||||
end
|
||||
|
||||
minetest.register_lbm({
|
||||
name = "lavalamp:convert",
|
||||
label = "Convert lava lamps to use param2 color",
|
||||
run_at_every_load = false,
|
||||
nodenames = lavalamp.old_static_nodes,
|
||||
action = function(pos, node)
|
||||
local name = node.name
|
||||
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, "extended")
|
||||
|
||||
minetest.set_node(pos, { name = "lavalamp:lavalamp", param2 = paletteidx })
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("dye", "unifieddyes:"..color)
|
||||
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_lbm({
|
||||
name = "lavalamp:recolor",
|
||||
label = "Convert 89-color lamps to use UD extended palette",
|
||||
run_at_every_load = false,
|
||||
nodenames = {
|
||||
"lavalamp:lavalamp",
|
||||
"lavalamp:lavalamp_off"
|
||||
},
|
||||
action = function(pos, node)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_string("palette") ~= "ext" then
|
||||
minetest.swap_node(pos, { name = node.name, param2 = unifieddyes.convert_classic_palette[node.param2] })
|
||||
meta:set_string("palette", "ext")
|
||||
end
|
||||
end
|
||||
})
|
||||
|
0
lavalamp/models/lavalamp.obj
Normal file → Executable file
Before Width: | Height: | Size: 4.7 KiB |
BIN
lavalamp/textures/lavalamp_lamp_anim_blue.png
Executable file
After Width: | Height: | Size: 5.0 KiB |
BIN
lavalamp/textures/lavalamp_lamp_anim_green.png
Executable file
After Width: | Height: | Size: 5.0 KiB |
BIN
lavalamp/textures/lavalamp_lamp_anim_orange.png
Executable file
After Width: | Height: | Size: 5.1 KiB |
BIN
lavalamp/textures/lavalamp_lamp_anim_red.png
Executable file
After Width: | Height: | Size: 5.2 KiB |
BIN
lavalamp/textures/lavalamp_lamp_anim_violet.png
Executable file
After Width: | Height: | Size: 5.1 KiB |
BIN
lavalamp/textures/lavalamp_lamp_anim_yellow.png
Executable file
After Width: | Height: | Size: 5.1 KiB |
BIN
lavalamp/textures/lavalamp_lamp_blue_inv.png
Executable file
After Width: | Height: | Size: 2.7 KiB |
BIN
lavalamp/textures/lavalamp_lamp_green_inv.png
Executable file
After Width: | Height: | Size: 2.8 KiB |
BIN
lavalamp/textures/lavalamp_lamp_off.png
Normal file → Executable file
Before Width: | Height: | Size: 86 B After Width: | Height: | Size: 82 B |
BIN
lavalamp/textures/lavalamp_lamp_orange_inv.png
Executable file
After Width: | Height: | Size: 2.8 KiB |
0
lavalamp/textures/lavalamp_lamp_inv.png → lavalamp/textures/lavalamp_lamp_red_inv.png
Normal file → Executable file
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
lavalamp/textures/lavalamp_lamp_violet_inv.png
Executable file
After Width: | Height: | Size: 2.8 KiB |
BIN
lavalamp/textures/lavalamp_lamp_yellow_inv.png
Executable file
After Width: | Height: | Size: 2.9 KiB |
0
lavalamp/textures/lavalamp_metal.png
Normal file → Executable file
Before Width: | Height: | Size: 152 B After Width: | Height: | Size: 152 B |