Potato Engine
Toggle main menu visibility
Loading...
Searching...
No Matches
Actor.cpp
Go to the documentation of this file.
1
2
3
#include <algorithm>
4
5
#include "
Util/Vector2.hpp
"
6
#include "
Debug/Debug.hpp
"
7
#include "
Game/World.hpp
"
8
9
#include "
Actor.hpp
"
10
11
ARCHIVE_STATIC
(
Actor
);
12
13
Actor::Actor
() {
14
15
Position =
Vector2
();
16
Size =
Vector2
();
17
Rotation = 0.f;
18
Visible =
true
;
19
20
}
21
22
void
Actor::DispatchBeginPlay
() {
23
if
(isInPlay) {
return
; }
24
isInPlay =
true
;
25
26
BeginPlay
();
27
}
28
29
void
Actor::BeginPlay
() {
30
31
}
32
33
void
Actor::Tick
(
float
dt) {
34
Tickable::Tick
(dt);
35
36
}
37
38
Vector2
Actor::GetPosition
()
const
{
39
return
Position;
40
}
41
void
Actor::SetPosition
(
const
Vector2
&position) {
42
// TODO: enforce world bounds somewhere better later
43
Position =
Vector2
(
44
std::clamp(position.
x
, 0.f,
static_cast<
float
>
(
World::EXTENT_X
-1) - Size.x),
45
std::clamp(position.
y
, 0.f,
static_cast<
float
>
(
World::EXTENT_Y
-1))
// TODO: enforce position restriction for Y based on size
46
);
47
}
48
void
Actor::AddLocalOffset
(
const
Vector2
& offset) {
49
SetPosition
(Position + offset);
50
}
51
52
Vector2
Actor::GetSize
()
const
{
53
return
Size;
54
}
55
void
Actor::SetSize
(
const
Vector2
&size) {
56
// TODO: enforce size restrictions
57
Size = size;
58
}
59
60
float
Actor::GetRotation
()
const
{
61
return
Rotation;
62
}
63
void
Actor::SetRotation
(
float
rotation) {
64
65
// Normalize rotation to [0, 360)
66
rotation = fmodf(rotation, 360.0f);
67
if
(rotation < 0.0f) { rotation += 360.0f; }
68
Rotation = rotation;
69
}
70
void
Actor::AddLocalRotation
(
float
rotation) {
71
SetRotation
(
GetRotation
() + rotation);
72
}
73
74
bool
Actor::isVisible
()
const
{
75
return
Visible;
76
}
77
void
Actor::SetVisibility
(
bool
visibility) {
78
Visible = visibility;
79
}
80
81
82
Actor::~Actor() {
83
84
}
Actor.hpp
ARCHIVE_STATIC
#define ARCHIVE_STATIC(type)
Registers classes to be archived as a static actor.
Definition
Archivable.hpp:13
Debug.hpp
Vector2.hpp
World.hpp
Actor
Base actor class.
Definition
Actor.hpp:14
Actor::isVisible
bool isVisible() const
Checks if actor visible.
Definition
Actor.cpp:74
Actor::BeginPlay
virtual void BeginPlay()
Gameplay start.
Definition
Actor.cpp:29
Actor::AddLocalRotation
void AddLocalRotation(float rotation)
Adds to rotation value.
Definition
Actor.cpp:70
Actor::Actor
Actor()
Constructs actor object.
Definition
Actor.cpp:13
Actor::GetSize
Vector2 GetSize() const
Gets size.
Definition
Actor.cpp:52
Actor::GetPosition
Vector2 GetPosition() const
Gets position.
Definition
Actor.cpp:38
Actor::SetRotation
void SetRotation(float rotation)
Sets rotation.
Definition
Actor.cpp:63
Actor::Tick
virtual void Tick(float dt) override
Update tick event.
Definition
Actor.cpp:33
Actor::AddLocalOffset
void AddLocalOffset(const Vector2 &offset)
Adds to location vector.
Definition
Actor.cpp:48
Actor::SetPosition
void SetPosition(const Vector2 &position)
Sets position.
Definition
Actor.cpp:41
Actor::GetRotation
float GetRotation() const
Gets rotation.
Definition
Actor.cpp:60
Actor::SetSize
void SetSize(const Vector2 &size)
Sets size.
Definition
Actor.cpp:55
Actor::SetVisibility
void SetVisibility(bool visibility)
Sets visibility of actor.
Definition
Actor.cpp:77
Actor::DispatchBeginPlay
void DispatchBeginPlay()
Internal function used to queue BeginPlay() on actor.
Definition
Actor.cpp:22
Tickable::Tick
virtual void Tick(float dt)
Update tick event.
Definition
Tickable.cpp:26
World::EXTENT_Y
static constexpr int EXTENT_Y
y-height of game world
Definition
World.hpp:24
World::EXTENT_X
static constexpr int EXTENT_X
x-width of game world
Definition
World.hpp:22
Vector2
Standard 2-dimensional vector.
Definition
Vector2.hpp:11
Vector2::x
float x
X Component.
Definition
Vector2.hpp:13
Vector2::y
float y
Y Component.
Definition
Vector2.hpp:15
Game
Actors
Actor.cpp
Generated by
1.17.0