-
Notifications
You must be signed in to change notification settings - Fork 2
Documentation
Andre Louis Issa edited this page Nov 16, 2022
·
41 revisions
Types can be joined by | to indicate multiple suitable types
Base lua types:
- nil, boolean, number, string, thread, userdata
- table (with [KEYTYPES] and {VALUETYPES} if relevant)
- function (shown as type (ARGUMENTS)->(RETURNS))
Extra types defined for greater specificity:
- ~nil: anything that isn't nil
- *table: a table with a modified metatable
- Val: nil|boolean|number|string
- Ref: table|*table|thread|userdata|(...)->(...)
- Int: ...-2,-1,0,-1,2... (integers)
- +Int: 1,2,3... (positive integers)
- Array: tables with only +Int keys and all such keys between 1 and #table inclusive are not nil
- Path: String keys joined by single periods to mimic the shape of nested table fields
- Mod: A table registered as a mod, produced by ModUtil.Mod.Register
- File: file userdata (used by the io package)
- Button, Obstacle, Screen, Screen.Component: Hades specific objects
Members accessible via the ModUtil table.
| Mods.Data | *table[Path]{Mod} | Collection of all the registered mods by their canonical path |
| Mods.Inverse | *table[Mod]{Path} | Lookup of the canonical path by mod object |
| Identifiers.Data | *table[Ref]{string} | Map from object to associated name (name is part of the object's string representation) |
| Identifiers.Inverse | *table[string]{Ref} | Map from name to associated object (name is part of the object's string representation) |
| Node.Data | *table[string]{*table} | Collection of traversal nodes for use as special keys in index arrays |
| Node.Inverse | *table{*table}[string] | Lookup table of traversal nodes to distinguish them from regular keys |
| Proxy |
data(table), meta(nil|table)
|
proxy(*table)
|
Creates a proxy of data using meta to define the interface (meta can keep a reference to data beforehand or can get it from ModUtil.Internal.objectData[proxy])
|
||
| Raw |
obj(table)
|
raw(*table)
|
Creates a proxy raw of obj, where table operations ignore the metatable of obj
|
||
| Callable |
obj(table|(...)->(...))
|
callable(boolean)
|
Checks if obj is callable (either a function or has the __call metamethod mapped to a callable).
|
||
| Callable.Get |
obj(table|(...)->(...))
|
parent(nil|table), func(nil|(self,...)->(...))
|
Gets the function func that the callable obj uses, along with the mutable parent non-function callable if it exists.
|
||
| Callable.Set |
obj(table), func(nil|(self,...)->(...))
|
parent(nil|*table), func(nil|(self,...)->(...))
|
Sets the __call metamethod of obj to func (obj becomes the parent to func in this sense)
|
||
| Callable.Map |
obj(table), map((func,...)->(newfunc)), ...
|
parent(nil|*table), newfunc(nil|(self,...)->(...))
|
Changes the function func the callable obj uses into newfunc by applying map and mutating parent
|
||
| Callable.Func.Get |
obj(table|((...)->(...)))
|
func(nil|(self,...)->(...))
|
Gets the function func that the callable obj uses
|
||
| Callable.Func.Set |
obj(table), func(nil|(self,...)->(...))
|
func(nil|(self,...)->(...))
|
Sets the __call metamethod of obj to func
|
||
| Callable.Func.Map |
obj(table), map((func,...)->(newfunc)), ...
|
func(nil|(self,...)->(...))
|
Changes the function func the callable obj uses into newfunc by applying map
|
||
| Args.Map |
map((in)->(out)), ...
|
... |
Applies map to each argument and returns the results
|
||
| Args.Take |
n(+Int), ...
|
... |
Returns only the first n arguments
|
||
| Args.Drop |
n(+Int), ...
|
... |
Skips over the first n arguments and returns the rest
|
||
| Table.Map |
tbl(table), map((in)->(out))
|
out(tbl)
|
Creates a new table out comprised of applying map to each value of tbl
|
||
| Table.Mutate |
tbl(table), map((in)->(out))
|
|
Modifies tbl by setting each value to its result after applying map
|
||
| Table.Replace |
target(table), data(table)
|
|
Modifies target by replacing all its entries with those from data
|
||
| Table.UnKeyed |
tbl(table)
|
keyed(boolean)
|
Determines if tbl is suitable to use with functions designed for Arrays (the keys are all successive indices)
|
||
| String.Join |
sep(string), ...(string)
|
out(string)
|
| String.Chunk |
text(string), chunkSize(+Int), maxChunks(+Int)
|
chunks(Array{string})
|
| ToString |
object
|
repr(string)
|
| ToString.Address |
object(table|(...)->(...)|thread|userdata)
|
repr(string)
|
| ToString.Static |
object(table|(...)->(...)|thread|userdata)
|
repr(string)
|
| ToString.Value |
object
|
repr(string)
|
| ToString.Key |
object
|
repr(string)
|
| ToString.TableKeys |
object(table)
|
repr(string)
|
| ToString.Shallow |
object, limit(nil|Nat), indent(nil|string)
|
repr(string)
|
| ToString.Deep |
object, limit(nil|Nat), depth(nil|Nat), indent(nil|string)
|
repr(string)
|
| ToString.Deep.NoNamespaces |
object, limit(nil|Nat), depth(nil|Nat), indent(nil|string)
|
repr(string)
|
| ToString.Deep.Namespaces |
object, limit(nil|Nat), depth(nil|Nat), indent(nil|string)
|
repr(string)
|
| ... | ||
| Print.ToFile |
file(string|File), ...
|
|
| Print.Debug | ... | |
| Print.Traceback |
level(+Int|nil)
|
|
| Print.DebugInfo |
level(+Int|nil)
|
|
| Print.Namespaces |
level(+Int|nil)
|
|
| Print.Variables |
level(+Int|nil)
|
|
| DebugCall |
func((...)->(...)), ...
|
... |
| Array.Slice |
state(Array), start(Int|nil), stop(Int|nil), step(Int|nil)
|
slice(Array)
|
| Array.Copy |
data(Array)
|
copy(Array)
|
| Array.Join | ...(Array) |
out(Array)
|
| Table.Copy |
data(table)
|
copy(table)
|
| Table.Copy.Deep |
data(table)
|
copy(table)
|
| Table.Clear |
data(table)
|
data(table)
|
| Table.Transpose |
data(table)
|
flipped(table)
|
| Table.Flip |
data(table)
|
data(table)
|
| Table.NilMerge |
in(table), nil(table)
|
in(table)
|
| Table.Merge |
in(table), set(table)
|
in(table)
|
| Table.MergeKeyed |
in(table), set(table)
|
in(table)
|
| IndexArray.Get |
base(table), index(table)
|
result
|
| IndexArray.Set |
base(table), index(Array), value
|
success(boolean)
|
| IndexArray.Map |
base(table), index(Array)
|
success(boolean)
|
| Path.Join | ...(Path) |
path(Path)
|
| Path.Map |
path(Path)
|
success(boolean)
|
| Path.IndexArray |
path(Path)
|
index(Array)
|
| Path.Get |
path(Path)
|
result
|
| Path.Set |
path(Path), value
|
success(boolean)
|
| Path.Map |
path(Path)
|
success(boolean)
|
| StackLevel |
level(nil|+Int)
|
info(nil|*table)
|
| StackLevels |
level(nil|+Int)
|
info(nil|*table)
|
| UpValues |
func((...)->(...)|+Int|nil)
|
ups(*table)
|
| UpValues.Ids |
func((...)->(...)|+Int|nil)
|
ups(*table)
|
| UpValues.Values |
func((...)->(...)|+Int|nil)
|
ups(*table)
|
| UpValues.Names |
func((...)->(...)|+Int|nil)
|
ups(*table)
|
| UpValues.Stacked |
func((...)->(...)|+Int|nil)
|
ups(*table)
|
| Locals |
level(+Int|nil)
|
locals(*table)
|
| Locals.Values |
level(+Int|nil)
|
locals(*table)
|
| Locals.Names |
level(+Int|nil)
|
locals(*table)
|
| Locals.Stacked |
level(+Int|nil)
|
locals(*table)
|
| Entangled.Union | ...(table) |
union(*table)
|
| Entangled.Union.Add |
union(*table), ...(table)
|
|
| Entangled.Union.Sub |
union(*table), ...(table)
|
|
| Entangled.Map |
pair(table{*table})
|
|
| Entangled.Map.Unique |
pair(table{*table})
|
|
| Context |
prep((info)->(...)), post((info)->(...))
|
context(*table)
|
| Context.Data |
data(table), context(()->())
|
|
| Context.Meta |
object, context(()->())
|
|
| Context.Call |
func((...)->(...)), context(()->()), ...
|
... |
| Context.Env |
func((...)->(...)), context(()->())
|
|
| Context.Wrap |
func((...)->(...)), context(()->()), mod(Mod)
|
|
| Context.Wrap.Static |
func((...)->(...)), context(()->()), mod(Mod)
|
|
| Node.New |
parent(table), key(~nil)
|
tbl(table)
|
| Node.Data.Meta.New |
object
|
meta(table)
|
| Node.Data.Meta.Get |
object
|
meta(table)
|
| Node.Data.Meta.Set |
object
|
success(boolean)
|
| Node.Data.Call.New |
object(table|(...)->(...))
|
parent(nil|table), func(nil|(self,...)->(...))
|
| Node.Data.Call.Get |
object(table|(...)->(...))
|
parent(nil|table), func(nil|(self,...)->(...))
|
| Node.Data.Call.Set |
object(table|(...)->(...)), func(nil|(self,...)->(...))
|
success(boolean)
|
| Node.Data.UpValues.New |
func((...)->(...)
|
ups(*table)
|
| Node.Data.UpValues.Get |
func((...)->(...)
|
ups(*table)
|
| Node.Data.UpValues.Set | ||
| Decorate |
base(Ref), deco((base(Ref))->(post(Ref))), mod(Mod)
|
post(Ref)
|
| Decorate.Pop |
object(Ref)
|
base(Ref)
|
| Decorate.Inject |
base(Ref), deco((base(Ref))->(post(Ref))), mod(Mod)
|
post(Ref)
|
| Decorate.Eject |
object(Ref)
|
base(Ref)
|
| Decorate.Refresh |
base(Ref)
|
refbase(Ref)
|
| Wrap |
base((...)->(...)), wrap((base((...)->(...)),...)->(...)), mod(Mod)
|
func((...)->(...))
|
| Override |
base(Ref), value(Ref), mod(Mod)
|
value(Ref)
|
| Restore |
base(Ref)
|
refbase(Ref)
|
| Overriden |
object(Ref)
|
value(Ref)
|
| Original |
object(Ref)
|
value(Ref)
|
| ReferFunction |
get(()->(obj))
|
func((...)->(...))
|
| ReferTable |
get(()->(obj))
|
table(*table)
|