diff --git a/Engine/source/T3D/gameObjects/aiPlayerObject.cpp b/Engine/source/T3D/gameObjects/aiPlayerObject.cpp new file mode 100644 index 000000000..2eca3e0b8 --- /dev/null +++ b/Engine/source/T3D/gameObjects/aiPlayerObject.cpp @@ -0,0 +1,42 @@ +#include "aiPlayerObject.h" + +IMPLEMENT_CO_NETOBJECT_V1(AIPlayerObject); + +AIPlayerObject::AIPlayerObject() + : mAIControllerComponent(nullptr) +{ + +} +AIPlayerObject::~AIPlayerObject() +{ + +} + +bool AIPlayerObject::onAdd() +{ + if (!Parent::onAdd()) + return false; + + //If we don't delinate from the template, just spawn as apropos here + if (!mDirtyGameObject) + { + //AI Controller + mAIControllerComponent = new AIControllerComponent(); + if (!mAIControllerComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add mAIControllerComponent!"); + return false; + } + + mAIControllerComponent->setInternalName("aiControllerComponent"); + + addComponent(mAIControllerComponent); + } + + return true; +} + +void AIPlayerObject::onRemove() +{ + Parent::onRemove(); +} \ No newline at end of file diff --git a/Engine/source/T3D/gameObjects/aiPlayerObject.h b/Engine/source/T3D/gameObjects/aiPlayerObject.h new file mode 100644 index 000000000..72aeb3ff0 --- /dev/null +++ b/Engine/source/T3D/gameObjects/aiPlayerObject.h @@ -0,0 +1,20 @@ +#pragma once +#include "playerObject.h" + +#include "T3D/components/ai/aiControllerComponent.h" + +class AIPlayerObject : public PlayerObject +{ + typedef PlayerObject Parent; + + AIControllerComponent* mAIControllerComponent; + +public: + AIPlayerObject(); + ~AIPlayerObject(); + + virtual bool onAdd(); + virtual void onRemove(); + + DECLARE_CONOBJECT(AIPlayerObject); +}; \ No newline at end of file diff --git a/Engine/source/T3D/gameObjects/playerObject.cpp b/Engine/source/T3D/gameObjects/playerObject.cpp new file mode 100644 index 000000000..1ee38bf3a --- /dev/null +++ b/Engine/source/T3D/gameObjects/playerObject.cpp @@ -0,0 +1,165 @@ +#include "playerObject.h" + +IMPLEMENT_CO_NETOBJECT_V1(PlayerObject); + +PlayerObject::PlayerObject() + : mMeshComponent(nullptr), + mCollisionComponent(nullptr), + mAnimationComponent(nullptr), + mPhysicsComponent(nullptr) +{ + +} +PlayerObject::~PlayerObject() +{ + +} + +bool PlayerObject::onAdd() +{ + if (!Parent::onAdd()) + return false; + + //If we don't delinate from the template, just spawn as apropos here + if (!mDirtyGameObject) + { + //Mesh + mMeshComponent = new MeshComponent(); + if (!mMeshComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add MeshComponent!"); + return false; + } + + mMeshComponent->setInternalName("meshComponent"); + + addComponent(mMeshComponent); + + //Collision + mCollisionComponent = new ShapeCollisionComponent(); + if (!mCollisionComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add ShapeCollisionComponent!"); + return false; + } + + mCollisionComponent->setInternalName("collisionComponent"); + + addComponent(mCollisionComponent); + + //Animation + mAnimationComponent = new ActionAnimationComponent(); + if (!mAnimationComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add ActionAnimationComponent!"); + return false; + } + + mAnimationComponent->setInternalName("animationComponent"); + + addComponent(mAnimationComponent); + + //Arm Animation + mArmAnimationComponent = new ArmAnimationComponent(); + if (!mArmAnimationComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add ArmAnimationComponent!"); + return false; + } + + mArmAnimationComponent->setInternalName("armAnimationComponent"); + + addComponent(mArmAnimationComponent); + + //Physics control + mPhysicsComponent = new PlayerControllerComponent(); + if (!mPhysicsComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add PhysicsComponent!"); + return false; + } + + mPhysicsComponent->setInternalName("physicsComponent"); + + addComponent(mPhysicsComponent); + + //State Machine + mStateMachineComponent = new StateMachineComponent(); + if (!mStateMachineComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add StateMachineComponent!"); + return false; + } + + mStateMachineComponent->setInternalName("stateMachineComponent"); + + addComponent(mStateMachineComponent); + + //Camera + mCameraComponent = new CameraComponent(); + if (!mCameraComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add CameraComponent!"); + return false; + } + + mCameraComponent->setInternalName("cameraComponent"); + + addComponent(mCameraComponent); + + //Camera Orbiter + mCameraOrbiterComponent = new CameraOrbiterComponent(); + if (!mCameraOrbiterComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add CameraOrbiterComponent!"); + return false; + } + + mCameraOrbiterComponent->setInternalName("cameraOrbiterComponent"); + + addComponent(mCameraOrbiterComponent); + + //Control Object + mControlObjectComponent = new ControlObjectComponent(); + if (!mControlObjectComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add ControlObjectComponent!"); + return false; + } + + mControlObjectComponent->setInternalName("controlObjectComponent"); + + addComponent(mControlObjectComponent); + + //Sound + mSoundComponent = new SoundComponent(); + if (!mSoundComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add SoundComponent!"); + return false; + } + + mSoundComponent->setInternalName("soundComponent"); + + addComponent(mSoundComponent); + + //Interaction + mInteractComponent = new InteractComponent(); + if (!mInteractComponent->registerObject()) + { + Con::errorf("PlayerObject::onAdd - unable to add InteractComponent!"); + return false; + } + + mInteractComponent->setInternalName("interactComponent"); + + addComponent(mInteractComponent); + } + + return true; +} + +void PlayerObject::onRemove() +{ + Parent::onRemove(); +} \ No newline at end of file diff --git a/Engine/source/T3D/gameObjects/playerObject.h b/Engine/source/T3D/gameObjects/playerObject.h new file mode 100644 index 000000000..8c089f77b --- /dev/null +++ b/Engine/source/T3D/gameObjects/playerObject.h @@ -0,0 +1,40 @@ +#pragma once + +#include "T3D/entity.h" +#include "T3D/components/render/meshComponent.h" +#include "T3D/components/collision/shapeCollisionComponent.h" +#include "T3D/components/animation/actionAnimationComponent.h" +#include "T3D/components/animation/armAnimationComponent.h" +#include "T3D/components/physics/playerControllerComponent.h" +#include "T3D/components/game/stateMachineComponent.h" +#include "T3D/components/camera/cameraComponent.h" +#include "T3D/components/camera/cameraOrbiterComponent.h" +#include "T3D/components/game/controlObjectComponent.h" +#include "T3D/components/audio/soundComponent.h" +#include "T3D/components/game/interactComponent.h" + +class PlayerObject : public Entity +{ + typedef Entity Parent; + + MeshComponent* mMeshComponent; + ShapeCollisionComponent* mCollisionComponent; + ActionAnimationComponent* mAnimationComponent; + ArmAnimationComponent* mArmAnimationComponent; + PlayerControllerComponent* mPhysicsComponent; + StateMachineComponent* mStateMachineComponent; + CameraComponent* mCameraComponent; + CameraOrbiterComponent* mCameraOrbiterComponent; + ControlObjectComponent* mControlObjectComponent; + SoundComponent* mSoundComponent; + InteractComponent* mInteractComponent; + +public: + PlayerObject(); + ~PlayerObject(); + + virtual bool onAdd(); + virtual void onRemove(); + + DECLARE_CONOBJECT(PlayerObject); +}; \ No newline at end of file diff --git a/Engine/source/T3D/gameObjects/soundEmitterObject.cpp b/Engine/source/T3D/gameObjects/soundEmitterObject.cpp new file mode 100644 index 000000000..2ce1eeafb --- /dev/null +++ b/Engine/source/T3D/gameObjects/soundEmitterObject.cpp @@ -0,0 +1,38 @@ +#include "SoundEmitterObject.h" + +IMPLEMENT_CO_NETOBJECT_V1(SoundEmitterObject); + +SoundEmitterObject::SoundEmitterObject() + : mSoundComponent(nullptr) +{ + +} +SoundEmitterObject::~SoundEmitterObject() +{ + +} + +bool SoundEmitterObject::onAdd() +{ + if (!Parent::onAdd()) + return false; + + //Sound + mSoundComponent = new SoundComponent(); + if (!mSoundComponent->registerObject()) + { + Con::errorf("SoundEmitterObject::onAdd - unable to add soundComponent!"); + return false; + } + + mSoundComponent->setInternalName("soundComponent"); + + addComponent(mSoundComponent); + + return true; +} + +void SoundEmitterObject::onRemove() +{ + Parent::onRemove(); +} \ No newline at end of file diff --git a/Engine/source/T3D/gameObjects/soundEmitterObject.h b/Engine/source/T3D/gameObjects/soundEmitterObject.h new file mode 100644 index 000000000..f877ced1c --- /dev/null +++ b/Engine/source/T3D/gameObjects/soundEmitterObject.h @@ -0,0 +1,20 @@ +#pragma once + +#include "T3D/entity.h" +#include "T3D/components/audio/soundComponent.h" + +class SoundEmitterObject : public Entity +{ + typedef Entity Parent; + + SoundComponent* mSoundComponent; + +public: + SoundEmitterObject(); + ~SoundEmitterObject(); + + virtual bool onAdd(); + virtual void onRemove(); + + DECLARE_CONOBJECT(SoundEmitterObject); +}; \ No newline at end of file diff --git a/Engine/source/T3D/gameObjects/staticShapeObject.cpp b/Engine/source/T3D/gameObjects/staticShapeObject.cpp new file mode 100644 index 000000000..037e089b1 --- /dev/null +++ b/Engine/source/T3D/gameObjects/staticShapeObject.cpp @@ -0,0 +1,68 @@ +#include "staticShapeObject.h" + +IMPLEMENT_CO_NETOBJECT_V1(StaticShapeObject); + +StaticShapeObject::StaticShapeObject() + : mMeshComponent(nullptr), + mCollisionComponent(nullptr), + mAnimationComponent(nullptr) +{ + +} +StaticShapeObject::~StaticShapeObject() +{ + +} + +bool StaticShapeObject::onAdd() +{ + if (!Parent::onAdd()) + return false; + + //If we don't delinate from the template, just spawn as apropos here + if (!mDirtyGameObject) + { + //Mesh + mMeshComponent = new MeshComponent(); + if (!mMeshComponent->registerObject()) + { + Con::errorf("StaticShapeObject::onAdd - unable to add MeshComponent!"); + return false; + } + + mMeshComponent->setInternalName("meshComponent"); + + addComponent(mMeshComponent); + + //Collision + mCollisionComponent = new ShapeCollisionComponent(); + if (!mCollisionComponent->registerObject()) + { + Con::errorf("StaticShapeObject::onAdd - unable to add ShapeCollisionComponent!"); + return false; + } + + mCollisionComponent->setInternalName("collisionComponent"); + + addComponent(mCollisionComponent); + + //Animation + mAnimationComponent = new AnimationComponent(); + if (!mAnimationComponent->registerObject()) + { + Con::errorf("StaticShapeObject::onAdd - unable to add AnimationComponent!"); + return false; + } + + mAnimationComponent->setInternalName("animationComponent"); + + addComponent(mAnimationComponent); + } + + return true; +} + +void StaticShapeObject::onRemove() +{ + Parent::onRemove(); +} \ No newline at end of file diff --git a/Engine/source/T3D/gameObjects/staticShapeObject.h b/Engine/source/T3D/gameObjects/staticShapeObject.h new file mode 100644 index 000000000..b13e4efb8 --- /dev/null +++ b/Engine/source/T3D/gameObjects/staticShapeObject.h @@ -0,0 +1,28 @@ +#pragma once + +#include "T3D/entity.h" +#include "T3D/components/render/meshComponent.h" +#include "T3D/components/collision/shapeCollisionComponent.h" +#include "T3D/components/animation/animationComponent.h" + +class StaticShapeObject : public Entity +{ + typedef Entity Parent; + + MeshComponent* mMeshComponent; + ShapeCollisionComponent* mCollisionComponent; + AnimationComponent* mAnimationComponent; + +public: + StaticShapeObject(); + ~StaticShapeObject(); + + virtual bool onAdd(); + virtual void onRemove(); + + MeshComponent* getMeshComponent() { return mMeshComponent; } + ShapeCollisionComponent* getCollisionComponent() { return mCollisionComponent; } + AnimationComponent* getAnimationComponent() { return mAnimationComponent; } + + DECLARE_CONOBJECT(StaticShapeObject); +}; \ No newline at end of file diff --git a/Templates/BaseGame/game/core/gameObjects/Core_GameObjects.cs b/Templates/BaseGame/game/core/gameObjects/Core_GameObjects.cs new file mode 100644 index 000000000..204352142 --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/Core_GameObjects.cs @@ -0,0 +1,8 @@ + +function Core_GameObjects::onCreate(%this) +{ +} + +function Core_GameObjects::onDestroy(%this) +{ +} \ No newline at end of file diff --git a/Templates/BaseGame/game/core/gameObjects/Core_GameObjects.module b/Templates/BaseGame/game/core/gameObjects/Core_GameObjects.module new file mode 100644 index 000000000..48c225a50 --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/Core_GameObjects.module @@ -0,0 +1,19 @@ + + + + \ No newline at end of file diff --git a/Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.asset.taml b/Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.asset.taml new file mode 100644 index 000000000..f8b4829c6 --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.asset.taml @@ -0,0 +1,8 @@ + diff --git a/Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.cs b/Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.cs new file mode 100644 index 000000000..28de417e6 --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.cs @@ -0,0 +1,42 @@ +function AIPlayerObject::onAdd(%this) +{ + +} + +function AIPlayerObject::onRemove(%this) +{ + +} + +function AIPlayerObject::moveVectorEvent(%this) +{ + +} + +function AIPlayerObject::moveYawEvent(%this) +{ + +} + +function AIPlayerObject::movePitchEvent(%this) +{ + +} + +function AIPlayerObject::moveRollEvent(%this){} + +function AIPlayerObject::moveTriggerEvent(%this, %triggerNum, %triggerValue) +{ + +} + +function AIPlayerObject::onCollisionEvent(%this, %colObject, %colNormal, %colPoint, %colMatID, %velocity) +{ + +} + +function AIPlayerObject::processTick(%this) +{ + +} + diff --git a/Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.taml b/Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.taml new file mode 100644 index 000000000..e2abaf30b --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.taml @@ -0,0 +1,12 @@ + + diff --git a/Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.asset.taml b/Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.asset.taml new file mode 100644 index 000000000..67c2b6e1d --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.asset.taml @@ -0,0 +1,8 @@ + diff --git a/Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.cs b/Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.cs new file mode 100644 index 000000000..d5593b15d --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.cs @@ -0,0 +1,42 @@ +function PlayerObject::onAdd(%this) +{ + +} + +function PlayerObject::onRemove(%this) +{ + +} + +function PlayerObject::moveVectorEvent(%this) +{ + +} + +function PlayerObject::moveYawEvent(%this) +{ + +} + +function PlayerObject::movePitchEvent(%this) +{ + +} + +function PlayerObject::moveRollEvent(%this){} + +function PlayerObject::moveTriggerEvent(%this, %triggerNum, %triggerValue) +{ + +} + +function PlayerObject::onCollisionEvent(%this, %colObject, %colNormal, %colPoint, %colMatID, %velocity) +{ + +} + +function PlayerObject::processTick(%this) +{ + +} + diff --git a/Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.taml b/Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.taml new file mode 100644 index 000000000..e97c086f2 --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.taml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Templates/BaseGame/game/core/gameObjects/gameObjects/soundEmitterObject.asset.taml b/Templates/BaseGame/game/core/gameObjects/gameObjects/soundEmitterObject.asset.taml new file mode 100644 index 000000000..279f4fc6d --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/gameObjects/soundEmitterObject.asset.taml @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/Templates/BaseGame/game/core/gameObjects/gameObjects/soundEmitterObject.taml b/Templates/BaseGame/game/core/gameObjects/gameObjects/soundEmitterObject.taml new file mode 100644 index 000000000..e41e48c07 --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/gameObjects/soundEmitterObject.taml @@ -0,0 +1,9 @@ + diff --git a/Templates/BaseGame/game/core/gameObjects/gameObjects/staticShapeObject.asset.taml b/Templates/BaseGame/game/core/gameObjects/gameObjects/staticShapeObject.asset.taml new file mode 100644 index 000000000..659b4c9bb --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/gameObjects/staticShapeObject.asset.taml @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/Templates/BaseGame/game/core/gameObjects/gameObjects/staticShapeObject.taml b/Templates/BaseGame/game/core/gameObjects/gameObjects/staticShapeObject.taml new file mode 100644 index 000000000..fc2081704 --- /dev/null +++ b/Templates/BaseGame/game/core/gameObjects/gameObjects/staticShapeObject.taml @@ -0,0 +1,9 @@ +