From 23182eb2a1d8f3a90689c817c4b2084855113d2a Mon Sep 17 00:00:00 2001 From: Areloch Date: Mon, 4 Mar 2019 21:44:00 -0600 Subject: [PATCH] Adds some in-progress gameObject recreation of various legacy game classes, such as PlayerObject, AIPlayerObject, Sound Emitter and Static Shape. --- Engine/source/T3D/assets/GameObjectAsset.cpp | 105 ++++++++--- Engine/source/T3D/assets/GameObjectAsset.h | 8 +- .../source/T3D/gameObjects/aiPlayerObject.cpp | 42 +++++ .../source/T3D/gameObjects/aiPlayerObject.h | 20 +++ .../source/T3D/gameObjects/playerObject.cpp | 165 ++++++++++++++++++ Engine/source/T3D/gameObjects/playerObject.h | 40 +++++ .../T3D/gameObjects/soundEmitterObject.cpp | 38 ++++ .../T3D/gameObjects/soundEmitterObject.h | 20 +++ .../T3D/gameObjects/staticShapeObject.cpp | 68 ++++++++ .../T3D/gameObjects/staticShapeObject.h | 28 +++ .../game/core/gameObjects/Core_GameObjects.cs | 8 + .../core/gameObjects/Core_GameObjects.module | 19 ++ .../gameObjects/AIPlayerObject.asset.taml | 8 + .../gameObjects/gameObjects/AIPlayerObject.cs | 42 +++++ .../gameObjects/AIPlayerObject.taml | 12 ++ .../gameObjects/PlayerObject.asset.taml | 8 + .../gameObjects/gameObjects/PlayerObject.cs | 42 +++++ .../gameObjects/gameObjects/PlayerObject.taml | 117 +++++++++++++ .../gameObjects/soundEmitterObject.asset.taml | 7 + .../gameObjects/soundEmitterObject.taml | 9 + .../gameObjects/staticShapeObject.asset.taml | 7 + .../gameObjects/staticShapeObject.taml | 9 + .../assetBrowser/scripts/gameObjectCreator.cs | 5 +- 23 files changed, 792 insertions(+), 35 deletions(-) create mode 100644 Engine/source/T3D/gameObjects/aiPlayerObject.cpp create mode 100644 Engine/source/T3D/gameObjects/aiPlayerObject.h create mode 100644 Engine/source/T3D/gameObjects/playerObject.cpp create mode 100644 Engine/source/T3D/gameObjects/playerObject.h create mode 100644 Engine/source/T3D/gameObjects/soundEmitterObject.cpp create mode 100644 Engine/source/T3D/gameObjects/soundEmitterObject.h create mode 100644 Engine/source/T3D/gameObjects/staticShapeObject.cpp create mode 100644 Engine/source/T3D/gameObjects/staticShapeObject.h create mode 100644 Templates/BaseGame/game/core/gameObjects/Core_GameObjects.cs create mode 100644 Templates/BaseGame/game/core/gameObjects/Core_GameObjects.module create mode 100644 Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.asset.taml create mode 100644 Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.cs create mode 100644 Templates/BaseGame/game/core/gameObjects/gameObjects/AIPlayerObject.taml create mode 100644 Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.asset.taml create mode 100644 Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.cs create mode 100644 Templates/BaseGame/game/core/gameObjects/gameObjects/PlayerObject.taml create mode 100644 Templates/BaseGame/game/core/gameObjects/gameObjects/soundEmitterObject.asset.taml create mode 100644 Templates/BaseGame/game/core/gameObjects/gameObjects/soundEmitterObject.taml create mode 100644 Templates/BaseGame/game/core/gameObjects/gameObjects/staticShapeObject.asset.taml create mode 100644 Templates/BaseGame/game/core/gameObjects/gameObjects/staticShapeObject.taml diff --git a/Engine/source/T3D/assets/GameObjectAsset.cpp b/Engine/source/T3D/assets/GameObjectAsset.cpp index 45b33b086..85bfce456 100644 --- a/Engine/source/T3D/assets/GameObjectAsset.cpp +++ b/Engine/source/T3D/assets/GameObjectAsset.cpp @@ -139,6 +139,44 @@ void GameObjectAsset::onAssetRefresh() Con::executeFile(mScriptFilePath, false, false); } +const char* GameObjectAsset::create() +{ + if (!Platform::isFile(mTAMLFilePath)) + return ""; + + // Set the format mode. + Taml taml; + + // Yes, so set it. + taml.setFormatMode(Taml::getFormatModeEnum("xml")); + + // Turn-off auto-formatting. + taml.setAutoFormat(false); + + // Read object. + SimObject* pSimObject = taml.read(mTAMLFilePath); + + // Did we find the object? + if (pSimObject == NULL) + { + // No, so warn. + Con::warnf("GameObjectAsset::create() - Could not read object from file '%s'.", mTAMLFilePath); + return ""; + } + + //Flag it so we know where it came from + pSimObject->setDataField("GameObject", nullptr, getAssetId()); + + return pSimObject->getIdString(); +} + +DefineEngineMethod(GameObjectAsset, createObject, const char*, (),, + "Creates an instance of the given GameObject given the asset definition.\n" + "@return The GameObject entity created from the asset.") +{ + return object->create(); +} + //----------------------------------------------------------------------------- // GuiInspectorTypeAssetId //----------------------------------------------------------------------------- @@ -161,34 +199,50 @@ void GuiInspectorTypeGameObjectAssetPtr::consoleInit() GuiControl* GuiInspectorTypeGameObjectAssetPtr::constructEditControl() { // Create base filename edit controls - GuiControl *retCtrl = Parent::constructEditControl(); - if (retCtrl == NULL) - return retCtrl; + // Create "Open in ShapeEditor" button + mGameObjectEditButton = new GuiButtonCtrl(); // Change filespec char szBuffer[512]; - dSprintf(szBuffer, sizeof(szBuffer), "AssetBrowser.showDialog(\"GameObjectAsset\", \"AssetBrowser.changeAsset\", %d, %s);", - mInspector->getComponentGroupTargetId(), mCaption); - mBrowseButton->setField("Command", szBuffer); + dSprintf(szBuffer, sizeof(szBuffer), "%d.onClick(%s);", this->getId(), mCaption); + mGameObjectEditButton->setField("Command", szBuffer); - // Create "Open in ShapeEditor" button - mSMEdButton = new GuiBitmapButtonCtrl(); + mGameObjectEditButton->setDataField(StringTable->insert("Profile"), NULL, "GuiButtonProfile"); + mGameObjectEditButton->setDataField(StringTable->insert("tooltipprofile"), NULL, "GuiToolTipProfile"); + mGameObjectEditButton->setDataField(StringTable->insert("hovertime"), NULL, "1000"); - dSprintf(szBuffer, sizeof(szBuffer), "echo(\"Game Object Editor not implemented yet!\");", retCtrl->getId()); - mSMEdButton->setField("Command", szBuffer); + const char* assetId = getData(); - char bitmapName[512] = "tools/worldEditor/images/toolbar/shape-editor"; - mSMEdButton->setBitmap(bitmapName); + if (assetId == "") + { + mGameObjectEditButton->setText("Create Game Object"); - mSMEdButton->setDataField(StringTable->insert("Profile"), NULL, "GuiButtonProfile"); - mSMEdButton->setDataField(StringTable->insert("tooltipprofile"), NULL, "GuiToolTipProfile"); - mSMEdButton->setDataField(StringTable->insert("hovertime"), NULL, "1000"); - mSMEdButton->setDataField(StringTable->insert("tooltip"), NULL, "Open this file in the State Machine Editor"); + mGameObjectEditButton->setDataField(StringTable->insert("tooltip"), NULL, "Convert this object into a reusable Game Object asset."); + } + else + { + GameObjectAsset* goAsset = AssetDatabase.acquireAsset< GameObjectAsset>(assetId); - mSMEdButton->registerObject(); - addObject(mSMEdButton); + if (goAsset) + { + mGameObjectEditButton->setText("Edit Game Object"); - return retCtrl; + mGameObjectEditButton->setDataField(StringTable->insert("tooltip"), NULL, "Edit this object instance or Game Object asset."); + } + else + { + mGameObjectEditButton->setText("Create Game Object"); + + mGameObjectEditButton->setDataField(StringTable->insert("tooltip"), NULL, "Convert this object into a reusable Game Object asset."); + } + } + + //mGameObjectEditButton->registerObject(); + _registerEditControl(mGameObjectEditButton); + + addObject(mGameObjectEditButton); + + return mGameObjectEditButton; } bool GuiInspectorTypeGameObjectAssetPtr::updateRects() @@ -199,19 +253,12 @@ bool GuiInspectorTypeGameObjectAssetPtr::updateRects() Point2I fieldPos = getPosition(); mCaptionRect.set(0, 0, fieldExtent.x - dividerPos - dividerMargin, fieldExtent.y); - mEditCtrlRect.set(fieldExtent.x - dividerPos + dividerMargin, 1, dividerPos - dividerMargin - 34, fieldExtent.y); + mEditCtrlRect.set(fieldExtent.x - dividerPos + dividerMargin, 1, dividerPos - dividerMargin, fieldExtent.y); bool resized = mEdit->resize(mEditCtrlRect.point, mEditCtrlRect.extent); - if (mBrowseButton != NULL) + if (mGameObjectEditButton != NULL) { - mBrowseRect.set(fieldExtent.x - 32, 2, 14, fieldExtent.y - 4); - resized |= mBrowseButton->resize(mBrowseRect.point, mBrowseRect.extent); - } - - if (mSMEdButton != NULL) - { - RectI shapeEdRect(fieldExtent.x - 16, 2, 14, fieldExtent.y - 4); - resized |= mSMEdButton->resize(shapeEdRect.point, shapeEdRect.extent); + resized |= mGameObjectEditButton->resize(mEditCtrlRect.point, mEditCtrlRect.extent); } return resized; diff --git a/Engine/source/T3D/assets/GameObjectAsset.h b/Engine/source/T3D/assets/GameObjectAsset.h index 954a11300..fdbb7c61c 100644 --- a/Engine/source/T3D/assets/GameObjectAsset.h +++ b/Engine/source/T3D/assets/GameObjectAsset.h @@ -59,6 +59,8 @@ public: static void initPersistFields(); virtual void copyTo(SimObject* object); + const char* create(); + /// Declare Console Object. DECLARE_CONOBJECT(GameObjectAsset); @@ -73,12 +75,12 @@ DefineConsoleType(TypeGameObjectAssetPtr, GameObjectAsset) //----------------------------------------------------------------------------- // TypeAssetId GuiInspectorField Class //----------------------------------------------------------------------------- -class GuiInspectorTypeGameObjectAssetPtr : public GuiInspectorTypeFileName +class GuiInspectorTypeGameObjectAssetPtr : public GuiInspectorField { - typedef GuiInspectorTypeFileName Parent; + typedef GuiInspectorField Parent; public: - GuiBitmapButtonCtrl *mSMEdButton; + GuiButtonCtrl *mGameObjectEditButton; DECLARE_CONOBJECT(GuiInspectorTypeGameObjectAssetPtr); static void consoleInit(); 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 @@ + diff --git a/Templates/BaseGame/game/tools/assetBrowser/scripts/gameObjectCreator.cs b/Templates/BaseGame/game/tools/assetBrowser/scripts/gameObjectCreator.cs index a2c526251..230167daf 100644 --- a/Templates/BaseGame/game/tools/assetBrowser/scripts/gameObjectCreator.cs +++ b/Templates/BaseGame/game/tools/assetBrowser/scripts/gameObjectCreator.cs @@ -39,8 +39,7 @@ function GameObjectCreateBtn::onClick(%this) //also, exec any components that may exist //find all GameObjectAssets %assetQuery = new AssetQuery(); - if(!AssetDatabase.findAssetType(%assetQuery, "GameObjectAsset")) - return; //if we didn't find ANY, just exit + AssetDatabase.findAssetType(%assetQuery, "GameObjectAsset"); %count = %assetQuery.getCount(); @@ -69,7 +68,7 @@ function GameObjectCreateBtn::onClick(%this) //get the selected module data %moduleName = GameObjectModuleList.getText(); - %selectedEntity.gameObjectAsset = %moduleName @ ":" @ %className; + %selectedEntity.gameObject = %moduleName @ ":" @ %className; %path = "data/" @ %moduleName @ "/gameObjects/";