+
+
Module init
+
Ubiquitousse main module.
+
Set of various Lua libraries to make game development easier, mainly made to be used alongside the LÖVE game framework.
+ Nothing that hasn’t been done before, but these are tailored to what I need. They can be used independently too, and are relatively portable, even without LÖVE.
+
+
This is the main module, which will try to load every other Ubiquitousse module when required and may even provide a few convenience functions.
+
+
This also perform a quick LÖVE version check and show a warning in case of potential incompatibility.
+
+
Regarding Ubiquitousse’s organization
+
+
Ubiquitousse may or may not be used in its totality. You can delete the modules directories you don’t need and Ubiquitousse
+ should adapt accordingly. You can also simply copy the modules directories you need and use them directly, without using this
+ file at all.
+ However, some modules may provide more feature when other modules are available.
+ These dependencies are written at the top of every main module file.
+
+
Ubiquitousse’s original goal was to run everywhere with the least porting effort possible, so while the current version now mainly focus LÖVE, it
+ should still be easily modifiable to work with something else. Ubiquitousse is mainly tested on LuaJIT and Lua 5.3 but should also support Lua 5.1 and 5.2.
+ In order to keep a good idea of how portable this all is, other dependencies, including LÖVE, are explicited at the top of every module file and in specific
+ functions definition using the @require tag (e.g., — @require love for LÖVE).
+
+
Some modules are developped in Candran (.can files), but can easily be compiled into regular Lua code.
+
+
Units used in the API documentation, unless written otherwise:
+
+
+- All distances are expressed in pixels (px)
+- All durations are expressed in seconds (ms)
+
+
+
+
These units are only used to make writing documentation easier; you can use other units if you want, as long as you're consistent.
+
+
Style:
+
+
+- tabs for indentation, spaces for esthetic whitespace (notably in comments)
+- no globals
+- UPPERCASE for constants (or maybe not).
+- CamelCase for class names.
+- lowerCamelCase is expected for everything else.
+
+
+
+
Regarding the documentation: Ubiquitousse used LDoc/LuaDoc styled-comments, but since LDoc hates me and my code, the
+ generated result is complete garbage, so please read the documentation directly in the comments here until fix this.
+ Stuff you're interested in starts with triple – (e.g., “—– This functions saves the world”).
+
+
UPDATE: I give up, currently in the process of admitting defat to LDoc and progressively porting all my documentation to it.
+ Though I had to modify a few things to get LDoc to like me, so the documentation is generated using my LDoc fork.
+
Usage:
+
local ubiquitousse = require("ubiquitousse")
+
+
+
+
+
+
+
+
+ -
+
+ version
+
+ -
+ Ubiquitousse version string (currently
"0.1.0").
+
+
+
+
+
+
+
+
+
+ -
+
+ asset
+
+ -
+ Asset manager module, if available.
+
+
+
+
+
+
+
See also:
+
+
+
+
+ -
+
+ ecs
+
+ -
+ Entity Component System, if available.
+
+
+
+
+
+
+
See also:
+
+
+
+
+ -
+
+ input
+
+ -
+ Input management, if available.
+
+
+
+
+
+
+
See also:
+
+
+
+
+ -
+
+ ldtk
+
+ -
+ LDtk level import, if available.
+
+
+
+
+
+
+
See also:
+
+
+
+
+ -
+
+ scene
+
+ -
+ Scene management, if available.
+
+
+
+
+
+
+
See also:
+
+
+
+
+ -
+
+ signal
+
+ -
+ Signal management, if available.
+
+
+
+
+
+
+
See also:
+
+
+
+
+ -
+
+ timer
+
+ -
+ Timer utilities, if available.
+
+
+
+
+
+
+
See also:
+
+
+
+
+ -
+
+ util
+
+ -
+ Various useful functions, if available.
+
+
+
+
+
+
+
See also:
+
+
+
+
+
+
+
+