blob: 52565bad2de2b9a09ca6d078b3c3a4d7d7c0caa9 (
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
|