-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathstairs.lua
168 lines (138 loc) · 4.16 KB
/
stairs.lua
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
-- stair mods active
local stairs_mod = minetest.get_modpath("stairs")
local stairs_redo = stairs_mod and stairs.mod and stairs.mod == "redo"
local stairs_plus = minetest.global_exists("stairsplus")
-- stair selection function
local do_stair = function(
description, name, node, groups, texture, sound, sunlight, light_source)
if stairs_redo then
stairs.register_all(name, node, groups, texture, description, sound)
elseif stairs_plus then
local mod = "caverealms"
local registrations = {"register_stair", "register_slab", "register_slope",
"register_panel", "register_micro"}
for i, reg in ipairs(registrations) do
stairsplus[reg](stairsplus, mod, name, node, {
description = description,
tiles = {texture[i] or texture[1]},
groups = groups,
sunlight_propagates = sunlight,
light_source = light_source,
sounds = sound
})
end
-- aliases need to be set for previous stairs to avoid unknown nodes
minetest.register_alias_force("stairs:stair_" .. name,
mod .. ":stair_" .. name)
minetest.register_alias_force("stairs:stair_outer_" .. name,
mod .. ":stair_" .. name .. "_outer")
minetest.register_alias_force("stairs:stair_inner_" .. name,
mod .. ":stair_" .. name .. "_inner")
minetest.register_alias_force("stairs:slab_" .. name,
mod .. ":slab_" .. name)
elseif stairs_mod then
stairs.register_stair_and_slab(name, node, groups, texture,
description .. " Stair", description .. " Slab", sound)
end
end
-- Register Stairs (stair mod will be auto-selected)
do_stair(
"Glow Obsidian Brick",
"glow_obsidian_brick",
"caverealms:glow_obsidian_brick",
{cracky = 1, level = 2},
{"caverealms_glow_obsidian_brick.png"},
default.node_sound_stone_defaults(),
false,
7)
do_stair(
"Glow Obsidian Brick",
"glow_obsidian_brick_2",
"caverealms:glow_obsidian_brick_2",
{cracky = 1, level = 2},
{"caverealms_glow_obsidian_brick_2.png"},
default.node_sound_stone_defaults(),
false,
9)
-- Glow Obsidian Glass (stairs registered seperately to use special texture)
local gsides = minetest.settings:get_bool("stairs.glass_sides") ~= false
local face_tex = "caverealms_glow_obsidian_glass.png"
local side_tex = gsides and "caverealms_glow_obsidian_glass_quarter.png" or face_tex
if not stairs_plus and stairs_mod then
stairs.register_stair(
"glow_obsidian_glass",
"caverealms:glow_obsidian_glass",
{cracky = 2},
{side_tex, face_tex, side_tex, side_tex, face_tex, side_tex},
"Glow Obsidian Glass Stair",
default.node_sound_glass_defaults(),
false
)
stairs.register_slab(
"glow_obsidian_glass",
"caverealms:glow_obsidian_glass",
{cracky = 2},
{face_tex, face_tex, side_tex},
"Glow Obsidian Glass Slab",
default.node_sound_glass_defaults(),
false
)
stairs.register_stair_inner(
"glow_obsidian_glass",
"caverealms:glow_obsidian_glass",
{cracky = 2},
{side_tex, face_tex, side_tex, face_tex, face_tex, side_tex},
"",
default.node_sound_glass_defaults(),
false,
"Inner Glow Obsidian Glass Stair"
)
stairs.register_stair_outer(
"glow_obsidian_glass",
"caverealms:glow_obsidian_glass",
{cracky = 2},
{side_tex, face_tex, side_tex, side_tex, side_tex, side_tex},
"",
default.node_sound_glass_defaults(),
false,
"Outer Glow Obsidian Glass Stair"
)
if stairs_redo then
stairs.register_slope(
"glow_obsidian_glass",
"caverealms:glow_obsidian_glass",
{cracky = 2},
{face_tex},
"Glow Obsidian Glass Slope",
default.node_sound_glass_defaults()
)
stairs.register_slope_inner(
"glow_obsidian_glass",
"caverealms:glow_obsidian_glass",
{cracky = 2},
{face_tex},
"Glow Obsidian Glass Inner Slope",
default.node_sound_glass_defaults()
)
stairs.register_slope_outer(
"glow_obsidian_glass",
"caverealms:glow_obsidian_glass",
{cracky = 2},
{face_tex},
"Glow Obsidian Glass Outer Slope",
default.node_sound_glass_defaults()
)
end
end
-- this will use above function to register stairs_plus only nodes
if stairs_plus then
do_stair(
"Glow Obsidian Glass",
"glow_obsidian_glass",
"caverealms:glow_obsidian_glass",
{cracky = 3},
{side_tex, face_tex, face_tex, face_tex, side_tex},
default.node_sound_glass_defaults(),
true,
13)
end