Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1992b6cde1 | |||
| c82be79bb8 | |||
| 35a8d45fa4 |
+1
-1
Submodule assets updated: bc6e7df04c...298641b1af
@@ -12,7 +12,7 @@
|
|||||||
#include "../Core/AABB.h"
|
#include "../Core/AABB.h"
|
||||||
#include "Rendering/RawModelCustom.h"
|
#include "Rendering/RawModelCustom.h"
|
||||||
//#include "Rendering/RawModelAssimp.h"
|
//#include "Rendering/RawModelAssimp.h"
|
||||||
#include "../Core/TransformSystem.h"
|
#include "../Core/Transform.h"
|
||||||
#include "../Core/Entity.h"
|
#include "../Core/Entity.h"
|
||||||
#include "../Core/EntityWrapper.h"
|
#include "../Core/EntityWrapper.h"
|
||||||
#include "EntityAABB.h"
|
#include "EntityAABB.h"
|
||||||
@@ -48,13 +48,13 @@ bool RayVsTriangle(const Ray& ray,
|
|||||||
bool trueOnNegativeDistance = false);
|
bool trueOnNegativeDistance = false);
|
||||||
//Return true if the ray hits any of the triangles in the model. Stops checking when a hit is detected.
|
//Return true if the ray hits any of the triangles in the model. Stops checking when a hit is detected.
|
||||||
bool RayVsModel(const Ray& ray,
|
bool RayVsModel(const Ray& ray,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix);
|
const glm::mat4& modelMatrix);
|
||||||
//Return true if the ray hits any of the triangles in the model.
|
//Return true if the ray hits any of the triangles in the model.
|
||||||
//Also returns the position of the intersection point. Will loop through all the whole model indices.
|
//Also returns the position of the intersection point. Will loop through all the whole model indices.
|
||||||
bool RayVsModel(const Ray& ray,
|
bool RayVsModel(const Ray& ray,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix,
|
const glm::mat4& modelMatrix,
|
||||||
glm::vec3& outHitPosition);
|
glm::vec3& outHitPosition);
|
||||||
@@ -62,7 +62,7 @@ bool RayVsModel(const Ray& ray,
|
|||||||
//Also returns the distance from the ray origin to the closest
|
//Also returns the distance from the ray origin to the closest
|
||||||
//intersection point, and the barycentric u,v-coordinates. Will loop through all the whole model indices.
|
//intersection point, and the barycentric u,v-coordinates. Will loop through all the whole model indices.
|
||||||
bool RayVsModel(const Ray& ray,
|
bool RayVsModel(const Ray& ray,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix,
|
const glm::mat4& modelMatrix,
|
||||||
float& outDistance,
|
float& outDistance,
|
||||||
@@ -70,7 +70,7 @@ bool RayVsModel(const Ray& ray,
|
|||||||
float& outVCoord);
|
float& outVCoord);
|
||||||
|
|
||||||
bool AABBvsTriangles(const AABB& box,
|
bool AABBvsTriangles(const AABB& box,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix,
|
const glm::mat4& modelMatrix,
|
||||||
glm::vec3& boxVelocity,
|
glm::vec3& boxVelocity,
|
||||||
@@ -80,19 +80,7 @@ bool AABBvsTriangles(const AABB& box,
|
|||||||
|
|
||||||
//Detects collision, but does not resolve.
|
//Detects collision, but does not resolve.
|
||||||
bool AABBvsTriangles(const AABB& box,
|
bool AABBvsTriangles(const AABB& box,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
|
||||||
const glm::mat4& modelMatrix);
|
|
||||||
|
|
||||||
enum Output
|
|
||||||
{
|
|
||||||
OutContained,
|
|
||||||
OutSeparated,
|
|
||||||
OutIntersecting
|
|
||||||
};
|
|
||||||
//Detects intersection and containment.
|
|
||||||
Output AABBvsTrianglesWContainment(const AABB& box,
|
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix);
|
const glm::mat4& modelMatrix);
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
#define ComponentInfo_h__
|
#define ComponentInfo_h__
|
||||||
|
|
||||||
#include "../Common.h"
|
#include "../Common.h"
|
||||||
#include "Entity.h"
|
|
||||||
#include <boost/shared_array.hpp>
|
#include <boost/shared_array.hpp>
|
||||||
|
|
||||||
struct ComponentInfo
|
struct ComponentInfo
|
||||||
@@ -22,7 +21,6 @@ struct ComponentInfo
|
|||||||
{
|
{
|
||||||
std::string Name;
|
std::string Name;
|
||||||
std::string Type;
|
std::string Type;
|
||||||
unsigned char Index;
|
|
||||||
unsigned int Offset;
|
unsigned int Offset;
|
||||||
unsigned int Stride;
|
unsigned int Stride;
|
||||||
};
|
};
|
||||||
@@ -34,16 +32,6 @@ struct ComponentInfo
|
|||||||
unsigned int Stride = 0;
|
unsigned int Stride = 0;
|
||||||
boost::shared_array<char> Defaults = nullptr;
|
boost::shared_array<char> Defaults = nullptr;
|
||||||
std::shared_ptr<Meta_t> Meta = 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<>
|
template<>
|
||||||
|
|||||||
@@ -5,15 +5,16 @@
|
|||||||
#include "MemoryPool.h"
|
#include "MemoryPool.h"
|
||||||
#include "ComponentInfo.h"
|
#include "ComponentInfo.h"
|
||||||
#include "ComponentWrapper.h"
|
#include "ComponentWrapper.h"
|
||||||
#include "DirtySet.h"
|
|
||||||
|
|
||||||
|
|
||||||
class ComponentPool;
|
|
||||||
class ComponentPoolForwardIterator
|
class ComponentPoolForwardIterator
|
||||||
: public std::iterator<std::forward_iterator_tag, ComponentWrapper>
|
: public std::iterator<std::forward_iterator_tag, ComponentWrapper>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ComponentPoolForwardIterator(ComponentPool* pool, const MemoryPool<char>::iterator begin, const MemoryPool<char>::iterator end);
|
ComponentPoolForwardIterator(const ComponentInfo& componentInfo, const MemoryPool<char>::iterator begin, const MemoryPool<char>::iterator end)
|
||||||
|
: m_ComponentInfo(componentInfo)
|
||||||
|
, m_MemoryPoolIterator(begin)
|
||||||
|
, m_MemoryPoolEnd(end)
|
||||||
|
{ }
|
||||||
|
|
||||||
ComponentPoolForwardIterator(const ComponentPoolForwardIterator& other) = default;
|
ComponentPoolForwardIterator(const ComponentPoolForwardIterator& other) = default;
|
||||||
ComponentPoolForwardIterator(ComponentPoolForwardIterator&& other) = default;
|
ComponentPoolForwardIterator(ComponentPoolForwardIterator&& other) = default;
|
||||||
@@ -26,7 +27,6 @@ public:
|
|||||||
ComponentWrapper operator*() const;
|
ComponentWrapper operator*() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ComponentPool* m_ComponentPool;
|
|
||||||
const ComponentInfo& m_ComponentInfo;
|
const ComponentInfo& m_ComponentInfo;
|
||||||
MemoryPool<char>::iterator m_MemoryPoolIterator;
|
MemoryPool<char>::iterator m_MemoryPoolIterator;
|
||||||
const MemoryPool<char>::iterator m_MemoryPoolEnd;
|
const MemoryPool<char>::iterator m_MemoryPoolEnd;
|
||||||
@@ -34,7 +34,6 @@ private:
|
|||||||
|
|
||||||
class ComponentPool
|
class ComponentPool
|
||||||
{
|
{
|
||||||
friend class ComponentPoolForwardIterator;
|
|
||||||
public:
|
public:
|
||||||
typedef ComponentPoolForwardIterator iterator;
|
typedef ComponentPoolForwardIterator iterator;
|
||||||
typedef ptrdiff_t difference_type;
|
typedef ptrdiff_t difference_type;
|
||||||
@@ -43,10 +42,9 @@ public:
|
|||||||
typedef ComponentWrapper* pointer;
|
typedef ComponentWrapper* pointer;
|
||||||
typedef ComponentWrapper& reference;
|
typedef ComponentWrapper& reference;
|
||||||
|
|
||||||
ComponentPool(const ::ComponentInfo& ci, World* world)
|
ComponentPool(const ::ComponentInfo& ci)
|
||||||
: m_ComponentInfo(ci)
|
: m_ComponentInfo(ci)
|
||||||
, m_Pool(ci.Meta->Allocation, ci.GetHeaderSize() + ci.Stride)
|
, m_Pool(ci.Meta->Allocation, sizeof(EntityID) + ci.Stride)
|
||||||
, m_World(world)
|
|
||||||
{ }
|
{ }
|
||||||
~ComponentPool();
|
~ComponentPool();
|
||||||
ComponentPool(const ComponentPool& other);
|
ComponentPool(const ComponentPool& other);
|
||||||
@@ -63,8 +61,8 @@ public:
|
|||||||
// Delete a component and free its memory
|
// Delete a component and free its memory
|
||||||
void Delete(ComponentWrapper& wrapper);
|
void Delete(ComponentWrapper& wrapper);
|
||||||
|
|
||||||
iterator begin();
|
iterator begin() const;
|
||||||
iterator end();
|
iterator end() const;
|
||||||
size_t size() const;
|
size_t size() const;
|
||||||
|
|
||||||
//Dumps information about what the pool memory looks like right now
|
//Dumps information about what the pool memory looks like right now
|
||||||
@@ -82,8 +80,6 @@ private:
|
|||||||
::ComponentInfo m_ComponentInfo;
|
::ComponentInfo m_ComponentInfo;
|
||||||
MemoryPool<char> m_Pool;
|
MemoryPool<char> m_Pool;
|
||||||
std::unordered_map<EntityID, char*> m_EntityToComponent;
|
std::unordered_map<EntityID, char*> m_EntityToComponent;
|
||||||
DirtySet m_DirtySet;
|
|
||||||
World* m_World;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -4,32 +4,46 @@
|
|||||||
#include <boost/shared_array.hpp>
|
#include <boost/shared_array.hpp>
|
||||||
#include <boost/any.hpp>
|
#include <boost/any.hpp>
|
||||||
#include "../Common.h"
|
#include "../Common.h"
|
||||||
#include "../GLM.h"
|
|
||||||
#include "Entity.h"
|
#include "Entity.h"
|
||||||
#include "ComponentInfo.h"
|
#include "ComponentInfo.h"
|
||||||
#include "DirtySet.h"
|
|
||||||
#include "Util/Any.h"
|
#include "Util/Any.h"
|
||||||
|
|
||||||
class World;
|
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; }
|
||||||
|
};
|
||||||
|
|
||||||
struct ComponentWrapper
|
struct ComponentWrapper
|
||||||
{
|
{
|
||||||
ComponentWrapper(const ComponentInfo& componentInfo, char* data, ::DirtyBitField* dirtyBitField, World* world);
|
ComponentWrapper(const ComponentInfo& componentInfo, char* data)
|
||||||
|
: Info(componentInfo)
|
||||||
|
, EntityID(*reinterpret_cast<::EntityID*>(data))
|
||||||
|
, Data(data + sizeof(::EntityID))
|
||||||
|
{ }
|
||||||
|
|
||||||
World* m_World;
|
|
||||||
const ComponentInfo& Info;
|
const ComponentInfo& Info;
|
||||||
const ::EntityID EntityID;
|
const ::EntityID EntityID;
|
||||||
char* Data;
|
char* Data;
|
||||||
::DirtyBitField* DirtyBitField = nullptr;
|
|
||||||
|
|
||||||
ComponentInfo::EnumType Enum(const char* fieldName, const char* enumKey);
|
ComponentInfo::EnumType Enum(const char* fieldName, const char* enumKey)
|
||||||
|
{
|
||||||
bool Dirty(DirtySetType type, const std::string& fieldName);
|
return Info.Meta->FieldEnumDefinitions.at(fieldName).at(enumKey);
|
||||||
void SetDirty(DirtySetType type, const std::string& fieldName, bool dirty = true);
|
}
|
||||||
void SetAllDirty(const std::string& fieldName, bool dirty = true);
|
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
T& Field(const std::string& name)
|
T& Field(std::string name)
|
||||||
{
|
{
|
||||||
const ComponentInfo::Field_t& field = Info.Fields.at(name);
|
const ComponentInfo::Field_t& field = Info.Fields.at(name);
|
||||||
if (sizeof(T) > field.Stride) {
|
if (sizeof(T) > field.Stride) {
|
||||||
@@ -41,15 +55,13 @@ struct ComponentWrapper
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void SetField(const std::string& name, const T& value)
|
void SetField(std::string name, const T value) { Field<T>(name) = value; }
|
||||||
{
|
//template <typename T>
|
||||||
Field<T>(name) = value;
|
//void SetField(std::string name, T& value) { Field<T>(name) = value; }
|
||||||
SetAllDirty(name);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Specialization for string literals
|
// Specialization for string literals
|
||||||
template <std::size_t N>
|
template <std::size_t N>
|
||||||
void SetField(const std::string& name, const char(&value)[N]) { SetField(name, std::string(value)); }
|
void SetField(std::string name, const char(&value)[N]) { Field<std::string>(name) = std::string(value); }
|
||||||
|
|
||||||
void Copy(ComponentWrapper& destination)
|
void Copy(ComponentWrapper& destination)
|
||||||
{
|
{
|
||||||
@@ -83,163 +95,40 @@ struct ComponentWrapper
|
|||||||
struct SubscriptProxy
|
struct SubscriptProxy
|
||||||
{
|
{
|
||||||
friend struct ComponentWrapper;
|
friend struct ComponentWrapper;
|
||||||
|
private:
|
||||||
public:
|
SubscriptProxy(ComponentWrapper* component, std::string propertyName)
|
||||||
SubscriptProxy(ComponentWrapper* component, std::string fieldName)
|
|
||||||
: m_Component(component)
|
: m_Component(component)
|
||||||
, m_FieldName(fieldName)
|
, m_PropertyName(propertyName)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
ComponentWrapper* m_Component;
|
ComponentWrapper* m_Component;
|
||||||
std::string m_FieldName;
|
std::string m_PropertyName;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// Return the integer value of an enum type key for this field
|
// Return the integer value of an enum type key for this field
|
||||||
ComponentInfo::EnumType Enum(const char* enumKey) { return m_Component->Enum(m_FieldName.c_str(), enumKey); }
|
ComponentInfo::EnumType Enum(const char* enumKey) { return m_Component->Enum(m_PropertyName.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); }
|
|
||||||
|
|
||||||
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>
|
template <typename T>
|
||||||
void operator=(const T& val) { m_Component->SetField<T>(m_FieldName, val); }
|
operator T&() { return m_Component->Field<T>(m_PropertyName); }
|
||||||
|
|
||||||
|
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); }
|
||||||
|
|
||||||
// Specialization for string literals
|
// Specialization for string literals
|
||||||
template <std::size_t N>
|
template <std::size_t N>
|
||||||
void operator=(const char(&val)[N]) { m_Component->SetField<N>(m_FieldName, val); }
|
void operator=(const char(&val)[N]) { m_Component->SetField<N>(m_PropertyName, val); }
|
||||||
};
|
};
|
||||||
SubscriptProxy operator[](const std::string& propertyName) { return SubscriptProxy(this, propertyName); }
|
SubscriptProxy operator[](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
|
// A component wrapper that "owns" its data through a shared pointer
|
||||||
struct SharedComponentWrapper : ComponentWrapper
|
struct SharedComponentWrapper : ComponentWrapper
|
||||||
{
|
{
|
||||||
SharedComponentWrapper(const ComponentInfo& componentInfo, boost::shared_array<char> data)
|
SharedComponentWrapper(const ComponentInfo& componentInfo, boost::shared_array<char> data)
|
||||||
: ComponentWrapper(componentInfo, data.get(), nullptr, nullptr)
|
: ComponentWrapper(componentInfo, data.get())
|
||||||
, m_DataReference(data)
|
, m_DataReference(data)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
#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
|
|
||||||
@@ -2,14 +2,14 @@
|
|||||||
#define EEntityDeleted_h__
|
#define EEntityDeleted_h__
|
||||||
|
|
||||||
#include "Event.h"
|
#include "Event.h"
|
||||||
#include "EntityWrapper.h"
|
#include "Entity.h"
|
||||||
|
|
||||||
namespace Events
|
namespace Events
|
||||||
{
|
{
|
||||||
|
|
||||||
struct EntityDeleted : Event
|
struct EntityDeleted : Event
|
||||||
{
|
{
|
||||||
EntityWrapper DeletedEntity;
|
EntityID DeletedEntity;
|
||||||
// True if the entity deletion was triggered because the entity's parent was deleted before it
|
// True if the entity deletion was triggered because the entity's parent was deleted before it
|
||||||
bool Cascaded;
|
bool Cascaded;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -45,9 +45,8 @@ struct EntityWrapper
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
EntityWrapper firstChildByNameRecursive(const std::string& name, EntityID parent);
|
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);
|
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
|
namespace std
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ class Resource
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
Resource() { }
|
Resource() { }
|
||||||
virtual ~Resource() = default;
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
//Should be thrown in a Resource's constructor if it cannot complete because another resource is still loading.
|
//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) {
|
for (auto& pair : group.PureSystems) {
|
||||||
const std::string& componentName = pair.first;
|
const std::string& componentName = pair.first;
|
||||||
auto& systems = pair.second;
|
auto& systems = pair.second;
|
||||||
ComponentPool* pool = m_World->GetComponents(componentName);
|
const ComponentPool* pool = m_World->GetComponents(componentName);
|
||||||
if (pool == nullptr) {
|
if (pool == nullptr) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
#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
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
#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
|
// Delete a component off an entity
|
||||||
void DeleteComponent(EntityID entity, const std::string& componentType);
|
void DeleteComponent(EntityID entity, const std::string& componentType);
|
||||||
// Get all components of the specified type
|
// Get all components of the specified type
|
||||||
ComponentPool* GetComponents(const std::string& componentType);
|
const ComponentPool* GetComponents(const std::string& componentType);
|
||||||
// Get entity parent
|
// Get entity parent
|
||||||
EntityID GetParent(EntityID entity);
|
EntityID GetParent(EntityID entity);
|
||||||
// Change the parent of an entity
|
// Change the parent of an entity
|
||||||
|
|||||||
@@ -47,7 +47,6 @@ private:
|
|||||||
// Utility functions
|
// Utility functions
|
||||||
EntityWrapper importEntity(EntityWrapper parent, boost::filesystem::path filePath);
|
EntityWrapper importEntity(EntityWrapper parent, boost::filesystem::path filePath);
|
||||||
void setWidgetMode(EditorGUI::WidgetMode mode);
|
void setWidgetMode(EditorGUI::WidgetMode mode);
|
||||||
bool isAnyParentMissingTransform(EntityID entityID);
|
|
||||||
|
|
||||||
// GUI callbacks
|
// GUI callbacks
|
||||||
void OnEntitySelected(EntityWrapper entity);
|
void OnEntitySelected(EntityWrapper entity);
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ public:
|
|||||||
virtual const glm::vec3 Rotation() const { return m_Rotation; }
|
virtual const glm::vec3 Rotation() const { return m_Rotation; }
|
||||||
virtual bool Jumping() const { return m_Jumping; }
|
virtual bool Jumping() const { return m_Jumping; }
|
||||||
virtual bool Crouching() const { return m_Crouching; }
|
virtual bool Crouching() const { return m_Crouching; }
|
||||||
virtual bool CrouchingLastFrame() const { return m_CrouchingLastFrame; }
|
|
||||||
virtual bool DoubleJumping() const { return m_DoubleJumping; }
|
virtual bool DoubleJumping() const { return m_DoubleJumping; }
|
||||||
virtual void SetDoubleJumping(bool isDoubleJumping) {
|
virtual void SetDoubleJumping(bool isDoubleJumping) {
|
||||||
m_DoubleJumping = isDoubleJumping;
|
m_DoubleJumping = isDoubleJumping;
|
||||||
@@ -30,7 +29,7 @@ public:
|
|||||||
virtual bool OnCommand(const Events::InputCommand& e) override;
|
virtual bool OnCommand(const Events::InputCommand& e) override;
|
||||||
virtual void Reset();
|
virtual void Reset();
|
||||||
|
|
||||||
void AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer, Field<double> assaultDashCoolDownTimer, EntityID playerID);
|
void AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer, double& assaultDashCoolDownTimer, EntityID playerID);
|
||||||
virtual bool AssaultDashDoubleTapped() const { return m_AssaultDashDoubleTapped; }
|
virtual bool AssaultDashDoubleTapped() const { return m_AssaultDashDoubleTapped; }
|
||||||
virtual bool PlayerIsDashing() const { return m_PlayerIsDashing; }
|
virtual bool PlayerIsDashing() const { return m_PlayerIsDashing; }
|
||||||
bool SpecialAbilityKeyDown() const { return m_SpecialAbilityKeyDown; }
|
bool SpecialAbilityKeyDown() const { return m_SpecialAbilityKeyDown; }
|
||||||
@@ -45,7 +44,6 @@ protected:
|
|||||||
bool m_Jumping = false;
|
bool m_Jumping = false;
|
||||||
bool m_DoubleJumping = false;
|
bool m_DoubleJumping = false;
|
||||||
bool m_Crouching = false;
|
bool m_Crouching = false;
|
||||||
bool m_CrouchingLastFrame = false;
|
|
||||||
//assault dash membervariables - needed to calculate the doubletap- and dashlogic
|
//assault dash membervariables - needed to calculate the doubletap- and dashlogic
|
||||||
double m_AssaultDashDoubleTapDeltaTime = 0.0;
|
double m_AssaultDashDoubleTapDeltaTime = 0.0;
|
||||||
//i will let m_AssaultDashDoubleTapSensitivityTimer stay hardcoded, its not really a gamevariable (more an inputvariable),
|
//i will let m_AssaultDashDoubleTapSensitivityTimer stay hardcoded, its not really a gamevariable (more an inputvariable),
|
||||||
@@ -84,7 +82,6 @@ void FirstPersonInputController<EventContext>::Reset()
|
|||||||
{
|
{
|
||||||
m_Rotation = glm::vec3(0.f, 0.f, 0.f);
|
m_Rotation = glm::vec3(0.f, 0.f, 0.f);
|
||||||
m_Jumping = false;
|
m_Jumping = false;
|
||||||
m_CrouchingLastFrame = m_Crouching;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename EventContext>
|
template <typename EventContext>
|
||||||
@@ -358,7 +355,7 @@ bool FirstPersonInputController<EventContext>::OnLockMouse(const Events::LockMou
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename EventContext>
|
template <typename EventContext>
|
||||||
void FirstPersonInputController<EventContext>::AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer, Field<double> assaultDashCoolDownTimer, EntityID playerID) {
|
void FirstPersonInputController<EventContext>::AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer, double& assaultDashCoolDownTimer, EntityID playerID) {
|
||||||
m_AssaultDashDoubleTapDeltaTime += dt;
|
m_AssaultDashDoubleTapDeltaTime += dt;
|
||||||
assaultDashCoolDownTimer -= dt;
|
assaultDashCoolDownTimer -= dt;
|
||||||
//cooldown = assaultDashCoolDownMaxTimer sec, pretend the dash lasts 0.25 sec (for friction to do its work)
|
//cooldown = assaultDashCoolDownMaxTimer sec, pretend the dash lasts 0.25 sec (for friction to do its work)
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public:
|
|||||||
void Connect(std::string address, int port);
|
void Connect(std::string address, int port);
|
||||||
void Update() override;
|
void Update() override;
|
||||||
private:
|
private:
|
||||||
UDPClient m_Unreliable;
|
//UDPClient m_Unreliable;
|
||||||
TCPClient m_Reliable;
|
TCPClient m_Reliable;
|
||||||
std::vector<Events::PlayerSpawned> m_PlayerSpawnEvents;
|
std::vector<Events::PlayerSpawned> m_PlayerSpawnEvents;
|
||||||
void parseSpawnEvents();
|
void parseSpawnEvents();
|
||||||
@@ -139,7 +139,7 @@ private:
|
|||||||
std::vector<ServerInfo> m_Serverlist;
|
std::vector<ServerInfo> m_Serverlist;
|
||||||
bool m_SearchingForServers = false;
|
bool m_SearchingForServers = false;
|
||||||
std::clock_t m_StartSearchTime;
|
std::clock_t m_StartSearchTime;
|
||||||
double m_SearchingTime = 200; // Config I guess
|
double m_SearchingTime = 2000; // Config I guess
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ protected:
|
|||||||
void logReceivedData(int bytesReceived);
|
void logReceivedData(int bytesReceived);
|
||||||
void saveToFile();
|
void saveToFile();
|
||||||
void updateNetworkData();
|
void updateNetworkData();
|
||||||
void popNetworkSegmentOfHeader(Packet& packet);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -16,9 +16,7 @@ public:
|
|||||||
Packet(char* data, const size_t sizeOfPacket);
|
Packet(char* data, const size_t sizeOfPacket);
|
||||||
Packet(MessageType type);
|
Packet(MessageType type);
|
||||||
~Packet();
|
~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...
|
// Add primitive types like int, float, char...
|
||||||
template<typename T>
|
template<typename T>
|
||||||
@@ -27,8 +25,7 @@ public:
|
|||||||
// Check if we are trying to add more than the package can fit.
|
// Check if we are trying to add more than the package can fit.
|
||||||
if (m_MaxPacketSize < m_Offset + sizeof(T)) {
|
if (m_MaxPacketSize < m_Offset + sizeof(T)) {
|
||||||
if (m_MaxPacketSize >= 32000) {
|
if (m_MaxPacketSize >= 32000) {
|
||||||
// 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);
|
||||||
//LOG_WARNING("Package::WritePrimitive(): New size is huge %i bytes\n", m_MaxPacketSize*2);
|
|
||||||
}
|
}
|
||||||
resizeData();
|
resizeData();
|
||||||
}
|
}
|
||||||
@@ -60,19 +57,13 @@ public:
|
|||||||
void UpdateSize();
|
void UpdateSize();
|
||||||
char* ReadData(int SizeOfData);
|
char* ReadData(int SizeOfData);
|
||||||
void ChangePacketID(unsigned int& packetID);
|
void ChangePacketID(unsigned int& packetID);
|
||||||
void ChangeGroupIndex(int groupIndex);
|
|
||||||
void ChangeGroupSize(int groupSize);
|
|
||||||
void ChangeGroup(int group);
|
|
||||||
size_t Size() { return m_Offset; };
|
size_t Size() { return m_Offset; };
|
||||||
char* Data() { return m_Data; };
|
char* Data() { return m_Data; };
|
||||||
MessageType GetMessageType();
|
MessageType GetMessageType();
|
||||||
size_t Group();
|
|
||||||
size_t DataReadSize() { return m_ReturnDataOffset; }
|
size_t DataReadSize() { return m_ReturnDataOffset; }
|
||||||
size_t MaxSize() { return m_MaxPacketSize; }
|
size_t MaxSize() { return m_MaxPacketSize; }
|
||||||
size_t HeaderSize() { return m_HeaderSize; }
|
size_t HeaderSize() { return m_HeaderSize; }
|
||||||
size_t GroupIndex();
|
|
||||||
size_t GroupSize();
|
|
||||||
size_t PacketID();
|
|
||||||
private:
|
private:
|
||||||
char* m_Data;
|
char* m_Data;
|
||||||
size_t m_ReturnDataOffset = 0;
|
size_t m_ReturnDataOffset = 0;
|
||||||
@@ -81,13 +72,6 @@ private:
|
|||||||
size_t m_HeaderSize = 0;
|
size_t m_HeaderSize = 0;
|
||||||
void resizeData();
|
void resizeData();
|
||||||
void resizeData(int size);
|
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
|
#endif
|
||||||
@@ -14,7 +14,6 @@ struct PlayerDefinition {
|
|||||||
unsigned short TCPPort;
|
unsigned short TCPPort;
|
||||||
// use for tcp connections
|
// use for tcp connections
|
||||||
boost::shared_ptr<boost::asio::ip::tcp::socket> TCPSocket;
|
boost::shared_ptr<boost::asio::ip::tcp::socket> TCPSocket;
|
||||||
int PacketGroup = 1;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
// Network channels
|
// Network channels
|
||||||
TCPServer m_Reliable;
|
TCPServer m_Reliable;
|
||||||
UDPServer m_Unreliable;
|
//UDPServer m_Unreliable;
|
||||||
UDPServer m_ServerlistRequest;
|
UDPServer m_ServerlistRequest;
|
||||||
// dont forget to set these in the childrens receive logic
|
// dont forget to set these in the childrens receive logic
|
||||||
boost::asio::ip::address m_Address;
|
boost::asio::ip::address m_Address;
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
#ifndef UDPClient_h__
|
#ifndef UDPClient_h__
|
||||||
#define UDPClient_h__
|
#define UDPClient_h__
|
||||||
#include <map>
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
#include <boost/asio.hpp>
|
#include <boost/asio.hpp>
|
||||||
#include "Network/NetworkClient.h"
|
#include "Network/NetworkClient.h"
|
||||||
@@ -15,27 +13,16 @@ public:
|
|||||||
bool Connect(std::string playerName, std::string address, int port);
|
bool Connect(std::string playerName, std::string address, int port);
|
||||||
void Disconnect();
|
void Disconnect();
|
||||||
void Receive(Packet& packet);
|
void Receive(Packet& packet);
|
||||||
void ReceivePackets();
|
void Send(Packet & packet);
|
||||||
void Send(Packet& packet);
|
|
||||||
void Broadcast(Packet& packet, int port);
|
void Broadcast(Packet& packet, int port);
|
||||||
bool IsSocketAvailable();
|
bool IsSocketAvailable();
|
||||||
// Returns false if no packets are available
|
|
||||||
bool GetNextPacket(Packet& packet);
|
|
||||||
private:
|
private:
|
||||||
typedef std::map<unsigned int, std::vector<std::pair<int, boost::shared_ptr<char>>>> PacketMap;
|
|
||||||
// Assio UDP logic
|
// Assio UDP logic
|
||||||
boost::asio::io_service m_IOService;
|
boost::asio::io_service m_IOService;
|
||||||
boost::asio::ip::udp::endpoint m_ReceiverEndpoint;
|
boost::asio::ip::udp::endpoint m_ReceiverEndpoint;
|
||||||
boost::shared_ptr<boost::asio::ip::udp::socket> m_Socket;
|
boost::shared_ptr<boost::asio::ip::udp::socket> m_Socket;
|
||||||
int m_LastReceivedSnapshotGroup = 0;
|
|
||||||
int readBuffer();
|
int readBuffer();
|
||||||
void readPartOfPacket();
|
|
||||||
PacketID m_SendPacketID = 0;
|
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
|
#endif
|
||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include "NetworkServer.h"
|
#include "NetworkServer.h"
|
||||||
#include <boost/asio/ip/udp.hpp>
|
#include <boost/asio/ip/udp.hpp>
|
||||||
#define MAXPACKETSIZE 64000
|
|
||||||
|
|
||||||
class UDPServer : public NetworkServer
|
class UDPServer : public NetworkServer
|
||||||
{
|
{
|
||||||
@@ -14,7 +13,6 @@ public:
|
|||||||
void AcceptNewConnections(int& nextPlayerID, std::map<PlayerID, PlayerDefinition>& connectedPlayers);
|
void AcceptNewConnections(int& nextPlayerID, std::map<PlayerID, PlayerDefinition>& connectedPlayers);
|
||||||
void Receive(Packet & packet, PlayerDefinition & playerDefinition);
|
void Receive(Packet & packet, PlayerDefinition & playerDefinition);
|
||||||
void Send(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);
|
||||||
void Send(Packet & packet, boost::asio::ip::udp::endpoint endpoint);
|
void Send(Packet & packet, boost::asio::ip::udp::endpoint endpoint);
|
||||||
void Broadcast(Packet & packet, int port);
|
void Broadcast(Packet & packet, int port);
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include "IRenderer.h"
|
#include "IRenderer.h"
|
||||||
#include "ShaderProgram.h"
|
#include "ShaderProgram.h"
|
||||||
#include "PNG.h"
|
|
||||||
|
|
||||||
class CubeMapPass
|
class CubeMapPass
|
||||||
{
|
{
|
||||||
@@ -22,7 +21,7 @@ private:
|
|||||||
IRenderer* m_Renderer;
|
IRenderer* m_Renderer;
|
||||||
std::string m_PreviusCubeMapTexture;
|
std::string m_PreviusCubeMapTexture;
|
||||||
|
|
||||||
std::vector<std::string> m_CubeMapTextures;
|
std::vector<Texture*> m_CubeMapTextures;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
#include "../GLM.h"
|
#include "../GLM.h"
|
||||||
#include "../Core/ComponentWrapper.h"
|
#include "../Core/ComponentWrapper.h"
|
||||||
#include "RenderJob.h"
|
#include "RenderJob.h"
|
||||||
#include "../Core/TransformSystem.h"
|
#include "../Core/Transform.h"
|
||||||
#include "../Core/World.h"
|
#include "../Core/World.h"
|
||||||
|
|
||||||
struct DirectionalLightJob : RenderJob
|
struct DirectionalLightJob : RenderJob
|
||||||
@@ -16,7 +16,7 @@ struct DirectionalLightJob : RenderJob
|
|||||||
: RenderJob()
|
: RenderJob()
|
||||||
{
|
{
|
||||||
|
|
||||||
Direction = glm::vec4(0,0,-1,0) * glm::inverse(TransformSystem::AbsoluteOrientation(m_World, transformComponent.EntityID));
|
Direction = glm::vec4(0,0,-1,0) * glm::inverse(Transform::AbsoluteOrientation(m_World, transformComponent.EntityID));
|
||||||
//Direction = glm::vec4((glm::vec3)directionalLightComponent["Direction"], 0.f);
|
//Direction = glm::vec4((glm::vec3)directionalLightComponent["Direction"], 0.f);
|
||||||
Color = (glm::vec4)directionalLightComponent["Color"];
|
Color = (glm::vec4)directionalLightComponent["Color"];
|
||||||
Intensity = (double)directionalLightComponent["Intensity"];
|
Intensity = (double)directionalLightComponent["Intensity"];
|
||||||
|
|||||||
@@ -18,17 +18,15 @@ 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)
|
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)
|
: ModelJob(model, camera, matrix, matGroup, modelComponent, world, fillColor, fillPercentage, isShielded, shadow)
|
||||||
{
|
{
|
||||||
ExplosionOrigin = (Field<glm::vec3>)explosionEffectComponent["ExplosionOrigin"];
|
ExplosionOrigin = (glm::vec3)explosionEffectComponent["ExplosionOrigin"];
|
||||||
TimeSinceDeath = (Field<double>)explosionEffectComponent["TimeSinceDeath"];
|
TimeSinceDeath = (double)explosionEffectComponent["TimeSinceDeath"];
|
||||||
ExplosionDuration = (Field<double>)explosionEffectComponent["ExplosionDuration"];
|
ExplosionDuration = (double)explosionEffectComponent["ExplosionDuration"];
|
||||||
EndColor = (Field<glm::vec4>)explosionEffectComponent["EndColor"];
|
EndColor = (glm::vec4)explosionEffectComponent["EndColor"];
|
||||||
Randomness = (Field<bool>)explosionEffectComponent["Randomness"];
|
Randomness = (bool)explosionEffectComponent["Randomness"];
|
||||||
RandomnessScalar = (Field<double>)explosionEffectComponent["RandomnessScalar"];
|
RandomnessScalar = (double)explosionEffectComponent["RandomnessScalar"];
|
||||||
Velocity = (Field<glm::vec2>)explosionEffectComponent["Velocity"];
|
Velocity = (glm::vec2)explosionEffectComponent["Velocity"];
|
||||||
ColorByDistance = (Field<bool>)explosionEffectComponent["ColorByDistance"];
|
ColorByDistance = (bool)explosionEffectComponent["ColorByDistance"];
|
||||||
ExponentialAccelaration = (Field<bool>)explosionEffectComponent["ExponentialAccelaration"];
|
ExponentialAccelaration = (bool)explosionEffectComponent["ExponentialAccelaration"];
|
||||||
Reverse = (Field<bool>)explosionEffectComponent["Reverse"];Reverse = (bool)explosionEffectComponent["Reverse"];
|
|
||||||
ColorDistanceScalar = (Field<double>)explosionEffectComponent["ColorDistanceScalar"];ColorDistanceScalar = (double)explosionEffectComponent["ColorDistanceScalar"];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
glm::vec3 ExplosionOrigin;
|
glm::vec3 ExplosionOrigin;
|
||||||
@@ -40,14 +38,12 @@ struct ExplosionEffectJob : ModelJob
|
|||||||
glm::vec4 EndColor;
|
glm::vec4 EndColor;
|
||||||
bool Randomness = false;
|
bool Randomness = false;
|
||||||
|
|
||||||
double RandomnessScalar = 1.f;
|
float RandomnessScalar = 1.f;
|
||||||
glm::vec2 Velocity;
|
glm::vec2 Velocity;
|
||||||
bool ColorByDistance = false;
|
bool ColorByDistance = false;
|
||||||
//bool ReverseAnimation = false;
|
//bool ReverseAnimation = false;
|
||||||
//bool Wireframe = false;
|
//bool Wireframe = false;
|
||||||
bool ExponentialAccelaration = false;
|
bool ExponentialAccelaration = false;
|
||||||
bool Reverse = false;
|
|
||||||
double ColorDistanceScalar = 1.f;
|
|
||||||
|
|
||||||
std::array<float, 50> RandomNumbers = {
|
std::array<float, 50> RandomNumbers = {
|
||||||
0.3257552917701f,
|
0.3257552917701f,
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
|
|
||||||
struct Image
|
struct Image
|
||||||
{
|
{
|
||||||
virtual ~Image() = default;
|
|
||||||
|
|
||||||
enum class ImageFormat
|
enum class ImageFormat
|
||||||
{
|
{
|
||||||
Unknown,
|
Unknown,
|
||||||
|
|||||||
@@ -16,18 +16,15 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
~Model();
|
~Model();
|
||||||
const std::vector<RawModel::MaterialProperties>& MaterialGroups() const { return m_Materials; }
|
const std::vector<RawModel::MaterialProperties>& MaterialGroups() const { return m_RawModel->m_Materials; }
|
||||||
//const RawModel::Vertex* Vertices() const { return m_RawModel->Vertices(); }
|
const glm::mat4& Matrix() const { return m_RawModel->m_Matrix; }
|
||||||
unsigned int NumberOfVertices() const { return m_Vertices.size(); }
|
const RawModel::Vertex* Vertices() const { return m_RawModel->Vertices(); }
|
||||||
|
unsigned int NumberOfVertices() const { return m_RawModel->NumVertices(); }
|
||||||
const AABB& Box() const { return m_Box; }
|
const AABB& Box() const { return m_Box; }
|
||||||
bool IsSkinned() const { return m_IsSkinned; }
|
bool IsSkinned() const { return m_RawModel->IsSkinned(); }
|
||||||
GLuint VAO;
|
GLuint VAO;
|
||||||
GLuint ElementBuffer;
|
GLuint ElementBuffer;
|
||||||
//RawModel* m_RawModel;
|
RawModel* m_RawModel;
|
||||||
|
|
||||||
Skeleton* m_Skeleton = nullptr;
|
|
||||||
std::vector<glm::vec3> m_Vertices;
|
|
||||||
std::vector<unsigned int> m_Indices;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AABB m_Box;
|
AABB m_Box;
|
||||||
@@ -37,9 +34,6 @@ private:
|
|||||||
GLuint TangentNormalsBuffer;
|
GLuint TangentNormalsBuffer;
|
||||||
GLuint BiTangentNormalsBuffer;
|
GLuint BiTangentNormalsBuffer;
|
||||||
GLuint TextureCoordBuffer;
|
GLuint TextureCoordBuffer;
|
||||||
|
|
||||||
std::vector<RawModel::MaterialProperties> m_Materials;
|
|
||||||
bool m_IsSkinned;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
#include "../Core/ResourceManager.h"
|
#include "../Core/ResourceManager.h"
|
||||||
#include "Camera.h"
|
#include "Camera.h"
|
||||||
#include "../Core/World.h"
|
#include "../Core/World.h"
|
||||||
#include "../Core/TransformSystem.h"
|
#include "../Core/Transform.h"
|
||||||
#include "Skeleton.h"
|
#include "Skeleton.h"
|
||||||
#include "ShaderProgram.h"
|
#include "ShaderProgram.h"
|
||||||
#include "BlendTree.h"
|
#include "BlendTree.h"
|
||||||
@@ -26,13 +26,24 @@ struct ModelJob : RenderJob
|
|||||||
ModelID = model->ResourceID;
|
ModelID = model->ResourceID;
|
||||||
Type = matProp.type;
|
Type = matProp.type;
|
||||||
::RawModel::MaterialBasic* matGroup = matProp.material;
|
::RawModel::MaterialBasic* matGroup = matProp.material;
|
||||||
ShaderID = matProp.ShaderID;
|
|
||||||
switch(matProp.type){
|
switch(matProp.type){
|
||||||
case ::RawModel::MaterialType::Basic:
|
case ::RawModel::MaterialType::Basic:
|
||||||
|
if (Model->IsSkinned()) {
|
||||||
|
ShaderID = ResourceManager::Load<ShaderProgram>("#ForwardPlusSkinnedProgram")->ResourceID;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ShaderID = ResourceManager::Load<ShaderProgram>("#ForwardPlusProgram")->ResourceID;
|
||||||
|
}
|
||||||
TextureID = 0;
|
TextureID = 0;
|
||||||
break;
|
break;
|
||||||
case ::RawModel::MaterialType::SingleTextures:
|
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);
|
::RawModel::MaterialSingleTextures* singleTextures = static_cast<::RawModel::MaterialSingleTextures*>(matProp.material);
|
||||||
TextureID = (singleTextures->ColorMap.Texture) ? singleTextures->ColorMap.Texture->ResourceID : 0;
|
TextureID = (singleTextures->ColorMap.Texture) ? singleTextures->ColorMap.Texture->ResourceID : 0;
|
||||||
if (modelComponent["DiffuseTexture"]) {
|
if (modelComponent["DiffuseTexture"]) {
|
||||||
@@ -54,6 +65,12 @@ struct ModelJob : RenderJob
|
|||||||
break;
|
break;
|
||||||
case ::RawModel::MaterialType::SplatMapping:
|
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);
|
::RawModel::MaterialSplatMapping* SplatTextures = static_cast<::RawModel::MaterialSplatMapping*>(matProp.material);
|
||||||
|
|
||||||
SplatMap = &SplatTextures->SplatMap;
|
SplatMap = &SplatTextures->SplatMap;
|
||||||
@@ -105,7 +122,7 @@ struct ModelJob : RenderJob
|
|||||||
IsShielded = isShielded;
|
IsShielded = isShielded;
|
||||||
|
|
||||||
if (model->IsSkinned()) {
|
if (model->IsSkinned()) {
|
||||||
Skeleton = Model->m_Skeleton;
|
Skeleton = Model->m_RawModel->m_Skeleton;
|
||||||
|
|
||||||
if (Skeleton != nullptr) {
|
if (Skeleton != nullptr) {
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
#include "../GLM.h"
|
#include "../GLM.h"
|
||||||
#include "../Core/ComponentWrapper.h"
|
#include "../Core/ComponentWrapper.h"
|
||||||
#include "RenderJob.h"
|
#include "RenderJob.h"
|
||||||
#include "../Core/TransformSystem.h"
|
#include "../Core/Transform.h"
|
||||||
#include "../Core/World.h"
|
#include "../Core/World.h"
|
||||||
|
|
||||||
struct PointLightJob : RenderJob
|
struct PointLightJob : RenderJob
|
||||||
@@ -16,7 +16,7 @@ struct PointLightJob : RenderJob
|
|||||||
: RenderJob()
|
: RenderJob()
|
||||||
{
|
{
|
||||||
Position = glm::vec4((glm::vec3)transformComponent["Position"], 1.0f);
|
Position = glm::vec4((glm::vec3)transformComponent["Position"], 1.0f);
|
||||||
Position = glm::vec4(TransformSystem::AbsolutePosition(m_World, transformComponent.EntityID), 1.f);
|
Position = glm::vec4(Transform::AbsolutePosition(m_World, transformComponent.EntityID), 1.f);
|
||||||
Color = (glm::vec4)pointLightComponent["Color"];
|
Color = (glm::vec4)pointLightComponent["Color"];
|
||||||
Radius = (double)pointLightComponent["Radius"];
|
Radius = (double)pointLightComponent["Radius"];
|
||||||
Intensity = (double)pointLightComponent["Intensity"];
|
Intensity = (double)pointLightComponent["Intensity"];
|
||||||
|
|||||||
@@ -13,18 +13,20 @@
|
|||||||
|
|
||||||
#include <boost/filesystem/path.hpp>
|
#include <boost/filesystem/path.hpp>
|
||||||
|
|
||||||
#include <boost/endian/buffers.hpp>
|
|
||||||
#include "../Common.h"
|
#include "../Common.h"
|
||||||
#include "../GLM.h"
|
#include "../GLM.h"
|
||||||
#include "../Core/ResourceManager.h"
|
#include "../Core/ResourceManager.h"
|
||||||
#include "Texture.h"
|
#include "Texture.h"
|
||||||
#include "Skeleton.h"
|
#include "Skeleton.h"
|
||||||
#include "ShaderProgram.h"
|
|
||||||
|
#include "boost\endian\buffers.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class RawModelCustom : public Resource
|
class RawModelCustom : public Resource
|
||||||
{
|
{
|
||||||
friend class ResourceManager;
|
friend class ResourceManager;
|
||||||
friend class Model;
|
|
||||||
protected:
|
protected:
|
||||||
RawModelCustom(std::string fileName);
|
RawModelCustom(std::string fileName);
|
||||||
|
|
||||||
@@ -85,7 +87,6 @@ public:
|
|||||||
struct MaterialProperties {
|
struct MaterialProperties {
|
||||||
MaterialType type;
|
MaterialType type;
|
||||||
MaterialBasic* material;
|
MaterialBasic* material;
|
||||||
unsigned int ShaderID = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const Vertex* Vertices() const {
|
const Vertex* Vertices() const {
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
#include "ModelJob.h"
|
#include "ModelJob.h"
|
||||||
#include "Renderer.h"
|
#include "Renderer.h"
|
||||||
#include "PointLightJob.h"
|
#include "PointLightJob.h"
|
||||||
#include "../Core/TransformSystem.h"
|
#include "../Core/Transform.h"
|
||||||
#include "../Core/EPlayerSpawned.h"
|
#include "../Core/EPlayerSpawned.h"
|
||||||
#include "../Core/Octree.h"
|
#include "../Core/Octree.h"
|
||||||
#include "../Collision/EntityAABB.h"
|
#include "../Collision/EntityAABB.h"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
#include "../Core/EventBroker.h"
|
#include "../Core/EventBroker.h"
|
||||||
#include "ImGuiRenderPass.h"
|
#include "ImGuiRenderPass.h"
|
||||||
#include "Camera.h"
|
#include "Camera.h"
|
||||||
#include "../Core/TransformSystem.h"
|
#include "../Core/Transform.h"
|
||||||
#include "imgui/imgui.h"
|
#include "imgui/imgui.h"
|
||||||
#include "TextPass.h"
|
#include "TextPass.h"
|
||||||
#include "Util/CommonFunctions.h"
|
#include "Util/CommonFunctions.h"
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
#include "../Core/ResourceManager.h"
|
#include "../Core/ResourceManager.h"
|
||||||
#include "Camera.h"
|
#include "Camera.h"
|
||||||
#include "../Core/World.h"
|
#include "../Core/World.h"
|
||||||
#include "../Core/TransformSystem.h"
|
#include "../Core/Transform.h"
|
||||||
#include "Skeleton.h"
|
#include "Skeleton.h"
|
||||||
|
|
||||||
struct SpriteJob : RenderJob
|
struct SpriteJob : RenderJob
|
||||||
@@ -37,7 +37,7 @@ struct SpriteJob : RenderJob
|
|||||||
BlurBackground = (bool)cSprite["BlurBackground"];
|
BlurBackground = (bool)cSprite["BlurBackground"];
|
||||||
|
|
||||||
Entity = cSprite.EntityID;
|
Entity = cSprite.EntityID;
|
||||||
Position = TransformSystem::AbsolutePosition(world, cSprite.EntityID);
|
Position = Transform::AbsolutePosition(world, cSprite.EntityID);
|
||||||
Depth = 0;
|
Depth = 0;
|
||||||
if (depthSorted) {
|
if (depthSorted) {
|
||||||
glm::vec3 viewpos = glm::vec3(camera->ViewMatrix() * glm::vec4(Position, 1));
|
glm::vec3 viewpos = glm::vec3(camera->ViewMatrix() * glm::vec4(Position, 1));
|
||||||
@@ -50,7 +50,7 @@ struct SpriteJob : RenderJob
|
|||||||
FillColor = fillColor;
|
FillColor = fillColor;
|
||||||
FillPercentage = fillPercentage;
|
FillPercentage = fillPercentage;
|
||||||
|
|
||||||
glm::vec3 scale = TransformSystem::AbsoluteScale(world, cSprite.EntityID);
|
glm::vec3 scale = Transform::AbsoluteScale(world, cSprite.EntityID);
|
||||||
|
|
||||||
if((bool)cSprite["KeepRatio"] == true) {
|
if((bool)cSprite["KeepRatio"] == true) {
|
||||||
if(scale.y >= scale.x) {
|
if(scale.y >= scale.x) {
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ struct TextJob : RenderJob
|
|||||||
: RenderJob()
|
: RenderJob()
|
||||||
{
|
{
|
||||||
Matrix = matrix;
|
Matrix = matrix;
|
||||||
Color = (const glm::vec4&)textComponent["Color"];
|
Color = (glm::vec4)textComponent["Color"];
|
||||||
Content = (const std::string&)textComponent["Content"];
|
Content = (std::string)textComponent["Content"];
|
||||||
Resource = font;
|
Resource = font;
|
||||||
|
|
||||||
if ((int)textComponent["Alignment"] == textComponent["Alignment"].Enum("Left")) {
|
if ((int)textComponent["Alignment"] == textComponent["Alignment"].Enum("Left")) {
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void renderText(std::string text, Font* font, TextJob::AlignmentEnum alignment, glm::vec4 color, glm::mat4 modelMatrix, glm::mat4 projectionMatrix, glm::mat4 viewMatrix);
|
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;
|
Font* font;
|
||||||
GLuint VAO, VBO;
|
GLuint VAO, VBO;
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ protected:
|
|||||||
TextureSprite(std::string path);
|
TextureSprite(std::string path);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
~TextureSprite();
|
||||||
|
|
||||||
void Bind(GLenum textureUnit = GL_TEXTURE0);
|
void Bind(GLenum textureUnit = GL_TEXTURE0);
|
||||||
|
|
||||||
GLuint m_Texture = 0;
|
GLuint m_Texture = 0;
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
#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__
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
#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,8 +12,7 @@ namespace Events
|
|||||||
// Sound behavior is thereby specified in the SoundEmitter component.
|
// Sound behavior is thereby specified in the SoundEmitter component.
|
||||||
struct PlaySoundOnEntity : public Event
|
struct PlaySoundOnEntity : public Event
|
||||||
{
|
{
|
||||||
EntityWrapper Emitter = EntityWrapper::Invalid;
|
EntityID EmitterID = 0;
|
||||||
float Gain = 1.f;
|
|
||||||
std::string FilePath = "";
|
std::string FilePath = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
#ifndef Events_SetAnnouncerGain_h__
|
|
||||||
#define Events_SetAnnouncerGain_h__
|
|
||||||
|
|
||||||
#include "../Engine/Core/EventBroker.h"
|
|
||||||
|
|
||||||
namespace Events
|
|
||||||
{
|
|
||||||
|
|
||||||
struct SetAnnouncerGain : public Event
|
|
||||||
{
|
|
||||||
float Gain = 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif //
|
|
||||||
@@ -9,35 +9,32 @@
|
|||||||
#include "OpenAL/al.h"
|
#include "OpenAL/al.h"
|
||||||
#include "OpenAL/alc.h"
|
#include "OpenAL/alc.h"
|
||||||
|
|
||||||
#include "../Engine/Core/World.h"
|
#include "imgui/imgui.h"
|
||||||
#include "../Engine/Core/EventBroker.h"
|
|
||||||
|
#include "Core/World.h"
|
||||||
|
#include "Core/EventBroker.h"
|
||||||
#include "../Engine/Core/ResourceManager.h"
|
#include "../Engine/Core/ResourceManager.h"
|
||||||
#include "../Engine/Core/ConfigFile.h"
|
#include "../Engine/Core/ConfigFile.h"
|
||||||
#include "../Engine/Core/TransformSystem.h"
|
#include "Core/Transform.h" // Absolute transform
|
||||||
#include "../Engine/Sound/Sound.h"
|
#include "Sound/Sound.h"
|
||||||
#include "../Engine/Sound/EPlayQueueOnEntity.h"
|
#include "../Engine/Sound/EPlayQueueOnEntity.h"
|
||||||
#include "../Engine/Sound/EPlaySoundOnEntity.h"
|
#include "Sound/EPlaySoundOnEntity.h"
|
||||||
#include "../Engine/Sound/EPlaySoundOnPosition.h"
|
#include "Sound/EPlaySoundOnPosition.h"
|
||||||
#include "../Engine/Sound/EPlayBackgroundMusic.h"
|
#include "Sound/EPlayBackgroundMusic.h"
|
||||||
#include "../Engine/Sound/EPlayAnnouncerVoice.h"
|
#include "Sound/EPauseSound.h"
|
||||||
#include "../Engine/Sound/EPauseSound.h"
|
#include "Sound/EContinueSound.h"
|
||||||
#include "../Engine/Sound/EContinueSound.h"
|
#include "Sound/EStopSound.h"
|
||||||
#include "../Engine/Sound/EStopSound.h"
|
#include "Sound/ESetBGMGain.h"
|
||||||
#include "../Engine/Sound/ESetBGMGain.h"
|
#include "Sound/ESetSFXGain.h"
|
||||||
#include "../Engine/Sound/ESetSFXGain.h"
|
#include "Core/EPause.h"
|
||||||
#include "../Engine/Sound/ESetAnnouncerGain.h"
|
#include "Core/EComponentAttached.h"
|
||||||
#include "../Engine/Sound/EChangeBGM.h"
|
|
||||||
#include "../Engine/Core/EPause.h"
|
|
||||||
#include "../Engine/Core/EComponentAttached.h"
|
|
||||||
#include "../Core/EPlayerSpawned.h"
|
#include "../Core/EPlayerSpawned.h"
|
||||||
|
|
||||||
|
|
||||||
typedef std::pair<ALuint, std::vector<ALuint>> QueuedBuffers;
|
typedef std::pair<ALuint, std::vector<ALuint>> QueuedBuffers;
|
||||||
|
|
||||||
enum class SoundType {
|
enum class SoundType {
|
||||||
SFX,
|
SFX,
|
||||||
BGM,
|
BGM
|
||||||
Announcer
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Source
|
struct Source
|
||||||
@@ -46,7 +43,6 @@ struct Source
|
|||||||
Sound* SoundResource = nullptr;
|
Sound* SoundResource = nullptr;
|
||||||
ALuint ALsource;
|
ALuint ALsource;
|
||||||
SoundType Type;
|
SoundType Type;
|
||||||
float Duration;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class SoundManager
|
class SoundManager
|
||||||
@@ -78,20 +74,14 @@ private:
|
|||||||
ALenum getSourceState(ALuint source);
|
ALenum getSourceState(ALuint source);
|
||||||
void setGain(Source* source, float gain);
|
void setGain(Source* source, float gain);
|
||||||
void setSoundProperties(Source* source, ComponentWrapper* soundComponent);
|
void setSoundProperties(Source* source, ComponentWrapper* soundComponent);
|
||||||
float getDurationSeconds(Source* source);
|
|
||||||
float getTimeOffsetSeconds(Source* source);
|
|
||||||
|
|
||||||
// Specific logic
|
// Specific logic
|
||||||
void playSound(Source* source);
|
void playSound(Source* source);
|
||||||
// Needs to be the same format (sample rate etc)
|
// Need to be the same format (sample rate etc)
|
||||||
void playQueue(QueuedBuffers qb);
|
void playQueue(QueuedBuffers qb);
|
||||||
void stopSound(Source* source);
|
void stopSound(Source* source);
|
||||||
Source* createSource(std::string filePath);
|
Source* createSource(std::string filePath);
|
||||||
std::unordered_map<EntityID, Source*> m_Sources;
|
std::unordered_map<EntityID, Source*> m_Sources;
|
||||||
void matchBGMLoop();
|
|
||||||
Source* m_CurrentBGM = nullptr;
|
|
||||||
Source* m_CurrentBGMCombo = nullptr;
|
|
||||||
bool m_DrumLoopHasBeenStarted = false;
|
|
||||||
|
|
||||||
// Logic
|
// Logic
|
||||||
World* m_World = nullptr;
|
World* m_World = nullptr;
|
||||||
@@ -103,7 +93,6 @@ private:
|
|||||||
|
|
||||||
float m_BGMVolumeChannel = 1.0f;
|
float m_BGMVolumeChannel = 1.0f;
|
||||||
float m_SFXVolumeChannel = 1.0f;
|
float m_SFXVolumeChannel = 1.0f;
|
||||||
float m_AnnouncerVolumeChannel = 1.0f;
|
|
||||||
EntityWrapper m_LocalPlayer = EntityWrapper();
|
EntityWrapper m_LocalPlayer = EntityWrapper();
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
@@ -113,8 +102,6 @@ private:
|
|||||||
bool OnPlaySoundOnPosition(const Events::PlaySoundOnPosition &e);
|
bool OnPlaySoundOnPosition(const Events::PlaySoundOnPosition &e);
|
||||||
EventRelay<SoundManager, Events::PlayBackgroundMusic> m_EPlayBackgroundMusic;
|
EventRelay<SoundManager, Events::PlayBackgroundMusic> m_EPlayBackgroundMusic;
|
||||||
bool OnPlayBackgroundMusic(const Events::PlayBackgroundMusic &e);
|
bool OnPlayBackgroundMusic(const Events::PlayBackgroundMusic &e);
|
||||||
EventRelay<SoundManager, Events::PlayAnonuncerVoice> m_EPlayAnnouncerVoice;
|
|
||||||
bool OnPlayAnnouncerVoice(const Events::PlayAnonuncerVoice& e);
|
|
||||||
EventRelay<SoundManager, Events::PauseSound> m_EPauseSound;
|
EventRelay<SoundManager, Events::PauseSound> m_EPauseSound;
|
||||||
bool OnPauseSound(const Events::PauseSound &e);
|
bool OnPauseSound(const Events::PauseSound &e);
|
||||||
EventRelay<SoundManager, Events::StopSound> m_EStopSound;
|
EventRelay<SoundManager, Events::StopSound> m_EStopSound;
|
||||||
@@ -125,8 +112,6 @@ private:
|
|||||||
bool OnSetBGMGain(const Events::SetBGMGain &e);
|
bool OnSetBGMGain(const Events::SetBGMGain &e);
|
||||||
EventRelay<SoundManager, Events::SetSFXGain> m_ESetSFXGain;
|
EventRelay<SoundManager, Events::SetSFXGain> m_ESetSFXGain;
|
||||||
bool OnSetSFXGain(const Events::SetSFXGain &e);
|
bool OnSetSFXGain(const Events::SetSFXGain &e);
|
||||||
EventRelay<SoundManager, Events::SetAnnouncerGain> m_ESetAnnouncerGain;
|
|
||||||
bool OnSetAnnouncerGain(const Events::SetAnnouncerGain& e);
|
|
||||||
EventRelay<SoundManager, Events::ComponentAttached> m_EComponentAttached;
|
EventRelay<SoundManager, Events::ComponentAttached> m_EComponentAttached;
|
||||||
bool OnComponentAttached(const Events::ComponentAttached &e);
|
bool OnComponentAttached(const Events::ComponentAttached &e);
|
||||||
EventRelay<SoundManager, Events::Pause> m_EPause;
|
EventRelay<SoundManager, Events::Pause> m_EPause;
|
||||||
@@ -137,8 +122,6 @@ private:
|
|||||||
bool OnPlayerSpawned(const Events::PlayerSpawned &e);
|
bool OnPlayerSpawned(const Events::PlayerSpawned &e);
|
||||||
EventRelay<SoundManager, Events::PlayQueueOnEntity> m_EPlayQueueOnEntity;
|
EventRelay<SoundManager, Events::PlayQueueOnEntity> m_EPlayQueueOnEntity;
|
||||||
bool OnPlayQueueOnEntity(const Events::PlayQueueOnEntity &e);
|
bool OnPlayQueueOnEntity(const Events::PlayQueueOnEntity &e);
|
||||||
EventRelay<SoundManager, Events::ChangeBGM> m_EChangeBGM;
|
|
||||||
bool OnChangeBGM(const Events::ChangeBGM &e);
|
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#define AmmoPickupSystem_h__
|
#define AmmoPickupSystem_h__
|
||||||
|
|
||||||
#include "Core/System.h"
|
#include "Core/System.h"
|
||||||
#include "Core/TransformSystem.h"
|
#include "Core/Transform.h"
|
||||||
#include "Core/ResourceManager.h"
|
#include "Core/ResourceManager.h"
|
||||||
#include "Core/EntityFile.h"
|
#include "Core/EntityFile.h"
|
||||||
#include "Core/EPickupSpawned.h"
|
#include "Core/EPickupSpawned.h"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
#include "Core/System.h"
|
#include "Core/System.h"
|
||||||
#include "Core/TransformSystem.h"
|
#include "Core/Transform.h"
|
||||||
#include "Core/ECaptured.h"
|
#include "Core/ECaptured.h"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ private:
|
|||||||
bool CapturePointSystem::OnTriggerLeave(const Events::TriggerLeave& e);
|
bool CapturePointSystem::OnTriggerLeave(const Events::TriggerLeave& e);
|
||||||
EventRelay<CapturePointSystem, Events::Captured> m_ECaptured;
|
EventRelay<CapturePointSystem, Events::Captured> m_ECaptured;
|
||||||
bool CapturePointSystem::OnCaptured(const Events::Captured& e);
|
bool CapturePointSystem::OnCaptured(const Events::Captured& e);
|
||||||
void ChangeCapturePointModelsVisibility(EntityWrapper &capturePointModels, bool isOwner);
|
|
||||||
|
|
||||||
bool m_WinnerWasFound = false;
|
bool m_WinnerWasFound = false;
|
||||||
//need to track these variables for the captureSystem to work as per design!
|
//need to track these variables for the captureSystem to work as per design!
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#define DamageIndicatorSystem_h__
|
#define DamageIndicatorSystem_h__
|
||||||
|
|
||||||
#include "Core/System.h"
|
#include "Core/System.h"
|
||||||
#include "Core/TransformSystem.h"
|
#include "Core/Transform.h"
|
||||||
#include "Core/ResourceManager.h"
|
#include "Core/ResourceManager.h"
|
||||||
#include "Core/EntityFile.h"
|
#include "Core/EntityFile.h"
|
||||||
#include "Core/EPlayerDamage.h"
|
#include "Core/EPlayerDamage.h"
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
#include "Core/System.h"
|
#include "Core/System.h"
|
||||||
#include "Engine/GLM.h"
|
|
||||||
|
|
||||||
class ExplosionEffectSystem : public PureSystem
|
class ExplosionEffectSystem : public PureSystem
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ public:
|
|||||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override
|
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override
|
||||||
{
|
{
|
||||||
ComponentWrapper& transform = m_World->GetComponent(component.EntityID, "Transform");
|
ComponentWrapper& transform = m_World->GetComponent(component.EntityID, "Transform");
|
||||||
(Field<double>)component["Time"] += dt;
|
(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"];
|
(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,6 +7,7 @@
|
|||||||
#include "Core/Event.h"
|
#include "Core/Event.h"
|
||||||
#include "Systems/SpawnerSystem.h"
|
#include "Systems/SpawnerSystem.h"
|
||||||
|
|
||||||
|
|
||||||
#include "GUI/EButtonClicked.h"
|
#include "GUI/EButtonClicked.h"
|
||||||
#include "GUI/EButtonPressed.h"
|
#include "GUI/EButtonPressed.h"
|
||||||
#include "GUI/EButtonReleased.h"
|
#include "GUI/EButtonReleased.h"
|
||||||
@@ -23,8 +24,6 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
IRenderer* m_Renderer;
|
IRenderer* m_Renderer;
|
||||||
void OpenSubMenu(const Events::InputCommand& e);
|
|
||||||
void OpenDropDown(const Events::InputCommand& e);
|
|
||||||
|
|
||||||
EventRelay<MainMenuSystem, Events::ButtonClicked> m_EClicked;
|
EventRelay<MainMenuSystem, Events::ButtonClicked> m_EClicked;
|
||||||
bool OnButtonClick(const Events::ButtonClicked& e);
|
bool OnButtonClick(const Events::ButtonClicked& e);
|
||||||
@@ -37,7 +36,6 @@ private:
|
|||||||
|
|
||||||
std::string m_CurrentCommand = "";
|
std::string m_CurrentCommand = "";
|
||||||
EntityWrapper m_OpenSubMenu = EntityWrapper::Invalid;
|
EntityWrapper m_OpenSubMenu = EntityWrapper::Invalid;
|
||||||
EntityWrapper m_DropDown = EntityWrapper::Invalid;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#define PickupSpawnSystem_h__
|
#define PickupSpawnSystem_h__
|
||||||
|
|
||||||
#include "Core/System.h"
|
#include "Core/System.h"
|
||||||
#include "Core/TransformSystem.h"
|
#include "Core/Transform.h"
|
||||||
#include "Core/ResourceManager.h"
|
#include "Core/ResourceManager.h"
|
||||||
#include "Core/EntityFile.h"
|
#include "Core/EntityFile.h"
|
||||||
#include "Core/EPickupSpawned.h"
|
#include "Core/EPickupSpawned.h"
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ private:
|
|||||||
// Used to track afterimages for sprint effect.
|
// Used to track afterimages for sprint effect.
|
||||||
float m_SprintEffectTimer;
|
float m_SprintEffectTimer;
|
||||||
// The logic for making the sound play when player is moving
|
// The logic for making the sound play when player is moving
|
||||||
void playerStep(double dt, EntityWrapper player);
|
void playerStep(double dt);
|
||||||
// Spawn a hexagon at origin of an Entity
|
// Spawn a hexagon at origin of an Entity
|
||||||
void spawnHexagon(EntityWrapper target);
|
void spawnHexagon(EntityWrapper target);
|
||||||
|
|
||||||
|
|||||||
@@ -1,25 +1,6 @@
|
|||||||
#include "Common.h"
|
#include "Common.h"
|
||||||
#include "Core/System.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
|
class RaptorCopterSystem : public PureSystem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -28,11 +9,9 @@ public:
|
|||||||
, PureSystem("RaptorCopter")
|
, PureSystem("RaptorCopter")
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& cRaptorCopter, double dt) override
|
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override
|
||||||
{
|
{
|
||||||
ComponentWrapper& cTransform = entity["Transform"];
|
ComponentWrapper& transform = m_World->GetComponent(component.EntityID, "Transform");
|
||||||
//FSubscriptProxy subOri(&cTransform, "Orientation");
|
(glm::vec3&)transform["Orientation"] += (float)(double)component["Speed"] * (float)dt * (glm::vec3)component["Axis"];
|
||||||
//Field<glm::vec3> orientation = subOri;
|
|
||||||
(Field<glm::vec3>)cTransform["Orientation"] += (float)(const double&)cRaptorCopter["Speed"] * (float)dt * (glm::vec3)cRaptorCopter["Axis"];
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
#define Systems_SoundSystem_h__
|
#define Systems_SoundSystem_h__
|
||||||
|
|
||||||
#include <random>
|
#include <random>
|
||||||
#include <chrono>
|
|
||||||
|
|
||||||
#include "../Engine/Core/System.h"
|
#include "../Engine/Core/System.h"
|
||||||
#include "../Engine/Core/ResourceManager.h"
|
#include "../Engine/Core/ResourceManager.h"
|
||||||
@@ -21,10 +20,9 @@
|
|||||||
#include "../Engine/Collision/ETrigger.h"
|
#include "../Engine/Collision/ETrigger.h"
|
||||||
#include "../Engine/Sound/EPlaySoundOnEntity.h"
|
#include "../Engine/Sound/EPlaySoundOnEntity.h"
|
||||||
#include "../Engine/Sound/EPlayBackgroundMusic.h"
|
#include "../Engine/Sound/EPlayBackgroundMusic.h"
|
||||||
#include "../Engine/Sound/EPlayAnnouncerVoice.h"
|
|
||||||
#include "../Game/Events/EDoubleJump.h"
|
#include "../Game/Events/EDoubleJump.h"
|
||||||
#include "../Game/Events/EDashAbility.h"
|
#include "../Game/Events/EDashAbility.h"
|
||||||
#include "../Engine/Sound/EChangeBGM.h"
|
|
||||||
|
|
||||||
class SoundSystem : public PureSystem, ImpureSystem
|
class SoundSystem : public PureSystem, ImpureSystem
|
||||||
{
|
{
|
||||||
@@ -35,10 +33,14 @@ public:
|
|||||||
private:
|
private:
|
||||||
std::string m_Announcer = "";
|
std::string m_Announcer = "";
|
||||||
// Logic for playing a sound when a player jumps
|
// Logic for playing a sound when a player jumps
|
||||||
void playerJumps(EntityWrapper player);
|
void playerJumps();
|
||||||
|
|
||||||
std::default_random_engine m_RandomGenerator;
|
// Temporary solution for play test.
|
||||||
std::uniform_int_distribution<int> m_RandIntDistribution;
|
bool m_DrumsIsPlaying = false;
|
||||||
|
double m_DrumTimer = 0.0;
|
||||||
|
bool drumTimer(double dt);
|
||||||
|
|
||||||
|
std::default_random_engine generator;
|
||||||
|
|
||||||
EventRelay<SoundSystem, Events::PlayerSpawned> m_EPlayerSpawned;
|
EventRelay<SoundSystem, Events::PlayerSpawned> m_EPlayerSpawned;
|
||||||
bool OnPlayerSpawned(const Events::PlayerSpawned &e);
|
bool OnPlayerSpawned(const Events::PlayerSpawned &e);
|
||||||
@@ -46,6 +48,10 @@ private:
|
|||||||
bool OnInputCommand(const Events::InputCommand &e);
|
bool OnInputCommand(const Events::InputCommand &e);
|
||||||
EventRelay<SoundSystem, Events::DoubleJump> m_EDoubleJump;
|
EventRelay<SoundSystem, Events::DoubleJump> m_EDoubleJump;
|
||||||
bool OnDoubleJump(const Events::DoubleJump &e);
|
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;
|
EventRelay<SoundSystem, Events::Captured> m_ECaptured;
|
||||||
bool OnCaptured(const Events::Captured &e);
|
bool OnCaptured(const Events::Captured &e);
|
||||||
EventRelay<SoundSystem, Events::PlayerDamage> m_EPlayerDamage;
|
EventRelay<SoundSystem, Events::PlayerDamage> m_EPlayerDamage;
|
||||||
|
|||||||
@@ -6,9 +6,8 @@
|
|||||||
#include "GLM.h"
|
#include "GLM.h"
|
||||||
#include "Core/System.h"
|
#include "Core/System.h"
|
||||||
#include "Events/ESpawnerSpawn.h"
|
#include "Events/ESpawnerSpawn.h"
|
||||||
#include "Core/TransformSystem.h"
|
#include "Core/Transform.h"
|
||||||
#include "Core/EntityFile.h"
|
#include "Core/EntityFile.h"
|
||||||
#include "Rendering/Model.h"
|
|
||||||
|
|
||||||
class SpawnerSystem : public System
|
class SpawnerSystem : public System
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
#include "Core/System.h"
|
#include "Core/System.h"
|
||||||
#include "Input/EInputCommand.h"
|
#include "Input/EInputCommand.h"
|
||||||
#include "Network/EPlayerDisconnected.h"
|
|
||||||
|
|
||||||
class SpectatorCameraSystem : public ImpureSystem
|
class SpectatorCameraSystem : public ImpureSystem
|
||||||
{
|
{
|
||||||
@@ -18,8 +17,6 @@ private:
|
|||||||
|
|
||||||
EventRelay<SpectatorCameraSystem, Events::InputCommand> m_EInputCommand;
|
EventRelay<SpectatorCameraSystem, Events::InputCommand> m_EInputCommand;
|
||||||
bool OnInputCommand(const Events::InputCommand& e);
|
bool OnInputCommand(const Events::InputCommand& e);
|
||||||
EventRelay<SpectatorCameraSystem, Events::PlayerDisconnected> m_EDisconnect;
|
|
||||||
bool OnDisconnect(const Events::PlayerDisconnected& e);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -5,7 +5,6 @@
|
|||||||
#include "Collision/Collision.h"
|
#include "Collision/Collision.h"
|
||||||
#include "Core/EPlayerDamage.h"
|
#include "Core/EPlayerDamage.h"
|
||||||
#include "Sound/EPlaySoundOnEntity.h"
|
#include "Sound/EPlaySoundOnEntity.h"
|
||||||
#include "Sound/EPlaySoundOnEntity.h"
|
|
||||||
|
|
||||||
class DefenderWeaponBehaviour : public WeaponBehaviour<DefenderWeaponBehaviour>
|
class DefenderWeaponBehaviour : public WeaponBehaviour<DefenderWeaponBehaviour>
|
||||||
{
|
{
|
||||||
@@ -28,9 +27,12 @@ private:
|
|||||||
std::random_device m_RandomDevice;
|
std::random_device m_RandomDevice;
|
||||||
std::mt19937 m_RandomEngine;
|
std::mt19937 m_RandomEngine;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Weapon functions
|
// Weapon functions
|
||||||
void fireShell(ComponentWrapper cWeapon, WeaponInfo& wi);
|
void fireShell(ComponentWrapper cWeapon, WeaponInfo& wi);
|
||||||
void dealDamage(ComponentWrapper cWeapon, WeaponInfo& wi, glm::vec3 direction, double damage);
|
void dealDamage(ComponentWrapper cWeapon, WeaponInfo& wi, const std::vector<glm::vec2>& pattern);
|
||||||
|
void spawnTracers(ComponentWrapper cWeapon, WeaponInfo& wi, std::vector<glm::vec2> pattern);
|
||||||
bool canFire(ComponentWrapper cWeapon, WeaponInfo& wi);
|
bool canFire(ComponentWrapper cWeapon, WeaponInfo& wi);
|
||||||
|
|
||||||
// Utility
|
// Utility
|
||||||
|
|||||||
@@ -270,8 +270,7 @@ private:
|
|||||||
EntityWrapper thirdPersonAttachment;
|
EntityWrapper thirdPersonAttachment;
|
||||||
for (auto& attachment : weaponAttachments) {
|
for (auto& attachment : weaponAttachments) {
|
||||||
ComponentWrapper cWeaponAttachment = attachment["WeaponAttachment"];
|
ComponentWrapper cWeaponAttachment = attachment["WeaponAttachment"];
|
||||||
Field<std::string> weaponType = cWeaponAttachment["Weapon"];
|
if ((std::string&)cWeaponAttachment["Weapon"] == m_ComponentType) {
|
||||||
if (*weaponType == m_ComponentType) {
|
|
||||||
ComponentWrapper::SubscriptProxy person = cWeaponAttachment["Person"];
|
ComponentWrapper::SubscriptProxy person = cWeaponAttachment["Person"];
|
||||||
if ((ComponentInfo::EnumType)person == person.Enum("FirstPerson")) {
|
if ((ComponentInfo::EnumType)person == person.Enum("FirstPerson")) {
|
||||||
firstPersonAttachment = attachment;
|
firstPersonAttachment = attachment;
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ ResourceLoading=true
|
|||||||
[Sound]
|
[Sound]
|
||||||
BGMVolume=1.0
|
BGMVolume=1.0
|
||||||
SFXVolume=1.0
|
SFXVolume=1.0
|
||||||
AnnouncerVolume=1.0
|
|
||||||
Announcer=female
|
Announcer=female
|
||||||
|
|
||||||
[SSAO]
|
[SSAO]
|
||||||
|
|||||||
@@ -30,5 +30,3 @@ F2=PerformanceTimingResetAllTimers
|
|||||||
F3=PerformanceTimingCreateExcelData
|
F3=PerformanceTimingCreateExcelData
|
||||||
Comma=SwapToClassPick
|
Comma=SwapToClassPick
|
||||||
Period=SwapToTeamPick
|
Period=SwapToTeamPick
|
||||||
Enter=PickClass,1
|
|
||||||
F5=DisconnectFromServer
|
|
||||||
@@ -68,6 +68,4 @@
|
|||||||
<xs:include schemaLocation="Components/NetworkComponent.xsd"/>
|
<xs:include schemaLocation="Components/NetworkComponent.xsd"/>
|
||||||
<xs:include schemaLocation="Components/ServerIdentity.xsd"/>
|
<xs:include schemaLocation="Components/ServerIdentity.xsd"/>
|
||||||
<xs:include schemaLocation="Components/ServerList.xsd"/>
|
<xs:include schemaLocation="Components/ServerList.xsd"/>
|
||||||
<xs:include schemaLocation="Components/ConfigBtnResolution.xsd"/>
|
|
||||||
<xs:include schemaLocation="Components/ConfigBtnFloat.xsd"/>
|
|
||||||
</xs:schema>
|
</xs:schema>
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
<?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,14 +1,14 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
<DefenderWeapon xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="DefenderWeapon.xsd">
|
<DefenderWeapon xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="DefenderWeapon.xsd">
|
||||||
<Slot><Primary/></Slot>
|
<Slot><Primary/></Slot>
|
||||||
<MagazineAmmo>8</MagazineAmmo>
|
<MagazineAmmo>9999</MagazineAmmo>
|
||||||
<MagazineSize>8</MagazineSize>
|
<MagazineSize>8</MagazineSize>
|
||||||
<Ammo>64</Ammo>
|
<Ammo>64</Ammo>
|
||||||
<MaxAmmo>64</MaxAmmo>
|
<MaxAmmo>64</MaxAmmo>
|
||||||
<BaseDamage>90</BaseDamage>
|
<BaseDamage>90</BaseDamage>
|
||||||
<SpreadAngle>0.174533</SpreadAngle> <!-- 0.174533 = 10 degrees -->
|
<SpreadAngle>10</SpreadAngle>
|
||||||
<MaxTravelAngle>0.174533</MaxTravelAngle> <!-- 0.174533 = 10 degrees -->
|
<MaxTravelAngle>0.174533</MaxTravelAngle> <!-- 0.174533 = 10 degrees -->
|
||||||
<NumPellets>10</NumPellets>
|
<NumPellets>9</NumPellets>
|
||||||
<RPM>120</RPM>
|
<RPM>120</RPM>
|
||||||
<ViewPunch>0.03</ViewPunch>
|
<ViewPunch>0.03</ViewPunch>
|
||||||
<ViewReturnSpeed>0.2</ViewReturnSpeed>
|
<ViewReturnSpeed>0.2</ViewReturnSpeed>
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
<xs:annotation><xs:documentation>Damage dealt if all shotgun pellets hit</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>Damage dealt if all shotgun pellets hit</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="SpreadAngle" type="t:float" minOccurs="0">
|
<xs:element name="SpreadAngle" type="t:float" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>Spread angle in radians</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>The spread angle radius.</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="MaxTravelAngle" type="t:float" minOccurs="0">
|
<xs:element name="MaxTravelAngle" type="t:float" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>Maximum vertical aim travel angle in radians</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>Maximum vertical aim travel angle in radians</xs:documentation></xs:annotation>
|
||||||
|
|||||||
@@ -1,21 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
<ExplosionEffect xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ExplosionEffect.xsd">
|
<ExplosionEffect xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ExplosionEffect.xsd">
|
||||||
<ExplosionOrigin X="0" Y="0" Z="0"/>
|
<ExplosionOrigin X="0" Y="0" Z="0"/>
|
||||||
<TimeSinceDeath>0.0</TimeSinceDeath>
|
<TimeSinceDeath>0</TimeSinceDeath>
|
||||||
<ExplosionDuration>2.0</ExplosionDuration>
|
<ExplosionDuration>2</ExplosionDuration>
|
||||||
<Speed>1</Speed>
|
<Speed>1</Speed>
|
||||||
<Delay>0</Delay>
|
<Delay>0</Delay>
|
||||||
<!--<Gravity>1</Gravity>-->
|
<!--<Gravity>1</Gravity>-->
|
||||||
<!--<GravityForce>1</GravityForce>-->
|
<!--<GravityForce>1</GravityForce>-->
|
||||||
<!--<ObjectRadius>2</ObjectRadius>-->
|
<!--<ObjectRadius>2</ObjectRadius>-->
|
||||||
<EndColor R="0" G="0" B="0" A="0"/>
|
<EndColor R="0" G="0" B="0" A="0"/>
|
||||||
<Randomness>false</Randomness>
|
<Randomness>0</Randomness>
|
||||||
<RandomnessScalar>1.0</RandomnessScalar>
|
<RandomnessScalar>1</RandomnessScalar>
|
||||||
<Velocity X="2" Y="2"/>
|
<Velocity X="2" Y="2"/>
|
||||||
<ColorByDistance>false</ColorByDistance>
|
<ColorByDistance>0</ColorByDistance>
|
||||||
|
<!--<ReverseAnimation>0</ReverseAnimation>-->
|
||||||
<!--<Wireframe>0</Wireframe>-->
|
<!--<Wireframe>0</Wireframe>-->
|
||||||
<ExponentialAccelaration>false</ExponentialAccelaration>
|
<ExponentialAccelaration>0</ExponentialAccelaration>
|
||||||
<Pulsate>false</Pulsate>
|
|
||||||
<Reverse>false</Reverse>
|
|
||||||
<ColorDistanceScalar>1.0</ColorDistanceScalar>
|
|
||||||
</ExplosionEffect>
|
</ExplosionEffect>
|
||||||
@@ -44,21 +44,15 @@
|
|||||||
<xs:element name="ColorByDistance" type="t:bool" minOccurs="0">
|
<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:annotation><xs:documentation>Change the color by its moved distance instead of by its time</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</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:element name="Wireframe" type="t:bool" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>Enable/disable wireframe</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>Enable/disable wireframe</xs:documentation></xs:annotation>
|
||||||
</xs:element>-->
|
</xs:element>-->
|
||||||
<xs:element name="ExponentialAccelaration" type="t:bool" minOccurs="0">
|
<xs:element name="ExponentialAccelaration" type="t:bool" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>Linear/Exponential accelaration</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>Linear/Exponential accelaration</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</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:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<Gain>1.0</Gain>
|
<Gain>1.0</Gain>
|
||||||
<Pitch>1.0</Pitch>
|
<Pitch>1.0</Pitch>
|
||||||
<Loop>false</Loop>
|
<Loop>false</Loop>
|
||||||
<MaxDistance>220.0</MaxDistance>
|
<MaxDistance>20.0</MaxDistance>
|
||||||
<RollOffFactor>10</RollOffFactor>
|
<RollOffFactor>1.0</RollOffFactor>
|
||||||
<ReferenceDistance>1.0</ReferenceDistance>
|
<ReferenceDistance>1.0</ReferenceDistance>
|
||||||
</SoundEmitter>
|
</SoundEmitter>
|
||||||
@@ -9,6 +9,6 @@
|
|||||||
<KeepRatioX>false</KeepRatioX>
|
<KeepRatioX>false</KeepRatioX>
|
||||||
<KeepRatioY>false</KeepRatioY>
|
<KeepRatioY>false</KeepRatioY>
|
||||||
<KeepRatio>false</KeepRatio>
|
<KeepRatio>false</KeepRatio>
|
||||||
<Linear>true</Linear>
|
<Linear>false</Linear>
|
||||||
<BlurBackground>false</BlurBackground>
|
<BlurBackground>false</BlurBackground>
|
||||||
</Sprite>
|
</Sprite>
|
||||||
|
|||||||
@@ -0,0 +1,94 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
|
<Components>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children>
|
||||||
|
<Entity name="RayBlue">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Orientation X="0" Y="0.174532995" Z="0"/>
|
||||||
|
<Scale X="0" Y="1" Z="100"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DiffuseTexture>Textures/Effects/Ray.png</DiffuseTexture>
|
||||||
|
<Color A="0.419607848" B="3.92156863" G="0.270588249" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.5"/>
|
||||||
|
<Orientation X="0" Y="-1.57099998" Z="0"/>
|
||||||
|
<Scale X="1" Y="0.0260000005" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DiffuseTexture>Textures/Effects/Ray.png</DiffuseTexture>
|
||||||
|
<Color A="0.419607848" B="3.92156863" G="0.270588249" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.5"/>
|
||||||
|
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
|
||||||
|
<Scale X="1" Y="0.0260000005" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="RayBlue">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="0" Y="1" Z="100"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DiffuseTexture>Textures/Effects/Ray.png</DiffuseTexture>
|
||||||
|
<Color A="0.419607848" B="3.92156863" G="0.270588249" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.5"/>
|
||||||
|
<Orientation X="0" Y="-1.57099998" Z="0"/>
|
||||||
|
<Scale X="1" Y="0.0260000005" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DiffuseTexture>Textures/Effects/Ray.png</DiffuseTexture>
|
||||||
|
<Color A="0.419607848" B="3.92156863" G="0.270588249" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.5"/>
|
||||||
|
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
|
||||||
|
<Scale X="1" Y="0.0260000005" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
@@ -2,26 +2,21 @@
|
|||||||
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:AmmoPickup/>
|
<c:AmmoPickup/>
|
||||||
<c:Trigger/>
|
<c:Model>
|
||||||
|
<Resource>Models/Props/PickUps/AmmoPickUp.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
<c:RaptorCopter>
|
<c:RaptorCopter>
|
||||||
<Speed>8</Speed>
|
<Speed>8</Speed>
|
||||||
<Axis X="0" Y="0.100000001" Z="0"/>
|
<Axis X="0" Y="0.100000001" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</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>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="-0.0281207096"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="18843.5469" Z="0"/>
|
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
|
<Orientation X="0" Y="18717.9453" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children/>
|
<Children/>
|
||||||
|
|||||||
+5682
-8442
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+6626
-9675
File diff suppressed because it is too large
Load Diff
@@ -1,25 +1,39 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
<Entity name="Shield" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="1.70262027" Y="0.261695802" Z="-3.26634645"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children>
|
||||||
|
<Entity name="Back">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Blend>
|
<c:Blend>
|
||||||
<Pose1>Deploy</Pose1>
|
<Pose1>Deploy</Pose1>
|
||||||
<Pose2>Idle</Pose2>
|
<Pose2>Idle</Pose2>
|
||||||
<Weight>0</Weight>
|
<Weight>0</Weight>
|
||||||
</c:Blend>
|
</c:Blend>
|
||||||
|
<c:Shielded/>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Characters/Defender/DefenderShield.mesh</Resource>
|
<Resource>Models/Characters/Defender/DefenderShieldBack.mesh</Resource>
|
||||||
|
<Color A="0.219607845" B="3.92156863" G="1" R="1"/>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
|
<Transparent>true</Transparent>
|
||||||
|
<NormalMap>false</NormalMap>
|
||||||
|
<DiffuseTexture>false</DiffuseTexture>
|
||||||
|
<SpecularMap>false</SpecularMap>
|
||||||
|
<GlowMap>false</GlowMap>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="Deploy">
|
<Entity name="Deploy">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Animation>
|
<c:Animation>
|
||||||
<AnimationName>ActivateDeactiveShieldF</AnimationName>
|
<AnimationName>ActivateDeactiveShieldF</AnimationName>
|
||||||
<Time>1</Time>
|
<Play>true</Play>
|
||||||
<Speed>1</Speed>
|
|
||||||
</c:Animation>
|
</c:Animation>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -29,12 +43,54 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Animation>
|
<c:Animation>
|
||||||
<AnimationName>ShieldFrontF</AnimationName>
|
<AnimationName>ShieldFrontF</AnimationName>
|
||||||
<Speed>1</Speed>
|
|
||||||
</c:Animation>
|
</c:Animation>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Front">
|
||||||
|
<Components>
|
||||||
|
<c:Blend>
|
||||||
|
<Pose1>Deploy</Pose1>
|
||||||
|
<Pose2>Idle</Pose2>
|
||||||
|
<Weight>0</Weight>
|
||||||
|
</c:Blend>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Characters/Defender/DefenderShieldFront.mesh</Resource>
|
||||||
|
<Color A="0.219607845" B="3.92156863" G="1" R="1"/>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
|
<Transparent>true</Transparent>
|
||||||
|
<NormalMap>false</NormalMap>
|
||||||
|
<DiffuseTexture>false</DiffuseTexture>
|
||||||
|
<SpecularMap>false</SpecularMap>
|
||||||
|
<GlowMap>false</GlowMap>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="Deploy">
|
||||||
|
<Components>
|
||||||
|
<c:Animation>
|
||||||
|
<AnimationName>ActivateDeactiveShieldF</AnimationName>
|
||||||
|
<Play>true</Play>
|
||||||
|
</c:Animation>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="Idle">
|
||||||
|
<Components>
|
||||||
|
<c:Animation>
|
||||||
|
<AnimationName>ShieldFrontF</AnimationName>
|
||||||
|
</c:Animation>
|
||||||
|
<c:Transform/>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -1,169 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,174 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,167 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,171 +0,0 @@
|
|||||||
<?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,26 +2,21 @@
|
|||||||
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:NetworkComponent/>
|
||||||
<c:HealthPickup/>
|
<c:HealthPickup/>
|
||||||
<c:Trigger/>
|
<c:Model>
|
||||||
|
<Resource>Models/Props/PickUps/HealthPickUp.mesh</Resource>
|
||||||
|
</c:Model>
|
||||||
<c:RaptorCopter>
|
<c:RaptorCopter>
|
||||||
<Speed>8</Speed>
|
<Speed>8</Speed>
|
||||||
<Axis X="0" Y="0.100000001" Z="0"/>
|
<Axis X="0" Y="0.100000001" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</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>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36800003" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="19005.3867" Z="0"/>
|
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
|
<Orientation X="0" Y="18767.0273" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
|
<c:Trigger/>
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children/>
|
<Children/>
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
|
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
|
<Components>
|
||||||
|
<c:Lifetime>
|
||||||
|
<Lifetime>10</Lifetime>
|
||||||
|
</c:Lifetime>
|
||||||
|
<c:ExplosionEffect>
|
||||||
|
<Velocity X="2" Y="2.30000019" Z="0"/>
|
||||||
|
<ExplosionDuration>1</ExplosionDuration>
|
||||||
|
<Randomness>true</Randomness>
|
||||||
|
<ExponentialAccelaration>true</ExponentialAccelaration>
|
||||||
|
</c:ExplosionEffect>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
||||||
|
<Color A="1" B="1" G="1" R="3.92156863"/>
|
||||||
|
<Shadow>false</Shadow>
|
||||||
|
<Transparent>true</Transparent>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="0.0500000007" Y="0.0500000007" Z="0.0500000007"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
|
||||||
|
<Children/>
|
||||||
|
|
||||||
|
</Entity>
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
<Color A="1" B="1" G="0.254901975" R="0"/>
|
<Color A="1" B="1" G="0.254901975" R="0"/>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-0.600000024" Y="0" Z="0"/>
|
<Position X="0.800000012" Y="0" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -116,7 +116,7 @@
|
|||||||
<Color A="1" B="1" G="0.254901975" R="0"/>
|
<Color A="1" B="1" G="0.254901975" R="0"/>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.800000012" Y="0" Z="0"/>
|
<Position X="-0.600000024" Y="0" Z="0.549540162"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -157,8 +157,98 @@
|
|||||||
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
|
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.00681143999" Y="-0.204994932" Z="-0.209244296"/>
|
<Orientation X="0" Y="-0" Z="0"/>
|
||||||
<Orientation X="-0.581807375" Y="0.562133908" Z="-0.0719003305"/>
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.870232701" Y="0.640069604" Z="4.07769537"/>
|
||||||
|
<Orientation X="0" Y="4.71238565" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity name="RayBlue">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Orientation X="0" Y="0.174532995" Z="0"/>
|
||||||
|
<Scale X="0" Y="1" Z="100"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DiffuseTexture>Textures/Effects/Ray.png</DiffuseTexture>
|
||||||
|
<Color A="0.419607848" B="3.92156863" G="0.270588249" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.5"/>
|
||||||
|
<Orientation X="0" Y="-1.57099998" Z="0"/>
|
||||||
|
<Scale X="1" Y="0.0260000005" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DiffuseTexture>Textures/Effects/Ray.png</DiffuseTexture>
|
||||||
|
<Color A="0.419607848" B="3.92156863" G="0.270588249" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.5"/>
|
||||||
|
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
|
||||||
|
<Scale X="1" Y="0.0260000005" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="RayBlue">
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Scale X="0" Y="1" Z="100"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DiffuseTexture>Textures/Effects/Ray.png</DiffuseTexture>
|
||||||
|
<Color A="0.419607848" B="3.92156863" G="0.270588249" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.5"/>
|
||||||
|
<Orientation X="0" Y="-1.57099998" Z="0"/>
|
||||||
|
<Scale X="1" Y="0.0260000005" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Sprite>
|
||||||
|
<Model>Models/Core/UnitQuad.mesh</Model>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DiffuseTexture>Textures/Effects/Ray.png</DiffuseTexture>
|
||||||
|
<Color A="0.419607848" B="3.92156863" G="0.270588249" R="0"/>
|
||||||
|
</c:Sprite>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0" Z="-0.5"/>
|
||||||
|
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
|
||||||
|
<Scale X="1" Y="0.0260000005" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -166,5 +256,7 @@
|
|||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -1,102 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,102 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,102 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,102 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,141 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
<c:Lifetime>
|
<c:Lifetime>
|
||||||
<Lifetime>0.10000000149011612</Lifetime>
|
<Lifetime>10</Lifetime>
|
||||||
</c:Lifetime>
|
</c:Lifetime>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Scale X="0" Y="1" Z="1"/>
|
<Scale X="0" Y="1" Z="1"/>
|
||||||
|
|||||||
@@ -1,128 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,149 +0,0 @@
|
|||||||
<?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,6 +17,7 @@
|
|||||||
<c:Text>
|
<c:Text>
|
||||||
<Content>123.123.123.123</Content>
|
<Content>123.123.123.123</Content>
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
<Alignment>
|
<Alignment>
|
||||||
<Left/>
|
<Left/>
|
||||||
</Alignment>
|
</Alignment>
|
||||||
@@ -27,7 +28,7 @@
|
|||||||
<Field>IP</Field>
|
<Field>IP</Field>
|
||||||
</c:TextFieldReader>
|
</c:TextFieldReader>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-0.200000003" Y="-0.100000001" Z="0.00700000022"/>
|
<Position X="-0.200000003" Y="-0.100000001" Z="0"/>
|
||||||
<Scale X="0.649999976" Y="0.649999976" Z="1"/>
|
<Scale X="0.649999976" Y="0.649999976" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -38,6 +39,7 @@
|
|||||||
<c:Text>
|
<c:Text>
|
||||||
<Content>65999</Content>
|
<Content>65999</Content>
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
<Alignment>
|
<Alignment>
|
||||||
<Left/>
|
<Left/>
|
||||||
</Alignment>
|
</Alignment>
|
||||||
@@ -48,7 +50,7 @@
|
|||||||
<Field>Port</Field>
|
<Field>Port</Field>
|
||||||
</c:TextFieldReader>
|
</c:TextFieldReader>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="4.70000029" Y="-0.100000001" Z="0.00700000022"/>
|
<Position X="4.70000029" Y="-0.100000001" Z="0"/>
|
||||||
<Scale X="0.649999976" Y="0.649999976" Z="1"/>
|
<Scale X="0.649999976" Y="0.649999976" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -59,6 +61,7 @@
|
|||||||
<c:Text>
|
<c:Text>
|
||||||
<Content>UnkownServer</Content>
|
<Content>UnkownServer</Content>
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
<Alignment>
|
<Alignment>
|
||||||
<Left/>
|
<Left/>
|
||||||
</Alignment>
|
</Alignment>
|
||||||
@@ -69,7 +72,7 @@
|
|||||||
<Field>ServerName</Field>
|
<Field>ServerName</Field>
|
||||||
</c:TextFieldReader>
|
</c:TextFieldReader>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-8.60000038" Y="-0.100000001" Z="0.00700000022"/>
|
<Position X="-8.60000038" Y="-0.100000001" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -79,6 +82,7 @@
|
|||||||
<c:Text>
|
<c:Text>
|
||||||
<Content>0</Content>
|
<Content>0</Content>
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
|
<Color A="1" B="0" G="0" R="0"/>
|
||||||
<Alignment>
|
<Alignment>
|
||||||
<Left/>
|
<Left/>
|
||||||
</Alignment>
|
</Alignment>
|
||||||
@@ -89,7 +93,7 @@
|
|||||||
<Field>PlayersConnected</Field>
|
<Field>PlayersConnected</Field>
|
||||||
</c:TextFieldReader>
|
</c:TextFieldReader>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="7.80000019" Y="0" Z="0.00700000022"/>
|
<Position X="7.80000019" Y="0" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -98,15 +102,14 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Button/>
|
<c:Button/>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
<BlurBackground>true</BlurBackground>
|
<BlurBackground>true</BlurBackground>
|
||||||
<Color A="0.392156869" B="0.392156869" G="0.392156869" R="0.392156869"/>
|
<GlowMap></GlowMap>
|
||||||
|
<DepthSort>false</DepthSort>
|
||||||
|
<Color A="0.588235319" B="1" G="1" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.100000001" Y="0.496000022" Z="0.00700000022"/>
|
<Position X="0.100000001" Y="0.496000022" Z="0"/>
|
||||||
<Scale X="18.1000004" Y="2" Z="1"/>
|
<Scale X="18.1000004" Y="2" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -114,75 +117,6 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</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>
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
<Entity name="Play" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="ServerList" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
<c:ServerList>
|
<c:ServerList>
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
<Entity name="Identities_Origin">
|
<Entity name="Identities_Origin">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0.172000006" Z="0"/>
|
<Position X="0" Y="0.181182757" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -30,14 +30,27 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</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">
|
<Entity name="RefreshButton">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Button/>
|
<c:Button/>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
<BlurBackground>true</BlurBackground>
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
<Color A="0.588235319" B="1" G="1" R="1"/>
|
<Color A="0.588235319" B="1" G="1" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:InputCmdButton>
|
<c:InputCmdButton>
|
||||||
@@ -53,9 +66,8 @@
|
|||||||
<Entity name="RefreshIcon">
|
<Entity name="RefreshIcon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/Icons/rotate.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Icons/rotate.png</DiffuseTexture>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
<Color A="1" B="1" G="0" R="1"/>
|
<Color A="1" B="1" G="0" R="1"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -67,135 +79,6 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</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>
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<Entity>
|
<Entity>
|
||||||
<Components>
|
<Components>
|
||||||
<c:CapturePointGameMode>
|
<c:CapturePointGameMode>
|
||||||
<RespawnTime>0.53338721940212963</RespawnTime>
|
<RespawnTime>7.0999304984909202</RespawnTime>
|
||||||
</c:CapturePointGameMode>
|
</c:CapturePointGameMode>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -2828,7 +2828,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="26060.2324" Z="0"/>
|
<Orientation X="0" Y="25992.9746" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -2870,7 +2870,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="90593.4219" Z="0"/>
|
<Orientation X="0" Y="90523.6719" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -2912,7 +2912,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="90531.5625" Z="0"/>
|
<Orientation X="0" Y="90461.8125" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -2954,7 +2954,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36800003" Z="0"/>
|
<Position X="0" Y="2.36800003" Z="0"/>
|
||||||
<Orientation X="0" Y="71647.7656" Z="0"/>
|
<Orientation X="0" Y="71578.0156" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -2996,7 +2996,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36800003" Z="0"/>
|
<Position X="0" Y="2.36800003" Z="0"/>
|
||||||
<Orientation X="0" Y="25990.5859" Z="0"/>
|
<Orientation X="0" Y="25923.3281" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -3038,7 +3038,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="81198.7031" Z="0"/>
|
<Orientation X="0" Y="81128.9531" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -3080,7 +3080,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="78935.875" Z="0"/>
|
<Orientation X="0" Y="78866.125" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -3122,7 +3122,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="90593.4219" Z="0"/>
|
<Orientation X="0" Y="90523.6719" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -3164,7 +3164,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="78935.875" Z="0"/>
|
<Orientation X="0" Y="78866.125" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -5261,7 +5261,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36800003" Z="0"/>
|
<Position X="0" Y="2.36800003" Z="0"/>
|
||||||
<Orientation X="0" Y="71494.5625" Z="0"/>
|
<Orientation X="0" Y="71424.8125" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -5303,7 +5303,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="47550.7578" Z="0"/>
|
<Orientation X="0" Y="47480.0781" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -6869,7 +6869,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36800003" Z="0"/>
|
<Position X="0" Y="2.36800003" Z="0"/>
|
||||||
<Orientation X="0" Y="71618.3438" Z="0"/>
|
<Orientation X="0" Y="71548.5938" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -6911,7 +6911,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="90560.2969" Z="0"/>
|
<Orientation X="0" Y="90490.5469" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -6953,7 +6953,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="78902.75" Z="0"/>
|
<Orientation X="0" Y="78833" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -6995,7 +6995,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="81165.5781" Z="0"/>
|
<Orientation X="0" Y="81095.8281" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -7037,7 +7037,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="90498.4375" Z="0"/>
|
<Orientation X="0" Y="90428.6875" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -7079,7 +7079,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="26027.4805" Z="0"/>
|
<Orientation X="0" Y="25960.2227" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -7121,7 +7121,7 @@
|
|||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="2.36784196" Z="0"/>
|
<Position X="0" Y="2.36784196" Z="0"/>
|
||||||
<Orientation X="0" Y="90560.2969" Z="0"/>
|
<Orientation X="0" Y="90490.5469" Z="0"/>
|
||||||
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
<Scale X="0.600000024" Y="0.600000024" Z="0.600000024"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -8796,7 +8796,7 @@
|
|||||||
<Axis X="0" Y="1" Z="0"/>
|
<Axis X="0" Y="1" Z="0"/>
|
||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="165.48909" Z="0"/>
|
<Orientation X="0" Y="97.568718" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -8808,7 +8808,7 @@
|
|||||||
</c:RaptorCopter>
|
</c:RaptorCopter>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="26" Z="40"/>
|
<Position X="0" Y="26" Z="40"/>
|
||||||
<Orientation X="0" Y="-247.882935" Z="0"/>
|
<Orientation X="0" Y="-112.035805" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -8858,11 +8858,10 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Button/>
|
<c:Button/>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
<BlurBackground>true</BlurBackground>
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DepthSort>false</DepthSort>
|
||||||
<Color A="0.392156869" B="0" G="0" R="0"/>
|
<Color A="0.392156869" B="0" G="0" R="0"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:InputCmdButton>
|
<c:InputCmdButton>
|
||||||
@@ -8875,44 +8874,6 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</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">
|
<Entity name="Text">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Text>
|
<c:Text>
|
||||||
@@ -8929,6 +8890,40 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</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>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="ButtonPos_3">
|
<Entity name="ButtonPos_3">
|
||||||
@@ -8942,11 +8937,10 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Button/>
|
<c:Button/>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
<BlurBackground>true</BlurBackground>
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DepthSort>false</DepthSort>
|
||||||
<Color A="0.392156869" B="0" G="0" R="0"/>
|
<Color A="0.392156869" B="0" G="0" R="0"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -8979,10 +8973,8 @@
|
|||||||
<Entity name="TopRight">
|
<Entity name="TopRight">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||||
<Linear>false</Linear>
|
<GlowMap></GlowMap>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.0970000029" Y="0.0220000017" Z="0.00499999989"/>
|
<Position X="0.0970000029" Y="0.0220000017" Z="0.00499999989"/>
|
||||||
@@ -8994,10 +8986,8 @@
|
|||||||
<Entity name="BottomRight">
|
<Entity name="BottomRight">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||||
<Linear>false</Linear>
|
<GlowMap></GlowMap>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.0970000029" Y="-0.0219999999" Z="0.00499999989"/>
|
<Position X="0.0970000029" Y="-0.0219999999" Z="0.00499999989"/>
|
||||||
@@ -9018,59 +9008,16 @@
|
|||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<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">
|
<Entity name="Button_2">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Button/>
|
<c:Button/>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
<BlurBackground>true</BlurBackground>
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DepthSort>false</DepthSort>
|
||||||
<Color A="0.392156869" B="0" G="0" R="0"/>
|
<Color A="0.392156869" B="0" G="0" R="0"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:InputCmdButton>
|
|
||||||
<Command>Options</Command>
|
|
||||||
<PressValue>1</PressValue>
|
|
||||||
</c:InputCmdButton>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Scale X="0.200000003" Y="0.0500000007" Z="1"/>
|
<Scale X="0.200000003" Y="0.0500000007" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
@@ -9080,7 +9027,7 @@
|
|||||||
<Entity name="Text">
|
<Entity name="Text">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Text>
|
<c:Text>
|
||||||
<Content>Options</Content>
|
<Content>Option</Content>
|
||||||
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
<Resource>Fonts/DroidSans.ttf,64</Resource>
|
||||||
<Alignment>
|
<Alignment>
|
||||||
<Right/>
|
<Right/>
|
||||||
@@ -9093,6 +9040,40 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</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>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="ButtonPos_4">
|
<Entity name="ButtonPos_4">
|
||||||
@@ -9106,11 +9087,10 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Button/>
|
<c:Button/>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<DepthSort>false</DepthSort>
|
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
|
||||||
<BlurBackground>true</BlurBackground>
|
<BlurBackground>true</BlurBackground>
|
||||||
|
<GlowMap></GlowMap>
|
||||||
|
<DepthSort>false</DepthSort>
|
||||||
<Color A="0.392156869" B="0" G="0" R="0"/>
|
<Color A="0.392156869" B="0" G="0" R="0"/>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
@@ -9143,10 +9123,8 @@
|
|||||||
<Entity name="TopRight">
|
<Entity name="TopRight">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||||
<Linear>false</Linear>
|
<GlowMap></GlowMap>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.0970000029" Y="0.0220000017" Z="0.00499999989"/>
|
<Position X="0.0970000029" Y="0.0220000017" Z="0.00499999989"/>
|
||||||
@@ -9158,10 +9136,8 @@
|
|||||||
<Entity name="BottomRight">
|
<Entity name="BottomRight">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Sprite>
|
<c:Sprite>
|
||||||
<Model>Models/Core/UnitQuad.mesh</Model>
|
|
||||||
<GlowMap></GlowMap>
|
|
||||||
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
|
||||||
<Linear>false</Linear>
|
<GlowMap></GlowMap>
|
||||||
</c:Sprite>
|
</c:Sprite>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.0970000029" Y="-0.0219999999" Z="0.00499999989"/>
|
<Position X="0.0970000029" Y="-0.0219999999" Z="0.00499999989"/>
|
||||||
@@ -9193,15 +9169,6 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="OptionsSpawner">
|
|
||||||
<Components>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/OptionMenu.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>models/core/unitcube.mesh</Resource>
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
<Color A="1" B="0.980392158" G="1" R="1"/>
|
<Color A="1" B="0.980392158" G="1" R="1"/>
|
||||||
<Shadow>false</Shadow>
|
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-0.100000001" Y="0" Z="0"/>
|
<Position X="-0.100000001" Y="0" Z="0"/>
|
||||||
@@ -29,7 +28,6 @@
|
|||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>models/core/unitcube.mesh</Resource>
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
<Color A="1" B="0" G="0" R="1"/>
|
<Color A="1" B="0" G="0" R="1"/>
|
||||||
<Shadow>false</Shadow>
|
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-14.500001" Y="1.50000012" Z="16.9222012"/>
|
<Position X="-14.500001" Y="1.50000012" Z="16.9222012"/>
|
||||||
@@ -54,7 +52,6 @@
|
|||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>models/core/unitcube.mesh</Resource>
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
<Color A="1" B="1" G="0" R="0"/>
|
<Color A="1" B="1" G="0" R="0"/>
|
||||||
<Shadow>false</Shadow>
|
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-14.500001" Y="1.50000012" Z="-17.6888409"/>
|
<Position X="-14.500001" Y="1.50000012" Z="-17.6888409"/>
|
||||||
@@ -70,7 +67,6 @@
|
|||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>models/core/unitcube.mesh</Resource>
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
<Color A="1" B="0" G="0" R="1"/>
|
<Color A="1" B="0" G="0" R="1"/>
|
||||||
<Shadow>false</Shadow>
|
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="12.1000004" Y="1.50000012" Z="16.9222012"/>
|
<Position X="12.1000004" Y="1.50000012" Z="16.9222012"/>
|
||||||
@@ -86,7 +82,6 @@
|
|||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>models/core/unitcube.mesh</Resource>
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
<Color A="1" B="1" G="0" R="0"/>
|
<Color A="1" B="1" G="0" R="0"/>
|
||||||
<Shadow>false</Shadow>
|
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="12.1228638" Y="1.50000012" Z="-17.9642811"/>
|
<Position X="12.1228638" Y="1.50000012" Z="-17.9642811"/>
|
||||||
@@ -104,7 +99,7 @@
|
|||||||
</c:Team>
|
</c:Team>
|
||||||
<c:PlayerSpawn/>
|
<c:PlayerSpawn/>
|
||||||
<c:Spawner>
|
<c:Spawner>
|
||||||
<EntityFile>Schema/Entities/PlayerRed.xml</EntityFile>
|
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
||||||
</c:Spawner>
|
</c:Spawner>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
@@ -203,7 +198,6 @@
|
|||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>models/core/unitcube.mesh</Resource>
|
<Resource>models/core/unitcube.mesh</Resource>
|
||||||
<Color A="1" B="39.2156868" G="0" R="3.13725495"/>
|
<Color A="1" B="39.2156868" G="0" R="3.13725495"/>
|
||||||
<Shadow>false</Shadow>
|
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Scale X="-70" Y="-70" Z="-70"/>
|
<Scale X="-70" Y="-70" Z="-70"/>
|
||||||
@@ -216,7 +210,7 @@
|
|||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="CapP">
|
<Entity name="-">
|
||||||
<Components>
|
<Components>
|
||||||
<c:AABB/>
|
<c:AABB/>
|
||||||
<c:CapturePoint>
|
<c:CapturePoint>
|
||||||
@@ -231,11 +225,6 @@
|
|||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
<c:Trigger/>
|
<c:Trigger/>
|
||||||
<c:Model>
|
|
||||||
<Resource></Resource>
|
|
||||||
<Color A="0.300000012" B="0" G="0" R="1"/>
|
|
||||||
<Visible>false</Visible>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="-4.10000038"/>
|
<Position X="0" Y="0" Z="-4.10000038"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
@@ -250,25 +239,8 @@
|
|||||||
<Scale X="2.70000005" Y="3.4000001" Z="4.60000038"/>
|
<Scale X="2.70000005" Y="3.4000001" Z="4.60000038"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource></Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:PointLight/>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="Blue">
|
<Entity name="Blue">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
@@ -278,26 +250,8 @@
|
|||||||
<Scale X="3.4000001" Y="4.70000029" Z="0.700000048"/>
|
<Scale X="3.4000001" Y="4.70000029" Z="0.700000048"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource></Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:PointLight/>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="Spectator">
|
<Entity name="Spectator">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
@@ -307,58 +261,22 @@
|
|||||||
<Scale X="1" Y="5.70000029" Z="1"/>
|
<Scale X="1" Y="5.70000029" Z="1"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<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/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
<Entity>
|
||||||
<Components>
|
<Components>
|
||||||
<c:Transform/>
|
<c:Transform/>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="CapP">
|
<Entity name="-">
|
||||||
<Components>
|
<Components>
|
||||||
<c:AABB/>
|
<c:AABB/>
|
||||||
<c:CapturePoint>
|
<c:CapturePoint>
|
||||||
<CaptureTimer>12</CaptureTimer>
|
<CaptureTimer>-15</CaptureTimer>
|
||||||
<HomePointForTeam>
|
<HomePointForTeam>
|
||||||
<Blue/>
|
<Blue/>
|
||||||
</HomePointForTeam>
|
</HomePointForTeam>
|
||||||
@@ -384,39 +302,8 @@
|
|||||||
<Scale X="4.4000001" Y="2" Z="3.70000029"/>
|
<Scale X="4.4000001" Y="2" Z="3.70000029"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<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/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="Blue">
|
<Entity name="Blue">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
|
|||||||
@@ -71,8 +71,6 @@
|
|||||||
<xs:element ref="c:NetworkComponent" minOccurs="0"/>
|
<xs:element ref="c:NetworkComponent" minOccurs="0"/>
|
||||||
<xs:element ref="c:ServerIdentity" minOccurs="0"/>
|
<xs:element ref="c:ServerIdentity" minOccurs="0"/>
|
||||||
<xs:element ref="c:ServerList" 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:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|||||||
@@ -15,11 +15,6 @@ uniform float RandomnessScalar;
|
|||||||
uniform vec2 Velocity;
|
uniform vec2 Velocity;
|
||||||
uniform bool ColorByDistance;
|
uniform bool ColorByDistance;
|
||||||
uniform bool ExponentialAccelaration;
|
uniform bool ExponentialAccelaration;
|
||||||
uniform bool Reverse;
|
|
||||||
uniform float ColorDistanceScalar;
|
|
||||||
//uniform bool Gravity;
|
|
||||||
//uniform bool Rotation;
|
|
||||||
//uniform bool MaxRadius;
|
|
||||||
|
|
||||||
in VertexData{
|
in VertexData{
|
||||||
vec3 Position;
|
vec3 Position;
|
||||||
@@ -46,43 +41,32 @@ out VertexData{
|
|||||||
layout(triangles) in;
|
layout(triangles) in;
|
||||||
layout(triangle_strip, max_vertices = 3) out;
|
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
|
// returns a "random" number based on input parameter
|
||||||
float GetRandomNumber(int polygon_index)
|
float GetRandomNumber(int polygon_index)
|
||||||
{
|
{
|
||||||
return RandomNumbers[int(mod(polygon_index, 50))];
|
int randomIndex = int(mod(polygon_index, 50));
|
||||||
|
|
||||||
|
return RandomNumbers[randomIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
vec3 CalcCenterOfTriangle(vec3 vertex0, vec3 vertex1, vec3 vertex2)
|
float randomNumber = 0.0;
|
||||||
|
float randomDistance = 0.0;
|
||||||
|
|
||||||
|
void main()
|
||||||
{
|
{
|
||||||
// calculate middle of vectors
|
// calculate middle of vectors
|
||||||
vec3 dir1 = normalize(vertex1 - vertex0);
|
vec3 v1 = Input[1].Position - Input[0].Position;
|
||||||
vec3 dir2 = normalize(vertex2 - vertex0);
|
vec3 v2 = Input[2].Position - Input[0].Position;
|
||||||
|
vec3 v3 = Input[2].Position - (v1 / 2);
|
||||||
|
vec3 v4 = Input[1].Position - (v2 / 2);
|
||||||
|
|
||||||
vec3 vecA = vertex2 - vertex1; //o2 - o1
|
// calculate intersection
|
||||||
|
|
||||||
|
// normalize direction
|
||||||
|
vec3 dir1 = normalize(v1);
|
||||||
|
vec3 dir2 = normalize(v2);
|
||||||
|
|
||||||
|
vec3 vecA = Input[2].Position - Input[1].Position; //o2 - o1
|
||||||
vec3 vecB = cross(dir1, dir2);
|
vec3 vecB = cross(dir1, dir2);
|
||||||
|
|
||||||
mat3 matrisA = mat3(vecA, dir2, vecB);
|
mat3 matrisA = mat3(vecA, dir2, vecB);
|
||||||
@@ -93,89 +77,133 @@ vec3 CalcCenterOfTriangle(vec3 vertex0, vec3 vertex1, vec3 vertex2)
|
|||||||
float s = determinant(matrisA) / lengthA;
|
float s = determinant(matrisA) / lengthA;
|
||||||
|
|
||||||
// center position of triangle
|
// center position of triangle
|
||||||
return vertex1 + (s * dir1);
|
vec3 centerOfTriangle = Input[1].Position + (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
|
// center position of triangle to origin vector
|
||||||
vec3 origin2TriangleCenterVector = centerOfTriangle - ExplosionOrigin;
|
vec3 origin2TriangleCenterVector = centerOfTriangle - ExplosionOrigin;
|
||||||
vec3 normalizedOrigin2TriangleCenterVector = normalize(origin2TriangleCenterVector);
|
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)
|
// time percentage until end of explosion (0.0-1.0)
|
||||||
float timePercetage = TimeSinceDeath / ExplosionDuration;
|
float timePercetage = TimeSinceDeath / ExplosionDuration;
|
||||||
|
|
||||||
// get a random number if randomness is enabled, otherwise the random distance will be zero and won't affect the other algorithms
|
// get a random number if randomness is enabled, otherwise the random number will be zero and won't affect the other algorithms
|
||||||
float randomDistance = float(Randomness) * GetRandomNumber(gl_PrimitiveIDIn) * RandomnessScalar;
|
if (Randomness == true)
|
||||||
|
{
|
||||||
|
randomDistance = GetRandomNumber(gl_PrimitiveIDIn) * RandomnessScalar;
|
||||||
|
}
|
||||||
|
|
||||||
vec2 randomVelocity = Velocity * (randomDistance + 1.0);
|
vec2 randomVelocity = Velocity * (randomDistance + 1.0);
|
||||||
|
|
||||||
// accelaration to use on current frame. is a interpolation between start and end value
|
// accelaration to use on current frame. is a interpolation between start and end value
|
||||||
float currentVelocity = mix(randomVelocity.x, randomVelocity.y, timePercetage);
|
float currentVelocity = mix(randomVelocity.x, randomVelocity.y, timePercetage);
|
||||||
|
|
||||||
// if the accelaration should be exponential
|
if (ExponentialAccelaration == true)
|
||||||
currentVelocity = currentVelocity * max(currentVelocity * float(ExponentialAccelaration), 1.0);
|
{
|
||||||
|
currentVelocity = pow(currentVelocity, 2) / 2.0;
|
||||||
|
}
|
||||||
|
|
||||||
// the distance the blast has moved since the beginning, i.e. its radius
|
// distance between origin and the center of the current triangle
|
||||||
float blastWave = TimeSinceDeath * currentVelocity;
|
float origin2TriangleCenterDistance = length(origin2TriangleCenterVector);
|
||||||
|
|
||||||
// the distance from origin to the triangle center with eventual randomness added
|
// the distance from origin to the triangle center with eventual randomness added
|
||||||
float origin2TriangleCenterDistanceWithRandomness = origin2TriangleCenterDistance + randomDistance;
|
float fullDistanceWithRandomness = origin2TriangleCenterDistance + randomDistance;
|
||||||
|
|
||||||
vec3 triangleCenter2ExplosionRadius = (normalizedOrigin2TriangleCenterVector * blastWave) - (normalizedOrigin2TriangleCenterVector * origin2TriangleCenterDistanceWithRandomness);
|
// vector from the triangle center to the explosion's shockwave
|
||||||
|
vec3 triangleCenter2ExplosionRadius = (normalizedOrigin2TriangleCenterVector * (TimeSinceDeath * currentVelocity)) - (normalizedOrigin2TriangleCenterVector * fullDistanceWithRandomness);
|
||||||
|
|
||||||
// if the triangle is inside the blast's radius...
|
// if the triangle is inside the blast radius...
|
||||||
float isInsideBlastRadius = LessEqualTo(origin2TriangleCenterDistanceWithRandomness, blastWave);
|
if (fullDistanceWithRandomness <= (TimeSinceDeath * currentVelocity))
|
||||||
|
{
|
||||||
|
float maxRadius = max(TimeSinceDeath * currentVelocity, (ExplosionDuration * currentVelocity));
|
||||||
|
|
||||||
// calculate the max distance (s) the triangle will move
|
float a = (randomVelocity.y - randomVelocity.x) / ExplosionDuration;
|
||||||
float accelaration = (randomVelocity.y - randomVelocity.x) / ExplosionDuration;
|
//float t = sqrt((2 * origin2TriangleCenterDistance) / a);
|
||||||
float maxDistance = (randomVelocity.x * ExplosionDuration) + (0.5 * accelaration * ExplosionDuration * ExplosionDuration);
|
|
||||||
|
|
||||||
// if explosion color should be affected by distance instead of time...
|
// if explosion color should be affected by distance instead of time...
|
||||||
if (ColorByDistance == true)
|
if (ColorByDistance == true)
|
||||||
{
|
{
|
||||||
Output.ExplosionPercentageElapsed = (length(triangleCenter2ExplosionRadius) / maxDistance) * isInsideBlastRadius * ColorDistanceScalar;
|
// 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
|
else
|
||||||
{
|
{
|
||||||
|
Output.ExplosionColor = EndColor;
|
||||||
Output.ExplosionPercentageElapsed = timePercetage;
|
Output.ExplosionPercentageElapsed = timePercetage;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
vec3 ExplodedPosition;
|
// for every vertex on the triangle...
|
||||||
for (int i = 0; i < gl_in.length(); i++)
|
for (int i = 0; i < gl_in.length(); i++)
|
||||||
{
|
{
|
||||||
// move the triangle to the blast radius
|
// move the triangle to the blast radius
|
||||||
ExplodedPosition = Input[i].Position + (triangleCenter2ExplosionRadius * isInsideBlastRadius);
|
vec3 ExplodedPosition = Input[i].Position + triangleCenter2ExplosionRadius;
|
||||||
|
|
||||||
// pass through vertex data
|
// pass through vertex data
|
||||||
PassThingsThrough(i);
|
Output.Normal = Input[i].Normal;
|
||||||
for (int j = 0; j < MAX_SPLITS; j++)
|
Output.Position = Input[i].Position;
|
||||||
{
|
Output.TextureCoordinate = Input[i].TextureCoordinate;
|
||||||
Output.PositionLightSpace[j] = Input[i].PositionLightSpace[j];
|
Output.Tangent = Input[i].Tangent;
|
||||||
}
|
Output.BiTangent = Input[i].BiTangent;
|
||||||
for (int j = 0; j < MAX_SPLITS; j++)
|
for (int j = 0; j < MAX_SPLITS; j++)
|
||||||
{
|
{
|
||||||
Output.PositionLightSpace[j] = Input[i].PositionLightSpace[j];
|
Output.PositionLightSpace[j] = Input[i].PositionLightSpace[j];
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert to window space
|
// convert to model space for the gravity to always be in -y
|
||||||
gl_Position = P * V * M * vec4(ExplodedPosition, 1.0);
|
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();
|
EmitVertex();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
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;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//EndPrimitive();
|
||||||
}
|
}
|
||||||
@@ -29,10 +29,9 @@ void main()
|
|||||||
vec4 color_result = Color * diffuseTexel;
|
vec4 color_result = Color * diffuseTexel;
|
||||||
|
|
||||||
float pos = ((P * vec4(Input.Position, 1)).y + 1.0)/2.0;
|
float pos = ((P * vec4(Input.Position, 1)).y + 1.0)/2.0;
|
||||||
|
float fillResult = floor(pos*FillPercentage);
|
||||||
|
|
||||||
if(pos <= FillPercentage) {
|
color_result = FillColor*diffuseTexel.a*fillResult + color_result*(1-fillResult);
|
||||||
color_result = FillColor*diffuseTexel.a;
|
|
||||||
}
|
|
||||||
|
|
||||||
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
|
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
|
||||||
|
|
||||||
|
|||||||
@@ -146,14 +146,14 @@ bool RayVsTriangle(const Ray& ray,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool RayVsModel(const Ray& ray,
|
bool RayVsModel(const Ray& ray,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix)
|
const glm::mat4& modelMatrix)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < modelIndices.size();) {
|
for (int i = 0; i < modelIndices.size();) {
|
||||||
glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
|
glm::vec3 v0 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||||
glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
|
glm::vec3 v1 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||||
glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
|
glm::vec3 v2 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||||
if (RayVsTriangle(ray, v0, v1, v2)) {
|
if (RayVsTriangle(ray, v0, v1, v2)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -194,7 +194,7 @@ bool RayVsTriangle(const Ray& ray,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool RayVsModel(const Ray& ray,
|
bool RayVsModel(const Ray& ray,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix,
|
const glm::mat4& modelMatrix,
|
||||||
float& outDistance,
|
float& outDistance,
|
||||||
@@ -204,9 +204,9 @@ bool RayVsModel(const Ray& ray,
|
|||||||
outDistance = INFINITY;
|
outDistance = INFINITY;
|
||||||
bool hit = false;
|
bool hit = false;
|
||||||
for (int i = 0; i < modelIndices.size();) {
|
for (int i = 0; i < modelIndices.size();) {
|
||||||
glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
|
glm::vec3 v0 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||||
glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
|
glm::vec3 v1 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||||
glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
|
glm::vec3 v2 = Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
|
||||||
float dist = outDistance;
|
float dist = outDistance;
|
||||||
float u;
|
float u;
|
||||||
float v;
|
float v;
|
||||||
@@ -221,7 +221,7 @@ bool RayVsModel(const Ray& ray,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool RayVsModel(const Ray& ray,
|
bool RayVsModel(const Ray& ray,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix,
|
const glm::mat4& modelMatrix,
|
||||||
glm::vec3& outHitPosition)
|
glm::vec3& outHitPosition)
|
||||||
@@ -360,14 +360,7 @@ constexpr bool FaceIsGround(float faceNormalY)
|
|||||||
//An array containing 3 int pairs { 0, 2 }, { 0, 1 }, { 1, 2 }
|
//An array containing 3 int pairs { 0, 2 }, { 0, 1 }, { 1, 2 }
|
||||||
constexpr std::array<std::pair<int, int>, 3> dimensionPairs({ std::pair<int, int>(0, 2), std::pair<int, int>(0, 1), std::pair<int, int>(1, 2) });
|
constexpr std::array<std::pair<int, int>, 3> dimensionPairs({ std::pair<int, int>(0, 2), std::pair<int, int>(0, 1), std::pair<int, int>(1, 2) });
|
||||||
|
|
||||||
enum class BoxTriRes
|
bool AABBvsTriangle(const AABB& box,
|
||||||
{
|
|
||||||
Front,
|
|
||||||
Behind,
|
|
||||||
Intersect
|
|
||||||
};
|
|
||||||
|
|
||||||
BoxTriRes AABBvsTriangle(const AABB& box,
|
|
||||||
const std::array<glm::vec3, 3>& triPos,
|
const std::array<glm::vec3, 3>& triPos,
|
||||||
const glm::vec3& originalBoxVelocity,
|
const glm::vec3& originalBoxVelocity,
|
||||||
float verticalStepHeight,
|
float verticalStepHeight,
|
||||||
@@ -381,7 +374,7 @@ BoxTriRes AABBvsTriangle(const AABB& box,
|
|||||||
//Less checks, and we should be able to walk out from models if we are trapped inside.
|
//Less checks, and we should be able to walk out from models if we are trapped inside.
|
||||||
glm::vec3 triNormal = glm::cross(triPos[1] - triPos[0], triPos[2] - triPos[0]);
|
glm::vec3 triNormal = glm::cross(triPos[1] - triPos[0], triPos[2] - triPos[0]);
|
||||||
if (!vectorHasLength(triNormal) || (glm::dot(triNormal, originalBoxVelocity) > 0)) {
|
if (!vectorHasLength(triNormal) || (glm::dot(triNormal, originalBoxVelocity) > 0)) {
|
||||||
return BoxTriRes::Behind;
|
return false;
|
||||||
}
|
}
|
||||||
triNormal = glm::normalize(triNormal);
|
triNormal = glm::normalize(triNormal);
|
||||||
|
|
||||||
@@ -416,9 +409,6 @@ BoxTriRes AABBvsTriangle(const AABB& box,
|
|||||||
const glm::vec3& min = box.MinCorner();
|
const glm::vec3& min = box.MinCorner();
|
||||||
const glm::vec3& max = box.MaxCorner();
|
const glm::vec3& max = box.MaxCorner();
|
||||||
|
|
||||||
// If there is no intersection, whether the box center is in front of or behind the triangle.
|
|
||||||
BoxTriRes noIntersection = glm::dot(triNormal, origin - triPos[0]) > 0 ? BoxTriRes::Front : BoxTriRes::Behind;
|
|
||||||
|
|
||||||
//For each projection in xy-, xz-, and yx-planes.
|
//For each projection in xy-, xz-, and yx-planes.
|
||||||
for (std::pair<int, int> dim : dimensionPairs) {
|
for (std::pair<int, int> dim : dimensionPairs) {
|
||||||
//2D Triangle.
|
//2D Triangle.
|
||||||
@@ -436,7 +426,7 @@ BoxTriRes AABBvsTriangle(const AABB& box,
|
|||||||
bool pushedFromTriangleLine;
|
bool pushedFromTriangleLine;
|
||||||
//if projections don't overlap, return false.
|
//if projections don't overlap, return false.
|
||||||
if (!rectangleVsTriangle(boxMin, boxMax, t2D, resolutionVector, resolutionDist, pushedFromTriangleLine)) {
|
if (!rectangleVsTriangle(boxMin, boxMax, t2D, resolutionVector, resolutionDist, pushedFromTriangleLine)) {
|
||||||
return noIntersection;
|
return false;
|
||||||
} else if (resolveCollision) {
|
} else if (resolveCollision) {
|
||||||
//Overwrite the smallest resolution if this is smaller.
|
//Overwrite the smallest resolution if this is smaller.
|
||||||
if (resolutionDist < resolveShortest.DistanceSq) {
|
if (resolutionDist < resolveShortest.DistanceSq) {
|
||||||
@@ -472,15 +462,14 @@ BoxTriRes AABBvsTriangle(const AABB& box,
|
|||||||
float t = glm::dot(triNormal, triPos[0] - origin) / glm::dot(triNormal, diagonal);
|
float t = glm::dot(triNormal, triPos[0] - origin) / glm::dot(triNormal, diagonal);
|
||||||
//If intersection point between plane and diagonal is within the box.
|
//If intersection point between plane and diagonal is within the box.
|
||||||
if (glm::abs(t) > 1) {
|
if (glm::abs(t) > 1) {
|
||||||
return noIntersection;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!resolveCollision) {
|
if (!resolveCollision) {
|
||||||
return BoxTriRes::Intersect;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
glm::vec3 cornerResolution = (1+t) * diagonal;
|
glm::vec3 cornerResolution = (1+t) * diagonal;
|
||||||
cornerResolution = glm::dot(cornerResolution, triNormal) * triNormal;
|
|
||||||
//Overwrite the smallest resolution if cornerResolution is smaller.
|
//Overwrite the smallest resolution if cornerResolution is smaller.
|
||||||
float lenSq = glm::length2(cornerResolution);
|
float lenSq = glm::length2(cornerResolution);
|
||||||
if (lenSq < resolveShortest.DistanceSq) {
|
if (lenSq < resolveShortest.DistanceSq) {
|
||||||
@@ -509,7 +498,7 @@ BoxTriRes AABBvsTriangle(const AABB& box,
|
|||||||
case ResolveDimZ:
|
case ResolveDimZ:
|
||||||
//If we get here, the resolution is along one coordinate axis.
|
//If we get here, the resolution is along one coordinate axis.
|
||||||
//set velocity to 0 in y if it is along y-axis.
|
//set velocity to 0 in y if it is along y-axis.
|
||||||
return BoxTriRes::Intersect;
|
return true;
|
||||||
case Line:
|
case Line:
|
||||||
projNorm = glm::normalize(outResolution);
|
projNorm = glm::normalize(outResolution);
|
||||||
break;
|
break;
|
||||||
@@ -544,11 +533,11 @@ BoxTriRes AABBvsTriangle(const AABB& box,
|
|||||||
boxVelocity = boxVelocity - glm::dot(boxVelocity, projNorm) * projNorm;
|
boxVelocity = boxVelocity - glm::dot(boxVelocity, projNorm) * projNorm;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return BoxTriRes::Intersect;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Output AABBvsTriangles(const AABB& box,
|
bool AABBvsTriangles(const AABB& box,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix,
|
const glm::mat4& modelMatrix,
|
||||||
glm::vec3& boxVelocity,
|
glm::vec3& boxVelocity,
|
||||||
@@ -557,45 +546,38 @@ Output AABBvsTriangles(const AABB& box,
|
|||||||
glm::vec3& outResolutionVector,
|
glm::vec3& outResolutionVector,
|
||||||
bool resolveCollision)
|
bool resolveCollision)
|
||||||
{
|
{
|
||||||
bool intersect = false;
|
bool hit = false;
|
||||||
Output out = Output::OutContained;
|
|
||||||
bool everHitTheGround = false;
|
bool everHitTheGround = false;
|
||||||
AABB newBox = box;
|
AABB newBox = box;
|
||||||
outResolutionVector = glm::vec3(0.f);
|
outResolutionVector = glm::vec3(0.f);
|
||||||
glm::vec3 originalBoxVelocity(boxVelocity);
|
glm::vec3 originalBoxVelocity(boxVelocity);
|
||||||
for (int i = 0; i < modelIndices.size(); ) {
|
for (int i = 0; i < modelIndices.size(); ) {
|
||||||
std::array<glm::vec3, 3> triVertices = {
|
std::array<glm::vec3, 3> triVertices = {
|
||||||
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix),
|
Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix),
|
||||||
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix),
|
Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix),
|
||||||
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix)
|
Transform::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix)
|
||||||
};
|
};
|
||||||
glm::vec3 outVec;
|
glm::vec3 outVec;
|
||||||
bool collideWithGround = isOnGround;
|
bool collideWithGround = isOnGround;
|
||||||
switch (AABBvsTriangle(newBox, triVertices, originalBoxVelocity, verticalStepHeight, collideWithGround, boxVelocity, outVec, resolveCollision)) {
|
if (AABBvsTriangle(newBox, triVertices, originalBoxVelocity, verticalStepHeight, collideWithGround, boxVelocity, outVec, resolveCollision)) {
|
||||||
case Collision::BoxTriRes::Front:
|
hit = true;
|
||||||
out = Output::OutSeparated;
|
|
||||||
break;
|
|
||||||
case Collision::BoxTriRes::Intersect:
|
|
||||||
intersect = true;
|
|
||||||
outResolutionVector += outVec;
|
outResolutionVector += outVec;
|
||||||
newBox = AABB::FromOriginSize(newBox.Origin() + outVec, newBox.Size());
|
newBox = AABB::FromOriginSize(newBox.Origin() + outVec, newBox.Size());
|
||||||
if (collideWithGround) {
|
if (collideWithGround) {
|
||||||
everHitTheGround = isOnGround = true;
|
everHitTheGround = isOnGround = true;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!everHitTheGround) {
|
if (!everHitTheGround) {
|
||||||
isOnGround = false;
|
isOnGround = false;
|
||||||
}
|
}
|
||||||
return intersect ? Output::OutIntersecting : out;
|
return hit;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AABBvsTriangles(const AABB& box,
|
bool AABBvsTriangles(const AABB& box,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix,
|
const glm::mat4& modelMatrix,
|
||||||
glm::vec3& boxVelocity,
|
glm::vec3& boxVelocity,
|
||||||
@@ -611,29 +593,11 @@ bool AABBvsTriangles(const AABB& box,
|
|||||||
verticalStepHeight,
|
verticalStepHeight,
|
||||||
isOnGround,
|
isOnGround,
|
||||||
outResolutionVector,
|
outResolutionVector,
|
||||||
true) == Output::OutIntersecting;
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AABBvsTriangles(const AABB& box,
|
bool AABBvsTriangles(const AABB& box,
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
const RawModel::Vertex* modelVertices,
|
||||||
const std::vector<unsigned int>& modelIndices,
|
|
||||||
const glm::mat4& modelMatrix)
|
|
||||||
{
|
|
||||||
glm::vec3 vel, outres;
|
|
||||||
bool g;
|
|
||||||
return AABBvsTriangles(box,
|
|
||||||
modelVertices,
|
|
||||||
modelIndices,
|
|
||||||
modelMatrix,
|
|
||||||
vel,
|
|
||||||
0.f,
|
|
||||||
g,
|
|
||||||
outres,
|
|
||||||
false) == Output::OutIntersecting;
|
|
||||||
}
|
|
||||||
|
|
||||||
Output AABBvsTrianglesWContainment(const AABB& box,
|
|
||||||
const std::vector<glm::vec3>& modelVertices,
|
|
||||||
const std::vector<unsigned int>& modelIndices,
|
const std::vector<unsigned int>& modelIndices,
|
||||||
const glm::mat4& modelMatrix)
|
const glm::mat4& modelMatrix)
|
||||||
{
|
{
|
||||||
@@ -655,9 +619,9 @@ boost::optional<EntityAABB> EntityAbsoluteAABB(EntityWrapper& entity, bool takeM
|
|||||||
AABB modelSpaceBox;
|
AABB modelSpaceBox;
|
||||||
if (entity.HasComponent("AABB") && !takeModelBox) {
|
if (entity.HasComponent("AABB") && !takeModelBox) {
|
||||||
ComponentWrapper& cAABB = entity["AABB"];
|
ComponentWrapper& cAABB = entity["AABB"];
|
||||||
modelSpaceBox = EntityAABB::FromOriginSize((const glm::vec3&)cAABB["Origin"], (const glm::vec3&)cAABB["Size"]);
|
modelSpaceBox = EntityAABB::FromOriginSize((glm::vec3)cAABB["Origin"], (glm::vec3)cAABB["Size"]);
|
||||||
} else if (entity.HasComponent("Model")) {
|
} else if (entity.HasComponent("Model")) {
|
||||||
const std::string& res = entity["Model"]["Resource"];
|
std::string res = entity["Model"]["Resource"];
|
||||||
if (res.empty()) {
|
if (res.empty()) {
|
||||||
return boost::none;
|
return boost::none;
|
||||||
}
|
}
|
||||||
@@ -674,7 +638,7 @@ boost::optional<EntityAABB> EntityAbsoluteAABB(EntityWrapper& entity, bool takeM
|
|||||||
return boost::none;
|
return boost::none;
|
||||||
}
|
}
|
||||||
|
|
||||||
glm::mat4 modelMat = TransformSystem::ModelMatrix(entity);
|
glm::mat4 modelMat = Transform::AbsoluteTransformation(entity);
|
||||||
glm::vec3 mini(INFINITY);
|
glm::vec3 mini(INFINITY);
|
||||||
glm::vec3 maxi(-INFINITY);
|
glm::vec3 maxi(-INFINITY);
|
||||||
glm::vec3 maxCorner = modelSpaceBox.MaxCorner();
|
glm::vec3 maxCorner = modelSpaceBox.MaxCorner();
|
||||||
@@ -685,7 +649,7 @@ boost::optional<EntityAABB> EntityAbsoluteAABB(EntityWrapper& entity, bool takeM
|
|||||||
corner.x = bits.test(0) ? maxCorner.x : minCorner.x;
|
corner.x = bits.test(0) ? maxCorner.x : minCorner.x;
|
||||||
corner.y = bits.test(1) ? maxCorner.y : minCorner.y;
|
corner.y = bits.test(1) ? maxCorner.y : minCorner.y;
|
||||||
corner.z = bits.test(2) ? maxCorner.z : minCorner.z;
|
corner.z = bits.test(2) ? maxCorner.z : minCorner.z;
|
||||||
corner = TransformSystem::TransformPoint(corner, modelMat);
|
corner = Transform::TransformPoint(corner, modelMat);
|
||||||
mini = glm::min(mini, corner);
|
mini = glm::min(mini, corner);
|
||||||
maxi = glm::max(maxi, corner);
|
maxi = glm::max(maxi, corner);
|
||||||
}
|
}
|
||||||
@@ -703,7 +667,7 @@ boost::optional<EntityAABB> AbsoluteAABBExplosionEffect(EntityWrapper& entity)
|
|||||||
if (!modelBox) {
|
if (!modelBox) {
|
||||||
return boost::none;
|
return boost::none;
|
||||||
}
|
}
|
||||||
Field<bool> isRandom = entity["ExplosionEffect"]["Randomness"];
|
bool isRandom = (bool)entity["ExplosionEffect"]["Randomness"];
|
||||||
float random = isRandom ? (float)(double)entity["ExplosionEffect"]["RandomnessScalar"] : 0;
|
float random = isRandom ? (float)(double)entity["ExplosionEffect"]["RandomnessScalar"] : 0;
|
||||||
glm::vec3 origin = (glm::vec3)entity["ExplosionEffect"]["ExplosionOrigin"];
|
glm::vec3 origin = (glm::vec3)entity["ExplosionEffect"]["ExplosionOrigin"];
|
||||||
glm::vec3 randomVel = (glm::vec3)entity["ExplosionEffect"]["Velocity"];
|
glm::vec3 randomVel = (glm::vec3)entity["ExplosionEffect"]["Velocity"];
|
||||||
@@ -741,7 +705,7 @@ boost::optional<EntityAABB> EntityFirstHitByRay(const Ray& ray, std::vector<Enti
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
float u, v;
|
float u, v;
|
||||||
if (RayVsModel(ray, model->m_Vertices, model->m_Indices, TransformSystem::ModelMatrix(entityBox.Entity), outDistance, u, v)) {
|
if (RayVsModel(ray, model->Vertices(), model->m_RawModel->m_Indices, Transform::ModelMatrix(entityBox.Entity), outDistance, u, v)) {
|
||||||
outIntersectPos = ray.Origin() + outDistance * ray.Direction();
|
outIntersectPos = ray.Origin() + outDistance * ray.Direction();
|
||||||
return entityBox;
|
return entityBox;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,19 +37,15 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
|
|||||||
bool hit;
|
bool hit;
|
||||||
float dist;
|
float dist;
|
||||||
if (boxB.Entity.HasComponent("Model")) {
|
if (boxB.Entity.HasComponent("Model")) {
|
||||||
if (!((bool)boxB.Entity["Model"]["Visible"])) {
|
RawModel* model;
|
||||||
// Don't collide against invisible models.
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Model* model;
|
|
||||||
std::string res = (std::string)boxB.Entity["Model"]["Resource"];
|
std::string res = (std::string)boxB.Entity["Model"]["Resource"];
|
||||||
try {
|
try {
|
||||||
model = ResourceManager::Load<Model, true>(res);
|
model = ResourceManager::Load<RawModel, true>(res);
|
||||||
} catch (const std::exception&) {
|
} catch (const std::exception&) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
float u, v;
|
float u, v;
|
||||||
hit = Collision::RayVsModel(ray, model->m_Vertices, model->m_Indices, TransformSystem::ModelMatrix(boxB.Entity), dist, u, v);
|
hit = Collision::RayVsModel(ray, model->Vertices(), model->m_Indices, Transform::ModelMatrix(boxB.Entity), dist, u, v);
|
||||||
} else {
|
} else {
|
||||||
hit = Collision::RayVsAABB(ray, boxB, dist);
|
hit = Collision::RayVsAABB(ray, boxB, dist);
|
||||||
}
|
}
|
||||||
@@ -58,12 +54,12 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
|
|||||||
//TODO: Perhaps this should be done slightly more properly.
|
//TODO: Perhaps this should be done slightly more properly.
|
||||||
glm::vec3 newOriginPos = ray.Origin() + (dist - 0.707107f*diameter) * ray.Direction();
|
glm::vec3 newOriginPos = ray.Origin() + (dist - 0.707107f*diameter) * ray.Direction();
|
||||||
glm::vec3 resolve = newOriginPos - boxA.Origin();
|
glm::vec3 resolve = newOriginPos - boxA.Origin();
|
||||||
(Field<glm::vec3>)cTransform["Position"] += resolve;
|
(glm::vec3&)cTransform["Position"] += resolve;
|
||||||
boxA = *Collision::EntityAbsoluteAABB(entity);
|
boxA = *Collision::EntityAbsoluteAABB(entity);
|
||||||
if (resolve.y > 0) {
|
if (resolve.y > 0) {
|
||||||
everHitTheGround = true;
|
everHitTheGround = true;
|
||||||
cPhysics["IsOnGround"] = true;
|
(bool)cPhysics["IsOnGround"] = true;
|
||||||
((Field<glm::vec3>)cPhysics["Velocity"]).y(0.f);
|
((glm::vec3&)cPhysics["Velocity"]).y = 0.f;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -81,26 +77,23 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (boxB.Entity.HasComponent("Model") && Collision::AABBVsAABB(boxA, boxB)) {
|
if (boxB.Entity.HasComponent("Model") && Collision::AABBVsAABB(boxA, boxB)) {
|
||||||
// Here we know boxB is a entity with Collideable, AABB, and Model.
|
//Here we know boxB is a entity with Collideable, AABB, and Model.
|
||||||
if (!((const bool&)boxB.Entity["Model"]["Visible"])) {
|
RawModel* model;
|
||||||
// Don't collide against invisible models.
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Model* model;
|
|
||||||
try {
|
try {
|
||||||
model = ResourceManager::Load<Model, true>(boxB.Entity["Model"]["Resource"]);
|
model = ResourceManager::Load<RawModel, true>(boxB.Entity["Model"]["Resource"]);
|
||||||
} catch (const std::exception&) {
|
} catch (const std::exception&) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
glm::mat4 modelMatrix = TransformSystem::ModelMatrix(boxB.Entity);
|
glm::mat4 modelMatrix = Transform::ModelMatrix(boxB.Entity);
|
||||||
|
|
||||||
glm::vec3 inOutVelocity = (glm::vec3)cPhysics["Velocity"];
|
glm::vec3 inOutVelocity = (glm::vec3)cPhysics["Velocity"];
|
||||||
|
bool notMovingxz = glm::all(glm::lessThan(glm::abs(glm::vec2(inOutVelocity.x, inOutVelocity.z)), glm::vec2(0.01f))) && prevPosIt != m_PrevPositions.end();
|
||||||
bool isOnGround = (bool)cPhysics["IsOnGround"];
|
bool isOnGround = (bool)cPhysics["IsOnGround"];
|
||||||
float verticalStepHeight = (float)(double)cPhysics["VerticalStepHeight"];
|
float verticalStepHeight = (float)(double)cPhysics["VerticalStepHeight"];
|
||||||
if (Collision::AABBvsTriangles(boxA, model->m_Vertices, model->m_Indices, modelMatrix, inOutVelocity, verticalStepHeight, isOnGround, resolutionVector)) {
|
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.
|
//Move the position to previous position if it is not moving in the xz-plane, else resolve with the resolution vector.
|
||||||
(Field<glm::vec3>)cTransform["Position"] += resolutionVector;
|
(glm::vec3&)cTransform["Position"] += notMovingxz ? prevPosIt->second - boxA.Origin() : resolutionVector;
|
||||||
boxA = *Collision::EntityAbsoluteAABB(entity);
|
boxA = *Collision::EntityAbsoluteAABB(entity);
|
||||||
cPhysics["Velocity"] = inOutVelocity;
|
cPhysics["Velocity"] = inOutVelocity;
|
||||||
if (isOnGround) {
|
if (isOnGround) {
|
||||||
@@ -110,12 +103,12 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
|
|||||||
}
|
}
|
||||||
} else if (Collision::AABBVsAABB(boxA, boxB, resolutionVector)) {
|
} else if (Collision::AABBVsAABB(boxA, boxB, resolutionVector)) {
|
||||||
//Enter here if boxB has no Model.
|
//Enter here if boxB has no Model.
|
||||||
(Field<glm::vec3>)cTransform["Position"] += resolutionVector;
|
(glm::vec3&)cTransform["Position"] += resolutionVector;
|
||||||
boxA = *Collision::EntityAbsoluteAABB(entity);
|
boxA = *Collision::EntityAbsoluteAABB(entity);
|
||||||
if (resolutionVector.y > 0) {
|
if (resolutionVector.y > 0) {
|
||||||
everHitTheGround = true;
|
everHitTheGround = true;
|
||||||
(bool)cPhysics["IsOnGround"] = true;
|
(bool)cPhysics["IsOnGround"] = true;
|
||||||
((Field<glm::vec3>)cPhysics["Velocity"]).y(0.f);
|
((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