shash/README.md
2016-08-20 09:13:52 +01:00

43 lines
1.3 KiB
Markdown

# shash.lua
A simple, lightweight spatial hash for Lua.
## Functions
#### shash.new([cellsize])
Creates a new spatial hash; if `cellsize` is not specified a default value of
`64` is used.
#### :add(obj, x, y, w, h)
Adds an object with the given bounding box to the spatial hash.
#### :update(obj, x, y [, w, h])
Updates the object's bounding box.
#### :remove(obj)
Removes the object from the spatial hash.
#### :clear()
Removes all objects from the spatial hash.
#### :each(x, y, w, h, fn, ...)
#### :each(obj, fn, ...)
For each object which overlaps with the given bounding box or object, the
function `fn` is called. The first argument passed to `fn` is the overlapping
object, followed by any additional arguments passed to `each()`.
#### :info(opt, ...)
Returns information about the spatial hash which can be useful for debugging.
Available options and their arguments are as follows:
Opt | Args | Description
------------|-----------|-------------------------------------------------------
`entities` | | Returns the total number of entities
`cells` | | Returns the total number of cells
`cell` | `x`, `y` | Returns the number of entities in the cell
## License
This library is free software; you can redistribute it and/or modify it under
the terms of the MIT license. See [LICENSE](LICENSE) for details.