Structures/CollisionData

From Garry's Mod
(Difference between revisions)
Jump to: navigation, search
(Added this page)
 
 
(13 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Class
+
{{Structure
| Description = Passed as argument of the [[SEnts/Events/PhysicsCollide]] event.
+
|Description=Passed as argument of {{HookFunction|ENTITY|PhysicsCollide}}.
| Fields =
+
 
{{ClassField|Shared|Vector|CollisionData|HitPos}}
+
{{Note|Sometimes, the value of 'Speed' can be different from getting the length calculated from 'OurOldVelocity', even though they should be the same, or close to same. It's recommended to do 'OurOldVelocity:Length()' instead.
{{ClassField|Shared|Entity|CollisionData|HitEntity}}
+
<pre>
{{ClassField|Shared|Vector|CollisionData|OurOldVelocity}}
+
ENT:PhysicsCollide( colData, collider )
{{ClassField|Shared|Physobj|CollisionData|HitObject}}
+
    -- you may get two completely different values, and the second one should be more accurate.
{{ClassField|Shared|number|CollisionData|DeltaTime}}
+
    print(colData.Speed)
{{ClassField|Shared|Vector|CollisionData|TheirOldVelocity}}
+
    print(colData.OurOldVelocity:Length())
{{ClassField|Shared|number|CollisionData|Speed}}
+
end
{{ClassField|Shared|Vector|CollisionData|HitNormal}}
+
</pre> }}
 +
 
 +
|Fields={{StructureField|Vector|HitPos|The collision position}}{{StructureField|Entity|HitEntity|The other collision entity}}{{StructureField|Vector|OurOldVelocity|The entity's velocity before the collision}}{{StructureField|PhysObj|HitObject|Other entity's physics object}}{{StructureField|number|DeltaTime|Time since the last collision ''with this HitEntity''}}{{StructureField|Vector|TheirOldVelocity|Speed of the other entity before the collision}}{{StructureField|number|Speed|The speed of the entity before the collision}}{{StructureField|Vector|HitNormal|Normal of the surface that hit the other entity}}{{StructureField|PhysObj|PhysObject|Entity's physics object}}
 
}}
 
}}

Latest revision as of 17:03, 18 March 2018

Passed as argument of ENTITY:PhysicsCollide.
NOTE

Sometimes, the value of 'Speed' can be different from getting the length calculated from 'OurOldVelocity', even though they should be the same, or close to same. It's recommended to do 'OurOldVelocity:Length()' instead.

ENT:PhysicsCollide( colData, collider )
    -- you may get two completely different values, and the second one should be more accurate.
    print(colData.Speed)
    print(colData.OurOldVelocity:Length())
end



Type Name Description
Vector HitPos

The collision position

Entity HitEntity

The other collision entity

Vector OurOldVelocity

The entity's velocity before the collision

PhysObj HitObject

Other entity's physics object

number DeltaTime

Time since the last collision with this HitEntity

Vector TheirOldVelocity

Speed of the other entity before the collision

number Speed

The speed of the entity before the collision

Vector HitNormal

Normal of the surface that hit the other entity

PhysObj PhysObject

Entity's physics object

Personal tools
Navigation