214 lines
5.3 KiB
Lua
214 lines
5.3 KiB
Lua
|
-- flowers/init.lua
|
||
|
|
||
|
-- Minetest 0.4 mod: default
|
||
|
-- See README.txt for licensing and other information.
|
||
|
|
||
|
|
||
|
-- Namespace for functions
|
||
|
|
||
|
flowers = {}
|
||
|
|
||
|
-- Load support for MT game translation.
|
||
|
local S = minetest.get_translator("flowers")
|
||
|
|
||
|
|
||
|
--
|
||
|
-- Flowers
|
||
|
--
|
||
|
|
||
|
-- Aliases for original flowers mod
|
||
|
|
||
|
minetest.register_alias("flowers:flower_rose", "flowers:rose")
|
||
|
minetest.register_alias("flowers:flower_tulip", "flowers:tulip")
|
||
|
minetest.register_alias("flowers:flower_dandelion_yellow", "flowers:dandelion_yellow")
|
||
|
minetest.register_alias("flowers:flower_geranium", "flowers:geranium")
|
||
|
minetest.register_alias("flowers:flower_viola", "flowers:viola")
|
||
|
minetest.register_alias("flowers:flower_dandelion_white", "flowers:dandelion_white")
|
||
|
|
||
|
|
||
|
-- Flower registration
|
||
|
|
||
|
local function add_simple_flower(name, desc, box, f_groups)
|
||
|
-- Common flowers' groups
|
||
|
f_groups.snappy = 3
|
||
|
f_groups.flower = 1
|
||
|
f_groups.flora = 1
|
||
|
f_groups.attached_node = 1
|
||
|
|
||
|
minetest.register_node("flowers:" .. name, {
|
||
|
description = desc,
|
||
|
drawtype = "plantlike",
|
||
|
waving = 1,
|
||
|
tiles = {"flowers_" .. name .. ".png"},
|
||
|
inventory_image = "flowers_" .. name .. ".png",
|
||
|
wield_image = "flowers_" .. name .. ".png",
|
||
|
sunlight_propagates = true,
|
||
|
paramtype = "light",
|
||
|
walkable = false,
|
||
|
buildable_to = true,
|
||
|
groups = f_groups,
|
||
|
sounds = default.node_sound_leaves_defaults(),
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = box
|
||
|
}
|
||
|
})
|
||
|
end
|
||
|
|
||
|
flowers.datas = {
|
||
|
{
|
||
|
"rose",
|
||
|
S("Red Rose"),
|
||
|
{-2 / 16, -0.5, -2 / 16, 2 / 16, 5 / 16, 2 / 16},
|
||
|
{color_red = 1, flammable = 1}
|
||
|
},
|
||
|
{
|
||
|
"tulip",
|
||
|
S("Orange Tulip"),
|
||
|
{-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16},
|
||
|
{color_orange = 1, flammable = 1}
|
||
|
},
|
||
|
{
|
||
|
"dandelion_yellow",
|
||
|
S("Yellow Dandelion"),
|
||
|
{-4 / 16, -0.5, -4 / 16, 4 / 16, -2 / 16, 4 / 16},
|
||
|
{color_yellow = 1, flammable = 1}
|
||
|
},
|
||
|
{
|
||
|
"chrysanthemum_green",
|
||
|
S("Green Chrysanthemum"),
|
||
|
{-4 / 16, -0.5, -4 / 16, 4 / 16, -1 / 16, 4 / 16},
|
||
|
{color_green = 1, flammable = 1}
|
||
|
},
|
||
|
{
|
||
|
"geranium",
|
||
|
S("Blue Geranium"),
|
||
|
{-2 / 16, -0.5, -2 / 16, 2 / 16, 2 / 16, 2 / 16},
|
||
|
{color_blue = 1, flammable = 1}
|
||
|
},
|
||
|
{
|
||
|
"viola",
|
||
|
S("Viola"),
|
||
|
{-5 / 16, -0.5, -5 / 16, 5 / 16, -1 / 16, 5 / 16},
|
||
|
{color_violet = 1, flammable = 1}
|
||
|
},
|
||
|
{
|
||
|
"dandelion_white",
|
||
|
S("White Dandelion"),
|
||
|
{-5 / 16, -0.5, -5 / 16, 5 / 16, -2 / 16, 5 / 16},
|
||
|
{color_white = 1, flammable = 1}
|
||
|
},
|
||
|
{
|
||
|
"tulip_black",
|
||
|
S("Black Tulip"),
|
||
|
{-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16},
|
||
|
{color_black = 1, flammable = 1}
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for _,item in pairs(flowers.datas) do
|
||
|
add_simple_flower(unpack(item))
|
||
|
end
|
||
|
|
||
|
|
||
|
--
|
||
|
-- Mushrooms
|
||
|
--
|
||
|
|
||
|
minetest.register_node("flowers:mushroom_red", {
|
||
|
description = S("Red Mushroom"),
|
||
|
tiles = {"flowers_mushroom_red.png"},
|
||
|
inventory_image = "flowers_mushroom_red.png",
|
||
|
wield_image = "flowers_mushroom_red.png",
|
||
|
drawtype = "plantlike",
|
||
|
paramtype = "light",
|
||
|
sunlight_propagates = true,
|
||
|
walkable = false,
|
||
|
buildable_to = true,
|
||
|
groups = {mushroom = 1, snappy = 3, attached_node = 1, flammable = 1},
|
||
|
sounds = default.node_sound_leaves_defaults(),
|
||
|
on_use = minetest.item_eat(-5),
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, -1 / 16, 4 / 16},
|
||
|
}
|
||
|
})
|
||
|
|
||
|
minetest.register_node("flowers:mushroom_brown", {
|
||
|
description = S("Brown Mushroom"),
|
||
|
tiles = {"flowers_mushroom_brown.png"},
|
||
|
inventory_image = "flowers_mushroom_brown.png",
|
||
|
wield_image = "flowers_mushroom_brown.png",
|
||
|
drawtype = "plantlike",
|
||
|
paramtype = "light",
|
||
|
sunlight_propagates = true,
|
||
|
walkable = false,
|
||
|
buildable_to = true,
|
||
|
groups = {mushroom = 1, food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 1},
|
||
|
sounds = default.node_sound_leaves_defaults(),
|
||
|
on_use = minetest.item_eat(1),
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16},
|
||
|
}
|
||
|
})
|
||
|
|
||
|
|
||
|
--
|
||
|
-- Waterlily
|
||
|
--
|
||
|
|
||
|
local waterlily_def = {
|
||
|
description = S("Waterlily"),
|
||
|
drawtype = "nodebox",
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
tiles = {"flowers_waterlily.png", "flowers_waterlily_bottom.png"},
|
||
|
inventory_image = "flowers_waterlily.png",
|
||
|
wield_image = "flowers_waterlily.png",
|
||
|
liquids_pointable = true,
|
||
|
walkable = false,
|
||
|
buildable_to = true,
|
||
|
floodable = true,
|
||
|
groups = {snappy = 3, flower = 1, flammable = 1},
|
||
|
sounds = default.node_sound_leaves_defaults(),
|
||
|
node_placement_prediction = "",
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -31 / 64, -0.5, 0.5, -15 / 32, 0.5}
|
||
|
},
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, -15 / 32, 7 / 16}
|
||
|
},
|
||
|
|
||
|
on_place = function(itemstack, placer, pointed_thing)
|
||
|
local pos = pointed_thing.above
|
||
|
local node = minetest.get_node(pointed_thing.under)
|
||
|
local def = minetest.registered_nodes[node.name]
|
||
|
|
||
|
if def and def.on_rightclick then
|
||
|
return def.on_rightclick(pointed_thing.under, node, placer, itemstack,
|
||
|
pointed_thing)
|
||
|
end
|
||
|
|
||
|
if def and def.liquidtype == "source" and
|
||
|
minetest.get_item_group(node.name, "water") > 0 then
|
||
|
minetest.set_node(pos, {name = "flowers:waterlily" ..
|
||
|
(def.waving == 3 and "_waving" or ""),
|
||
|
param2 = math.random(0, 3)})
|
||
|
itemstack:take_item()
|
||
|
end
|
||
|
|
||
|
return itemstack
|
||
|
end
|
||
|
}
|
||
|
|
||
|
local waterlily_waving_def = table.copy(waterlily_def)
|
||
|
waterlily_waving_def.waving = 3
|
||
|
waterlily_waving_def.drop = "flowers:waterlily"
|
||
|
waterlily_waving_def.groups.not_in_creative_inventory = 1
|
||
|
|
||
|
minetest.register_node("flowers:waterlily", waterlily_def)
|
||
|
minetest.register_node("flowers:waterlily_waving", waterlily_waving_def)
|