private GaussianPlantMaker(Resource res, int num) : base(res) { this.neg = res.GetLayer <NegLayer>(); this.num = num; this.strands = Parts.Where(x => x.Id != -1).ToArray(); }
private GrowingPlantMaker(Resource res, int stages, int variants, int num, bool rev) : base(res) { this.num = num; this.neg = res.GetLayer <NegLayer>(); this.strands = new SpritePart[stages, variants]; foreach (var part in Parts.Where(x => x.Id != -1)) { int stage = rev ? part.Id / variants : part.Id % stages; int variant = rev ? part.Id % variants : part.Id / stages; strands[stage, variant] = part; } }
public void NegDataTest() { var input = new NegLayer { Center = new Point2D(12, 21), Hitbox = new Rect(1, 2, 3, 4), Sz = new Point2D(5, 6), Ep = new Point2D[8][] }; input.Ep[2] = new[] { new Point2D(45, 54), new Point2D(46, 64) }; input.Ep[6] = new[] { new Point2D(47, 74), new Point2D(48, 84) }; var serializer = new NegLayerHandler(); var output = (NegLayer)serializer.Reserialize(input); Assert.That(output.Center, Is.EqualTo(input.Center)); Assert.That(output.Hitbox, Is.EqualTo(input.Hitbox)); Assert.That(output.Sz, Is.EqualTo(input.Sz)); for (int i = 0; i < 8; i++) { Assert.That(output.Ep[i], Is.EqualTo(input.Ep[i])); } }