This commit is contained in:
2025-06-09 00:11:54 +08:00
parent d8c6eb0bd6
commit c773a6bb8d
11207 changed files with 48929 additions and 304 deletions

View File

@@ -0,0 +1,111 @@
/* INFINITY CODE */
/* https://infinity-code.com */
using System.Collections.Generic;
#if PROCEDURAL_TOOLKIT
using ProceduralToolkit.Buildings;
#endif
namespace InfinityCode.RealWorldTerrain
{
public partial class RealWorldTerrainPrefsBase
{
/// <summary>
/// Building depth below ground level
/// </summary>
public float buildingBasementDepth = 0;
/// <summary>
/// Where to take height of the bottom points
/// </summary>
public RealWorldTerrainBuildingBottomMode buildingBottomMode = RealWorldTerrainBuildingBottomMode.followRealWorldData;
/// <summary>
/// Height of the floor.
/// </summary>
public float buildingFloorHeight = 3.5f;
/// <summary>
/// Range the number of floors buildings.
/// </summary>
public RealWorldTerrainRangeI buildingFloorLimits = new RealWorldTerrainRangeI(5, 7, 1, 50);
/// <summary>
/// Index of building generator.
/// 0 - Built-in
/// 1 - BuildR
/// 2 - BuildR2
/// 3 - Instantiate prefabs
/// </summary>
public int buildingGenerator = 0;
/// <summary>
/// List of buildings materials.
/// </summary>
public List<RealWorldTerrainBuildingMaterial> buildingMaterials;
/// <summary>
/// List of prefabs to instantiate
/// </summary>
public List<RealWorldTerrainBuildingPrefab> buildingPrefabs;
/// <summary>
/// Whether to save meshes and materials of buildings in the assets folder.
/// When false, meshes and materials may be lost when the scene is saved.
/// </summary>
public bool buildingSaveInResult = true;
/// <summary>
/// TRUE - All buildings will be loaded in one request to OSM Overpass, FALSE - buildings will be loaded in several requests (useful for megacities).
/// </summary>
public bool buildingSingleRequest = true;
/// <summary>
/// Use colors from OSM?
/// </summary>
public bool buildingUseColorTags = false;
/// <summary>
/// Type of collider for BuildR buildings.
/// </summary>
public RealWorldTerrainBuildR2Collider buildRCollider = RealWorldTerrainBuildR2Collider.none;
/// <summary>
/// Generate colliders for BuildR3.
/// </summary>
public bool buildR3Collider = false;
/// <summary>
/// Render mode for BuildR buildings.
/// </summary>
public RealWorldTerrainBuildR2RenderMode buildRRenderMode = RealWorldTerrainBuildR2RenderMode.full;
public List<RealWorldTerrainBuildR2Material> buildR2Materials;
public List<RealWorldTerrainBuildR3Material> buildR3Materials;
/// <summary>
/// Instance ID of BuildR generator style.
/// </summary>
public int customBuildRGeneratorStyle = 0;
/// <summary>
/// Instance ID of BuildR generator texture pack.
/// </summary>
public int customBuildRGeneratorTexturePack = 0;
/// <summary>
/// Array of BuildR presets.
/// </summary>
public RealWorldTerrainBuildRPresetsItem[] customBuildRPresets;
public bool dynamicBuildings = true;
#if PROCEDURAL_TOOLKIT
public FacadePlanningStrategy ptFacadePlanningStrategy;
public FacadeConstructionStrategy ptFacadeConstructionStrategy;
public RoofPlanningStrategy ptRoofPlanningStrategy;
public RoofConstructionStrategy ptRoofConstructionStrategy;
#endif
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b4f4f6dc4d6250f42973f0188c0fb5f2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,33 @@
/* INFINITY CODE */
/* https://infinity-code.com */
using System.Collections.Generic;
using UnityEngine;
namespace InfinityCode.RealWorldTerrain
{
public partial class RealWorldTerrainPrefsBase
{
/// <summary>
/// Density of grass.
/// </summary>
public int grassDensity = 100;
/// <summary>
/// Grass engine ID.
/// </summary>
public string grassEngine;
/// <summary>
/// List of grass textures.
/// </summary>
public List<Texture2D> grassPrefabs;
public List<int> vegetationStudioGrassTypes;
/// <summary>
/// What to do with outside points for VolumeGrass?
/// </summary>
public RealWorldTerrainVolumeGrassOutsidePoints volumeGrassOutsidePoints;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a8c4881629c8dbf4e91ef71fc16d3316
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,48 @@
/* INFINITY CODE */
/* https://infinity-code.com */
using UnityEngine;
namespace InfinityCode.RealWorldTerrain
{
public partial class RealWorldTerrainPrefsBase
{
public string[] erRoadTypes;
public bool erGenerateConnection = true;
/// <summary>
/// EasyRoads3D SnapToTerrain
/// </summary>
public bool erSnapToTerrain = true;
public float erWidthMultiplier = 1;
public bool normalizeRoadDistances = true;
/// <summary>
/// Name of road engine.
/// </summary>
public string roadEngine;
/// <summary>
/// Types of roads that will be created.
/// </summary>
public RealWorldTerrainRoadType roadTypes = (RealWorldTerrainRoadType)(~0);
/// <summary>
/// The mode of generation of road types
/// </summary>
public RealWorldTerrainRoadTypeMode roadTypeMode = RealWorldTerrainRoadTypeMode.simple;
/// <summary>
/// The material that will be used to SplineBend roads.
/// </summary>
public Material splineBendMaterial;
/// <summary>
/// The mesh that will be used to SplineBend roads.
/// </summary>
public Mesh splineBendMesh;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 5a02c8ab3ec725943877e39683e5ce27
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,161 @@
/* INFINITY CODE */
/* https://infinity-code.com */
using UnityEngine;
namespace InfinityCode.RealWorldTerrain
{
public partial class RealWorldTerrainPrefsBase
{
/// <summary>
/// If disabled terrains will have zero Y at minimum elevation. <br/>
/// If enabled, terrains will have zero Y on the water line(zero elevation).
/// </summary>
public bool alignWaterLine;
public Vector2 autoDetectElevationOffset = new Vector2(100, 100);
/// <summary>
/// Resolution of the base map used for rendering far patches on the terrain.
/// </summary>
public int baseMapResolution = 1024;
/// <summary>
/// Flag indicating that the zero is used as unknown value.
/// </summary>
public bool bingMapsUseZeroAsUnknown;
/// <summary>
/// Resolution of control texture.
/// </summary>
public int controlTextureResolution = 512;
/// <summary>
/// Escarpment of the seabed. Greater value - steeper slope.
/// </summary>
public float depthSharpness = 0;
/// <summary>
/// The resolution of the map that controls grass and detail meshes.<br/>
/// For performance reasons (to save on draw calls) the lower you set this number the better.
/// </summary>
public int detailResolution = 2048;
/// <summary>
/// Elevation provider
/// </summary>
public RealWorldTerrainElevationProvider elevationProvider = RealWorldTerrainElevationProvider.SRTM;
public RealWorldTerrainElevationRange elevationRange = RealWorldTerrainElevationRange.autoDetect;
public RealWorldTerrainElevationType elevationType = RealWorldTerrainElevationType.realWorld;
/// <summary>
/// The fixed size of terrain.<br/>
/// X - Terrain Width<br/>
/// Y - Terrain Height<br/>
/// Z - Terrain Length
/// </summary>
public Vector3 fixedTerrainSize = new Vector3(500, 600, 500);
/// <summary>
/// The resolution of GAIA stamp
/// </summary>
public int gaiaStampResolution = 1024;
/// <summary>
/// Generate unknown underwater areas based on known data
/// </summary>
public bool generateUnderWater;
/// <summary>
/// The HeightMap resolution for each Terrain.
/// </summary>
public int heightmapResolution = 129;
/// <summary>
/// Errors of SRTM should be ignored?
/// </summary>
public bool ignoreSRTMErrors;
public float fixedMaxElevation = 1000;
public float fixedMinElevation = 0;
/// <summary>
/// Type of max elevation value.
/// </summary>
public RealWorldTerrainMaxElevation maxElevationType = RealWorldTerrainMaxElevation.autoDetect;
/// <summary>
/// Elevation value when there is no data.
/// </summary>
public short nodataValue;
/// <summary>
/// The order of bytes in a RAW file.
/// </summary>
public RealWorldTerrainByteOrder rawByteOrder = RealWorldTerrainByteOrder.Windows;
/// <summary>
/// Filename of RAW result
/// </summary>
public string rawFilename = "terrain";
/// <summary>
/// Height of RAW result
/// </summary>
public int rawHeight = 1024;
/// <summary>
/// Width of RAW result
/// </summary>
public int rawWidth = 1024;
/// <summary>
/// Type of RAW result
/// </summary>
public RealWorldTerrainRawType rawType = RealWorldTerrainRawType.RAW;
/// <summary>
/// Specifies the size in pixels of each individually rendered detail patch. <br/>
/// A larger number reduces draw calls, but might increase triangle count since detail patches are culled on a per batch basis. <br/>
/// A recommended value is 16. <br/>
/// If you use a very large detail object distance and your grass is very sparse, it makes sense to increase the value.
/// </summary>
public int resolutionPerPatch = 16;
/// <summary>
/// Type of result (terrain, mesh).
/// </summary>
public RealWorldTerrainResultType resultType = RealWorldTerrainResultType.terrain;
/// <summary>
/// Specifies whether the projection will be determined by the size of the area.<br/>
/// 0 - Real world sizes.<br/>
/// 1 - Mercator sizes.<br/>
/// 2 - Fixed size.
/// </summary>
public int sizeType = 0;
/// <summary>
/// Scale of terrains.
/// </summary>
public Vector3 terrainScale = Vector3.one;
/// <summary>
/// The source of water detection.
/// </summary>
public RealWorldTerrainWaterDetectionSource waterDetectionSource = RealWorldTerrainWaterDetectionSource.texture;
/// <summary>
/// The bit mask of water detection.
/// </summary>
public TextAsset waterDetectionBitMask;
/// <summary>
/// The texture of water detection.
/// </summary>
public Texture2D waterDetectionTexture;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: a4bf248828f293544887a7e56df66868
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,87 @@
/* INFINITY CODE */
/* https://infinity-code.com */
using System.Collections.Generic;
using UnityEngine;
namespace InfinityCode.RealWorldTerrain
{
public partial class RealWorldTerrainPrefsBase
{
public int hugeTexturePageSize = 2048;
public int hugeTextureRows = 13;
public int hugeTextureCols = 13;
/// <summary>
/// Texture type ID.
/// </summary>
public string mapTypeID;
/// <summary>
/// Texture type extra fields.
/// </summary>
public string mapTypeExtraFields;
/// <summary>
/// The maximum level of zoom, to be used for texture generation.\n
/// 0 - Autodetect.\n
/// 1+ - Level of zoom.
/// </summary>
public int maxTextureLevel;
/// <summary>
/// Reducing the size of the texture, reduces the time texture generation and memory usage.
/// </summary>
public bool reduceTextures = true;
/// <summary>
/// Count of textures.
/// </summary>
public RealWorldTerrainVector2i textureCount = RealWorldTerrainVector2i.one;
/// <summary>
/// Type of texture file output
/// </summary>
public RealWorldTerrainTextureFileType textureFileType = RealWorldTerrainTextureFileType.jpg;
/// <summary>
/// Quality of file output
/// </summary>
public int textureFileQuality = 100;
/// <summary>
/// Provider of textures.
/// </summary>
public RealWorldTerrainTextureProvider textureProvider = RealWorldTerrainTextureProvider.virtualEarth;
/// <summary>
/// URL pattern of custom texture provider.
/// </summary>
public string textureProviderURL = "http://localhost/tiles/{zoom}/{x}/{y}";
/// <summary>
/// Size of texture.
/// </summary>
public RealWorldTerrainVector2i textureSize = new RealWorldTerrainVector2i(1024, 1024);
/// <summary>
/// Use mip-mapping for textures (not recommended)
/// </summary>
public bool textureMipMaps = false;
/// <summary>
/// Type of result texture
/// </summary>
public RealWorldTerrainTextureResultType textureResultType = RealWorldTerrainTextureResultType.regularTexture;
/// <summary>
/// Type of tile texture.
/// </summary>
public RealWorldTerrainTextureType textureType = RealWorldTerrainTextureType.satellite;
public List<TerrainLayer> vectorTerrainBaseLayers;
public Vector2 vectorTerrainBaseLayersNoiseOffset = Vector2.zero;
public float vectorTerrainBaseLayersNoiseScale = 16;
public List<RealWorldTerrainVectorTerrainLayerFeature> vectorTerrainLayers;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ddd41e3b7da1ce442baa6726d9e61512
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,26 @@
/* INFINITY CODE */
/* https://infinity-code.com */
using System.Collections.Generic;
using UnityEngine;
namespace InfinityCode.RealWorldTerrain
{
public partial class RealWorldTerrainPrefsBase
{
/// <summary>
/// Density of trees.
/// </summary>
public int treeDensity = 100;
public string treeEngine;
/// <summary>
/// List of tree prefabs.
/// </summary>
public List<GameObject> treePrefabs;
public List<int> vegetationStudioTreeTypes;
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ab0e9905bf61c2c4dbe4d8691893936c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,44 @@
/* INFINITY CODE */
/* https://infinity-code.com */
using System;
using System.Collections.Generic;
using UnityEngine;
namespace InfinityCode.RealWorldTerrain
{
/// <summary>
/// Basic settings generation of terrain.
/// </summary>
[Serializable]
public partial class RealWorldTerrainPrefsBase
{
/// <summary>
/// List of points of interest.
/// </summary>
public List<RealWorldTerrainPOI> POI;
public string riverEngine = "Built-In";
public Material riverMaterial;
#if RAM2019
public LakePolygonProfile ramAreaProfile;
public SplineProfile ramSplineProfile;
#endif
/// <summary>
/// Title
/// </summary>
public string title;
#if VEGETATION_STUDIO || VEGETATION_STUDIO_PRO
#if !VEGETATION_STUDIO_PRO
public AwesomeTechnologies.VegetationPackage vegetationStudioPackage;
#else
public AwesomeTechnologies.VegetationSystem.VegetationPackagePro vegetationStudioPackage;
#endif
#endif
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ba74bddcf98bac947b7a2a6bdd832758
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: