Working on the Framework

This document is tailored to the Landis Builds of the impulse framework, which differ greatly from the latest public impulse build.

Understanding Core Modules

impulse as a framework is built using modules, these are only how they are referred to in documentation. In reality they are just loosely organized files that load before anything else.

Core modules purpose

A core module should lay a mechanic or system that can be utilized in a full extent in a simple way by the schema. Sync is the perfect example because it provides the basics you need, while giving you the networking structure to expand the system.

Documentation

Documentation is done with LDoc, the framework is about 80% complete with reference documentation. Here is an example of LDoc with impulse

--- An example module.
-- @module Example

--- Just a shared function that does something.
-- @realm shared
-- @entity ent An entity.
-- @int number A number.
-- @treturn bool A boolean.
function SharedFunction(ent, number)
    return true
end

--- Just an internal function that does internal stuff.
-- @realm shared
-- @internal
-- @entity ent An entity.
-- @int number A number.
-- @treturn bool A boolean.
function InternalFunction(ent, number)
    return true
end