/**
 * Extends the resource data provider to have a 'filter' accessor so we can decide whether or not to include the provider in a list of items.
 *
 * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
 */
class UDKUIResourceDataProvider extends UIResourceDataProvider
	native
	config(Game);

/** Friendly name for menus. */
var config localized string FriendlyName;

/** whether to search all .inis for valid resource provider instances instead of just the our specified config file
 * this is used for lists that need to support additions via extra files, i.e. mods
 */
var() bool bSearchAllInis;
/** the .ini file that this instance was created from, if not the class default .ini (for bSearchAllInis classes) */
var const string IniName;

/** Options to remove certain menu items on a per platform basis. */
var config bool bRemoveOn360;
var config bool bRemoveOnPC;
var config bool bRemoveOnPS3;

/** Script interface for determining whether or not this provider should be filtered */
event bool ShouldBeFiltered()
{
	local WorldInfo WorldI;

	WorldI = class'WorldInfo'.static.GetWorldInfo();

	if (!WorldI.IsConsoleBuild())
	{
		return bRemoveOnPC;
	}
	else if (WorldI.IsConsoleBuild(CONSOLE_Xbox360))
	{
		return bRemoveOn360;
	}
	else if (WorldI.IsConsoleBuild(CONSOLE_PS3))
	{
		return bRemoveOnPS3;
	}
	else if (WorldI.IsConsoleBuild(CONSOLE_Mobile))
	{
		// @todo mobile: Add specific removal flags for mobile?
		return bRemoveOnPC;
	}
	else
	{
		`log("Invalid Platform!");
	}
}