using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class perlinNoise : MonoBehaviour
{
    public int seed = 0;
    private float offsetX = 0;
    private float offsetY = 0;
    
    private float offsetX1 = 0;
    private float offsetY1 = 0;
    
    private float offsetX2 = 0;
    private float offsetY2 = 0;
    // Start is called before the first frame update
    void Start()
    {

        if(seed == -1) { seed = (int) (Random.value * 1000000000); }
        Debug.Log(seed);

        Random.InitState(seed);
        
        offsetX = Random.value;
        offsetY = Random.value;
        
        offsetX1 = Random.value;
        offsetY1 = Random.value;

        offsetX2 = Random.value;
        offsetY2 = Random.value;
        
    }
    
    public float getNoise(float x, float y, int size)
    {
        float density = size / 32;
        //Debug.Log(size);
        //Debug.Log(density);
        //Debug.Log(x + " " + y);
        x *= density;
        y *= density;

        float val1 = Mathf.PerlinNoise(x + offsetX, y + offsetY);
        float val2 = Mathf.PerlinNoise(x*2 + offsetX1, y*2 + offsetY1);
        float val3 = Mathf.PerlinNoise(x*8 + offsetX2, y*8 + offsetY2);
        

        float res = val1*0.7f+val2*0.4f+val3*0.3f;

        return res;
    }
    
}
