Compare commits
165 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7fa634ef7c | |||
| 080f5ac856 | |||
| 4ecbef59bf | |||
| 8a1217e8b5 | |||
| 8e150da7ff | |||
| c790b952fb | |||
| be3d75a5cf | |||
| b3c935c7cc | |||
| f05b09ca7a | |||
| e76740d72b | |||
| d3927de7cc | |||
| fe090504cf | |||
| 672d6f884d | |||
| 5ea0f04b20 | |||
| 9b5e4c10fd | |||
| fb400bb743 | |||
| aa2475dfd6 | |||
| 36c4837813 | |||
| 2fa3637018 | |||
| 52e5e2527a | |||
| 36253a8afd | |||
| 5c343cb254 | |||
| b73595eed0 | |||
| f9e640ffc6 | |||
| f2c7a9f27a | |||
| ac20e41a5d | |||
| 4f99f6ef74 | |||
| d0a083a1e3 | |||
| d5f06fa8c2 | |||
| 8bb8ebbea3 | |||
| 4bd2e7995a | |||
| 799fd31844 | |||
| 45bfc374de | |||
| 95f9065037 | |||
| 993e56ec59 | |||
| a1fda82d3a | |||
| 20d46f63c8 | |||
| f6113b9d9c | |||
| 7ea90bede7 | |||
| 2bfbd72189 | |||
| 1e7f6941ba | |||
| 8c90c39680 | |||
| b7d88808e2 | |||
| f8f536802f | |||
| 91bad517d3 | |||
| 60df30fa59 | |||
| ba93ebbe88 | |||
| a3b3351e55 | |||
| ce0d3b9fbe | |||
| 674604d0df | |||
| 8e9ddc7b9d | |||
| 36b84f7cc3 | |||
| c544f349fd | |||
| beee2db5fb | |||
| 1bc4b89a53 | |||
| cc10e5500b | |||
| 068e151741 | |||
| e7a3793486 | |||
| 9bac141a6b | |||
| 0c1a2d3160 | |||
| eb5fcd6d19 | |||
| 9942747d41 | |||
| 24bb05ec67 | |||
| df7b4faf24 | |||
| 01db8e0615 | |||
| 5baac926aa | |||
| ee5c13d463 | |||
| 671079764e | |||
| 9b98bbbea8 | |||
| 80649ce51d | |||
| a4b0b108d4 | |||
| 28d576bfc0 | |||
| 66d0f9fa47 | |||
| dc09ba9158 | |||
| 157a54e845 | |||
| 7759af2c5a | |||
| ac096bbf77 | |||
| 81634578d9 | |||
| 2f61171d16 | |||
| aa16a15693 | |||
| 26337ff243 | |||
| 7bdb0d410f | |||
| 172fb8dfc2 | |||
| 0ca627eb8b | |||
| 530c0fd9b0 | |||
| 4df936ca70 | |||
| f036817c0c | |||
| e45d0e8232 | |||
| 8ebf818c19 | |||
| 62d1cb9a69 | |||
| edb305b307 | |||
| 0aedeb61b4 | |||
| 44398eac58 | |||
| 06bddd9d54 | |||
| 4937bee46a | |||
| bb0531a459 | |||
| 8bd38bc465 | |||
| 8ceaae995d | |||
| 5f959ded89 | |||
| 0fbc482f9c | |||
| 2eb863757b | |||
| 91aedcbb14 | |||
| cac0522ae7 | |||
| 26dde21e3d | |||
| 23e6a15c7f | |||
| e96ad44e44 | |||
| 7febb7681c | |||
| e000408593 | |||
| 33627f917c | |||
| dab58e09a0 | |||
| cd6967b310 | |||
| ab70aed840 | |||
| f9808a61f7 | |||
| a8a4b5d2a2 | |||
| 67dfbfff01 | |||
| 6c072aae45 | |||
| 68634126e5 | |||
| a0d60160dd | |||
| 15c54d2be6 | |||
| e444a86ec5 | |||
| 981dc3467e | |||
| 42af029a26 | |||
| 37355b1afc | |||
| 2e5dfc609a | |||
| ad49af2f8c | |||
| 5a7034dfcd | |||
| 9721cb6a7d | |||
| c36c7d1ea6 | |||
| 3209e36176 | |||
| ba6d2b758d | |||
| 12dd1d21de | |||
| e0de91cce3 | |||
| b7d93058b1 | |||
| ab2b28264f | |||
| 5d53fc74cb | |||
| ecc8d998cf | |||
| e3c0fb2178 | |||
| 090bd806ce | |||
| 3828616b60 | |||
| 9cbc582be2 | |||
| ec3ed1f46f | |||
| 68a88ed756 | |||
| ee99821164 | |||
| 078d6eb712 | |||
| 53ea5bd37d | |||
| 243276707a | |||
| 16124b7aa7 | |||
| a7c57da2c9 | |||
| 1227a795d7 | |||
| 1cc92f4800 | |||
| 3613d66d32 | |||
| 20c6caa408 | |||
| b7fac7103d | |||
| 0cf92e99ff | |||
| 3ba73b8206 | |||
| d3ffb9768b | |||
| fcf5117952 | |||
| 2c56b03b2b | |||
| 4fd578c764 | |||
| 67dffafe5a | |||
| 7dbb9e452b | |||
| cf3d1b5b00 | |||
| 9783f9c650 | |||
| f72dea3852 | |||
| fb80d088e4 |
+1
-1
Submodule assets updated: 007b54bd67...6ffc1ab82a
@@ -12,7 +12,7 @@
|
||||
#include "../Core/AABB.h"
|
||||
#include "Rendering/RawModelCustom.h"
|
||||
//#include "Rendering/RawModelAssimp.h"
|
||||
#include "../Core/Transform.h"
|
||||
#include "../Core/TransformSystem.h"
|
||||
#include "../Core/Entity.h"
|
||||
#include "../Core/EntityWrapper.h"
|
||||
#include "EntityAABB.h"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define ComponentInfo_h__
|
||||
|
||||
#include "../Common.h"
|
||||
#include "Entity.h"
|
||||
#include <boost/shared_array.hpp>
|
||||
|
||||
struct ComponentInfo
|
||||
@@ -21,6 +22,7 @@ struct ComponentInfo
|
||||
{
|
||||
std::string Name;
|
||||
std::string Type;
|
||||
unsigned char Index;
|
||||
unsigned int Offset;
|
||||
unsigned int Stride;
|
||||
};
|
||||
@@ -32,6 +34,16 @@ struct ComponentInfo
|
||||
unsigned int Stride = 0;
|
||||
boost::shared_array<char> Defaults = nullptr;
|
||||
std::shared_ptr<Meta_t> Meta = nullptr;
|
||||
|
||||
std::size_t GetHeaderSize() const
|
||||
{
|
||||
std::size_t size = 0;
|
||||
|
||||
// A component block starts with an entity ID
|
||||
size += sizeof(EntityID);
|
||||
|
||||
return size;
|
||||
}
|
||||
};
|
||||
|
||||
template<>
|
||||
|
||||
@@ -5,16 +5,15 @@
|
||||
#include "MemoryPool.h"
|
||||
#include "ComponentInfo.h"
|
||||
#include "ComponentWrapper.h"
|
||||
#include "DirtySet.h"
|
||||
|
||||
|
||||
class ComponentPool;
|
||||
class ComponentPoolForwardIterator
|
||||
: public std::iterator<std::forward_iterator_tag, ComponentWrapper>
|
||||
{
|
||||
public:
|
||||
ComponentPoolForwardIterator(const ComponentInfo& componentInfo, const MemoryPool<char>::iterator begin, const MemoryPool<char>::iterator end)
|
||||
: m_ComponentInfo(componentInfo)
|
||||
, m_MemoryPoolIterator(begin)
|
||||
, m_MemoryPoolEnd(end)
|
||||
{ }
|
||||
ComponentPoolForwardIterator(ComponentPool* pool, const MemoryPool<char>::iterator begin, const MemoryPool<char>::iterator end);
|
||||
|
||||
ComponentPoolForwardIterator(const ComponentPoolForwardIterator& other) = default;
|
||||
ComponentPoolForwardIterator(ComponentPoolForwardIterator&& other) = default;
|
||||
@@ -27,6 +26,7 @@ public:
|
||||
ComponentWrapper operator*() const;
|
||||
|
||||
private:
|
||||
ComponentPool* m_ComponentPool;
|
||||
const ComponentInfo& m_ComponentInfo;
|
||||
MemoryPool<char>::iterator m_MemoryPoolIterator;
|
||||
const MemoryPool<char>::iterator m_MemoryPoolEnd;
|
||||
@@ -34,6 +34,7 @@ private:
|
||||
|
||||
class ComponentPool
|
||||
{
|
||||
friend class ComponentPoolForwardIterator;
|
||||
public:
|
||||
typedef ComponentPoolForwardIterator iterator;
|
||||
typedef ptrdiff_t difference_type;
|
||||
@@ -42,9 +43,10 @@ public:
|
||||
typedef ComponentWrapper* pointer;
|
||||
typedef ComponentWrapper& reference;
|
||||
|
||||
ComponentPool(const ::ComponentInfo& ci)
|
||||
ComponentPool(const ::ComponentInfo& ci, World* world)
|
||||
: m_ComponentInfo(ci)
|
||||
, m_Pool(ci.Meta->Allocation, sizeof(EntityID) + ci.Stride)
|
||||
, m_Pool(ci.Meta->Allocation, ci.GetHeaderSize() + ci.Stride)
|
||||
, m_World(world)
|
||||
{ }
|
||||
~ComponentPool();
|
||||
ComponentPool(const ComponentPool& other);
|
||||
@@ -61,8 +63,8 @@ public:
|
||||
// Delete a component and free its memory
|
||||
void Delete(ComponentWrapper& wrapper);
|
||||
|
||||
iterator begin() const;
|
||||
iterator end() const;
|
||||
iterator begin();
|
||||
iterator end();
|
||||
size_t size() const;
|
||||
|
||||
//Dumps information about what the pool memory looks like right now
|
||||
@@ -80,6 +82,8 @@ private:
|
||||
::ComponentInfo m_ComponentInfo;
|
||||
MemoryPool<char> m_Pool;
|
||||
std::unordered_map<EntityID, char*> m_EntityToComponent;
|
||||
DirtySet m_DirtySet;
|
||||
World* m_World;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -4,46 +4,32 @@
|
||||
#include <boost/shared_array.hpp>
|
||||
#include <boost/any.hpp>
|
||||
#include "../Common.h"
|
||||
#include "../GLM.h"
|
||||
#include "Entity.h"
|
||||
#include "ComponentInfo.h"
|
||||
#include "DirtySet.h"
|
||||
#include "Util/Any.h"
|
||||
|
||||
template <typename T, typename Enable = void>
|
||||
struct ComponentField { };
|
||||
|
||||
template <typename T>
|
||||
struct ComponentField<T, typename std::enable_if<std::is_trivially_copyable<T>::value>::type>
|
||||
{
|
||||
static T& Get(const ComponentInfo::Field_t& info, char* data) { return *reinterpret_cast<T*>(data); }
|
||||
static void Set(const ComponentInfo::Field_t& info, char* data, const T& value) { Get(data) = value; }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct ComponentField<std::string, void>
|
||||
{
|
||||
static std::string& Get(const ComponentInfo::Field_t& info, char* data) { return **reinterpret_cast<std::string**>(data); }
|
||||
static void Set(const ComponentInfo::Field_t& info, char* data, const std::string& value) { Get(info, data) = value; }
|
||||
};
|
||||
class World;
|
||||
|
||||
struct ComponentWrapper
|
||||
{
|
||||
ComponentWrapper(const ComponentInfo& componentInfo, char* data)
|
||||
: Info(componentInfo)
|
||||
, EntityID(*reinterpret_cast<::EntityID*>(data))
|
||||
, Data(data + sizeof(::EntityID))
|
||||
{ }
|
||||
ComponentWrapper(const ComponentInfo& componentInfo, char* data, ::DirtyBitField* dirtyBitField, World* world);
|
||||
|
||||
World* m_World;
|
||||
const ComponentInfo& Info;
|
||||
const ::EntityID EntityID;
|
||||
char* Data;
|
||||
::DirtyBitField* DirtyBitField = nullptr;
|
||||
|
||||
ComponentInfo::EnumType Enum(const char* fieldName, const char* enumKey)
|
||||
{
|
||||
return Info.Meta->FieldEnumDefinitions.at(fieldName).at(enumKey);
|
||||
}
|
||||
ComponentInfo::EnumType Enum(const char* fieldName, const char* enumKey);
|
||||
|
||||
bool Dirty(DirtySetType type, const std::string& fieldName);
|
||||
void SetDirty(DirtySetType type, const std::string& fieldName, bool dirty = true);
|
||||
void SetAllDirty(const std::string& fieldName, bool dirty = true);
|
||||
|
||||
template <typename T>
|
||||
T& Field(std::string name)
|
||||
T& Field(const std::string& name)
|
||||
{
|
||||
const ComponentInfo::Field_t& field = Info.Fields.at(name);
|
||||
if (sizeof(T) > field.Stride) {
|
||||
@@ -55,13 +41,15 @@ struct ComponentWrapper
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SetField(std::string name, const T value) { Field<T>(name) = value; }
|
||||
//template <typename T>
|
||||
//void SetField(std::string name, T& value) { Field<T>(name) = value; }
|
||||
void SetField(const std::string& name, const T& value)
|
||||
{
|
||||
Field<T>(name) = value;
|
||||
SetAllDirty(name);
|
||||
}
|
||||
|
||||
// Specialization for string literals
|
||||
template <std::size_t N>
|
||||
void SetField(std::string name, const char(&value)[N]) { Field<std::string>(name) = std::string(value); }
|
||||
void SetField(const std::string& name, const char(&value)[N]) { SetField(name, std::string(value)); }
|
||||
|
||||
void Copy(ComponentWrapper& destination)
|
||||
{
|
||||
@@ -95,40 +83,163 @@ struct ComponentWrapper
|
||||
struct SubscriptProxy
|
||||
{
|
||||
friend struct ComponentWrapper;
|
||||
private:
|
||||
SubscriptProxy(ComponentWrapper* component, std::string propertyName)
|
||||
|
||||
public:
|
||||
SubscriptProxy(ComponentWrapper* component, std::string fieldName)
|
||||
: m_Component(component)
|
||||
, m_PropertyName(propertyName)
|
||||
, m_FieldName(fieldName)
|
||||
{ }
|
||||
|
||||
ComponentWrapper* m_Component;
|
||||
std::string m_PropertyName;
|
||||
std::string m_FieldName;
|
||||
|
||||
public:
|
||||
// Return the integer value of an enum type key for this field
|
||||
ComponentInfo::EnumType Enum(const char* enumKey) { return m_Component->Enum(m_PropertyName.c_str(), enumKey); }
|
||||
ComponentInfo::EnumType Enum(const char* enumKey) { return m_Component->Enum(m_FieldName.c_str(), enumKey); }
|
||||
bool Dirty(DirtySetType type) { return m_Component->Dirty(type, m_FieldName); }
|
||||
void SetDirty(DirtySetType type, bool dirty = true) { m_Component->SetDirty(type, m_FieldName, dirty); }
|
||||
void SetAllDirty(bool dirty = true) { m_Component->SetAllDirty(m_FieldName, dirty); }
|
||||
|
||||
template <typename T>
|
||||
operator T&() { return m_Component->Field<T>(m_PropertyName); }
|
||||
operator const double&() { return m_Component->Field<double>(m_FieldName); }
|
||||
operator const float&() { return m_Component->Field<float>(m_FieldName); }
|
||||
operator const int&() { return m_Component->Field<int>(m_FieldName); }
|
||||
operator const glm::vec3&() { return m_Component->Field<glm::vec3>(m_FieldName); }
|
||||
operator const glm::vec4&() { return m_Component->Field<glm::vec4>(m_FieldName); }
|
||||
operator const glm::quat&() { return m_Component->Field<glm::quat>(m_FieldName); }
|
||||
operator const bool&() { return m_Component->Field<bool>(m_FieldName); }
|
||||
operator const std::string&() { return m_Component->Field<std::string>(m_FieldName); }
|
||||
|
||||
// Don't allow non-const references
|
||||
// If this wasn't deleted, the above overloads would still get called for some reason...
|
||||
template <
|
||||
typename T,
|
||||
typename = typename std::enable_if<!std::is_base_of<::FIELDLOL, T>::value>::type
|
||||
>
|
||||
//operator T&() = delete;
|
||||
operator T&() { static_assert(constexpr(false), "https://github.com/teamfisk/TacticalZ/pull/212"); }
|
||||
|
||||
// Value assignment
|
||||
template <typename T>
|
||||
void operator=(const T val) { m_Component->SetField<T>(m_PropertyName, val); }
|
||||
// TODO: Pass by reference and rvalue (universal reference?)
|
||||
//template <typename T>
|
||||
//void operator=(T& val) { m_Component->SetField<T>(m_PropertyName, val); }
|
||||
void operator=(const T& val) { m_Component->SetField<T>(m_FieldName, val); }
|
||||
|
||||
// Specialization for string literals
|
||||
template <std::size_t N>
|
||||
void operator=(const char(&val)[N]) { m_Component->SetField<N>(m_PropertyName, val); }
|
||||
void operator=(const char(&val)[N]) { m_Component->SetField<N>(m_FieldName, val); }
|
||||
};
|
||||
SubscriptProxy operator[](std::string propertyName) { return SubscriptProxy(this, propertyName); }
|
||||
SubscriptProxy operator[](const std::string& propertyName) { return SubscriptProxy(this, propertyName); }
|
||||
};
|
||||
|
||||
struct FIELDLOL { }; // lol
|
||||
|
||||
template <typename T>
|
||||
struct FieldBase : FIELDLOL
|
||||
{
|
||||
FieldBase(ComponentWrapper::SubscriptProxy& Proxy)
|
||||
: Proxy(Proxy)
|
||||
, Data(Proxy.m_Component->Field<T>(Proxy.m_FieldName))
|
||||
{ }
|
||||
|
||||
void SetAllDirty() { Proxy.SetAllDirty(); }
|
||||
|
||||
FieldBase& operator=(const FieldBase& rhs) { Data = rhs.Data; SetAllDirty(); return *this; }
|
||||
FieldBase& operator=(const T& rhs) { Data = rhs; SetAllDirty(); return *this; }
|
||||
|
||||
template <typename T2> FieldBase& operator+=(const T2& rhs) { Data += rhs; SetAllDirty(); return *this; }
|
||||
template <typename T2> FieldBase& operator-=(const T2& rhs) { Data -= rhs; SetAllDirty(); return *this; }
|
||||
template <typename T2> FieldBase& operator*=(const T2& rhs) { Data *= rhs; SetAllDirty(); return *this; }
|
||||
template <typename T2> FieldBase& operator/=(const T2& rhs) { Data /= rhs; SetAllDirty(); return *this; }
|
||||
template <typename T2> FieldBase& operator%=(const T2& rhs) { Data %= rhs; SetAllDirty(); return *this; }
|
||||
template <typename T2> FieldBase& operator&=(const T2& rhs) { Data &= rhs; SetAllDirty(); return *this; }
|
||||
template <typename T2> FieldBase& operator|=(const T2& rhs) { Data |= rhs; SetAllDirty(); return *this; }
|
||||
template <typename T2> FieldBase& operator^=(const T2& rhs) { Data ^= rhs; SetAllDirty(); return *this; }
|
||||
template <typename T2> FieldBase& operator<<=(const T2& rhs) { Data <<= rhs; SetAllDirty(); return *this; }
|
||||
template <typename T2> FieldBase& operator>>=(const T2& rhs) { Data >>= rhs; SetAllDirty(); return *this; }
|
||||
|
||||
T operator+() const { return +Data; }
|
||||
T operator-() const { return -Data; }
|
||||
T operator~() const { return ~Data; }
|
||||
|
||||
FieldBase& operator++() { Data++; SetAllDirty(); return *this; }
|
||||
T operator++(int) { T tmp = Data; operator++(); return tmp; }
|
||||
FieldBase& operator--() { Data--; SetAllDirty(); return *this; }
|
||||
T operator--(int) { T tmp = Data; operator--(); return tmp; }
|
||||
|
||||
operator const T&() const { return Data; }
|
||||
const T& operator*() const { return operator const T&(); }
|
||||
|
||||
protected:
|
||||
ComponentWrapper::SubscriptProxy Proxy;
|
||||
T& Data;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
struct Field : FieldBase<T>
|
||||
{
|
||||
using FieldBase<T>::FieldBase;
|
||||
using FieldBase<T>::operator=;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct Field<glm::vec3> : FieldBase<glm::vec3>
|
||||
{
|
||||
using FieldBase<glm::vec3>::FieldBase;
|
||||
using FieldBase<glm::vec3>::operator=;
|
||||
|
||||
glm::vec3::value_type x() const { return Data.x; }
|
||||
void x(glm::vec3::value_type val) { Data.x = val; SetAllDirty(); }
|
||||
glm::vec3::value_type y() const { return Data.y; }
|
||||
void y(glm::vec3::value_type val) { Data.y = val; SetAllDirty(); }
|
||||
glm::vec3::value_type z() const { return Data.z; }
|
||||
void z(glm::vec3::value_type val) { Data.z = val; SetAllDirty(); }
|
||||
|
||||
template <typename T> friend glm::vec3 operator+(const Field<glm::vec3>& lhs, const T& rhs) { return static_cast<glm::vec3>(lhs) + glm::vec3(rhs); }
|
||||
template <typename T> friend glm::vec3 operator-(const Field<glm::vec3>& lhs, const T& rhs) { return static_cast<glm::vec3>(lhs) - glm::vec3(rhs); }
|
||||
template <typename T> friend glm::vec3 operator*(const Field<glm::vec3>& lhs, const T& rhs) { return static_cast<glm::vec3>(lhs) * glm::vec3(rhs); }
|
||||
template <typename T> friend glm::vec3 operator/(const Field<glm::vec3>& lhs, const T& rhs) { return static_cast<glm::vec3>(lhs) / glm::vec3(rhs); }
|
||||
template <typename T> friend glm::vec3 operator+(const T& lhs, const Field<glm::vec3>& rhs) { return glm::vec3(lhs) + static_cast<glm::vec3>(rhs); }
|
||||
template <typename T> friend glm::vec3 operator-(const T& lhs, const Field<glm::vec3>& rhs) { return glm::vec3(lhs) - static_cast<glm::vec3>(rhs); }
|
||||
template <typename T> friend glm::vec3 operator*(const T& lhs, const Field<glm::vec3>& rhs) { return glm::vec3(lhs) * static_cast<glm::vec3>(rhs); }
|
||||
template <typename T> friend glm::vec3 operator/(const T& lhs, const Field<glm::vec3>& rhs) { return glm::vec3(lhs) / static_cast<glm::vec3>(rhs); }
|
||||
|
||||
friend glm::vec3& operator+=(glm::vec3& lhs, const Field<glm::vec3>& rhs) { lhs += *rhs; return lhs; }
|
||||
};
|
||||
|
||||
template <>
|
||||
struct Field<glm::vec4> : FieldBase<glm::vec4>
|
||||
{
|
||||
//Field(glm::vec4& Data)
|
||||
// : FieldBase(Data)
|
||||
//{ }
|
||||
using FieldBase<glm::vec4>::FieldBase;
|
||||
using FieldBase<glm::vec4>::operator=;
|
||||
|
||||
glm::vec4::value_type x() const { return Data.x; }
|
||||
void x(glm::vec4::value_type val) { Data.x = val; SetAllDirty(); }
|
||||
glm::vec4::value_type y() const { return Data.y; }
|
||||
void y(glm::vec4::value_type val) { Data.y = val; SetAllDirty(); }
|
||||
glm::vec4::value_type z() const { return Data.z; }
|
||||
void z(glm::vec4::value_type val) { Data.z = val; SetAllDirty(); }
|
||||
glm::vec4::value_type w() const { return Data.w; }
|
||||
void w(glm::vec4::value_type val) { Data.w = val; SetAllDirty(); }
|
||||
|
||||
template <typename T> friend glm::vec4 operator+(const Field<glm::vec4>& lhs, const T& rhs) { return static_cast<glm::vec4>(lhs) + glm::vec4(rhs); }
|
||||
template <typename T> friend glm::vec4 operator-(const Field<glm::vec4>& lhs, const T& rhs) { return static_cast<glm::vec4>(lhs) - glm::vec4(rhs); }
|
||||
template <typename T> friend glm::vec4 operator*(const Field<glm::vec4>& lhs, const T& rhs) { return static_cast<glm::vec4>(lhs) * glm::vec4(rhs); }
|
||||
template <typename T> friend glm::vec4 operator/(const Field<glm::vec4>& lhs, const T& rhs) { return static_cast<glm::vec4>(lhs) / glm::vec4(rhs); }
|
||||
template <typename T> friend glm::vec4 operator+(const T& lhs, const Field<glm::vec4>& rhs) { return glm::vec4(lhs) + static_cast<glm::vec4>(rhs); }
|
||||
template <typename T> friend glm::vec4 operator-(const T& lhs, const Field<glm::vec4>& rhs) { return glm::vec4(lhs) - static_cast<glm::vec4>(rhs); }
|
||||
template <typename T> friend glm::vec4 operator*(const T& lhs, const Field<glm::vec4>& rhs) { return glm::vec4(lhs) * static_cast<glm::vec4>(rhs); }
|
||||
template <typename T> friend glm::vec4 operator/(const T& lhs, const Field<glm::vec4>& rhs) { return glm::vec4(lhs) / static_cast<glm::vec4>(rhs); }
|
||||
|
||||
friend glm::vec4& operator+=(glm::vec4& lhs, const Field<glm::vec4>& rhs) { lhs += *rhs; return lhs; }
|
||||
};
|
||||
|
||||
|
||||
// A component wrapper that "owns" its data through a shared pointer
|
||||
struct SharedComponentWrapper : ComponentWrapper
|
||||
{
|
||||
SharedComponentWrapper(const ComponentInfo& componentInfo, boost::shared_array<char> data)
|
||||
: ComponentWrapper(componentInfo, data.get())
|
||||
: ComponentWrapper(componentInfo, data.get(), nullptr, nullptr)
|
||||
, m_DataReference(data)
|
||||
{ }
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef DirtySet_h__
|
||||
#define DirtySet_h__
|
||||
|
||||
#include <set>
|
||||
#include "ComponentInfo.h"
|
||||
|
||||
enum class DirtySetType
|
||||
{
|
||||
Transform,
|
||||
Network
|
||||
};
|
||||
|
||||
typedef std::unordered_map<DirtySetType, std::set<decltype(ComponentInfo::Field_t::Index)>> DirtyBitField;
|
||||
typedef std::unordered_map<EntityID, DirtyBitField> DirtySet;
|
||||
|
||||
#endif
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef ECaptured_h__
|
||||
#define ECaptured_h__
|
||||
#ifndef Events_Captured_h__
|
||||
#define Events_Captured_h__
|
||||
|
||||
#include "EventBroker.h"
|
||||
#include "../Core/Entity.h"
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
#define EEntityDeleted_h__
|
||||
|
||||
#include "Event.h"
|
||||
#include "Entity.h"
|
||||
#include "EntityWrapper.h"
|
||||
|
||||
namespace Events
|
||||
{
|
||||
|
||||
struct EntityDeleted : Event
|
||||
{
|
||||
EntityID DeletedEntity;
|
||||
EntityWrapper DeletedEntity;
|
||||
// True if the entity deletion was triggered because the entity's parent was deleted before it
|
||||
bool Cascaded;
|
||||
};
|
||||
|
||||
@@ -45,8 +45,9 @@ struct EntityWrapper
|
||||
|
||||
private:
|
||||
EntityWrapper firstChildByNameRecursive(const std::string& name, EntityID parent);
|
||||
EntityWrapper cloneRecursive(EntityWrapper entity, EntityWrapper parent);
|
||||
void childrenWithComponentRecursive(const std::string& componentType, EntityWrapper& entity, std::vector<EntityWrapper>& childrenWithComponent);
|
||||
static void fillRelationships(std::unordered_multimap<EntityWrapper, EntityWrapper>& relationMap, EntityWrapper entity);
|
||||
static void recreateRelationships(const std::unordered_multimap<EntityWrapper, EntityWrapper>& relationMap, EntityWrapper templateEntity, EntityWrapper parent = EntityWrapper::Invalid);
|
||||
};
|
||||
|
||||
namespace std
|
||||
|
||||
@@ -19,6 +19,7 @@ class Resource
|
||||
|
||||
protected:
|
||||
Resource() { }
|
||||
virtual ~Resource() = default;
|
||||
|
||||
public:
|
||||
//Should be thrown in a Resource's constructor if it cannot complete because another resource is still loading.
|
||||
|
||||
@@ -81,7 +81,7 @@ public:
|
||||
for (auto& pair : group.PureSystems) {
|
||||
const std::string& componentName = pair.first;
|
||||
auto& systems = pair.second;
|
||||
const ComponentPool* pool = m_World->GetComponents(componentName);
|
||||
ComponentPool* pool = m_World->GetComponents(componentName);
|
||||
if (pool == nullptr) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
#ifndef Transform_h__
|
||||
#define Transform_h__
|
||||
|
||||
#include "../GLM.h"
|
||||
#include "World.h"
|
||||
#include "EntityWrapper.h"
|
||||
|
||||
namespace Transform
|
||||
{
|
||||
|
||||
glm::mat4 AbsoluteTransformation(EntityWrapper entity);
|
||||
glm::vec3 AbsolutePosition(EntityWrapper entity);
|
||||
glm::vec3 AbsolutePosition(World* world, EntityID entity);
|
||||
glm::vec3 AbsoluteOrientationEuler(EntityWrapper entity);
|
||||
glm::quat AbsoluteOrientation(EntityWrapper entity);
|
||||
glm::quat AbsoluteOrientation(World* world, EntityID entity);
|
||||
glm::vec3 AbsoluteScale(EntityWrapper entity);
|
||||
glm::vec3 AbsoluteScale(World* world, EntityID entity);
|
||||
glm::mat4 ModelMatrix(EntityWrapper entity);
|
||||
glm::mat4 ModelMatrix(EntityID entity, World* world);
|
||||
glm::vec3 TransformPoint(const glm::vec3& point, const glm::mat4& matrix);
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,39 @@
|
||||
#ifndef Transform_h__
|
||||
#define Transform_h__
|
||||
|
||||
#include "../GLM.h"
|
||||
#include "System.h"
|
||||
#include "EEntityDeleted.h"
|
||||
|
||||
class TransformSystem : public System
|
||||
{
|
||||
public:
|
||||
TransformSystem(SystemParams params);
|
||||
|
||||
//glm::mat4 AbsoluteTransformation(EntityWrapper entity);
|
||||
static glm::vec3 AbsolutePosition(EntityWrapper entity);
|
||||
static glm::vec3 AbsolutePosition(World* world, EntityID entity);
|
||||
static glm::vec3 AbsoluteOrientationEuler(EntityWrapper entity);
|
||||
static glm::quat AbsoluteOrientation(EntityWrapper entity);
|
||||
static glm::quat AbsoluteOrientation(World* world, EntityID entity);
|
||||
static glm::vec3 AbsoluteScale(EntityWrapper entity);
|
||||
static glm::vec3 AbsoluteScale(World* world, EntityID entity);
|
||||
static glm::mat4 ModelMatrix(EntityWrapper entity);
|
||||
static glm::mat4 ModelMatrix(EntityID entity, World* world);
|
||||
static glm::vec3 TransformPoint(const glm::vec3& point, const glm::mat4& matrix);
|
||||
|
||||
static int RecalculatedPositions;
|
||||
static int RecalculatedOrientations;
|
||||
static int RecalculatedScales;
|
||||
|
||||
private:
|
||||
static std::unordered_map<EntityWrapper, glm::vec3> PositionCache;
|
||||
static std::unordered_map<EntityWrapper, glm::quat> OrientationCache;
|
||||
static std::unordered_map<EntityWrapper, glm::vec3> ScaleCache;
|
||||
static std::unordered_map<EntityWrapper, glm::mat4> MatrixCache;
|
||||
|
||||
EventRelay<TransformSystem, Events::EntityDeleted> m_EEntityDeleted;
|
||||
bool OnEntityDeleted(const Events::EntityDeleted& e);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -35,7 +35,7 @@ public:
|
||||
// Delete a component off an entity
|
||||
void DeleteComponent(EntityID entity, const std::string& componentType);
|
||||
// Get all components of the specified type
|
||||
const ComponentPool* GetComponents(const std::string& componentType);
|
||||
ComponentPool* GetComponents(const std::string& componentType);
|
||||
// Get entity parent
|
||||
EntityID GetParent(EntityID entity);
|
||||
// Change the parent of an entity
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
virtual bool OnCommand(const Events::InputCommand& e) override;
|
||||
virtual void Reset();
|
||||
|
||||
void AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer, double& assaultDashCoolDownTimer, EntityID playerID);
|
||||
void AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer, Field<double> assaultDashCoolDownTimer, EntityID playerID);
|
||||
virtual bool AssaultDashDoubleTapped() const { return m_AssaultDashDoubleTapped; }
|
||||
virtual bool PlayerIsDashing() const { return m_PlayerIsDashing; }
|
||||
bool SpecialAbilityKeyDown() const { return m_SpecialAbilityKeyDown; }
|
||||
@@ -358,7 +358,7 @@ bool FirstPersonInputController<EventContext>::OnLockMouse(const Events::LockMou
|
||||
}
|
||||
|
||||
template <typename EventContext>
|
||||
void FirstPersonInputController<EventContext>::AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer, double& assaultDashCoolDownTimer, EntityID playerID) {
|
||||
void FirstPersonInputController<EventContext>::AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer, Field<double> assaultDashCoolDownTimer, EntityID playerID) {
|
||||
m_AssaultDashDoubleTapDeltaTime += dt;
|
||||
assaultDashCoolDownTimer -= dt;
|
||||
//cooldown = assaultDashCoolDownMaxTimer sec, pretend the dash lasts 0.25 sec (for friction to do its work)
|
||||
|
||||
@@ -10,28 +10,32 @@
|
||||
#include <boost/asio.hpp>
|
||||
#include <boost/shared_array.hpp>
|
||||
|
||||
#include "Core/World.h"
|
||||
#include "Core/EntityFile.h"
|
||||
#include "Core/EventBroker.h"
|
||||
#include "Core/ConfigFile.h"
|
||||
#include "Core/EPlayerDeath.h"
|
||||
#include "Core/EPlayerDamage.h"
|
||||
#include "Core/EPlayerSpawned.h"
|
||||
#include "Core/EAmmoPickup.h"
|
||||
#include "Game/Events/EDoubleJump.h"
|
||||
#include "Game/Events/EDashAbility.h"
|
||||
#include "Game/Events/EReset.h"
|
||||
#include "Input/EInputCommand.h"
|
||||
#include "imgui/imgui.h"
|
||||
#include "Network/Network.h"
|
||||
#include "Network/MessageType.h"
|
||||
#include "Network/PlayerDefinition.h"
|
||||
#include "Network/UDPClient.h"
|
||||
#include "Network/TCPClient.h"
|
||||
#include "Network/SnapshotDefinitions.h"
|
||||
#include "Core/World.h"
|
||||
#include "Core/EntityFile.h"
|
||||
#include "Core/EventBroker.h"
|
||||
#include "Core/ConfigFile.h"
|
||||
#include "Core/EPlayerDeath.h"
|
||||
#include "Input/EInputCommand.h"
|
||||
#include "Core/EPlayerDamage.h"
|
||||
#include "../Game/Events/EDoubleJump.h"
|
||||
#include "Network/EInterpolate.h"
|
||||
#include "Network/SnapshotFilter.h"
|
||||
#include "Core/EPlayerSpawned.h"
|
||||
#include "Core/EAmmoPickup.h"
|
||||
#include "Network/ESearchForServers.h"
|
||||
#include "../Game/Events/EDashAbility.h"
|
||||
#include "Network/EDisplayServerlist.h"
|
||||
#include "Network/EConnectRequest.h"
|
||||
#include "Network/EPlayerDisconnected.h"
|
||||
#include "Network/ESearchForServers.h"
|
||||
#include "Network/EInterpolate.h"
|
||||
#include "Network/SnapshotFilter.h"
|
||||
|
||||
class Client : public Network
|
||||
{
|
||||
public:
|
||||
@@ -40,9 +44,9 @@ public:
|
||||
~Client();
|
||||
|
||||
void Connect(std::string address, int port);
|
||||
void Update() override;
|
||||
void Update(double dt) override;
|
||||
private:
|
||||
//UDPClient m_Unreliable;
|
||||
UDPClient m_Unreliable;
|
||||
TCPClient m_Reliable;
|
||||
std::vector<Events::PlayerSpawned> m_PlayerSpawnEvents;
|
||||
void parseSpawnEvents();
|
||||
@@ -74,14 +78,14 @@ private:
|
||||
// Network logic
|
||||
PlayerDefinition m_PlayerDefinitions[8];
|
||||
SnapshotDefinitions m_NextSnapshot;
|
||||
double m_DurationOfPingTime;
|
||||
std::clock_t m_StartPingTime;
|
||||
std::clock_t m_TimeSinceSentInputs;
|
||||
unsigned int m_SendInputIntervalMs;
|
||||
double m_DurationOfPingTime = 0;
|
||||
double m_StartPingTime = 0;
|
||||
double m_TimeSinceSentInputs = 0;
|
||||
double m_SendInputInterval = 0.033;
|
||||
std::vector<Events::InputCommand> m_InputCommandBuffer;
|
||||
|
||||
// Private member functions
|
||||
size_t receive(char* data);
|
||||
size_t receive(char* data);
|
||||
void disconnect();
|
||||
void parseMessageType(Packet& packet);
|
||||
void updateFields(Packet& packet, const ComponentInfo& componentInfo, const EntityID& entityID);
|
||||
@@ -100,6 +104,7 @@ private:
|
||||
void parseDoubleJump(Packet& packet);
|
||||
void parseDashEffect(Packet& packet);
|
||||
void parseAmmoPickup(Packet& packet);
|
||||
void parseRemoveWorld(Packet& packet);
|
||||
void InterpolateFields(Packet& packet, const ComponentInfo & componentInfo, const EntityID & entityID, const std::string & componentType);
|
||||
void parseSnapshot(Packet& packet);
|
||||
void identifyPacketLoss();
|
||||
@@ -109,7 +114,6 @@ private:
|
||||
void sendLocalPlayerTransform();
|
||||
void becomePlayer();
|
||||
void displayServerlist();
|
||||
void removeWorld();
|
||||
void createMainMenu();
|
||||
// Mapping Logic
|
||||
// Returns if local EntityID exist in map
|
||||
@@ -138,8 +142,8 @@ private:
|
||||
UDPClient m_ServerlistRequest;
|
||||
std::vector<ServerInfo> m_Serverlist;
|
||||
bool m_SearchingForServers = false;
|
||||
std::clock_t m_StartSearchTime;
|
||||
double m_SearchingTime = 2000; // Config I guess
|
||||
double m_TimeSearched = 0;
|
||||
double m_SearchingTime = 0.2; // Config I guess
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,6 +23,7 @@ enum class MessageType
|
||||
OnDashEffect,
|
||||
ServerlistRequest,
|
||||
AmmoPickup,
|
||||
RemoveWorld,
|
||||
Invalid
|
||||
};
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
Network(World* world, EventBroker* eventBroker);
|
||||
virtual ~Network() { };
|
||||
|
||||
virtual void Update() = 0;
|
||||
virtual void Update(double dt) = 0;
|
||||
|
||||
protected:
|
||||
World* m_World;
|
||||
@@ -39,6 +39,8 @@ protected:
|
||||
void logReceivedData(int bytesReceived);
|
||||
void saveToFile();
|
||||
void updateNetworkData();
|
||||
void popNetworkSegmentOfHeader(Packet& packet);
|
||||
void removeWorld();
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -16,7 +16,9 @@ public:
|
||||
Packet(char* data, const size_t sizeOfPacket);
|
||||
Packet(MessageType type);
|
||||
~Packet();
|
||||
void Init(MessageType type, unsigned int& packetID);
|
||||
void Init(MessageType type, unsigned int& packetID,
|
||||
int groupIndex, int groupSize,
|
||||
int packetGroup);
|
||||
|
||||
// Add primitive types like int, float, char...
|
||||
template<typename T>
|
||||
@@ -25,7 +27,8 @@ public:
|
||||
// Check if we are trying to add more than the package can fit.
|
||||
if (m_MaxPacketSize < m_Offset + sizeof(T)) {
|
||||
if (m_MaxPacketSize >= 32000) {
|
||||
LOG_WARNING("Package::WritePrimitive(): New size is huge %i bytes\n", m_MaxPacketSize*2);
|
||||
// This will spam couse 8 players are over 100 000 bytes
|
||||
//LOG_WARNING("Package::WritePrimitive(): New size is huge %i bytes\n", m_MaxPacketSize*2);
|
||||
}
|
||||
resizeData();
|
||||
}
|
||||
@@ -57,13 +60,19 @@ public:
|
||||
void UpdateSize();
|
||||
char* ReadData(int SizeOfData);
|
||||
void ChangePacketID(unsigned int& packetID);
|
||||
void ChangeGroupIndex(int groupIndex);
|
||||
void ChangeGroupSize(int groupSize);
|
||||
void ChangeGroup(int group);
|
||||
size_t Size() { return m_Offset; };
|
||||
char* Data() { return m_Data; };
|
||||
MessageType GetMessageType();
|
||||
size_t Group();
|
||||
size_t DataReadSize() { return m_ReturnDataOffset; }
|
||||
size_t MaxSize() { return m_MaxPacketSize; }
|
||||
size_t HeaderSize() { return m_HeaderSize; }
|
||||
|
||||
size_t GroupIndex();
|
||||
size_t GroupSize();
|
||||
size_t PacketID();
|
||||
private:
|
||||
char* m_Data;
|
||||
size_t m_ReturnDataOffset = 0;
|
||||
@@ -72,6 +81,13 @@ private:
|
||||
size_t m_HeaderSize = 0;
|
||||
void resizeData();
|
||||
void resizeData(int size);
|
||||
|
||||
size_t packetSizeOffset = 0;
|
||||
size_t groupOffset = 0;
|
||||
size_t groupIndexOffset = 0;
|
||||
size_t groupSizeOffset = 0;
|
||||
size_t messageTypeOffset = 0;
|
||||
size_t packetIDOffset = 0;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -14,6 +14,7 @@ struct PlayerDefinition {
|
||||
unsigned short TCPPort;
|
||||
// use for tcp connections
|
||||
boost::shared_ptr<boost::asio::ip::tcp::socket> TCPSocket;
|
||||
int PacketGroup = 1;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "Network/MessageType.h"
|
||||
#include "Network/PlayerDefinition.h"
|
||||
#include "Core/World.h"
|
||||
#include "Core/EntityFile.h"
|
||||
#include "Core/EventBroker.h"
|
||||
#include "../Network/Network.h"
|
||||
#include "Input/EInputCommand.h"
|
||||
@@ -24,6 +25,8 @@
|
||||
#include "Core/EPlayerDeath.h"
|
||||
#include "Network/EPlayerConnected.h"
|
||||
#include "Network/EKillDeath.h"
|
||||
#include "Core/EWin.h"
|
||||
#include "Game/Events/EReset.h"
|
||||
|
||||
class Server : public Network
|
||||
{
|
||||
@@ -31,16 +34,17 @@ public:
|
||||
Server(World* world, EventBroker* eventBroker, int port);
|
||||
~Server();
|
||||
|
||||
void Update() override;
|
||||
void Update(double dt) override;
|
||||
|
||||
private:
|
||||
// Network channels
|
||||
TCPServer m_Reliable;
|
||||
//UDPServer m_Unreliable;
|
||||
UDPServer m_Unreliable;
|
||||
UDPServer m_ServerlistRequest;
|
||||
// dont forget to set these in the childrens receive logic
|
||||
boost::asio::ip::address m_Address;
|
||||
int m_Port = 27666;
|
||||
bool m_GameIsOver = false;
|
||||
// Sending messages to client logic
|
||||
std::map<PlayerID, PlayerDefinition> m_ConnectedPlayers;
|
||||
std::vector<PlayerID> m_PlayersToDisconnect;
|
||||
@@ -48,14 +52,14 @@ private:
|
||||
char readBuffer[BUFFERSIZE] = { 0 };
|
||||
size_t bytesRead = 0;
|
||||
// time for previouse message
|
||||
std::clock_t previousePingMessage = std::clock();
|
||||
std::clock_t previousSnapshotMessage = std::clock();
|
||||
std::clock_t timOutTimer = std::clock();
|
||||
double previousPingMessage = 0;
|
||||
double previousSnapshotMessage = 0;
|
||||
double timeOutTimer = 0;
|
||||
|
||||
// How often we send messages (milliseconds)
|
||||
float pingIntervalMs;
|
||||
float snapshotInterval;
|
||||
int checkTimeOutInterval = 100;
|
||||
// How often we send messages (seconds)
|
||||
double pingInterval = 1;
|
||||
double snapshotInterval = 0.05;
|
||||
double checkTimeOutInterval = 0.1;
|
||||
int m_NextPlayerID = 0;
|
||||
std::vector<Events::InputCommand> m_InputCommandsToBroadcast;
|
||||
//Timers
|
||||
@@ -71,6 +75,7 @@ private:
|
||||
void reliableBroadcast(Packet& packet);
|
||||
void unreliableBroadcast(Packet& packet);
|
||||
void sendSnapshot();
|
||||
void createWorldSnapshot(Packet& packet);
|
||||
void addPlayersToPacket(Packet& packet, EntityID entityID);
|
||||
void addChildrenToPacket(Packet& packet, EntityID entityID);
|
||||
void addInputCommandsToPacket(Packet& packet);
|
||||
@@ -83,6 +88,7 @@ private:
|
||||
void kick(PlayerID player);
|
||||
PlayerID getPlayerIDFromEndpoint();
|
||||
PlayerID getPlayerIDFromEntityID(EntityID entityID);
|
||||
void resetMap();
|
||||
void parsePlayerTransform(Packet& packet);
|
||||
void parseOnInputCommand(Packet& packet);
|
||||
void parseClientPing();
|
||||
@@ -110,6 +116,8 @@ private:
|
||||
bool OnAmmoPickup(const Events::AmmoPickup& e);
|
||||
EventRelay<Server, Events::PlayerDeath> m_EPlayerDeath;
|
||||
bool OnPlayerDeath(const Events::PlayerDeath& e);
|
||||
EventRelay<Server, Events::Win> m_EWin;
|
||||
bool OnWin(const Events::Win& e);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#ifndef UDPClient_h__
|
||||
#define UDPClient_h__
|
||||
#include <map>
|
||||
#include <algorithm>
|
||||
|
||||
#include <boost/asio.hpp>
|
||||
#include "Network/NetworkClient.h"
|
||||
@@ -13,16 +15,27 @@ public:
|
||||
bool Connect(std::string playerName, std::string address, int port);
|
||||
void Disconnect();
|
||||
void Receive(Packet& packet);
|
||||
void Send(Packet & packet);
|
||||
void ReceivePackets();
|
||||
void Send(Packet& packet);
|
||||
void Broadcast(Packet& packet, int port);
|
||||
bool IsSocketAvailable();
|
||||
// Returns false if no packets are available
|
||||
bool GetNextPacket(Packet& packet);
|
||||
private:
|
||||
typedef std::map<unsigned int, std::vector<std::pair<int, boost::shared_ptr<char>>>> PacketMap;
|
||||
// Assio UDP logic
|
||||
boost::asio::io_service m_IOService;
|
||||
boost::asio::ip::udp::endpoint m_ReceiverEndpoint;
|
||||
boost::shared_ptr<boost::asio::ip::udp::socket> m_Socket;
|
||||
int m_LastReceivedSnapshotGroup = 0;
|
||||
int readBuffer();
|
||||
void readPartOfPacket();
|
||||
PacketID m_SendPacketID = 0;
|
||||
//map:(packetGroup, vector:(pair:(groupIndex, packetData)))
|
||||
PacketMap m_PacketSegmentMap;
|
||||
bool hasReceivedPacket(int packetGroup, int groupIndex);
|
||||
// 2^19
|
||||
const int m_SizeOfSocketBuffer = 524288;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "NetworkServer.h"
|
||||
#include <boost/asio/ip/udp.hpp>
|
||||
#define MAXPACKETSIZE 64000
|
||||
|
||||
class UDPServer : public NetworkServer
|
||||
{
|
||||
@@ -13,6 +14,7 @@ public:
|
||||
void AcceptNewConnections(int& nextPlayerID, std::map<PlayerID, PlayerDefinition>& connectedPlayers);
|
||||
void Receive(Packet & packet, PlayerDefinition & playerDefinition);
|
||||
void Send(Packet & packet, PlayerDefinition & playerDefinition);
|
||||
void SendToConnectedPlayers(Packet & packet, std::map<PlayerID, PlayerDefinition>& playersTosendTo);
|
||||
void Send(Packet & packet);
|
||||
void Send(Packet & packet, boost::asio::ip::udp::endpoint endpoint);
|
||||
void Broadcast(Packet & packet, int port);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "IRenderer.h"
|
||||
#include "ShaderProgram.h"
|
||||
#include "PNG.h"
|
||||
|
||||
class CubeMapPass
|
||||
{
|
||||
@@ -21,7 +22,7 @@ private:
|
||||
IRenderer* m_Renderer;
|
||||
std::string m_PreviusCubeMapTexture;
|
||||
|
||||
std::vector<Texture*> m_CubeMapTextures;
|
||||
std::vector<std::string> m_CubeMapTextures;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "../GLM.h"
|
||||
#include "../Core/ComponentWrapper.h"
|
||||
#include "RenderJob.h"
|
||||
#include "../Core/Transform.h"
|
||||
#include "../Core/TransformSystem.h"
|
||||
#include "../Core/World.h"
|
||||
|
||||
struct DirectionalLightJob : RenderJob
|
||||
@@ -16,7 +16,7 @@ struct DirectionalLightJob : RenderJob
|
||||
: RenderJob()
|
||||
{
|
||||
|
||||
Direction = glm::vec4(0,0,-1,0) * glm::inverse(Transform::AbsoluteOrientation(m_World, transformComponent.EntityID));
|
||||
Direction = glm::vec4(0,0,-1,0) * glm::inverse(TransformSystem::AbsoluteOrientation(m_World, transformComponent.EntityID));
|
||||
//Direction = glm::vec4((glm::vec3)directionalLightComponent["Direction"], 0.f);
|
||||
Color = (glm::vec4)directionalLightComponent["Color"];
|
||||
Intensity = (double)directionalLightComponent["Intensity"];
|
||||
|
||||
@@ -18,15 +18,17 @@ struct ExplosionEffectJob : ModelJob
|
||||
ExplosionEffectJob(ComponentWrapper explosionEffectComponent, ::Model* model, Camera* camera, glm::mat4 matrix, ::RawModel::MaterialProperties matGroup, ComponentWrapper modelComponent, ::World* world, glm::vec4 fillColor, float fillPercentage, bool isShielded, bool shadow)
|
||||
: ModelJob(model, camera, matrix, matGroup, modelComponent, world, fillColor, fillPercentage, isShielded, shadow)
|
||||
{
|
||||
ExplosionOrigin = (glm::vec3)explosionEffectComponent["ExplosionOrigin"];
|
||||
TimeSinceDeath = (double)explosionEffectComponent["TimeSinceDeath"];
|
||||
ExplosionDuration = (double)explosionEffectComponent["ExplosionDuration"];
|
||||
EndColor = (glm::vec4)explosionEffectComponent["EndColor"];
|
||||
Randomness = (bool)explosionEffectComponent["Randomness"];
|
||||
RandomnessScalar = (double)explosionEffectComponent["RandomnessScalar"];
|
||||
Velocity = (glm::vec2)explosionEffectComponent["Velocity"];
|
||||
ColorByDistance = (bool)explosionEffectComponent["ColorByDistance"];
|
||||
ExponentialAccelaration = (bool)explosionEffectComponent["ExponentialAccelaration"];
|
||||
ExplosionOrigin = (Field<glm::vec3>)explosionEffectComponent["ExplosionOrigin"];
|
||||
TimeSinceDeath = (Field<double>)explosionEffectComponent["TimeSinceDeath"];
|
||||
ExplosionDuration = (Field<double>)explosionEffectComponent["ExplosionDuration"];
|
||||
EndColor = (Field<glm::vec4>)explosionEffectComponent["EndColor"];
|
||||
Randomness = (Field<bool>)explosionEffectComponent["Randomness"];
|
||||
RandomnessScalar = (Field<double>)explosionEffectComponent["RandomnessScalar"];
|
||||
Velocity = (Field<glm::vec2>)explosionEffectComponent["Velocity"];
|
||||
ColorByDistance = (Field<bool>)explosionEffectComponent["ColorByDistance"];
|
||||
ExponentialAccelaration = (Field<bool>)explosionEffectComponent["ExponentialAccelaration"];
|
||||
Reverse = (Field<bool>)explosionEffectComponent["Reverse"];Reverse = (bool)explosionEffectComponent["Reverse"];
|
||||
ColorDistanceScalar = (Field<double>)explosionEffectComponent["ColorDistanceScalar"];ColorDistanceScalar = (double)explosionEffectComponent["ColorDistanceScalar"];
|
||||
};
|
||||
|
||||
glm::vec3 ExplosionOrigin;
|
||||
@@ -38,12 +40,14 @@ struct ExplosionEffectJob : ModelJob
|
||||
glm::vec4 EndColor;
|
||||
bool Randomness = false;
|
||||
|
||||
float RandomnessScalar = 1.f;
|
||||
double RandomnessScalar = 1.f;
|
||||
glm::vec2 Velocity;
|
||||
bool ColorByDistance = false;
|
||||
//bool ReverseAnimation = false;
|
||||
//bool Wireframe = false;
|
||||
bool ExponentialAccelaration = false;
|
||||
bool Reverse = false;
|
||||
double ColorDistanceScalar = 1.f;
|
||||
|
||||
std::array<float, 50> RandomNumbers = {
|
||||
0.3257552917701f,
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
struct Image
|
||||
{
|
||||
virtual ~Image() = default;
|
||||
|
||||
enum class ImageFormat
|
||||
{
|
||||
Unknown,
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
#include "../Core/ResourceManager.h"
|
||||
#include "Camera.h"
|
||||
#include "../Core/World.h"
|
||||
#include "../Core/Transform.h"
|
||||
#include "../Core/TransformSystem.h"
|
||||
#include "Skeleton.h"
|
||||
#include "ShaderProgram.h"
|
||||
#include "BlendTree.h"
|
||||
@@ -26,24 +26,13 @@ struct ModelJob : RenderJob
|
||||
ModelID = model->ResourceID;
|
||||
Type = matProp.type;
|
||||
::RawModel::MaterialBasic* matGroup = matProp.material;
|
||||
ShaderID = matProp.ShaderID;
|
||||
switch(matProp.type){
|
||||
case ::RawModel::MaterialType::Basic:
|
||||
if (Model->IsSkinned()) {
|
||||
ShaderID = ResourceManager::Load<ShaderProgram>("#ForwardPlusSkinnedProgram")->ResourceID;
|
||||
}
|
||||
else {
|
||||
ShaderID = ResourceManager::Load<ShaderProgram>("#ForwardPlusProgram")->ResourceID;
|
||||
}
|
||||
TextureID = 0;
|
||||
break;
|
||||
case ::RawModel::MaterialType::SingleTextures:
|
||||
{
|
||||
if (Model->IsSkinned()) {
|
||||
ShaderID = ResourceManager::Load<ShaderProgram>("#ForwardPlusSkinnedProgram")->ResourceID;
|
||||
}
|
||||
else {
|
||||
ShaderID = ResourceManager::Load<ShaderProgram>("#ForwardPlusProgram")->ResourceID;
|
||||
}
|
||||
::RawModel::MaterialSingleTextures* singleTextures = static_cast<::RawModel::MaterialSingleTextures*>(matProp.material);
|
||||
TextureID = (singleTextures->ColorMap.Texture) ? singleTextures->ColorMap.Texture->ResourceID : 0;
|
||||
if (modelComponent["DiffuseTexture"]) {
|
||||
@@ -65,12 +54,6 @@ struct ModelJob : RenderJob
|
||||
break;
|
||||
case ::RawModel::MaterialType::SplatMapping:
|
||||
{
|
||||
if (Model->IsSkinned()) {
|
||||
ShaderID = ResourceManager::Load<ShaderProgram>("#ForwardPlusSplatMapSkinnedProgram")->ResourceID;
|
||||
}
|
||||
else {
|
||||
ShaderID = ResourceManager::Load<ShaderProgram>("#ForwardPlusSplatMapProgram")->ResourceID;
|
||||
}
|
||||
::RawModel::MaterialSplatMapping* SplatTextures = static_cast<::RawModel::MaterialSplatMapping*>(matProp.material);
|
||||
|
||||
SplatMap = &SplatTextures->SplatMap;
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "../GLM.h"
|
||||
#include "../Core/ComponentWrapper.h"
|
||||
#include "RenderJob.h"
|
||||
#include "../Core/Transform.h"
|
||||
#include "../Core/TransformSystem.h"
|
||||
#include "../Core/World.h"
|
||||
|
||||
struct PointLightJob : RenderJob
|
||||
@@ -16,7 +16,7 @@ struct PointLightJob : RenderJob
|
||||
: RenderJob()
|
||||
{
|
||||
Position = glm::vec4((glm::vec3)transformComponent["Position"], 1.0f);
|
||||
Position = glm::vec4(Transform::AbsolutePosition(m_World, transformComponent.EntityID), 1.f);
|
||||
Position = glm::vec4(TransformSystem::AbsolutePosition(m_World, transformComponent.EntityID), 1.f);
|
||||
Color = (glm::vec4)pointLightComponent["Color"];
|
||||
Radius = (double)pointLightComponent["Radius"];
|
||||
Intensity = (double)pointLightComponent["Intensity"];
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
#include "../Core/ResourceManager.h"
|
||||
#include "Texture.h"
|
||||
#include "Skeleton.h"
|
||||
#include "ShaderProgram.h"
|
||||
|
||||
#include "boost\endian\buffers.hpp"
|
||||
|
||||
@@ -87,6 +88,7 @@ public:
|
||||
struct MaterialProperties {
|
||||
MaterialType type;
|
||||
MaterialBasic* material;
|
||||
unsigned int ShaderID = 0;
|
||||
};
|
||||
|
||||
const Vertex* Vertices() const {
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
#include "ModelJob.h"
|
||||
#include "Renderer.h"
|
||||
#include "PointLightJob.h"
|
||||
#include "../Core/Transform.h"
|
||||
#include "../Core/TransformSystem.h"
|
||||
#include "../Core/EPlayerSpawned.h"
|
||||
#include "../Core/Octree.h"
|
||||
#include "../Collision/EntityAABB.h"
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "../Core/EventBroker.h"
|
||||
#include "ImGuiRenderPass.h"
|
||||
#include "Camera.h"
|
||||
#include "../Core/Transform.h"
|
||||
#include "../Core/TransformSystem.h"
|
||||
#include "imgui/imgui.h"
|
||||
#include "TextPass.h"
|
||||
#include "Util/CommonFunctions.h"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "../Core/ResourceManager.h"
|
||||
#include "Camera.h"
|
||||
#include "../Core/World.h"
|
||||
#include "../Core/Transform.h"
|
||||
#include "../Core/TransformSystem.h"
|
||||
#include "Skeleton.h"
|
||||
|
||||
struct SpriteJob : RenderJob
|
||||
@@ -37,7 +37,7 @@ struct SpriteJob : RenderJob
|
||||
BlurBackground = (bool)cSprite["BlurBackground"];
|
||||
|
||||
Entity = cSprite.EntityID;
|
||||
Position = Transform::AbsolutePosition(world, cSprite.EntityID);
|
||||
Position = TransformSystem::AbsolutePosition(world, cSprite.EntityID);
|
||||
Depth = 0;
|
||||
if (depthSorted) {
|
||||
glm::vec3 viewpos = glm::vec3(camera->ViewMatrix() * glm::vec4(Position, 1));
|
||||
@@ -50,7 +50,7 @@ struct SpriteJob : RenderJob
|
||||
FillColor = fillColor;
|
||||
FillPercentage = fillPercentage;
|
||||
|
||||
glm::vec3 scale = Transform::AbsoluteScale(world, cSprite.EntityID);
|
||||
glm::vec3 scale = TransformSystem::AbsoluteScale(world, cSprite.EntityID);
|
||||
|
||||
if((bool)cSprite["KeepRatio"] == true) {
|
||||
if(scale.y >= scale.x) {
|
||||
|
||||
@@ -17,8 +17,8 @@ struct TextJob : RenderJob
|
||||
: RenderJob()
|
||||
{
|
||||
Matrix = matrix;
|
||||
Color = (glm::vec4)textComponent["Color"];
|
||||
Content = (std::string)textComponent["Content"];
|
||||
Color = (const glm::vec4&)textComponent["Color"];
|
||||
Content = (const std::string&)textComponent["Content"];
|
||||
Resource = font;
|
||||
|
||||
if ((int)textComponent["Alignment"] == textComponent["Alignment"].Enum("Left")) {
|
||||
|
||||
@@ -23,6 +23,7 @@ public:
|
||||
|
||||
private:
|
||||
void renderText(std::string text, Font* font, TextJob::AlignmentEnum alignment, glm::vec4 color, glm::mat4 modelMatrix, glm::mat4 projectionMatrix, glm::mat4 viewMatrix);
|
||||
std::string parseColors(std::string text, std::map<int, glm::vec4>& colorChanges, glm::vec4 originalColor);
|
||||
|
||||
Font* font;
|
||||
GLuint VAO, VBO;
|
||||
|
||||
@@ -14,8 +14,6 @@ protected:
|
||||
TextureSprite(std::string path);
|
||||
|
||||
public:
|
||||
~TextureSprite();
|
||||
|
||||
void Bind(GLenum textureUnit = GL_TEXTURE0);
|
||||
|
||||
GLuint m_Texture = 0;
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef Events_ChangeBGM_h__
|
||||
#define Events_ChangeBGM_h__
|
||||
|
||||
#include <string>
|
||||
#include "../Engine/Core/EventBroker.h"
|
||||
|
||||
namespace Events
|
||||
{
|
||||
|
||||
struct ChangeBGM : Event
|
||||
{
|
||||
std::string FilePath = "";
|
||||
};
|
||||
|
||||
}
|
||||
#endif // Events_ChangeBGM_h__
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef Events_PlayAnnouncerVoice_h__
|
||||
#define Events_PlayAnnouncerVoice_h__
|
||||
|
||||
#include <string>
|
||||
#include "../Engine/Core/EventBroker.h"
|
||||
|
||||
namespace Events
|
||||
{
|
||||
|
||||
struct PlayAnonuncerVoice : public Event
|
||||
{
|
||||
std::string FilePath = "";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -12,7 +12,8 @@ namespace Events
|
||||
// Sound behavior is thereby specified in the SoundEmitter component.
|
||||
struct PlaySoundOnEntity : public Event
|
||||
{
|
||||
EntityID EmitterID = 0;
|
||||
EntityWrapper Emitter = EntityWrapper::Invalid;
|
||||
float Gain = 1.f;
|
||||
std::string FilePath = "";
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef Events_SetAnnouncerGain_h__
|
||||
#define Events_SetAnnouncerGain_h__
|
||||
|
||||
#include "../Engine/Core/EventBroker.h"
|
||||
|
||||
namespace Events
|
||||
{
|
||||
|
||||
struct SetAnnouncerGain : public Event
|
||||
{
|
||||
float Gain = 1;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif //
|
||||
@@ -9,32 +9,36 @@
|
||||
#include "OpenAL/al.h"
|
||||
#include "OpenAL/alc.h"
|
||||
|
||||
#include "imgui/imgui.h"
|
||||
|
||||
#include "Core/World.h"
|
||||
#include "Core/EventBroker.h"
|
||||
#include "../Engine/Core/World.h"
|
||||
#include "../Engine/Core/EventBroker.h"
|
||||
#include "../Engine/Core/ResourceManager.h"
|
||||
#include "../Engine/Core/ConfigFile.h"
|
||||
#include "Core/Transform.h" // Absolute transform
|
||||
#include "Sound/Sound.h"
|
||||
#include "../Engine/Core/TransformSystem.h"
|
||||
#include "../Engine/Sound/Sound.h"
|
||||
#include "../Engine/Sound/EPlayQueueOnEntity.h"
|
||||
#include "Sound/EPlaySoundOnEntity.h"
|
||||
#include "Sound/EPlaySoundOnPosition.h"
|
||||
#include "Sound/EPlayBackgroundMusic.h"
|
||||
#include "Sound/EPauseSound.h"
|
||||
#include "Sound/EContinueSound.h"
|
||||
#include "Sound/EStopSound.h"
|
||||
#include "Sound/ESetBGMGain.h"
|
||||
#include "Sound/ESetSFXGain.h"
|
||||
#include "Core/EPause.h"
|
||||
#include "Core/EComponentAttached.h"
|
||||
#include "../Engine/Sound/EPlaySoundOnEntity.h"
|
||||
#include "../Engine/Sound/EPlaySoundOnPosition.h"
|
||||
#include "../Engine/Sound/EPlayBackgroundMusic.h"
|
||||
#include "../Engine/Sound/EPlayAnnouncerVoice.h"
|
||||
#include "../Engine/Sound/EPauseSound.h"
|
||||
#include "../Engine/Sound/EContinueSound.h"
|
||||
#include "../Engine/Sound/EStopSound.h"
|
||||
#include "../Engine/Sound/ESetBGMGain.h"
|
||||
#include "../Engine/Sound/ESetSFXGain.h"
|
||||
#include "../Engine/Sound/ESetAnnouncerGain.h"
|
||||
#include "../Engine/Sound/EChangeBGM.h"
|
||||
#include "../Engine/Core/EPause.h"
|
||||
#include "../Engine/Core/EComponentAttached.h"
|
||||
#include "../Core/EPlayerSpawned.h"
|
||||
#include "../Rendering/ESetCamera.h"
|
||||
|
||||
|
||||
typedef std::pair<ALuint, std::vector<ALuint>> QueuedBuffers;
|
||||
|
||||
enum class SoundType {
|
||||
SFX,
|
||||
BGM
|
||||
BGM,
|
||||
Announcer
|
||||
};
|
||||
|
||||
struct Source
|
||||
@@ -43,6 +47,7 @@ struct Source
|
||||
Sound* SoundResource = nullptr;
|
||||
ALuint ALsource;
|
||||
SoundType Type;
|
||||
float Duration;
|
||||
};
|
||||
|
||||
class SoundManager
|
||||
@@ -74,14 +79,19 @@ private:
|
||||
ALenum getSourceState(ALuint source);
|
||||
void setGain(Source* source, float gain);
|
||||
void setSoundProperties(Source* source, ComponentWrapper* soundComponent);
|
||||
float getDurationSeconds(Source* source);
|
||||
float getTimeOffsetSeconds(Source* source);
|
||||
|
||||
// Specific logic
|
||||
void playSound(Source* source);
|
||||
// Need to be the same format (sample rate etc)
|
||||
// Needs to be the same format (sample rate etc)
|
||||
void playQueue(QueuedBuffers qb);
|
||||
void stopSound(Source* source);
|
||||
Source* createSource(std::string filePath);
|
||||
std::unordered_map<EntityID, Source*> m_Sources;
|
||||
void matchBGMLoop();
|
||||
Source* m_CurrentBGM = nullptr;
|
||||
Source* m_CurrentBGMCombo = nullptr;
|
||||
|
||||
// Logic
|
||||
World* m_World = nullptr;
|
||||
@@ -93,6 +103,7 @@ private:
|
||||
|
||||
float m_BGMVolumeChannel = 1.0f;
|
||||
float m_SFXVolumeChannel = 1.0f;
|
||||
float m_AnnouncerVolumeChannel = 1.0f;
|
||||
EntityWrapper m_LocalPlayer = EntityWrapper();
|
||||
|
||||
// Events
|
||||
@@ -102,6 +113,8 @@ private:
|
||||
bool OnPlaySoundOnPosition(const Events::PlaySoundOnPosition &e);
|
||||
EventRelay<SoundManager, Events::PlayBackgroundMusic> m_EPlayBackgroundMusic;
|
||||
bool OnPlayBackgroundMusic(const Events::PlayBackgroundMusic &e);
|
||||
EventRelay<SoundManager, Events::PlayAnonuncerVoice> m_EPlayAnnouncerVoice;
|
||||
bool OnPlayAnnouncerVoice(const Events::PlayAnonuncerVoice& e);
|
||||
EventRelay<SoundManager, Events::PauseSound> m_EPauseSound;
|
||||
bool OnPauseSound(const Events::PauseSound &e);
|
||||
EventRelay<SoundManager, Events::StopSound> m_EStopSound;
|
||||
@@ -112,6 +125,8 @@ private:
|
||||
bool OnSetBGMGain(const Events::SetBGMGain &e);
|
||||
EventRelay<SoundManager, Events::SetSFXGain> m_ESetSFXGain;
|
||||
bool OnSetSFXGain(const Events::SetSFXGain &e);
|
||||
EventRelay<SoundManager, Events::SetAnnouncerGain> m_ESetAnnouncerGain;
|
||||
bool OnSetAnnouncerGain(const Events::SetAnnouncerGain& e);
|
||||
EventRelay<SoundManager, Events::ComponentAttached> m_EComponentAttached;
|
||||
bool OnComponentAttached(const Events::ComponentAttached &e);
|
||||
EventRelay<SoundManager, Events::Pause> m_EPause;
|
||||
@@ -122,6 +137,10 @@ private:
|
||||
bool OnPlayerSpawned(const Events::PlayerSpawned &e);
|
||||
EventRelay<SoundManager, Events::PlayQueueOnEntity> m_EPlayQueueOnEntity;
|
||||
bool OnPlayQueueOnEntity(const Events::PlayQueueOnEntity &e);
|
||||
EventRelay<SoundManager, Events::ChangeBGM> m_EChangeBGM;
|
||||
bool OnChangeBGM(const Events::ChangeBGM &e);
|
||||
EventRelay<SoundManager, Events::SetCamera> m_ESetCamera;
|
||||
bool OnSetCamera(const Events::SetCamera& e);
|
||||
|
||||
|
||||
};
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef Events_Reset_h__
|
||||
#define Events_Reset_h__
|
||||
|
||||
#include "Core/EventBroker.h"
|
||||
#include "Core/EntityWrapper.h"
|
||||
|
||||
namespace Events
|
||||
{
|
||||
|
||||
struct Reset : Event
|
||||
{
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -2,7 +2,7 @@
|
||||
#define AmmoPickupSystem_h__
|
||||
|
||||
#include "Core/System.h"
|
||||
#include "Core/Transform.h"
|
||||
#include "Core/TransformSystem.h"
|
||||
#include "Core/ResourceManager.h"
|
||||
#include "Core/EntityFile.h"
|
||||
#include "Core/EPickupSpawned.h"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include "Common.h"
|
||||
#include "Core/System.h"
|
||||
#include "Core/Transform.h"
|
||||
#include "Core/TransformSystem.h"
|
||||
#include "Core/ECaptured.h"
|
||||
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "Engine/Collision/ETrigger.h"
|
||||
#include "Core/ECaptured.h"
|
||||
#include "Core/EWin.h"
|
||||
#include "Game/Events/EReset.h"
|
||||
|
||||
#include <tuple>
|
||||
#include <vector>
|
||||
@@ -23,6 +24,7 @@ public:
|
||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& capturePoint, double dt) override;
|
||||
|
||||
private:
|
||||
void Init();
|
||||
//methods which will take care of specific events
|
||||
EventRelay<CapturePointSystem, Events::TriggerTouch> m_ETriggerTouch;
|
||||
bool CapturePointSystem::OnTriggerTouch(const Events::TriggerTouch& e);
|
||||
@@ -30,6 +32,8 @@ private:
|
||||
bool CapturePointSystem::OnTriggerLeave(const Events::TriggerLeave& e);
|
||||
EventRelay<CapturePointSystem, Events::Captured> m_ECaptured;
|
||||
bool CapturePointSystem::OnCaptured(const Events::Captured& e);
|
||||
EventRelay<CapturePointSystem, Events::Reset> m_EReset;
|
||||
bool CapturePointSystem::OnReset(const Events::Reset& e);
|
||||
void ChangeCapturePointModelsVisibility(EntityWrapper &capturePointModels, bool isOwner);
|
||||
|
||||
bool m_WinnerWasFound = false;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define DamageIndicatorSystem_h__
|
||||
|
||||
#include "Core/System.h"
|
||||
#include "Core/Transform.h"
|
||||
#include "Core/TransformSystem.h"
|
||||
#include "Core/ResourceManager.h"
|
||||
#include "Core/EntityFile.h"
|
||||
#include "Core/EPlayerDamage.h"
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "Common.h"
|
||||
#include "Core/System.h"
|
||||
#include "Engine/GLM.h"
|
||||
|
||||
class ExplosionEffectSystem : public PureSystem
|
||||
{
|
||||
|
||||
@@ -12,8 +12,8 @@ public:
|
||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override
|
||||
{
|
||||
ComponentWrapper& transform = m_World->GetComponent(component.EntityID, "Transform");
|
||||
(double&)component["Time"] += dt;
|
||||
(glm::vec3&)transform["Position"] = (float)(double)component["Amplitude"] * glm::sin((glm::two_pi<float>() / (float)(double)component["Period"]) * (float)(double)component["Time"]) * (glm::vec3)component["Axis"];
|
||||
(Field<double>)component["Time"] += dt;
|
||||
(Field<glm::vec3>)transform["Position"] = (float)(double)component["Amplitude"] * glm::sin((glm::two_pi<float>() / (float)(double)component["Period"]) * (float)(double)component["Time"]) * (glm::vec3)component["Axis"];
|
||||
|
||||
}
|
||||
};
|
||||
@@ -7,7 +7,6 @@
|
||||
#include "Core/Event.h"
|
||||
#include "Systems/SpawnerSystem.h"
|
||||
|
||||
|
||||
#include "GUI/EButtonClicked.h"
|
||||
#include "GUI/EButtonPressed.h"
|
||||
#include "GUI/EButtonReleased.h"
|
||||
@@ -24,6 +23,8 @@ public:
|
||||
|
||||
private:
|
||||
IRenderer* m_Renderer;
|
||||
void OpenSubMenu(const Events::InputCommand& e);
|
||||
void OpenDropDown(const Events::InputCommand& e);
|
||||
|
||||
EventRelay<MainMenuSystem, Events::ButtonClicked> m_EClicked;
|
||||
bool OnButtonClick(const Events::ButtonClicked& e);
|
||||
@@ -36,6 +37,7 @@ private:
|
||||
|
||||
std::string m_CurrentCommand = "";
|
||||
EntityWrapper m_OpenSubMenu = EntityWrapper::Invalid;
|
||||
EntityWrapper m_DropDown = EntityWrapper::Invalid;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define PickupSpawnSystem_h__
|
||||
|
||||
#include "Core/System.h"
|
||||
#include "Core/Transform.h"
|
||||
#include "Core/TransformSystem.h"
|
||||
#include "Core/ResourceManager.h"
|
||||
#include "Core/EntityFile.h"
|
||||
#include "Core/EPickupSpawned.h"
|
||||
|
||||
@@ -33,7 +33,7 @@ private:
|
||||
// Used to track afterimages for sprint effect.
|
||||
float m_SprintEffectTimer;
|
||||
// The logic for making the sound play when player is moving
|
||||
void playerStep(double dt);
|
||||
void playerStep(double dt, EntityWrapper player);
|
||||
// Spawn a hexagon at origin of an Entity
|
||||
void spawnHexagon(EntityWrapper target);
|
||||
|
||||
|
||||
@@ -1,6 +1,25 @@
|
||||
#include "Common.h"
|
||||
#include "Core/System.h"
|
||||
|
||||
|
||||
|
||||
//struct FSubscriptProxy
|
||||
// {
|
||||
// friend struct ComponentWrapper;
|
||||
// FSubscriptProxy(ComponentWrapper* component, std::string fieldName)
|
||||
// : m_Component(component)
|
||||
// , m_FieldName(fieldName)
|
||||
// { }
|
||||
|
||||
// ComponentWrapper* m_Component;
|
||||
// std::string m_FieldName;
|
||||
|
||||
// public:
|
||||
// template <typename T>
|
||||
// operator Field<T>() { return Field<T>(m_Component->Field<T>(m_FieldName)); }
|
||||
|
||||
// };
|
||||
|
||||
class RaptorCopterSystem : public PureSystem
|
||||
{
|
||||
public:
|
||||
@@ -9,9 +28,11 @@ public:
|
||||
, PureSystem("RaptorCopter")
|
||||
{ }
|
||||
|
||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override
|
||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& cRaptorCopter, double dt) override
|
||||
{
|
||||
ComponentWrapper& transform = m_World->GetComponent(component.EntityID, "Transform");
|
||||
(glm::vec3&)transform["Orientation"] += (float)(double)component["Speed"] * (float)dt * (glm::vec3)component["Axis"];
|
||||
ComponentWrapper& cTransform = entity["Transform"];
|
||||
//FSubscriptProxy subOri(&cTransform, "Orientation");
|
||||
//Field<glm::vec3> orientation = subOri;
|
||||
(Field<glm::vec3>)cTransform["Orientation"] += (float)(const double&)cRaptorCopter["Speed"] * (float)dt * (glm::vec3)cRaptorCopter["Axis"];
|
||||
}
|
||||
};
|
||||
@@ -8,6 +8,8 @@
|
||||
#include "Core/EPlayerSpawned.h"
|
||||
#include "Network/EPlayerConnected.h"
|
||||
#include "Network/EPlayerDisconnected.h"
|
||||
#include "Game/Events/EReset.h"
|
||||
#include "Engine/Input/EInputCommand.h"
|
||||
#include "GLM.h"
|
||||
|
||||
class ScoreScreenSystem : public PureSystem
|
||||
@@ -25,6 +27,10 @@ public:
|
||||
bool OnPlayerConnected(const Events::PlayerConnected& e);
|
||||
EventRelay<ScoreScreenSystem, Events::PlayerDisconnected> m_EPlayerDisconnected;
|
||||
bool OnPlayerDisconnected(const Events::PlayerDisconnected& e);
|
||||
EventRelay<ScoreScreenSystem, Events::Reset> m_EReset;
|
||||
bool OnReset(const Events::Reset& e);
|
||||
EventRelay<ScoreScreenSystem, Events::InputCommand> m_EInputCommand;
|
||||
bool OnInputCommand(const Events::InputCommand& e);
|
||||
|
||||
private:
|
||||
struct PlayerData {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define Systems_SoundSystem_h__
|
||||
|
||||
#include <random>
|
||||
#include <chrono>
|
||||
|
||||
#include "../Engine/Core/System.h"
|
||||
#include "../Engine/Core/ResourceManager.h"
|
||||
@@ -20,9 +21,10 @@
|
||||
#include "../Engine/Collision/ETrigger.h"
|
||||
#include "../Engine/Sound/EPlaySoundOnEntity.h"
|
||||
#include "../Engine/Sound/EPlayBackgroundMusic.h"
|
||||
#include "../Engine/Sound/EPlayAnnouncerVoice.h"
|
||||
#include "../Game/Events/EDoubleJump.h"
|
||||
#include "../Game/Events/EDashAbility.h"
|
||||
|
||||
#include "../Engine/Sound/EChangeBGM.h"
|
||||
|
||||
class SoundSystem : public PureSystem, ImpureSystem
|
||||
{
|
||||
@@ -33,14 +35,10 @@ public:
|
||||
private:
|
||||
std::string m_Announcer = "";
|
||||
// Logic for playing a sound when a player jumps
|
||||
void playerJumps();
|
||||
|
||||
// Temporary solution for play test.
|
||||
bool m_DrumsIsPlaying = false;
|
||||
double m_DrumTimer = 0.0;
|
||||
bool drumTimer(double dt);
|
||||
void playerJumps(EntityWrapper player);
|
||||
|
||||
std::default_random_engine generator;
|
||||
std::default_random_engine m_RandomGenerator;
|
||||
std::uniform_int_distribution<int> m_RandIntDistribution;
|
||||
|
||||
EventRelay<SoundSystem, Events::PlayerSpawned> m_EPlayerSpawned;
|
||||
bool OnPlayerSpawned(const Events::PlayerSpawned &e);
|
||||
@@ -48,10 +46,6 @@ private:
|
||||
bool OnInputCommand(const Events::InputCommand &e);
|
||||
EventRelay<SoundSystem, Events::DoubleJump> m_EDoubleJump;
|
||||
bool OnDoubleJump(const Events::DoubleJump &e);
|
||||
EventRelay<SoundSystem, Events::DashAbility> m_EDashAbility;
|
||||
bool OnDashAbility(const Events::DashAbility &e);
|
||||
EventRelay<SoundSystem, Events::TriggerTouch> m_ETriggerTouch;
|
||||
bool OnTriggerTouch(const Events::TriggerTouch &e);
|
||||
EventRelay<SoundSystem, Events::Captured> m_ECaptured;
|
||||
bool OnCaptured(const Events::Captured &e);
|
||||
EventRelay<SoundSystem, Events::PlayerDamage> m_EPlayerDamage;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
#include "GLM.h"
|
||||
#include "Core/System.h"
|
||||
#include "Events/ESpawnerSpawn.h"
|
||||
#include "Core/Transform.h"
|
||||
#include "Core/TransformSystem.h"
|
||||
#include "Core/EntityFile.h"
|
||||
|
||||
class SpawnerSystem : public System
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "Core/System.h"
|
||||
#include "Input/EInputCommand.h"
|
||||
#include "Network/EPlayerDisconnected.h"
|
||||
#include "Game/Events/EReset.h"
|
||||
|
||||
class SpectatorCameraSystem : public ImpureSystem
|
||||
{
|
||||
@@ -15,11 +16,14 @@ public:
|
||||
private:
|
||||
int m_PickedTeam;
|
||||
bool m_CamSetToTeamPick;
|
||||
void reset();
|
||||
|
||||
EventRelay<SpectatorCameraSystem, Events::InputCommand> m_EInputCommand;
|
||||
bool OnInputCommand(const Events::InputCommand& e);
|
||||
EventRelay<SpectatorCameraSystem, Events::PlayerDisconnected> m_EDisconnect;
|
||||
bool OnDisconnect(const Events::PlayerDisconnected& e);
|
||||
EventRelay<SpectatorCameraSystem, Events::Reset> m_EReset;
|
||||
bool OnReset(const Events::Reset& e);
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "Collision/Collision.h"
|
||||
#include "Core/EPlayerDamage.h"
|
||||
#include "Sound/EPlaySoundOnEntity.h"
|
||||
#include "Sound/EPlaySoundOnEntity.h"
|
||||
|
||||
class DefenderWeaponBehaviour : public WeaponBehaviour<DefenderWeaponBehaviour>
|
||||
{
|
||||
|
||||
@@ -270,7 +270,8 @@ private:
|
||||
EntityWrapper thirdPersonAttachment;
|
||||
for (auto& attachment : weaponAttachments) {
|
||||
ComponentWrapper cWeaponAttachment = attachment["WeaponAttachment"];
|
||||
if ((std::string&)cWeaponAttachment["Weapon"] == m_ComponentType) {
|
||||
Field<std::string> weaponType = cWeaponAttachment["Weapon"];
|
||||
if (*weaponType == m_ComponentType) {
|
||||
ComponentWrapper::SubscriptProxy person = cWeaponAttachment["Person"];
|
||||
if ((ComponentInfo::EnumType)person == person.Enum("FirstPerson")) {
|
||||
firstPersonAttachment = attachment;
|
||||
|
||||
@@ -39,6 +39,7 @@ ResourceLoading=true
|
||||
[Sound]
|
||||
BGMVolume=1.0
|
||||
SFXVolume=1.0
|
||||
AnnouncerVolume=1.0
|
||||
Announcer=female
|
||||
|
||||
[SSAO]
|
||||
|
||||
@@ -68,4 +68,6 @@
|
||||
<xs:include schemaLocation="Components/NetworkComponent.xsd"/>
|
||||
<xs:include schemaLocation="Components/ServerIdentity.xsd"/>
|
||||
<xs:include schemaLocation="Components/ServerList.xsd"/>
|
||||
<xs:include schemaLocation="Components/ConfigBtnResolution.xsd"/>
|
||||
<xs:include schemaLocation="Components/ConfigBtnFloat.xsd"/>
|
||||
</xs:schema>
|
||||
@@ -2,4 +2,5 @@
|
||||
<CapturePointGameMode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="CapturePointGameMode.xsd">
|
||||
<RespawnTime>0.0</RespawnTime>
|
||||
<MaxRespawnTime>8.0</MaxRespawnTime>
|
||||
<ResetCountdown>10.0</ResetCountdown>
|
||||
</CapturePointGameMode>
|
||||
@@ -12,6 +12,9 @@
|
||||
<xs:element name="MaxRespawnTime" type="t:double" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>Players will be spawned when RespawnTime reaches this.</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="ResetCountdown" type="t:double" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>The map will be reset when time reaches 0.</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<ConfigBtnFloat xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ConfigBtnFloat.xsd">
|
||||
<Header></Header>
|
||||
<Field></Field>
|
||||
<PressValue></PressValue>
|
||||
</ConfigBtnFloat>
|
||||
@@ -0,0 +1,22 @@
|
||||
<?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="ConfigBtnFloat">
|
||||
<xs:annotation><xs:documentation>Used with a Button component, this button will change a variable in the config file.</xs:documentation></xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="Header" type="t:string" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>The header of the section in config.</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="Field" type="t:string" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>The name of the field to be changed in the config.</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="PressValue" type="t:float" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>The value to give the field.</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<ConfigBtnResolution xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ConfigBtnResolution.xsd">
|
||||
<Header></Header>
|
||||
<Field></Field>
|
||||
<PressValue></PressValue>
|
||||
</ConfigBtnResolution>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?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="ConfigBtnResolution">
|
||||
<xs:annotation><xs:documentation>Used with a Button component, this button will change a variable in the config file.</xs:documentation></xs:annotation>
|
||||
<xs:complexType>
|
||||
<xs:all>
|
||||
<xs:element name="Width" type="t:int" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>Value of the resolution width.</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="Height" type="t:int" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>Value of the resolution height.</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
||||
@@ -1,19 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<ExplosionEffect xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ExplosionEffect.xsd">
|
||||
<ExplosionOrigin X="0" Y="0" Z="0"/>
|
||||
<TimeSinceDeath>0</TimeSinceDeath>
|
||||
<ExplosionDuration>2</ExplosionDuration>
|
||||
<TimeSinceDeath>0.0</TimeSinceDeath>
|
||||
<ExplosionDuration>2.0</ExplosionDuration>
|
||||
<Speed>1</Speed>
|
||||
<Delay>0</Delay>
|
||||
<!--<Gravity>1</Gravity>-->
|
||||
<!--<GravityForce>1</GravityForce>-->
|
||||
<!--<ObjectRadius>2</ObjectRadius>-->
|
||||
<EndColor R="0" G="0" B="0" A="0"/>
|
||||
<Randomness>0</Randomness>
|
||||
<RandomnessScalar>1</RandomnessScalar>
|
||||
<Randomness>false</Randomness>
|
||||
<RandomnessScalar>1.0</RandomnessScalar>
|
||||
<Velocity X="2" Y="2"/>
|
||||
<ColorByDistance>0</ColorByDistance>
|
||||
<!--<ReverseAnimation>0</ReverseAnimation>-->
|
||||
<ColorByDistance>false</ColorByDistance>
|
||||
<!--<Wireframe>0</Wireframe>-->
|
||||
<ExponentialAccelaration>0</ExponentialAccelaration>
|
||||
<ExponentialAccelaration>false</ExponentialAccelaration>
|
||||
<Pulsate>false</Pulsate>
|
||||
<Reverse>false</Reverse>
|
||||
<ColorDistanceScalar>1.0</ColorDistanceScalar>
|
||||
</ExplosionEffect>
|
||||
@@ -44,15 +44,21 @@
|
||||
<xs:element name="ColorByDistance" type="t:bool" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>Change the color by its moved distance instead of by its time</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
<!--<xs:element name="ReverseAnimation" type="t:bool" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>Implosions are cooler</xs:documentation></xs:annotation>
|
||||
</xs:element>-->
|
||||
<!--<xs:element name="Wireframe" type="t:bool" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>Enable/disable wireframe</xs:documentation></xs:annotation>
|
||||
</xs:element>-->
|
||||
<xs:element name="ExponentialAccelaration" type="t:bool" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>Linear/Exponential accelaration</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="Pulsate" type="t:bool" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>Pulsate the effect</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="Reverse" type="t:bool" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>Reverse the effect</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
<xs:element name="ColorDistanceScalar" type="t:double" minOccurs="0">
|
||||
<xs:annotation><xs:documentation>Scale the distance of the color change</xs:documentation></xs:annotation>
|
||||
</xs:element>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<Gain>1.0</Gain>
|
||||
<Pitch>1.0</Pitch>
|
||||
<Loop>false</Loop>
|
||||
<MaxDistance>20.0</MaxDistance>
|
||||
<RollOffFactor>1.0</RollOffFactor>
|
||||
<MaxDistance>220.0</MaxDistance>
|
||||
<RollOffFactor>10</RollOffFactor>
|
||||
<ReferenceDistance>1.0</ReferenceDistance>
|
||||
</SoundEmitter>
|
||||
@@ -9,6 +9,6 @@
|
||||
<KeepRatioX>false</KeepRatioX>
|
||||
<KeepRatioY>false</KeepRatioY>
|
||||
<KeepRatio>false</KeepRatio>
|
||||
<Linear>false</Linear>
|
||||
<Linear>true</Linear>
|
||||
<BlurBackground>false</BlurBackground>
|
||||
</Sprite>
|
||||
|
||||
@@ -2,21 +2,26 @@
|
||||
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:NetworkComponent/>
|
||||
<c:AmmoPickup/>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/PickUps/AmmoPickUp.mesh</Resource>
|
||||
</c:Model>
|
||||
<c:Trigger/>
|
||||
<c:RaptorCopter>
|
||||
<Speed>8</Speed>
|
||||
<Axis X="0" Y="0.100000001" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/PickUps/AmmoPickUp.mesh</Resource>
|
||||
</c:Model>
|
||||
<c:NetworkComponent/>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="0.0823529437" R="1"/>
|
||||
<Radius>1.5</Radius>
|
||||
<Intensity>3</Intensity>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Position X="0" Y="2.36784196" Z="-0.0281207096"/>
|
||||
<Orientation X="0" Y="18843.5469" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
<Orientation X="0" Y="18717.9453" Z="0"/>
|
||||
</c:Transform>
|
||||
<c:Trigger/>
|
||||
</Components>
|
||||
|
||||
<Children/>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+11584
-6469
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="BlueCapturepointBorde" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.271661639" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Bottom">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Time>3</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-8.74227801e-09" Z="-0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.392156869" B="10" G="0.784313738" R="0"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.5" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="LowerMid">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Time>2</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.0866025388" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.313725501" B="10" G="0.784313738" R="0"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.899999976" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="UpperMid">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Time>1</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.0866025463" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.196078435" B="10" G="0.784313738" R="0"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="1.29999995" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Top">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.117647059" B="10" G="0.784313738" R="0"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="1.70000005" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="RedCapturepointBorde" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.271661639" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Bottom">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Time>3</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-8.74227801e-09" Z="-0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.392156869" B="0" G="0.235294119" R="21.9607849"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.5" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="LowerMid">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Time>2</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.0866025388" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.313725501" B="0" G="0.235294119" R="21.9607849"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.899999976" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="UpperMid">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Time>1</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.0866025463" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.196078435" B="0" G="0.235294119" R="21.9607849"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="1.29999995" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Top">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.117647059" B="0" G="0.235294119" R="21.9607849"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="1.70000005" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,126 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="SpectatorCapturepointBorde" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.271661639" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Bottom">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Time>3</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-8.74227801e-09" Z="-0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.392156869" B="8.03921604" G="8.03921604" R="8.03921604"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.5" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="LowerMid">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Time>2</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.0866025388" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.313725501" B="10" G="8.03921604" R="8.03921604"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.899999976" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="UpperMid">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Time>1</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.0866025463" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.196078435" B="8.03921604" G="8.03921604" R="8.03921604"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="1.29999995" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Top">
|
||||
<Components>
|
||||
<c:FloatingEffect>
|
||||
<Period>6</Period>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.10000000149011612</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/DoubleSidedCylinder.mesh</Resource>
|
||||
<Color A="0.117647059" B="8.03921604" G="8.03921604" R="8.03921604"/>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="1.70000005" Z="0"/>
|
||||
<Scale X="8.19999981" Y="0.0199999996" Z="8.19999981"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,169 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="Origin" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Anchor1">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.30000001192092896</Speed>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>30</Period>
|
||||
<Time>342.91836260588383</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>3.5</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="1.47803104" Z="0"/>
|
||||
<Orientation X="0" Y="220.263962" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CrystalsLayer1.mesh</Resource>
|
||||
<Color A="1" B="1" G="0.392156869" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Anchor2">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.5</Speed>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>20</Period>
|
||||
<Time>448.85134971162591</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>3</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="1.05921149" Z="0"/>
|
||||
<Orientation X="0" Y="360.699402" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CrystalsLayer2.mesh</Resource>
|
||||
<Color A="1" B="1" G="0.392156869" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Anchor0">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.10000000149011612</Speed>
|
||||
<Axis X="0" Y="-1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>10</Period>
|
||||
<Time>495.36799589902654</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.5</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-0.11458683" Z="-0"/>
|
||||
<Orientation X="0" Y="-68.9721527" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CenterCrystal.mesh</Resource>
|
||||
<Color A="1" B="1" G="0.392156869" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="LightOrigin1">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>1</Speed>
|
||||
<Axis X="0.400000006" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:Transform>
|
||||
<Orientation X="16.781414" Y="41.9535484" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="0.588235319" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="1.1234858" Y="0.720658064" Z="3.40589333"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="0.588235319" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="0.4723185" Y="0" Z="-4.12240839"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="0.588235319" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="-2.91954184" Y="1.54033804" Z="-0.0577439293"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="0.588235319" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="1.48998797" Y="-3.06706786" Z="-1.78805089"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,174 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="Origin" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="14.8518229" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Anchor1">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.30000001192092896</Speed>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>30</Period>
|
||||
<Time>1125.9779108477385</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>3.5</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-0.711852849" Z="-0"/>
|
||||
<Orientation X="0" Y="455.182343" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CrystalsLayer1.mesh</Resource>
|
||||
<Color A="1" B="2" G="0.784313738" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Anchor2">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.5</Speed>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>20</Period>
|
||||
<Time>1231.9108979534806</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>3</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-1.69476664" Z="-0"/>
|
||||
<Orientation X="0" Y="752.229553" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CrystalsLayer2.mesh</Resource>
|
||||
<Color A="1" B="2" G="0.784313738" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Anchor0">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.10000000149011612</Speed>
|
||||
<Axis X="0" Y="-1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>10</Period>
|
||||
<Time>1278.4275441408811</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.5</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-0.417467505" Z="-0"/>
|
||||
<Orientation X="0" Y="-147.27742" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CenterCrystal.mesh</Resource>
|
||||
<Color A="1" B="2" G="0.784313738" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="LightOrigin1">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>1</Speed>
|
||||
<Axis X="0.400000006" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:Transform>
|
||||
<Orientation X="330.00589" Y="825.014587" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="0.588235319" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="1.1234858" Y="0.720658064" Z="3.40589333"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="0.588235319" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="0.4723185" Y="0" Z="-4.12240839"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="0.588235319" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="-2.91954184" Y="1.54033804" Z="-0.0577439293"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="0.588235319" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="1.48998797" Y="-3.06706786" Z="-1.78805089"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,173 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="Origin" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="14.8518229" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Anchor1">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.30000001192092896</Speed>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>30</Period>
|
||||
<Time>1816.9423460293749</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>3.5</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-1.38488328" Z="-0"/>
|
||||
<Orientation X="0" Y="662.475891" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CrystalsLayer1.mesh</Resource>
|
||||
<Color A="1" B="0" G="0.235294119" R="1.09803927"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Anchor2">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.5</Speed>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>20</Period>
|
||||
<Time>1922.875333135117</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>3</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.35616231" Z="0"/>
|
||||
<Orientation X="0" Y="1097.71094" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CrystalsLayer2.mesh</Resource>
|
||||
<Color A="1" B="0" G="0.235294119" R="1.09803927"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Anchor0">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.10000000149011612</Speed>
|
||||
<Axis X="0" Y="-1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>10</Period>
|
||||
<Time>1969.3919793225175</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.5</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-0.186382934" Z="-0"/>
|
||||
<Orientation X="0" Y="-216.374603" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CenterCrystal.mesh</Resource>
|
||||
<Color A="1" B="0" G="0.235294119" R="1.09803927"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-0" Z="-0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="LightOrigin1">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>1</Speed>
|
||||
<Axis X="0.400000006" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:Transform>
|
||||
<Orientation X="606.394653" Y="1515.97461" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="0" G="0" R="1"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="1.1234858" Y="0.720658064" Z="3.40589333"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="0" G="0" R="1"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="0.4723185" Y="0" Z="-4.12240839"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="0" G="0" R="1"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="-2.91954184" Y="1.54033804" Z="-0.0577439293"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="0" G="0" R="1"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="1.48998797" Y="-3.06706786" Z="-1.78805089"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,167 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="Origin" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="14.8518229" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Anchor1">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.30000001192092896</Speed>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>30</Period>
|
||||
<Time>1622.3711487379048</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>3.5</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="1.66753078" Z="0"/>
|
||||
<Orientation X="0" Y="604.103943" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CrystalsLayer1.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Anchor2">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.5</Speed>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>20</Period>
|
||||
<Time>1728.3041358436469</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>3</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="1.5237397" Z="0"/>
|
||||
<Orientation X="0" Y="1000.42615" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CrystalsLayer2.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Anchor0">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.10000000149011612</Speed>
|
||||
<Axis X="0" Y="-1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>10</Period>
|
||||
<Time>1774.8207820310474</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.5</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.0561612286" Z="0"/>
|
||||
<Orientation X="0" Y="-196.917053" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CenterCrystal.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-0" Z="-0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="LightOrigin1">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>1</Speed>
|
||||
<Axis X="0.400000006" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:Transform>
|
||||
<Orientation X="528.564453" Y="1321.40454" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="1.1234858" Y="0.720658064" Z="3.40589333"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="0.4723185" Y="0" Z="-4.12240839"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="-2.91954184" Y="1.54033804" Z="-0.0577439293"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="1.48998797" Y="-3.06706786" Z="-1.78805089"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,171 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="Origin" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="7.3052454" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Anchor0">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.20000000298023224</Speed>
|
||||
<Axis X="0" Y="-1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>10</Period>
|
||||
<Time>1323.7395571102679</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>0.5</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.355862439" Z="0"/>
|
||||
<Orientation X="0" Y="-363.932587" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CenterCrystalBlue.mesh</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="LightOrigin1">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>1</Speed>
|
||||
<Axis X="0.400000006" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:Transform>
|
||||
<Orientation X="348.130463" Y="870.325134" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="1" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="1.1234858" Y="0.720658064" Z="3.40589333"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="1" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="0.4723185" Y="0" Z="-4.12240839"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="1" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="-2.91954184" Y="1.54033804" Z="-0.0577439293"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="1" G="1" R="0"/>
|
||||
<Radius>4.5</Radius>
|
||||
<Falloff>0.5</Falloff>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="1.48998797" Y="-3.06706786" Z="-1.78805089"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Anchor1">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.5</Speed>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>30</Period>
|
||||
<Time>1171.2899238171258</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>3.5</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.93411696" Z="0"/>
|
||||
<Orientation X="0" Y="1483.0957" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CrystalsLayer1Blue.mesh</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Anchor2">
|
||||
<Components>
|
||||
<c:RaptorCopter>
|
||||
<Speed>0.5</Speed>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:FloatingEffect>
|
||||
<Period>20</Period>
|
||||
<Time>1277.2229109228683</Time>
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
<Amplitude>3</Amplitude>
|
||||
</c:FloatingEffect>
|
||||
<c:Transform>
|
||||
<Position X="-0" Y="-2.29767179" Z="-0"/>
|
||||
<Orientation X="0" Y="2074.16089" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/CapturePoint/CrystalsLayer2Blue.mesh</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -2,21 +2,26 @@
|
||||
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:NetworkComponent/>
|
||||
<c:HealthPickup/>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/PickUps/HealthPickUp.mesh</Resource>
|
||||
</c:Model>
|
||||
<c:Trigger/>
|
||||
<c:RaptorCopter>
|
||||
<Speed>8</Speed>
|
||||
<Axis X="0" Y="0.100000001" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:Model>
|
||||
<Resource>Models/Props/PickUps/HealthPickUp.mesh</Resource>
|
||||
</c:Model>
|
||||
<c:NetworkComponent/>
|
||||
<c:PointLight>
|
||||
<Color A="1" B="0" G="1" R="1"/>
|
||||
<Radius>1.5</Radius>
|
||||
<Intensity>3</Intensity>
|
||||
</c:PointLight>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Position X="0" Y="2.36800003" Z="0"/>
|
||||
<Orientation X="0" Y="19005.3867" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
<Orientation X="0" Y="18767.0273" Z="0"/>
|
||||
</c:Transform>
|
||||
<c:Trigger/>
|
||||
</Components>
|
||||
|
||||
<Children/>
|
||||
|
||||
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="MuzzleFlashBlue" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Lifetime>
|
||||
<Lifetime>0.039999999105930328</Lifetime>
|
||||
</c:Lifetime>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="PlaneRight">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Blue/PlaneRight.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone1Outside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Blue/Cone1Outside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone1Inside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Blue/Cone1Inside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone2Outside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Blue/Cone2Outside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone2Inside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Blue/Cone2Inside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneUp">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Blue/PlaneUp.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneDown">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Blue/PlaneDown.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneLeft">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Blue/PlaneLeft.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="MuzzleFlashFire" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Lifetime>
|
||||
<Lifetime>0.039999999105930328</Lifetime>
|
||||
</c:Lifetime>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="PlaneRight">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Fire/PlaneRight.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone1Outside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Fire/Cone1Outside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone1Inside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Fire/Cone1Inside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone2Outside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Fire/Cone2Outside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone2Inside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Fire/Cone2Inside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneUp">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Fire/PlaneUp.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneDown">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Fire/PlaneDown.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneLeft">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Fire/PlaneLeft.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="MuzzleFlashGay" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Lifetime>
|
||||
<Lifetime>0.039999999105930328</Lifetime>
|
||||
</c:Lifetime>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="PlaneRight">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Rainbow/PlaneRight.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone1Outside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Rainbow/Cone1Outside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone1Inside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Rainbow/Cone1Inside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone2Outside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Rainbow/Cone2Outside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone2Inside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Rainbow/Cone2Inside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneUp">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Rainbow/PlaneUp.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneDown">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Rainbow/PlaneDown.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneLeft">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Rainbow/PlaneLeft.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,102 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="MuzzleFlashRed" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Lifetime>
|
||||
<Lifetime>0.039999999105930328</Lifetime>
|
||||
</c:Lifetime>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="PlaneRight">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Red/PlaneRight.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone1Outside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Red/Cone1Outside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone1Inside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Red/Cone1Inside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone2Outside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Red/Cone2Outside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Cone2Inside">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Red/Cone2Inside.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneUp">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Red/PlaneUp.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneDown">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Red/PlaneDown.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="PlaneLeft">
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource>Models/Effects/MuzzleFlash/Red/PlaneLeft.mesh</Resource>
|
||||
<Shadow>false</Shadow>
|
||||
<Transparent>true</Transparent>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
+8977
-6217
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,141 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="Options" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Background_Origin">
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Background">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<Color A="0.196078435" B="0" G="0" R="0"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Scale X="0.300000012" Y="0.5" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Title_Origin">
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="UnderLine">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<Visible>false</Visible>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.00500000035" Y="0.198000014" Z="0.0199999996"/>
|
||||
<Scale X="0.270000011" Y="0.00100000005" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
<Content>Options</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
</c:Text>
|
||||
<c:Transform>
|
||||
<Position X="-0.131999999" Y="0.202000007" Z="0.0199999996"/>
|
||||
<Scale X="0.0320000015" Y="0.0310000014" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Buttons_anchor">
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.168000013" Z="0.0199999996"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Resolution">
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Scale X="0.100000001" Y="0.100000001" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Sprite">
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<Color A="0.392156869" B="1" G="1" R="1"/>
|
||||
</c:Sprite>
|
||||
<c:InputCmdButton>
|
||||
<Command>Resolution</Command>
|
||||
<PressValue>1</PressValue>
|
||||
</c:InputCmdButton>
|
||||
<c:Transform>
|
||||
<Scale X="2.5999999" Y="0.300000012" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="TextAndCorner_Origin">
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
<Content>Resolution</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Right/>
|
||||
</Alignment>
|
||||
</c:Text>
|
||||
<c:Transform>
|
||||
<Position X="-0.180000007" Y="-0.116000004" Z="0.00500000035"/>
|
||||
<Scale X="0.219000012" Y="0.150000006" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="ResolutionSpawner">
|
||||
<Components>
|
||||
<c:Spawner>
|
||||
<EntityFile>Schema/Entities/Resolution_Options.xml</EntityFile>
|
||||
</c:Spawner>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,128 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="Resolution_Options" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Res1080">
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:ConfigBtnResolution>
|
||||
<Width>1920</Width>
|
||||
<Height>1080</Height>
|
||||
</c:ConfigBtnResolution>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<Color A="0.392156869" B="1" G="1" R="1"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="-0.088000007" Y="-0.0350000001" Z="0"/>
|
||||
<Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
<Content>1920x1080</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
</c:Text>
|
||||
<c:Transform>
|
||||
<Position X="-0.361000031" Y="-0.562000036" Z="0.0199999996"/>
|
||||
<Scale X="0.180000007" Y="0.469000012" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Res768">
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:ConfigBtnResolution>
|
||||
<Width>1366</Width>
|
||||
<Height>768</Height>
|
||||
</c:ConfigBtnResolution>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<Color A="0.392156869" B="1" G="1" R="1"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="-0.0350000001" Z="0"/>
|
||||
<Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
<Content>1366x768</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
</c:Text>
|
||||
<c:Transform>
|
||||
<Position X="-0.380000025" Y="-0.561999977" Z="0.0199999996"/>
|
||||
<Scale X="0.180000007" Y="0.469000012" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Res720">
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:ConfigBtnResolution>
|
||||
<Width>1280</Width>
|
||||
<Height>720</Height>
|
||||
</c:ConfigBtnResolution>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<Color A="0.392156869" B="1" G="1" R="1"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.088000007" Y="-0.0350000001" Z="0"/>
|
||||
<Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
<Content>1280x720</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
</c:Text>
|
||||
<c:Transform>
|
||||
<Position X="-0.387000024" Y="-0.561999977" Z="0.0199999996"/>
|
||||
<Scale X="0.180000007" Y="0.469000012" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -0,0 +1,149 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="Resolution_Options" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0" Z="0.0180000011"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
|
||||
<Children>
|
||||
<Entity name="Background">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<Color A="1" B="0.117647059" G="0.117647059" R="0.117647059"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="-0.00700000022" Y="-0.0310000014" Z="-0.0270000007"/>
|
||||
<Scale X="0.292000026" Y="0.064000003" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Res1080">
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:ConfigBtnResolution>
|
||||
<Width>1920</Width>
|
||||
<Height>1080</Height>
|
||||
</c:ConfigBtnResolution>
|
||||
<c:Sprite>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<Color A="0.392156869" B="1" G="1" R="1"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="-0.088000007" Y="-0.0350000001" Z="0"/>
|
||||
<Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
<Content>1920x1080</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
</c:Text>
|
||||
<c:Transform>
|
||||
<Position X="-0.361000031" Y="-0.562000036" Z="0.0199999996"/>
|
||||
<Scale X="0.180000007" Y="0.469000012" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Res768">
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:ConfigBtnResolution>
|
||||
<Width>1366</Width>
|
||||
<Height>768</Height>
|
||||
</c:ConfigBtnResolution>
|
||||
<c:Sprite>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<Color A="0.392156869" B="1" G="1" R="1"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="-0.0350000001" Z="0"/>
|
||||
<Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
<Content>1366x768</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
</c:Text>
|
||||
<c:Transform>
|
||||
<Position X="-0.380000025" Y="-0.561999977" Z="0.0199999996"/>
|
||||
<Scale X="0.180000007" Y="0.469000012" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Res720">
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:ConfigBtnResolution>
|
||||
<Width>1280</Width>
|
||||
<Height>720</Height>
|
||||
</c:ConfigBtnResolution>
|
||||
<c:Sprite>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<Color A="0.392156869" B="1" G="1" R="1"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.088000007" Y="-0.0350000001" Z="0"/>
|
||||
<Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
<Content>1280x720</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
</c:Text>
|
||||
<c:Transform>
|
||||
<Position X="-0.387000024" Y="-0.561999977" Z="0.0199999996"/>
|
||||
<Scale X="0.180000007" Y="0.469000012" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
@@ -17,7 +17,6 @@
|
||||
<c:Text>
|
||||
<Content>123.123.123.123</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
@@ -28,7 +27,7 @@
|
||||
<Field>IP</Field>
|
||||
</c:TextFieldReader>
|
||||
<c:Transform>
|
||||
<Position X="-0.200000003" Y="-0.100000001" Z="0"/>
|
||||
<Position X="-0.200000003" Y="-0.100000001" Z="0.00700000022"/>
|
||||
<Scale X="0.649999976" Y="0.649999976" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -39,7 +38,6 @@
|
||||
<c:Text>
|
||||
<Content>65999</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
@@ -50,7 +48,7 @@
|
||||
<Field>Port</Field>
|
||||
</c:TextFieldReader>
|
||||
<c:Transform>
|
||||
<Position X="4.70000029" Y="-0.100000001" Z="0"/>
|
||||
<Position X="4.70000029" Y="-0.100000001" Z="0.00700000022"/>
|
||||
<Scale X="0.649999976" Y="0.649999976" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -61,7 +59,6 @@
|
||||
<c:Text>
|
||||
<Content>UnkownServer</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
@@ -72,7 +69,7 @@
|
||||
<Field>ServerName</Field>
|
||||
</c:TextFieldReader>
|
||||
<c:Transform>
|
||||
<Position X="-8.60000038" Y="-0.100000001" Z="0"/>
|
||||
<Position X="-8.60000038" Y="-0.100000001" Z="0.00700000022"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
@@ -82,7 +79,6 @@
|
||||
<c:Text>
|
||||
<Content>0</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Color A="1" B="0" G="0" R="0"/>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
@@ -93,7 +89,7 @@
|
||||
<Field>PlayersConnected</Field>
|
||||
</c:TextFieldReader>
|
||||
<c:Transform>
|
||||
<Position X="7.80000019" Y="0" Z="0"/>
|
||||
<Position X="7.80000019" Y="0" Z="0.00700000022"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
@@ -102,14 +98,15 @@
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:Sprite>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<GlowMap></GlowMap>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Color A="0.588235319" B="1" G="1" R="1"/>
|
||||
<Color A="0.392156869" B="0.392156869" G="0.392156869" R="0.392156869"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.100000001" Y="0.496000022" Z="0"/>
|
||||
<Position X="0.100000001" Y="0.496000022" Z="0.00700000022"/>
|
||||
<Scale X="18.1000004" Y="2" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -117,6 +114,75 @@
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Corners">
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0" Z="0.00700000022"/>
|
||||
<Scale X="0.200000003" Y="0.200000003" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="TopLeft">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="-43.9590034" Y="6.70000029" Z="0"/>
|
||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="BottomLeft">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="-43.9589996" Y="-1.75600004" Z="0"/>
|
||||
<Orientation X="0" Y="0" Z="3.14499998"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="BottomRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="44.8320007" Y="-1.75600004" Z="0"/>
|
||||
<Orientation X="0" Y="0" Z="4.71218538"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="TopRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="44.8320007" Y="6.69999981" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<Entity name="ServerList" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
<Entity name="Play" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||
|
||||
<Components>
|
||||
<c:ServerList>
|
||||
@@ -12,7 +12,7 @@
|
||||
<Entity name="Identities_Origin">
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0.181182757" Z="0"/>
|
||||
<Position X="0" Y="0.172000006" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
@@ -30,27 +30,14 @@
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Background">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<GlowMap></GlowMap>
|
||||
<Color A="0.196078435" B="0" G="0" R="0"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Scale X="0.300000012" Y="0.5" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="RefreshButton">
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<GlowMap></GlowMap>
|
||||
<Color A="0.588235319" B="1" G="1" R="1"/>
|
||||
</c:Sprite>
|
||||
<c:InputCmdButton>
|
||||
@@ -66,8 +53,9 @@
|
||||
<Entity name="RefreshIcon">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DiffuseTexture>Textures/Icons/rotate.png</DiffuseTexture>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Icons/rotate.png</DiffuseTexture>
|
||||
<Color A="1" B="1" G="0" R="1"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
@@ -79,6 +67,135 @@
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Title_Origin">
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
<Content>Servers</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Alignment>
|
||||
<Left/>
|
||||
</Alignment>
|
||||
</c:Text>
|
||||
<c:Transform>
|
||||
<Position X="-0.131999999" Y="0.202000007" Z="0.0199999996"/>
|
||||
<Scale X="0.0320000015" Y="0.0310000014" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="UnderLine">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<Visible>false</Visible>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.00500000035" Y="0.198000014" Z="0.0199999996"/>
|
||||
<Scale X="0.270000011" Y="0.00100000005" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Background_Origin">
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="Background">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<Color A="0.196078435" B="0" G="0" R="0"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Scale X="0.300000012" Y="0.5" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="Corners">
|
||||
<Components>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="0" Z="0.0100000007"/>
|
||||
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="TopLeft">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="-29.0360012" Y="49.0510025" Z="0"/>
|
||||
<Orientation X="0" Y="0" Z="1.57079637"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="BottomLeft">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="-29.0050011" Y="-48.927002" Z="0"/>
|
||||
<Orientation X="0" Y="0" Z="3.14499998"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="BottomRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="29.0750008" Y="-48.9350014" Z="0"/>
|
||||
<Orientation X="0" Y="0" Z="4.71218538"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="TopRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="29.0750008" Y="49.0650024" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
</Entity>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:CapturePointGameMode>
|
||||
<RespawnTime>7.0999304984909202</RespawnTime>
|
||||
<RespawnTime>0.53338721940212963</RespawnTime>
|
||||
</c:CapturePointGameMode>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
@@ -2828,7 +2828,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="25992.9746" Z="0"/>
|
||||
<Orientation X="0" Y="26060.2324" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -2870,7 +2870,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="90523.6719" Z="0"/>
|
||||
<Orientation X="0" Y="90593.4219" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -2912,7 +2912,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="90461.8125" Z="0"/>
|
||||
<Orientation X="0" Y="90531.5625" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -2954,7 +2954,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36800003" Z="0"/>
|
||||
<Orientation X="0" Y="71578.0156" Z="0"/>
|
||||
<Orientation X="0" Y="71647.7656" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -2996,7 +2996,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36800003" Z="0"/>
|
||||
<Orientation X="0" Y="25923.3281" Z="0"/>
|
||||
<Orientation X="0" Y="25990.5859" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -3038,7 +3038,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="81128.9531" Z="0"/>
|
||||
<Orientation X="0" Y="81198.7031" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -3080,7 +3080,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="78866.125" Z="0"/>
|
||||
<Orientation X="0" Y="78935.875" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -3122,7 +3122,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="90523.6719" Z="0"/>
|
||||
<Orientation X="0" Y="90593.4219" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -3164,7 +3164,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="78866.125" Z="0"/>
|
||||
<Orientation X="0" Y="78935.875" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -5261,7 +5261,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36800003" Z="0"/>
|
||||
<Orientation X="0" Y="71424.8125" Z="0"/>
|
||||
<Orientation X="0" Y="71494.5625" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -5303,7 +5303,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="47480.0781" Z="0"/>
|
||||
<Orientation X="0" Y="47550.7578" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -6869,7 +6869,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36800003" Z="0"/>
|
||||
<Orientation X="0" Y="71548.5938" Z="0"/>
|
||||
<Orientation X="0" Y="71618.3438" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -6911,7 +6911,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="90490.5469" Z="0"/>
|
||||
<Orientation X="0" Y="90560.2969" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -6953,7 +6953,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="78833" Z="0"/>
|
||||
<Orientation X="0" Y="78902.75" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -6995,7 +6995,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="81095.8281" Z="0"/>
|
||||
<Orientation X="0" Y="81165.5781" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -7037,7 +7037,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="90428.6875" Z="0"/>
|
||||
<Orientation X="0" Y="90498.4375" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -7079,7 +7079,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="25960.2227" Z="0"/>
|
||||
<Orientation X="0" Y="26027.4805" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -7121,7 +7121,7 @@
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="2.36784196" Z="0"/>
|
||||
<Orientation X="0" Y="90490.5469" Z="0"/>
|
||||
<Orientation X="0" Y="90560.2969" Z="0"/>
|
||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
@@ -8796,7 +8796,7 @@
|
||||
<Axis X="0" Y="1" Z="0"/>
|
||||
</c:RaptorCopter>
|
||||
<c:Transform>
|
||||
<Orientation X="0" Y="97.568718" Z="0"/>
|
||||
<Orientation X="0" Y="165.48909" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
@@ -8808,7 +8808,7 @@
|
||||
</c:RaptorCopter>
|
||||
<c:Transform>
|
||||
<Position X="0" Y="26" Z="40"/>
|
||||
<Orientation X="0" Y="-112.035805" Z="0"/>
|
||||
<Orientation X="0" Y="-247.882935" Z="0"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
@@ -8858,10 +8858,11 @@
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:Sprite>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<GlowMap></GlowMap>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Color A="0.392156869" B="0" G="0" R="0"/>
|
||||
</c:Sprite>
|
||||
<c:InputCmdButton>
|
||||
@@ -8874,6 +8875,44 @@
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="ButtonCorner_Origin">
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="BottomRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="-0.0219999999" Z="0.00499999989"/>
|
||||
<Orientation X="0" Y="0" Z="4.71199989"/>
|
||||
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="TopRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="0.0220000017" Z="0.00499999989"/>
|
||||
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
@@ -8890,40 +8929,6 @@
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="ButtonCorner_Origin">
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="TopRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<GlowMap></GlowMap>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="0.0220000017" Z="0.00499999989"/>
|
||||
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="BottomRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<GlowMap></GlowMap>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="-0.0219999999" Z="0.00499999989"/>
|
||||
<Orientation X="0" Y="0" Z="4.71199989"/>
|
||||
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="ButtonPos_3">
|
||||
@@ -8937,10 +8942,11 @@
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:Sprite>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<GlowMap></GlowMap>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Color A="0.392156869" B="0" G="0" R="0"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
@@ -8973,8 +8979,10 @@
|
||||
<Entity name="TopRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="0.0220000017" Z="0.00499999989"/>
|
||||
@@ -8986,8 +8994,10 @@
|
||||
<Entity name="BottomRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="-0.0219999999" Z="0.00499999989"/>
|
||||
@@ -9008,16 +9018,59 @@
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="ButtonCorner_Origin">
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="BottomRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="-0.0219999999" Z="0.00499999989"/>
|
||||
<Orientation X="0" Y="0" Z="4.71199989"/>
|
||||
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="TopRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="0.0220000017" Z="0.00499999989"/>
|
||||
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Button_2">
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:Sprite>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<GlowMap></GlowMap>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Color A="0.392156869" B="0" G="0" R="0"/>
|
||||
</c:Sprite>
|
||||
<c:InputCmdButton>
|
||||
<Command>Options</Command>
|
||||
<PressValue>1</PressValue>
|
||||
</c:InputCmdButton>
|
||||
<c:Transform>
|
||||
<Scale X="0.200000003" Y="0.0500000007" Z="1"/>
|
||||
</c:Transform>
|
||||
@@ -9027,7 +9080,7 @@
|
||||
<Entity name="Text">
|
||||
<Components>
|
||||
<c:Text>
|
||||
<Content>Option</Content>
|
||||
<Content>Options</Content>
|
||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||
<Alignment>
|
||||
<Right/>
|
||||
@@ -9040,40 +9093,6 @@
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="ButtonCorner_Origin">
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="TopRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<GlowMap></GlowMap>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="0.0220000017" Z="0.00499999989"/>
|
||||
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="BottomRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<GlowMap></GlowMap>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="-0.0219999999" Z="0.00499999989"/>
|
||||
<Orientation X="0" Y="0" Z="4.71199989"/>
|
||||
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="ButtonPos_4">
|
||||
@@ -9087,10 +9106,11 @@
|
||||
<Components>
|
||||
<c:Button/>
|
||||
<c:Sprite>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||
<BlurBackground>true</BlurBackground>
|
||||
<GlowMap></GlowMap>
|
||||
<DepthSort>false</DepthSort>
|
||||
<Color A="0.392156869" B="0" G="0" R="0"/>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
@@ -9123,8 +9143,10 @@
|
||||
<Entity name="TopRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="0.0220000017" Z="0.00499999989"/>
|
||||
@@ -9136,8 +9158,10 @@
|
||||
<Entity name="BottomRight">
|
||||
<Components>
|
||||
<c:Sprite>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||
<GlowMap></GlowMap>
|
||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||
<Linear>false</Linear>
|
||||
</c:Sprite>
|
||||
<c:Transform>
|
||||
<Position X="0.0970000029" Y="-0.0219999999" Z="0.00499999989"/>
|
||||
@@ -9169,6 +9193,15 @@
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity name="OptionsSpawner">
|
||||
<Components>
|
||||
<c:Spawner>
|
||||
<EntityFile>Schema/Entities/OptionMenu.xml</EntityFile>
|
||||
</c:Spawner>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<c:Model>
|
||||
<Resource>models/core/unitcube.mesh</Resource>
|
||||
<Color A="1" B="0.980392158" G="1" R="1"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="-0.100000001" Y="0" Z="0"/>
|
||||
@@ -28,6 +29,7 @@
|
||||
<c:Model>
|
||||
<Resource>models/core/unitcube.mesh</Resource>
|
||||
<Color A="1" B="0" G="0" R="1"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="-14.500001" Y="1.50000012" Z="16.9222012"/>
|
||||
@@ -52,6 +54,7 @@
|
||||
<c:Model>
|
||||
<Resource>models/core/unitcube.mesh</Resource>
|
||||
<Color A="1" B="1" G="0" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="-14.500001" Y="1.50000012" Z="-17.6888409"/>
|
||||
@@ -67,6 +70,7 @@
|
||||
<c:Model>
|
||||
<Resource>models/core/unitcube.mesh</Resource>
|
||||
<Color A="1" B="0" G="0" R="1"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="12.1000004" Y="1.50000012" Z="16.9222012"/>
|
||||
@@ -82,6 +86,7 @@
|
||||
<c:Model>
|
||||
<Resource>models/core/unitcube.mesh</Resource>
|
||||
<Color A="1" B="1" G="0" R="0"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Position X="12.1228638" Y="1.50000012" Z="-17.9642811"/>
|
||||
@@ -198,6 +203,7 @@
|
||||
<c:Model>
|
||||
<Resource>models/core/unitcube.mesh</Resource>
|
||||
<Color A="1" B="39.2156868" G="0" R="3.13725495"/>
|
||||
<Shadow>false</Shadow>
|
||||
</c:Model>
|
||||
<c:Transform>
|
||||
<Scale X="-70" Y="-70" Z="-70"/>
|
||||
@@ -210,7 +216,7 @@
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="-">
|
||||
<Entity name="CapP">
|
||||
<Components>
|
||||
<c:AABB/>
|
||||
<c:CapturePoint>
|
||||
@@ -254,6 +260,13 @@
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight/>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Blue">
|
||||
@@ -265,7 +278,25 @@
|
||||
<Scale X="3.4000001" Y="4.70000029" Z="0.700000048"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource></Resource>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight/>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Spectator">
|
||||
<Components>
|
||||
@@ -276,7 +307,43 @@
|
||||
<Scale X="1" Y="5.70000029" Z="1"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight/>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource></Resource>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:PointLight/>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource></Resource>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
@@ -287,11 +354,11 @@
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity name="-">
|
||||
<Entity name="CapP">
|
||||
<Components>
|
||||
<c:AABB/>
|
||||
<c:CapturePoint>
|
||||
<CaptureTimer>-15</CaptureTimer>
|
||||
<CaptureTimer>12</CaptureTimer>
|
||||
<HomePointForTeam>
|
||||
<Blue/>
|
||||
</HomePointForTeam>
|
||||
@@ -317,7 +384,38 @@
|
||||
<Scale X="4.4000001" Y="2" Z="3.70000029"/>
|
||||
</c:Transform>
|
||||
</Components>
|
||||
<Children/>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Model>
|
||||
<Resource></Resource>
|
||||
</c:Model>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children>
|
||||
<Entity>
|
||||
<Components>
|
||||
<c:Transform/>
|
||||
</Components>
|
||||
<Children/>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
</Children>
|
||||
</Entity>
|
||||
<Entity name="Blue">
|
||||
<Components>
|
||||
|
||||
@@ -71,6 +71,8 @@
|
||||
<xs:element ref="c:NetworkComponent" minOccurs="0"/>
|
||||
<xs:element ref="c:ServerIdentity" minOccurs="0"/>
|
||||
<xs:element ref="c:ServerList" minOccurs="0"/>
|
||||
<xs:element ref="c:ConfigBtnResolution" minOccurs="0"/>
|
||||
<xs:element ref="c:ConfigBtnFloat" minOccurs="0"/>
|
||||
</xs:all>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
@@ -15,6 +15,11 @@ uniform float RandomnessScalar;
|
||||
uniform vec2 Velocity;
|
||||
uniform bool ColorByDistance;
|
||||
uniform bool ExponentialAccelaration;
|
||||
uniform bool Reverse;
|
||||
uniform float ColorDistanceScalar;
|
||||
//uniform bool Gravity;
|
||||
//uniform bool Rotation;
|
||||
//uniform bool MaxRadius;
|
||||
|
||||
in VertexData{
|
||||
vec3 Position;
|
||||
@@ -41,169 +46,136 @@ out VertexData{
|
||||
layout(triangles) in;
|
||||
layout(triangle_strip, max_vertices = 3) out;
|
||||
|
||||
float EqualTo(float x, float y) {
|
||||
return 1.0 - abs(sign(x - y));
|
||||
}
|
||||
|
||||
float NotEqualTo(float x, float y) {
|
||||
return abs(sign(x - y));
|
||||
}
|
||||
|
||||
float GreaterThan(float x, float y) {
|
||||
return max(sign(x - y), 0.0);
|
||||
}
|
||||
|
||||
float LessThan(float x, float y) {
|
||||
return max(sign(y - x), 0.0);
|
||||
}
|
||||
|
||||
float GreaterEqualTo(float x, float y) {
|
||||
return 1.0 - LessThan(x, y);
|
||||
}
|
||||
|
||||
float LessEqualTo(float x, float y) {
|
||||
return 1.0 - GreaterThan(x, y);
|
||||
}
|
||||
|
||||
// returns a "random" number based on input parameter
|
||||
float GetRandomNumber(int polygon_index)
|
||||
{
|
||||
int randomIndex = int(mod(polygon_index, 50));
|
||||
|
||||
return RandomNumbers[randomIndex];
|
||||
return RandomNumbers[int(mod(polygon_index, 50))];
|
||||
}
|
||||
|
||||
float randomNumber = 0.0;
|
||||
float randomDistance = 0.0;
|
||||
|
||||
void main()
|
||||
vec3 CalcCenterOfTriangle(vec3 vertex0, vec3 vertex1, vec3 vertex2)
|
||||
{
|
||||
// calculate middle of vectors
|
||||
vec3 v1 = Input[1].Position - Input[0].Position;
|
||||
vec3 v2 = Input[2].Position - Input[0].Position;
|
||||
vec3 v3 = Input[2].Position - (v1 / 2);
|
||||
vec3 v4 = Input[1].Position - (v2 / 2);
|
||||
vec3 dir1 = normalize(vertex1 - vertex0);
|
||||
vec3 dir2 = normalize(vertex2 - vertex0);
|
||||
|
||||
// calculate intersection
|
||||
|
||||
// normalize direction
|
||||
vec3 dir1 = normalize(v1);
|
||||
vec3 dir2 = normalize(v2);
|
||||
|
||||
vec3 vecA = Input[2].Position - Input[1].Position; //o2 - o1
|
||||
vec3 vecA = vertex2 - vertex1; //o2 - o1
|
||||
vec3 vecB = cross(dir1, dir2);
|
||||
|
||||
mat3 matrisA = mat3(vecA, dir2, vecB);
|
||||
|
||||
float lengthA = length(vecB);
|
||||
lengthA = lengthA * lengthA;
|
||||
|
||||
|
||||
float s = determinant(matrisA) / lengthA;
|
||||
|
||||
// center position of triangle
|
||||
vec3 centerOfTriangle = Input[1].Position + (s * dir1);
|
||||
|
||||
return vertex1 + (s * dir1);
|
||||
}
|
||||
|
||||
void PassThingsThrough(int index)
|
||||
{
|
||||
// pass through vertex data
|
||||
Output.Normal = Input[index].Normal;
|
||||
Output.Position = Input[index].Position;
|
||||
Output.TextureCoordinate = Input[index].TextureCoordinate;
|
||||
Output.Tangent = Input[index].Tangent;
|
||||
Output.BiTangent = Input[index].BiTangent;
|
||||
Output.ExplosionColor = EndColor;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
vec3 centerOfTriangle = CalcCenterOfTriangle(Input[0].Position, Input[1].Position, Input[2].Position);
|
||||
|
||||
// center position of triangle to origin vector
|
||||
vec3 origin2TriangleCenterVector = centerOfTriangle - ExplosionOrigin;
|
||||
vec3 normalizedOrigin2TriangleCenterVector = normalize(origin2TriangleCenterVector);
|
||||
|
||||
// distance between origin and the center of the current triangle
|
||||
float origin2TriangleCenterDistance = length(origin2TriangleCenterVector);
|
||||
|
||||
// time percentage until end of explosion (0.0-1.0)
|
||||
float timePercetage = TimeSinceDeath / ExplosionDuration;
|
||||
|
||||
// get a random number if randomness is enabled, otherwise the random number will be zero and won't affect the other algorithms
|
||||
if (Randomness == true)
|
||||
{
|
||||
randomDistance = GetRandomNumber(gl_PrimitiveIDIn) * RandomnessScalar;
|
||||
}
|
||||
// get a random number if randomness is enabled, otherwise the random distance will be zero and won't affect the other algorithms
|
||||
float randomDistance = float(Randomness) * GetRandomNumber(gl_PrimitiveIDIn) * RandomnessScalar;
|
||||
|
||||
vec2 randomVelocity = Velocity * (randomDistance + 1.0);
|
||||
|
||||
// accelaration to use on current frame. is a interpolation between start and end value
|
||||
float currentVelocity = mix(randomVelocity.x, randomVelocity.y, timePercetage);
|
||||
|
||||
if (ExponentialAccelaration == true)
|
||||
{
|
||||
currentVelocity = pow(currentVelocity, 2) / 2.0;
|
||||
}
|
||||
// if the accelaration should be exponential
|
||||
currentVelocity = currentVelocity * max(currentVelocity * float(ExponentialAccelaration), 1.0);
|
||||
|
||||
// distance between origin and the center of the current triangle
|
||||
float origin2TriangleCenterDistance = length(origin2TriangleCenterVector);
|
||||
// the distance the blast has moved since the beginning, i.e. its radius
|
||||
float blastWave = TimeSinceDeath * currentVelocity;
|
||||
|
||||
// the distance from origin to the triangle center with eventual randomness added
|
||||
float fullDistanceWithRandomness = origin2TriangleCenterDistance + randomDistance;
|
||||
|
||||
// vector from the triangle center to the explosion's shockwave
|
||||
vec3 triangleCenter2ExplosionRadius = (normalizedOrigin2TriangleCenterVector * (TimeSinceDeath * currentVelocity)) - (normalizedOrigin2TriangleCenterVector * fullDistanceWithRandomness);
|
||||
float origin2TriangleCenterDistanceWithRandomness = origin2TriangleCenterDistance + randomDistance;
|
||||
|
||||
// if the triangle is inside the blast radius...
|
||||
if (fullDistanceWithRandomness <= (TimeSinceDeath * currentVelocity))
|
||||
vec3 triangleCenter2ExplosionRadius = (normalizedOrigin2TriangleCenterVector * blastWave) - (normalizedOrigin2TriangleCenterVector * origin2TriangleCenterDistanceWithRandomness);
|
||||
|
||||
// if the triangle is inside the blast's radius...
|
||||
float isInsideBlastRadius = LessEqualTo(origin2TriangleCenterDistanceWithRandomness, blastWave);
|
||||
|
||||
// calculate the max distance (s) the triangle will move
|
||||
float accelaration = (randomVelocity.y - randomVelocity.x) / ExplosionDuration;
|
||||
float maxDistance = (randomVelocity.x * ExplosionDuration) + (0.5 * accelaration * ExplosionDuration * ExplosionDuration);
|
||||
|
||||
// if explosion color should be affected by distance instead of time...
|
||||
if (ColorByDistance == true)
|
||||
{
|
||||
float maxRadius = max(TimeSinceDeath * currentVelocity, (ExplosionDuration * currentVelocity));
|
||||
|
||||
float a = (randomVelocity.y - randomVelocity.x) / ExplosionDuration;
|
||||
//float t = sqrt((2 * origin2TriangleCenterDistance) / a);
|
||||
|
||||
// if explosion color should be affected by distance instead of time...
|
||||
if (ColorByDistance == true)
|
||||
{
|
||||
// calculate the max distance (s) the triangle will move
|
||||
float s = (randomVelocity.x * ExplosionDuration) + (0.5 * a * pow(ExplosionDuration, 2));
|
||||
float te = (length(triangleCenter2ExplosionRadius) / s);
|
||||
|
||||
Output.ExplosionColor = EndColor;
|
||||
Output.ExplosionPercentageElapsed = te;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Output.ExplosionColor = EndColor;
|
||||
Output.ExplosionPercentageElapsed = timePercetage;
|
||||
|
||||
}
|
||||
|
||||
// for every vertex on the triangle...
|
||||
for (int i = 0; i < gl_in.length(); i++)
|
||||
{
|
||||
// move the triangle to the blast radius
|
||||
vec3 ExplodedPosition = Input[i].Position + triangleCenter2ExplosionRadius;
|
||||
|
||||
// pass through vertex data
|
||||
Output.Normal = Input[i].Normal;
|
||||
Output.Position = Input[i].Position;
|
||||
Output.TextureCoordinate = Input[i].TextureCoordinate;
|
||||
Output.Tangent = Input[i].Tangent;
|
||||
Output.BiTangent = Input[i].BiTangent;
|
||||
for (int j = 0; j < MAX_SPLITS; j++)
|
||||
{
|
||||
Output.PositionLightSpace[j] = Input[i].PositionLightSpace[j];
|
||||
}
|
||||
|
||||
// convert to model space for the gravity to always be in -y
|
||||
vec4 ExplodedPositionInModelSpace = M * vec4(ExplodedPosition, 1.0);
|
||||
|
||||
// if there is gravity, apply it
|
||||
//if (Gravity == true)
|
||||
//{
|
||||
// // ---DO THIS----> //ExplodedPositionInModelSpace.y = ExplodedPositionInModelSpace.y - TimeSinceHit;
|
||||
//
|
||||
// ExplodedPositionInModelSpace.y = ExplodedPositionInModelSpace.y - pow(TimeSinceDeath, 2);
|
||||
//}
|
||||
|
||||
// convert to screen space
|
||||
gl_Position = P*V * ExplodedPositionInModelSpace;
|
||||
EmitVertex();
|
||||
}
|
||||
Output.ExplosionPercentageElapsed = (length(triangleCenter2ExplosionRadius) / maxDistance) * isInsideBlastRadius * ColorDistanceScalar;
|
||||
}
|
||||
else
|
||||
{
|
||||
// if explosion color should be affected by distance instead of time...
|
||||
if (ColorByDistance == true)
|
||||
{
|
||||
Output.ExplosionColor = EndColor;
|
||||
Output.ExplosionPercentageElapsed = 0.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
Output.ExplosionColor = EndColor;
|
||||
Output.ExplosionPercentageElapsed = timePercetage;
|
||||
Output.ExplosionPercentageElapsed = timePercetage;
|
||||
}
|
||||
|
||||
vec3 ExplodedPosition;
|
||||
for (int i = 0; i < gl_in.length(); i++)
|
||||
{
|
||||
// move the triangle to the blast radius
|
||||
ExplodedPosition = Input[i].Position + (triangleCenter2ExplosionRadius * isInsideBlastRadius);
|
||||
|
||||
}
|
||||
|
||||
// for every vertex on the triangle...
|
||||
for(int i = 0; i < gl_in.length(); i++)
|
||||
{
|
||||
// pass through vertex data
|
||||
Output.Normal = Input[i].Normal;
|
||||
Output.Position = Input[i].Position;
|
||||
Output.TextureCoordinate = Input[i].TextureCoordinate;
|
||||
Output.Tangent = Input[i].Tangent;
|
||||
Output.BiTangent = Input[i].BiTangent;
|
||||
// pass through vertex data
|
||||
PassThingsThrough(i);
|
||||
for (int j = 0; j < MAX_SPLITS; j++)
|
||||
{
|
||||
Output.PositionLightSpace[j] = Input[i].PositionLightSpace[j];
|
||||
}
|
||||
|
||||
// no change in position, pass through vertex
|
||||
gl_Position = gl_in[i].gl_Position;
|
||||
EmitVertex();
|
||||
}
|
||||
for (int j = 0; j < MAX_SPLITS; j++)
|
||||
{
|
||||
Output.PositionLightSpace[j] = Input[i].PositionLightSpace[j];
|
||||
}
|
||||
|
||||
// convert to window space
|
||||
gl_Position = P * V * M * vec4(ExplodedPosition, 1.0);
|
||||
EmitVertex();
|
||||
}
|
||||
|
||||
//EndPrimitive();
|
||||
}
|
||||
}
|
||||
@@ -29,9 +29,10 @@ void main()
|
||||
vec4 color_result = Color * diffuseTexel;
|
||||
|
||||
float pos = ((P * vec4(Input.Position, 1)).y + 1.0)/2.0;
|
||||
float fillResult = floor(pos*FillPercentage);
|
||||
|
||||
color_result = FillColor*diffuseTexel.a*fillResult + color_result*(1-fillResult);
|
||||
if(pos <= FillPercentage) {
|
||||
color_result = FillColor*diffuseTexel.a;
|
||||
}
|
||||
|
||||
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
|
||||
|
||||
|
||||
@@ -151,9 +151,9 @@ bool RayVsModel(const Ray& ray,
|
||||
const glm::mat4& modelMatrix)
|
||||
{
|
||||
for (int i = 0; i < modelIndices.size();) {
|
||||
glm::vec3 v0 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
glm::vec3 v1 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
glm::vec3 v2 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
if (RayVsTriangle(ray, v0, v1, v2)) {
|
||||
return true;
|
||||
}
|
||||
@@ -204,9 +204,9 @@ bool RayVsModel(const Ray& ray,
|
||||
outDistance = INFINITY;
|
||||
bool hit = false;
|
||||
for (int i = 0; i < modelIndices.size();) {
|
||||
glm::vec3 v0 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
glm::vec3 v1 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
glm::vec3 v2 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||
float dist = outDistance;
|
||||
float u;
|
||||
float v;
|
||||
@@ -565,9 +565,9 @@ Output AABBvsTriangles(const AABB& box,
|
||||
glm::vec3 originalBoxVelocity(boxVelocity);
|
||||
for (int i = 0; i < modelIndices.size(); ) {
|
||||
std::array<glm::vec3, 3> triVertices = {
|
||||
Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix),
|
||||
Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix),
|
||||
Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix)
|
||||
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix),
|
||||
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix),
|
||||
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix)
|
||||
};
|
||||
glm::vec3 outVec;
|
||||
bool collideWithGround = isOnGround;
|
||||
@@ -655,9 +655,9 @@ boost::optional<EntityAABB> EntityAbsoluteAABB(EntityWrapper& entity, bool takeM
|
||||
AABB modelSpaceBox;
|
||||
if (entity.HasComponent("AABB") && !takeModelBox) {
|
||||
ComponentWrapper& cAABB = entity["AABB"];
|
||||
modelSpaceBox = EntityAABB::FromOriginSize((glm::vec3)cAABB["Origin"], (glm::vec3)cAABB["Size"]);
|
||||
modelSpaceBox = EntityAABB::FromOriginSize((const glm::vec3&)cAABB["Origin"], (const glm::vec3&)cAABB["Size"]);
|
||||
} else if (entity.HasComponent("Model")) {
|
||||
std::string res = entity["Model"]["Resource"];
|
||||
const std::string& res = entity["Model"]["Resource"];
|
||||
if (res.empty()) {
|
||||
return boost::none;
|
||||
}
|
||||
@@ -674,7 +674,7 @@ boost::optional<EntityAABB> EntityAbsoluteAABB(EntityWrapper& entity, bool takeM
|
||||
return boost::none;
|
||||
}
|
||||
|
||||
glm::mat4 modelMat = Transform::AbsoluteTransformation(entity);
|
||||
glm::mat4 modelMat = TransformSystem::ModelMatrix(entity);
|
||||
glm::vec3 mini(INFINITY);
|
||||
glm::vec3 maxi(-INFINITY);
|
||||
glm::vec3 maxCorner = modelSpaceBox.MaxCorner();
|
||||
@@ -685,7 +685,7 @@ boost::optional<EntityAABB> EntityAbsoluteAABB(EntityWrapper& entity, bool takeM
|
||||
corner.x = bits.test(0) ? maxCorner.x : minCorner.x;
|
||||
corner.y = bits.test(1) ? maxCorner.y : minCorner.y;
|
||||
corner.z = bits.test(2) ? maxCorner.z : minCorner.z;
|
||||
corner = Transform::TransformPoint(corner, modelMat);
|
||||
corner = TransformSystem::TransformPoint(corner, modelMat);
|
||||
mini = glm::min(mini, corner);
|
||||
maxi = glm::max(maxi, corner);
|
||||
}
|
||||
@@ -703,7 +703,7 @@ boost::optional<EntityAABB> AbsoluteAABBExplosionEffect(EntityWrapper& entity)
|
||||
if (!modelBox) {
|
||||
return boost::none;
|
||||
}
|
||||
bool isRandom = (bool)entity["ExplosionEffect"]["Randomness"];
|
||||
Field<bool> isRandom = entity["ExplosionEffect"]["Randomness"];
|
||||
float random = isRandom ? (float)(double)entity["ExplosionEffect"]["RandomnessScalar"] : 0;
|
||||
glm::vec3 origin = (glm::vec3)entity["ExplosionEffect"]["ExplosionOrigin"];
|
||||
glm::vec3 randomVel = (glm::vec3)entity["ExplosionEffect"]["Velocity"];
|
||||
@@ -741,7 +741,7 @@ boost::optional<EntityAABB> EntityFirstHitByRay(const Ray& ray, std::vector<Enti
|
||||
continue;
|
||||
}
|
||||
float u, v;
|
||||
if (RayVsModel(ray, model->Vertices(), model->m_RawModel->m_Indices, Transform::ModelMatrix(entityBox.Entity), outDistance, u, v)) {
|
||||
if (RayVsModel(ray, model->Vertices(), model->m_RawModel->m_Indices, TransformSystem::ModelMatrix(entityBox.Entity), outDistance, u, v)) {
|
||||
outIntersectPos = ray.Origin() + outDistance * ray.Direction();
|
||||
return entityBox;
|
||||
}
|
||||
|
||||
@@ -49,7 +49,7 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
|
||||
continue;
|
||||
}
|
||||
float u, v;
|
||||
hit = Collision::RayVsModel(ray, model->Vertices(), model->m_Indices, Transform::ModelMatrix(boxB.Entity), dist, u, v);
|
||||
hit = Collision::RayVsModel(ray, model->Vertices(), model->m_Indices, TransformSystem::ModelMatrix(boxB.Entity), dist, u, v);
|
||||
} else {
|
||||
hit = Collision::RayVsAABB(ray, boxB, dist);
|
||||
}
|
||||
@@ -58,12 +58,12 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
|
||||
//TODO: Perhaps this should be done slightly more properly.
|
||||
glm::vec3 newOriginPos = ray.Origin() + (dist - 0.707107f*diameter) * ray.Direction();
|
||||
glm::vec3 resolve = newOriginPos - boxA.Origin();
|
||||
(glm::vec3&)cTransform["Position"] += resolve;
|
||||
(Field<glm::vec3>)cTransform["Position"] += resolve;
|
||||
boxA = *Collision::EntityAbsoluteAABB(entity);
|
||||
if (resolve.y > 0) {
|
||||
everHitTheGround = true;
|
||||
(bool)cPhysics["IsOnGround"] = true;
|
||||
((glm::vec3&)cPhysics["Velocity"]).y = 0.f;
|
||||
cPhysics["IsOnGround"] = true;
|
||||
((Field<glm::vec3>)cPhysics["Velocity"]).y(0.f);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -82,7 +82,7 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
|
||||
|
||||
if (boxB.Entity.HasComponent("Model") && Collision::AABBVsAABB(boxA, boxB)) {
|
||||
// Here we know boxB is a entity with Collideable, AABB, and Model.
|
||||
if (!((bool)boxB.Entity["Model"]["Visible"])) {
|
||||
if (!((const bool&)boxB.Entity["Model"]["Visible"])) {
|
||||
// Don't collide against invisible models.
|
||||
continue;
|
||||
}
|
||||
@@ -93,14 +93,14 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
|
||||
continue;
|
||||
}
|
||||
|
||||
glm::mat4 modelMatrix = Transform::ModelMatrix(boxB.Entity);
|
||||
glm::mat4 modelMatrix = TransformSystem::ModelMatrix(boxB.Entity);
|
||||
|
||||
glm::vec3 inOutVelocity = (glm::vec3)cPhysics["Velocity"];
|
||||
bool isOnGround = (bool)cPhysics["IsOnGround"];
|
||||
float verticalStepHeight = (float)(double)cPhysics["VerticalStepHeight"];
|
||||
if (Collision::AABBvsTriangles(boxA, model->Vertices(), model->m_Indices, modelMatrix, inOutVelocity, verticalStepHeight, isOnGround, resolutionVector)) {
|
||||
//Move the position to previous position if it is not moving in the xz-plane, else resolve with the resolution vector.
|
||||
(glm::vec3&)cTransform["Position"] += resolutionVector;
|
||||
(Field<glm::vec3>)cTransform["Position"] += resolutionVector;
|
||||
boxA = *Collision::EntityAbsoluteAABB(entity);
|
||||
cPhysics["Velocity"] = inOutVelocity;
|
||||
if (isOnGround) {
|
||||
@@ -110,12 +110,12 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
|
||||
}
|
||||
} else if (Collision::AABBVsAABB(boxA, boxB, resolutionVector)) {
|
||||
//Enter here if boxB has no Model.
|
||||
(glm::vec3&)cTransform["Position"] += resolutionVector;
|
||||
(Field<glm::vec3>)cTransform["Position"] += resolutionVector;
|
||||
boxA = *Collision::EntityAbsoluteAABB(entity);
|
||||
if (resolutionVector.y > 0) {
|
||||
everHitTheGround = true;
|
||||
(bool)cPhysics["IsOnGround"] = true;
|
||||
((glm::vec3&)cPhysics["Velocity"]).y = 0.f;
|
||||
((Field<glm::vec3>)cPhysics["Velocity"]).y(0.f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user