engines.trace module

Provides ray tracing functionality.

class engines.trace.BaseTrace

Bases: instance

__init__((object)arg1) None
property all_solid

None( (_engines._trace.BaseTrace)arg1) -> bool

property contents

None( (_engines._trace.BaseTrace)arg1) -> int

property displacement_flags

None( (_engines._trace.BaseTrace)arg1) -> int

property end_position

None( (_engines._trace.BaseTrace)arg1) -> object

property fraction

None( (_engines._trace.BaseTrace)arg1) -> float

property plane

None( (_engines._trace.BaseTrace)arg1) -> object

property start_position

None( (_engines._trace.BaseTrace)arg1) -> object

property start_solid

None( (_engines._trace.BaseTrace)arg1) -> bool

class engines.trace.ContentFlags(*values)[source]

Bases: IntFlag

Content flags wrapper enumerator.

ALL_VISIBLE = 255
AREAPORTAL = 32768
AUX = 4
BLOCKLOS = 64
CURRENT_0 = 262144
CURRENT_180 = 1048576
CURRENT_270 = 2097152
CURRENT_90 = 524288
CURRENT_DOWN = 8388608
CURRENT_UP = 4194304
DEBRIS = 67108864
DETAIL = 134217728
EMPTY = 0
GRATE = 8
HITBOX = 1073741824
IGNORE_NODRAW_OPAQUE = 8192
LADDER = 536870912
LAST_VISIBLE = 128
MONSTER = 33554432
MONSTERCLIP = 131072
MOVEABLE = 16384
OPAQUE = 128
ORIGIN = 16777216
PLAYERCLIP = 65536
SLIME = 16
SOLID = 1
TEAM1 = 2048
TEAM2 = 4096
TESTFOGVOLUME = 256
TRANSLUCENT = 268435456
UNUSED = 512
WATER = 32
WINDOW = 2
class engines.trace.ContentMasks(new_class_name, /, names, *, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: IntFlag

Content masks wrapper enumerator.

ALL = 4294967295
BLOCKLOS = 16449
BLOCKLOS_AND_NPCS = 33570881
CURRENT = 16515072
DEAD_SOLID = 65547
NPC_SOLID = 33701899
NPC_WORLD_STATIC = 131083
OPAQUE = 16513
OPAQUE_AND_NPCS = 33570945
PLAYER_SOLID = 33636363
PLAYER_SOLID_BRUSH_ONLY = 81931
SHOT = 1174421507
SHOT_HULL = 100679691
SHOT_PORTAL = 33570819
SOLID = 33570827
SOLID_BRUSH_ONLY = 16395
SPLIT_AREA_PORTAL = 48
VISIBLE = 24705
VISIBLE_AND_NPCS = 33579137
WATER = 16432
class engines.trace.DisplacementFlags

Bases: enum

BUILDABLE = _engines._trace.DisplacementFlags.BUILDABLE
SURFACE = _engines._trace.DisplacementFlags.SURFACE
SURFPROP1 = _engines._trace.DisplacementFlags.SURFPROP1
SURFPROP2 = _engines._trace.DisplacementFlags.SURFPROP2
WALKABLE = _engines._trace.DisplacementFlags.WALKABLE
names = {'BUILDABLE': _engines._trace.DisplacementFlags.BUILDABLE, 'SURFACE': _engines._trace.DisplacementFlags.SURFACE, 'SURFPROP1': _engines._trace.DisplacementFlags.SURFPROP1, 'SURFPROP2': _engines._trace.DisplacementFlags.SURFPROP2, 'WALKABLE': _engines._trace.DisplacementFlags.WALKABLE}
values = {1: _engines._trace.DisplacementFlags.SURFACE, 2: _engines._trace.DisplacementFlags.WALKABLE, 4: _engines._trace.DisplacementFlags.BUILDABLE, 8: _engines._trace.DisplacementFlags.SURFPROP1, 16: _engines._trace.DisplacementFlags.SURFPROP2}
class engines.trace.EntityEnumerator

Bases: instance

__init__((object)arg1) None
enum_entity((EntityEnumerator)arg1, (_entities.HandleEntity)arg2) bool :

Gets called with each handle.

enum_entity( (EntityEnumerator)arg1, (_entities.HandleEntity)arg2) -> None

class engines.trace.GameTrace

Bases: BaseTrace

__init__((object)arg1) None
did_hit((GameTrace)arg1) bool :

Returns true if there was any kind of impact at all

did_hit_world((GameTrace)arg1) bool :

Returns True if the ray hit the world entity.

property entity

None( (_engines._trace.GameTrace)arg1) -> object

property entity_index

Returns the index of the entity that was hit.

property fraction_left_solid

None( (_engines._trace.GameTrace)arg1) -> float

property hitbox

None( (_engines._trace.GameTrace)arg1) -> int

property hitgroup

None( (_engines._trace.GameTrace)arg1) -> int

property physicsbone

None( (_engines._trace.GameTrace)arg1) -> int

property surface

None( (_engines._trace.GameTrace)arg1) -> object

class engines.trace.Ray

Bases: instance

__init__((object)arg1, (_mathlib.Vector)arg2, (_mathlib.Vector)arg3) object

__init__( (object)arg1, (_mathlib.Vector)arg2, (_mathlib.Vector)arg3, (_mathlib.Vector)arg4, (_mathlib.Vector)arg5) -> object

class engines.trace.Surface

Bases: instance

__init__((object)arg1) None
property flags

None( (_engines._trace.Surface)arg1) -> int

property name

None( (_engines._trace.Surface)arg1) -> str

property surface_props

None( (_engines._trace.Surface)arg1) -> int

class engines.trace.SurfaceFlags

Bases: enum

BUMPLIGHT = _engines._trace.SurfaceFlags.BUMPLIGHT
HINT = _engines._trace.SurfaceFlags.HINT
HITBOX = _engines._trace.SurfaceFlags.HITBOX
LIGHT = _engines._trace.SurfaceFlags.LIGHT
NOCHOP = _engines._trace.SurfaceFlags.NOCHOP
NODECALS = _engines._trace.SurfaceFlags.NODECALS
NODRAW = _engines._trace.SurfaceFlags.NODRAW
NOLIGHT = _engines._trace.SurfaceFlags.NOLIGHT
NOPORTAL = _engines._trace.SurfaceFlags.NOPORTAL
NOSHADOWS = _engines._trace.SurfaceFlags.NOSHADOWS
SKIP = _engines._trace.SurfaceFlags.SKIP
SKY = _engines._trace.SurfaceFlags.SKY
SKY2D = _engines._trace.SurfaceFlags.SKY2D
TRANS = _engines._trace.SurfaceFlags.TRANS
TRIGGER = _engines._trace.SurfaceFlags.TRIGGER
WARP = _engines._trace.SurfaceFlags.WARP
names = {'BUMPLIGHT': _engines._trace.SurfaceFlags.BUMPLIGHT, 'HINT': _engines._trace.SurfaceFlags.HINT, 'HITBOX': _engines._trace.SurfaceFlags.HITBOX, 'LIGHT': _engines._trace.SurfaceFlags.LIGHT, 'NOCHOP': _engines._trace.SurfaceFlags.NOCHOP, 'NODECALS': _engines._trace.SurfaceFlags.NODECALS, 'NODRAW': _engines._trace.SurfaceFlags.NODRAW, 'NOLIGHT': _engines._trace.SurfaceFlags.NOLIGHT, 'NOPORTAL': _engines._trace.SurfaceFlags.NOPORTAL, 'NOSHADOWS': _engines._trace.SurfaceFlags.NOSHADOWS, 'SKIP': _engines._trace.SurfaceFlags.SKIP, 'SKY': _engines._trace.SurfaceFlags.SKY, 'SKY2D': _engines._trace.SurfaceFlags.SKY2D, 'TRANS': _engines._trace.SurfaceFlags.TRANS, 'TRIGGER': _engines._trace.SurfaceFlags.TRIGGER, 'WARP': _engines._trace.SurfaceFlags.WARP}
values = {1: _engines._trace.SurfaceFlags.LIGHT, 2: _engines._trace.SurfaceFlags.SKY2D, 4: _engines._trace.SurfaceFlags.SKY, 8: _engines._trace.SurfaceFlags.WARP, 16: _engines._trace.SurfaceFlags.TRANS, 32: _engines._trace.SurfaceFlags.NOPORTAL, 64: _engines._trace.SurfaceFlags.TRIGGER, 128: _engines._trace.SurfaceFlags.NODRAW, 256: _engines._trace.SurfaceFlags.HINT, 512: _engines._trace.SurfaceFlags.SKIP, 1024: _engines._trace.SurfaceFlags.NOLIGHT, 2048: _engines._trace.SurfaceFlags.BUMPLIGHT, 4096: _engines._trace.SurfaceFlags.NOSHADOWS, 8192: _engines._trace.SurfaceFlags.NODECALS, 16384: _engines._trace.SurfaceFlags.NOCHOP, 32768: _engines._trace.SurfaceFlags.HITBOX}
class engines.trace.TraceFilter

Bases: instance

__init__((object)arg1) None
get_trace_type((TraceFilter)arg1) TraceType :

Returns the trace type.

get_trace_type( (TraceFilter)arg1) -> None

should_hit_entity((TraceFilter)arg1, (_entities.HandleEntity)arg2, (_engines._sound.Channel)arg3) bool :

Returns True if the a should hit the entity.

should_hit_entity( (TraceFilter)arg1, (_entities.HandleEntity)arg2, (_engines._sound.Channel)arg3) -> None

class engines.trace.TraceFilterSimple(ignore=(), trace_type=_engines._trace.TraceType.EVERYTHING)[source]

Bases: TraceFilter

A simple trace filter.

__init__(ignore=(), trace_type=_engines._trace.TraceType.EVERYTHING)[source]

Initialize the filter.

Parameters:
  • ignore (iterable) – An iterable of entity indexes to ignore. The trace will not hit these entities.

  • trace_type (TraceType) – The trace type that should be used.

get_trace_type()[source]

Return the trace type.

Return type:

TraceType

should_hit_entity(entity, mask)[source]

Called when a trace is about to hit an entity.

Parameters:
  • entity (HandleEntity) – The entity that should be hit.

  • mask (int) – The mask that was used to intialize the trace.

Return type:

bool

class engines.trace.TraceType

Bases: enum

ENTITIES_ONLY = _engines._trace.TraceType.ENTITIES_ONLY
EVERYTHING = _engines._trace.TraceType.EVERYTHING
EVERYTHING_FILTER_PROPS = _engines._trace.TraceType.EVERYTHING_FILTER_PROPS
WORLD_ONLY = _engines._trace.TraceType.WORLD_ONLY
names = {'ENTITIES_ONLY': _engines._trace.TraceType.ENTITIES_ONLY, 'EVERYTHING': _engines._trace.TraceType.EVERYTHING, 'EVERYTHING_FILTER_PROPS': _engines._trace.TraceType.EVERYTHING_FILTER_PROPS, 'WORLD_ONLY': _engines._trace.TraceType.WORLD_ONLY}
values = {0: _engines._trace.TraceType.EVERYTHING, 1: _engines._trace.TraceType.WORLD_ONLY, 2: _engines._trace.TraceType.ENTITIES_ONLY, 3: _engines._trace.TraceType.EVERYTHING_FILTER_PROPS}