using System;
using System.Collections.Generic;
using ACE.Entity.Enum;
using ACE.Entity.Enum.Properties;
namespace ACE.Entity.Models
{
///
/// Only populated collections and dictionaries are initialized.
/// We do this to conserve memory in ACE.Server
/// Be sure to check for null first.
///
public interface IWeenie
{
uint WeenieClassId { get; set; }
WeenieType WeenieType { get; set; }
IDictionary PropertiesBool { get; set; }
IDictionary PropertiesDID { get; set; }
IDictionary PropertiesFloat { get; set; }
IDictionary PropertiesIID { get; set; }
IDictionary PropertiesInt { get; set; }
IDictionary PropertiesInt64 { get; set; }
IDictionary PropertiesString { get; set; }
IDictionary PropertiesPosition { get; set; }
IDictionary PropertiesSpellBook { get; set; }
IList PropertiesAnimPart { get; set; }
IList PropertiesPalette { get; set; }
IList PropertiesTextureMap { get; set; }
// Properties for all world objects that typically aren't modified over the original weenie
ICollection PropertiesCreateList { get; set; }
ICollection PropertiesEmote { get; set; }
HashSet PropertiesEventFilter { get; set; }
IList PropertiesGenerator { get; set; } // Using a list per this: https://github.com/ACEmulator/ACE/pull/2616, however, no order is guaranteed for db records
// Properties for creatures
IDictionary PropertiesAttribute { get; set; }
IDictionary PropertiesAttribute2nd { get; set; }
IDictionary PropertiesBodyPart { get; set; }
IDictionary PropertiesSkill { get; set; }
// Properties for books
PropertiesBook PropertiesBook { get; set; }
IList PropertiesBookPageData { get; set; }
}
}