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

65 lines
2.3 KiB
C++

// Lot STM1 (STM1-SPEC-11, M2) : monuments d'une ville, poses en jeu par ULPCityWaterSubsystem.
//
// Cree par le commandlet LPBuildCityLandmarks sous <racine>/Landmarks/<Ville> (racine : /Game/Heavy/StreetMap pour le jeu
// de base, /lpm_city_<v>/StreetMap pour un pack), lu en jeu par ULPAssetRegistryHelpers::ResolveCityPath. Chaque monument
// est un maillage pose sur la carte a ses coordonnees projetees ; les maisons generiques de MapMarkers posees aux centres
// HideCenters sont masquees (echelle 0). Positions dans le repere de la carte (cm), comme l'UStreetMap.
#pragma once
#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "Engine/StaticMesh.h"
#include "LPCityLandmarks.generated.h"
USTRUCT(BlueprintType)
struct FLPCityLandmark
{
GENERATED_BODY()
/** Nom du monument (journal, credits). */
UPROPERTY(VisibleAnywhere, Category = "LPCityLandmarks")
FString Name;
/** Maillage du monument (pack ou jeu de base). */
UPROPERTY(VisibleAnywhere, Category = "LPCityLandmarks")
TSoftObjectPtr<UStaticMesh> Mesh;
/** Position du pied du monument dans le repere de la carte (cm). */
UPROPERTY(VisibleAnywhere, Category = "LPCityLandmarks")
FVector2D CenterCm = FVector2D::ZeroVector;
/** Hauteur ajoutee au sol de la carte (cm). */
UPROPERTY(VisibleAnywhere, Category = "LPCityLandmarks")
float ZOffsetCm = 0.f;
/** Lacet (degres). */
UPROPERTY(VisibleAnywhere, Category = "LPCityLandmarks")
float YawDeg = 0.f;
/** Echelle uniforme du maillage (1 = taille reelle si le modele est en cm). */
UPROPERTY(VisibleAnywhere, Category = "LPCityLandmarks")
float Scale = 1.f;
/** Centres des batiments OSM du monument (centre de boite, comme GI.FindCenterOfPolygon) : maisons a masquer. */
UPROPERTY(VisibleAnywhere, Category = "LPCityLandmarks")
TArray<FVector2D> HideCenters;
/** Credit exact du modele (source, auteur, licence). */
UPROPERTY(VisibleAnywhere, Category = "LPCityLandmarks")
FString Credits;
};
UCLASS(BlueprintType)
class LIFEPLAY_API ULPCityLandmarks : public UDataAsset
{
GENERATED_BODY()
public:
/** Nom de la carte (nom du maillage Static et de l'UStreetMap). */
UPROPERTY(VisibleAnywhere, Category = "LPCityLandmarks")
FString City;
UPROPERTY(VisibleAnywhere, Category = "LPCityLandmarks")
TArray<FLPCityLandmark> Landmarks;
};