LifePlay-Revival/Source/LifePlay/LPCityWaterMask.h
2026-10-22 21:10:39 +02:00

46 lines
1.8 KiB
C++

// Lot STM1 (STM1-SPEC-08, O2) : centres des batiments d'une ville qui tombent dans l'eau.
//
// Cree par le commandlet LPBuildCityWater (-MaskOnly) sous /Game/Heavy/StreetMap/Water/<Ville>_Mask, lu en jeu par
// ULPCityWaterSubsystem pour masquer les maisons generiques de MapMarkers posees a ces centres. Les centres sont ceux de
// GI.FindCenterOfPolygon (centre de la boite englobante des BuildingPoints, en float), dans le repere de la carte (cm).
#pragma once
#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "LPCityWaterMask.generated.h"
UCLASS(BlueprintType)
class LIFEPLAY_API ULPCityWaterMask : public UDataAsset
{
GENERATED_BODY()
public:
/** Nom de la carte (nom du maillage Static et de l'UStreetMap). */
UPROPERTY(VisibleAnywhere, Category = "LPCityWater")
FString City;
/** Nombre de batiments de l'UStreetMap au moment du calcul. */
UPROPERTY(VisibleAnywhere, Category = "LPCityWater")
int32 SourceBuildingCount = 0;
/** Centres des batiments dans l'eau (repere de la carte, cm). */
UPROPERTY(VisibleAnywhere, Category = "LPCityWater")
TArray<FVector2D> Centers;
/** Aire du polygone de chaque batiment (m2), meme ordre que Centers. */
UPROPERTY(VisibleAnywhere, Category = "LPCityWater")
TArray<float> AreasM2;
/** STM1-SPEC-10 (G3) : polygones d'eau (repere de la carte, cm), anneaux mis bout a bout dans WaterPoints. */
UPROPERTY(VisibleAnywhere, Category = "LPCityWater")
TArray<FVector2D> WaterPoints;
/** Indice du premier point de chaque anneau dans WaterPoints (l'anneau va jusqu'au debut du suivant). */
UPROPERTY(VisibleAnywhere, Category = "LPCityWater")
TArray<int32> WaterRingStarts;
/** Pour chaque anneau : -1 s'il est exterieur, sinon l'indice de l'anneau exterieur dont il est un trou. */
UPROPERTY(VisibleAnywhere, Category = "LPCityWater")
TArray<int32> WaterRingOuter;
};