VScriptEvent.cpp
Engine/source/Verve/Extension/Script/VScriptEvent.cpp
Public Variables
Public Functions
Detailed Description
Public Variables
EndImplementEnumType
Public Functions
IMPLEMENT_CONOBJECT(VScriptEvent )
ImplementEnumType(VScriptEventCommandType , "" )
1 2//----------------------------------------------------------------------------- 3// Verve 4// Copyright (C) 2014 - Violent Tulip 5// 6// Permission is hereby granted, free of charge, to any person obtaining a copy 7// of this software and associated documentation files (the "Software"), to 8// deal in the Software without restriction, including without limitation the 9// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 10// sell copies of the Software, and to permit persons to whom the Software is 11// furnished to do so, subject to the following conditions: 12// 13// The above copyright notice and this permission notice shall be included in 14// all copies or substantial portions of the Software. 15// 16// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 22// IN THE SOFTWARE. 23//----------------------------------------------------------------------------- 24#include "Verve/Core/VGroup.h" 25#include "Verve/Core/VTrack.h" 26 27#include "Verve/Extension/Script/VScriptEvent.h" 28 29#include "console/consoleTypes.h" 30 31//----------------------------------------------------------------------------- 32IMPLEMENT_CONOBJECT( VScriptEvent ); 33//----------------------------------------------------------------------------- 34 35// Implement the Command Type enum list. 36ImplementEnumType( VScriptEventCommandType, "" ) 37 { VScriptEvent::k_TypeExpression, "EXPRESSION" }, 38 { VScriptEvent::k_TypeMethod, "METHOD" }, 39EndImplementEnumType; 40 41//----------------------------------------------------------------------------- 42 43VScriptEvent::VScriptEvent( void ) : 44 mCommandType( k_TypeMethod ), 45 mCommand( String::EmptyString ) 46{ 47 setLabel( "ScriptEvent" ); 48} 49 50void VScriptEvent::initPersistFields( void ) 51{ 52 Parent::initPersistFields(); 53 54 addField( "CommandType", TYPEID<eCommandType>(), Offset( mCommandType, VScriptEvent ), "The type of command to be evaluated." ); 55 addField( "Command", TypeRealString, Offset( mCommand, VScriptEvent ), "The command to be evaluated." ); 56} 57 58//----------------------------------------------------------------------------- 59// 60// Callback Methods. 61// 62//----------------------------------------------------------------------------- 63 64//----------------------------------------------------------------------------- 65// 66// VScriptEvet::onTrigger( pTime, pDelta ); 67// 68// Execute a method or evaluate a command. 69// 70//----------------------------------------------------------------------------- 71void VScriptEvent::onTrigger( const S32 &pTime, const S32 &pDelta ) 72{ 73 Parent::onTrigger( pTime, pDelta ); 74 75 switch ( mCommandType ) 76 { 77 case k_TypeExpression : 78 { 79 80 // Evaluate Expression. 81 Con::evaluate( mCommand, false, NULL ); 82 83 } break; 84 85 case k_TypeMethod : 86 { 87 88 SimObject *object = getSceneObject(); 89 if ( object ) 90 { 91 // Execute Method. 92 Con::executef( object, mCommand.c_str() ); 93 } 94 else 95 { 96 // Execute Function. 97 Con::executef( mCommand.c_str()); 98 } 99 100 } break; 101 } 102} 103