GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
Effect.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 #ifndef GDCORE_EFFECT_H
7 #define GDCORE_EFFECT_H
8 #include <map>
9 namespace gd {
10 class SerializerElement;
11 }
12 #include "GDCore/String.h"
13 
14 namespace gd {
15 
22 class GD_CORE_API Effect {
23  public:
24  Effect(){};
25  virtual ~Effect(){};
26 
27  void SetName(const gd::String& name_) { name = name_; }
28  const gd::String& GetName() const { return name; }
29 
30  void SetEffectType(const gd::String& effectType_) {
31  effectType = effectType_;
32  }
33  const gd::String& GetEffectType() const { return effectType; }
34 
35  void SetDoubleParameter(const gd::String& name, double value) {
36  doubleParameters[name] = value;
37  }
38 
39  double GetDoubleParameter(const gd::String& name) {
40  return doubleParameters[name];
41  }
42 
43  void SetStringParameter(const gd::String& name, const gd::String& value) {
44  stringParameters[name] = value;
45  }
46 
47  const gd::String& GetStringParameter(const gd::String& name) {
48  return stringParameters[name];
49  }
50 
51  void SetBooleanParameter(const gd::String& name, bool value) {
52  booleanParameters[name] = value;
53  }
54 
55  bool GetBooleanParameter(const gd::String& name) {
56  return booleanParameters[name];
57  }
58 
59  const std::map<gd::String, double>& GetAllDoubleParameters() const {
60  return doubleParameters;
61  }
62 
63  const std::map<gd::String, gd::String>& GetAllStringParameters() const {
64  return stringParameters;
65  }
66 
67  const std::map<gd::String, bool>& GetAllBooleanParameters() const {
68  return booleanParameters;
69  }
70 
71  void ClearParameters() {
72  doubleParameters.clear();
73  stringParameters.clear();
74  booleanParameters.clear();
75  }
76 
80  void SerializeTo(SerializerElement& element) const;
81 
85  void UnserializeFrom(const SerializerElement& element);
86 
87  private:
88  gd::String name;
89  gd::String effectType;
90  std::map<gd::String, double> doubleParameters;
91  std::map<gd::String, gd::String> stringParameters;
92  std::map<gd::String, bool> booleanParameters;
93 };
94 
95 } // namespace gd
96 #endif
Represents an effect that can be applied on a layer.
Definition: Effect.h:22
A generic container that can represent a value ( containing a string, double, bool or int),...
Definition: SerializerElement.h:37
String represents an UTF8 encoded string.
Definition: String.h:31
Definition: CommonTools.h:24