class ItemDisplayUtils
{

	public static function SpawnCommonSlot( logicController : inkLogicController, parent : inkWidget, slotName : CName ) : weak< inkWidget >
	{
		if( parent )
		{
			return logicController.SpawnFromExternal( parent, R"base\gameplay\gui\common\components\slots.inkwidget", slotName );
		}
		return NULL;
	}

	public static function SpawnCommonSlot( logicController : inkLogicController, parent : inkWidgetRef, slotName : CName ) : weak< inkWidget >
	{
		if( inkWidgetRef.Get( parent ) )
		{
			return logicController.SpawnFromExternal( inkWidgetRef.Get( parent ), R"base\gameplay\gui\common\components\slots.inkwidget", slotName );
		}
		return NULL;
	}

	public static function SpawnCommonSlotController( logicController : inkLogicController, parent : inkWidget, slotName : CName ) : weak< inkLogicController >
	{
		if( parent )
		{
			return logicController.SpawnFromExternal( parent, R"base\gameplay\gui\common\components\slots.inkwidget", slotName ).GetController();
		}
		return NULL;
	}

	public static function AsyncSpawnCommonSlotController( logicController : inkLogicController, parent : inkWidget, slotName : CName, callbackName : CName, optional userData : IScriptable )
	{
		if( parent )
		{
			logicController.AsyncSpawnFromExternal( parent, R"base\gameplay\gui\common\components\slots.inkwidget", slotName, logicController, callbackName, userData );
		}
	}

	public static function SpawnCommonSlotController( logicController : inkLogicController, parent : inkWidgetRef, slotName : CName ) : weak< inkLogicController >
	{
		if( inkWidgetRef.Get( parent ) )
		{
			return logicController.SpawnFromExternal( inkWidgetRef.Get( parent ), R"base\gameplay\gui\common\components\slots.inkwidget", slotName ).GetController();
		}
		return NULL;
	}

	public static function SpawnCommonSlotAsync( logicController : inkLogicController, parent : inkWidgetRef, slotName : CName, optional callBack : CName, optional userData : IScriptable )
	{
		if( inkWidgetRef.Get( parent ) )
		{
			logicController.AsyncSpawnFromExternal( inkWidgetRef.Get( parent ), R"base\gameplay\gui\common\components\slots.inkwidget", slotName, logicController, callBack, userData );
		}
	}

	public static function SpawnCommonSlot( gameController : inkIGameController, parent : inkWidget, slotName : CName ) : weak< inkWidget >
	{
		if( parent )
		{
			return gameController.SpawnFromExternal( parent, R"base\gameplay\gui\common\components\slots.inkwidget", slotName );
		}
		return NULL;
	}

	public static function SpawnCommonSlot( gameController : inkIGameController, parent : inkWidgetRef, slotName : CName ) : weak< inkWidget >
	{
		if( inkWidgetRef.Get( parent ) )
		{
			return gameController.SpawnFromExternal( inkWidgetRef.Get( parent ), R"base\gameplay\gui\common\components\slots.inkwidget", slotName );
		}
		return NULL;
	}

	public static function SpawnCommonSlotAsync( gameController : inkIGameController, parent : inkWidgetRef, slotName : CName, optional callBack : CName, optional userData : IScriptable )
	{
		if( inkWidgetRef.Get( parent ) )
		{
			gameController.AsyncSpawnFromExternal( inkWidgetRef.Get( parent ), R"base\gameplay\gui\common\components\slots.inkwidget", slotName, gameController, callBack, userData );
		}
	}

	public static function SpawnCommonSlotController( gameController : inkIGameController, parent : inkWidget, slotName : CName ) : weak< inkLogicController >
	{
		if( parent )
		{
			return gameController.SpawnFromExternal( parent, R"base\gameplay\gui\common\components\slots.inkwidget", slotName ).GetController();
		}
		return NULL;
	}

	public static function SpawnCommonSlotController( gameController : inkIGameController, parent : inkWidgetRef, slotName : CName ) : weak< inkLogicController >
	{
		if( inkWidgetRef.Get( parent ) )
		{
			return gameController.SpawnFromExternal( inkWidgetRef.Get( parent ), R"base\gameplay\gui\common\components\slots.inkwidget", slotName ).GetController();
		}
		return NULL;
	}

	public static function AsyncSpawnCommonSlot( gameController : inkIGameController, parent : inkWidget, slotName : CName, optional callBack : CName, optional userData : IScriptable )
	{
		if( parent )
		{
			gameController.AsyncSpawnFromExternal( parent, R"base\gameplay\gui\common\components\slots.inkwidget", slotName, gameController, callBack, userData );
		}
	}

}

