// <auto-generated />
#nullable enable
#pragma warning disable CS1591

using System;
using System.Diagnostics;
using System.Drawing;
using CounterStrikeSharp;
using CounterStrikeSharp.API.Modules.Events;
using CounterStrikeSharp.API.Modules.Entities;
using CounterStrikeSharp.API.Modules.Memory;
using CounterStrikeSharp.API.Modules.Utils;
using CounterStrikeSharp.API.Core.Attributes;

namespace CounterStrikeSharp.API.Core;

public partial class CFuncTrackTrain : CBaseModelEntity
{
    public CFuncTrackTrain (IntPtr pointer) : base(pointer) {}

	// m_ppath
	[SchemaMember("CFuncTrackTrain", "m_ppath")]
	public CHandle<CPathTrack> Ppath => Schema.GetDeclaredClass<CHandle<CPathTrack>>(this.Handle, "CFuncTrackTrain", "m_ppath");

	// m_length
	[SchemaMember("CFuncTrackTrain", "m_length")]
	public ref float Length => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_length");

	// m_vPosPrev
	[SchemaMember("CFuncTrackTrain", "m_vPosPrev")]
	public Vector PosPrev => Schema.GetDeclaredClass<Vector>(this.Handle, "CFuncTrackTrain", "m_vPosPrev");

	// m_angPrev
	[SchemaMember("CFuncTrackTrain", "m_angPrev")]
	public QAngle Prev => Schema.GetDeclaredClass<QAngle>(this.Handle, "CFuncTrackTrain", "m_angPrev");

	// m_controlMins
	[SchemaMember("CFuncTrackTrain", "m_controlMins")]
	public Vector ControlMins => Schema.GetDeclaredClass<Vector>(this.Handle, "CFuncTrackTrain", "m_controlMins");

	// m_controlMaxs
	[SchemaMember("CFuncTrackTrain", "m_controlMaxs")]
	public Vector ControlMaxs => Schema.GetDeclaredClass<Vector>(this.Handle, "CFuncTrackTrain", "m_controlMaxs");

	// m_lastBlockPos
	[SchemaMember("CFuncTrackTrain", "m_lastBlockPos")]
	public Vector LastBlockPos => Schema.GetDeclaredClass<Vector>(this.Handle, "CFuncTrackTrain", "m_lastBlockPos");

	// m_lastBlockTick
	[SchemaMember("CFuncTrackTrain", "m_lastBlockTick")]
	public ref Int32 LastBlockTick => ref Schema.GetRef<Int32>(this.Handle, "CFuncTrackTrain", "m_lastBlockTick");

	// m_flVolume
	[SchemaMember("CFuncTrackTrain", "m_flVolume")]
	public ref float Volume => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flVolume");

	// m_flBank
	[SchemaMember("CFuncTrackTrain", "m_flBank")]
	public ref float Bank => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flBank");

	// m_oldSpeed
	[SchemaMember("CFuncTrackTrain", "m_oldSpeed")]
	public ref float OldSpeed => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_oldSpeed");

	// m_flBlockDamage
	[SchemaMember("CFuncTrackTrain", "m_flBlockDamage")]
	public ref float BlockDamage => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flBlockDamage");

	// m_height
	[SchemaMember("CFuncTrackTrain", "m_height")]
	public ref float Height => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_height");

	// m_maxSpeed
	[SchemaMember("CFuncTrackTrain", "m_maxSpeed")]
	public ref float MaxSpeed => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_maxSpeed");

	// m_dir
	[SchemaMember("CFuncTrackTrain", "m_dir")]
	public ref float Dir => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_dir");

	// m_iszSoundMove
	[SchemaMember("CFuncTrackTrain", "m_iszSoundMove")]
	public string SoundMove
	{
		get { return Schema.GetUtf8String(this.Handle, "CFuncTrackTrain", "m_iszSoundMove"); }
		set { Schema.SetString(this.Handle, "CFuncTrackTrain", "m_iszSoundMove", value); }
	}

	// m_iszSoundMovePing
	[SchemaMember("CFuncTrackTrain", "m_iszSoundMovePing")]
	public string SoundMovePing
	{
		get { return Schema.GetUtf8String(this.Handle, "CFuncTrackTrain", "m_iszSoundMovePing"); }
		set { Schema.SetString(this.Handle, "CFuncTrackTrain", "m_iszSoundMovePing", value); }
	}

	// m_iszSoundStart
	[SchemaMember("CFuncTrackTrain", "m_iszSoundStart")]
	public string SoundStart
	{
		get { return Schema.GetUtf8String(this.Handle, "CFuncTrackTrain", "m_iszSoundStart"); }
		set { Schema.SetString(this.Handle, "CFuncTrackTrain", "m_iszSoundStart", value); }
	}

