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

	// m_CPropDataComponent
	[SchemaMember("CBreakableProp", "m_CPropDataComponent")]
	public CPropDataComponent CPropDataComponent => Schema.GetDeclaredClass<CPropDataComponent>(this.Handle, "CBreakableProp", "m_CPropDataComponent");

	// m_OnStartDeath
	[SchemaMember("CBreakableProp", "m_OnStartDeath")]
	public CEntityIOOutput OnStartDeath => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CBreakableProp", "m_OnStartDeath");

	// m_OnBreak
	[SchemaMember("CBreakableProp", "m_OnBreak")]
	public CEntityIOOutput OnBreak => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CBreakableProp", "m_OnBreak");

	// m_OnTakeDamage
	[SchemaMember("CBreakableProp", "m_OnTakeDamage")]
	public CEntityIOOutput OnTakeDamage => Schema.GetDeclaredClass<CEntityIOOutput>(this.Handle, "CBreakableProp", "m_OnTakeDamage");

	// m_impactEnergyScale
	[SchemaMember("CBreakableProp", "m_impactEnergyScale")]
	public ref float ImpactEnergyScale => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_impactEnergyScale");

	// m_iMinHealthDmg
	[SchemaMember("CBreakableProp", "m_iMinHealthDmg")]
	public ref Int32 MinHealthDmg => ref Schema.GetRef<Int32>(this.Handle, "CBreakableProp", "m_iMinHealthDmg");

	// m_preferredCarryAngles
	[SchemaMember("CBreakableProp", "m_preferredCarryAngles")]
	public QAngle PreferredCarryAngles => Schema.GetDeclaredClass<QAngle>(this.Handle, "CBreakableProp", "m_preferredCarryAngles");

	// m_flPressureDelay
	[SchemaMember("CBreakableProp", "m_flPressureDelay")]
	public ref float PressureDelay => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flPressureDelay");

	// m_flDefBurstScale
	[SchemaMember("CBreakableProp", "m_flDefBurstScale")]
	public ref float DefBurstScale => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flDefBurstScale");

	// m_vDefBurstOffset
	[SchemaMember("CBreakableProp", "m_vDefBurstOffset")]
	public Vector DefBurstOffset => Schema.GetDeclaredClass<Vector>(this.Handle, "CBreakableProp", "m_vDefBurstOffset");

	// m_hBreaker
	[SchemaMember("CBreakableProp", "m_hBreaker")]
	public CHandle<CBaseEntity> Breaker => Schema.GetDeclaredClass<CHandle<CBaseEntity>>(this.Handle, "CBreakableProp", "m_hBreaker");

	// m_PerformanceMode
	[SchemaMember("CBreakableProp", "m_PerformanceMode")]
	public ref PerformanceMode_t PerformanceMode => ref Schema.GetRef<PerformanceMode_t>(this.Handle, "CBreakableProp", "m_PerformanceMode");

	// m_flPreventDamageBeforeTime
	[SchemaMember("CBreakableProp", "m_flPreventDamageBeforeTime")]
	public ref float PreventDamageBeforeTime => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flPreventDamageBeforeTime");

	// m_BreakableContentsType
	[SchemaMember("CBreakableProp", "m_BreakableContentsType")]
	public ref BreakableContentsType_t BreakableContentsType => ref Schema.GetRef<BreakableContentsType_t>(this.Handle, "CBreakableProp", "m_BreakableContentsType");

	// m_strBreakableContentsPropGroupOverride
	[SchemaMember("CBreakableProp", "m_strBreakableContentsPropGroupOverride")]
	public string StrBreakableContentsPropGroupOverride
	{
		get { return Schema.GetUtf8String(this.Handle, "CBreakableProp", "m_strBreakableContentsPropGroupOverride"); }
		set { Schema.SetString(this.Handle, "CBreakableProp", "m_strBreakableContentsPropGroupOverride", value); }
	}

	// m_strBreakableContentsParticleOverride
	[SchemaMember("CBreakableProp", "m_strBreakableContentsParticleOverride")]
	public string StrBreakableContentsParticleOverride
	{
		get { return Schema.GetUtf8String(this.Handle, "CBreakableProp", "m_strBreakableContentsParticleOverride"); }
		set { Schema.SetString(this.Handle, "CBreakableProp", "m_strBreakableContentsParticleOverride", value); }
	}

	// m_bHasBreakPiecesOrCommands
	[SchemaMember("CBreakableProp", "m_bHasBreakPiecesOrCommands")]
	public ref bool HasBreakPiecesOrCommands => ref Schema.GetRef<bool>(this.Handle, "CBreakableProp", "m_bHasBreakPiecesOrCommands");

	// m_explodeDamage
	[SchemaMember("CBreakableProp", "m_explodeDamage")]
	public ref float ExplodeDamage => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_explodeDamage");

	// m_explodeRadius
	[SchemaMember("CBreakableProp", "m_explodeRadius")]
	public ref float ExplodeRadius => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_explodeRadius");

	// m_explosionDelay
	[SchemaMember("CBreakableProp", "m_explosionDelay")]
	public ref float ExplosionDelay => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_explosionDelay");

	// m_explosionBuildupSound
	[SchemaMember("CBreakableProp", "m_explosionBuildupSound")]
	public string ExplosionBuildupSound
	{
		get { return Schema.GetUtf8String(this.Handle, "CBreakableProp", "m_explosionBuildupSound"); }
		set { Schema.SetString(this.Handle, "CBreakableProp", "m_explosionBuildupSound", value); }
	}

	// m_explosionCustomEffect
	[SchemaMember("CBreakableProp", "m_explosionCustomEffect")]
	public string ExplosionCustomEffect
	{
		get { return Schema.GetUtf8String(this.Handle, "CBreakableProp", "m_explosionCustomEffect"); }
		set { Schema.SetString(this.Handle, "CBreakableProp", "m_explosionCustomEffect", value); }
	}

	// m_explosionCustomSound
	[SchemaMember("CBreakableProp", "m_explosionCustomSound")]
	public string ExplosionCustomSound
	{
		get { return Schema.GetUtf8String(this.Handle, "CBreakableProp", "m_explosionCustomSound"); }
		set { Schema.SetString(this.Handle, "CBreakableProp", "m_explosionCustomSound", value); }
	}

	// m_explosionModifier
	[SchemaMember("CBreakableProp", "m_explosionModifier")]
	public string ExplosionModifier
	{
		get { return Schema.GetUtf8String(this.Handle, "CBreakableProp", "m_explosionModifier"); }
		set { Schema.SetString(this.Handle, "CBreakableProp", "m_explosionModifier", value); }
	}

	// m_hPhysicsAttacker
	[SchemaMember("CBreakableProp", "m_hPhysicsAttacker")]
	public CHandle<CBasePlayerPawn> PhysicsAttacker => Schema.GetDeclaredClass<CHandle<CBasePlayerPawn>>(this.Handle, "CBreakableProp", "m_hPhysicsAttacker");

	// m_flLastPhysicsInfluenceTime
	[SchemaMember("CBreakableProp", "m_flLastPhysicsInfluenceTime")]
	public ref float LastPhysicsInfluenceTime => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flLastPhysicsInfluenceTime");

	// m_flDefaultFadeScale
	[SchemaMember("CBreakableProp", "m_flDefaultFadeScale")]
	public ref float DefaultFadeScale => ref Schema.GetRef<float>(this.Handle, "CBreakableProp", "m_flDefaultFadeScale");

	// m_hLastAttacker
	[SchemaMember("CBreakableProp", "m_hLastAttacker")]
	public CHandle<CBaseEntity> LastAttacker => Schema.GetDeclaredClass<CHandle<CBaseEntity>>(this.Handle, "CBreakableProp", "m_hLastAttacker");

	// m_iszPuntSound
	[SchemaMember("CBreakableProp", "m_iszPuntSound")]
	public string PuntSound
	{
		get { return Schema.GetUtf8String(this.Handle, "CBreakableProp", "m_iszPuntSound"); }
		set { Schema.SetString(this.Handle, "CBreakableProp", "m_iszPuntSound", value); }
	}

	// m_bUsePuntSound
	[SchemaMember("CBreakableProp", "m_bUsePuntSound")]
	public ref bool UsePuntSound => ref Schema.GetRef<bool>(this.Handle, "CBreakableProp", "m_bUsePuntSound");

	// m_bOriginalBlockLOS
	[SchemaMember("CBreakableProp", "m_bOriginalBlockLOS")]
	public ref bool OriginalBlockLOS => ref Schema.GetRef<bool>(this.Handle, "CBreakableProp", "m_bOriginalBlockLOS");

}
