GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
EventsBasedObjectVariant.h
1 /*
2  * GDevelop Core
3  * Copyright 2008-2025 Florian Rival ([email protected]). All rights
4  * reserved. This project is released under the MIT License.
5  */
6 #pragma once
7 
8 #include "GDCore/IDE/Dialogs/LayoutEditorCanvas/EditorSettings.h"
9 #include "GDCore/Project/InitialInstancesContainer.h"
10 #include "GDCore/Project/LayersContainer.h"
11 #include "GDCore/Project/ObjectsContainer.h"
12 #include "GDCore/String.h"
13 #include <vector>
14 
15 namespace gd {
16 class SerializerElement;
17 class Project;
18 } // namespace gd
19 
20 namespace gd {
26 class GD_CORE_API EventsBasedObjectVariant {
27 public:
29  virtual ~EventsBasedObjectVariant();
30 
36  return new EventsBasedObjectVariant(*this);
37  };
38 
42  const gd::String &GetName() const { return name; };
43 
48  name = name_;
49  return *this;
50  }
51 
55 
58  const gd::LayersContainer &GetLayers() const { return layers; }
59 
63  gd::LayersContainer &GetLayers() { return layers; }
65 
69 
72  gd::ObjectsContainer &GetObjects() { return objectsContainer; }
73 
77  const gd::ObjectsContainer &GetObjects() const { return objectsContainer; }
79 
83 
87  return initialInstances;
88  }
89 
94  return initialInstances;
95  }
96 
104  int GetAreaMinX() const { return areaMinX; }
105 
109  void SetAreaMinX(int areaMinX_) { areaMinX = areaMinX_; }
110 
118  int GetAreaMinY() const { return areaMinY; }
119 
123  void SetAreaMinY(int areaMinY_) { areaMinY = areaMinY_; }
124 
132  int GetAreaMinZ() const { return areaMinZ; }
133 
137  void SetAreaMinZ(int areaMinZ_) { areaMinZ = areaMinZ_; }
138 
146  int GetAreaMaxX() const { return areaMaxX; }
147 
151  void SetAreaMaxX(int areaMaxX_) { areaMaxX = areaMaxX_; }
152 
160  int GetAreaMaxY() const { return areaMaxY; }
161 
165  void SetAreaMaxY(int areaMaxY_) { areaMaxY = areaMaxY_; }
166 
174  int GetAreaMaxZ() const { return areaMaxZ; }
175 
179  void SetAreaMaxZ(int areaMaxZ_) { areaMaxZ = areaMaxZ_; }
181 
184  void SetAssetStoreAssetId(const gd::String &assetStoreId_) {
185  assetStoreAssetId = assetStoreId_;
186  };
187 
190  const gd::String &GetAssetStoreAssetId() const { return assetStoreAssetId; };
191 
194  void SetAssetStoreOriginalName(const gd::String &assetStoreOriginalName_) {
195  assetStoreOriginalName = assetStoreOriginalName_;
196  };
197 
201  return assetStoreOriginalName;
202  };
203 
209  return editorSettings;
210  }
211 
215  gd::EditorSettings& GetAssociatedEditorSettings() { return editorSettings; }
216 
217  void SerializeTo(SerializerElement &element) const;
218 
219  void UnserializeFrom(gd::Project &project, const SerializerElement &element);
220 
221 private:
222  gd::String name;
223  gd::InitialInstancesContainer initialInstances;
224  gd::LayersContainer layers;
225  gd::ObjectsContainer objectsContainer;
226  double areaMinX;
227  double areaMinY;
228  double areaMinZ;
229  double areaMaxX;
230  double areaMaxY;
231  double areaMaxZ;
235  gd::String assetStoreAssetId;
240  gd::String assetStoreOriginalName;
241  gd::EditorSettings editorSettings;
242 };
243 
244 } // namespace gd
Container for arbitrary serialized data to be used by the editor to store settings.
Definition: EditorSettings.h:19
Represents a variation of style of an events-based object.
Definition: EventsBasedObjectVariant.h:26
const gd::String & GetName() const
Get the name of the variant.
Definition: EventsBasedObjectVariant.h:42
EventsBasedObjectVariant & SetName(const gd::String &name_)
Set the name of the variant.
Definition: EventsBasedObjectVariant.h:47
gd::InitialInstancesContainer & GetInitialInstances()
Get the instances of the variant.
Definition: EventsBasedObjectVariant.h:86
gd::LayersContainer & GetLayers()
Get the layers of the variant.
Definition: EventsBasedObjectVariant.h:63
int GetAreaMaxX() const
Get the right bound of the variant.
Definition: EventsBasedObjectVariant.h:146
const gd::String & GetAssetStoreAssetId() const
Return the object asset store id of this variant.
Definition: EventsBasedObjectVariant.h:190
int GetAreaMinY() const
Get the top bound of the variant.
Definition: EventsBasedObjectVariant.h:118
const gd::EditorSettings & GetAssociatedEditorSettings() const
Get the user settings for the IDE.
Definition: EventsBasedObjectVariant.h:208
void SetAreaMaxX(int areaMaxX_)
Set the right bound of the variant.
Definition: EventsBasedObjectVariant.h:151
const gd::ObjectsContainer & GetObjects() const
Get the objects of the variant.
Definition: EventsBasedObjectVariant.h:77
EventsBasedObjectVariant * Clone() const
Return a pointer to a new EventsBasedObjectVariant constructed from this one.
Definition: EventsBasedObjectVariant.h:35
void SetAreaMinZ(int areaMinZ_)
Set the min Z bound of the variant.
Definition: EventsBasedObjectVariant.h:137
void SetAreaMinY(int areaMinY_)
Set the top bound of the variant.
Definition: EventsBasedObjectVariant.h:123
void SetAreaMaxY(int areaMaxY_)
Set the bottom bound of the variant.
Definition: EventsBasedObjectVariant.h:165
void SetAssetStoreAssetId(const gd::String &assetStoreId_)
Change the object asset store id of this variant.
Definition: EventsBasedObjectVariant.h:184
void SetAreaMaxZ(int areaMaxZ_)
Set the bottom bound of the variant.
Definition: EventsBasedObjectVariant.h:179
const gd::InitialInstancesContainer & GetInitialInstances() const
Get the instances of the variant.
Definition: EventsBasedObjectVariant.h:93
gd::ObjectsContainer & GetObjects()
Get the objects of the variant.
Definition: EventsBasedObjectVariant.h:72
const gd::String & GetAssetStoreOriginalName() const
Return the original name of the variant in the asset.
Definition: EventsBasedObjectVariant.h:200
void SetAreaMinX(int areaMinX_)
Set the left bound of the variant.
Definition: EventsBasedObjectVariant.h:109
gd::EditorSettings & GetAssociatedEditorSettings()
Get the user settings for the IDE.
Definition: EventsBasedObjectVariant.h:215
void SetAssetStoreOriginalName(const gd::String &assetStoreOriginalName_)
Change the original name of the variant in the asset.
Definition: EventsBasedObjectVariant.h:194
const gd::LayersContainer & GetLayers() const
Get the layers of the variant.
Definition: EventsBasedObjectVariant.h:58
int GetAreaMaxZ() const
Get the max Z bound of the variant.
Definition: EventsBasedObjectVariant.h:174
int GetAreaMaxY() const
Get the bottom bound of the variant.
Definition: EventsBasedObjectVariant.h:160
int GetAreaMinZ() const
Get the min Z bound of the variant.
Definition: EventsBasedObjectVariant.h:132
int GetAreaMinX() const
Get the left bound of the variant.
Definition: EventsBasedObjectVariant.h:104
Defines a container of gd::InitialInstances.
Definition: InitialInstancesContainer.h:38
Contains the layers for a scene or a custom object.
Definition: LayersContainer.h:21
Used as a base class for classes that will own objects (see gd::Object).
Definition: ObjectsContainer.h:37
Base class representing a project (game), including all resources, scenes, objects,...
Definition: Project.h:50
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
Definition: CommonTools.h:24