public void DrawCollectionTransform() { var collection = new Program.ShapeCollections(); collection.Parse(@" =Collection Triangle: light: 30,40: 10,10: 0: center Circle : dark : 10,30: 5, 5: 1.570796326794896619: center "); var display = new Program.Display(this.surface, offset: new Vector2(10f, 50f), scale: 0.5f, sprites: collection); using (Program.Display.Frame frame = display.DrawFrame()) { frame.DrawCollection("Collection", new Vector2(10, 20), Convert.ToSingle(Math.PI) / 2, this.scheme.MedDark); } var sprites = new List <MySprite>(this.surface.SpriteBuffer); Assert.AreEqual(4, sprites.Count, "Background + grid pattern + whatever other sprites were added"); MySprite sprite = sprites[1]; Assert.AreEqual("Triangle", sprite.Data); Assert.AreEqual(this.scheme.MedDark, sprite.Color); this.checkVector(new Vector2(-5, 75), sprite.Position.Value); Assert.AreEqual(Convert.ToSingle(Math.PI) / 2, sprite.RotationOrScale); sprite = sprites[2]; Assert.AreEqual("Circle", sprite.Data); Assert.AreEqual(this.scheme.MedDark, sprite.Color); Assert.AreEqual(new Vector2(0, 65), sprite.Position); Assert.AreEqual(Convert.ToSingle(Math.PI), sprite.RotationOrScale); }
public void Parse() { var collection = new Program.ShapeCollections(); collection.Parse(@" ;ignored comment = Collection 1 ; sprite 0 with a scheme color Triangle:dark:10,10:5,5:0 ; sprite 1 also with a scheme color and some spaces thrown in Circle : Light : 10 , 10 : 5 , 5 : 0 : center ; sprite 2 also with a scheme color, rotated by Pi/2 Triangle:medDark:100,100:50,50:1.570796326794896619 ; sprite 3 also with a scheme color, rotated by Pi/2 Triangle:medlight:100,100:50,50:1.570796326794896619:center = Collection 2 ;sprite 0 with a hardcoded color Triangle:100,100,100:0,0:-20,-20:50 "); var collection1 = collection.Get("Collection 1"); var collection2 = collection.Get("Collection 2"); Assert.AreEqual(4, collection1.Count); Assert.AreEqual(1, collection2.Count); var sprite = collection1[0]; Assert.AreEqual("Triangle", sprite.Data); Assert.AreEqual(this.scheme.Dark, sprite.Color); Assert.AreEqual(new VRageMath.Vector2(12.5f, 12.5f), sprite.Position); Assert.AreEqual(new VRageMath.Vector2(5f, 5f), sprite.Size); Assert.AreEqual(0, sprite.RotationOrScale); sprite = collection1[1]; Assert.AreEqual("Circle", sprite.Data); Assert.AreEqual(this.scheme.Light, sprite.Color); Assert.AreEqual(new VRageMath.Vector2(10f, 10f), sprite.Position); Assert.AreEqual(new VRageMath.Vector2(5f, 5f), sprite.Size); Assert.AreEqual(0, sprite.RotationOrScale); sprite = collection1[2]; Assert.AreEqual(this.scheme.MedDark, collection1[2].Color); Assert.AreEqual(new VRageMath.Vector2(125f, 125f), sprite.Position); Assert.AreEqual(1.570796326794896619f, sprite.RotationOrScale); sprite = collection1[3]; Assert.AreEqual(this.scheme.MedLight, collection1[3].Color); Assert.AreEqual(new VRageMath.Vector2(100f, 100f), sprite.Position); Assert.AreEqual(1.570796326794896619f, sprite.RotationOrScale); sprite = collection2[0]; Assert.AreEqual(new VRageMath.Color(100, 100, 100), sprite.Color); Assert.AreEqual(new VRageMath.Vector2(10f, 10f), sprite.Position); }
public void DrawCollectionNoTransform() { var collection = new Program.ShapeCollections(); collection.Parse(@" =Collection Triangle: light: 30,40: 10,10: 0: center Circle : dark : 10,30: 5, 5: 1.570796: center "); var display = new Program.Display(this.surface, offset: new Vector2(10f, 50f), scale: 0.5f, sprites: collection); using (Program.Display.Frame frame = display.DrawFrame()) { frame.DrawCollection("Collection"); } var sprites = new List <MySprite>(this.surface.SpriteBuffer); Assert.AreEqual(4, sprites.Count, "Background + grid pattern + whatever other sprites were added"); MySprite sprite = sprites[1]; Assert.AreEqual("Triangle", sprite.Data); Assert.AreEqual(this.scheme.Light, sprite.Color); Assert.AreEqual(new Vector2(25f, 70f), sprite.Position); Assert.AreEqual(new Vector2(5f, 5f), sprite.Size); Assert.AreEqual(0, sprite.RotationOrScale); sprite = sprites[2]; Assert.AreEqual("Circle", sprite.Data); Assert.AreEqual(this.scheme.Dark, sprite.Color); Assert.AreEqual(new Vector2(15f, 65f), sprite.Position); Assert.AreEqual(new Vector2(2.5f, 2.5f), sprite.Size); Assert.AreEqual(MathHelper.PiOver2, sprite.RotationOrScale); }
public void ParseError() { var collection = new Program.ShapeCollections(); this.checkError(() => collection.Parse("Triangle:dark:10,10:5,5:0"), "Error at line 1: found sprite before collection name"); collection = new Program.ShapeCollections(); this.checkError(() => collection.Parse("=collection\nTriangle: dark:10, 10"), "Error at line 2: not enough or too many values"); collection = new Program.ShapeCollections(); this.checkError(() => collection.Parse("=collection\nTriangle:dark:10,10:5"), "Error at line 2: not enough or too many values for the size"); collection = new Program.ShapeCollections(); this.checkError(() => collection.Parse("=collection\nTriangle:dark:10,a:5,5"), "Error at line 2: could not parse position"); collection = new Program.ShapeCollections(); this.checkError(() => collection.Parse("=collection\nTriangle:dark:10,10:5,5:a"), "Error at line 2: could not parse rotation"); collection = new Program.ShapeCollections(); this.checkError(() => collection.Parse("=collection\nTriangle:10,10:10,10:5,5"), "Error at line 2: not enough or too many values for the color"); collection = new Program.ShapeCollections(); this.checkError(() => collection.Parse("=collection\nTriangle:10,10,a:10,10:5,5"), "Error at line 2: could not parse rgb color"); }