示例#1
0
 /// <summary>Deserialize into new object instance</summary>
 public Cel(AnimationDeserializeContext context)
 {
     friendlyName = context.br.ReadNullableString();
     spriteRef    = new SpriteRef(context);
     if (context.br.ReadBoolean())
     {
         shadowReceiver = new ShadowReceiver(context);
     }
 }
示例#2
0
 // Use this for initialization
 void Awake()
 {
     spriteRef = publicSpriteRef;
     playerRef = publicPlayerRef;
     collectionControllerRef         = publicCollectionControllerRef;
     offensiveDeckPartControllerRef  = publicOffensiveDeckPartControllerRef;
     deffensiveDeckPartControllerRef = publicDeffensiveDeckPartControllerRef;
     supportiveDeckPartControllerRef = publicSupportiveDeckPartControllerRef;
     deckInfoRef = publicDeckInfoRef;
     cameraRef   = publicCameraRef;
 }
示例#3
0
 public ShadowLayer(int startHeight, SpriteRef shadowSpriteRef)
 {
     this.startHeight     = startHeight;
     this.shadowSpriteRef = shadowSpriteRef;
 }
示例#4
0
 public Cel(Sprite sprite)
 {
     spriteRef = new SpriteRef(sprite);
 }
示例#5
0
        protected override AnimationsDict Read(ContentReader input, AnimationsDict existingInstance)
        {
            if (input == null)
            {
                throw new ArgumentNullException("AnimationsReader input");
            }

            var spriteSheet = input.ReadExternalReference <SpriteSheet>();

            var anims = new Dictionary <string, List <Frame> >();

            int animationCount = input.ReadInt32();

            for (int i = 0; i < animationCount; i++)
            {
                string animName  = input.ReadString();
                int    animLoops = input.ReadInt32();

                // read frames
                int frameCount = input.ReadInt32();

                if (!anims.ContainsKey(animName))
                {
                    anims[animName] = new List <Frame>();
                }

                for (int j = 0; j < frameCount; j++)
                {
                    int frameIndex = input.ReadInt32();
                    int frameDelay = input.ReadInt32();

                    // sprite refs
                    int spriteCount = input.ReadInt32();

                    var spriteRefs = new SpriteRef[spriteCount];

                    for (int k = 0; k < spriteCount; k++)
                    {
                        string sprName  = input.ReadString();
                        int    sprX     = input.ReadInt32();
                        int    sprY     = input.ReadInt32();
                        int    sprZ     = input.ReadInt32();
                        var    sprAngle = (float)input.ReadDecimal();
                        bool   sprFlipH = input.ReadBoolean();
                        bool   sprFlipV = input.ReadBoolean();

                        var sprite = spriteSheet.FindSprite(sprName);

                        spriteRefs[k] = new SpriteRef(sprite, sprName, sprX, sprY, sprZ, sprAngle, sprFlipH, sprFlipV);
                    }

                    // sort sprite refs by z value
                    var sortedSpriteRefs = (from spriteRef in spriteRefs.ToList()
                                            orderby spriteRef.Z
                                            select spriteRef).OrderByDescending(x => x.Z).ToArray();

                    RectangleF frameBounds = CalculateFrameBounds(sortedSpriteRefs);

                    anims[animName].Add(new Frame(frameIndex, sortedSpriteRefs, frameBounds));

                    // Add one extra frame for each delay
                    for (int l = 0; l < frameDelay - 1; l++)
                    {
                        anims[animName].Add(new Frame(frameIndex, sortedSpriteRefs, frameBounds));
                    }
                }
            }

            AnimationsDict animations = existingInstance;

            if (existingInstance == null)
            {
                animations = new AnimationsDict();
                foreach (var key in anims.Keys)
                {
                    //animations[key] = anims[key].ToArray();
                    animations[key] = new Animation(key, anims[key].ToArray());
                }
            }

            return(animations);
        }
示例#6
0
 public Cel(Sprite sprite)
 {
     this.spriteRef = new SpriteRef(sprite);
 }