mirror of
https://github.com/antopilo/Nuake.git
synced 2026-09-21 20:08:40 +03:00
Added capsule collider component
This commit is contained in:
37
Editor/src/ComponentsPanel/CapsuleColliderPanel.h
Normal file
37
Editor/src/ComponentsPanel/CapsuleColliderPanel.h
Normal file
@@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
#include "ComponentPanel.h"
|
||||
#include <src/Scene/Components/CapsuleColliderComponent.h>
|
||||
|
||||
class CapsuleColliderPanel: ComponentPanel
|
||||
{
|
||||
public:
|
||||
CapsuleColliderPanel() = default;
|
||||
|
||||
void Draw(Nuake::Entity entity) override
|
||||
{
|
||||
if (!entity.HasComponent<Nuake::CapsuleColliderComponent>())
|
||||
return;
|
||||
|
||||
auto& component = entity.GetComponent<Nuake::CapsuleColliderComponent>();
|
||||
BeginComponentTable(CAPSULE COLLIDER, Nuake::CapsuleColliderComponent);
|
||||
{
|
||||
{
|
||||
ImGui::Text("Radius");
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::DragFloat("##Radius", &component.Radius);
|
||||
ImGui::TableNextColumn();
|
||||
ComponentTableReset(component.Radius, 0.5f)
|
||||
}
|
||||
ImGui::TableNextColumn();
|
||||
{
|
||||
ImGui::Text("Height");
|
||||
ImGui::TableNextColumn();
|
||||
|
||||
ImGui::DragFloat("##Height", &component.Height);
|
||||
ImGui::TableNextColumn();
|
||||
ComponentTableReset(component.Height, 1.0f)
|
||||
}
|
||||
}
|
||||
EndComponentTable()
|
||||
}
|
||||
};
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
#include <dependencies/GLEW/include/GL/glew.h>
|
||||
|
||||
#include "src/Scene/Components/CapsuleColliderComponent.h"
|
||||
|
||||
GizmoDrawer::GizmoDrawer()
|
||||
{
|
||||
mLineShader = Nuake::ShaderManager::GetShader("resources/Shaders/line.shader");
|
||||
@@ -199,10 +201,10 @@ void GizmoDrawer::DrawGizmos(Ref<Scene> scene)
|
||||
Nuake::RenderCommand::DrawLines(0, 128);
|
||||
}
|
||||
|
||||
auto capsuleColliderView = scene->m_Registry.view<TransformComponent, BoxColliderComponent>();
|
||||
auto capsuleColliderView = scene->m_Registry.view<TransformComponent, CapsuleColliderComponent>();
|
||||
for (auto e : capsuleColliderView)
|
||||
{
|
||||
auto [transform, capsule] = scene->m_Registry.get<TransformComponent, BoxColliderComponent>(e);
|
||||
auto [transform, capsule] = scene->m_Registry.get<TransformComponent, CapsuleColliderComponent>(e);
|
||||
mLineShader->Bind();
|
||||
mLineShader->SetUniformMat4f("u_View", glm::translate(scene->m_EditorCamera->GetTransform(), transform.Translation));
|
||||
mLineShader->SetUniformMat4f("u_Projection", scene->m_EditorCamera->GetPerspective());
|
||||
|
||||
@@ -38,7 +38,7 @@ void EditorSelectionPanel::ResolveFile(Ref<Nuake::File> file)
|
||||
|
||||
void EditorSelectionPanel::Draw(EditorSelection selection)
|
||||
{
|
||||
if (ImGui::Begin("Propreties"))
|
||||
if (ImGui::Begin("Properties"))
|
||||
{
|
||||
switch (selection.Type)
|
||||
{
|
||||
@@ -101,6 +101,7 @@ void EditorSelectionPanel::DrawEntity(Nuake::Entity entity)
|
||||
mRigidbodyPanel.Draw(entity);
|
||||
mBoxColliderPanel.Draw(entity);
|
||||
mSphereColliderPanel.Draw(entity);
|
||||
mCapsuleColliderPanel.Draw(entity);
|
||||
mMeshColliderPanel.Draw(entity);
|
||||
mCharacterControllerPanel.Draw(entity);
|
||||
}
|
||||
@@ -126,6 +127,7 @@ void EditorSelectionPanel::DrawAddComponentMenu(Nuake::Entity entity)
|
||||
MenuItemComponent("Character Controller", Nuake::CharacterControllerComponent)
|
||||
MenuItemComponent("Rigid body", Nuake::RigidBodyComponent)
|
||||
MenuItemComponent("Box collider", Nuake::BoxColliderComponent)
|
||||
MenuItemComponent("Capsule collider", Nuake::CapsuleColliderComponent)
|
||||
MenuItemComponent("Sphere collider", Nuake::SphereColliderComponent)
|
||||
MenuItemComponent("Mesh collider", Nuake::MeshColliderComponent)
|
||||
ImGui::Separator();
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "../ComponentsPanel/CameraPanel.h"
|
||||
#include "../ComponentsPanel/RigidbodyPanel.h"
|
||||
#include "../ComponentsPanel/BoxColliderPanel.h"
|
||||
#include "../ComponentsPanel/CapsuleColliderPanel.h"
|
||||
#include "../ComponentsPanel/SphereColliderPanel.h"
|
||||
#include "../ComponentsPanel/MeshColliderPanel.h"
|
||||
#include "../ComponentsPanel/CharacterControllerPanel.h"
|
||||
@@ -29,6 +30,8 @@ private:
|
||||
BoxColliderPanel mBoxColliderPanel;
|
||||
SphereColliderPanel mSphereColliderPanel;
|
||||
MeshColliderPanel mMeshColliderPanel;
|
||||
CapsuleColliderPanel mCapsuleColliderPanel;
|
||||
|
||||
CharacterControllerPanel mCharacterControllerPanel;
|
||||
|
||||
Ref<Nuake::File> currentFile;
|
||||
|
||||
Reference in New Issue
Block a user