fix: Fixes from the ETF release day (#468)
Co-authored-by: Dennis Ploeger <develop@dieploegers.de>
This commit is contained in:
@@ -93,6 +93,17 @@ func _process(delta: float) -> void:
|
|||||||
channel_name,
|
channel_name,
|
||||||
_running_events[channel_name].name
|
_running_events[channel_name].name
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var event_flags = _running_events[channel_name].flags
|
||||||
|
if event_flags & ESCEvent.FLAG_NO_TT:
|
||||||
|
escoria.main.current_scene.game.tooltip_node.hide()
|
||||||
|
|
||||||
|
if event_flags & ESCEvent.FLAG_NO_UI:
|
||||||
|
escoria.main.current_scene.game.hide_ui()
|
||||||
|
|
||||||
|
if event_flags & ESCEvent.FLAG_NO_SAVE:
|
||||||
|
escoria.save_manager.save_enabled = false
|
||||||
|
|
||||||
_running_events[channel_name].run()
|
_running_events[channel_name].run()
|
||||||
for event in self.scheduled_events:
|
for event in self.scheduled_events:
|
||||||
(event as ESCScheduledEvent).timeout -= delta
|
(event as ESCScheduledEvent).timeout -= delta
|
||||||
@@ -136,6 +147,7 @@ func interrupt_running_event():
|
|||||||
for channel_name in _running_events.keys():
|
for channel_name in _running_events.keys():
|
||||||
if _running_events[channel_name] != null:
|
if _running_events[channel_name] != null:
|
||||||
_running_events[channel_name].interrupt()
|
_running_events[channel_name].interrupt()
|
||||||
|
_channels_state[channel_name] = true
|
||||||
|
|
||||||
|
|
||||||
# Clears the event queues.
|
# Clears the event queues.
|
||||||
@@ -173,6 +185,16 @@ func _on_event_finished(return_code: int, channel_name: String) -> void:
|
|||||||
"Event %s ended with return code %d" % [event.name, return_code]
|
"Event %s ended with return code %d" % [event.name, return_code]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var event_flags = event.flags
|
||||||
|
if event_flags & ESCEvent.FLAG_NO_TT:
|
||||||
|
escoria.main.current_scene.game.tooltip_node.show()
|
||||||
|
|
||||||
|
if event_flags & ESCEvent.FLAG_NO_UI:
|
||||||
|
escoria.main.current_scene.game.show_ui()
|
||||||
|
|
||||||
|
if event_flags & ESCEvent.FLAG_NO_SAVE:
|
||||||
|
escoria.save_manager.save_enabled = true
|
||||||
|
|
||||||
if return_code == ESCExecution.RC_CANCEL:
|
if return_code == ESCExecution.RC_CANCEL:
|
||||||
return_code = ESCExecution.RC_OK
|
return_code = ESCExecution.RC_OK
|
||||||
|
|
||||||
|
|||||||
@@ -77,5 +77,6 @@ func _init(event_string: String):
|
|||||||
|
|
||||||
# Execute this statement and return its return code
|
# Execute this statement and return its return code
|
||||||
func run() -> int:
|
func run() -> int:
|
||||||
|
reset_interrupt()
|
||||||
escoria.logger.debug("Event %s started" % name)
|
escoria.logger.debug("Event %s started" % name)
|
||||||
return .run()
|
return .run()
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ func _set_active(value: bool):
|
|||||||
#
|
#
|
||||||
# **Returns** Whether the node is interactive or not
|
# **Returns** Whether the node is interactive or not
|
||||||
func _get_interactive() -> bool:
|
func _get_interactive() -> bool:
|
||||||
if "is_interactive" in self.node:
|
if is_instance_valid(self.node) and "is_interactive" in self.node:
|
||||||
return self.node.is_interactive
|
return self.node.is_interactive
|
||||||
else:
|
else:
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -64,10 +64,18 @@ func interrupt():
|
|||||||
_is_interrupted = true
|
_is_interrupted = true
|
||||||
for statement in statements:
|
for statement in statements:
|
||||||
if statement.is_finished:
|
if statement.is_finished:
|
||||||
|
var name = statement.name if "name" in statement else "group"
|
||||||
escoria.logger.debug(
|
escoria.logger.debug(
|
||||||
"event manager",
|
"event manager",
|
||||||
["Event %s (%s) is already finished. Won't interrupt."
|
["Event %s (%s) is already finished. Won't interrupt."
|
||||||
% [statement.name, str(statement)]]
|
% [name, str(statement)]]
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
statement.interrupt()
|
statement.interrupt()
|
||||||
|
|
||||||
|
|
||||||
|
# Resets an interrupted event
|
||||||
|
func reset_interrupt():
|
||||||
|
_is_interrupted = false
|
||||||
|
for statement in statements:
|
||||||
|
statement.reset_interrupt()
|
||||||
|
|||||||
@@ -135,48 +135,6 @@ func perform_inputevent_on_object(
|
|||||||
if dont_interact:
|
if dont_interact:
|
||||||
return
|
return
|
||||||
|
|
||||||
# If NO_TT flag is active, hide tooltip and connect for
|
|
||||||
# event finished to show it back
|
|
||||||
if event_flags & ESCEvent.FLAG_NO_TT \
|
|
||||||
and not escoria.event_manager.is_connected(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_tooltip_event_finished"
|
|
||||||
):
|
|
||||||
escoria.main.current_scene.game.tooltip_node.hide()
|
|
||||||
escoria.event_manager.connect(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_tooltip_event_finished"
|
|
||||||
)
|
|
||||||
|
|
||||||
if event_flags & ESCEvent.FLAG_NO_UI and \
|
|
||||||
not escoria.event_manager.is_connected(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_ui_event_finished"
|
|
||||||
):
|
|
||||||
escoria.main.current_scene.game.hide_ui()
|
|
||||||
escoria.event_manager.connect(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_ui_event_finished"
|
|
||||||
)
|
|
||||||
|
|
||||||
if event_flags & ESCEvent.FLAG_NO_SAVE and \
|
|
||||||
not escoria.event_manager.is_connected(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_save_event_finished"
|
|
||||||
):
|
|
||||||
escoria.save_manager.save_enabled = false
|
|
||||||
escoria.event_manager.connect(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_save_event_finished"
|
|
||||||
)
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Manage exits
|
# Manage exits
|
||||||
if obj.node.is_exit and escoria.action_manager.current_action \
|
if obj.node.is_exit and escoria.action_manager.current_action \
|
||||||
in ["", "walk"]:
|
in ["", "walk"]:
|
||||||
@@ -292,63 +250,3 @@ func _walk_towards_object(
|
|||||||
walk_context.dont_interact_on_arrival = true
|
walk_context.dont_interact_on_arrival = true
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
# Called when an event having "NO_TT" flag is finished.
|
|
||||||
#
|
|
||||||
# ## Parameters
|
|
||||||
#
|
|
||||||
# - _return_code: The ESCExecution return code sent by the events manager.
|
|
||||||
# - _event_name: the name of the event
|
|
||||||
func _on_no_tooltip_event_finished(_return_code: int, _event_name: String):
|
|
||||||
escoria.main.current_scene.game.tooltip_node.show()
|
|
||||||
if escoria.event_manager.is_connected(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_tooltip_event_finished"
|
|
||||||
):
|
|
||||||
escoria.event_manager.disconnect(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_tooltip_event_finished"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
# Called when an event having "NO_UI" flag is finished.
|
|
||||||
#
|
|
||||||
# ## Parameters
|
|
||||||
#
|
|
||||||
# - _return_code: The ESCExecution return code sent by the events manager.
|
|
||||||
# - _event_name: the name of the event
|
|
||||||
func _on_no_ui_event_finished(_return_code: int, _event_name: String):
|
|
||||||
escoria.main.current_scene.game.show_ui()
|
|
||||||
if escoria.event_manager.is_connected(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_ui_event_finished"
|
|
||||||
):
|
|
||||||
escoria.event_manager.disconnect(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_ui_event_finished"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
# Called when an event having "NO_SAVE" flag is finished.
|
|
||||||
#
|
|
||||||
# ## Parameters
|
|
||||||
#
|
|
||||||
# - _return_code: The ESCExecution return code sent by the events manager.
|
|
||||||
# - _event_name: the name of the event
|
|
||||||
func _on_no_save_event_finished(_return_code: int, _event_name: String):
|
|
||||||
escoria.save_manager.save_enabled = true
|
|
||||||
if escoria.event_manager.is_connected(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_save_event_finished"
|
|
||||||
):
|
|
||||||
escoria.event_manager.disconnect(
|
|
||||||
"event_finished",
|
|
||||||
self,
|
|
||||||
"_on_no_save_event_finished"
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -92,9 +92,11 @@ func set_camera_limits(camera_limit_id: int = 0) -> void:
|
|||||||
# to stick centered on the background
|
# to stick centered on the background
|
||||||
if area.size.x == 0 or area.size.y == 0 \
|
if area.size.x == 0 or area.size.y == 0 \
|
||||||
or area.size < get_viewport().size:
|
or area.size < get_viewport().size:
|
||||||
escoria.logger.report_warning(
|
escoria.logger.report_warnings(
|
||||||
"main.gd:set_camera_limits()",
|
"main.gd:set_camera_limits()",
|
||||||
|
[
|
||||||
"No limit area! Using viewport."
|
"No limit area! Using viewport."
|
||||||
|
]
|
||||||
)
|
)
|
||||||
area.size = get_viewport().size
|
area.size = get_viewport().size
|
||||||
|
|
||||||
|
|||||||
@@ -258,7 +258,7 @@ func set_escoria_sound_settings():
|
|||||||
"escoria/sound/master_volume",
|
"escoria/sound/master_volume",
|
||||||
1,
|
1,
|
||||||
{
|
{
|
||||||
"type": TYPE_INT,
|
"type": TYPE_REAL,
|
||||||
"hint": PROPERTY_HINT_RANGE,
|
"hint": PROPERTY_HINT_RANGE,
|
||||||
"hint_string": "0,1"
|
"hint_string": "0,1"
|
||||||
}
|
}
|
||||||
@@ -268,7 +268,7 @@ func set_escoria_sound_settings():
|
|||||||
"escoria/sound/music_volume",
|
"escoria/sound/music_volume",
|
||||||
1,
|
1,
|
||||||
{
|
{
|
||||||
"type": TYPE_INT,
|
"type": TYPE_REAL,
|
||||||
"hint": PROPERTY_HINT_RANGE,
|
"hint": PROPERTY_HINT_RANGE,
|
||||||
"hint_string": "0,1"
|
"hint_string": "0,1"
|
||||||
}
|
}
|
||||||
@@ -278,7 +278,7 @@ func set_escoria_sound_settings():
|
|||||||
"escoria/sound/sfx_volume",
|
"escoria/sound/sfx_volume",
|
||||||
1,
|
1,
|
||||||
{
|
{
|
||||||
"type": TYPE_INT,
|
"type": TYPE_REAL,
|
||||||
"hint": PROPERTY_HINT_RANGE,
|
"hint": PROPERTY_HINT_RANGE,
|
||||||
"hint_string": "0,1"
|
"hint_string": "0,1"
|
||||||
}
|
}
|
||||||
@@ -288,7 +288,7 @@ func set_escoria_sound_settings():
|
|||||||
"escoria/sound/speech_volume",
|
"escoria/sound/speech_volume",
|
||||||
1,
|
1,
|
||||||
{
|
{
|
||||||
"type": TYPE_INT,
|
"type": TYPE_REAL,
|
||||||
"hint": PROPERTY_HINT_RANGE,
|
"hint": PROPERTY_HINT_RANGE,
|
||||||
"hint_string": "0,1"
|
"hint_string": "0,1"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user