diff options
author | dusoleil <howcansocksbereal@gmail.com> | 2022-09-18 19:38:35 -0400 |
---|---|---|
committer | dusoleil <howcansocksbereal@gmail.com> | 2022-09-18 19:42:01 -0400 |
commit | 32bf9d2024362d45dc351c8f1d0b3b301caf1131 (patch) | |
tree | fb6540bce94cb55c6123ecfe1327abeabea2925f /World.gd | |
parent | ffc92ed12c6e680776d355ff9fcef70e5e28d7c8 (diff) | |
download | game_jam49-32bf9d2024362d45dc351c8f1d0b3b301caf1131.tar.gz game_jam49-32bf9d2024362d45dc351c8f1d0b3b301caf1131.zip |
Organize World Gen Stuff
Diffstat (limited to 'World.gd')
-rw-r--r-- | World.gd | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/World.gd b/World.gd deleted file mode 100644 index af2ba6a..0000000 --- a/World.gd +++ /dev/null @@ -1,77 +0,0 @@ -extends Spatial - -export(NodePath) var traveler = null -onready var _traveler = get_node(traveler) -export var acceleration = 10.0 - -onready var lod_distance = $"ChunkRenderDistance" -onready var lod_mid = $"ChunkRenderMid" -onready var lod_close = $"ChunkRenderClose" - -onready var chunk_render_distance = lod_distance.get_node("Radius").shape.radius - -onready var chunk_half_size = $"Chunks/Chunk/Size".shape.radius -onready var chunk_size = chunk_half_size * 2.0 - -func _ready(): - ChunkLoader.world = self - ChunkGen.chunk_half_size = self.chunk_half_size - -func _on_ChunkRenderDistance_area_entered(area:Area): - if area.lod < area.LOD.DISTANCE: - area.lod = area.LOD.DISTANCE - area.lod_update() - -func _on_ChunkRenderMid_area_entered(area:Area): - if area.lod < area.LOD.MID: - area.lod = area.LOD.MID - area.lod_update() - -func _on_ChunkRenderClose_area_entered(area:Area): - if area.lod < area.LOD.CLOSE: - area.lod = area.LOD.CLOSE - area.lod_update() - -func _on_ChunkRenderDistance_area_exited(area:Area): - area.queue_free() - -func _on_ChunkRenderMid_area_exited(area:Area): - area.lod = area.LOD.DISTANCE - area.lod_update() - -func _on_ChunkRenderClose_area_exited(area:Area): - area.lod = area.LOD.MID - area.lod_update() - -func travel(direction:Vector3): - var heading = _traveler.global_transform.basis - heading = Basis(Vector3.UP*heading.get_euler().y) - direction = -direction - direction = heading * direction - direction = direction.normalized() - $"Chunks".add_central_force(direction*acceleration) - -func _physics_process(_state): - chunk_process() - var stick = Input.get_axis("ship_down","ship_up") - if stick != 0.0: - self.travel(Vector3.FORWARD*stick) - -func v2_coords(coords:Vector3): - return Vector2(coords.x,coords.z) - -func chunk_coords(coords:Vector2): - return coords.snapped(Vector2(chunk_size,chunk_size)) - -func chunk_process(): - var gen_center = -v2_coords($"Chunks".transform.origin) - var gen_radius = chunk_render_distance - var gen_radius_rounded = stepify(gen_radius, chunk_size) - for x in range(-gen_radius_rounded, gen_radius_rounded+chunk_size, chunk_size): - for y in range(-gen_radius_rounded, gen_radius_rounded+chunk_size, chunk_size): - var gen_coords = Vector2(x,y) - if gen_coords.length() > gen_radius: - continue - var coords = chunk_coords(gen_coords + gen_center) - ChunkLoader.add_chunk(coords) - ChunkLoader.chunk_update() |