Exemplo n.º 1
0
 public new void Start(UInt16 channelMask, ViIStream IS, ViEntity entity)
 {
     if (MatchChannel(channelMask))
     {
         IS.Read(out _value);
     }
 }
Exemplo n.º 2
0
 public override void OnUpdate(UInt8 channel, ViIStream IS, ViEntity entity)
 {
     if (MatchChannel(channel))
     {
         OnUpdateInvoke(null);
     }
 }
Exemplo n.º 3
0
    public static void Read(this ViIStream IS, out ViEntity value)
    {
        ViEntityID ID;

        IS.Read(out ID);
        value = EntityNameger.GetEntity(ID);
    }
Exemplo n.º 4
0
    public new void OnPropertyUpdate(UInt8 channel, ViIStream IS, ViEntity entity)
    {
        UInt16 slot;

        IS.Read(out slot);
        OnUpdate(slot, channel, IS, entity);
    }
Exemplo n.º 5
0
    public void OnUpdate(Index slot, UInt8 channel, ViIStream IS, ViEntity entity)
    {
        ViDebuger.AssertError(slot < _updateSlots.Count);
        ViReceiveDataNode data = _updateSlots[slot];

        ViDebuger.AssertError(data);
        if (OnIndexPropertyUpdate != null)
        {
            Index idx = 0;
            if (_slotToIndex.TryGetValue(slot, out idx))
            {
                ViReceiveDataInt32 dataInt32 = data as ViReceiveDataInt32;
                Int32 oldValue = dataInt32.Value;
                data.OnUpdate(channel, IS, entity);
                OnIndexPropertyUpdate(idx, dataInt32, oldValue);
            }
            else
            {
                data.OnUpdate(channel, IS, entity);
            }
        }
        else
        {
            data.OnUpdate(channel, IS, entity);
        }
    }
Exemplo n.º 6
0
 public override void End(ViEntity entity)
 {
     SpellID.End(entity);
     EffectIdx.End(entity);
     EndTime.End(entity);
     base.End(entity);
 }
Exemplo n.º 7
0
 public void DelEntity(ViEntity entity)
 {
     entity.PreEnd();
     entity.End();
     entity.AftEnd();
     _entityList.Remove(entity.ID);
 }
Exemplo n.º 8
0
 void DetachWatcher(TReceiveKey key, ViReceiveDataSetNode <TReceiveKey> node, ViEntity entity)
 {
     if (node.Watcher != null)
     {
         node.Watcher.OnEnd(key, entity);
         node.Watcher = null;
     }
 }
Exemplo n.º 9
0
 public override void End(ViEntity entity)
 {
     Element0.End(entity);
     Element1.End(entity);
     Element2.End(entity);
     Element3.End(entity);
     base.End(entity);
 }
Exemplo n.º 10
0
 void DetachWatcher(ViReceiveDataArrayNode <TReceiveData> node, ViEntity entity)
 {
     if (node.Watcher != null)
     {
         node.Watcher.OnEnd(node.Property, entity);
         node.Watcher = null;
     }
 }
Exemplo n.º 11
0
 //
 public void AddEntity(ViEntityID ID, ViEntity entity)
 {
     ViDebuger.AssertError(entity);
     ViDebuger.AssertError(!_entityList.ContainsKey(ID));
     _entityList[ID] = entity;
     entity.PreStart();
     entity.Start();
     entity.AftStart();
 }
Exemplo n.º 12
0
 public override void OnUpdate(UInt8 channel, ViIStream IS, ViEntity entity)
 {
     if (MatchChannel(channel))
     {
         double oldValue = _value;
         IS.Read(out _value);
         OnUpdateInvoke(oldValue);
     }
 }
Exemplo n.º 13
0
 public override void Start(UInt16 channelMask, ViIStream IS, ViEntity entity)
 {
     SpellID.Start(channelMask, IS, entity);
     SpellID.Parent = this;
     EffectIdx.Start(channelMask, IS, entity);
     EffectIdx.Parent = this;
     EndTime.Start(channelMask, IS, entity);
     EndTime.Parent = this;
 }
Exemplo n.º 14
0
 public new void EndProperty(ViEntity entity)
 {
     base.EndProperty(entity);
     ActionState.End(entity);
     MoveState.End(entity);
     AuraState.End(entity);
     VisualAuraPropertyList.End(entity);
     LogicAuraPropertyList.End(entity);
 }
