initial commit
This commit is contained in:
commit
0c5085a7fa
48 changed files with 2883 additions and 0 deletions
65
World.cs
Normal file
65
World.cs
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
using Godot;
|
||||
using System;
|
||||
|
||||
public partial class World : Node3D
|
||||
{
|
||||
private bool _moving = false;
|
||||
[Export]
|
||||
private Node3D _yawNode;
|
||||
[Export]
|
||||
private Node3D _pitchNode;
|
||||
[Export]
|
||||
private Node3D _cameraNode;
|
||||
|
||||
[Export] private float _moveSensitivity = 1f/500f;
|
||||
[Export] private float _zoomSensitivity = 55f;
|
||||
|
||||
[Export] private MeshInstance3D _planet;
|
||||
|
||||
private PlanetHelper _planetHelper;
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
base._Ready();
|
||||
}
|
||||
|
||||
public override void _Input(InputEvent @event)
|
||||
{
|
||||
if (@event is InputEventMouseButton mouseEvent)
|
||||
{
|
||||
if (mouseEvent.ButtonIndex == MouseButton.Left)
|
||||
{
|
||||
_moving = mouseEvent.Pressed;
|
||||
Input.MouseMode = _moving ? Input.MouseModeEnum.Captured : Input.MouseModeEnum.Visible;
|
||||
}
|
||||
if (mouseEvent.ButtonIndex == MouseButton.WheelUp)
|
||||
{
|
||||
_cameraNode.Position -= new Vector3(0, 0, _zoomSensitivity);
|
||||
}
|
||||
|
||||
if (mouseEvent.ButtonIndex == MouseButton.WheelDown)
|
||||
{
|
||||
_cameraNode.Position += new Vector3(0, 0, _zoomSensitivity);
|
||||
}
|
||||
}
|
||||
else if (@event is InputEventMouseMotion motionEvent && _moving)
|
||||
{
|
||||
_yawNode.RotateY(motionEvent.ScreenRelative.X * _moveSensitivity);
|
||||
_pitchNode.RotateX(motionEvent.ScreenRelative.Y * _moveSensitivity);
|
||||
}
|
||||
}
|
||||
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
if (Input.IsActionJustPressed("enter"))
|
||||
{
|
||||
_planetHelper.ToggleAutoRun();
|
||||
}
|
||||
if (Input.IsActionJustPressed("spacebar"))
|
||||
{
|
||||
_planetHelper.ToggleAdvance();
|
||||
}
|
||||
|
||||
_planetHelper.Process();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue