SkaterMap.cs
using Skateboard.Entities;
namespace Skateboard;
public sealed class SkaterMap : MapInstance
{
public static SkaterMap Current { get; set; }
protected override void OnAwake()
{
Current = this;
}
[ConCmd( "map", ConVarFlags.Admin )]
private static void Command_ChangeMap( string mapName )
{
Current?.ChangeMap( mapName );
}
[Rpc.Broadcast]
public void ChangeMap( string mapName )
{
if ( !Networking.IsHost )
return;
MapName = mapName;
foreach ( var pawn in Scene.GetAllComponents<Skateboard.Player.SkatePawn>() )
{
pawn.Respawn();
}
}
protected override void OnCreateObject( GameObject go, MapLoader.ObjectEntry kv )
{
if ( !Game.IsPlaying )
return;
if ( kv.TypeName == "grind_path" )
{
var json = kv.GetValue<string>( "pathNodesJSON" );
var path = go.AddComponent<GrindPathEntity>();
path.SetPathNodesJson( json );
}
if ( kv.TypeName == "grind_path_node" )
{
go.AddComponent<GrindPathNodeEntity>();
}
}
}