fix dialogue balloon not refocusing after choice
parent
58ad2382fe
commit
3c6fd6088f
|
@ -59,7 +59,6 @@ public partial class Balloon : CanvasLayer
|
||||||
|
|
||||||
balloon.GuiInput += (inputEvent) =>
|
balloon.GuiInput += (inputEvent) =>
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!isWaitingForInput) return;
|
if (!isWaitingForInput) return;
|
||||||
if (GetResponses().Count > 0) return;
|
if (GetResponses().Count > 0) return;
|
||||||
|
|
||||||
|
@ -69,7 +68,7 @@ public partial class Balloon : CanvasLayer
|
||||||
{
|
{
|
||||||
Next(dialogueLine.NextId);
|
Next(dialogueLine.NextId);
|
||||||
}
|
}
|
||||||
else if (inputEvent.IsActionPressed("ui_accept") && GetViewport().GuiGetFocusOwner() == balloon)
|
else if (inputEvent.IsActionPressed("ui_accept"))
|
||||||
{
|
{
|
||||||
Next(dialogueLine.NextId);
|
Next(dialogueLine.NextId);
|
||||||
}
|
}
|
||||||
|
@ -160,10 +159,14 @@ public partial class Balloon : CanvasLayer
|
||||||
|
|
||||||
if (inputEvent is InputEventMouseButton && inputEvent.IsPressed() && (inputEvent as InputEventMouseButton).ButtonIndex == MouseButton.Left)
|
if (inputEvent is InputEventMouseButton && inputEvent.IsPressed() && (inputEvent as InputEventMouseButton).ButtonIndex == MouseButton.Left)
|
||||||
{
|
{
|
||||||
|
balloon.FocusMode = Control.FocusModeEnum.All;
|
||||||
|
balloon.GrabFocus();
|
||||||
Next(dialogueLine.Responses[item.GetIndex()].NextId);
|
Next(dialogueLine.Responses[item.GetIndex()].NextId);
|
||||||
}
|
}
|
||||||
else if (inputEvent.IsActionPressed("ui_accept") && GetResponses().Contains(item))
|
else if (inputEvent.IsActionPressed("ui_accept") && GetResponses().Contains(item))
|
||||||
{
|
{
|
||||||
|
balloon.FocusMode = Control.FocusModeEnum.All;
|
||||||
|
balloon.GrabFocus();
|
||||||
Next(dialogueLine.Responses[item.GetIndex()].NextId);
|
Next(dialogueLine.Responses[item.GetIndex()].NextId);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -86,6 +86,3 @@ scroll_active = false
|
||||||
shortcut_keys_enabled = false
|
shortcut_keys_enabled = false
|
||||||
meta_underlined = false
|
meta_underlined = false
|
||||||
hint_underlined = false
|
hint_underlined = false
|
||||||
|
|
||||||
[connection signal="gui_input" from="Balloon" to="." method="_on_balloon_gui_input"]
|
|
||||||
[connection signal="resized" from="Balloon/Margin" to="." method="_on_margin_resized"]
|
|
||||||
|
|
|
@ -26,7 +26,32 @@ public partial class World : Node
|
||||||
public AudioStreamPlayer MusicPlayer { get; set; }
|
public AudioStreamPlayer MusicPlayer { get; set; }
|
||||||
|
|
||||||
[Export]
|
[Export]
|
||||||
public Dialogue.Balloon DialogueBalloon { get; set; }
|
public Dialogue.Balloon DialogueBalloon
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (_dialogueBalloon is null || !IsInstanceValid(_dialogueBalloon))
|
||||||
|
{
|
||||||
|
var scene = GD.Load<PackedScene>("res://Dialogue/balloon.tscn");
|
||||||
|
_dialogueBalloon = scene.Instantiate<Dialogue.Balloon>();
|
||||||
|
//_uiViewport.AddChild(_dialogueBalloon);
|
||||||
|
_uiViewport.AddChild(_dialogueBalloon);
|
||||||
|
}
|
||||||
|
return _dialogueBalloon;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (_dialogueBalloon != value && _dialogueBalloon is not null)
|
||||||
|
{
|
||||||
|
_dialogueBalloon.QueueFree();
|
||||||
|
}
|
||||||
|
_dialogueBalloon = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Dialogue.Balloon _dialogueBalloon;
|
||||||
|
|
||||||
|
private SubViewport _uiViewport;
|
||||||
|
|
||||||
public State.Global.GlobalState GlobalState { get; set; }
|
public State.Global.GlobalState GlobalState { get; set; }
|
||||||
|
|
||||||
|
@ -66,6 +91,8 @@ public partial class World : Node
|
||||||
|
|
||||||
Godot.RenderingServer.SetDefaultClearColor(Godot.Colors.Black);
|
Godot.RenderingServer.SetDefaultClearColor(Godot.Colors.Black);
|
||||||
|
|
||||||
|
_uiViewport = GetNode<SubViewport>("CanvasLayer/SubViewportContainer/UIViewport");
|
||||||
|
|
||||||
// create a player (currently unparented)
|
// create a player (currently unparented)
|
||||||
CreatePlayer();
|
CreatePlayer();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue