// <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 CFish : CBaseAnimGraph
{
    public CFish (IntPtr pointer) : base(pointer) {}

	// m_pool
	[SchemaMember("CFish", "m_pool")]
	public CHandle<CFishPool> Pool => Schema.GetDeclaredClass<CHandle<CFishPool>>(this.Handle, "CFish", "m_pool");

	// m_id
	[SchemaMember("CFish", "m_id")]
	public ref UInt32 Id => ref Schema.GetRef<UInt32>(this.Handle, "CFish", "m_id");

	// m_x
	[SchemaMember("CFish", "m_x")]
	public ref float X => ref Schema.GetRef<float>(this.Handle, "CFish", "m_x");

	// m_y
	[SchemaMember("CFish", "m_y")]
	public ref float Y => ref Schema.GetRef<float>(this.Handle, "CFish", "m_y");

	// m_z
	[SchemaMember("CFish", "m_z")]
	public ref float Z => ref Schema.GetRef<float>(this.Handle, "CFish", "m_z");

	// m_angle
	[SchemaMember("CFish", "m_angle")]
	public ref float Angle => ref Schema.GetRef<float>(this.Handle, "CFish", "m_angle");

	// m_angleChange
	[SchemaMember("CFish", "m_angleChange")]
	public ref float AngleChange => ref Schema.GetRef<float>(this.Handle, "CFish", "m_angleChange");

	// m_forward
	[SchemaMember("CFish", "m_forward")]
	public Vector Forward => Schema.GetDeclaredClass<Vector>(this.Handle, "CFish", "m_forward");

	// m_perp
	[SchemaMember("CFish", "m_perp")]
	public Vector Perp => Schema.GetDeclaredClass<Vector>(this.Handle, "CFish", "m_perp");

	// m_poolOrigin
	[SchemaMember("CFish", "m_poolOrigin")]
	public Vector PoolOrigin => Schema.GetDeclaredClass<Vector>(this.Handle, "CFish", "m_poolOrigin");

	// m_waterLevel
	[SchemaMember("CFish", "m_waterLevel")]
	public ref float FishWaterLevel => ref Schema.GetRef<float>(this.Handle, "CFish", "m_waterLevel");

	// m_speed
	[SchemaMember("CFish", "m_speed")]
	public new ref float Speed => ref Schema.GetRef<float>(this.Handle, "CFish", "m_speed");

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

	// m_calmSpeed
	[SchemaMember("CFish", "m_calmSpeed")]
	public ref float CalmSpeed => ref Schema.GetRef<float>(this.Handle, "CFish", "m_calmSpeed");

	// m_panicSpeed
	[SchemaMember("CFish", "m_panicSpeed")]
	public ref float PanicSpeed => ref Schema.GetRef<float>(this.Handle, "CFish", "m_panicSpeed");

	// m_avoidRange
	[SchemaMember("CFish", "m_avoidRange")]
	public ref float AvoidRange => ref Schema.GetRef<float>(this.Handle, "CFish", "m_avoidRange");

	// m_turnTimer
	[SchemaMember("CFish", "m_turnTimer")]
	public CountdownTimer TurnTimer => Schema.GetDeclaredClass<CountdownTimer>(this.Handle, "CFish", "m_turnTimer");

	// m_turnClockwise
	[SchemaMember("CFish", "m_turnClockwise")]
	public ref bool TurnClockwise => ref Schema.GetRef<bool>(this.Handle, "CFish", "m_turnClockwise");

	// m_goTimer
	[SchemaMember("CFish", "m_goTimer")]
	public CountdownTimer GoTimer => Schema.GetDeclaredClass<CountdownTimer>(this.Handle, "CFish", "m_goTimer");

	// m_moveTimer
	[SchemaMember("CFish", "m_moveTimer")]
	public CountdownTimer MoveTimer => Schema.GetDeclaredClass<CountdownTimer>(this.Handle, "CFish", "m_moveTimer");

	// m_panicTimer
	[SchemaMember("CFish", "m_panicTimer")]
	public CountdownTimer PanicTimer => Schema.GetDeclaredClass<CountdownTimer>(this.Handle, "CFish", "m_panicTimer");

	// m_disperseTimer
	[SchemaMember("CFish", "m_disperseTimer")]
	public CountdownTimer DisperseTimer => Schema.GetDeclaredClass<CountdownTimer>(this.Handle, "CFish", "m_disperseTimer");

	// m_proximityTimer
	[SchemaMember("CFish", "m_proximityTimer")]
	public CountdownTimer ProximityTimer => Schema.GetDeclaredClass<CountdownTimer>(this.Handle, "CFish", "m_proximityTimer");

	// m_visible
	[SchemaMember("CFish", "m_visible")]
	public NetworkedVector<CFish?> Visible => Schema.GetDeclaredClass<NetworkedVector<CFish?>>(this.Handle, "CFish", "m_visible");

}
