From aa59bd2d368e12fc4649bd50bd5b549f1e10e61f Mon Sep 17 00:00:00 2001 From: David G Date: Tue, 19 Mar 2019 13:25:27 -0700 Subject: [PATCH] Add local storage to maintain state. --- README.md | 2 ++ init.lua | 38 ++++++++++++++++++++++++++++---------- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 37b012c..a24c48f 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ This mod defaults to not applying filter. To enable, use the chat command: Repeated use of this command will toggle the effect off and on. +**New:** Now with local storage to maintain state of vignette filter between sessions. + Licenses -------- Source code diff --git a/init.lua b/init.lua index 716324d..49be932 100644 --- a/init.lua +++ b/init.lua @@ -2,24 +2,40 @@ -- Adds a vignette filter to player's screen -- Based on concept by TriBlade9 -- By David_G (kestral246@gmail.com) +-- 2019-03-19 -- Don't enable vignette effect at start. -- Use chat command "/vignette" to enable, and then to toggle effect off or on. +-- Add local storage to maintain state of vignette filter per user. local vignette = {} +local storage = minetest.get_mod_storage() minetest.register_on_joinplayer(function(player) local pname = player:get_player_name() - vignette[pname] = { - id = player:hud_add({ - hud_elem_type = "image", - text = "", - position = {x=0, y=0}, - scale = {x=-100, y=-100}, - alignment = {x=1, y=1}, - offset = {x=0, y=0} - }), - enable = false } + if storage:get(pname) and storage:get(pname) == "1" then -- enabled + vignette[pname] = { + id = player:hud_add({ + hud_elem_type = "image", + text = "vignette.png", + position = {x=0, y=0}, + scale = {x=-100, y=-100}, + alignment = {x=1, y=1}, + offset = {x=0, y=0} + }), + enable = true } + else -- not enabled + vignette[pname] = { + id = player:hud_add({ + hud_elem_type = "image", + text = "", + position = {x=0, y=0}, + scale = {x=-100, y=-100}, + alignment = {x=1, y=1}, + offset = {x=0, y=0} + }), + enable = false } + end end) minetest.register_chatcommand("vignette", { @@ -31,9 +47,11 @@ minetest.register_chatcommand("vignette", { if vignette[name].enable == true then player:hud_change(vignette[name].id, "text", "") vignette[name].enable = false + storage:set_string(name, "0") else player:hud_change(vignette[name].id, "text", "vignette.png") vignette[name].enable = true + storage:set_string(name, "1") end end, })