Files
sbox-public/game/addons/tools/Code/Scene/Tools/Component/HullColiderTool.cs
s&box team 71f266059a Open source release
This commit imports the C# engine code and game files, excluding C++ source code.

[Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
2025-11-24 09:05:18 +00:00

40 lines
1013 B
C#

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