12 #include "GDCore/Events/CodeGeneration/DiagnosticReport.h"
13 #include "GDCore/Project/ExtensionProperties.h"
14 #include "GDCore/Project/LoadingScreen.h"
15 #include "GDCore/Project/ObjectGroupsContainer.h"
16 #include "GDCore/Project/ObjectsContainer.h"
17 #include "GDCore/Project/PlatformSpecificAssets.h"
18 #include "GDCore/Project/ResourcesManager.h"
19 #include "GDCore/Project/VariablesContainer.h"
20 #include "GDCore/Project/Watermark.h"
21 #include "GDCore/String.h"
26 class ResourcesManager;
28 class EventsFunctionsExtension;
29 class EventsBasedObject;
30 class EventsBasedBehavior;
32 class ObjectConfiguration;
33 class VariablesContainer;
34 class ArbitraryResourceWorker;
37 class BehaviorsSharedData;
39 class SerializerElement;
76 const std::vector<gd::String>&
GetCategories()
const {
return categories; };
87 description = description_;
120 const std::vector<gd::String>&
GetAuthorIds()
const {
return authorIds; };
131 return authorUsernames;
144 isPlayableWithKeyboard = playable;
157 isPlayableWithGamepad = playable;
170 isPlayableWithMobile = playable;
182 packageName = packageName_;
194 templateSlug = templateSlug_;
208 orientation = orientation_;
244 latestCompilationDirectory = dir;
252 return latestCompilationDirectory;
260 return platformSpecificAssets;
268 return platformSpecificAssets;
300 windowHeight = height;
318 return adaptGameResolutionAtRuntime;
326 adaptGameResolutionAtRuntime = adaptGameResolutionAtRuntime_;
340 sizeOnStartupMode = mode;
406 antialiasingMode = antialiasingMode_;
413 return isAntialisingEnabledOnMobile;
420 isAntialisingEnabledOnMobile = enable;
429 return useDeprecatedZeroAsDefaultZOrder;
438 useDeprecatedZeroAsDefaultZOrder = enable;
445 projectUuid = projectUuid_;
457 void ResetProjectUuid();
466 return extensionProperties;
476 return extensionProperties;
487 void AddPlatform(
Platform& platform);
495 bool RemovePlatform(
const gd::String& platformName);
501 Platform& GetCurrentPlatform()
const;
508 void SetCurrentPlatform(
const gd::String& platformName);
523 std::unique_ptr<gd::Object> CreateObject(
const gd::String& type,
526 void EnsureObjectDefaultBehaviors(
gd::Object&
object)
const;
540 std::shared_ptr<gd::BaseEvent> CreateEvent(
551 bool HasLayoutNamed(
const gd::String& name)
const;
567 Layout& GetLayout(std::size_t index);
573 const Layout& GetLayout(std::size_t index)
const;
578 std::size_t GetLayoutPosition(
const gd::String& name)
const;
583 void MoveLayout(std::size_t oldIndex, std::size_t newIndex);
590 void SwapLayouts(std::size_t first, std::size_t second);
595 std::size_t GetLayoutsCount()
const;
658 bool HasExternalEventsNamed(
const gd::String& name)
const;
686 std::size_t GetExternalEventsPosition(
const gd::String& name)
const;
691 void MoveExternalEvents(std::size_t oldIndex, std::size_t newIndex);
698 void SwapExternalEvents(std::size_t first, std::size_t second);
703 std::size_t GetExternalEventsCount()
const;
710 std::size_t position);
721 std::size_t position);
726 void RemoveExternalEvents(
const gd::String& name);
737 bool HasExternalLayoutNamed(
const gd::String& name)
const;
765 std::size_t GetExternalLayoutPosition(
const gd::String& name)
const;
770 void MoveExternalLayout(std::size_t oldIndex, std::size_t newIndex);
777 void SwapExternalLayouts(std::size_t first, std::size_t second);
782 std::size_t GetExternalLayoutsCount()
const;
789 std::size_t position);
804 std::size_t position);
809 void RemoveExternalLayout(
const gd::String& name);
829 bool HasEventsFunctionsExtensionNamed(
const gd::String& name)
const;
853 std::size_t index)
const;
859 std::size_t GetEventsFunctionsExtensionPosition(
const gd::String& name)
const;
864 void MoveEventsFunctionsExtension(std::size_t oldIndex, std::size_t newIndex);
871 void SwapEventsFunctionsExtensions(std::size_t first, std::size_t second);
876 std::size_t GetEventsFunctionsExtensionsCount()
const;
883 const gd::String& name, std::size_t position);
894 std::size_t position);
903 void UnserializeAndInsertExtensionsFrom(
909 void RemoveEventsFunctionsExtension(
const gd::String& name);
914 void ClearEventsFunctionsExtensions();
919 bool HasEventsBasedObject(
const gd::String& type)
const;
935 bool HasEventsBasedBehavior(
const gd::String& type)
const;
959 return resourcesManager;
1013 static bool IsNameSafe(
const gd::String& name);
1037 return externalSourceFiles;
1061 void RemoveSourceFile(
const gd::String& name);
1069 std::size_t position = -1);
1073 return wholeProjectDiagnosticReport;
1085 static std::vector<gd::String> GetUnserializingOrderExtensionNames(
1100 std::unique_ptr<gd::ObjectConfiguration> CreateObjectConfiguration(
1106 unsigned int windowWidth = 0;
1107 unsigned int windowHeight = 0;
1109 unsigned int minFPS = 0;
1114 bool pixelsRounding =
false;
1116 bool adaptGameResolutionAtRuntime =
1123 bool isAntialisingEnabledOnMobile =
false;
1126 bool useDeprecatedZeroAsDefaultZOrder =
1132 std::vector<std::unique_ptr<gd::Layout> > scenes;
1135 std::vector<std::unique_ptr<gd::ExternalLayout> >
1137 std::vector<std::unique_ptr<gd::EventsFunctionsExtension> >
1138 eventsFunctionsExtensions;
1141 std::vector<gd::Platform*>
1144 bool useExternalSourceFiles =
1146 std::vector<std::unique_ptr<gd::SourceFile> >
1147 externalSourceFiles;
1149 std::vector<gd::String>
1151 std::vector<gd::String>
1153 std::vector<gd::String> categories;
1154 bool isPlayableWithKeyboard =
1156 bool isPlayableWithGamepad =
1158 bool isPlayableWithMobile =
false;
1164 bool folderProject =
1174 std::vector<std::unique_ptr<gd::ExternalEvents> >
1177 extensionProperties;
1179 mutable unsigned int gdMajorVersion =
1182 mutable unsigned int gdMinorVersion =
1185 mutable unsigned int gdBuildVersion =
Represents a behavior that is implemented with events.
Definition: EventsBasedBehavior.h:32
Represents an object that is implemented with events.
Definition: EventsBasedObject.h:30
Hold a list of Events Functions (gd::EventsFunction) and Events Based Behaviors.
Definition: EventsFunctionsExtension.h:38
Definition: ExtensionProperties.h:19
Contains a list of events not directly linked to a layout.
Definition: ExternalEvents.h:31
An external layout allows to create layouts of objects that can be then inserted on a layout.
Definition: ExternalLayout.h:24
Represent a layout ( also called a scene ) of a project.
Definition: Layout.h:40
Describe the content and set up of the loading screen.
Definition: LoadingScreen.h:23
Represent an object of a platform.
Definition: Object.h:37
Used as a base class for classes that will own objects (see gd::Object).
Definition: ObjectsContainer.h:37
Base class representing a project (game), including all resources, scenes, objects,...
Definition: Project.h:51
unsigned int GetLastSaveGDMajorVersion()
Definition: Project.h:639
const gd::String & GetPackageName() const
Get the project package name.
Definition: Project.h:188
const std::vector< std::unique_ptr< gd::SourceFile > > & GetAllSourceFiles() const
Return a const reference to the vector containing all the source files used by the game.
Definition: Project.h:1035
void SetVerticalSyncActivatedByDefault(bool enable)
Definition: Project.h:375
void SetPlayableWithGamepad(bool playable=true)
Definition: Project.h:156
void SetProjectUuid(const gd::String &projectUuid_)
Change the project UUID.
Definition: Project.h:444
const gd::LoadingScreen & GetLoadingScreen() const
Return a reference to loading screen setup for the project.
Definition: Project.h:279
void SetAntialisingEnabledOnMobile(bool enable)
Definition: Project.h:419
void SetAdaptGameResolutionAtRuntime(bool adaptGameResolutionAtRuntime_)
Set if the game resolution should be adapted to the window size at runtime.
Definition: Project.h:325
unsigned int GetGameResolutionWidth() const
Returns the default game resolution width.
Definition: Project.h:306
const gd::Watermark & GetWatermark() const
Return a reference to watermark setup for the project.
Definition: Project.h:289
const gd::String & GetSizeOnStartupMode() const
Get how the game size should be adapted to the screen.
Definition: Project.h:332
const gd::String & GetAntialiasingMode() const
Definition: Project.h:400
const gd::ExtensionProperties & GetExtensionProperties() const
Get the properties set by extensions.
Definition: Project.h:475
void SetSizeOnStartupMode(const gd::String &mode)
Set how to adapt the game size to the screen.
Definition: Project.h:339
bool GetPixelsRounding() const
Definition: Project.h:390
bool IsVerticalSynchronizationEnabledByDefault() const
Definition: Project.h:368
const gd::String & GetTemplateSlug() const
Get the slug of the template from which the project is created.
Definition: Project.h:200
unsigned int GetMinimumFPS() const
Definition: Project.h:363
bool IsPlayableWithGamepad() const
Definition: Project.h:163
void SetVersion(const gd::String &version_)
Change the version of the project. This can be freely set, but should follow "X.Y....
Definition: Project.h:100
unsigned int GetLastSaveGDBuildVersion()
Definition: Project.h:649
void SetProjectFile(const gd::String &file)
Definition: Project.h:219
const std::vector< gd::String > & GetAuthorIds() const
Get the author ids of the project.
Definition: Project.h:120
bool GetAdaptGameResolutionAtRuntime() const
Returns true if the game resolution should be adapted to the window size at runtime.
Definition: Project.h:317
gd::PlatformSpecificAssets & GetPlatformSpecificAssets()
Return a reference to platform assets of the project (icons, splashscreen...).
Definition: Project.h:259
void SetGameResolutionSize(unsigned int width, unsigned int height)
Definition: Project.h:298
void SetPlayableWithMobile(bool playable=true)
Definition: Project.h:169
void SetFolderProject(bool enable=true)
Definition: Project.h:232
const gd::ObjectsContainer & GetObjects() const
Return the objects of the project.
Definition: Project.h:1002
const gd::String & GetLastCompilationDirectory() const
Definition: Project.h:251
void SetPlayableWithKeyboard(bool playable=true)
Definition: Project.h:143
const gd::String & GetScaleMode() const
Definition: Project.h:380
bool IsPlayableWithMobile() const
Definition: Project.h:176
void SetMinimumFPS(unsigned int minFPS_)
Definition: Project.h:358
gd::ExtensionProperties & GetExtensionProperties()
Get the properties set by extensions.
Definition: Project.h:465
const std::vector< gd::String > & GetAuthorUsernames() const
Get the author usernames of the project.
Definition: Project.h:130
const std::vector< gd::String > & GetCategories() const
Get the categories/genres of the project.
Definition: Project.h:76
void SetOrientation(const gd::String &orientation_)
Change the project orientation (in particular when exported with Cordova). This has no effect on desk...
Definition: Project.h:207
const std::vector< Platform * > & GetUsedPlatforms() const
Definition: Project.h:482
std::vector< gd::String > & GetCategories()
Get the categories of the project, to modify them (non-const).
Definition: Project.h:81
gd::LoadingScreen & GetLoadingScreen()
Return a reference to loading screen setup for the project.
Definition: Project.h:274
bool IsAntialisingEnabledOnMobile() const
Definition: Project.h:412
gd::VariablesContainer & GetVariables()
Definition: Project.h:987
gd::Watermark & GetWatermark()
Return a reference to watermark setup for the project.
Definition: Project.h:284
const gd::PlatformSpecificAssets & GetPlatformSpecificAssets() const
Return a reference to platform assets of the project (icons, splashscreen...).
Definition: Project.h:267
void SetUseDeprecatedZeroAsDefaultZOrder(bool enable)
Set if the project should set 0 as Z-order for objects created from events (which is deprecated) - in...
Definition: Project.h:437
const gd::VariablesContainer & GetVariables() const
Definition: Project.h:979
const gd::String & GetVersion() const
Get the project version.
Definition: Project.h:105
const gd::String & GetName() const
Get the project name.
Definition: Project.h:71
int GetMaximumFPS() const
Definition: Project.h:352
const ResourcesManager & GetResourcesManager() const
Provide access to the ResourceManager member containing the list of the resources.
Definition: Project.h:958
ResourcesManager & GetResourcesManager()
Provide access to the ResourceManager member containing the list of the resources.
Definition: Project.h:966
void SetAuthor(const gd::String &author_)
Change the author of the project.
Definition: Project.h:110
void SetAntialiasingMode(const gd::String &antialiasingMode_)
Definition: Project.h:405
const gd::String & GetAuthor() const
Get the project author name.
Definition: Project.h:115
void SetTemplateSlug(const gd::String &templateSlug_)
Change the slug of the template from which the project is created.
Definition: Project.h:193
unsigned int GetLastSaveGDMinorVersion()
Definition: Project.h:644
bool IsPlayableWithKeyboard() const
Definition: Project.h:150
const gd::String & GetOrientation() const
Get the project orientation ("default", "landscape", "portrait").
Definition: Project.h:214
void SetPixelsRounding(bool enable)
Definition: Project.h:395
void SetMaximumFPS(int maxFPS_)
Definition: Project.h:347
void SetScaleMode(const gd::String &scaleMode_)
Definition: Project.h:385
void SetName(const gd::String &name_)
Change the project name.
Definition: Project.h:66
unsigned int GetGameResolutionHeight() const
Returns the default game resolution height.
Definition: Project.h:311
std::vector< gd::String > & GetAuthorIds()
Get the author ids of the project, to modify them (non-const).
Definition: Project.h:125
const gd::String & GetDescription() const
Get the project description.
Definition: Project.h:93
bool IsFolderProject() const
Definition: Project.h:238
void SetPackageName(const gd::String &packageName_)
Change the project package name.
Definition: Project.h:181
bool UseExternalSourceFiles() const
Return true if the game activated the use of external source files.
Definition: Project.h:1029
void SetFirstLayout(const gd::String &name)
Definition: Project.h:814
const gd::String & GetProjectUuid() const
Get the project UUID, useful when using the game on online services that would require a unique ident...
Definition: Project.h:452
const gd::String & GetFirstLayout()
Definition: Project.h:819
const gd::String & GetProjectFile() const
Definition: Project.h:225
bool GetUseDeprecatedZeroAsDefaultZOrder() const
Return if the project should set 0 as Z-order for objects created from events (which is deprecated) -...
Definition: Project.h:428
void SetDescription(const gd::String &description_)
Change the project description.
Definition: Project.h:86
void SetLastCompilationDirectory(const gd::String &dir)
Definition: Project.h:243
std::vector< gd::String > & GetAuthorUsernames()
Get the author usernames of the project, to modify them (non-const).
Definition: Project.h:137
gd::ObjectsContainer & GetObjects()
return the objects of the project.
Definition: Project.h:997
Inventory all resources used by a project.
Definition: ResourcesManager.h:556
A generic container that can represent a value ( containing a string, double, bool or int),...
Definition: SerializerElement.h:37
Represents a "physical" source file.
Definition: SourceFile.h:25
String represents an UTF8 encoded string.
Definition: String.h:33
Class defining a container for gd::Variable.
Definition: VariablesContainer.h:28
Describe the content and set up of the watermark.
Definition: Watermark.h:23
Definition: DiagnosticReport.h:95
Definition: CommonTools.h:24