velox/Code/Utils/EngineStream/EngineStream.cs
2025-11-06 12:13:30 +07:00

37 lines
1.0 KiB
C#

using Sandbox;
using System.Collections.Generic;
using VeloX.Audio;
namespace VeloX;
[AssetType( Name = "Engine Stream", Extension = "engstr", Category = "VeloX" )]
[Icon( "time_to_leave" )]
public sealed class EngineStream : GameResource
{
public sealed class Layer
{
[Property,
Title( "Sound File" ),
Description( "Sound asset for this layer" )]
public SoundFile AudioPath { get; set; }
[Property, Title( "Use Redline Effect" ),
Description( "Enable RPM-based vibration effect" )]
public bool UseRedline { get; set; } = true;
[Property, Title( "Controllers" ),
Description( "Audio parameter controllers" )]
public List<Controller> Controllers { get; set; }
[Property, Title( "Is Muted" )]
public bool IsMuted { get; set; }
}
[Property, Title( "Stream Parameters" ),
Description( "Global engine sound parameters" )]
public StreamParameters Parameters { get; set; }
[Property, Title( "Sound Layers" ),
Description( "Individual sound layers" )]
public Dictionary<string, Layer> Layers { get; set; }
}