aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgpcf <gpcf@gpcf.eu>2023-05-13 23:50:23 +0200
committergpcf <gpcf@gpcf.eu>2023-05-13 23:50:23 +0200
commite0cb875a9f356207ad327558ce335adab54c2531 (patch)
tree36323f396cc9426516c2f1fa2c37b68c2e42581f
downloaddepartureboards-e0cb875a9f356207ad327558ce335adab54c2531.tar.gz
departureboards-e0cb875a9f356207ad327558ce335adab54c2531.tar.bz2
departureboards-e0cb875a9f356207ad327558ce335adab54c2531.zip
initial commit
-rw-r--r--init.lua63
-rw-r--r--mod.conf5
-rw-r--r--textures/line_bg.pngbin0 -> 629 bytes
-rw-r--r--textures/station_sign.pngbin0 -> 740 bytes
4 files changed, 68 insertions, 0 deletions
diff --git a/init.lua b/init.lua
new file mode 100644
index 0000000..bc8ae85
--- /dev/null
+++ b/init.lua
@@ -0,0 +1,63 @@
+local function escape_texture(str)
+ return str:gsub("[%[%()^:]", "\\%1")
+end
+
+function render_depboard(pos, objref)
+ local font = font_api.get_font("metro")
+ local line = font:render("10", font:get_height(1)*15, font:get_height(1), {halign="left", color="#ffffff"})
+ local dest = font:render("Origin Marcuse", font:get_height(1)*15, font:get_height(1), {halign="left", color="#ffffff"})
+ local remark = font:render("5 minutes Delay", font:get_height(1)*15, font:get_height(1), {halign="left", color="#ff0000"})
+ local m = font:render("10", font:get_height(1)*15, font:get_height(1), {halign="left", color="#ffffff"})
+ local s = font:render("40", font:get_height(1)*15, font:get_height(1), {halign="left", color="#ffffff"})
+ local line_color = "#00ffff"
+ objref:set_properties({ textures= {"[combine:256x256:0,0=station_sign.png\\^(line_bg.png\\^\\[colorize\\:"..line_color.."\\:150)\\^\\[resize\\:256x256:200,100="..escape_texture(line)..":10,100="..escape_texture(dest)..":200,127="..escape_texture(m)..":228,127="..escape_texture(s)..":10,127="..escape_texture(remark)},
+ visual_size = {x=3, y=3} })
+
+
+end
+
+
+display_api.register_display_entity("departureboards:display")
+
+minetest.register_node("departureboards:departureboard", {
+ sunlight_propagates = true,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ drawtype = "nodebox",
+ node_box = {
+ type = "fixed",
+ fixed = {-3/2, -1/2, 0.5,
+ 3/2, 1/2, 0.5 - 0.1},
+ },
+ tiles = { "signs_road_sides.png", "signs_road_sides.png",
+ "signs_road_sides.png", "signs_road_sides.png",
+ "signs_road_sides.png", "signs_road_sides.png" },
+ groups = {choppy=2, dig_immediate=2, not_blocking_trains=1, display_api=1},
+ sounds = default.node_sound_defaults(),
+ display_entities = {
+ ["departureboards:display"] = {
+ on_display_update = render_depboard,
+ depth = 0.5 - display_api.entity_spacing - 0.1,
+ size = { x = 3, y = 1 },
+ aspect_ratio = 1/2,
+ maxlines = 1,
+ },
+ },
+ light_source = 3,
+ on_place = display_api.on_place,
+ on_construct = function(pos)
+ local ndef = minetest.registered_nodes[minetest.get_node(pos).name]
+ local meta = minetest.get_meta(pos)
+ meta:set_string("font", ndef.display_entities.font_name or
+ font_api.get_default_font_name())
+ signs_api.set_formspec(pos)
+ display_api.on_construct(pos)
+ end,
+ on_destruct = display_api.on_destruct,
+ on_rotate = signs_api.on_rotate,
+ on_receive_fields = signs_api.on_receive_fields,
+ on_punch = function(pos, node, player, pointed_thing)
+ signs_api.set_formspec(pos)
+ display_api.update_entities(pos)
+ end,
+})
diff --git a/mod.conf b/mod.conf
new file mode 100644
index 0000000..93fbb8f
--- /dev/null
+++ b/mod.conf
@@ -0,0 +1,5 @@
+name = departureboards
+title = Departure Boards
+description = A mod providing departure boards for advtrains
+depends = default,display_api,font_api,signs_api
+optional_depends = intllib \ No newline at end of file
diff --git a/textures/line_bg.png b/textures/line_bg.png
new file mode 100644
index 0000000..9adc772
--- /dev/null
+++ b/textures/line_bg.png
Binary files differ
diff --git a/textures/station_sign.png b/textures/station_sign.png
new file mode 100644
index 0000000..fede238
--- /dev/null
+++ b/textures/station_sign.png
Binary files differ