|
|
|
@@ -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();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|