Godot Version
4.4.1
Question
I have been able to figure out months ago how to use a noise generator to place terrain tiles on each coordinate individually. I decided to start tinkering with this function again, but to include transition tiles. I figured I can do so with a tilemap. Screenshot of what I have below:
However, when I start the game, it just loads indefinitely. This has been a consistent issue, despite multiple attempts. I have no idea why. Code below:
extends Node2D
@export var noise_height_text : NoiseTexture2D
var noise = FastNoiseLite.new()
@onready var terrain: TileMapLayer = $Terrain
var width: float = 300
var height: float = 300
var grass_threshold: float = -0.22
# Called when the node enters the scene tree for the first time.
func _ready():
generate_world()
func generate_world():
#Sets the seed number to a random 32 digit integer, allowing for new terrain to be generated
noise.seed = randi()
var cells = []
var cells2 = []
for x in range (-width/2, width/2):
for y in range (-height/2, height/2):
#Gets noise value to determine which tile to place
var noise_value: float = noise.get_noise_2d(x,y)
#Uses noise value to place grass tile
if noise_value >= grass_threshold:
cells.append(Vector2i(x, y))
terrain.set_cells_terrain_connect(cells, 0, 0)
#Uses noice value to place sand tile
elif noise_value > -0.3 and noise_value < grass_threshold:
#Determines which sand tile to use
cells2.append(Vector2i(x, y))
terrain.set_cells_terrain_connect(cells2, 0, 0)
func _on_generate_world_pressed():
generate_world()