void CActorControllerComponent::ProcessEvent(const SEntityEvent& event)
{
	switch (event.event)
	{
		// Physicalize on level start for Launcher
		case EEntityEvent::LevelStarted:

			// Editor specific, physicalize on reset, property change or transform change
		case EEntityEvent::Reset:
		case EEntityEvent::EditorPropertyChanged:
		case EEntityEvent::TransformChangeFinishedInEditor:
			OnResetState();
			break;

		case EEntityEvent::Update:
		{
			SEntityUpdateContext* pCtx = (SEntityUpdateContext*)event.nParam [0];
			Update(pCtx);
		}
		break;

		case ENTITY_EVENT_PREPHYSICSUPDATE:
			PrePhysicsUpdate();
			break;
	}
}
예제 #2
0
void CItemComponent::Initialize()
{
	// Manage our snaplocks.
	m_pSnaplockComponent = m_pEntity->GetOrCreateComponent<CSnaplockComponent>();

	// Provide them with an effects controller for this entity.
	m_effectsController.Init(GetEntityId());

	// Get it into a known state.
	OnResetState();
}
예제 #3
0
void CItemComponent::ProcessEvent(const SEntityEvent& event)
{
	switch (event.event)
	{
		// Physicalize on level start for Launcher
		case EEntityEvent::LevelStarted:

			// Editor specific, physicalize on reset, property change or transform change
		case EEntityEvent::Reset:
		case EEntityEvent::EditorPropertyChanged:
		case EEntityEvent::TransformChangeFinishedInEditor:
			OnResetState();
			break;
	}
}
void CActorControllerComponent::Initialize()
{
	// Mesh and animation.
	m_pAdvancedAnimationComponent = m_pEntity->GetOrCreateComponent<Cry::DefaultComponents::CAdvancedAnimationComponent>();

	// Character movement controller.
	m_pCharacterControllerComponent = m_pEntity->GetOrCreateComponent<Cry::DefaultComponents::CCharacterControllerComponent>();

	// We need to know which actor component we are paired with. The actor controller class is pretty worthless without this.
	m_pActorComponent = m_pEntity->GetOrCreateComponent<CActorComponent>();
	CRY_ASSERT_MESSAGE(m_pActorComponent, "The actor controller component must be paired with an actor component.");

	// Initialise the movement state machine.
	MovementHSMInit();

	// Get it into a known state.
	OnResetState();
}
예제 #5
0
void CContainerComponent::Initialize()
{
	// Get some geometry.
	m_pGeometryComponent = m_pEntity->GetOrCreateComponent<Cry::DefaultComponents::CStaticMeshComponent>();

	// Get a simple animation component.
	m_pSimpleAnimationComponent = m_pEntity->GetOrCreateComponent<CSimpleAnimationComponent>();

	// Allow locking.
	m_lockableComponent = m_pEntity->GetOrCreateComponent<CLockableComponent>();

	// We want to supply interaction verbs.
	m_interactor = m_pEntity->GetOrCreateComponent<CEntityInteractionComponent>();
	if (m_interactor)
	{
		m_interactor->AddInteraction(std::make_shared<CInteractionOpenableOpen>(this));
		m_interactor->AddInteraction(std::make_shared<CInteractionOpenableClose>(this));
		m_interactor->AddInteraction(std::make_shared<CInteractionLockableLock>(this));
		m_interactor->AddInteraction(std::make_shared<CInteractionLockableUnlock>(this));
	}

	OnResetState();
}
예제 #6
0
void CPetComponent::Initialize()
{
	// Get it into a known state.
	OnResetState();
}
예제 #7
0
			StateManager::StateManager(){
				OnResetState();
				m_pDevice	=	NULL;
			}