Elaztek Developer Hub
Blamite Game Engine - blam!  00357.06.18.22.0809.blamite
The core library for the Blamite Game Engine.
world.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <stdint.h>
4 #include <vector>
5 #include <string>
6 #include <Strings/components/classes/world/vector.h>
8 
9 #ifndef BLAM
10 #define BLAM
11 #endif
12 
13 #ifdef BLAM_EXPORTS
14 #define BLAM_EXT_API __declspec(dllexport)
15 #else
16 #define BLAM_EXT_API __declspec(dllimport)
17 #endif
18 
19 class BlamWorldState;
20 class BlamTagData;
21 class TickEvent;
22 
24 {
25  Tag,
26  Primitive,
28 };
29 
31 {
32  Cuboid,
33  Cylinder
34 };
35 
43 {
44 public:
45  std::string name = "unnamed";
46  std::string description = "";
47  int editor_folder_id = 0;
48  uint64_t id = 0;
49 
50  BlamWorldState* world = nullptr;
51  BlamVector3 position = { 0, 0, 0 };
52  BlamVector3 rotation = { 0, 0, 0 };
53  BlamVector3 scale = { 1, 1, 1 };
54 
56 
64 
68  virtual void Render();
69 };
70 
78 {
79 public:
80  BlamTagData* tag_data = nullptr;
81 
88  BlamWorldObject_Tag(BlamTagData* _tag_data, BlamWorldState* _world);
89 
90  void Render();
91 };
92 
103 {
104 public:
106 
107  float radius_0 = 1.0f;
108  float radius_1 = 1.0f;
109  int resolution = 5;
110 
118 
119  void Render();
120 };
121 
129 {
130 private:
131  std::vector<BlamWorldObject*> objects = std::vector<BlamWorldObject*>();
132 
133 public:
137  BlamWorldState();
138 
142  ~BlamWorldState();
143 
144  void AddObject(BlamWorldObject* object);
145 
146  void RemoveObject(uint64_t object_id);
147 
148  int GetObjectCount();
149 
150  bool HasObject(uint64_t object_id);
151 
152  BlamWorldObject* GetObjectAtIndex(int index);
153 
154  BlamWorldObject* GetObjectById(uint64_t object_id);
155 
166  bool Drop(BlamTagData* tag_data, BlamVector3 position);
167 
168  void OnTickEvent(TickEvent* event);
169 };
170 
174 namespace Blam::World
175 {
179  BLAM void InitializeWorldState();
180 
185 
189  BLAM void DestroyWorldState();
190 
197 
200  BLAM_EXT_API std::vector<std::string> GetPrimitiveTypeStringList();
201 }
Blam::World::GetWorldState
BLAM_EXT_API BlamWorldState * GetWorldState()
Retrieves the current world state.
Definition: world.cpp:44
BlamWorldObjectType
BlamWorldObjectType
Definition: world.h:23
Blam::World::ConvertPrimitiveTypeToString
BLAM_EXT_API std::string ConvertPrimitiveTypeToString(Blam3DPrimitiveType type)
Definition: world.cpp:66
BLAM
#define BLAM
Definition: world.h:10
Blam::World::InitializeWorldState
BLAM void InitializeWorldState()
Initializes a new world state.
Definition: world.cpp:9
BlamWorldObjectType::Unspecified
@ Unspecified
Blam3DPrimitiveType::Cuboid
@ Cuboid
BlamWorldObject_Tag
Class representing a tag-based world object.
Definition: world.h:77
events.h
ImGui::Render
IMGUI_API void Render()
Definition: imgui.cpp:4248
TickEvent
Class representing an engine tick event.
Definition: TickEvent.h:12
Blam::World::DestroyWorldState
BLAM void DestroyWorldState()
Destroys the current world state.
Definition: world.cpp:33
Blam::World::GetPrimitiveTypeStringList
BLAM_EXT_API std::vector< std::string > GetPrimitiveTypeStringList()
Definition: world.cpp:81
uint64_t
unsigned __int64 uint64_t
Definition: stdint.h:136
BlamWorldObject::Render
virtual void Render()
Renders the object to the screen.
Definition: BlamWorldObject.cpp:9
BLAM_EXT_API
#define BLAM_EXT_API
Definition: world.h:16
BlamWorldObjectType::Tag
@ Tag
BlamWorldObjectType::Primitive
@ Primitive
stdint.h
Blam::World
Namespace containing functions for interacting with the current world state.
Definition: world.h:174
BlamWorldObject_Primitive
Class representing a primitive-based world object.
Definition: world.h:102
BlamOgreRenderSystemType::Unspecified
@ Unspecified
BlamEventListener::OnTickEvent
virtual void OnTickEvent(TickEvent *event)
Called when the listener is subscribed to Key Press events, and a new TickEvent is fired.
Definition: events.h:126
BlamWorldObject
Class representing a world object.
Definition: world.h:42
Blam::World::ConvertStringToPrimitiveType
BLAM_EXT_API Blam3DPrimitiveType ConvertStringToPrimitiveType(std::string text)
Definition: world.cpp:49
Blam::World::InitializeEmptyWorldState
BLAM void InitializeEmptyWorldState()
Initializes a new world state with no default objects.
Definition: world.cpp:23
BlamEventListener
Class representing an Event Listener.
Definition: events.h:29
BlamTagData
Class used to contain and access tag data.
Definition: tags.h:58
Blam3DPrimitiveType::Cylinder
@ Cylinder
BlamWorldState
Class representing a world state.
Definition: world.h:128
Blam3DPrimitiveType
Blam3DPrimitiveType
Definition: world.h:30