8 #include "GDCore/Project/ObjectConfiguration.h"
12 #include <unordered_set>
13 #include "GDCore/Project/Object.h"
14 #include "GDCore/Project/Project.h"
15 #include "GDCore/Project/EventsBasedObject.h"
16 #include "GDCore/Project/PropertyDescriptor.h"
17 #include "GDCore/Serialization/Serializer.h"
18 #include "GDCore/Serialization/SerializerElement.h"
19 #include "GDCore/Extensions/Builtin/SpriteExtension/SpriteAnimationList.h"
34 : project(&project_) {
37 std::unique_ptr<gd::ObjectConfiguration>
Clone()
const override;
51 if ((
this) != &
object) {
52 ObjectConfiguration::operator=(
object);
58 std::map<gd::String, gd::PropertyDescriptor>
GetProperties()
const override;
78 variantName = variantName_;
81 bool IsForcedToOverrideEventsBasedObjectChildrenConfiguration()
const;
83 bool IsMarkedAsOverridingEventsBasedObjectChildrenConfiguration()
const {
84 return isMarkedAsOverridingEventsBasedObjectChildrenConfiguration;
87 void SetMarkedAsOverridingEventsBasedObjectChildrenConfiguration(
88 bool isOverridingEventsBasedObjectChildrenConfiguration_) {
89 isMarkedAsOverridingEventsBasedObjectChildrenConfiguration =
90 isOverridingEventsBasedObjectChildrenConfiguration_;
93 void ClearChildrenConfiguration();
96 GetChildObjectConfiguration(
const gd::String &objectName);
122 static const gd::CustomObjectConfiguration::EdgeAnchor
123 GetEdgeAnchorFromString(
const gd::String &value);
131 return unfoldedChildren.find(childName) == unfoldedChildren.end();
141 unfoldedChildren.insert(childName);
143 unfoldedChildren.erase(childName);
153 bool IsOverridingEventsBasedObjectChildrenConfiguration()
const;
155 const Project* project =
nullptr;
158 std::unordered_set<gd::String> unfoldedChildren;
161 bool isMarkedAsOverridingEventsBasedObjectChildrenConfiguration =
false;
162 mutable std::map<gd::String, std::unique_ptr<gd::ObjectConfiguration>> childObjectConfigurations;
ArbitraryResourceWorker is used so as to inventory resources and sometimes update them.
Definition: ArbitraryResourceWorker.h:44
A gd::ObjectConfiguration that stores its content in JSON and is composed of other configuration acco...
Definition: CustomObjectConfiguration.h:31
void SetChildObjectFolded(const gd::String &childName, bool folded)
Definition: CustomObjectConfiguration.h:139
void ExposeResources(gd::ArbitraryResourceWorker &worker) override
Called ( e.g. during compilation ) so as to inventory internal resources and sometimes update their f...
Definition: CustomObjectConfiguration.cpp:203
bool UpdateProperty(const gd::String &name, const gd::String &value) override
Called when the IDE wants to update a custom property of the object configuration.
Definition: CustomObjectConfiguration.cpp:119
void DoUnserializeFrom(Project &project, const SerializerElement &element) override
Derived object configuration can redefine this method to load custom attributes.
Definition: CustomObjectConfiguration.cpp:180
void DoSerializeTo(SerializerElement &element) const override
Derived object configuration can redefine this method to save custom attributes.
Definition: CustomObjectConfiguration.cpp:159
std::size_t GetAnimationsCount() const override
Return the number of animations declared in this object configuration.
Definition: CustomObjectConfiguration.cpp:276
CustomObjectConfiguration(const gd::CustomObjectConfiguration &object)
Definition: CustomObjectConfiguration.h:42
void SetVariantName(const gd::String &variantName_)
Set the name of the events-based object variant used by this custom object.
Definition: CustomObjectConfiguration.h:77
std::map< gd::String, gd::PropertyDescriptor > GetProperties() const override
Called when the IDE wants to know about the custom properties of the object configuration.
Definition: CustomObjectConfiguration.cpp:108
const SpriteAnimationList & GetAnimations() const
Return the animation configuration for Animatable custom objects.
Definition: CustomObjectConfiguration.cpp:290
bool IsChildObjectFolded(const gd::String &childName) const
Definition: CustomObjectConfiguration.h:130
std::map< gd::String, gd::PropertyDescriptor > GetInitialInstanceProperties(const gd::InitialInstance &instance) override
Called when the IDE wants to know about the custom properties of an initial instance of this object c...
Definition: CustomObjectConfiguration.cpp:135
CustomObjectConfiguration & operator=(const gd::CustomObjectConfiguration &object)
Definition: CustomObjectConfiguration.h:50
const gd::String & GetVariantName() const
Get the name of the events-based object variant used by this custom object.
Definition: CustomObjectConfiguration.h:72
const gd::String & GetAnimationName(size_t index) const override
Return the name of an animation declared in this object configuration.
Definition: CustomObjectConfiguration.cpp:281
bool UpdateInitialInstanceProperty(gd::InitialInstance &instance, const gd::String &name, const gd::String &value) override
Called when the IDE wants to update a custom property of an initial instance of this object configura...
Definition: CustomObjectConfiguration.cpp:148
bool HasAnimationNamed(const gd::String &animationName) const override
Return true if an animation is declared in this object configuration for a given name.
Definition: CustomObjectConfiguration.cpp:285
std::unique_ptr< gd::ObjectConfiguration > Clone() const override
Definition: CustomObjectConfiguration.cpp:38
Represents an object that is implemented with events.
Definition: EventsBasedObject.h:32
Represents an instance of an object to be created on a layout start up.
Definition: InitialInstance.h:26
Base class used to represent an object configuration. For example, this can be the animations in a sp...
Definition: ObjectConfiguration.h:38
void SetType(const gd::String &type_)
Change the type of the object.
Definition: ObjectConfiguration.h:64
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
A list of animations, containing directions with images and collision mask.
Definition: SpriteAnimationList.h:30
String represents an UTF8 encoded string.
Definition: String.h:33
Definition: CommonTools.h:24