diff options
Diffstat (limited to 'js')
| -rw-r--r-- | js/user.js | 38 |
1 files changed, 38 insertions, 0 deletions
@@ -2,6 +2,7 @@ var user = new function(){} user.init = function(){ user.load() user.bind() + user.shaders.init() } user.bind = function(){ $("#username").on("input", user.save) @@ -37,3 +38,40 @@ user.setCookie = function(username){ document.cookie = "imname="+username+";path=/;domain=.asdf.us;max-age=1086400" localStorage.setItem("im.name", username); } +user.shaders = new function(){} +user.shaders.init = function(){ + user.shaders.bind() +} +user.shaders.bind = function(){ + var shaders = JSON.parse( localStorage.getItem("im.shaders") ) || [] + for (var i = 0; i < shaders.length; i++){ + user.shaders.bindButton(shaders[i]) + } + document.getElementById("add-shader").addEventListener("click", user.shaders.save, false) +} +user.shaders.bindButton = function(name){ + var button = document.createElement("button") + button.innerHTML = name + button.addEventListener("click", user.shaders.load.bind(this, name), false) + document.getElementById("shaders").appendChild(button) +} +user.shaders.load = function(name){ + var shader = localStorage.getItem("im.shaders." + name) + console.log(name,shader) + if (shader && shader.length > 0) { + $("#shader").val(shader) + shader_build() + } +} +user.shaders.save = function(){ + var name = prompt("enter shader name") + var shader = $("#shader").val() + console.log(name,shader) + if (! name) return; + if (shade !== shade_no_error_handling) return; + localStorage.setItem("im.shaders." + name, shader) + var shaders = JSON.parse( localStorage.getItem("im.shaders") ) || [] + shaders.push(name) + localStorage.setItem("im.shaders", JSON.stringify(shaders)) + user.shaders.bindButton(name) +} |
