summaryrefslogtreecommitdiff
path: root/ilights/init.lua
blob: d8de447588cc85d5053d7d52bc70d734ace9c629 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
-- Industrial lights mod by DanDuncombe
-- License: CC-By-Sa

ilights = {}

-- Boilerplate to support localized strings if intllib mod is installed.
local S
if minetest.get_modpath("intllib") then
	S = intllib.Getter()
else
	S = function(s) return s end
end

if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then
	ilights.expect_infinite_stacks = false
else
	ilights.expect_infinite_stacks = true
end

ilights.modpath = minetest.get_modpath("ilights")

-- The important stuff!

ilights.types = {
	{"white",		"White",		"#ffffff" },
	{"grey",		"Grey",			"#a0a0a0" },
	{"black",		"Black",		"#000000" },
	{"red",			"Red",			"#ff0000" },
	{"yellow",		"Yellow",		"#ffff00" },
	{"green",		"Green",		"#00ff00" },
	{"cyan",		"Cyan",			"#00ffff" },
	{"blue",		"Blue",			"#0000ff" },
	{"magenta",		"Magenta",		"#ff00ff" },
	{"orange",		"Orange",		"#ff8000" },
	{"violet",		"Violet",		"#8000ff" },
	{"dark_grey",	"Dark Grey",	"#404040" },
	{"dark_green",	"Dark Green",	"#008000" },
	{"pink",		"Pink",			"#ffb0ff" },
	{"brown",		"Brown",		"#604000" },
}

local lamp_cbox = {
	type = "fixed",
	fixed = { -11/32, -8/16, -11/32, 11/32, 4/16, 11/32 }
}

for _, row in ipairs(ilights.types) do
	local name =     row[1]
	local desc =     row[2]
	local colordef = row[3]

	-- Node Definition

	minetest.register_node("ilights:light_"..name, {
		description = desc.." Industrial Light",
	    drawtype = "mesh",
		mesh = "ilights_lamp.obj",
		tiles = {
			"ilights_lamp_base.png",
			"ilights_lamp_cage.png",
			"ilights_lamp_bulb.png^[colorize:"..colordef..":200",
			"ilights_lamp_bulb_base.png",
			"ilights_lamp_lens.png^[colorize:"..colordef.."20:75"
		},
		use_texture_alpha = true,
		groups = {cracky=3},
	    paramtype = "light",
	    paramtype2 = "facedir",
	    light_source = 15,
		selection_box = lamp_cbox,
		collision_box = lamp_cbox,
		on_place = minetest.rotate_node
	})

	if name then

		--Choose craft material
		minetest.register_craft({
			output = "ilights:light_"..name.." 3",
			recipe = {
				{ "",                     "default:steel_ingot",  "" },
				{ "dye:"..name,           "default:glass",        "dye:"..name },
				{ "default:steel_ingot",  "default:torch",        "default:steel_ingot" }
			},
		})

	end
end