summaryrefslogtreecommitdiffstats
path: root/ChunkGen.gd
blob: 6e1f0ebc3ac2fe959239a098ec869a84240157a3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
extends Node

var chunk_half_size setget _set_chunk_size
var chunk_size

func _set_chunk_size(val):
    chunk_half_size = val
    chunk_size = val * 2.0

onready var noise = OpenSimplexNoise.new()

func _ready():
    randomize()
    noise.seed = randi()
    noise.octaves = 4
    noise.period = 64
    noise.persistence = 0.001
    noise.lacunarity = 2.0

func gen_chunk(chunk):
    var gen_tree = Spatial.new()
    gen_tree.name = "gen_tree"
    chunk.add_child(gen_tree)

func v2_coords(coords:Vector3):
    return Vector2(coords.x,coords.z)

func v3_coords(coords:Vector2):
    return Vector3(coords.x,0.0,coords.y)

func iterate_chunk(chunk,step:Vector2,cb:FuncRef):
    var chunk_size_rounded = Vector2(chunk_half_size,chunk_half_size).snapped(step)
    for x in range(-chunk_size_rounded.x,chunk_size_rounded.x,step.x):
        for y in range(-chunk_size_rounded.y,chunk_size_rounded.y,step.y):
            cb.call_func(chunk,Vector2(x,y))