// changed at Fri Jun 22 2012 14:57:44 GMT+0200 (CEST) by conradcalmez
this.addScript(function updateMouseIndicators(data) {
this.socket.emit('ping', {
broadcast: true,
me: true,
message: data.message.msgId,
});
var position = pt(data.message.x, data.message.y)
.subPt(this.getScrollBounds().topLeft())
.addPt(this.getPosition());
var indicator = this.owner.submorphs.find(function (ea) {
return ea.identifier === data.message.id
}) || this.createMouseIndicator(data.message.id, data.message.color, data.message.nick);
if (data.message.remove) {
indicator.remove();
return;
}
indicator.moveOnBorderFrom(this, position)
var that = this;
data.message.morphs && data.message.morphs.each(function (ea) {
if (ea.morph)
var subMorph = that.deserializeMorph(ea.morph)
else
var subMorph = that.withAllSubmorphsDetect(function (each) {
return ea.identifier === each.identifier
});
that.prevState = that.prevState.select(function (each) {
return each.identifier !== subMorph.identifier
})
indicator.addMorphBack(subMorph);
// self repairing system could apply a submorph position here
});
}).tag([]);