50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
var G;
|
|
$(document).ready(function () {
|
|
var World = Minimart.World;
|
|
var Actor = Minimart.Actor;
|
|
var sub = Minimart.sub;
|
|
var pub = Minimart.pub;
|
|
var __ = Minimart.__;
|
|
var _$ = Minimart._$;
|
|
|
|
G = new Minimart.Ground(function () {
|
|
console.log('starting ground boot');
|
|
|
|
World.spawn({
|
|
name: 'GestaltDisplay',
|
|
boot: function () {
|
|
return [sub(__, 0, 10), pub(__, 0, 10)];
|
|
},
|
|
handleEvent: function (e) {
|
|
if (e.type === "routes") {
|
|
var gd = document.getElementById('gestalt-display');
|
|
var t = document.createTextNode(G.world.textProcessTree() + '\n' +
|
|
e.gestalt.pretty());
|
|
gd.innerHTML = '';
|
|
gd.appendChild(t);
|
|
}
|
|
}
|
|
});
|
|
|
|
World.spawn(new Actor(function () {
|
|
this.counter = 0;
|
|
this.step = function () {
|
|
if (this.listenerExists && this.counter < 10) {
|
|
World.send(["beep", this.counter++]);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
};
|
|
|
|
Actor.advertise(function () { return ["beep", __]; });
|
|
Actor.observeSubscribers(
|
|
function () { return ["beep", __]; },
|
|
{ presence: "listenerExists" });
|
|
}));
|
|
|
|
World.spawn(new Minimart.Worker("worker.js"));
|
|
});
|
|
G.startStepping();
|
|
});
|