Observed since 20 Oct, 21:24 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
8pack ====================
npm install 8pack -g
Create sample.lua.p8 from sample.lua using newest PICO-8 template
8pack tests/sample.lua
Inject sample.lua source into foo.p8. Will overwrite foo.p8 if already exists.
8pack tests/sample.lua foo.p8
Watch /tests/sample.lua for changes and overwrite to /tests/sample.lua.p8
8pack /tests/sample.lua -w
Write /tests/sample.lua source to /tests/foo.p8 using PICO-8 0.1.10c template
8pack tests/sample.lua /tests/foo.p8 --template 0.1.10c
Lua modules can be imported via require('./libs/lib') and will be injected to the top of the p8 file as global variables.
Each module must return a table, variable or a function. Use node.js style path prefixes to access parent directories: require('../lib')
main.lua:
local liba = require('./liba');
function _init()
state = {
hi = "hello world",
i = 0,
someFunct = function()
return 1
end,
someOtherFunct = function()
return 0
end
}
end
function _update60()
state.i = state.i + rnd(liba.iterator);
end
function _draw()
cls();
print(liba.foo() .. ' ' .. state.i, 0, 116, 7);
end
./liba.lua module:
local lib = {
foo = function()
return 'hello world'
end,
}
lib.iterator = 1
return lib;
Each injection is instantiated as a new function in pico8 code thus no code can be shared between modules.
As a workaround 8pack creates a globals table as the topmost variable inside the project which can be accessed from every module.
./helpers.lua module:
local helpers = {
setLevel = function(level)
globals.level = level
end,
}
return lib;
./game.lua module:
return {
nextLevel = function()
globals.level = globals.level+1
return globals.level
end
}
Install 8pack globally and add 8pack bin as watcher with following arguments for on-the-fly injection
$ProjectFileDir$/projectroot.lua $ProjectFileDir$/project.p8
e.g. for Lua watcher in PhpStorm 2017.3 on Windows 10 (I'm using the official Lua plugin)

Download counts and popularity will appear here as the collector receives them.
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:24 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:03a04e8122be6c2c79e6fb38cc96b5b558d9e1b7fdca7a336fd749a2cca81f7f