	// m_iszSoundStop
	[SchemaMember("CFuncTrackTrain", "m_iszSoundStop")]
	public string SoundStop
	{
		get { return Schema.GetUtf8String(this.Handle, "CFuncTrackTrain", "m_iszSoundStop"); }
		set { Schema.SetString(this.Handle, "CFuncTrackTrain", "m_iszSoundStop", value); }
	}

	// m_strPathTarget
	[SchemaMember("CFuncTrackTrain", "m_strPathTarget")]
	public string StrPathTarget
	{
		get { return Schema.GetUtf8String(this.Handle, "CFuncTrackTrain", "m_strPathTarget"); }
		set { Schema.SetString(this.Handle, "CFuncTrackTrain", "m_strPathTarget", value); }
	}

	// m_flMoveSoundMinDuration
	[SchemaMember("CFuncTrackTrain", "m_flMoveSoundMinDuration")]
	public ref float MoveSoundMinDuration => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flMoveSoundMinDuration");

	// m_flMoveSoundMaxDuration
	[SchemaMember("CFuncTrackTrain", "m_flMoveSoundMaxDuration")]
	public ref float MoveSoundMaxDuration => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flMoveSoundMaxDuration");

	// m_flNextMoveSoundTime
	[SchemaMember("CFuncTrackTrain", "m_flNextMoveSoundTime")]
	public ref float NextMoveSoundTime => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flNextMoveSoundTime");

	// m_flMoveSoundMinPitch
	[SchemaMember("CFuncTrackTrain", "m_flMoveSoundMinPitch")]
	public ref float MoveSoundMinPitch => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flMoveSoundMinPitch");

	// m_flMoveSoundMaxPitch
	[SchemaMember("CFuncTrackTrain", "m_flMoveSoundMaxPitch")]
	public ref float MoveSoundMaxPitch => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flMoveSoundMaxPitch");

	// m_eOrientationType
	[SchemaMember("CFuncTrackTrain", "m_eOrientationType")]
	public ref TrainOrientationType_t OrientationType => ref Schema.GetRef<TrainOrientationType_t>(this.Handle, "CFuncTrackTrain", "m_eOrientationType");

	// m_eVelocityType
	[SchemaMember("CFuncTrackTrain", "m_eVelocityType")]
	public ref TrainVelocityType_t VelocityType => ref Schema.GetRef<TrainVelocityType_t>(this.Handle, "CFuncTrackTrain", "m_eVelocityType");

	// m_OnStart
	[SchemaMember("CFuncTrackTrain", "m_OnStart")]
	public CEntityIOOutput OnStart => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CFuncTrackTrain", "m_OnStart");

	// m_OnNext
	[SchemaMember("CFuncTrackTrain", "m_OnNext")]
	public CEntityIOOutput OnNext => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CFuncTrackTrain", "m_OnNext");

	// m_OnArrivedAtDestinationNode
	[SchemaMember("CFuncTrackTrain", "m_OnArrivedAtDestinationNode")]
	public CEntityIOOutput OnArrivedAtDestinationNode => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CFuncTrackTrain", "m_OnArrivedAtDestinationNode");

	// m_bManualSpeedChanges
	[SchemaMember("CFuncTrackTrain", "m_bManualSpeedChanges")]
	public ref bool ManualSpeedChanges => ref Schema.GetRef<bool>(this.Handle, "CFuncTrackTrain", "m_bManualSpeedChanges");

	// m_flDesiredSpeed
	[SchemaMember("CFuncTrackTrain", "m_flDesiredSpeed")]
	public ref float DesiredSpeed => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flDesiredSpeed");

	// m_flSpeedChangeTime
	[SchemaMember("CFuncTrackTrain", "m_flSpeedChangeTime")]
	public ref float SpeedChangeTime => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flSpeedChangeTime");

	// m_flAccelSpeed
	[SchemaMember("CFuncTrackTrain", "m_flAccelSpeed")]
	public ref float AccelSpeed => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flAccelSpeed");

	// m_flDecelSpeed
	[SchemaMember("CFuncTrackTrain", "m_flDecelSpeed")]
	public ref float DecelSpeed => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flDecelSpeed");

	// m_bAccelToSpeed
	[SchemaMember("CFuncTrackTrain", "m_bAccelToSpeed")]
	public ref bool AccelToSpeed => ref Schema.GetRef<bool>(this.Handle, "CFuncTrackTrain", "m_bAccelToSpeed");

	// m_flNextMPSoundTime
	[SchemaMember("CFuncTrackTrain", "m_flNextMPSoundTime")]
	public ref float NextMPSoundTime => ref Schema.GetRef<float>(this.Handle, "CFuncTrackTrain", "m_flNextMPSoundTime");

}
