53 lines
1.7 KiB
C++
53 lines
1.7 KiB
C++
#pragma once
|
|
#include "CoreMinimal.h"
|
|
#include "Engine/GameInstance.h"
|
|
#include "irons/gameFramework/Game.hpp"
|
|
#include "IronsHost.generated.h"
|
|
|
|
class FIronsSessionHost;
|
|
struct FIronsHostDeleter {void operator()(FIronsSessionHost* Ptr)const;};
|
|
namespace gf = irons::gameFramework;
|
|
UEADAPTER_API bool RunIronsHostAcceptance(const FString& Root,FString& Report);
|
|
|
|
UCLASS()
|
|
class UEADAPTER_API UIronsGameInstance : public UGameInstance
|
|
{
|
|
GENERATED_BODY()
|
|
TUniquePtr<FIronsSessionHost,FIronsHostDeleter> Campaign;
|
|
TUniquePtr<FIronsSessionHost,FIronsHostDeleter> Training;
|
|
TMap<FString,FString> Chinese, English;
|
|
FString PreferencesIni;
|
|
bool bTraining=false;
|
|
public:
|
|
UIronsGameInstance();
|
|
virtual ~UIronsGameInstance() override;
|
|
virtual void Init() override;
|
|
virtual void Shutdown() override;
|
|
gf::Session& Core();
|
|
const gf::Session& Core()const;
|
|
gf::Combat Combat;
|
|
bool bReady=false;
|
|
bool bEnglish=false;
|
|
float Sensitivity=1,AimSensitivity=1, MasterVolume=.65f;
|
|
bool bInvertY=false;
|
|
bool bShowPerformance=true;
|
|
int32 PerformanceCorner=0; // 0 right top, 1 left top, 2 right bottom, 3 left bottom.
|
|
TArray<FString> Keys;
|
|
FString StatusKey, StatusDetail;
|
|
double StatusUntil=0;
|
|
FString DataRoot;
|
|
int AcceptanceStep=0;
|
|
FText Text(const FString& Key)const;
|
|
FString Label(const FString& Key)const;
|
|
FString ItemName(std::string_view Id)const;
|
|
void SetLanguage(bool EnglishLanguage);
|
|
void SavePreferences();
|
|
void EnterTraining();
|
|
void LeaveTraining();
|
|
bool IsTraining()const {return bTraining;}
|
|
bool Accept(const gf::Result& Result);
|
|
bool BeginSortie();
|
|
bool FinishSortie(bool Destroyed);
|
|
void Notice(const FString& Key,const FString& Detail=TEXT(""));
|
|
};
|