Add local storage to maintain state.

master
David G 2019-03-19 13:25:27 -07:00
parent 67ab33f15d
commit aa59bd2d36
2 changed files with 30 additions and 10 deletions

View File

@ -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

View File

@ -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,
})