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 #pragma once
7 #include <map>
8 namespace gd {
9 class SerializerElement;
10 }
11 #include "GDCore/String.h"
12 
13 namespace gd {
14 
21 class GD_CORE_API Effect {
22  public:
23  Effect() : folded(false) {};
24  virtual ~Effect() {};
25 
26  void SetName(const gd::String& name_) { name = name_; }
27  const gd::String& GetName() const { return name; }
28 
29  void SetEffectType(const gd::String& effectType_) {
30  effectType = effectType_;
31  }
32  const gd::String& GetEffectType() const { return effectType; }
33 
34  void SetFolded(bool fold = true) { folded = fold; }
35  bool IsFolded() const { return folded; }
36 
37  void SetDoubleParameter(const gd::String &name, double value) {
38  doubleParameters[name] = value;
39  }
40 
41  double GetDoubleParameter(const gd::String &name) const {
42  auto itr = doubleParameters.find(name);
43  return itr == doubleParameters.end() ? 0 : itr->second;
44  }
45 
46  bool HasDoubleParameter(const gd::String &name) const {
47  return doubleParameters.find(name) != doubleParameters.end();
48  }
49 
50  void SetStringParameter(const gd::String &name, const gd::String &value) {
51  stringParameters[name] = value;
52  }
53 
54  const gd::String &GetStringParameter(const gd::String &name) const {
55  auto itr = stringParameters.find(name);
56  return itr == stringParameters.end() ? badStringParameterValue : itr->second;
57  }
58 
59  bool HasStringParameter(const gd::String &name) const {
60  return stringParameters.find(name) != stringParameters.end();
61  }
62 
63  void SetBooleanParameter(const gd::String &name, bool value) {
64  booleanParameters[name] = value;
65  }
66 
67  bool GetBooleanParameter(const gd::String &name) const {
68  auto itr = booleanParameters.find(name);
69  return itr == booleanParameters.end() ? false : itr->second;
70  }
71 
72  bool HasBooleanParameter(const gd::String &name) const {
73  return booleanParameters.find(name) != booleanParameters.end();
74  }
75 
76  const std::map<gd::String, double>& GetAllDoubleParameters() const {
77  return doubleParameters;
78  }
79 
80  const std::map<gd::String, gd::String>& GetAllStringParameters() const {
81  return stringParameters;
82  }
83 
84  const std::map<gd::String, bool>& GetAllBooleanParameters() const {
85  return booleanParameters;
86  }
87 
88  void ClearParameters() {
89  doubleParameters.clear();
90  stringParameters.clear();
91  booleanParameters.clear();
92  }
93 
97  void SerializeTo(SerializerElement& element) const;
98 
102  void UnserializeFrom(const SerializerElement& element);
103 
104  private:
105  bool folded;
106  gd::String name;
107  gd::String effectType;
108  std::map<gd::String, double> doubleParameters;
109  std::map<gd::String, gd::String> stringParameters;
110  std::map<gd::String, bool> booleanParameters;
111 
112  static gd::String badStringParameterValue;
114 };
115 
116 } // namespace gd
Represents an effect that can be applied on a layer.
Definition: Effect.h:21
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:33
size_type find(const String &search, size_type pos=0) const
Definition: String.cpp:477
Definition: CommonTools.h:24