GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
StandardEvent.h
1 /*
2  * GDevelop Core
3  * Copyright 2008-2016 Florian Rival ([email protected]). All rights
4  * reserved. This project is released under the MIT License.
5  */
6 
7 #pragma once
8 
9 #include "GDCore/Events/Event.h"
10 #include "GDCore/Events/EventsList.h"
11 #include "GDCore/Events/Instruction.h"
12 #include "GDCore/Events/InstructionsList.h"
13 #include "GDCore/Project/VariablesContainer.h"
14 namespace gd {
15 class Instruction;
16 class Project;
17 }
18 
19 namespace gd {
20 
24 class GD_CORE_API StandardEvent : public gd::BaseEvent {
25  public:
26  StandardEvent();
27  virtual ~StandardEvent();
28  virtual gd::StandardEvent* Clone() const { return new StandardEvent(*this); }
29 
30  virtual bool IsExecutable() const { return true; }
31 
32  virtual bool CanHaveSubEvents() const { return true; }
33  virtual const gd::EventsList& GetSubEvents() const { return events; };
34  virtual gd::EventsList& GetSubEvents() { return events; };
35 
36  virtual bool CanHaveVariables() const { return true; }
37  virtual const gd::VariablesContainer& GetVariables() const { return variables; };
38  virtual gd::VariablesContainer& GetVariables() { return variables; };
39 
40  const gd::InstructionsList& GetConditions() const { return conditions; };
41  gd::InstructionsList& GetConditions() { return conditions; };
42 
43  const gd::InstructionsList& GetActions() const { return actions; };
44  gd::InstructionsList& GetActions() { return actions; };
45 
46  virtual std::vector<const gd::InstructionsList*> GetAllConditionsVectors()
47  const;
48  virtual std::vector<const gd::InstructionsList*> GetAllActionsVectors() const;
49  virtual std::vector<gd::InstructionsList*> GetAllConditionsVectors();
50  virtual std::vector<gd::InstructionsList*> GetAllActionsVectors();
51 
52  virtual void SerializeTo(SerializerElement& element) const;
53  virtual void UnserializeFrom(gd::Project& project,
54  const SerializerElement& element);
55 
56  private:
57  gd::InstructionsList conditions;
58  gd::InstructionsList actions;
59  EventsList events;
60  VariablesContainer variables;
61 };
62 
63 } // namespace gd
Base class defining an event.
Definition: Event.h:43
A list of events.
Definition: EventsList.h:32
Definition: InstructionsList.h:25
Base class representing a project (game), including all resources, scenes, objects,...
Definition: Project.h:50
Standard event, with conditions, actions and support for sub events.
Definition: StandardEvent.h:24
virtual bool IsExecutable() const
Definition: StandardEvent.h:30
virtual gd::StandardEvent * Clone() const
Definition: StandardEvent.h:28
virtual const gd::EventsList & GetSubEvents() const
Definition: StandardEvent.h:33
virtual gd::EventsList & GetSubEvents()
Definition: StandardEvent.h:34
virtual bool CanHaveVariables() const
Definition: StandardEvent.h:36
virtual const gd::VariablesContainer & GetVariables() const
Definition: StandardEvent.h:37
virtual bool CanHaveSubEvents() const
Definition: StandardEvent.h:32
virtual gd::VariablesContainer & GetVariables()
Definition: StandardEvent.h:38
Class defining a container for gd::Variable.
Definition: VariablesContainer.h:28
Definition: CommonTools.h:24