Garry's Mod Wiki

Revision Difference

matproxy.Add#519060

<function name="Add" parent="matproxy" type="libraryfunc"> <description>Adds a material proxy.</description> <realm>Client</realm> <args> <arg name="MatProxyData" type="table">The information about the proxy. See <page>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> <code> 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: ``` Proxies { PlayerColor { resultVar $color2 myVariable $color } } ``` * In Lua ( The **Init** function of <page>MatProxyData</page> ) * In Lua ( The **Init** function of <page>Structures/MatProxyData</page> ) </description> <code> values = { resultvar = "$color2" myvariable = "$color" } </code> </example>