Compare commits

..

106 Commits

Author SHA1 Message Date
FakeShemp cf43817658 Final pass 2016-02-04 10:54:34 +01:00
FakeShemp 4769970715 Another pass 2016-02-03 18:03:46 +01:00
FakeShemp 3c8159220c First pass 2016-02-03 17:31:16 +01:00
Jace 2cbeef4c69 Merge pull request #74 from teamfisk/Warnings-Jocke
Fixed warnings associated with Network
2016-02-03 10:37:10 +01:00
Jace 192de80782 Merge pull request #75 from teamfisk/NormalSpecularMapping
Normal specular mapping
2016-02-03 10:34:22 +01:00
Tleety 51a588657e QA map change 2016-02-03 10:11:53 +01:00
Tleety 73716c28e2 pickpass fix 2016-02-02 17:40:22 +01:00
Tleety a3b7bd7df5 Fix in picking pass, QA map fix. Blue and red ray change. Player weapon change. 2016-02-02 17:39:57 +01:00
Tleety 11025b5466 QA-map stuff 2016-02-02 17:19:58 +01:00
Tleety eba36b8492 Some QA-map fixes 2016-02-02 17:12:14 +01:00
Tleety 55854f5c0d Merge remote-tracking branch 'origin/master' into NormalSpecularMapping 2016-02-02 16:30:57 +01:00
Tleety 12a181c1ff Fixed a bug where normals scaled with model scale. Again. 2016-02-02 16:11:03 +01:00
Tleety b131f56f5e Made a quality assurance world that will need to be used before creating a pull request 2016-02-02 16:06:42 +01:00
Jace 24aac6a00d Merge pull request #62 from teamfisk/DoubleJump
You can now DoubleJump!
2016-02-02 15:31:03 +01:00
verysecrethero 45a92b362f DoubleJumping now in InputController instead. 2016-02-02 15:10:11 +01:00
verysecrethero 2085d9ec9e Merge remote-tracking branch 'origin/master' into DoubleJump 2016-02-02 14:22:00 +01:00
Jocke 6a3f585fb9 Fixed warnings associated with Network.cpp, Client.cpp, Server.cpp and Packet.cpp.
BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT': macro redefinition was fixed by https://svn.boost.org/trac/boost/ticket/11539
2016-02-02 13:26:15 +01:00
Tleety 7b4826cb44 Merge remote-tracking branch 'origin/master' into NormalSpecularMapping 2016-02-02 13:24:31 +01:00
Tleety 28d412f5c7 Some small changes to test world and assets 2016-02-02 13:24:18 +01:00
Jace 0e5f6da9a9 Merge pull request #73 from teamfisk/CapturePointFixBranch
Several changes/fixes based on the latest broken refactoring in master
2016-02-02 13:22:03 +01:00
verysecrethero 42b52a6766 Several changes/fixes based on the latest broken refactoring.
Fixed Simon's mistake in CapturePointLogic. William fixed so TriggerSystem works again with CapturePoints.
2016-02-02 11:37:22 +01:00
Tleety 9c2e459e0c Deatheffect color now correctly calculated 2016-02-02 10:58:00 +01:00
Tleety 8299b99e2f Test world changes and some other small fixes 2016-02-01 19:08:46 +01:00
Tleety c708f1582c Merge remote-tracking branch 'origin/master' into NormalSpecularMapping 2016-02-01 18:30:30 +01:00
Tleety 782c1a388a Comment 2016-02-01 18:23:40 +01:00
Tleety a188a3f7fa Removed widget pointlight since it is now redundant 2016-02-01 18:22:36 +01:00
Tleety ed7d00c1d8 Bug where widgets did not get their ambient light now fixed. 2016-02-01 18:19:38 +01:00
Jace 9090be8acf Merge branch 'Warnings-Simon' 2016-02-01 17:53:55 +01:00
Jace a3d4eb65d5 Fixes #66 warnings 2016-02-01 17:53:01 +01:00
Jace 9b2a4be707 Merge pull request #71 from teamfisk/Warnings-Adam
Warnings adam
2016-02-01 17:52:18 +01:00
stiffly 5474a18753 #68 Fixed warning in SoundSystem.cpp 2016-02-01 17:15:51 +01:00
Tleety 53cae25eb2 WIP on widget fuckery 2016-02-01 16:56:55 +01:00
Jace 0a43f8104e Added _CRT_SECURE_NO_WARNINGS definition compiling with MSVC 2016-02-01 16:31:01 +01:00
Adam Byléhn ca8b7cbee8 Merge pull request #65 from teamfisk/EditorUsefulness
Editor usefulness
2016-02-01 16:13:37 +01:00
Jace be3cfef65f Merge remote-tracking branch 'origin/master' into EditorUsefulness
# Conflicts:
#	src/Engine/Rendering/DrawFinalPass.cpp
2016-02-01 16:00:46 +01:00
Jace 65f5bc673f Functional translation widget in global and local space 2016-02-01 15:47:56 +01:00
Jace a22bc00d46 *cough* 2016-02-01 13:37:51 +01:00
Jace 5bfcffc142 Fixed widget movement calculations going weird when world origin wasn't on screen 2016-02-01 11:56:21 +01:00
Tleety 7054822be2 SceneLight component now working 2016-02-01 11:12:03 +01:00
Jace ee92200300 Improved editor pause logic. Editor now pauses when it's enabled and makes sure UI is up to date with the current state. 2016-02-01 10:45:37 +01:00
Jace d3b1053f21 Fixes #59 2016-02-01 10:29:59 +01:00
verysecrethero 0c97ce7a4a You can now DoubleJump! 2016-01-29 10:12:49 +01:00
Jace 13f020ddf5 Fixed #49 being able to parent an entity to itself, which resulted in infinite infinite loops everywhere! D: 2016-01-27 18:37:43 +01:00
Tleety 8bcafc1151 WIP 2016-01-27 18:07:05 +01:00
Jace 65da634c71 File dropping into resource paths in the editor 2016-01-27 17:51:47 +01:00
Tleety 97cbc55223 Some debug features for color corrections and glow strength fix. 2016-01-27 17:21:00 +01:00
Jace c519ba2536 Component fields in the editor are now sorted in the order they're defined 2016-01-27 17:12:07 +01:00
Jace 4b7613a659 Sorted editor component dropdown and made it always be fully expanded to show as many components as possible 2016-01-27 17:07:48 +01:00
Jace 7408da401b Merge pull request #56 from teamfisk/NormalSpecularMapping
Transparency fix and support for Normal and Specular maps
2016-01-27 16:44:10 +01:00
Tleety a63ecb8133 Some wierd shader faults and merge error fixe 2016-01-27 15:54:36 +01:00
Jace 788407b709 Made CollisionSystem aware of entities 2016-01-27 15:42:50 +01:00
Tleety 0e70dc6fa3 Merge remote-tracking branch 'origin/master' into NormalSpecularMapping
# Conflicts:
#	include/Engine/Rendering/RenderSystem.h
#	src/Engine/Rendering/DrawFinalPass.cpp
#	src/Engine/Rendering/RenderSystem.cpp
2016-01-27 15:41:31 +01:00
Tleety 44302bb0f3 Specular support. Some edits to EditorTestWorld.xml aswell as some debugmodes for textures in the model component 2016-01-27 15:38:54 +01:00
Jace 181017313d Made entity parser give more useful errors and fixed the errors that were while I was at it 2016-01-27 15:16:59 +01:00
Jace 6615fe9438 Enabled multithreaded build for MSVC 2016-01-27 15:09:34 +01:00
Jace 113448dbf0 Added DEBUG preprocessor definition in Debug and RelWithDebInfo mode 2016-01-27 15:09:23 +01:00
Tleety 5c9616d4af Fixed asset name 2016-01-27 13:55:23 +01:00
Tleety a954cbbf50 Normal map support 2016-01-27 13:52:27 +01:00
Jace dec2234019 Merge branch 'Cleanup'
# Conflicts:
#	src/Engine/Rendering/RenderSystem.cpp
2016-01-27 13:44:15 +01:00
Jace 0334ec3fa7 Merge remote-tracking branch 'origin/Animations'
# Conflicts:
#	src/Engine/Rendering/DrawFinalPass.cpp
#	src/Game/Systems/WeaponSystem.cpp
2016-01-27 13:36:49 +01:00
Jace 5fcd26cd3e Made TriggerSystem make use of Octree 2016-01-27 13:35:16 +01:00
Tleety 8102f3a2ea Working transparency in most common cases.
Transparency check is automatically set if the alpha color value is under 1
2016-01-27 12:59:44 +01:00
Tleety cbb17d22d4 WIP 2016-01-27 12:10:00 +01:00
Jace 8bed5194d8 "Proper" handling of conditional rendering of entities parented to camera or entities that should be hidden from the active local player perspective 2016-01-27 11:36:24 +01:00
Jace eb42217885 Merge pull request #38 from teamfisk/CoolDeathAnimation
Cool death animation
2016-01-27 10:51:22 +01:00
Jace 7e12d00874 Merge branch 'master' into CoolDeathAnimation
# Conflicts:
#	include/Engine/Rendering/ModelJob.h
#	resources/Shaders/ForwardPlus.frag.glsl
#	src/Engine/Rendering/DrawFinalPass.cpp
#	src/Engine/Rendering/RenderSystem.cpp
2016-01-27 10:43:23 +01:00
Jace 505a6c7396 Hiding first person models properly 2016-01-25 14:32:48 +01:00
Jace 8866dd6054 Merge remote-tracking branch 'origin/Networking' into ShootRays 2016-01-25 11:57:44 +01:00
Jace b6fd18baed Hacked in serverside effects 2016-01-25 11:56:40 +01:00
Jace 4245264029 Weapon RayZ
Weapon RayZ
2016-01-25 11:26:33 +01:00
viktorljung d12246833e Some further small fizes to resolution //Tobias 2016-01-25 01:26:41 +01:00
stiffly 44baa47bba Merge remote-tracking branch 'origin/master' into CoolDeathAnimation
# Conflicts:
#	include/Engine/Common.h
#	include/Engine/Rendering/DrawFinalPass.h
#	include/Engine/Rendering/DrawScenePass.h
#	include/Engine/Rendering/RenderQueue.h
#	include/Engine/Rendering/Renderer.h
#	resources/Shaders/ForwardPlus.frag.glsl
#	resources/Shaders/ForwardPlus.vert.glsl
#	src/Engine/Rendering/DrawFinalPass.cpp
#	src/Engine/Rendering/DrawScenePass.cpp
#	src/Engine/Rendering/RenderSystem.cpp
#	src/Engine/Rendering/Renderer.cpp
#	src/Game/Game.cpp
2016-01-25 01:21:15 +01:00
Jace b95c1fdfa4 Merge remote-tracking branch 'origin/Menu'
# Conflicts:
#	include/Engine/Rendering/ModelJob.h
#	resources/Schema/Components.xsd
#	resources/Schema/Entities/Player.xml
#	resources/Schema/Entities/RenderingWorld.xml
#	src/Game/Game.cpp
2016-01-25 00:25:03 +01:00
Jace 7b348379ac Quaternions are never the solution. 2016-01-25 00:22:55 +01:00
viktorljung 6aeb281249 Resolution fix in render stages //Tobias 2016-01-25 00:07:17 +01:00
Jace 04f6233d99 Crude animations 2016-01-24 23:44:29 +01:00
Jace d6cc1eaac4 Merge remote-tracking branch 'origin/Animations' 2016-01-24 23:06:59 +01:00
Jace d0de169613 Instagib! 2016-01-24 23:05:52 +01:00
viktorljung 79fe7693a6 picking values fixed 2016-01-24 23:05:45 +01:00
Jace b6ba8a5bd7 Network snapshot buffer size increased, needs to be looked over later 2016-01-24 23:05:26 +01:00
viktorljung f8b9606cdf Picking animation fix 2016-01-24 22:59:53 +01:00
viktorljung 84fddf02e2 Merge remote-tracking branch 'origin/master' into Animations 2016-01-24 22:42:12 +01:00
viktorljung d03b3fb071 Merge remote-tracking branch 'origin/master' into Menu
# Conflicts:
#	resources/Schema/Entities/Player.xml
2016-01-24 22:23:53 +01:00
viktorljung 7e92d6f53f Healthbar on player 2016-01-24 22:21:10 +01:00
Jace 47d2fb6a9b Fixed wrong drawing function used in PickingPass 2016-01-24 22:20:42 +01:00
viktorljung 0c557317a9 Merge remote-tracking branch 'origin/master' into Menu 2016-01-24 21:16:05 +01:00
viktorljung a304b00038 fixed crashes 2016-01-24 21:12:41 +01:00
viktorljung ada1bac2a7 Merge remote-tracking branch 'origin/master' into Menu
# Conflicts:
#	include/Engine/Rendering/RenderSystem.h
#	resources/Schema/Entities/RenderingWorld.xml
#	resources/Shaders/ForwardPlus.frag.glsl
#	src/Engine/Rendering/RenderSystem.cpp
2016-01-24 20:48:17 +01:00
viktorljung 8cf9caf7aa AnimationSystem working 2016-01-24 18:31:23 +01:00
viktorljung dd80323342 Merge remote-tracking branch 'origin/master' into Animations 2016-01-24 17:06:34 +01:00
viktorljung af2f017cb4 AnimationSystem base WIP 2016-01-24 17:05:34 +01:00
viktorljung aa3b8cd652 Fixed text color and removed debugging code 2016-01-24 13:37:07 +01:00
viktorljung fcba0a28b8 Merge branch 'master' into Menu 2016-01-23 18:27:48 +01:00
viktorljung aacfc47fb5 Merge remote-tracking branch 'origin/master' into Menu
# Conflicts:
#	resources/Shaders/ForwardPlus.frag.glsl
#	src/Engine/Rendering/DrawFinalPass.cpp
2016-01-23 15:12:19 +01:00
viktorljung 680a12d88f HealthMeter 2016-01-23 14:53:17 +01:00
viktorljung 46dff1a59c Merge remote-tracking branch 'origin/master' into Menu
# Conflicts:
#	include/Engine/Rendering/RenderSystem.h
#	src/Engine/Rendering/RenderSystem.cpp
2016-01-22 17:02:56 +01:00
Ayumiwii 382e00cff4 Randomness fixed
Redundant continue removed
Redundant cross product removed
2016-01-21 15:34:08 +01:00
Ayumiwii 77e1dacb6f Merge 2016-01-19 09:58:52 +01:00
Ayumiwii 37aa1eaa18 Merge remote-tracking branch 'origin/master' into CoolDeathAnimation
# Conflicts:
#	include/Engine/Rendering/DrawScenePass.h
#	include/Engine/Rendering/RenderQueue.h
#	include/Engine/Rendering/RenderQueueFactory.h
#	include/Engine/Rendering/Renderer.h
#	include/Game/Game.h
#	resources/Schema/Components.xsd
#	resources/Schema/Entities/Test.xml
#	resources/Schema/Types/Entity.xsd
#	src/Engine/Rendering/DrawScenePass.cpp
#	src/Engine/Rendering/RenderQueueFactory.cpp
#	src/Engine/Rendering/Renderer.cpp
#	src/Game/Game.cpp
2016-01-18 16:02:43 +01:00
Ayumiwii 1411964dcf hourglass assets fixed 2016-01-18 14:24:31 +01:00
Ayumiwii 35269315cc Rename the thingie 2016-01-18 13:51:32 +01:00
Ayumiwii 8f8b64f99c First pass that actually work
Not at all done, but it'll have to do for now
2016-01-18 11:50:00 +01:00
FakeShemp 923589524b Fix the accelaration (possibly)
I haven't tested so I might just have destroyed everything.
2016-01-12 21:25:15 +01:00
Ayumiwii 00eeed2e20 Broken stuff, refactoring 2016-01-12 16:16:42 +01:00
Ayumiwii 0630885d92 Many more things done 2016-01-11 19:59:45 +01:00
Ayumiwii 3467315aef Lots of things done 2016-01-08 16:42:59 +01:00
161 changed files with 5249 additions and 965 deletions
+9
View File
@@ -14,6 +14,9 @@ endif()
if(CMAKE_COMPILER_IS_GNUCXX)
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()
#set(BUILD_SHARED_LIBS FALSE)
@@ -34,6 +37,12 @@ foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
endforeach(OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES)
# DEBUG definition
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS
$<$<CONFIG:Debug>:DEBUG>
$<$<CONFIG:RelWithDebInfo>:DEBUG>
)
include(cotire)
add_subdirectory(src/Engine)
add_subdirectory(src/Game)
+1 -1
Submodule assets updated: 068fbb2d20...c4898d8281
@@ -4,13 +4,14 @@
#include "../Core/System.h"
#include "../Core/Octree.h"
#include "Collision.h"
#include "EntityAABB.h"
class CollidableOctreeSystem : public ImpureSystem, public PureSystem
{
public:
CollidableOctreeSystem(World* world, EventBroker* eventBroker, Octree<AABB>* octree)
CollidableOctreeSystem(World* world, EventBroker* eventBroker, Octree<EntityAABB>* octree, const std::string& componentType)
: System(world, eventBroker)
, PureSystem("Collidable")
, PureSystem(componentType)
, m_Octree(octree)
{ }
@@ -18,7 +19,7 @@ public:
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override;
private:
Octree<AABB>* m_Octree;
Octree<EntityAABB>* m_Octree;
};
#endif
+2 -2
View File
@@ -15,6 +15,7 @@
#include "../Core/Transform.h"
#include "../Core/Entity.h"
#include "../Core/EntityWrapper.h"
#include "EntityAABB.h"
class World;
struct ComponentWrapper;
@@ -58,10 +59,9 @@ bool AABBVsAABB(const AABB& a, const AABB& b);
//Return true if the boxes are intersecting.
//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 IsSameBoxProbably(const AABB& first, const AABB& second, const float epsilon = 0.0001f);
// Calculates an absolute AABB from an entity AABB component
boost::optional<AABB> EntityAbsoluteAABB(EntityWrapper& entity);
boost::optional<EntityAABB> EntityAbsoluteAABB(EntityWrapper& entity);
}
+5 -12
View File
@@ -7,30 +7,23 @@
#include "../Common.h"
#include "../Core/System.h"
#include "../Core/EventBroker.h"
#include "../Core/EKeyUp.h"
#include "../Core/Octree.h"
#include "EntityAABB.h"
class CollisionSystem : public PureSystem
{
public:
CollisionSystem(World* world, EventBroker* eventBroker, Octree<AABB>* octree)
CollisionSystem(World* world, EventBroker* eventBroker, Octree<EntityAABB>* octree)
: System(world, eventBroker)
, PureSystem("Collidable")
, 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;
private:
Octree<AABB>* m_Octree;
bool zPress;
EventRelay<CollisionSystem, Events::KeyUp> m_EKeyUp;
bool OnKeyUp(const Events::KeyUp &event);
Octree<EntityAABB>* m_Octree;
std::vector<EntityAABB> m_OctreeResult;
};
#endif
+7 -7
View File
@@ -2,7 +2,7 @@
#define Events_TriggerEnter_h__
#include "../Core/EventBroker.h"
#include "../Core/Entity.h"
#include "../Core/EntityWrapper.h"
namespace Events
{
@@ -11,27 +11,27 @@ namespace Events
struct TriggerTouch : Event
{
/** The id of the entity that touches the trigger. */
EntityID Entity;
EntityWrapper Entity;
/** The id of the trigger entity. */
EntityID Trigger;
EntityWrapper Trigger;
};
/** Thrown once, when an entity has completely left a trigger. */
struct TriggerLeave : Event
{
/** The id of the entity that left the trigger. */
EntityID Entity;
EntityWrapper Entity;
/** The id of the trigger entity. */
EntityID Trigger;
EntityWrapper Trigger;
};
/** Thrown once, when an entity is completely contained inside a trigger. */
struct TriggerEnter : Event
{
/** The id of the entity that entered the trigger. */
EntityID Entity;
EntityWrapper Entity;
/** The id of the trigger entity. */
EntityID Trigger;
EntityWrapper Trigger;
};
}
+22
View File
@@ -0,0 +1,22 @@
#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
+10 -8
View File
@@ -8,13 +8,14 @@
#include "../Core/EventBroker.h"
#include "../Core/Octree.h"
#include "ETrigger.h"
#include "EntityAABB.h"
class AABB;
class TriggerSystem : public PureSystem
{
public:
TriggerSystem(World* world, EventBroker* eventBroker, Octree<AABB>* octree)
TriggerSystem(World* world, EventBroker* eventBroker, Octree<EntityAABB>* octree)
: System(world, eventBroker)
, PureSystem("Trigger")
, m_Octree(octree)
@@ -27,9 +28,10 @@ public:
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& component, double dt) override;
private:
Octree<AABB>* m_Octree;
std::unordered_map<EntityID, std::unordered_set<EntityID>> m_EntitiesTouchingTrigger;
std::unordered_map<EntityID, std::unordered_set<EntityID>> m_EntitiesCompletelyInTrigger;
Octree<EntityAABB>* m_Octree;
std::vector<EntityAABB> m_OctreeOut;
std::unordered_map<EntityWrapper, std::unordered_set<EntityWrapper>> m_EntitiesTouchingTrigger;
std::unordered_map<EntityWrapper, std::unordered_set<EntityWrapper>> m_EntitiesCompletelyInTrigger;
//TODO: Only exists for debug purposes, remove later.
EventRelay<TriggerSystem, Events::TriggerEnter> m_EEnter;
@@ -40,13 +42,13 @@ private:
bool OnLeave(const Events::TriggerLeave &event);
//True if leave event was thrown.
bool throwLeaveIfWasInTrigger(std::unordered_set<EntityID>& triggerSet, EntityID pId, EntityID tId);
bool throwLeaveIfWasInTrigger(std::unordered_set<EntityWrapper>& triggerSet, EntityWrapper colliderENtity, EntityWrapper triggerEntity);
template<typename Event>
void publish(EntityID pId, EntityID tId)
void publish(EntityWrapper collider, EntityWrapper trigger)
{
Event e;
e.Trigger = tId;
e.Entity = pId;
e.Trigger = trigger;
e.Entity = collider;
m_EventBroker->Publish(e);
}
};
+1
View File
@@ -5,6 +5,7 @@
#include <map>
#include <unordered_map>
#include <algorithm>
#include <array>
#include "Core/Util/Logging.h"
#include "Core/Util/IfDebug.h"
-1
View File
@@ -9,7 +9,6 @@ public:
AABB() = default;
//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::vec4& minPos, const glm::vec4& maxPos);
//No checks are made. Size must consist of non-negative numbers.
static AABB FromOriginSize(const glm::vec3& origin, const glm::vec3& size);
virtual ~AABB();
+1 -1
View File
@@ -81,7 +81,7 @@ class ComponentWrapperFactory
{
public:
ComponentWrapperFactory() = default;
ComponentWrapperFactory(std::string componentTypeName, std::size_t allocation = 0)
ComponentWrapperFactory(std::string componentTypeName, unsigned int allocation = 0)
{
m_ComponentInfo.Name = componentTypeName;
m_ComponentInfo.Meta->Allocation = allocation;
+1 -1
View File
@@ -143,7 +143,7 @@ private:
~EntityFile();
public:
static std::size_t GetTypeStride(std::string typeName);
static unsigned int GetTypeStride(std::string typeName);
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);
+4 -1
View File
@@ -23,6 +23,7 @@ struct EntityWrapper
static const EntityWrapper Invalid;
const std::string Name();
bool HasComponent(const std::string& componentType);
EntityWrapper Parent();
EntityWrapper FirstChildByName(const std::string& name);
@@ -34,7 +35,9 @@ struct EntityWrapper
bool operator==(const EntityWrapper& e) const;
bool operator!=(const EntityWrapper& e) const;
explicit operator EntityID() const;
operator bool();
private:
EntityWrapper firstChildByNameRecursive(const std::string& name, EntityID parent);
};
namespace std
+2
View File
@@ -8,8 +8,10 @@
namespace Transform
{
glm::mat4 AbsoluteTransformation(EntityWrapper entity);
glm::vec3 AbsolutePosition(EntityWrapper entity);
glm::vec3 AbsolutePosition(World* world, EntityID entity);
glm::vec3 AbsoluteOrientationEuler(EntityWrapper entity);
glm::quat AbsoluteOrientation(EntityWrapper entity);
glm::quat AbsoluteOrientation(World* world, EntityID entity);
glm::vec3 AbsoluteScale(EntityWrapper entity);
+2 -2
View File
@@ -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 bool operator&(FileWatcher::FileEventFlags a, FileWatcher::FileEventFlags b) { return 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; }
class FileWatcher::Worker
{
@@ -54,7 +54,7 @@ public:
private:
struct FileInfo
{
int Size;
std::size_t Size;
std::time_t Timestamp;
};
+6 -34
View File
@@ -29,41 +29,9 @@ enum _LOG_LEVEL
extern _LOG_LEVEL LOG_LEVEL;
const static char* _LOG_LEVEL_PREFIX[] =
{
"EE: ",
"",
"WW: ",
"DD: "
};
extern const char* _LOG_LEVEL_PREFIX[];
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;
}
extern void _LOG(_LOG_LEVEL logLevel, const char* file, const char* func, unsigned int line, const char* format, ...);
#define LOG(logLevel, format, ...) \
_LOG(logLevel, __BASE_FILE__, __func__, __LINE__, format, ##__VA_ARGS__)
@@ -77,7 +45,11 @@ static void _LOG(_LOG_LEVEL logLevel, const char* file, const char* func, unsign
#define LOG_INFO(format, ...) \
LOG(LOG_LEVEL_INFO, format, ##__VA_ARGS__)
#ifdef DEBUG
#define LOG_DEBUG(format, ...) \
LOG(LOG_LEVEL_DEBUG, format, ##__VA_ARGS__)
#else
#define LOG_DEBUG(format, ...)
#endif
#endif // Logging_h__
@@ -23,7 +23,7 @@ public:
m_SpeedMultiplier = m_Config->Get<float>("Editor.CameraSpeed", 3.f);
}
virtual const glm::vec3 Movement() const override { return m_Movement * m_SpeedMultiplier; }
virtual const glm::vec3 Movement() const override { return m_Movement * static_cast<float>(m_SpeedMultiplier); }
void Enable() { m_Enabled = true; }
void Disable() { m_Enabled = false; }
@@ -69,7 +69,7 @@ public:
protected:
ConfigFile* m_Config;
bool m_Enabled = false;
float m_SpeedMultiplier = 1.f;
double m_SpeedMultiplier = 1.f;
EventRelay<EventContext, Events::MousePress> m_EMousePress;
bool OnMousePress(const Events::MousePress& e)
@@ -105,7 +105,7 @@ protected:
return false;
}
m_SpeedMultiplier += e.DeltaY * (0.1f * m_SpeedMultiplier);
m_SpeedMultiplier += e.DeltaY * (0.1 * m_SpeedMultiplier);
m_Config->Set("Editor.CameraSpeed", m_SpeedMultiplier);
m_Config->SaveToDisk();
return true;
+30
View File
@@ -7,6 +7,7 @@
#include <nativefiledialog/nfd.h>
#include <boost/filesystem.hpp>
#include <boost/any.hpp>
#include <boost/algorithm/string/replace.hpp>
#include "../Common.h"
#include "../GLM.h"
#include <glm/gtx/common.hpp>
@@ -18,6 +19,8 @@
#include "../Core/ResourceManager.h"
#include "../Core/EPause.h"
#include "../Core/EKeyDown.h"
#include "../Core/ELockMouse.h"
#include "../Core/EFileDropped.h"
#include "../Rendering/Texture.h"
class EditorGUI
@@ -32,6 +35,12 @@ public:
Scale
};
enum class WidgetSpace
{
Global,
Local
};
void Draw();
void SelectEntity(EntityWrapper entity);
@@ -73,6 +82,9 @@ public:
// Called when the user selects a widget mode.
typedef std::function<void(WidgetMode)> OnWidgetMode_t;
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:
World* m_World;
@@ -93,8 +105,12 @@ private:
EntityWrapper m_CurrentlyDragging = EntityWrapper::Invalid;
std::string m_LastErrorMessage;
WidgetMode m_CurrentWidgetMode = WidgetMode::Translate;
WidgetSpace m_CurrentWidgetSpace = WidgetSpace::Global;
std::set<std::string> m_ModalsToOpen;
std::map<std::string, boost::any> m_ModalData;
std::string m_DroppedFile = "";
bool m_Paused = false;
bool m_MouseLocked = false;
// Callbacks
OnEntitySelectedCallback_t m_OnEntitySelected = nullptr;
@@ -107,10 +123,21 @@ private:
OnComponentAttach_t m_OnComponentAttach = nullptr;
OnComponentDelete_t m_OnComponentDelete = nullptr;
OnWidgetMode_t m_OnWidgetMode = nullptr;
OnWidgetSpace_t m_OnWidgetSpace = nullptr;
// Events
EventRelay<EditorGUI, Events::KeyDown> m_EKeyDown;
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
boost::filesystem::path fileOpenDialog();
@@ -118,6 +145,9 @@ private:
const std::string formatEntityName(EntityWrapper entity);
GLuint tryLoadTexture(std::string filePath);
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
void entityImport(World* world);
+2
View File
@@ -41,6 +41,7 @@ private:
double m_LastTime = 0.f;
bool m_Enabled = true;
EditorGUI::WidgetMode m_WidgetMode = EditorGUI::WidgetMode::Translate;
EditorGUI::WidgetSpace m_WidgetSpace = EditorGUI::WidgetSpace::Global;
EntityWrapper m_Widget = EntityWrapper::Invalid;
EntityWrapper m_CurrentSelection = EntityWrapper::Invalid;
@@ -57,6 +58,7 @@ private:
void OnEntityChangeName(EntityWrapper entity, const std::string& name);
void OnComponentAttach(EntityWrapper entity, const std::string& componentType);
void OnComponentDelete(EntityWrapper entity, const std::string& componentType);
void OnWidgetSpace(EditorGUI::WidgetSpace widgetSpace);
// Events
EventRelay<EditorSystem, Events::MousePress> m_EMousePress;
+2
View File
@@ -2,6 +2,7 @@
#define Events_InputCommand_h__
#include "Core/EventBroker.h"
#include "Core/EntityWrapper.h"
namespace Events
{
@@ -10,6 +11,7 @@ struct InputCommand : Event
{
/** Numerical ID of the player. */
int PlayerID;
EntityWrapper Player;
/** The command that was sent. */
std::string Command;
/** The value of the command. */
@@ -15,7 +15,11 @@ public:
virtual const glm::vec3 Rotation() const { return m_Rotation; }
virtual bool Jumping() const { return m_Jumping; }
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 UnlockMouse();
virtual bool OnCommand(const Events::InputCommand& e) override;
@@ -27,8 +31,9 @@ protected:
glm::vec3 m_Rotation;
glm::vec3 m_Movement;
bool m_Jumping = false;
bool m_DoubleJumping = false;
bool m_Crouching = false;
EventRelay<EventContext, Events::LockMouse> m_ELockMouse;
bool OnLockMouse(const Events::LockMouse& e);
EventRelay<EventContext, Events::UnlockMouse> m_EUnlockMouse;
@@ -36,7 +41,7 @@ protected:
};
template <typename EventContext>
FirstPersonInputController<EventContext>::FirstPersonInputController(EventBroker* eventBroker, int playerID)
FirstPersonInputController<EventContext>::FirstPersonInputController(EventBroker* eventBroker, int playerID)
: InputController(eventBroker)
, m_PlayerID(playerID)
{
@@ -113,14 +118,14 @@ bool FirstPersonInputController<EventContext>::OnCommand(const Events::InputComm
template <typename EventContext>
bool FirstPersonInputController<EventContext>::OnUnlockMouse(const Events::UnlockMouse& e)
{
m_MouseLocked = false;
m_MouseLocked = false;
return true;
}
template <typename EventContext>
bool FirstPersonInputController<EventContext>::OnLockMouse(const Events::LockMouse& e)
{
m_MouseLocked = true;
m_MouseLocked = true;
return true;
}
+2 -3
View File
@@ -36,14 +36,13 @@ private:
boost::asio::ip::udp::socket m_Socket;
// Sending message to server logic
int bytesRead = -1;
size_t bytesRead = 0;
char readBuf[INPUTSIZE] = { 0 };
// Packet loss logic
PacketID m_PacketID = 0;
PacketID m_PreviousPacketID = 0;
PacketID m_SendPacketID = 0;
AckBitPattern ackBitField = 0;
// Game logic
World* m_World;
@@ -70,7 +69,7 @@ private:
// Private member functions
void readFromServer();
int receive(char* data);
size_t receive(char* data);
void send(Packet& packet);
void connect();
void disconnect();
+2 -4
View File
@@ -11,12 +11,10 @@
#include "Core/ConfigFile.h"
#include <fstream>
#include <iostream>
#include <bitset>
#define INPUTSIZE 4097
#define INPUTSIZE 32000
typedef unsigned int PlayerID;
typedef unsigned int PacketID;
typedef unsigned int AckBitPattern;
class Network
{
@@ -31,7 +29,7 @@ protected:
unsigned int m_SaveDataIntervalMs = 1000;
std::clock_t m_SaveDataTimer;
unsigned int m_MaxConnections;
unsigned int m_TimeoutMs;
double m_TimeoutMs;
void saveToFile();
void updateNetworkData();
void initialize();
+8 -8
View File
@@ -3,16 +3,16 @@
#include <vector>
struct NetworkData {
unsigned int TotalTime = 0;
unsigned int TotalDataReceived = 0;
unsigned int TotalDataSent = 0;
unsigned int AmountOfMessagesReceived = 0;
double TotalTime = 0;
size_t TotalDataReceived = 0;
size_t TotalDataSent = 0;
size_t AmountOfMessagesReceived = 0;
unsigned int AmountOfMessagesSent = 0;
// Interval based
unsigned int DataReceivedThisInterval = 0;
unsigned int DataSentThisInterval = 0;
size_t DataReceivedThisInterval = 0;
size_t DataSentThisInterval = 0;
// pair: first=reveived, second=send
std::vector<std::pair<unsigned int, unsigned int>> BandwidthBytes;
std::vector<std::pair<size_t, size_t>> BandwidthBytes;
};
#endif
#endif
+12 -14
View File
@@ -11,12 +11,12 @@ class Packet
public:
// arg1: Type of message (Connect, Disconnect...)
// arg2: PacketID for identifying packet loss.
Packet(MessageType type, unsigned int& packetID, unsigned int lastReceivedPacket, unsigned int ackBitField);
Packet(MessageType type, unsigned int& packetID);
// Used to create packet from already existing data buffer.
Packet(char* data, const int sizeOfPacket);
Packet(char* data, const size_t sizeOfPacket);
Packet(MessageType type);
~Packet();
void Init(MessageType type, unsigned int& packetID, unsigned int lastReceivedPacket, unsigned int ackBitField);
void Init(MessageType type, unsigned int& packetID);
// Add primitive types like int, float, char...
template<typename T>
@@ -50,21 +50,19 @@ public:
// Pops the first element as if it was a string.
std::string ReadString();
char* ReadData(int SizeOfData);
// No purpose any more
//void ChangePacketID(unsigned int& packetID);
void ChangeHeaderInfo(unsigned int& packetID, unsigned int lastReceivedPacket, unsigned int ackBitField);
int Size() { return m_Offset; };
void ChangePacketID(unsigned int& packetID);
size_t Size() { return m_Offset; };
char* Data() { return m_Data; };
unsigned int DataReadSize() { return m_ReturnDataOffset; }
unsigned int MaxSize() { return m_MaxPacketSize; }
unsigned int HeaderSize() { return m_HeaderSize; }
size_t DataReadSize() { return m_ReturnDataOffset; }
size_t MaxSize() { return m_MaxPacketSize; }
size_t HeaderSize() { return m_HeaderSize; }
private:
char* m_Data;
unsigned int m_ReturnDataOffset = 0;
int m_Offset = 0;
unsigned int m_MaxPacketSize = 512;
unsigned int m_HeaderSize = 0;
size_t m_ReturnDataOffset = 0;
size_t m_Offset = 0;
size_t m_MaxPacketSize = 512;
size_t m_HeaderSize = 0;
void resizeData();
};
@@ -7,13 +7,7 @@ struct PlayerDefinition {
::EntityID EntityID = EntityID_Invalid;
std::string Name = "";
boost::asio::ip::udp::endpoint Endpoint;
// The ID of the last sent packet. (Local sequence number)
unsigned int PacketID;
// The ID of the last received packet. (Remote sequence number)
// This is sent as the ackNumber.
unsigned int LastPacketReceivedID;
// The bit pattern of the last 32 received packets.
unsigned int AckBitField;
std::clock_t StopTime;
};
+17 -17
View File
@@ -34,15 +34,16 @@ private:
// Sending messages to client logic
std::map<PlayerID, PlayerDefinition> m_ConnectedPlayers;
// HACK: Fix INPUTSIZE
char readBuffer[INPUTSIZE] = { 0 };
int bytesRead = 0;
size_t bytesRead = 0;
// time for previouse message
std::clock_t previousPingMessage = std::clock();
std::clock_t previousePingMessage = std::clock();
std::clock_t previousSnapshotMessage = std::clock();
std::clock_t timOutTimer = std::clock();
// How often we send messages (milliseconds)
int pingIntervalMs;
int snapshotInterval;
float pingIntervalMs;
float snapshotInterval;
int checkTimeOutInterval = 100;
int m_NextPlayerID = 0;
@@ -58,26 +59,25 @@ private:
PacketID m_PreviousPacketID = 0;
// Private member functions
void addChildrenToPacket(Packet& packet, EntityID entityID);
size_t receive(char* data);
void readFromClients();
void send(PlayerID player, Packet& packet);
void send(Packet& packet);
void broadcast(Packet& packet);
void sendSnapshot();
void addChildrenToPacket(Packet& packet, EntityID entityID);
void sendPing();
void checkForTimeOuts();
void disconnect(PlayerID playerID);
void identifyPacketLoss();
void kick(PlayerID player);
int receive(char* data);
void readFromClients();
void send(PlayerID playerID, Packet& packet);
void send(Packet& packet);
void sendSnapshot();
void sendPing();
void parseClientPing(PlayerID playerID);
void parseConnect(Packet& packet, PlayerID playerID);
void parseDisconnect();
void parseMessageType(Packet& packet);
void parseOnInputCommand(Packet& packet);
void parseOnPlayerDamage(Packet& packet);
void parseConnect(Packet& packet);
void parseDisconnect();
void parseClientPing();
void parsePing();
void identifyPacketLoss();
void kick(PlayerID player);
PlayerID GetPlayerIDFromEndpoint(boost::asio::ip::udp::endpoint endpoint);
// Debug event
EventRelay<Server, Events::InputCommand> m_EInputCommand;
@@ -0,0 +1,29 @@
#ifndef AnimationSystem_h__
#define AnimationSystem_h__
#include "GLM.h"
#include "Common.h"
#include "Core/System.h"
#include "Core/ResourceManager.h"
#include "Rendering/Model.h"
#include "Rendering/EAnimationComplete.h"
#include "Rendering/Skeleton.h"
class AnimationSystem : public PureSystem
{
public:
AnimationSystem(World* world, EventBroker* eventBroker)
: System(world, eventBroker)
, PureSystem("Animation")
{
}
~AnimationSystem() { }
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& animationComponent, double dt) override;
private:
};
#endif
@@ -7,6 +7,7 @@
#include "ShaderProgram.h"
//#include "Util/UnorderedMapVec2.h"
#include "Texture.h"
#include "imgui/imgui.h"
class DrawColorCorrectionPass
{
@@ -16,14 +17,13 @@ public:
void InitializeFrameBuffers();
void InitializeShaderPrograms();
void Draw(GLuint sceneTexture, GLuint bloomTexture);
void Draw(GLuint sceneTexture, GLuint bloomTexture, GLfloat gamma, GLfloat exposure);
private:
const IRenderer* m_Renderer;
ShaderProgram* m_ColorCorrectionProgram;
Model* m_ScreenQuad;
GLfloat m_Exposure;
};
#endif
+10
View File
@@ -30,9 +30,18 @@ public:
private:
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 DrawModelRenderQueues(std::list<std::shared_ptr<RenderJob>>& job, 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_BlackTexture;
Texture* m_NeutralNormalTexture;
Texture* m_GreyTexture;
FrameBuffer m_FinalPassFrameBuffer;
GLuint m_BloomTexture;
@@ -43,6 +52,7 @@ private:
const LightCullingPass* m_LightCullingPass;
ShaderProgram* m_ForwardPlusProgram;
ShaderProgram* m_ExplosionEffectProgram;
};
#endif
@@ -0,0 +1,18 @@
#ifndef Events_AnimationComplete_h__
#define Events_AnimationComplete_h__
#include "../Core/EventBroker.h"
#include "../Core/EntityWrapper.h"
namespace Events
{
struct AnimationComplete : Event
{
EntityWrapper Entity;
std::string Name;
};
}
#endif
@@ -0,0 +1,106 @@
#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
+7 -5
View File
@@ -25,21 +25,23 @@ class IRenderer
{
public:
GLFWwindow* Window() const { return m_Window; }
//Returns screen size including window border and header
Rectangle Resolution() const { return m_Resolution; }
void SetResolution(const Rectangle& resolution) { m_Resolution = resolution; }
virtual void SetResolution(const Rectangle& resolution) { m_Resolution = resolution; }
bool Fullscreen() { return m_Fullscreen; }
void SetFullscreen(bool fullscreen) { m_Fullscreen = fullscreen; }
virtual void SetFullscreen(bool fullscreen) { m_Fullscreen = fullscreen; }
bool VSYNC() const { return m_VSYNC; }
void SetVSYNC(bool vsync) { m_VSYNC = vsync; }
virtual 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 Update(double dt) = 0;
virtual void Draw(RenderFrame& rq) = 0;
virtual PickData Pick(glm::vec2 screenCord) = 0;
World* m_World; //Temp world, untill viktor merge.
protected:
Rectangle m_Resolution = Rectangle::Rectangle(1280, 720);
Rectangle m_ViewportSize = Rectangle::Rectangle(1280, 720);
bool m_Fullscreen = false;
bool m_VSYNC = false;
int m_GLVersion[2];
+40 -5
View File
@@ -13,18 +13,35 @@
#include "Camera.h"
#include "../Core/World.h"
#include "../Core/Transform.h"
#include "Skeleton.h"
struct ModelJob : RenderJob
{
ModelJob(Model* model, Camera* camera, glm::mat4 matrix, ::RawModel::MaterialGroup matGroup, ComponentWrapper modelComponent, World* world)
ModelJob(Model* model, Camera* camera, glm::mat4 matrix, ::RawModel::MaterialGroup matGroup, ComponentWrapper modelComponent, World* world, glm::vec4 fillColor, float fillPercentage)
: RenderJob()
{
Model = model;
TextureID = (matGroup.Texture) ? matGroup.Texture->ResourceID : 0;
DiffuseTexture = matGroup.Texture.get();
NormalTexture = matGroup.NormalMap.get();
SpecularTexture = matGroup.SpecularMap.get();
IncandescenceTexture = matGroup.IncandescenceMap.get();
if (modelComponent["DiffuseTexture"]) {
DiffuseTexture = matGroup.Texture.get();
} else {
DiffuseTexture = nullptr;
}
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;
SpecularColor = matGroup.SpecularColor;
IncandescenceColor = matGroup.IncandescenceColor;
@@ -37,6 +54,16 @@ struct ModelJob : RenderJob
glm::vec3 worldpos = glm::vec3(camera->ViewMatrix() * glm::vec4(abspos, 1));
Depth = worldpos.z;
World = world;
FillColor = fillColor;
FillPercentage = fillPercentage;
Skeleton = Model->m_RawModel->m_Skeleton;
if (world->HasComponent(Entity, "Animation") && Skeleton != nullptr) {
auto animationComponent = world->GetComponent(Entity, "Animation");
Animation = model->m_RawModel->m_Skeleton->GetAnimation(animationComponent["Name"]);
AnimationTime = (double)animationComponent["Time"];
}
};
unsigned int TextureID;
@@ -51,6 +78,11 @@ struct ModelJob : RenderJob
float Shininess = 0.f;
glm::vec4 Color;
const ::Model* Model = nullptr;
::Skeleton* Skeleton = nullptr;
const ::Skeleton::Animation* Animation = nullptr;
float AnimationTime = 0.f;
glm::vec4 DiffuseColor;
glm::vec4 SpecularColor;
glm::vec4 IncandescenceColor;
@@ -58,6 +90,9 @@ struct ModelJob : RenderJob
unsigned int EndIndex = 0;
World* World;
glm::vec4 FillColor = glm::vec4(0);
float FillPercentage = 0.0;
void CalculateHash() override
{
Hash = TextureID;
+1 -4
View File
@@ -1,8 +1,6 @@
#ifndef PickingPass_h__
#define PickingPass_h__
#include "IRenderer.h"
#include "PickingPassState.h"
#include "FrameBuffer.h"
@@ -10,8 +8,7 @@
#include "Util/UnorderedMapiVec2.h"
#include "../Core/EventBroker.h"
#include "../Core/World.h"
#include "Rendering/Skeleton.h"
class PickingPass
{
+11 -11
View File
@@ -75,21 +75,21 @@ private:
void ReadMeshFile(std::string filePath);
void ReadMeshFileHeader(unsigned int& offset, char* fileData, unsigned int& fileByteSize);
void ReadMesh(unsigned int& offset, char* fileData, unsigned int& fileByteSize);
void ReadVertices(unsigned int& offset, char* fileData, unsigned int& fileByteSize);
void ReadIndices(unsigned int& offset, char* fileData, unsigned int& fileByteSize);
void ReadMeshFileHeader(std::size_t& offset, char* fileData);
void ReadMesh(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
void ReadVertices(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
void ReadIndices(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
void ReadMaterialFile(std::string filePath);
void ReadMaterials(unsigned int &offset, char* fileData, unsigned int& fileByteSize);
void ReadMaterialSingle(unsigned int &offset, char* fileData, unsigned int& fileByteSize);
void ReadMaterials(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
void ReadMaterialSingle(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
void ReadAnimationFile(std::string filePath);
void ReadAnimationBindPoses(unsigned int &offset, char* fileData, unsigned int& fileByteSize);
void ReadAnimationJoint(unsigned int &offset, char* fileData, unsigned int& fileByteSize);
void ReadAnimationClips(unsigned int &offset, char* fileData, unsigned int& fileByteSize, unsigned int numberOfClips);
void ReadAnimationClipSingle(unsigned int &offset, char* fileData, unsigned int& fileByteSize, unsigned int clipIndex);
void ReadAnimationKeyFrame(unsigned int &offset, char* fileData, unsigned int& fileByteSize, unsigned int numberOfJoints, Skeleton::Animation& animation);
void ReadAnimationBindPoses(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
void ReadAnimationJoint(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
void ReadAnimationClips(std::size_t& offset, char* fileData, const unsigned int& fileByteSize, unsigned int numberOfClips);
void ReadAnimationClipSingle(std::size_t& offset, char* fileData, const 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 CreateSkeleton(std::vector<std::tuple<std::string, glm::mat4>> &boneInfo, std::map<std::string, int> &boneNameMapping, aiNode* node, int parentID);
};
+9 -2
View File
@@ -14,20 +14,24 @@
#include "TextJob.h"
#include "PointLightJob.h"
#include "DirectionalLightJob.h"
#include "ExplosionEffectJob.h"
struct RenderScene
{
::Camera* Camera = nullptr;
std::list<std::shared_ptr<RenderJob>> ForwardJobs;
std::list<std::shared_ptr<RenderJob>> OpaqueObjects;
std::list<std::shared_ptr<RenderJob>> TransparentObjects;
std::list<std::shared_ptr<RenderJob>> PointLightJobs;
std::list<std::shared_ptr<RenderJob>> TextJobs;
std::list<std::shared_ptr<RenderJob>> DirectionalLightJobs;
Rectangle Viewport;
bool ClearDepth = false;
glm::vec4 AmbientColor;
void Clear()
{
ForwardJobs.clear();
OpaqueObjects.clear();
TransparentObjects.clear();
PointLightJobs.clear();
TextJobs.clear();
DirectionalLightJobs.clear();
@@ -37,6 +41,9 @@ struct RenderScene
struct RenderFrame
{
public:
//TODO: Getters
GLfloat Gamma = 2.2f;
GLfloat Exposure = 1.f;
void Add(RenderScene &scene)
{
+9 -6
View File
@@ -29,22 +29,25 @@ private:
const IRenderer* m_Renderer;
RenderFrame* m_RenderFrame;
Camera* m_Camera;
World* m_World;
EntityWrapper m_CurrentCamera = EntityWrapper::Invalid;
EntityWrapper m_LocalPlayer = EntityWrapper::Invalid;
EventRelay<RenderSystem, Events::SetCamera> m_ESetCamera;
bool OnSetCamera(Events::SetCamera &event);
EventRelay<RenderSystem, Events::InputCommand> m_EInputCommand;
bool OnInputCommand(const Events::InputCommand& e);
EventRelay<RenderSystem, Events::PlayerSpawned> m_EPlayerSpawned;
bool OnPlayerSpawned(Events::PlayerSpawned& e);
void fillModels(std::list<std::shared_ptr<RenderJob>>& opaqueJobs, std::list<std::shared_ptr<RenderJob>>& transparentJobs);
void fillText(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);
EventRelay<RenderSystem, Events::InputCommand> m_EInputCommand;
bool OnInputCommand(const Events::InputCommand& e);
void fillModels(std::list<std::shared_ptr<RenderJob>>& jobs);
void fillLight(std::list<std::shared_ptr<RenderJob>>& jobs);
bool isChildOfACamera(EntityWrapper entity);
bool isChildOfCurrentCamera(EntityWrapper entity);
EventRelay<RenderSystem, Events::PlayerSpawned> m_EPlayerSpawned;
bool OnPlayerSpawned(Events::PlayerSpawned& e);
};
#endif
+2
View File
@@ -73,6 +73,8 @@ private:
void GenerateTexture(GLuint* texture, GLenum wrapping, GLenum filtering, glm::vec2 dimensions, GLint internalFormat, GLint format, GLenum type);
//--------------------ShaderPrograms-------------------//
ShaderProgram* m_BasicForwardProgram;
ShaderProgram* m_ExplosionEffectProgram;
};
#endif
+1 -1
View File
@@ -9,7 +9,7 @@ inline bool _GLERROR(const char* info, const char* file, const char* func, unsig
GLenum error = glGetError();
if (error != GL_NO_ERROR)
{
_LOG(LOG_LEVEL_ERROR, file, func, line, "GL Error: %s, %i, %s", info, error, gluErrorString(error));
_LOG(LOG_LEVEL_ERROR, file, func, line, "GL Error: %s\nError code: %i, %s\n", info, error, gluErrorString(error));
return true;
}
+24
View File
@@ -0,0 +1,24 @@
#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;
//}
}
};
+5 -2
View File
@@ -14,6 +14,7 @@
#include "Core/EKeyDown.h"
#include "Core/EntityFilePreprocessor.h"
#include "Core/SystemPipeline.h"
#include "ExplosionEffectSystem.h"
#include "Editor/EditorSystem.h"
#include "Core/EntityFile.h"
#include "Rendering/RenderSystem.h"
@@ -21,6 +22,7 @@
#include "Core/Octree.h"
#include "Rendering/Font.h"
#include "Systems/InterpolationSystem.h"
#include "Collision/EntityAABB.h"
// Network
#include <boost/thread.hpp>
#include "Network/Network.h"
@@ -48,8 +50,9 @@ private:
InputProxy* m_InputProxy;
GUI::Frame* m_FrameStack;
World* m_World;
Octree<AABB>* m_OctreeCollision;
Octree<AABB>* m_OctreeFrustrumCulling;
Octree<EntityAABB>* m_OctreeCollision;
Octree<EntityAABB>* m_OctreeTrigger;
Octree<EntityAABB>* m_OctreeFrustrumCulling;
SystemPipeline* m_SystemPipeline;
RenderFrame* m_RenderFrame;
// Network variables
+3 -3
View File
@@ -40,7 +40,7 @@ private:
int m_BlueTeamHomeCapturePoint = m_NotACapturePoint;
int m_NumberOfCapturePoints = 0;
std::map<int, EntityID> m_CapturePointNumberToEntityIDMap;
std::map<int, EntityWrapper> m_CapturePointNumberToEntityMap;
//std::vector<ComponentWrapper>
@@ -48,8 +48,8 @@ private:
bool m_ResetTimers = false;
//vectors which will keep track of enter/leave changes
std::vector<std::tuple<EntityID, EntityID>> m_ETriggerTouchVector;
std::vector<std::tuple<EntityID, EntityID>> m_ETriggerLeaveVector;
std::vector<std::tuple<EntityWrapper, EntityWrapper>> m_ETriggerTouchVector;
std::vector<std::tuple<EntityWrapper, EntityWrapper>> m_ETriggerLeaveVector;
};
#endif
+1 -1
View File
@@ -24,7 +24,7 @@ public:
private:
//methods which will take care of specific events
EventRelay<HealthSystem, Events::PlayerDamage> m_EPlayerDamage;
bool HealthSystem::OnPlayerDamaged(const Events::PlayerDamage& e);
bool HealthSystem::OnPlayerDamaged(Events::PlayerDamage& e);
EventRelay<HealthSystem, Events::PlayerHealthPickup> m_EPlayerHealthPickup;
bool HealthSystem::OnPlayerHealthPickup(const Events::PlayerHealthPickup& e);
+1 -1
View File
@@ -23,7 +23,7 @@ class InterpolationSystem : public PureSystem
glm::vec3 Position;
glm::vec3 Scale;
glm::quat Orientation;
double interpolationTime;
float interpolationTime;
};
public:
InterpolationSystem(World* world, EventBroker* eventBroker);
+21
View File
@@ -0,0 +1,21 @@
#ifndef LifetimeSystem_h__
#define LifetimeSystem_h__
#include "Core/System.h"
class LifetimeSystem : public ImpureSystem, PureSystem
{
public:
LifetimeSystem(World* world, EventBroker* eventBroker)
: System(world, eventBroker)
, PureSystem("Lifetime")
{ }
virtual void Update(double dt) override;
virtual void UpdateComponent(EntityWrapper& entity, ComponentWrapper& cLifetime, double dt) override;
private:
std::vector<EntityWrapper> m_Deletions;
};
#endif
+23
View File
@@ -0,0 +1,23 @@
#ifndef PlayerHUD_h__
#define PlayerHUD_h__
#include "../../Engine/Core/System.h"
#include "../../Engine/GLM.h"
#include "../../Engine/Rendering/ESetCamera.h"
#include <imgui/imgui.h>
class PlayerHUD : public ImpureSystem
{
public:
PlayerHUD(World* world, EventBroker* eventBrokerer);
~PlayerHUD();
virtual void Update(double dt) override;
private:
World* m_World;
EventBroker* m_EventBroker;
};
#endif
+3 -1
View File
@@ -11,6 +11,8 @@
#include "Core/EShoot.h"
#include "Core/EPlayerSpawned.h"
#include "Input/EInputCommand.h"
#include "Core/EntityFile.h"
#include "Core/EntityFileParser.h"
#include <tuple>
#include <vector>
@@ -33,7 +35,7 @@ private:
EventRelay<WeaponSystem, Events::PlayerSpawned> m_EPlayerSpawned;
bool WeaponSystem::OnPlayerSpawned(const Events::PlayerSpawned& e);
EventRelay<WeaponSystem, Events::Shoot> m_EShoot;
bool WeaponSystem::OnShoot(const Events::Shoot& e);
bool WeaponSystem::OnShoot(Events::Shoot& e);
EventRelay<WeaponSystem, Events::InputCommand> m_EInputCommand;
bool WeaponSystem::OnInputCommand(const Events::InputCommand& e);
};
-4
View File
@@ -15,10 +15,6 @@ Space=Jump
LeftControl=Crouch
LeftShift=Sprint
F1=ToggleEditor
1=EditorToolMove
2=EditorToolRotate
3=EditorToolScale
X=EditorToggleTransformSpace
C=ConnectToServer
N=SwitchToServer
M=SwitchToClient
+7
View File
@@ -11,7 +11,9 @@
<xs:include schemaLocation="Components/AABB.xsd"/>
<xs:include schemaLocation="Components/PointLight.xsd"/>
<xs:include schemaLocation="Components/DirectionalLight.xsd"/>
<xs:include schemaLocation="Components/SceneLight.xsd"/>
<xs:include schemaLocation="Components/Trigger.xsd"/>
<xs:include schemaLocation="Components/ExplosionEffect.xsd"/>
<xs:include schemaLocation="Components/Health.xsd"/>
<xs:include schemaLocation="Components/CapturePoint.xsd"/>
<xs:include schemaLocation="Components/Listener.xsd"/>
@@ -23,4 +25,9 @@
<xs:include schemaLocation="Components/Team.xsd"/>
<xs:include schemaLocation="Components/UniformScale.xsd"/>
<xs:include schemaLocation="Components/EditorWidget.xsd"/>
<xs:include schemaLocation="Components/HealthHUD.xsd"/>
<xs:include schemaLocation="Components/Animation.xsd"/>
<xs:include schemaLocation="Components/Fill.xsd"/>
<xs:include schemaLocation="Components/Lifetime.xsd"/>
<xs:include schemaLocation="Components/HiddenForLocalPlayer.xsd"/>
</xs:schema>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Animation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Animation.xsd">
<Name></Name>
<Time>0</Time>
<Speed>0</Speed>
<Loop>true</Loop>
</Animation>
+16
View File
@@ -0,0 +1,16 @@
<?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="Animation">
<xs:complexType>
<xs:all>
<xs:element name="Name" type="t:string" minOccurs="0"/>
<xs:element name="Time" type="t:double" minOccurs="0"/>
<xs:element name="Speed" type="t:double" minOccurs="0"/>
<xs:element name="Loop" type="t:bool" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
+2 -13
View File
@@ -2,22 +2,11 @@
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
<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:include schemaLocation="../Types/TeamEnum.xsd"/>
<xs:element name="CapturePoint">
<xs:annotation>
<xs:documentation>A Capture Point. Add a Team Component to specify who currently owns it</xs:documentation>
<xs:documentation>A Capture Point. Make sure to update the HomePoint,CapturePointNumber,Team for each</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
@@ -0,0 +1,17 @@
<?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>
@@ -0,0 +1,57 @@
<?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>
+5
View File
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Fill xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Fill.xsd">
<Percentage>0.0</Percentage>
<Color R="1" G="1" B="1" A="1"/>
</Fill>
+14
View File
@@ -0,0 +1,14 @@
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
<xs:element name="Fill">
<xs:complexType>
<xs:all>
<xs:element name="Percentage" type="t:double" minOccurs="0"/>
<xs:element name="Color" type="t:Color" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<HealthHUD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="HealthHUD.xsd"/>
@@ -0,0 +1,8 @@
<?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="HealthHUD">
</xs:element>
</xs:schema>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<HiddenForLocalPlayer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="HiddenForLocalPlayer.xsd"/>
@@ -0,0 +1,11 @@
<?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>
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Lifetime xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Lifetime.xsd">
<Lifetime>0</Lifetime>
</Lifetime>
+13
View File
@@ -0,0 +1,13 @@
<?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="Lifetime">
<xs:complexType>
<xs:all>
<xs:element name="Lifetime" type="t:double" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
+5
View File
@@ -2,5 +2,10 @@
<Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Model.xsd">
<Resource></Resource>
<Color R="1" G="1" B="1" A="1"/>
<Transparent>false</Transparent>
<Visible>true</Visible>
<DiffuseTexture>true</DiffuseTexture>
<NormalMap>true</NormalMap>
<SpecularMap>true</SpecularMap>
<GlowMap>true</GlowMap>
</Model>
+16 -1
View File
@@ -15,8 +15,23 @@
<xs:element name="Color" type="t:Color" minOccurs="0">
<xs:annotation><xs:documentation>Color tint</xs:documentation></xs:annotation>
</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:annotation><xs:documentation>Wether the model is visible or not</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Whether 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:all>
</xs:complexType>
@@ -0,0 +1,7 @@
<?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>
@@ -0,0 +1,25 @@
<?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 -12
View File
@@ -2,18 +2,7 @@
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:t="types">
<xs:import schemaLocation="../Types.xsd" namespace="types"/>
<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:include schemaLocation="../Types/TeamEnum.xsd"/>
<xs:element name="Team">
<xs:annotation>
+5 -5
View File
@@ -20,7 +20,7 @@
<Entity>
<Components>
<c:Model>
<Resource>models/dummyscene.mesh</Resource>
<Resource>Models/Test/DummyScene.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0" Y="-0" Z="0"/>
@@ -31,7 +31,7 @@
<Entity>
<Components>
<c:Model>
<Resource>models/animtest.</Resource>
<Resource>Models/Test/AnimTest.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="-0.0966923237" Y="1.2939688" Z="0.399702221"/>
@@ -42,7 +42,7 @@
<Entity>
<Components>
<c:Model>
<Resource>models/animTest.mesh</Resource>
<Resource>Models/Test/AnimTest.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0" Y="1.31816244" Z="1.1888907"/>
@@ -53,7 +53,7 @@
<Entity>
<Components>
<c:Model>
<Resource>models/animTest.mesh</Resource>
<Resource>Models/Test/AnimTest.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0.708824873" Y="1.30000007" Z="0"/>
@@ -64,7 +64,7 @@
<Entity>
<Components>
<c:Model>
<Resource>models/animTest.mesh</Resource>
<Resource>Models/Test/AnimTest.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="1.36948848" Y="1.20000005" Z="0"/>
@@ -0,0 +1,51 @@
<?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/Weapons/Blue/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>
@@ -0,0 +1,17 @@
<?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>
+7 -7
View File
@@ -9,7 +9,7 @@
<Entity>
<Components>
<c:Model>
<Resource>../assets/Models/DummyScene.mesh</Resource>
<Resource>Models/Test/DummyScene.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -41,7 +41,7 @@
<HomePointForTeam>3</HomePointForTeam>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="0.200000003" R="0"/>
</c:Model>
<c:Team>
@@ -61,7 +61,7 @@
<CapturePointNumber>1</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="1" R="1"/>
</c:Model>
<c:Team>
@@ -81,7 +81,7 @@
<CapturePointNumber>2</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="1" R="0"/>
</c:Model>
<c:Team>
@@ -102,7 +102,7 @@
<CapturePointNumber>3</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="0.200000003" R="1"/>
</c:Model>
<c:Team>
@@ -120,7 +120,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0.482352942" G="0.490196079" R="1"/>
</c:Model>
<c:Player/>
@@ -138,7 +138,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="1" G="0.196078435" R="0.196078435"/>
</c:Model>
<c:Player/>
@@ -9,7 +9,7 @@
<Entity>
<Components>
<c:Model>
<Resource>../assets/Models/DummyScene.mesh</Resource>
<Resource>Models/Test/DummyScene.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -42,7 +42,7 @@
<CaptureTimer>6.9158446328696002</CaptureTimer>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="1" R="1"/>
</c:Model>
<c:Team>
@@ -63,7 +63,7 @@
<CapturePointNumber>1</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="1" R="0"/>
</c:Model>
<c:Team>
@@ -83,7 +83,7 @@
<CapturePointNumber>2</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="0.200000003" R="1"/>
</c:Model>
<c:Team>
@@ -104,7 +104,7 @@
<CapturePointNumber>3</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="0.200000003" R="1"/>
</c:Model>
<c:Team>
@@ -122,7 +122,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0.482352942" G="0.490196079" R="1"/>
</c:Model>
<c:Player/>
@@ -140,7 +140,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="1" G="0.196078435" R="0.196078435"/>
</c:Model>
<c:Player/>
@@ -9,7 +9,7 @@
<Entity>
<Components>
<c:Model>
<Resource>../assets/Models/DummyScene.mesh</Resource>
<Resource>Models/Test/DummyScene.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -41,7 +41,7 @@
<HomePointForTeam>3</HomePointForTeam>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="0.200000003" R="0"/>
</c:Model>
<c:Team>
@@ -61,7 +61,7 @@
<CapturePointNumber>1</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="1" R="0"/>
</c:Model>
<c:Team/>
@@ -79,7 +79,7 @@
<CapturePointNumber>2</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="1" R="1"/>
</c:Model>
<c:Team/>
@@ -98,7 +98,7 @@
<CapturePointNumber>3</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="0.200000003" R="1"/>
</c:Model>
<c:Team>
@@ -116,7 +116,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0.482352942" G="0.490196079" R="1"/>
</c:Model>
<c:Player/>
@@ -134,7 +134,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="1" G="0.196078435" R="0.196078435"/>
</c:Model>
<c:Player/>
+10 -10
View File
@@ -9,7 +9,7 @@
<Entity>
<Components>
<c:Model>
<Resource>../assets/Models/DummyScene.mesh</Resource>
<Resource>Models/Test/DummyScene.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -41,7 +41,7 @@
<HomePointForTeam>3</HomePointForTeam>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="0.200000003" R="0"/>
</c:Model>
<c:Team>
@@ -61,7 +61,7 @@
<CapturePointNumber>1</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="1" R="1"/>
</c:Model>
<c:Team>
@@ -81,7 +81,7 @@
<CapturePointNumber>2</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="1" R="0"/>
</c:Model>
<c:Team>
@@ -101,7 +101,7 @@
<CapturePointNumber>3</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="0.200000003" R="1"/>
</c:Model>
<c:Team>
@@ -122,7 +122,7 @@
<CapturePointNumber>4</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="0.200000003" R="1"/>
</c:Model>
<c:Team>
@@ -140,7 +140,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0.482352942" G="0.490196079" R="1"/>
</c:Model>
<c:Player/>
@@ -158,7 +158,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0.482352942" G="0.490196079" R="1"/>
</c:Model>
<c:Player/>
@@ -176,7 +176,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="1" G="0.196078435" R="0.196078435"/>
</c:Model>
<c:Player/>
@@ -194,7 +194,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="1" G="0.196078435" R="0.196078435"/>
</c:Model>
<c:Player/>
+10 -10
View File
@@ -9,7 +9,7 @@
<Entity>
<Components>
<c:Model>
<Resource>../assets/Models/DummyScene.mesh</Resource>
<Resource>Models/Test/DummyScene.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -41,7 +41,7 @@
<HomePointForTeam>3</HomePointForTeam>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="0.200000003" R="0"/>
</c:Model>
<c:Team>
@@ -61,7 +61,7 @@
<CapturePointNumber>1</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="1" R="0"/>
</c:Model>
<c:Team/>
@@ -79,7 +79,7 @@
<CapturePointNumber>2</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
</c:Model>
<c:Team/>
<c:Transform>
@@ -96,7 +96,7 @@
<CapturePointNumber>3</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="1" R="1"/>
</c:Model>
<c:Team/>
@@ -115,7 +115,7 @@
<CapturePointNumber>4</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="0.200000003" R="1"/>
</c:Model>
<c:Team>
@@ -133,7 +133,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0.482352942" G="0.490196079" R="1"/>
</c:Model>
<c:Player/>
@@ -151,7 +151,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0.482352942" G="0.490196079" R="1"/>
</c:Model>
<c:Player/>
@@ -169,7 +169,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="1" G="0.196078435" R="0.196078435"/>
</c:Model>
<c:Player/>
@@ -187,7 +187,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="1" G="0.196078435" R="0.196078435"/>
</c:Model>
<c:Player/>
@@ -0,0 +1,173 @@
<?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>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>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>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>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>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>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>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>Models/Test/DummyScene.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="-0.600000024" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
@@ -6,7 +6,7 @@
<Orientation X="0" Y="0" Z="0"/>
</c:Transform>
<c:Model>
<Resource>Models/DummyScene.mesh</Resource>
<Resource>Models/Test/DummyScene.mesh</Resource>
</c:Model>
</Components>
<Children>
@@ -28,7 +28,7 @@
<Scale X="2" Y="2" Z="2"/>
</c:Transform>
<c:Model>
<Resource>Models/RotationWidgetX.mesh</Resource>
<Resource>Models/Widgets/Rotate/RotationWidgetX.mesh</Resource>
</c:Model>
<c:Trigger>
</c:Trigger>
+275 -43
View File
@@ -2,11 +2,13 @@
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:Transform/>
<c:Transform>
<Position X="0" Y="-1" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Entity name="Ground">
<Components>
<c:Model>
<Resource>Models/Core/UnitCube.mesh</Resource>
@@ -18,90 +20,320 @@
</Components>
<Children/>
</Entity>
<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>
<Entity name="Listener">
<Components>
<c:Camera/>
<c:Listener/>
<c:Transform>
<Position X="1.36896265" Y="4.4259491" Z="10.6640663"/>
<Position X="1.36896265" Y="4.10503054" Z="10.6640663"/>
<Orientation X="-0.0349078141" Y="0.157154545" Z="-2.60252193e-07"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity>
<Entity name="DirectionalLight">
<Components>
<c:DirectionalLight/>
<c:DirectionalLight>
<Intensity>0.80000001192092896</Intensity>
</c:DirectionalLight>
<c:Model>
<Resource>Models/DirectionalLightWidget.mesh</Resource>
<Resource>Models/Widgets/Lights/DirectionalLightWidget.mesh</Resource>
</c:Model>
<c:RaptorCopter>
<Speed>1</Speed>
<Axis X="0" Y="1" Z="0"/>
</c:RaptorCopter>
<c:Transform>
<Position X="2.1529963" Y="6.59221172" Z="0.169116676"/>
<Orientation X="4.32000017" Y="4.6340003" Z="0"/>
<Orientation X="4.16300011" Y="7875.41211" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity>
<Entity name="AssaultTPose">
<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>
<Resource>Models/Assault.mesh</Resource>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="-2.00568962" Y="0.527161121" Z="0"/>
<Position X="-1.68900967" Y="0.527161121" Z="-1.59648728"/>
<Orientation X="0" Y="1.64900005" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Entity name="SecondaryWeapon">
<Components>
<c:Model>
<Resource>Models/SecondaryWeapon.fbx</Resource>
<Resource>Models/Weapons/Red/AssaultWeaponRed.mesh</Resource>
<Transparent>true</Transparent>
</c:Model>
<c:Transform>
<Position X="-0.546139359" Y="0.853016734" Z="0.177482292"/>
<Orientation X="1.47266471" Y="0.524984181" Z="1.243698"/>
<Position X="-0.560000002" Y="0.754308224" Z="0.181485131"/>
<Orientation X="0.989000022" Y="0" Z="6.10900021"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="SecondaryWeaponRed">
<Components>
<c:Model>
<Resource>Models/Weapons/Red/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>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity>
<Entity name="AnimationGroupOrigin">
<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/Characters/Assault/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/Characters/Assault/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>
<c:Model>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Props/TreeLog.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0" Y="3.70000029" Z="0"/>
<Position X="-4" Y="0.698000014" Z="-1"/>
<Orientation X="0" Y="2.74900007" Z="0"/>
</c:Transform>
</Components>
<Children/>
</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/Test/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/Test/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/Test/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/Test/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>
</Entity>
@@ -18,7 +18,7 @@
<Axis X="1" Y="0" Z="0"/>
</c:EditorWidget>
<c:Model>
<Resource>Models/RotationWidgetX.mesh</Resource>
<Resource>Models/Widgets/Rotate/RotationWidgetX.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -33,7 +33,7 @@
<Axis X="0" Y="1" Z="0"/>
</c:EditorWidget>
<c:Model>
<Resource>Models/RotationWidgetY.mesh</Resource>
<Resource>Models/Widgets/Rotate/RotationWidgetY.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -48,7 +48,7 @@
<Axis X="0" Y="0" Z="1"/>
</c:EditorWidget>
<c:Model>
<Resource>Models/RotationWidgetZ.mesh</Resource>
<Resource>Models/Widgets/Rotate/RotationWidgetZ.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -3,7 +3,7 @@
<Components>
<c:Model>
<Resource>Models/ScaleWidgetOrigin.mesh</Resource>
<Resource>Models/Widgets/Scale/ScalingWidgetOrigin.mesh</Resource>
</c:Model>
<c:Transform/>
<c:UniformScale>
@@ -20,7 +20,7 @@
</Type>
</c:EditorWidget>
<c:Model>
<Resource>Models/ScaleWidgetX.mesh</Resource>
<Resource>Models/Widgets/Scale/ScalingWidgetX.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -34,7 +34,7 @@
</Type>
</c:EditorWidget>
<c:Model>
<Resource>Models/ScaleWidgetY.mesh</Resource>
<Resource>Models/Widgets/Scale/ScalingWidgetY.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -48,7 +48,7 @@
</Type>
</c:EditorWidget>
<c:Model>
<Resource>Models/ScaleWidgetZ.mesh</Resource>
<Resource>Models/Widgets/Scale/ScalingWidgetZ.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -3,7 +3,7 @@
<Components>
<c:Model>
<Resource>Models/TranslationWidgetOrigin.mesh</Resource>
<Resource>Models/Widgets/Translate/TranslationWidgetOrigin.mesh</Resource>
</c:Model>
<c:Transform/>
<c:UniformScale>
@@ -18,7 +18,7 @@
<Axis X="1" Y="0" Z="0"/>
</c:EditorWidget>
<c:Model>
<Resource>Models/TranslationWidgetX.mesh</Resource>
<Resource>Models/Widgets/Translate/TranslationWidgetX.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -30,7 +30,7 @@
<Axis X="0" Y="1" Z="0"/>
</c:EditorWidget>
<c:Model>
<Resource>Models/TranslationWidgetY.mesh</Resource>
<Resource>Models/Widgets/Translate/TranslationWidgetY.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -42,7 +42,7 @@
<Axis X="0" Y="0" Z="1"/>
</c:EditorWidget>
<c:Model>
<Resource>Models/TranslationWidgetZ.mesh</Resource>
<Resource>Models/Widgets/Translate/TranslationWidgetZ.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -54,7 +54,7 @@
<Axis X="0" Y="1" Z="1"/>
</c:EditorWidget>
<c:Model>
<Resource>Models/WidgetPlaneX.mesh</Resource>
<Resource>Models/Widgets/Translate/TranslationWidgetPlaneX.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -66,7 +66,7 @@
<Axis X="1" Y="0" Z="1"/>
</c:EditorWidget>
<c:Model>
<Resource>Models/WidgetPlaneY.mesh</Resource>
<Resource>Models/Widgets/Translate/TranslationWidgetPlaneY.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -78,21 +78,12 @@
<Axis X="1" Y="1" Z="0"/>
</c:EditorWidget>
<c:Model>
<Resource>Models/WidgetPlaneZ.mesh</Resource>
<Resource>Models/Widgets/Translate/TranslationWidgetPlaneZ.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
<Children/>
</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>
</Entity>
+1 -11
View File
@@ -5,16 +5,6 @@
<c:Transform/>
</Components>
<Children>
<Entity>
<Components>
<c:Model>
<Resource></Resource>
</c:Model>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
<Children/>
</Entity>
+78
View File
@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Entity name="GotToGoFast" 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.00432979874" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Components>
<c:Model>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="39.2156868" R="392.15686"/>
</c:Model>
<c:RaptorCopter>
<Axis X="1.50000012" Y="-2.20000005" Z="2.10000014"/>
</c:RaptorCopter>
<c:Transform>
<Position X="0" Y="2.87819886" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Components>
<c:Animation>
<Name>Run</Name>
<Time>0.56277947897317659</Time>
<Speed>1</Speed>
</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>
<Resource>Models/AssaultAnimated.mesh</Resource>
<Color A="1" B="392156.875" G="1" R="1"/>
</c:Model>
<c:Transform>
<Position X="0" Y="0.5" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Components>
<c:Text>
<Content>pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew pew </Content>
<Resource>Fonts/DroidSans.ttf,60</Resource>
<Color A="0" B="0.972549021" G="3.92156863" R="39.2156868"/>
<Alignment>
<Left/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="0.245514169" Y="0.817000031" Z="-0.883219421"/>
<Scale X="0.300000012" Y="0.300000012" Z="1"/>
<Orientation X="0" Y="1.52600002" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity>
<Components>
<c:DirectionalLight/>
<c:Transform/>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
+117 -2
View File
@@ -9,7 +9,7 @@
<Entity name="Scenemesh">
<Components>
<c:Model>
<Resource>Models\MapVersion1.mesh</Resource>
<Resource>Models/LevelBase/MapVersion1.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -21,7 +21,7 @@
<Intensity>2</Intensity>
</c:DirectionalLight>
<c:Model>
<Resource>Models/DirectionalLightWidget.mesh</Resource>
<Resource>Models/Widgets/Lights/DirectionalLightWidget.mesh</Resource>
<Visible>false</Visible>
</c:Model>
<c:Transform>
@@ -123,6 +123,121 @@
</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>
</Children>
</Entity>
+1 -1
View File
@@ -19,7 +19,7 @@
<Entity>
<Components>
<c:Model>
<Resource>models/animTest.mesh</Resource>
<Resource>Models/Test/AnimTest.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
+122 -6
View File
@@ -42,7 +42,7 @@
<Components>
<c:SpawnPoint/>
<c:Model>
<Resource>Models/Assault.mesh</Resource>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
<Color A="1" B="0" G="0" R="1"/>
</c:Model>
<c:Transform>
@@ -55,7 +55,7 @@
<Components>
<c:SpawnPoint/>
<c:Model>
<Resource>Models/Assault.mesh</Resource>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
<Color A="1" B="0.0117647061" G="0" R="1"/>
</c:Model>
<c:Transform>
@@ -70,7 +70,7 @@
<Components>
<c:DirectionalLight/>
<c:Model>
<Resource>Models/DirectionalLightWidget.mesh</Resource>
<Resource>sModels/Widgets/Lights/DirectionalLightWidget.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="-6.00145912" Y="1.42697716" Z="3.04144025"/>
@@ -146,7 +146,6 @@
</c:Team>
<c:Transform>
<Position X="0.300000012" Y="0.0270000007" Z="6.67400026"/>
<Orientation X="0" Y="3.20700026" Z="0"/>
</c:Transform>
</Components>
<Children>
@@ -154,7 +153,7 @@
<Components>
<c:SpawnPoint/>
<c:Model>
<Resource>Models/Assault.mesh</Resource>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
<Color A="1" B="1" G="0.254901975" R="0"/>
</c:Model>
<c:Transform>
@@ -167,7 +166,7 @@
<Components>
<c:SpawnPoint/>
<c:Model>
<Resource>Models/Assault.mesh</Resource>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
<Color A="1" B="1" G="0.254901975" R="0"/>
</c:Model>
<c:Transform>
@@ -178,6 +177,123 @@
</Entity>
</Children>
</Entity>
<Entity name="Player">
<Components>
<c:AABB>
<Origin X="0" Y="0.772000015" Z="0"/>
<Size X="1" Y="1.60000002" Z="1"/>
</c:AABB>
<c:Collidable/>
<c:Model/>
<c:Physics>
<Gravity>false</Gravity>
</c:Physics>
<c:Player>
<MovementSpeed>5</MovementSpeed>
</c:Player>
<c:Team>
<Team>
<Red/>
</Team>
</c:Team>
<c:Transform>
<Position X="-1.68112314" Y="0.0264999866" Z="3.06287026"/>
<Orientation X="0" Y="2.14675093" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="Camera">
<Components>
<c:Camera/>
<c:Transform>
<Position X="0" Y="1.37700009" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="PlayerName">
<Components>
<c:Text>
<Resource>Fonts/DroidSans.ttf,100</Resource>
<Color A="1" B="0" G="1" R="0"/>
<Visible>false</Visible>
</c:Text>
<c:Transform>
<Position X="0" Y="0.247910097" Z="-0.447844714"/>
<Scale X="0.100000001" Y="0.113000005" Z="0.5"/>
<Orientation X="0" Y="3.14199996" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="CameraModel">
<Components>
<c:Model>
<Resource>Models/Widgets/Camera.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0" Y="0.0331346765" Z="-0.0792061687"/>
<Scale X="1.30000007" Y="1.50000012" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="ThirdPersonCamera">
<Components>
<c:Camera/>
<c:Model>
<Resource>Models/Widgets/Camera.mesh</Resource>
<Visible>false</Visible>
</c:Model>
<c:Transform>
<Position X="-0.284000009" Y="1.83800006" Z="1.18900001"/>
<Orientation X="5.95600033" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="PlayerModel">
<Components>
<c:Model>
<Resource>Models/Characters/Assault/AssaultHeadless.mesh</Resource>
<Color A="1" B="0" G="0" R="1"/>
</c:Model>
<c:Transform>
<Orientation X="0" Y="3.14159274" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="AABBStanding">
<Components>
<c:Model>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="0.427450985" B="1" G="1" R="1"/>
<Visible>false</Visible>
</c:Model>
<c:Transform>
<Position X="0" Y="0.772000015" Z="0"/>
<Scale X="1" Y="1.60000002" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="AABBCrouching">
<Components>
<c:Model>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="0.745098054" B="1" G="0" R="1"/>
<Visible>false</Visible>
</c:Model>
<c:Transform>
<Position X="0" Y="0.772000015" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
+85 -12
View File
@@ -7,8 +7,10 @@
<Size X="1" Y="1.60000002" Z="1"/>
</c:AABB>
<c:Collidable/>
<c:Model/>
<c:Physics/>
<c:Health/>
<c:Physics>
<Velocity X="2.30999646e-23" Y="0" Z="1.05272533e-23"/>
</c:Physics>
<c:Player>
<MovementSpeed>5</MovementSpeed>
</c:Player>
@@ -18,8 +20,7 @@
</Team>
</c:Team>
<c:Transform>
<Position X="-0.246963501" Y="0.0265000071" Z="3.01600003"/>
<Orientation X="0" Y="2.14675093" Z="0"/>
<Position X="9.56501799e-22" Y="-0.471999973" Z="4.35902473e-22"/>
</c:Transform>
</Components>
@@ -37,10 +38,9 @@
<c:Text>
<Resource>Fonts/DroidSans.ttf,100</Resource>
<Color A="1" B="0" G="1" R="0"/>
<Visible>false</Visible>
</c:Text>
<c:Transform>
<Position X="0" Y="0.247910097" Z="-0.447844714"/>
<Position X="0.100000001" Y="0.248000011" Z="-0.248000011"/>
<Scale X="0.100000001" Y="0.113000005" Z="0.5"/>
<Orientation X="0" Y="3.14199996" Z="0"/>
</c:Transform>
@@ -50,7 +50,8 @@
<Entity name="CameraModel">
<Components>
<c:Model>
<Resource>Models/Camera.mesh</Resource>
<Resource>Models/Widgets/Camera.mesh</Resource>
<Visible>false</Visible>
</c:Model>
<c:Transform>
<Position X="0" Y="0.0331346765" Z="-0.0792061687"/>
@@ -59,13 +60,81 @@
</Components>
<Children/>
</Entity>
<Entity name="HUD">
<Components>
<c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
</c:Transform>
</Components>
<Children>
<Entity name="HealthBar">
<Components>
<c:Fill>
<Percentage>1</Percentage>
<Color A="0" B="1" G="0" R="0"/>
</c:Fill>
<c:HealthHUD/>
<c:Model>
<Resource>Models/Core/UnitHexagon.mesh</Resource>
<Color A="1" B="0.70588237" G="0.70588237" R="0.70588237"/>
</c:Model>
<c:Transform>
<Position X="-0.383000016" Y="-0.185000002" Z="0"/>
<Scale X="0.150000006" Y="0.150000006" Z="0.150000006"/>
<Orientation X="0" Y="0.594000041" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Crosshair">
<Components>
<c:Model>
<Resource>Models/Weapons/CrosshairQuad.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0" Y="0" Z="0.200000003"/>
<Scale X="0.00600000005" Y="1" Z="0.00600000005"/>
<Orientation X="1.57000005" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Weapon">
<Components>
<c:ExplosionEffect>
<ColorByDistance>true</ColorByDistance>
<Velocity X="0.800000012" Y="0.0379999988" Z="0"/>
<ExplosionDuration>3.7999999523162842</ExplosionDuration>
<EndColor A="0" B="23.5294113" G="11.7647057" R="0"/>
<Randomness>true</Randomness>
</c:ExplosionEffect>
<c:Model>
<Resource>Models/Weapons/Red/AssaultWeaponRed.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0.180000007" Y="-0.183000013" Z="0"/>
<Orientation X="0" Y="3.08300018" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzle">
<Components>
<c:Transform>
<Position X="0.215000004" Y="-0.153000012" Z="-0.266000003"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity name="ThirdPersonCamera">
<Components>
<c:Camera/>
<c:Model>
<Resource>Models/Camera.mesh</Resource>
<Resource>Models/Widgets/Camera.mesh</Resource>
<Visible>false</Visible>
</c:Model>
<c:Transform>
@@ -77,13 +146,17 @@
</Entity>
<Entity name="PlayerModel">
<Components>
<c:Animation>
<Name>Hold Pos</Name>
<Time>0.73506627647571587</Time>
<Speed>1</Speed>
</c:Animation>
<c:HiddenForLocalPlayer/>
<c:Model>
<Resource>Models/AssaultHeadless.mesh</Resource>
<Resource>Models/Characters/Assault/AssaultAnimated.mesh</Resource>
<Color A="1" B="0" G="0" R="1"/>
</c:Model>
<c:Transform>
<Orientation X="0" Y="3.14159274" Z="0"/>
</c:Transform>
<c:Transform/>
</Components>
<Children/>
</Entity>
@@ -0,0 +1,20 @@
<?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
+17
View File
@@ -0,0 +1,17 @@
<?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:Model>
<Resource>Models/Core/UnitCylinder.mesh</Resource>
<Color A="0" B="0" G="0" R="39.2156868"/>
</c:Model>
<c:Transform>
<Scale X="0.0400000028" Y="26.2000008" Z="0.0400000028"/>
<Orientation X="1.57070005" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:Lifetime>
<Lifetime>0.25</Lifetime>
</c:Lifetime>
<c:Model>
<Resource>Models/Weapons/CylinderBullet.mesh</Resource>
<Color A="0.156862751" B="39.2156868" G="7.84313726" R="0"/>
<Transparent>true</Transparent>
</c:Model>
<c:Transform>
<Scale X="0.0109999999" Y="0.0289999992" Z="100"/>
</c:Transform>
</Components>
<Children/>
</Entity>
+17
View File
@@ -0,0 +1,17 @@
<?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:Model>
<Resource>Models/Core/UnitCylinder.mesh</Resource>
<Color A="0" B="0" G="0" R="39.2156868"/>
</c:Model>
<c:Transform>
<Scale X="0.0400000028" Y="26.2000008" Z="0.0400000028"/>
<Orientation X="1.57070005" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Entity xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:Lifetime>
<Lifetime>0.25</Lifetime>
</c:Lifetime>
<c:Model>
<Resource>Models/Weapons/CylinderBullet.mesh</Resource>
<Color A="0.156862751" B="0" G="0.525490224" R="39.2156868"/>
<Transparent>true</Transparent>
</c:Model>
<c:Transform>
<Scale X="0.0110000009" Y="0.029000001" Z="100"/>
</c:Transform>
</Components>
<Children/>
</Entity>
+157 -68
View File
@@ -6,34 +6,115 @@
</Components>
<Children>
<Entity>
<Entity name="Player">
<Components>
<c:Camera>
<Name>ActionCamera</Name>
</c:Camera>
<c:Model>
<Resource>Models/Camera.mesh</Resource>
</c:Model>
<c:Health>
<Health>65.990005493164063</Health>
</c:Health>
<c:Player/>
<c:Transform>
<Position X="-0.504807115" Y="6.00582743" Z="9.68687439"/>
<Orientation X="-0.733036518" Y="0.000105090476" Z="5.12391125e-07"/>
<Position X="0" Y="0" Z="2.5"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Entity name="Model">
<Components>
<c:Text>
<Content>Camera #2</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Alignment>0</Alignment>
</c:Text>
<c:Model>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
<Color A="1" B="3.92156863" G="3.92156863" R="3.92156863"/>
</c:Model>
<c:Transform>
<Position X="0.700063765" Y="0.310270816" Z="-1"/>
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
<Orientation X="0" Y="3.14159203" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Camera">
<Components>
<c:Camera>
<FOV>80</FOV>
</c:Camera>
<c:Model>
<Resource>Models/Widgets/Camera.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0" Y="1.39121652" Z="-0.043014247"/>
<Orientation X="6.28300047" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="HUD">
<Components>
<c:Transform>
<Position X="0" Y="-0.000463247066" Z="-0.744767368"/>
</c:Transform>
</Components>
<Children>
<Entity name="Hexagon">
<Components>
<c:HealthHUD/>
<c:Fill>
<Percentage>0.65990006923675537</Percentage>
<Color A="0" B="0.659900069" G="0" R="0.340099931"/>
</c:Fill>
<c:Model>
<Resource>Models/Core/UnitHexagon.mesh</Resource>
<Color A="0.313725501" B="0.70588237" G="0.70588237" R="0.70588237"/>
</c:Model>
<c:Transform>
<Position X="-0.285538822" Y="-0.282350302" Z="-1.52214652e-05"/>
<Scale X="0.200000003" Y="0.200000003" Z="0.5"/>
<Orientation X="0" Y="0.666000009" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="Ammo">
<Components>
<c:Text>
<Content>24</Content>
<Resource>Fonts/DroidSans.ttf,60</Resource>
</c:Text>
<c:Transform>
<Position X="-1.43861985e-06" Y="0.0125972452" Z="0.0100018298"/>
<Scale X="0.349999994" Y="0.349999994" Z="0.200000003"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Components>
<c:Text>
<Content>262</Content>
<Resource>Fonts/DroidSans.ttf,60</Resource>
</c:Text>
<c:Transform>
<Position X="-4.27209579e-06" Y="-0.0390000008" Z="5.43686883e-06"/>
<Scale X="0.65200001" Y="0.643000007" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity>
<Components>
<c:HealthHUD/>
<c:Text>
<Content>65/100</Content>
<Resource>Fonts/DroidSans.ttf,60</Resource>
<Color A="1" B="0.659900069" G="0" R="0.340099931"/>
</c:Text>
<c:Transform>
<Scale X="0.200000003" Y="0.200000003" Z="0.200000003"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity>
@@ -42,7 +123,7 @@
<Resource>Models/Core/UnitPlane.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0" Y="-1" Z="0.600000024"/>
<Position X="0" Y="-0.689623177" Z="0.600000024"/>
<Scale X="100" Y="1" Z="100"/>
</c:Transform>
</Components>
@@ -51,7 +132,8 @@
<Entity>
<Components>
<c:Model>
<Resource>Models/Assault.mesh</Resource>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
<Color A="1" B="3.92156863" G="1" R="1"/>
</c:Model>
<c:Transform>
<Position X="-2.5" Y="0" Z="1"/>
@@ -64,6 +146,7 @@
<c:Text>
<Content>Welcome!</Content>
<Resource>Fonts/DroidSans.ttf,1280</Resource>
<Color A="0" B="3.92156863" G="3.92156863" R="3.92156863"/>
</c:Text>
<c:Transform>
<Position X="0" Y="0" Z="0.700000048"/>
@@ -74,32 +157,40 @@
<Entity>
<Components>
<c:RaptorCopter>
<Speed>2</Speed>
<Axis X="0" Y="1" Z="0"/>
<Speed>3</Speed>
<Axis X="0.200000003" Y="3.4000001" Z="0.5"/>
</c:RaptorCopter>
<c:Transform>
<Position X="0" Y="2.37320328" Z="0"/>
<Orientation X="0" Y="8252.15918" Z="0"/>
<Orientation X="758.058899" Y="20632.8691" Z="1320.68018"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Components>
<c:Model>
<Resource>Models/Core/UnitSphere.obj</Resource>
<Color A="1" B="7.84313726" G="0" R="7.84313726"/>
</c:Model>
<c:PointLight>
<Color A="1" B="1" G="0" R="1"/>
<Radius>6</Radius>
<Radius>70</Radius>
<Intensity>0.5</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-2.5" Y="0" Z="0"/>
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Components>
<c:Model>
<Resource>Models/Core/UnitSphere.obj</Resource>
<Color A="1" B="0" G="0" R="7.84313726"/>
</c:Model>
<c:PointLight>
<Color A="1" B="0" G="0" R="1"/>
<Radius>8</Radius>
<Radius>70</Radius>
</c:PointLight>
<c:Transform>
<Position X="-5" Y="0" Z="0"/>
@@ -111,21 +202,30 @@
</Entity>
<Entity>
<Components>
<c:Model>
<Resource>Models/Core/UnitSphere.obj</Resource>
<Color A="1" B="0" G="7.84313726" R="7.84313726"/>
</c:Model>
<c:PointLight>
<Color A="1" B="0" G="1" R="1"/>
<Radius>6</Radius>
<Radius>70</Radius>
<Intensity>0.5</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0" Y="0" Z="-2.5"/>
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Components>
<c:Model>
<Resource>Models/Core/UnitSphere.obj</Resource>
<Color A="1" B="0" G="7.84313726" R="0"/>
</c:Model>
<c:PointLight>
<Color A="1" B="0" G="1" R="0"/>
<Radius>8</Radius>
<Radius>70</Radius>
</c:PointLight>
<c:Transform>
<Position X="0" Y="0" Z="-5"/>
@@ -137,21 +237,30 @@
</Entity>
<Entity>
<Components>
<c:Model>
<Resource>Models/Core/UnitSphere.obj</Resource>
<Color A="1" B="7.84313726" G="7.84313726" R="0"/>
</c:Model>
<c:PointLight>
<Color A="1" B="1" G="1" R="0"/>
<Radius>6</Radius>
<Radius>70</Radius>
<Intensity>0.5</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0" Y="0" Z="2.5"/>
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Components>
<c:Model>
<Resource>Models/Core/UnitSphere.obj</Resource>
<Color A="1" B="7.84313726" G="0" R="0"/>
</c:Model>
<c:PointLight>
<Color A="1" B="1" G="0.00784313772" R="0"/>
<Radius>8</Radius>
<Color A="1" B="1" G="0" R="0"/>
<Radius>70</Radius>
</c:PointLight>
<c:Transform>
<Position X="0" Y="0" Z="5"/>
@@ -163,19 +272,28 @@
</Entity>
<Entity>
<Components>
<c:Model>
<Resource>Models/Core/UnitSphere.obj</Resource>
<Color A="1" B="7.84313726" G="7.84313726" R="7.84313726"/>
</c:Model>
<c:PointLight>
<Radius>6</Radius>
<Radius>70</Radius>
<Intensity>0.5</Intensity>
</c:PointLight>
<c:Transform>
<Position X="2.5" Y="0" Z="0"/>
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Components>
<c:Model>
<Resource>Models/Core/UnitSphere.obj</Resource>
<Color A="1" B="7.84313726" G="7.84313726" R="7.84313726"/>
</c:Model>
<c:PointLight>
<Radius>8</Radius>
<Radius>70</Radius>
</c:PointLight>
<c:Transform>
<Position X="5" Y="0" Z="0"/>
@@ -190,7 +308,8 @@
<Entity>
<Components>
<c:Model>
<Resource>Models/Assault.mesh</Resource>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
<Color A="1" B="1" G="1" R="3.92156863"/>
</c:Model>
<c:Transform>
<Position X="2.5" Y="0" Z="1"/>
@@ -198,46 +317,15 @@
</Components>
<Children/>
</Entity>
<Entity>
<Components>
<c:Camera>
<Name>MainCamera</Name>
</c:Camera>
<c:Listener/>
<c:Model>
<Resource>Models/Camera.mesh</Resource>
<Visible>false</Visible>
</c:Model>
<c:Transform>
<Position X="-1.27354908" Y="5.18422079" Z="10.6223917"/>
<Orientation X="-0.436328411" Y="-0.0523675606" Z="1.67869363e-08"/>
</c:Transform>
</Components>
<Children>
<Entity>
<Components>
<c:Text>
<Content>Taiwan #1</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Alignment>0</Alignment>
</c:Text>
<c:Transform>
<Position X="0.716896772" Y="0.296712071" Z="-1"/>
<Scale X="0.100000001" Y="0.100000001" Z="0.100000001"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity>
<Entity name="DirectionalLight">
<Components>
<c:DirectionalLight>
<Color A="1" B="0.996078432" G="1" R="1"/>
<Intensity>0.80000001192092896</Intensity>
<Intensity>0.10000000149011612</Intensity>
</c:DirectionalLight>
<c:Model>
<Resource>Models/DirectionalLightWidget.mesh</Resource>
<Resource>Models/Widgets/Lights/DirectionalLightWidget.mesh</Resource>
<Color A="1" B="0" G="3.92156863" R="3.92156863"/>
</c:Model>
<c:Transform>
<Position X="-0.0013256073" Y="1.89540339" Z="6.53467274"/>
@@ -250,6 +338,7 @@
<Components>
<c:Model>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="1" G="39.2156868" R="1"/>
</c:Model>
<c:Transform>
<Position X="-5.4082036" Y="0" Z="-1.84950542"/>
+10 -10
View File
@@ -9,7 +9,7 @@
<Entity>
<Components>
<c:Model>
<Resource>../assets/Models/DummyScene.mesh</Resource>
<Resource>Models/Test/DummyScene.mesh</Resource>
</c:Model>
<c:Transform/>
</Components>
@@ -41,7 +41,7 @@
<HomePointForTeam>3</HomePointForTeam>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="0.200000003" R="0"/>
</c:Model>
<c:Team>
@@ -61,7 +61,7 @@
<CapturePointNumber>1</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="1" G="1" R="0"/>
</c:Model>
<c:Team/>
@@ -79,7 +79,7 @@
<CapturePointNumber>2</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
</c:Model>
<c:Team/>
<c:Transform>
@@ -96,7 +96,7 @@
<CapturePointNumber>3</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="1" R="1"/>
</c:Model>
<c:Team/>
@@ -115,7 +115,7 @@
<CapturePointNumber>4</CapturePointNumber>
</c:CapturePoint>
<c:Model>
<Resource>../assets/Models/Core/UnitSphere.mesh</Resource>
<Resource>Models/Core/UnitSphere.mesh</Resource>
<Color A="1" B="0" G="0.200000003" R="1"/>
</c:Model>
<c:Team>
@@ -133,7 +133,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0.482352942" G="0.490196079" R="1"/>
</c:Model>
<c:Player/>
@@ -151,7 +151,7 @@
<c:Health/>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0.482352942" G="0.490196079" R="1"/>
</c:Model>
<c:Player/>
@@ -171,7 +171,7 @@
</c:Health>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0" G="0" R="2.25"/>
</c:Model>
<c:Player/>
@@ -191,7 +191,7 @@
</c:Health>
<c:AABB/>
<c:Model>
<Resource>../assets/Models/Core/UnitCube.mesh</Resource>
<Resource>Models/Core/UnitCube.mesh</Resource>
<Color A="1" B="0" G="0" R="4.5"/>
</c:Model>
<c:Player/>
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Entity name="SoundEmitter" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:SoundEmitter/>
<c:Transform/>
</Components>
<Children>
<Entity name="SoundEmitterText">
<Components>
<c:Text>
<Content>SoundEmitter</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
</c:Text>
<c:Transform>
<Scale X="0.5" Y="0.5" Z="0.5"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Entity name="SpawnerRedTeam" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:PlayerSpawn/>
<c:Spawner>
<EntityFile>Schema/Entities/Player.xml</EntityFile>
</c:Spawner>
<c:Team>
<Team>
<Red/>
</Team>
</c:Team>
<c:Transform/>
</Components>
<Children>
<Entity name="SpawnPointRedTeam">
<Components>
<c:SpawnPoint/>
<c:Model>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="1" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="SpawnPointRedTeam">
<Components>
<c:SpawnPoint/>
<c:Model>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="-1" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="SpawnPointRedTeam">
<Components>
<c:SpawnPoint/>
<c:Model>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0" Y="0" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="SpawnPointRedTeam">
<Components>
<c:SpawnPoint/>
<c:Model>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0" Y="0" Z="-1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Entity name="SpawnPointRedTeam" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:SpawnPoint/>
<c:Model>
<Resource>Models/Characters/Assault/AssaultTPose.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="1.31625879" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
+32
View File
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Entity name="BluSpawn" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:PlayerSpawn/>
<c:Model>
<Resource>Models/Core/UnitCube.mesh</Resource>
</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>
</Children>
</Entity>

Some files were not shown because too many files have changed in this diff Show More