public bool SetFrame(int number) { if (number >= TotalFrames) { return(false); } CurrentFrame = number; Finished = CurrentFrame == TotalFrames - 1; if (CurrentNestedAnimatedSprite != null) { RemoveChild(CurrentNestedAnimatedSprite); CurrentNestedAnimatedSprite = null; } if (Data.Frames[(int)CurrentFrame] is AnimatedSpriteDataReference) { Model.Visible = false; // TODO - instead of re-creating AnimateSprites, loop through Frames and create Array filled with all the Nested AnimatedSprites. CurrentNestedAnimatedSprite = new AnimatedSprite(Game, Data.Frames[(int)CurrentFrame].Data); CurrentNestedAnimatedSprite.Position = Data.Frames[(int)CurrentFrame].Origin; AddChild(CurrentNestedAnimatedSprite); return(false); } else { Model.Visible = true; } if (Data.Frames[(int)CurrentFrame] is int) { CurrentFrameInfo = Data.Frames[Data.Frames[(int)CurrentFrame]]; } else { CurrentFrameInfo = Data.Frames[(int)CurrentFrame]; } Sprite.TextureRect = GetIntRect(); Sprite.Origin = CurrentFrameInfo.Origin; return(true); }
public bool SetFrame(int number) { if (number >= TotalFrames) return false; CurrentFrame = number; Finished = CurrentFrame == TotalFrames-1; if (CurrentNestedAnimatedSprite != null) { RemoveChild(CurrentNestedAnimatedSprite); CurrentNestedAnimatedSprite = null; } if (Data.Frames[(int)CurrentFrame] is AnimatedSpriteDataReference) { Model.Visible = false; // TODO - instead of re-creating AnimateSprites, loop through Frames and create Array filled with all the Nested AnimatedSprites. CurrentNestedAnimatedSprite = new AnimatedSprite(Game, Data.Frames[(int)CurrentFrame].Data); CurrentNestedAnimatedSprite.Position = Data.Frames[(int)CurrentFrame].Origin; AddChild(CurrentNestedAnimatedSprite); return false; } else Model.Visible = true; if (Data.Frames[(int)CurrentFrame] is int) CurrentFrameInfo = Data.Frames[Data.Frames[(int)CurrentFrame]]; else CurrentFrameInfo = Data.Frames[(int)CurrentFrame]; Sprite.TextureRect = GetIntRect(); Sprite.Origin = CurrentFrameInfo.Origin; return true; }