Esempio n. 1
0
    public static void Register(ViEntityTypeID typeID, CreateRPCExecer creator)
    {
        ViEntityType type = new ViEntityType();

        type._creator = creator;
        ViEntityCreator.RegisterCreator(typeID, type);
    }
Esempio n. 2
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);
            }
        }
    }
Esempio n. 3
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);
        }
    }
Esempio n. 4
0
 public static void RegisterCreator(ViEntityTypeID typeID, ViEntityType type)
 {
     _execerCreatorList[typeID] = type;
 }