mirror of
https://github.com/D00Med/scifi_nodes.git
synced 2025-06-30 15:10:46 +02:00
registration overhaul (json-based)
This commit is contained in:
191
models.lua
191
models.lua
@ -3,44 +3,45 @@
|
||||
--Licensed under the zlib license.
|
||||
|
||||
function scifi_nodes.register_slope(name, desc, texture, light, soundtype)
|
||||
local sounds
|
||||
if soundtype == "stone" then
|
||||
sounds = scifi_nodes.node_sound_stone_defaults()
|
||||
else
|
||||
sounds = scifi_nodes.node_sound_metal_defaults()
|
||||
end
|
||||
minetest.register_node("scifi_nodes:slope_"..name, {
|
||||
description = desc.." Slope",
|
||||
sunlight_propagates = false,
|
||||
drawtype = "mesh",
|
||||
mesh = "scifi_nodes_slope.obj",
|
||||
tiles = texture,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
|
||||
{-0.5, -0.25, -0.25, 0.5, 0, 0.5},
|
||||
{-0.5, 0, 0, 0.5, 0.25, 0.5},
|
||||
{-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}
|
||||
}
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
|
||||
{-0.5, -0.25, -0.25, 0.5, 0, 0.5},
|
||||
{-0.5, 0, 0, 0.5, 0.25, 0.5},
|
||||
{-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}
|
||||
}
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = "clip",
|
||||
light_source = light,
|
||||
groups = {cracky=1, dig_generic = 3},
|
||||
on_place = minetest.rotate_node,
|
||||
sounds = sounds,
|
||||
})
|
||||
local sounds
|
||||
if soundtype == "stone" then
|
||||
sounds = scifi_nodes.node_sound_stone_defaults()
|
||||
else
|
||||
sounds = scifi_nodes.node_sound_metal_defaults()
|
||||
end
|
||||
|
||||
minetest.register_node("scifi_nodes:slope_"..name, {
|
||||
description = desc.." Slope",
|
||||
sunlight_propagates = false,
|
||||
drawtype = "mesh",
|
||||
mesh = "scifi_nodes_slope.obj",
|
||||
tiles = texture,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
|
||||
{-0.5, -0.25, -0.25, 0.5, 0, 0.5},
|
||||
{-0.5, 0, 0, 0.5, 0.25, 0.5},
|
||||
{-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}
|
||||
}
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
|
||||
{-0.5, -0.25, -0.25, 0.5, 0, 0.5},
|
||||
{-0.5, 0, 0, 0.5, 0.25, 0.5},
|
||||
{-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}
|
||||
}
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
use_texture_alpha = "clip",
|
||||
light_source = light,
|
||||
groups = {cracky=1, dig_generic = 3},
|
||||
on_place = minetest.rotate_node,
|
||||
sounds = sounds,
|
||||
})
|
||||
end
|
||||
|
||||
-- register some blocks in stairsplus if available (part of moreblocks)
|
||||
@ -72,117 +73,3 @@ scifi_nodes.register_slope("bluemetal", "Blue metal", {"scifi_nodes_bluemetal.pn
|
||||
scifi_nodes.register_slope("wall", "Metal wall", {"scifi_nodes_wall.png",}, 0)
|
||||
scifi_nodes.register_slope("rough", "Rough metal", {"scifi_nodes_rough.png",}, 0)
|
||||
scifi_nodes.register_slope("blklt2", "Black stripe light", {"scifi_nodes_black_light2.png",}, 10)
|
||||
|
||||
-- Register Nodes for Stairsplus
|
||||
local node = {}
|
||||
|
||||
node.types = {
|
||||
{"blue", "blue lines"},
|
||||
{"holes", "metal with holes"},
|
||||
{"white2", "plastic",},
|
||||
{"super_white", "Super Plastic", 11, "stone"},
|
||||
{"ultra_white", "Ultra Plastic", minetest.LIGHT_MAX},
|
||||
-- {"engine", "engine", "engine"},
|
||||
{"wall", "metal wall"},
|
||||
{"white", "plastic wall"},
|
||||
{"stripes2top", "dirty metal block"},
|
||||
{"rough", "rough metal"},
|
||||
{"lighttop", "metal block"},
|
||||
{"red", "red lines"},
|
||||
{"green", "green lines"},
|
||||
{"vent2", "vent"},
|
||||
{"stripes", "hazard stripes"},
|
||||
{"rust", "rusty metal"},
|
||||
{"mesh", "metal mesh"},
|
||||
{"black", "black wall"},
|
||||
{"blackoct", "black octagon"},
|
||||
{"blackpipe", "black pipe"},
|
||||
{"blacktile", "black tile"},
|
||||
{"blacktile2", "black tile 2"},
|
||||
{"blackvent", "black vent"},
|
||||
{"bluebars", "blue bars"},
|
||||
{"bluemetal", "blue metal"},
|
||||
{"bluetile", "blue tile"},
|
||||
{"greytile", "grey tile"},
|
||||
{"mesh2", "metal floormesh"},
|
||||
{"pipe", "wall pipe"},
|
||||
{"pipeside", "side pipe"},
|
||||
{"tile", "white tile"},
|
||||
{"whiteoct", "white octagon"},
|
||||
{"whitetile", "white tile2"},
|
||||
{"black_detail", "black detail"},
|
||||
{"green_square", "green metal block"},
|
||||
{"red_square", "red metal block"},
|
||||
{"grey_square", "grey metal block"},
|
||||
{"blue_square", "blue metal block"},
|
||||
{"black_mesh", "black vent block"},
|
||||
{"dent", "dented metal block"},
|
||||
{"greenmetal", "green metal wall"},
|
||||
{"greenmetal2", "green metal wall2"},
|
||||
{"greenlights", "green wall lights", 10},
|
||||
{"greenlights2", "green wall lights2", 10},
|
||||
{"greenbar", "green light bar", 10},
|
||||
{"green2", "green wall panel"},
|
||||
{"greentubes", "green pipes"},
|
||||
{"grey", "grey wall"},
|
||||
{"greybolts", "grey wall bolts"},
|
||||
{"greybars", "grey bars"},
|
||||
{"greydots", "grey wall dots"},
|
||||
{"greygreenbar", "gray power pipe", 10},
|
||||
{"octofloor", "Doom floor"},
|
||||
{"octofloor2", "Brown Doom floor"},
|
||||
{"doomwall1", "Doom wall 1"},
|
||||
{"doomwall2", "Doom wall 2"},
|
||||
{"doomwall3", "Doom wall 3"},
|
||||
{"doomwall4", "Doom wall 4"},
|
||||
{"doomwall41", "Doom wall 4.1"},
|
||||
{"doomwall42", "Doom wall 4.2"},
|
||||
{"doomwall43", "Doom wall 4.3"},
|
||||
{"doomwall431", "Doom wall 4.3.1"},
|
||||
{"doomwall44", "Doom wall 4.4"},
|
||||
{"blackdmg", "Damaged black wall"},
|
||||
{"blackdmgstripe", "Damaged black wall(stripes)"},
|
||||
{"doomengine", "Doom engine wall"},
|
||||
-- {"monitorwall", "Wall monitors", "monitorwall"},
|
||||
{"screen3", "Wall monitor"},
|
||||
{"doomlight", "Doom light", 12},
|
||||
{"bluwllight", "Blue wall light", minetest.LIGHT_MAX},
|
||||
{"bluegrid", "Blue Grid", 5},
|
||||
{"fan", "Fan"},
|
||||
{"ppllght", "Purple wall light", minetest.LIGHT_MAX},
|
||||
{"pplwll", "Purple wall"},
|
||||
{"pplwll2", "Purple wall2"},
|
||||
{"pplwll3", "Purple wall3"},
|
||||
{"pplwll4", "Purple wall4"},
|
||||
{"pplblk", "Purple tile"},
|
||||
{"purple", "Purple node"},
|
||||
{"rock", "Moonstone", nil, "stone"},
|
||||
{"rock2", "Moonstone2", nil, "stone"},
|
||||
{"blackvnt", "Black vent"},
|
||||
{"blackplate", "Black plate"},
|
||||
}
|
||||
|
||||
if minetest.global_exists("stairsplus") then
|
||||
for _, row in ipairs(node.types) do
|
||||
local name = row[1]
|
||||
local soundtype = row[4]
|
||||
local sounds
|
||||
if soundtype == "stone" then
|
||||
sounds = scifi_nodes.node_sound_stone_defaults()
|
||||
else
|
||||
sounds = scifi_nodes.node_sound_metal_defaults()
|
||||
end
|
||||
|
||||
-- Node Definition
|
||||
stairsplus:register_all("scifi_nodes", name, "scifi_nodes:"..name, {
|
||||
description = row[2],
|
||||
tiles = {"scifi_nodes_"..name..".png"},
|
||||
use_texture_alpha = "clip",
|
||||
groups = {cracky=1, dig_generic = 3},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
light_source = row[3],
|
||||
sounds = sounds,
|
||||
})
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user