The setcellv function returns the error "Invalid type in function 'setcellv' in base 'TileMap'. Cannot convert argument 2 from Nil to int"
Here is my code:
extends Node2D
const WIDTH = 500
const HEIGHT = 500
const TILES = {
'grass': 0,
'water': 1,
'dirt': 2,
'tree': 3,
'bush': 4
}
var grasssimplexnoise
var riversimplexnoise
func ready():
randomize()
#Generate Seed
var Seed = randi()
#Create grass & bushes perlin map
grasssimplexnoise = OpenSimplexNoise.new()
grasssimplex_noise.seed = Seed
grass_simplex_noise.octaves = 4
grass_simplex_noise.period = 8
grass_simplex_noise.lacunarity = 2
grass_simplex_noise.persistence = 0.5
#Replace Tiles
_generate_world()
#Create River perlin worms
river_simplex_noise = OpenSimplexNoise.new()
river_simplex_noise.seed = Seed
river_simplex_noise.octaves = 1
river_simplex_noise.period = 1
river_simplex_noise.lacunarity = 1
river_simplex_noise.persistence = 1
#Replace Tiles
_generate_rivers()
func generateworld():
for x in WIDTH:
for y in HEIGHT:
$TileMap.setcellv(Vector2(x - WIDTH / 2, y - HEIGHT / 2), placegrassandbush(grasssimplexnoise.getnoise2d(float(x), float(y))))
$TileMap.updatebitmaskregion()
func placegrassandbush(noisesample):
if noise_sample < 0.4:
return TILES.grass
return TILES.bush
func generaterivers():
for x in WIDTH:
for y in HEIGHT:
$TileMap.setcellv(Vector2(x - WIDTH / 2, y - HEIGHT / 2), placewater(riversimplexnoise.getnoise2d(float(x), float(y))))
$TileMap.updatebitmaskregion()
func placewater(noisesample):
if noise_sample < 0.7:
return TILES.water
The grasssimplexnoise works fine but the problem lies in the riversimplexnoise
Thank you in advance