#ifndef MAP_TRIGGER_H_
#define MAP_TRIGGER_H_
+#include "Entity.h"
+#include "fwd.h"
+#include "../common/Script.h"
#include "../geometry/Vector.h"
namespace map {
Trigger();
~Trigger() { }
+ enum Type {
+ TYPE_NORTH = Entity::ORIENTATION_NORTH,
+ TYPE_EAST = Entity::ORIENTATION_EAST,
+ TYPE_SOUTH = Entity::ORIENTATION_SOUTH,
+ TYPE_WEST = Entity::ORIENTATION_WEST,
+ TYPE_CONTACT = 4,
+ };
+
public:
const geometry::Vector<int> &TilePosition() const { return tilePosition; }
+ Type GetType() const { return Type(type); }
+ bool HasScript() const { return script; }
+ common::Script &GetScript() { return *script; }
+ const common::Script &GetScript() const { return *script; }
+
+ static void CreateTypeDescription();
+ static void Construct(void *);
// temporary setters
public:
void SetTilePosition(const geometry::Vector<int> &p) { tilePosition = p; }
+ void SetType(Type t) { type = t; }
+ void SetScript(common::Script *s) { script = s; }
private:
+ common::Script *script;
geometry::Vector<int> tilePosition;
+ int type;
};