Demo/SODDemoControllerComponent.cs
using System;
using System.Collections.Generic;
using Sandbox;

[Title("[DEMO] SoD Demo Controller"), Category("Second Order Dynamics (Demo)")]
public sealed class SODDemoControllerComponent : Component
{
	[Property] private List<GameObject> _slides = new();

	private int _currentSlide = 0;
	public int CurrentSlide => _currentSlide;

	protected override void OnStart()
	{
		foreach ( var s in _slides )
		{
			s.Enabled = false;
		}

		_slides[0].Enabled = true;

		Mouse.Visible = true;
	}

	public void ChangeSlide( int dir )
	{
		_slides[_currentSlide].Enabled = false;
		
		if ( _currentSlide == _slides.Count - 1 && dir > 0 )
			_currentSlide = 0;
		else if ( _currentSlide == 0 && dir < 0 )
			_currentSlide = _slides.Count - 1;
		else
			_currentSlide += Math.Clamp( dir, -1, 1 );

		_slides[_currentSlide].Enabled = true;
	}

	protected override void OnUpdate()
	{

	}
}