Added door opening methods to level. Minor fixes
This commit is contained in:
+3
-3
@@ -10,12 +10,12 @@ enum DoorState {OPENED, CLOSED, OPENING, CLOSING}
|
|||||||
@export var state: DoorState
|
@export var state: DoorState
|
||||||
|
|
||||||
|
|
||||||
var ANIMATIONS_BY_TYPE : Dictionary = {
|
const ANIMATIONS_BY_TYPE := {
|
||||||
DoorType.BOTTOM_DOOR: "bottom_door",
|
DoorType.BOTTOM_DOOR: "bottom_door",
|
||||||
DoorType.TOP_DOOR: "top_door",
|
DoorType.TOP_DOOR: "top_door",
|
||||||
}
|
}
|
||||||
|
|
||||||
var ANIMATIONS_BY_STATE : Dictionary = {
|
const ANIMATIONS_BY_STATE := {
|
||||||
DoorState.OPENED: "opened",
|
DoorState.OPENED: "opened",
|
||||||
DoorState.CLOSED: "closed",
|
DoorState.CLOSED: "closed",
|
||||||
DoorState.OPENING: "opening",
|
DoorState.OPENING: "opening",
|
||||||
@@ -33,7 +33,7 @@ func _ready() -> void:
|
|||||||
|
|
||||||
|
|
||||||
func _play_animation() -> void:
|
func _play_animation() -> void:
|
||||||
var animation : String = "%s_%s" % [
|
var animation := "%s_%s" % [
|
||||||
ANIMATIONS_BY_TYPE[type],
|
ANIMATIONS_BY_TYPE[type],
|
||||||
ANIMATIONS_BY_STATE[state]
|
ANIMATIONS_BY_STATE[state]
|
||||||
]
|
]
|
||||||
|
|||||||
+44
-23
@@ -1,37 +1,37 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
@export_range(2, 17) var top_door_x: int = 2
|
@export_range(2, 17) var top_door_x := 2
|
||||||
@export_range(2, 17) var bottom_door_x: int = 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_LEFT_FOREST := Vector2i(0,0)
|
||||||
const TOP_RIGHT_FOREST = Vector2i(3,0)
|
const TOP_RIGHT_FOREST := Vector2i(3,0)
|
||||||
const BOTTOM_LEFT_FOREST = Vector2i(0,3)
|
const BOTTOM_LEFT_FOREST := Vector2i(0,3)
|
||||||
const BOTTOM_RIGHT_FOREST = Vector2i(3,3)
|
const BOTTOM_RIGHT_FOREST := Vector2i(3,3)
|
||||||
|
|
||||||
const TOP_FORESTS = [ Vector2i(1,0), Vector2i(2,0), Vector2i(1,1), Vector2i(2,1) ]
|
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 BOTTOM_FORESTS := [ Vector2i(1,2), Vector2i(2,2), Vector2i(1,3), Vector2i(2,3) ]
|
||||||
|
|
||||||
const LEFT_FORESTS = [ Vector2i(0,1), Vector2i(0,2) ]
|
const LEFT_FORESTS := [ Vector2i(0,1), Vector2i(0,2) ]
|
||||||
const RIGHT_FORESTS = [ Vector2i(3,1), Vector2i(3,2) ]
|
const RIGHT_FORESTS := [ Vector2i(3,1), Vector2i(3,2) ]
|
||||||
|
|
||||||
const TOP_LEFT_DOOR = Vector2i(4,2)
|
const TOP_LEFT_DOOR := Vector2i(4,2)
|
||||||
const TOP_RIGHT_DOOR = Vector2i(4,3)
|
const TOP_RIGHT_DOOR := Vector2i(4,3)
|
||||||
const BOTTOM_LEFT_DOOR = Vector2i(4,0)
|
const BOTTOM_LEFT_DOOR := Vector2i(4,0)
|
||||||
const BOTTOM_RIGHT_DOOR = Vector2i(4,1)
|
const BOTTOM_RIGHT_DOOR := Vector2i(4,1)
|
||||||
|
|
||||||
|
|
||||||
const CORNER_FIELDS = [ Vector2i(4,2), Vector2i(4,3) ]
|
const CORNER_FIELDS := [ Vector2i(4,2), Vector2i(4,3) ]
|
||||||
const TOP_FIELDS = [
|
const TOP_FIELDS := [
|
||||||
Vector2i(0,2), Vector2i(1,2), Vector2i(2,2), Vector2i(0,3), Vector2i(1,3), Vector2i(2,3),
|
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),
|
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),
|
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):
|
for j in range(2, 10):
|
||||||
$TileMapLayer.set_cell(Vector2i(i,j), 1, CENTER_FIELDS[randi() % CENTER_FIELDS.size()])
|
$TileMapLayer.set_cell(Vector2i(i,j), 1, CENTER_FIELDS[randi() % CENTER_FIELDS.size()])
|
||||||
|
|
||||||
func _create_top_door():
|
func _create_top_door() -> void:
|
||||||
const y = 0
|
const y := 0
|
||||||
$TileMapLayer.set_cell(Vector2i(top_door_x-1,y), 0, TOP_LEFT_DOOR)
|
$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, LEFT_FIELDS[randi() % LEFT_FIELDS.size()])
|
||||||
$TileMapLayer.set_cell(Vector2i(top_door_x,y+1), 1, CENTER_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
|
$CollisionBoxTopRight.position.x -= $CollisionBoxTopRight.shape.size.x/2 - 8
|
||||||
|
|
||||||
|
|
||||||
func _create_bottom_door():
|
func _create_bottom_door() -> void:
|
||||||
const y = 10
|
const y = 10
|
||||||
$TileMapLayer.set_cell(Vector2i(bottom_door_x-1,y), 0, BOTTOM_LEFT_DOOR)
|
$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()])
|
$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
|
bottom_door.position = Vector2i(bottom_door_x,y)*16
|
||||||
add_child(bottom_door)
|
add_child(bottom_door)
|
||||||
|
|
||||||
|
|
||||||
$CollisionBoxBottomLeft.shape.size.x = (bottom_door_x - 1) * 16
|
$CollisionBoxBottomLeft.shape.size.x = (bottom_door_x - 1) * 16
|
||||||
$CollisionBoxBottomLeft.position.x += $CollisionBoxBottomLeft.shape.size.x/2 - 8
|
$CollisionBoxBottomLeft.position.x += $CollisionBoxBottomLeft.shape.size.x/2 - 8
|
||||||
|
|
||||||
$CollisionBoxBottomRight.shape.size.x = (20 - bottom_door_x - 2) * 16
|
$CollisionBoxBottomRight.shape.size.x = (20 - bottom_door_x - 2) * 16
|
||||||
$CollisionBoxBottomRight.position.x -= $CollisionBoxBottomRight.shape.size.x/2 - 8
|
$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()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -4,20 +4,20 @@ extends StaticBody2D
|
|||||||
|
|
||||||
|
|
||||||
enum PickupType {CHERRY, FLY_AGARIC, GREEN_APPLE, RED_APPLE}
|
enum PickupType {CHERRY, FLY_AGARIC, GREEN_APPLE, RED_APPLE}
|
||||||
@export var type: PickupType
|
@export var type: PickupType = PickupType.RED_APPLE
|
||||||
|
|
||||||
enum PickupState {PREPARING, SHOWING_UP, IDLING, HIGHLIGHTING}
|
enum PickupState {PREPARING, SHOWING_UP, IDLING, HIGHLIGHTING}
|
||||||
@export var state: PickupState = PickupState.PREPARING
|
@export var state: PickupState = PickupState.PREPARING
|
||||||
|
|
||||||
|
|
||||||
var ANIMATIONS_BY_TYPE : Dictionary = {
|
const ANIMATIONS_BY_TYPE := {
|
||||||
PickupType.CHERRY: "cherry",
|
PickupType.CHERRY: "cherry",
|
||||||
PickupType.FLY_AGARIC: "fly_agaric",
|
PickupType.FLY_AGARIC: "fly_agaric",
|
||||||
PickupType.GREEN_APPLE: "green_apple",
|
PickupType.GREEN_APPLE: "green_apple",
|
||||||
PickupType.RED_APPLE: "red_apple",
|
PickupType.RED_APPLE: "red_apple",
|
||||||
}
|
}
|
||||||
|
|
||||||
var ANIMATIONS_BY_STATE : Dictionary = {
|
const ANIMATIONS_BY_STATE := {
|
||||||
PickupState.PREPARING: "preparing",
|
PickupState.PREPARING: "preparing",
|
||||||
PickupState.SHOWING_UP: "showing_up",
|
PickupState.SHOWING_UP: "showing_up",
|
||||||
PickupState.IDLING: "idling",
|
PickupState.IDLING: "idling",
|
||||||
|
|||||||
Reference in New Issue
Block a user