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 ExposeBitmapFont(gd::String &bitmapFontName);
119 
124  virtual void ExposeShader(gd::String &shaderName){};
125 
129  virtual void ExposeFile(gd::String &resourceFileName) = 0;
130 
134  virtual void ExposeEmbeddeds(gd::String &resourceName);
135 
136 protected:
137  gd::ResourcesManager * resourcesManager;
138 
139  private:
144  void ExposeResource(gd::Resource &resource);
145 };
146 
152 public:
155  : project(project_), worker(worker_){};
156  virtual ~ResourceWorkerInEventsWorker(){};
157 
158 private:
159  bool DoVisitInstruction(gd::Instruction &instruction,
160  bool isCondition) override;
161 
162  const gd::Project &project;
164 };
165 
166 ResourceWorkerInEventsWorker GD_CORE_API GetResourceWorkerOnEvents(
167  const gd::Project &project, gd::ArbitraryResourceWorker &worker);
168 
174  : public gd::ArbitraryObjectsWorker {
175 public:
177  : project(project_), worker(worker_){};
179 
180 private:
181  void DoVisitObject(gd::Object &object) override;
182  void DoVisitBehavior(gd::Behavior &behavior) override;
183 
184  const gd::Project &project;
186 };
187 
189 GetResourceWorkerOnObjects(const gd::Project &project, gd::ArbitraryResourceWorker &worker);
190 
191 } // namespace gd
ArbitraryEventsWorker is an abstract class used to browse events (and instructions) and do some work ...
Definition: ArbitraryEventsWorker.h:36
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:124
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:151
Definition: ArbitraryResourceWorker.h:174
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