49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
|
componentconstructors['digitalclock'] = function(dynmap, configuration) {
|
||
|
var element = $('<div/>')
|
||
|
.addClass('digitalclock')
|
||
|
.addClass('largeclock')
|
||
|
.appendTo(dynmap.options.container);
|
||
|
|
||
|
var timeout = null;
|
||
|
|
||
|
var formatTime = function(time) {
|
||
|
var formatDigits = function(n, digits) {
|
||
|
var s = n.toString();
|
||
|
while (s.length < digits) {
|
||
|
s = '0' + s;
|
||
|
}
|
||
|
return s;
|
||
|
}
|
||
|
return formatDigits(time.hours, 2) + ':' + formatDigits(time.minutes, 2);
|
||
|
};
|
||
|
|
||
|
var setTime = function(servertime) {
|
||
|
if (timeout != null) {
|
||
|
window.clearTimeout(timeout);
|
||
|
timeout = null;
|
||
|
}
|
||
|
var time = null;
|
||
|
if(servertime >= 0) {
|
||
|
time = getMinecraftTime(servertime);
|
||
|
element
|
||
|
.addClass(time.day ? 'day' : 'night')
|
||
|
.removeClass(time.night ? 'day' : 'night')
|
||
|
.text(formatTime(time));
|
||
|
}
|
||
|
else {
|
||
|
element
|
||
|
.removeClass('day night')
|
||
|
.text('');
|
||
|
}
|
||
|
if ((timeout == null) && (time != null)) {
|
||
|
timeout = window.setTimeout(function() {
|
||
|
timeout = null;
|
||
|
setTime(time.servertime+(1000/60));
|
||
|
}, 700);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
$(dynmap).bind('worldupdated', function(event, update) {
|
||
|
setTime(update.servertime);
|
||
|
});
|
||
|
};
|