mirror of
https://github.com/mt-mods/plantlife_modpack.git
synced 2024-11-14 22:30:38 +01:00
f629f54d43
* bushes ground content minetest default game treats all bush parts as ground content, so we do that here too. The baskets however are player made and placed, so they aren't ground content * cavestuff ground content Pebbles are given to mapgen as decorations, so they have been left as ground content. The stalactites are not ground content * user 'placed' nodes -> not ground content * ground content revision
386 lines
12 KiB
Lua
386 lines
12 KiB
Lua
-----------------------------------------------------------------------------------------------
|
|
-- Dry Plants - Reed 0.0.5
|
|
-----------------------------------------------------------------------------------------------
|
|
-- by Mossmanikin
|
|
-- Looked at code from: darkage, default, stairs
|
|
-- Dependencies: default
|
|
-----------------------------------------------------------------------------------------------
|
|
-- support for i18n
|
|
local S = minetest.get_translator("dryplants")
|
|
|
|
minetest.register_alias("stairs:stair_wetreed", "dryplants:wetreed_roof")
|
|
minetest.register_alias("stairs:slab_wetreed", "dryplants:wetreed_slab")
|
|
minetest.register_alias("stairs:stair_reed", "dryplants:reed_roof")
|
|
minetest.register_alias("stairs:slab_reed", "dryplants:reed_slab")
|
|
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Wet Reed
|
|
-----------------------------------------------------------------------------------------------
|
|
minetest.register_node("dryplants:wetreed", {
|
|
description = S("Wet Reed"),
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
tiles = {"dryplants_reed_wet.png"},
|
|
groups = {snappy=3, flammable=2},
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Wet Reed Slab
|
|
-----------------------------------------------------------------------------------------------
|
|
minetest.register_node("dryplants:wetreed_slab", {
|
|
description = S("Wet Reed Slab"),
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
tiles = {"dryplants_reed_wet.png"},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
|
|
},
|
|
groups = {snappy=3, flammable=2},
|
|
is_ground_content = false,
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Wet Reed Roof
|
|
-----------------------------------------------------------------------------------------------
|
|
minetest.register_node("dryplants:wetreed_roof", {
|
|
description = S("Wet Reed Roof"),
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
tiles = {"dryplants_reed_wet.png"},
|
|
node_box = {
|
|
type = "fixed",
|
|
-- { left , bottom , front , right , top , back }
|
|
fixed = {
|
|
{-1/2, 0, 0, 1/2, 1/2, 1/2},
|
|
{-1/2, -1/2, -1/2, 1/2, 0, 0},
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1/2, 0, 0, 1/2, 1/2, 1/2},
|
|
{-1/2, -1/2, -1/2, 1/2, 0, 0},
|
|
}
|
|
},
|
|
groups = {snappy=3, flammable=2},
|
|
is_ground_content = false,
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
|
|
local CoRNeR = {
|
|
-- MaTeRiaL
|
|
{"wetreed"},
|
|
{"reed"}
|
|
}
|
|
|
|
for i in pairs(CoRNeR) do
|
|
|
|
local MaTeRiaL = CoRNeR[i][1]
|
|
local roof = "dryplants:"..MaTeRiaL.."_roof"
|
|
local corner = "dryplants:"..MaTeRiaL.."_roof_corner"
|
|
local corner_2 = "dryplants:"..MaTeRiaL.."_roof_corner_2"
|
|
|
|
minetest.register_abm({
|
|
nodenames = {roof},
|
|
interval = 1,
|
|
chance = 1,
|
|
action = function(pos)
|
|
|
|
local node_east = minetest.get_node({x=pos.x+1, y=pos.y, z=pos.z })
|
|
local node_west = minetest.get_node({x=pos.x-1, y=pos.y, z=pos.z })
|
|
local node_north = minetest.get_node({x=pos.x, y=pos.y, z=pos.z+1})
|
|
local node_south = minetest.get_node({x=pos.x, y=pos.y, z=pos.z-1})
|
|
-- corner 1
|
|
if ((node_west.name == roof and node_west.param2 == 0)
|
|
or (node_west.name == corner and node_west.param2 == 1))
|
|
and ((node_north.name == roof and node_north.param2 == 3)
|
|
or (node_north.name == corner and node_north.param2 == 3))
|
|
then
|
|
minetest.swap_node(pos, {name=corner, param2=0})
|
|
end
|
|
|
|
if ((node_north.name == roof and node_north.param2 == 1)
|
|
or (node_north.name == corner and node_north.param2 == 2))
|
|
and ((node_east.name == roof and node_east.param2 == 0)
|
|
or (node_east.name == corner and node_east.param2 == 0))
|
|
then
|
|
minetest.swap_node(pos, {name=corner, param2=1})
|
|
end
|
|
|
|
if ((node_east.name == roof and node_east.param2 == 2)
|
|
or (node_east.name == corner and node_east.param2 == 3))
|
|
and ((node_south.name == roof and node_south.param2 == 1)
|
|
or (node_south.name == corner and node_south.param2 == 1))
|
|
then
|
|
minetest.swap_node(pos, {name=corner, param2=2})
|
|
end
|
|
|
|
if ((node_south.name == roof and node_south.param2 == 3)
|
|
or (node_south.name == corner and node_south.param2 == 0))
|
|
and ((node_west.name == roof and node_west.param2 == 2)
|
|
or (node_west.name == corner and node_west.param2 == 2))
|
|
then
|
|
minetest.swap_node(pos, {name=corner, param2=3})
|
|
end
|
|
-- corner 2
|
|
if ((node_west.name == roof and node_west.param2 == 2)
|
|
or (node_west.name == corner_2 and node_west.param2 == 1))
|
|
and ((node_north.name == roof and node_north.param2 == 1)
|
|
or (node_north.name == corner_2 and node_north.param2 == 3))
|
|
then
|
|
minetest.swap_node(pos, {name=corner_2, param2=0})
|
|
end
|
|
|
|
if ((node_north.name == roof and node_north.param2 == 3)
|
|
or (node_north.name == corner_2 and node_north.param2 == 2))
|
|
and ((node_east.name == roof and node_east.param2 == 2)
|
|
or (node_east.name == corner_2 and node_east.param2 == 0))
|
|
then
|
|
minetest.swap_node(pos, {name=corner_2, param2=1})
|
|
end
|
|
|
|
if ((node_east.name == roof and node_east.param2 == 0)
|
|
or (node_east.name == corner_2 and node_east.param2 == 3))
|
|
and ((node_south.name == roof and node_south.param2 == 3)
|
|
or (node_south.name == corner_2 and node_south.param2 == 1))
|
|
then
|
|
minetest.swap_node(pos, {name=corner_2, param2=2})
|
|
end
|
|
|
|
if ((node_south.name == roof and node_south.param2 == 1)
|
|
or (node_south.name == corner_2 and node_south.param2 == 0))
|
|
and ((node_west.name == roof and node_west.param2 == 0)
|
|
or (node_west.name == corner_2 and node_west.param2 == 2))
|
|
then
|
|
minetest.swap_node(pos, {name=corner_2, param2=3})
|
|
end
|
|
|
|
end,
|
|
})
|
|
end
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Wet Reed Roof Corner 1
|
|
-----------------------------------------------------------------------------------------------
|
|
minetest.register_node("dryplants:wetreed_roof_corner", {
|
|
description = S("Wet Reed Roof Corner 1"),
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
tiles = {"dryplants_reed_wet.png"},
|
|
node_box = {
|
|
type = "fixed",
|
|
-- { left , bottom , front , right , top , back }
|
|
fixed = {
|
|
{-1/2, 0, 0, 0, 1/2, 1/2},
|
|
{0, -1/2, 0, 1/2, 0, 1/2},
|
|
{-1/2, -1/2, -1/2, 0, 0, 0},
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1/2, 0, 0, 0, 1/2, 1/2},
|
|
{0, -1/2, 0, 1/2, 0, 1/2},
|
|
{-1/2, -1/2, -1/2, 0, 0, 0},
|
|
}
|
|
},
|
|
groups = {snappy=3, flammable=2},
|
|
is_ground_content = false,
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Wet Reed Roof Corner 2
|
|
-----------------------------------------------------------------------------------------------
|
|
minetest.register_node("dryplants:wetreed_roof_corner_2", {
|
|
description = S("Wet Reed Roof Corner 2"),
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
tiles = {"dryplants_reed_wet.png"},
|
|
node_box = {
|
|
type = "fixed",
|
|
-- { left , bottom , front , right , top , back }
|
|
fixed = {
|
|
{-1/2, -1/2, 0, 0, 0, 1/2},
|
|
{0, 0, 0, 1/2, 1/2, 1/2},
|
|
{-1/2, 0, -1/2, 0, 1/2, 0},
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1/2, -1/2, 0, 0, 0, 1/2},
|
|
{0, 0, 0, 1/2, 1/2, 1/2},
|
|
{-1/2, 0, -1/2, 0, 1/2, 0},
|
|
}
|
|
},
|
|
groups = {snappy=3, flammable=2},
|
|
is_ground_content = false,
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Wet Reed becomes (dry) Reed over time
|
|
-----------------------------------------------------------------------------------------------
|
|
local DRyiNG = {
|
|
-- WeT DRy
|
|
{"dryplants:wetreed", "dryplants:reed"},
|
|
{"dryplants:wetreed_slab", "dryplants:reed_slab"},
|
|
{"dryplants:wetreed_roof", "dryplants:reed_roof"},
|
|
{"dryplants:wetreed_roof_corner", "dryplants:reed_roof_corner"},
|
|
{"dryplants:wetreed_roof_corner_2", "dryplants:reed_roof_corner_2"}
|
|
}
|
|
for i in pairs(DRyiNG) do
|
|
|
|
local WeT = DRyiNG[i][1]
|
|
local DRy = DRyiNG[i][2]
|
|
|
|
minetest.register_abm({
|
|
nodenames = {WeT},
|
|
interval = 3600, --1200, -- 20 minutes: a minetest-day/night-cycle
|
|
chance = 1,
|
|
action = function(pos)
|
|
local direction = minetest.get_node(pos).param2
|
|
minetest.swap_node(pos, {name=DRy, param2=direction})
|
|
end,
|
|
})
|
|
end
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Reed
|
|
-----------------------------------------------------------------------------------------------
|
|
minetest.register_node("dryplants:reed", {
|
|
description = S("Reed"),
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
tiles = {"dryplants_reed.png"},
|
|
groups = {snappy=3, flammable=2},
|
|
is_ground_content = false,
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Reed Slab
|
|
-----------------------------------------------------------------------------------------------
|
|
minetest.register_node("dryplants:reed_slab", {
|
|
description = S("Reed Slab"),
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
tiles = {"dryplants_reed.png"},
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-1/2, -1/2, -1/2, 1/2, 0, 1/2},
|
|
},
|
|
groups = {snappy=3, flammable=2},
|
|
is_ground_content = false,
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Reed Roof
|
|
-----------------------------------------------------------------------------------------------
|
|
minetest.register_node("dryplants:reed_roof", {
|
|
description = S("Reed Roof"),
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
tiles = {"dryplants_reed.png"},
|
|
node_box = {
|
|
type = "fixed",
|
|
-- { left , bottom , front , right , top , back }
|
|
fixed = {
|
|
{-1/2, 0, 0, 1/2, 1/2, 1/2},
|
|
{-1/2, -1/2, -1/2, 1/2, 0, 0},
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1/2, 0, 0, 1/2, 1/2, 1/2},
|
|
{-1/2, -1/2, -1/2, 1/2, 0, 0},
|
|
}
|
|
},
|
|
groups = {snappy=3, flammable=2},
|
|
is_ground_content = false,
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Reed Roof Corner 1
|
|
-----------------------------------------------------------------------------------------------
|
|
minetest.register_node("dryplants:reed_roof_corner", {
|
|
description = S("Reed Roof Corner 1"),
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
tiles = {"dryplants_reed.png"},
|
|
node_box = {
|
|
type = "fixed",
|
|
-- { left , bottom , front , right , top , back }
|
|
fixed = {
|
|
{-1/2, 0, 0, 0, 1/2, 1/2},
|
|
{0, -1/2, 0, 1/2, 0, 1/2},
|
|
{-1/2, -1/2, -1/2, 0, 0, 0},
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1/2, 0, 0, 0, 1/2, 1/2},
|
|
{0, -1/2, 0, 1/2, 0, 1/2},
|
|
{-1/2, -1/2, -1/2, 0, 0, 0},
|
|
}
|
|
},
|
|
groups = {snappy=3, flammable=2},
|
|
is_ground_content = false,
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|
|
|
|
-----------------------------------------------------------------------------------------------
|
|
-- Reed Roof Corner 2
|
|
-----------------------------------------------------------------------------------------------
|
|
minetest.register_node("dryplants:reed_roof_corner_2", {
|
|
description = S("Reed Roof Corner 2"),
|
|
drawtype = "nodebox",
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
tiles = {"dryplants_reed.png"},
|
|
node_box = {
|
|
type = "fixed",
|
|
-- { left , bottom , front , right , top , back }
|
|
fixed = {
|
|
{-1/2, -1/2, 0, 0, 0, 1/2},
|
|
{0, 0, 0, 1/2, 1/2, 1/2},
|
|
{-1/2, 0, -1/2, 0, 1/2, 0},
|
|
}
|
|
},
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {
|
|
{-1/2, -1/2, 0, 0, 0, 1/2},
|
|
{0, 0, 0, 1/2, 1/2, 1/2},
|
|
{-1/2, 0, -1/2, 0, 1/2, 0},
|
|
}
|
|
},
|
|
groups = {snappy=3, flammable=2},
|
|
is_ground_content = false,
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
})
|