public static List <WorldObject> CreateWorldObjects(List <AceObject> sourceObjects) { List <WorldObject> results = new List <WorldObject>(); foreach (var aceO in sourceObjects) { ObjectType ot = (ObjectType)aceO.TypeId; ObjectDescriptionFlag oDescFlag = (ObjectDescriptionFlag)aceO.WdescBitField; if ((oDescFlag & ObjectDescriptionFlag.LifeStone) != 0) { results.Add(new Lifestone(aceO)); continue; } else if ((oDescFlag & ObjectDescriptionFlag.Portal) != 0) { AcePortalObject acePO = DatabaseManager.World.GetPortalObjectsByAceObjectId(aceO.AceObjectId); results.Add(new Portal(acePO)); continue; } else if ((oDescFlag & ObjectDescriptionFlag.Door) != 0) { results.Add(new Door(aceO)); continue; } else if ((oDescFlag & ObjectDescriptionFlag.Vendor) != 0) { results.Add(new Vendor(aceO)); continue; } switch (ot) { #if DEBUG default: // Use the DebugObject to assist in building proper objects for weenies results.Add(new DebugObject(aceO)); break; #endif } } return(results); }
public AcePortalObject GetPortalObjectsByAceObjectId(uint aceObjectId) { AcePortalObject apo = new AcePortalObject(); Dictionary <string, object> criteria = new Dictionary <string, object>(); criteria.Add("baseAceObjectId", aceObjectId); if (ExecuteConstructedGetStatement(WorldPreparedStatement.GetPortalObjectsByAceObjectId, typeof(AcePortalObject), criteria, apo)) { apo.TextureOverrides = GetAceObjectTextureMaps(apo.AceObjectId); apo.AnimationOverrides = GetAceObjectAnimations(apo.AceObjectId); apo.PaletteOverrides = GetAceObjectPalettes(apo.AceObjectId); return(apo); } else { return(null); } }