303 lines
10 KiB
Lua
303 lines
10 KiB
Lua
local stone_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
|
|
}
|
|
}
|
|
local sstone_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
|
|
}
|
|
}
|
|
|
|
local sq_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.4375, -0.5, -0.4375, 0.4375, -0.3125, 0.4375},
|
|
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
|
|
}
|
|
}
|
|
local s_sq_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.4375, -0.5, -0.4375, 0.4375, 0.5, 0.4375},
|
|
{-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
|
|
}
|
|
}
|
|
local smsq_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.4375, -0.5, -0.4375, -0.0625, -0.3125, -0.0625},
|
|
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
|
|
{-0.4375, -0.5, 0.0625, -0.0625, -0.3125, 0.4375},
|
|
{0.0625, -0.5, -0.4375, 0.4375, -0.3125, -0.0625},
|
|
{0.0625, -0.5, 0.0625, 0.4375, -0.3125, 0.4375},
|
|
}
|
|
}
|
|
local s_smsq_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.4375, -0.5, -0.4375, -0.0625, 0.5, -0.0625},
|
|
{-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
|
|
{-0.4375, -0.5, 0.0625, -0.0625, 0.5, 0.4375},
|
|
{0.0625, -0.5, -0.4375, 0.4375, 0.5, -0.0625},
|
|
{0.0625, -0.5, 0.0625, 0.4375, 0.5, 0.4375},
|
|
}
|
|
}
|
|
local xsmsq_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.4375, -0.5, -0.4375, -0.1875, -0.3125, -0.1875},
|
|
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
|
|
{-0.4375, -0.5, 0.1875, -0.1875, -0.3125, 0.4375},
|
|
{0.1875, -0.5, -0.4375, 0.4375, -0.3125, -0.1875},
|
|
{0.1875, -0.5, 0.1875, 0.4375, -0.3125, 0.4375},
|
|
{-0.4375, -0.5, -0.125, -0.1875, -0.3125, 0.125},
|
|
{-0.125, -0.5, 0.1875, 0.125, -0.3125, 0.4375},
|
|
{-0.125, -0.5, -0.125, 0.125, -0.3125, 0.125},
|
|
{0.1875, -0.5, -0.125, 0.4375, -0.3125, 0.125},
|
|
{-0.125, -0.5, -0.4375, 0.125, -0.3125, -0.1875},
|
|
}
|
|
}
|
|
local s_xsmsq_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.4375, -0.5, -0.4375, -0.1875, 0.5, -0.1875},
|
|
{-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
|
|
{-0.4375, -0.5, 0.1875, -0.1875, 0.5, 0.4375},
|
|
{0.1875, -0.5, -0.4375, 0.4375, 0.5, -0.1875},
|
|
{0.1875, -0.5, 0.1875, 0.4375, 0.5, 0.4375},
|
|
{-0.4375, -0.5, -0.125, -0.1875, 0.5, 0.125},
|
|
{-0.125, -0.5, 0.1875, 0.125, 0.5, 0.4375},
|
|
{-0.125, -0.5, -0.125, 0.125, 0.5, 0.125},
|
|
{0.1875, -0.5, -0.125, 0.4375, 0.5, 0.125},
|
|
{-0.125, -0.5, -0.4375, 0.125, 0.5, -0.1875},
|
|
}
|
|
}
|
|
local paver_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.5, -0.5, 0.3125, -0.3125, -0.3125, 0.5},
|
|
{-0.25, -0.5, 0.3125, -0.0625, -0.3125, 0.5},
|
|
{-0.5, -0.5, 0.0625, -0.0625, -0.3125, 0.25},
|
|
{0, -0.5, 0.0625, 0.1875, -0.3125, 0.5},
|
|
{-0.5, -0.5, -0.4375, -0.3125, -0.3125, 0},
|
|
{-0.25, -0.5, -0.1875, 0.1875, -0.3125, 0},
|
|
{0.25, -0.5, 0.3125, 0.5, -0.3125, 0.5},
|
|
{0.25, -0.5, -0.1875, 0.4375, -0.3125, 0.25},
|
|
{-0.25, -0.5, -0.5, -0.0625, -0.3125, -0.25},
|
|
{0, -0.5, -0.4375, 0.4375, -0.3125, -0.25},
|
|
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
|
|
}
|
|
}
|
|
local spaver_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.5, -0.5, 0.3125, -0.3125, 0.5, 0.5},
|
|
{-0.25, -0.5, 0.3125, -0.0625, 0.5, 0.5},
|
|
{-0.5, -0.5, 0.0625, -0.0625, 0.5, 0.25},
|
|
{0, -0.5, 0.0625, 0.1875, 0.5, 0.5},
|
|
{-0.5, -0.5, -0.4375, -0.3125, 0.5, 0},
|
|
{-0.25, -0.5, -0.1875, 0.1875, 0.5, 0},
|
|
{0.25, -0.5, 0.3125, 0.5, 0.5, 0.5},
|
|
{0.25, -0.5, -0.1875, 0.4375, 0.5, 0.25},
|
|
{-0.25, -0.5, -0.5, -0.0625, 0.5, -0.25},
|
|
{0, -0.5, -0.4375, 0.4375, 0.5, -0.25},
|
|
{-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
|
|
}
|
|
}
|
|
local ashlar_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.5, -0.5, 0.375, -0.375, -0.3125, 0.5},
|
|
{-0.5, -0.5, 0.1875, -0.375, -0.3125, 0.3125},
|
|
{-0.3125, -0.5, 0.1875, -0.0625, -0.3125, 0.5},
|
|
{0, -0.5, 0.375, 0.25, -0.3125, 0.5},
|
|
{0.3125, -0.5, 0.375, 0.5, -0.3125, 0.5},
|
|
{-0.5, -0.5, -0.1875, -0.1875, -0.3125, 0.125},
|
|
{-0.5, -0.5, -0.5, -0.375, -0.3125, -0.25},
|
|
{-0.3125, -0.5, -0.375, -0.1875, -0.3125, -0.25},
|
|
{-0.125, -0.5, -0.0625, -0.0625, -0.3125, 0.125},
|
|
{-0.125, -0.5, -0.375, 0.0625, -0.3125, -0.125},
|
|
{0, -0.5, -0.0625, 0.0625, -0.3125, 0},
|
|
{0, -0.5, 0.0625, 0.3125, -0.3125, 0.3125},
|
|
{0.375, -0.5, 0.1875, 0.5, -0.3125, 0.3125},
|
|
{0.375, -0.5, -0.1875, 0.5, -0.3125, 0.125},
|
|
{0.125, -0.5, -0.1875, 0.3125, -0.3125, 0},
|
|
{0.125, -0.5, -0.375, 0.25, -0.3125, -0.25},
|
|
{-0.3125, -0.5, -0.5, -0.0625, -0.3125, -0.4375},
|
|
{0, -0.5, -0.5, 0.25, -0.3125, -0.4375},
|
|
{0.3125, -0.5, -0.5, 0.5, -0.3125, -0.25},
|
|
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
|
|
}
|
|
}
|
|
local sashlar_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.5, -0.5, 0.375, -0.375, 0.5, 0.5},
|
|
{-0.5, -0.5, 0.1875, -0.375, 0.5, 0.3125},
|
|
{-0.3125, -0.5, 0.1875, -0.0625, 0.5, 0.5},
|
|
{0, -0.5, 0.375, 0.25, 0.5, 0.5},
|
|
{0.3125, -0.5, 0.375, 0.5, 0.5, 0.5},
|
|
{-0.5, -0.5, -0.1875, -0.1875, 0.5, 0.125},
|
|
{-0.5, -0.5, -0.5, -0.375, 0.5, -0.25},
|
|
{-0.3125, -0.5, -0.375, -0.1875, 0.5, -0.25},
|
|
{-0.125, -0.5, -0.0625, -0.0625, 0.5, 0.125},
|
|
{-0.125, -0.5, -0.375, 0.0625, 0.5, -0.125},
|
|
{0, -0.5, -0.0625, 0.0625, 0.5, 0},
|
|
{0, -0.5, 0.0625, 0.3125, 0.5, 0.3125},
|
|
{0.375, -0.5, 0.1875, 0.5, 0.5, 0.3125},
|
|
{0.375, -0.5, -0.1875, 0.5, 0.5, 0.125},
|
|
{0.125, -0.5, -0.1875, 0.3125, 0.5, 0},
|
|
{0.125, -0.5, -0.375, 0.25, 0.5, -0.25},
|
|
{-0.3125, -0.5, -0.5, -0.0625, 0.5, -0.4375},
|
|
{0, -0.5, -0.5, 0.25, 0.5, -0.4375},
|
|
{0.3125, -0.5, -0.5, 0.5, 0.5, -0.25},
|
|
{-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
|
|
}
|
|
}
|
|
local flag_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.5, -0.5, 0.0625, -0.0625, -0.3125, 0.5},
|
|
{-0.5, -0.5, -0.1875, -0.25, -0.3125, 0},
|
|
{-0.5, -0.5, -0.4375, -0.25, -0.3125, -0.25},
|
|
{0, -0.5, 0.3125, 0.4375, -0.3125, 0.5},
|
|
{0, -0.5, 0.0625, 0.1875, -0.3125, 0.25},
|
|
{-0.1875, -0.5, -0.4375, 0.1875, -0.3125, 0},
|
|
{0.25, -0.5, -0.1875, 0.4375, -0.3125, 0.25},
|
|
{0.25, -0.5, -0.4375, 0.5, -0.3125, -0.25},
|
|
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
|
|
}
|
|
}
|
|
local sflag_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.5, -0.5, 0.0625, -0.0625, 0.5, 0.5},
|
|
{-0.5, -0.5, -0.1875, -0.25, 0.5, 0},
|
|
{-0.5, -0.5, -0.4375, -0.25, 0.5, -0.25},
|
|
{0, -0.5, 0.3125, 0.4375, 0.5, 0.5},
|
|
{0, -0.5, 0.0625, 0.1875, 0.5, 0.25},
|
|
{-0.1875, -0.5, -0.4375, 0.1875, 0.5, 0},
|
|
{0.25, -0.5, -0.1875, 0.4375, 0.5, 0.25},
|
|
{0.25, -0.5, -0.4375, 0.5, 0.5, -0.25},
|
|
{-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
|
|
}
|
|
}
|
|
local pin_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.5, -0.5, -0.125, -0.25, -0.3125, 0.5},
|
|
{-0.5, -0.5, -0.4375, 0.125, -0.3125, -0.1875},
|
|
{0.1875, -0.5, -0.4375, 0.4375, -0.3125, 0.1875},
|
|
{-0.1875, -0.5, 0.25, 0.4375, -0.3125, 0.5},
|
|
{-0.1875, -0.5, -0.125, 0.125, -0.3125, 0.1875},
|
|
{-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
|
|
}
|
|
}
|
|
local spin_cbox = {
|
|
type = 'fixed',
|
|
fixed = {
|
|
{-0.5, -0.5, -0.125, -0.25, 0.5, 0.5},
|
|
{-0.5, -0.5, -0.4375, 0.125, 0.5, -0.1875},
|
|
{0.1875, -0.5, -0.4375, 0.4375, 0.5, 0.1875},
|
|
{-0.1875, -0.5, 0.25, 0.4375, 0.5, 0.5},
|
|
{-0.1875, -0.5, -0.125, 0.125, 0.5, 0.1875},
|
|
{-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
|
|
}
|
|
}
|
|
|
|
local stone_types = { --style, desc, img1, img2
|
|
{'square', 'Square', 'concrete', 'square',sq_cbox,s_sq_cbox},
|
|
{'square_sm', 'Small Square', 'concrete', 'square_sm',smsq_cbox,s_smsq_cbox},
|
|
{'square_xsm', 'Extra Small Square', 'concrete', 'square_xsm',xsmsq_cbox,s_xsmsq_cbox},
|
|
{'pavers', 'Paver', 'concrete', 'pavers',paver_cbox,spaver_cbox},
|
|
{'ashlar', 'Ashlar', 'concrete', 'ashlar',ashlar_cbox,sashlar_cbox},
|
|
{'flagstone', 'Flagstone', 'concrete', 'flagstone',flag_cbox,sflag_cbox},
|
|
{'pinwheel', 'Pinwheel', 'concrete', 'pinwheel',pin_cbox,spin_cbox},
|
|
}
|
|
for i in ipairs (stone_types) do
|
|
local style = stone_types[i][1]
|
|
local desc = stone_types[i][2]
|
|
local img1 = stone_types[i][3]
|
|
local img2 = stone_types[i][4]
|
|
local cbox = stone_types[i][5]
|
|
local scbox = stone_types[i][6]
|
|
local color_tab = {
|
|
{'black', 'Black', '^[multiply:#2c2c2c'},
|
|
{'blue', 'Blue', '^[multiply:#0041f4'},
|
|
{'brown', 'Brown', '^[multiply:#6c3800'},
|
|
{'cyan', 'Cyan', '^[multiply:cyan'},
|
|
{'dark_green', 'Dark Green', '^[multiply:#2b7b00'},
|
|
{'dark_grey', 'Dark Grey', '^[multiply:#464646'},
|
|
{'green', 'Green', '^[multiply:#67eb1c'},
|
|
{'grey', 'Grey', '^[multiply:#818181'},
|
|
{'magenta', 'Magenta', '^[multiply:#d80481'},
|
|
{'orange', 'Orange', '^[multiply:#e0601a'},
|
|
{'pink', 'Pink', '^[multiply:#ffa5a5'},
|
|
{'red', 'Red', '^[multiply:#c91818'},
|
|
{'violet', 'Violet', '^[multiply:#480680'},
|
|
{'white', 'White', '^[multiply:white'},
|
|
{'yellow', 'Yellow', '^[multiply:#fcf611'},
|
|
{'cement', 'Concrete', ''},
|
|
}
|
|
|
|
for i in ipairs (color_tab) do
|
|
local col = color_tab[i][1]
|
|
local coldesc = color_tab[i][2]
|
|
local alpha = color_tab[i][3]
|
|
|
|
minetest.register_alias('mylandscaping:stone_'..style,'mylandscaping:stone_'..style..'cement')
|
|
|
|
minetest.register_node('mylandscaping:stone_'..style..col,{
|
|
description = desc..' Patio Stone '..coldesc,
|
|
drawtype = 'nodebox',
|
|
tiles = {
|
|
'mylandscaping_'..img1..'.png^mylandscaping_'..img2..'.png'..alpha,
|
|
'mylandscaping_'..img1..'.png'..alpha,
|
|
'mylandscaping_'..img1..'.png'..alpha,
|
|
'mylandscaping_'..img1..'.png'..alpha,
|
|
'mylandscaping_'..img1..'.png'..alpha,
|
|
'mylandscaping_'..img1..'.png'..alpha,
|
|
},
|
|
paramtype = 'light',
|
|
groups = {cracky = 2, not_in_creative_inventory=ml_visible, ml=1,},
|
|
node_box = cbox,
|
|
selection_box = stone_cbox,
|
|
collision_box = stone_cbox,
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
after_place_node = function(pos, placer, itemstack, pointed_thing)
|
|
local nodeu = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
|
|
if minetest.get_item_group(nodeu, 'sand') > 0 then
|
|
minetest.set_node({x=pos.x, y=pos.y-1, z=pos.z},{name = 'mylandscaping:stone_'..style..'_sand'..col})
|
|
minetest.set_node(pos,{name = 'air'})
|
|
end
|
|
end,
|
|
|
|
})
|
|
minetest.register_node('mylandscaping:stone_'..style..'_sand'..col,{
|
|
description = desc..' Patio Stone in Sand '..coldesc,
|
|
drawtype = 'nodebox',
|
|
tiles = {
|
|
'mylandscaping_'..img1..'.png^mylandscaping_'..img2..'.png'..alpha,
|
|
'mylandscaping_'..img1..'.png'..alpha,
|
|
'mylandscaping_'..img1..'.png'..alpha,
|
|
'mylandscaping_'..img1..'.png'..alpha,
|
|
'mylandscaping_'..img1..'.png'..alpha,
|
|
'mylandscaping_'..img1..'.png'..alpha,
|
|
},
|
|
drop = 'mylandscaping:stone_'..style,
|
|
paramtype = 'light',
|
|
groups = {cracky = 2, not_in_creative_inventory = 1},
|
|
node_box = scbox,
|
|
selection_box = sstone_cbox,
|
|
collision_box = sstone_cbox,
|
|
sounds = default.node_sound_stone_defaults(),
|
|
after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
|
minetest.set_node(pos,{name = 'default:silver_sand'})
|
|
end,
|
|
})
|
|
end
|
|
end
|