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); }