Revision Difference
Coding-Cheat-Sheet#545926
<cat>Code.Intro</cat>⤶
<title>Cheat-Sheet</title>⤶
⤶
A lot of things a common between game engines. Here's how to do a bunch of common stuff.⤶
⤶
## Console Printing⤶
⤶
```⤶
Log.Info( "It worked!" );⤶
Log.Warning( $"{playername} is an idiot!" );⤶
Log.Error( "Error!" );⤶
```⤶
⤶
⤶
## Debug Drawing⤶
⤶
```⤶
⤶
// draw text at position for 10 seconds⤶
DebugOverlay.Text( position, "Some Text!", Color.Yellow, 10.0f );⤶
⤶
// draw a line⤶
DebugOverlay.Text( startPos, endPos );⤶
⤶
// draw text on screen⤶
DebugOverlay.ScreenText( "Hello, debug text!\nSupports multiple lines" );⤶
```⤶
⤶
## Spawning an Entity⤶
⤶
```⤶
ModelEntity model = new ModelEntity( "models/citizen/citizen.vmdl" );⤶
model.Position = new Vector3( 0, 0, 100 );⤶
```⤶
⤶
## Get Entity's Eye Position and Direction⤶
⤶
```⤶
Vector3 eyePos = Entity.EyePos;⤶
Vector3 eyeDir = Entity.EyeRot.Forward;⤶
```⤶
⤶
## Do a ray trace⤶
⤶
```⤶
// trace 2000 units in eye direction, ignore entity⤶
TraceResult tr = Trace.Ray( eyePos, eyeDir * 2000 )⤶
.Ignore( Entity )⤶
.Run();⤶
⤶
// If we hit, draw a 2 inch sphere for 10 seconds⤶
if ( tr.Hit )⤶
{⤶
DebugOverlay.Sphere( tr.EndPos, 2.0f, Color.Red, duration: 10.0f );⤶
}⤶
⤶
```⤶
⤶
## Create a Server Console Command⤶
⤶
```⤶
[ServerCmd( "my_command" )]⤶
public static void MyConsoleCommand()⤶
{⤶
// the client that is calling the console command⤶
var callingClient = ConsoleSystem.Caller;⤶
}⤶
```⤶
⤶
⤶
## Create a Client Console Command⤶
⤶
```⤶
[ClientCmd( "my_command" )]⤶
public static void MyConsoleCommand()⤶
{⤶
⤶
}⤶
```⤶
⤶
## Console Command Arguments⤶
⤶
```⤶
// my_command Poop 7 false⤶
[ClientCmd( "my_command" )]⤶
public static void MyConsoleCommand( string one, int two, bool three )⤶
{⤶
⤶
}⤶
```⤶
⤶
⤶
## Calling a Console Command⤶
⤶
```⤶
MyConsoleCommand( "poop", 7, false );⤶
```⤶