示例#1
0
    public void OnEntityEmerge(ViIStream IS)
    {
        if (!OtherEntityShow)
        {
            return;
        }
        ViEntityID entityID;

        IS.Read(out entityID);
        ViEntityTypeID typeID = ViEntityType.Type(entityID);
        ViEntityType   type;

        if (ViEntityCreator.List.TryGetValue(typeID, out type))
        {
            ViRPCExecer execer = type.Create();
            _execerList[entityID] = execer;
            UInt16 channelMask = OTHER_PROPERTY_MASK;
            execer.Start(entityID, EntityManager, channelMask, IS);
            execer.Entity.RPC.Net = _net;
            if (OnEntityEnterExecer != null)
            {
                OnEntityEnterExecer(execer);
            }
        }
    }
示例#2
0
    public void OnSelfEntity(UInt16 funcID, ViIStream IS)
    {
        ViEntityID entityID;

        IS.Read(out entityID);
        ViEntityTypeID typeID = ViEntityType.Type(entityID);
        ViEntityType   type;

        if (ViEntityCreator.List.TryGetValue(typeID, out type))
        {
            ViRPCExecer execer = type.Create();
            _execerList[entityID] = execer;
            UInt16 channelMask = SELF_PROPERTY_MASK;
            execer.Start(entityID, EntityManager, channelMask, IS);
            execer.Entity.RPC.Net = _net;
            ViDebuger.AssertError(OnSelfCreatedExecer != null);
            OnSelfCreatedExecer(execer);
        }
    }
示例#3
0
 public void Del(ViRPCExecer execer)
 {
     _execerList.Remove(execer.ID());
 }
示例#4
0
 public void Add(ViRPCExecer execer)
 {
     ViDebuger.AssertError(execer);
     ViDebuger.AssertError(_execerList.ContainsKey(execer.ID()));
     _execerList[execer.ID()] = execer;
 }