選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

68 行
1.8 KiB

  1. extends BaseLevel
  2. class_name TestLevel
  3. export var init_yarn_script : Resource
  4. func _ready():
  5. yarnRunner.add_command("Spawn", funcref(self, "spawn"))
  6. yarnRunner.add_command("EnableTrigger", funcref(self, "enable_trigger"))
  7. yarnRunner.add_command("Scene", funcref(self, "scene"))
  8. for trigger in $Triggers.get_children():
  9. trigger.connect("trigger_script", self, "trigger_script")
  10. trigger_script(init_yarn_script)
  11. func spawn(args):
  12. yield(get_tree(), "idle_frame")
  13. if args.size() < 1:
  14. printerr("Spawn command take at least one parameter for target")
  15. return
  16. var spawner = get_node("Spawners/" + args[0])
  17. if spawner != null and spawner.has_method("spawn"):
  18. spawner.spawn(self)
  19. else:
  20. print("spawner " + args[0] + " not found or not compatible")
  21. func enable_trigger(args):
  22. yield(get_tree(), "idle_frame")
  23. if args.size() < 1:
  24. printerr("EnableTrigger command take at least one parameter for target")
  25. return
  26. var trigger = get_node("Triggers/" + args[0])
  27. if trigger != null and trigger.has_method("enable"):
  28. trigger.enable()
  29. print("trigger " + args[0] + " enabled")
  30. else:
  31. print("trigger " + args[0] + " not found or not compatible")
  32. func trigger_script(yarn_script):
  33. print("script triggered")
  34. yarnRunner.say_func = funcref(Controller.speech_panel.text, "on_new_line")
  35. yarnRunner.choices_func = funcref(Controller.speech_panel.choices, "on_choices")
  36. Controller.speech_panel.show()
  37. Controller.player_input_enabled = false
  38. yarnRunner.yarnScript = yarn_script
  39. yield(yarnRunner.run_all(), "completed")
  40. Controller.speech_panel.hide()
  41. Controller.player_input_enabled = true
  42. func scene(args):
  43. yield(get_tree(), "idle_frame")
  44. if args.size() < 1:
  45. printerr("Scene command take at least one parameter for target")
  46. return
  47. print("Request new scene : " + args[0])
  48. emit_signal("request_new_scene", args[0])