123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- using System.Collections.Generic;
- using FairyGUI.Utils;
- namespace FairyGUI
- {
- class GearAnimationValue
- {
- public bool playing;
- public int frame;
- public string animationName;
- public string skinName;
- public GearAnimationValue(bool playing, int frame)
- {
- this.playing = playing;
- this.frame = frame;
- }
- }
- /// <summary>
- /// Gear is a connection between object and controller.
- /// </summary>
- public class GearAnimation : GearBase
- {
- Dictionary<string, GearAnimationValue> _storage;
- GearAnimationValue _default;
- public GearAnimation(GObject owner)
- : base(owner)
- {
- }
- protected override void Init()
- {
- _default = new GearAnimationValue(((IAnimationGear)_owner).playing, ((IAnimationGear)_owner).frame);
- if (_owner is GLoader3D)
- {
- _default.animationName = ((GLoader3D)_owner).animationName;
- _default.skinName = ((GLoader3D)_owner).skinName;
- }
- _storage = new Dictionary<string, GearAnimationValue>();
- }
- override protected void AddStatus(string pageId, ByteBuffer buffer)
- {
- GearAnimationValue gv;
- if (pageId == null)
- gv = _default;
- else
- {
- gv = new GearAnimationValue(false, 0);
- _storage[pageId] = gv;
- }
- gv.playing = buffer.ReadBool();
- gv.frame = buffer.ReadInt();
- }
- public void AddExtStatus(string pageId, ByteBuffer buffer)
- {
- GearAnimationValue gv;
- if (pageId == null)
- gv = _default;
- else
- gv = _storage[pageId];
- gv.animationName = buffer.ReadS();
- gv.skinName = buffer.ReadS();
- }
- override public void Apply()
- {
- _owner._gearLocked = true;
- GearAnimationValue gv;
- if (!_storage.TryGetValue(_controller.selectedPageId, out gv))
- gv = _default;
- IAnimationGear mc = (IAnimationGear)_owner;
- mc.frame = gv.frame;
- mc.playing = gv.playing;
- if (_owner is GLoader3D)
- {
- ((GLoader3D)_owner).animationName = gv.animationName;
- ((GLoader3D)_owner).skinName = gv.skinName;
- }
- _owner._gearLocked = false;
- }
- override public void UpdateState()
- {
- IAnimationGear mc = (IAnimationGear)_owner;
- GearAnimationValue gv;
- if (!_storage.TryGetValue(_controller.selectedPageId, out gv))
- _storage[_controller.selectedPageId] = gv = new GearAnimationValue(mc.playing, mc.frame);
- else
- {
- gv.playing = mc.playing;
- gv.frame = mc.frame;
- }
- if (_owner is GLoader3D)
- {
- gv.animationName = ((GLoader3D)_owner).animationName;
- gv.skinName = ((GLoader3D)_owner).skinName;
- }
- }
- }
- }
|