-//
+// -*- JavaScript -*-
// xxx deployment note: need a whole bunch of domains for SSE conn limit
// #def.{}.stuff
// generated by server
-general_timeout = 10000;
-messages = Object();
-pieceops = Object();
+var general_timeout : number = 10000;
+var messages = Object();
+var pieceops = Object();
var our_dnd_type = "text/puvnex-game-server-dummy";
-api_queue = [];
-api_posting = false;
+var api_queue = [];
+var api_posting = false;
var us;
var gen = 0;
var cseq = 0;
+var ctoken : string;
+
+var svg_ns : string;
+var space : SVGGraphicsElement;
+var logdiv : HTMLElement;
+var status_node : HTMLElement;
+
+var dox : number;
+var doy : number;
+var dcx : number;
+var dcy : number;
+const DRAGTHRESH = 5;
function xhr_post_then(url,data,good) {
var xhr = new XMLHttpRequest();
dragging = DRAGGING.MAYBE_UNGRAB;
} else {
dragging = DRAGGING.MAYBE_GRAB;
- pelem = set_grab(drag_uelem, piece, us);
+ var pelem = set_grab(drag_uelem, piece, us);
api_piece(api, 'grab', piece, drag_uelem, { });
}
}
function drag_mousemove(e) {
- ctm = space.getScreenCTM();
- ddx = (e.clientX - dcx)/ctm.a;
- ddy = (e.clientY - dcy)/ctm.d;
+ var ctm = space.getScreenCTM();
+ var ddx = (e.clientX - dcx)/ctm.a;
+ var ddy = (e.clientY - dcy)/ctm.d;
if (!(dragging & DRAGGING.YES)) {
- ddr2 = ddx*ddx + ddy*ddy;
- if (ddr2 > dragthresh) {
+ var ddr2 = ddx*ddx + ddy*ddy;
+ if (ddr2 > DRAGTHRESH) {
dragging |= DRAGGING.YES;
}
}
//console.log('mouseup ...', dragging);
if (dragging == DRAGGING.MAYBE_UNGRAB ||
dragging == (DRAGGING.MAYBE_GRAB | DRAGGING.YES)) {
- piece = drag_uelem.dataset.piece;
+ var piece = drag_uelem.dataset.piece;
var pelem = set_ungrab(drag_uelem, piece);
api_piece(api, 'ungrab', drag_uelem.dataset.piece, drag_uelem, { });
}
- drag_cancel(e);
+ drag_cancel();
}
function drag_cancel() {
}
function add_log_message(msg_html) {
- lastent = logdiv.lastElementChild;
- in_scrollback =
+ var lastent = logdiv.lastElementChild;
+ var in_scrollback =
// inspired by
// https://stackoverflow.com/questions/487073/how-to-check-if-element-is-visible-after-scrolling/21627295#21627295
// rejected
us = body.dataset.us;
gen = parseInt(body.dataset.gen);
status_node = document.getElementById('status');
- status_node.innerHTML = 'js-done'
- dragthresh = 5;
- space = document.getElementById('space');
+ status_node.innerHTML = 'js-done';
+ space = document.getElementById('space') as unknown as SVGGraphicsElement;
logdiv = document.getElementById("log");
svg_ns = space.getAttribute('xmlns');
- es = new EventSource("/_/updates/"+ctoken+'/'+gen);
+ var es = new EventSource("/_/updates/"+ctoken+'/'+gen);
es.onmessage = function(event) {
console.log('GOTEVE', event)
var j = JSON.parse(event.data);
}
es.addEventListener('commsworking', function(event) {
console.log('GOTDATA', event);
- status_node.innerHTML = event.data;
+ status_node.innerHTML = (event as any).data;
});
es.onerror = function(e) {
console.log('FOO',e,es);
updates_error : e,
updates_event_source : es,
updates_event_source_ready : es.readyState,
- update_oe : e.className,
+ update_oe : (e as any).className,
})
}
}
function doload(){
console.log('DOLOAD');
var elem = document.getElementById('loading_token');
- ptoken = elem.dataset.ptoken;
+ var ptoken = elem.dataset.ptoken;
xhr_post_then('/_/session',
JSON.stringify({ ptoken : ptoken }),
loaded);