Torque3D Documentation / _generateds / stateMachineComponent.h

stateMachineComponent.h

Engine/source/T3D/components/game/stateMachineComponent.h

More...

Classes:

Detailed Description

 1
 2//-----------------------------------------------------------------------------
 3// Copyright (c) 2012 GarageGames, LLC
 4//
 5// Permission is hereby granted, free of charge, to any person obtaining a copy
 6// of this software and associated documentation files (the "Software"), to
 7// deal in the Software without restriction, including without limitation the
 8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
 9// sell copies of the Software, and to permit persons to whom the Software is
10// furnished to do so, subject to the following conditions:
11//
12// The above copyright notice and this permission notice shall be included in
13// all copies or substantial portions of the Software.
14//
15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21// IN THE SOFTWARE.
22//-----------------------------------------------------------------------------
23
24#ifndef STATE_MACHINE_COMPONENT_H
25#define STATE_MACHINE_COMPONENT_H
26
27#ifndef COMPONENT_H
28   #include "T3D/components/component.h"
29#endif
30#ifndef STATE_MACHINE_H
31#include "T3D/components/game/stateMachine.h"
32#endif
33
34//////////////////////////////////////////////////////////////////////////
35/// 
36/// 
37//////////////////////////////////////////////////////////////////////////
38class StateMachineComponent : public Component
39{
40   typedef Component Parent;
41
42public:
43   StateMachine mStateMachine;
44
45protected:
46   StringTableEntry     mStateMachineFile;
47
48public:
49   StateMachineComponent();
50   virtual ~StateMachineComponent();
51   DECLARE_CONOBJECT(StateMachineComponent);
52
53   virtual bool onAdd();
54   virtual void onRemove();
55   static void initPersistFields();
56
57   virtual void onComponentAdd();
58   virtual void onComponentRemove();
59
60   void _onResourceChanged(const Torque::Path &path);
61
62   virtual U32 packUpdate(NetConnection *con, U32 mask, BitStream *stream);
63   virtual void unpackUpdate(NetConnection *con, BitStream *stream);
64
65   virtual void processTick();
66
67   virtual void onDynamicModified(const char* slotName, const char* newValue);
68   virtual void onStaticModified(const char* slotName, const char* newValue);
69
70   virtual void loadStateMachineFile();
71
72   void setStateMachineFile(const char* fileName) { mStateMachineFile = StringTable->insert(fileName); }
73
74   static bool _setSMFile(void *object, const char *index, const char *data);
75
76   void onStateChanged(StateMachine* sm, S32 stateIdx);
77
78   //Callbacks
79   DECLARE_CALLBACK(void, onStateChange, ());
80};
81
82#endif
83