Merge branch 'Menu-Tobias' into ResolutionChange
This commit is contained in:
@@ -1,165 +0,0 @@
|
|||||||
#ifndef GUI_BUTTON_H__
|
|
||||||
#define GUI_BUTTON_H__
|
|
||||||
|
|
||||||
#include "GUI/TextureFrame.h"
|
|
||||||
#include "GUI/EButtonEnter.h"
|
|
||||||
#include "GUI/EButtonLeave.h"
|
|
||||||
#include "GUI/EButtonPress.h"
|
|
||||||
#include "GUI/EButtonRelease.h"
|
|
||||||
#include "Core/EMouseMove.h"
|
|
||||||
#include "Core/EMousePress.h"
|
|
||||||
#include "Core/EMouseRelease.h"
|
|
||||||
|
|
||||||
namespace dd
|
|
||||||
{
|
|
||||||
namespace GUI
|
|
||||||
{
|
|
||||||
|
|
||||||
class Button : public TextureFrame
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
Button(Frame* parent, std::string name)
|
|
||||||
: TextureFrame(parent, name)
|
|
||||||
{
|
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EMouseMove, &Button::OnMouseMove);
|
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EMousePress, &Button::OnMousePress);
|
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EMouseRelease, &Button::OnMouseRelease);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetTextureHover(std::string resourceName)
|
|
||||||
{
|
|
||||||
m_TextureHover = resourceName;
|
|
||||||
}
|
|
||||||
void SetTextureReleased(std::string resourceName)
|
|
||||||
{
|
|
||||||
m_TextureReleased = resourceName;
|
|
||||||
SetTexture(resourceName);
|
|
||||||
}
|
|
||||||
void SetTexturePressed(std::string resourceName)
|
|
||||||
{
|
|
||||||
m_TexturePressed = resourceName;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Draw(RenderScene& rq) override
|
|
||||||
{
|
|
||||||
if (m_Texture == nullptr && !m_TextureReleased.empty()) {
|
|
||||||
SetTexture(m_TextureReleased);
|
|
||||||
}
|
|
||||||
|
|
||||||
TextureFrame::Draw(rq);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void OnEnter() { }
|
|
||||||
virtual void OnLeave() { }
|
|
||||||
virtual void OnPress() { }
|
|
||||||
virtual void OnRelease() { }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
bool m_MouseIsOver = false;
|
|
||||||
bool m_IsDown = false;
|
|
||||||
|
|
||||||
virtual bool OnMouseMove(const Events::MouseMove& event)
|
|
||||||
{
|
|
||||||
if (Hidden()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isOver = Rectangle::Intersects(AbsoluteRectangle(), Rectangle(event.X, event.Y, 1, 1));
|
|
||||||
if (isOver && !m_MouseIsOver) { // Enter
|
|
||||||
if (!m_IsDown) {
|
|
||||||
if (!m_TextureHover.empty()) {
|
|
||||||
SetTexture(m_TextureHover);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OnEnter();
|
|
||||||
Events::ButtonEnter e;
|
|
||||||
e.FrameName = m_Name;
|
|
||||||
EventBroker->Publish(e);
|
|
||||||
Events::PlaySound soundEvent;
|
|
||||||
soundEvent.FilePath = "Sounds/GUI/hover-n.wav";
|
|
||||||
EventBroker->Publish(soundEvent);
|
|
||||||
|
|
||||||
} else if (!isOver && m_MouseIsOver) { // Leave
|
|
||||||
if (!m_IsDown) {
|
|
||||||
if (!m_TextureReleased.empty()) {
|
|
||||||
SetTexture(m_TextureReleased);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OnLeave();
|
|
||||||
Events::ButtonLeave e;
|
|
||||||
e.FrameName = m_Name;
|
|
||||||
EventBroker->Publish(e);
|
|
||||||
}
|
|
||||||
m_MouseIsOver = isOver;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
virtual bool OnMousePress(const Events::MousePress& event)
|
|
||||||
{
|
|
||||||
if (Hidden()) {
|
|
||||||
//LOG_DEBUG("Pressed hidden button");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!Rectangle::Intersects(AbsoluteRectangle(), Rectangle(event.X, event.Y, 1, 1))) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!m_TexturePressed.empty()) {
|
|
||||||
SetTexture(m_TexturePressed);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_IsDown = true;
|
|
||||||
OnPress();
|
|
||||||
Events::ButtonPress e;
|
|
||||||
e.FrameName = m_Name;
|
|
||||||
e.Button = this;
|
|
||||||
EventBroker->Publish(e);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
virtual bool OnMouseRelease(const Events::MouseRelease& event)
|
|
||||||
{
|
|
||||||
if (Hidden()) {
|
|
||||||
//LOG_DEBUG("Released hidden button");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isOver = Rectangle::Intersects(AbsoluteRectangle(), Rectangle(event.X, event.Y, 1, 1));
|
|
||||||
if (!isOver && !m_IsDown) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_MouseIsOver) {
|
|
||||||
if (!m_TextureHover.empty()) {
|
|
||||||
SetTexture(m_TextureHover);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (!m_TextureReleased.empty()) {
|
|
||||||
SetTexture(m_TextureReleased);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
m_IsDown = false;
|
|
||||||
OnRelease();
|
|
||||||
Events::ButtonRelease e;
|
|
||||||
e.FrameName = m_Name;
|
|
||||||
e.Button = this;
|
|
||||||
EventBroker->Publish(e);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
EventRelay<Frame, Events::MouseMove> m_EMouseMove;
|
|
||||||
EventRelay<Frame, Events::MousePress> m_EMousePress;
|
|
||||||
EventRelay<Frame, Events::MouseRelease> m_EMouseRelease;
|
|
||||||
|
|
||||||
std::string m_TextureHover;
|
|
||||||
std::string m_TexturePressed;
|
|
||||||
std::string m_TextureReleased;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
#ifndef ButtonSystem_h__
|
||||||
|
#define ButtonSystem_h__
|
||||||
|
|
||||||
|
#include "../Rendering/IRenderer.h"
|
||||||
|
#include "../Core/ConfigFile.h"
|
||||||
|
#include "../Rendering/PickingPass.h"
|
||||||
|
#include "../Core/ResourceManager.h"
|
||||||
|
#include "../Core/System.h"
|
||||||
|
#include "../Core/Event.h"
|
||||||
|
#include "../Core/EMousePress.h"
|
||||||
|
#include "../Core/EMouseRelease.h"
|
||||||
|
#include "../Core/ELockMouse.h"
|
||||||
|
|
||||||
|
#include "EButtonPressed.h"
|
||||||
|
#include "EButtonReleased.h"
|
||||||
|
#include "EButtonClicked.h"
|
||||||
|
|
||||||
|
|
||||||
|
class ButtonSystem : public PureSystem
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ButtonSystem(SystemParams params, IRenderer* renderer);
|
||||||
|
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override;
|
||||||
|
private:
|
||||||
|
IRenderer* m_Renderer;
|
||||||
|
bool m_MouseIsLocked = false;
|
||||||
|
|
||||||
|
EntityWrapper m_PickEntity = EntityWrapper::Invalid;
|
||||||
|
PickData m_PickData;
|
||||||
|
|
||||||
|
EventRelay<ButtonSystem, Events::LockMouse> m_EMouseLock;
|
||||||
|
bool OnMouseLock(const Events::LockMouse& e);
|
||||||
|
EventRelay<ButtonSystem, Events::UnlockMouse> m_EMouseUnlock;
|
||||||
|
bool OnMouseUnlock(const Events::UnlockMouse& e);
|
||||||
|
|
||||||
|
EventRelay<ButtonSystem, Events::MousePress> m_EMousePress;
|
||||||
|
bool OnMousePress(const Events::MousePress& e);
|
||||||
|
EventRelay<ButtonSystem, Events::MouseRelease> m_EMouseRelease;
|
||||||
|
bool OnMouseRelease(const Events::MouseRelease& e);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#ifndef Events_ButtonClicked_h__
|
||||||
|
#define Events_ButtonClicked_h__
|
||||||
|
|
||||||
|
#include "Core/Event.h"
|
||||||
|
|
||||||
|
namespace Events
|
||||||
|
{
|
||||||
|
|
||||||
|
struct ButtonClicked : public Event {
|
||||||
|
std::string EntityName = "DEFAULT STRING USED";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
#ifndef Events_ButtonEnter_h__
|
|
||||||
#define Events_ButtonEnter_h__
|
|
||||||
|
|
||||||
#include "../Core/EventBroker.h"
|
|
||||||
|
|
||||||
namespace Events
|
|
||||||
{
|
|
||||||
|
|
||||||
/** Thrown on GUI button hover. */
|
|
||||||
struct ButtonEnter : Event
|
|
||||||
{
|
|
||||||
std::string FrameName;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
#ifndef Events_ButtonLeave_h__
|
|
||||||
#define Events_ButtonLeave_h__
|
|
||||||
|
|
||||||
#include "../Core/EventBroker.h"
|
|
||||||
|
|
||||||
namespace Events
|
|
||||||
{
|
|
||||||
|
|
||||||
/** Thrown on GUI button hover. */
|
|
||||||
struct ButtonLeave : Event
|
|
||||||
{
|
|
||||||
std::string FrameName;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
#ifndef Events_ButtonPress_h__
|
|
||||||
#define Events_ButtonPress_h__
|
|
||||||
|
|
||||||
#include "../Core/EventBroker.h"
|
|
||||||
|
|
||||||
namespace GUI { class Button; }
|
|
||||||
|
|
||||||
namespace Events
|
|
||||||
{
|
|
||||||
|
|
||||||
/** Thrown on GUI button press. */
|
|
||||||
struct ButtonPress : Event
|
|
||||||
{
|
|
||||||
std::string FrameName;
|
|
||||||
GUI::Button* Button;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
#ifndef Events_ButtonPressed_h__
|
||||||
|
#define Events_ButtonPressed_h__
|
||||||
|
|
||||||
|
#include "Core/Event.h"
|
||||||
|
|
||||||
|
namespace Events
|
||||||
|
{
|
||||||
|
|
||||||
|
struct ButtonPressed : public Event {
|
||||||
|
std::string EntityName = "DEFAULT STRING USED";
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
#ifndef Events_ButtonRelease_h__
|
|
||||||
#define Events_ButtonRelease_h__
|
|
||||||
|
|
||||||
#include "../Core/EventBroker.h"
|
|
||||||
|
|
||||||
namespace GUI { class Button; }
|
|
||||||
|
|
||||||
namespace Events
|
|
||||||
{
|
|
||||||
|
|
||||||
/** Thrown on GUI button release. */
|
|
||||||
struct ButtonRelease : Event
|
|
||||||
{
|
|
||||||
std::string FrameName;
|
|
||||||
GUI::Button* Button;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
#ifndef Events_ButtonReleased_h__
|
||||||
|
#define Events_ButtonReleased_h__
|
||||||
|
|
||||||
|
#include "Core/Event.h"
|
||||||
|
|
||||||
|
namespace Events
|
||||||
|
{
|
||||||
|
|
||||||
|
struct ButtonReleased : public Event { };
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -1,261 +0,0 @@
|
|||||||
#ifndef GUI_Frame_h__
|
|
||||||
#define GUI_Frame_h__
|
|
||||||
|
|
||||||
#include "../Common.h"
|
|
||||||
#include "../Core/Util/Rectangle.h"
|
|
||||||
#include "../Core/EventBroker.h"
|
|
||||||
#include "../Core/EKeyDown.h"
|
|
||||||
#include "../Core/EKeyUp.h"
|
|
||||||
#include "../Core/ResourceManager.h"
|
|
||||||
#include "../Rendering/RenderQueue.h"
|
|
||||||
#include "../Rendering/Texture.h"
|
|
||||||
#include "../Input/EInputCommand.h"
|
|
||||||
|
|
||||||
namespace GUI
|
|
||||||
{
|
|
||||||
|
|
||||||
class Frame : public Rectangle
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
enum class Anchor
|
|
||||||
{
|
|
||||||
Left,
|
|
||||||
Right,
|
|
||||||
Top,
|
|
||||||
Bottom
|
|
||||||
};
|
|
||||||
|
|
||||||
static const int BaseWidth = 1280;
|
|
||||||
static const int BaseHeight = 720;
|
|
||||||
|
|
||||||
// Set up a base frame with an event broker
|
|
||||||
Frame(EventBroker* eventBroker)
|
|
||||||
: m_EventBroker(eventBroker)
|
|
||||||
, BaseFrame(this)
|
|
||||||
, m_Name("UIParent")
|
|
||||||
, Rectangle() { }
|
|
||||||
|
|
||||||
// Create a frame as a child
|
|
||||||
Frame(Frame* parent, std::string name)
|
|
||||||
: m_Name(name)
|
|
||||||
{
|
|
||||||
SetParent(parent);
|
|
||||||
Width = parent->Width;
|
|
||||||
Height = parent->Height;
|
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EKeyDown, &Frame::OnKeyDown);
|
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EKeyUp, &Frame::OnKeyUp);
|
|
||||||
EVENT_SUBSCRIBE_MEMBER(m_EInputCommand, &Frame::OnCommand);
|
|
||||||
}
|
|
||||||
|
|
||||||
~Frame()
|
|
||||||
{
|
|
||||||
/*for (auto layer : m_Children)
|
|
||||||
{
|
|
||||||
for (auto child : layer.second)
|
|
||||||
{
|
|
||||||
delete child.second;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_Parent)
|
|
||||||
{
|
|
||||||
m_Parent->RemoveChild(this);
|
|
||||||
}*/
|
|
||||||
}
|
|
||||||
|
|
||||||
Frame* Parent() const { return m_Parent; }
|
|
||||||
|
|
||||||
void SetParent(Frame* parent)
|
|
||||||
{
|
|
||||||
if (parent == nullptr) {
|
|
||||||
LOG_ERROR("Failed to parent frame \"%s\": Invalid parent", m_Name.c_str());
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Layer = parent->Layer() + 1;
|
|
||||||
parent->AddChild(this);
|
|
||||||
m_Parent = parent;
|
|
||||||
m_EventBroker = parent->m_EventBroker;
|
|
||||||
BaseFrame = parent->BaseFrame;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddChild(Frame* child)
|
|
||||||
{
|
|
||||||
m_Children[child->m_Layer].insert(std::make_pair(child->Name(), child));
|
|
||||||
if (m_Parent) {
|
|
||||||
m_Parent->AddChild(child);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void RemoveChild(Frame* child)
|
|
||||||
{
|
|
||||||
auto it = m_Children.find(child->m_Layer);
|
|
||||||
if (it != m_Children.end()) {
|
|
||||||
m_Children.erase(it);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (m_Parent) {
|
|
||||||
m_Parent->RemoveChild(child);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string Name() const { return m_Name; }
|
|
||||||
void SetName(std::string val) { m_Name = val; }
|
|
||||||
|
|
||||||
int Layer() const { return m_Layer; }
|
|
||||||
|
|
||||||
bool Hidden() const
|
|
||||||
{
|
|
||||||
if (m_Parent)
|
|
||||||
return m_Parent->Hidden() || m_Hidden;
|
|
||||||
else
|
|
||||||
return m_Hidden;
|
|
||||||
}
|
|
||||||
bool Visible() const
|
|
||||||
{
|
|
||||||
return !Hidden();
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Hide() { m_Hidden = true; }
|
|
||||||
virtual void Show() { m_Hidden = false; }
|
|
||||||
|
|
||||||
int Left() const override
|
|
||||||
{
|
|
||||||
if (m_Parent)
|
|
||||||
return m_Parent->Left() + X;
|
|
||||||
else
|
|
||||||
return X;
|
|
||||||
}
|
|
||||||
void SetLeft(int absLeft) override
|
|
||||||
{
|
|
||||||
if (m_Parent) {
|
|
||||||
X = absLeft - m_Parent->Left();
|
|
||||||
} else {
|
|
||||||
X = absLeft;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int Right() const override
|
|
||||||
{
|
|
||||||
return Left() + Width;
|
|
||||||
}
|
|
||||||
void SetRight(int absRight) override
|
|
||||||
{
|
|
||||||
if (m_Parent) {
|
|
||||||
X = absRight - Width - m_Parent->Left();
|
|
||||||
} else {
|
|
||||||
X = absRight - Width;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int Top() const override
|
|
||||||
{
|
|
||||||
if (m_Parent)
|
|
||||||
return m_Parent->Top() + Y;
|
|
||||||
else
|
|
||||||
return Y;
|
|
||||||
}
|
|
||||||
void SetTop(int absTop) override
|
|
||||||
{
|
|
||||||
if (m_Parent) {
|
|
||||||
Y = absTop - m_Parent->Top();
|
|
||||||
} else {
|
|
||||||
Y = absTop;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
int Bottom() const override
|
|
||||||
{
|
|
||||||
return Top() + Height;
|
|
||||||
}
|
|
||||||
void SetBottom(int absBottom) override
|
|
||||||
{
|
|
||||||
if (m_Parent) {
|
|
||||||
Y = absBottom - Height - m_Parent->Top();
|
|
||||||
} else {
|
|
||||||
Y = absBottom - Height;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
glm::vec2 Scale()
|
|
||||||
{
|
|
||||||
if (m_Parent)
|
|
||||||
return m_Parent->Scale();
|
|
||||||
else
|
|
||||||
return glm::vec2(Width, Height) / glm::vec2(BaseWidth, BaseHeight);
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle AbsoluteRectangle()
|
|
||||||
{
|
|
||||||
int left = Left();
|
|
||||||
if (m_Parent)
|
|
||||||
left = std::max(left, m_Parent->Left());
|
|
||||||
int top = Top();
|
|
||||||
if (m_Parent)
|
|
||||||
top = std::max(top, m_Parent->Top());
|
|
||||||
int width = Right() - left;
|
|
||||||
int height = Bottom() - top;
|
|
||||||
return Rectangle(left, top, width, height);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UpdateLayered(double dt)
|
|
||||||
{
|
|
||||||
// Update ourselves
|
|
||||||
this->Update(dt);
|
|
||||||
|
|
||||||
// Update children
|
|
||||||
for (auto& pairLayer : m_Children) {
|
|
||||||
auto children = pairLayer.second;
|
|
||||||
for (auto& pairChild : children) {
|
|
||||||
auto child = pairChild.second;
|
|
||||||
child->Update(dt);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Update(double dt) { }
|
|
||||||
|
|
||||||
void DrawLayered(RenderScene& rq)
|
|
||||||
{
|
|
||||||
if (this->Hidden())
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Draw ourselves
|
|
||||||
this->Draw(rq);
|
|
||||||
|
|
||||||
// Draw children
|
|
||||||
for (auto& pairLayer : m_Children) {
|
|
||||||
auto children = pairLayer.second;
|
|
||||||
for (auto& pairChild : children) {
|
|
||||||
auto child = pairChild.second;
|
|
||||||
if (child->Hidden())
|
|
||||||
continue;
|
|
||||||
child->Draw(rq);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void Draw(RenderScene& rq) { }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
::EventBroker* m_EventBroker;
|
|
||||||
Frame* BaseFrame = nullptr;
|
|
||||||
|
|
||||||
std::string m_Name = "Unnamed";
|
|
||||||
int m_Layer = 0;
|
|
||||||
bool m_Hidden = false;
|
|
||||||
|
|
||||||
Frame* m_Parent = nullptr;
|
|
||||||
typedef std::multimap<std::string, Frame*> Children_t; // name -> frame
|
|
||||||
std::map<int, Children_t> m_Children; // layer -> Children_t
|
|
||||||
|
|
||||||
virtual bool OnKeyDown(const Events::KeyDown& event) { return false; }
|
|
||||||
virtual bool OnKeyUp(const Events::KeyUp& event) { return false; }
|
|
||||||
virtual bool OnCommand(const Events::InputCommand& event) { return false; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
EventRelay<Frame, Events::KeyDown> m_EKeyDown;
|
|
||||||
EventRelay<Frame, Events::KeyUp> m_EKeyUp;
|
|
||||||
EventRelay<Frame, Events::InputCommand> m_EInputCommand;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
#ifndef MainMenuSystem_h__
|
||||||
|
#define MainMenuSystem_h__
|
||||||
|
|
||||||
|
#include "../Core/System.h"
|
||||||
|
#include "../Rendering/IRenderer.h"
|
||||||
|
#include "../Core/ResourceManager.h"
|
||||||
|
#include "../Core/Event.h"
|
||||||
|
|
||||||
|
#include "EButtonClicked.h"
|
||||||
|
#include "EButtonPressed.h"
|
||||||
|
#include "EButtonReleased.h"
|
||||||
|
|
||||||
|
|
||||||
|
class MainMenuSystem : public ImpureSystem
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MainMenuSystem(SystemParams params, IRenderer* renderer);
|
||||||
|
virtual void Update(double dt) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
IRenderer* m_Renderer;
|
||||||
|
|
||||||
|
EventRelay<MainMenuSystem, Events::ButtonClicked> m_EClicked;
|
||||||
|
bool OnButtonClick(const Events::ButtonClicked& e);
|
||||||
|
EventRelay<MainMenuSystem, Events::ButtonReleased> m_EReleased;
|
||||||
|
bool OnButtonRelease(const Events::ButtonReleased& e);
|
||||||
|
EventRelay<MainMenuSystem, Events::ButtonPressed> m_EPressed;
|
||||||
|
bool OnButtonPress(const Events::ButtonPressed& e);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
#ifndef GUI_TextureFrame_h__
|
|
||||||
#define GUI_TextureFrame_h__
|
|
||||||
|
|
||||||
#include "Frame.h"
|
|
||||||
#include "../Rendering/Texture.h"
|
|
||||||
#include "../Rendering/Util/CommonFunctions.h"
|
|
||||||
|
|
||||||
namespace GUI
|
|
||||||
{
|
|
||||||
|
|
||||||
class TextureFrame : public Frame
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
TextureFrame(Frame* parent, std::string name)
|
|
||||||
: Frame(parent, name) { }
|
|
||||||
|
|
||||||
void EnableScissor() { m_ScissorEnabled = true; }
|
|
||||||
void DisableScissor() { m_ScissorEnabled = false; }
|
|
||||||
|
|
||||||
void Draw(RenderScene& rq) override
|
|
||||||
{
|
|
||||||
if (m_Texture == nullptr)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Texture while fading
|
|
||||||
if (m_FadeTexture && m_CurrentFade < 1) {
|
|
||||||
FrameJob job;
|
|
||||||
job.Scissor = (m_ScissorEnabled) ? m_Parent->AbsoluteRectangle() : Rectangle();
|
|
||||||
job.Viewport = Rectangle(Left(), Top(), Width, Height);
|
|
||||||
job.TextureID = m_FadeTexture->ResourceID;
|
|
||||||
job.DiffuseTexture = m_FadeTexture;
|
|
||||||
job.Color = glm::vec4(m_Color.r, m_Color.g, m_Color.b, m_Color.a);
|
|
||||||
job.Name = Name();
|
|
||||||
rq.GUI.Add(job);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Main texture
|
|
||||||
{
|
|
||||||
FrameJob job;
|
|
||||||
job.Scissor = (m_ScissorEnabled) ? m_Parent->AbsoluteRectangle() : Rectangle();
|
|
||||||
job.Viewport = Rectangle(Left(), Top(), Width, Height);
|
|
||||||
job.TextureID = m_Texture->ResourceID;
|
|
||||||
job.DiffuseTexture = m_Texture;
|
|
||||||
job.Color = glm::vec4(m_Color.r, m_Color.g, m_Color.b, m_Color.a * m_CurrentFade);
|
|
||||||
job.Name = Name();
|
|
||||||
rq.GUI.Add(job);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string Texture() const { return m_TextureName; }
|
|
||||||
|
|
||||||
void SetTexture(std::string resourceName)
|
|
||||||
{
|
|
||||||
if (resourceName.empty()) {
|
|
||||||
m_Texture = nullptr;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_Texture = CommonFunctions::LoadTexture(resourceName, false);
|
|
||||||
m_TextureName = resourceName;
|
|
||||||
if (m_Texture == nullptr) {
|
|
||||||
m_Texture = CommonFunctions::LoadTexture("Textures/Core/ErrorTexture.png", false);
|
|
||||||
}
|
|
||||||
|
|
||||||
SizeToTexture();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SizeToTexture()
|
|
||||||
{
|
|
||||||
if (m_Texture != nullptr) {
|
|
||||||
this->Width = m_Texture->Width;
|
|
||||||
this->Height = m_Texture->Height;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void FadeToTexture(std::string resourceName, double duration)
|
|
||||||
{
|
|
||||||
m_FadeTexture = m_Texture;
|
|
||||||
SetTexture(resourceName);
|
|
||||||
m_FadeDuration = duration;
|
|
||||||
m_CurrentFade = 0.f;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update(double dt) override
|
|
||||||
{
|
|
||||||
if (m_CurrentFade < 1) {
|
|
||||||
m_CurrentFade += dt / m_FadeDuration;
|
|
||||||
if (m_CurrentFade > 1) {
|
|
||||||
m_FadeTexture = nullptr;
|
|
||||||
m_CurrentFade = 1;
|
|
||||||
m_FadeDuration = 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
glm::vec4 Color() const { return m_Color; }
|
|
||||||
void SetColor(glm::vec4 val) { m_Color = val; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
bool m_ScissorEnabled = true;
|
|
||||||
Texture* m_Texture = nullptr;
|
|
||||||
std::string m_TextureName;
|
|
||||||
Texture* m_FadeTexture = nullptr;
|
|
||||||
glm::vec4 m_Color = glm::vec4(1.f, 1.f, 1.f, 1.f);
|
|
||||||
float m_FadeDuration = 0.f;
|
|
||||||
float m_CurrentFade = 1.f;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -108,6 +108,7 @@ struct ModelJob : RenderJob
|
|||||||
EndIndex = matGroup->EndIndex;
|
EndIndex = matGroup->EndIndex;
|
||||||
Matrix = matrix;
|
Matrix = matrix;
|
||||||
Color = modelComponent["Color"];
|
Color = modelComponent["Color"];
|
||||||
|
GlowIntencity = ((double)modelComponent["GlowIntensity"]);
|
||||||
Entity = modelComponent.EntityID;
|
Entity = modelComponent.EntityID;
|
||||||
glm::vec3 abspos = Transform::AbsolutePosition(world, modelComponent.EntityID);
|
glm::vec3 abspos = Transform::AbsolutePosition(world, modelComponent.EntityID);
|
||||||
glm::vec3 worldpos = glm::vec3(camera->ViewMatrix() * glm::vec4(abspos, 1));
|
glm::vec3 worldpos = glm::vec3(camera->ViewMatrix() * glm::vec4(abspos, 1));
|
||||||
@@ -170,7 +171,7 @@ struct ModelJob : RenderJob
|
|||||||
::Skeleton::AnimationOffset AnimationOffset;
|
::Skeleton::AnimationOffset AnimationOffset;
|
||||||
|
|
||||||
|
|
||||||
|
float GlowIntencity = 8.0;
|
||||||
glm::vec4 DiffuseColor;
|
glm::vec4 DiffuseColor;
|
||||||
glm::vec4 SpecularColor;
|
glm::vec4 SpecularColor;
|
||||||
glm::vec4 IncandescenceColor;
|
glm::vec4 IncandescenceColor;
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ private:
|
|||||||
const IRenderer* m_Renderer;
|
const IRenderer* m_Renderer;
|
||||||
|
|
||||||
ShaderProgram* m_PickingProgram;
|
ShaderProgram* m_PickingProgram;
|
||||||
ShaderProgram* m_PickingSkinnedProgram;
|
ShaderProgram* m_PickingSkinnedProgram;
|
||||||
Camera* m_Camera;
|
Camera* m_Camera;
|
||||||
|
|
||||||
struct PickingInfo
|
struct PickingInfo
|
||||||
|
|||||||
@@ -40,7 +40,8 @@ struct SpriteJob : RenderJob
|
|||||||
Depth = viewpos.z;
|
Depth = viewpos.z;
|
||||||
}
|
}
|
||||||
World = world;
|
World = world;
|
||||||
|
Pickable = world->HasComponent(cSprite.EntityID, "Button");
|
||||||
|
|
||||||
FillColor = fillColor;
|
FillColor = fillColor;
|
||||||
FillPercentage = fillPercentage;
|
FillPercentage = fillPercentage;
|
||||||
};
|
};
|
||||||
@@ -60,6 +61,7 @@ struct SpriteJob : RenderJob
|
|||||||
unsigned int StartIndex = 0;
|
unsigned int StartIndex = 0;
|
||||||
unsigned int EndIndex = 0;
|
unsigned int EndIndex = 0;
|
||||||
World* World;
|
World* World;
|
||||||
|
bool Pickable;
|
||||||
|
|
||||||
glm::vec4 FillColor = glm::vec4(0);
|
glm::vec4 FillColor = glm::vec4(0);
|
||||||
float FillPercentage = 0.0;
|
float FillPercentage = 0.0;
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
#include "Core/EventBroker.h"
|
#include "Core/EventBroker.h"
|
||||||
#include "Rendering/Renderer.h"
|
#include "Rendering/Renderer.h"
|
||||||
#include "Core/InputManager.h"
|
#include "Core/InputManager.h"
|
||||||
#include "GUI/Frame.h"
|
|
||||||
#include "Core/World.h"
|
#include "Core/World.h"
|
||||||
#include "Input/InputProxy.h"
|
#include "Input/InputProxy.h"
|
||||||
#include "Input/KeyboardInputHandler.h"
|
#include "Input/KeyboardInputHandler.h"
|
||||||
@@ -53,7 +52,6 @@ private:
|
|||||||
IRenderer* m_Renderer;
|
IRenderer* m_Renderer;
|
||||||
InputManager* m_InputManager;
|
InputManager* m_InputManager;
|
||||||
InputProxy* m_InputProxy;
|
InputProxy* m_InputProxy;
|
||||||
GUI::Frame* m_FrameStack;
|
|
||||||
World* m_World;
|
World* m_World;
|
||||||
Octree<EntityAABB>* m_OctreeCollision;
|
Octree<EntityAABB>* m_OctreeCollision;
|
||||||
Octree<EntityAABB>* m_OctreeTrigger;
|
Octree<EntityAABB>* m_OctreeTrigger;
|
||||||
|
|||||||
@@ -27,17 +27,16 @@ public:
|
|||||||
private:
|
private:
|
||||||
bool m_NetworkEnabled;
|
bool m_NetworkEnabled;
|
||||||
|
|
||||||
//methods which will take care of specific events
|
// methods which will take care of specific events
|
||||||
EventRelay<HealthSystem, Events::PlayerDamage> m_EPlayerDamage;
|
EventRelay<HealthSystem, Events::PlayerDamage> m_EPlayerDamage;
|
||||||
bool HealthSystem::OnPlayerDamaged(Events::PlayerDamage& e);
|
bool HealthSystem::OnPlayerDamaged(Events::PlayerDamage& e);
|
||||||
EventRelay<HealthSystem, Events::PlayerHealthPickup> m_EPlayerHealthPickup;
|
EventRelay<HealthSystem, Events::PlayerHealthPickup> m_EPlayerHealthPickup;
|
||||||
bool HealthSystem::OnPlayerHealthPickup(Events::PlayerHealthPickup& e);
|
bool HealthSystem::OnPlayerHealthPickup(Events::PlayerHealthPickup& e);
|
||||||
EventRelay<HealthSystem, Events::InputCommand> m_InputCommand;
|
EventRelay<HealthSystem, Events::InputCommand> m_InputCommand;
|
||||||
bool HealthSystem::OnInputCommand(Events::InputCommand& e);
|
bool HealthSystem::OnInputCommand(Events::InputCommand& e);
|
||||||
|
|
||||||
//vector which will keep track of health changes
|
//vector which will keep track of health changes
|
||||||
std::vector<std::tuple<EntityID, double>> m_DeltaHealthVector;
|
std::vector<std::tuple<EntityID, double>> m_DeltaHealthVector;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -41,5 +41,8 @@
|
|||||||
<xs:include schemaLocation="Components/Shielded.xsd"/>
|
<xs:include schemaLocation="Components/Shielded.xsd"/>
|
||||||
<xs:include schemaLocation="Components/CapturePointHUD.xsd"/>
|
<xs:include schemaLocation="Components/CapturePointHUD.xsd"/>
|
||||||
<xs:include schemaLocation="Components/AmmunitionHUD.xsd"/>
|
<xs:include schemaLocation="Components/AmmunitionHUD.xsd"/>
|
||||||
|
<xs:include schemaLocation="Components/Menu.xsd"/>
|
||||||
<xs:include schemaLocation="Components/KillFeed.xsd"/>
|
<xs:include schemaLocation="Components/KillFeed.xsd"/>
|
||||||
|
<xs:include schemaLocation="Components/Page.xsd"/>
|
||||||
|
<xs:include schemaLocation="Components/Button.xsd"/>
|
||||||
</xs:schema>
|
</xs:schema>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Button xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Button.xsd">
|
||||||
|
</Button>
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
|
||||||
|
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
|
||||||
|
|
||||||
|
<xs:element name="Button">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Makes sprites klickable.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Menu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Menu.xsd">
|
||||||
|
</Menu>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
|
||||||
|
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
|
||||||
|
<xs:element name="Menu">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Attach this to the center point of a menu that uses several pages.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -8,4 +8,5 @@
|
|||||||
<NormalMap>true</NormalMap>
|
<NormalMap>true</NormalMap>
|
||||||
<SpecularMap>true</SpecularMap>
|
<SpecularMap>true</SpecularMap>
|
||||||
<GlowMap>true</GlowMap>
|
<GlowMap>true</GlowMap>
|
||||||
|
<GlowIntensity>3.0</GlowIntensity>
|
||||||
</Model>
|
</Model>
|
||||||
@@ -33,6 +33,9 @@
|
|||||||
<xs:element name="GlowMap" type="t:bool" minOccurs="0">
|
<xs:element name="GlowMap" type="t:bool" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>Whether the model should use the Glowmap or not</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>Whether the model should use the Glowmap or not</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
<xs:element name="GlowIntensity" type="t:double" minOccurs="0">
|
||||||
|
<xs:annotation><xs:documentation>Intensity of the glow map</xs:documentation></xs:annotation>
|
||||||
|
</xs:element>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Page.xsd">
|
||||||
|
<ID>0</ID>
|
||||||
|
</Page>
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
|
||||||
|
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
|
||||||
|
<xs:element name="Page">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>Use this on a child to a Menu entity and make sure that ID is not the same as other pages.</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:all>
|
||||||
|
<xs:element name="ID" type="t:int" minOccurs="0"/>
|
||||||
|
</xs:all>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:schema>
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Entity name="Button" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.375197947" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Play</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="7364.79053" Z="0"/>
|
<Orientation X="0" Y="8047.93604" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -105,7 +105,7 @@
|
|||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="2.1529963" Y="6.59221172" Z="0.169116676"/>
|
<Position X="2.1529963" Y="6.59221172" Z="0.169116676"/>
|
||||||
<Orientation X="4.16300011" Y="17199.7988" Z="0"/>
|
<Orientation X="4.16300011" Y="17884.6152" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="2019.28589" Z="0"/>
|
<Orientation X="0" Y="2360.87744" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -225,7 +225,7 @@
|
|||||||
<Axis X="1" Y="1" Z="1"/>
|
<Axis X="1" Y="1" Z="1"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="15792.2051" Y="15792.2051" Z="15792.2051"/>
|
<Orientation X="16475.0957" Y="16475.0957" Z="16475.0957"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -289,7 +289,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="15589.2383" Z="0"/>
|
<Orientation X="0" Y="16272.0654" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -321,7 +321,7 @@
|
|||||||
<Axis X="0.699999988" Y="1" Z="0.300000012"/>
|
<Axis X="0.699999988" Y="1" Z="0.300000012"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="11456.2695" Y="16313.6973" Z="4881.66504"/>
|
<Orientation X="11936.1904" Y="16998.502" Z="5086.18848"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -671,7 +671,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="316.505432" Z="0"/>
|
<Orientation X="0" Y="658.550842" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -718,7 +718,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="316.505432" Z="0"/>
|
<Orientation X="0" Y="658.550842" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -778,7 +778,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="316.505432" Z="0"/>
|
<Orientation X="0" Y="658.550842" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -825,7 +825,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="316.505432" Z="0"/>
|
<Orientation X="0" Y="658.550842" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -871,7 +871,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="316.505432" Z="0"/>
|
<Orientation X="0" Y="658.550842" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -918,7 +918,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="316.505432" Z="0"/>
|
<Orientation X="0" Y="658.550842" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -965,7 +965,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="316.505432" Z="0"/>
|
<Orientation X="0" Y="658.550842" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1027,7 +1027,7 @@
|
|||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
<Color A="0.300000012" B="0" G="0.200000003" R="1"/>
|
<Color A="0.300000012" B="0" G="0" R="1"/>
|
||||||
<Transparent>true</Transparent>
|
<Transparent>true</Transparent>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Team>
|
<c:Team>
|
||||||
@@ -1077,7 +1077,7 @@
|
|||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
<Color A="0.300000012" B="0" G="1" R="1"/>
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
<Transparent>true</Transparent>
|
<Transparent>true</Transparent>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Team/>
|
<c:Team/>
|
||||||
@@ -1167,7 +1167,7 @@
|
|||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
<Color A="0.300000012" B="1" G="1" R="0"/>
|
<Color A="0.300000012" B="1" G="1" R="1"/>
|
||||||
<Transparent>true</Transparent>
|
<Transparent>true</Transparent>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Team/>
|
<c:Team/>
|
||||||
@@ -1217,7 +1217,7 @@
|
|||||||
</c:CapturePoint>
|
</c:CapturePoint>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
<Color A="0.300000012" B="1" G="0.200000003" R="0"/>
|
<Color A="0.300000012" B="1" G="0" R="0"/>
|
||||||
<Transparent>true</Transparent>
|
<Transparent>true</Transparent>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Team>
|
<c:Team>
|
||||||
@@ -1379,7 +1379,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="850.207886" Z="0"/>
|
<Orientation X="0" Y="1192.24976" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1388,7 +1388,7 @@
|
|||||||
<c:ExplosionEffect>
|
<c:ExplosionEffect>
|
||||||
<ColorByDistance>true</ColorByDistance>
|
<ColorByDistance>true</ColorByDistance>
|
||||||
<Velocity X="0.800000012" Y="0.0379999988" Z="0"/>
|
<Velocity X="0.800000012" Y="0.0379999988" Z="0"/>
|
||||||
<TimeSinceDeath>0.75205058136495551</TimeSinceDeath>
|
<TimeSinceDeath>2.5333333077342104</TimeSinceDeath>
|
||||||
<ExplosionDuration>3.7999999523162842</ExplosionDuration>
|
<ExplosionDuration>3.7999999523162842</ExplosionDuration>
|
||||||
<EndColor A="0" B="23.5294113" G="11.7647057" R="0"/>
|
<EndColor A="0" B="23.5294113" G="11.7647057" R="0"/>
|
||||||
<Randomness>true</Randomness>
|
<Randomness>true</Randomness>
|
||||||
@@ -1435,7 +1435,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="850.207886" Z="0"/>
|
<Orientation X="0" Y="1192.24976" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1444,7 +1444,7 @@
|
|||||||
<c:ExplosionEffect>
|
<c:ExplosionEffect>
|
||||||
<Velocity X="0.5" Y="1" Z="0"/>
|
<Velocity X="0.5" Y="1" Z="0"/>
|
||||||
<ExplosionOrigin X="0" Y="0.900000036" Z="0"/>
|
<ExplosionOrigin X="0" Y="0.900000036" Z="0"/>
|
||||||
<TimeSinceDeath>1.2019563319790627</TimeSinceDeath>
|
<TimeSinceDeath>0.70455028055985736</TimeSinceDeath>
|
||||||
</c:ExplosionEffect>
|
</c:ExplosionEffect>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
|
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
|
||||||
@@ -1487,7 +1487,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="850.207886" Z="0"/>
|
<Orientation X="0" Y="1192.24976" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1498,7 +1498,7 @@
|
|||||||
<ColorByDistance>true</ColorByDistance>
|
<ColorByDistance>true</ColorByDistance>
|
||||||
<Velocity X="0.300000012" Y="2" Z="0"/>
|
<Velocity X="0.300000012" Y="2" Z="0"/>
|
||||||
<ExplosionOrigin X="0" Y="1.30000007" Z="-0.200000003"/>
|
<ExplosionOrigin X="0" Y="1.30000007" Z="-0.200000003"/>
|
||||||
<TimeSinceDeath>0.68540211563899389</TimeSinceDeath>
|
<TimeSinceDeath>0.70455028055985736</TimeSinceDeath>
|
||||||
<EndColor A="0" B="0.333333343" G="0.933333337" R="3.92156863"/>
|
<EndColor A="0" B="0.333333343" G="0.933333337" R="3.92156863"/>
|
||||||
<Randomness>true</Randomness>
|
<Randomness>true</Randomness>
|
||||||
</c:ExplosionEffect>
|
</c:ExplosionEffect>
|
||||||
@@ -1543,7 +1543,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="857.984314" Z="0"/>
|
<Orientation X="0" Y="1200.02991" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1553,7 +1553,7 @@
|
|||||||
<ColorByDistance>true</ColorByDistance>
|
<ColorByDistance>true</ColorByDistance>
|
||||||
<Velocity X="0" Y="0.699999988" Z="0"/>
|
<Velocity X="0" Y="0.699999988" Z="0"/>
|
||||||
<ExplosionOrigin X="0" Y="-1.10000002" Z="0"/>
|
<ExplosionOrigin X="0" Y="-1.10000002" Z="0"/>
|
||||||
<TimeSinceDeath>0.95150063648635763</TimeSinceDeath>
|
<TimeSinceDeath>9.1832418997049956</TimeSinceDeath>
|
||||||
<ExplosionDuration>10</ExplosionDuration>
|
<ExplosionDuration>10</ExplosionDuration>
|
||||||
<EndColor A="1" B="0" G="0" R="1"/>
|
<EndColor A="1" B="0" G="0" R="1"/>
|
||||||
<RandomnessScalar>3</RandomnessScalar>
|
<RandomnessScalar>3</RandomnessScalar>
|
||||||
@@ -1601,7 +1601,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="456.136078" Z="0"/>
|
<Orientation X="0" Y="798.171265" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -1611,7 +1611,7 @@
|
|||||||
<ColorByDistance>true</ColorByDistance>
|
<ColorByDistance>true</ColorByDistance>
|
||||||
<Velocity X="6" Y="0.100000001" Z="0"/>
|
<Velocity X="6" Y="0.100000001" Z="0"/>
|
||||||
<ExplosionOrigin X="0" Y="-10" Z="0"/>
|
<ExplosionOrigin X="0" Y="-10" Z="0"/>
|
||||||
<TimeSinceDeath>1.3515288978624223</TimeSinceDeath>
|
<TimeSinceDeath>1.007708532606415</TimeSinceDeath>
|
||||||
<ExponentialAccelaration>true</ExponentialAccelaration>
|
<ExponentialAccelaration>true</ExponentialAccelaration>
|
||||||
<ExplosionDuration>5</ExplosionDuration>
|
<ExplosionDuration>5</ExplosionDuration>
|
||||||
<Randomness>true</Randomness>
|
<Randomness>true</Randomness>
|
||||||
@@ -1678,10 +1678,10 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="ShieldedCube">
|
<Entity name="ShieldedCube">
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:Shielded/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Shielded/>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-3.34650159" Y="1.19966424" Z="3.09996605"/>
|
<Position X="-3.34650159" Y="1.19966424" Z="3.09996605"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
@@ -1792,7 +1792,7 @@
|
|||||||
<c:ExplosionEffect>
|
<c:ExplosionEffect>
|
||||||
<ColorByDistance>true</ColorByDistance>
|
<ColorByDistance>true</ColorByDistance>
|
||||||
<Velocity X="0.800000012" Y="0.0379999988" Z="0"/>
|
<Velocity X="0.800000012" Y="0.0379999988" Z="0"/>
|
||||||
<TimeSinceDeath>1.3682019578975679</TimeSinceDeath>
|
<TimeSinceDeath>2.5333333077342104</TimeSinceDeath>
|
||||||
<ExplosionDuration>3.7999999523162842</ExplosionDuration>
|
<ExplosionDuration>3.7999999523162842</ExplosionDuration>
|
||||||
<EndColor A="0" B="23.5294113" G="11.7647057" R="0"/>
|
<EndColor A="0" B="23.5294113" G="11.7647057" R="0"/>
|
||||||
<Randomness>true</Randomness>
|
<Randomness>true</Randomness>
|
||||||
@@ -1836,12 +1836,12 @@
|
|||||||
<Entity name="PlayerModel">
|
<Entity name="PlayerModel">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Animation/>
|
<c:Animation/>
|
||||||
|
<c:Shielded/>
|
||||||
<c:HiddenForLocalPlayer/>
|
<c:HiddenForLocalPlayer/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/AssaultAnimated.mesh</Resource>
|
<Resource>Models/AssaultAnimated.mesh</Resource>
|
||||||
<Color A="1" B="0" G="0" R="1"/>
|
<Color A="1" B="0" G="0" R="1"/>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Shielded/>
|
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -2095,7 +2095,7 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
|
||||||
<Color A="0.699999988" B="0" G="0.200000003" R="1"/>
|
<Color A="0.699999988" B="0" G="0" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-1.58304751" Y="0.919596612" Z="0"/>
|
<Position X="-1.58304751" Y="0.919596612" Z="0"/>
|
||||||
@@ -2107,7 +2107,7 @@
|
|||||||
<c:CapturePointHUD/>
|
<c:CapturePointHUD/>
|
||||||
<c:Fill>
|
<c:Fill>
|
||||||
<Percentage>1</Percentage>
|
<Percentage>1</Percentage>
|
||||||
<Color A="0.699999988" B="0" G="0.200000003" R="1"/>
|
<Color A="0.699999988" B="0" G="0" R="1"/>
|
||||||
</c:Fill>
|
</c:Fill>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/UnitHexagon_Rotated.png</DiffuseTexture>
|
||||||
@@ -2145,6 +2145,315 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity name="MenuOirign">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-23.0533829" Y="0.938369572" Z="14.068408"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Camera">
|
||||||
|
<Components>
|
||||||
|
<c:Camera/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Widgets/Camera.mesh</Resource>
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="MenuCenterPoint">
|
||||||
|
<Components>
|
||||||
|
<c:Menu/>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Page0">
|
||||||
|
<Components>
|
||||||
|
<c:Page/>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="MenuBackground">
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/ErrorTexture.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Play">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.388422519" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Play</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Host">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.214031488" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Host</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Connecting">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.0367300175" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Connect</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Settings">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="-0.148274168" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Settings</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Quit">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="-0.335298717" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Quit</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Page1">
|
||||||
|
<Components>
|
||||||
|
<c:Page>
|
||||||
|
<ID>1</ID>
|
||||||
|
</c:Page>
|
||||||
|
<c:Transform>
|
||||||
|
<Orientation X="0" Y="0.989000022" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="MenuBackground">
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/ErrorTexture.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="1">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.375197947" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Resolution</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="2">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.199327558" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Option2</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="3">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.0159880854" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Butts</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Menu test area</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="4.22317314" Z="0"/>
|
||||||
|
<Orientation X="0" Y="1.68700004" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -0,0 +1,299 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Entity name="MenuOirign" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-23.0533829" Y="0.938369572" Z="14.068408"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children>
|
||||||
|
<Entity name="Camera">
|
||||||
|
<Components>
|
||||||
|
<c:Camera/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Widgets/Camera.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="MenuCenterPoint">
|
||||||
|
<Components>
|
||||||
|
<c:Menu/>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Page0">
|
||||||
|
<Components>
|
||||||
|
<c:Page/>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="MenuBackground">
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/ErrorTexture.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Button">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.388422519" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Play</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Button">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.214031488" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Host</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Button">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.0367300175" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Connect</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Button">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="-0.148274168" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Settings</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Button">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="-0.335298717" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Quit</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Page1">
|
||||||
|
<Components>
|
||||||
|
<c:Page>
|
||||||
|
<ID>1</ID>
|
||||||
|
</c:Page>
|
||||||
|
<c:Transform>
|
||||||
|
<Orientation X="0" Y="0.989000022" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="MenuBackground">
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/ErrorTexture.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Button">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.375197947" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Resolution</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Button">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.199327558" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Option2</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Button">
|
||||||
|
<Components>
|
||||||
|
<c:Button/>
|
||||||
|
<c:Sprite>
|
||||||
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0.0159880854" Z="0.0627754927"/>
|
||||||
|
<Scale X="0.600000024" Y="0.150000006" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Text">
|
||||||
|
<Components>
|
||||||
|
<c:Text>
|
||||||
|
<Content>Butts</Content>
|
||||||
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="1" G="0.847058833" R="0"/>
|
||||||
|
</c:Text>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.00710564246" Y="-0.203304529" Z="0.00999999978"/>
|
||||||
|
<Scale X="0.300000012" Y="0.699999988" Z="4.30000019"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
@@ -47,6 +47,9 @@
|
|||||||
<xs:element ref="c:KillFeed" minOccurs="0"/>
|
<xs:element ref="c:KillFeed" minOccurs="0"/>
|
||||||
<xs:element ref="c:Sprite" minOccurs="0"/>
|
<xs:element ref="c:Sprite" minOccurs="0"/>
|
||||||
<xs:element ref="c:AnimationOffset" minOccurs="0"/>
|
<xs:element ref="c:AnimationOffset" minOccurs="0"/>
|
||||||
|
<xs:element ref="c:Menu" minOccurs="0"/>
|
||||||
|
<xs:element ref="c:Page" minOccurs="0"/>
|
||||||
|
<xs:element ref="c:Button" minOccurs="0"/>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ uniform vec2 ScreenDimensions;
|
|||||||
uniform vec4 FillColor;
|
uniform vec4 FillColor;
|
||||||
uniform vec4 AmbientColor;
|
uniform vec4 AmbientColor;
|
||||||
uniform float FillPercentage;
|
uniform float FillPercentage;
|
||||||
|
uniform float GlowIntensity = 10;
|
||||||
|
|
||||||
uniform vec2 DiffuseUVRepeat;
|
uniform vec2 DiffuseUVRepeat;
|
||||||
uniform vec2 NormalUVRepeat;
|
uniform vec2 NormalUVRepeat;
|
||||||
@@ -166,7 +167,7 @@ void main()
|
|||||||
color_result += FillColor;
|
color_result += FillColor;
|
||||||
}
|
}
|
||||||
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
|
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
|
||||||
color_result += glowTexel*3;
|
color_result += glowTexel*GlowIntensity;
|
||||||
|
|
||||||
bloomColor = vec4(clamp(color_result.xyz - 1.0, 0, 100), 1.0);
|
bloomColor = vec4(clamp(color_result.xyz - 1.0, 0, 100), 1.0);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,78 @@
|
|||||||
|
#include "GUI/ButtonSystem.h"
|
||||||
|
|
||||||
|
ButtonSystem::ButtonSystem(SystemParams params, IRenderer* renderer)
|
||||||
|
: System(params)
|
||||||
|
, PureSystem("Button")
|
||||||
|
, m_Renderer(renderer)
|
||||||
|
{
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EMousePress, &ButtonSystem::OnMousePress);
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EMouseRelease, &ButtonSystem::OnMouseRelease);
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EMouseLock, &ButtonSystem::OnMouseLock);
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EMouseUnlock, &ButtonSystem::OnMouseUnlock);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool ButtonSystem::OnMouseLock(const Events::LockMouse& e)
|
||||||
|
{
|
||||||
|
m_MouseIsLocked = true;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool ButtonSystem::OnMouseUnlock(const Events::UnlockMouse& e)
|
||||||
|
{
|
||||||
|
m_MouseIsLocked = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool ButtonSystem::OnMousePress(const Events::MousePress& e)
|
||||||
|
{
|
||||||
|
if (e.Button == GLFW_MOUSE_BUTTON_1 && !m_MouseIsLocked) {
|
||||||
|
m_PickData = m_Renderer->Pick(glm::vec2(e.X, e.Y));
|
||||||
|
if (m_PickData.Entity != EntityID_Invalid && m_PickData.World == m_World) {
|
||||||
|
if(m_World->HasComponent(m_PickData.Entity, "Button")) {
|
||||||
|
//Entity is a button, save it and send pressed event.
|
||||||
|
|
||||||
|
m_PickEntity = EntityWrapper(m_World, m_PickData.Entity);
|
||||||
|
|
||||||
|
//You have clicked on a button entity, send pressed event.
|
||||||
|
Events::ButtonPressed ePressed;
|
||||||
|
ePressed.EntityName = m_PickEntity.Name();
|
||||||
|
m_EventBroker->Publish(ePressed);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool ButtonSystem::OnMouseRelease(const Events::MouseRelease& e)
|
||||||
|
{
|
||||||
|
if(!m_MouseIsLocked) {
|
||||||
|
//Mouse is not locked, send release event.
|
||||||
|
Events::ButtonReleased eReleased;
|
||||||
|
m_EventBroker->Publish(eReleased);
|
||||||
|
m_PickData = m_Renderer->Pick(glm::vec2(e.X, e.Y));
|
||||||
|
if(m_PickData.Entity != EntityID_Invalid && m_PickData.World == m_World) {
|
||||||
|
if(m_World->HasComponent(m_PickData.Entity, "Button")) {
|
||||||
|
EntityWrapper ent = EntityWrapper(m_World, m_PickData.Entity);
|
||||||
|
if (ent == m_PickEntity) {
|
||||||
|
//The entity you released the mouse button on is the same as you pressed it on. "Clicked"
|
||||||
|
Events::ButtonClicked eClicked;
|
||||||
|
eClicked.EntityName = m_PickEntity.Name();
|
||||||
|
m_EventBroker->Publish(eClicked);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ButtonSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& cHealth, double dt)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
#include "GUI/MainMenuSystem.h"
|
||||||
|
|
||||||
|
MainMenuSystem::MainMenuSystem(SystemParams params, IRenderer* renderer)
|
||||||
|
: System(params)
|
||||||
|
, ImpureSystem()
|
||||||
|
, m_Renderer(renderer)
|
||||||
|
{
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EPressed, &MainMenuSystem::OnButtonPress);
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EReleased, &MainMenuSystem::OnButtonRelease);
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EClicked, &MainMenuSystem::OnButtonClick);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MainMenuSystem::Update(double dt)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MainMenuSystem::OnButtonClick(const Events::ButtonClicked& e)
|
||||||
|
{
|
||||||
|
if(e.EntityName == "Play") {
|
||||||
|
//Run play code
|
||||||
|
} else if(e.EntityName == "Connect") {
|
||||||
|
//Run connect code
|
||||||
|
} else if(e.EntityName == "Host") {
|
||||||
|
//Run host code
|
||||||
|
} else if(e.EntityName == "Quit") {
|
||||||
|
printf("No, you stay");
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MainMenuSystem::OnButtonRelease(const Events::ButtonReleased& e)
|
||||||
|
{
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MainMenuSystem::OnButtonPress(const Events::ButtonPressed& e)
|
||||||
|
{
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -689,9 +689,6 @@ void DrawFinalPass::DrawSprites(std::list<std::shared_ptr<RenderJob>>&jobs, Rend
|
|||||||
glDrawElements(GL_TRIANGLES, spriteJob->EndIndex - spriteJob->StartIndex + 1, GL_UNSIGNED_INT, (void*)(spriteJob->StartIndex*sizeof(unsigned int)));
|
glDrawElements(GL_TRIANGLES, spriteJob->EndIndex - spriteJob->StartIndex + 1, GL_UNSIGNED_INT, (void*)(spriteJob->StartIndex*sizeof(unsigned int)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// m_SpriteProgram->Unbind();
|
// m_SpriteProgram->Unbind();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -738,6 +735,8 @@ void DrawFinalPass::BindExplosionUniforms(GLuint shaderHandle, std::shared_ptr<E
|
|||||||
glUniform1f(glGetUniformLocation(shaderHandle, "FillPercentage"), job->FillPercentage);
|
glUniform1f(glGetUniformLocation(shaderHandle, "FillPercentage"), job->FillPercentage);
|
||||||
GLERROR("Bind 19 uniform");
|
GLERROR("Bind 19 uniform");
|
||||||
glUniform4fv(glGetUniformLocation(shaderHandle, "AmbientColor"), 1, glm::value_ptr(scene.AmbientColor));
|
glUniform4fv(glGetUniformLocation(shaderHandle, "AmbientColor"), 1, glm::value_ptr(scene.AmbientColor));
|
||||||
|
GLERROR("Bind 20 uniform");
|
||||||
|
glUniform1f(glGetUniformLocation(shaderHandle, "GlowIntensity"), job->GlowIntencity);
|
||||||
GLERROR("END");
|
GLERROR("END");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -773,6 +772,11 @@ void DrawFinalPass::BindModelUniforms(GLuint shaderHandle, std::shared_ptr<Model
|
|||||||
GLint Location_AmbientColor = glGetUniformLocation(shaderHandle, "AmbientColor");
|
GLint Location_AmbientColor = glGetUniformLocation(shaderHandle, "AmbientColor");
|
||||||
glUniform4fv(Location_AmbientColor, 1, glm::value_ptr(scene.AmbientColor));
|
glUniform4fv(Location_AmbientColor, 1, glm::value_ptr(scene.AmbientColor));
|
||||||
|
|
||||||
|
GLERROR("Bind 10 uniform");
|
||||||
|
GLint Location_GlowIntensity = glGetUniformLocation(shaderHandle, "GlowIntensity");
|
||||||
|
|
||||||
|
glUniform1f(Location_GlowIntensity, job->GlowIntencity);
|
||||||
|
|
||||||
GLERROR("END");
|
GLERROR("END");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -234,6 +234,52 @@ void PickingPass::Draw(RenderScene& scene)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (auto& job : scene.Jobs.SpriteJob) {
|
||||||
|
auto spriteJob = std::dynamic_pointer_cast<SpriteJob>(job);
|
||||||
|
if (!spriteJob->Pickable) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
RenderState jobState;
|
||||||
|
|
||||||
|
if (spriteJob) {
|
||||||
|
if (spriteJob->Depth == 0) {
|
||||||
|
jobState.Disable(GL_DEPTH_TEST);
|
||||||
|
}
|
||||||
|
int pickColor[2] = { m_ColorCounter[0], m_ColorCounter[1] };
|
||||||
|
|
||||||
|
PickingInfo pickInfo;
|
||||||
|
pickInfo.Entity = spriteJob->Entity;
|
||||||
|
pickInfo.World = spriteJob->World;
|
||||||
|
pickInfo.Camera = scene.Camera;
|
||||||
|
|
||||||
|
auto color = m_EntityColors.find(std::make_tuple(pickInfo.Entity, pickInfo.World, pickInfo.Camera));
|
||||||
|
if (color != m_EntityColors.end()) {
|
||||||
|
pickColor[0] = color->second[0];
|
||||||
|
pickColor[1] = color->second[1];
|
||||||
|
} else {
|
||||||
|
m_EntityColors[std::make_tuple(pickInfo.Entity, pickInfo.World, pickInfo.Camera)] = glm::ivec2(pickColor[0], pickColor[1]);
|
||||||
|
if (m_ColorCounter[0] > 255) {
|
||||||
|
m_ColorCounter[0] = 0;
|
||||||
|
m_ColorCounter[1] += 1;
|
||||||
|
} else {
|
||||||
|
m_ColorCounter[0] += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
m_PickingColorsToEntity[glm::ivec2(pickColor[0], pickColor[1])] = pickInfo;
|
||||||
|
|
||||||
|
m_PickingProgram->Bind();
|
||||||
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "M"), 1, GL_FALSE, glm::value_ptr(spriteJob->Matrix));
|
||||||
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "V"), 1, GL_FALSE, glm::value_ptr(scene.Camera->ViewMatrix()));
|
||||||
|
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "P"), 1, GL_FALSE, glm::value_ptr(scene.Camera->ProjectionMatrix()));
|
||||||
|
glUniform2fv(glGetUniformLocation(shaderHandle, "PickingColor"), 1, glm::value_ptr(glm::vec2(pickColor[0], pickColor[1])));
|
||||||
|
|
||||||
|
glBindVertexArray(spriteJob->Model->VAO);
|
||||||
|
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, spriteJob->Model->ElementBuffer);
|
||||||
|
glDrawElements(GL_TRIANGLES, spriteJob->EndIndex - spriteJob->StartIndex + 1, GL_UNSIGNED_INT, (void*)(spriteJob->StartIndex * sizeof(unsigned int)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* for (auto &job : scene.Jobs.TransparentShieldedObjects) {
|
/* for (auto &job : scene.Jobs.TransparentShieldedObjects) {
|
||||||
auto modelJob = std::dynamic_pointer_cast<ModelJob>(job);
|
auto modelJob = std::dynamic_pointer_cast<ModelJob>(job);
|
||||||
|
|
||||||
@@ -306,8 +352,6 @@ void PickingPass::Draw(RenderScene& scene)
|
|||||||
delete state;
|
delete state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void PickingPass::ClearPicking()
|
void PickingPass::ClearPicking()
|
||||||
{
|
{
|
||||||
m_PickingColorsToEntity.clear();
|
m_PickingColorsToEntity.clear();
|
||||||
|
|||||||
+4
-6
@@ -26,6 +26,8 @@
|
|||||||
#include "Network/MultiplayerSnapshotFilter.h"
|
#include "Network/MultiplayerSnapshotFilter.h"
|
||||||
#include "Game/Systems/AmmunitionHUDSystem.h"
|
#include "Game/Systems/AmmunitionHUDSystem.h"
|
||||||
#include "Game/Systems/KillFeedSystem.h"
|
#include "Game/Systems/KillFeedSystem.h"
|
||||||
|
#include "GUI/ButtonSystem.h"
|
||||||
|
#include "GUI/MainMenuSystem.h"
|
||||||
|
|
||||||
|
|
||||||
Game::Game(int argc, char* argv[])
|
Game::Game(int argc, char* argv[])
|
||||||
@@ -72,11 +74,6 @@ Game::Game(int argc, char* argv[])
|
|||||||
m_InputProxy->AddHandler<MouseInputHandler>();
|
m_InputProxy->AddHandler<MouseInputHandler>();
|
||||||
m_InputProxy->LoadBindings("Input.ini");
|
m_InputProxy->LoadBindings("Input.ini");
|
||||||
|
|
||||||
// Create the root level GUI frame
|
|
||||||
m_FrameStack = new GUI::Frame(m_EventBroker);
|
|
||||||
m_FrameStack->Width = m_Renderer->Resolution().Width;
|
|
||||||
m_FrameStack->Height = m_Renderer->Resolution().Height;
|
|
||||||
|
|
||||||
// Create a world
|
// Create a world
|
||||||
m_World = new World(m_EventBroker);
|
m_World = new World(m_EventBroker);
|
||||||
std::string mapToLoad = m_Config->Get<std::string>("Debug.LoadMap", "");
|
std::string mapToLoad = m_Config->Get<std::string>("Debug.LoadMap", "");
|
||||||
@@ -132,6 +129,8 @@ Game::Game(int argc, char* argv[])
|
|||||||
m_SystemPipeline->AddSystem<DamageIndicatorSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<DamageIndicatorSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<AmmunitionHUDSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<AmmunitionHUDSystem>(updateOrderLevel);
|
||||||
m_SystemPipeline->AddSystem<KillFeedSystem>(updateOrderLevel);
|
m_SystemPipeline->AddSystem<KillFeedSystem>(updateOrderLevel);
|
||||||
|
m_SystemPipeline->AddSystem<ButtonSystem>(updateOrderLevel, m_Renderer);
|
||||||
|
m_SystemPipeline->AddSystem<MainMenuSystem>(updateOrderLevel, m_Renderer);
|
||||||
// Populate Octree with collidables
|
// Populate Octree with collidables
|
||||||
++updateOrderLevel;
|
++updateOrderLevel;
|
||||||
m_SystemPipeline->AddSystem<FillOctreeSystem>(updateOrderLevel, m_OctreeCollision, "Collidable");
|
m_SystemPipeline->AddSystem<FillOctreeSystem>(updateOrderLevel, m_OctreeCollision, "Collidable");
|
||||||
@@ -168,7 +167,6 @@ Game::~Game()
|
|||||||
delete m_NetworkServer;
|
delete m_NetworkServer;
|
||||||
}
|
}
|
||||||
delete m_World;
|
delete m_World;
|
||||||
delete m_FrameStack;
|
|
||||||
delete m_InputProxy;
|
delete m_InputProxy;
|
||||||
delete m_InputManager;
|
delete m_InputManager;
|
||||||
delete m_RenderFrame;
|
delete m_RenderFrame;
|
||||||
|
|||||||
Reference in New Issue
Block a user