Exemplo n.º 15
0
 public new void StartProperty(UInt16 channelMask, ViIStream IS, ViEntity entity)
 {
     base.StartProperty(channelMask, IS, entity);
     ActionState.Start(channelMask, IS, entity);
     MoveState.Start(channelMask, IS, entity);
     AuraState.Start(channelMask, IS, entity);
     VisualAuraPropertyList.Start(channelMask, IS, entity);
     LogicAuraPropertyList.Start(channelMask, IS, entity);
 }
Exemplo n.º 16
0
    public static bool Exec(ViEntity entity, string name, List <string> paramList)
    {
        ViGameUnit deriveEntity = entity as ViGameUnit;

        if (deriveEntity == null)
        {
            return(false);
        }
        ;
        return(Exec(deriveEntity, name, paramList));
    }
Exemplo n.º 17
0
 public override void Start(UInt16 channelMask, ViIStream IS, ViEntity entity)
 {
     Element0.Start(channelMask, IS, entity);
     Element0.Parent = this;
     Element1.Start(channelMask, IS, entity);
     Element1.Parent = this;
     Element2.Start(channelMask, IS, entity);
     Element2.Parent = this;
     Element3.Start(channelMask, IS, entity);
     Element3.Parent = this;
 }
Exemplo n.º 18
0
    //
    public override void OnUpdate(UInt8 channel, ViIStream IS, ViEntity entity)
    {
        if (!MatchChannel(channel))
        {
            return;
        }
        ViOperatorIdx op;

        IS.Read(out op);
        switch ((ViDataArrayOperator)op)
        {
        case ViDataArrayOperator.INSERT:
        {
            TReceiveKey key = new TReceiveKey();
            key.Read(IS);
            ViDebuger.AssertWarning(!_array.ContainsKey(key));
            //
            ViReceiveDataSetNode <TReceiveKey> newNode = new ViReceiveDataSetNode <TReceiveKey>();
            AttachWatcher(key, newNode, entity);
            _array[key] = newNode;
            OnUpdateInvoke(null);
            _updateArrayCallbackList.Invoke((UInt32)ViDataArrayOperator.INSERT, key);
        }
        break;

        case ViDataArrayOperator.DEL:
        {
            TReceiveKey key = new TReceiveKey();
            key.Read(IS);
            ViDebuger.AssertWarning(_array.ContainsKey(key));
            //
            ViReceiveDataSetNode <TReceiveKey> node = _array[key];
            _array.Remove(key);
            OnUpdateInvoke(null);
            _updateArrayCallbackList.Invoke((UInt32)ViDataArrayOperator.DEL, key);
            DetachWatcher(key, node, entity);
        }
        break;

        case ViDataArrayOperator.CLEAR:
            foreach (KeyValuePair <TReceiveKey, ViReceiveDataSetNode <TReceiveKey> > pair in _array)
            {
                ViReceiveDataSetNode <TReceiveKey> node = pair.Value;
                DetachWatcher(pair.Key, node, entity);
            }
            _array.Clear();
            OnUpdateInvoke(null);
            _updateArrayCallbackList.Invoke((UInt32)ViDataArrayOperator.CLEAR, default(TReceiveKey));
            break;

        default:
            break;
        }
    }
Exemplo n.º 19
0
 void AttachWatcher(ViReceiveDataArrayNode <TReceiveData> node, ViEntity entity)
 {
     if (Creator != null)
     {
         ViReceiveDataArrayNodeWatcher <TReceiveData> watcher = Creator();
         node.Watcher = watcher;
         if (watcher != null)
         {
             watcher.OnStart(node.Property, entity);
         }
     }
 }
Exemplo n.º 20
0
 public static bool Exec(ViEntity entity, string name, List <string> paramList)
 {
     foreach (DeleExec exec in _execFuncList)
     {
         ViDebuger.AssertError(exec);
         if (exec(entity, name, paramList) == true)
         {
             return(true);
         }
     }
     return(false);
 }
Exemplo n.º 21
0
 void AttachWatcher(TReceiveKey key, ViReceiveDataSetNode <TReceiveKey> node, ViEntity entity)
 {
     if (Creator != null)
     {
         ViReceiveDataSetNodeNodeWatcher <TReceiveKey> watcher = Creator();
         node.Watcher = watcher;
         if (watcher != null)
         {
             watcher.OnStart(key, entity);
         }
     }
 }
