Files
sbox-public/game/addons/tools/Code/Scene/Tools/Component/BoxColliderTool.cs
bakscratch d4b35a0d44 Bounding box snapping (#4897)
* BoundingBox Control Snaps to the current grid size
2026-05-21 15:38:24 +01:00

36 lines
868 B
C#

using Sandbox;
namespace Editor;
public class BoxColliderTool : EditorTool<BoxCollider>
{
private IDisposable _componentUndoScope;
public override void OnUpdate()
{
var boxCollider = GetSelectedComponent<BoxCollider>();
if ( boxCollider == null )
return;
var currentBox = BBox.FromPositionAndSize( boxCollider.Center, boxCollider.Scale );
using ( Gizmo.Scope( "Box Collider Editor", boxCollider.WorldTransform ) )
{
if ( Gizmo.Control.BoundingBox( "Bounds", currentBox, out var newBox ) )
{
_componentUndoScope ??= SceneEditorSession.Active.UndoScope( "Resize Box Collider" )
.WithComponentChanges( boxCollider ).Push();
boxCollider.Center = newBox.Center;
boxCollider.Scale = newBox.Size;
}
if ( Gizmo.WasLeftMouseReleased )
{
_componentUndoScope?.Dispose();
_componentUndoScope = null;
}
}
}
}