mooege/mooege — pull request #276 by raistlinthewiz (2011-11-02 10:44:37+00:00)
Title: Improved the proximity based scene/actor revealing & implemented query API

* Improved the proximity based scene/actor revealing. All the code relies on that now.
* Fixed a major bug within QuadTree implementation (where it was not aware of actors moving and changing positions), should be all okay.
* QuadTree implementation now uses ConcurrentDictionary instead of explicit locking.
* Mooege will now refuse running if MPQStorage can not be initialized.
* Introduced lazy-actors, their position now can be set after their ctor().
* Improved actor enter & change world logic, we have now actor.EnterWorld(), actor.ChangeWorld() and actor.Teleport() functions.
* Added in-game debug commands for players. !debug revealed, inrange, position.
* Implemented new range-based query API for actors.

Range-based query API:

Radius based queries
* GetPlayersInRange()
* GetItemsInRange()
* GetMonstersInRange()
* GetActorsInRange()
* GetActorsInRange()
* GetScenesInRange()
* GetObjectsInRange()
* GetObjectsInRange()

Rectangular range queries
* GetPlayersInRegion()
* GetItemsInRegion()
* GetMonstersInRegion()
* GetActorsInRegion()
* GetActorsInRegion()
* GetScenesInRegion()
* GetObjectsInRegion()
* GetObjectsInRegion()