4 #include <sigc++/trackable.h> 5 #include <sigc++/signal.h> 16 typedef std::map<std::string, Element> MapType;
20 namespace WFMath {
class TimeDiff; }
28 class Task :
public sigc::trackable {
41 const std::string& name()
const;
47 double progress()
const;
53 double progressRate()
const;
59 bool isComplete()
const;
61 const std::vector<TaskUsage>& getUsages()
const;
63 sigc::signal<void> Completed;
65 sigc::signal<void> Progressed;
67 sigc::signal<void> ProgressRateChanged;
69 sigc::signal<void> UsagesChanged;
72 void progressChanged();
77 void updateFromAtlas(
const Atlas::Message::MapType& d);
82 void updatePredictedProgress(
const WFMath::TimeDiff& dt);
84 const std::string m_name;
89 double m_progressRate;
91 std::vector<TaskUsage> m_usages;
94 inline const std::string& Task::name()
const {
98 inline double Task::progress()
const {
102 inline double Task::progressRate()
const {
103 return m_progressRate;
107 inline const std::vector<TaskUsage>& Task::getUsages()
const {
Entity is a concrete (instantiable) class representing one game entity.