public void Add(IWadObjectId newId, IWadObject wadObject) { // Change id if necessary if (newId != wadObject.Id) { var property = wadObject.GetType().GetProperty("Id"); property.SetValue(wadObject, newId); } // Add object if (newId is WadMoveableId) { Moveables.Add((WadMoveableId)newId, (WadMoveable)wadObject); } else if (newId is WadStaticId) { Statics.Add((WadStaticId)newId, (WadStatic)wadObject); } else if (newId is WadSpriteSequenceId) { SpriteSequences.Add((WadSpriteSequenceId)newId, (WadSpriteSequence)wadObject); } else { throw new ArgumentException("Argument not of a valid type."); } }
public bool Contains(IWadObject wadObject) { if (wadObject is WadMoveable) { return(Moveables.Any(obj => obj.Value == (WadMoveable)wadObject)); } else if (wadObject is WadStatic) { return(Statics.Any(obj => obj.Value == (WadStatic)wadObject)); } else if (wadObject is WadSpriteSequence) { return(SpriteSequences.Any(obj => obj.Value == (WadSpriteSequence)wadObject)); } else { throw new ArgumentException("Argument not of a valid type."); } }
public void Remove(IWadObjectId wadObjectId) { if (wadObjectId is WadMoveableId) { Moveables.Remove((WadMoveableId)wadObjectId); } else if (wadObjectId is WadStaticId) { Statics.Remove((WadStaticId)wadObjectId); } else if (wadObjectId is WadSpriteSequenceId) { SpriteSequences.Remove((WadSpriteSequenceId)wadObjectId); } else { throw new ArgumentException("Argument not of a valid type."); } }
public IWadObject TryGet(IWadObjectId wadObjectId) { if (wadObjectId is WadMoveableId) { return(Moveables.TryGetOrDefault((WadMoveableId)wadObjectId)); } else if (wadObjectId is WadStaticId) { return(Statics.TryGetOrDefault((WadStaticId)wadObjectId)); } else if (wadObjectId is WadSpriteSequenceId) { return(SpriteSequences.TryGetOrDefault((WadSpriteSequenceId)wadObjectId)); } else { throw new ArgumentException("Argument not of a valid type."); } }