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

	// m_CRenderComponent
	[SchemaMember("CBaseModelEntity", "m_CRenderComponent")]
	public CRenderComponent? CRenderComponent => Schema.GetPointer<CRenderComponent>(this.Handle, "CBaseModelEntity", "m_CRenderComponent");

	// m_CHitboxComponent
	[SchemaMember("CBaseModelEntity", "m_CHitboxComponent")]
	public CHitboxComponent CHitboxComponent => Schema.GetDeclaredClass<CHitboxComponent>(this.Handle, "CBaseModelEntity", "m_CHitboxComponent");

	// m_nDestructiblePartInitialStateDestructed0
	[SchemaMember("CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed0")]
	public ref HitGroup_t DestructiblePartInitialStateDestructed0 => ref Schema.GetRef<HitGroup_t>(this.Handle, "CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed0");

	// m_nDestructiblePartInitialStateDestructed1
	[SchemaMember("CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed1")]
	public ref HitGroup_t DestructiblePartInitialStateDestructed1 => ref Schema.GetRef<HitGroup_t>(this.Handle, "CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed1");

	// m_nDestructiblePartInitialStateDestructed2
	[SchemaMember("CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed2")]
	public ref HitGroup_t DestructiblePartInitialStateDestructed2 => ref Schema.GetRef<HitGroup_t>(this.Handle, "CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed2");

	// m_nDestructiblePartInitialStateDestructed3
	[SchemaMember("CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed3")]
	public ref HitGroup_t DestructiblePartInitialStateDestructed3 => ref Schema.GetRef<HitGroup_t>(this.Handle, "CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed3");

	// m_nDestructiblePartInitialStateDestructed4
	[SchemaMember("CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed4")]
	public ref HitGroup_t DestructiblePartInitialStateDestructed4 => ref Schema.GetRef<HitGroup_t>(this.Handle, "CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed4");

	// m_nDestructiblePartInitialStateDestructed0_PartIndex
	[SchemaMember("CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed0_PartIndex")]
	public ref Int32 DestructiblePartInitialStateDestructed0_PartIndex => ref Schema.GetRef<Int32>(this.Handle, "CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed0_PartIndex");

	// m_nDestructiblePartInitialStateDestructed1_PartIndex
	[SchemaMember("CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed1_PartIndex")]
	public ref Int32 DestructiblePartInitialStateDestructed1_PartIndex => ref Schema.GetRef<Int32>(this.Handle, "CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed1_PartIndex");

	// m_nDestructiblePartInitialStateDestructed2_PartIndex
	[SchemaMember("CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed2_PartIndex")]
	public ref Int32 DestructiblePartInitialStateDestructed2_PartIndex => ref Schema.GetRef<Int32>(this.Handle, "CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed2_PartIndex");

	// m_nDestructiblePartInitialStateDestructed3_PartIndex
	[SchemaMember("CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed3_PartIndex")]
	public ref Int32 DestructiblePartInitialStateDestructed3_PartIndex => ref Schema.GetRef<Int32>(this.Handle, "CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed3_PartIndex");

	// m_nDestructiblePartInitialStateDestructed4_PartIndex
	[SchemaMember("CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed4_PartIndex")]
	public ref Int32 DestructiblePartInitialStateDestructed4_PartIndex => ref Schema.GetRef<Int32>(this.Handle, "CBaseModelEntity", "m_nDestructiblePartInitialStateDestructed4_PartIndex");

	// m_pDestructiblePartsSystemComponent
	[SchemaMember("CBaseModelEntity", "m_pDestructiblePartsSystemComponent")]
	public CDestructiblePartsSystemComponent? DestructiblePartsSystemComponent => Schema.GetPointer<CDestructiblePartsSystemComponent>(this.Handle, "CBaseModelEntity", "m_pDestructiblePartsSystemComponent");

	// m_LastHitGroup
	[SchemaMember("CBaseModelEntity", "m_LastHitGroup")]
	public ref HitGroup_t LastHitGroup => ref Schema.GetRef<HitGroup_t>(this.Handle, "CBaseModelEntity", "m_LastHitGroup");

	// m_sLastDamageSourceName
	[SchemaMember("CBaseModelEntity", "m_sLastDamageSourceName")]
	public string LastDamageSourceName
	{
		get { return Schema.GetUtf8String(this.Handle, "CBaseModelEntity", "m_sLastDamageSourceName"); }
		set { Schema.SetString(this.Handle, "CBaseModelEntity", "m_sLastDamageSourceName", value); }
	}

	// m_vLastDamagePosition
	[SchemaMember("CBaseModelEntity", "m_vLastDamagePosition")]
	public Vector LastDamagePosition => Schema.GetDeclaredClass<Vector>(this.Handle, "CBaseModelEntity", "m_vLastDamagePosition");

	// m_flDissolveStartTime
	[SchemaMember("CBaseModelEntity", "m_flDissolveStartTime")]
	public ref float DissolveStartTime => ref Schema.GetRef<float>(this.Handle, "CBaseModelEntity", "m_flDissolveStartTime");

	// m_OnIgnite
	[SchemaMember("CBaseModelEntity", "m_OnIgnite")]
	public CEntityIOOutput OnIgnite => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CBaseModelEntity", "m_OnIgnite");

	// m_nRenderMode
	[SchemaMember("CBaseModelEntity", "m_nRenderMode")]
	public ref RenderMode_t RenderMode => ref Schema.GetRef<RenderMode_t>(this.Handle, "CBaseModelEntity", "m_nRenderMode");

	// m_nRenderFX
	[SchemaMember("CBaseModelEntity", "m_nRenderFX")]
	public ref RenderFx_t RenderFX => ref Schema.GetRef<RenderFx_t>(this.Handle, "CBaseModelEntity", "m_nRenderFX");

	// m_bAllowFadeInView
	[SchemaMember("CBaseModelEntity", "m_bAllowFadeInView")]
	public ref bool AllowFadeInView => ref Schema.GetRef<bool>(this.Handle, "CBaseModelEntity", "m_bAllowFadeInView");

	// m_clrRender
	[SchemaMember("CBaseModelEntity", "m_clrRender")]
	public Color Render
	{
		get { return Schema.GetCustomMarshalledType<Color>(this.Handle, "CBaseModelEntity", "m_clrRender"); }
		set { Schema.SetCustomMarshalledType<Color>(this.Handle, "CBaseModelEntity", "m_clrRender", value); }
	}

	// m_vecRenderAttributes
	[SchemaMember("CBaseModelEntity", "m_vecRenderAttributes")]
	public NetworkedVector<EntityRenderAttribute_t> RenderAttributes => Schema.GetDeclaredClass<NetworkedVector<EntityRenderAttribute_t>>(this.Handle, "CBaseModelEntity", "m_vecRenderAttributes");

	// m_bRenderToCubemaps
	[SchemaMember("CBaseModelEntity", "m_bRenderToCubemaps")]
	public ref bool RenderToCubemaps => ref Schema.GetRef<bool>(this.Handle, "CBaseModelEntity", "m_bRenderToCubemaps");

	// m_bNoInterpolate
	[SchemaMember("CBaseModelEntity", "m_bNoInterpolate")]
	public ref bool NoInterpolate => ref Schema.GetRef<bool>(this.Handle, "CBaseModelEntity", "m_bNoInterpolate");

	// m_Collision
	[SchemaMember("CBaseModelEntity", "m_Collision")]
	public new CCollisionProperty Collision => Schema.GetDeclaredClass<CCollisionProperty>(this.Handle, "CBaseModelEntity", "m_Collision");

	// m_Glow
	[SchemaMember("CBaseModelEntity", "m_Glow")]
	public CGlowProperty Glow => Schema.GetDeclaredClass<CGlowProperty>(this.Handle, "CBaseModelEntity", "m_Glow");

	// m_flGlowBackfaceMult
	[SchemaMember("CBaseModelEntity", "m_flGlowBackfaceMult")]
	public ref float GlowBackfaceMult => ref Schema.GetRef<float>(this.Handle, "CBaseModelEntity", "m_flGlowBackfaceMult");

	// m_fadeMinDist
	[SchemaMember("CBaseModelEntity", "m_fadeMinDist")]
	public ref float FadeMinDist => ref Schema.GetRef<float>(this.Handle, "CBaseModelEntity", "m_fadeMinDist");

	// m_fadeMaxDist
	[SchemaMember("CBaseModelEntity", "m_fadeMaxDist")]
	public ref float FadeMaxDist => ref Schema.GetRef<float>(this.Handle, "CBaseModelEntity", "m_fadeMaxDist");

	// m_flFadeScale
	[SchemaMember("CBaseModelEntity", "m_flFadeScale")]
	public ref float FadeScale => ref Schema.GetRef<float>(this.Handle, "CBaseModelEntity", "m_flFadeScale");

	// m_flShadowStrength
	[SchemaMember("CBaseModelEntity", "m_flShadowStrength")]
	public ref float ShadowStrength => ref Schema.GetRef<float>(this.Handle, "CBaseModelEntity", "m_flShadowStrength");

	// m_nObjectCulling
	[SchemaMember("CBaseModelEntity", "m_nObjectCulling")]
	public ref byte ObjectCulling => ref Schema.GetRef<byte>(this.Handle, "CBaseModelEntity", "m_nObjectCulling");

	// m_nAddDecal
	[SchemaMember("CBaseModelEntity", "m_nAddDecal")]
	public ref Int32 AddDecal => ref Schema.GetRef<Int32>(this.Handle, "CBaseModelEntity", "m_nAddDecal");

	// m_vDecalPosition
	[SchemaMember("CBaseModelEntity", "m_vDecalPosition")]
	public Vector DecalPosition => Schema.GetDeclaredClass<Vector>(this.Handle, "CBaseModelEntity", "m_vDecalPosition");

	// m_vDecalForwardAxis
	[SchemaMember("CBaseModelEntity", "m_vDecalForwardAxis")]
	public Vector DecalForwardAxis => Schema.GetDeclaredClass<Vector>(this.Handle, "CBaseModelEntity", "m_vDecalForwardAxis");

	// m_flDecalHealBloodRate
	[SchemaMember("CBaseModelEntity", "m_flDecalHealBloodRate")]
	public ref float DecalHealBloodRate => ref Schema.GetRef<float>(this.Handle, "CBaseModelEntity", "m_flDecalHealBloodRate");

	// m_flDecalHealHeightRate
	[SchemaMember("CBaseModelEntity", "m_flDecalHealHeightRate")]
	public ref float DecalHealHeightRate => ref Schema.GetRef<float>(this.Handle, "CBaseModelEntity", "m_flDecalHealHeightRate");

	// m_nDecalMode
	[SchemaMember("CBaseModelEntity", "m_nDecalMode")]
	public ref DecalMode_t DecalMode => ref Schema.GetRef<DecalMode_t>(this.Handle, "CBaseModelEntity", "m_nDecalMode");

	// m_nRequiredDecalMode
	[SchemaMember("CBaseModelEntity", "m_nRequiredDecalMode")]
	public ref DecalMode_t RequiredDecalMode => ref Schema.GetRef<DecalMode_t>(this.Handle, "CBaseModelEntity", "m_nRequiredDecalMode");

	// m_ConfigEntitiesToPropagateMaterialDecalsTo
	[SchemaMember("CBaseModelEntity", "m_ConfigEntitiesToPropagateMaterialDecalsTo")]
	public NetworkedVector<CHandle<CBaseModelEntity>> ConfigEntitiesToPropagateMaterialDecalsTo => Schema.GetDeclaredClass<NetworkedVector<CHandle<CBaseModelEntity>>>(this.Handle, "CBaseModelEntity", "m_ConfigEntitiesToPropagateMaterialDecalsTo");

	// m_vecViewOffset
	[SchemaMember("CBaseModelEntity", "m_vecViewOffset")]
	public CNetworkViewOffsetVector ViewOffset => Schema.GetDeclaredClass<CNetworkViewOffsetVector>(this.Handle, "CBaseModelEntity", "m_vecViewOffset");

}
