Garry's Mod Wiki

Revision Difference

properties.Add#512976

<function name="Add" parent="properties" type="libraryfunc">⤶ <description>Add properties to the properties module</description>⤶ <realm>Shared</realm>⤶ <args>⤶ <arg name="name" type="string">A unique name used to identify the property</arg>⤶ <arg name="propertyData" type="table">A table that defines the property. Uses the &lt;page&gt;PropertyAdd&lt;/page&gt;.</arg>⤶ </args>⤶ </function>⤶ ⤶ <example>⤶ <description>Defines a property that can be used to ignite entities (from Sandbox)</description>⤶ <code>⤶ properties.Add( "ignite", {⤶ MenuLabel = "#ignite", -- Name to display on the context menu⤶ Order = 999, -- The order to display this property relative to other properties⤶ MenuIcon = "icon16/fire.png", -- The icon to display next to the property⤶ ⤶ Filter = function( self, ent, ply ) -- A function that determines whether an entity is valid for this property⤶ if ( !IsValid( ent ) ) then return false end⤶ if ( ent:IsPlayer() ) then return false end⤶ if ( !CanEntityBeSetOnFire( ent ) ) then return false end⤶ if ( !gamemode.Call( "CanProperty", ply, "ignite", ent ) ) then return false end⤶ ⤶ return !ent:IsOnFire() ⤶ end,⤶ Action = function( self, ent ) -- The action to perform upon using the property ( Clientside )⤶ ⤶ self:MsgStart()⤶ net.WriteEntity( ent )⤶ self:MsgEnd()⤶ ⤶ end,⤶ Receive = function( self, length, player ) -- The action to perform upon using the property ( Serverside )⤶ local ent = net.ReadEntity()⤶ if ( !self:Filter( ent, player ) ) then return end⤶ ⤶ ent:Ignite( 360 )⤶ end ⤶ } )⤶ </code>⤶ ⤶ </example>