116 lines
3.6 KiB
C++
116 lines
3.6 KiB
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "Engine/GameInstance.h"
|
|
#include "cppGI.generated.h"
|
|
|
|
/**
|
|
*
|
|
*/
|
|
|
|
|
|
USTRUCT(BlueprintType)
|
|
struct Fcppcoords
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
Fcppcoords(int32 flat_=-1, int32 type_=0, int32 zone_=-1, int32 house_=-1, int32 section_=-1, int32 floor_=-1) {
|
|
flat = flat_;
|
|
type = type_;
|
|
zone = zone_;
|
|
house = house_;
|
|
section = section_;
|
|
floor = floor_;
|
|
}
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 flat;
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 type;
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 zone;
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 house;
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 section;
|
|
UPROPERTY(BlueprintReadWrite, category = "default")
|
|
int32 floor;
|
|
};
|
|
|
|
|
|
USTRUCT(BlueprintType)
|
|
struct FcppLevelStruct
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
UPROPERTY(BlueprintReadWrite)
|
|
Fcppcoords coords;
|
|
UPROPERTY(BlueprintReadWrite)
|
|
bool dontUnload = false;
|
|
UPROPERTY(BlueprintReadWrite)
|
|
FString path;
|
|
UPROPERTY(BlueprintReadWrite)
|
|
float Z = 0;
|
|
UPROPERTY(BlueprintReadWrite)
|
|
int32 anotherLvl = -1;
|
|
UPROPERTY(BlueprintReadWrite)
|
|
FName uniqName;
|
|
};
|
|
|
|
UCLASS()
|
|
class GRAFFMODULE_API UcppGI : public UGameInstance
|
|
{
|
|
GENERATED_BODY()
|
|
public:
|
|
UFUNCTION(blueprintcallable, category = "cppFuncLib")
|
|
static void cppCoordsEq(Fcppcoords coords, Fcppcoords coords1, bool relevantMinus2, bool fastEq, bool& flat_, bool& type_, bool& zone_, bool& house_, bool& section_, bool& floor_, bool& fullEq);
|
|
|
|
|
|
/*returns array of levels for binding*/
|
|
UFUNCTION(blueprintcallable, Category = "LevelLoading", meta = (WorldContext = "WorldContextObject"))
|
|
TArray<ULevelStreaming*> cppLvlManage(UObject* WorldContextObject, Fcppcoords currentCoords, uint8 currentState);
|
|
|
|
/*return array filtered by coords, coord<0 for floor and <1 for other is ignore the one*/
|
|
UFUNCTION(blueprintcallable, category = "Data")
|
|
TArray<FcppflatStruct> getFlatArr_(Fcppcoords coords, int& len);
|
|
|
|
|
|
UFUNCTION(blueprintcallable, category = "Data")
|
|
FcppflatStruct findFlatByCoords_(Fcppcoords coords, bool& success);
|
|
|
|
/*return array with flats with specified number
|
|
(may be from different houses if not sequetnal numeration)*/
|
|
UFUNCTION(blueprintcallable, category = "Data")
|
|
TArray<FcppflatStruct> findFlatsByN_(int num, bool& success);
|
|
|
|
/*coord=-2 is ignore the one, price is millions*/
|
|
UFUNCTION(blueprintcallable, category = "Data")
|
|
void countFreeApartments(Fcppcoords coords,int& free,int& all,float& minPrice);
|
|
|
|
/*list of lvls for anyway loading*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "levelLoading")
|
|
TArray<FcppLevelStruct> cppWhiteList;
|
|
/*list of lvls for anyway not loading*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "levelLoading")
|
|
TArray<FcppLevelStruct> cppBlackList;
|
|
/*list of coords for regular loading*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "LevelLoading")
|
|
TArray<Fcppcoords> cppLoadList;
|
|
/*list of created level names*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "LevelLoading")
|
|
TArray<FName> cppCreatedList;
|
|
/*list of loaded/loading right now level names*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "LevelLoading")
|
|
TArray<FName> cpploadedList;
|
|
/*list of lvls struct created by levelloader*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "levelLoading")
|
|
TArray<FcppLevelStruct> cppLevels;
|
|
/*list of all flats in project*/
|
|
UPROPERTY(BlueprintReadWrite, EditDefaultsOnly, Category = "Data")
|
|
TArray<FcppflatStruct> flatArray;
|
|
|
|
|
|
|
|
};
|