mirror of
				https://github.com/SquidDev-CC/CC-Tweaked
				synced 2025-10-30 21:23:00 +00:00 
			
		
		
		
	More examples
Yay!
This commit is contained in:
		| @@ -341,3 +341,6 @@ b0651082f472baee8f0fa8ec7ba95f433e2637bb | |||||||
|  |  | ||||||
| Cleanup examples for the various modules | Cleanup examples for the various modules | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | Ignored Documentation Changes, these are locate | ||||||
|  | ``` | ||||||
|   | |||||||
| @@ -64,6 +64,10 @@ end | |||||||
| -- | -- | ||||||
| -- @treturn table|nil The parsed image data, suitable for use with | -- @treturn table|nil The parsed image data, suitable for use with | ||||||
| -- @{paintutils.drawImage}, or `nil` if the file does not exist. | -- @{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) | function loadImage(path) | ||||||
|     expect(1, path, "string") |     expect(1, path, "string") | ||||||
|  |  | ||||||
| @@ -107,6 +111,7 @@ end | |||||||
| -- @tparam number endY The end y position of the line. | -- @tparam number endY The end y position of the line. | ||||||
| -- @tparam[opt] number colour The @{colors|color} of this pixel. This will be | -- @tparam[opt] number colour The @{colors|color} of this pixel. This will be | ||||||
| -- the current background colour if not specified. | -- the current background colour if not specified. | ||||||
|  | -- @usage paintutils.drawLine(2, 3, 30, 7, colors.red) | ||||||
| function drawLine(startX, startY, endX, endY, colour) | function drawLine(startX, startY, endX, endY, colour) | ||||||
|     expect(1, startX, "number") |     expect(1, startX, "number") | ||||||
|     expect(2, startY, "number") |     expect(2, startY, "number") | ||||||
| @@ -170,6 +175,7 @@ end | |||||||
| -- @tparam number endY The end y position of the line. | -- @tparam number endY The end y position of the line. | ||||||
| -- @tparam[opt] number colour The @{colors|color} of this pixel. This will be | -- @tparam[opt] number colour The @{colors|color} of this pixel. This will be | ||||||
| -- the current background colour if not specified. | -- the current background colour if not specified. | ||||||
|  | -- @usage paintutils.drawBox(2, 3, 30, 7, colors.red) | ||||||
| function drawBox(startX, startY, endX, endY, nColour) | function drawBox(startX, startY, endX, endY, nColour) | ||||||
|     expect(1, startX, "number") |     expect(1, startX, "number") | ||||||
|     expect(2, startY, "number") |     expect(2, startY, "number") | ||||||
| @@ -222,6 +228,7 @@ end | |||||||
| -- @tparam number endY The end y position of the line. | -- @tparam number endY The end y position of the line. | ||||||
| -- @tparam[opt] number colour The @{colors|color} of this pixel. This will be | -- @tparam[opt] number colour The @{colors|color} of this pixel. This will be | ||||||
| -- the current background colour if not specified. | -- the current background colour if not specified. | ||||||
|  | -- @usage paintutils.drawFilledBox(2, 3, 30, 7, colors.red) | ||||||
| function drawFilledBox(startX, startY, endX, endY, nColour) | function drawFilledBox(startX, startY, endX, endY, nColour) | ||||||
|     expect(1, startX, "number") |     expect(1, startX, "number") | ||||||
|     expect(2, startY, "number") |     expect(2, startY, "number") | ||||||
|   | |||||||
| @@ -1,18 +1,19 @@ | |||||||
| --- Provides a simple implementation of multitasking. | --[[- Provides a simple implementation of multitasking. | ||||||
| -- |  | ||||||
| -- Functions are not actually executed simultaniously, but rather this API will | Functions are not actually executed simultaniously, but rather this API will | ||||||
| -- automatically switch between them whenever they yield (eg whenever they call | automatically switch between them whenever they yield (eg whenever they call | ||||||
| -- @{coroutine.yield}, or functions that call that - eg `os.pullEvent` - or | @{coroutine.yield}, or functions that call that - eg `os.pullEvent` - or | ||||||
| -- functions that call that, etc - basically, anything that causes the function | functions that call that, etc - basically, anything that causes the function | ||||||
| -- to "pause"). | to "pause"). | ||||||
| -- |  | ||||||
| -- Each function executed in "parallel" gets its own copy of the event queue, | Each function executed in "parallel" gets its own copy of the event queue, | ||||||
| -- and so "event consuming" functions (again, mostly anything that causes the | and so "event consuming" functions (again, mostly anything that causes the | ||||||
| -- script to pause - eg `sleep`, `rednet.receive`, most of the `turtle` API, | 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 | etc) can safely be used in one without affecting the event queue accessed by | ||||||
| -- the other. | the other. | ||||||
| -- |  | ||||||
| -- @module parallel | @module parallel | ||||||
|  | ]] | ||||||
|  |  | ||||||
| local function create(...) | local function create(...) | ||||||
|     local tFns = table.pack(...) |     local tFns = table.pack(...) | ||||||
| @@ -70,21 +71,53 @@ local function runUntilLimit(_routines, _limit) | |||||||
|     end |     end | ||||||
| end | end | ||||||
|  |  | ||||||
| --- Switches between execution of the functions, until any of them | --[[- Switches between execution of the functions, until any of them | ||||||
| -- finishes. If any of the functions errors, the message is propagated upwards | finishes. If any of the functions errors, the message is propagated upwards | ||||||
| -- from the @{parallel.waitForAny} call. | from the @{parallel.waitForAny} call. | ||||||
| -- |  | ||||||
| -- @tparam function ... The functions this task will run | @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(...) | function waitForAny(...) | ||||||
|     local routines = create(...) |     local routines = create(...) | ||||||
|     return runUntilLimit(routines, #routines - 1) |     return runUntilLimit(routines, #routines - 1) | ||||||
| end | end | ||||||
|  |  | ||||||
| --- Switches between execution of the functions, until all of them are | --[[- Switches between execution of the functions, until all of them are | ||||||
| -- finished. If any of the functions errors, the message is propagated upwards | finished. If any of the functions errors, the message is propagated upwards | ||||||
| -- from the @{parallel.waitForAll} call. | from the @{parallel.waitForAll} call. | ||||||
| -- |  | ||||||
| -- @tparam function ... The functions this task will run | @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(...) | function waitForAll(...) | ||||||
|     local routines = create(...) |     local routines = create(...) | ||||||
|     return runUntilLimit(routines, 0) |     return runUntilLimit(routines, 0) | ||||||
|   | |||||||
| @@ -252,8 +252,8 @@ local function drawCanvasLine(y) | |||||||
|             bg = bg .. color_hex_lookup[pixel or canvasColour] |             bg = bg .. color_hex_lookup[pixel or canvasColour] | ||||||
|         else |         else | ||||||
|             text = text .. "\127" |             text = text .. "\127" | ||||||
|             fg = fg .. color_hex_lookup[canvasColour] |             fg = fg .. color_hex_lookup[colours.grey] | ||||||
|             bg = bg .. color_hex_lookup[colours.grey] |             bg = bg .. color_hex_lookup[canvasColour] | ||||||
|         end |         end | ||||||
|     end |     end | ||||||
|     term.setCursorPos(1, y) |     term.setCursorPos(1, y) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Merith-TK
					Merith-TK