Skip to content

Latest commit

 

History

History
85 lines (68 loc) · 1.71 KB

README.md

File metadata and controls

85 lines (68 loc) · 1.71 KB

deep

deep is a tiny library for queuing and executing actions in sequence.

This functionality can be used in multiple ways, one of which is for LÖVE, where you can use the Z axis when drawing.

Usage

Place deep.lua inside your project and require it:

deep = require "deep"

Queue actions

deep.queue(3, print, "wound!")
deep.queue(1, print, "It's just")
deep.queue(2, print, "a flesh")

Execute

deep.execute()

Prints:

It's just
a flesh
wound!

Documentation

deep.queue(i, fun, ...)

Queues a function for execution at index i

deep.queue(100, print, "Hello")

Arguments:

  • i (number) - The index of the action, must be positive.
  • fun (function) - An anonymous or named function
  • ... (*) - The arguments of the passed named function

Two ways to queue actions

  1. Using anonymous functions:
deep.queue(400, function() hit(iron, 100) end)
  1. Using named functions:
deep.queue(400, hit, iron, 100)

Queuing multiple actions

Simply use an anonymous function:

deep.queue(1, function()
	print("Hello")
	print("World")
end)

deep:execute()

Executes all of the queued actions.

-- Will execute the actions in random order
deep.queue(math.random(10), print, "'Tis")
deep.queue(math.random(10), print, "but")
deep.queue(math.random(10), print, "a")
deep.queue(math.random(10), print, "scratch!")

deep.execute()

Demos

The demo files have small examples of how deep's different functions should be used. I suggest you check out each one of them to learn about the various edge cases and details of deep.

Here's what demo1 does: demo