Added robot follow button
This commit is contained in:
@@ -6,6 +6,7 @@ public partial class Camera3d : Camera3D
|
||||
[Export] public float Speed = 7.5f;
|
||||
[Export] public float MouseSensitivity = 0.2f;
|
||||
[Export] public float ScrollStrength = 5.0f;
|
||||
private Robot robot;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
@@ -33,13 +34,27 @@ public partial class Camera3d : Camera3D
|
||||
|
||||
if (direction != Vector3.Zero)
|
||||
{
|
||||
if(robot != null) robot = null;
|
||||
direction = direction.Normalized() * Speed * (Input.IsActionPressed("sprint") ? 2.5f : 1) * d;
|
||||
Translate(direction);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(robot != null)
|
||||
{
|
||||
Position = new Vector3(robot.Position.X, 10 - visibleLayer * 4, robot.Position.Z + 4f);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (Position.Y != 10 - visibleLayer * 4)
|
||||
{
|
||||
Position = new Vector3(Position.X, 10 - visibleLayer * 4, Position.Z);
|
||||
}
|
||||
}
|
||||
|
||||
public void Follow(Robot robot)
|
||||
{
|
||||
this.robot = robot;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ public partial class UIHandler : Control
|
||||
{
|
||||
[Export] CodingWindow codingWindow;
|
||||
[Export] RobotList robotList;
|
||||
[Export] Camera3D mainCam;
|
||||
[Export] Camera3d mainCam;
|
||||
[Export] Map map;
|
||||
[Export] RichTextLabel FPS;
|
||||
[Export] RichTextLabel RAM;
|
||||
@@ -27,15 +27,18 @@ public partial class UIHandler : Control
|
||||
|
||||
|
||||
private bool receivedRobotJumpSignal = false;
|
||||
private bool receivedRobotFollowSignal = false;
|
||||
public override void _Ready()
|
||||
{
|
||||
UIStyle.Apply(this);
|
||||
robotList.OnRobotJumpTo += OnRobotJumpTo;
|
||||
robotList.OnRobotFollow += OnRobotFollow;
|
||||
}
|
||||
|
||||
public override void _ExitTree()
|
||||
{
|
||||
robotList.OnRobotJumpTo -= OnRobotJumpTo;
|
||||
robotList.OnRobotFollow -= OnRobotFollow;
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
@@ -81,6 +84,7 @@ public partial class UIHandler : Control
|
||||
|
||||
public void HandleRobotListButton()
|
||||
{
|
||||
receivedRobotFollowSignal = false;
|
||||
receivedRobotJumpSignal = false;
|
||||
OpenUIElement(robotList);
|
||||
}
|
||||
@@ -182,6 +186,15 @@ public partial class UIHandler : Control
|
||||
OpenUIElement(codingWindow);
|
||||
}
|
||||
|
||||
private void OnRobotFollow(Robot robot)
|
||||
{
|
||||
if (receivedRobotFollowSignal) return;
|
||||
|
||||
receivedRobotFollowSignal = true;
|
||||
mainCam.Follow(robot);
|
||||
OpenUIElement(codingWindow);
|
||||
}
|
||||
|
||||
private void DisplaySurvivalStats()
|
||||
{
|
||||
energyLabel.Text = $"Energy: {GameData.survival.energy:0}/{GameData.survival.maxEnergy:0}";
|
||||
|
||||
Reference in New Issue
Block a user