public bool Set(string name)
 {
     if (name == null)
     {
         currentAnimation = null;
         active           = false;
         return(true);
     }
     if (animations.ContainsKey(name))
     {
         //if (currentAnimation == null || (currentAnimation != null && currentAnimation.name != name)) {
         active           = true;
         currentAnimation = animations[name];
         index            = 0;
         currentFrame     = currentAnimation.frames[index];
         currentSprite    = currentFrame.sprite;
         timer            = currentFrame.Time;
         running          = true;
         changed          = true;
         //}
         return(true);
     }
     running          = false;
     currentAnimation = null;
     active           = false;
     return(false);
 }
        private static void CreateEntityPrototype(JObject json)
        {
            Entity proto = new Entity();

            proto.name       = "prototype";
            proto.typeName   = Funcs.jsonGetString(json["name"], null);
            proto.spriteName = Funcs.jsonGetString(json["spriteName"], null);
            proto.OnUpdate   = Funcs.jsonGetString(json["onUpdate"], null);

            proto.facingSprites = new Dictionary <string, string>();
            proto.facingSprites[World.NORTH] = Funcs.jsonGetString(json["spriteNorth"], proto.spriteName);
            proto.facingSprites[World.EAST]  = Funcs.jsonGetString(json["spriteEast"], proto.spriteName);
            proto.facingSprites[World.SOUTH] = Funcs.jsonGetString(json["spriteSouth"], proto.spriteName);
            proto.facingSprites[World.WEST]  = Funcs.jsonGetString(json["spriteWest"], proto.spriteName);
            proto.info = new ItemParameters();
            float mv = Funcs.jsonGetFloat(json["movement_speed"], 4);

            proto.info.SetFloat("movement_speed", mv);
            proto.getNameType = Funcs.jsonGetString(json["getName"], "human");
            proto.animations  = new Dictionary <string, NYDIAnimation>();
            JArray animations = Funcs.jsonGetArray(json, "animations");

            if (animations != null)
            {
                foreach (JObject anim in animations)
                {
                    NYDIAnimation animation = new NYDIAnimation();
                    animation.name = Funcs.jsonGetString(anim["name"], null);
                    JArray frames = Funcs.jsonGetArray(anim, "frames");
                    List <NYDIAnimationFrame> animFrames = new List <NYDIAnimationFrame>();
                    if (frames != null)
                    {
                        foreach (JObject frame in frames)
                        {
                            //NYDIAnimationFrame frm = new NYDIAnimationFrame();
                            //frm.sprite = Funcs.jsonGetString(frame["sprite"], null);
                            //frm.time = Funcs.jsonGetFloat(frame["time"], 0);
                            animFrames.Add(NYDIAnimationFrame.MakeFrame(frame));
                        }
                    }
                    animation.frames = animFrames.ToArray();
                    proto.animations[animation.name] = animation;
                }
            }

            prototypes.Add(proto.typeName, proto);
        }