Added door opening methods to level. Minor fixes

This commit is contained in:
2024-09-15 02:06:24 +03:00
parent 6776086c3e
commit e87e272a8c
3 changed files with 50 additions and 29 deletions
+44 -23
View File
@@ -1,37 +1,37 @@
extends Node2D
@export_range(2, 17) var top_door_x: int = 2
@export_range(2, 17) var bottom_door_x: int = 2
@export_range(2, 17) var top_door_x := 2
@export_range(2, 17) var bottom_door_x := 2
const DOOR = preload("res://door.tscn")
const DOOR := preload("res://door.tscn")
const TOP_LEFT_FOREST = Vector2i(0,0)
const TOP_RIGHT_FOREST = Vector2i(3,0)
const BOTTOM_LEFT_FOREST = Vector2i(0,3)
const BOTTOM_RIGHT_FOREST = Vector2i(3,3)
const TOP_LEFT_FOREST := Vector2i(0,0)
const TOP_RIGHT_FOREST := Vector2i(3,0)
const BOTTOM_LEFT_FOREST := Vector2i(0,3)
const BOTTOM_RIGHT_FOREST := Vector2i(3,3)
const TOP_FORESTS = [ Vector2i(1,0), Vector2i(2,0), Vector2i(1,1), Vector2i(2,1) ]
const BOTTOM_FORESTS = [ Vector2i(1,2), Vector2i(2,2), Vector2i(1,3), Vector2i(2,3) ]
const TOP_FORESTS := [ Vector2i(1,0), Vector2i(2,0), Vector2i(1,1), Vector2i(2,1) ]
const BOTTOM_FORESTS := [ Vector2i(1,2), Vector2i(2,2), Vector2i(1,3), Vector2i(2,3) ]
const LEFT_FORESTS = [ Vector2i(0,1), Vector2i(0,2) ]
const RIGHT_FORESTS = [ Vector2i(3,1), Vector2i(3,2) ]
const LEFT_FORESTS := [ Vector2i(0,1), Vector2i(0,2) ]
const RIGHT_FORESTS := [ Vector2i(3,1), Vector2i(3,2) ]
const TOP_LEFT_DOOR = Vector2i(4,2)
const TOP_RIGHT_DOOR = Vector2i(4,3)
const BOTTOM_LEFT_DOOR = Vector2i(4,0)
const BOTTOM_RIGHT_DOOR = Vector2i(4,1)
const TOP_LEFT_DOOR := Vector2i(4,2)
const TOP_RIGHT_DOOR := Vector2i(4,3)
const BOTTOM_LEFT_DOOR := Vector2i(4,0)
const BOTTOM_RIGHT_DOOR := Vector2i(4,1)
const CORNER_FIELDS = [ Vector2i(4,2), Vector2i(4,3) ]
const TOP_FIELDS = [
const CORNER_FIELDS := [ Vector2i(4,2), Vector2i(4,3) ]
const TOP_FIELDS := [
Vector2i(0,2), Vector2i(1,2), Vector2i(2,2), Vector2i(0,3), Vector2i(1,3), Vector2i(2,3),
]
const LEFT_FIELDS = [
const LEFT_FIELDS := [
Vector2i(3,0), Vector2i(4,0), Vector2i(3,1), Vector2i(4,1), Vector2i(3,2), Vector2i(3,3),
]
const CENTER_FIELDS = [
const CENTER_FIELDS := [
Vector2i(0,0), Vector2i(1,0), Vector2i(2,0), Vector2i(0,1), Vector2i(1,1), Vector2i(2,1),
]
@@ -78,8 +78,8 @@ func _create_field() -> void:
for j in range(2, 10):
$TileMapLayer.set_cell(Vector2i(i,j), 1, CENTER_FIELDS[randi() % CENTER_FIELDS.size()])
func _create_top_door():
const y = 0
func _create_top_door() -> void:
const y := 0
$TileMapLayer.set_cell(Vector2i(top_door_x-1,y), 0, TOP_LEFT_DOOR)
$TileMapLayer.set_cell(Vector2i(top_door_x,y), 1, LEFT_FIELDS[randi() % LEFT_FIELDS.size()])
$TileMapLayer.set_cell(Vector2i(top_door_x,y+1), 1, CENTER_FIELDS[randi() % LEFT_FIELDS.size()])
@@ -98,7 +98,7 @@ func _create_top_door():
$CollisionBoxTopRight.position.x -= $CollisionBoxTopRight.shape.size.x/2 - 8
func _create_bottom_door():
func _create_bottom_door() -> void:
const y = 10
$TileMapLayer.set_cell(Vector2i(bottom_door_x-1,y), 0, BOTTOM_LEFT_DOOR)
$TileMapLayer.set_cell(Vector2i(bottom_door_x,y), 1, LEFT_FIELDS[randi() % LEFT_FIELDS.size()])
@@ -110,9 +110,30 @@ func _create_bottom_door():
bottom_door.position = Vector2i(bottom_door_x,y)*16
add_child(bottom_door)
$CollisionBoxBottomLeft.shape.size.x = (bottom_door_x - 1) * 16
$CollisionBoxBottomLeft.position.x += $CollisionBoxBottomLeft.shape.size.x/2 - 8
$CollisionBoxBottomRight.shape.size.x = (20 - bottom_door_x - 2) * 16
$CollisionBoxBottomRight.position.x -= $CollisionBoxBottomRight.shape.size.x/2 - 8
func open_top_door() -> void:
if top_door:
top_door.open()
func close_top_door() -> void:
if top_door:
top_door.close()
func open_bottom_door() -> void:
if bottom_door:
bottom_door.open()
func close_bottom_door() -> void:
if bottom_door:
bottom_door.close()