Cheats.cs
namespace Sandbox;

public interface ICheatEvents : ISceneEvent<ICheatEvents>
{
	void CheatsEnabled() { }
}

public sealed class Cheats : Component
{
	[Property]
	[InputAction]
	public string Replicate { get; set; }

	[Property]
	[InputAction]
	public string Respawn { get; set; }

	[Property]
	[InputAction]
	public string Shop { get; set; }

	[Property]
	[InputAction]
	public string SpawnEnemy { get; set; }

	protected override void OnEnabled()
	{
		base.OnEnabled();

		ICheatEvents.Post( x => x.CheatsEnabled() );
	}


	protected override void OnUpdate()
	{
		if ( Input.Pressed( Replicate ) )
		{
			Scene.Get<PlayerReplicator>().ReplicatePlayers();
		}
		if ( Input.Pressed( Respawn ) )
		{
			Scene.Get<PlayerReplicator>().RespawnPlayer();
		}
		if ( Input.Pressed( Shop ) )
		{
			Scene.Get<ShopSystem>().OpenShop();
		}
		if ( Input.Pressed( SpawnEnemy ) )
		{
			Scene.Get<EnemySpawner>().SpawnOne();
		}
	}
}