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

49 lines
3.6 KiB
C++

// Lot STM1 (STM1-SPEC-09, B5) : maillage Static d'une carte UStreetMap, sans interface.
//
// Meme conversion que le bouton « Create Static Mesh Asset » du plugin (FStreetMapComponentDetails::
// OnCreateStaticMeshAssetClicked) : UStreetMapComponent transitoire, reglages par defaut, FRawMesh sans recalcul des
// normales ni des tangentes, UV de lightmap 1, puis Build. Les materiaux sont ceux du maillage de reference (par defaut
// Static/CentralLondon), pour le meme rendu que les cartes du jeu. -CompareStreetMap reconstruit en memoire la carte de
// reference et compare ses triangles a ceux du maillage de reference (preuve que les reglages par defaut sont les bons).
//
// Usage : -run=LPBuildCityStatic -StreetMap=<objet UStreetMap> -Package=</lpm_city_<v>/StreetMap/(Static|Classic)/<Ville>>
// [-Reference=<objet UStaticMesh>] [-CompareStreetMap=<objet UStreetMap>] [-Flat] [-Unlit] [-DryRun] [-Report=<f.md>]
// [-Osm=<f.osm.xml> -Origin=<lat>,<lon> [-DefaultLevels=6]] [-BuildingsOnly] [-ExcludeHidden]
// -ExcludeHidden : retire les batiments masques en jeu (centres des monuments et du masque d'eau de la ville, a 50 cm pres).
// -Material=<objet> (1.3.1) : materiau du maillage a la place de celui de la reference (carte classique : StreetMapClassic ;
// StreetMapMasked, celui de Londres, masque les batiments).
// 1.3.2 : -BuildingColor=R,G,B (octets / 255 : le plugin ecrit ces valeurs sans conversion, le moteur les relit comme du sRGB ;
// 1.3.3, COMMUN-28 S6) donne cette couleur aux murs et aux toits (bordure = couleur / 0,33, le plugin
// remplissant avec 0,33 x la bordure) ; -SampleColors rapporte les couleurs moyennes et frequentes des toits et des murs du
// maillage de reference (-Reference), sans rien ecrire ; avec -Osm, les musees et batiments historiques situes dans un parc de
// la carte sont retires (comme dans la table des maisons).
// -TolerancePercent=<p> : ecart admis des triangles a la comparaison (defaut 0).
// -Flat : bWant3DBuildings = false (batiments plats, bordure au sol) ; -Unlit : bWantLitBuildings = false.
// 1.3.0 (carte classique en 3D, /lpm_city_<v>/StreetMap/Classic/<Ville>) : -Osm=<f.osm.xml> -Origin=<lat>,<lon> donne aux
// batiments leurs etages OSM reels (sinon height / 3 m, sinon -DefaultLevels=6 ; petits types et emprises sous 30 m2 : 1) et
// retire les batiments filtres (souterrains, layer < 0, tunnels, toits, emprises sous 20 m2) ; -BuildingsOnly retire routes,
// parcs et eaux. Sur une copie transitoire de l'UStreetMap seulement. NB : le Static/CentralLondon du jeu est en 3D
// (TailleZ 31 000 cm, L7h) ; la comparaison B7B a 1,6 % ne distingue pas plat et 3D non eclaire (STM1-SPEC-14).
// 1.4.0 (STM1-SPEC-17) : -PavedOsm=<f.osm.xml> -Origin=<lat>,<lon> ajoute 2 a U (UV0) des quadrilateres des routes
// surface=sett|cobblestone|unhewn_cobblestone, retrouvees par leurs premier et dernier points ; couleurs inchangees.
// 1.4.1 (STM1-DIAG-03 f) : -RoadZCm=<cm> (RoadOffesetZ du plugin) eleve les routes au-dessus des parcs, poses a 0 par le
// plugin : routes et parcs coplanaires scintillaient (anticrenelage temporel), en mode normal comme en mode classique.
// 1.5.1 (STM1-DIAG-06) : -PavedZCm=<cm> (avec -PavedOsm) pose les routes pavees a cette hauteur, sous les autres : aux
// carrefours et sous les ponts, paves et asphalte coplanaires scintillaient (deux textures).
#pragma once
#include "CoreMinimal.h"
#include "Commandlets/Commandlet.h"
#include "LPBuildCityStaticCommandlet.generated.h"
UCLASS()
class ULPBuildCityStaticCommandlet : public UCommandlet
{
GENERATED_BODY()
public:
ULPBuildCityStaticCommandlet();
virtual int32 Main(const FString& Params) override;
};