mirror of
https://github.com/minetest/minetest_game.git
synced 2024-12-22 14:12:26 +01:00
Simplify Butterfly and Firefly code (#3125)
This commit is contained in:
parent
4e402ec39f
commit
2ce8ff3306
@ -43,18 +43,8 @@ for i in ipairs (butter_list) do
|
|||||||
fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
|
fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
|
||||||
},
|
},
|
||||||
floodable = true,
|
floodable = true,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_construct = function(pos)
|
||||||
local player_name = placer and placer:get_player_name() or ""
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "butterflies:butterfly_"..name})
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
minetest.get_node_timer(pos):start(1)
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
if minetest.get_node_light(pos) < 11 then
|
if minetest.get_node_light(pos) < 11 then
|
||||||
@ -76,18 +66,8 @@ for i in ipairs (butter_list) do
|
|||||||
drop = "",
|
drop = "",
|
||||||
groups = {not_in_creative_inventory = 1},
|
groups = {not_in_creative_inventory = 1},
|
||||||
floodable = true,
|
floodable = true,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_construct = function(pos)
|
||||||
local player_name = placer and placer:get_player_name() or ""
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "butterflies:hidden_butterfly_"..name})
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
minetest.get_node_timer(pos):start(1)
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
if minetest.get_node_light(pos) >= 11 then
|
if minetest.get_node_light(pos) >= 11 then
|
||||||
|
@ -33,18 +33,8 @@ minetest.register_node("fireflies:firefly", {
|
|||||||
},
|
},
|
||||||
light_source = 6,
|
light_source = 6,
|
||||||
floodable = true,
|
floodable = true,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_construct = function(pos)
|
||||||
local player_name = placer:get_player_name()
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "fireflies:firefly"})
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
minetest.get_node_timer(pos):start(1)
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
if minetest.get_node_light(pos) > 11 then
|
if minetest.get_node_light(pos) > 11 then
|
||||||
@ -68,18 +58,8 @@ minetest.register_node("fireflies:hidden_firefly", {
|
|||||||
drop = "",
|
drop = "",
|
||||||
groups = {not_in_creative_inventory = 1},
|
groups = {not_in_creative_inventory = 1},
|
||||||
floodable = true,
|
floodable = true,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_construct = function(pos)
|
||||||
local player_name = placer:get_player_name()
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "fireflies:hidden_firefly"})
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
minetest.get_node_timer(pos):start(1)
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
if minetest.get_node_light(pos) <= 11 then
|
if minetest.get_node_light(pos) <= 11 then
|
||||||
@ -95,27 +75,11 @@ minetest.register_tool("fireflies:bug_net", {
|
|||||||
description = S("Bug Net"),
|
description = S("Bug Net"),
|
||||||
inventory_image = "fireflies_bugnet.png",
|
inventory_image = "fireflies_bugnet.png",
|
||||||
pointabilities = {nodes = {["group:catchable"] = true}},
|
pointabilities = {nodes = {["group:catchable"] = true}},
|
||||||
on_use = function(itemstack, player, pointed_thing)
|
tool_capabilities = {
|
||||||
local player_name = player and player:get_player_name() or ""
|
groupcaps = {
|
||||||
if not pointed_thing or pointed_thing.type ~= "node" or
|
catchable = { maxlevel = 1, uses = 256, times = { [1] = 0, [2] = 0, [3] = 0 } }
|
||||||
minetest.is_protected(pointed_thing.under, player_name) then
|
},
|
||||||
return
|
},
|
||||||
end
|
|
||||||
local node_name = minetest.get_node(pointed_thing.under).name
|
|
||||||
local inv = player:get_inventory()
|
|
||||||
if minetest.get_item_group(node_name, "catchable") == 1 then
|
|
||||||
minetest.remove_node(pointed_thing.under)
|
|
||||||
local stack = ItemStack(node_name.." 1")
|
|
||||||
local leftover = inv:add_item("main", stack)
|
|
||||||
if leftover:get_count() > 0 then
|
|
||||||
minetest.add_item(pointed_thing.under, node_name.." 1")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if not minetest.is_creative_enabled(player_name) then
|
|
||||||
itemstack:add_wear_by_uses(256)
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft( {
|
minetest.register_craft( {
|
||||||
|
Loading…
Reference in New Issue
Block a user