MineTV is a scripted TV mod for games using the Luanti engine
| textures | Initial check-in, alpha state/first proof of concept | |
| tvs | Initial check-in, alpha state/first proof of concept | |
| channel.lua | Initial check-in, alpha state/first proof of concept | |
| init.lua | Initial check-in, alpha state/first proof of concept | |
| LICENSE.txt | Initial check-in, alpha state/first proof of concept | |
| mod.conf | Initial check-in, alpha state/first proof of concept | |
| program.lua | Initial check-in, alpha state/first proof of concept | |
| README.txt | Initial check-in, alpha state/first proof of concept | |
| scheduler.lua | Initial check-in, alpha state/first proof of concept | |
MTV mod -- It's not just TV, it's MineTV
This mod displays sequences of images and text from connected TV screens.
Place a TV from a supported mod, or use the default one, and right click
to turn it on, and left click to change channels.
Channels play shows according to their broadcast schedule, and repeat
when they've hit the end of the schedule. Shows can be run in order, or
in a random sequence until all have been shown.
Supported mods: ----------------------------------------------------------
None yet
Ma and Pop's Furniture mod is required for some of the test channels
Content: -----------------------------------------------------------------
Content for the mtv mod consists of programs and a channel to display them.
A sample channel playing a single program on a basic schedule will be
provided
Programs -----------------------------------------------------------------
Programs are made from scenes and scripts, and sent to the MTV mod via lua.
A program has a table of scenes and scripts for episodes which are kept in
a folder, and can be numbered.
myprogram.lua:
MTV.define_show("My Program", {scene table}, "episode_folder/", { options })
--#TODO: check if mod security will prevent reading the folder
-- maybe a loop? for i = .. MTV.add_episode("Show Name", folder_contents[i])
Scenes: -------------------
A scene is a selection of textures, still or animated, defined in lua tables.
can be show-specific or defined channel-wide. Any scene that's been defined
should be accessible by name. In the event of a name collision, the
show-specific version scene will be selected.
Scene table format:
{
[scene_name] = { tex = <Luanti texture definition>,
color = <color string>,
sound = <Luanti SimpleSoundSpec>
},
[scene_name] = ..., etc.
}
For example:
{ ["Pepperpot2"] = { tex = { "pepperpot.png^[transform4]" },
color = "#AAF",
sound = { name = "bleah.ogg", pitch = 0.5 }
}
Scripts: ------------------
A script is text that defines playback time, scenes, and dialogue.
Script format:
[time] [scene]: Dialogue <i>italics</i> <b>bold</b>
or <break>
For example:
[[
3 Pepperpot1: Well, what did you buy?
2.4 Pepperpot2: A <i>piston engine!</i>
]]
Future plans: ------------------------------------------------------------
Need a system to handle the screen entity's nametag, so it can display the
channel and also closed captions
Need a remote control object that opens a formspec (off to the side) to
control power, channel, volume, closed captions toggling. Without it,
you're stuck with punch to cycle channels and right click to power off.
Need to handle "markup" for <b>old and <i>talics, and maybe overriding
a scene's color to emphasize words or to show one character on-screen
while another talks.
Special scenes: can we create multi-layered entity scenes with
lua-programmable animation? Texture modifiers are pretty powerful
already, but we could go bigger.
VCR: Play episodes from an item, without commercials/station filler,
or maybe even record a time slot and play it back complete (copy
the playback script?) The former's easy, we read the program directly
Channel [1] will be reserved as a special case to have the screen
wait for a nearby playback device to connect
TV listings: A book that displays the channel's schedules would be handy
You'll probably want a clock to go with it