1 #ifndef FACADE_DELIVERY_SYSTEM_H_ 2 #define FACADE_DELIVERY_SYSTEM_H_ 4 #include "EntityProject/facade/common.h" 49 virtual const std::vector<IEntity*>&
GetEntities()
const = 0;
51 virtual void Update(
float dt) = 0;
virtual void AddEntity(IEntity *entity)=0
Adds an entity to an entity vector member. Once added, entities can be affected by the system...
virtual void SetGraph(const IGraph *graph)=0
Adds the graph used for dynamic routing in the delivery system.
The abstract facade of a drone delivery subsystem.
Definition: delivery_system.h:13
An abstract class that represents an entity system that contains entities and updates over time...
Definition: entity_system.h:10
virtual void Update(float dt)=0
Updates the drone system time by dt.
Definition: asubject.cc:3
virtual void AddObserver(IEntityObserver *observer)=0
Add an observer to a specific entity.
Represents a read only graph object.
Definition: graph.h:12
virtual ~IDeliverySystem()
Destructor.
Definition: delivery_system.h:16
virtual const std::vector< IEntity * > & GetEntities() const =0
Returns all the entities that are added to the drone system.
virtual IEntity * CreateEntity(const picojson::object &val)=0
Creates an entity based on a JSON object passed in.
Definition: entity_factory.h:12
virtual void ScheduleDelivery(IEntity *package, IEntity *dest)=0
Schedule a drone delivery for a package to be delivered to a customer.
A movable object in a scene. Entities have position, direction and size.
Definition: entity.h:15
virtual void RemoveObserver(IEntityObserver *observer)=0
Remove an observer from a specific entity.
Observers entity events when they occur.
Definition: entity_observer.h:14
virtual void AddFactory(IEntityFactory *factory)=0
Adds an entity factory to a composite factory for creating new entities.
virtual void RunScript(const picojson::array &script, IEntitySystem *system) const =0
Translates a set of JSON commands into method calls for the drone delivery system.