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 
64  return emptyResources;
65  };
66 
67  virtual void ExposeFile(gd::String& resource) override{
68  /*Don't care, we just list resource names*/
69  };
70  virtual void ExposeImage(gd::String& resourceName) override {
71  allImages.insert(resourceName);
72  };
73  virtual void ExposeAudio(gd::String& resourceName) override {
74  allAudios.insert(resourceName);
75  };
76  virtual void ExposeFont(gd::String& resourceName) override {
77  allFonts.insert(resourceName);
78  };
79  virtual void ExposeJson(gd::String& resourceName) override {
80  allJsons.insert(resourceName);
81  };
82  virtual void ExposeTilemap(gd::String& resourceName) override {
83  allTilemaps.insert(resourceName);
84  };
85  virtual void ExposeTileset(gd::String& resourceName) override {
86  allTilesets.insert(resourceName);
87  };
88  virtual void ExposeVideo(gd::String& resourceName) override {
89  allVideos.insert(resourceName);
90  };
91  virtual void ExposeBitmapFont(gd::String& resourceName) override {
92  allBitmapFonts.insert(resourceName);
93  };
94  virtual void ExposeModel3D(gd::String& resourceName) override {
95  allModel3Ds.insert(resourceName);
96  };
97  virtual void ExposeAtlas(gd::String& resourceName) override {
98  allAtlases.insert(resourceName);
99  };
100  virtual void ExposeSpine(gd::String& resourceName) override {
101  allSpines.insert(resourceName);
102  };
103 
104  protected:
105  std::vector<gd::String> allResources;
106  std::set<gd::String> allImages;
107  std::set<gd::String> allAudios;
108  std::set<gd::String> allFonts;
109  std::set<gd::String> allJsons;
110  std::set<gd::String> allTilemaps;
111  std::set<gd::String> allTilesets;
112  std::set<gd::String> allVideos;
113  std::set<gd::String> allBitmapFonts;
114  std::set<gd::String> allModel3Ds;
115  std::set<gd::String> allAtlases;
116  std::set<gd::String> allSpines;
117  std::set<gd::String> emptyResources;
118 
119  static const std::vector<gd::String> resourceTypes;
120 };
121 
122 } // 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:100
virtual void ExposeFile(gd::String &resource) override
Expose a raw filename.
Definition: ResourcesInUseHelper.h:67
virtual void ExposeVideo(gd::String &resourceName) override
Expose a video, which is always a reference to a "video" resource.
Definition: ResourcesInUseHelper.h:88
virtual void ExposeAtlas(gd::String &resourceName) override
Expose an atlas, which is always a reference to a "atlas" resource.
Definition: ResourcesInUseHelper.h:97
virtual void ExposeTileset(gd::String &resourceName) override
Expose a Tileset, which is always a reference to a "tileset" resource.
Definition: ResourcesInUseHelper.h:85
virtual void ExposeJson(gd::String &resourceName) override
Expose a JSON, which is always a reference to a "json" resource.
Definition: ResourcesInUseHelper.h:79
virtual void ExposeBitmapFont(gd::String &resourceName) override
Expose a bitmap font, which is always a reference to a "bitmapFont" resource.
Definition: ResourcesInUseHelper.h:91
virtual void ExposeTilemap(gd::String &resourceName) override
Expose a Tilemap, which is always a reference to a "tilemap" resource.
Definition: ResourcesInUseHelper.h:82
virtual void ExposeModel3D(gd::String &resourceName) override
Expose a 3D model, which is always a reference to a "model3D" resource.
Definition: ResourcesInUseHelper.h:94
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:76
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:73
virtual void ExposeImage(gd::String &resourceName) override
Expose an image, which is always a reference to a "image" resource.
Definition: ResourcesInUseHelper.h:70
Inventory all resources used by a project.
Definition: ResourcesManager.h:557
String represents an UTF8 encoded string.
Definition: String.h:31
Definition: CommonTools.h:24