Garry's Mod Wiki

Revision Difference

Structures/CollisionData#526398

<cat>struct</cat> <structure> <description> Passed as argument of <page>ENTITY:PhysicsCollide</page>, <page>EFFECT:PhysicsCollide</page> and used with <page>Entity:AddCallback</page>. <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. ``` function 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 ``` </note> </description> <fields> <item name="HitPos" type="Vector">The collision position</item> <item name="HitEntity" type="Entity">The other collision entity</item> <item name="OurOldVelocity" type="Vector">The entity's velocity before the collision</item> <item name="HitObject" type="PhysObj">Other entity's physics object</item> <item name="DeltaTime" type="number">Time since the last collision **with this HitEntity**</item> <item name="TheirOldVelocity" type="Vector">Speed of the other entity before the collision</item> <item name="Speed" type="number">The speed of the entity before the collision</item> <item name="HitNormal" type="Vector">Normal of the surface that hit the other entity</item> <item name="PhysObject" type="PhysObj">Entity's physics object</item> <item name="OurSurfaceProps"></item>⤶ <item name="TheirSurfaceProps"></item>⤶ <item name="OurSurfaceProps" type="number"></item>⤶ <item name="TheirSurfaceProps" type="number"></item>⤶ <item name="HitSpeed" type="number"></item> <item name="OurNewVelocity" type="Vector"></item> <item name="TheirNewVelocity" type="Vector"></item> <item name="OurOldAngularVelocity" type="Vector"></item> <item name="TheirOldAngularVelocity" type="Vector"></item> </fields> </structure>