Adds some in-progress gameObject recreation of various legacy game classes, such as PlayerObject, AIPlayerObject, Sound Emitter and Static Shape.

This commit is contained in:
Areloch 2019-03-04 21:44:00 -06:00
parent e0627973fb
commit f3e04751b6
23 changed files with 792 additions and 35 deletions

View file

@ -0,0 +1,8 @@
function Core_GameObjects::onCreate(%this)
{
}
function Core_GameObjects::onDestroy(%this)
{
}

View file

@ -0,0 +1,19 @@
<ModuleDefinition
ModuleId="Core_GameObjects"
VersionId="1"
Description="Module that implements the core engine-level setup for the game."
ScriptFile="Core_GameObjects.cs"
CreateFunction="onCreate"
DestroyFunction="onDestroy"
Group="Core">
<DeclaredAssets
canSave="true"
canSaveDynamicFields="true"
Extension="asset.taml"
Recurse="true" />
<AutoloadAssets
canSave="true"
canSaveDynamicFields="true"
AssetType="GameObjectAsset"
Recurse="true" />
</ModuleDefinition>

View file

@ -0,0 +1,8 @@
<GameObjectAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="AIPlayerObject"
gameObjectName="AIPlayerObject"
scriptFilePath="core/gameObjects/gameObjects/AIPlayerObject.cs"
TAMLFilePath="core/gameObjects/gameObjects/AIPlayerObject.taml"
description="A basic AI Player Object example." />

View file

@ -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)
{
}

View file

@ -0,0 +1,12 @@
<AIPlayerObject
scale="1 1 1"
class="AIPlayerObject"
canSave="true"
canSaveDynamicFields="true"
position="0 0 0"
rotation="0 -0 -0"
LocalPosition="0 0 0"
LocalRotation="1 0 0 0"
lifetimeMS="0"
gameObject="Core_GameObjects:AIPlayerObject">
</AIPlayerObject>

View file

@ -0,0 +1,8 @@
<GameObjectAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="PlayerObject"
gameObjectName="PlayerObject"
scriptFilePath="core/gameObjects/gameObjects/PlayerObject.cs"
TAMLFilePath="core/gameObjects/gameObjects/PlayerObject.taml"
description="A basic Player Object example." />

View file

@ -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)
{
}

View file

@ -0,0 +1,117 @@
<PlayerObject
scale="1 1 1"
class="PlayerObject"
canSave="true"
canSaveDynamicFields="true"
position="0 0 0"
rotation="0 -0 -0"
LocalPosition="0 0 0"
LocalRotation="1 0 0 0"
lifetimeMS="0"
gameObject="Core_GameObjects:PlayerObject">
<MeshComponent
componentType="Render"
friendlyName="Mesh Component"
description="Causes the object to render a non-animating 3d shape using the file provided."
networked="true"
enabled="true"
internalName="MeshComponent" />
<ShapeCollisionComponent
componentType="Collision"
friendlyName="Shape Collision"
description="A stub component class that physics components should inherit from."
networked="false"
enabled="true"
internalName="CollisionComponent"
CollisionType="Collision Mesh"
LineOfSightType="Collision Mesh"
DecalType="Collision Mesh"
CollisionMeshPrefix="Collision"
BlockCollisions="true" />
<AnimationComponent
componentType="Render"
friendlyName="Animation(Component)"
description="Allows a rendered mesh to be animated"
networked="true"
enabled="true"
internalName="AnimationComponent" />
<PlayerControllerComponent
componentType="Physics"
friendlyName="Player Controller"
description="A general-purpose physics player controller."
networked="false"
enabled="true"
internalName="PhysicsComponent"
inputVelocity="0 0 0"
useDirectMoveInput="0 -3.37028e+15 0" />
<StateMachineComponent
componentType="Game"
friendlyName="State Machine"
description="A generic state machine."
networked="false"
enabled="true"
internalName="StateMachineComponent" />
<CameraComponent
friendlyName="Camera(Component)"
networked="true"
enabled="true"
internalName="CameraComponent"
FOV="80"
MinFOV="5"
MaxFOV="175"
ScreenAspect="1065353216 1065353216"
positionOffset="0 0 0"
rotationOffset="0 -0 -0"
useParentTransform="true" />
<CameraOrbiterComponent
networked="false"
enabled="true"
internalName="CameraOrbiterComponent"
orbitDistance="8"
rotation="0 0 0"
maxPitchAngle="70"
minPitchAngle="-10" />
<ControlObjectComponent
componentType="Game"
friendlyName="Control Object"
description="Allows owner entity to be controlled by a client."
networked="false"
enabled="true"
internalName="ControlObjectComponent"
clientOwner="0" />
<SoundComponent
componentType="Sound"
friendlyName="Sound(Component)"
description="Stores up to 4 sounds for playback."
networked="true"
enabled="true"
internalName="SoundComponent">
<SoundComponent.MPreviewSounds>
<MPreviewSound
MPreviewSound="false" />
<MPreviewSound
MPreviewSound="false" />
<MPreviewSound
MPreviewSound="false" />
<MPreviewSound
MPreviewSound="false" />
</SoundComponent.MPreviewSounds>
<SoundComponent.Plays>
<Play
Play="false" />
<Play
Play="false" />
<Play
Play="false" />
<Play
Play="false" />
</SoundComponent.Plays>
</SoundComponent>
<InteractComponent
componentType="Game"
friendlyName="Interact"
description="Allows owner entity interact."
networked="false"
enabled="true"
internalName="InteractComponent" />
</PlayerObject>

View file

@ -0,0 +1,7 @@
<GameObjectAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="soundEmitterObject"
gameObjectName="soundEmitterObject"
TAMLFilePath="core/gameObjects/gameObjects/soundEmitterObject.taml"
description="A basic sound emitter example." />

View file

@ -0,0 +1,9 @@
<soundEmitterObject
scale="1 1 1"
class="SoundEmitterObject"
canSave="true"
canSaveDynamicFields="true"
position="0 0 0"
Rotation="0 -0 -0"
LocalPosition="0 0 0"
LocalRotation="1 0 0 0"/>

View file

@ -0,0 +1,7 @@
<GameObjectAsset
canSave="true"
canSaveDynamicFields="true"
AssetName="StaticShapeObject"
gameObjectName="StaticShapeObject"
TAMLFilePath="core/gameObjects/gameObjects/staticShapeObject.taml"
description="A basic static shape example." />

View file

@ -0,0 +1,9 @@
<StaticShapeObject
scale="1 1 1"
class="StaticShapeObject"
canSave="true"
canSaveDynamicFields="true"
position="0 0 0"
Rotation="0 -0 -0"
LocalPosition="0 0 0"
LocalRotation="1 0 0 0"/>

View file

@ -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/";