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 SetEnabled(bool isEnabled_) {
38  isEnabled = isEnabled_;
39  }
40  bool IsEnabled() const { return isEnabled; }
41 
42  void SetDoubleParameter(const gd::String &name, double value) {
43  doubleParameters[name] = value;
44  }
45 
46  double GetDoubleParameter(const gd::String &name) const {
47  auto itr = doubleParameters.find(name);
48  return itr == doubleParameters.end() ? 0 : itr->second;
49  }
50 
51  bool HasDoubleParameter(const gd::String &name) const {
52  return doubleParameters.find(name) != doubleParameters.end();
53  }
54 
55  void SetStringParameter(const gd::String &name, const gd::String &value) {
56  stringParameters[name] = value;
57  }
58 
59  const gd::String &GetStringParameter(const gd::String &name) const {
60  auto itr = stringParameters.find(name);
61  return itr == stringParameters.end() ? badStringParameterValue : itr->second;
62  }
63 
64  bool HasStringParameter(const gd::String &name) const {
65  return stringParameters.find(name) != stringParameters.end();
66  }
67 
68  void SetBooleanParameter(const gd::String &name, bool value) {
69  booleanParameters[name] = value;
70  }
71 
72  bool GetBooleanParameter(const gd::String &name) const {
73  auto itr = booleanParameters.find(name);
74  return itr == booleanParameters.end() ? false : itr->second;
75  }
76 
77  bool HasBooleanParameter(const gd::String &name) const {
78  return booleanParameters.find(name) != booleanParameters.end();
79  }
80 
81  const std::map<gd::String, double>& GetAllDoubleParameters() const {
82  return doubleParameters;
83  }
84 
85  const std::map<gd::String, gd::String>& GetAllStringParameters() const {
86  return stringParameters;
87  }
88 
89  const std::map<gd::String, bool>& GetAllBooleanParameters() const {
90  return booleanParameters;
91  }
92 
93  void ClearParameters() {
94  doubleParameters.clear();
95  stringParameters.clear();
96  booleanParameters.clear();
97  }
98 
102  void SerializeTo(SerializerElement& element) const;
103 
107  void UnserializeFrom(const SerializerElement& element);
108 
109  private:
110  bool folded;
111  gd::String name;
112  gd::String effectType;
113  bool isEnabled = true;
114  std::map<gd::String, double> doubleParameters;
115  std::map<gd::String, gd::String> stringParameters;
116  std::map<gd::String, bool> booleanParameters;
117 
118  static gd::String badStringParameterValue;
120 };
121 
122 } // 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