Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7834087e75 |
@@ -14,9 +14,6 @@ endif()
|
|||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14")
|
||||||
elseif(MSVC)
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP")
|
|
||||||
add_definitions(-D_CRT_SECURE_NO_WARNINGS)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#set(BUILD_SHARED_LIBS FALSE)
|
#set(BUILD_SHARED_LIBS FALSE)
|
||||||
@@ -37,12 +34,6 @@ foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
|
|||||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
|
||||||
endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES)
|
endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES)
|
||||||
|
|
||||||
# DEBUG definition
|
|
||||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS
|
|
||||||
$<$<CONFIG:Debug>:DEBUG>
|
|
||||||
$<$<CONFIG:RelWithDebInfo>:DEBUG>
|
|
||||||
)
|
|
||||||
|
|
||||||
include(cotire)
|
include(cotire)
|
||||||
add_subdirectory(src/Engine)
|
add_subdirectory(src/Engine)
|
||||||
add_subdirectory(src/Game)
|
add_subdirectory(src/Game)
|
||||||
|
|||||||
+1
-1
Submodule assets updated: cfeeb1f880...e4dc9529f2
@@ -4,14 +4,13 @@
|
|||||||
#include "../Core/System.h"
|
#include "../Core/System.h"
|
||||||
#include "../Core/Octree.h"
|
#include "../Core/Octree.h"
|
||||||
#include "Collision.h"
|
#include "Collision.h"
|
||||||
#include "EntityAABB.h"
|
|
||||||
|
|
||||||
class CollidableOctreeSystem : public ImpureSystem, public PureSystem
|
class CollidableOctreeSystem : public ImpureSystem, public PureSystem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CollidableOctreeSystem(World* world, EventBroker* eventBroker, Octree<EntityAABB>* octree, const std::string& componentType)
|
CollidableOctreeSystem(World* world, EventBroker* eventBroker, Octree<AABB>* octree)
|
||||||
: System(world, eventBroker)
|
: System(world, eventBroker)
|
||||||
, PureSystem(componentType)
|
, PureSystem("Collidable")
|
||||||
, m_Octree(octree)
|
, m_Octree(octree)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
@@ -19,7 +18,7 @@ public:
|
|||||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override;
|
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Octree<EntityAABB>* m_Octree;
|
Octree<AABB>* m_Octree;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -15,7 +15,6 @@
|
|||||||
#include "../Core/Transform.h"
|
#include "../Core/Transform.h"
|
||||||
#include "../Core/Entity.h"
|
#include "../Core/Entity.h"
|
||||||
#include "../Core/EntityWrapper.h"
|
#include "../Core/EntityWrapper.h"
|
||||||
#include "EntityAABB.h"
|
|
||||||
|
|
||||||
class World;
|
class World;
|
||||||
struct ComponentWrapper;
|
struct ComponentWrapper;
|
||||||
@@ -28,21 +27,6 @@ bool RayVsAABB(const Ray& ray, const AABB& box);
|
|||||||
//Return true if the ray hits the box, also outputs distance from ray origin to intersection point in [outDistance].
|
//Return true if the ray hits the box, also outputs distance from ray origin to intersection point in [outDistance].
|
||||||
bool RayVsAABB(const Ray& ray, const AABB& box, float& outDistance);
|
bool RayVsAABB(const Ray& ray, const AABB& box, float& outDistance);
|
||||||
|
|
||||||
//Return true if the ray hits the triangle.
|
|
||||||
bool RayVsTriangle(const Ray& ray,
|
|
||||||
const glm::vec3& v0,
|
|
||||||
const glm::vec3& v1,
|
|
||||||
const glm::vec3& v2,
|
|
||||||
bool trueOnNegativeDistance = false);
|
|
||||||
//Return true if the ray hits the triangle, and the distance is less than outDistance.
|
|
||||||
bool RayVsTriangle(const Ray& ray,
|
|
||||||
const glm::vec3& v0,
|
|
||||||
const glm::vec3& v1,
|
|
||||||
const glm::vec3& v2,
|
|
||||||
float& outDistance,
|
|
||||||
float& outUCoord,
|
|
||||||
float& outVCoord,
|
|
||||||
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<RawModel::Vertex>& modelVertices,
|
const std::vector<RawModel::Vertex>& modelVertices,
|
||||||
@@ -67,9 +51,6 @@ bool AABBvsTriangles(const AABB& box,
|
|||||||
const std::vector<RawModel::Vertex>& modelVertices,
|
const std::vector<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,
|
|
||||||
float verticalStepHeight,
|
|
||||||
bool& isOnGround,
|
|
||||||
glm::vec3& outResolutionVector);
|
glm::vec3& outResolutionVector);
|
||||||
|
|
||||||
//Return true if the boxes are intersecting.
|
//Return true if the boxes are intersecting.
|
||||||
@@ -77,9 +58,10 @@ bool AABBVsAABB(const AABB& a, const AABB& b);
|
|||||||
//Return true if the boxes are intersecting.
|
//Return true if the boxes are intersecting.
|
||||||
//Also outputs the minimum translation that box [a] would need in order to resolve collision.
|
//Also outputs the minimum translation that box [a] would need in order to resolve collision.
|
||||||
bool AABBVsAABB(const AABB& a, const AABB& b, glm::vec3& minimumTranslation);
|
bool AABBVsAABB(const AABB& a, const AABB& b, glm::vec3& minimumTranslation);
|
||||||
|
bool IsSameBoxProbably(const AABB& first, const AABB& second, const float epsilon = 0.0001f);
|
||||||
|
|
||||||
// Calculates an absolute AABB from an entity AABB component
|
// Calculates an absolute AABB from an entity AABB component
|
||||||
boost::optional<EntityAABB> EntityAbsoluteAABB(EntityWrapper& entity);
|
boost::optional<AABB> EntityAbsoluteAABB(EntityWrapper& entity);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,23 +7,30 @@
|
|||||||
#include "../Common.h"
|
#include "../Common.h"
|
||||||
#include "../Core/System.h"
|
#include "../Core/System.h"
|
||||||
#include "../Core/EventBroker.h"
|
#include "../Core/EventBroker.h"
|
||||||
|
#include "../Core/EKeyUp.h"
|
||||||
#include "../Core/Octree.h"
|
#include "../Core/Octree.h"
|
||||||
#include "EntityAABB.h"
|
|
||||||
|
|
||||||
class CollisionSystem : public PureSystem
|
class CollisionSystem : public PureSystem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CollisionSystem(World* world, EventBroker* eventBroker, Octree<EntityAABB>* octree)
|
CollisionSystem(World* world, EventBroker* eventBroker, Octree<AABB>* octree)
|
||||||
: System(world, eventBroker)
|
: System(world, eventBroker)
|
||||||
, PureSystem("Collidable")
|
, PureSystem("Collidable")
|
||||||
, m_Octree(octree)
|
, m_Octree(octree)
|
||||||
{ }
|
, zPress(false)
|
||||||
|
{
|
||||||
|
//TODO: Debug stuff, remove later.
|
||||||
|
EVENT_SUBSCRIBE_MEMBER(m_EKeyUp, &CollisionSystem::OnKeyUp);
|
||||||
|
}
|
||||||
|
|
||||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override;
|
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Octree<EntityAABB>* m_Octree;
|
Octree<AABB>* m_Octree;
|
||||||
std::vector<EntityAABB> m_OctreeResult;
|
bool zPress;
|
||||||
|
|
||||||
|
EventRelay<CollisionSystem, Events::KeyUp> m_EKeyUp;
|
||||||
|
bool OnKeyUp(const Events::KeyUp &event);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
#define Events_TriggerEnter_h__
|
#define Events_TriggerEnter_h__
|
||||||
|
|
||||||
#include "../Core/EventBroker.h"
|
#include "../Core/EventBroker.h"
|
||||||
#include "../Core/EntityWrapper.h"
|
#include "../Core/Entity.h"
|
||||||
|
|
||||||
namespace Events
|
namespace Events
|
||||||
{
|
{
|
||||||
@@ -11,27 +11,27 @@ namespace Events
|
|||||||
struct TriggerTouch : Event
|
struct TriggerTouch : Event
|
||||||
{
|
{
|
||||||
/** The id of the entity that touches the trigger. */
|
/** The id of the entity that touches the trigger. */
|
||||||
EntityWrapper Entity;
|
EntityID Entity;
|
||||||
/** The id of the trigger entity. */
|
/** The id of the trigger entity. */
|
||||||
EntityWrapper Trigger;
|
EntityID Trigger;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Thrown once, when an entity has completely left a trigger. */
|
/** Thrown once, when an entity has completely left a trigger. */
|
||||||
struct TriggerLeave : Event
|
struct TriggerLeave : Event
|
||||||
{
|
{
|
||||||
/** The id of the entity that left the trigger. */
|
/** The id of the entity that left the trigger. */
|
||||||
EntityWrapper Entity;
|
EntityID Entity;
|
||||||
/** The id of the trigger entity. */
|
/** The id of the trigger entity. */
|
||||||
EntityWrapper Trigger;
|
EntityID Trigger;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Thrown once, when an entity is completely contained inside a trigger. */
|
/** Thrown once, when an entity is completely contained inside a trigger. */
|
||||||
struct TriggerEnter : Event
|
struct TriggerEnter : Event
|
||||||
{
|
{
|
||||||
/** The id of the entity that entered the trigger. */
|
/** The id of the entity that entered the trigger. */
|
||||||
EntityWrapper Entity;
|
EntityID Entity;
|
||||||
/** The id of the trigger entity. */
|
/** The id of the trigger entity. */
|
||||||
EntityWrapper Trigger;
|
EntityID Trigger;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
#ifndef EntityAABB_h__
|
|
||||||
#define EntityAABB_h__
|
|
||||||
|
|
||||||
#include "../Core/AABB.h"
|
|
||||||
#include "../Core/EntityWrapper.h"
|
|
||||||
|
|
||||||
struct EntityAABB : AABB
|
|
||||||
{
|
|
||||||
EntityAABB() = default;
|
|
||||||
|
|
||||||
EntityAABB(const glm::vec3& minPos, const glm::vec3& maxPos)
|
|
||||||
: AABB(minPos, maxPos)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
EntityAABB(const AABB& aabb)
|
|
||||||
: AABB(aabb)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
EntityWrapper Entity;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -8,14 +8,13 @@
|
|||||||
#include "../Core/EventBroker.h"
|
#include "../Core/EventBroker.h"
|
||||||
#include "../Core/Octree.h"
|
#include "../Core/Octree.h"
|
||||||
#include "ETrigger.h"
|
#include "ETrigger.h"
|
||||||
#include "EntityAABB.h"
|
|
||||||
|
|
||||||
class AABB;
|
class AABB;
|
||||||
|
|
||||||
class TriggerSystem : public PureSystem
|
class TriggerSystem : public PureSystem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TriggerSystem(World* world, EventBroker* eventBroker, Octree<EntityAABB>* octree)
|
TriggerSystem(World* world, EventBroker* eventBroker, Octree<AABB>* octree)
|
||||||
: System(world, eventBroker)
|
: System(world, eventBroker)
|
||||||
, PureSystem("Trigger")
|
, PureSystem("Trigger")
|
||||||
, m_Octree(octree)
|
, m_Octree(octree)
|
||||||
@@ -28,10 +27,9 @@ public:
|
|||||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override;
|
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Octree<EntityAABB>* m_Octree;
|
Octree<AABB>* m_Octree;
|
||||||
std::vector<EntityAABB> m_OctreeOut;
|
std::unordered_map<EntityID, std::unordered_set<EntityID>> m_EntitiesTouchingTrigger;
|
||||||
std::unordered_map<EntityWrapper, std::unordered_set<EntityWrapper>> m_EntitiesTouchingTrigger;
|
std::unordered_map<EntityID, std::unordered_set<EntityID>> m_EntitiesCompletelyInTrigger;
|
||||||
std::unordered_map<EntityWrapper, std::unordered_set<EntityWrapper>> m_EntitiesCompletelyInTrigger;
|
|
||||||
|
|
||||||
//TODO: Only exists for debug purposes, remove later.
|
//TODO: Only exists for debug purposes, remove later.
|
||||||
EventRelay<TriggerSystem, Events::TriggerEnter> m_EEnter;
|
EventRelay<TriggerSystem, Events::TriggerEnter> m_EEnter;
|
||||||
@@ -42,13 +40,13 @@ private:
|
|||||||
bool OnLeave(const Events::TriggerLeave &event);
|
bool OnLeave(const Events::TriggerLeave &event);
|
||||||
|
|
||||||
//True if leave event was thrown.
|
//True if leave event was thrown.
|
||||||
bool throwLeaveIfWasInTrigger(std::unordered_set<EntityWrapper>& triggerSet, EntityWrapper colliderENtity, EntityWrapper triggerEntity);
|
bool throwLeaveIfWasInTrigger(std::unordered_set<EntityID>& triggerSet, EntityID pId, EntityID tId);
|
||||||
template<typename Event>
|
template<typename Event>
|
||||||
void publish(EntityWrapper collider, EntityWrapper trigger)
|
void publish(EntityID pId, EntityID tId)
|
||||||
{
|
{
|
||||||
Event e;
|
Event e;
|
||||||
e.Trigger = trigger;
|
e.Trigger = tId;
|
||||||
e.Entity = collider;
|
e.Entity = pId;
|
||||||
m_EventBroker->Publish(e);
|
m_EventBroker->Publish(e);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
#include <map>
|
#include <map>
|
||||||
#include <unordered_map>
|
#include <unordered_map>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <array>
|
|
||||||
|
|
||||||
#include "Core/Util/Logging.h"
|
#include "Core/Util/Logging.h"
|
||||||
#include "Core/Util/IfDebug.h"
|
#include "Core/Util/IfDebug.h"
|
||||||
@@ -9,6 +9,7 @@ public:
|
|||||||
AABB() = default;
|
AABB() = default;
|
||||||
//No checks are made. Values in minPos must be less than values in maxPos, i.e. min.x < max.x, etc.
|
//No checks are made. Values in minPos must be less than values in maxPos, i.e. min.x < max.x, etc.
|
||||||
AABB(const glm::vec3& minPos, const glm::vec3& maxPos);
|
AABB(const glm::vec3& minPos, const glm::vec3& maxPos);
|
||||||
|
AABB(const glm::vec4& minPos, const glm::vec4& maxPos);
|
||||||
//No checks are made. Size must consist of non-negative numbers.
|
//No checks are made. Size must consist of non-negative numbers.
|
||||||
static AABB FromOriginSize(const glm::vec3& origin, const glm::vec3& size);
|
static AABB FromOriginSize(const glm::vec3& origin, const glm::vec3& size);
|
||||||
virtual ~AABB();
|
virtual ~AABB();
|
||||||
|
|||||||
@@ -43,11 +43,6 @@ struct ComponentWrapper
|
|||||||
// Specialization for string literals
|
// Specialization for string literals
|
||||||
template <std::size_t N>
|
template <std::size_t N>
|
||||||
void SetField(std::string name, const char(&value)[N]) { Field<std::string>(name) = std::string(value); }
|
void SetField(std::string name, const char(&value)[N]) { Field<std::string>(name) = std::string(value); }
|
||||||
|
|
||||||
void Copy(ComponentWrapper& destination)
|
|
||||||
{
|
|
||||||
memcpy(destination.Data, this->Data, Info.Stride);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct SubscriptProxy
|
struct SubscriptProxy
|
||||||
{
|
{
|
||||||
@@ -86,7 +81,7 @@ class ComponentWrapperFactory
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ComponentWrapperFactory() = default;
|
ComponentWrapperFactory() = default;
|
||||||
ComponentWrapperFactory(std::string componentTypeName, unsigned int allocation = 0)
|
ComponentWrapperFactory(std::string componentTypeName, std::size_t allocation = 0)
|
||||||
{
|
{
|
||||||
m_ComponentInfo.Name = componentTypeName;
|
m_ComponentInfo.Name = componentTypeName;
|
||||||
m_ComponentInfo.Meta->Allocation = allocation;
|
m_ComponentInfo.Meta->Allocation = allocation;
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
#ifndef EPickupSpawned_h__
|
|
||||||
#define EPickupSpawned_h__
|
|
||||||
|
|
||||||
#include "Core/Event.h"
|
|
||||||
#include "Core/EntityWrapper.h"
|
|
||||||
|
|
||||||
namespace Events
|
|
||||||
{
|
|
||||||
|
|
||||||
struct PickupSpawned : Event
|
|
||||||
{
|
|
||||||
EntityWrapper Pickup;
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -9,7 +9,6 @@ namespace Events
|
|||||||
|
|
||||||
struct PlayerDamage : Event
|
struct PlayerDamage : Event
|
||||||
{
|
{
|
||||||
//NOTE: this struct is missing information on what the damageSource is
|
|
||||||
EntityWrapper Player;
|
EntityWrapper Player;
|
||||||
double Damage;
|
double Damage;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
#define EPlayerDeath_h__
|
#define EPlayerDeath_h__
|
||||||
|
|
||||||
#include "EventBroker.h"
|
#include "EventBroker.h"
|
||||||
#include "../Core/EntityWrapper.h"
|
#include "../Core/Entity.h"
|
||||||
|
|
||||||
namespace Events
|
namespace Events
|
||||||
{
|
{
|
||||||
@@ -10,7 +10,8 @@ namespace Events
|
|||||||
struct PlayerDeath : Event
|
struct PlayerDeath : Event
|
||||||
{
|
{
|
||||||
//KilledBy,KilledByWhat is optional for now. It might be used later in the playerlog-system
|
//KilledBy,KilledByWhat is optional for now. It might be used later in the playerlog-system
|
||||||
EntityWrapper Player;
|
EntityID KilledBy;
|
||||||
|
EntityID PlayerID;
|
||||||
std::string KilledByWhat;
|
std::string KilledByWhat;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -2,16 +2,16 @@
|
|||||||
#define EPlayerHealthPickup_h__
|
#define EPlayerHealthPickup_h__
|
||||||
|
|
||||||
#include "EventBroker.h"
|
#include "EventBroker.h"
|
||||||
#include "../Core/EntityWrapper.h"
|
#include "../Core/Entity.h"
|
||||||
|
|
||||||
namespace Events
|
namespace Events
|
||||||
{
|
{
|
||||||
|
|
||||||
struct PlayerHealthPickup : Event
|
struct PlayerHealthPickup : Event
|
||||||
{
|
{
|
||||||
EntityWrapper Player;
|
double HealthAmount;
|
||||||
double HealthAmount;
|
EntityID PlayerHealedID;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ private:
|
|||||||
~EntityFile();
|
~EntityFile();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static unsigned int GetTypeStride(std::string typeName);
|
static std::size_t GetTypeStride(std::string typeName);
|
||||||
static void WriteAttributeData(char* outData, const ComponentInfo::Field_t& field, const std::map<std::string, std::string>& attributes);
|
static void WriteAttributeData(char* outData, const ComponentInfo::Field_t& field, const std::map<std::string, std::string>& attributes);
|
||||||
static void WriteValueData(char* outData, const ComponentInfo::Field_t& field, const char* valueData);
|
static void WriteValueData(char* outData, const ComponentInfo::Field_t& field, const char* valueData);
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ struct EntityWrapper
|
|||||||
bool operator==(const EntityWrapper& e) const;
|
bool operator==(const EntityWrapper& e) const;
|
||||||
bool operator!=(const EntityWrapper& e) const;
|
bool operator!=(const EntityWrapper& e) const;
|
||||||
explicit operator EntityID() const;
|
explicit operator EntityID() const;
|
||||||
|
operator bool();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
EntityWrapper firstChildByNameRecursive(const std::string& name, EntityID parent);
|
EntityWrapper firstChildByNameRecursive(const std::string& name, EntityID parent);
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ public:
|
|||||||
m_ExtraMemory.push_back((char*)malloc(m_Stride));
|
m_ExtraMemory.push_back((char*)malloc(m_Stride));
|
||||||
//We should preferably not enter here to avoid performance issues. Set more numMaxElements in constructor instead.
|
//We should preferably not enter here to avoid performance issues. Set more numMaxElements in constructor instead.
|
||||||
if (!DisableMemoryPool::Value) {
|
if (!DisableMemoryPool::Value) {
|
||||||
LOG_DEBUG("Allocated slots exceed Pool size, extra memory allocated dynamically. Pool size: %u, dynamic size: %u.", m_NumSlots, m_ExtraMemory.size());
|
LOG_WARNING("Allocated slots exceed Pool size, extra memory allocated dynamically. Pool size: %u, dynamic size: %u.", m_NumSlots, m_ExtraMemory.size());
|
||||||
}
|
}
|
||||||
return m_ExtraMemory.back();
|
return m_ExtraMemory.back();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ struct Child
|
|||||||
std::vector<ContainedObject>& m_StaticObjectsRef;
|
std::vector<ContainedObject>& m_StaticObjectsRef;
|
||||||
std::vector<ContainedObject>& m_DynamicObjectsRef;
|
std::vector<ContainedObject>& m_DynamicObjectsRef;
|
||||||
|
|
||||||
inline bool hasChildren() const { return m_Children[0] != nullptr; }
|
bool hasChildren() const;
|
||||||
int childIndexContainingPoint(const glm::vec3& point) const;
|
int childIndexContainingPoint(const glm::vec3& point) const;
|
||||||
std::vector<int> childIndicesContainingBox(const AABB& box) const;
|
std::vector<int> childIndicesContainingBox(const AABB& box) const;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,10 +7,6 @@
|
|||||||
class Ray
|
class Ray
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Ray()
|
|
||||||
: m_Origin(glm::vec3(0.f))
|
|
||||||
, m_Direction(glm::vec3(0, 0, 1))
|
|
||||||
{}
|
|
||||||
Ray(const glm::vec3& origin, const glm::vec3& dir)
|
Ray(const glm::vec3& origin, const glm::vec3& dir)
|
||||||
: m_Origin(origin)
|
: m_Origin(origin)
|
||||||
, m_Direction(glm::normalize(dir))
|
, m_Direction(glm::normalize(dir))
|
||||||
|
|||||||
@@ -200,16 +200,13 @@ static T* ResourceManager::Load(const std::string& resourceName, Resource* paren
|
|||||||
}
|
}
|
||||||
|
|
||||||
//If resource has already been cached and completely loaded.
|
//If resource has already been cached and completely loaded.
|
||||||
{
|
it = m_ResourceCache.find(cacheKey);
|
||||||
boost::lock_guard<decltype(m_Mutex)> guard(m_Mutex);
|
if (it != m_ResourceCache.end()) {
|
||||||
it = m_ResourceCache.find(cacheKey);
|
if (it->second != nullptr) {
|
||||||
if (it != m_ResourceCache.end()) {
|
return static_cast<T*>(it->second);
|
||||||
if (it->second != nullptr) {
|
} else {
|
||||||
return static_cast<T*>(it->second);
|
//Don't return null on failure, exception instead.
|
||||||
} else {
|
throw Resource::FailedLoadingException();
|
||||||
//Don't return null on failure, exception instead.
|
|
||||||
throw Resource::FailedLoadingException();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ glm::vec3 AbsoluteScale(EntityWrapper entity);
|
|||||||
glm::vec3 AbsoluteScale(World* world, EntityID entity);
|
glm::vec3 AbsoluteScale(World* world, EntityID entity);
|
||||||
glm::mat4 ModelMatrix(EntityWrapper entity);
|
glm::mat4 ModelMatrix(EntityWrapper entity);
|
||||||
glm::mat4 ModelMatrix(EntityID entity, World* world);
|
glm::mat4 ModelMatrix(EntityID entity, World* world);
|
||||||
glm::vec3 TransformPoint(const glm::vec3& point, const glm::mat4& matrix);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ enum class FileWatcher::FileEventFlags
|
|||||||
};
|
};
|
||||||
|
|
||||||
inline FileWatcher::FileEventFlags operator|(FileWatcher::FileEventFlags a, FileWatcher::FileEventFlags b) { return static_cast<FileWatcher::FileEventFlags>(static_cast<int>(a) | static_cast<int>(b)); }
|
inline FileWatcher::FileEventFlags operator|(FileWatcher::FileEventFlags a, FileWatcher::FileEventFlags b) { return static_cast<FileWatcher::FileEventFlags>(static_cast<int>(a) | static_cast<int>(b)); }
|
||||||
inline bool operator&(FileWatcher::FileEventFlags a, FileWatcher::FileEventFlags b) { return (static_cast<int>(a) & static_cast<int>(b)) != 0; }
|
inline bool operator&(FileWatcher::FileEventFlags a, FileWatcher::FileEventFlags b) { return static_cast<int>(a)& static_cast<int>(b); }
|
||||||
|
|
||||||
class FileWatcher::Worker
|
class FileWatcher::Worker
|
||||||
{
|
{
|
||||||
@@ -54,7 +54,7 @@ public:
|
|||||||
private:
|
private:
|
||||||
struct FileInfo
|
struct FileInfo
|
||||||
{
|
{
|
||||||
std::size_t Size;
|
int Size;
|
||||||
std::time_t Timestamp;
|
std::time_t Timestamp;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -29,9 +29,41 @@ enum _LOG_LEVEL
|
|||||||
|
|
||||||
extern _LOG_LEVEL LOG_LEVEL;
|
extern _LOG_LEVEL LOG_LEVEL;
|
||||||
|
|
||||||
extern const char* _LOG_LEVEL_PREFIX[];
|
const static char* _LOG_LEVEL_PREFIX[] =
|
||||||
|
{
|
||||||
|
"EE: ",
|
||||||
|
"",
|
||||||
|
"WW: ",
|
||||||
|
"DD: "
|
||||||
|
};
|
||||||
|
|
||||||
extern void _LOG(_LOG_LEVEL logLevel, const char* file, const char* func, unsigned int line, const char* format, ...);
|
static void _LOG(_LOG_LEVEL logLevel, const char* file, const char* func, unsigned int line, const char* format, ...)
|
||||||
|
{
|
||||||
|
if (logLevel > LOG_LEVEL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
char* message = nullptr;
|
||||||
|
va_list args;
|
||||||
|
|
||||||
|
va_start(args, format);
|
||||||
|
size_t size = vsnprintf(message, 0, format, args) + 1;
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
va_start(args, format);
|
||||||
|
message = new char[size];
|
||||||
|
vsnprintf(message, size, format, args);
|
||||||
|
va_end(args);
|
||||||
|
|
||||||
|
if (logLevel == LOG_LEVEL_ERROR) {
|
||||||
|
std::cerr << file << ":" << line << " " << func << std::endl;
|
||||||
|
std::cerr << _LOG_LEVEL_PREFIX[logLevel] << message << std::endl;
|
||||||
|
} else {
|
||||||
|
std::cout << _LOG_LEVEL_PREFIX[logLevel] << message << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
delete[] message;
|
||||||
|
}
|
||||||
|
|
||||||
#define LOG(logLevel, format, ...) \
|
#define LOG(logLevel, format, ...) \
|
||||||
_LOG(logLevel, __BASE_FILE__, __func__, __LINE__, format, ##__VA_ARGS__)
|
_LOG(logLevel, __BASE_FILE__, __func__, __LINE__, format, ##__VA_ARGS__)
|
||||||
@@ -45,11 +77,7 @@ extern void _LOG(_LOG_LEVEL logLevel, const char* file, const char* func, unsign
|
|||||||
#define LOG_INFO(format, ...) \
|
#define LOG_INFO(format, ...) \
|
||||||
LOG(LOG_LEVEL_INFO, format, ##__VA_ARGS__)
|
LOG(LOG_LEVEL_INFO, format, ##__VA_ARGS__)
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
#define LOG_DEBUG(format, ...) \
|
#define LOG_DEBUG(format, ...) \
|
||||||
LOG(LOG_LEVEL_DEBUG, format, ##__VA_ARGS__)
|
LOG(LOG_LEVEL_DEBUG, format, ##__VA_ARGS__)
|
||||||
#else
|
|
||||||
#define LOG_DEBUG(format, ...)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // Logging_h__
|
#endif // Logging_h__
|
||||||
@@ -23,7 +23,7 @@ public:
|
|||||||
m_SpeedMultiplier = m_Config->Get<float>("Editor.CameraSpeed", 3.f);
|
m_SpeedMultiplier = m_Config->Get<float>("Editor.CameraSpeed", 3.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual const glm::vec3 Movement() const override { return m_Movement * static_cast<float>(m_SpeedMultiplier); }
|
virtual const glm::vec3 Movement() const override { return m_Movement * m_SpeedMultiplier; }
|
||||||
|
|
||||||
void Enable() { m_Enabled = true; }
|
void Enable() { m_Enabled = true; }
|
||||||
void Disable() { m_Enabled = false; }
|
void Disable() { m_Enabled = false; }
|
||||||
@@ -69,7 +69,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
ConfigFile* m_Config;
|
ConfigFile* m_Config;
|
||||||
bool m_Enabled = false;
|
bool m_Enabled = false;
|
||||||
double m_SpeedMultiplier = 1.f;
|
float m_SpeedMultiplier = 1.f;
|
||||||
|
|
||||||
EventRelay<EventContext, Events::MousePress> m_EMousePress;
|
EventRelay<EventContext, Events::MousePress> m_EMousePress;
|
||||||
bool OnMousePress(const Events::MousePress& e)
|
bool OnMousePress(const Events::MousePress& e)
|
||||||
@@ -105,7 +105,7 @@ protected:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_SpeedMultiplier += e.DeltaY * (0.1 * m_SpeedMultiplier);
|
m_SpeedMultiplier += e.DeltaY * (0.1f * m_SpeedMultiplier);
|
||||||
m_Config->Set("Editor.CameraSpeed", m_SpeedMultiplier);
|
m_Config->Set("Editor.CameraSpeed", m_SpeedMultiplier);
|
||||||
m_Config->SaveToDisk();
|
m_Config->SaveToDisk();
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
#include <nativefiledialog/nfd.h>
|
#include <nativefiledialog/nfd.h>
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
#include <boost/any.hpp>
|
#include <boost/any.hpp>
|
||||||
#include <boost/algorithm/string/replace.hpp>
|
|
||||||
#include "../Common.h"
|
#include "../Common.h"
|
||||||
#include "../GLM.h"
|
#include "../GLM.h"
|
||||||
#include <glm/gtx/common.hpp>
|
#include <glm/gtx/common.hpp>
|
||||||
@@ -19,8 +18,6 @@
|
|||||||
#include "../Core/ResourceManager.h"
|
#include "../Core/ResourceManager.h"
|
||||||
#include "../Core/EPause.h"
|
#include "../Core/EPause.h"
|
||||||
#include "../Core/EKeyDown.h"
|
#include "../Core/EKeyDown.h"
|
||||||
#include "../Core/ELockMouse.h"
|
|
||||||
#include "../Core/EFileDropped.h"
|
|
||||||
#include "../Rendering/Texture.h"
|
#include "../Rendering/Texture.h"
|
||||||
|
|
||||||
class EditorGUI
|
class EditorGUI
|
||||||
@@ -35,12 +32,6 @@ public:
|
|||||||
Scale
|
Scale
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class WidgetSpace
|
|
||||||
{
|
|
||||||
Global,
|
|
||||||
Local
|
|
||||||
};
|
|
||||||
|
|
||||||
void Draw();
|
void Draw();
|
||||||
|
|
||||||
void SelectEntity(EntityWrapper entity);
|
void SelectEntity(EntityWrapper entity);
|
||||||
@@ -82,9 +73,6 @@ public:
|
|||||||
// Called when the user selects a widget mode.
|
// Called when the user selects a widget mode.
|
||||||
typedef std::function<void(WidgetMode)> OnWidgetMode_t;
|
typedef std::function<void(WidgetMode)> OnWidgetMode_t;
|
||||||
void SetWidgetModeCallback(OnWidgetMode_t f) { m_OnWidgetMode = f; }
|
void SetWidgetModeCallback(OnWidgetMode_t f) { m_OnWidgetMode = f; }
|
||||||
// Called when the user selects a widget space.
|
|
||||||
typedef std::function<void(WidgetSpace)> OnWidgetSpace_t;
|
|
||||||
void SetWidgetSpaceCallback(OnWidgetSpace_t f) { m_OnWidgetSpace = f; }
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
World* m_World;
|
World* m_World;
|
||||||
@@ -105,12 +93,8 @@ private:
|
|||||||
EntityWrapper m_CurrentlyDragging = EntityWrapper::Invalid;
|
EntityWrapper m_CurrentlyDragging = EntityWrapper::Invalid;
|
||||||
std::string m_LastErrorMessage;
|
std::string m_LastErrorMessage;
|
||||||
WidgetMode m_CurrentWidgetMode = WidgetMode::Translate;
|
WidgetMode m_CurrentWidgetMode = WidgetMode::Translate;
|
||||||
WidgetSpace m_CurrentWidgetSpace = WidgetSpace::Global;
|
|
||||||
std::set<std::string> m_ModalsToOpen;
|
std::set<std::string> m_ModalsToOpen;
|
||||||
std::map<std::string, boost::any> m_ModalData;
|
std::map<std::string, boost::any> m_ModalData;
|
||||||
std::string m_DroppedFile = "";
|
|
||||||
bool m_Paused = false;
|
|
||||||
bool m_MouseLocked = false;
|
|
||||||
|
|
||||||
// Callbacks
|
// Callbacks
|
||||||
OnEntitySelectedCallback_t m_OnEntitySelected = nullptr;
|
OnEntitySelectedCallback_t m_OnEntitySelected = nullptr;
|
||||||
@@ -123,21 +107,10 @@ private:
|
|||||||
OnComponentAttach_t m_OnComponentAttach = nullptr;
|
OnComponentAttach_t m_OnComponentAttach = nullptr;
|
||||||
OnComponentDelete_t m_OnComponentDelete = nullptr;
|
OnComponentDelete_t m_OnComponentDelete = nullptr;
|
||||||
OnWidgetMode_t m_OnWidgetMode = nullptr;
|
OnWidgetMode_t m_OnWidgetMode = nullptr;
|
||||||
OnWidgetSpace_t m_OnWidgetSpace = nullptr;
|
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
EventRelay<EditorGUI, Events::KeyDown> m_EKeyDown;
|
EventRelay<EditorGUI, Events::KeyDown> m_EKeyDown;
|
||||||
bool OnKeyDown(const Events::KeyDown& e);
|
bool OnKeyDown(const Events::KeyDown& e);
|
||||||
EventRelay<EditorGUI, Events::FileDropped> m_EFileDropped;
|
|
||||||
bool OnFileDropped(const Events::FileDropped& e);
|
|
||||||
EventRelay<EditorGUI, Events::Pause> m_EPause;
|
|
||||||
bool OnPause(const Events::Pause& e);
|
|
||||||
EventRelay<EditorGUI, Events::Resume> m_EResume;
|
|
||||||
bool OnResume(const Events::Resume& e);
|
|
||||||
EventRelay<EditorGUI, Events::LockMouse> m_ELockMouse;
|
|
||||||
bool OnLockMouse(const Events::LockMouse& e);
|
|
||||||
EventRelay<EditorGUI, Events::UnlockMouse> m_EUnlockMouse;
|
|
||||||
bool OnUnlockMouse(const Events::UnlockMouse& e);
|
|
||||||
|
|
||||||
// Utility functions
|
// Utility functions
|
||||||
boost::filesystem::path fileOpenDialog();
|
boost::filesystem::path fileOpenDialog();
|
||||||
@@ -145,9 +118,6 @@ private:
|
|||||||
const std::string formatEntityName(EntityWrapper entity);
|
const std::string formatEntityName(EntityWrapper entity);
|
||||||
GLuint tryLoadTexture(std::string filePath);
|
GLuint tryLoadTexture(std::string filePath);
|
||||||
void openModal(const std::string& modal);
|
void openModal(const std::string& modal);
|
||||||
void setWidgetMode(WidgetMode mode);
|
|
||||||
void toggleWidgetSpace();
|
|
||||||
static bool compareCharArray(const char* c1, const char* c2);
|
|
||||||
|
|
||||||
// Entity file handling methods
|
// Entity file handling methods
|
||||||
void entityImport(World* world);
|
void entityImport(World* world);
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ private:
|
|||||||
double m_LastTime = 0.f;
|
double m_LastTime = 0.f;
|
||||||
bool m_Enabled = true;
|
bool m_Enabled = true;
|
||||||
EditorGUI::WidgetMode m_WidgetMode = EditorGUI::WidgetMode::Translate;
|
EditorGUI::WidgetMode m_WidgetMode = EditorGUI::WidgetMode::Translate;
|
||||||
EditorGUI::WidgetSpace m_WidgetSpace = EditorGUI::WidgetSpace::Global;
|
|
||||||
EntityWrapper m_Widget = EntityWrapper::Invalid;
|
EntityWrapper m_Widget = EntityWrapper::Invalid;
|
||||||
EntityWrapper m_CurrentSelection = EntityWrapper::Invalid;
|
EntityWrapper m_CurrentSelection = EntityWrapper::Invalid;
|
||||||
|
|
||||||
@@ -58,7 +57,6 @@ private:
|
|||||||
void OnEntityChangeName(EntityWrapper entity, const std::string& name);
|
void OnEntityChangeName(EntityWrapper entity, const std::string& name);
|
||||||
void OnComponentAttach(EntityWrapper entity, const std::string& componentType);
|
void OnComponentAttach(EntityWrapper entity, const std::string& componentType);
|
||||||
void OnComponentDelete(EntityWrapper entity, const std::string& componentType);
|
void OnComponentDelete(EntityWrapper entity, const std::string& componentType);
|
||||||
void OnWidgetSpace(EditorGUI::WidgetSpace widgetSpace);
|
|
||||||
|
|
||||||
// Events
|
// Events
|
||||||
EventRelay<EditorSystem, Events::MousePress> m_EMousePress;
|
EventRelay<EditorSystem, Events::MousePress> m_EMousePress;
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
#include "../GLM.h"
|
#include "../GLM.h"
|
||||||
#include "../Core/InputController.h"
|
#include "../Core/InputController.h"
|
||||||
#include "../Core/ELockMouse.h"
|
#include "../Core/ELockMouse.h"
|
||||||
#include "InputHandler.h"
|
|
||||||
|
|
||||||
template <typename EventContext>
|
template <typename EventContext>
|
||||||
class FirstPersonInputController : public InputController<EventContext>
|
class FirstPersonInputController : public InputController<EventContext>
|
||||||
@@ -16,45 +15,20 @@ 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 DoubleJumping() const { return m_DoubleJumping; }
|
|
||||||
virtual void SetDoubleJumping(bool isDoubleJumping) {
|
|
||||||
m_DoubleJumping = isDoubleJumping;
|
|
||||||
}
|
|
||||||
|
|
||||||
void LockMouse();
|
void LockMouse();
|
||||||
void UnlockMouse();
|
void UnlockMouse();
|
||||||
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);
|
|
||||||
virtual bool AssaultDashDoubleTapped() const { return m_AssaultDashDoubleTapped; }
|
|
||||||
virtual bool PlayerIsDashing() const { return m_PlayerIsDashing; }
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const int m_PlayerID;
|
const int m_PlayerID;
|
||||||
bool m_MouseLocked = false;
|
bool m_MouseLocked = false;
|
||||||
glm::vec3 m_Rotation;
|
glm::vec3 m_Rotation;
|
||||||
glm::vec3 m_Movement;
|
glm::vec3 m_Movement;
|
||||||
bool m_Jumping = false;
|
bool m_Jumping = false;
|
||||||
bool m_DoubleJumping = false;
|
|
||||||
bool m_Crouching = false;
|
bool m_Crouching = false;
|
||||||
//assault dash membervariables - needed to calculate the doubletap- and dashlogic
|
|
||||||
double m_AssaultDashDoubleTapDeltaTime = 0.0;
|
|
||||||
double m_AssaultDashCoolDownTimer = 0.0;
|
|
||||||
//i will let m_AssaultDashDoubleTapSensitivityTimer stay hardcoded, its not really a gamevariable (more an inputvariable),
|
|
||||||
//and its very unlikely that someone wants to change that value
|
|
||||||
const float m_AssaultDashDoubleTapSensitivityTimer = 0.25f;
|
|
||||||
std::string m_AssaultDashTapDirection = "";
|
|
||||||
std::string m_CurrentDirectionVector = "";
|
|
||||||
bool m_AssaultDashDoubleTapped = false;
|
|
||||||
bool m_PlayerIsDashing = false;
|
|
||||||
bool m_ShiftDashing = false;
|
|
||||||
bool m_ValidDoubleTap = false;
|
|
||||||
|
|
||||||
//specialabilitys
|
|
||||||
bool m_MovementKeyDown = false;
|
|
||||||
bool m_SpecialAbilityKeyDown = false;
|
|
||||||
|
|
||||||
EventRelay<EventContext, Events::LockMouse> m_ELockMouse;
|
EventRelay<EventContext, Events::LockMouse> m_ELockMouse;
|
||||||
bool OnLockMouse(const Events::LockMouse& e);
|
bool OnLockMouse(const Events::LockMouse& e);
|
||||||
EventRelay<EventContext, Events::UnlockMouse> m_EUnlockMouse;
|
EventRelay<EventContext, Events::UnlockMouse> m_EUnlockMouse;
|
||||||
@@ -62,7 +36,7 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
template <typename EventContext>
|
template <typename EventContext>
|
||||||
FirstPersonInputController<EventContext>::FirstPersonInputController(EventBroker* eventBroker, int playerID)
|
FirstPersonInputController<EventContext>::FirstPersonInputController(EventBroker* eventBroker, int playerID)
|
||||||
: InputController(eventBroker)
|
: InputController(eventBroker)
|
||||||
, m_PlayerID(playerID)
|
, m_PlayerID(playerID)
|
||||||
{
|
{
|
||||||
@@ -125,26 +99,6 @@ bool FirstPersonInputController<EventContext>::OnCommand(const Events::InputComm
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.Command == "Forward" || e.Command == "Right") {
|
|
||||||
if (e.Value != 0) {
|
|
||||||
m_CurrentDirectionVector = e.Command == "Right" ? (e.Value > 0 ? "Right" : "Left") : (e.Value > 0 ? "Forward" : "Backward");
|
|
||||||
}
|
|
||||||
//if value = 0 then you have just released this key
|
|
||||||
if (e.Value != 0) {
|
|
||||||
m_MovementKeyDown = true;
|
|
||||||
//if you pressed the same key within m_AssaultDashDoubleTapSensitivityTimer then you have doubletapped it
|
|
||||||
if (m_AssaultDashDoubleTapDeltaTime < m_AssaultDashDoubleTapSensitivityTimer && m_AssaultDashTapDirection == m_CurrentDirectionVector) {
|
|
||||||
m_ValidDoubleTap = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//== 0
|
|
||||||
m_MovementKeyDown = false;
|
|
||||||
//you have just released the key, store what key it was and reset the doubletap-sensitivity-timer
|
|
||||||
m_AssaultDashTapDirection = m_CurrentDirectionVector;
|
|
||||||
m_AssaultDashDoubleTapDeltaTime = 0.f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (e.Command == "Jump") {
|
if (e.Command == "Jump") {
|
||||||
m_Jumping = e.Value > 0;
|
m_Jumping = e.Value > 0;
|
||||||
}
|
}
|
||||||
@@ -153,83 +107,21 @@ bool FirstPersonInputController<EventContext>::OnCommand(const Events::InputComm
|
|||||||
m_Crouching = e.Value > 0;
|
m_Crouching = e.Value > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.Command == "SpecialAbility") {
|
|
||||||
if (e.Value > 0) {
|
|
||||||
m_SpecialAbilityKeyDown = true;
|
|
||||||
} else {
|
|
||||||
m_SpecialAbilityKeyDown = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (m_SpecialAbilityKeyDown && m_MovementKeyDown) {
|
|
||||||
m_ShiftDashing = true;
|
|
||||||
} else {
|
|
||||||
m_ShiftDashing = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename EventContext>
|
template <typename EventContext>
|
||||||
bool FirstPersonInputController<EventContext>::OnUnlockMouse(const Events::UnlockMouse& e)
|
bool FirstPersonInputController<EventContext>::OnUnlockMouse(const Events::UnlockMouse& e)
|
||||||
{
|
{
|
||||||
m_MouseLocked = false;
|
m_MouseLocked = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename EventContext>
|
template <typename EventContext>
|
||||||
bool FirstPersonInputController<EventContext>::OnLockMouse(const Events::LockMouse& e)
|
bool FirstPersonInputController<EventContext>::OnLockMouse(const Events::LockMouse& e)
|
||||||
{
|
{
|
||||||
m_MouseLocked = true;
|
m_MouseLocked = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename EventContext>
|
|
||||||
void FirstPersonInputController<EventContext>::AssaultDashCheck(double dt, bool isJumping, double assaultDashCoolDownMaxTimer) {
|
|
||||||
m_AssaultDashDoubleTapDeltaTime += dt;
|
|
||||||
m_AssaultDashCoolDownTimer -= dt;
|
|
||||||
//cooldown = assaultDashCoolDownMaxTimer sec, pretend the dash lasts 0.25 sec (for friction to do its work)
|
|
||||||
if (m_AssaultDashCoolDownTimer > (assaultDashCoolDownMaxTimer - 0.25f)) {
|
|
||||||
m_PlayerIsDashing = true;
|
|
||||||
} else {
|
|
||||||
m_PlayerIsDashing = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//dashing with shift
|
|
||||||
if (m_ShiftDashing && m_AssaultDashCoolDownTimer <= 0.0f && !isJumping) {
|
|
||||||
//player is dashing with shift
|
|
||||||
//the wanted-direction is set in playermovement already so we dont need to check what direction we want to dash in!
|
|
||||||
m_AssaultDashCoolDownTimer = assaultDashCoolDownMaxTimer;
|
|
||||||
m_AssaultDashDoubleTapped = true;
|
|
||||||
m_AssaultDashDoubleTapDeltaTime = 0.f;
|
|
||||||
//moving to the side has priority
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//dashing with doubletap - check if doubletap to dash enabled
|
|
||||||
if (ResourceManager::Load<ConfigFile>("Input.ini")->Get<bool>("Keyboard.DoubleTapToDash", false)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//reset the DoubleTapped state in case we recently doubleTapped (doubletap will only happen during 1 frame)
|
|
||||||
if (m_AssaultDashDoubleTapped) {
|
|
||||||
m_AssaultDashDoubleTapped = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//check if we have received a valid doubletap
|
|
||||||
if (!m_ValidDoubleTap) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
m_ValidDoubleTap = false;
|
|
||||||
|
|
||||||
if (!(m_AssaultDashCoolDownTimer <= 0.0f && !isJumping)) {
|
|
||||||
//if we cant dash at the moment, then just reset the tap-sensitivity-timer
|
|
||||||
m_AssaultDashDoubleTapDeltaTime = 0.f;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
//ok, we have a valid tap, lets do it
|
|
||||||
m_AssaultDashDoubleTapped = true;
|
|
||||||
m_AssaultDashDoubleTapDeltaTime = 0.f;
|
|
||||||
m_AssaultDashCoolDownTimer = assaultDashCoolDownMaxTimer;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -36,7 +36,7 @@ private:
|
|||||||
boost::asio::ip::udp::socket m_Socket;
|
boost::asio::ip::udp::socket m_Socket;
|
||||||
|
|
||||||
// Sending message to server logic
|
// Sending message to server logic
|
||||||
size_t bytesRead = 0;
|
int bytesRead = -1;
|
||||||
char readBuf[INPUTSIZE] = { 0 };
|
char readBuf[INPUTSIZE] = { 0 };
|
||||||
|
|
||||||
// Packet loss logic
|
// Packet loss logic
|
||||||
@@ -69,7 +69,7 @@ private:
|
|||||||
|
|
||||||
// Private member functions
|
// Private member functions
|
||||||
void readFromServer();
|
void readFromServer();
|
||||||
size_t receive(char* data);
|
int receive(char* data);
|
||||||
void send(Packet& packet);
|
void send(Packet& packet);
|
||||||
void connect();
|
void connect();
|
||||||
void disconnect();
|
void disconnect();
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ protected:
|
|||||||
unsigned int m_SaveDataIntervalMs = 1000;
|
unsigned int m_SaveDataIntervalMs = 1000;
|
||||||
std::clock_t m_SaveDataTimer;
|
std::clock_t m_SaveDataTimer;
|
||||||
unsigned int m_MaxConnections;
|
unsigned int m_MaxConnections;
|
||||||
double m_TimeoutMs;
|
unsigned int m_TimeoutMs;
|
||||||
void saveToFile();
|
void saveToFile();
|
||||||
void updateNetworkData();
|
void updateNetworkData();
|
||||||
void initialize();
|
void initialize();
|
||||||
|
|||||||
@@ -3,16 +3,16 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
struct NetworkData {
|
struct NetworkData {
|
||||||
double TotalTime = 0;
|
unsigned int TotalTime = 0;
|
||||||
size_t TotalDataReceived = 0;
|
unsigned int TotalDataReceived = 0;
|
||||||
size_t TotalDataSent = 0;
|
unsigned int TotalDataSent = 0;
|
||||||
size_t AmountOfMessagesReceived = 0;
|
unsigned int AmountOfMessagesReceived = 0;
|
||||||
unsigned int AmountOfMessagesSent = 0;
|
unsigned int AmountOfMessagesSent = 0;
|
||||||
// Interval based
|
// Interval based
|
||||||
size_t DataReceivedThisInterval = 0;
|
unsigned int DataReceivedThisInterval = 0;
|
||||||
size_t DataSentThisInterval = 0;
|
unsigned int DataSentThisInterval = 0;
|
||||||
// pair: first=reveived, second=send
|
// pair: first=reveived, second=send
|
||||||
std::vector<std::pair<size_t, size_t>> BandwidthBytes;
|
std::vector<std::pair<unsigned int, unsigned int>> BandwidthBytes;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public:
|
|||||||
// arg2: PacketID for identifying packet loss.
|
// arg2: PacketID for identifying packet loss.
|
||||||
Packet(MessageType type, unsigned int& packetID);
|
Packet(MessageType type, unsigned int& packetID);
|
||||||
// Used to create packet from already existing data buffer.
|
// Used to create packet from already existing data buffer.
|
||||||
Packet(char* data, const size_t sizeOfPacket);
|
Packet(char* data, const int sizeOfPacket);
|
||||||
Packet(MessageType type);
|
Packet(MessageType type);
|
||||||
~Packet();
|
~Packet();
|
||||||
void Init(MessageType type, unsigned int& packetID);
|
void Init(MessageType type, unsigned int& packetID);
|
||||||
@@ -51,18 +51,18 @@ public:
|
|||||||
std::string ReadString();
|
std::string ReadString();
|
||||||
char* ReadData(int SizeOfData);
|
char* ReadData(int SizeOfData);
|
||||||
void ChangePacketID(unsigned int& packetID);
|
void ChangePacketID(unsigned int& packetID);
|
||||||
size_t Size() { return m_Offset; };
|
int Size() { return m_Offset; };
|
||||||
char* Data() { return m_Data; };
|
char* Data() { return m_Data; };
|
||||||
size_t DataReadSize() { return m_ReturnDataOffset; }
|
unsigned int DataReadSize() { return m_ReturnDataOffset; }
|
||||||
size_t MaxSize() { return m_MaxPacketSize; }
|
unsigned int MaxSize() { return m_MaxPacketSize; }
|
||||||
size_t HeaderSize() { return m_HeaderSize; }
|
unsigned int HeaderSize() { return m_HeaderSize; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
char* m_Data;
|
char* m_Data;
|
||||||
size_t m_ReturnDataOffset = 0;
|
unsigned int m_ReturnDataOffset = 0;
|
||||||
size_t m_Offset = 0;
|
int m_Offset = 0;
|
||||||
size_t m_MaxPacketSize = 512;
|
unsigned int m_MaxPacketSize = 512;
|
||||||
size_t m_HeaderSize = 0;
|
unsigned int m_HeaderSize = 0;
|
||||||
void resizeData();
|
void resizeData();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ private:
|
|||||||
std::map<PlayerID, PlayerDefinition> m_ConnectedPlayers;
|
std::map<PlayerID, PlayerDefinition> m_ConnectedPlayers;
|
||||||
// HACK: Fix INPUTSIZE
|
// HACK: Fix INPUTSIZE
|
||||||
char readBuffer[INPUTSIZE] = { 0 };
|
char readBuffer[INPUTSIZE] = { 0 };
|
||||||
size_t bytesRead = 0;
|
int bytesRead = 0;
|
||||||
// time for previouse message
|
// time for previouse message
|
||||||
std::clock_t previousePingMessage = std::clock();
|
std::clock_t previousePingMessage = std::clock();
|
||||||
std::clock_t previousSnapshotMessage = std::clock();
|
std::clock_t previousSnapshotMessage = std::clock();
|
||||||
std::clock_t timOutTimer = std::clock();
|
std::clock_t timOutTimer = std::clock();
|
||||||
// How often we send messages (milliseconds)
|
// How often we send messages (milliseconds)
|
||||||
float pingIntervalMs;
|
int pingIntervalMs;
|
||||||
float snapshotInterval;
|
int snapshotInterval;
|
||||||
int checkTimeOutInterval = 100;
|
int checkTimeOutInterval = 100;
|
||||||
int m_NextPlayerID = 0;
|
int m_NextPlayerID = 0;
|
||||||
|
|
||||||
@@ -59,7 +59,7 @@ private:
|
|||||||
PacketID m_PreviousPacketID = 0;
|
PacketID m_PreviousPacketID = 0;
|
||||||
|
|
||||||
// Private member functions
|
// Private member functions
|
||||||
size_t receive(char* data);
|
int receive(char* data);
|
||||||
void readFromClients();
|
void readFromClients();
|
||||||
void send(PlayerID player, Packet& packet);
|
void send(PlayerID player, Packet& packet);
|
||||||
void send(Packet& packet);
|
void send(Packet& packet);
|
||||||
|
|||||||
@@ -8,7 +8,6 @@
|
|||||||
#include "ShaderProgram.h"
|
#include "ShaderProgram.h"
|
||||||
//#include "Util/UnorderedMapVec2.h"
|
//#include "Util/UnorderedMapVec2.h"
|
||||||
#include "Texture.h"
|
#include "Texture.h"
|
||||||
#include "imgui/imgui.h"
|
|
||||||
|
|
||||||
class DrawBloomPass
|
class DrawBloomPass
|
||||||
{
|
{
|
||||||
@@ -27,36 +26,27 @@ public:
|
|||||||
|
|
||||||
//Getters
|
//Getters
|
||||||
//Return the blurred result of the texture that was sent into draw
|
//Return the blurred result of the texture that was sent into draw
|
||||||
GLuint GaussianTexture() const { return m_FinalBlurTexture; }
|
GLuint GaussianTexture() const { return m_GaussianTexture_vert; }
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void GenerateTexture(GLuint* texture, GLenum wrapping, GLenum filtering, glm::vec2 dimensions, GLint internalFormat, GLint format, GLenum type) const;
|
void GenerateTexture(GLuint* texture, GLenum wrapping, GLenum filtering, glm::vec2 dimensions, GLint internalFormat, GLint format, GLenum type) const;
|
||||||
void BlurOneMipMapLevel(GLuint* texture, GLint iterations, GLint mipMapLevel);
|
|
||||||
|
|
||||||
Texture* m_WhiteTexture;
|
Texture* m_WhiteTexture;
|
||||||
Model* m_ScreenQuad;
|
Model* m_ScreenQuad;
|
||||||
|
|
||||||
const IRenderer* m_Renderer;
|
const IRenderer* m_Renderer;
|
||||||
//const LightCullingPass* m_LightCullingPass
|
//const LightCullingPass* m_LightCullingPass
|
||||||
//GLuint m_iterations = 5;
|
GLuint m_iterations = 9;
|
||||||
GLint m_DebugTextureToDraw = 0;
|
|
||||||
GLint m_Iterations = 3;
|
|
||||||
|
|
||||||
float m_ScreenSizes[10];
|
|
||||||
|
|
||||||
GLuint m_FinalBlurTexture;
|
|
||||||
GLuint m_GaussianTexture_horiz;
|
GLuint m_GaussianTexture_horiz;
|
||||||
GLuint m_GaussianTexture_vert;
|
GLuint m_GaussianTexture_vert;
|
||||||
|
|
||||||
FrameBuffer m_GaussianFrameBuffer_horiz;
|
FrameBuffer m_GaussianFrameBuffer_horiz;
|
||||||
FrameBuffer m_GaussianFrameBuffer_vert;
|
FrameBuffer m_GaussianFrameBuffer_vert;
|
||||||
FrameBuffer m_BlurredFinalTexture;
|
|
||||||
|
|
||||||
ShaderProgram* m_GaussianProgram_horiz;
|
ShaderProgram* m_GaussianProgram_horiz;
|
||||||
ShaderProgram* m_GaussianProgram_vert;
|
ShaderProgram* m_GaussianProgram_vert;
|
||||||
ShaderProgram* m_GaussianProgram_both;
|
|
||||||
ShaderProgram* m_CombineProgram;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
#include "ShaderProgram.h"
|
#include "ShaderProgram.h"
|
||||||
//#include "Util/UnorderedMapVec2.h"
|
//#include "Util/UnorderedMapVec2.h"
|
||||||
#include "Texture.h"
|
#include "Texture.h"
|
||||||
#include "imgui/imgui.h"
|
|
||||||
|
|
||||||
class DrawColorCorrectionPass
|
class DrawColorCorrectionPass
|
||||||
{
|
{
|
||||||
@@ -17,13 +16,14 @@ public:
|
|||||||
void InitializeFrameBuffers();
|
void InitializeFrameBuffers();
|
||||||
void InitializeShaderPrograms();
|
void InitializeShaderPrograms();
|
||||||
|
|
||||||
void Draw(GLuint sceneTexture, GLuint bloomTexture, GLuint sceneTextureLowRes, GLuint bloomTextureLowRes, GLfloat gamma, GLfloat exposure);
|
void Draw(GLuint sceneTexture, GLuint bloomTexture);
|
||||||
private:
|
private:
|
||||||
const IRenderer* m_Renderer;
|
const IRenderer* m_Renderer;
|
||||||
|
|
||||||
ShaderProgram* m_ColorCorrectionProgram;
|
ShaderProgram* m_ColorCorrectionProgram;
|
||||||
|
|
||||||
Model* m_ScreenQuad;
|
Model* m_ScreenQuad;
|
||||||
|
GLfloat m_Exposure;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -22,54 +22,27 @@ public:
|
|||||||
|
|
||||||
//Return the texture that is used in later stages to apply the bloom effect
|
//Return the texture that is used in later stages to apply the bloom effect
|
||||||
GLuint BloomTexture() const { return m_BloomTexture; }
|
GLuint BloomTexture() const { return m_BloomTexture; }
|
||||||
GLuint BloomTextureLowRes() const { return m_BloomTextureLowRes; }
|
|
||||||
//Return the texture with diffuse and lighting of the scene.
|
//Return the texture with diffuse and lighting of the scene.
|
||||||
GLuint SceneTexture() const { return m_SceneTexture; }
|
GLuint SceneTexture() const { return m_SceneTexture; }
|
||||||
GLuint SceneTextureLowRes() const { return m_SceneTextureLowRes; }
|
|
||||||
//Return the framebuffer used in the scene rendering stage.
|
|
||||||
FrameBuffer* FinalPassFrameBuffer() { return &m_FinalPassFrameBuffer; }
|
FrameBuffer* FinalPassFrameBuffer() { return &m_FinalPassFrameBuffer; }
|
||||||
FrameBuffer* FinalPassFrameBufferLowRes() { return &m_FinalPassFrameBufferLowRes; }
|
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void GenerateTexture(GLuint* texture, GLenum wrapping, GLenum filtering, glm::vec2 dimensions, GLint internalFormat, GLint format, GLenum type) const;
|
void GenerateTexture(GLuint* texture, GLenum wrapping, GLenum filtering, glm::vec2 dimensions, GLint internalFormat, GLint format, GLenum type) const;
|
||||||
void GenerateMipMapTexture(GLuint* texture, GLenum wrapping, glm::vec2 dimensions, GLint format, GLenum type, GLint numMipMaps) const;
|
void GenerateMipMapTexture(GLuint* texture, GLenum wrapping, glm::vec2 dimensions, GLint format, GLenum type, GLint numMipMaps) const;
|
||||||
|
|
||||||
void DrawModelRenderQueues(std::list<std::shared_ptr<RenderJob>>& jobs, RenderScene& scene);
|
|
||||||
void DrawShieldToStencilBuffer(std::list<std::shared_ptr<RenderJob>>& jobs, RenderScene& scene);
|
|
||||||
void DrawShieldedModelRenderQueue(std::list<std::shared_ptr<RenderJob>>& jobs, RenderScene& scene);
|
|
||||||
void DrawToDepthBuffer(std::list<std::shared_ptr<RenderJob>>& jobs, RenderScene& scene);
|
|
||||||
|
|
||||||
void BindExplosionUniforms(GLuint shaderHandle, std::shared_ptr<ExplosionEffectJob>& job, RenderScene& scene);
|
|
||||||
void BindModelUniforms(GLuint shaderHandle, std::shared_ptr<ModelJob>& job, RenderScene& scene);
|
|
||||||
|
|
||||||
void BindExplosionTextures(std::shared_ptr<ExplosionEffectJob>& job);
|
|
||||||
void BindModelTextures(std::shared_ptr<ModelJob>& job);
|
|
||||||
|
|
||||||
Texture* m_WhiteTexture;
|
Texture* m_WhiteTexture;
|
||||||
Texture* m_BlackTexture;
|
Texture* m_BlackTexture;
|
||||||
Texture* m_NeutralNormalTexture;
|
|
||||||
Texture* m_GreyTexture;
|
|
||||||
|
|
||||||
FrameBuffer m_FinalPassFrameBuffer;
|
FrameBuffer m_FinalPassFrameBuffer;
|
||||||
FrameBuffer m_FinalPassFrameBufferLowRes;
|
|
||||||
GLuint m_BloomTexture;
|
GLuint m_BloomTexture;
|
||||||
GLuint m_SceneTexture;
|
GLuint m_SceneTexture;
|
||||||
GLuint m_BloomTextureLowRes;
|
|
||||||
GLuint m_SceneTextureLowRes;
|
|
||||||
GLuint m_DepthBuffer;
|
GLuint m_DepthBuffer;
|
||||||
GLuint m_DepthBufferLowRes;
|
|
||||||
|
|
||||||
//maqke this component based i guess?
|
|
||||||
GLuint m_ShieldPixelRate = 16;
|
|
||||||
|
|
||||||
const IRenderer* m_Renderer;
|
const IRenderer* m_Renderer;
|
||||||
const LightCullingPass* m_LightCullingPass;
|
const LightCullingPass* m_LightCullingPass;
|
||||||
|
|
||||||
ShaderProgram* m_ForwardPlusProgram;
|
ShaderProgram* m_ForwardPlusProgram;
|
||||||
ShaderProgram* m_ExplosionEffectProgram;
|
|
||||||
ShaderProgram* m_ShieldToStencilProgram;
|
|
||||||
ShaderProgram* m_FillDepthBufferProgram;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -12,11 +12,4 @@ private:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class DrawStencilState : public RenderState
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
DrawStencilState(GLuint frameBuffer);
|
|
||||||
~DrawStencilState();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
#ifndef ExplosionEffectJob_h__
|
|
||||||
#define ExplosionEffectJob_h__
|
|
||||||
|
|
||||||
#include <cstdint>
|
|
||||||
|
|
||||||
#include "../Common.h"
|
|
||||||
#include "../GLM.h"
|
|
||||||
#include "../Core/ComponentWrapper.h"
|
|
||||||
#include "Texture.h"
|
|
||||||
#include "Model.h"
|
|
||||||
#include "RenderJob.h"
|
|
||||||
#include "../Core/ResourceManager.h"
|
|
||||||
#include "Camera.h"
|
|
||||||
#include "../Core/World.h"
|
|
||||||
|
|
||||||
struct ExplosionEffectJob : ModelJob
|
|
||||||
{
|
|
||||||
ExplosionEffectJob(ComponentWrapper explosionEffectComponent, ::Model* model, Camera* camera, glm::mat4 matrix, ::RawModel::MaterialGroup matGroup, ComponentWrapper modelComponent, ::World* world, glm::vec4 fillColor, float fillPercentage)
|
|
||||||
: ModelJob(model, camera, matrix, matGroup, modelComponent, world, fillColor, fillPercentage)
|
|
||||||
{
|
|
||||||
ExplosionOrigin = (glm::vec3)explosionEffectComponent["ExplosionOrigin"];
|
|
||||||
TimeSinceDeath = (double)explosionEffectComponent["TimeSinceDeath"];
|
|
||||||
ExplosionDuration = (double)explosionEffectComponent["ExplosionDuration"];
|
|
||||||
EndColor = (glm::vec4)explosionEffectComponent["EndColor"];
|
|
||||||
Randomness = (bool)explosionEffectComponent["Randomness"];
|
|
||||||
RandomnessScalar = (double)explosionEffectComponent["RandomnessScalar"];
|
|
||||||
Velocity = (glm::vec2)explosionEffectComponent["Velocity"];
|
|
||||||
ColorByDistance = (bool)explosionEffectComponent["ColorByDistance"];
|
|
||||||
ExponentialAccelaration = (bool)explosionEffectComponent["ExponentialAccelaration"];
|
|
||||||
};
|
|
||||||
|
|
||||||
glm::vec3 ExplosionOrigin;
|
|
||||||
double TimeSinceDeath = 0.f; //Seconds
|
|
||||||
double ExplosionDuration = 2.f;
|
|
||||||
//bool Gravity = true;
|
|
||||||
//double GravityForce = 1.f; // Speed
|
|
||||||
//double ObjectRadius = 2.f; // TODO: Change this for object radius when it's available
|
|
||||||
glm::vec4 EndColor;
|
|
||||||
bool Randomness = false;
|
|
||||||
|
|
||||||
float RandomnessScalar = 1.f;
|
|
||||||
glm::vec2 Velocity;
|
|
||||||
bool ColorByDistance = false;
|
|
||||||
//bool ReverseAnimation = false;
|
|
||||||
//bool Wireframe = false;
|
|
||||||
bool ExponentialAccelaration = false;
|
|
||||||
|
|
||||||
std::array<float, 50> RandomNumbers = {
|
|
||||||
0.3257552917701f,
|
|
||||||
0.07601508315467f,
|
|
||||||
0.57408909014151f,
|
|
||||||
0.0f,
|
|
||||||
0.8618231368539f,
|
|
||||||
0.074957156588769f,
|
|
||||||
0.39413607511396f,
|
|
||||||
0.54579346698979f,
|
|
||||||
0.83222648353885f,
|
|
||||||
0.83635707285086f,
|
|
||||||
0.34473986148124f,
|
|
||||||
0.98092448710507f,
|
|
||||||
0.46346380070944f,
|
|
||||||
0.7308761201477f,
|
|
||||||
0.70832470371776f,
|
|
||||||
0.28268750909841f,
|
|
||||||
0.26291620883295f,
|
|
||||||
0.07685032816457f,
|
|
||||||
0.30760929515008f,
|
|
||||||
0.2781575388639f ,
|
|
||||||
0.016950582161988f ,
|
|
||||||
0.25787915254844f ,
|
|
||||||
0.76293767279151f ,
|
|
||||||
0.67730279903733f ,
|
|
||||||
0.49042877018937f ,
|
|
||||||
0.13002237823327f ,
|
|
||||||
0.62803373841012f ,
|
|
||||||
0.94525353747665f ,
|
|
||||||
0.32893980076953f ,
|
|
||||||
0.95952951719962f ,
|
|
||||||
0.056386206790985f ,
|
|
||||||
0.012030893476694f ,
|
|
||||||
0.93090049220757f,
|
|
||||||
0.83579883064879f,
|
|
||||||
0.79733513938139f,
|
|
||||||
0.8796381046435f ,
|
|
||||||
0.94160434600972f ,
|
|
||||||
0.76901855588379f ,
|
|
||||||
0.50253688101775f ,
|
|
||||||
0.82457069578793f ,
|
|
||||||
0.80157403359263f ,
|
|
||||||
0.87291810189975f ,
|
|
||||||
0.64679548919517f ,
|
|
||||||
0.42664138899494f ,
|
|
||||||
0.77171308303797f ,
|
|
||||||
0.75567959237643f ,
|
|
||||||
0.45190826265696f ,
|
|
||||||
0.59844922628181f ,
|
|
||||||
0.56534937655802f ,
|
|
||||||
0.195656257307f};
|
|
||||||
|
|
||||||
void CalculateHash() override
|
|
||||||
{
|
|
||||||
Hash = 0;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -25,23 +25,21 @@ class IRenderer
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GLFWwindow* Window() const { return m_Window; }
|
GLFWwindow* Window() const { return m_Window; }
|
||||||
//Returns screen size including window border and header
|
|
||||||
Rectangle Resolution() const { return m_Resolution; }
|
Rectangle Resolution() const { return m_Resolution; }
|
||||||
virtual void SetResolution(const Rectangle& resolution) { m_Resolution = resolution; }
|
void SetResolution(const Rectangle& resolution) { m_Resolution = resolution; }
|
||||||
bool Fullscreen() { return m_Fullscreen; }
|
bool Fullscreen() { return m_Fullscreen; }
|
||||||
virtual void SetFullscreen(bool fullscreen) { m_Fullscreen = fullscreen; }
|
void SetFullscreen(bool fullscreen) { m_Fullscreen = fullscreen; }
|
||||||
bool VSYNC() const { return m_VSYNC; }
|
bool VSYNC() const { return m_VSYNC; }
|
||||||
virtual void SetVSYNC(bool vsync) { m_VSYNC = vsync; }
|
void SetVSYNC(bool vsync) { m_VSYNC = vsync; }
|
||||||
//Returns screen size excluding window border and header
|
|
||||||
Rectangle GetViewportSize() const { return m_ViewportSize; }
|
|
||||||
virtual void Initialize() = 0;
|
virtual void Initialize() = 0;
|
||||||
virtual void Update(double dt) = 0;
|
virtual void Update(double dt) = 0;
|
||||||
virtual void Draw(RenderFrame& rq) = 0;
|
virtual void Draw(RenderFrame& rq) = 0;
|
||||||
virtual PickData Pick(glm::vec2 screenCord) = 0;
|
virtual PickData Pick(glm::vec2 screenCord) = 0;
|
||||||
|
|
||||||
|
World* m_World; //Temp world, untill viktor merge.
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Rectangle m_Resolution = Rectangle::Rectangle(1280, 720);
|
Rectangle m_Resolution = Rectangle::Rectangle(1280, 720);
|
||||||
Rectangle m_ViewportSize = Rectangle::Rectangle(1280, 720);
|
|
||||||
bool m_Fullscreen = false;
|
bool m_Fullscreen = false;
|
||||||
bool m_VSYNC = false;
|
bool m_VSYNC = false;
|
||||||
int m_GLVersion[2];
|
int m_GLVersion[2];
|
||||||
|
|||||||
@@ -22,26 +22,10 @@ struct ModelJob : RenderJob
|
|||||||
{
|
{
|
||||||
Model = model;
|
Model = model;
|
||||||
TextureID = (matGroup.Texture) ? matGroup.Texture->ResourceID : 0;
|
TextureID = (matGroup.Texture) ? matGroup.Texture->ResourceID : 0;
|
||||||
if (modelComponent["DiffuseTexture"]) {
|
DiffuseTexture = matGroup.Texture.get();
|
||||||
DiffuseTexture = matGroup.Texture.get();
|
NormalTexture = matGroup.NormalMap.get();
|
||||||
} else {
|
SpecularTexture = matGroup.SpecularMap.get();
|
||||||
DiffuseTexture = nullptr;
|
IncandescenceTexture = matGroup.IncandescenceMap.get();
|
||||||
}
|
|
||||||
if (modelComponent["NormalMap"]) {
|
|
||||||
NormalTexture = matGroup.NormalMap.get();
|
|
||||||
} else {
|
|
||||||
NormalTexture = nullptr;
|
|
||||||
}
|
|
||||||
if (modelComponent["SpecularMap"]) {
|
|
||||||
SpecularTexture = matGroup.SpecularMap.get();
|
|
||||||
} else {
|
|
||||||
SpecularTexture = nullptr;
|
|
||||||
}
|
|
||||||
if (modelComponent["GlowMap"]) {
|
|
||||||
IncandescenceTexture = matGroup.IncandescenceMap.get();
|
|
||||||
} else {
|
|
||||||
IncandescenceTexture = nullptr;
|
|
||||||
}
|
|
||||||
DiffuseColor = matGroup.DiffuseColor;
|
DiffuseColor = matGroup.DiffuseColor;
|
||||||
SpecularColor = matGroup.SpecularColor;
|
SpecularColor = matGroup.SpecularColor;
|
||||||
IncandescenceColor = matGroup.IncandescenceColor;
|
IncandescenceColor = matGroup.IncandescenceColor;
|
||||||
@@ -55,6 +39,7 @@ struct ModelJob : RenderJob
|
|||||||
Depth = worldpos.z;
|
Depth = worldpos.z;
|
||||||
World = world;
|
World = world;
|
||||||
|
|
||||||
|
|
||||||
FillColor = fillColor;
|
FillColor = fillColor;
|
||||||
FillPercentage = fillPercentage;
|
FillPercentage = fillPercentage;
|
||||||
Skeleton = Model->m_RawModel->m_Skeleton;
|
Skeleton = Model->m_RawModel->m_Skeleton;
|
||||||
|
|||||||
@@ -75,21 +75,21 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
void ReadMeshFile(std::string filePath);
|
void ReadMeshFile(std::string filePath);
|
||||||
void ReadMeshFileHeader(std::size_t& offset, char* fileData);
|
void ReadMeshFileHeader(unsigned int& offset, char* fileData, unsigned int& fileByteSize);
|
||||||
void ReadMesh(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
|
void ReadMesh(unsigned int& offset, char* fileData, unsigned int& fileByteSize);
|
||||||
void ReadVertices(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
|
void ReadVertices(unsigned int& offset, char* fileData, unsigned int& fileByteSize);
|
||||||
void ReadIndices(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
|
void ReadIndices(unsigned int& offset, char* fileData, unsigned int& fileByteSize);
|
||||||
|
|
||||||
void ReadMaterialFile(std::string filePath);
|
void ReadMaterialFile(std::string filePath);
|
||||||
void ReadMaterials(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
|
void ReadMaterials(unsigned int &offset, char* fileData, unsigned int& fileByteSize);
|
||||||
void ReadMaterialSingle(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
|
void ReadMaterialSingle(unsigned int &offset, char* fileData, unsigned int& fileByteSize);
|
||||||
|
|
||||||
void ReadAnimationFile(std::string filePath);
|
void ReadAnimationFile(std::string filePath);
|
||||||
void ReadAnimationBindPoses(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
|
void ReadAnimationBindPoses(unsigned int &offset, char* fileData, unsigned int& fileByteSize);
|
||||||
void ReadAnimationJoint(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
|
void ReadAnimationJoint(unsigned int &offset, char* fileData, unsigned int& fileByteSize);
|
||||||
void ReadAnimationClips(std::size_t& offset, char* fileData, const unsigned int& fileByteSize, unsigned int numberOfClips);
|
void ReadAnimationClips(unsigned int &offset, char* fileData, unsigned int& fileByteSize, unsigned int numberOfClips);
|
||||||
void ReadAnimationClipSingle(std::size_t& offset, char* fileData, const unsigned int& fileByteSize, unsigned int clipIndex);
|
void ReadAnimationClipSingle(unsigned int &offset, char* fileData, unsigned int& fileByteSize, unsigned int clipIndex);
|
||||||
void ReadAnimationKeyFrame(std::size_t& offset, char* fileData, const unsigned int& fileByteSize, unsigned int numberOfJoints, Skeleton::Animation& animation);
|
void ReadAnimationKeyFrame(unsigned int &offset, char* fileData, unsigned int& fileByteSize, unsigned int numberOfJoints, Skeleton::Animation& animation);
|
||||||
|
|
||||||
//void CreateSkeleton(std::vector<std::tuple<std::string, glm::mat4>> &boneInfo, std::map<std::string, int> &boneNameMapping, aiNode* node, int parentID);
|
//void CreateSkeleton(std::vector<std::tuple<std::string, glm::mat4>> &boneInfo, std::map<std::string, int> &boneNameMapping, aiNode* node, int parentID);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -14,44 +14,29 @@
|
|||||||
#include "TextJob.h"
|
#include "TextJob.h"
|
||||||
#include "PointLightJob.h"
|
#include "PointLightJob.h"
|
||||||
#include "DirectionalLightJob.h"
|
#include "DirectionalLightJob.h"
|
||||||
#include "ExplosionEffectJob.h"
|
|
||||||
|
|
||||||
struct RenderScene
|
struct RenderScene
|
||||||
{
|
{
|
||||||
::Camera* Camera = nullptr;
|
::Camera* Camera = nullptr;
|
||||||
struct Queues {
|
std::list<std::shared_ptr<RenderJob>> ForwardJobs;
|
||||||
std::list<std::shared_ptr<RenderJob>> OpaqueObjects;
|
std::list<std::shared_ptr<RenderJob>> PointLightJobs;
|
||||||
std::list<std::shared_ptr<RenderJob>> TransparentObjects;
|
std::list<std::shared_ptr<RenderJob>> TextJobs;
|
||||||
std::list<std::shared_ptr<RenderJob>> OpaqueShieldedObjects;
|
std::list<std::shared_ptr<RenderJob>> DirectionalLightJobs;
|
||||||
std::list<std::shared_ptr<RenderJob>> TransparentShieldedObjects;
|
|
||||||
std::list<std::shared_ptr<RenderJob>> ShieldObjects;
|
|
||||||
std::list<std::shared_ptr<RenderJob>> PointLight;
|
|
||||||
std::list<std::shared_ptr<RenderJob>> Text;
|
|
||||||
std::list<std::shared_ptr<RenderJob>> DirectionalLight;
|
|
||||||
} Jobs;
|
|
||||||
|
|
||||||
Rectangle Viewport;
|
Rectangle Viewport;
|
||||||
bool ClearDepth = false;
|
bool ClearDepth = false;
|
||||||
glm::vec4 AmbientColor;
|
|
||||||
|
|
||||||
void Clear()
|
void Clear()
|
||||||
{
|
{
|
||||||
Jobs.OpaqueObjects.clear();
|
ForwardJobs.clear();
|
||||||
Jobs.TransparentObjects.clear();
|
PointLightJobs.clear();
|
||||||
Jobs.OpaqueShieldedObjects.clear();
|
TextJobs.clear();
|
||||||
Jobs.TransparentShieldedObjects.clear();
|
DirectionalLightJobs.clear();
|
||||||
Jobs.ShieldObjects.clear();
|
|
||||||
Jobs.Text.clear();
|
|
||||||
Jobs.DirectionalLight.clear();
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct RenderFrame
|
struct RenderFrame
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
//TODO: Getters
|
|
||||||
GLfloat Gamma = 2.2f;
|
|
||||||
GLfloat Exposure = 1.f;
|
|
||||||
|
|
||||||
void Add(RenderScene &scene)
|
void Add(RenderScene &scene)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
#define RenderState_h__
|
#define RenderState_h__
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <boost/range/adaptor/reversed.hpp>
|
|
||||||
#include "../Common.h"
|
#include "../Common.h"
|
||||||
#include "../OpenGL.h"
|
#include "../OpenGL.h"
|
||||||
#include "../GLM.h"
|
#include "../GLM.h"
|
||||||
@@ -20,9 +19,6 @@ public:
|
|||||||
bool BindFramebuffer(GLint framebuffer);
|
bool BindFramebuffer(GLint framebuffer);
|
||||||
bool BlendEquation(GLenum mode);
|
bool BlendEquation(GLenum mode);
|
||||||
bool BlendFunc(GLenum sfactor, GLenum dfactor);
|
bool BlendFunc(GLenum sfactor, GLenum dfactor);
|
||||||
bool StencilOp(GLenum sfail, GLenum dpfail, GLenum dppass);
|
|
||||||
bool StencilFunc(GLenum func, GLint ref, GLuint mask);
|
|
||||||
bool StencilMask(GLuint mask);
|
|
||||||
bool DepthMask(GLboolean flag);
|
bool DepthMask(GLboolean flag);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -40,10 +40,10 @@ private:
|
|||||||
EventRelay<RenderSystem, Events::PlayerSpawned> m_EPlayerSpawned;
|
EventRelay<RenderSystem, Events::PlayerSpawned> m_EPlayerSpawned;
|
||||||
bool OnPlayerSpawned(Events::PlayerSpawned& e);
|
bool OnPlayerSpawned(Events::PlayerSpawned& e);
|
||||||
|
|
||||||
void fillModels(RenderScene::Queues &jobs);
|
|
||||||
void fillText(std::list<std::shared_ptr<RenderJob>>& jobs, World* world);
|
void fillText(std::list<std::shared_ptr<RenderJob>>& jobs, World* world);
|
||||||
void fillPointLights(std::list<std::shared_ptr<RenderJob>>& jobs, World* world);
|
void fillPointLights(std::list<std::shared_ptr<RenderJob>>& jobs, World* world);
|
||||||
void fillDirectionalLights(std::list<std::shared_ptr<RenderJob>>& jobs, World* world);
|
void fillDirectionalLights(std::list<std::shared_ptr<RenderJob>>& jobs, World* world);
|
||||||
|
void fillModels(std::list<std::shared_ptr<RenderJob>>& jobs);
|
||||||
void fillLight(std::list<std::shared_ptr<RenderJob>>& jobs);
|
void fillLight(std::list<std::shared_ptr<RenderJob>>& jobs);
|
||||||
bool isChildOfACamera(EntityWrapper entity);
|
bool isChildOfACamera(EntityWrapper entity);
|
||||||
bool isChildOfCurrentCamera(EntityWrapper entity);
|
bool isChildOfCurrentCamera(EntityWrapper entity);
|
||||||
|
|||||||
@@ -73,8 +73,6 @@ private:
|
|||||||
void GenerateTexture(GLuint* texture, GLenum wrapping, GLenum filtering, glm::vec2 dimensions, GLint internalFormat, GLint format, GLenum type);
|
void GenerateTexture(GLuint* texture, GLenum wrapping, GLenum filtering, glm::vec2 dimensions, GLint internalFormat, GLint format, GLenum type);
|
||||||
//--------------------ShaderPrograms-------------------//
|
//--------------------ShaderPrograms-------------------//
|
||||||
ShaderProgram* m_BasicForwardProgram;
|
ShaderProgram* m_BasicForwardProgram;
|
||||||
ShaderProgram* m_ExplosionEffectProgram;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -9,7 +9,7 @@ inline bool _GLERROR(const char* info, const char* file, const char* func, unsig
|
|||||||
GLenum error = glGetError();
|
GLenum error = glGetError();
|
||||||
if (error != GL_NO_ERROR)
|
if (error != GL_NO_ERROR)
|
||||||
{
|
{
|
||||||
_LOG(LOG_LEVEL_ERROR, file, func, line, "GL Error: %s\nError code: %i, %s\n", info, error, gluErrorString(error));
|
_LOG(LOG_LEVEL_ERROR, file, func, line, "GL Error: %s, %i, %s", info, error, gluErrorString(error));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
#include "Common.h"
|
|
||||||
#include "Core/System.h"
|
|
||||||
|
|
||||||
class ExplosionEffectSystem : public PureSystem
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ExplosionEffectSystem(World* world, EventBroker* eventBroker)
|
|
||||||
: System(world, eventBroker)
|
|
||||||
, PureSystem("ExplosionEffect")
|
|
||||||
{ }
|
|
||||||
|
|
||||||
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override
|
|
||||||
{
|
|
||||||
|
|
||||||
if ((double)component["TimeSinceDeath"] > (double)component["ExplosionDuration"]) {
|
|
||||||
(double)component["TimeSinceDeath"] = 0.f;
|
|
||||||
}
|
|
||||||
(double&)component["TimeSinceDeath"] += dt;
|
|
||||||
|
|
||||||
//if ((bool)Component["Gravity"] == true) {
|
|
||||||
// (bool)Component["ExponentialAccelaration"] = false;
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
+2
-5
@@ -14,7 +14,6 @@
|
|||||||
#include "Core/EKeyDown.h"
|
#include "Core/EKeyDown.h"
|
||||||
#include "Core/EntityFilePreprocessor.h"
|
#include "Core/EntityFilePreprocessor.h"
|
||||||
#include "Core/SystemPipeline.h"
|
#include "Core/SystemPipeline.h"
|
||||||
#include "ExplosionEffectSystem.h"
|
|
||||||
#include "Editor/EditorSystem.h"
|
#include "Editor/EditorSystem.h"
|
||||||
#include "Core/EntityFile.h"
|
#include "Core/EntityFile.h"
|
||||||
#include "Rendering/RenderSystem.h"
|
#include "Rendering/RenderSystem.h"
|
||||||
@@ -22,7 +21,6 @@
|
|||||||
#include "Core/Octree.h"
|
#include "Core/Octree.h"
|
||||||
#include "Rendering/Font.h"
|
#include "Rendering/Font.h"
|
||||||
#include "Systems/InterpolationSystem.h"
|
#include "Systems/InterpolationSystem.h"
|
||||||
#include "Collision/EntityAABB.h"
|
|
||||||
// Network
|
// Network
|
||||||
#include <boost/thread.hpp>
|
#include <boost/thread.hpp>
|
||||||
#include "Network/Network.h"
|
#include "Network/Network.h"
|
||||||
@@ -50,9 +48,8 @@ private:
|
|||||||
InputProxy* m_InputProxy;
|
InputProxy* m_InputProxy;
|
||||||
GUI::Frame* m_FrameStack;
|
GUI::Frame* m_FrameStack;
|
||||||
World* m_World;
|
World* m_World;
|
||||||
Octree<EntityAABB>* m_OctreeCollision;
|
Octree<AABB>* m_OctreeCollision;
|
||||||
Octree<EntityAABB>* m_OctreeTrigger;
|
Octree<AABB>* m_OctreeFrustrumCulling;
|
||||||
Octree<EntityAABB>* m_OctreeFrustrumCulling;
|
|
||||||
SystemPipeline* m_SystemPipeline;
|
SystemPipeline* m_SystemPipeline;
|
||||||
RenderFrame* m_RenderFrame;
|
RenderFrame* m_RenderFrame;
|
||||||
// Network variables
|
// Network variables
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ private:
|
|||||||
int m_BlueTeamHomeCapturePoint = m_NotACapturePoint;
|
int m_BlueTeamHomeCapturePoint = m_NotACapturePoint;
|
||||||
|
|
||||||
int m_NumberOfCapturePoints = 0;
|
int m_NumberOfCapturePoints = 0;
|
||||||
std::map<int, EntityWrapper> m_CapturePointNumberToEntityMap;
|
std::map<int, EntityID> m_CapturePointNumberToEntityIDMap;
|
||||||
|
|
||||||
//std::vector<ComponentWrapper>
|
//std::vector<ComponentWrapper>
|
||||||
|
|
||||||
@@ -48,8 +48,8 @@ private:
|
|||||||
bool m_ResetTimers = false;
|
bool m_ResetTimers = false;
|
||||||
|
|
||||||
//vectors which will keep track of enter/leave changes
|
//vectors which will keep track of enter/leave changes
|
||||||
std::vector<std::tuple<EntityWrapper, EntityWrapper>> m_ETriggerTouchVector;
|
std::vector<std::tuple<EntityID, EntityID>> m_ETriggerTouchVector;
|
||||||
std::vector<std::tuple<EntityWrapper, EntityWrapper>> m_ETriggerLeaveVector;
|
std::vector<std::tuple<EntityID, EntityID>> m_ETriggerLeaveVector;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
class HealthSystem : public PureSystem
|
class HealthSystem : public PureSystem
|
||||||
{
|
{
|
||||||
@@ -27,7 +26,7 @@ private:
|
|||||||
EventRelay<HealthSystem, Events::PlayerDamage> m_EPlayerDamage;
|
EventRelay<HealthSystem, Events::PlayerDamage> m_EPlayerDamage;
|
||||||
bool HealthSystem::OnPlayerDamaged(Events::PlayerDamage& e);
|
bool HealthSystem::OnPlayerDamaged(Events::PlayerDamage& e);
|
||||||
EventRelay<HealthSystem, Events::PlayerHealthPickup> m_EPlayerHealthPickup;
|
EventRelay<HealthSystem, Events::PlayerHealthPickup> m_EPlayerHealthPickup;
|
||||||
bool HealthSystem::OnPlayerHealthPickup(Events::PlayerHealthPickup& e);
|
bool HealthSystem::OnPlayerHealthPickup(const Events::PlayerHealthPickup& e);
|
||||||
|
|
||||||
//vector which will keep track of health changes
|
//vector which will keep track of health changes
|
||||||
std::vector<std::tuple<EntityID, double>> m_DeltaHealthVector;
|
std::vector<std::tuple<EntityID, double>> m_DeltaHealthVector;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class InterpolationSystem : public PureSystem
|
|||||||
glm::vec3 Position;
|
glm::vec3 Position;
|
||||||
glm::vec3 Scale;
|
glm::vec3 Scale;
|
||||||
glm::quat Orientation;
|
glm::quat Orientation;
|
||||||
float interpolationTime;
|
double interpolationTime;
|
||||||
};
|
};
|
||||||
public:
|
public:
|
||||||
InterpolationSystem(World* world, EventBroker* eventBroker);
|
InterpolationSystem(World* world, EventBroker* eventBroker);
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
#ifndef PickupSpawnSystem_h__
|
|
||||||
#define PickupSpawnSystem_h__
|
|
||||||
|
|
||||||
#include "Core/System.h"
|
|
||||||
#include "Core/Transform.h"
|
|
||||||
#include "Core/ResourceManager.h"
|
|
||||||
#include "Core/EntityFileParser.h"
|
|
||||||
#include "Core/EPickupSpawned.h"
|
|
||||||
#include "Core/EPlayerHealthPickup.h"
|
|
||||||
#include "Engine/Collision/ETrigger.h"
|
|
||||||
#include "Common.h"
|
|
||||||
#include <tuple>
|
|
||||||
|
|
||||||
class PickupSpawnSystem : public ImpureSystem
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
PickupSpawnSystem(World* world, EventBroker* eventBroker);
|
|
||||||
|
|
||||||
virtual void Update(double dt) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
EventRelay<PickupSpawnSystem, Events::TriggerTouch> m_ETriggerTouch;
|
|
||||||
bool OnTriggerTouch(Events::TriggerTouch& e);
|
|
||||||
|
|
||||||
struct NewHealthPickup {
|
|
||||||
glm::vec3 Pos;
|
|
||||||
double HealthGain;
|
|
||||||
double RespawnTimer;
|
|
||||||
double DecreaseThisRespawnTimer;
|
|
||||||
};
|
|
||||||
std::vector<NewHealthPickup> m_ETriggerTouchVector;
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
#ifndef PlayerDeathSystem_h__
|
|
||||||
#define PlayerDeathSystem_h__
|
|
||||||
|
|
||||||
#include "Core/System.h"
|
|
||||||
#include "Input/EInputCommand.h"
|
|
||||||
#include "GLM.h"
|
|
||||||
#include "Rendering/ESetCamera.h"
|
|
||||||
#include "Core/ConfigFile.h"
|
|
||||||
|
|
||||||
#include "Core/EntityFile.h"
|
|
||||||
#include "Core/EntityFileParser.h"
|
|
||||||
|
|
||||||
#include "Core/EPlayerDeath.h"
|
|
||||||
|
|
||||||
class PlayerDeathSystem : public ImpureSystem
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
PlayerDeathSystem(World* world, EventBroker* eventBroker);
|
|
||||||
|
|
||||||
virtual void Update(double dt) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
EventRelay<PlayerDeathSystem, Events::PlayerDeath> m_OnPlayerDeath;
|
|
||||||
bool OnPlayerDeath(Events::PlayerDeath& e);
|
|
||||||
|
|
||||||
void createDeathEffect(EntityWrapper player);
|
|
||||||
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
@@ -20,5 +20,4 @@ private:
|
|||||||
|
|
||||||
EventRelay<PlayerMovementSystem, Events::PlayerSpawned> m_EPlayerSpawned;
|
EventRelay<PlayerMovementSystem, Events::PlayerSpawned> m_EPlayerSpawned;
|
||||||
bool OnPlayerSpawned(Events::PlayerSpawned& e);
|
bool OnPlayerSpawned(Events::PlayerSpawned& e);
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -3,7 +3,6 @@
|
|||||||
#include "Systems/SpawnerSystem.h"
|
#include "Systems/SpawnerSystem.h"
|
||||||
#include "Events/ESpawnerSpawn.h"
|
#include "Events/ESpawnerSpawn.h"
|
||||||
#include "Core/EPlayerSpawned.h"
|
#include "Core/EPlayerSpawned.h"
|
||||||
#include "Core/EPlayerDeath.h"
|
|
||||||
#include "Rendering/ESetCamera.h"
|
#include "Rendering/ESetCamera.h"
|
||||||
#include "Core/ConfigFile.h"
|
#include "Core/ConfigFile.h"
|
||||||
|
|
||||||
|
|||||||
@@ -13,9 +13,12 @@ A=Right,-1
|
|||||||
R=Reload
|
R=Reload
|
||||||
Space=Jump
|
Space=Jump
|
||||||
LeftControl=Crouch
|
LeftControl=Crouch
|
||||||
RightShift=Sprint
|
LeftShift=Sprint
|
||||||
LeftShift=SpecialAbility
|
|
||||||
F1=ToggleEditor
|
F1=ToggleEditor
|
||||||
|
1=EditorToolMove
|
||||||
|
2=EditorToolRotate
|
||||||
|
3=EditorToolScale
|
||||||
|
X=EditorToggleTransformSpace
|
||||||
C=ConnectToServer
|
C=ConnectToServer
|
||||||
N=SwitchToServer
|
N=SwitchToServer
|
||||||
M=SwitchToClient
|
M=SwitchToClient
|
||||||
|
|||||||
@@ -11,9 +11,7 @@
|
|||||||
<xs:include schemaLocation="Components/AABB.xsd"/>
|
<xs:include schemaLocation="Components/AABB.xsd"/>
|
||||||
<xs:include schemaLocation="Components/PointLight.xsd"/>
|
<xs:include schemaLocation="Components/PointLight.xsd"/>
|
||||||
<xs:include schemaLocation="Components/DirectionalLight.xsd"/>
|
<xs:include schemaLocation="Components/DirectionalLight.xsd"/>
|
||||||
<xs:include schemaLocation="Components/SceneLight.xsd"/>
|
|
||||||
<xs:include schemaLocation="Components/Trigger.xsd"/>
|
<xs:include schemaLocation="Components/Trigger.xsd"/>
|
||||||
<xs:include schemaLocation="Components/ExplosionEffect.xsd"/>
|
|
||||||
<xs:include schemaLocation="Components/Health.xsd"/>
|
<xs:include schemaLocation="Components/Health.xsd"/>
|
||||||
<xs:include schemaLocation="Components/CapturePoint.xsd"/>
|
<xs:include schemaLocation="Components/CapturePoint.xsd"/>
|
||||||
<xs:include schemaLocation="Components/Listener.xsd"/>
|
<xs:include schemaLocation="Components/Listener.xsd"/>
|
||||||
@@ -29,9 +27,4 @@
|
|||||||
<xs:include schemaLocation="Components/Animation.xsd"/>
|
<xs:include schemaLocation="Components/Animation.xsd"/>
|
||||||
<xs:include schemaLocation="Components/Fill.xsd"/>
|
<xs:include schemaLocation="Components/Fill.xsd"/>
|
||||||
<xs:include schemaLocation="Components/Lifetime.xsd"/>
|
<xs:include schemaLocation="Components/Lifetime.xsd"/>
|
||||||
<xs:include schemaLocation="Components/HiddenForLocalPlayer.xsd"/>
|
|
||||||
<xs:include schemaLocation="Components/HealthPickup.xsd"/>
|
|
||||||
<xs:include schemaLocation="Components/DashAbility.xsd"/>
|
|
||||||
<xs:include schemaLocation="Components/Shield.xsd"/>
|
|
||||||
<xs:include schemaLocation="Components/Shielded.xsd"/>
|
|
||||||
</xs:schema>
|
</xs:schema>
|
||||||
@@ -7,10 +7,10 @@
|
|||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:all>
|
<xs:all>
|
||||||
<xs:element name="Origin" type="t:Vector" minOccurs="0">
|
<xs:element name="Origin" type="t:Vector" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>Middle point of the bounding box, in model space</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>Middle point of the bounding box</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="Size" type="t:Vector" minOccurs="0">
|
<xs:element name="Size" type="t:Vector" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>Size of the bounding box, in model space</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>Size of the bounding box</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
<Animation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Animation.xsd">
|
<Animation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Animation.xsd">
|
||||||
<Name></Name>
|
|
||||||
<Time>0</Time>
|
<Time>0</Time>
|
||||||
<Speed>0</Speed>
|
<Speed>0</Speed>
|
||||||
<Loop>true</Loop>
|
<Loop>true</Loop>
|
||||||
|
|||||||
@@ -2,11 +2,22 @@
|
|||||||
|
|
||||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
|
||||||
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
|
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
|
||||||
<xs:include schemaLocation="../Types/TeamEnum.xsd"/>
|
|
||||||
|
<xs:complexType name="TeamEnum" mixed="true">
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="t:enum">
|
||||||
|
<xs:choice>
|
||||||
|
<xs:element name="Spectator" type="xs:integer" fixed="1" minOccurs="0"/>
|
||||||
|
<xs:element name="Red" type="xs:integer" fixed="2" minOccurs="0"/>
|
||||||
|
<xs:element name="Blue" type="xs:integer" fixed="3" minOccurs="0"/>
|
||||||
|
</xs:choice>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
<xs:element name="CapturePoint">
|
<xs:element name="CapturePoint">
|
||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
<xs:documentation>A Capture Point. Make sure to update the HomePoint,CapturePointNumber,Team for each</xs:documentation>
|
<xs:documentation>A Capture Point. Add a Team Component to specify who currently owns it</xs:documentation>
|
||||||
</xs:annotation>
|
</xs:annotation>
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:all>
|
<xs:all>
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<DashAbility xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="DashAbility.xsd">
|
|
||||||
<CoolDownMaxTimer>2.0</CoolDownMaxTimer>
|
|
||||||
</DashAbility>
|
|
||||||
@@ -1,18 +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="DashAbility">
|
|
||||||
<xs:annotation>
|
|
||||||
<xs:documentation>A dash component for one of the classes</xs:documentation>
|
|
||||||
</xs:annotation>
|
|
||||||
<xs:complexType>
|
|
||||||
<xs:all>
|
|
||||||
<xs:element name="CoolDownMaxTimer" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>This is the cooldown on dash</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
</xs:all>
|
|
||||||
</xs:complexType>
|
|
||||||
</xs:element>
|
|
||||||
</xs:schema>
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<ExplosionEffect xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ExplosionEffect.xsd">
|
|
||||||
<ExplosionOrigin X="0" Y="0" Z="0"/>
|
|
||||||
<TimeSinceDeath>0</TimeSinceDeath>
|
|
||||||
<ExplosionDuration>2</ExplosionDuration>
|
|
||||||
<!--<Gravity>1</Gravity>-->
|
|
||||||
<!--<GravityForce>1</GravityForce>-->
|
|
||||||
<!--<ObjectRadius>2</ObjectRadius>-->
|
|
||||||
<EndColor R="0" G="0" B="0" A="0"/>
|
|
||||||
<Randomness>0</Randomness>
|
|
||||||
<RandomnessScalar>1</RandomnessScalar>
|
|
||||||
<Velocity X="2" Y="2"/>
|
|
||||||
<ColorByDistance>0</ColorByDistance>
|
|
||||||
<!--<ReverseAnimation>0</ReverseAnimation>-->
|
|
||||||
<!--<Wireframe>0</Wireframe>-->
|
|
||||||
<ExponentialAccelaration>0</ExponentialAccelaration>
|
|
||||||
</ExplosionEffect>
|
|
||||||
@@ -1,57 +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="ExplosionEffect">
|
|
||||||
<xs:annotation>
|
|
||||||
<xs:documentation>A component that trigger the death effect</xs:documentation>
|
|
||||||
</xs:annotation>
|
|
||||||
<xs:complexType>
|
|
||||||
<xs:all>
|
|
||||||
<xs:element name="ExplosionOrigin" type="t:Vector" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>The position in which to spawn the component</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="TimeSinceDeath" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Seconds since death</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="ExplosionDuration" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>How many seconds the death animation should be</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<!--<xs:element name="Gravity" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Enable/disable gravity</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>-->
|
|
||||||
<!--<xs:element name="GravityForce" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>The force of the gravity</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>-->
|
|
||||||
<!--<xs:element name="ObjectRadius" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Object radius (TO BE REMOVED AND AUTOMATED)</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>-->
|
|
||||||
<xs:element name="EndColor" type="t:Color" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>The tint the polys end with</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="Randomness" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Add some randomness to the explosion</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="RandomnessScalar" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Alter the power of the randomness</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="Velocity" type="t:Vector" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>The velocity factors (start/end)</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="ColorByDistance" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Change the color by its moved distance instead of by its time</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<!--<xs:element name="ReverseAnimation" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Implosions are cooler</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>-->
|
|
||||||
<!--<xs:element name="Wireframe" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Enable/disable wireframe</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>-->
|
|
||||||
<xs:element name="ExponentialAccelaration" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Linear/Exponential accelaration</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
</xs:all>
|
|
||||||
</xs:complexType>
|
|
||||||
</xs:element>
|
|
||||||
</xs:schema>
|
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
<HealthHUD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="HealthHUD.xsd"/>
|
<Listener xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Listener.xsd"/>
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<HealthPickup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="HealthPickup.xsd">
|
|
||||||
<RespawnTimer>3</RespawnTimer>
|
|
||||||
<HealthGain>30</HealthGain>
|
|
||||||
</HealthPickup>
|
|
||||||
@@ -1,21 +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="HealthPickup">
|
|
||||||
<xs:annotation>
|
|
||||||
<xs:documentation>A Health Pickup</xs:documentation>
|
|
||||||
</xs:annotation>
|
|
||||||
<xs:complexType>
|
|
||||||
<xs:all>
|
|
||||||
<xs:element name="RespawnTimer" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>The respawn timer for a health pickup</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="HealthGain" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>How much percent max-health the player will get when he picks the healthPickup up</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
</xs:all>
|
|
||||||
</xs:complexType>
|
|
||||||
</xs:element>
|
|
||||||
</xs:schema>
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<HiddenForLocalPlayer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="HiddenForLocalPlayer.xsd"/>
|
|
||||||
@@ -1,11 +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="HiddenForLocalPlayer">
|
|
||||||
<xs:annotation>
|
|
||||||
<xs:documentation>Used to make the entity invisible if it's parented to the current local player entity (for first person player model and such)</xs:documentation>
|
|
||||||
</xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
</xs:schema>
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||||
<Lifetime xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Lifetime.xsd">
|
<Lifetime xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Animation.xsd">
|
||||||
<Lifetime>0</Lifetime>
|
<Lifetime>0</Lifetime>
|
||||||
</Lifetime>
|
</Animation>
|
||||||
@@ -2,10 +2,5 @@
|
|||||||
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Model.xsd">
|
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Model.xsd">
|
||||||
<Resource></Resource>
|
<Resource></Resource>
|
||||||
<Color R="1" G="1" B="1" A="1"/>
|
<Color R="1" G="1" B="1" A="1"/>
|
||||||
<Transparent>false</Transparent>
|
|
||||||
<Visible>true</Visible>
|
<Visible>true</Visible>
|
||||||
<DiffuseTexture>true</DiffuseTexture>
|
|
||||||
<NormalMap>true</NormalMap>
|
|
||||||
<SpecularMap>true</SpecularMap>
|
|
||||||
<GlowMap>true</GlowMap>
|
|
||||||
</Model>
|
</Model>
|
||||||
@@ -15,23 +15,8 @@
|
|||||||
<xs:element name="Color" type="t:Color" minOccurs="0">
|
<xs:element name="Color" type="t:Color" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>Color tint</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>Color tint</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="Transparent" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Wether the model is transparent or not</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="Visible" type="t:bool" minOccurs="0">
|
<xs:element name="Visible" type="t:bool" minOccurs="0">
|
||||||
<xs:annotation><xs:documentation>Whether the model is visible or not</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>Wether the model is visible or not</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
|
||||||
<xs:element name="DiffuseTexture" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Whether the model should use the Diffuse texture or not</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="NormalMap" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Whether the model should use the Normalmap or not</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="SpecularMap" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Whether the model should use the Specularmap or not</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="GlowMap" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Whether the model should use the Glowmap or not</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
</xs:element>
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|||||||
@@ -2,6 +2,4 @@
|
|||||||
<Physics xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Physics.xsd">
|
<Physics xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Physics.xsd">
|
||||||
<Velocity X="0" Y="0" Z="0"/>
|
<Velocity X="0" Y="0" Z="0"/>
|
||||||
<Gravity>true</Gravity>
|
<Gravity>true</Gravity>
|
||||||
<IsOnGround>false</IsOnGround>
|
|
||||||
<VerticalStepHeight>0.33</VerticalStepHeight>
|
|
||||||
</Physics>
|
</Physics>
|
||||||
|
|||||||
@@ -13,10 +13,6 @@
|
|||||||
<xs:annotation><xs:documentation>m/s^2</xs:documentation></xs:annotation>
|
<xs:annotation><xs:documentation>m/s^2</xs:documentation></xs:annotation>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
<xs:element name="Gravity" type="t:bool" minOccurs="0"/>
|
<xs:element name="Gravity" type="t:bool" minOccurs="0"/>
|
||||||
<xs:element name="IsOnGround" type="t:bool" minOccurs="0"/>
|
|
||||||
<xs:element name="VerticalStepHeight" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>The largest height of a "stair-step" that can be walked over</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
</xs:all>
|
</xs:all>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
</xs:element>
|
</xs:element>
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<SceneLight xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SceneLight.xsd">
|
|
||||||
<AmbientColor R="0.2" G="0.2" B="0.2" A="1"/>
|
|
||||||
<Visible>true</Visible>
|
|
||||||
<Gamma>2.2</Gamma>
|
|
||||||
<Exposure>1</Exposure>
|
|
||||||
</SceneLight>
|
|
||||||
@@ -1,25 +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="SceneLight">
|
|
||||||
<xs:annotation>
|
|
||||||
<xs:documentation>Some settings for the scene lighting</xs:documentation>
|
|
||||||
</xs:annotation>
|
|
||||||
<xs:complexType>
|
|
||||||
<xs:all>
|
|
||||||
<xs:element name="AmbientColor" type="t:Color" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Color of the ambient light</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="Visible" type="t:bool" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Wether the ambient light should be applied or not</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="Gamma" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>Gamma correction for the scene</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
<xs:element name="Exposure" type="t:double" minOccurs="0">
|
|
||||||
<xs:annotation><xs:documentation>The exposure of the camera</xs:documentation></xs:annotation>
|
|
||||||
</xs:element>
|
|
||||||
</xs:all>
|
|
||||||
</xs:complexType>
|
|
||||||
</xs:element>
|
|
||||||
</xs:schema>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<Shield xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Shield.xsd">
|
|
||||||
</Shield>
|
|
||||||
@@ -1,7 +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="Shield">
|
|
||||||
</xs:element>
|
|
||||||
</xs:schema>
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<Shielded xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Shielded.xsd">
|
|
||||||
</Shielded>
|
|
||||||
@@ -1,7 +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="Shielded">
|
|
||||||
</xs:element>
|
|
||||||
</xs:schema>
|
|
||||||
@@ -2,7 +2,18 @@
|
|||||||
|
|
||||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
|
||||||
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
|
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
|
||||||
<xs:include schemaLocation="../Types/TeamEnum.xsd"/>
|
|
||||||
|
<xs:complexType name="TeamEnum" mixed="true">
|
||||||
|
<xs:complexContent>
|
||||||
|
<xs:extension base="t:enum">
|
||||||
|
<xs:choice>
|
||||||
|
<xs:element name="Spectator" type="xs:integer" fixed="1" minOccurs="0"/>
|
||||||
|
<xs:element name="Red" type="xs:integer" fixed="2" minOccurs="0"/>
|
||||||
|
<xs:element name="Blue" type="xs:integer" fixed="3" minOccurs="0"/>
|
||||||
|
</xs:choice>
|
||||||
|
</xs:extension>
|
||||||
|
</xs:complexContent>
|
||||||
|
</xs:complexType>
|
||||||
|
|
||||||
<xs:element name="Team">
|
<xs:element name="Team">
|
||||||
<xs:annotation>
|
<xs:annotation>
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<Entity name="AssetBase" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
|
||||||
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCylinder.mesh</Resource>
|
|
||||||
<Color A="1" B="1.56862748" G="1.56862748" R="1.56862748"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="-0.231354833" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
|
|
||||||
<Children>
|
|
||||||
<Entity name="Light">
|
|
||||||
<Components>
|
|
||||||
<c:PointLight/>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.663784981" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="RotationOrigin">
|
|
||||||
<Components>
|
|
||||||
<c:RaptorCopter>
|
|
||||||
<Speed>0.5</Speed>
|
|
||||||
<Axis X="0" Y="1" Z="0"/>
|
|
||||||
</c:RaptorCopter>
|
|
||||||
<c:Transform>
|
|
||||||
<Orientation X="0" Y="28.7916641" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="Asset">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/AssaultWeaponBlue.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="1" Z="0"/>
|
|
||||||
<Orientation X="0.524000049" Y="0" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
|
|
||||||
</Entity>
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
<?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:AABB/>
|
|
||||||
<c:CapturePoint/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Team/>
|
|
||||||
<c:Transform/>
|
|
||||||
<c:Trigger/>
|
|
||||||
</Components>
|
|
||||||
|
|
||||||
<Children/>
|
|
||||||
|
|
||||||
</Entity>
|
|
||||||
@@ -1,173 +0,0 @@
|
|||||||
<?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>
|
|
||||||
<Position X="0.340887427" Y="0" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
|
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:CapturePoint>
|
|
||||||
<HomePointForTeam>
|
|
||||||
<Red/>
|
|
||||||
</HomePointForTeam>
|
|
||||||
</c:CapturePoint>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>C:\Users\123456\Workspace\TacticalZ\assets\Models\Core\UnitSphere.mesh</Resource>
|
|
||||||
<Color A="1" B="0" G="0.200000003" R="1"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Red/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="6.60000038" Y="0" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
<c:Trigger/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:CapturePoint>
|
|
||||||
<CapturePointNumber>1</CapturePointNumber>
|
|
||||||
</c:CapturePoint>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>C:\Users\123456\Workspace\TacticalZ\assets\Models\Core\UnitSphere.mesh</Resource>
|
|
||||||
<Color A="1" B="1" G="1" R="0"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:Team/>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="4.46673203" Y="0" Z="3.50259304"/>
|
|
||||||
</c:Transform>
|
|
||||||
<c:Trigger/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:CapturePoint>
|
|
||||||
<CapturePointNumber>2</CapturePointNumber>
|
|
||||||
</c:CapturePoint>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>C:\Users\123456\Workspace\TacticalZ\assets\Models\Core\UnitSphere.mesh</Resource>
|
|
||||||
<Color A="1" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Blue/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="3.00000024" Y="0" Z="0.113596022"/>
|
|
||||||
</c:Transform>
|
|
||||||
<c:Trigger/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:CapturePoint>
|
|
||||||
<CapturePointNumber>3</CapturePointNumber>
|
|
||||||
</c:CapturePoint>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>C:\Users\123456\Workspace\TacticalZ\assets\Models\Core\UnitSphere.mesh</Resource>
|
|
||||||
<Color A="1" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Blue/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="1.75382805" Y="0" Z="0.0895374417"/>
|
|
||||||
</c:Transform>
|
|
||||||
<c:Trigger/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:CapturePoint>
|
|
||||||
<HomePointForTeam>
|
|
||||||
<Blue/>
|
|
||||||
</HomePointForTeam>
|
|
||||||
<CapturePointNumber>4</CapturePointNumber>
|
|
||||||
</c:CapturePoint>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>C:\Users\123456\Workspace\TacticalZ\assets\Models\Core\UnitSphere.mesh</Resource>
|
|
||||||
<Color A="1" B="1" G="0.200000003" R="0"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Blue/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.56674248" Y="0" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
<c:Trigger/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Health/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>C:\Users\123456\Workspace\TacticalZ\assets\Models\Core\UnitCube.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Player/>
|
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Blue/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="4.29100037" Y="-0.08556436" Z="1.29717529"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Health/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>C:\Users\123456\Workspace\TacticalZ\assets\Models\Core\UnitCube.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Player/>
|
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Red/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="5.43557501" Y="0.888866663" Z="1.55849135"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>C:\Users\123456\Workspace\TacticalZ\assets\Models\DummyScene.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-0.600000024" Y="0" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
|
|
||||||
</Entity>
|
|
||||||
@@ -1,164 +0,0 @@
|
|||||||
<?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>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>../assets/Models/Test/ObstacleCourse.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="0.00638055196"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:DirectionalLight>
|
|
||||||
<Intensity>0.46000027656555176</Intensity>
|
|
||||||
</c:DirectionalLight>
|
|
||||||
<c:Transform>
|
|
||||||
<Orientation X="0" Y="2.59000015" Z="0.799000025"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-1.52309108" Y="5.72108126" Z="0"/>
|
|
||||||
<Scale X="5" Y="5" Z="5"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="BluSpawn">
|
|
||||||
<Components>
|
|
||||||
<c:PlayerSpawn/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
|
||||||
<Visible>false</Visible>
|
|
||||||
</c:Model>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Blue/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="1" Y="1.60000002" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:SpawnPoint/>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:SpawnPoint/>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-2.05988312" Y="0" Z="2.79573512"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="1.85022807" Y="0" Z="-2.08909845"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="2.98651481" Y="0" Z="-4.67667246"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-5.16323137" Y="0" Z="3.62892342"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="RedSpawn">
|
|
||||||
<Components>
|
|
||||||
<c:PlayerSpawn/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
|
||||||
<Visible>false</Visible>
|
|
||||||
</c:Model>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Red/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-1.20000005" Y="1.60000002" Z="-8.40000057"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:SpawnPoint/>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="2.24403"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="2.20245028" Y="0" Z="-1.97843659"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="4.79769945" Y="0" Z="-5.2088728"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
|
|
||||||
</Entity>
|
|
||||||
@@ -1,67 +1,122 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
|
||||||
|
|
||||||
<Components>
|
<Entity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xi="http://www.w3.org/2001/XInclude" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd" xmlns:c="components">
|
||||||
<c:Transform/>
|
<Components>
|
||||||
</Components>
|
<c:Transform>
|
||||||
|
<Orientation X="0" Y="0" Z="0"/>
|
||||||
<Children>
|
</c:Transform>
|
||||||
<Entity>
|
<c:Model>
|
||||||
<Components>
|
<Resource>Models/DummyScene.mesh</Resource>
|
||||||
<c:AABB/>
|
</c:Model>
|
||||||
<c:Collidable/>
|
</Components>
|
||||||
<c:Model>
|
<Children>
|
||||||
<Resource>../assets/Models/Test/ObstacleCourse.mesh</Resource>
|
<Entity>
|
||||||
</c:Model>
|
<Components>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0" Y="0" Z="0.00638055196"/>
|
<Position X="-1.5"/>
|
||||||
</c:Transform>
|
<Scale X="1" Y="1" Z="1"/>
|
||||||
</Components>
|
</c:Transform>
|
||||||
<Children/>
|
<c:Model>
|
||||||
</Entity>
|
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
||||||
<Entity>
|
</c:Model>
|
||||||
<Components>
|
</Components>
|
||||||
<c:DirectionalLight>
|
</Entity>
|
||||||
<Intensity>0.46000027656555176</Intensity>
|
<Entity>
|
||||||
</c:DirectionalLight>
|
<Components>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Orientation X="0" Y="2.59000015" Z="0.799000025"/>
|
<Position X="1.5"/>
|
||||||
</c:Transform>
|
<Scale X="2" Y="2" Z="2"/>
|
||||||
</Components>
|
</c:Transform>
|
||||||
<Children/>
|
<c:Model>
|
||||||
</Entity>
|
<Resource>Models/RotationWidgetX.mesh</Resource>
|
||||||
<Entity>
|
</c:Model>
|
||||||
<Components>
|
<c:Trigger>
|
||||||
<c:AABB/>
|
</c:Trigger>
|
||||||
<c:Collidable/>
|
</Components>
|
||||||
<c:Model>
|
</Entity>
|
||||||
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
|
<Entity>
|
||||||
</c:Model>
|
<Components>
|
||||||
<c:Physics>
|
<c:Player>
|
||||||
<Gravity>false</Gravity>
|
<Velocity X="0" Y="0" Z="0"/>
|
||||||
</c:Physics>
|
</c:Player>
|
||||||
<c:Player/>
|
<c:Transform>
|
||||||
<c:Transform>
|
<Position X="2.5"/>
|
||||||
<Position X="-8.80904388" Y="1.82786822" Z="7.97052002"/>
|
</c:Transform>
|
||||||
<Scale X="0.100000001" Y="1" Z="0.100000001"/>
|
<c:Model>
|
||||||
</c:Transform>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
</Components>
|
</c:Model>
|
||||||
<Children/>
|
<c:AABB>
|
||||||
</Entity>
|
</c:AABB>
|
||||||
<Entity>
|
</Components>
|
||||||
<Components>
|
</Entity>
|
||||||
<c:AABB/>
|
<Entity>
|
||||||
<c:Collidable/>
|
<Components>
|
||||||
<c:Model>
|
<c:Transform>
|
||||||
<Resource>../assets/Models/Core/colorbox.mesh</Resource>
|
<Position X="0" Y="-0"/>
|
||||||
</c:Model>
|
<Scale X="1" Y="1" Z="1"/>
|
||||||
<c:Transform>
|
</c:Transform>
|
||||||
<Position X="-1.52309108" Y="5.72108126" Z="0"/>
|
<!--<c:Move>
|
||||||
<Scale X="5" Y="5" Z="5"/>
|
<Speed>1</Speed>
|
||||||
</c:Transform>
|
<Direction X="-1"/>
|
||||||
</Components>
|
<Rotation Y="3.14"/>
|
||||||
<Children/>
|
</c:Move>-->
|
||||||
</Entity>
|
</Components>
|
||||||
</Children>
|
<Children>
|
||||||
|
<Entity>
|
||||||
</Entity>
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0"/>
|
||||||
|
<Orientation X="0.0" Y="0" Z="1.0"/>
|
||||||
|
</c:Transform>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Core/UnitRaptor.mesh</Resource>
|
||||||
|
<Color R="1" G="0.4" B="0.8"/>
|
||||||
|
</c:Model>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="-0.01" Y="0.55"/>
|
||||||
|
<Orientation X="0" Y="0" Z="-1"/>
|
||||||
|
</c:Transform>
|
||||||
|
<c:RaptorCopter>
|
||||||
|
<Speed>20</Speed>
|
||||||
|
<Axis Y="1"/>
|
||||||
|
</c:RaptorCopter>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0"/>
|
||||||
|
<Scale X="1.7" Y="0.03" Z="0.1"/>
|
||||||
|
<Orientation X="0" Y="0" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
|
<Color R="1" G="0.4" B="0.8"/>
|
||||||
|
</c:Model>
|
||||||
|
</Components>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0" Y="0"/>
|
||||||
|
<Scale X="1.7" Y="0.03" Z="0.1"/>
|
||||||
|
<Orientation X="0" Y="1.57" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
|
<Color R="1" G="0.4" B="0.8"/>
|
||||||
|
</c:Model>
|
||||||
|
</Components>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
@@ -2,13 +2,11 @@
|
|||||||
<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:Transform>
|
<c:Transform/>
|
||||||
<Position X="0" Y="-1" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="Ground">
|
<Entity>
|
||||||
<Components>
|
<Components>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
@@ -20,320 +18,90 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="Listener">
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>An error</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="1" Y="1" Z="0"/>
|
||||||
|
<Orientation X="0" Y="0.785390019" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children>
|
||||||
|
<Entity>
|
||||||
|
<Components>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>An error</Resource>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="2" Y="0" Z="0"/>
|
||||||
|
<Orientation X="0" Y="0.785390019" Z="0"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
</Children>
|
||||||
|
</Entity>
|
||||||
|
<Entity>
|
||||||
<Components>
|
<Components>
|
||||||
<c:Camera/>
|
<c:Camera/>
|
||||||
<c:Listener/>
|
<c:Listener/>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="1.36896265" Y="4.10503054" Z="10.6640663"/>
|
<Position X="1.36896265" Y="4.4259491" Z="10.6640663"/>
|
||||||
<Orientation X="-0.0349078141" Y="0.157154545" Z="-2.60252193e-07"/>
|
<Orientation X="-0.0349078141" Y="0.157154545" Z="-2.60252193e-07"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="DirectionalLight">
|
<Entity>
|
||||||
<Components>
|
<Components>
|
||||||
<c:DirectionalLight>
|
<c:DirectionalLight/>
|
||||||
<Intensity>0.80000001192092896</Intensity>
|
|
||||||
</c:DirectionalLight>
|
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/DirectionalLightWidget.mesh</Resource>
|
<Resource>Models/DirectionalLightWidget.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:RaptorCopter>
|
|
||||||
<Speed>1</Speed>
|
|
||||||
<Axis X="0" Y="1" Z="0"/>
|
|
||||||
</c:RaptorCopter>
|
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="2.1529963" Y="6.59221172" Z="0.169116676"/>
|
<Position X="2.1529963" Y="6.59221172" Z="0.169116676"/>
|
||||||
<Orientation X="4.16300011" Y="7875.41211" Z="0"/>
|
<Orientation X="4.32000017" Y="4.6340003" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="AssaultTPose">
|
<Entity>
|
||||||
<Components>
|
<Components>
|
||||||
<c:ExplosionEffect>
|
|
||||||
<ColorByDistance>true</ColorByDistance>
|
|
||||||
<Velocity X="0" Y="0" Z="0.300000012"/>
|
|
||||||
<ExplosionOrigin X="0" Y="1.30000007" Z="0"/>
|
|
||||||
<TimeSinceDeath>5.0498686575577523</TimeSinceDeath>
|
|
||||||
<ExplosionDuration>5</ExplosionDuration>
|
|
||||||
<EndColor A="1" B="1" G="0" R="0"/>
|
|
||||||
<RandomnessScalar>3</RandomnessScalar>
|
|
||||||
</c:ExplosionEffect>
|
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Assault.mesh</Resource>
|
<Resource>Models/Assault.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-1.68900967" Y="0.527161121" Z="-1.59648728"/>
|
<Position X="-2.00568962" Y="0.527161121" Z="0"/>
|
||||||
<Orientation X="0" Y="1.64900005" Z="0"/>
|
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
<Entity name="SecondaryWeapon">
|
<Entity>
|
||||||
<Components>
|
<Components>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/AssaultWeaponRed.mesh</Resource>
|
<Resource>Models/SecondaryWeapon.fbx</Resource>
|
||||||
<Transparent>true</Transparent>
|
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-0.560000002" Y="0.754308224" Z="0.181485131"/>
|
<Position X="-0.546139359" Y="0.853016734" Z="0.177482292"/>
|
||||||
<Orientation X="0.989000022" Y="0" Z="6.10900021"/>
|
<Orientation X="1.47266471" Y="0.524984181" Z="1.243698"/>
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="SecondaryWeaponRed">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/DefenderGunRed.mesh</Resource>
|
|
||||||
<Transparent>true</Transparent>
|
|
||||||
<NormalMap>false</NormalMap>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.515922487" Y="0.787437975" Z="0.132855967"/>
|
|
||||||
<Orientation X="0.989000022" Y="0" Z="0"/>
|
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="AnimationGroupOrigin">
|
<Entity>
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="1.11190474" Y="0.490183681" Z="0"/>
|
|
||||||
<Orientation X="0" Y="1.02100003" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="RunAnim">
|
|
||||||
<Components>
|
|
||||||
<c:Animation>
|
|
||||||
<Name>Run</Name>
|
|
||||||
<Time>0.17818245776980568</Time>
|
|
||||||
<Speed>1</Speed>
|
|
||||||
</c:Animation>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>models/AssaultAnimated.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.786919653" Y="0" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="Walkanim">
|
|
||||||
<Components>
|
|
||||||
<c:Animation>
|
|
||||||
<Name>Walk</Name>
|
|
||||||
<Time>0.34546191187031372</Time>
|
|
||||||
<Speed>1</Speed>
|
|
||||||
</c:Animation>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>models/AssaultAnimated.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="UnitSphere">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
<Color A="0.294117659" B="19.6078434" G="1.17647064" R="0.0392156877"/>
|
|
||||||
<Transparent>true</Transparent>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0.754540265" Z="0"/>
|
|
||||||
<Scale X="0.800000012" Y="1.9000001" Z="1"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="Log">
|
|
||||||
<Components>
|
<Components>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Log.mesh</Resource>
|
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-4" Y="0.698000014" Z="-1"/>
|
<Position X="0" Y="3.70000029" Z="0"/>
|
||||||
<Orientation X="0" Y="2.74900007" Z="0"/>
|
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="SpheresOrigin">
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="6.80000019" Y="4.9000001" Z="-5.9000001"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="CombinedSpheres">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>models/NormSpecIncdMapSphere.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="RotationPoint">
|
|
||||||
<Components>
|
|
||||||
<c:RaptorCopter>
|
|
||||||
<Speed>1</Speed>
|
|
||||||
<Axis X="1" Y="1" Z="1"/>
|
|
||||||
</c:RaptorCopter>
|
|
||||||
<c:Transform>
|
|
||||||
<Orientation X="6484.80273" Y="6484.80273" Z="6484.80273"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="PointLight">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
<Color A="1" B="0" G="3.92156863" R="3.92156863"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:PointLight>
|
|
||||||
<Radius>3</Radius>
|
|
||||||
<Intensity>1.1399998664855957</Intensity>
|
|
||||||
</c:PointLight>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-1.70000005" Y="0" Z="0"/>
|
|
||||||
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="PointLight">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
<Color A="1" B="0" G="3.92156863" R="3.92156863"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:PointLight>
|
|
||||||
<Radius>5.0100002288818359</Radius>
|
|
||||||
<Intensity>0.69999998807907104</Intensity>
|
|
||||||
</c:PointLight>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.900000036" Y="1.10000002" Z="0"/>
|
|
||||||
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="PointLight">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
<Color A="1" B="0" G="3.92156863" R="3.92156863"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:PointLight>
|
|
||||||
<Radius>4</Radius>
|
|
||||||
<Intensity>0.80000001192092896</Intensity>
|
|
||||||
</c:PointLight>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.400000006" Y="-1" Z="-1.50000012"/>
|
|
||||||
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="SphereRotationOrigin">
|
|
||||||
<Components>
|
|
||||||
<c:RaptorCopter>
|
|
||||||
<Speed>1</Speed>
|
|
||||||
<Axis X="0" Y="1" Z="0"/>
|
|
||||||
</c:RaptorCopter>
|
|
||||||
<c:Transform>
|
|
||||||
<Orientation X="0" Y="6281.02246" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="NormalSphere">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/NormalMapSphere.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="1.82700014" Y="0" Z="-0.166000009"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="SpecularSphere">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/SpecularMapSphere.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-1.06487739" Y="0" Z="1.52336037"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="Rotationpoint">
|
|
||||||
<Components>
|
|
||||||
<c:RaptorCopter>
|
|
||||||
<Speed>1</Speed>
|
|
||||||
<Axis X="0.699999988" Y="1" Z="0.300000012"/>
|
|
||||||
</c:RaptorCopter>
|
|
||||||
<c:Transform>
|
|
||||||
<Orientation X="4905.44824" Y="7008.50781" Z="2103.03223"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity name="PointLight">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
<Color A="1" B="0" G="3.92156863" R="3.92156863"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:PointLight>
|
|
||||||
<Radius>3</Radius>
|
|
||||||
<Intensity>1.1399998664855957</Intensity>
|
|
||||||
</c:PointLight>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.600000024" Y="0.5" Z="0"/>
|
|
||||||
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="GlowMap">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/IncandescenceMapSphere.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-1.10000002" Y="0" Z="-1.80000007"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="SceneColors">
|
|
||||||
<Components>
|
|
||||||
<c:SceneLight>
|
|
||||||
<Gamma>1.3999999761581421</Gamma>
|
|
||||||
</c:SceneLight>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -84,6 +84,15 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity name="Light">
|
||||||
|
<Components>
|
||||||
|
<c:PointLight/>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="0.400000006" Y="0.400000006" Z="0.400000006"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
</Children>
|
</Children>
|
||||||
|
|
||||||
</Entity>
|
</Entity>
|
||||||
|
|||||||
@@ -25,16 +25,10 @@
|
|||||||
<Entity>
|
<Entity>
|
||||||
<Components>
|
<Components>
|
||||||
<c:Animation>
|
<c:Animation>
|
||||||
<Name>Run</Name>
|
<Name>Crouch Walk</Name>
|
||||||
<Time>0.56277947897317659</Time>
|
<Time>701.10570384634161</Time>
|
||||||
<Speed>1</Speed>
|
<Speed>32</Speed>
|
||||||
</c:Animation>
|
</c:Animation>
|
||||||
<c:ExplosionEffect>
|
|
||||||
<Velocity X="0" Y="1.10000002" Z="3.30000019"/>
|
|
||||||
<ExplosionOrigin X="-0.600000024" Y="1" Z="0"/>
|
|
||||||
<TimeSinceDeath>0.95625903442123672</TimeSinceDeath>
|
|
||||||
<EndColor A="0" B="0.815686285" G="1" R="0"/>
|
|
||||||
</c:ExplosionEffect>
|
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/AssaultAnimated.mesh</Resource>
|
<Resource>Models/AssaultAnimated.mesh</Resource>
|
||||||
<Color A="1" B="392156.875" G="1" R="1"/>
|
<Color A="1" B="392156.875" G="1" R="1"/>
|
||||||
|
|||||||
@@ -8,10 +8,6 @@
|
|||||||
<Children>
|
<Children>
|
||||||
<Entity name="Scenemesh">
|
<Entity name="Scenemesh">
|
||||||
<Components>
|
<Components>
|
||||||
<c:AABB>
|
|
||||||
<Size X="150" Y="64" Z="180"/>
|
|
||||||
</c:AABB>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models\MapVersion1.mesh</Resource>
|
<Resource>Models\MapVersion1.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
@@ -143,7 +139,7 @@
|
|||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="57.7363472" Y="2.38900018" Z="79.5"/>
|
<Position X="57.7363472" Y="1.18853188" Z="79.5"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
@@ -205,7 +201,7 @@
|
|||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-60.2567062" Y="3.4000001" Z="-78.1000061"/>
|
<Position X="-60.2567062" Y="1.60000002" Z="-78.1000061"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children>
|
<Children>
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
<?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:AABB/>
|
|
||||||
<c:HealthPickup/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="1" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
<c:Trigger/>
|
|
||||||
</Components>
|
|
||||||
|
|
||||||
<Children/>
|
|
||||||
|
|
||||||
</Entity>
|
|
||||||
@@ -1,294 +0,0 @@
|
|||||||
<?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="Scenemesh">
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models\MapVersion1.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="DirectionalLight">
|
|
||||||
<Components>
|
|
||||||
<c:DirectionalLight>
|
|
||||||
<Intensity>2</Intensity>
|
|
||||||
</c:DirectionalLight>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/DirectionalLightWidget.mesh</Resource>
|
|
||||||
<Visible>false</Visible>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="61.9050903" Z="0"/>
|
|
||||||
<Scale X="50" Y="50" Z="50"/>
|
|
||||||
<Orientation X="4.42700005" Y="0" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="PointLight">
|
|
||||||
<Components>
|
|
||||||
<c:PointLight>
|
|
||||||
<Radius>8</Radius>
|
|
||||||
<Intensity>2.7999999523162842</Intensity>
|
|
||||||
</c:PointLight>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0.370978802" Y="1.88588905" Z="-0.55370003"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="PointLight">
|
|
||||||
<Components>
|
|
||||||
<c:PointLight>
|
|
||||||
<Radius>8</Radius>
|
|
||||||
<Intensity>2.7999999523162842</Intensity>
|
|
||||||
</c:PointLight>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="38.0347443" Y="1.88588905" Z="62.7340622"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-0.904668212" Y="0" Z="8.48177528"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-4.61666441" Y="0" Z="-8.51156044"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-7.56803513" Y="-0.0658408776" Z="0.59418112"/>
|
|
||||||
<Scale X="1.20000005" Y="0.900000036" Z="1.30000007"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="10.460474" Y="0" Z="-3.92580295"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="1.09146011" Y="-0.315138876" Z="-0.333906144"/>
|
|
||||||
<Scale X="150" Y="1" Z="180"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="BluSpawn">
|
|
||||||
<Components>
|
|
||||||
<c:PlayerSpawn/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
|
||||||
<Visible>false</Visible>
|
|
||||||
</c:Model>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Blue/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="57.7363472" Y="1.18853188" Z="79.5"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:SpawnPoint/>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:SpawnPoint/>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-2.05988312" Y="0" Z="2.79573512"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="1.85022807" Y="0" Z="-2.08909845"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="2.98651481" Y="0" Z="-4.67667246"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-5.16323137" Y="0" Z="3.62892342"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity name="RedSpawn">
|
|
||||||
<Components>
|
|
||||||
<c:PlayerSpawn/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitCube.mesh</Resource>
|
|
||||||
<Visible>false</Visible>
|
|
||||||
</c:Model>
|
|
||||||
<c:Spawner>
|
|
||||||
<EntityFile>Schema/Entities/Player.xml</EntityFile>
|
|
||||||
</c:Spawner>
|
|
||||||
<c:Team>
|
|
||||||
<Team>
|
|
||||||
<Red/>
|
|
||||||
</Team>
|
|
||||||
</c:Team>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-60.2567062" Y="1.60000002" Z="-78.1000061"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:SpawnPoint/>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="2.24403"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="2.20245028" Y="0" Z="-1.97843659"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="4.79769945" Y="0" Z="-5.2088728"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:HealthPickup>
|
|
||||||
<RespawnTimer>1</RespawnTimer>
|
|
||||||
<HealthGain>22</HealthGain>
|
|
||||||
</c:HealthPickup>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="60" Y="1" Z="80"/>
|
|
||||||
</c:Transform>
|
|
||||||
<c:Trigger/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:HealthPickup>
|
|
||||||
<RespawnTimer>1</RespawnTimer>
|
|
||||||
<HealthGain>22</HealthGain>
|
|
||||||
</c:HealthPickup>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="60" Y="1" Z="80"/>
|
|
||||||
</c:Transform>
|
|
||||||
<c:Trigger/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:HealthPickup>
|
|
||||||
<RespawnTimer>4</RespawnTimer>
|
|
||||||
<HealthGain>44</HealthGain>
|
|
||||||
</c:HealthPickup>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="60" Y="1" Z="80"/>
|
|
||||||
</c:Transform>
|
|
||||||
<c:Trigger/>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
|
|
||||||
</Entity>
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
<?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:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>../assets/Models/MapVersion1.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform/>
|
|
||||||
</Components>
|
|
||||||
|
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Physics>
|
|
||||||
<Gravity>false</Gravity>
|
|
||||||
</c:Physics>
|
|
||||||
<c:Player/>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-1.48400009" Y="3.68200016" Z="24.7580013"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:DirectionalLight/>
|
|
||||||
<c:Transform>
|
|
||||||
<Orientation X="3.80300021" Y="1.37800002" Z="4.10000038"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
|
|
||||||
</Entity>
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
<?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>
|
|
||||||
<Position X="0" Y="0" Z="-0.313012958"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
|
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Camera/>
|
|
||||||
<c:Listener/>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="2.56531811" Y="0.637967348" Z="0.202344239"/>
|
|
||||||
<Orientation X="2.68780756" Y="1.36143553" Z="3.14159179"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>../assets/Models/Core/Tri.obj</Resource>
|
|
||||||
<Color A="1" B="1" G="0.392156869" R="0"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Scale X="2" Y="2" Z="0.200000003"/>
|
|
||||||
<Orientation X="2.70100021" Y="2.37000012" Z="0.266000003"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>../assets/Models/Core/Tri.obj</Resource>
|
|
||||||
<Color A="1" B="0" G="0" R="1"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Orientation X="0" Y="3.14159274" Z="4.71238899"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
</Entity>
|
|
||||||
<Entity>
|
|
||||||
<Components>
|
|
||||||
<c:AABB/>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>../assets/Models/Core/UnitCube.obj</Resource>
|
|
||||||
</c:Model>
|
|
||||||
<c:Physics/>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="-1.95333278" Y="0.296304941" Z="2.56487775"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
|
|
||||||
</Entity>
|
|
||||||
@@ -6,6 +6,22 @@
|
|||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
<Children>
|
<Children>
|
||||||
|
<Entity name="Ground">
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
|
<Color A="1" B="0.513725519" G="0" R="1"/>
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="7" Y="-0.727000058" Z="-1.22800004"/>
|
||||||
|
<Scale X="50" Y="1.45100009" Z="50"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
<Entity name="RedSpawn">
|
<Entity name="RedSpawn">
|
||||||
<Components>
|
<Components>
|
||||||
<c:PlayerSpawn/>
|
<c:PlayerSpawn/>
|
||||||
@@ -65,10 +81,6 @@
|
|||||||
</Entity>
|
</Entity>
|
||||||
<Entity name="ObstacleCourse">
|
<Entity name="ObstacleCourse">
|
||||||
<Components>
|
<Components>
|
||||||
<c:AABB>
|
|
||||||
<Size X="50" Y="50" Z="50"/>
|
|
||||||
</c:AABB>
|
|
||||||
<c:Collidable/>
|
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/Test/ObstacleCourse.mesh</Resource>
|
<Resource>Models/Test/ObstacleCourse.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
@@ -76,6 +88,51 @@
|
|||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
</Entity>
|
</Entity>
|
||||||
|
<Entity name="ObstacleCoursePlayerBox">
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="6.32800007" Y="0.807000041" Z="-2.2750001"/>
|
||||||
|
<Scale X="1" Y="1.60000002" Z="1"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="ObstacleCourse1uHigh">
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="9.11900043" Y="0.5" Z="-2.10900021"/>
|
||||||
|
<Scale X="1" Y="1" Z="8.1960001"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
|
<Entity name="ObstacleCourseWhoTheFuckKnows">
|
||||||
|
<Components>
|
||||||
|
<c:AABB/>
|
||||||
|
<c:Collidable/>
|
||||||
|
<c:Model>
|
||||||
|
<Resource>Models/Core/UnitCube.mesh</Resource>
|
||||||
|
<Visible>false</Visible>
|
||||||
|
</c:Model>
|
||||||
|
<c:Transform>
|
||||||
|
<Position X="13.2370005" Y="1.28600001" Z="-1.71700013"/>
|
||||||
|
<Scale X="2.58000016" Y="2.58300018" Z="21.1860008"/>
|
||||||
|
</c:Transform>
|
||||||
|
</Components>
|
||||||
|
<Children/>
|
||||||
|
</Entity>
|
||||||
<Entity name="BlueSpawn">
|
<Entity name="BlueSpawn">
|
||||||
<Components>
|
<Components>
|
||||||
<c:PlayerSpawn/>
|
<c:PlayerSpawn/>
|
||||||
@@ -140,7 +197,7 @@
|
|||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="-1.68112314" Y="0.0288829971" Z="3.06287026"/>
|
<Position X="-1.68112314" Y="0.0264999866" Z="3.06287026"/>
|
||||||
<Orientation X="0" Y="2.14675093" Z="0"/>
|
<Orientation X="0" Y="2.14675093" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
|
|||||||
@@ -2,15 +2,12 @@
|
|||||||
<Entity name="Player" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
<Entity name="Player" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
||||||
|
|
||||||
<Components>
|
<Components>
|
||||||
|
<c:Health/>
|
||||||
<c:AABB>
|
<c:AABB>
|
||||||
<Origin X="0" Y="0.772000015" Z="0"/>
|
<Origin X="0" Y="0.772000015" Z="0"/>
|
||||||
<Size X="1" Y="1.60000002" Z="1"/>
|
<Size X="1" Y="1.60000002" Z="1"/>
|
||||||
</c:AABB>
|
</c:AABB>
|
||||||
<c:DashAbility>
|
|
||||||
<CoolDownMaxTimer>2.0</CoolDownMaxTimer>
|
|
||||||
</c:DashAbility>
|
|
||||||
<c:Collidable/>
|
<c:Collidable/>
|
||||||
<c:Health/>
|
|
||||||
<c:Physics>
|
<c:Physics>
|
||||||
<Velocity X="2.30999646e-23" Y="0" Z="1.05272533e-23"/>
|
<Velocity X="2.30999646e-23" Y="0" Z="1.05272533e-23"/>
|
||||||
</c:Physics>
|
</c:Physics>
|
||||||
@@ -23,7 +20,7 @@
|
|||||||
</Team>
|
</Team>
|
||||||
</c:Team>
|
</c:Team>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="9.56501799e-22" Y="-0.471999973" Z="4.35902473e-22"/>
|
<Orientation X="0" Y="2.24449515" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
|
|
||||||
@@ -105,11 +102,11 @@
|
|||||||
<Entity name="Weapon">
|
<Entity name="Weapon">
|
||||||
<Components>
|
<Components>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/AssaultWeaponRed.mesh</Resource>
|
<Resource>Models/AssaultWeapon.mesh</Resource>
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Position X="0.180000007" Y="-0.183000013" Z="0"/>
|
<Position X="0.180000007" Y="-0.183000013" Z="0"/>
|
||||||
<Orientation X="0" Y="3.08300018" Z="0"/>
|
<Orientation X="0" Y="4.64700031" Z="0"/>
|
||||||
</c:Transform>
|
</c:Transform>
|
||||||
</Components>
|
</Components>
|
||||||
<Children/>
|
<Children/>
|
||||||
@@ -144,10 +141,9 @@
|
|||||||
<Components>
|
<Components>
|
||||||
<c:Animation>
|
<c:Animation>
|
||||||
<Name>Hold Pos</Name>
|
<Name>Hold Pos</Name>
|
||||||
<Time>0.73506627647571587</Time>
|
<Time>0.9779997896222552</Time>
|
||||||
<Speed>1</Speed>
|
<Speed>1</Speed>
|
||||||
</c:Animation>
|
</c:Animation>
|
||||||
<c:HiddenForLocalPlayer/>
|
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/AssaultAnimated.mesh</Resource>
|
<Resource>Models/AssaultAnimated.mesh</Resource>
|
||||||
<Color A="1" B="0" G="0" R="1"/>
|
<Color A="1" B="0" G="0" R="1"/>
|
||||||
|
|||||||
@@ -1,43 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<Entity name="Explosion" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
|
||||||
|
|
||||||
<Components>
|
|
||||||
<c:Animation>
|
|
||||||
<Name>Hold Pos</Name>
|
|
||||||
</c:Animation>
|
|
||||||
<c:Lifetime>
|
|
||||||
<Lifetime>2.5</Lifetime>
|
|
||||||
</c:Lifetime>
|
|
||||||
<c:ExplosionEffect>
|
|
||||||
<ColorByDistance>true</ColorByDistance>
|
|
||||||
<Velocity X="0" Y="7.76300049" Z="0"/>
|
|
||||||
<ExplosionOrigin X="0" Y="0.67900002" Z="0"/>
|
|
||||||
<ExponentialAccelaration>true</ExponentialAccelaration>
|
|
||||||
<ExplosionDuration>3</ExplosionDuration>
|
|
||||||
<EndColor A="0" B="0" G="0" R="1"/>
|
|
||||||
<Randomness>true</Randomness>
|
|
||||||
</c:ExplosionEffect>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/AssaultAnimated.mesh</Resource>
|
|
||||||
<Color A="1" B="0" G="0" R="1"/>
|
|
||||||
<Transparent>true</Transparent>
|
|
||||||
</c:Model>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="0" Z="3.46966481"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
|
|
||||||
<Children>
|
|
||||||
<Entity name="Camera">
|
|
||||||
<Components>
|
|
||||||
<c:Camera/>
|
|
||||||
<c:Transform>
|
|
||||||
<Position X="0" Y="2.49700022" Z="4.31700039"/>
|
|
||||||
<Orientation X="5.95600033" Y="0" Z="0"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
<Children/>
|
|
||||||
</Entity>
|
|
||||||
</Children>
|
|
||||||
|
|
||||||
</Entity>
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
|
||||||
<Entity name="PointLight" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
|
|
||||||
|
|
||||||
<Components>
|
|
||||||
<c:Model>
|
|
||||||
<Resource>Models/Core/UnitSphere.mesh</Resource>
|
|
||||||
<Color A="1" B="0" G="3.92156863" R="3.92156863"/>
|
|
||||||
</c:Model>
|
|
||||||
<c:PointLight>
|
|
||||||
<Radius>3</Radius>
|
|
||||||
<Intensity>1.1399998664855957</Intensity>
|
|
||||||
</c:PointLight>
|
|
||||||
<c:Transform>
|
|
||||||
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
|
|
||||||
</c:Transform>
|
|
||||||
</Components>
|
|
||||||
|
|
||||||
<Children/>
|
|
||||||
|
|
||||||
</Entity>
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -7,8 +7,7 @@
|
|||||||
</c:Lifetime>
|
</c:Lifetime>
|
||||||
<c:Model>
|
<c:Model>
|
||||||
<Resource>Models/CylinderBullet.mesh</Resource>
|
<Resource>Models/CylinderBullet.mesh</Resource>
|
||||||
<Color A="0.156862751" B="39.2156868" G="7.84313726" R="0"/>
|
<Color A="1" B="39.2156868" G="7.84313726" R="0"/>
|
||||||
<Transparent>true</Transparent>
|
|
||||||
</c:Model>
|
</c:Model>
|
||||||
<c:Transform>
|
<c:Transform>
|
||||||
<Scale X="0.0109999999" Y="0.0289999992" Z="100"/>
|
<Scale X="0.0109999999" Y="0.0289999992" Z="100"/>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user