# shash **Repository Path**: mirrors_rxi/shash ## Basic Information - **Project Name**: shash - **Description**: A simple, lightweight spatial hash for Lua - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-28 - **Last Updated**: 2026-03-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 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.