246 lines
8.4 KiB
Lua
246 lines
8.4 KiB
Lua
|
--Prefab Redo Mod
|
||
|
--Written by cheapie
|
||
|
--See LICENSE file for license information
|
||
|
|
||
|
minetest.register_alias("prefab:concrete","technic:concrete")
|
||
|
minetest.register_alias("prefab:concrete_wall","prefab_redo:concrete_wall")
|
||
|
minetest.register_alias("prefab:concrete_with_grass","prefab_redo:concrete_with_grass")
|
||
|
minetest.register_alias("prefab:concrete_ladder","prefab_redo:concrete_ladder")
|
||
|
minetest.register_alias("prefab:concrete_door_a","doors:door_concrete_a")
|
||
|
minetest.register_alias("prefab:concrete_door_b","doors:door_concrete_b")
|
||
|
minetest.register_alias("prefab:concrete_fence","prefab_redo:concrete_wall")
|
||
|
minetest.register_alias("prefab:concrete_bollard","prefab_redo:concrete_wall")
|
||
|
minetest.register_alias("prefab:concrete_railing","prefab_redo:concrete_railing")
|
||
|
minetest.register_alias("prefab:concrete_railing_corner","prefab_redo:concrete_railing")
|
||
|
minetest.register_alias("prefab:concrete_catwalk","prefab_redo:concrete_catwalk")
|
||
|
minetest.register_alias("prefab:concrete_bench","prefab_redo:concrete_bench")
|
||
|
|
||
|
minetest.register_node("prefab_redo:concrete_with_grass", {
|
||
|
description = "Concrete with Grass",
|
||
|
sounds = default.node_sound_glass_defaults(),
|
||
|
paramtype = "light",
|
||
|
tiles = {
|
||
|
"default_grass.png",
|
||
|
"basic_materials_concrete_block.png",
|
||
|
"basic_materials_concrete_block.png^default_grass_side.png"
|
||
|
},
|
||
|
groups = {cracky = 1},
|
||
|
})
|
||
|
|
||
|
minetest.register_node("prefab_redo:concrete_wall", {
|
||
|
description = "Concrete Wall",
|
||
|
sounds = default.node_sound_stone_defaults(),
|
||
|
paramtype = "light",
|
||
|
drawtype = "nodebox",
|
||
|
tiles = {"basic_materials_concrete_block.png"},
|
||
|
sunlight_propagates = true,
|
||
|
groups = {cracky = 1},
|
||
|
node_box = {
|
||
|
type = "connected",
|
||
|
fixed = {{-0.3, -0.5, -0.3, 0.3, -0.4, 0.3}, {-0.1, -0.5, -0.1, 0.1, 0.5, 0.1}},
|
||
|
connect_front = {{-0.3, -0.5, -0.5, 0.3, -0.4, 0.3}, {-0.1, -0.5, -0.5, 0.1, 0.5, 0.1}},
|
||
|
connect_back = {{-0.3, -0.5, -0.3, 0.3, -0.4, 0.5}, {-0.1, -0.5, -0.1, 0.1, 0.5, 0.5}},
|
||
|
connect_left = {{-0.5, -0.5, -0.3, 0.3, -0.4, 0.3}, {-0.5, -0.5, -0.1, 0.1, 0.5, 0.1}},
|
||
|
connect_right = {{-0.3, -0.5, -0.3, 0.5, -0.4, 0.3}, {-0.1, -0.5, -0.1, 0.5, 0.5, 0.1}},
|
||
|
},
|
||
|
connects_to = {"prefab_redo:concrete_wall","prefab_redo:concrete_wall_upper"},
|
||
|
on_construct = function(pos)
|
||
|
local node = minetest.get_node(pos)
|
||
|
local pos_above = {x = pos.x,y = pos.y + 1,z = pos.z}
|
||
|
local node_above = minetest.get_node(pos_above)
|
||
|
local pos_below = {x = pos.x,y = pos.y - 1,z = pos.z}
|
||
|
local node_below = minetest.get_node(pos_below)
|
||
|
if node_above.name == "prefab_redo:concrete_wall" then
|
||
|
node_above.name = "prefab_redo:concrete_wall_upper"
|
||
|
minetest.swap_node(pos_above,node_above)
|
||
|
end
|
||
|
if node_below.name == "prefab_redo:concrete_wall" or node_below.name == "prefab_redo:concrete_wall_upper" then
|
||
|
node.name = "prefab_redo:concrete_wall_upper"
|
||
|
minetest.swap_node(pos,node)
|
||
|
end
|
||
|
end,
|
||
|
on_destruct = function(pos)
|
||
|
local node = minetest.get_node(pos)
|
||
|
local pos_above = {x = pos.x,y = pos.y + 1,z = pos.z}
|
||
|
local node_above = minetest.get_node(pos_above)
|
||
|
if node_above.name == "prefab_redo:concrete_wall_upper" then
|
||
|
node_above.name = "prefab_redo:concrete_wall"
|
||
|
minetest.swap_node(pos_above,node_above)
|
||
|
end
|
||
|
end,
|
||
|
})
|
||
|
|
||
|
minetest.register_node("prefab_redo:concrete_wall_upper", {
|
||
|
sounds = default.node_sound_stone_defaults(),
|
||
|
paramtype = "light",
|
||
|
drawtype = "nodebox",
|
||
|
tiles = {"basic_materials_concrete_block.png"},
|
||
|
sunlight_propagates = true,
|
||
|
groups = {cracky = 1,not_in_creative_inventory = 1},
|
||
|
drop = "prefab_redo:concrete_wall",
|
||
|
node_box = {
|
||
|
type = "connected",
|
||
|
fixed = {{-0.1, -0.5, -0.1, 0.1, 0.5, 0.1}},
|
||
|
connect_front = {{-0.1, -0.5, -0.5, 0.1, 0.5, 0.1}},
|
||
|
connect_back = {{-0.1, -0.5, -0.1, 0.1, 0.5, 0.5}},
|
||
|
connect_left = {{-0.5, -0.5, -0.1, 0.1, 0.5, 0.1}},
|
||
|
connect_right = {{-0.1, -0.5, -0.1, 0.5, 0.5, 0.1}},
|
||
|
},
|
||
|
connects_to = {"prefab_redo:concrete_wall","prefab_redo:concrete_wall_upper"},
|
||
|
on_destruct = function(pos)
|
||
|
local node = minetest.get_node(pos)
|
||
|
local pos_above = {x = pos.x,y = pos.y + 1,z = pos.z}
|
||
|
local node_above = minetest.get_node(pos_above)
|
||
|
if node_above.name == "prefab_redo:concrete_wall_upper" then
|
||
|
node_above.name = "prefab_redo:concrete_wall"
|
||
|
minetest.swap_node(pos_above,node_above)
|
||
|
end
|
||
|
end,
|
||
|
})
|
||
|
|
||
|
minetest.register_node("prefab_redo:concrete_ladder", {
|
||
|
description = "Concrete Ladder",
|
||
|
drawtype = "signlike",
|
||
|
tiles = {"basic_materials_concrete_block.png^[mask:prefab_redo_ladder_mask.png^prefab_redo_ladder_overlay.png"},
|
||
|
inventory_image = "basic_materials_concrete_block.png^[mask:prefab_redo_ladder_mask.png^prefab_redo_ladder_overlay.png",
|
||
|
wield_image = "basic_materials_concrete_block.png^[mask:prefab_redo_ladder_mask.png^prefab_redo_ladder_overlay.png",
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "wallmounted",
|
||
|
sunlight_propagates = true,
|
||
|
walkable = false,
|
||
|
climbable = true,
|
||
|
selection_box = {
|
||
|
type = "wallmounted",
|
||
|
},
|
||
|
groups = {cracky = 2},
|
||
|
sounds = default.node_sound_stone_defaults(),
|
||
|
})
|
||
|
|
||
|
doors.register("door_concrete", {
|
||
|
tiles = { "basic_materials_concrete_block.png^prefab_redo_door_resize.png^[mask:prefab_redo_door_mask.png^prefab_redo_door_overlay.png" },
|
||
|
description = "Concrete Door",
|
||
|
inventory_image = "basic_materials_concrete_block.png^prefab_redo_door_overlay_half.png^[mask:prefab_redo_door_mask_half.png",
|
||
|
groups = { snappy=1, cracky=1, oddly_breakable_by_hand=3 },
|
||
|
sounds = default.node_sound_stone_defaults(),
|
||
|
recipe = {
|
||
|
{"technic:concrete", "technic:concrete"},
|
||
|
{"technic:concrete", "default:steel_ingot"},
|
||
|
{"technic:concrete", "technic:concrete"},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
minetest.register_node("prefab_redo:concrete_railing", {
|
||
|
description = "Concrete Railing",
|
||
|
sounds = default.node_sound_stone_defaults(),
|
||
|
paramtype = "light",
|
||
|
drawtype = "nodebox",
|
||
|
tiles = {"basic_materials_concrete_block.png"},
|
||
|
sunlight_propagates = true,
|
||
|
groups = {cracky = 1},
|
||
|
node_box = {
|
||
|
type = "connected",
|
||
|
fixed = {{0.0625,-0.5,0.0625,-0.0625,0.1875,-0.0625}},
|
||
|
connect_front = {{-0.0625,0.1875,-0.5,0.0625,0.3125,0.0625}},
|
||
|
connect_back = {{-0.0625,0.1875,-0.0625,0.0625,0.3125,0.5}},
|
||
|
connect_left = {{-0.5,0.1875,-0.0625,0.0625,0.3125,0.0625}},
|
||
|
connect_right = {{-0.0625,0.1875,-0.0625,0.5,0.3125,0.0625}}
|
||
|
},
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {{-0.5,-0.5,-0.5,0.5,0.3125,0.5}}
|
||
|
},
|
||
|
connects_to = {"prefab_redo:concrete_railing","prefab_redo:concrete_catwalk"}
|
||
|
})
|
||
|
|
||
|
minetest.register_node("prefab_redo:concrete_catwalk",{
|
||
|
description= "Concrete Catwalk",
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
tiles = {"basic_materials_concrete_block.png"},
|
||
|
drawtype = "nodebox",
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.5,-0.5,-0.5,0.5,-0.375,0.5},
|
||
|
{-0.5,-0.5,-0.0625,-0.4375,0.5,0.0625},
|
||
|
{0.4433,-0.5,-0.0625,0.5,0.5,0.0625},
|
||
|
{0.4433,0.4485,-0.5,0.5,0.5,0.5},
|
||
|
{-0.5,0.4485,-0.5,-0.4375,0.5,0.5},
|
||
|
},
|
||
|
},
|
||
|
groups = {cracky = 2},
|
||
|
})
|
||
|
|
||
|
minetest.register_node("prefab_redo:concrete_bench", {
|
||
|
description = "Concrete Bench",
|
||
|
tiles = {"basic_materials_concrete_block.png"},
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
drawtype = "nodebox",
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.125,-0.5,-0.125,0.125,0.0625,0.125},
|
||
|
{-0.5,0.0625,-0.3125,0.5,0.1875,0.3125},
|
||
|
},
|
||
|
},
|
||
|
groups = {cracky = 2},
|
||
|
})
|
||
|
|
||
|
minetest.register_craft({
|
||
|
output = "prefab_redo:concrete_railing 6",
|
||
|
recipe = {
|
||
|
{"","",""},
|
||
|
{"technic:concrete","technic:concrete","technic:concrete"},
|
||
|
{"","technic:concrete",""}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
minetest.register_craft({
|
||
|
output = "prefab_redo:concrete_catwalk 3",
|
||
|
recipe = {
|
||
|
{"","",""},
|
||
|
{"prefab_redo:concrete_railing","","prefab_redo:concrete_railing"},
|
||
|
{"technic:concrete","technic:concrete","technic:concrete"}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
minetest.register_craft({
|
||
|
output = "prefab_redo:concrete_bench 2",
|
||
|
recipe = {
|
||
|
{"","",""},
|
||
|
{"","technic:concrete",""},
|
||
|
{"","prefab_redo:concrete_railing",""}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
minetest.register_craft({
|
||
|
output = "prefab_redo:concrete_with_grass",
|
||
|
type = "shapeless",
|
||
|
recipe = {"technic:concrete","default:junglegrass"}
|
||
|
})
|
||
|
|
||
|
minetest.register_craft({
|
||
|
output = "prefab_redo:concrete_with_grass",
|
||
|
type = "shapeless",
|
||
|
recipe = {"technic:concrete","default:grass_1"}
|
||
|
})
|
||
|
|
||
|
minetest.register_craft({
|
||
|
output = "prefab_redo:concrete_wall 3",
|
||
|
recipe = {
|
||
|
{"","technic:concrete",""},
|
||
|
{"","technic:concrete",""},
|
||
|
{"","technic:concrete",""}
|
||
|
}
|
||
|
})
|
||
|
|
||
|
minetest.register_craft({
|
||
|
output = "prefab_redo:concrete_ladder 14",
|
||
|
recipe = {
|
||
|
{"technic:concrete","","technic:concrete"},
|
||
|
{"technic:concrete","technic:concrete","technic:concrete"},
|
||
|
{"technic:concrete","","technic:concrete"}
|
||
|
}
|
||
|
})
|