protected override void LoadContent() { base.LoadContent(); spriteBatch = new SpriteBatch(GraphicsDevice); spriteFont = Content.Load <SpriteFont>(FontName); Vector2 charPosition = new Vector2(Width / 2.0f, Height / 1.5f); foreach (var pair in Scmls) { string scmlPath = pair.Key; string spriterName = pair.Value; string data = File.ReadAllText(scmlPath); Spriter spriter = SpriterParser.Parse(data); foreach (SpriterEntity entity in spriter.Entities) { var animator = new MonogameSpriterAnimator(entity, charPosition, spriteBatch, GraphicsDevice); RegisterTextures(animator, spriter, spriterName); animators.Add(animator); } } currentAnimator = animators.First(); currentAnimator.EventTriggered += CurrentAnimator_EventTriggered; }
public void Parse_IfAMatchIsNotFoundInParsers_NoAttemptWillBeMadeToParseTheData() { using (new SpriterParserTestScope()) { var parser = new Mock <ISpriterParser>(); parser.Setup(p => p.CanParse(It.IsAny <string>())).Returns(false); parser.Setup(p => p.Parse(It.IsAny <string>())).Returns((Spriter)null); SpriterParser.Parsers.Clear(); SpriterParser.Parsers.Add(parser.Object); SpriterParser.Parse("DATA"); parser.Verify(p => p.CanParse(It.IsAny <string>()), Times.Once); parser.Verify(p => p.Parse(It.IsAny <string>()), Times.Never); } }
public static void CreateSpriter(string path) { string data = File.ReadAllText(path); Spriter spriter = SpriterParser.Parse(data); string rootFolder = Path.GetDirectoryName(path); string name = Path.GetFileNameWithoutExtension(path); SpriterData spriterData = CreateSpriterData(spriter, rootFolder, name); foreach (SpriterEntity entity in spriter.Entities) { GameObject go = new GameObject(entity.Name); GameObject sprites = new GameObject("Sprites"); GameObject metadata = new GameObject("Metadata"); SpriterDotNetBehaviour behaviour = go.AddComponent <SpriterDotNetBehaviour>(); behaviour.UseNativeTags = UseNativeTags; if (HasSound(entity)) { go.AddComponent <AudioSource>(); } sprites.SetParent(go); metadata.SetParent(go); ChildData cd = new ChildData(); CreateSprites(entity, cd, spriter, sprites); CreateCollisionRectangles(entity, cd, spriter, metadata); CreatePoints(entity, cd, spriter, metadata); behaviour.EntityIndex = entity.Id; behaviour.enabled = true; behaviour.SpriterData = spriterData; behaviour.ChildData = cd; CreatePrefab(go, rootFolder); EntityImported(entity, go); } if (UseNativeTags) { CreateTags(spriter); } }
public void Parse_WithNullOrEmptyData_ReturnsNull(string data, string because) { SpriterParser.Parse(data).Should().BeNull(because); }