Make waterlily wave when placed on waving water

This commit is contained in:
t0ny2 2019-06-16 22:09:36 +01:00 committed by Paramat
parent 0f771a27c3
commit 54bb0afe7f
2 changed files with 16 additions and 6 deletions

View File

@ -266,7 +266,7 @@ minetest.register_alias("mushroom:red_natural", "flowers:mushroom_red")
-- Waterlily -- Waterlily
-- --
minetest.register_node("flowers:waterlily", { local waterlily_def = {
description = "Waterlily", description = "Waterlily",
drawtype = "nodebox", drawtype = "nodebox",
paramtype = "light", paramtype = "light",
@ -294,7 +294,6 @@ minetest.register_node("flowers:waterlily", {
local pos = pointed_thing.above local pos = pointed_thing.above
local node = minetest.get_node(pointed_thing.under) local node = minetest.get_node(pointed_thing.under)
local def = minetest.registered_nodes[node.name] local def = minetest.registered_nodes[node.name]
local player_name = placer and placer:get_player_name() or ""
if def and def.on_rightclick then if def and def.on_rightclick then
return def.on_rightclick(pointed_thing.under, node, placer, itemstack, return def.on_rightclick(pointed_thing.under, node, placer, itemstack,
@ -303,8 +302,10 @@ minetest.register_node("flowers:waterlily", {
if def and def.liquidtype == "source" and if def and def.liquidtype == "source" and
minetest.get_item_group(node.name, "water") > 0 then minetest.get_item_group(node.name, "water") > 0 then
local player_name = placer and placer:get_player_name() or ""
if not minetest.is_protected(pos, player_name) then if not minetest.is_protected(pos, player_name) then
minetest.set_node(pos, {name = "flowers:waterlily", minetest.set_node(pos, {name = "flowers:waterlily" ..
(def.waving == 3 and "_waving" or ""),
param2 = math.random(0, 3)}) param2 = math.random(0, 3)})
if not (creative and creative.is_enabled_for if not (creative and creative.is_enabled_for
and creative.is_enabled_for(player_name)) then and creative.is_enabled_for(player_name)) then
@ -318,4 +319,13 @@ minetest.register_node("flowers:waterlily", {
return itemstack return itemstack
end 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)

View File

@ -60,7 +60,7 @@ local function register_mgv6_waterlily()
}, },
y_max = 0, y_max = 0,
y_min = 0, y_min = 0,
decoration = "flowers:waterlily", decoration = "flowers:waterlily_waving",
param2 = 0, param2 = 0,
param2_max = 3, param2_max = 3,
place_offset_y = 1, place_offset_y = 1,
@ -146,7 +146,7 @@ local function register_waterlily()
biomes = {"rainforest_swamp", "savanna_shore", "deciduous_forest_shore"}, biomes = {"rainforest_swamp", "savanna_shore", "deciduous_forest_shore"},
y_max = 0, y_max = 0,
y_min = 0, y_min = 0,
decoration = "flowers:waterlily", decoration = "flowers:waterlily_waving",
param2 = 0, param2 = 0,
param2_max = 3, param2_max = 3,
place_offset_y = 1, place_offset_y = 1,