Garry's Mod Wiki

matproxy.Add

  matproxy.Add( table matProxyData )

Description

Register a material proxy. See matproxy for more general explanation of what they are.

The bind function is required. The init function won't run without it set.

Arguments

1 table matProxyData
The information about the proxy. See MatProxyData structure

Example

Adds PlayerColor proxy. Example taken from lua/matproxy/player_color.lua.

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 } )
Output: Adds PlayerColor proxy.

Example

Material proxy values are stored like this:

  • In the .vmt:
Proxies { PlayerColor { resultVar $color2 myVariable $color } }
values = { resultvar = "$color2" myvariable = "$color" }