importonly final struct DropInstruction
{
	import var itemID : ItemID;
	import var quantity : Int32;

	public import static function Create( itemID : ItemID, optional quantity : Int32 ) : DropInstruction;
}

importonly abstract class ILootManager extends IGameSystem
{
}

importonly final class LootManager extends ILootManager
{
	public import function GenerateLoot( lootID : TweakDBID, out itemList : array< ItemModParams >, optional gameNode : GameObject );
	public import function SpawnItemDrop( obj : GameObject, itemID : ItemID, optional position : Vector4, optional rotation : Quaternion ) : Bool;
	public import function SpawnItemDropOfManyItems( obj : GameObject, itemInstructions : array< DropInstruction >, optional dropItemName : CName, optional position : Vector4, optional rotation : Quaternion ) : Bool;
	public import function SpawnThrowableItemDrop( obj : GameObject, itemID : ItemID, position : Vector4, rotation : Quaternion, params : ParabolicTrajectoryParams ) : Bool;
	public import function GetDefaultDropItemName() : CName;
	public import function PurgeLoot();
}

