This commit is contained in:
2023-12-05 16:02:42 -08:00
parent 35948fce3e
commit b21bc3d44d
12 changed files with 191 additions and 62 deletions

View File

@@ -44,17 +44,9 @@ void MainMenu::PostInitialize(lwe::GpuCmdBuffer* cmdBuffer)
Level::PostInitialize(cmdBuffer);
}
void MainMenu::OnUpdate(lwe::Input* input, const float delta)
void MainMenu::OnUpdate(lwe::RenderWindow* win, lwe::Input* input, const float delta)
{
Level::OnUpdate(input, delta);
lwe::GameLoop* gl = (lwe::GameLoop*)GetParent("GameLoop");
if (!gl)
return;
lwe::RenderWindow* win = gl->GetWindow();
if (!win)
return;
Level::OnUpdate(win, input, delta);
lwe::Vec2_f client = win->GetScale();

View File

@@ -22,5 +22,5 @@ public:
void PostInitialize(lwe::GpuCmdBuffer* cmdBuffer) override;
void OnUpdate(lwe::Input* input, const float delta) override;
void OnUpdate(lwe::RenderWindow* win, lwe::Input* input, const float delta) override;
};

View File

@@ -23,7 +23,6 @@
#include <LWE/Systems/SolidColorSystem.h>
#include <LWE/Systems/NetSystem.h>
#include <LWE/Systems/PhongSystem.h>
#include <LWE/Systems/DynamicsSystem.h>
#include <LWE/Components/Camera.h>
#include <LWE/Components/PlyController.h>
#include <LWE/Components/Skybox.h>
@@ -39,17 +38,18 @@
#include <LWE/Components/Projectile.h>
#include <LWE/Components/Health.h>
#include <LWE/Components/Networked.h>
#include <LWE/Components/Dynamics.h>
#include <LWE/Gui/LabelGui.h>
#include <LWE/Gui/SolidBoxGui.h>
#include <LWE/Gui/ButtonGui.h>
#include <LWE/Gui/CheckBoxGui.h>
#include <LWE/Gui/TextFieldGui.h>
#include <LWE/Gui/ImgGui.h>
#include <LWE/Gui/PanelGui.h>
#include <LWE/Gui/CollectionGui.h>
#include <LWE/Systems/BillboardSystem.h>
#include <LWE/Components/Billboard.h>
#include <LWE/IO/HID/Keyboard.h>
#include <LWE/IO/HID/Mouse.h>
#include <LWE/IO/HID/GenericInputHandler.h>
TestLevel::TestLevel()
: count(0), cooldown(0.0f)
@@ -214,10 +214,10 @@ void TestLevel::Setup()
}
*/
AddSystem(new lwe::DynamicsSystem());
AddSystem(new lwe::RigidBodySystem());
AddSystem(new lwe::CameraSystem());
//AddSystem(new lwe::AudioSystem());
AddSystem(new lwe::SkyboxSystem());
AddSystem(new lwe::RigidBodySystem(true));
AddSystem(new lwe::CameraSystem());
AddSystem(new lwe::PhongSystem());
AddSystem(new lwe::SolidColorSystem());
AddSystem(new lwe::BillboardSystem());
@@ -226,8 +226,6 @@ void TestLevel::Setup()
ls->SetAmbient({0.25f, 0.25f, 0.25f});
AddSystem(ls);
//AddSystem(new lwe::AudioSystem());
lwe::TimerSystem* timerSys = new lwe::TimerSystem();
AddSystem(timerSys);
@@ -288,15 +286,15 @@ void TestLevel::Setup()
gbg->SetText("Garbage: " + lwe::Str_8::FromNum(lwe::GarbageCollector::Size()));
}});
lwe::ButtonGui* testBttn = new lwe::ButtonGui("Test", "Test");
testBttn->SetScale({200.0f, 50.0f});
testBttn->SetPosition({400.0f, 400.0f});
guiSys->AddGui(testBttn);
lwe::PanelGui* testPanel = new lwe::PanelGui("TestPanel");
testPanel->SetPosition({300.0f, 200.0f});
testPanel->SetScale({400.0f, 400.0f});
guiSys->AddGui(testPanel);
lwe::Entity* player = new lwe::Entity("Player");
//player->AddComponent(new lwe::Networked(true, false, lwe::EndpointOwner::ENDPOINT));
player->AddComponent(new lwe::Point3D("Head"));
player->AddComponent(new lwe::Point3D("Head", 1.0f, 1.0f));
player->AddComponent(new lwe::PlyController("Head"));
//player->AddComponent(new lwe::Health(100, 100));
@@ -309,7 +307,7 @@ void TestLevel::Setup()
AddTemplate(player);
lwe::Entity* plyPuppet = new lwe::Entity("Puppet");
plyPuppet->AddComponent(new lwe::OBB3D("Head"));
plyPuppet->AddComponent(new lwe::OBB3D("Head", 1.0f, 1.0f));
plyPuppet->AddComponent(new lwe::Camera("Head"));
plyPuppet->AddComponent(new lwe::Health(100, 100));
@@ -344,8 +342,25 @@ void TestLevel::Setup()
//as->EnableAttenuation(false);
ent->AddComponent(as);
lwe::Sphere* sphere = new lwe::Sphere("Sphere", 5.0f);
ent->AddComponent(sphere);
lwe::Health* entHealth = new lwe::Health(100, 100);
ent->AddComponent(entHealth);
lwe::OBB3D* entCollider = new lwe::OBB3D("Collider", 1.0f, 1.0f);
entCollider->SetScale({1.0f, 2.0f, 1.0f});
entCollider->SetPos({0.0f, 1.1f, 0.0f});
entCollider->SetCollidedCb([](lwe::RigidBody* a, lwe::RigidBody* b)
{
lwe::Entity* aOwner = (lwe::Entity*)a->GetParent();
lwe::Health* health = (lwe::Health*)aOwner->GetComponent("Health");
health->TakeDamage(10);
lwe::Entity* bOwner = (lwe::Entity*)b->GetParent();
bOwner->Delete();
if (health->GetHealth() <= 0)
aOwner->Delete();
});
ent->AddComponent(entCollider);
/*
lwe::AudioSource* as2 = new lwe::AudioSource("Song2", "sample");
@@ -388,8 +403,10 @@ void TestLevel::Setup()
bullet->SetScale({0.1f, 0.1f, 0.1f});
bullet->AddComponent(new lwe::Projectile(25));
bullet->AddComponent(new lwe::Dynamics(50.0f));
bullet->AddComponent(new lwe::Point3D("Tip"));
lwe::OBB3D* bulletCollider = new lwe::OBB3D("Collider", 1.0f, 1.0f);
bulletCollider->SetScale(0.1f);
bullet->AddComponent(bulletCollider);
lwe::SolidColor* bulletMdl = new lwe::SolidColor("Mdl", {1.0f, 1.0f, 0.0f, 1.0f}, "Cube", "");
bullet->AddComponent(bulletMdl);
@@ -437,23 +454,32 @@ void TestLevel::PostInitialize(lwe::GpuCmdBuffer* cmdBuffer)
*/
}
void TestLevel::OnUpdate(lwe::Input* input, const float delta)
void TestLevel::OnUpdate(lwe::RenderWindow* win, lwe::Input* input, const float delta)
{
lwe::GameLoop* gl = (lwe::GameLoop*)GetParent("GameLoop");
if (!gl)
return;
lwe::GenericInputHandler* handler = (lwe::GenericInputHandler*)input->GetHandler("GenericInputHandler");
if (!handler)
const lwe::InputHandler* ih = win->GetInputHandler();
if (!ih)
return;
const lwe::Mouse* mouse = handler->GetPrimaryMouse();
const lwe::Keyboard* keyboard = handler->GetPrimaryKeyboard();
const lwe::Mouse* mouse = (lwe::Mouse*)ih->GetDeviceByType(LWE_HID_MOUSE);
if (!mouse)
return;
const lwe::Keyboard* keyboard = (lwe::Keyboard*)ih->GetDeviceByType(LWE_HID_KEYBOARD);
if (!keyboard)
return;
lwe::Entity* ent = GetEntity("Main");
if (!ent)
return;
ent->SetRot(ent->GetRot() + lwe::Vec3_f(50.0f) * delta);
lwe::Entity* ply = GetEntity("Player");
if (ply)
if (ply && win->IsCursorConstrained() && !win->IsCursorVisible())
{
lwe::PlyController* cam = (lwe::PlyController*)ply->GetComponent("PlyController", "Head");
if (cam)
@@ -473,8 +499,8 @@ void TestLevel::OnUpdate(lwe::Input* input, const float delta)
bullet->SetScale({0.1f, 0.1f, 0.1f});
bullet->SetRot(ply->GetRot());
lwe::Dynamics* dynamics = (lwe::Dynamics*)bullet->GetComponent("Dynamics");
dynamics->SetVelocity(cam->GetTransform().GetForward() * 100.0f);
lwe::OBB3D* rb = (lwe::OBB3D*)bullet->GetComponent("OBB3D", "Collider");
rb->SetVelocity(cam->GetTransform().GetForward() * 10.0f);
cooldown = 0.15f;
}
@@ -516,23 +542,26 @@ void TestLevel::OnUpdate(lwe::Input* input, const float delta)
playback->SetText("Playback: " + lwe::Str_8::FromNum(elapsed / 60) + ":" + lwe::Str_8::FromNum(elapsed % 60) +
" / " + lwe::Str_8::FromNum(duration / 60) + ":" + lwe::Str_8::FromNum(duration % 60));
if (keyboard->IsJustReleased(lwe::Keyboard::Left))
source->SetVolume(source->GetVolume() - 0.25f);
if (keyboard->IsJustReleased(lwe::Keyboard::Right))
source->SetVolume(source->GetVolume() + 0.25f);
lwe::LabelGui* volume = (lwe::LabelGui*)stats->GetChild("Volume");
volume->SetText("Volume: " + lwe::Str_8::FromNum(source->GetVolume()));
if (keyboard->IsJustReleased(lwe::Keyboard::P))
if (win->IsCursorConstrained() && !win->IsCursorVisible())
{
if (source->IsPlaying())
source->Pause();
else
source->Play();
}
if (keyboard->IsJustReleased(lwe::Keyboard::Left))
source->SetVolume(source->GetVolume() - 0.25f);
if (keyboard->IsJustReleased(lwe::Keyboard::Backspace))
source->Reset();
if (keyboard->IsJustReleased(lwe::Keyboard::Right))
source->SetVolume(source->GetVolume() + 0.25f);
lwe::LabelGui* volume = (lwe::LabelGui*)stats->GetChild("Volume");
volume->SetText("Volume: " + lwe::Str_8::FromNum(source->GetVolume()));
if (keyboard->IsJustReleased(lwe::Keyboard::P))
{
if (source->IsPlaying())
source->Pause();
else
source->Play();
}
if (keyboard->IsJustReleased(lwe::Keyboard::Backspace))
source->Reset();
}
}

View File

@@ -27,5 +27,5 @@ public:
void PostInitialize(lwe::GpuCmdBuffer* cmdBuffer) override;
void OnUpdate(lwe::Input* input, const float delta) override;
void OnUpdate(lwe::RenderWindow* win, lwe::Input* input, const float delta) override;
};