Compare commits

..

9 Commits

Author SHA1 Message Date
daf92c43e3 Merge remote-tracking branch 'upstream/master' 2024-09-15 09:43:11 +02:00
celeron55
8d6f1ade93
README.md: Return from example fold methods (#8) 2024-08-29 14:35:28 +02:00
0bbad015ef Merge remote-tracking branch 'upstream/master' 2022-05-27 18:50:43 +02:00
Raymoo
08bc018f92 Don't save player ref after callback 2022-03-05 23:16:01 -06:00
64f8057333 Merge branch 'master' of yunohost.local:minetest-mods/player_monoids into nalc-1.2-dev 2019-12-22 14:36:46 +01:00
raymoo
ed11a7395b
Merge pull request #6 from Panquesito7/master
Use mod.conf for description / remove extra whitespace / give monoid_master privilege to admin
2019-10-17 21:43:18 +00:00
Panquesito7
1e12f0e293
Give privilege automatically to admin
The 'monoid_master' privilege is given to admin automatically.
2019-10-17 13:37:03 -05:00
Panquesito7
4df04550e3
Remove empty lines 2019-10-17 13:35:10 -05:00
Panquesito7
ca996b5dcb
Use mod.conf for description
Deletes deprecated description.txt
2019-10-17 13:31:16 -05:00
5 changed files with 15 additions and 11 deletions

View File

@ -40,9 +40,10 @@ mymod.speed_monoid = player_monoids.make_monoid({
end,
fold = function(tab)
local res = 1
for _, speed in pairs(tab) do
for _, speed in pairs(tab) do
res = res * speed
end
end
return res
end,
identity = 1,
apply = function(speed, player)
@ -108,9 +109,10 @@ newmod.speed_boosts = player_monoids.make_monoid({
end,
fold = function(tab)
local res = 1
for _, speed in pairs(tab) do
for _, speed in pairs(tab) do
res = math.max(res, speed)
end
end
return res
end,
identity = 1,
apply = ???
@ -202,4 +204,4 @@ global state.
* The order that different effects get combined together is based on key order,
which may not be predictable. So you should try to make your monoids commutative
in addition to associative, or at least not care if the order of two changes
is swapped.
is swapped.

View File

@ -1,2 +0,0 @@
player_monoids is a library for managing global player state, such as physics
overrides or player visual size.

View File

@ -1 +1,5 @@
name=player_monoids
name = player_monoids
description = """
A library for managing global player state,
such as physics overrides or player visual size.
"""

View File

@ -63,7 +63,6 @@ player_monoids.jump = monoid({
end,
})
-- Gravity monoid. Effect values are gravity multipliers.
player_monoids.gravity = monoid({
combine = mult,
@ -76,7 +75,6 @@ player_monoids.gravity = monoid({
end,
})
-- Fly ability monoid. The values are booleans, which are combined by or. A true
-- value indicates having the ability to fly.
player_monoids.fly = monoid({
@ -104,7 +102,6 @@ player_monoids.fly = monoid({
end,
})
-- Noclip ability monoid. Works the same as fly monoid.
player_monoids.noclip = monoid({
combine = function(p, q) return p or q end,

View File

@ -4,6 +4,7 @@ local speed = player_monoids.speed
minetest.register_privilege("monoid_master", {
description = "Allows testing of player monoids.",
give_to_singleplayer = false,
give_to_admin = true,
})
local function test(player)
@ -13,6 +14,8 @@ local function test(player)
minetest.chat_send_player(p_name, "Your speed is: " .. speed:value(player))
minetest.after(3, function()
local player = minetest.get_player_by_name(p_name)
if not player then return end
speed:del_change(player, ch_id)
minetest.chat_send_player(p_name, "Your speed is: " .. speed:value(player))
end)