forked from mtcontrib/homedecor_modpack
split signs_lib from homedecor, put them into their own separate mods
package the two together as a modpack so that regular homedecor users don't see a functional change, but others can take signs_lib and use it as a standalone mod. also get rid of some *~ files
This commit is contained in:
288
homedecor/slopes.lua
Normal file
288
homedecor/slopes.lua
Normal file
@@ -0,0 +1,288 @@
|
||||
-- Various kinds of shingles
|
||||
|
||||
local S = homedecor.gettext
|
||||
|
||||
-- Corner shingle nodes, courtesy Bas080
|
||||
|
||||
homedecor.detail_level = 16
|
||||
|
||||
homedecor.register_outer_corner = function(modname, subname, groups, images, description)
|
||||
local slopeboxedge = {}
|
||||
local detail = homedecor.detail_level
|
||||
for i = 0, detail-1 do
|
||||
slopeboxedge[i+1]={-0.5, -0.5, (i/detail)-0.5, 0.5-(i/detail), (i/detail)-0.5+(1.25/detail), 0.5}
|
||||
end
|
||||
minetest.register_node(modname..":shingle_outer_corner_" .. subname, {
|
||||
description = S(description.. " (outer corner)"),
|
||||
drawtype = "nodebox",
|
||||
tiles = images,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
walkable = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
|
||||
{-0.5, -0.25, -0.25, 0.25, 0, 0.5},
|
||||
{-0.5, 0, 0, 0, 0.25, 0.5},
|
||||
{-0.5, 0.25, 0.25, -0.25, 0.5, 0.5}
|
||||
}
|
||||
},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = slopeboxedge
|
||||
},
|
||||
groups = groups,
|
||||
})
|
||||
end
|
||||
|
||||
homedecor.register_inner_corner = function(modname, subname, groups, images, description)
|
||||
local slopeboxedge = {}
|
||||
local detail = homedecor.detail_level
|
||||
for i = 0, detail-1 do
|
||||
slopeboxedge[i+1]={-0.5, -0.5, -0.5, 0.5-(i/detail), (i/detail)-0.5+(1.25/detail), 0.5}
|
||||
slopeboxedge[i+detail+1]={-0.5, -0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1.25/detail), 0.5}
|
||||
end
|
||||
minetest.register_node(modname..":shingle_inner_corner_" .. subname, {
|
||||
description = S(description.. " (inner corner)"),
|
||||
drawtype = "nodebox",
|
||||
tiles = images,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
walkable = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}
|
||||
},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = slopeboxedge
|
||||
},
|
||||
groups = groups,
|
||||
})
|
||||
end
|
||||
|
||||
homedecor.register_slope = function(modname, subname, recipeitem, groups, images, description)
|
||||
local slopeboxedge = {}
|
||||
local detail = homedecor.detail_level
|
||||
for i = 0, detail-1 do
|
||||
slopeboxedge[i+1]={-0.5, -0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1.25/detail), 0.5}
|
||||
end
|
||||
minetest.register_node(modname..":shingle_side_" .. subname, {
|
||||
description = S(description),
|
||||
drawtype = "nodebox",
|
||||
tiles = images,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
walkable = true,
|
||||
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}
|
||||
}
|
||||
},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = slopeboxedge,
|
||||
},
|
||||
groups = groups,
|
||||
})
|
||||
|
||||
-- convert between flat shingles and slopes
|
||||
|
||||
minetest.register_craft({
|
||||
output = modname..":shingle_side_"..subname.." 3",
|
||||
recipe = {
|
||||
{recipeitem, recipeitem, recipeitem}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = recipeitem.." 3",
|
||||
recipe = {
|
||||
{modname..":shingle_side_"..subname, modname..":shingle_side_"..subname, modname..":shingle_side_"..subname},
|
||||
}
|
||||
})
|
||||
|
||||
-- craft outer corners
|
||||
|
||||
minetest.register_craft({
|
||||
output = modname..":shingle_outer_corner_"..subname.." 3",
|
||||
recipe = {
|
||||
{ "", recipeitem, "" },
|
||||
{ recipeitem, "", recipeitem }
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = modname..":shingle_outer_corner_"..subname.." 3",
|
||||
recipe = {
|
||||
{ "", modname..":shingle_side_"..subname, "" },
|
||||
{ modname..":shingle_side_"..subname, "", modname..":shingle_side_"..subname },
|
||||
}
|
||||
})
|
||||
|
||||
-- craft inner corners
|
||||
|
||||
minetest.register_craft({
|
||||
output = modname..":shingle_inner_corner_"..subname.." 3",
|
||||
recipe = {
|
||||
{recipeitem, recipeitem},
|
||||
{"", recipeitem}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = modname..":shingle_inner_corner_"..subname.." 3",
|
||||
recipe = {
|
||||
{modname..":shingle_side_"..subname, modname..":shingle_side_"..subname},
|
||||
{"", modname..":shingle_side_"..subname}
|
||||
}
|
||||
})
|
||||
-- convert between flat shingles and inner/outer corners
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = recipeitem.." 1",
|
||||
recipe = { modname..":shingle_outer_corner_"..subname }
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = recipeitem.." 1",
|
||||
recipe = { modname..":shingle_inner_corner_"..subname }
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:roof_tile_terracotta 8",
|
||||
recipe = {
|
||||
{ "homedecor:shingle_outer_corner_terracotta", "homedecor:shingle_outer_corner_terracotta" }
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:roof_tile_terracotta 8",
|
||||
recipe = {
|
||||
{ "homedecor:shingle_inner_corner_terracotta", "homedecor:shingle_inner_corner_terracotta" }
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "homedecor:roof_tile_terracotta 8",
|
||||
recipe = {
|
||||
{ "homedecor:shingle_side_terracotta", "homedecor:shingle_side_terracotta" }
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:shingle_inner_corner_wood",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:shingle_outer_corner_wood",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:shingle_side_wood",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
homedecor.register_roof = function(modname, subname, groups, images , description)
|
||||
homedecor.register_outer_corner(modname, subname, groups, images, description)
|
||||
homedecor.register_inner_corner(modname, subname, groups, images, description)
|
||||
end
|
||||
|
||||
-- corners
|
||||
|
||||
homedecor.register_roof("homedecor", "wood",
|
||||
{ snappy = 3 },
|
||||
{
|
||||
"homedecor_shingles_wood_c_t.png",
|
||||
"homedecor_shingles_wood_c_x.png",
|
||||
"homedecor_shingles_wood_c_x.png",
|
||||
"homedecor_shingles_wood_c_x.png",
|
||||
"homedecor_shingles_wood_c_z.png",
|
||||
"homedecor_shingles_wood_c_z.png",
|
||||
},
|
||||
"Wood Shingles"
|
||||
)
|
||||
|
||||
homedecor.register_roof("homedecor", "asphalt",
|
||||
{ snappy = 3 },
|
||||
{
|
||||
"homedecor_shingles_asphalt_c_t.png",
|
||||
"homedecor_shingles_asphalt_c_x.png",
|
||||
"homedecor_shingles_asphalt_c_x.png",
|
||||
"homedecor_shingles_asphalt_c_x.png",
|
||||
"homedecor_shingles_asphalt_c_z.png",
|
||||
"homedecor_shingles_asphalt_c_z.png",
|
||||
},
|
||||
"Asphalt Shingles"
|
||||
)
|
||||
|
||||
homedecor.register_roof("homedecor", "terracotta",
|
||||
{ snappy = 3 },
|
||||
{
|
||||
"homedecor_shingles_terracotta_c_t.png",
|
||||
"homedecor_shingles_terracotta_c_x.png",
|
||||
"homedecor_shingles_terracotta_c_x.png",
|
||||
"homedecor_shingles_terracotta_c_x.png",
|
||||
"homedecor_shingles_terracotta_c_z.png",
|
||||
"homedecor_shingles_terracotta_c_z.png",
|
||||
},
|
||||
"Terracotta Shingles"
|
||||
)
|
||||
|
||||
-- register just the slopes
|
||||
|
||||
homedecor.register_slope("homedecor", "wood",
|
||||
"homedecor:shingles_wood",
|
||||
{ snappy = 3 },
|
||||
{
|
||||
"homedecor_shingles_wood_s_t.png",
|
||||
"homedecor_shingles_wood_s_z.png",
|
||||
"homedecor_shingles_wood_s_z.png",
|
||||
"homedecor_shingles_wood_s_z.png",
|
||||
"homedecor_shingles_wood_s_z.png",
|
||||
"homedecor_shingles_wood_s_z.png",
|
||||
},
|
||||
"Wood Shingles"
|
||||
)
|
||||
|
||||
homedecor.register_slope("homedecor", "asphalt",
|
||||
"homedecor:shingles_asphalt",
|
||||
{ snappy = 3 },
|
||||
{
|
||||
"homedecor_shingles_asphalt_s_t.png",
|
||||
"homedecor_shingles_asphalt_s_z.png",
|
||||
"homedecor_shingles_asphalt_s_z.png",
|
||||
"homedecor_shingles_asphalt_s_z.png",
|
||||
"homedecor_shingles_asphalt_s_z.png",
|
||||
"homedecor_shingles_asphalt_s_z.png",
|
||||
},
|
||||
"Asphalt Shingles"
|
||||
)
|
||||
|
||||
homedecor.register_slope("homedecor", "terracotta",
|
||||
"homedecor:shingles_terracotta",
|
||||
{ snappy = 3 },
|
||||
{
|
||||
"homedecor_shingles_terracotta_s_t.png",
|
||||
"homedecor_shingles_terracotta_s_z.png",
|
||||
"homedecor_shingles_terracotta_s_z.png",
|
||||
"homedecor_shingles_terracotta_s_z.png",
|
||||
"homedecor_shingles_terracotta_s_z.png",
|
||||
"homedecor_shingles_terracotta_s_z.png",
|
||||
},
|
||||
"Terracotta Shingles"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user