1
0
mirror of https://github.com/mt-mods/led_marquee.git synced 2025-06-28 14:26:18 +02:00

22 Commits

Author SHA1 Message Date
3d00c81f55 Merge remote-tracking branch 'upstream/master' 2025-03-20 11:44:38 +01:00
7a8b53474d reemove use_texture_alpha as the texture results are always on a black background, so we dont need to waste transparency rendering performance 2024-12-27 18:25:18 -05:00
5fb766921f Merge remote-tracking branch 'upstream/master' 2024-09-15 09:18:54 +02:00
528d8b7a58 not ground content (#4) 2024-02-26 15:01:42 +01:00
e389885f32 Merge remote-tracking branch 'upstream/master' 2023-11-22 23:43:21 +01:00
0f0f74a3e5 Fix settings file format (#3) 2023-08-13 18:04:51 +10:00
0cc8f9e7a4 Maintenance + translation support (#2)
* maintenance + translation support

* fix too long line warning

* improvements through code review
2023-07-05 13:55:41 +02:00
0e3a251da5 Merge remote-tracking branch 'upstream/master' 2022-08-26 15:06:23 +02:00
4732886317 maintenance (#1) 2022-07-24 10:28:24 -04:00
386a67bf05 Delete depends.txt and description.txt, add mod.conf 2022-07-07 21:10:31 +02:00
52e4fe1b0b Merge remote-tracking branch 'upstream/master' 2021-03-25 21:39:57 +01:00
2bf2651cee Merge branch 'BuckarooBanzai-master-patch-93143' into 'master'
check proper `asc` range in digilines events too

See merge request VanessaE/led_marquee!7
2021-03-15 14:38:12 +00:00
aafa748f92 check proper asc range in digilines events too
fixes https://github.com/pandorabox-io/pandorabox.io/issues/629
2021-03-15 08:44:32 +00:00
efb6d93204 Merge remote-tracking branch 'upstream/master' 2021-03-12 12:21:56 +01:00
39f571f788 Merge branch 'master' into 'master'
Fix deprecated use of use_texture_alpha

See merge request VanessaE/led_marquee!6
2021-02-27 05:14:01 +00:00
c09527c029 Merge branch 'gitlab' 2021-02-27 01:57:01 +01:00
0f31f4832c Change the texture of pixels to squares 2021-02-27 01:53:18 +01:00
108f0dad1a Fix deprecated use of use_texture_alpha 2021-02-27 01:46:36 +01:00
023966f9c4 Merge remote-tracking branch 'upstream/master' 2021-02-27 00:01:20 +01:00
63de1f5ab5 Don't allow engine to add the implicit "Proceed" button
(this change makes it possible to theme the formspec)
2021-02-25 02:08:22 -05:00
79bc4755dd Merge remote-tracking branch 'upstream/master' 2020-09-11 20:45:38 +02:00
b081594e2c Add loading message to action log 2020-07-23 16:01:08 +02:00
16 changed files with 64 additions and 37 deletions

10
.github/workflows/luacheck.yml vendored Normal file
View File

@ -0,0 +1,10 @@
name: luacheck
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: Roang-zero1/factorio-mod-luacheck@master
with:
luacheckrc_url: ""

11
.luacheckrc Normal file
View File

@ -0,0 +1,11 @@
unused_args = false
read_globals = {
table = {fields = {"copy"}},
"minetest",
"digilines"
}
globals = {
"led_marquee"
}

View File

@ -1,5 +0,0 @@
default
digilines
mesecons_luacontroller
mesecons_microcontroller?
mesecons_lamp?

View File

@ -1 +0,0 @@
This mod provides a simple LED marquee that accepts single characters, strings, and special control words via digilines.

View File

@ -4,18 +4,15 @@
led_marquee = {}
led_marquee.scheduled_messages = {}
led_marquee.message_minimum_time = tonumber(minetest.settings:get("led_marquee_message_minimum_time")) or 0.5
-- settings
led_marquee.message_minimum_time = tonumber(minetest.settings:get("led_marquee_message_minimum_time")) or 0.5
led_marquee.message_schedule_dtime = tonumber(minetest.settings:get("led_marquee_message_schedule_dtime")) or 0.2
led_marquee.message_schedule_size = tonumber(minetest.settings:get("led_marquee_message_schedule_size")) or 10
led_marquee.message_schedule_size = tonumber(minetest.settings:get("led_marquee_message_schedule_size")) or 10
led_marquee.relay_timer = 0
local S
if minetest.get_modpath("intllib") then
S = intllib.make_gettext_pair()
else
S = function(s) return s end
end
local S = minetest.get_translator(minetest.get_current_modname())
local FS = function(...) return minetest.formspec_escape(S(...)) end
local color_to_char = {
"0",
@ -103,24 +100,15 @@ local char_to_color = {
-- the following functions based on the so-named ones in Jeija's digilines mod
local reset_meta = function(pos)
minetest.get_meta(pos):set_string("formspec", "field[channel;Channel;${channel}]")
end
local on_digiline_receive_std = function(pos, node, channel, msg)
local meta = minetest.get_meta(pos)
local setchan = meta:get_string("channel")
if setchan ~= channel then return end
local num = tonumber(msg)
if msg == "colon" or msg == "period" or msg == "off" or (num and (num >= 0 and num <= 9)) then
minetest.swap_node(pos, { name = "led_marquee:marquee_"..msg, param2 = node.param2})
end
minetest.get_meta(pos):set_string("formspec",
"formspec_version[4]"..
"size[8,4]"..
"button_exit[3,2.5;2,0.5;proceed;"..FS("Proceed").."]"..
"field[1.75,1.5;4.5,0.5;channel;"..FS("Channel")..";${channel}]"
)
end
-- convert Lua's idea of a UTF-8 char to ISO-8859-1
-- first char is non-break space, 0xA0
local iso_chars=" ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
local get_iso = function(c)
local hb = string.byte(c,1) or 0
local lb = string.byte(c,2) or 0
@ -366,11 +354,12 @@ local on_digiline_receive_string = function(pos, node, channel, msg)
local skip = tonumber(string.sub(msg, 12))
led_marquee.scroll_text(pos, nil, skip)
elseif msg == "get" then -- get the master panel's displayed char as ASCII numerical value
digilines.receptor_send(pos, digiline.rules.default, channel, tonumber(string.match(minetest.get_node(pos).name,"led_marquee:char_(.+)"))) -- wonderfully horrible string manipulaiton
digilines.receptor_send(pos, digilines.rules.default, channel,
tonumber(string.match(minetest.get_node(pos).name,"led_marquee:char_(.+)")))
elseif msg == "getstr" then -- get the last stored message
digilines.receptor_send(pos, digiline.rules.default, channel, meta:get_string("last_msg"))
digilines.receptor_send(pos, digilines.rules.default, channel, meta:get_string("last_msg"))
elseif msg == "getindex" then -- get the scroll index
digilines.receptor_send(pos, digiline.rules.default, channel, meta:get_int("index"))
digilines.receptor_send(pos, digilines.rules.default, channel, meta:get_int("index"))
else
msg = string.gsub(msg, "//", string.char(30))
led_marquee.set_timer(pos, 0)
@ -383,7 +372,7 @@ local on_digiline_receive_string = function(pos, node, channel, msg)
end
else
local asc = string.byte(msg)
if asc > 29 and asc < 256 then
if asc > 30 and asc < 256 then
minetest.swap_node(pos, { name = "led_marquee:char_"..asc, param2 = fdir + (last_color*8)})
meta:set_string("last_msg", tostring(msg))
meta:set_int("index", 1)
@ -400,8 +389,8 @@ end
for i = 31, 255 do
local groups = { cracky = 2, not_in_creative_inventory = 1}
local light = LIGHT_MAX-2
local description = S("LED marquee panel ("..i..")")
local light = minetest.LIGHT_MAX-2
local description = S("LED marquee panel (@1)", i)
local leds = "led_marquee_char_"..i..".png^[mask:led_marquee_leds_on.png"
if i == 31 then
@ -430,9 +419,9 @@ for i = 31, 255 do
},
overlay_tiles = { "", leds },
inventory_image = wimage,
is_ground_content = false,
wield_image = wimage,
palette="led_marquee_palette.png",
use_texture_alpha = true,
groups = groups,
paramtype = "light",
paramtype2 = "colorwallmounted",
@ -474,3 +463,4 @@ minetest.register_craft({
},
})
minetest.log("action", "[led_marquee] loaded.")

5
locale/led_marquee.de.tr Normal file
View File

@ -0,0 +1,5 @@
# textdomain: led_marquee
LED marquee panel (@1)=LED-Anzeigetafel (@1)
LED marquee panel=LED-Anzeigetafel
Proceed=Fortsetzen
Channel=Kanal

5
locale/template.txt Normal file
View File

@ -0,0 +1,5 @@
# textdomain: led_marquee
LED marquee panel (@1)=
LED marquee panel=
Proceed=
Channel=

View File

@ -1,2 +1,6 @@
name = led_marquee
title = LED marquee
description = This mod provides a simple LED marquee that accepts single characters, strings, and special control words via digilines.
depends = default, digilines
optional_depends = mesecons_luacontroller, mesecons_microcontroller, mesecons_lamp
min_minetest_version = 5.2.0

View File

Before

Width:  |  Height:  |  Size: 649 KiB

After

Width:  |  Height:  |  Size: 649 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 649 KiB

8
settingtypes.txt Normal file
View File

@ -0,0 +1,8 @@
# Minimal marquee interval
led_marquee_message_minimum_time (Minimal marquee interval) float 0.5
# Marquee globalstep update interval
led_marquee_message_schedule_dtime (Marquee globalstep update interval) float 0.2
# Global message queue size
led_marquee_message_schedule_size (Global message queue size) int 10

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 B

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 B

After

Width:  |  Height:  |  Size: 83 B