summaryrefslogtreecommitdiff
path: root/src/router.moon
diff options
context:
space:
mode:
authorAlexander M Pickering <alex@cogarr.net>2025-01-25 20:40:09 -0600
committerAlexander M Pickering <alex@cogarr.net>2025-01-25 20:40:09 -0600
commitb174b8c00026253fd40ec262e430b0bb764e31ea (patch)
tree173d294b98fe14727aef9cd42542f41a940f5ffa /src/router.moon
parent89a8f94ac0206412c1a2d7b8766d97dbdbd36253 (diff)
downloadggj25-b174b8c00026253fd40ec262e430b0bb764e31ea.tar.gz
ggj25-b174b8c00026253fd40ec262e430b0bb764e31ea.tar.bz2
ggj25-b174b8c00026253fd40ec262e430b0bb764e31ea.zip
work
Diffstat (limited to 'src/router.moon')
-rw-r--r--src/router.moon6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/router.moon b/src/router.moon
index 2001952..94dbedd 100644
--- a/src/router.moon
+++ b/src/router.moon
@@ -88,6 +88,8 @@ class Router
-- "uninitialized", "peer", "candidate", "elected"
@state = "uninitialized"
+ -- Methods to call when our state changes
+ @onchange = {}
-- [peerid] = "votes for peerid"
@nonce = 0
@@ -202,6 +204,10 @@ class Router
net.pump!
return ret
+ onchange: (callback) =>
+ table.insert(@onchange, callback)
+ #@onchange
+
broadcast: (msgfmt, message) =>
for peerid, conn in pairs(@peerlist)
if peerid ~= @peer.id