Garry's Mod Wiki

Revision Difference

matproxy.Add#560351

<function name="Add" parent="matproxy" type="libraryfunc"> <description>Adds a material proxy.</description> <description>Register a material proxy. See <page>matproxy</page> for more general explanation of what they are.</description> <realm>Client</realm> <file line="20-L45">lua/includes/modules/matproxy.lua</file> <args> <arg name="MatProxyData" type="table">The information about the proxy. See <page>Structures/MatProxyData</page></arg> <arg name="matProxyData" type="table">The information about the proxy. See <page>Structures/MatProxyData</page></arg> </args> </function> <example> <description>Adds PlayerColor proxy. Example taken from lua/matproxy/player_color.lua.</description> <description>Adds `PlayerColor` proxy. Example taken from `lua/matproxy/player_color.lua`.</description> <code> matproxy.Add({ matproxy.Add( { name = "PlayerColor", init = function( self, mat, values ) -- Store the name of the variable we want to set self.ResultTo = values.resultvar end, bind = function( self, mat, ent ) -- If the target ent has a function called GetPlayerColor then use that -- The function SHOULD return a Vector with the chosen player's colour. -- In sandbox this function is created as a network function, -- in player_sandbox.lua in SetupDataTables if ( ent.GetPlayerColor ) then mat:SetVector( self.ResultTo, ent:GetPlayerColor() ) end end }) } ) </code> <output>Adds PlayerColor proxy.</output> </example> <example> <description> Material proxy values are stored like this: * In the .vmt:⤶ * In the `.vmt`:⤶ ``` Proxies { PlayerColor { resultVar $color2 myVariable $color } } ``` * In Lua ( The **Init** function of <page>Structures/MatProxyData</page> ) </description> <code> values = { resultvar = "$color2" myvariable = "$color" } </code> </example>