Add player:get_meta(), deprecate player attributes (#7202)
[oweals/minetest.git] / games / minimal / mods / test / init.lua
1 --
2 -- Minimal Development Test
3 -- Mod: test
4 --
5
6 -- Try out PseudoRandom
7 pseudo = PseudoRandom(13)
8 assert(pseudo:next() == 22290)
9 assert(pseudo:next() == 13854)
10
11
12 --
13 -- HP Change Reasons
14 --
15 local expect = nil
16 local function run_hpchangereason_tests(player)
17         expect = { type = "set_hp", from = "mod" }
18         player:set_hp(3)
19         assert(expect == nil)
20
21         expect = { a = 234, type = "set_hp", from = "mod" }
22         player:set_hp(10, { a= 234 })
23         assert(expect == nil)
24
25         expect = { df = 3458973454, type = "fall", from = "mod" }
26         player:set_hp(10, { type = "fall", df = 3458973454 })
27         assert(expect == nil)
28 end
29 minetest.register_on_player_hpchange(function(player, hp, reason)
30         for key, value in pairs(reason) do
31                 assert(expect[key] == value)
32         end
33
34         for key, value in pairs(expect) do
35                 assert(reason[key] == value)
36         end
37
38         expect = nil
39 end)
40
41
42
43 local function run_player_meta_tests(player)
44         local meta = player:get_meta()
45         meta:set_string("foo", "bar")
46         assert(meta:get_string("foo") == "bar")
47
48         local meta2 = player:get_meta()
49         assert(meta2:get_string("foo") == "bar")
50         assert(meta:equals(meta2))
51         assert(player:get_attribute("foo") == "bar")
52
53         meta:set_string("bob", "dillan")
54         assert(meta:get_string("foo") == "bar")
55         assert(meta:get_string("bob") == "dillan")
56         assert(meta2:get_string("foo") == "bar")
57         assert(meta2:get_string("bob") == "dillan")
58         assert(meta:equals(meta2))
59         assert(player:get_attribute("foo") == "bar")
60         assert(player:get_attribute("bob") == "dillan")
61 end
62
63 local function run_player_tests(player)
64         run_hpchangereason_tests(player)
65         run_player_meta_tests(player)
66         minetest.chat_send_all("All tests pass!")
67 end
68 minetest.register_on_joinplayer(run_player_tests)