mirror of
https://github.com/technix/ham_radio.git
synced 2024-08-18 20:24:07 +02:00
fix receiver station behavior
This commit is contained in:
parent
7205e8a69b
commit
fed9c2f919
@ -1,6 +1,6 @@
|
|||||||
ham_radio.receiver_update_infotext = function(meta)
|
ham_radio.receiver_update_infotext = function(meta)
|
||||||
local rds_message = meta:get_string("rds_message")
|
local rds_message = meta:get_string("rds_message")
|
||||||
local infotext = 'Radio Receiver'
|
local infotext = 'Radio receiver'
|
||||||
if rds_message ~= "" then
|
if rds_message ~= "" then
|
||||||
infotext = rds_message
|
infotext = rds_message
|
||||||
end
|
end
|
||||||
@ -51,14 +51,23 @@ minetest.register_node("ham_radio:receiver", {
|
|||||||
if (
|
if (
|
||||||
fields.quit ~= "true"
|
fields.quit ~= "true"
|
||||||
or minetest.is_protected(pos, sender:get_player_name())
|
or minetest.is_protected(pos, sender:get_player_name())
|
||||||
or not ham_radio.validate_frequency(fields.frequency)
|
|
||||||
) then
|
) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
local meta = minetest.get_meta(pos)
|
if fields.frequency ~= nil then
|
||||||
meta:set_string("frequency", fields.frequency)
|
local is_frequency_valid = ham_radio.validate_frequency(fields.frequency, true)
|
||||||
ham_radio.receiver_update_infotext(meta)
|
if is_frequency_valid.result == false then
|
||||||
|
ham_radio.errormsg(sender, is_frequency_valid.message)
|
||||||
|
else
|
||||||
|
local meta = minetest.get_meta(pos)
|
||||||
|
meta:set_string("frequency", fields.frequency)
|
||||||
|
meta:set_string("rds_message", "")
|
||||||
|
ham_radio.reset_receiver(pos)
|
||||||
|
ham_radio.receiver_update_infotext(meta)
|
||||||
|
ham_radio.play_tuning_sound(sender)
|
||||||
|
end
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
can_dig = function(pos,player)
|
can_dig = function(pos,player)
|
||||||
local meta = minetest.get_meta(pos);
|
local meta = minetest.get_meta(pos);
|
||||||
@ -75,6 +84,11 @@ minetest.register_node("ham_radio:receiver", {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ham_radio.reset_receiver = function (pos)
|
||||||
|
local poshash = minetest.pos_to_string(pos, 0)
|
||||||
|
ham_radio.receiver_rds[poshash] = nil
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_abm(
|
minetest.register_abm(
|
||||||
{
|
{
|
||||||
label = "Listen Ham Radion Broadcast",
|
label = "Listen Ham Radion Broadcast",
|
||||||
@ -92,7 +106,8 @@ minetest.register_abm(
|
|||||||
|
|
||||||
local poshash = minetest.pos_to_string(pos, 0)
|
local poshash = minetest.pos_to_string(pos, 0)
|
||||||
|
|
||||||
if ham_radio.receiver_rds[poshash] == nil then
|
if ham_radio.receiver_rds[poshash] == nil or not next(ham_radio.receiver_rds[poshash]) then
|
||||||
|
-- when all RDS messages are shown, reload them again
|
||||||
ham_radio.receiver_rds[poshash] = ham_radio.get_rds_messages(frequency, true)
|
ham_radio.receiver_rds[poshash] = ham_radio.get_rds_messages(frequency, true)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -100,11 +115,6 @@ minetest.register_abm(
|
|||||||
if message ~= nil then
|
if message ~= nil then
|
||||||
meta:set_string('rds_message', message)
|
meta:set_string('rds_message', message)
|
||||||
ham_radio.receiver_update_infotext(meta)
|
ham_radio.receiver_update_infotext(meta)
|
||||||
|
|
||||||
-- when all RDS messages are shown, reload them again
|
|
||||||
if not next(ham_radio.receiver_rds[poshash]) then
|
|
||||||
ham_radio.receiver_rds[poshash] = ham_radio.get_rds_messages(frequency, true)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user