* server/ScriptFactory.cpp: Simplify way the name of a class
is determined by removing the hack to upercase the type name.
* server/EntityFactory.cpp: Break python type name on the last
. making the name of the class independant of the Atlas type.
* data/basic.xml, data/buildings.xml, data/characters.xml,
data/clothing.xml, data/mason.xml, data/plants.xml,
data/tools.xml, data/weapons.xml, data/werewolf.xml: Modify all
python type names in the classes to include the name of the class
explicitly.
* rulesets/BaseMind.cpp, rulesets/BaseMind.h, rulesets/Entity.cpp
rulesets/Entity.h: Remove the scriptSubscribed methods which
were empty and unused.
* rulesets/Python_API.cpp, rulesets/Python_Script_Utils.h: Remove
Subscribe_Script() as it is useless now.
* server/ScriptFactory.cpp: Remove call to Subscribe_Script().
* common/log.cpp, common/log.h: Switch to taking a C++ string reference
rather than a char *, as it is not really an optimisation, and it
makes the code simpler to read and write.
* client/BaseClient.cpp, client/ClientConnection.cpp,
common/AtlasFileLoader.cpp, common/BaseEntity.cpp,
common/Database.cpp, common/globals.cpp, common/id.cpp,
common/inheritance.cpp, common/log.cpp, common/log.h,
rulesets/Character.cpp, rulesets/Creator.cpp, rulesets/Entity.cpp,
rulesets/MemMap.cpp, rulesets/Motion.cpp, rulesets/Pedestrian.cpp,
rulesets/Py_Object.cpp, rulesets/Py_RootEntity.cpp,
rulesets/PythonMindScript.cpp, rulesets/PythonThingScript.cpp,
rulesets/Python_API.cpp, rulesets/Thing.cpp, server/Account.cpp,
server/Admin.cpp, server/ArithmeticFactory.cpp,
server/CommClient.cpp, server/CommListener.cpp,
server/CommMDNSPublisher.cpp, server/CommServer.cpp,
server/Connection.cpp, server/EntityFactory.cpp,
server/Persistance.cpp, server/Restoration.cpp,
server/ScriptFactory.cpp, server/TaskFactory.cpp,
server/WorldRouter.cpp, server/server.cpp: Convert over to using
new API correctly.
* data/mason.xml: Add biomass and transient to fircone, making its
script obsolete:
* index.dox, common/BaseWorld.cpp, common/BaseWorld.h,
common/PropertyFactory.h, common/PropertyManager.h, common/const.h,
rulesets/ActivePropertyFactory.h, rulesets/Entity.h,
rulesets/Py_Vector3D.h, rulesets/Py_World.h, rulesets/Py_WorldTime.h,
rulesets/PythonMindScript.cpp, rulesets/PythonMindScript.h,
rulesets/PythonScript.h,
rulesets/PythonThingScript.h, rulesets/PythonWrapper.cpp,
rulesets/PythonWrapper.h, rulesets/Script.cpp, rulesets/Script.h,
server/ArithmeticFactory.h, server/CommServer.h, server/CommSocket.h,
server/ScriptFactory.cpp, server/TaskFactory.cpp,
server/TaskFactory.h, server/WorldRouter.cpp, tools/AdminClient.h,
tools/cyaddrules.cpp, tools/cycmd.cpp, tools/cyconfig.cpp,
tools/cydumprules.cpp, tools/cyloadrules.cpp:
Add a truck load of inline docs.
* tools/cywatchdog.cpp: Mark obsolete file as removed from the build.
* tools/cyloadrules.cpp, tools/cyconfig.cpp, tools/cyaddrules.cpp:
Rename some overly generic types so they have more indicative
and unique names.
* FIXME, server/ScriptFactory.cpp, server/TaskFactory.h: Add a couple
of formal FIXMEs to sort out the code for loading modules and
classes.
* rulesets/PythonThingScript.h: Remove some commented out code.
* configure.ac: Increment version.
* common/const.h: Declare a doxygen group for all the consts.
* common/operations.cpp, common/Add.h, common/Attack.h, common/Burn.h,
common/Chop.h, common/Connect.h, common/Cut.h, common/Delve.h,
common/Dig.h, common/Drop.h, common/Eat.h, common/Monitor.h,
common/Mow.h, common/Nourish.h, common/Pickup.h, common/Setup.h,
common/Tick.h, common/Unseen.h, common/Update.h:
Declare a doxygen group for all custom operations.
* rulesets/Area.h, rulesets/Character.h, rulesets/Creator.h,
rulesets/Entity.h, rulesets/Food.h, rulesets/Line.h,
rulesets/Missile.h, rulesets/Plant.h, rulesets/Stackable.h,
rulesets/Structure.h, rulesets/World.h: Declare a doxygen group
for in game entity classses.
* common/Property.h, common/Property_impl.h, server/ScriptFactory.cpp,
server/ScriptFactory.h, server/SlaveClientConnection.cpp,
server/SlaveClientConnection.h: Add some more inlined documentation.
* rulesets/PythonThingScript.h, rulesets/PythonThingScript.cpp:
Store a pointer to the core object's python wrapper, and modify
constructor to initialise it.
* rulesets/Python_API.cpp, server/ScriptFactory.cpp,
server/TaskFactory.cpp: Modify variable name to make it clearer
what the wrapper object is. Pass wrapper to script management
object constructor, so it can store the pointer.
* rulesets/PythonMindScript.h: Make constructor explicit for
safety.
* server/TaskFactory.cpp, server/TaskFactory.h: Re-write the
script task to handle creating the script directly, rather than
use ScriptFactory which is not suitable.
* rulesets/PythonMindScript.cpp, rulesets/PythonScript.cpp,
rulesets/PythonScript.h, PythonThingScript.cpp,
rulesets/PythonThingScript.h, rulesets/Python_API.cpp,
server/ScriptFactory.cpp: Remove obsolete pointer to entity
from script class, removing its link to Entity, making it more
generally useful.
* server/EntityFactory.cpp: Implement updating default attributes
and other metadata when types are modified from the client.
* server/ScriptFactory.cpp: Handle errors that occur when reloading
modules. Store the new module correctly.
* tools/AdminClient.cpp, tools/AdminClient.h: Change behavoir of
cyaddrules so it updates types that have already been installed.
Requires adding a set op types that have already been uploaded
or updated, to ensure that types in a base ruleset don't override
the one already in the server.
* rulesets/mason/world/objects/tools/Rope.py: Correct the syntax
of stub functions.
* rulesets/basic/world/objects/buildings/StoneHouse.py: Fix the import
statements.
* rulesets/basic/world/objects/buildings/House.py: Fix import for
physics module.
* rulesets/basic/mind/goals/common/misc_goal.py: Fix typo in
cut_something.
* server/ScriptFactory.cpp, server/ScriptFactory.h: New factory
class for handling python scripts for entities much more
efficiently, and provide a means where they can be re-imorted
at an apropriate time.
* server/PersistantThingFactory.h,
server/PersistantThingFactory.cpp: Make PersistantThingFactory
copy constructor protected, to ensure its not used accidentally.
Replace strings for storing python script data with a pointer
to a factory for creating scripts.
* server/EntityFactory.cpp: Use the new ScriptFactory mechnism
for creating scripts attached to entities. Improve variable
names a little.