Elaztek Developer Hub
Blamite Game Engine - blam!  00346.12.11.21.0529.blamite
The core library for the Blamite Game Engine.
world.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 #include <string>
5 #include <Strings/components/classes/world/vector.h>
6 
8 
9 #ifndef BLAM
10 #define BLAM
11 #endif
12 
13 class BlamWorldState;
14 
16 {
17  Tag,
18  Primitive,
20 };
21 
23 {
24  Cuboid,
25  Cylinder
26 };
27 
35 {
36 public:
37  std::string name = "unnamed";
38  std::string description = "";
39 
40  BlamWorldState* world = nullptr;
41  BlamVector3 position = { 0, 0, 0 };
42  BlamVector3 rotation = { 0, 0, 0 };
43  BlamVector3 scale = { 1, 1, 1 };
44 
46 
54 
58  virtual void Render();
59 };
60 
68 {
69 public:
70  BlamTagData* tag_data = nullptr;
71 
78  BlamWorldObject_Tag(BlamTagData* _tag_data, BlamWorldState* _world);
79 
80  void Render();
81 };
82 
93 {
94 public:
96 
97  float radius_0 = 1.0f;
98  float radius_1 = 1.0f;
99  int resolution = 5;
100 
108 
109  void Render();
110 };
111 
119 {
120 public:
121  std::vector<BlamWorldObject*> objects = std::vector<BlamWorldObject*>();
122 
126  BlamWorldState();
127 
131  ~BlamWorldState();
132 
143  bool Drop(BlamTagData* tag_data, BlamVector3 position);
144 };
145 
146 namespace Blam::World
147 {
148  BLAM void InitializeWorldState();
149  BLAM void DestroyWorldState();
150 
152 
159  BLAM float ConvertFloatToWorldUnits(float value);
160 
171  BLAM BlamDirection GetOppositeDirection(BlamDirection direction);
172 }
Blam::World::GetWorldState
BLAM BlamWorldState * GetWorldState()
Definition: world.cpp:23
BlamWorldObject::name
std::string name
The unique name of this object.
Definition: world.h:37
BlamWorldObject::position
BlamVector3 position
The position of this object in world space.
Definition: world.h:41
BlamWorldObjectType
BlamWorldObjectType
Definition: world.h:15
BlamWorldObject_Primitive::primitive_type
Blam3DPrimitiveType primitive_type
The type of primitive this object represents.
Definition: world.h:95
BlamWorldState::Drop
bool Drop(BlamTagData *tag_data, BlamVector3 position)
Drops a tag into the world at the specified coordinates.
Definition: BlamWorldState.cpp:24
BLAM
#define BLAM
Definition: world.h:10
Blam::World::InitializeWorldState
BLAM void InitializeWorldState()
Definition: world.cpp:5
tags.h
BlamWorldObject::rotation
BlamVector3 rotation
The rotation of this object in world space.
Definition: world.h:42
BlamWorldObjectType::Unspecified
@ Unspecified
Blam3DPrimitiveType::Cuboid
@ Cuboid
BlamPluginFieldType::Unspecified
@ Unspecified
BlamWorldState::objects
std::vector< BlamWorldObject * > objects
Definition: world.h:121
BlamWorldObject_Tag::tag_data
BlamTagData * tag_data
Pointer to the tag data associated with this object.
Definition: world.h:70
BlamWorldObject_Tag
Class representing a tag-based world object.
Definition: world.h:67
value
Offset font vertically by altering the io Font DisplayOffset value
Definition: README.txt:67
Blam::World::DestroyWorldState
BLAM void DestroyWorldState()
Definition: world.cpp:14
BlamWorldObject_Tag::Render
void Render()
Renders the object to the screen.
Definition: BlamWorldObject_Tag.cpp:8
BlamWorldObject::Render
virtual void Render()
Renders the object to the screen.
Definition: BlamWorldObject.cpp:9
BlamWorldObject::scale
BlamVector3 scale
The scale/size of the object.
Definition: world.h:43
BlamWorldObject::type
BlamWorldObjectType type
The type of this world object.
Definition: world.h:45
Blam::World::GetOppositeDirection
BLAM BlamDirection GetOppositeDirection(BlamDirection direction)
Gets the direction opposite to a given direction.
Definition: world.cpp:33
BlamWorldObjectType::Tag
@ Tag
BlamWorldObjectType::Primitive
@ Primitive
Blam::World
Definition: world.h:146
BlamWorldObject_Primitive
Class representing a primitive-based world object.
Definition: world.h:92
BlamWorldObject
Class representing a world object.
Definition: world.h:34
Blam::World::ConvertFloatToWorldUnits
BLAM float ConvertFloatToWorldUnits(float value)
Converts a given float to the equivalent in world units.
Definition: world.cpp:28
BlamWorldObject::BlamWorldObject
BlamWorldObject(BlamWorldState *_world, BlamWorldObjectType _type)
Creates a new world object.
Definition: BlamWorldObject.cpp:3
BlamWorldObject_Primitive::radius_1
float radius_1
A secondary radius of the primitive. Only used in cylinders.
Definition: world.h:98
BlamWorldObject_Tag::BlamWorldObject_Tag
BlamWorldObject_Tag(BlamTagData *_tag_data, BlamWorldState *_world)
Creates a new tag-based world object.
Definition: BlamWorldObject_Tag.cpp:3
BlamWorldState::~BlamWorldState
~BlamWorldState()
Destroys the world state.
Definition: BlamWorldState.cpp:10
BlamWorldObject_Primitive::radius_0
float radius_0
The radius of the primitive. Only used in cylinders.
Definition: world.h:97
BlamWorldObject_Primitive::resolution
int resolution
The level of detail to use for the primitive. Only used in cylinders.
Definition: world.h:99
BlamTagData
Class used to contain and access tag data.
Definition: tags.h:62
BlamWorldObject::world
BlamWorldState * world
The world state this object belongs to.
Definition: world.h:40
Blam3DPrimitiveType::Cylinder
@ Cylinder
BlamWorldObject_Primitive::Render
void Render()
Renders the object to the screen.
Definition: BlamWorldObject_Primitive.cpp:10
BlamWorldState
Class representing a world state.
Definition: world.h:118
BlamWorldObject::description
std::string description
An optional description of this object.
Definition: world.h:38
BlamWorldObject_Primitive::BlamWorldObject_Primitive
BlamWorldObject_Primitive(Blam3DPrimitiveType _primitive_type, BlamWorldState *_world)
Creates a new primitive world object.
Definition: BlamWorldObject_Primitive.cpp:5
Blam3DPrimitiveType
Blam3DPrimitiveType
Definition: world.h:22
BlamWorldState::BlamWorldState
BlamWorldState()
Initializes a new world state.
Definition: BlamWorldState.cpp:5