2006-11-03 v0.10 Tels - 143 tests * require Perl v5.8.1 (anything older is untested and unsupported!) * bundle and use Module::Install * update the distribution * rename reset_ID() to _reset_ID() to mark it as internal * add POD correctness and coverage tests * fix all POD errors and ommisions, fix spellings and some grammer ############################################################################## Older revision history: 2003-03-02 v0.01 Tels - 166 tests (first version) * added Game::3D::Point, w/ 3D center * added Game::3D::Area, Point plus 3D size and shape * added Game::3D::Thingy, id, name, state, active/inactive, has outputs and can receive/send signals * added Game::3D::Signal, export the signal names * added Game::3D::Link to link two thingies together (in more complicated ways than just connecting the output from thingy #1 to thingy #2), features count, initial delay, resend delay, one-shot, invert, fixed output signal etc * added Game::3D::Physical, isa Area and Thingy, plus mass * added Game::3D::Living, a living thing (like NPCs etc) * added Game::3D::Marker, isa Point and a Thingy * added Game::3D::Trigger, isa Area and a Thingy 2003-03-06 v0.02 Tels - 181 tests added: * basic tests for Trigger.pm * Area: has rotation() fixed: * Game::3D::Point::center() renamed to pos() 2003-03-08 v0.03 Tels - 180 tests added: * Thingy: load() and _construct(), load hirarchy and objects from text file * example text-adventure game in ./examples showing class-hirarchy and level loading code * forgot to include trigger tests Caveat: Some classes like Trigger, Living, Marker, Physical etc might be gone from the next version, since they can be replaced by text-definitions in the object hierarchy, completely! 2004-02-29 v0.05 Tels - 73 tests * removed anything except base classes: Thingy.pm, Link.pm and Signal.pm * Links are by default OR gates, but can be switched to AND gate type * Thingy: keep inputs * Thingy: on DESTROY, remove links to and from us, and ourself from parent Thingy * Thingy: del_input(), del_output(), unlink() * Link: react to DIE, KILL, ACTIVATE, DEACTIVATE and don't relay them * Thingy: react to DIE and KILL signals * Thingy: don't relay ACTIVATE and DEACTIVATE signales 2004-03-02 v0.06 Tels - 83 tests (not released) * Sensor.pm: sense state change and trigger on them * Thingy: inputs(), outputs(): IDs if input/output objects * 3D.pm: wrote a lot of documentation to cover basics and details * added: World.pm: contains everything 2004-03-05 v0.07 Tels - 102 tests * added Template.pm * World.pm: update(), render(), register(), unregister(), thinkers() * Thingy.pm: as_string() 2004-03-20 v0.08 Tels - 111 tests * SIGNAL_xxx to SIG_xxx * removed SIG_KILL * added 15 states (STATE_0..STATE_15) and signals so that you can send these to objects to change their state * added 15 signales (SIG_NOW_0..SIG_NOW_15) so objects can announce when they finished changing their state * SIG_ON and SIG_OFF (and their aliases) switch between STATE_0 and STATE_1 * World: cache time upon update, added method time() * added an update() routine to Thingy so that state transitions can happen 2004-03-21 v0.09 Tels - 129 tests * Thingy: + added get(), and fixed is() and make() for fields + also Link, Sensor: call kill(), not DESTROY() + kill() sends out SIG_KILLED + don't output empty arrays/hashes in as_string() + also Template: store states as key 'state_0', not under 'states->[0]' + only unregister with world if actually contained in a world * Templtate: + fixed bug in from_string(), can now read more than one template in a row + simplify as_string() output, from_string() reads back this format + honour field 'base' to set base class ('Thingy', 'Link' etc) + init_thing() has inheritance ('Foo::Bar' inherits defaults from 'Foo') + fixed bug in init_thing() regarding existing fields + init_thing() can deal with typeless defaults ("foo" vs STR="foo") * Signal: + added SIG_UNKNOWN + map signal names <=> signal numbers (signal_name(), signal_by_name()) * World: + load templates really from a file, added tests for that + find_template() * added some more doc for methods in World, Template etc Please send me test-reports, your experiences with this and your ideas - I love to hear about my work! Tels