Revision Difference
Global.DEFINE_BASECLASS#564955
<function name="DEFINE_BASECLASS" parent="Global" type="libraryfunc">
	<description>
		A preprocessor keyword that is directly replaced with the following text:⤶
		Generates and provides a local variable `BaseClass` that can be used to call the original version of a class functions after modifying it.⤶
⤶
		This is a preprocessor keyword that is directly replaced with the following text:⤶
```lua
local BaseClass = baseclass.Get
```
Because this is a simple preprocessor keyword and not a function, it will cause problems if not used properly
See <page>baseclass.Get</page> for more information.
	<warning>The preprocessor is not smart enough to know when substitution doesn't make sense, such as: table keys and strings.  
Running `print("DEFINE_BASECLASS")` is the same as `print("local BaseClass = baseclass.Get")`</warning>
For more information, including usage examples, see the <page>BaseClasses</page> reference page.
	</description>
	<realm>Shared and Menu</realm>
	<args>
		<arg name="value" type="string">Baseclass name</arg>
	</args>
</function></function>⤶
⤶
<example>⤶
	<description>Showcase Demonstration from the sandbox gamemode code</description>⤶
	<code>⤶
DEFINE_BASECLASS( "gamemode_base" )		--Establish the var BaseClass to hold the original base gamemode functions⤶
⤶
function GM:PlayerSpawn( pl, transiton )	--overriding the original function with our own⤶
⤶
	player_manager.SetPlayerClass( pl, "player_sandbox" )	--Adding our extended functionality⤶
⤶
	BaseClass.PlayerSpawn( self, pl, transiton )	-- Calling the original GM:PlayerSpawn so still get original functionality⤶
⤶
end⤶
	</code>⤶
	<output>Original Spawning Mechanics with the addition that players now spawn with `player_sandbox` class </output>⤶
</example>
 Garry's Mod
			Garry's Mod 
		 Rust
			Rust 
		 Steamworks
			Steamworks 
		 Wiki Help
			Wiki Help