extends Node

enum GAME_SCENES {MAIN_MENU, INTRO_CUTSCENE, GAME, DEATH_SCREEN, END_SCREEN}
const GAME_SCENE_PATHS = {
	GAME_SCENES.MAIN_MENU : "res://scenes/gui/menus/main_menu.tscn",
	GAME_SCENES.INTRO_CUTSCENE : "res://scenes/gui/cutscenes/intro_cutscene.tscn",
	GAME_SCENES.GAME : "res://scenes/nodes/testing/maploading/play_area.tscn",
	#GAME_SCENES.GAME : "res://scenes/nodes/testing/maploading/boss_test.tscn",
	GAME_SCENES.DEATH_SCREEN : "res://scenes/gui/fullscreens/death_screen.tscn",
	GAME_SCENES.END_SCREEN : "res://scenes/gui/fullscreens/end_screen.tscn",
}

const SETTINGS_MENU = "SettingsMenu"
const PAUSE_MENU = "PauseMenu"
const IN_GAME_GUI = "InGameGUI"
const LEVER_DIALOGUES = "LeverDialogues"
const CREDITS = "Credits"

# recorded actions
enum RECORDED_ACTIONS {LEFT, RIGHT, UP, DOWN, ATTACK, TIME_SHIFT_TO_PRESENT, TIME_SHIFT_TO_PAST, RELEASE_LEFT, RELEASE_RIGHT, RELEASE_UP, RELEASE_DOWN, NOTHING}

# time shift
enum TIME {PRESENT, PAST}

#player health bar
enum HEALTH_BAR_ICON_STATE {FULL, EMPTY}
const HEALTH_BAR_ICON = "res://scenes/gui/in_game_gui/health_bar/health_bar_icon.tscn"
const HEALTH_BAR_ICONS = {
	HEALTH_BAR_ICON_STATE.FULL : "res://assets/icons/health_full_icon.png",
	HEALTH_BAR_ICON_STATE.EMPTY : "res://assets/icons/health_empty_icon.png",
}

enum INPUT_TYPE {KEYBOARD, PLAYSTATION, XBOX, NINTENDO}

enum BOSS_ACTIONS {NOTHING, MOVEMENT, PREPARE_ATTACK, PERFORM_ATTACK, ATTACK_COOLDOWN, TIME_SHIFT_TO_PRESENT, TIME_SHIFT_TO_PAST, STUNNED_START, STUNNED_END}

enum DIALOGUE_ACTIONS {TEXT, ANIMATION}

enum KEYBOARD_BUTTONS {C, E, F, Q, R, V, MOUSE_LEFT, MOUSE_RIGHT}
enum PS_BUTTONS {CROSS, SQUARE, TRIANGLE, CIRCLE, L1, L2, R1, R2}
enum XBOX_BUTTONS {A, X, Y, B, LB, LT, RB, RT}
const KEYBOARD_BUTTON_ICONS_0 = {
	KEYBOARD_BUTTONS.C : "res://assets/icons/buttons/keyboard_q.png",
	KEYBOARD_BUTTONS.E : "res://assets/icons/buttons/mouse_left.png",
	KEYBOARD_BUTTONS.F : "res://assets/icons/buttons/keyboard_f.png",
	KEYBOARD_BUTTONS.Q : "res://assets/icons/buttons/keyboard_e.png",
	KEYBOARD_BUTTONS.R : "res://assets/icons/buttons/keyboard_c.png",
	KEYBOARD_BUTTONS.V : "res://assets/icons/buttons/keyboard_v.png",
	KEYBOARD_BUTTONS.MOUSE_LEFT : "res://assets/icons/buttons/keyboard_v.png",
	KEYBOARD_BUTTONS.MOUSE_RIGHT : "res://assets/icons/buttons/mouse_right.png",
}
###
const KEYBOARD_BUTTON_ICONS = {
	KEYBOARD_BUTTONS.C : "res://assets/icons/buttons/xbox_a.png",
	KEYBOARD_BUTTONS.E : "res://assets/icons/buttons/ps_cross.png",
	KEYBOARD_BUTTONS.F : "res://assets/icons/buttons/keyboard_f.png",
	KEYBOARD_BUTTONS.Q : "res://assets/icons/buttons/xbox_b.png",
	KEYBOARD_BUTTONS.R : "res://assets/icons/buttons/xbox_lb.png",
	KEYBOARD_BUTTONS.V : "res://assets/icons/buttons/xbox_rb.png",
	KEYBOARD_BUTTONS.MOUSE_LEFT : "res://assets/icons/buttons/xbox_rb.png",
	KEYBOARD_BUTTONS.MOUSE_RIGHT : "res://assets/icons/buttons/mouse_right.png",
}
###
const PS_BUTTON_ICONS = {
	PS_BUTTONS.CROSS : "res://assets/icons/buttons/ps_cross.png",
	PS_BUTTONS.SQUARE : "res://assets/icons/buttons/ps_square.png",
	PS_BUTTONS.TRIANGLE : "res://assets/icons/buttons/ps_triangle.png",
	PS_BUTTONS.CIRCLE : "res://assets/icons/buttons/ps_circle.png",
	PS_BUTTONS.L1 : "res://assets/icons/buttons/ps_l1.png",
	PS_BUTTONS.L2 : "res://assets/icons/buttons/ps_l2.png",
	PS_BUTTONS.R1 : "res://assets/icons/buttons/ps_r1.png",
	PS_BUTTONS.R2 : "res://assets/icons/buttons/ps_r2.png",
}
const XBOX_BUTTON_ICONS = {
	XBOX_BUTTONS.A : "res://assets/icons/buttons/xbox_a.png",
	XBOX_BUTTONS.X : "res://assets/icons/buttons/ps_cross.png",
	XBOX_BUTTONS.Y : "res://assets/icons/buttons/xbox_y.png",
	XBOX_BUTTONS.B : "res://assets/icons/buttons/xbox_b.png",
	XBOX_BUTTONS.LB : "res://assets/icons/buttons/xbox_lb.png",
	XBOX_BUTTONS.LT : "res://assets/icons/buttons/xbox_lt.png",
	XBOX_BUTTONS.RB : "res://assets/icons/buttons/xbox_rb.png",
	XBOX_BUTTONS.RT : "res://assets/icons/buttons/xbox_rt.png",
}

## Returns the icon path for the icon enum.[br]
## NOTE: icon has to be of type Utils.KEYBOARD_BUTTONS, Utils.PS_BUTTONS, or Utils.XBOX_BUTTONS!
func get_button_icon(icon):
	if icon is KEYBOARD_BUTTONS:
		return KEYBOARD_BUTTON_ICONS[icon]
	elif icon is PS_BUTTONS:
		return PS_BUTTON_ICONS[icon]
	elif icon is XBOX_BUTTONS:
		return XBOX_BUTTON_ICONS[icon]
	else:
		print("icon of incorrect type!")
		assert(false)
