NPC bug fixing.
This commit is contained in:
		@@ -38,11 +38,10 @@ point_count = 2
 | 
			
		||||
[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)
 | 
			
		||||
 | 
			
		||||
[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)
 | 
			
		||||
interactType = 1
 | 
			
		||||
interactTexts = Array[String](["test"])
 | 
			
		||||
interactCamera = NodePath("../TestChatCamera")
 | 
			
		||||
 | 
			
		||||
[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)
 | 
			
		||||
@@ -53,10 +52,6 @@ pathFollow = NodePath("../PathCamera/PathFollow3D")
 | 
			
		||||
pathMap = NodePath("../PathWorld")
 | 
			
		||||
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="."]
 | 
			
		||||
environment = SubResource("Environment_m5dm6")
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
class_name NPC extends CharacterBody3D
 | 
			
		||||
 | 
			
		||||
const CONVERSATION_FADE_DURATION:float = 0.3
 | 
			
		||||
 | 
			
		||||
enum InteractType {
 | 
			
		||||
	NONE,
 | 
			
		||||
	TEXTBOX,
 | 
			
		||||
@@ -43,6 +45,7 @@ func lookAtPlayer() -> void:
 | 
			
		||||
 | 
			
		||||
func showTexts():
 | 
			
		||||
	TRANSITION.fadeOutStart.disconnect(showTexts)
 | 
			
		||||
	TRANSITION.fadeInEnd.disconnect(showTexts)
 | 
			
		||||
 | 
			
		||||
	# Any texts?
 | 
			
		||||
	if interactTexts.size() == 0:
 | 
			
		||||
@@ -59,7 +62,7 @@ func endTexts():
 | 
			
		||||
 | 
			
		||||
	# Do we fade out the camera?
 | 
			
		||||
	if interactCamera:
 | 
			
		||||
		TRANSITION.fade(TRANSITION.FadeType.FADE_OUT)
 | 
			
		||||
		TRANSITION.fade(TRANSITION.FadeType.FADE_OUT, CONVERSATION_FADE_DURATION)
 | 
			
		||||
		TRANSITION.fadeOutEnd.connect(onFadeOutEnd)
 | 
			
		||||
		return
 | 
			
		||||
 | 
			
		||||
@@ -67,6 +70,7 @@ func endTexts():
 | 
			
		||||
	if previousCamera:
 | 
			
		||||
		previousCamera.current = true
 | 
			
		||||
		previousCamera = null
 | 
			
		||||
	PAUSE.cutsceneResume()
 | 
			
		||||
 | 
			
		||||
func _enter_tree() -> void:
 | 
			
		||||
	$InteractableArea.interactEvent.connect(onInteract)
 | 
			
		||||
@@ -95,12 +99,13 @@ func onInteract(playerEntity:Player) -> void:
 | 
			
		||||
			PAUSE.cutscenePause()
 | 
			
		||||
 | 
			
		||||
			# If a camera is set, switch to it, otherwise chat immediately.
 | 
			
		||||
			if !interactCamera:
 | 
			
		||||
			if interactCamera == null:
 | 
			
		||||
				lookAtPlayer()
 | 
			
		||||
				showTexts()
 | 
			
		||||
				return
 | 
			
		||||
			
 | 
			
		||||
			# Fade out.
 | 
			
		||||
			TRANSITION.fade(TRANSITION.FadeType.FADE_OUT)
 | 
			
		||||
			TRANSITION.fade(TRANSITION.FadeType.FADE_OUT, CONVERSATION_FADE_DURATION)
 | 
			
		||||
			TRANSITION.fadeOutEnd.connect(onFadeOutEnd)
 | 
			
		||||
 | 
			
		||||
		InteractType.CUTSCENE:
 | 
			
		||||
@@ -123,7 +128,7 @@ func onTextboxClosing() -> void:
 | 
			
		||||
func onFadeOutEnd() -> void:
 | 
			
		||||
	# Begin fade back in.
 | 
			
		||||
	TRANSITION.fadeOutEnd.disconnect(onFadeOutEnd)
 | 
			
		||||
	TRANSITION.fade(TRANSITION.FadeType.FADE_IN)
 | 
			
		||||
	TRANSITION.fade(TRANSITION.FadeType.FADE_IN, CONVERSATION_FADE_DURATION)
 | 
			
		||||
	TRANSITION.fadeInEnd.connect(onFadeInEnd)
 | 
			
		||||
 | 
			
		||||
	# Is the conversation ending?
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user