13 #include "GDCore/Project/Project.h"
16 class NamedPropertyDescriptor;
17 class EventsBasedObject;
37 const gd::EventsFunctionsExtension& eventsFunctionsExtension,
38 const gd::EventsBasedObject& eventsBasedObject,
39 const gd::String& codeNamespace,
40 const std::map<gd::String, gd::String>& objectMethodMangledNames,
41 std::set<gd::String>& includeFiles,
42 bool compilationForRuntime =
false);
49 const gd::String& propertyName) {
50 return "_get" + propertyName;
58 const gd::String& propertyName) {
59 return "_set" + propertyName;
67 const gd::String &propertyName) {
68 return "_toggle" + propertyName;
72 gd::String GenerateRuntimeObjectTemplateCode(
73 const gd::String& extensionName,
74 const gd::EventsBasedObject& eventsBasedObject,
75 const gd::String& codeNamespace,
76 std::function<gd::String()> generateInitializePropertiesCode,
77 std::function<gd::String()> generateMethodsCode,
78 std::function<gd::String()> generatePropertiesCode,
79 std::function<gd::String()> generateUpdateFromObjectDataCode,
80 std::function<gd::String()> generateInitializeAnimatableCode,
81 std::function<gd::String()> generateAnimatableCode,
82 std::function<gd::String()> generateTextContainerCode);
84 gd::String GenerateRuntimeObjectPropertyTemplateCode(
85 const gd::EventsBasedObject& eventsBasedObject,
86 const gd::NamedPropertyDescriptor& property);
88 gd::String GenerateToggleBooleanPropertyTemplateCode(
89 const gd::String &toggleName,
const gd::String &getterName,
90 const gd::String &setterName);
92 gd::String GenerateInitializePropertyFromDataCode(
93 const gd::NamedPropertyDescriptor& property);
95 gd::String GenerateInitializePropertyFromDefaultValueCode(
96 const gd::NamedPropertyDescriptor& property);
98 gd::String GeneratePropertyValueCode(
const gd::PropertyDescriptor& property);
100 gd::String GenerateUpdatePropertyFromObjectDataCode(
101 const gd::EventsBasedObject& eventsBasedObject,
102 const gd::NamedPropertyDescriptor& property);
104 gd::String GenerateObjectOnDestroyToDeprecatedOnOwnerRemovedFromScene(
105 const gd::EventsBasedObject& eventsBasedObject,
106 const gd::String& codeNamespace);
108 gd::String GenerateDefaultDoStepPreEventsFunctionCode(
109 const gd::EventsBasedObject& eventsBasedObject,
110 const gd::String& codeNamespace);
112 gd::String GenerateDoStepPreEventsPreludeCode(
113 const gd::EventsBasedObject& eventsBasedObject);
115 gd::Project& project;
117 static gd::String onCreatedFunctionName;
118 static gd::String doStepPreEventsFunctionName;
The class being responsible for generating JavaScript code for EventsBasedObject.
Definition: ObjectCodeGenerator.h:28
gd::String GenerateRuntimeObjectCompleteCode(const gd::EventsFunctionsExtension &eventsFunctionsExtension, const gd::EventsBasedObject &eventsBasedObject, const gd::String &codeNamespace, const std::map< gd::String, gd::String > &objectMethodMangledNames, std::set< gd::String > &includeFiles, bool compilationForRuntime=false)
Generate the complete JS class (gdjs.CustomRuntimeObject) for the object.
Definition: ObjectCodeGenerator.cpp:20
static gd::String GetObjectPropertySetterName(const gd::String &propertyName)
Generate the name of the method to set the value of the property of a object.
Definition: ObjectCodeGenerator.h:57
static gd::String GetObjectPropertyGetterName(const gd::String &propertyName)
Generate the name of the method to get the value of the property of a object.
Definition: ObjectCodeGenerator.h:48
static gd::String GetObjectPropertyToggleFunctionName(const gd::String &propertyName)
Generate the name of the method to toggle the value of the boolean property of a behavior.
Definition: ObjectCodeGenerator.h:66