mirror of
https://github.com/Facepunch/sbox-public.git
synced 2026-01-02 11:28:19 -05:00
This commit imports the C# engine code and game files, excluding C++ source code. [Source-Commit: ceb3d758046e50faa6258bc3b658a30c97743268]
47 lines
884 B
C#
47 lines
884 B
C#
namespace Sandbox;
|
|
|
|
public abstract partial class Collider
|
|
{
|
|
ColliderFlags _flags;
|
|
|
|
/// <summary>
|
|
/// Flags that modify the behavior of this collider
|
|
/// </summary>
|
|
[Property]
|
|
public ColliderFlags ColliderFlags
|
|
{
|
|
get => _flags;
|
|
set
|
|
{
|
|
if ( _flags == value )
|
|
return;
|
|
|
|
_flags = value;
|
|
ApplyColliderFlags();
|
|
}
|
|
}
|
|
|
|
void ApplyColliderFlags()
|
|
{
|
|
foreach ( var shape in Shapes )
|
|
{
|
|
shape.native.SetIgnoreTraces( ColliderFlags.Contains( ColliderFlags.IgnoreTraces ) );
|
|
shape.native.SetHasNoMass( ColliderFlags.Contains( ColliderFlags.IgnoreMass ) );
|
|
}
|
|
}
|
|
}
|
|
|
|
[Expose, Flags]
|
|
public enum ColliderFlags
|
|
{
|
|
/// <summary>
|
|
/// Traces can never see this collider, no matter what happens
|
|
/// </summary>
|
|
IgnoreTraces = 1 << 0,
|
|
|
|
/// <summary>
|
|
/// Collider has no mass, won't affect physics objects it collides with
|
|
/// </summary>
|
|
IgnoreMass = 1 << 1,
|
|
}
|