Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
CharacterRigidbodyControllerComponent.hpp
1#pragma once
2
3#include <Jolt/Jolt.h>
4#include <Jolt/Physics/Collision/ObjectLayer.h>
5#include <Jolt/Physics/Character/Character.h>
6
7#include <Common/Memory/SmartPointers/UniquePtr.hpp>
8#include <Common/Math.hpp>
9#include <EngineCore/ECS/Entity.hpp>
10#include <EngineCore/Reflection/ComponentReflection.hpp>
11#include <EngineCore/CoreComponents/Transform/TransformComponent.hpp>
12
13namespace Grindstone {
14 class WorldContextSet;
15}
16
17namespace Grindstone::Physics {
18 struct ColliderComponent;
19
21 static void Construct(Grindstone::WorldContextSet&, entt::entity);
22 static void Destroy(Grindstone::WorldContextSet&, entt::entity);
23 CharacterRigidbodyControllerComponent Clone(Grindstone::WorldContextSet& cxt, entt::entity newEntityId) const;
24 bool IsOnGround() const;
25 void SetVelocity(Math::Float3 velocity);
26 Grindstone::Math::Float3 GetVelocity() const;
27 void SetRotation(Math::Quaternion rot);
28 Grindstone::Math::Quaternion GetRotation() const;
29
30 JPH::Ref<JPH::Character> character = nullptr;
31
32 REFLECT("CharacterRigidbodyController")
33 };
34
35 void SetupCharacterRigidbodyControllerComponentWithCollider(
37 CharacterRigidbodyControllerComponent* characterControllerComponent,
38 TransformComponent* transformComponent,
39 ColliderComponent* colliderComponent
40 );
41}
Definition WorldContextSet.hpp:11
Definition PhysicsLayer.hpp:6
Definition ArchiveContentFile.hpp:8
Definition FloatVectors.cs:119
Definition Quaternion.cs:6
Definition CharacterRigidbodyControllerComponent.hpp:20
Definition ColliderComponent.hpp:14
Definition TransformComponent.hpp:12