Exemplo n.º 22
0
 public override void Start(UInt8 channel, ViIStream IS, ViEntity entity)
 {
     SpellID.Start(channel, IS, entity);
     SpellID.Parent = this;
     EffectIdx.Start(channel, IS, entity);
     EffectIdx.Parent = this;
     EndTime.Start(channel, IS, entity);
     EndTime.Parent = this;
     CastorValue.Start(channel, IS, entity);
     CastorValue.Parent = this;
     Value.Start(channel, IS, entity);
     Value.Parent = this;
 }
Exemplo n.º 23
0
 public override void End(ViEntity entity)
 {
     foreach (KeyValuePair <TReceiveKey, ViReceiveDataSetNode <TReceiveKey> > pair in _array)
     {
         ViReceiveDataSetNode <TReceiveKey> node = pair.Value;
         if (node.Watcher != null)
         {
             node.Watcher.OnEnd(pair.Key, entity);
         }
     }
     _array.Clear();
     DetachAllCallback();
     base.End(entity);
 }
Exemplo n.º 24
0
 public override void End(ViEntity entity)
 {
     foreach (ViReceiveDataArrayNode <TReceiveData> node in _array)
     {
         if (node.Watcher != null)
         {
             node.Watcher.OnEnd(node.Property, entity);
         }
         node.Property.End(entity);
         node.Property.Clear();
     }
     _array.Clear();
     DetachAllCallback();
     base.End(entity);
 }
Exemplo n.º 25
0
 public override void End(ViEntity entity)
 {
     foreach (KeyValuePair <TReceiveKey, ViReceiveDataDictionaryNode <TReceiveKey, TReceiveData> > pair in _array)
     {
         ViReceiveDataDictionaryNode <TReceiveKey, TReceiveData> node = pair.Value;
         if (node.Watcher != null)
         {
             node.Watcher.OnEnd(pair.Key, node.Property, entity);
         }
         node.Property.End(entity);
         node.Property.Clear();
     }
     _array.Clear();
     DetachAllCallback();
     base.End(entity);
 }
Exemplo n.º 26
0
    public new void Start(UInt8 channel, ViIStream IS, ViEntity entity)
    {
        if (!MatchChannel(channel))
        {
            return;
        }
        ViArrayIdx size;

        IS.Read(out size);
        for (ViArrayIdx idx = 0; idx < size; ++idx)
        {
            TReceiveKey key = new TReceiveKey();
            key.Read(IS);
            ViReceiveDataSetNode <TReceiveKey> newNode = new ViReceiveDataSetNode <TReceiveKey>();
            AttachWatcher(key, newNode, entity);
            _array[key] = newNode;
        }
    }
Exemplo n.º 27
0
    public new void Start(UInt16 channelMask, ViIStream IS, ViEntity entity)
    {
        if (!MatchChannel(channelMask))
        {
            return;
        }
        ViArrayIdx size;

        IS.Read(out size);
        _array.Capacity = (int)size;
        for (ViArrayIdx idx = 0; idx < size; ++idx)
        {
            TReceiveData property = new TReceiveData();
            property.StartByArray();
            property.Start(channelMask, IS, entity);
            property.Parent = this;
            ViReceiveDataArrayNode <TReceiveData> newNode = new ViReceiveDataArrayNode <TReceiveData>();
            newNode.Property = property;
            AttachWatcher(newNode, entity);
            _array.Add(newNode);
        }
    }
Exemplo n.º 28
0
    public new void Start(UInt16 channelMask, ViIStream IS, ViEntity entity)
    {
        if (!MatchChannel(channelMask))
        {
            return;
        }
        ViArrayIdx size;

        IS.Read(out size);
        for (ViArrayIdx idx = 0; idx < size; ++idx)
        {
            TReceiveKey key = new TReceiveKey();
            key.Read(IS);
            TReceiveData property = new TReceiveData();
            property.StartByArray();
            property.Start(channelMask, IS, entity);
            property.Parent = this;
            ViReceiveDataDictionaryNode <TReceiveKey, TReceiveData> newNode = new ViReceiveDataDictionaryNode <TReceiveKey, TReceiveData>();
            newNode.Property = property;
            AttachWatcher(key, newNode, entity);
            _array[key] = newNode;
        }
    }
