Lucy forge
Part of lucidity project.
Beta software. Until 1.0, API subject to change.
Entity and component definition tool
lucy.forge is a minimal 'game' or 'feature composition' engine. It's goal is to foster clean and reusable Javascript code through the extensive use of mixins and conventions.
Installation
npm install lucy-forge --save
Usage example:
const forge = // Define a component// for auto-loading, the path for this component should be 'Person.js'const Person = forgeComponent 'Person' // Class methods // Setup an entity. 'e' is the entity being initialized. e_person = {} Personpeople ebind 'destroy' { PersonpeopleCount -- } // This is called once on Component creation. It is used to initialize // the component (not an entity). 'this' is the component aka 'class'. // Here, this === Person. thispeopleCount = 0 return thispeopleCount // Methods let self = this_person selfname = name selfage = age // Use the componentlet Person = forge consolelog Person // ==> 0 let player1 = forgeEntity 'Person' 'Score' // #set shortcut // same as calling player1.person ( 'John Difool', 34 ) // player1.score ( 100 ) person: 'John Difool' 34 score: 100 consolelog Person // ==> 1
Tests
npm test
Contributing
Please use 'jessy style'.
Add unit tests for any new or changed functionality.
Release History
- 0.5.1 (2015-09-22) Fixed npm readme page.
- 0.5.0 (2015-09-22) Better #set method, forge.merge.
- 0.4.0 (2015-09-09) Renaming init to 'setup'. Init is now called on class.
- 0.3.0 (2015-09-04) API change for forge.Component with class methods.
- 0.2.0 (2015-09-03) Adding possibility to replace binding.
- 0.1.0 (2015-09-02) Initial release.