NPC bug fixing.
This commit is contained in:
@@ -38,11 +38,10 @@ point_count = 2
|
|||||||
[node name="Player" parent="." instance=ExtResource("2_rlkm5")]
|
[node name="Player" parent="." instance=ExtResource("2_rlkm5")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.06402, 1.54702, -2.35884)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.06402, 1.54702, -2.35884)
|
||||||
|
|
||||||
[node name="NPC" parent="." node_paths=PackedStringArray("interactCamera") instance=ExtResource("4_nb1wl")]
|
[node name="NPC" parent="." instance=ExtResource("4_nb1wl")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.20455, 1.94676, -3.51349)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.20455, 1.94676, -3.51349)
|
||||||
interactType = 1
|
interactType = 1
|
||||||
interactTexts = Array[String](["test"])
|
interactTexts = Array[String](["test"])
|
||||||
interactCamera = NodePath("../TestChatCamera")
|
|
||||||
|
|
||||||
[node name="Camera3D" type="Camera3D" parent="." node_paths=PackedStringArray("targetFollow", "pathFollow", "pathMap")]
|
[node name="Camera3D" type="Camera3D" parent="." node_paths=PackedStringArray("targetFollow", "pathFollow", "pathMap")]
|
||||||
transform = Transform3D(0.996991, 0.0418507, -0.0652558, 0, 0.841762, 0.539849, 0.0775229, -0.538225, 0.839228, 1.25757, 8.21861, 8.01254)
|
transform = Transform3D(0.996991, 0.0418507, -0.0652558, 0, 0.841762, 0.539849, 0.0775229, -0.538225, 0.839228, 1.25757, 8.21861, 8.01254)
|
||||||
@@ -53,10 +52,6 @@ pathFollow = NodePath("../PathCamera/PathFollow3D")
|
|||||||
pathMap = NodePath("../PathWorld")
|
pathMap = NodePath("../PathWorld")
|
||||||
metadata/_custom_type_script = "uid://csb0i132lcu0w"
|
metadata/_custom_type_script = "uid://csb0i132lcu0w"
|
||||||
|
|
||||||
[node name="TestChatCamera" type="Camera3D" parent="."]
|
|
||||||
transform = Transform3D(0.854722, 0.231437, -0.464637, 0, 0.895106, 0.445854, 0.519087, -0.381081, 0.765066, -6.8472, 4.22457, 0.61366)
|
|
||||||
fov = 47.0
|
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
environment = SubResource("Environment_m5dm6")
|
environment = SubResource("Environment_m5dm6")
|
||||||
|
|
||||||
|
@@ -1,5 +1,7 @@
|
|||||||
class_name NPC extends CharacterBody3D
|
class_name NPC extends CharacterBody3D
|
||||||
|
|
||||||
|
const CONVERSATION_FADE_DURATION:float = 0.3
|
||||||
|
|
||||||
enum InteractType {
|
enum InteractType {
|
||||||
NONE,
|
NONE,
|
||||||
TEXTBOX,
|
TEXTBOX,
|
||||||
@@ -43,6 +45,7 @@ func lookAtPlayer() -> void:
|
|||||||
|
|
||||||
func showTexts():
|
func showTexts():
|
||||||
TRANSITION.fadeOutStart.disconnect(showTexts)
|
TRANSITION.fadeOutStart.disconnect(showTexts)
|
||||||
|
TRANSITION.fadeInEnd.disconnect(showTexts)
|
||||||
|
|
||||||
# Any texts?
|
# Any texts?
|
||||||
if interactTexts.size() == 0:
|
if interactTexts.size() == 0:
|
||||||
@@ -59,7 +62,7 @@ func endTexts():
|
|||||||
|
|
||||||
# Do we fade out the camera?
|
# Do we fade out the camera?
|
||||||
if interactCamera:
|
if interactCamera:
|
||||||
TRANSITION.fade(TRANSITION.FadeType.FADE_OUT)
|
TRANSITION.fade(TRANSITION.FadeType.FADE_OUT, CONVERSATION_FADE_DURATION)
|
||||||
TRANSITION.fadeOutEnd.connect(onFadeOutEnd)
|
TRANSITION.fadeOutEnd.connect(onFadeOutEnd)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -67,6 +70,7 @@ func endTexts():
|
|||||||
if previousCamera:
|
if previousCamera:
|
||||||
previousCamera.current = true
|
previousCamera.current = true
|
||||||
previousCamera = null
|
previousCamera = null
|
||||||
|
PAUSE.cutsceneResume()
|
||||||
|
|
||||||
func _enter_tree() -> void:
|
func _enter_tree() -> void:
|
||||||
$InteractableArea.interactEvent.connect(onInteract)
|
$InteractableArea.interactEvent.connect(onInteract)
|
||||||
@@ -95,12 +99,13 @@ func onInteract(playerEntity:Player) -> void:
|
|||||||
PAUSE.cutscenePause()
|
PAUSE.cutscenePause()
|
||||||
|
|
||||||
# If a camera is set, switch to it, otherwise chat immediately.
|
# If a camera is set, switch to it, otherwise chat immediately.
|
||||||
if !interactCamera:
|
if interactCamera == null:
|
||||||
|
lookAtPlayer()
|
||||||
showTexts()
|
showTexts()
|
||||||
return
|
return
|
||||||
|
|
||||||
# Fade out.
|
# Fade out.
|
||||||
TRANSITION.fade(TRANSITION.FadeType.FADE_OUT)
|
TRANSITION.fade(TRANSITION.FadeType.FADE_OUT, CONVERSATION_FADE_DURATION)
|
||||||
TRANSITION.fadeOutEnd.connect(onFadeOutEnd)
|
TRANSITION.fadeOutEnd.connect(onFadeOutEnd)
|
||||||
|
|
||||||
InteractType.CUTSCENE:
|
InteractType.CUTSCENE:
|
||||||
@@ -123,7 +128,7 @@ func onTextboxClosing() -> void:
|
|||||||
func onFadeOutEnd() -> void:
|
func onFadeOutEnd() -> void:
|
||||||
# Begin fade back in.
|
# Begin fade back in.
|
||||||
TRANSITION.fadeOutEnd.disconnect(onFadeOutEnd)
|
TRANSITION.fadeOutEnd.disconnect(onFadeOutEnd)
|
||||||
TRANSITION.fade(TRANSITION.FadeType.FADE_IN)
|
TRANSITION.fade(TRANSITION.FadeType.FADE_IN, CONVERSATION_FADE_DURATION)
|
||||||
TRANSITION.fadeInEnd.connect(onFadeInEnd)
|
TRANSITION.fadeInEnd.connect(onFadeInEnd)
|
||||||
|
|
||||||
# Is the conversation ending?
|
# Is the conversation ending?
|
||||||
|
Reference in New Issue
Block a user