public ObjectDatabaseForFileResult GetObjectDatabase(XmlFileInfo file) { if (file == null) { return(ObjectDatabaseForFileResult.Null); } var status = GetFileLoadStatus(file); if (status < XmlFileLoadState.Preloaded) { throw new InvalidOperationException(string.Format( "GetObjectDatabase called on {0} when its load status was {1}", file, status)); } var kvp = GetObjectDatabaseForFile(file); if (kvp.Key == null) { throw new InvalidOperationException(string.Format( "GetObjectDatabase called on {0} which didn't resolve to a DB")); } return(new ObjectDatabaseForFileResult(file, kvp.Key, kvp.Value)); }
public ProtoDataXmlFileInfo(XmlFilePriority priority , XmlFileInfo fileInfo , XmlFileInfo fileInfoWithUpdates = null) { Priority = priority; FileInfo = fileInfo; FileInfoWithUpdates = fileInfoWithUpdates; }
public XmlFileLoadState GetFileLoadStatus(XmlFileInfo file) { Contract.Requires(file != null); XmlFileLoadState state; lock (XmlFileLoadStatus) if (!XmlFileLoadStatus.TryGetValue(file, out state)) { return(XmlFileLoadState.NotLoaded); } return(state); }
internal void UpdateFileLoadStatus(XmlFileInfo file, XmlFileLoadState state) { Contract.Requires(file != null); lock (XmlFileLoadStatus) XmlFileLoadStatus[file] = state; var handler = XmlFileLoadStateChanged; if (handler != null) { var args = new XmlFileLoadStateChangedArgs(file, state); handler(this, args); } }
public ObjectDatabaseForFileResult(XmlFileInfo file, Phx.ProtoDataObjectDatabase db, int objectKind) { File = file; Database = db; SpecificObjectKind = objectKind; }
protected virtual KeyValuePair <Phx.ProtoDataObjectDatabase, int> GetObjectDatabaseForFile(XmlFileInfo file) { Phx.ProtoDataObjectDatabase db = null; int specificObjectKind = TypeExtensions.kNone; if (file == Phx.BGameData.kXmlFileInfo) { db = Database.GameData.ObjectDatabase; specificObjectKind = PhxUtil.kObjectKindNone; } else if (file == Phx.HPBarData.kXmlFileInfo) { db = Database.HPBars.ObjectDatabase; specificObjectKind = PhxUtil.kObjectKindNone; } else if (file == Phx.BAbility.kXmlFileInfo) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.Ability; } else if (file == Phx.BCiv.kXmlFileInfo) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.Civ; } else if (file == Phx.BDamageType.kXmlFileInfo) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.DamageType; } else if (file == Phx.BProtoImpactEffect.kXmlFileInfo) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.ImpactEffect; } else if (file == Phx.BLeader.kXmlFileInfo) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.Leader; } else if ( file == Phx.BProtoObject.kXmlFileInfo || file == Phx.BProtoObject.kXmlFileInfoUpdate) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.Object; } else if (file == Phx.BDatabaseBase.kObjectTypesXmlFileInfo) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.ObjectType; } else if (file == Phx.BProtoPower.kXmlFileInfo) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.Power; } else if ( file == Phx.BProtoSquad.kXmlFileInfo || file == Phx.BProtoSquad.kXmlFileInfoUpdate) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.Squad; } else if (file.Directory == GameDirectory.Tactics) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.Tactic; } else if ( file == Phx.BProtoTech.kXmlFileInfo || file == Phx.BProtoTech.kXmlFileInfoUpdate) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.Tech; } else if (file == Phx.TerrainTileType.kXmlFileInfo) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.TerrainTileType; } else if (file == Phx.BUserClass.kXmlFileInfo) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.UserClass; } else if (file == Phx.BWeaponType.kXmlFileInfo) { db = Database.ObjectDatabase; specificObjectKind = (int)Phx.DatabaseObjectKind.WeaponType; } else if ( file.Directory == GameDirectory.AbilityScripts || file.Directory == GameDirectory.PowerScripts || file.Directory == GameDirectory.TriggerScripts) { throw new NotImplementedException(file.ToString()); } return(new KeyValuePair <Phx.ProtoDataObjectDatabase, int>(db, specificObjectKind)); }
public XmlFileLoadStateChangedArgs(XmlFileInfo xmlFile, XmlFileLoadState newState) { XmlFile = xmlFile; NewState = newState; }