Files
2024-07-02 18:54:36 +05:00

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;
};