Compare commits

..

11 Commits

Author SHA1 Message Date
viktorljung a65d8c86d1 3rd person reload effect 2016-03-14 01:48:48 +01:00
viktorljung 0764c9bab2 Merge remote-tracking branch 'origin/master' into Movement 2016-03-14 01:20:20 +01:00
viktorljung 424dffd1e0 removed shadows on 1st person hands and weapons
added shielded component on 3rd person weapons
2016-03-14 00:47:21 +01:00
viktorljung d1c11f20f2 Merge remote-tracking branch 'origin/master' into Movement 2016-03-14 00:39:16 +01:00
viktorljung 1bba40449f Tracers done 2016-03-14 00:38:36 +01:00
viktorljung f5343251c5 fixed for real now? 2016-03-14 00:28:30 +01:00
viktorljung 5207248a49 3rd person tracers fixed 2016-03-14 00:04:51 +01:00
viktorljung 1bf65d896a Sidearm tracer fixed 2016-03-13 23:42:21 +01:00
viktorljung 4adf7dc507 Assault tracer fixed 2016-03-13 23:29:50 +01:00
viktorljung 73bcc6e382 Merge branch 'Movement' of github.com:teamfisk/TacticalZ into Movement 2016-03-13 23:12:59 +01:00
viktorljung f393a22011 defender tracer fixed 2016-03-13 23:12:45 +01:00
56 changed files with 12206 additions and 53023 deletions
+1 -1
Submodule assets updated: 9e9d799f11...b6027bf49f
+1 -1
Submodule deps updated: 49ef585366...ed45883a44
+6 -6
View File
@@ -48,13 +48,13 @@ bool RayVsTriangle(const Ray& ray,
bool trueOnNegativeDistance = false);
//Return true if the ray hits any of the triangles in the model. Stops checking when a hit is detected.
bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix);
//Return true if the ray hits any of the triangles in the model.
//Also returns the position of the intersection point. Will loop through all the whole model indices.
bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix,
glm::vec3& outHitPosition);
@@ -62,7 +62,7 @@ bool RayVsModel(const Ray& ray,
//Also returns the distance from the ray origin to the closest
//intersection point, and the barycentric u,v-coordinates. Will loop through all the whole model indices.
bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix,
float& outDistance,
@@ -70,7 +70,7 @@ bool RayVsModel(const Ray& ray,
float& outVCoord);
bool AABBvsTriangles(const AABB& box,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix,
glm::vec3& boxVelocity,
@@ -80,7 +80,7 @@ bool AABBvsTriangles(const AABB& box,
//Detects collision, but does not resolve.
bool AABBvsTriangles(const AABB& box,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix);
@@ -92,7 +92,7 @@ enum Output
};
//Detects intersection and containment.
Output AABBvsTrianglesWContainment(const AABB& box,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix);
@@ -213,7 +213,6 @@ bool FirstPersonInputController<EventContext>::OnCommand(const Events::InputComm
}
}
EntityWrapper firstPersonModel = m_PlayerEntity.FirstChildByName("Hands");
if (firstPersonModel.Valid()) {
if (val > 0) { // Walk/Run
+6 -12
View File
@@ -16,18 +16,15 @@ private:
public:
~Model();
const std::vector<RawModel::MaterialProperties>& MaterialGroups() const { return m_Materials; }
unsigned int NumberOfVertices() const { return m_Vertices.size(); }
const std::vector<RawModel::MaterialProperties>& MaterialGroups() const { return m_RawModel->m_Materials; }
const glm::mat4& Matrix() const { return m_RawModel->m_Matrix; }
const RawModel::Vertex* Vertices() const { return m_RawModel->Vertices(); }
unsigned int NumberOfVertices() const { return m_RawModel->NumVertices(); }
const AABB& Box() const { return m_Box; }
bool IsSkinned() const { return m_IsSkinned; }
bool IsSkinned() const { return m_RawModel->IsSkinned(); }
GLuint VAO;
GLuint ElementBuffer;
//RawModel* m_RawModel;
Skeleton* m_Skeleton = nullptr;
std::vector<glm::vec3> m_Vertices;
std::vector<unsigned int> m_Indices;
RawModel* m_RawModel;
private:
AABB m_Box;
@@ -37,9 +34,6 @@ private:
GLuint TangentNormalsBuffer;
GLuint BiTangentNormalsBuffer;
GLuint TextureCoordBuffer;
std::vector<RawModel::MaterialProperties> m_Materials;
bool m_IsSkinned;
};
#endif
+1 -1
View File
@@ -110,7 +110,7 @@ struct ModelJob : RenderJob
}
if (model->IsSkinned()) {
Skeleton = Model->m_Skeleton;
Skeleton = Model->m_RawModel->m_Skeleton;
if (Skeleton != nullptr) {
EntityWrapper entityWrapper = EntityWrapper(world, modelComponent.EntityID);
+16 -39
View File
@@ -13,7 +13,6 @@
#include <boost/filesystem/path.hpp>
#include <boost/endian/buffers.hpp>
#include "../Common.h"
#include "../GLM.h"
#include "../Core/ResourceManager.h"
@@ -21,17 +20,22 @@
#include "Skeleton.h"
#include "ShaderProgram.h"
#include "boost\endian\buffers.hpp"
class RawModelCustom : public Resource
{
friend class ResourceManager;
friend class Model;
protected:
RawModelCustom(std::string fileName);
public:
~RawModelCustom();
struct RenderVertex {
struct Vertex
{
glm::vec3 Position;
glm::vec3 Normal;
glm::vec3 Tangent;
@@ -39,7 +43,7 @@ public:
glm::vec2 TextureCoords;
};
struct SkinedVertex : public RenderVertex {
struct SkinedVertex : public Vertex {
glm::vec4 BoneIndices;
glm::vec4 BoneWeights;
};
@@ -87,7 +91,7 @@ public:
unsigned int ShaderID = 0;
};
const RenderVertex* Vertices() const {
const Vertex* Vertices() const {
if (hasSkin) {
return m_SkinedVertices.data();
} else {
@@ -95,16 +99,16 @@ public:
}
};
unsigned int VertexSize() const {
unsigned int VertexSize() const {
if (hasSkin) {
return sizeof(SkinedVertex);
}
else {
return sizeof(RenderVertex);
return sizeof(Vertex);
}
};
size_t NumVertices() const {
unsigned int NumVertices() const {
if (hasSkin) {
return m_SkinedVertices.size();
} else {
@@ -112,39 +116,17 @@ public:
}
};
const std::vector<unsigned int>& Indices() const {
return m_Indices;
}
bool IsSkinned() const { return hasSkin; };
const std::vector<glm::vec3>& CollisionVertices();
size_t NumCollisionVertices() const {
return m_CollisionVertices.size();
};
const std::vector<unsigned int>& CollisionIndices() const {
if (hasCollisionMesh) {
return m_CollisionIndices;
} else {
return m_Indices;
}
};
std::vector<MaterialProperties> m_Materials;
std::vector<unsigned int> m_Indices;
Skeleton* m_Skeleton = nullptr;
glm::mat4 m_Matrix;
private:
bool hasSkin;
bool hasCollisionMesh = false;
std::vector<unsigned int> m_Indices;
std::vector<unsigned int> m_CollisionIndices;
std::vector<glm::vec3> m_CollisionVertices;
std::vector<RenderVertex> m_Vertices;
std::vector<Vertex> m_Vertices;
std::vector<SkinedVertex> m_SkinedVertices;
void ReadMeshFile(std::string filePath);
@@ -167,12 +149,7 @@ private:
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, std::vector<Skeleton::Animation::Keyframe>& animation);
void ReadCollisionFile(std::string filePath);
void ReadCollisionFileData(std::size_t& offset, char* fileData, const unsigned int& fileByteSize);
const std::vector<glm::vec3>& ConstructCollisionList();
//void CreateSkeleton(std::vector<std::tuple<std::string, glm::mat4>> &boneInfo, std::map<std::string, int> &boneNameMapping, aiNode* node, int parentID);
};
-1
View File
@@ -8,7 +8,6 @@
#include "Events/ESpawnerSpawn.h"
#include "Core/TransformSystem.h"
#include "Core/EntityFile.h"
#include "Rendering/Model.h"
class SpawnerSystem : public System
{
Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

+3 -1
View File
@@ -29,4 +29,6 @@ K=TakeDamage,1500
F2=PerformanceTimingResetAllTimers
F3=PerformanceTimingCreateExcelData
Comma=SwapToClassPick
Period=SwapToTeamPick
Period=SwapToTeamPick
Enter=PickClass,1
F5=DisconnectFromServer
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+159 -265
View File
@@ -3,7 +3,7 @@
<Components>
<c:CapturePointGameMode>
<RespawnTime>0.10012471663946698</RespawnTime>
<RespawnTime>0.35657206405745967</RespawnTime>
<MaxRespawnTime>0.5</MaxRespawnTime>
</c:CapturePointGameMode>
<c:Transform>
@@ -19,11 +19,7 @@
<Red/>
</Team>
</c:Team>
<c:PlayerSpawn>
<AssaultFile>Schema/Entities/PlayerAssaultBlue.xml</AssaultFile>
<DefenderFile>Schema/Entities/PlayerDefenderBlue.xml</DefenderFile>
<SniperFile></SniperFile>
</c:PlayerSpawn>
<c:PlayerSpawn/>
<c:Spawner>
<EntityFile>Schema/Entities/PlayerDefenderBlue.xml</EntityFile>
</c:Spawner>
@@ -94,11 +90,7 @@
<Blue/>
</Team>
</c:Team>
<c:PlayerSpawn>
<AssaultFile>Schema/Entities/PlayerAssaultBlue.xml</AssaultFile>
<DefenderFile>Schema/Entities/PlayerDefenderBlue.xml</DefenderFile>
<SniperFile></SniperFile>
</c:PlayerSpawn>
<c:PlayerSpawn/>
<c:Spawner>
<EntityFile>Schema/Entities/PlayerAssaultBlue.xml</EntityFile>
</c:Spawner>
@@ -115,7 +107,7 @@
<Color A="1" B="1" G="0.254901975" R="0"/>
</c:Model>
<c:Transform>
<Position X="-0.600000024" Y="0" Z="0.549540162"/>
<Position X="0.800000012" Y="0" Z="0"/>
</c:Transform>
</Components>
<Children/>
@@ -128,7 +120,7 @@
<Color A="1" B="1" G="0.254901975" R="0"/>
</c:Model>
<c:Transform>
<Position X="0.800000012" Y="0" Z="0"/>
<Position X="-0.600000024" Y="0" Z="0.549540162"/>
</c:Transform>
</Components>
<Children/>
@@ -277,7 +269,7 @@
</c:RaptorCopter>
<c:Transform>
<Position X="0" Y="-30.6910019" Z="0"/>
<Orientation X="0" Y="43.4443054" Z="0"/>
<Orientation X="0" Y="39.1253624" Z="0"/>
</c:Transform>
</Components>
<Children>
@@ -425,7 +417,7 @@
<Components>
<c:Animation>
<AnimationName>AssaultPoseF</AnimationName>
<Time>0.65905298965262915</Time>
<Time>2.2728534617500387</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -441,7 +433,7 @@
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0.160869107" Y="1.21468747" Z="-0.151224568"/>
<Position X="0.160869107" Y="1.21713078" Z="-0.151224568"/>
<Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/>
</c:Transform>
</Components>
@@ -824,7 +816,7 @@
<Components>
<c:Animation>
<AnimationName>DefenderPoseF</AnimationName>
<Time>2.3258911684973569</Time>
<Time>1.4396916405947664</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -840,8 +832,8 @@
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0.195810497" Y="0.711551607" Z="0.0388058722"/>
<Orientation X="-1.3924278" Y="-0.0973876044" Z="0.332219511"/>
<Position X="0.196064115" Y="0.705373585" Z="0.0272535309"/>
<Orientation X="-1.3924278" Y="-0.0973875821" Z="0.332219422"/>
</c:Transform>
</Components>
<Children/>
@@ -1097,6 +1089,22 @@
<c:Transform/>
</Components>
<Children>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.142000005" Y="-0.21800001" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
@@ -1128,22 +1136,6 @@
</Components>
<Children/>
</Entity>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.142000005" Y="-0.21800001" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft">
<Components>
<c:Sprite>
@@ -1185,7 +1177,7 @@
<Components>
<c:Animation>
<AnimationName>SniperPoseF</AnimationName>
<Time>0.058984111921155602</Time>
<Time>1.6727845840185651</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -1201,8 +1193,8 @@
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="-0.0454485416" Y="1.07162762" Z="-0.12548463"/>
<Orientation X="-1.50533807" Y="1.34000039" Z="-1.34724486"/>
<Position X="-0.0454485044" Y="1.06437671" Z="-0.125484675"/>
<Orientation X="-1.50533736" Y="1.34000039" Z="-1.34724414"/>
</c:Transform>
</Components>
<Children/>
@@ -1436,14 +1428,14 @@
<Entity name="PickTeamHUD">
<Components>
<c:Transform>
<Position X="0" Y="0.0200000014" Z="-0.63500005"/>
<Position X="0" Y="0" Z="-0.63500005"/>
</c:Transform>
</Components>
<Children>
<Entity name="TeamBluePick">
<Components>
<c:Transform>
<Position X="-0.131000012" Y="0.0190000013" Z="0"/>
<Position X="-0.114000008" Y="0.0190000013" Z="0"/>
</c:Transform>
</Components>
<Children>
@@ -1455,14 +1447,14 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0.768627465" G="0" R="0"/>
<Color A="0.392156869" B="0.349019617" G="0" R="0"/>
</c:Sprite>
<c:InputCmdButton>
<Command>PickTeam</Command>
<PressValue>3</PressValue>
</c:InputCmdButton>
<c:Transform>
<Scale X="0.24000001" Y="0.307000011" Z="1"/>
<Scale X="0.207000017" Y="0.249000013" Z="1"/>
</c:Transform>
</Components>
<Children/>
@@ -1479,10 +1471,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="-0.150000006" Z="0.00499999989"/>
<Position X="0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1496,10 +1487,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="0.150000006" Z="0.00499999989"/>
<Position X="0.100000001" Y="0.120000005" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
@@ -1512,10 +1502,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="-0.150000006" Z="0.00499999989"/>
<Position X="-0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1529,10 +1518,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="0.150000006" Z="0.00499999989"/>
<Position X="-0.100000001" Y="0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1546,7 +1534,6 @@
<c:Text>
<Content>Blue</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Visible>false</Visible>
<Alignment>
<Left/>
</Alignment>
@@ -1558,27 +1545,127 @@
</Components>
<Children/>
</Entity>
<Entity>
</Children>
</Entity>
<Entity name="TeamRedPick">
<Components>
<c:Transform>
<Position X="0.114" Y="0.0189999994" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="Button_1">
<Components>
<c:Button/>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/BlueTeam.png</DiffuseTexture>
<ClampToBorder>true</ClampToBorder>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0" G="0" R="0.556862772"/>
</c:Sprite>
<c:InputCmdButton>
<Command>PickTeam</Command>
<PressValue>2</PressValue>
</c:InputCmdButton>
<c:Transform>
<Position X="0" Y="-0.00900000054" Z="0.00600000005"/>
<Scale X="0.340000004" Y="0.340000004" Z="1"/>
<Scale X="0.207000017" Y="0.249000013" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Text">
<Components>
<c:Text>
<Content>Red</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Alignment>
<Left/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.0890000015" Y="-0.105000004" Z="0.00499999989"/>
<Scale X="0.0500000007" Y="0.0500000007" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ButtonCorner_Origin">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.100000001" Y="0.120000005" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.100000001" Y="0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity name="TeamSpectatorPick">
<Components>
<c:Transform>
<Position X="0" Y="-0.184000015" Z="0"/>
<Position X="0" Y="-0.153000012" Z="0"/>
</c:Transform>
</Components>
<Children>
@@ -1593,11 +1680,11 @@
<Color A="0.392156869" B="0" G="0" R="0"/>
</c:Sprite>
<c:InputCmdButton>
<Command>PickTeam_</Command>
<Command>PickTeam</Command>
<PressValue>1</PressValue>
</c:InputCmdButton>
<c:Transform>
<Scale X="0.502000034" Y="0.0530000031" Z="1"/>
<Scale X="0.435000032" Y="0.0520000011" Z="1"/>
</c:Transform>
</Components>
<Children/>
@@ -1606,7 +1693,7 @@
<Components>
<c:Text>
<Content>Spectator</Content>
<Resource>Fonts/Hind-Edited.otf,64</Resource>
<Resource>Fonts/DroidSans.ttf,64</Resource>
</c:Text>
<c:Transform>
<Position X="0" Y="-0.00800000038" Z="0.00499999989"/>
@@ -1627,10 +1714,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.248000011" Y="-0.0230000019" Z="0.00499999989"/>
<Position X="0.214000016" Y="-0.0230000019" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1644,10 +1730,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.247000009" Y="0.0240000002" Z="0.00499999989"/>
<Position X="0.214000002" Y="0.0240000002" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
@@ -1660,10 +1745,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.247000009" Y="-0.023" Z="0.00499999989"/>
<Position X="-0.214000002" Y="-0.023" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1677,10 +1761,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.247000009" Y="0.0240000002" Z="0.00499999989"/>
<Position X="-0.214000002" Y="0.0240000002" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1691,141 +1774,6 @@
</Entity>
</Children>
</Entity>
<Entity name="TeamRedPick">
<Components>
<c:Transform>
<Position X="0.130999997" Y="0.0190000013" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="Button_1">
<Components>
<c:Button/>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0" G="0" R="0.90196079"/>
</c:Sprite>
<c:InputCmdButton>
<Command>PickTeam</Command>
<PressValue>2</PressValue>
</c:InputCmdButton>
<c:Transform>
<Scale X="0.24000001" Y="0.307000011" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ButtonCorner_Origin">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="-0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="0.150000006" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="-0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Text">
<Components>
<c:Text>
<Content>Blue</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Visible>false</Visible>
<Alignment>
<Left/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.00900000054" Y="-0.105000004" Z="0.00499999989"/>
<Scale X="0.0500000007" Y="0.0500000007" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity>
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/RedTeam.png</DiffuseTexture>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0" Y="-0.00900000054" Z="0.00600000005"/>
<Scale X="0.340000004" Y="0.340000004" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
@@ -2234,60 +2182,6 @@
</Entity>
</Children>
</Entity>
<Entity name="KillFeed">
<Components>
<c:KillFeed/>
<c:Transform>
<Position X="0.494000018" Y="0.252000004" Z="0"/>
<Scale X="0.0149999997" Y="0.0149999997" Z="0.0149999997"/>
</c:Transform>
</Components>
<Children>
<Entity name="KillFeed1">
<Components>
<c:Text>
<Content></Content>
<Resource>Fonts/Hind-Edited.otf,64</Resource>
<Alignment>
<Right/>
</Alignment>
</c:Text>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="KillFeed2">
<Components>
<c:Text>
<Content></Content>
<Resource>Fonts/Hind-Edited.otf,64</Resource>
<Alignment>
<Right/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="0" Y="-1" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="KillFeed3">
<Components>
<c:Text>
<Content></Content>
<Resource>Fonts/Hind-Edited.otf,64</Resource>
<Alignment>
<Right/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="0" Y="-2" Z="0"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
@@ -2428,7 +2322,7 @@
<Components>
<c:Animation>
<AnimationName>AssaultPoseF</AnimationName>
<Time>1.8811652556773666</Time>
<Time>0.9949657277747761</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -2444,7 +2338,7 @@
<Resource>Models/Weapons/Red/AssaultWeaponRed.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0.160869107" Y="1.21425688" Z="-0.151224568"/>
<Position X="0.160869107" Y="1.21340287" Z="-0.151224568"/>
<Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/>
</c:Transform>
</Components>
@@ -2827,7 +2721,7 @@
<Components>
<c:Animation>
<AnimationName>DefenderPoseF</AnimationName>
<Time>1.9813738768539579</Time>
<Time>1.0951743489513674</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -2843,8 +2737,8 @@
<Resource>Models/Weapons/Red/DefenderWeaponRed.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0.195940435" Y="0.708098531" Z="0.0331460983"/>
<Orientation X="-1.39242768" Y="-0.0973874852" Z="0.332219243"/>
<Position X="0.195622981" Y="0.70677036" Z="0.0300085638"/>
<Orientation X="-1.39242733" Y="-0.0973875821" Z="0.332219303"/>
</c:Transform>
</Components>
<Children/>
@@ -3188,7 +3082,7 @@
<Components>
<c:Animation>
<AnimationName>SniperPoseF</AnimationName>
<Time>1.89819787670897</Time>
<Time>1.0119983488063795</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -3204,8 +3098,8 @@
<Resource>Models/Weapons/Red/SecondaryWeaponRed.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="-0.0454485491" Y="1.06597364" Z="-0.125484616"/>
<Orientation X="-1.50533819" Y="1.34000039" Z="-1.34724486"/>
<Position X="-0.045448523" Y="1.06568146" Z="-0.125484601"/>
<Orientation X="-1.50533819" Y="1.34000111" Z="-1.3472451"/>
</c:Transform>
</Components>
<Children/>
+170 -214
View File
@@ -8,7 +8,7 @@
</c:RaptorCopter>
<c:Transform>
<Position X="0" Y="-30.6910019" Z="0"/>
<Orientation X="0" Y="43.2517357" Z="0"/>
<Orientation X="0" Y="43.1977272" Z="0"/>
</c:Transform>
</Components>
@@ -69,21 +69,6 @@
<c:Transform/>
</Components>
<Children>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.142000005" Y="0.217999995" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomRight">
<Components>
<c:Sprite>
@@ -100,6 +85,21 @@
</Components>
<Children/>
</Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.142000005" Y="0.217999995" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
@@ -157,7 +157,7 @@
<Components>
<c:Animation>
<AnimationName>AssaultPoseF</AnimationName>
<Time>0.32571926651889171</Time>
<Time>1.725669683907423</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -173,7 +173,7 @@
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0.160869107" Y="1.21624839" Z="-0.151224568"/>
<Position X="0.160869107" Y="1.21322453" Z="-0.151224568"/>
<Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/>
</c:Transform>
</Components>
@@ -556,7 +556,7 @@
<Components>
<c:Animation>
<AnimationName>DefenderPoseF</AnimationName>
<Time>1.9925574453636195</Time>
<Time>0.89250786275215077</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -572,8 +572,8 @@
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0.195935503" Y="0.708206475" Z="0.0333581194"/>
<Orientation X="-1.39242768" Y="-0.0973875299" Z="0.332219183"/>
<Position X="0.195243329" Y="0.708130419" Z="0.0326478258"/>
<Orientation X="-1.39242756" Y="-0.0973875225" Z="0.332219273"/>
</c:Transform>
</Components>
<Children/>
@@ -829,22 +829,6 @@
<c:Transform/>
</Components>
<Children>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.142000005" Y="-0.217999995" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomRight">
<Components>
<c:Sprite>
@@ -876,6 +860,22 @@
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.142000005" Y="-0.217999995" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft">
<Components>
<c:Sprite>
@@ -917,7 +917,7 @@
<Components>
<c:Animation>
<AnimationName>SniperPoseF</AnimationName>
<Time>2.2256503887874182</Time>
<Time>1.1256008061759495</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -933,8 +933,8 @@
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="-0.0454485565" Y="1.06937242" Z="-0.125484601"/>
<Orientation X="-1.50533795" Y="1.34000087" Z="-1.34724462"/>
<Position X="-0.0454485789" Y="1.06511343" Z="-0.125484645"/>
<Orientation X="-1.50533736" Y="1.34000039" Z="-1.34724438"/>
</c:Transform>
</Components>
<Children/>
@@ -1168,14 +1168,14 @@
<Entity name="PickTeamHUD">
<Components>
<c:Transform>
<Position X="0" Y="0.0200000014" Z="-0.63500005"/>
<Position X="0" Y="0" Z="-0.63500005"/>
</c:Transform>
</Components>
<Children>
<Entity name="TeamBluePick">
<Components>
<c:Transform>
<Position X="-0.131000012" Y="0.0190000013" Z="0"/>
<Position X="-0.114000008" Y="0.0190000013" Z="0"/>
</c:Transform>
</Components>
<Children>
@@ -1187,14 +1187,14 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0.768627465" G="0" R="0"/>
<Color A="0.392156869" B="0.349019617" G="0" R="0"/>
</c:Sprite>
<c:InputCmdButton>
<Command>PickTeam</Command>
<PressValue>3</PressValue>
</c:InputCmdButton>
<c:Transform>
<Scale X="0.24000001" Y="0.307000011" Z="1"/>
<Scale X="0.207000017" Y="0.249000013" Z="1"/>
</c:Transform>
</Components>
<Children/>
@@ -1211,10 +1211,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="-0.150000006" Z="0.00499999989"/>
<Position X="0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1228,10 +1227,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="0.150000006" Z="0.00499999989"/>
<Position X="0.100000001" Y="0.120000005" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
@@ -1244,10 +1242,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="-0.150000006" Z="0.00499999989"/>
<Position X="-0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1261,10 +1258,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="0.150000006" Z="0.00499999989"/>
<Position X="-0.100000001" Y="0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1278,7 +1274,6 @@
<c:Text>
<Content>Blue</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Visible>false</Visible>
<Alignment>
<Left/>
</Alignment>
@@ -1290,27 +1285,127 @@
</Components>
<Children/>
</Entity>
<Entity>
</Children>
</Entity>
<Entity name="TeamRedPick">
<Components>
<c:Transform>
<Position X="0.114" Y="0.0189999994" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="Button_1">
<Components>
<c:Button/>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/BlueTeam.png</DiffuseTexture>
<ClampToBorder>true</ClampToBorder>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0" G="0" R="0.556862772"/>
</c:Sprite>
<c:InputCmdButton>
<Command>PickTeam</Command>
<PressValue>2</PressValue>
</c:InputCmdButton>
<c:Transform>
<Position X="0" Y="-0.00900000054" Z="0.00600000005"/>
<Scale X="0.340000004" Y="0.340000004" Z="1"/>
<Scale X="0.207000017" Y="0.249000013" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Text">
<Components>
<c:Text>
<Content>Red</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Alignment>
<Left/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.0890000015" Y="-0.105000004" Z="0.00499999989"/>
<Scale X="0.0500000007" Y="0.0500000007" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ButtonCorner_Origin">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="0.100000001" Y="0.120000005" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.100000001" Y="-0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
</c:Sprite>
<c:Transform>
<Position X="-0.100000001" Y="0.121000007" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity name="TeamSpectatorPick">
<Components>
<c:Transform>
<Position X="0" Y="-0.184000015" Z="0"/>
<Position X="0" Y="-0.153000012" Z="0"/>
</c:Transform>
</Components>
<Children>
@@ -1325,11 +1420,11 @@
<Color A="0.392156869" B="0" G="0" R="0"/>
</c:Sprite>
<c:InputCmdButton>
<Command>PickTeam_</Command>
<Command>PickTeam</Command>
<PressValue>1</PressValue>
</c:InputCmdButton>
<c:Transform>
<Scale X="0.502000034" Y="0.0530000031" Z="1"/>
<Scale X="0.435000032" Y="0.0520000011" Z="1"/>
</c:Transform>
</Components>
<Children/>
@@ -1338,7 +1433,7 @@
<Components>
<c:Text>
<Content>Spectator</Content>
<Resource>Fonts/Hind-Edited.otf,64</Resource>
<Resource>Fonts/DroidSans.ttf,64</Resource>
</c:Text>
<c:Transform>
<Position X="0" Y="-0.00800000038" Z="0.00499999989"/>
@@ -1359,10 +1454,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.248000011" Y="-0.0230000019" Z="0.00499999989"/>
<Position X="0.214000016" Y="-0.0230000019" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1376,10 +1470,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.247000009" Y="0.0240000002" Z="0.00499999989"/>
<Position X="0.214000002" Y="0.0240000002" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
@@ -1392,10 +1485,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.247000009" Y="-0.023" Z="0.00499999989"/>
<Position X="-0.214000002" Y="-0.023" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1409,10 +1501,9 @@
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.247000009" Y="0.0240000002" Z="0.00499999989"/>
<Position X="-0.214000002" Y="0.0240000002" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
@@ -1423,141 +1514,6 @@
</Entity>
</Children>
</Entity>
<Entity name="TeamRedPick">
<Components>
<c:Transform>
<Position X="0.130999997" Y="0.0190000013" Z="0"/>
</c:Transform>
</Components>
<Children>
<Entity name="Button_1">
<Components>
<c:Button/>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/White.png</DiffuseTexture>
<BlurBackground>true</BlurBackground>
<Color A="0.392156869" B="0" G="0" R="0.90196079"/>
</c:Sprite>
<c:InputCmdButton>
<Command>PickTeam</Command>
<PressValue>2</PressValue>
</c:InputCmdButton>
<c:Transform>
<Scale X="0.24000001" Y="0.307000011" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ButtonCorner_Origin">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="BottomRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="-0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="4.71199989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopRight">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0.118000008" Y="0.150000006" Z="0.00499999989"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="BottomLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="-0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="3.14900017"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="TopLeft">
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/ButtonCorner_16.png</DiffuseTexture>
<Linear>false</Linear>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="-0.117000006" Y="0.150000006" Z="0.00499999989"/>
<Orientation X="0" Y="0" Z="1.5710001"/>
<Scale X="0.00499999989" Y="0.00499999989" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Text">
<Components>
<c:Text>
<Content>Blue</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Visible>false</Visible>
<Alignment>
<Left/>
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.00900000054" Y="-0.105000004" Z="0.00499999989"/>
<Scale X="0.0500000007" Y="0.0500000007" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity>
<Components>
<c:Sprite>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/HUD/RedTeam.png</DiffuseTexture>
<ClampToBorder>true</ClampToBorder>
</c:Sprite>
<c:Transform>
<Position X="0" Y="-0.00900000054" Z="0.00600000005"/>
<Scale X="0.340000004" Y="0.340000004" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
@@ -1578,7 +1534,7 @@
<Entity name="RespawnTimer">
<Components>
<c:Text>
<Content>1</Content>
<Content>2</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Color A="1" B="0" G="1" R="0.784313738"/>
</c:Text>
@@ -2160,7 +2116,7 @@
<Components>
<c:Animation>
<AnimationName>AssaultPoseF</AnimationName>
<Time>1.5478315325436292</Time>
<Time>0.44778194993216047</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -2176,7 +2132,7 @@
<Resource>Models/Weapons/Red/AssaultWeaponRed.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0.160869107" Y="1.21257317" Z="-0.151224568"/>
<Position X="0.160869107" Y="1.21565855" Z="-0.151224568"/>
<Orientation X="1.90465617" Y="-0.166544378" Z="0.0701896623"/>
</c:Transform>
</Components>
@@ -2559,7 +2515,7 @@
<Components>
<c:Animation>
<AnimationName>DefenderPoseF</AnimationName>
<Time>1.6480401537202205</Time>
<Time>0.54799057110875182</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -2575,8 +2531,8 @@
<Resource>Models/Weapons/Red/DefenderWeaponRed.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="0.196060285" Y="0.705655158" Z="0.0279245265"/>
<Orientation X="-1.3924278" Y="-0.0973875448" Z="0.332219273"/>
<Position X="0.194819659" Y="0.710372686" Z="0.0368246883"/>
<Orientation X="-1.39242768" Y="-0.0973874852" Z="0.332219452"/>
</c:Transform>
</Components>
<Children/>
@@ -2920,7 +2876,7 @@
<Components>
<c:Animation>
<AnimationName>SniperPoseF</AnimationName>
<Time>1.5648641535752326</Time>
<Time>0.46481457096376388</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -2936,8 +2892,8 @@
<Resource>Models/Weapons/Red/SecondaryWeaponRed.mesh</Resource>
</c:Model>
<c:Transform>
<Position X="-0.0454485565" Y="1.06404948" Z="-0.12548466"/>
<Orientation X="-1.5053376" Y="1.34000039" Z="-1.34724426"/>
<Position X="-0.0454485677" Y="1.06916106" Z="-0.125484571"/>
<Orientation X="-1.50533819" Y="1.34000111" Z="-1.3472451"/>
</c:Transform>
</Components>
<Children/>
+15 -242
View File
@@ -572,7 +572,6 @@
<c:Shielded/>
<c:HiddenForLocalPlayer/>
<c:Model>
<GlowIntensity>2.2000000476837158</GlowIntensity>
<Resource>Models/Characters/Assault/AssaultBlue.mesh</Resource>
</c:Model>
<c:Transform/>
@@ -587,8 +586,8 @@
<EntityFile>Schema/Entities/WeaponAssaultBlueWorld.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.165036291" Y="1.03316653" Z="-0.230842277"/>
<Orientation X="-0.0310075935" Y="-0.0666775182" Z="0.132169068"/>
<Position X="0.128669813" Y="1.08486295" Z="-0.361068189"/>
<Orientation X="-0.0353792347" Y="-0.0854677409" Z="0.133094937"/>
</c:Transform>
<c:WeaponAttachment>
<Weapon>AssaultWeapon</Weapon>
@@ -608,8 +607,8 @@
<EntityFile>Schema/Entities/SidearmWeaponBlueWorld.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.165036291" Y="1.03316653" Z="-0.230842277"/>
<Orientation X="-0.0310075935" Y="-0.0666775182" Z="0.132169068"/>
<Position X="0.128669813" Y="1.08486295" Z="-0.361068189"/>
<Orientation X="-0.0353792347" Y="-0.0854677409" Z="0.133094937"/>
</c:Transform>
<c:WeaponAttachment>
<Weapon>SidearmWeapon</Weapon>
@@ -676,7 +675,7 @@
<Components>
<c:Animation>
<AnimationName>CrouchStrafeLeftF</AnimationName>
<Time>0.47961568648540975</Time>
<Time>0.14513013667773755</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -687,7 +686,7 @@
<Components>
<c:Animation>
<AnimationName>CrouchStrafeRightF</AnimationName>
<Time>0.40693714843619233</Time>
<Time>0.072451598628520131</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -700,7 +699,7 @@
<Components>
<c:Animation>
<AnimationName>CrouchWalkF</AnimationName>
<Time>0.1853111336135953</Time>
<Time>0.8508255838059231</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -713,7 +712,7 @@
<Components>
<c:Animation>
<AnimationName>CrouchF</AnimationName>
<Time>1.8585386305602865</Time>
<Time>1.5240530807526143</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -756,7 +755,7 @@
<Components>
<c:Animation>
<AnimationName>WalkF</AnimationName>
<Time>0.87165493950985962</Time>
<Time>0.35598021321569639</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -767,7 +766,7 @@
<Components>
<c:Animation>
<AnimationName>RunF</AnimationName>
<Time>0.33980950828232714</Time>
<Time>0.3084600556940007</Time>
<Speed>2</Speed>
<Play>true</Play>
</c:Animation>
@@ -791,7 +790,7 @@
<Components>
<c:Animation>
<AnimationName>StrafeLeftF</AnimationName>
<Time>0.94251814368380415</Time>
<Time>0.91116869109547771</Time>
<Speed>2</Speed>
<Play>true</Play>
</c:Animation>
@@ -803,7 +802,7 @@
<Components>
<c:Animation>
<AnimationName>StrafeRightF</AnimationName>
<Time>0.019929152519770454</Time>
<Time>0.98857969993144401</Time>
<Speed>2</Speed>
<Play>true</Play>
</c:Animation>
@@ -819,7 +818,7 @@
<Components>
<c:Animation>
<AnimationName>IdleF</AnimationName>
<Time>0.55386718012173475</Time>
<Time>0.85485929533452953</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -945,7 +944,7 @@
<c:Blend>
<Pose1>AssaultWeapon</Pose1>
<Pose2>SidearmWeapon</Pose2>
<Weight>0</Weight>
<Weight>1</Weight>
<SubTreeRoot>true</SubTreeRoot>
</c:Blend>
<c:Transform/>
@@ -1006,7 +1005,7 @@
<Components>
<c:Animation>
<AnimationName>IdleAssaultRifleU</AnimationName>
<Time>1.502794625658133</Time>
<Time>1.9871198993639698</Time>
<Play>true</Play>
<Additive>true</Additive>
</c:Animation>
@@ -1109,232 +1108,6 @@
</Entity>
</Children>
</Entity>
<Entity name="Lights">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="Elbow_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Elbow</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.0546795987" Y="0.970895708" Z="-0.395071507"/>
<Orientation X="-2.67347836" Y="-1.14967656" Z="-2.35179591"/>
</c:Transform>
</Components>
<Children>
<Entity name="Upper">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.119805202" Y="0.0187246669" Z="-0.0205985513"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Lower">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0430894755" Y="-0.0822322816" Z="0.0446314402"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Elbow_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Elbow</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.311819345" Y="1.00506735" Z="-0.00708915293"/>
<Orientation X="1.66802835" Y="1.3856616" Z="0.553554595"/>
</c:Transform>
</Components>
<Children>
<Entity name="Upper">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.119999997" Y="0.0187246669" Z="-0.0205985513"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Lower">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0430000015" Y="-0.0822322816" Z="0.0446314402"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Head">
<Components>
<c:BoneAttachment>
<BoneName>Head</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.0847049356" Y="1.25094736" Z="-0.146904141"/>
<Orientation X="-0.270355761" Y="-0.134028792" Z="-0.181556195"/>
</c:Transform>
</Components>
<Children>
<Entity name="Left">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.117407471" Y="0.0664995536" Z="-0.00829757564"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Right">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.116999999" Y="0.0664995536" Z="-0.00829757564"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Leg_top_left">
<Components>
<c:BoneAttachment>
<BoneName>L_Leg_Top</BoneName>
<PositionOffset X="-0.116000004" Y="0.0500000007" Z="0.0360000022"/>
</c:BoneAttachment>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.187708378" Y="0.720764816" Z="0.0189282075"/>
<Orientation X="0.690089703" Y="-0.0030452935" Z="-0.0742322952"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Leg_top_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Leg_Top</BoneName>
<PositionOffset X="0.0800000057" Y="0.0730000064" Z="0.064000003"/>
</c:BoneAttachment>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.149033397" Y="0.743774891" Z="0.0911710933"/>
<Orientation X="0.00418904377" Y="-0.590482414" Z="0.240698725"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Leg_bottom_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Leg_Bottomdw</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.121549807" Y="0.396206558" Z="-0.258821368"/>
<Orientation X="0.0123701356" Y="0.0872921124" Z="-0.0923962742"/>
</c:Transform>
</Components>
<Children>
<Entity name="Outside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0752567574" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Inside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.075000003" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Leg_bottom_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Leg_Bottom</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.184887171" Y="0.323244393" Z="0.0367886424"/>
<Orientation X="-0.714135528" Y="-0.644820809" Z="0.337111086"/>
</c:Transform>
</Components>
<Children>
<Entity name="Inside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0752567574" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Outside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.075000003" Y="-0.0357234403" Z="0.0396512263"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity name="AABBStanding">
+15 -297
View File
@@ -579,7 +579,6 @@
<c:Shielded/>
<c:HiddenForLocalPlayer/>
<c:Model>
<GlowIntensity>2.2000000476837158</GlowIntensity>
<Resource>Models/Characters/Defender/DefenderBlue.mesh</Resource>
</c:Model>
<c:Transform/>
@@ -594,8 +593,8 @@
<EntityFile>Schema/Entities/WeaponDefenderBlueWorld.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.150445178" Y="1.04946244" Z="-0.300744236"/>
<Orientation X="-0.100557618" Y="-0.0389867723" Z="0.143711939"/>
<Position X="0.160437703" Y="1.04422736" Z="-0.295565188"/>
<Orientation X="-0.105441377" Y="-0.0721141845" Z="0.143959135"/>
</c:Transform>
<c:WeaponAttachment>
<Weapon>DefenderWeapon</Weapon>
@@ -615,8 +614,8 @@
<EntityFile>Schema/Entities/SidearmWeaponBlueWorld.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.150445178" Y="1.04946244" Z="-0.300744236"/>
<Orientation X="-0.100557618" Y="-0.0389867723" Z="0.143711939"/>
<Position X="0.160437703" Y="1.04422736" Z="-0.295565188"/>
<Orientation X="-0.105441377" Y="-0.0721141845" Z="0.143959135"/>
</c:Transform>
<c:WeaponAttachment>
<Weapon>SidearmWeapon</Weapon>
@@ -683,7 +682,7 @@
<Components>
<c:Animation>
<AnimationName>CrouchStrafeLeftF</AnimationName>
<Time>0.75511438140459752</Time>
<Time>0.89884525886057709</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -694,7 +693,7 @@
<Components>
<c:Animation>
<AnimationName>CrouchStrafeRightF</AnimationName>
<Time>0.6824358433553801</Time>
<Time>0.82616672081135967</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -707,7 +706,7 @@
<Components>
<c:Animation>
<AnimationName>CrouchWalkF</AnimationName>
<Time>0.46080982853278307</Time>
<Time>0.60454070598876264</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -720,7 +719,7 @@
<Components>
<c:Animation>
<AnimationName>CrouchF</AnimationName>
<Time>1.1340373254794738</Time>
<Time>0.27776820293545335</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -763,7 +762,7 @@
<Components>
<c:Animation>
<AnimationName>WalkF</AnimationName>
<Time>0.080924354358268502</Time>
<Time>0.10969533539853593</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -774,7 +773,7 @@
<Components>
<c:Animation>
<AnimationName>RunF</AnimationName>
<Time>0.75834833797914492</Time>
<Time>0.81589030005967977</Time>
<Speed>2</Speed>
<Play>true</Play>
</c:Animation>
@@ -798,7 +797,7 @@
<Components>
<c:Animation>
<AnimationName>StrafeLeftF</AnimationName>
<Time>0.36105697338062193</Time>
<Time>0.41859893546115678</Time>
<Speed>2</Speed>
<Play>true</Play>
</c:Animation>
@@ -810,7 +809,7 @@
<Components>
<c:Animation>
<AnimationName>StrafeRightF</AnimationName>
<Time>0.43846798221658823</Time>
<Time>0.49600994429712308</Time>
<Speed>2</Speed>
<Play>true</Play>
</c:Animation>
@@ -826,7 +825,7 @@
<Components>
<c:Animation>
<AnimationName>IdleF</AnimationName>
<Time>0.29646465130559285</Time>
<Time>1.1919024261691025</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -915,7 +914,7 @@
<Components>
<c:Animation>
<AnimationName>ShieldFrontU</AnimationName>
<Time>0.39092668139446118</Time>
<Time>0.41969766243472861</Time>
<Play>true</Play>
</c:Animation>
<c:Transform/>
@@ -964,7 +963,7 @@
<Components>
<c:Animation>
<AnimationName>IdleAssaultRifleU</AnimationName>
<Time>1.7120640405065419</Time>
<Time>0.74083502154680936</Time>
<Play>true</Play>
<Additive>true</Additive>
</c:Animation>
@@ -1065,287 +1064,6 @@
</Entity>
</Children>
</Entity>
<Entity name="Lights">
<Components>
<c:Transform/>
</Components>
<Children>
<Entity name="Head">
<Components>
<c:BoneAttachment>
<BoneName>Head</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.0811523944" Y="1.25871587" Z="-0.135778293"/>
<Orientation X="-0.242026433" Y="-0.103642859" Z="-0.186734527"/>
</c:Transform>
</Components>
<Children>
<Entity name="Left">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Radius>0.5</Radius>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0938162878" Y="0.0610048659" Z="-0.00614821212"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Right">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Radius>0.5</Radius>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0939999968" Y="0.0610048659" Z="-0.00614821212"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Back">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.00160108448" Y="0.112655103" Z="0.116904415"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Armor_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Shoulder_Armor_Joint</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.0336125046" Y="1.14461756" Z="-0.198084712"/>
<Orientation X="-0.123359792" Y="-1.02261281" Z="-0.192506254"/>
</c:Transform>
</Components>
<Children>
<Entity name="light">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.259081453" Y="0.0924699008" Z="0.0193806943"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Armor_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Shoulder_Armor_Joint</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.124662042" Y="1.18803668" Z="0.0253864676"/>
<Orientation X="-0.350490361" Y="-0.987647295" Z="0.0760278776"/>
</c:Transform>
</Components>
<Children>
<Entity name="light">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.259000003" Y="0.0924699008" Z="0.0193806943"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Elbow_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Elbow</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.0963651165" Y="0.979782283" Z="-0.387918979"/>
<Orientation X="-2.3728857" Y="-0.868270874" Z="-2.74759817"/>
</c:Transform>
</Components>
<Children>
<Entity name="Upper">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0530259758" Y="0.0710293874" Z="-0.0176120717"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Lower">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0404068455" Y="-0.0798887387" Z="-0.000667487504"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Elbow_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Elbow</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.308187783" Y="1.08455598" Z="-0.083610706"/>
<Orientation X="1.80888307" Y="1.43675375" Z="1.20322716"/>
</c:Transform>
</Components>
<Children>
<Entity name="Upper">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0529999994" Y="0.0710293874" Z="-0.0176120717"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Lower">
<Components>
<c:PointLight>
<Color A="1" B="0.701960802" G="0" R="0.188235298"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.0399999991" Y="-0.0798887387" Z="-0.000667487504"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Chest">
<Components>
<c:BoneAttachment>
<BoneName>Spine_3</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.0399524719" Y="1.09024417" Z="-0.0680764914"/>
<Orientation X="-0.50802201" Y="-0.93734026" Z="0.267742336"/>
</c:Transform>
</Components>
<Children>
<Entity name="Back">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.20000000298023224</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0" Y="0.0223282184" Z="0.16728729"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Leg_Bottom_Left">
<Components>
<c:BoneAttachment>
<BoneName>L_Leg_Bottom</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="-0.121582747" Y="0.396609098" Z="-0.250624388"/>
<Orientation X="0.0343631394" Y="0.0808496028" Z="-0.090051204"/>
</c:Transform>
</Components>
<Children>
<Entity name="Outside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.09705697" Y="-0.0529966503" Z="0.026842406"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Inside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0758597851" Y="-0.0458693244" Z="0.0236873701"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
<Entity name="Leg_Bottom_Right">
<Components>
<c:BoneAttachment>
<BoneName>R_Leg_Bottom</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.183104694" Y="0.325414658" Z="0.0393271334"/>
<Orientation X="-0.702914894" Y="-0.64635247" Z="0.335363626"/>
</c:Transform>
</Components>
<Children>
<Entity name="Inside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="-0.09705697" Y="-0.0529966503" Z="0.026842406"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="Outside">
<Components>
<c:PointLight>
<Color A="1" B="1" G="0.784313738" R="0"/>
<Intensity>0.10000000149011612</Intensity>
</c:PointLight>
<c:Transform>
<Position X="0.0758597851" Y="-0.0458693244" Z="0.0236873701"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
<Entity name="AABBStanding">
+1 -4
View File
@@ -5,6 +5,7 @@
<c:Lifetime>
<Lifetime>0.079999998211860657</Lifetime>
</c:Lifetime>
<c:NetworkComponent/>
<c:Transform/>
</Components>
@@ -17,10 +18,8 @@
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite>
<c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="-1.57099998" Z="0"/>
<Scale X="1" Y="0.0700000003" Z="0"/>
</c:Transform>
@@ -35,10 +34,8 @@
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite>
<c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
<Scale X="1" Y="0.0700000003" Z="0"/>
</c:Transform>
@@ -5,6 +5,7 @@
<c:Lifetime>
<Lifetime>0.079999998211860657</Lifetime>
</c:Lifetime>
<c:NetworkComponent/>
<c:Transform/>
</Components>
@@ -17,12 +18,10 @@
<DiffuseTexture>Textures/Effects/NewRay7.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite>
<c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="-1.57099998" Z="0"/>
<Scale X="1" Y="0.0700000003" Z="0"/>
<Scale X="1" Y="0.0700000003" Z="1"/>
</c:Transform>
</Components>
<Children/>
@@ -35,12 +34,10 @@
<DiffuseTexture>Textures/Effects/NewRay7.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite>
<c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
<Scale X="1" Y="0.0700000003" Z="0"/>
<Scale X="1" Y="0.0700000003" Z="1"/>
</c:Transform>
</Components>
<Children/>
+3 -6
View File
@@ -3,11 +3,12 @@
<Components>
<c:Lifetime>
<Lifetime>0.08</Lifetime>
<Lifetime>0.080000000000000002</Lifetime>
</c:Lifetime>
<c:Fade>
<FadeTime>0.08</FadeTime>
<FadeTime>0.080000000000000002</FadeTime>
</c:Fade>
<c:NetworkComponent/>
<c:Transform/>
</Components>
@@ -20,10 +21,8 @@
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite>
<c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="-1.57099998" Z="0"/>
<Scale X="1" Y="0.0250000004" Z="0"/>
</c:Transform>
@@ -38,10 +37,8 @@
<DiffuseTexture>Textures/Effects/NewRay5.png</DiffuseTexture>
<Color A="1" B="2.35294127" G="1.17647064" R="0"/>
<KeepRatio>true</KeepRatio>
<Linear>true</Linear>
</c:Sprite>
<c:Transform>
<Position X="0" Y="0" Z="-0.5"/>
<Orientation X="0" Y="4.71218538" Z="3.14199996"/>
<Scale X="1" Y="0.0250000004" Z="0"/>
</c:Transform>
@@ -6,12 +6,14 @@
<Lifetime>2</Lifetime>
</c:Lifetime>
<c:ExplosionEffect>
<ColorByDistance>true</ColorByDistance>
<Velocity X="1.63300014" Y="0.0320000015" Z="0"/>
<ExplosionOrigin X="0" Y="0.0790000036" Z="-0.329000026"/>
<ExponentialAccelaration>true</ExponentialAccelaration>
<EndColor A="0" B="19.6078434" G="19.6078434" R="0"/>
<Velocity X="1.78000009" Y="0.0320000015" Z="0"/>
<ExplosionOrigin X="0" Y="0.142000005" Z="-0.659000039"/>
<EndColor A="0" B="19.6078434" G="0.00392156886" R="1.96078432"/>
<RandomnessScalar>1.3399996757507324</RandomnessScalar>
<Randomness>true</Randomness>
<ColorByDistance>true</ColorByDistance>
<ExponentialAccelaration>true</ExponentialAccelaration>
<ColorDistanceScalar>5.0899982452392578</ColorDistanceScalar>
</c:ExplosionEffect>
<c:Model>
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
@@ -18,8 +18,8 @@
<Color A="1" B="0.117647059" G="0.117647059" R="0.117647059"/>
</c:Sprite>
<c:Transform>
<Position X="-0.00200000009" Y="-0.0730000064" Z="-0.0270000007"/>
<Scale X="0.268000007" Y="0.102000006" Z="1"/>
<Position X="-0.00700000022" Y="-0.0310000014" Z="-0.0270000007"/>
<Scale X="0.292000026" Y="0.064000003" Z="1"/>
</c:Transform>
</Components>
<Children/>
@@ -40,8 +40,8 @@
<Color A="0.392156869" B="1" G="1" R="1"/>
</c:Sprite>
<c:Transform>
<Position X="0.00300000003" Y="-0.0460000038" Z="0"/>
<Scale X="0.243000016" Y="0.0260000005" Z="1"/>
<Position X="-0.088000007" Y="-0.0350000001" Z="0"/>
<Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
</c:Transform>
</Components>
<Children>
@@ -56,8 +56,8 @@
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.430000007" Y="-0.434000015" Z="0.0199999996"/>
<Scale X="0.0659999996" Y="0.424000025" Z="1"/>
<Position X="-0.361000031" Y="-0.562000036" Z="0.0199999996"/>
<Scale X="0.180000007" Y="0.469000012" Z="1"/>
</c:Transform>
</Components>
<Children/>
@@ -80,8 +80,8 @@
<Color A="0.392156869" B="1" G="1" R="1"/>
</c:Sprite>
<c:Transform>
<Position X="0.00300000003" Y="-0.076000005" Z="0"/>
<Scale X="0.243000016" Y="0.0260000005" Z="1"/>
<Position X="0" Y="-0.0350000001" Z="0"/>
<Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
</c:Transform>
</Components>
<Children>
@@ -96,8 +96,8 @@
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.430000007" Y="-0.434000015" Z="0.0199999996"/>
<Scale X="0.0659999996" Y="0.424000025" Z="1"/>
<Position X="-0.380000025" Y="-0.561999977" Z="0.0199999996"/>
<Scale X="0.180000007" Y="0.469000012" Z="1"/>
</c:Transform>
</Components>
<Children/>
@@ -120,8 +120,8 @@
<Color A="0.392156869" B="1" G="1" R="1"/>
</c:Sprite>
<c:Transform>
<Position X="0.00300000003" Y="-0.107000008" Z="0"/>
<Scale X="0.243000016" Y="0.0260000005" Z="1"/>
<Position X="0.088000007" Y="-0.0350000001" Z="0"/>
<Scale X="0.0820000023" Y="0.0299999993" Z="1"/>
</c:Transform>
</Components>
<Children>
@@ -136,8 +136,8 @@
</Alignment>
</c:Text>
<c:Transform>
<Position X="-0.430000007" Y="-0.434000015" Z="0.0199999996"/>
<Scale X="0.0659999996" Y="0.424000025" Z="1"/>
<Position X="-0.387000024" Y="-0.561999977" Z="0.0199999996"/>
<Scale X="0.180000007" Y="0.469000012" Z="1"/>
</c:Transform>
</Components>
<Children/>
@@ -2,6 +2,7 @@
<Entity name="SidearmWeapon" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:Shielded/>
<c:Model>
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
</c:Model>
@@ -9,16 +10,37 @@
</Components>
<Children>
<Entity name="WeaponMuzzle">
<Entity name="Muzzle">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RayBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.0123999491" Y="0.102453232" Z="-0.273824364"/>
<Position X="-0.0169804785" Y="-0.0188358482" Z="-0.222064406"/>
</c:Transform>
</Components>
<Children/>
<Children>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0" Y="0.125075191" Z="-0.206788138"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleFlash">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/MuzzleFlashSideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.0240342002" Y="0.116005458" Z="-0.0419839472"/>
<Scale X="0.5" Y="0.5" Z="0.5"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
+38 -17
View File
@@ -11,17 +11,6 @@
</Components>
<Children>
<Entity name="WeaponMuzzle">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/Ray2Red.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0" Y="0.105000004" Z="-0.256000012"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="AmmunitionHUD">
<Components>
<c:TextFieldReader>
@@ -38,8 +27,9 @@
<Entity name="AmmunitionHUDBackground">
<Components>
<c:Sprite>
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
<Model>Models/Core/UnitQuad.mesh</Model>
<GlowMap></GlowMap>
<DiffuseTexture>Textures/Core/UnitHexagon.png</DiffuseTexture>
<Color A="0.588235319" B="0" G="0" R="0"/>
</c:Sprite>
<c:Transform>
@@ -56,16 +46,16 @@
<Children>
<Entity name="MagazineAmmo">
<Components>
<c:TextFieldReader>
<ParentEntityName>Player</ParentEntityName>
<ComponentType>SidearmWeapon</ComponentType>
<Field>MagazineAmmo</Field>
</c:TextFieldReader>
<c:Text>
<Content>16</Content>
<Resource>Fonts/DroidSans.ttf,64</Resource>
<Color A="1" B="3.92156863" G="1.17647064" R="0"/>
</c:Text>
<c:TextFieldReader>
<ParentEntityName>Player</ParentEntityName>
<ComponentType>SidearmWeapon</ComponentType>
<Field>MagazineAmmo</Field>
</c:TextFieldReader>
<c:Transform>
<Position X="0" Y="-0.00600000005" Z="0"/>
<Scale X="0.0599999987" Y="0.0599999987" Z="0.0599999987"/>
@@ -92,6 +82,37 @@
</Entity>
</Children>
</Entity>
<Entity name="Muzzle">
<Components>
<c:Transform>
<Position X="0.197295129" Y="-0.116625182" Z="-0.709192753"/>
</c:Transform>
</Components>
<Children>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0" Y="0" Z="-0.155046776"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleFlash">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/MuzzleFlashSideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Scale X="0.5" Y="0.5" Z="0.5"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
File diff suppressed because it is too large Load Diff
@@ -8,6 +8,7 @@
</c:BlendAdditive>
<c:Model>
<Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model>
<c:Transform/>
</Components>
@@ -90,9 +91,10 @@
<c:Model>
<GlowIntensity>1.5</GlowIntensity>
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model>
<c:Transform>
<Position X="0.120748267" Y="-0.22843127" Z="-0.181454584"/>
<Position X="0.120748267" Y="-0.22843127" Z="-0.181454599"/>
<Orientation X="0.0102799674" Y="-0.00312504289" Z="0.0428140014"/>
</c:Transform>
</Components>
@@ -131,7 +133,7 @@
<EntityFile>Schema/Entities/RayAssaultBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.00123506912" Y="-0.00209517847" Z="-0.681198895"/>
<Position X="0.00179657922" Y="-0.00304772682" Z="-0.334699303"/>
</c:Transform>
</Components>
<Children/>
@@ -2,6 +2,7 @@
<Entity name="AssaultWeapon" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:Shielded/>
<c:Model>
<Resource>Models/Weapons/Blue/AssaultWeaponBlue.mesh</Resource>
</c:Model>
@@ -9,17 +10,6 @@
</Components>
<Children>
<Entity name="WeaponMuzzle">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RayBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.00644115033" Y="0.096679531" Z="-0.436609417"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ReloadSpawner">
<Components>
<c:Spawner>
@@ -29,6 +19,38 @@
</Components>
<Children/>
</Entity>
<Entity name="Muzzle">
<Components>
<c:Transform>
<Position X="0.00728808995" Y="0.0896582007" Z="-0.643795013"/>
<Orientation X="6.27600002" Y="0.00499999989" Z="0.00600000005"/>
</c:Transform>
</Components>
<Children>
<Entity name="WeaponMuzzleFlash">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="-8.41593719e-05" Y="-0.000816107844" Z="0.0612007342"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RayAssaultBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.00179657922" Y="-0.00304772682" Z="-0.334699303"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
@@ -8,6 +8,7 @@
</c:BlendAdditive>
<c:Model>
<Resource>Models/Characters/Defender/FirstPersonDefenderBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model>
<c:Transform/>
</Components>
@@ -154,7 +155,7 @@
<InheritScale>true</InheritScale>
</c:BoneAttachment>
<c:Transform>
<Position X="0.0540262833" Y="-0.0954347998" Z="-0.225546911"/>
<Position X="0.0540262833" Y="-0.0954347998" Z="-0.225546926"/>
<Orientation X="0.00124507793" Y="0.077417776" Z="0.00737103401"/>
<Scale X="0.300000012" Y="0.300000042" Z="0.299999952"/>
</c:Transform>
@@ -244,9 +245,10 @@
</c:BoneAttachment>
<c:Model>
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model>
<c:Transform>
<Position X="0.120748043" Y="-0.228436321" Z="-0.151475549"/>
<Position X="0.120748043" Y="-0.228436321" Z="-0.151475564"/>
<Orientation X="0.0102800643" Y="-0.00312487315" Z="0.0428144038"/>
</c:Transform>
</Components>
@@ -265,7 +267,7 @@
<Entity name="Muzzle">
<Components>
<c:Transform>
<Position X="0.137428522" Y="-0.145251781" Z="-0.590083241"/>
<Position X="0.119734153" Y="-0.145251781" Z="-0.564532101"/>
</c:Transform>
</Components>
<Children>
@@ -275,7 +277,7 @@
<EntityFile>Schema/Entities/RayDefenderBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.0180841181" Y="0.0252480619" Z="-0.663679719"/>
<Position X="0" Y="0" Z="-0.109966502"/>
</c:Transform>
</Components>
<Children/>
@@ -286,7 +288,7 @@
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.0201820824" Y="0.0212024488" Z="-0.0305794869"/>
<Position X="0.0201820824" Y="0" Z="0"/>
<Scale X="1.5" Y="1.5" Z="1"/>
</c:Transform>
</Components>
@@ -2,6 +2,7 @@
<Entity name="ThirdPersonWeaponModel" xmlns:c="components" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../Types/Entity.xsd">
<Components>
<c:Shielded/>
<c:Model>
<Resource>Models/Weapons/Blue/DefenderWeaponBlue.mesh</Resource>
</c:Model>
@@ -9,17 +10,6 @@
</Components>
<Children>
<Entity name="WeaponMuzzle">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/DefenderRayBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.000284185546" Y="0.0318552479" Z="-0.193328083"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="ThirdPersonReloadSpawner">
<Components>
<c:Spawner>
@@ -29,6 +19,38 @@
</Components>
<Children/>
</Entity>
<Entity name="Muzzle">
<Components>
<c:Transform>
<Position X="-0.0100463303" Y="0.0624945536" Z="-0.372351319"/>
</c:Transform>
</Components>
<Children>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RayDefenderBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.0180841181" Y="0.0252480619" Z="-0.135249734"/>
</c:Transform>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleFlash">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/MuzzleFlashBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0.0201820824" Y="0.0212024488" Z="-0.0305794869"/>
<Scale X="1.5" Y="1.5" Z="1"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
</Entity>
@@ -8,6 +8,7 @@
</c:BlendAdditive>
<c:Model>
<Resource>Models/Characters/Assault/FirstPersonAssaultBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model>
<c:Transform/>
</Components>
@@ -183,6 +184,7 @@
<c:Model>
<GlowIntensity>1.2999999523162842</GlowIntensity>
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model>
<c:Transform>
<Position X="0.185786247" Y="-0.21622014" Z="-0.412707269"/>
@@ -204,7 +206,7 @@
<Entity name="Muzzle">
<Components>
<c:Transform>
<Position X="0.197295129" Y="-0.116625182" Z="-0.709192753"/>
<Position X="0.189540595" Y="-0.114737265" Z="-0.681462705"/>
</c:Transform>
</Components>
<Children>
@@ -213,9 +215,7 @@
<c:Spawner>
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0" Y="0" Z="-0.155046776"/>
</c:Transform>
<c:Transform/>
</Components>
<Children/>
</Entity>
@@ -8,6 +8,7 @@
</c:BlendAdditive>
<c:Model>
<Resource>Models/Characters/Defender/FirstPersonDefenderBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model>
<c:Transform/>
</Components>
@@ -86,7 +87,7 @@
<BoneName>R_Ammo_Joint</BoneName>
</c:BoneAttachment>
<c:Transform>
<Position X="0.109812573" Y="-0.0832190216" Z="-0.373473197"/>
<Position X="0.109812573" Y="-0.0832190216" Z="-0.373473227"/>
<Orientation X="0.00118373742" Y="0.077411525" Z="0.00458352407"/>
<Scale X="0.400000006" Y="0.400000006" Z="0.400000006"/>
</c:Transform>
@@ -183,9 +184,10 @@
<c:Model>
<GlowIntensity>1.5</GlowIntensity>
<Resource>Models/Weapons/Blue/SecondaryWeaponBlue.mesh</Resource>
<Shadow>false</Shadow>
</c:Model>
<c:Transform>
<Position X="0.18578662" Y="-0.216220587" Z="-0.382728696"/>
<Position X="0.18578662" Y="-0.216220587" Z="-0.382728726"/>
<Orientation X="0.010279973" Y="-0.00312555139" Z="0.0428142436"/>
</c:Transform>
</Components>
@@ -204,10 +206,19 @@
<Entity name="Muzzle">
<Components>
<c:Transform>
<Position X="0.196999997" Y="-0.116999999" Z="-0.668634355"/>
<Position X="0.192775041" Y="-0.117133088" Z="-0.647809923"/>
</c:Transform>
</Components>
<Children>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform/>
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleFlash">
<Components>
<c:Spawner>
@@ -219,17 +230,6 @@
</Components>
<Children/>
</Entity>
<Entity name="WeaponMuzzleRay">
<Components>
<c:Spawner>
<EntityFile>Schema/Entities/RaySideArmBlue.xml</EntityFile>
</c:Spawner>
<c:Transform>
<Position X="0" Y="0" Z="-0.155000001"/>
</c:Transform>
</Components>
<Children/>
</Entity>
</Children>
</Entity>
</Children>
-76
View File
@@ -1,76 +0,0 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Axyz"
#define MyAppVersion "1.0"
#define MyAppURL "https://github.com/teamfisk/TacticalZ"
#define MyAppExeName "Axyz.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{38D77EB2-6B56-4B4F-BAAE-43F9E6E1A191}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=Axyz Setup
SetupIconFile=..\Axyz.ico
Compression=lzma2
SolidCompression=yes
; "ArchitecturesAllowed=x64" specifies that Setup cannot run on
; anything but x64.
ArchitecturesAllowed=x64
; "ArchitecturesInstallIn64BitMode=x64" requests that the install be
; done in "64-bit mode" on x64, meaning it should use the native
; 64-bit Program Files directory and the 64-bit view of the registry.
ArchitecturesInstallIn64BitMode=x64
OutputDir=.
DisableWelcomePage=false
;WizardSmallImageFile=
WizardImageFile=Setup Banner.bmp
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "..\..\bin\Audio\*"; DestDir: "{app}\Audio\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Fonts\*"; DestDir: "{app}\Fonts\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Licenses\*"; DestDir: "{app}\Licenses\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Models\*"; DestDir: "{app}\Models\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Schema\*"; DestDir: "{app}\Schema\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Shaders\*"; DestDir: "{app}\Shaders\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\Textures\*"; DestDir: "{app}\Textures\"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "..\..\bin\assimp.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\DefaultConfig.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\DefaultInput.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\glew32.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\glfw3.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\imgui.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\Input.ini"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\libpng16.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\Axyz.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\xerces-c_3_1.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\bin\zlib.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "..\..\deps\redist\VC_redist.x64.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall
[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[INI]
Filename: "{app}\Config.ini"; Section: "Networking"; Key: "Name"; String: "{%USERNAME}"; Flags: createkeyifdoesntexist
[Run]
Filename: "{tmp}\VC_redist.x64.exe"; Parameters: "/norestart /passive"; StatusMsg: "Installing Microsoft Visual C++ 2015 x64 Redistributable....";
[ThirdParty]
UseRelativePaths=True
Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.
+17 -17
View File
@@ -146,14 +146,14 @@ bool RayVsTriangle(const Ray& ray,
}
bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix)
{
for (int i = 0; i < modelIndices.size();) {
glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
if (RayVsTriangle(ray, v0, v1, v2)) {
return true;
}
@@ -194,7 +194,7 @@ bool RayVsTriangle(const Ray& ray,
}
bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix,
float& outDistance,
@@ -204,9 +204,9 @@ bool RayVsModel(const Ray& ray,
outDistance = INFINITY;
bool hit = false;
for (int i = 0; i < modelIndices.size();) {
glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix);
glm::vec3 v0 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
glm::vec3 v1 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
glm::vec3 v2 = TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix);
float dist = outDistance;
float u;
float v;
@@ -221,7 +221,7 @@ bool RayVsModel(const Ray& ray,
}
bool RayVsModel(const Ray& ray,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix,
glm::vec3& outHitPosition)
@@ -548,7 +548,7 @@ BoxTriRes AABBvsTriangle(const AABB& box,
}
Output AABBvsTriangles(const AABB& box,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix,
glm::vec3& boxVelocity,
@@ -565,9 +565,9 @@ Output AABBvsTriangles(const AABB& box,
glm::vec3 originalBoxVelocity(boxVelocity);
for (int i = 0; i < modelIndices.size(); ) {
std::array<glm::vec3, 3> triVertices = {
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix),
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix),
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]], modelMatrix)
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix),
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix),
TransformSystem::TransformPoint(modelVertices[modelIndices[i++]].Position, modelMatrix)
};
glm::vec3 outVec;
bool collideWithGround = isOnGround;
@@ -595,7 +595,7 @@ Output AABBvsTriangles(const AABB& box,
}
bool AABBvsTriangles(const AABB& box,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix,
glm::vec3& boxVelocity,
@@ -615,7 +615,7 @@ bool AABBvsTriangles(const AABB& box,
}
bool AABBvsTriangles(const AABB& box,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix)
{
@@ -633,7 +633,7 @@ bool AABBvsTriangles(const AABB& box,
}
Output AABBvsTrianglesWContainment(const AABB& box,
const std::vector<glm::vec3>& modelVertices,
const RawModel::Vertex* modelVertices,
const std::vector<unsigned int>& modelIndices,
const glm::mat4& modelMatrix)
{
@@ -741,7 +741,7 @@ boost::optional<EntityAABB> EntityFirstHitByRay(const Ray& ray, std::vector<Enti
continue;
}
float u, v;
if (RayVsModel(ray, model->m_Vertices, model->m_Indices, TransformSystem::ModelMatrix(entityBox.Entity), outDistance, u, v)) {
if (RayVsModel(ray, model->Vertices(), model->m_RawModel->m_Indices, TransformSystem::ModelMatrix(entityBox.Entity), outDistance, u, v)) {
outIntersectPos = ray.Origin() + outDistance * ray.Direction();
return entityBox;
}
+6 -6
View File
@@ -41,15 +41,15 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
// Don't collide against invisible models.
continue;
}
Model* model;
RawModel* model;
std::string res = (std::string)boxB.Entity["Model"]["Resource"];
try {
model = ResourceManager::Load<Model, true>(res);
model = ResourceManager::Load<RawModel, true>(res);
} catch (const std::exception&) {
continue;
}
float u, v;
hit = Collision::RayVsModel(ray, model->m_Vertices, model->m_Indices, TransformSystem::ModelMatrix(boxB.Entity), dist, u, v);
hit = Collision::RayVsModel(ray, model->Vertices(), model->m_Indices, TransformSystem::ModelMatrix(boxB.Entity), dist, u, v);
} else {
hit = Collision::RayVsAABB(ray, boxB, dist);
}
@@ -86,9 +86,9 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
// Don't collide against invisible models.
continue;
}
Model* model;
RawModel* model;
try {
model = ResourceManager::Load<Model, true>(boxB.Entity["Model"]["Resource"]);
model = ResourceManager::Load<RawModel, true>(boxB.Entity["Model"]["Resource"]);
} catch (const std::exception&) {
continue;
}
@@ -98,7 +98,7 @@ void CollisionSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& c
glm::vec3 inOutVelocity = (glm::vec3)cPhysics["Velocity"];
bool isOnGround = (bool)cPhysics["IsOnGround"];
float verticalStepHeight = (float)(double)cPhysics["VerticalStepHeight"];
if (Collision::AABBvsTriangles(boxA, model->m_Vertices, model->m_Indices, modelMatrix, inOutVelocity, verticalStepHeight, isOnGround, resolutionVector)) {
if (Collision::AABBvsTriangles(boxA, model->Vertices(), model->m_Indices, modelMatrix, inOutVelocity, verticalStepHeight, isOnGround, resolutionVector)) {
//Move the position to previous position if it is not moving in the xz-plane, else resolve with the resolution vector.
(Field<glm::vec3>)cTransform["Position"] += resolutionVector;
boxA = *Collision::EntityAbsoluteAABB(entity);
+3 -3
View File
@@ -10,11 +10,11 @@ void TriggerSystem::UpdateComponent(EntityWrapper& triggerEntity, ComponentWrapp
return;
}
Model* triggerModel = nullptr;
RawModel* triggerModel = nullptr;
glm::mat4 triggerModelMat;
if (triggerEntity.HasComponent("Model")) {
try {
triggerModel = ResourceManager::Load<Model, true>(triggerEntity["Model"]["Resource"]);
triggerModel = ResourceManager::Load<RawModel, true>(triggerEntity["Model"]["Resource"]);
triggerModelMat = TransformSystem::ModelMatrix(triggerEntity);
} catch (const std::exception&) {
}
@@ -38,7 +38,7 @@ void TriggerSystem::UpdateComponent(EntityWrapper& triggerEntity, ComponentWrapp
? Collision::Output::OutContained
: Collision::AABBvsTrianglesWContainment(
colliderBox,
triggerModel->m_Vertices,
triggerModel->Vertices(),
triggerModel->m_Indices,
triggerModelMat);
+5 -5
View File
@@ -37,7 +37,7 @@ void AnimationSystem::CreateBlendTrees()
continue;;
}
Skeleton* skeleton = model->m_Skeleton;
Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) {
continue;
}
@@ -79,7 +79,7 @@ void AnimationSystem::UpdateAnimations(double dt)
continue;
}
Skeleton* skeleton = model->m_Skeleton;
Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) {
continue;
}
@@ -177,7 +177,7 @@ bool AnimationSystem::OnAutoAnimationBlend(Events::AutoAnimationBlend& e)
return false;
}
Skeleton* skeleton = model->m_Skeleton;
Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) {
LOG_ERROR("%s, RootNode skeleton invalid %s", e.NodeName, e.RootNode.Name().c_str());
return false;
@@ -300,7 +300,7 @@ bool AnimationSystem::OnEntityDeleted(Events::EntityDeleted& e)
return false;
}
Skeleton* skeleton = model->m_Skeleton;
Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) {
return false;
}
@@ -331,7 +331,7 @@ bool AnimationSystem::OnSetBlendWeight(Events::SetBlendWeight& e)
return false;
}
Skeleton* skeleton = model->m_Skeleton;
Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) {
return false;
}
+3 -3
View File
@@ -22,7 +22,7 @@ void AutoBlendQueue::Insert(AutoBlendJob autoBlendJob)
return;
}
Skeleton* skeleton = model->m_Skeleton;
Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) {
return;
}
@@ -130,7 +130,7 @@ bool AutoBlendQueue::HasActiveBlendJob()
return HasActiveBlendJob();
}
Skeleton* skeleton = model->m_Skeleton;
Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) {
m_BlendQueue.pop_front();
return HasActiveBlendJob();
@@ -173,7 +173,7 @@ std::shared_ptr<BlendTree> AutoBlendQueue::GetBlendTree()
return nullptr;
}
Skeleton* skeleton = model->m_Skeleton;
Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if (skeleton == nullptr) {
return nullptr;
}
@@ -26,7 +26,7 @@ void BoneAttachmentSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapp
return;
}
Skeleton* skeleton = model->m_Skeleton;
Skeleton* skeleton = model->m_RawModel->m_Skeleton;
if(skeleton == nullptr) {
return;
+17 -3
View File
@@ -332,6 +332,14 @@ void DrawFinalPass::Draw(RenderScene& scene, BlurHUD* blurHUDPass)
glClearStencil(0x00);
glClear(GL_STENCIL_BUFFER_BIT);
//Fill depth buffer
state->Enable(GL_STENCIL_TEST);
state->StencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
state->StencilFunc(GL_ALWAYS, 1, 0xFF);
state->StencilMask(0xFF);
state->DepthMask(GL_FALSE);
//DrawToDepthStencilBuffer(scene.Jobs.ShieldObjects, scene);
state->DepthMask(GL_TRUE);
//Draw Opaque shielded objects
state->Disable(GL_STENCIL_TEST);
@@ -346,10 +354,10 @@ void DrawFinalPass::Draw(RenderScene& scene, BlurHUD* blurHUDPass)
GLERROR("OpaqueObjects");
//state->Disable(GL_STENCIL_TEST);
//Draw Transparen objects
//Draw Transparen Shielded objects
state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
DrawModelRenderQueuesWithShieldCheck(scene.Jobs.TransparentObjects, scene); //might need changing
GLERROR("Transparent objects");
GLERROR("Shielded Transparent objects");
//Generate blur texture.
delete state;
@@ -371,6 +379,12 @@ void DrawFinalPass::Draw(RenderScene& scene, BlurHUD* blurHUDPass)
} else {
stateSprite = new DrawFinalPassState(m_FinalPassFrameBuffer->GetHandle());
}
//Draw Transparen objects
//state->BlendFunc(GL_ONE, GL_ONE);
//state->StencilFunc(GL_EQUAL, 1, 0xFF);
//DrawModelRenderQueues(scene.Jobs.TransparentObjects, scene);
GLERROR("TransparentObjects");
//state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
stateSprite->Enable(GL_DEPTH_TEST);
//stateSprite->AlphaFunc(GL_GEQUAL, 0.05f);
//stateSprite->Enable(GL_ALPHA_TEST);
@@ -624,7 +638,7 @@ void DrawFinalPass::DrawModelRenderQueues(std::list<std::shared_ptr<RenderJob>>&
std::vector<glm::mat4> frameBones;
if (modelJob->BlendTree != nullptr) {
frameBones = modelJob->BlendTree->GetFinalPose();
} else if (modelJob->Skeleton != nullptr) {
} else {
frameBones = modelJob->Skeleton->GetTPose();
}
glUniformMatrix4fv(glGetUniformLocation(forwardSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+12 -24
View File
@@ -3,9 +3,9 @@
Model::Model(std::string fileName)
{
//Try loading the model asyncronously, if it throws any exceptions then let it propagate back to caller.
auto rawModel = ResourceManager::Load<RawModel, true>(fileName);
m_RawModel = ResourceManager::Load<RawModel, true>(fileName);
for (auto& materialProperty : rawModel->m_Materials) {
for (auto& materialProperty : m_RawModel->m_Materials) {
switch (materialProperty.type) {
case RawModel::MaterialType::SingleTextures:
{
@@ -46,11 +46,11 @@ Model::Model(std::string fileName)
glGenBuffers(1, &buffer);
glBindBuffer(GL_ARRAY_BUFFER, buffer);
glBufferData(GL_ARRAY_BUFFER, rawModel->NumVertices() * rawModel->VertexSize(), rawModel->Vertices(), GL_STATIC_DRAW);
glBufferData(GL_ARRAY_BUFFER, m_RawModel->NumVertices() * m_RawModel->VertexSize(), m_RawModel->Vertices(), GL_STATIC_DRAW);
glGenBuffers(1, &ElementBuffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ElementBuffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, rawModel->Indices().size() * sizeof(unsigned int), rawModel->Indices().data(), GL_STATIC_DRAW);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, m_RawModel->m_Indices.size() * sizeof(unsigned int), &m_RawModel->m_Indices[0], GL_STATIC_DRAW);
glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO);
@@ -58,7 +58,7 @@ Model::Model(std::string fileName)
glBindBuffer(GL_ARRAY_BUFFER, buffer);
std::vector<int> structSizes;
if (rawModel->IsSkinned()) {
if (m_RawModel->IsSkinned()) {
structSizes = { 3, 3, 3, 3, 2, 4, 4 };
} else {
structSizes = { 3, 3, 3, 3, 2 };
@@ -77,7 +77,7 @@ Model::Model(std::string fileName)
glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++;
glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++;
glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++;
if (rawModel->IsSkinned()) {
if (m_RawModel->IsSkinned()) {
glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++;
glVertexAttribPointer(element, structSizes[element], GL_FLOAT, GL_FALSE, stride, (GLvoid*)(sizeof(GLfloat) * (offset += structSizes[element - 1]))); element++;
}
@@ -89,7 +89,7 @@ Model::Model(std::string fileName)
glEnableVertexAttribArray(2);
glEnableVertexAttribArray(3);
glEnableVertexAttribArray(4);
if (rawModel->IsSkinned()) {
if (m_RawModel->IsSkinned()) {
glEnableVertexAttribArray(5);
glEnableVertexAttribArray(6);
}
@@ -99,29 +99,17 @@ Model::Model(std::string fileName)
glm::vec3 mini(INFINITY);
glm::vec3 maxi(-INFINITY);
for (unsigned int i = 0; i < rawModel->NumVertices(); i++) {
const auto& v = rawModel->Vertices()[i];
for (unsigned int i = 0; i < m_RawModel->NumVertices(); i++) {
const auto& v = m_RawModel->Vertices()[i];
mini = glm::min(mini, v.Position);
maxi = glm::max(maxi, v.Position);
}
m_Box = AABB(mini, maxi);
m_Skeleton = rawModel->m_Skeleton;
m_Materials = rawModel->m_Materials;
m_Indices = rawModel->CollisionIndices();
m_IsSkinned = rawModel->IsSkinned();
// Copy vertex positions for collisions later
m_Vertices = rawModel->CollisionVertices();
ResourceManager::Release("RawModel", fileName);
}
Model::~Model()
{
if (m_Skeleton != nullptr) {
delete m_Skeleton;
}
for (auto material : m_Materials) {
delete material.material;
}
}
+1 -1
View File
@@ -115,7 +115,7 @@ void PickingPass::Draw(RenderScene& scene)
std::vector<glm::mat4> frameBones;
if (modelJob->BlendTree != nullptr) {
frameBones = modelJob->BlendTree->GetFinalPose();
} else if (modelJob->Skeleton != nullptr) {
} else {
frameBones = modelJob->Skeleton->GetTPose();
}
glUniformMatrix4fv(glGetUniformLocation(shaderSkinnedHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+9 -86
View File
@@ -11,7 +11,6 @@ RawModelCustom::RawModelCustom(std::string fileName)
ReadMeshFile(fileName);
ReadMaterialFile(fileName);
ReadAnimationFile(fileName);
ReadCollisionFile(fileName);
}
void RawModelCustom::ReadMeshFile(std::string filePath)
@@ -72,11 +71,11 @@ void RawModelCustom::ReadVertices(std::size_t& offset, char* fileData, const uns
memcpy(&m_SkinedVertices[0], fileData + offset, m_SkinedVertices.size() * sizeof(SkinedVertex));
offset += m_SkinedVertices.size() * sizeof(SkinedVertex);
} else {
if (offset + m_Vertices.size() * sizeof(RenderVertex) > fileByteSize) {
if (offset + m_Vertices.size() * sizeof(Vertex) > fileByteSize) {
throw Resource::FailedLoadingException("Reading vertices failed");
}
memcpy(&m_Vertices[0], fileData + offset, m_Vertices.size() * sizeof(RenderVertex));
offset += m_Vertices.size() * sizeof(RenderVertex);
memcpy(&m_Vertices[0], fileData + offset, m_Vertices.size() * sizeof(Vertex));
offset += m_Vertices.size() * sizeof(Vertex);
}
#else
#endif
@@ -492,90 +491,14 @@ void RawModelCustom::ReadAnimationKeyFrame(std::size_t& offset, char* fileData,
}
void RawModelCustom::ReadCollisionFile(std::string filePath) {
char* fileData;
filePath += ".colli";
std::ifstream in(filePath.c_str(), std::ios_base::binary | std::ios_base::ate);
if (!in.is_open()) {
return;
}
unsigned int fileByteSize = static_cast<unsigned int>(in.tellg());
in.seekg(0, std::ios_base::beg);
fileData = new char[fileByteSize];
in.read(fileData, fileByteSize);
in.close();
std::size_t offset = 0;
if (fileByteSize > 0) {
ReadCollisionFileData(offset, fileData, fileByteSize);
}
hasCollisionMesh = true;
delete[] fileData;
}
const std::vector<glm::vec3>& RawModelCustom::CollisionVertices() {
if (hasCollisionMesh) {
return m_CollisionVertices;
}
else if (hasSkin) {
// We don't do collisions against skinned meshes now.
m_CollisionVertices = std::vector<glm::vec3>();
return m_CollisionVertices;
}
else {
return ConstructCollisionList();
}
};
void RawModelCustom::ReadCollisionFileData(std::size_t& offset, char* fileData, const unsigned int& fileByteSize){
m_CollisionVertices.resize(static_cast<std::size_t>(*(unsigned int*)(fileData + offset)));
offset += sizeof(unsigned int);
m_CollisionIndices.resize(static_cast<std::size_t>(*(unsigned int*)(fileData + offset)));
offset += sizeof(unsigned int);
if (offset + m_CollisionVertices.size() * sizeof(glm::vec3) > fileByteSize) {
throw Resource::FailedLoadingException("Reading collision vertices failed");
}
memcpy(&m_CollisionVertices[0], fileData + offset, m_CollisionVertices.size() * sizeof(glm::vec3));
offset += m_CollisionVertices.size() * sizeof(glm::vec3);
if (offset + m_CollisionIndices.size() * sizeof(unsigned int) > fileByteSize) {
throw Resource::FailedLoadingException("Reading collision indices failed");
}
memcpy(&m_CollisionIndices[0], fileData + offset, m_CollisionIndices.size() * sizeof(unsigned int));
offset += m_CollisionIndices.size() * sizeof(unsigned int);
}
const std::vector<glm::vec3>& RawModelCustom::ConstructCollisionList()
{
if (!hasCollisionMesh && m_CollisionVertices.size() == 0) {
if (hasSkin) {
m_CollisionVertices.reserve(m_SkinedVertices.size());
for (const auto& vertex : m_SkinedVertices) {
m_CollisionVertices.push_back(vertex.Position);
}
} else {
m_CollisionVertices.reserve(m_Vertices.size());
for (const auto& vertex : m_Vertices) {
m_CollisionVertices.push_back(vertex.Position);
}
}
}
return m_CollisionVertices;
}
RawModelCustom::~RawModelCustom()
{
// Ownership of skeleton and materials get transferred to Model
// if (m_Skeleton != nullptr) {
// delete m_Skeleton;
// }
//for (auto material : m_Materials) {
// delete material.material;
//}
if (m_Skeleton != nullptr) {
delete m_Skeleton;
}
for (auto material : m_Materials) {
delete material.material;
}
}
#endif
+1 -1
View File
@@ -259,7 +259,7 @@ void ShadowPass::Draw(RenderScene & scene)
std::vector<glm::mat4> frameBones;
if (modelJob->BlendTree != nullptr) {
frameBones = modelJob->BlendTree->GetFinalPose();
} else if (modelJob->Skeleton != nullptr) {
} else {
frameBones = modelJob->Skeleton->GetTPose();
}
glUniformMatrix4fv(glGetUniformLocation(shaderHandle, "Bones"), frameBones.size(), GL_FALSE, glm::value_ptr(frameBones[0]));
+2 -3
View File
@@ -53,11 +53,10 @@ target_link_libraries(Game
${LIBRARIES}
)
add_executable(Axyz
add_executable(TacticalZ
main.cpp
${CMAKE_SOURCE_DIR}/resources/TacticalZ.rc
)
target_link_libraries(Axyz
target_link_libraries(TacticalZ
Game
${LIBRARIES}
)
+3 -3
View File
@@ -112,15 +112,15 @@ bool SpawnerSystem::spawnedEntityIsColliding(EntityWrapper spawnedEntity, Entity
if (!spawnedBox.Entity.HasComponent("Model")) {
return true;
}
Model* model = nullptr;
RawModel* model = nullptr;
try {
model = ResourceManager::Load<Model, true>(otherEntity["Model"]["Resource"]);
model = ResourceManager::Load<RawModel, true>(otherEntity["Model"]["Resource"]);
} catch (const std::exception&) {
}
if (model != nullptr && Collision::AABBvsTriangles(
spawnedBox,
model->m_Vertices,
model->Vertices(),
model->m_Indices,
TransformSystem::ModelMatrix(otherEntity))) {
return true;
@@ -235,7 +235,8 @@ void AssaultWeaponBehaviour::fireBullet(ComponentWrapper cWeapon, WeaponInfo& wi
float distance = traceRayDistance(origin, direction);
EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner);
if (ray.Valid()) {
((Field<glm::vec3>)ray["Transform"]["Scale"]).z(distance);
((Field<glm::vec3>)ray["Transform"]["Scale"]).x(distance);
((Field<glm::vec3>)ray["Transform"]["Position"]).z(-distance/2.f);
}
}
//MuzzleFlash
@@ -395,9 +395,12 @@ void DefenderWeaponBehaviour::spawnTracers(ComponentWrapper cWeapon, WeaponInfo&
glm::vec3 muzzlePosition = TransformSystem::AbsolutePosition(muzzle);
glm::quat muzzleOrientation = TransformSystem::AbsoluteOrientation(muzzle);
rayOrigin = muzzlePosition;
glm::vec3 muzzleToHit = hitPosition - muzzlePosition;
rayOrigin = muzzlePosition + (muzzleToHit/2.f);
glm::vec3 lookVector = glm::normalize(-muzzleToHit);
float pitch = std::asin(-lookVector.y);
float yaw = std::atan2(lookVector.x, lookVector.z);
@@ -459,8 +462,8 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w
}
// Temp hit decal
EntityWrapper hit = ResourceManager::Load<EntityFile>("Schema/Entities/HitTest.xml")->MergeInto(m_World);
(Field<glm::vec3>)hit["Transform"]["Position"] = pick.Position;
// EntityWrapper hit = ResourceManager::Load<EntityFile>("Schema/Entities/HitTest.xml")->MergeInto(m_World);
// (Field<glm::vec3>)hit["Transform"]["Position"] = pick.Position;
// Don't let us shoot ourselves in the foot somehow
if (victim == LocalPlayer) {
@@ -477,12 +480,17 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w
// Check for friendly fire
if ((ComponentInfo::EnumType)victim["Team"]["Team"] == (ComponentInfo::EnumType)wi.Player["Team"]["Team"]) {
// TODO: Ammo sharing
// Give boost
Events::PlayerDamage ePlayerDamage;
ePlayerDamage.Inflictor = wi.Player;
ePlayerDamage.Victim = victim;
ePlayerDamage.Damage = 0;
m_EventBroker->Publish(ePlayerDamage);
continue;
}
damageSum[victim] += pelletDamage;
((Field<glm::vec4>)hit["Model"]["Color"]).z(1.f);
// ((Field<glm::vec4>)hit["Model"]["Color"]).z(1.f);
}
// Deal damage!
@@ -493,7 +501,6 @@ void DefenderWeaponBehaviour::dealDamage(ComponentWrapper cWeapon, WeaponInfo& w
ePlayerDamage.Victim = kv.first;
ePlayerDamage.Damage = kv.second;
m_EventBroker->Publish(ePlayerDamage);
LOG_DEBUG("Dealt %f damage to #%i", kv.second, kv.first.ID);
}
}
@@ -223,15 +223,16 @@ void SidearmWeaponBehaviour::fireBullet(ComponentWrapper cWeapon, WeaponInfo& wi
return;
}
//Tracer
// Tracer
EntityWrapper tracerSpawner = weaponModelEntity.FirstChildByName("WeaponMuzzleRay");
if (tracerSpawner.Valid()) {
glm::vec3 origin = TransformSystem::AbsolutePosition(tracerSpawner);
glm::vec3 direction = TransformSystem::AbsoluteOrientation(tracerSpawner) * glm::vec3(0, 0, -1);
glm::vec3 direction = glm::quat(TransformSystem::AbsoluteOrientationEuler(tracerSpawner)) * glm::vec3(0, 0, -1);
float distance = traceRayDistance(origin, direction);
EntityWrapper ray = SpawnerSystem::Spawn(tracerSpawner, tracerSpawner);
if (ray.Valid()) {
((Field<glm::vec3>)ray["Transform"]["Scale"]).z(distance);
((Field<glm::vec3>)ray["Transform"]["Scale"]).x(distance);
((Field<glm::vec3>)ray["Transform"]["Position"]).z(-distance/2.f);
}
}
+5 -22
View File
@@ -5,7 +5,7 @@ Export::Export()
}
bool Export::Meshes(std::string pathName, bool selectedOnly, bool isCollision)
bool Export::Meshes(std::string pathName, bool selectedOnly)
{
MStatus status;
if (pathName.empty()) {
@@ -92,14 +92,8 @@ bool Export::Meshes(std::string pathName, bool selectedOnly, bool isCollision)
Objects.append(node);
}
}
GetMeshData(Objects, isCollision);
if (!isCollision) {
WriteMeshData(pathName);
} else {
WriteCollisionData(pathName);
}
GetMeshData(Objects);
WriteMeshData(pathName);
MGlobal::displayInfo(MString() + "Enabling IKSolvers");
status = MGlobal::executeCommand("doEnableNodeItems true all;");
if (status != MS::kSuccess) {
@@ -150,9 +144,9 @@ bool Export::Animations(std::string pathName, std::vector<AnimationInfo> animInf
return true;
}
bool Export::GetMeshData(MObjectArray object, bool collision)
bool Export::GetMeshData(MObjectArray object)
{
meshes = m_MeshHandler.GetMeshData(object, collision);
meshes = m_MeshHandler.GetMeshData(object);
return true;
}
@@ -191,17 +185,6 @@ void Export::WriteMeshData(std::string pathName)
m_MeshFile.CloseFiles();
}
void Export::WriteCollisionData(std::string pathName) {
m_ColliFile.ASCIIFilePath(pathName + "_colli.txt");
m_ColliFile.binaryFilePath(pathName + ".colli");
m_ColliFile.OpenFiles();
m_ColliFile.writeToFiles((OutputData*)&meshes);
m_ColliFile.CloseFiles();
}
void Export::WriteAnimData(std::string pathName)
{
if (allBindPoses.size() > 0) {
+2 -4
View File
@@ -22,19 +22,18 @@ public:
int End;
};
bool Meshes(std::string pathName, bool selectedOnly = false, bool isCollision = false);
bool Meshes(std::string pathName, bool selectedOnly = false);
bool Materials(std::string pathName);
bool Animations(std::string pathName, std::vector<AnimationInfo> animInfo);
private:
bool GetMeshData(MObjectArray object, bool collision);
bool GetMeshData(MObjectArray object);
bool GetMaterialData();
bool GetAnimationData(AnimationInfo info);
void WriteMeshData(std::string pathName);
void WriteAnimData(std::string pathName);
void WriteMaterialData(std::string pathName);
void WriteCollisionData(std::string pathName);
Material m_MaterialHandler;
Skeleton m_SkeletonHandler;
@@ -45,7 +44,6 @@ private:
WriteToFile m_MeshFile;
WriteToFile m_AnimFile;
WriteToFile m_MtrlFile;
WriteToFile m_ColliFile;
//Mesh Data
Mesh meshes;
+30 -35
View File
@@ -25,7 +25,6 @@ Menu::Menu(QDialog* dialog)
m_ExportSelectedButton = new QCheckBox(tr("&Export Selected"));
m_ExportAnimationsButton = new QCheckBox(tr("&Export Animations"));
m_ExportMaterialButton = new QCheckBox(tr("&Export Material"));;
m_IsCollision = new QCheckBox(tr("&Export as collision mesh"));
m_ExportAnimationsButton->setChecked(true);
m_ExportMaterialButton->setChecked(true);
@@ -33,7 +32,6 @@ Menu::Menu(QDialog* dialog)
vbox->addWidget(m_ExportSelectedButton);
vbox->addWidget(m_ExportAnimationsButton);
vbox->addWidget(m_ExportMaterialButton);
vbox->addWidget(m_IsCollision);
vbox->addStretch(1);
optionsBox->setLayout(vbox);
@@ -48,7 +46,6 @@ Menu::Menu(QDialog* dialog)
connect(m_ExportSelectedButton, SIGNAL(clicked(bool)), this, SLOT(NULL));
connect(m_ExportAnimationsButton, SIGNAL(clicked(bool)), this, SLOT(NULL));
connect(m_ExportMaterialButton, SIGNAL(clicked(bool)), this, SLOT(NULL));
connect(m_IsCollision, SIGNAL(clicked(bool)), this, SLOT(NULL));
// Creating several layouts, adding widgets & adding them to one layout in the end
QHBoxLayout* topLayout = new QHBoxLayout;
@@ -166,42 +163,40 @@ void Menu::RemoveClipClicked(bool)
void Menu::ExportAll(bool)
{
if (m_ExportPath->text().isEmpty()) {
MGlobal::displayError(MString() + "Please select a folder.");
return;
}
if (m_ExportPath->text().isEmpty()) {
MGlobal::displayError(MString() + "Please select a folder.");
return;
}
//Export meshes
if (!m_Export.Meshes(m_ExportPath->text().toLocal8Bit().constData(), m_ExportSelectedButton->isChecked(), m_IsCollision->isChecked())) {
MGlobal::displayError(MString() + "Could not export mesh");
return;
}
//Export meshes
if (!m_Export.Meshes(m_ExportPath->text().toLocal8Bit().constData(), m_ExportSelectedButton->isChecked())) {
MGlobal::displayError(MString() + "Could not export mesh");
return;
}
if (!m_IsCollision->isChecked()){
if (m_ExportMaterialButton->isChecked()) {
if (!m_Export.Materials(m_ExportPath->text().toLocal8Bit().constData())) {
MGlobal::displayError(MString() + "Could not export materials");
return;
}
}
if (m_ExportMaterialButton->isChecked()) {
if (!m_Export.Materials(m_ExportPath->text().toLocal8Bit().constData())) {
MGlobal::displayError(MString() + "Could not export materials");
return;
}
}
std::vector<Export::AnimationInfo> animations;
for (unsigned int i = 0; i < m_AnimationClipName.size(); i++) {
Export::AnimationInfo thisClip;
thisClip.Name = std::string(m_AnimationClipName[i]->text().toLocal8Bit().constData());
thisClip.Start = m_StartFrameLines[i]->text().toInt();
thisClip.End = m_EndFrameLines[i]->text().toInt();
std::vector<Export::AnimationInfo> animations;
for (unsigned int i = 0; i < m_AnimationClipName.size(); i++) {
Export::AnimationInfo thisClip;
thisClip.Name = std::string(m_AnimationClipName[i]->text().toLocal8Bit().constData());
thisClip.Start = m_StartFrameLines[i]->text().toInt();
thisClip.End = m_EndFrameLines[i]->text().toInt();
animations.push_back(thisClip);
}
if (m_ExportAnimationsButton->isChecked()) {
//Export Animations
if (!m_Export.Animations(m_ExportPath->text().toLocal8Bit().constData(), animations)) {
MGlobal::displayError(MString() + "Could not export animations");
return;
}
}
}
animations.push_back(thisClip);
}
if (m_ExportAnimationsButton->isChecked()) {
//Export Animations
if (!m_Export.Animations(m_ExportPath->text().toLocal8Bit().constData(), animations)) {
MGlobal::displayError(MString() + "Could not export animations");
return;
}
}
}
void Menu::CancelClicked(bool)
-1
View File
@@ -66,7 +66,6 @@ private:
QCheckBox* m_ExportSelectedButton = nullptr;
QCheckBox* m_ExportAnimationsButton = nullptr;
QCheckBox* m_ExportMaterialButton = nullptr;
QCheckBox* m_IsCollision = nullptr;
QLineEdit* m_ExportPath = nullptr;
QFileDialog* m_FileDialog = nullptr;
+58 -62
View File
@@ -94,37 +94,33 @@ MeshClass::MeshClass()
// return weightMap;
//}
Mesh MeshClass::GetMeshData(MObjectArray object, bool collision)
Mesh MeshClass::GetMeshData(MObjectArray object)
{
MS status;
Mesh newMesh;
newMesh.isCollison = collision;
vector<VertexLayout>& vertexList = newMesh.Vertices;
map<string, vector<int>>& indexLists = newMesh.Indices;
for (int ObjectID = 0; ObjectID < object.length(); ObjectID++) {
if (!object[ObjectID].hasFn(MFn::kMesh))
continue;
MObject node = object[ObjectID];
MFnDependencyNode thisNode(node);
MPlugArray connections;
thisNode.findPlug("inMesh").connectedTo(connections, true, true);
MPlug weightList, weights;
MObject weightListObject;
for (unsigned int i = 0; i < connections.length(); i++) {
if (connections[i].node().apiType() == MFn::kSkinClusterFilter) {
MFnSkinCluster skinCluster(connections[i].node());
weightList = skinCluster.findPlug("weightList", &status);
weightListObject = weightList.attribute();
weights = skinCluster.findPlug("weights");
newMesh.hasSkin = true;
break;
}
}
if (!collision) {
for (unsigned int i = 0; i < connections.length(); i++) {
if (connections[i].node().apiType() == MFn::kSkinClusterFilter) {
MFnSkinCluster skinCluster(connections[i].node());
weightList = skinCluster.findPlug("weightList", &status);
weightListObject = weightList.attribute();
weights = skinCluster.findPlug("weights");
newMesh.hasSkin = true;
break;
}
}
}
// In here, we retrieve triangulated polygons from the mesh
MFnMesh mesh(object[ObjectID]);
@@ -261,62 +257,62 @@ Mesh MeshClass::GetMeshData(MObjectArray object, bool collision)
thisVertex.Pos[0] = pos.x;
thisVertex.Pos[1] = pos.y;
thisVertex.Pos[2] = pos.z;
thisVertex.isCollision = collision;
if (!collision) {
status = faceVert.getNormal(normal, MSpace::kObject);
if (status != MS::kSuccess) {
MGlobal::displayError(MString() + "faceVert.getNormal() ERROR: " + status.errorString() + "for local vertex " + i + " in " + faceID + " in mesh " + thisMeshPath.fullPathName());
break;
}
status = faceVert.getNormal(normal, MSpace::kObject);
if (status != MS::kSuccess) {
MGlobal::displayError(MString() + "faceVert.getNormal() ERROR: " + status.errorString() + "for local vertex " + i + " in " + faceID + " in mesh " + thisMeshPath.fullPathName());
break;
}
thisVertex.Normal[0] = normal[0];
thisVertex.Normal[1] = normal[1];
thisVertex.Normal[2] = normal[2];
thisVertex.Normal[0] = normal[0];
thisVertex.Normal[1] = normal[1];
thisVertex.Normal[2] = normal[2];
MFloatVector Tangent = Tangents[faceVert.tangentId()];
//MVector tmp = faceVert.getTangent(MSpace::kObject, NULL);
//tmp.get(biTangent);
thisVertex.Tangent[0] = Tangent[0];
thisVertex.Tangent[1] = Tangent[1];
thisVertex.Tangent[2] = Tangent[2];
MFloatVector Tangent = Tangents[faceVert.tangentId()];
//MVector tmp = faceVert.getTangent(MSpace::kObject, NULL);
//tmp.get(biTangent);
thisVertex.Tangent[0] = Tangent[0];
thisVertex.Tangent[1] = Tangent[1];
thisVertex.Tangent[2] = Tangent[2];
MFloatVector biNormal = biNormals[faceVert.tangentId()];
//faceVert.getBinormal().get(biNormal);
thisVertex.BiNormal[0] = biNormal[0];
thisVertex.BiNormal[1] = biNormal[1];
thisVertex.BiNormal[2] = biNormal[2];
MFloatVector biNormal = biNormals[faceVert.tangentId()];
//faceVert.getBinormal().get(biNormal);
thisVertex.BiNormal[0] = biNormal[0];
thisVertex.BiNormal[1] = biNormal[1];
thisVertex.BiNormal[2] = biNormal[2];
status = faceVert.getUV(UV);
if (status != MS::kSuccess) {
MGlobal::displayError(MString() + " faceVert.getUV() ERROR: " + status.errorString() + "for local vertex " + i + " in " + faceID + " in mesh " + thisMeshPath.fullPathName());
break;
}
thisVertex.Uv[0] = UV[0];
thisVertex.Uv[1] = UV[1];
status = faceVert.getUV(UV);
if (status != MS::kSuccess) {
MGlobal::displayError(MString() + " faceVert.getUV() ERROR: " + status.errorString() + "for local vertex " + i + " in " + faceID + " in mesh " + thisMeshPath.fullPathName());
break;
}
thisVertex.Uv[0] = UV[0];
thisVertex.Uv[1] = UV[1];
if (newMesh.hasSkin) {
thisVertex.useWeights = true;
float totalWeight = 0.0f;
unsigned int totalBones = 0;
MIntArray jointIDs /* ??? */;
weights.selectAncestorLogicalIndex(vertexIndex, weightListObject);
weights.getExistingArrayAttributeIndices(jointIDs);
for (unsigned int i = 0; i < jointIDs.length() && i < 4; i++) {
if (weights[i].asFloat() > 0.001f) {
thisVertex.BoneIndices[totalBones] = jointIDs[i];
thisVertex.BoneWeights[totalBones] = weights[i].asFloat();
totalWeight = totalWeight + weights[i].asFloat();
totalBones++;
}
}
if (newMesh.hasSkin) {
thisVertex.useWeights = true;
float totalWeight = 0.0f;
unsigned int totalBones = 0;
MIntArray jointIDs /* ??? */;
weights.selectAncestorLogicalIndex(vertexIndex, weightListObject);
weights.getExistingArrayAttributeIndices(jointIDs);
for (unsigned int i = 0; i < jointIDs.length() && i < 4; i++) {
if (weights[i].asFloat() > 0.001f) {
thisVertex.BoneIndices[totalBones] = jointIDs[i];
thisVertex.BoneWeights[totalBones] = weights[i].asFloat();
totalWeight = totalWeight + weights[i].asFloat();
totalBones++;
}
}
for (unsigned int i = 0; i < 4; i++) {
//thisVertex.BoneWeights[i] = thisVertex.BoneWeights[i] / totalWeight;
}
}
for (unsigned int i = 0; i < 4; i++) {
//thisVertex.BoneWeights[i] = thisVertex.BoneWeights[i] / totalWeight;
}
} else {
thisVertex.useWeights = false;
}
//float totalWeight = thisVertex.BoneWeights[0] + thisVertex.BoneWeights[1] + thisVertex.BoneWeights[2] + thisVertex.BoneWeights[3];
//if (totalWeight > 0.0001f) {
// thisVertex.BoneWeights[0] /= totalWeight;
+23 -32
View File
@@ -11,8 +11,7 @@
class VertexLayout : public OutputData
{
public:
bool isCollision = false;
bool useWeights = false;
bool useWeights = true;
float Pos[3]{ 0 };
float Normal[3]{ 0 };
float Tangent[3]{ 0 };
@@ -24,31 +23,28 @@ public:
virtual void WriteBinary(std::ostream& out)
{
out.write((char*)&Pos, sizeof(float) * 3);
if (!isCollision) {
out.write((char*)&Normal, sizeof(float) * 3);
out.write((char*)&Tangent, sizeof(float) * 3);
out.write((char*)&BiNormal, sizeof(float) * 3);
out.write((char*)&Uv, sizeof(float) * 2);
if (useWeights) {
out.write((char*)&BoneIndices, sizeof(float) * 4);
out.write((char*)&BoneWeights, sizeof(float) * 4);
}
out.write((char*)&Normal, sizeof(float) * 3);
out.write((char*)&Tangent, sizeof(float) * 3);
out.write((char*)&BiNormal, sizeof(float) * 3);
out.write((char*)&Uv, sizeof(float) * 2);
if (useWeights) {
out.write((char*)&BoneIndices, sizeof(float) * 4);
out.write((char*)&BoneWeights, sizeof(float) * 4);
}
}
virtual void WriteASCII(std::ostream& out) const
{
out << Pos[0] << " " << Pos[1] << " " << Pos[2] << endl;
if (!isCollision) {
out << Normal[0] << " " << Normal[1] << " " << Normal[2] << endl;
out << Tangent[0] << " " << Tangent[1] << " " << Tangent[2] << endl;
out << BiNormal[0] << " " << BiNormal[1] << " " << BiNormal[2] << endl;
out << Uv[0] << " " << Uv[1] << endl;
if (useWeights) {
out << BoneIndices[0] << " " << BoneIndices[1] << " " << BoneIndices[2] << " " << BoneIndices[3] << endl;
out << BoneWeights[0] << " " << BoneWeights[1] << " " << BoneWeights[2] << " " << BoneWeights[3] << endl;
}
out << Normal[0] << " " << Normal[1] << " " << Normal[2] << endl;
out << Tangent[0] << " " << Tangent[1] << " " << Tangent[2] << endl;
out << BiNormal[0] << " " << BiNormal[1] << " " << BiNormal[2] << endl;
out << Uv[0] << " " << Uv[1] << endl;
if (useWeights) {
out << BoneIndices[0] << " " << BoneIndices[1] << " " << BoneIndices[2] << " " << BoneIndices[3] << endl;
out << BoneWeights[0] << " " << BoneWeights[1] << " " << BoneWeights[2] << " " << BoneWeights[3] << endl;
}
}
bool operator==(const VertexLayout& right)
{
@@ -66,7 +62,6 @@ public:
class Mesh : public OutputData {
public:
bool isCollison = false;
bool hasSkin = false;
unsigned int NumVertices;
unsigned int NumIndices;
@@ -75,9 +70,7 @@ public:
virtual void WriteBinary(std::ostream& out)
{
if (!isCollison) {
out.write((char*)&hasSkin, sizeof(bool));
}
out.write((char*)&hasSkin, sizeof(bool));
out.write((char*)&NumVertices, sizeof(int));
out.write((char*)&NumIndices, sizeof(int));
for (auto aVertex : Vertices) {
@@ -93,13 +86,11 @@ public:
virtual void WriteASCII(std::ostream& out) const
{
out << "New Mesh _ not in binary" << endl;
if (!isCollison) {
out << "hasSkin: ";
if (hasSkin)
out << "true" << endl;
else
out << "false" << endl;
}
out << "hasSkin: ";
if(hasSkin)
out << "true" << endl;
else
out << "false" << endl;
out << "Number of vertices: " << NumVertices << endl;
out << "number of indices: " << NumIndices << endl;
int vertexNumber = 0;
@@ -124,7 +115,7 @@ class MeshClass
{
public:
MeshClass();
Mesh GetMeshData(MObjectArray Object, bool collision = false);
Mesh GetMeshData(MObjectArray Object);
~MeshClass();
private:
struct WeightInfo {