From 35038d52c7b388fae9745979c65d85546905bf2b Mon Sep 17 00:00:00 2001 From: NatureFreshMilk <naturefreshmilk@github.com> Date: Thu, 4 Apr 2019 13:21:20 +0200 Subject: [PATCH] add color to label, border and train --- mapserver_mod/mapserver/border.lua | 8 +++++++- mapserver_mod/mapserver/label.lua | 9 ++++++++- mapserver_mod/mapserver/train.lua | 11 +++++++++-- server/mapobject/border.go | 1 + server/mapobject/label.go | 1 + server/mapobject/train.go | 1 + server/static/js/overlays/LabelOverlay.js | 9 ++++++++- 7 files changed, 35 insertions(+), 5 deletions(-) diff --git a/mapserver_mod/mapserver/border.lua b/mapserver_mod/mapserver/border.lua index 5c1ce4b..ab5c60a 100644 --- a/mapserver_mod/mapserver/border.lua +++ b/mapserver_mod/mapserver/border.lua @@ -5,16 +5,20 @@ local last_name = "" local update_formspec = function(meta) local name = meta:get_string("name") local index = meta:get_string("index") + local color = meta:get_string("color") or "rgb(10,10,200)" meta:set_string("infotext", "Border: Name=" .. name .. ", Index=" .. index) - meta:set_string("formspec", "size[8,3;]" .. + meta:set_string("formspec", "size[8,4;]" .. -- col 1 "field[0,1;4,1;name;Name;" .. name .. "]" .. "button_exit[4,1;4,1;save;Save]" .. -- col 2 "field[4,2.5;4,1;index;Index;" .. index .. "]" .. + + -- col 3 + "field[4,3.5;4,1;color;Color;" .. color .. "]" .. "") end @@ -35,6 +39,7 @@ minetest.register_node("mapserver:border", { last_index = last_index + 5 + meta:set_string("color", "rgb(10,10,200)") meta:set_string("name", last_name) meta:set_int("index", last_index) @@ -52,6 +57,7 @@ minetest.register_node("mapserver:border", { if fields.save then last_name = fields.name meta:set_string("name", fields.name) + meta:set_string("color", fields.color) local index = tonumber(fields.index) if index ~= nil then last_index = index diff --git a/mapserver_mod/mapserver/label.lua b/mapserver_mod/mapserver/label.lua index 601f538..9748122 100644 --- a/mapserver_mod/mapserver/label.lua +++ b/mapserver_mod/mapserver/label.lua @@ -3,10 +3,11 @@ local update_formspec = function(meta) local text = meta:get_string("text") local size = meta:get_string("size") local direction = meta:get_string("direction") + local color = meta:get_string("color") or "rgb(0,0,0)" meta:set_string("infotext", "Label, Text:" .. text .. ", Size:" .. size .. ", Direction:" .. direction) - meta:set_string("formspec", "size[8,5;]" .. + meta:set_string("formspec", "size[8,6;]" .. -- col 1 "field[0,1;4,1;text;Text;" .. text .. "]" .. "button_exit[4,1;4,1;save;Save]" .. @@ -16,6 +17,10 @@ local update_formspec = function(meta) -- col 3 "field[0,3.5;8,1;direction;Direction (0-360);" .. direction .. "]" .. + + -- col 4 + "field[0,4.5;8,1;color;Color;" .. color .. "]" .. + "") end @@ -37,6 +42,7 @@ minetest.register_node("mapserver:label", { meta:set_string("text", "") meta:set_string("direction", "0") meta:set_string("size", "1") + meta:set_string("color", "rgb(0,0,0)") update_formspec(meta) end, @@ -50,6 +56,7 @@ minetest.register_node("mapserver:label", { local meta = minetest.get_meta(pos) if fields.save then + meta:set_string("color", fields.color) meta:set_string("text", fields.text) meta:set_string("direction", fields.direction) meta:set_string("size", fields.size) diff --git a/mapserver_mod/mapserver/train.lua b/mapserver_mod/mapserver/train.lua index e88f68d..95b4dba 100644 --- a/mapserver_mod/mapserver/train.lua +++ b/mapserver_mod/mapserver/train.lua @@ -6,17 +6,22 @@ local update_formspec = function(meta) local line = meta:get_string("line") local station = meta:get_string("station") local index = meta:get_string("index") + local color = meta:get_string("color") or "" meta:set_string("infotext", "Train: Line=" .. line .. ", Station=" .. station) - meta:set_string("formspec", "size[8,3;]" .. + meta:set_string("formspec", "size[8,4;]" .. -- col 1 "field[0,1;4,1;line;Line;" .. line .. "]" .. "button_exit[4,1;4,1;save;Save]" .. -- col 2 "field[0,2.5;4,1;station;Station;" .. station .. "]" .. - "field[4,2.5;4,1;index;Index;" .. index .. "]" + "field[4,2.5;4,1;index;Index;" .. index .. "]" .. + + -- col 3 + "field[0,3.5;4,1;color;Color;" .. color .. "]" .. + "" ) end @@ -40,6 +45,7 @@ minetest.register_node("mapserver:train", { meta:set_string("station", "") meta:set_string("line", last_line) meta:set_int("index", last_index) + meta:set_string("color", "rgb(10,10,200)") update_formspec(meta) end, @@ -54,6 +60,7 @@ minetest.register_node("mapserver:train", { if fields.save then last_line = fields.line + meta:set_string("color", fields.color) meta:set_string("line", fields.line) meta:set_string("station", fields.station) local index = tonumber(fields.index) diff --git a/server/mapobject/border.go b/server/mapobject/border.go index f078792..8c72391 100644 --- a/server/mapobject/border.go +++ b/server/mapobject/border.go @@ -14,6 +14,7 @@ func (this *BorderBlock) onMapObject(x, y, z int, block *mapblockparser.MapBlock o.Attributes["name"] = md["name"] o.Attributes["index"] = md["index"] o.Attributes["owner"] = md["owner"] + o.Attributes["color"] = md["color"] return o } diff --git a/server/mapobject/label.go b/server/mapobject/label.go index a816e5e..e8f2cd4 100644 --- a/server/mapobject/label.go +++ b/server/mapobject/label.go @@ -15,6 +15,7 @@ func (this *LabelBlock) onMapObject(x, y, z int, block *mapblockparser.MapBlock) o.Attributes["size"] = md["size"] o.Attributes["direction"] = md["direction"] o.Attributes["owner"] = md["owner"] + o.Attributes["color"] = md["color"] return o } diff --git a/server/mapobject/train.go b/server/mapobject/train.go index e7cafe5..5476071 100644 --- a/server/mapobject/train.go +++ b/server/mapobject/train.go @@ -15,6 +15,7 @@ func (this *TrainBlock) onMapObject(x, y, z int, block *mapblockparser.MapBlock) o.Attributes["line"] = md["line"] o.Attributes["index"] = md["index"] o.Attributes["owner"] = md["owner"] + o.Attributes["color"] = md["color"] return o } diff --git a/server/static/js/overlays/LabelOverlay.js b/server/static/js/overlays/LabelOverlay.js index fee76b6..7414a0b 100644 --- a/server/static/js/overlays/LabelOverlay.js +++ b/server/static/js/overlays/LabelOverlay.js @@ -22,10 +22,17 @@ var LabelOverlay = AbstractIconOverlay.extend({ }, getIcon: function(lbl){ + + const html = ` + <svg height='30' width='100'> + <text x='0' y='15'>${lbl.attributes.text}</text> + </svg> + `; + return new LabelIcon({ iconAnchor: [15, 50], iconSize: [30, 100], - html: "<svg height='30' width='100'><text x='0' y='15'>" + lbl.attributes.text + "</text></svg>" + html: html }); },