Start implementing states
This commit is contained in:
parent
fef1217877
commit
d869d0105f
@ -1,9 +1,4 @@
|
||||
// Project Sword & Gun Copyright Kevin Poretti
|
||||
// Unreal Fighting Engine by Kevin Poretti
|
||||
|
||||
|
||||
#include "IFESystemInterface.h"
|
||||
|
||||
// Add default functionality here for any IIFESystemInterface functions that are not pure virtual.
|
||||
void IIFESystemInterface::FixedTick(float OneFrame)
|
||||
{
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Project Sword & Gun Copyright Kevin Poretti
|
||||
// Unreal Fighting Engine by Kevin Poretti
|
||||
|
||||
#pragma once
|
||||
|
||||
@ -29,5 +29,5 @@ public:
|
||||
*
|
||||
* @param OneFrame the time that elapses during one fixed tick
|
||||
*/
|
||||
virtual void FixedTick(float OneFrame);
|
||||
virtual void FixedTick(float OneFrame) = 0;
|
||||
};
|
||||
|
@ -1,5 +1,56 @@
|
||||
// Project Sword & Gun Copyright Kevin Poretti
|
||||
|
||||
// Unreal Fighting Engine by Kevin Poretti
|
||||
|
||||
#include "FEState.h"
|
||||
#include "FEStateMachineComponent.h"
|
||||
|
||||
|
||||
void UFEState::InitActorInfo(AActor* InOwner, AActor* InAvatar)
|
||||
{
|
||||
Owner = InOwner;
|
||||
Avatar = InAvatar;
|
||||
}
|
||||
|
||||
void UFEState::Enter()
|
||||
{
|
||||
TicksInState = 0;
|
||||
|
||||
OnEnter();
|
||||
}
|
||||
|
||||
void UFEState::Exit()
|
||||
{
|
||||
OnExit();
|
||||
}
|
||||
|
||||
void UFEState::FixedTick(float OneFrame)
|
||||
{
|
||||
TicksInState++;
|
||||
|
||||
OnFixedTick(OneFrame);
|
||||
}
|
||||
|
||||
|
||||
void UFEState::OnEnter_Implementation()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void UFEState::OnExit_Implementation()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void UFEState::OnFixedTick_Implementation(float OneFrame)
|
||||
{
|
||||
}
|
||||
|
||||
UWorld* UFEState::GetWorld() const
|
||||
{
|
||||
UFEStateMachineComponent* SMC = Cast<UFEStateMachineComponent>(GetOuter());
|
||||
if(SMC)
|
||||
{
|
||||
return SMC->GetWorld();
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Project Sword & Gun Copyright Kevin Poretti
|
||||
// Unreal Fighting Engine by Kevin Poretti
|
||||
|
||||
#pragma once
|
||||
|
||||
@ -7,11 +7,95 @@
|
||||
#include "FEState.generated.h"
|
||||
|
||||
/**
|
||||
*
|
||||
* A state is an object that provides rules and conditions for when a state can be transitioned into
|
||||
* and logic to run when the state is entered, exited, and active.
|
||||
*/
|
||||
UCLASS()
|
||||
class UNREALFIGHTINGENGINE_API UFEState : public UObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* Initializes pointers to what owns this state and what avatar this state represents.
|
||||
*/
|
||||
virtual void InitActorInfo(AActor* InOwner, AActor* InAvatar);
|
||||
|
||||
/** Name of this state */
|
||||
UPROPERTY(EditAnywhere, BlueprintReadOnly, Category="UFE|State")
|
||||
FName Name;
|
||||
|
||||
/** Conditions that need to be met in order for this state to be transitioned into */
|
||||
UPROPERTY(EditAnywhere)
|
||||
TArray<uint8> EntryConditions;
|
||||
|
||||
/** What is this state's category. Used for determining what types of state can prematurely cancel this one. */
|
||||
UPROPERTY(EditAnywhere)
|
||||
uint8 StateType;
|
||||
|
||||
/** How many ticks have elapsed since this state was entered */
|
||||
UPROPERTY(BlueprintReadOnly, Category="UFE|State")
|
||||
int32 TicksInState;
|
||||
|
||||
/**
|
||||
* Called whenever this state is transitioned into.
|
||||
*
|
||||
* Resets TicksInState and calls appropriate Blueprint hooks
|
||||
*/
|
||||
void Enter();
|
||||
|
||||
/**
|
||||
* Called whenever this state is transitioned out of into a new state.
|
||||
*/
|
||||
void Exit();
|
||||
|
||||
/**
|
||||
* Called whenever this state is active and the game logic ticks.
|
||||
*
|
||||
* Increments TicksInState and calls appropriate Blueprint hooks.
|
||||
*
|
||||
* @param OneFrame the time that elapses during one fixed tick
|
||||
*/
|
||||
void FixedTick(float OneFrame);
|
||||
|
||||
/**
|
||||
* Blueprint hook that is called whenever this state is transitioned into
|
||||
*/
|
||||
UFUNCTION(BlueprintNativeEvent, Category="UFE|State|Events")
|
||||
void OnEnter();
|
||||
|
||||
/**
|
||||
* Blueprint hook that is called whenever this state is transitioned out of into a new state
|
||||
*/
|
||||
UFUNCTION(BlueprintNativeEvent, Category="UFE|State|Events")
|
||||
void OnExit();
|
||||
|
||||
/**
|
||||
* Blueprint hook that is called whenever this state is active and the game logic ticks
|
||||
*
|
||||
* @param OneFrame the time that elapses during one fixed tick
|
||||
*/
|
||||
UFUNCTION(BlueprintNativeEvent, Category="UFE|State|Events")
|
||||
void OnFixedTick(float OneFrame);
|
||||
|
||||
// UObject interface
|
||||
virtual UWorld* GetWorld() const override;
|
||||
// End of UObject interface
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* Actor that owns this state.
|
||||
* This will typically be a player controller that possesses the avatar.
|
||||
*/
|
||||
UPROPERTY(BlueprintReadOnly)
|
||||
AActor* Owner;
|
||||
|
||||
/**
|
||||
* The avatar is an actor that this state represents.
|
||||
* This will typically be a pawn or character.
|
||||
*/
|
||||
UPROPERTY(BlueprintReadOnly)
|
||||
AActor* Avatar;
|
||||
};
|
||||
|
@ -1,5 +1,4 @@
|
||||
// Project Sword & Gun Copyright Kevin Poretti
|
||||
|
||||
// Unreal Fighting Engine by Kevin Poretti
|
||||
|
||||
#include "FEStateMachineComponent.h"
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Project Sword & Gun Copyright Kevin Poretti
|
||||
// Unreal Fighting Engine by Kevin Poretti
|
||||
|
||||
#pragma once
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user