Exemplo n.º 29
0
 public static void Append(this ViOStream OS, ViEntity value)
 {
     OS.Append(value.ID);
 }
Exemplo n.º 30
0
    //
    public override void OnUpdate(UInt8 channel, ViIStream IS, ViEntity entity)
    {
        if (!MatchChannel(channel))
        {
            return;
        }
        ViOperatorIdx op;

        IS.Read(out op);
        switch ((ViDataArrayOperator)op)
        {
        case ViDataArrayOperator.ADD_BACK:
        {
            TReceiveData property = new TReceiveData();
            property.StartByArray();
            property.Start(channel, IS, entity);
            property.Parent = this;
            ViReceiveDataArrayNode <TReceiveData> newNode = new ViReceiveDataArrayNode <TReceiveData>();
            newNode.Property = property;
            AttachWatcher(newNode, entity);
            _array.Add(newNode);
            OnUpdateInvoke(null);
            _updateArrayCallbackList.Invoke((UInt32)ViDataArrayOperator.ADD_BACK, property);
        }
        break;

        case ViDataArrayOperator.ADD_FRONT:
        {
            TReceiveData property = new TReceiveData();
            property.StartByArray();
            property.Start(channel, IS, entity);
            property.Parent = this;
            ViReceiveDataArrayNode <TReceiveData> newNode = new ViReceiveDataArrayNode <TReceiveData>();
            newNode.Property = property;
            AttachWatcher(newNode, entity);
            _array.Insert(0, newNode);
            OnUpdateInvoke(null);
            _updateArrayCallbackList.Invoke((UInt32)ViDataArrayOperator.ADD_FRONT, property);
        }
        break;

        case ViDataArrayOperator.INSERT:
        {
            ViArrayIdx idx;
            IS.Read(out idx);
            ViDebuger.AssertWarning(idx <= _array.Count);
            if (idx <= _array.Count)
            {
                TReceiveData property = new TReceiveData();
                property.StartByArray();
                property.Start(channel, IS, entity);
                property.Parent = this;
                ViReceiveDataArrayNode <TReceiveData> newNode = new ViReceiveDataArrayNode <TReceiveData>();
                newNode.Property = property;
                AttachWatcher(newNode, entity);
                _array.Insert(idx, newNode);
                OnUpdateInvoke(null);
                _updateArrayCallbackList.Invoke((UInt32)ViDataArrayOperator.INSERT, property);
            }
        }
        break;

        case ViDataArrayOperator.DEL:
        {
            ViArrayIdx idx;
            IS.Read(out idx);
            ViDebuger.AssertWarning(idx < _array.Count);
            if (idx < _array.Count)
            {
                ViReceiveDataArrayNode <TReceiveData> node = _array[idx];
                _array.RemoveAt(idx);
                OnUpdateInvoke(node.Property);
                _updateArrayCallbackList.Invoke((UInt32)ViDataArrayOperator.DEL, node.Property);
                DetachWatcher(node, entity);
                node.Property.End(entity);
                node.Property.Clear();
            }
        }
        break;

        case ViDataArrayOperator.MOD:
        {
            ViArrayIdx idx;
            IS.Read(out idx);
            ViDebuger.AssertWarning(idx < _array.Count);
            if (idx < _array.Count)
            {
                ViReceiveDataArrayNode <TReceiveData> node = _array[idx];
                UInt16 slot;
                while (IS.Read(out slot) && slot != END_SLOT)
                {
                    node.Property.OnUpdate(slot, channel, IS, entity);
                }
                _updateArrayCallbackList.Invoke((UInt32)ViDataArrayOperator.MOD, node.Property);
                if (node.Watcher != null)
                {
                    node.Watcher.OnUpdate(node.Property, entity);
                }
            }
        }
        break;

        case ViDataArrayOperator.CLEAR:
            foreach (ViReceiveDataArrayNode <TReceiveData> node in _array)
            {
                DetachWatcher(node, entity);
                node.Property.End(entity);
                node.Property.Clear();
            }
            _array.Clear();
            OnUpdateInvoke(null);
            _updateArrayCallbackList.Invoke((UInt32)ViDataArrayOperator.CLEAR, null);
            break;

        default:
            break;
        }
    }