using System.Runtime.InteropServices;

namespace Decal.Interop.Filters;

[TypeLibType(TypeLibTypeFlags.FHidden)]
[ClassInterface(ClassInterfaceType.None)]
public sealed class IWorldEvents_SinkHelper : IWorldEvents
{
	public IWorldEvents_CreateObjectEventHandler m_CreateObjectDelegate;

	public IWorldEvents_ReleaseObjectEventHandler m_ReleaseObjectDelegate;

	public IWorldEvents_ChangeObjectEventHandler m_ChangeObjectDelegate;

	public IWorldEvents_MoveObjectEventHandler m_MoveObjectDelegate;

	public IWorldEvents_ReleaseDoneEventHandler m_ReleaseDoneDelegate;

	public IWorldEvents_EnterTradeEventHandler m_EnterTradeDelegate;

	public IWorldEvents_EndTradeEventHandler m_EndTradeDelegate;

	public IWorldEvents_AddTradeItemEventHandler m_AddTradeItemDelegate;

	public IWorldEvents_AcceptTradeEventHandler m_AcceptTradeDelegate;

	public IWorldEvents_DeclineTradeEventHandler m_DeclineTradeDelegate;

	public IWorldEvents_ResetTradeEventHandler m_ResetTradeDelegate;

	public IWorldEvents_FailToAddTradeItemEventHandler m_FailToAddTradeItemDelegate;

	public IWorldEvents_FailToCompleteTradeEventHandler m_FailToCompleteTradeDelegate;

	public IWorldEvents_ApproachVendorEventHandler m_ApproachVendorDelegate;

	public int m_dwCookie;

	public void CreateObject(WorldObject P_0)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_CreateObjectDelegate != null)
		{
			m_CreateObjectDelegate(P_0);
		}
	}

	public void ReleaseObject(WorldObject P_0)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_ReleaseObjectDelegate != null)
		{
			m_ReleaseObjectDelegate(P_0);
		}
	}

	public void ChangeObject(WorldObject P_0, WorldChangeType P_1)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_ChangeObjectDelegate != null)
		{
			m_ChangeObjectDelegate(P_0, P_1);
		}
	}

	public void MoveObject(WorldObject P_0)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_MoveObjectDelegate != null)
		{
			m_MoveObjectDelegate(P_0);
		}
	}

	public void ReleaseDone()
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_ReleaseDoneDelegate != null)
		{
			m_ReleaseDoneDelegate();
		}
	}

	public void EnterTrade(int P_0, int P_1)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_EnterTradeDelegate != null)
		{
			m_EnterTradeDelegate(P_0, P_1);
		}
	}

	public void EndTrade(int P_0)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_EndTradeDelegate != null)
		{
			m_EndTradeDelegate(P_0);
		}
	}

	public void AddTradeItem(int P_0, int P_1)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_AddTradeItemDelegate != null)
		{
			m_AddTradeItemDelegate(P_0, P_1);
		}
	}

	public void AcceptTrade(int P_0)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_AcceptTradeDelegate != null)
		{
			m_AcceptTradeDelegate(P_0);
		}
	}

	public void DeclineTrade(int P_0)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_DeclineTradeDelegate != null)
		{
			m_DeclineTradeDelegate(P_0);
		}
	}

	public void ResetTrade(int P_0)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_ResetTradeDelegate != null)
		{
			m_ResetTradeDelegate(P_0);
		}
	}

	public void FailToAddTradeItem(int P_0, int P_1)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_FailToAddTradeItemDelegate != null)
		{
			m_FailToAddTradeItemDelegate(P_0, P_1);
		}
	}

	public void FailToCompleteTrade()
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_FailToCompleteTradeDelegate != null)
		{
			m_FailToCompleteTradeDelegate();
		}
	}

	public void ApproachVendor(int P_0)
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		if (m_ApproachVendorDelegate != null)
		{
			m_ApproachVendorDelegate(P_0);
		}
	}

	internal IWorldEvents_SinkHelper()
	{
		//Error decoding local variables: Signature type sequence must have at least one element.
		m_dwCookie = 0;
		m_CreateObjectDelegate = null;
		m_ReleaseObjectDelegate = null;
		m_ChangeObjectDelegate = null;
		m_MoveObjectDelegate = null;
		m_ReleaseDoneDelegate = null;
		m_EnterTradeDelegate = null;
		m_EndTradeDelegate = null;
		m_AddTradeItemDelegate = null;
		m_AcceptTradeDelegate = null;
		m_DeclineTradeDelegate = null;
		m_ResetTradeDelegate = null;
		m_FailToAddTradeItemDelegate = null;
		m_FailToCompleteTradeDelegate = null;
		m_ApproachVendorDelegate = null;
	}
}
