Since not all entities have physical location, which is more and more true
now that we have domains. Entities that are placed in non-physical domains don't have
any location data.
This also makes it easier to streamline the sending of properties, since we only need
to send the properties that actually have changed.
In addition, this helps with removing circular references, since the "m_parent" field no longer
is a Ref.
This is a way in which a child entity can affect its parent entity. A typical modification would
be to have a piece of armor affect the wearer's defense values.
Optionally Entity Filters can be applied as constraints. In the armor case it would mean that the
modification only would be active if the armor was worn.
Classes under "rulesets" have been moved to "rules", and split up into
futher subdirectories matching their library. As a result we can now
better separate the python bindings, so that things that belongs to the
simulation are separeted from things that belongs to the ai.
These tests are truly horrible. You change one thing and then spend
three days just updating stubs in tests. The only possible solution is
to move more and more into stub classes.
Started initial work on providing stubs, so that we finally can start to
reduce the amount of code needed for the tests. Some tests are using the
new stubs, but the plan is to continously move more and more code from
the tests over to the stub as they are updated.
All IG code should use the interface of LocatedEntity when dealing
with any entity, rather than sometimes requiring Entity. Add virtual
functions to the interface where required, and modify all other interfaces
to stop them using Entity. This makes the code way cleaner, and much better
de-coupled.
The Link reference provided is the object allowing direct communication
back to the external source of the operation. This allows us to handle
things more cleanly in some cases.