mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2024-12-12 11:10:29 +00:00
More examples
Yay!
This commit is contained in:
parent
b0651082f4
commit
c35707725f
@ -35,14 +35,20 @@ export default {
|
||||
|
||||
await Promise.all(files
|
||||
.filter(x => path.extname(x) !== ".ts")
|
||||
.map(file => fs.writeFile(`${input}/mount/${file}.d.ts`, template))
|
||||
.map(async file => {
|
||||
const path = `${input}/mount/${file}.d.ts`;
|
||||
const contents = await fs.readFile(path, { encoding: "utf-8" }).catch(() => "");
|
||||
if (contents !== template) await fs.writeFile(path, template);
|
||||
})
|
||||
);
|
||||
return options;
|
||||
},
|
||||
async transform(code, file) {
|
||||
// Allow loading files in /mount.
|
||||
if (path.extname(file) != ".lua" && path.basename(file) != ".settings") return null;
|
||||
return `export default ${JSON.stringify(code)};\n`;
|
||||
const ext = path.extname(file);
|
||||
return ext != '.tsx' && ext != '.ts' && path.dirname(file) === path.resolve(`${input}/mount`)
|
||||
? `export default ${JSON.stringify(code)};\n`
|
||||
: null;
|
||||
},
|
||||
}
|
||||
],
|
||||
|
@ -64,6 +64,10 @@ end
|
||||
--
|
||||
-- @treturn table|nil The parsed image data, suitable for use with
|
||||
-- @{paintutils.drawImage}, or `nil` if the file does not exist.
|
||||
-- @usage Load an image and draw it.
|
||||
--
|
||||
-- local image = paintutils.loadImage("test-image.nfp")
|
||||
-- paintutils.drawImage(image, term.getCursorPos())
|
||||
function loadImage(path)
|
||||
expect(1, path, "string")
|
||||
|
||||
@ -107,6 +111,7 @@ end
|
||||
-- @tparam number endY The end y position of the line.
|
||||
-- @tparam[opt] number colour The @{colors|color} of this pixel. This will be
|
||||
-- the current background colour if not specified.
|
||||
-- @usage paintutils.drawLine(2, 3, 30, 7, colors.red)
|
||||
function drawLine(startX, startY, endX, endY, colour)
|
||||
expect(1, startX, "number")
|
||||
expect(2, startY, "number")
|
||||
@ -170,6 +175,7 @@ end
|
||||
-- @tparam number endY The end y position of the line.
|
||||
-- @tparam[opt] number colour The @{colors|color} of this pixel. This will be
|
||||
-- the current background colour if not specified.
|
||||
-- @usage paintutils.drawBox(2, 3, 30, 7, colors.red)
|
||||
function drawBox(startX, startY, endX, endY, nColour)
|
||||
expect(1, startX, "number")
|
||||
expect(2, startY, "number")
|
||||
@ -222,6 +228,7 @@ end
|
||||
-- @tparam number endY The end y position of the line.
|
||||
-- @tparam[opt] number colour The @{colors|color} of this pixel. This will be
|
||||
-- the current background colour if not specified.
|
||||
-- @usage paintutils.drawFilledBox(2, 3, 30, 7, colors.red)
|
||||
function drawFilledBox(startX, startY, endX, endY, nColour)
|
||||
expect(1, startX, "number")
|
||||
expect(2, startY, "number")
|
||||
|
@ -1,18 +1,19 @@
|
||||
--- Provides a simple implementation of multitasking.
|
||||
--
|
||||
-- Functions are not actually executed simultaniously, but rather this API will
|
||||
-- automatically switch between them whenever they yield (eg whenever they call
|
||||
-- @{coroutine.yield}, or functions that call that - eg `os.pullEvent` - or
|
||||
-- functions that call that, etc - basically, anything that causes the function
|
||||
-- to "pause").
|
||||
--
|
||||
-- Each function executed in "parallel" gets its own copy of the event queue,
|
||||
-- and so "event consuming" functions (again, mostly anything that causes the
|
||||
-- script to pause - eg `sleep`, `rednet.receive`, most of the `turtle` API,
|
||||
-- etc) can safely be used in one without affecting the event queue accessed by
|
||||
-- the other.
|
||||
--
|
||||
-- @module parallel
|
||||
--[[- Provides a simple implementation of multitasking.
|
||||
|
||||
Functions are not actually executed simultaniously, but rather this API will
|
||||
automatically switch between them whenever they yield (eg whenever they call
|
||||
@{coroutine.yield}, or functions that call that - eg `os.pullEvent` - or
|
||||
functions that call that, etc - basically, anything that causes the function
|
||||
to "pause").
|
||||
|
||||
Each function executed in "parallel" gets its own copy of the event queue,
|
||||
and so "event consuming" functions (again, mostly anything that causes the
|
||||
script to pause - eg `sleep`, `rednet.receive`, most of the `turtle` API,
|
||||
etc) can safely be used in one without affecting the event queue accessed by
|
||||
the other.
|
||||
|
||||
@module parallel
|
||||
]]
|
||||
|
||||
local function create(...)
|
||||
local tFns = table.pack(...)
|
||||
@ -70,21 +71,53 @@ local function runUntilLimit(_routines, _limit)
|
||||
end
|
||||
end
|
||||
|
||||
--- Switches between execution of the functions, until any of them
|
||||
-- finishes. If any of the functions errors, the message is propagated upwards
|
||||
-- from the @{parallel.waitForAny} call.
|
||||
--
|
||||
-- @tparam function ... The functions this task will run
|
||||
--[[- Switches between execution of the functions, until any of them
|
||||
finishes. If any of the functions errors, the message is propagated upwards
|
||||
from the @{parallel.waitForAny} call.
|
||||
|
||||
@tparam function ... The functions this task will run
|
||||
@usage Print a message every second until the `q` key is pressed.
|
||||
|
||||
local function tick()
|
||||
while true do
|
||||
os.sleep(1)
|
||||
print("Tick")
|
||||
end
|
||||
end
|
||||
local function wait_for_q()
|
||||
repeat
|
||||
local _, key = os.pullEvent("key")
|
||||
until key == keys.q
|
||||
print("Q was pressed!")
|
||||
end
|
||||
|
||||
parallel.waitForAny(tick, wait_for_q)
|
||||
print("Everything done!")
|
||||
]]
|
||||
function waitForAny(...)
|
||||
local routines = create(...)
|
||||
return runUntilLimit(routines, #routines - 1)
|
||||
end
|
||||
|
||||
--- Switches between execution of the functions, until all of them are
|
||||
-- finished. If any of the functions errors, the message is propagated upwards
|
||||
-- from the @{parallel.waitForAll} call.
|
||||
--
|
||||
-- @tparam function ... The functions this task will run
|
||||
--[[- Switches between execution of the functions, until all of them are
|
||||
finished. If any of the functions errors, the message is propagated upwards
|
||||
from the @{parallel.waitForAll} call.
|
||||
|
||||
@tparam function ... The functions this task will run
|
||||
@usage Start off two timers and wait for them both to run.
|
||||
|
||||
local function a()
|
||||
os.sleep(1)
|
||||
print("A is done")
|
||||
end
|
||||
local function b()
|
||||
os.sleep(3)
|
||||
print("B is done")
|
||||
end
|
||||
|
||||
parallel.waitForAll(a, b)
|
||||
print("Everything done!")
|
||||
]]
|
||||
function waitForAll(...)
|
||||
local routines = create(...)
|
||||
return runUntilLimit(routines, 0)
|
||||
|
@ -252,8 +252,8 @@ local function drawCanvasLine(y)
|
||||
bg = bg .. color_hex_lookup[pixel or canvasColour]
|
||||
else
|
||||
text = text .. "\127"
|
||||
fg = fg .. color_hex_lookup[canvasColour]
|
||||
bg = bg .. color_hex_lookup[colours.grey]
|
||||
fg = fg .. color_hex_lookup[colours.grey]
|
||||
bg = bg .. color_hex_lookup[canvasColour]
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -4,10 +4,15 @@ import type { ComponentChild } from "preact";
|
||||
import settingsFile from "./mount/.settings";
|
||||
import startupFile from "./mount/startup.lua";
|
||||
import exprTemplate from "./mount/expr_template.lua";
|
||||
import exampleImage from "./mount/example.nfp";
|
||||
|
||||
const defaultFiles: { [filename: string]: string } = {
|
||||
".settings": settingsFile,
|
||||
"startup.lua": startupFile,
|
||||
|
||||
// TODO: Ideally this'd be in data/image.nfp or something, but copy-cat's
|
||||
// dir bootstrapping doesn't cope with that right now.
|
||||
"test-image.nfp": exampleImage
|
||||
};
|
||||
|
||||
const clamp = (value: number, min: number, max: number): number => {
|
||||
|
16
src/web/mount/example.nfp
Normal file
16
src/web/mount/example.nfp
Normal file
@ -0,0 +1,16 @@
|
||||
fffffffffffffffffffffff
|
||||
f444444444444444444444f
|
||||
f444444444444444444444f
|
||||
f44fffffffffffffffff44f
|
||||
f44ff0ffffffffffffff44f
|
||||
f44fff0fffffffffffff44f
|
||||
f44ff0ffffffffffffff44f
|
||||
f44fffffffffffffffff44f
|
||||
f44fffffffffffffffff44f
|
||||
f44fffffffffffffffff44f
|
||||
f44fffffffffffffffff44f
|
||||
f44fffffffffffffffff44f
|
||||
f444444444444444444444f
|
||||
f4444444444444444fff44f
|
||||
f444444444444444444444f
|
||||
fffffffffffffffffffffff
|
Loading…
Reference in New Issue
Block a user