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 resetID() 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
-
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 <http://bloodgate.com/>