Inheritance: MonoBehaviour
    public void DrawMapInEditor()
    {
        MapData mapData = GenerateMapData(Vector2.zero);

        MapDisplay display = FindObjectOfType <MapDisplay>();

        if (drawMode == DrawMode.NoiseMap)
        {
            display.DrawTexture(TextureGenerator.TextureFromHeightMap(mapData.heightMap));
        }
        else if (drawMode == DrawMode.ColourMap)
        {
            display.DrawTexture(TextureGenerator.TextureFromColourMap(mapData.colourMap, mapChunkSize, mapChunkSize));
        }
        else if (drawMode == DrawMode.Mesh)
        {
            display.DrawMesh(MeshGenerator.GenerateTerrainMesh(mapData.heightMap, meshHeightMultiplier, meshHeightCurve, editorPreviewLOD), TextureGenerator.TextureFromColourMap(mapData.colourMap, mapChunkSize, mapChunkSize));
            if (generateGameObjects)
            {
                GenerateGameObjects genGOScript = display.meshRenderer.transform.gameObject.GetComponent <GenerateGameObjects>();
                if (genGOScript == null)
                {
                    genGOScript = display.meshRenderer.transform.gameObject.AddComponent <GenerateGameObjects>();
                }
                genGOScript.seed = seed;
                genGOScript.StartGenerateObjects();
                genGOScript.offset        = offset;
                genGOScript.levelOfDetail = editorPreviewLOD;
                genGOScript.mapData       = mapData;
                genGOScript.genClouds     = generateClouds;
            }
        }
        else if (drawMode == DrawMode.Falloff)
        {
            display.DrawTexture(TextureGenerator.TextureFromHeightMap(FalloffGenerator.GenerateFalloffMap(mapChunkSize)));
        }

        if (generateWater)
        {
            bool genNewWater = true;
            foreach (Transform child in gameObject.transform)
            {
                if (child.tag == "Water")
                {
                    genNewWater = false;
                }
            }
            if (genNewWater)
            {
                EndlessTerrain endTer   = GetComponent <EndlessTerrain>();
                GameObject     waterIns = GameObject.Instantiate(endTer.waterPlane, new Vector3(0, -0.22f * EndlessTerrain.scale, 0), Quaternion.identity);
                waterIns.transform.parent = gameObject.transform;
                waterIns.AddComponent <DisableOnStartup>();
            }
        }
    }
Beispiel #2
0
 void Awake()
 {
     mapGen = GameObject.Find("Map Generator").GetComponent <MapGenerator>();
     biomes = FindObjectOfType <Biomes>();
     endlessTerrainScript = GameObject.Find("Map Generator").GetComponent <EndlessTerrain>();
     chunkSize            = MapGenerator.mapChunkSize;
     heights = Noise.GenerateNoiseMap(chunkSize * mapSize, chunkSize * mapSize, mapGen.seed, mapGen.noiseScale, mapGen.octaves, mapGen.persistance, mapGen.lacunarity, Vector2.zero + mapGen.offset, mapGen.normalizeMode);
     ScaleHeights();
     moisture = biomes.GenerateMoisture();
 }
    private void Awake()
    {
        visibleTerrainChunks   = new List <TerrainChunk>();
        terrainChunkDictionary = new Dictionary <Vector2, TerrainChunk>();

        instance             = this;
        startChunkCountSetup = 0;

        mapGenerator = FindObjectOfType <MapGenerator>();
        scenary      = FindObjectOfType <Scenary>();
    }
 void Awake()
 {
     if (instance != null)
     {
         if (instance != this)
         {
             Destroy(gameObject);
         }
     }
     else
     {
         instance = this;
     }
 }
Beispiel #5
0
    public static void PaintTilemap(Tilemap tilemap, float[,] heightMap, TilemapBiomeData tilemapBiomeData, TilemapType tilemapType)
    {
        MapGenerator   mapGenerator   = MapGenerator.instance;
        EndlessTerrain endlessTerrain = EndlessTerrain.instance;
        Vector3Int     tileCoord;

        for (int x = tilemap.cellBounds.xMin; x < tilemap.cellBounds.xMax; x++)
        {
            for (int y = tilemap.cellBounds.yMin; y < tilemap.cellBounds.yMax; y++)
            {
                tileCoord = new Vector3Int(x, y, 0);
                tilemap.SetTile(tileCoord, DetermineTile(tilemap, heightMap, tileCoord, tilemapBiomeData, mapGenerator, tilemapType));
            }
        }
    }
Beispiel #6
0
    // Use this for initialization
    void Start()
    {
        terrainTrail = GetComponent <TerrainTrail>();
        EndlessTerrain endlessTerrain = FindObjectOfType <EndlessTerrain>();

        endlessTerrain.doneLoadingLevel += StartMouseTerrainTrail;

        SendSliderValue sendHeightSliderValue = GameObject.FindGameObjectWithTag(Tags.HeightSlider.ToString()).GetComponent <SendSliderValue>();

        sendHeightSliderValue.OnValueChange += ChangeTrailHeight;
        terrainTrail.lineHeight              = (int)sendHeightSliderValue.GetSliderValue();

        SendSliderValue sendWidthSliderValue = GameObject.FindGameObjectWithTag(Tags.WidthSlider.ToString()).GetComponent <SendSliderValue>();

        sendWidthSliderValue.OnValueChange += ChangeTrailWidth;
        terrainTrail.lineWidth              = (int)sendWidthSliderValue.GetSliderValue();
    }
Beispiel #7
0
        public TerrainChunk(EndlessTerrain endlessTerrain, TerrainGenerator terrainGenerator, TerrainSettings terrainSettings, Vector2Int chunkCoord, Material material, Transform parent)
        {
            this.endlessTerrain = endlessTerrain;

            gameObject       = new GameObject("TerrainChunk");
            gameObject.layer = LayerMask.NameToLayer("Terrain");
            var meshObj = new GameObject("Mesh");

            meshObj.transform.SetParent(gameObject.transform);
            meshObj.layer = LayerMask.NameToLayer("Terrain");

            renderer     = meshObj.AddComponent <MeshRenderer>();
            meshFilter   = meshObj.AddComponent <MeshFilter>();
            meshCollider = meshObj.AddComponent <MeshCollider>();

            renderer.material = material;
            Vector2 offset = Vector2.Scale(chunkCoord, terrainSettings.unitSize);

            terrainGenerator.RequestTerrainData(terrainSettings, offset, ReceiveTerrainData);

            gameObject.transform.parent        = parent;
            gameObject.transform.localPosition = offset.ToVector3Z() * endlessTerrain.Scale;
            meshObj.transform.localScale       = Vector3.one * endlessTerrain.Scale;
        }
Beispiel #8
0
 void OnEnable()
 {
     endlessTerrain = GetComponent <EndlessTerrain>();
     detailLevels[detailLevels.Length - 1].visibleDstThreshold = endlessTerrain.MaxViewDistance;
 }
 void OnEnable()
 {
     endlessTerrain = GetComponent <EndlessTerrain>();
     endlessTerrain.chunkBeingDestroyed += DestroyFarAwayChunk;
 }
 void Start()
 {
     endlessTerrain = GetComponent <EndlessTerrain>();
     GetComponent <ChildsClearer>().ClearAllChilds(transform);
 }