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/Project/InitialInstancesContainer.h"
9 #include "GDCore/Project/LayersContainer.h"
10 #include "GDCore/Project/ObjectsContainer.h"
11 #include "GDCore/String.h"
12 #include <vector>
13 
14 namespace gd {
15 class SerializerElement;
16 class Project;
17 } // namespace gd
18 
19 namespace gd {
25 class GD_CORE_API EventsBasedObjectVariant {
26 public:
28  virtual ~EventsBasedObjectVariant();
29 
35  return new EventsBasedObjectVariant(*this);
36  };
37 
41  const gd::String &GetName() const { return name; };
42 
47  name = name_;
48  return *this;
49  }
50 
54 
57  const gd::LayersContainer &GetLayers() const { return layers; }
58 
62  gd::LayersContainer &GetLayers() { return layers; }
64 
68 
71  gd::ObjectsContainer &GetObjects() { return objectsContainer; }
72 
76  const gd::ObjectsContainer &GetObjects() const { return objectsContainer; }
78 
82 
86  return initialInstances;
87  }
88 
93  return initialInstances;
94  }
95 
103  int GetAreaMinX() const { return areaMinX; }
104 
108  void SetAreaMinX(int areaMinX_) { areaMinX = areaMinX_; }
109 
117  int GetAreaMinY() const { return areaMinY; }
118 
122  void SetAreaMinY(int areaMinY_) { areaMinY = areaMinY_; }
123 
131  int GetAreaMinZ() const { return areaMinZ; }
132 
136  void SetAreaMinZ(int areaMinZ_) { areaMinZ = areaMinZ_; }
137 
145  int GetAreaMaxX() const { return areaMaxX; }
146 
150  void SetAreaMaxX(int areaMaxX_) { areaMaxX = areaMaxX_; }
151 
159  int GetAreaMaxY() const { return areaMaxY; }
160 
164  void SetAreaMaxY(int areaMaxY_) { areaMaxY = areaMaxY_; }
165 
173  int GetAreaMaxZ() const { return areaMaxZ; }
174 
178  void SetAreaMaxZ(int areaMaxZ_) { areaMaxZ = areaMaxZ_; }
180 
183  void SetAssetStoreAssetId(const gd::String &assetStoreId_) {
184  assetStoreAssetId = assetStoreId_;
185  };
186 
189  const gd::String &GetAssetStoreAssetId() const { return assetStoreAssetId; };
190 
193  void SetAssetStoreOriginalName(const gd::String &assetStoreOriginalName_) {
194  assetStoreOriginalName = assetStoreOriginalName_;
195  };
196 
200  return assetStoreOriginalName;
201  };
202 
203  void SerializeTo(SerializerElement &element) const;
204 
205  void UnserializeFrom(gd::Project &project, const SerializerElement &element);
206 
207 private:
208  gd::String name;
209  gd::InitialInstancesContainer initialInstances;
210  gd::LayersContainer layers;
211  gd::ObjectsContainer objectsContainer;
212  double areaMinX;
213  double areaMinY;
214  double areaMinZ;
215  double areaMaxX;
216  double areaMaxY;
217  double areaMaxZ;
221  gd::String assetStoreAssetId;
226  gd::String assetStoreOriginalName;
227 };
228 
229 } // namespace gd
Represents a variation of style of an events-based object.
Definition: EventsBasedObjectVariant.h:25
const gd::String & GetName() const
Get the name of the variant.
Definition: EventsBasedObjectVariant.h:41
EventsBasedObjectVariant & SetName(const gd::String &name_)
Set the name of the variant.
Definition: EventsBasedObjectVariant.h:46
gd::InitialInstancesContainer & GetInitialInstances()
Get the instances of the variant.
Definition: EventsBasedObjectVariant.h:85
gd::LayersContainer & GetLayers()
Get the layers of the variant.
Definition: EventsBasedObjectVariant.h:62
int GetAreaMaxX() const
Get the right bound of the variant.
Definition: EventsBasedObjectVariant.h:145
const gd::String & GetAssetStoreAssetId() const
Return the object asset store id of this variant.
Definition: EventsBasedObjectVariant.h:189
int GetAreaMinY() const
Get the top bound of the variant.
Definition: EventsBasedObjectVariant.h:117
void SetAreaMaxX(int areaMaxX_)
Set the right bound of the variant.
Definition: EventsBasedObjectVariant.h:150
const gd::ObjectsContainer & GetObjects() const
Get the objects of the variant.
Definition: EventsBasedObjectVariant.h:76
EventsBasedObjectVariant * Clone() const
Return a pointer to a new EventsBasedObjectVariant constructed from this one.
Definition: EventsBasedObjectVariant.h:34
void SetAreaMinZ(int areaMinZ_)
Set the min Z bound of the variant.
Definition: EventsBasedObjectVariant.h:136
void SetAreaMinY(int areaMinY_)
Set the top bound of the variant.
Definition: EventsBasedObjectVariant.h:122
void SetAreaMaxY(int areaMaxY_)
Set the bottom bound of the variant.
Definition: EventsBasedObjectVariant.h:164
void SetAssetStoreAssetId(const gd::String &assetStoreId_)
Change the object asset store id of this variant.
Definition: EventsBasedObjectVariant.h:183
void SetAreaMaxZ(int areaMaxZ_)
Set the bottom bound of the variant.
Definition: EventsBasedObjectVariant.h:178
const gd::InitialInstancesContainer & GetInitialInstances() const
Get the instances of the variant.
Definition: EventsBasedObjectVariant.h:92
gd::ObjectsContainer & GetObjects()
Get the objects of the variant.
Definition: EventsBasedObjectVariant.h:71
const gd::String & GetAssetStoreOriginalName() const
Return the original name of the variant in the asset.
Definition: EventsBasedObjectVariant.h:199
void SetAreaMinX(int areaMinX_)
Set the left bound of the variant.
Definition: EventsBasedObjectVariant.h:108
void SetAssetStoreOriginalName(const gd::String &assetStoreOriginalName_)
Change the original name of the variant in the asset.
Definition: EventsBasedObjectVariant.h:193
const gd::LayersContainer & GetLayers() const
Get the layers of the variant.
Definition: EventsBasedObjectVariant.h:57
int GetAreaMaxZ() const
Get the max Z bound of the variant.
Definition: EventsBasedObjectVariant.h:173
int GetAreaMaxY() const
Get the bottom bound of the variant.
Definition: EventsBasedObjectVariant.h:159
int GetAreaMinZ() const
Get the min Z bound of the variant.
Definition: EventsBasedObjectVariant.h:131
int GetAreaMinX() const
Get the left bound of the variant.
Definition: EventsBasedObjectVariant.h:103
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