GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
ResourcesInUseHelper.h
1 /*
2  * GDevelop Core
3  * Copyright 2008-2016 Florian Rival ([email protected]). All rights
4  * reserved. This project is released under the MIT License.
5  */
6 
7 #pragma once
8 
9 #include <set>
10 #include <vector>
11 
12 #include "GDCore/IDE/Project/ArbitraryResourceWorker.h"
13 #include "GDCore/String.h"
14 #include "GDCore/IDE/ResourceExposer.h"
15 
16 namespace gd {
17 
34 public:
36  : gd::ArbitraryResourceWorker(resourcesManager){};
37  virtual ~ResourcesInUseHelper(){};
38 
39  const std::vector<gd::String>& GetAllResources();
40  std::set<gd::String>& GetAllImages() { return GetAll("image"); };
41  std::set<gd::String>& GetAllAudios() { return GetAll("audio"); };
42  std::set<gd::String>& GetAllFonts() { return GetAll("font"); };
43  std::set<gd::String>& GetAllJsons() { return GetAll("json"); };
44  std::set<gd::String>& GetAllTilemaps() { return GetAll("tilemap"); };
45  std::set<gd::String>& GetAllTilesets() { return GetAll("tileset"); };
46  std::set<gd::String>& GetAllVideos() { return GetAll("video"); };
47  std::set<gd::String>& GetAllBitmapFonts() { return GetAll("bitmapFont"); };
48  std::set<gd::String>& GetAll3DModels() { return GetAll("model3D"); };
49  std::set<gd::String>& GetAllAtlases() { return GetAll("atlas"); };
50  std::set<gd::String>& GetAllSpines() { return GetAll("spine"); };
51  std::set<gd::String>& GetAll(const gd::String& resourceType) {
52  if (resourceType == "image") return allImages;
53  if (resourceType == "audio") return allAudios;
54  if (resourceType == "font") return allFonts;
55  if (resourceType == "json") return allJsons;
56  if (resourceType == "tilemap") return allTilemaps;
57  if (resourceType == "tileset") return allTilesets;
58  if (resourceType == "video") return allVideos;
59  if (resourceType == "bitmapFont") return allBitmapFonts;
60  if (resourceType == "model3D") return allModel3Ds;
61  if (resourceType == "atlas") return allAtlases;
62  if (resourceType == "spine") return allSpines;
63  if (resourceType == "javascript") return allJavaScripts;
64 
65  return emptyResources;
66  };
67 
68  virtual void ExposeFile(gd::String& resource) override{
69  /*Don't care, we just list resource names*/
70  };
71  virtual void ExposeImage(gd::String& resourceName) override {
72  allImages.insert(resourceName);
73  };
74  virtual void ExposeAudio(gd::String& resourceName) override {
75  allAudios.insert(resourceName);
76  };
77  virtual void ExposeFont(gd::String& resourceName) override {
78  allFonts.insert(resourceName);
79  };
80  virtual void ExposeJson(gd::String& resourceName) override {
81  allJsons.insert(resourceName);
82  };
83  virtual void ExposeTilemap(gd::String& resourceName) override {
84  allTilemaps.insert(resourceName);
85  };
86  virtual void ExposeTileset(gd::String& resourceName) override {
87  allTilesets.insert(resourceName);
88  };
89  virtual void ExposeVideo(gd::String& resourceName) override {
90  allVideos.insert(resourceName);
91  };
92  virtual void ExposeJavaScript(gd::String& resourceName) override {
93  allJavaScripts.insert(resourceName);
94  };
95  virtual void ExposeBitmapFont(gd::String& resourceName) override {
96  allBitmapFonts.insert(resourceName);
97  };
98  virtual void ExposeModel3D(gd::String& resourceName) override {
99  allModel3Ds.insert(resourceName);
100  };
101  virtual void ExposeAtlas(gd::String& resourceName) override {
102  allAtlases.insert(resourceName);
103  };
104  virtual void ExposeSpine(gd::String& resourceName) override {
105  allSpines.insert(resourceName);
106  };
107 
108  protected:
109  std::vector<gd::String> allResources;
110  std::set<gd::String> allImages;
111  std::set<gd::String> allAudios;
112  std::set<gd::String> allFonts;
113  std::set<gd::String> allJsons;
114  std::set<gd::String> allTilemaps;
115  std::set<gd::String> allTilesets;
116  std::set<gd::String> allVideos;
117  std::set<gd::String> allBitmapFonts;
118  std::set<gd::String> allModel3Ds;
119  std::set<gd::String> allAtlases;
120  std::set<gd::String> allSpines;
121  std::set<gd::String> allJavaScripts;
122  std::set<gd::String> emptyResources;
123 
124  static const std::vector<gd::String> resourceTypes;
125 };
126 
127 } // namespace gd
ArbitraryResourceWorker is used so as to inventory resources and sometimes update them.
Definition: ArbitraryResourceWorker.h:44
Class used to track all resources used by a game, or a part of it (like a gd::Object).
Definition: ResourcesInUseHelper.h:33
virtual void ExposeSpine(gd::String &resourceName) override
Expose an spine, which is always a reference to a "spine" resource.
Definition: ResourcesInUseHelper.h:104
virtual void ExposeFile(gd::String &resource) override
Expose a raw filename.
Definition: ResourcesInUseHelper.h:68
virtual void ExposeVideo(gd::String &resourceName) override
Expose a video, which is always a reference to a "video" resource.
Definition: ResourcesInUseHelper.h:89
virtual void ExposeAtlas(gd::String &resourceName) override
Expose an atlas, which is always a reference to a "atlas" resource.
Definition: ResourcesInUseHelper.h:101
virtual void ExposeTileset(gd::String &resourceName) override
Expose a Tileset, which is always a reference to a "tileset" resource.
Definition: ResourcesInUseHelper.h:86
virtual void ExposeJavaScript(gd::String &resourceName) override
Expose a JavaScript file, which is always a reference to a "javascript" resource.
Definition: ResourcesInUseHelper.h:92
virtual void ExposeJson(gd::String &resourceName) override
Expose a JSON, which is always a reference to a "json" resource.
Definition: ResourcesInUseHelper.h:80
virtual void ExposeBitmapFont(gd::String &resourceName) override
Expose a bitmap font, which is always a reference to a "bitmapFont" resource.
Definition: ResourcesInUseHelper.h:95
virtual void ExposeTilemap(gd::String &resourceName) override
Expose a Tilemap, which is always a reference to a "tilemap" resource.
Definition: ResourcesInUseHelper.h:83
virtual void ExposeModel3D(gd::String &resourceName) override
Expose a 3D model, which is always a reference to a "model3D" resource.
Definition: ResourcesInUseHelper.h:98
virtual void ExposeFont(gd::String &resourceName) override
Expose a font, which is either a reference to a "font" resource, or a filename if no resource with th...
Definition: ResourcesInUseHelper.h:77
virtual void ExposeAudio(gd::String &resourceName) override
Expose an audio, which is either a reference to an "audio" resource, or a filename if no resource wit...
Definition: ResourcesInUseHelper.h:74
virtual void ExposeImage(gd::String &resourceName) override
Expose an image, which is always a reference to a "image" resource.
Definition: ResourcesInUseHelper.h:71
Inventory all resources used by a project.
Definition: ResourcesManager.h:582
String represents an UTF8 encoded string.
Definition: String.h:33
Definition: CommonTools.h:24