more dialog garbage testing code

This commit is contained in:
2022-12-02 21:12:25 +01:00
parent c4500b09f4
commit 29d3a7d130
4 changed files with 48 additions and 22 deletions

View File

@@ -1,5 +1,4 @@
using Godot;
using Godot.Collections;
using System;
public partial class dialog_trigger_area : Area2D
@@ -8,21 +7,8 @@ public partial class dialog_trigger_area : Area2D
string dialogFile;
[Export]
string dialogTitle;
public string printedDialog;
public void OnInteraction(string playerName)
{
string currentKey = "randomWelcomeText";
using var file = FileAccess.Open(dialogFile, FileAccess.ModeFlags.Read);
string text = file.GetAsText();
var jsonFile = JSON.ParseString(text);
Dictionary allDialog = (Dictionary)jsonFile;
if (currentKey.BeginsWith("random")) {
string[] dialogPart = allDialog[currentKey].AsStringArray();
printedDialog = dialogPart[GD.Randi() % dialogPart.Length];
} else printedDialog = allDialog[currentKey].AsString();
printedDialog = String.Format(printedDialog, playerName);
GetNode("/root/main/dialog_bubble").Call("ImportString",dialogTitle, printedDialog);
GetNode("/root/main/dialog_bubble").Call("ImportString",dialogTitle,dialogFile,playerName);
}
}

View File

@@ -1,12 +1,47 @@
using Godot;
using Godot.Collections;
using System;
public partial class dialog_bubble : CanvasLayer
{
public void ImportString(string dialogTitle, string printedDialog)
public string printedDialog;
public int debugCounter;
public void ImportString(string dialogTitle, string dialogFile, string playerName)
{
Visible = !Visible;
Visible = true;
GD.Print("test");
GetNode("/root/main/player").Call("ChangeProcess",false);
string currentKey = "randomWelcomeText";
using var file = FileAccess.Open(dialogFile, FileAccess.ModeFlags.Read);
string text = file.GetAsText();
var jsonFile = JSON.ParseString(text);
Dictionary allDialog = (Dictionary)jsonFile;
if (currentKey.BeginsWith("random"))
{
string[] dialogPart = allDialog[currentKey].AsStringArray();
printedDialog = dialogPart[GD.Randi() % dialogPart.Length];
}
else printedDialog = allDialog[currentKey].AsString();
printedDialog = String.Format(printedDialog, playerName);
GetNode<Label>("TextLabel").Text = printedDialog;
GetNode<Label>("NameLabel").Text = dialogTitle;
}
public void EndDialog()
{
Visible = false;
GetNode("/root/main/player").Call("ChangeProcess", true);
}
public override void _Process(double delta)
{
if (Input.IsActionJustPressed("ui_accept"))
{
debugCounter++;
}
if(debugCounter == 2)
{
EndDialog();
debugCounter = 0;
}
}
}

View File

@@ -1,11 +1,13 @@
using Godot;
using System;
using System.Diagnostics;
public partial class player : CharacterBody2D
{
[Export]
public int speed = 400;
[Export]
public string playerName;
[Export]
public int speed = 400;
public override void _PhysicsProcess(double delta)
{
@@ -19,6 +21,7 @@ public partial class player : CharacterBody2D
* speed * (float)delta
);
}
public void ChangeProcess(bool process){ if(process) ProcessMode = ProcessModeEnum.Inherit; else ProcessMode = ProcessModeEnum.Disabled; }
public override void _Process(double delta)
{
//set ray_cast target position
@@ -28,9 +31,10 @@ public partial class player : CharacterBody2D
if (Input.IsActionJustPressed("move_up")) GetNode<RayCast2D>("ray_cast_2d").TargetPosition = new Vector2(0, -64);
//call event in raycasted object
if (Input.IsActionJustPressed("ui_accept") && GetNode<RayCast2D>("ray_cast_2d").IsColliding()) {
var raycastedObject = GetNode<RayCast2D>("ray_cast_2d").GetCollider();
raycastedObject.Call("OnInteraction", playerName);
if (Input.IsActionJustPressed("ui_accept") && GetNode<RayCast2D>("ray_cast_2d").IsColliding())
{
var raycastedObject = GetNode<RayCast2D>("ray_cast_2d").GetCollider();
raycastedObject.Call("OnInteraction", playerName);
}
}
}