diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/toy.groovy | 30 | ||||
-rw-r--r-- | scripts/toy/misc.groovy | 2 |
2 files changed, 14 insertions, 18 deletions
diff --git a/scripts/toy.groovy b/scripts/toy.groovy index 93d231b..bfebfc4 100644 --- a/scripts/toy.groovy +++ b/scripts/toy.groovy @@ -129,6 +129,14 @@ return new Object() { void setAway(String a) { save("toy.owner.away", a) } int randRange(int min, int max) { min + getRandom(1 + max - min) } int randRange(double min, double max) { randRange((int)min, (int)max) } + def setDefault = { prop, val -> + if (loadString(prop) == null) { + save(prop, val); + } + }; + // This exists because calling .wait(t) in a metaClass method + // calls it on the metaClass, not on the original object + void pause(int t) { wait(t); } // Events static class Event { @@ -290,38 +298,24 @@ return new Object() { adjustPunish(5); return false; }; + final activityList = [:]; final addActivity = { String name, func -> activityList[name] = func; } - // Setup - def setDefault = { prop, val -> - if (loadString(prop) == null) { - save(prop, val); - } - }; - def namedEvents = [ - permit: { name, arg, schedTime, rt -> givePermission(arg) } - ]; - def showFaq = { - useUrl("http://toy.randomdan.homeip.net/"); - }; + final namedEvents = [:]; final addNamedEvent = { String name, func -> namedEvents[name] = func; } - def requestables = [ - faq: [ lbl: "FAQ (webpage)", act: showFaq ], - ]; + + final requestables = [:]; final addRequestable = { String name, String label, func, cond = null -> requestables[name] = [lbl: label, act: func, cond: cond]; }; final removeRequestable = { String name -> requestables.remove(name); }; - // This exists because calling .wait(t) in a metaClass method - // calls it on the metaClass, not on the original object - void pause(int t) { wait(t); } String main() diff --git a/scripts/toy/misc.groovy b/scripts/toy/misc.groovy index 92af633..bb88a7f 100644 --- a/scripts/toy/misc.groovy +++ b/scripts/toy/misc.groovy @@ -6,5 +6,7 @@ }; }; + toy.addNamedEvent(toy.PERMIT, { name, arg, schedTime, rt -> toy.givePermission(arg) }); + toy.addRequestable("faq", "FAQ (webpage)", { useUrl("http://toy.randomdan.homeip.net/"); }); toy.addActivity("playNothing", { toy.playNothing() }); } |