GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
EventsPropertyReplacer.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 <map>
9 #include <memory>
10 #include <unordered_map>
11 #include <unordered_set>
12 #include <vector>
13 
14 #include "GDCore/IDE/Events/ArbitraryEventsWorker.h"
15 #include "GDCore/String.h"
16 namespace gd {
17 class BaseEvent;
18 class PropertiesContainer;
19 class EventsList;
20 class Platform;
21 } // namespace gd
22 
23 namespace gd {
24 
31 class GD_CORE_API EventsPropertyReplacer
33  public:
35  const gd::Platform &platform_,
36  const gd::PropertiesContainer &targetPropertiesContainer_,
37  const std::unordered_map<gd::String, gd::String> &oldToNewPropertyNames_,
38  const std::unordered_set<gd::String> &removedPropertyNames_)
39  : platform(platform_),
40  targetPropertiesContainer(targetPropertiesContainer_),
41  oldToNewPropertyNames(oldToNewPropertyNames_),
42  removedPropertyNames(removedPropertyNames_){};
43  virtual ~EventsPropertyReplacer();
44 
45  static bool CanContainProperty(const gd::ValueTypeMetadata &valueTypeMetadata);
46 
47  private:
48  bool DoVisitInstruction(gd::Instruction &instruction,
49  bool isCondition) override;
50  bool DoVisitEventExpression(gd::Expression &expression,
51  const gd::ParameterMetadata &metadata) override;
52 
53  const gd::Platform &platform;
54  const gd::PropertiesContainer &targetPropertiesContainer;
55  const std::unordered_map<gd::String, gd::String> &oldToNewPropertyNames;
56  const std::unordered_set<gd::String> &removedPropertyNames;
57 };
58 
59 } // namespace gd
An events worker that will know about the context (the objects container). Useful for workers working...
Definition: ArbitraryEventsWorker.h:136
Replace in expressions and in parameters of actions or conditions, references to the name of a proper...
Definition: EventsPropertyReplacer.h:32
Class representing an expression used as a parameter of a gd::Instruction. This class is nothing more...
Definition: Expression.h:30
An instruction is a member of an event: It can be a condition or an action.
Definition: Instruction.h:30
Describe a parameter of an instruction (action, condition) or of an expression: type,...
Definition: ParameterMetadata.h:27
Base class for implementing a platform.
Definition: Platform.h:42
A container of properties, used for custom behaviors, custom objects, extensions.....
Definition: PropertiesContainer.h:17
Define a type for parameters of a function (action, condition or expression) or the returned value of...
Definition: ValueTypeMetadata.h:26
Definition: CommonTools.h:24