diff --git a/web/clock_day.png b/web/clock_day.png new file mode 100644 index 00000000..1ea044b3 Binary files /dev/null and b/web/clock_day.png differ diff --git a/web/clock_night.png b/web/clock_night.png new file mode 100644 index 00000000..79b1af8c Binary files /dev/null and b/web/clock_night.png differ diff --git a/web/map.js b/web/map.js index 4506d4aa..ab51debd 100644 --- a/web/map.js +++ b/web/map.js @@ -28,6 +28,47 @@ DynMapType.prototype = { } }; +function MinecraftClock(element) { this.element = element; } +MinecraftClock.prototype = { + element: null, + timeout: null, + time: null, + create: function(element) { + if (!element) element = $('
'); + this.element = element; + return element; + }, + setTime: function(time) { + if (this.timeout != null) { + window.clearTimeout(this.timeout); + this.timeout = null; + } + this.time = time; + this.element + .addClass((time.day <= 4) ? 'day' : 'night') + .removeClass((time.day <= 4) ? 'day' : 'night') + .text(this.formatTime(time)); + + if (this.timeout == null) { + var me = this; + this.timeout = window.setTimeout(function() { + me.timeout = null; + me.setTime(getMinecraftTime(me.time.servertime+(1000/60))); + }, 700); + } + }, + 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); + } +}; + function MinecraftTimeOfDay(element) { this.element = element; } MinecraftTimeOfDay.prototype = { element: null, diff --git a/web/style.css b/web/style.css index a4bfe819..388c4c86 100644 --- a/web/style.css +++ b/web/style.css @@ -69,6 +69,14 @@ a, a:visited, label { border: 0px; } +.clock { + padding-left: 16px; + color: #dede90; + background-repeat: no-repeat; +} +.clock.night { background-image: url(clock_night.png); } +.clock.day { background-image: url(clock_day.png); } + .compass { background-repeat: no-repeat; background-image: url(compass.png);