summaryrefslogtreecommitdiffstats
path: root/scripts/DwarfNPC.gd
blob: b6b88480d1e89735afc0a0be14e0577a19023625 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
extends KinematicBody2D
class_name DwarfNPC

export (NodePath) var target
export (String, FILE, "*.json") var dialogue_file
onready var target_node = get_node(target)
var dialogue_data = []

func load_text_file(path):
	var f = File.new()
	var err = f.open(path, File.READ)
	if err != OK:
		printerr("Could not open file, error code ", err)
		return ""
	var text = f.get_as_text()
	f.close()
	return text

# Called when the node enters the scene tree for the first time.
func _ready():
	var dialogue_txt = load_text_file(dialogue_file)
	var dialogue_result = JSON.parse(dialogue_txt)
	if dialogue_result.error != OK:
		return push_error(dialogue_result.error_string)
	dialogue_data = dialogue_result.result

# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
	# Look at target node
	var target_x: float = target_node.position[0]
	var dx = target_x - self.position[0]
	var dir = -1 if dx < .0 else 1
	$Sprite.set_scale(Vector2(dir, 1))

func get_dialogue():
	return dialogue_data