1
0
forked from MTSR/mapserver

externalize worldstats module

basis for #76
This commit is contained in:
Thomas Rudin 2019-12-29 15:43:46 +01:00
parent 0fe22caef6
commit e0d10723ec
4 changed files with 73 additions and 50 deletions

View File

@ -0,0 +1,49 @@
export default function(info){
var timeIcon = m("span", { class: "fa fa-sun", style: "color: orange;" });
if (info.time < 5500 || info.time > 19000) //0 - 24'000
timeIcon = m("span", { class: "fa fa-moon", style: "color: blue;" });
function getHour(){
return Math.floor(info.time/1000);
}
function getMinute(){
var min = Math.floor((info.time % 1000) / 1000 * 60);
return min > 10 ? min : "0" + min;
}
function getLag(){
var color = "green";
if (info.max_lag > 0.8)
color = "orange";
else if (info.max_lag > 1.2)
color = "red";
return [
m("span", { class: "fa fa-wifi", style: "color: " + color }),
parseInt(info.max_lag*1000),
" ms"
];
}
function getPlayers(){
return [
m("span", { class: "fa fa-users" }),
info.players ? info.players.length : "0"
];
}
return m("div", [
getPlayers(),
" ",
getLag(),
" ",
m("span", { class: "fa fa-clock" }),
timeIcon,
getHour(), ":", getMinute()
]);
};

View File

@ -1,53 +1,5 @@
/* exported WorldInfoDisplay */ /* exported WorldInfoDisplay */
import WorldStats from '../components/WorldStats.js';
var worldInfoRender = function(info){
var timeIcon = m("span", { class: "fa fa-sun", style: "color: orange;" });
if (info.time < 5500 || info.time > 19000) //0 - 24'000
timeIcon = m("span", { class: "fa fa-moon", style: "color: blue;" });
function getHour(){
return Math.floor(info.time/1000);
}
function getMinute(){
var min = Math.floor((info.time % 1000) / 1000 * 60);
return min > 10 ? min : "0" + min;
}
function getLag(){
var color = "green";
if (info.max_lag > 0.8)
color = "orange";
else if (info.max_lag > 1.2)
color = "red";
return [
m("span", { class: "fa fa-wifi", style: "color: " + color }),
parseInt(info.max_lag*1000),
" ms"
];
}
function getPlayers(){
return [
m("span", { class: "fa fa-users" }),
info.players ? info.players.length : "0"
];
}
return m("div", [
getPlayers(),
" ",
getLag(),
" ",
m("span", { class: "fa fa-clock" }),
timeIcon,
getHour(), ":", getMinute()
]);
};
// coord display // coord display
export default L.Control.extend({ export default L.Control.extend({
@ -60,7 +12,7 @@ export default L.Control.extend({
var div = L.DomUtil.create('div', 'leaflet-bar leaflet-custom-display'); var div = L.DomUtil.create('div', 'leaflet-bar leaflet-custom-display');
this.wsChannel.addListener("minetest-info", function(info){ this.wsChannel.addListener("minetest-info", function(info){
m.render(div, worldInfoRender(info)); m.render(div, WorldStats(info));
}); });
return div; return div;

0
static/js/stats.js Normal file
View File

22
static/stats.html Normal file
View File

@ -0,0 +1,22 @@
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- styles -->
<link rel="stylesheet" href="css/fontawesome.min.css"/>
<title>Minetest Mapserver stats</title>
</head>
<body>
<div id="app"></div>
<!-- libraries -->
<script src="js/lib/mithril.min.js"></script>
<!-- main module -->
<script src="js/main.js?v=1.0" type="module"></script>
<!-- no modules -->
<script src="js/bundle.js?v=1.0" nomodule></script>
</body>
</html>