From 33785d76eb1469492a79c3ebd956c9cde07c4431 Mon Sep 17 00:00:00 2001 From: epCode <64379263+epCode@users.noreply.github.com> Date: Wed, 9 Aug 2023 20:41:59 -0700 Subject: [PATCH] Create README.md --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..9c8eb2d --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# persistent_api +A minetest api that allows for easy creation of persistent effects. for example: changing a players health over time with a set interval (eg; poison or healing) + +### how to use: +Simply use the one function +```lua +persistent_api.add_persistent_effect(def) +``` +like this +```lua +persistent_api.add_persistent_effect({ + name = string, + -- effect identifier. Will be overwritten if another effect is added to the same object with the same identifier. + + object = ObjectRef, + -- ObjectRef which is referenced and attached to the effect. + + duration = float, + -- amount of time until the effect is removed. + + effect = function(ObjectRef) + -- function that is run every time the effect is called. + + persistence = float, + -- how often (in seconds) the effect function is run. +}) +``` +for example +```lua +local player = minetest.get_player_by_name("JohnSmith") + + persistent_api.add_persistent_effect({ + name = "damage_player", -- identifier + object = player, -- affected object + duration = 10, -- this effect will last 10 seconds + effect = function(player) + player:set_hp(player:get_hp()-1) -- damage the player one half heart + end, + persistence = 0.1, -- every 0.1 seconds for 10 seconds the previous function will be run. + }) +```