// public static void ShowWorldBiomeMasksSpawner() // { // Terrain worldMapTerrain = TerrainHelper.GetWorldMapTerrain(); // if (worldMapTerrain == null) // { // Debug.LogError("No world map created yet! Please create a world map first before opening the Biome Masks setup!"); // return; // } // GaiaSessionManager gsm = GaiaSessionManager.GetSessionManager(false); // //Get the Gaia Settings // GaiaSettings settings = GaiaUtils.GetGaiaSettings(); // //Create or find the stamper // GameObject spawnerObj = GameObject.Find(GaiaConstants.worldBiomeMasks); // if (spawnerObj == null) // { // spawnerObj = new GameObject(GaiaConstants.worldBiomeMasks); // GameObject worldMapObj = GaiaUtils.GetOrCreateWorldDesigner(); // spawnerObj.transform.parent = worldMapObj.transform; // Spawner spawner = spawnerObj.AddComponent<WorldBiomeMasks>(); // //Existing settings for world mask biomes in session? -> Take those! // if (gsm.m_session.m_worldBiomeMaskSettings != null) // { // spawner.LoadSettings(gsm.m_session.m_worldBiomeMaskSettings); // } // else // { // //No session settings? Use default setup from Gaia settings then // if (settings != null) // { // if (settings.m_defaultBiomeMaskSettings != null) // { // spawner.LoadSettings(settings.m_defaultBiomeMaskSettings); // } // } // } // spawner.m_settings.m_isWorldmapSpawner = true; // spawner.m_settings.m_worldmapSpawnerType = WorldmapSpawnerType.WorldBiomeMasks; // spawner.m_worldMapTerrain = worldMapTerrain; // spawner.FitToTerrain(); // spawner.UpdateMinMaxHeight(); // gsm.m_session.m_worldBiomeMaskSettings = spawner.m_settings; // } // else // { // Spawner spawner = spawnerObj.GetComponent<Spawner>(); // spawner.m_settings.m_isWorldmapSpawner = true; // spawner.m_worldMapTerrain = worldMapTerrain; // spawner.FitToTerrain(); // spawner.UpdateMinMaxHeight(); // gsm.m_session.m_worldBiomeMaskSettings = spawner.m_settings; // } // gsm.SwitchToWorldMap(); //#if UNITY_EDITOR // Selection.activeGameObject = spawnerObj; //#endif // } public static GameObject GetOrCreateWorldMapStamper() { //Create or find the stamper GameObject stamperObj = GameObject.Find(GaiaConstants.worldMapStamper); if (stamperObj == null) { stamperObj = new GameObject(GaiaConstants.worldMapStamper); GameObject worldMapObj = GaiaUtils.GetOrCreateWorldDesigner(); stamperObj.transform.parent = worldMapObj.transform; Stamper stamper = stamperObj.AddComponent <Stamper>(); stamper.m_settings = ScriptableObject.CreateInstance <StamperSettings>(); stamper.m_settings.m_isWorldmapStamper = true; stamper.m_recordUndo = false; stamper.UpdateMinMaxHeight(); //stamper.m_seaLevel = m_settings.m_currentDefaults.m_seaLevel; stamper.FitToTerrain(); } else { Stamper stamper = stamperObj.GetComponent <Stamper>(); stamper.m_settings.m_isWorldmapStamper = true; stamper.m_recordUndo = false; stamper.UpdateMinMaxHeight(); //stamper.m_seaLevel = m_settings.m_currentDefaults.m_seaLevel; stamper.FitToTerrain(); } Terrain worldMapTerrain = TerrainHelper.GetWorldMapTerrain(); if (worldMapTerrain != null) { stamperObj.transform.position = worldMapTerrain.transform.position + worldMapTerrain.terrainData.size / 2f; } return(stamperObj); }
public void SwitchToWorldMap() { ShowWorldMapTerrain = true; ShowLocalTerrain = false; if (!Application.isPlaying) { UpdateTerrainLoadState(); } #if UNITY_EDITOR Selection.activeGameObject = GaiaUtils.GetOrCreateWorldDesigner(); #endif }
public static void ShowWorldMapStampSpawner() { Terrain worldMapTerrain = TerrainHelper.GetWorldMapTerrain(); if (worldMapTerrain == null) { Debug.LogError("No world map created yet! Please create a world map first before opening the random terrain generator"); return; } GaiaSessionManager gsm = GaiaSessionManager.GetSessionManager(false); //Get the Gaia Settings GaiaSettings settings = GaiaUtils.GetGaiaSettings(); //Create or find the stamper GameObject spawnerObj = GaiaUtils.GetOrCreateWorldDesigner(); Spawner spawner = spawnerObj.GetComponent <WorldDesigner>(); if (spawner == null) { spawner = spawnerObj.AddComponent <WorldDesigner>(); if (settings != null) { if (settings.m_defaultStampSpawnSettings != null) { spawner.LoadSettings(settings.m_defaultStampSpawnSettings); } } spawner.m_settings.m_isWorldmapSpawner = true; spawner.m_worldMapTerrain = worldMapTerrain; //set up the export settings with the current Gaia Settings / defaults spawner.m_worldCreationSettings.m_targeSizePreset = settings.m_targeSizePreset; spawner.m_worldCreationSettings.m_xTiles = settings.m_tilesX; spawner.m_worldCreationSettings.m_zTiles = settings.m_tilesZ; spawner.m_worldTileSize = GaiaUtils.IntToEnvironmentSize(settings.m_currentDefaults.m_terrainSize); spawner.m_worldCreationSettings.m_tileSize = settings.m_currentDefaults.m_terrainSize; spawner.m_worldCreationSettings.m_tileHeight = settings.m_currentDefaults.m_terrainHeight; spawner.m_worldCreationSettings.m_createInScene = settings.m_createTerrainScenes; spawner.m_worldCreationSettings.m_autoUnloadScenes = settings.m_unloadTerrainScenes; spawner.m_worldCreationSettings.m_applyFloatingPointFix = settings.m_floatingPointFix; spawner.m_worldCreationSettings.m_qualityPreset = settings.m_currentEnvironment; if (spawner.m_worldCreationSettings.m_gaiaDefaults == null) { spawner.m_worldCreationSettings.m_gaiaDefaults = settings.m_currentDefaults; } spawner.StoreWorldSize(); //spawner.StoreHeightmapResolution(); //Check if we do have an existing terrain already, if yes, we would want to re-use it for the world map -> terrain export if (GaiaUtils.HasTerrains()) { spawner.m_useExistingTerrainForWorldMapExport = true; } else { //No terrains yet - set up the terrain tiles in the session according to the current world creation settings //so that the stamp previews will come out right. TerrainLoaderManager.Instance.TerrainSceneStorage.m_terrainTilesX = settings.m_tilesX; TerrainLoaderManager.Instance.TerrainSceneStorage.m_terrainTilesZ = settings.m_tilesZ; } spawner.FitToTerrain(); spawner.UpdateMinMaxHeight(); } else { spawner.m_settings.m_isWorldmapSpawner = true; spawner.m_worldMapTerrain = worldMapTerrain; spawner.FitToTerrain(); spawner.UpdateMinMaxHeight(); } gsm.m_session.m_worldBiomeMaskSettings = spawner.m_settings; TerrainLoaderManager.Instance.SwitchToWorldMap(); #if UNITY_EDITOR Selection.activeGameObject = spawnerObj; #endif }