9 Commits

Author SHA1 Message Date
daf92c43e3 Merge remote-tracking branch 'upstream/master' 2024-09-15 09:43:11 +02:00
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
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
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
1e12f0e293 Give privilege automatically to admin
The 'monoid_master' privilege is given to admin automatically.
2019-10-17 13:37:03 -05:00
4df04550e3 Remove empty lines 2019-10-17 13:35:10 -05:00
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)