Example conversation.
This commit is contained in:
@@ -13,4 +13,4 @@ func _init(
|
||||
self.pauseEntities = entities;
|
||||
|
||||
func start() -> void:
|
||||
getSystems().PAUSE.pause(self.pauseType, self.pauseEntities);
|
||||
getSystems().PAUSE.pause(self.pauseType, self.pauseEntities);
|
||||
|
@@ -0,0 +1,13 @@
|
||||
class_name OverworldChangeDirectionEvent extends "res://scripts/Cutscene/Event/Entity/OverworldEntityEvent.gd"
|
||||
|
||||
var direction:OverworldEntity.Direction;
|
||||
|
||||
func _init(
|
||||
entity:OverworldEntity,
|
||||
direction:OverworldEntity.Direction,
|
||||
) -> void:
|
||||
super._init(entity);
|
||||
self.direction = direction;
|
||||
|
||||
func start() -> void:
|
||||
entity.direction = direction;
|
10
scripts/Cutscene/Event/Entity/OverworldEntityEvent.gd
Normal file
10
scripts/Cutscene/Event/Entity/OverworldEntityEvent.gd
Normal file
@@ -0,0 +1,10 @@
|
||||
class_name OverworldEntityEvent extends "res://scripts/Cutscene/CutsceneEvent.gd"
|
||||
const OverworldEntity = preload("res://scripts/Entities/OverworldEntity.gd");
|
||||
|
||||
var entity:OverworldEntity;
|
||||
|
||||
func _init(
|
||||
entity:OverworldEntity,
|
||||
) -> void:
|
||||
super._init();
|
||||
self.entity = entity;
|
@@ -1,16 +1,24 @@
|
||||
class_name TestCutscene extends "res://scripts/Cutscene/Cutscene.gd"
|
||||
const CutscenePrintEvent = preload("res://scripts/Cutscene/Event/CutscenePrintEvent.gd");
|
||||
const CutsceneWaitEvent = preload("res://scripts/Cutscene/Event/CutsceneWaitEvent.gd");
|
||||
const CutsceneConcurrentEvent = preload("res://scripts/Cutscene/Event/CutsceneConcurrentEvent.gd");
|
||||
const CutsceneIfEvent = preload("res://scripts/Cutscene/Event/CutsceneIfEvent.gd");
|
||||
const CutsceneWhileEvent = preload("res://scripts/Cutscene/Event/CutsceneWhileEvent.gd");
|
||||
const OverworldEntity = preload("res://scripts/Entities/OverworldEntity.gd");
|
||||
const TextboxEvent = preload("res://scripts/Cutscene/Event/VisualNovel/TextboxEvent.gd");
|
||||
const PauseEvent = preload("res://scripts/Cutscene/Event/CutscenePauseEvent.gd");
|
||||
const OverworldChangeDirectionEvent = preload("res://scripts/Cutscene/Event/Entity/OverworldChangeDirectionEvent.gd");
|
||||
|
||||
var speaker:OverworldEntity;
|
||||
var interacted:OverworldEntity;
|
||||
|
||||
func _init(speaker:OverworldEntity, interacted:OverworldEntity ) -> void:
|
||||
self.speaker = speaker;
|
||||
self.interacted = interacted;
|
||||
|
||||
func setupCutscene() -> void:
|
||||
var dirSpeaker = speaker.getDirectionToFace(interacted.position);
|
||||
var dirInteracted = interacted.getDirectionToFace(speaker.position);
|
||||
|
||||
add([
|
||||
PauseEvent.new(PauseSystem.PauseType.ENTITY_PAUSED),
|
||||
TextboxEvent.new("Cumbria"),
|
||||
PauseEvent.new(PauseSystem.PauseType.NOT_PAUSED),
|
||||
OverworldChangeDirectionEvent.new(speaker, dirSpeaker),
|
||||
OverworldChangeDirectionEvent.new(interacted, dirInteracted),
|
||||
PauseEvent.new(PauseSystem.PauseType.ENTITY_PAUSED, [ speaker, interacted ]),
|
||||
TextboxEvent.new("brother moment"),
|
||||
PauseEvent.new(PauseSystem.PauseType.NOT_PAUSED)
|
||||
]);
|
||||
pass
|
||||
|
@@ -36,6 +36,20 @@ func getDirectionVector() -> Vector3:
|
||||
Direction.EAST:
|
||||
return Vector3(1, 0, 0);
|
||||
return Vector3(0, 0, 0);
|
||||
|
||||
func getDirectionToFace(position:Vector3) -> Direction:
|
||||
var diff = position - self.position;
|
||||
if abs(diff.x) > abs(diff.z):
|
||||
if diff.x > 0:
|
||||
return Direction.EAST;
|
||||
else:
|
||||
return Direction.WEST;
|
||||
else:
|
||||
if diff.z > 0:
|
||||
return Direction.SOUTH;
|
||||
else:
|
||||
return Direction.NORTH;
|
||||
return Direction.SOUTH;
|
||||
|
||||
# Virtual Methods
|
||||
func updateMovement(delta) -> void:
|
||||
@@ -54,12 +68,12 @@ func isPaused() -> bool:
|
||||
return true;
|
||||
elif ps == PauseSystem.PauseType.ENTITY_PAUSED:
|
||||
if pause.entities.find(self) != -1:
|
||||
return false;
|
||||
return true
|
||||
return true;
|
||||
return false
|
||||
elif ps == PauseSystem.PauseType.CUTSCENE_PAUSED:
|
||||
if pause.entities.find(self) != -1:
|
||||
return true;
|
||||
return false;
|
||||
return false;
|
||||
return true;
|
||||
return false;
|
||||
|
||||
# Private methods
|
||||
|
@@ -2,7 +2,7 @@ class_name TestNPCController extends "res://scripts/Entities/OverworldEntity.gd"
|
||||
const TestCutscene = preload("res://scripts/Cutscene/TestCutscene.gd")
|
||||
|
||||
func interact(interactor) -> void:
|
||||
getSystems().CUTSCENE.setCurrentCutscene(TestCutscene.new());
|
||||
getSystems().CUTSCENE.setCurrentCutscene(TestCutscene.new(interactor, self));
|
||||
|
||||
func updateMovement(delta) -> void:
|
||||
pass
|
||||
|
@@ -1,9 +1,13 @@
|
||||
class_name PauseSystem extends Node
|
||||
|
||||
enum PauseType {
|
||||
# Completely unpaused
|
||||
NOT_PAUSED,
|
||||
# Fully paused, with no exceptions to anything
|
||||
FULLY_PAUSED,
|
||||
# Specific entities are paused
|
||||
ENTITY_PAUSED,
|
||||
# All entities are paused unless specified
|
||||
CUTSCENE_PAUSED
|
||||
};
|
||||
|
||||
@@ -30,4 +34,4 @@ func isPlayerPaused() -> bool:
|
||||
return playerPaused;
|
||||
|
||||
func playerPauseToggle() -> void:
|
||||
playerPaused = !playerPaused;
|
||||
playerPaused = !playerPaused;
|
||||
|
Reference in New Issue
Block a user