summaryrefslogtreecommitdiff
path: root/games
diff options
context:
space:
mode:
authorLoïc Blot <nerzhul@users.noreply.github.com>2017-05-07 12:13:15 +0200
committerGitHub <noreply@github.com>2017-05-07 12:13:15 +0200
commitc1b3ed4180dea16e2fa77663a7d2bf155595dd60 (patch)
tree2cb74486cb3a493716be611ca4cf44d666dec3bf /games
parent0d7c37943bf29b2c4956576c15efa796d5b5f2d4 (diff)
downloadminetest-c1b3ed4180dea16e2fa77663a7d2bf155595dd60.tar.gz
minetest-c1b3ed4180dea16e2fa77663a7d2bf155595dd60.tar.bz2
minetest-c1b3ed4180dea16e2fa77663a7d2bf155595dd60.zip
Player attrs: permits to remove an attribute by setting value to nil (#5716)
* Player attrs: permits to remove an attribute by setting value to nil When doing player:set_attribute("attr", nil) remove attribute Also remove a useless check on C++ API part (already done by checkplayer) Fix #5709
Diffstat (limited to 'games')
-rw-r--r--games/minimal/mods/default/init.lua22
1 files changed, 12 insertions, 10 deletions
diff --git a/games/minimal/mods/default/init.lua b/games/minimal/mods/default/init.lua
index d36e225a3..64970f922 100644
--- a/games/minimal/mods/default/init.lua
+++ b/games/minimal/mods/default/init.lua
@@ -18,6 +18,8 @@ dofile(minetest.get_modpath("default").."/mapgen.lua")
minetest.register_on_joinplayer(function(player)
local cb = function(player)
minetest.chat_send_player(player:get_player_name(), "This is the [minimal] \"Minimal Development Test\" game. Use [minetest_game] for the real thing.")
+ player:set_attribute("test_attribute", "test_me")
+ player:set_attribute("remove_this", nil)
end
minetest.after(2.0, cb, player)
end)
@@ -1387,13 +1389,13 @@ minetest.register_abm({
local srclist = inv:get_list("src")
local cooked = nil
-
+
if srclist then
cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
end
-
+
local was_active = false
-
+
if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then
was_active = true
meta:set_float("fuel_time", meta:get_float("fuel_time") + 1)
@@ -1413,7 +1415,7 @@ minetest.register_abm({
meta:set_string("src_time", 0)
end
end
-
+
if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then
local percent = math.floor(meta:get_float("fuel_time") /
meta:get_float("fuel_totaltime") * 100)
@@ -1438,7 +1440,7 @@ minetest.register_abm({
local cooked = nil
local fuellist = inv:get_list("fuel")
local srclist = inv:get_list("src")
-
+
if srclist then
cooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
end
@@ -1464,7 +1466,7 @@ minetest.register_abm({
meta:set_string("fuel_totaltime", fuel.time)
meta:set_string("fuel_time", 0)
-
+
local stack = inv:get_stack("fuel", 1)
stack:take_item()
inv:set_stack("fuel", 1, stack)
@@ -1571,7 +1573,7 @@ function default.grow_tree(data, a, pos, is_apple_tree, seed)
y = y+th-1 -- (x, y, z) is now last piece of trunk
local leaves_a = VoxelArea:new{MinEdge={x=-2, y=-1, z=-2}, MaxEdge={x=2, y=2, z=2}}
local leaves_buffer = {}
-
+
-- Force leaves near the trunk
local d = 1
for xi = -d, d do
@@ -1581,14 +1583,14 @@ function default.grow_tree(data, a, pos, is_apple_tree, seed)
end
end
end
-
+
-- Add leaves randomly
for iii = 1, 8 do
local d = 1
local xx = pr:next(leaves_a.MinEdge.x, leaves_a.MaxEdge.x - d)
local yy = pr:next(leaves_a.MinEdge.y, leaves_a.MaxEdge.y - d)
local zz = pr:next(leaves_a.MinEdge.z, leaves_a.MaxEdge.z - d)
-
+
for xi = 0, d do
for yi = 0, d do
for zi = 0, d do
@@ -1597,7 +1599,7 @@ function default.grow_tree(data, a, pos, is_apple_tree, seed)
end
end
end
-
+
-- Add the leaves
for xi = leaves_a.MinEdge.x, leaves_a.MaxEdge.x do
for yi = leaves_a.MinEdge.y, leaves_a.MaxEdge.y do