patches | ||
textures | ||
beacon.lua | ||
config.lua | ||
craft.lua | ||
depends.txt | ||
digiline.lua | ||
helpers.lua | ||
hud.lua | ||
init.lua | ||
LICENSE.txt | ||
mod.conf | ||
rds.lua | ||
README.md | ||
receiver_station.lua | ||
receiver.lua | ||
screenshot.png | ||
transmitter.lua |
Ham Radio
This mod brings radio transmitters and receivers to the Minetest world.
Dependencies:
default
basic_materials?
technic?
digilines?
Craft recipes depend of the mods installed.
Transmitter
Craft a transmitter and place it in the world. Right click on transmitter to open configuration dialog, then set frequency and RDS message.
- Empty frequency turns transmitter off.
- Transmitter information is displayed as info text when player points at it.
- RDS message can be multiline. However, it is transmitted line by line.
- RDS message and frequency can be set via digiline. Also, you can read transmitter configuration via digiline too.
Beacon
Beacon is a simplified transmitter. After placement it automatically tunes on a random unoccupied frequency from predefined range. Beacon frequency range is determined by beacon_frequency
setting.
- Beacon frequency is displayed as info text when player points at it.
Receiver
Handheld receiver is a wielded tool.
- Left click opens configuration dialog to set frequency. Empty string turns receiver off.
- Shift + left click toggles reception of RDS messages.
When receiver is tuned to a frequency where at least one transmitter is present, HUD signal meter bar shows signal power. The signal power depends on distance and direction to the transmitter.
If RDS reception is toggled on, the RDS messages from all transmitters on this frequency are enqueued and will be send one by one as a chat messages to the player with 10 seconds interval. When RDS message queue becomes empty, it refills and starts over again.
Stationary Receiver
Right click on receiver opens configuration window to set frequency. Receiver displays RDS messages as infotext in the same way as handheld receiver. It does not have signal power meter.
- You can operate the receiver via digiline in the same way as the transmitter.
Digiline
-- channel "ham_radio_rds" accepts plain text
digiline.send('ham_radio_rds', 'new RDS message')
-- get transmitter info
digiline.send('ham_radio', { command = 'get' })
-- returns { frequency = 12345, rds_message = 'text' }
-- set frequency
digiline.send('ham_radio', { command = 'set_frequency', value = '12345' })
-- returns { update = 'frequency', success = true/false, message = errorMessage }
-- set RDS message
digiline.send('ham_radio', { command = 'set_rds_message', value = 'new RDS message' })
-- returns { update = 'rds_message', success = true }
Config
See config.lua
to see current parameters. You can edit this file to change them.
Default parameters:
- Frequency range: 0 - 9999999
- Locked frequency range: 100000 - 9999999
- Only one transmitter is allowed for the frequency in this range.
- Beacon frequency range: 1000000 - 99999999
- Beacon frequency is auto-assigned from this range.
- Please note, this range overlaps with locked frequency range to ensure each beacon receives unique frequency.
- RDS interval: 10 seconds
- This setting affects handheld receivers only. The interval should be high enough to avoid spamming chat with repeated messages.
- RDS interval for stationary receiver is 5 seconds and can't be changed.
What's next?
- Place beacons or transmitters anywhere in the world, give frequency to other players and let them search for them
- Pick a frequency which all players can use for their announcements to organize radio bulletin board
- Operate your transmitters with digiline to receive notification on radio
- ???
- PROFIT
Author and license
(c) techniX 2019
Source code: MIT
Textures: CC BY-SA 3.0
Sounds: cut from "G32-20-Tuning Radio" by craigsmith, CC 0