Garry's Mod Wiki

Revision Difference

matproxy.Add#511546

<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 &lt;page&gt;MatProxyData&lt;/page&gt;</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> )⤶ </description>⤶ <code>⤶ values = {⤶ resultvar = "$color2"⤶ myvariable = "$color"⤶ }⤶ </code>⤶ ⤶ </example>