* rulesets/Py_BBox.cpp: Add method exposing boxSquareBoundingRadius
to python.
* rulesets/Task.cpp, rulesets/Task.h: Add method to generate the
next tick for this task, using a given interval. Fix setting
progress and rate, so both can be zero.
* rulesets/Py_Task.cpp: Expose nextTick() method to python.
Allow rate to be set as an integer from python, so it can be zero.
* rulesets/mason/world/tasks/Combat.py: Use next_tick() for all
tick ops.
* rulesets/mason/world/tasks/Logging.py,
rulesets/mason/world/tasks/Raise.py,
rulesets/mason/world/tasks/Ram.py,
rulesets/mason/world/tasks/Sharpen.py: Add range checks, and use
next_tick() to simplify tick op generation.
* rulesets/Character.cpp, rulesets/Task.cpp: Fix the name of the
TASKS attribute.
* rulesets/mason/world/tasks/Logging.py: Make the logging task
progress in the right direction.
* rulesets/Task.cpp, rulesets/Task.h: Add two members to task,
progress and rate which handle the progress towards completion,
and the rate at which it is changing. Add a member function which
adds an atlas representation of the task as an attribute to an
Atlas entity.
* rulesets/Py_Task.cpp: Expose progress and rate attributes allowing
them to be set.
* server/TaskFactory.cpp: Set the name of a task when it is created
by its factory.
* rulesets/mason/world/tasks/Logging.py: Set the progress and rate
of the logging task as it progresses.
* rulesets/Character.h, rulesets/Character.cpp: Add updateTask()
method to be called when task ticks. Make initTask, updateTask
and clearTask emit Set operations which set the TASK attribute
on the character to reflect the current status of the task.
* rulesets/Character.cpp, rulesets/Task.cpp, rulesets/Task.h,
rulesets/TaskScript.cpp: Re-work tick ops to tasks so they use
argument, not sub_to to get routed to the task. Do the groundwork
for having a serial number for each op, which resets to zero when
a new task is started.
* rulesets/mason/world/tasks/Combat.py,
rulesets/mason/world/tasks/Logging.py,
rulesets/mason/world/tasks/Raise.py,
rulesets/mason/world/tasks/Ram.py,
rulesets/mason/world/tasks/Sharpen.py: Modify all current tasks
to set their arg as required.
* common/const.h: Make the coments doxygen compatable.
* rulesets/Character.cpp: Add comments to document tool use.
* rulesets/Fell.cpp, rulesets/Fell.h, rulesets/Task.cpp,
rulesets/Task.h: Add reference to Character to base Task class,
and setup() method for task initiation.
* tests/Tasktest.cpp: Update task test for new changes.
* tests/randomtest.cpp, tests/consttest.cpp: New tests for random
and const headers.
* common/OOGThing.cpp, common/Property.cpp, common/Property.h,
common/Property_impl.h, common/inheritance.h, common/operations.cpp,
rulesets/World.cpp: Update some comments.
* rulesets/Task.h, rulesets/Task.cpp, tests/Tasktest.cpp,
rulesets/Fell.h, rulesets/Fell.cpp: New Task interface for
tasks which take a while to complete. Sample implentation provided
in the form of a Fell task for felling trees.
* rulesets/Character.cpp, rulesets/Character.h: Try out Task
implementation with Fell.