Files
blueprintLibrary/Source/GraffModule/Public/cppGI.h
T
2024-03-07 20:43:00 +05:00

107 lines
3.4 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()
UPROPERTY(BlueprintReadWrite, category = "default")
int32 flat = -1;
UPROPERTY(BlueprintReadWrite, category = "default")
int32 type = 0;
UPROPERTY(BlueprintReadWrite, category = "default")
int32 zone = 1;
UPROPERTY(BlueprintReadWrite, category = "default")
int32 house = -1;
UPROPERTY(BlueprintReadWrite, category = "default")
int32 section = -1;
UPROPERTY(BlueprintReadWrite, category = "default")
int32 floor = -1;
};
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;
};