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> FindSceneResources(gd::Project &project,
36  gd::Layout &layout);
37 
43  static std::set<gd::String> FindProjectResources(gd::Project &project);
44 
48  static std::set<gd::String>
51 
52  virtual ~SceneResourcesFinder(){};
53 
54 private:
56  : gd::ArbitraryResourceWorker(resourcesManager){};
57 
58  void AddUsedResource(gd::String &resourceName);
59 
60  void ExposeFile(gd::String &resourceFileName) override{
61  // Don't do anything: we're renaming resources, not the files they are
62  // pointing to.
63  };
64  void ExposeImage(gd::String &imageResourceName) override {
65  AddUsedResource(imageResourceName);
66  };
67  void ExposeAudio(gd::String &audioResourceName) override {
68  AddUsedResource(audioResourceName);
69  };
70  void ExposeFont(gd::String &fontResourceName) override {
71  AddUsedResource(fontResourceName);
72  };
73  void ExposeJson(gd::String &jsonResourceName) override {
74  AddUsedResource(jsonResourceName);
75  };
76  void ExposeTilemap(gd::String &tilemapResourceName) override {
77  AddUsedResource(tilemapResourceName);
78  };
79  void ExposeTileset(gd::String &tilesetResourceName) override {
80  AddUsedResource(tilesetResourceName);
81  };
82  void ExposeVideo(gd::String &videoResourceName) override {
83  AddUsedResource(videoResourceName);
84  };
85  void ExposeJavaScript(gd::String &javaScriptResourceName) override {
86  AddUsedResource(javaScriptResourceName);
87  };
88  void ExposeBitmapFont(gd::String &bitmapFontName) override {
89  AddUsedResource(bitmapFontName);
90  };
91  void ExposeModel3D(gd::String &resourceName) override {
92  AddUsedResource(resourceName);
93  };
94  void ExposeAtlas(gd::String &resourceName) override {
95  AddUsedResource(resourceName);
96  };
97  void ExposeSpine(gd::String &resourceName) override {
98  AddUsedResource(resourceName);
99  };
100 
101  std::set<gd::String> resourceNames;
102 };
103 
104 } // 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:40
Base class representing a project (game), including all resources, scenes, objects,...
Definition: Project.h:50
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 > FindProjectResources(gd::Project &project)
Find resource that are used globally in the project.
Definition: SceneResourcesFinder.cpp:16
static std::set< gd::String > FindSceneResources(gd::Project &project, gd::Layout &layout)
Find resource usages in a given scene.
Definition: SceneResourcesFinder.cpp:23
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:31
String represents an UTF8 encoded string.
Definition: String.h:33
Definition: CommonTools.h:24