13 #include "GDCore/CommonTools.h"
14 #include "GDCore/Extensions/Metadata/BehaviorMetadata.h"
15 #include "GDCore/Extensions/Metadata/DependencyMetadata.h"
16 #include "GDCore/Extensions/Metadata/EffectMetadata.h"
17 #include "GDCore/Extensions/Metadata/EventMetadata.h"
18 #include "GDCore/Extensions/Metadata/InstructionOrExpressionGroupMetadata.h"
19 #include "GDCore/Extensions/Metadata/ObjectMetadata.h"
20 #include "GDCore/Extensions/Metadata/SourceFileMetadata.h"
21 #include "GDCore/Project/PropertyDescriptor.h"
22 #include "GDCore/String.h"
23 #include "GDCore/Tools/VersionPriv.h"
27 class InstructionMetadata;
28 class MultipleInstructionMetadata;
29 class ExpressionMetadata;
31 class BehaviorMetadata;
33 class DependencyMetadata;
36 class EventCodeGenerator;
37 class ArbitraryResourceWorker;
38 class BehaviorsSharedData;
41 class ObjectConfiguration;
44 typedef std::function<std::unique_ptr<gd::ObjectConfiguration>()> CreateFunPtr;
57 bool informationCompleted =
false;
59 bool runtimeOnly =
false;
63 int gccMajorVersion = 0;
64 int gccMinorVersion = 0;
65 int gccPatchLevel = 0;
68 int sfmlMajorVersion = 0;
69 int sfmlMinorVersion = 0;
117 category = category_;
130 helpPath = helpPath_;
248 std::shared_ptr<gd::ObjectConfiguration> instance);
286 std::shared_ptr<gd::Behavior> instance,
287 std::shared_ptr<gd::BehaviorsSharedData> sharedDatasInstance);
303 std::shared_ptr<gd::BaseEvent> instance);
347 return extensionPropertiesMetadata[name];
356 return instructionOrExpressionGroupMetadata[name];
363 void StripUnimplementedInstructionsAndExpressions();
416 const std::vector<gd::String>&
GetTags()
const {
return tags; }
423 tags = csvTags.
Split(
',');
424 for (
size_t i = 0; i < tags.size(); i++) {
425 tags[i] = tags[i].Trim().LowerCase();
454 std::vector<gd::String> GetExtensionObjectsTypes()
const;
460 std::vector<gd::String> GetBehaviorsTypes()
const;
466 CreateFunPtr GetObjectCreationFunctionPtr(
const gd::String& objectType)
const;
472 std::vector<gd::String> GetExtensionEffectTypes()
const;
479 std::shared_ptr<gd::BaseEvent> CreateEvent(
const gd::String& eventType)
const;
512 bool HasBehavior(
const gd::String& behaviorType)
const;
522 std::map<gd::String, gd::EventMetadata>& GetAllEvents();
528 std::map<gd::String, gd::InstructionMetadata>& GetAllActions();
533 std::map<gd::String, gd::InstructionMetadata>& GetAllConditions();
538 std::map<gd::String, gd::ExpressionMetadata>& GetAllExpressions();
543 std::map<gd::String, gd::ExpressionMetadata>& GetAllStrExpressions();
549 std::vector<gd::DependencyMetadata>& GetAllDependencies();
555 const std::vector<gd::DependencyMetadata>& GetAllDependencies()
const;
561 std::vector<gd::SourceFileMetadata>& GetAllSourceFiles();
567 const std::vector<gd::SourceFileMetadata>& GetAllSourceFiles()
const;
573 std::map<gd::String, gd::InstructionMetadata>& GetAllActionsForObject(
579 std::map<gd::String, gd::InstructionMetadata>& GetAllConditionsForObject(
585 std::map<gd::String, gd::ExpressionMetadata>& GetAllExpressionsForObject(
591 std::map<gd::String, gd::ExpressionMetadata>& GetAllStrExpressionsForObject(
597 std::map<gd::String, gd::InstructionMetadata>& GetAllActionsForBehavior(
603 std::map<gd::String, gd::InstructionMetadata>& GetAllConditionsForBehavior(
609 std::map<gd::String, gd::ExpressionMetadata>& GetAllExpressionsForBehavior(
615 std::map<gd::String, gd::ExpressionMetadata>& GetAllStrExpressionsForBehavior(
624 return extensionPropertiesMetadata;
631 const std::map<gd::String, InstructionOrExpressionGroupMetadata>&
633 return instructionOrExpressionGroupMetadata;
646 static gd::String GetBehaviorEventsFunctionFullType(
654 static gd::String GetObjectEventsFunctionFullType(
688 std::vector<gd::String> tags;
690 std::map<gd::String, gd::ObjectMetadata> objectsInfos;
691 std::map<gd::String, gd::BehaviorMetadata> behaviorsInfo;
692 std::map<gd::String, gd::EffectMetadata> effectsMetadata;
693 std::map<gd::String, gd::InstructionMetadata> conditionsInfos;
694 std::map<gd::String, gd::InstructionMetadata> actionsInfos;
695 std::map<gd::String, gd::ExpressionMetadata> expressionsInfos;
696 std::map<gd::String, gd::ExpressionMetadata> strExpressionsInfos;
697 std::vector<gd::DependencyMetadata> extensionDependenciesMetadata;
698 std::vector<gd::SourceFileMetadata> extensionSourceFilesMetadata;
699 std::map<gd::String, gd::EventMetadata> eventsInfos;
700 std::map<gd::String, gd::PropertyDescriptor> extensionPropertiesMetadata;
701 std::map<gd::String, InstructionOrExpressionGroupMetadata>
702 instructionOrExpressionGroupMetadata;
707 static std::map<gd::String, gd::InstructionMetadata>
708 badConditionsMetadata;
710 static std::map<gd::String, gd::InstructionMetadata>
713 static std::map<gd::String, gd::ExpressionMetadata>
714 badExpressionsMetadata;
723 #define GD_COMPLETE_EXTENSION_COMPILATION_INFORMATION() \
724 compilationInfo.runtimeOnly = false; \
725 compilationInfo.sfmlMajorVersion = 2; \
726 compilationInfo.sfmlMinorVersion = 0; \
727 compilationInfo.gdCoreVersion = GD_VERSION_STRING; \
728 compilationInfo.sizeOfpInt = sizeof(int*); \
729 compilationInfo.gccMajorVersion = __GNUC__; \
730 compilationInfo.gccMinorVersion = __GNUC_MINOR__; \
731 compilationInfo.gccPatchLevel = __GNUC_PATCHLEVEL__; \
732 compilationInfo.informationCompleted = true;
734 #include "GDCore/Extensions/PlatformExtension.inl"
Base class used to represents a behavior that can be applied to an object. It stores the content (i....
Definition: Behavior.h:23
Base class for defining data shared by behaviors having the same type and name.
Definition: BehaviorsSharedData.h:24
Class used by gd::PlatformExtension to ensure that an extension is compiled against the right version...
Definition: PlatformExtension.h:52
Used to describe a property shown in a property grid.
Definition: PropertyDescriptor.h:25
String represents an UTF8 encoded string.
Definition: String.h:33
std::vector< String > Split(value_type delimiter) const
Split the string with a delimiter.
Definition: String.cpp:358
Definition: CommonTools.h:24
Definition: PlatformExtension.h:75