Repository navigation
Releases
Releases · Knito58/Billboard-API
Billboard API 0.2.0 for Minecraft 26.3
Changelog
0.2.0
New: Redstone Port, the bridge between Lua and vanilla redstone.
- Craft it from a Data Pipe and a redstone dust. It looks like a pipe block and joins the network on all six sides, so
it can sit inside a run of pipes. - A program sets the signal on each side (0 to 15) to drive pistons, doors and lamps, and reads levers, pressure plates
and buttons. getBlock(side)tells which block is next to the port and its state, for example whether a piston isextended.- A program claims the port with
claim()before it sets a signal;release()andisClaimed()complete the set.
Everything is let go when the program ends or is stopped. - Right-click a port with a block to make it look like that block (the item is not used up). Sneak-click with an empty
hand to take the look off.
Changed:
network_owner_checkis nowfalseby default: a box drives any machine it reaches. Set it totrueto limit a box
to machines placed by its owner. Abillboard_api.propertieswritten by 0.1.0 keepstrueuntil it is changed.
Also: a wiki at https://github.com/Knito58/Billboard-API/wiki, with the Lua reference and a page for every block. The
Lua Box, pipes, signs and redstone ports need no other mod.
0.1.0
- Project set up: Fabric mod for Minecraft 26.3 with Cobalt, the Lua VM, packed in under its own package name.
- Lua Box, taken over from Billboard Engine's Script Box: the program is
main.lua, plus up to 8 more files of the
types the server allows (images,.txt,.json,.csv,.lua). Other.luafiles are modules forrequire.
Programs read the box's files withfiles.list(),files.read(name)andfiles.lines(name). - Everybody may press Restart and Stop; only the owner and operators may change the files.
- Settings in
config/billboard_api.properties; on the first start the Script Box limits are taken over from
Billboard Engine'sbillboard.properties. /luabox <pos> restart|stop|statusfor operators and command blocks.- Worlds from Billboard Engine 1.x: Script Boxes become Lua Boxes (block, item and block entity alias from
billboard:script_box). Each keeps its files, which move tobillboard_api/boxes/, and its one program is
renamed tomain.lua. Not while Billboard Engine 1.x itself is installed. - Lua clients: mods register machines with
BillboardApi.CLIENTS(a Fabric block API lookup). Programs get
network.list(),network.findByName(name),network.find(type),network.version()and a handle per client
withgetName(),setName(name),getType()and the client's own functions. A client may answer later with a
CompletableFuture; the program waits for it. - A box reaches clients that touch it, a Lua Box or a pipe joined to it. Names are kept by the library on the machine;
a name clash gets the newcomer renamed, and every box tells. Settingsnetwork_max_clients=64,
network_max_boxes=8,network_owner_check=true: a box drives only machines its owner placed; machines from
before go to the owner of the first box that reaches them. enginestill works for Script Box programs: the one Billboard Engine of the network.- Vanilla signs and hanging signs are Lua clients,
minecraft:sign. - Data Pipe (
billboard_api:data_pipe, 8 from planks, paper, planks; cardboard look like the Lua Box, wood sound): joins Lua Boxes and Lua clients
into one network. Sneak-click an arm with an empty hand to switch that side off.network_max_pipes=512. - Box screen: a Network button swaps the file list for the machines the box reaches, with their type; click one to
rename it. Machines of other owners are shown greyed out. LuaArgs.caller(): the calling program (LuaCaller:describe(),isActive(),file(name)), so a machine can
let one program claim it, and show files of the calling box.
Billboard API 0.1.0 for Minecraft 26.3
Changelog
0.1.0 (not released)
- Project set up: Fabric mod for Minecraft 26.3 with Cobalt, the Lua VM, packed in under its own package name.
- Lua Box, taken over from Billboard Engine's Script Box: the program is
main.lua, plus up to 8 more files of the
types the server allows (images,.txt,.json,.csv,.lua). Other.luafiles are modules forrequire.
Programs read the box's files withfiles.list(),files.read(name)andfiles.lines(name). - Everybody may press Restart and Stop; only the owner and operators may change the files.
- Settings in
config/billboard_api.properties; on the first start the Script Box limits are taken over from
Billboard Engine'sbillboard.properties. /luabox <pos> restart|stop|statusfor operators and command blocks.- Worlds from Billboard Engine 1.x: Script Boxes become Lua Boxes (block, item and block entity alias from
billboard:script_box). Each keeps its files, which move tobillboard_api/boxes/, and its one program is
renamed tomain.lua. Not while Billboard Engine 1.x itself is installed. - Lua clients: mods register machines with
BillboardApi.CLIENTS(a Fabric block API lookup). Programs get
network.list(),network.findByName(name),network.find(type),network.version()and a handle per client
withgetName(),setName(name),getType()and the client's own functions. A client may answer later with a
CompletableFuture; the program waits for it. - A box reaches clients that touch it, a Lua Box or a pipe joined to it. Names are kept by the library on the machine;
a name clash gets the newcomer renamed, and every box tells. Settingsnetwork_max_clients=64,
network_max_boxes=8,network_owner_check=true: a box drives only machines its owner placed; machines from
before go to the owner of the first box that reaches them. enginestill works for Script Box programs: the one Billboard Engine of the network.- Vanilla signs and hanging signs are Lua clients,
minecraft:sign. - Data Pipe (
billboard_api:data_pipe, 8 from planks, paper, planks; cardboard look like the Lua Box, wood sound): joins Lua Boxes and Lua clients
into one network. Sneak-click an arm with an empty hand to switch that side off.network_max_pipes=512. - Box screen: a Network button swaps the file list for the machines the box reaches, with their type; click one to
rename it. Machines of other owners are shown greyed out. LuaArgs.caller(): the calling program (LuaCaller:describe(),isActive(),file(name)), so a machine can
let one program claim it, and show files of the calling box.