GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
ArbitraryResourceWorker.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 <map>
10 #include <memory>
11 #include <vector>
12 #include "GDCore/String.h"
13 #include "GDCore/IDE/Events/ArbitraryEventsWorker.h"
14 #include "GDCore/IDE/Project/ArbitraryObjectsWorker.h"
15 namespace gd {
16 class BaseEvent;
17 }
18 namespace gd {
19 class Project;
20 }
21 namespace gd {
22 class EventsList;
23 }
24 namespace gd {
25 class Resource;
26 }
27 namespace gd {
28 class ResourcesManager;
29 }
30 
31 namespace gd {
32 
44 class GD_CORE_API ArbitraryResourceWorker {
45 public:
47  : resourcesManager(&resourcesManager_){};
48  virtual ~ArbitraryResourceWorker();
49 
56  void ExposeResources();
57 
61  void ExposeResourceWithType(const gd::String& resourceType, gd::String& resourceName);
62 
66  virtual void ExposeImage(gd::String &imageName);
67 
72  virtual void ExposeAudio(gd::String &audioName);
73 
78  virtual void ExposeFont(gd::String &fontName);
79 
83  virtual void ExposeJson(gd::String &jsonName);
84 
88  virtual void ExposeTilemap(gd::String &tilemapName);
89 
93  virtual void ExposeTileset(gd::String &tilesetName);
94 
98  virtual void ExposeModel3D(gd::String &resourceName);
99 
103  virtual void ExposeAtlas(gd::String &resourceName);
104 
108  virtual void ExposeSpine(gd::String &resourceName);
109 
113  virtual void ExposeVideo(gd::String &videoName);
114 
118  virtual void ExposeJavaScript(gd::String &javaScriptName);
119 
123  virtual void ExposeBitmapFont(gd::String &bitmapFontName);
124 
129  virtual void ExposeShader(gd::String &shaderName){};
130 
134  virtual void ExposeFile(gd::String &resourceFileName) = 0;
135 
139  virtual void ExposeEmbeddeds(gd::String &resourceName);
140 
141 protected:
142  gd::ResourcesManager * resourcesManager;
143 
144  private:
149  void ExposeResource(gd::Resource &resource);
150 };
151 
157 public:
160  : project(project_), worker(worker_){};
161  virtual ~ResourceWorkerInEventsWorker(){};
162 
163 private:
164  bool DoVisitInstruction(gd::Instruction &instruction,
165  bool isCondition) override;
166 
167  const gd::Project &project;
169 };
170 
171 ResourceWorkerInEventsWorker GD_CORE_API GetResourceWorkerOnEvents(
172  const gd::Project &project, gd::ArbitraryResourceWorker &worker);
173 
179  : public gd::ArbitraryObjectsWorker {
180 public:
182  : project(project_), worker(worker_){};
184 
185 private:
186  void DoVisitObject(gd::Object &object) override;
187  void DoVisitBehavior(gd::Behavior &behavior) override;
188 
189  const gd::Project &project;
191 };
192 
194 GetResourceWorkerOnObjects(const gd::Project &project, gd::ArbitraryResourceWorker &worker);
195 
196 } // namespace gd
ArbitraryEventsWorker is an abstract class used to browse events (and instructions) and do some work ...
Definition: ArbitraryEventsWorker.h:111
ArbitraryObjectsWorker is an abstract class used to browse objects (and behaviors) and do some work o...
Definition: ArbitraryObjectsWorker.h:30
ArbitraryResourceWorker is used so as to inventory resources and sometimes update them.
Definition: ArbitraryResourceWorker.h:44
virtual void ExposeShader(gd::String &shaderName)
Expose a shader. \warn Currently unsupported.
Definition: ArbitraryResourceWorker.h:129
virtual void ExposeFile(gd::String &resourceFileName)=0
Expose a raw filename.
Base class used to represents a behavior that can be applied to an object. It stores the content (i....
Definition: Behavior.h:23
An instruction is a member of an event: It can be a condition or an action.
Definition: Instruction.h:30
Represent an object of a platform.
Definition: Object.h:37
Base class representing a project (game), including all resources, scenes, objects,...
Definition: Project.h:50
Base class to describe a resource used by a game.
Definition: ResourcesManager.h:27
Definition: ArbitraryResourceWorker.h:156
Definition: ArbitraryResourceWorker.h:179
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