GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
ObjectRefactorer.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 
8 #include "GDCore/Project/VariablesContainer.h"
9 
10 namespace gd {
11 class EventsBasedObject;
12 class InitialInstancesContainer;
13 class Object;
14 class ObjectsContainersList;
15 class ObjectsContainer;
16 class ObjectGroup;
17 class VariablesContainer;
18 struct VariablesChangeset;
19 } // namespace gd
20 
21 namespace gd {
22 
28 class GD_CORE_API ObjectRefactorer {
29 public:
39  static void
40  FillAnyVariableBetweenObjects(gd::ObjectsContainer &globalObjectsContainer,
41  gd::ObjectsContainer &objectsContainer,
42  const gd::ObjectGroup &objectGroup);
43 
48  static gd::VariablesContainer MergeVariableContainers(
49  const gd::ObjectsContainersList &objectsContainersList,
50  const gd::ObjectGroup &objectGroup);
51 
60  static void FillMissingGroupVariablesToObjects(
61  gd::ObjectsContainer &globalObjectsContainer,
62  gd::ObjectsContainer &objectsContainer,
63  const gd::ObjectGroup &objectGroup,
64  const gd::SerializerElement &originalSerializedVariables);
65 
70  static void FillMissingGroupVariablesToObject(
71  gd::Object &object,
72  const gd::VariablesContainer &groupVariablesContainer);
73 
78  static void FillMissingGroupBehaviorToObject(
79  gd::ObjectsContainer &globalObjectsContainer,
80  gd::ObjectsContainer &objectsContainer, gd::Object &object,
81  const gd::ObjectGroup &objectGroup, const gd::String &behaviorName);
82 
87  static void
88  ApplyChangesToObjects(gd::ObjectsContainer &globalObjectsContainers,
89  gd::ObjectsContainer &objectsContainers,
90  const gd::VariablesContainer &groupVariablesContainer,
91  const gd::ObjectGroup &objectGroup,
92  const gd::VariablesChangeset &changeset);
93 
97  static void ApplyChangesToObjectInstances(
98  gd::VariablesContainer &objectVariablesContainer,
99  gd::InitialInstancesContainer &initialInstancesContainer,
100  const gd::String &objectName, const gd::VariablesChangeset &changeset);
101 
106  static void ApplyChangesToVariants(gd::EventsBasedObject &eventsBasedObject,
107  const gd::String &objectName,
108  const gd::VariablesChangeset &changeset);
109 };
110 
111 } // namespace gd
Represents an object that is implemented with events.
Definition: EventsBasedObject.h:32
Defines a container of gd::InitialInstances.
Definition: InitialInstancesContainer.h:39
Represents an object group.
Definition: ObjectGroup.h:28
Represent an object of a platform.
Definition: Object.h:39
Definition: ObjectRefactorer.h:28
Used as a base class for classes that will own objects (see gd::Object).
Definition: ObjectsContainer.h:38
A list of objects containers, useful for accessing objects in a scoped way, along with methods to acc...
Definition: ObjectsContainersList.h:29
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
Class defining a container for gd::Variable.
Definition: VariablesContainer.h:29
Definition: CommonTools.h:24
Definition: WholeProjectRefactorer.h:47