#A "toolbox" library used by other polygonal libraries (core)
The library includes the following packages:
- A library for handling events, with focus on boilerplate reduction and performance.
- See A fast notification system for event-driven design.
- See The Observer pattern
- Various helper functions for formatting numbers and objects.
- Supports sprintf syntax. See Using sprintf with Haxe.
- A fast Base64 encoder.
- Resource loading / mass loader (flash only)
- A simple logging framework.
- A bunch of basic macros for generating classes at compile-time.
- Math helper functions.
- Fast 2D/3D vector and matrix math.
- Pseudorandom number generators (Park-Miller-Carta, MT19937)
- Trigonometric approximations.
- Entity framework for component based architectures.
- Time-based updates, timeline, timed execution.
- A tweening framework.
- Misc utility functions.
Install Haxe and run $ haxelib install polygonal-core
from the console.
This installs the polygonal-core library hosted on lib.haxe.org, which always mirrors the git master branch. From now on just compile with $ haxe ... -lib polygonal-core
.
If you want to test the latest beta build, you should pull the dev branch and add the src folder to the classpath via $ haxe ... -cp src
.
- modified: change LogMessage.data type to Dynamic
- added: ClassUtil class
- added: Mathematics.int()
- fixed: EntityType + compilation server
- modified: Observable.mute -> muteType, unmute -> unmuteType (name clash with Entity)
- added: Mat33.setRotateX(), setRotateY()
- fixed: Timebase.gameTime
- fixed: some minor fixes for -D haxe3
- modified: restore draw/tick state when calling Entity.wakeup() after Entity.sleep()
- Timebase: use statics instead of singleton pattern
- fixed: Mathematics.floor(), ceil(), fwrap() for neko, don't use Std.int() for cpp
- modified: keep dispatching Timebase updates when calling MainLoop.pause()
- modified: make de.polygonal.core.time.Delay cancelable
- added: math.RootSolver class
- modified: Entity: pass message sender when sending messages
- fixed: keep existing fields in macro.Version
- added: Entity.is() and Entity.isAny()
- fixed: minor tweening fixes, added tweening examples
- modified: Observable: consider group id in event filtering, use 30 bits for neko
- added: TimelineListener as an alternative to TimelineEvent
- modified: optimized tweening performance
- added: Entity.iterator() to iterate over all children (non-recursive)
- modified: merge Observable.bindMulti() and Observable.bind() into Observable.bind(), fix group filtering
- fixed: ConfigXML: keep existing fields
- added: Timebase.fps
- modified: Entity: shorten names of frequently used methods
- modified: Entity: more precise recursive message propagation
- added: StringUtil.generateRandomKey()
- fixed: ObserverMacro for Haxe 2.11+
- added: RNORREXP (generate pseudo random normal and exponential variates)
- added: PropertyFile macro to turn a property file into a class
- modified: move macro package to util package
- added: Compile-time tokenization of Sprintf format string (thanks Zachary Dremann - github.com/Dr-Emann)
- modified: ParkMiller31 for all targets using haxe.Int32 (thanks Zachary Dremann - github.com/Dr-Emann)
- Initial version.