public void AddSpriteSheetListener(ISpriteSheetListener listener, int secuence, int frame) { if(secuence >= 0 && secuence < SecuenceCount){ if(frame >= 0 && frame < sequenceFrameCount[secuence]){ int absoluteFrame = sequences[secuence].InitFrame + frame; List<ISpriteSheetListener> list; if(frameListeners.ContainsKey(absoluteFrame)){ list = frameListeners[absoluteFrame]; }else{ list = new List<ISpriteSheetListener>(); frameListeners.Add(absoluteFrame, list); } if(!list.Contains(listener)){ list.Add(listener); } }else{ throw new InvalidFrameException(frame); } }else{ throw new InvalidSecuenceException(secuence); } }
public void AddSpriteSheetListener(ISpriteSheetListener listener, Enum secuence, int frame) { int requested = Convert.ToInt32(secuence); if(requested >= 0 && requested < SecuenceCount){ if(frame >= 0 && frame < sequenceFrameCount[requested]){ int absoluteFrame = sequences[requested].InitFrame + frame; List<ISpriteSheetListener> list; if(frameListeners.ContainsKey(absoluteFrame)){ list = frameListeners[absoluteFrame]; }else{ list = new List<ISpriteSheetListener>(); frameListeners.Add(absoluteFrame, list); } if(!list.Contains(listener)){ list.Add(listener); } }else{ throw new InvalidFrameException(frame); } }else{ throw new InvalidSecuenceException(secuence); } }
public void AddSpriteSheetListener(ISpriteSheetListener listener) { if (!listeners.Contains(listener)){ listeners.Add(listener); } }
public void RemoveSpriteSheetListener(ISpriteSheetListener listener) { listeners.Remove(listener); foreach(List<ISpriteSheetListener> list in frameListeners.Values){ if(list.Contains(listener)){ list.Remove(listener); } } }