public static ElementGroup ParseFromFile(string path) { ElementGroup eg = new ElementGroup(0); using (OsbElementList elements = new OsbElementList(path)) { foreach (var mgElement in elements) { Element osElement; switch (mgElement.ElementType) { case 0: // sprite osElement = eg.CreateSprite( mgElement.Layer.ToOSharp(), mgElement.Origin.ToOSharp(), mgElement.TexturePath, mgElement.Position.Item1, mgElement.Position.Item2 ); break; case 1: // animation osElement = eg.CreateAnimation( mgElement.Layer.ToOSharp(), mgElement.Origin.ToOSharp(), mgElement.TexturePath, mgElement.Position.Item1, mgElement.Position.Item2, mgElement.FrameCount, mgElement.FrameDelay, mgElement.LoopType.ToOSharp() ); break; default: throw new ArgumentOutOfRangeException(); } AddEvent(mgElement.Commands, osElement); } } return(eg); }