Beispiel #1
0
 void OnValidate()
 {
     if (hydraulicErosion == null)
     {
         hydraulicErosion = GetComponent <HydraulicErosion>();
     }
 }
Beispiel #2
0
    public override void OnInspectorGUI()
    {
        terrainMapGenerator = (TerrainMapGenerator)target;
        heightMapGenerator  = terrainMapGenerator.GetComponent <HeightMapGenerator>();
        hydraulicErosion    = terrainMapGenerator.GetComponent <HydraulicErosion>();
        forestGenerator     = terrainMapGenerator.GetComponent <ForestGenerator>();

        DrawDefaultInspector();

        // Buttons
        EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
        if (GUILayout.Button("Randomize"))
        {
            Randomize();
            terrainMapGenerator.Clear();
            terrainMapGenerator.Generate(loadAllObjects: true);
        }

        EditorGUILayout.LabelField("", GUI.skin.horizontalSlider);
        if (GUILayout.Button("Generate"))
        {
            terrainMapGenerator.Generate(loadAllObjects: true);
        }

        if (GUILayout.Button("Clear"))
        {
            terrainMapGenerator.Clear();
        }

        GUILayout.Label("Save Level");
        EditorGUILayout.BeginHorizontal();
        levelNameSave = EditorGUILayout.TextField(levelNameSave);
        if (GUILayout.Button("Save"))
        {
            SaveTerrainData(levelNameSave);
        }
        EditorGUILayout.EndHorizontal();


        string[] saveFiles = GetSaveFiles();

        if (saveFiles.Length > 0)
        {
            GUILayout.Label("Load Level");
            EditorGUILayout.BeginHorizontal();

            levelNameIndex = EditorGUILayout.Popup(levelNameIndex, saveFiles);
            levelNameLoad  = saveFiles[levelNameIndex];

            if (GUILayout.Button("Load"))
            {
                LoadTerrainData(levelNameLoad);
                terrainMapGenerator.Generate(loadAllObjects: true);
            }

            EditorGUILayout.EndHorizontal();
        }
    }
    void OnValidate()
    {
        // Get components
        if (heightMapGenerator == null)
        {
            heightMapGenerator = GetComponent <HeightMapGenerator>();
        }

        if (forestGenerator == null)
        {
            forestGenerator = GetComponent <ForestGenerator>();
        }

        if (hydraulicErosion == null)
        {
            hydraulicErosion = GetComponent <HydraulicErosion>();
        }

        // Round chunk grid width to nearest odd number >= 1
        if (chunkGridWidth % 2 == 0)
        {
            chunkGridWidth = (int)Mathf.Round(chunkGridWidth / 2) * 2 + 1;
        }

        // Update component settings
        heightMapGenerator.averageMapDepth       = averageMapDepth;
        heightMapGenerator.heightMapSettingsList = heightMapSettingsList;

        forestGenerator.settings = forestGeneratorSettings;

        hydraulicErosion.settings = hydraulicErosionSettings;

        if (hydraulicErosion.settings.useHydraulicErosion && chunkGridWidth > 1)
        {
            Debug.LogWarning("Can only use Hydraulic Erosion for single chunks");
            hydraulicErosion.settings.useHydraulicErosion = false;
        }
    }
Beispiel #4
0
 private void OnEnable()
 {
     m_heScript = (HydraulicErosion)target;
 }
 public ErosionGenerator(LocalTerrain localTerrain)
 {
     lt = localTerrain;
     he = new HydraulicErosion(this);
     te = new ThermalErosion(this);
 }