Code/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()
{
}
}