GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
SceneResourcesFinder.h
1 /*
2  * GDevelop JS Platform
3  * Copyright 2008-2023 Florian Rival ([email protected]). All rights
4  * reserved. This project is released under the MIT License.
5  */
6 
7 #pragma once
8 
9 #include "GDCore/IDE/Project/ArbitraryResourceWorker.h"
10 #include "GDCore/String.h"
11 
12 #include <set>
13 
14 namespace gd {
15 class Project;
16 class Layout;
17 class SerializerElement;
18 class EventsBasedObjectVariant;
19 } // namespace gd
20 
21 namespace gd {
22 
29 public:
35  static std::set<gd::String>
36  FindSceneResources(gd::Project &project, gd::Layout &layout,
37  bool ignoreObjectResourcePreloading);
38 
44  static std::set<gd::String> FindProjectResources(gd::Project &project);
45 
49  static std::set<gd::String> FindObjectResources(gd::Project &project,
50  gd::Object &object);
51 
55  static std::set<gd::String>
58 
59  virtual ~SceneResourcesFinder(){};
60 
61 private:
63  : gd::ArbitraryResourceWorker(resourcesManager){};
64 
65  void AddUsedResource(gd::String &resourceName);
66 
67  void ExposeFile(gd::String &resourceFileName) override{
68  // Don't do anything: we're renaming resources, not the files they are
69  // pointing to.
70  };
71  void ExposeImage(gd::String &imageResourceName) override {
72  AddUsedResource(imageResourceName);
73  };
74  void ExposeAudio(gd::String &audioResourceName) override {
75  AddUsedResource(audioResourceName);
76  };
77  void ExposeFont(gd::String &fontResourceName) override {
78  AddUsedResource(fontResourceName);
79  };
80  void ExposeJson(gd::String &jsonResourceName) override {
81  AddUsedResource(jsonResourceName);
82  };
83  void ExposeTilemap(gd::String &tilemapResourceName) override {
84  AddUsedResource(tilemapResourceName);
85  };
86  void ExposeTileset(gd::String &tilesetResourceName) override {
87  AddUsedResource(tilesetResourceName);
88  };
89  void ExposeVideo(gd::String &videoResourceName) override {
90  AddUsedResource(videoResourceName);
91  };
92  void ExposeJavaScript(gd::String &javaScriptResourceName) override {
93  AddUsedResource(javaScriptResourceName);
94  };
95  void ExposeBitmapFont(gd::String &bitmapFontName) override {
96  AddUsedResource(bitmapFontName);
97  };
98  void ExposeModel3D(gd::String &resourceName) override {
99  AddUsedResource(resourceName);
100  };
101  void ExposeAtlas(gd::String &resourceName) override {
102  AddUsedResource(resourceName);
103  };
104  void ExposeSpine(gd::String &resourceName) override {
105  AddUsedResource(resourceName);
106  };
107 
108  std::set<gd::String> resourceNames;
109 };
110 
111 } // namespace gd
ArbitraryResourceWorker is used so as to inventory resources and sometimes update them.
Definition: ArbitraryResourceWorker.h:44
Represents a variation of style of an events-based object.
Definition: EventsBasedObjectVariant.h:26
Represent a layout ( also called a scene ) of a project.
Definition: Layout.h:41
Represent an object of a platform.
Definition: Object.h:39
Base class representing a project (game), including all resources, scenes, objects,...
Definition: Project.h:51
Inventory all resources used by a project.
Definition: ResourcesContainer.h:628
Find resource usages in several parts of the project.
Definition: SceneResourcesFinder.h:28
static std::set< gd::String > FindSceneResources(gd::Project &project, gd::Layout &layout, bool ignoreObjectResourcePreloading)
Find resource usages in a given scene.
Definition: SceneResourcesFinder.cpp:25
static std::set< gd::String > FindProjectResources(gd::Project &project)
Find resource that are used globally in the project.
Definition: SceneResourcesFinder.cpp:17
static std::set< gd::String > FindEventsBasedObjectVariantResources(gd::Project &project, gd::EventsBasedObjectVariant &variant)
Find resource usages in a given events-based object variant.
Definition: SceneResourcesFinder.cpp:50
static std::set< gd::String > FindObjectResources(gd::Project &project, gd::Object &object)
Find resource usages in a given object.
Definition: SceneResourcesFinder.cpp:41
String represents an UTF8 encoded string.
Definition: String.h:33
Definition: CommonTools.h:24