The middle-mouse pan now persists when the button is released and only glides back to center on leaving paint mode. Pan sensitivity and max distance scale with the orbit zoom distance, so panning stays consistent on screen at any zoom and unchanged at the default zoom. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
/// <summary>
|
|
/// Player stands still, the mesh is painted with the left mouse button. The
|
|
/// camera orbits only while the right mouse button is held, and the middle
|
|
/// mouse button pans the framing (a temporary offset to line up the model).
|
|
/// </summary>
|
|
public class PaintMode : GameMode
|
|
{
|
|
public override string DisplayName => "Paint";
|
|
|
|
public override void Enter()
|
|
{
|
|
//if (Manager.Insect)
|
|
// Manager.Insect.enabled = false;
|
|
|
|
if (Manager.Player)
|
|
{
|
|
Manager.Player.enabled = true;
|
|
Manager.Player.ControlEnabled = false;
|
|
}
|
|
|
|
if (Manager.CameraInput)
|
|
{
|
|
Manager.CameraInput.LookMode = ThirdPersonOrbitInput.OrbitLookMode.HoldRightMouseButton;
|
|
Manager.CameraInput.PanEnabled = true;
|
|
}
|
|
|
|
if (Manager.Painter)
|
|
Manager.Painter.PaintingEnabled = true;
|
|
}
|
|
|
|
public override void Exit()
|
|
{
|
|
// Leaving paint mode releases the middle-mouse pan; the orbit input then eases the framing home.
|
|
if (Manager.CameraInput)
|
|
Manager.CameraInput.PanEnabled = false;
|
|
}
|
|
}
|