Exemplo n.º 1
0
        private void UpdatePylonsListAndBroadcastChanges()
        {
            Utils.Swap(ref _pylons, ref _pylonsOld);
            _pylons.Clear();
            foreach (TileEntity value in TileEntity.ByPosition.Values)
            {
                TETeleportationPylon tETeleportationPylon = value as TETeleportationPylon;
                if (tETeleportationPylon != null && tETeleportationPylon.TryGetPylonType(out TeleportPylonType pylonType))
                {
                    TeleportPylonInfo teleportPylonInfo = default(TeleportPylonInfo);
                    teleportPylonInfo.PositionInTiles = tETeleportationPylon.Position;
                    teleportPylonInfo.TypeOfPylon     = pylonType;
                    TeleportPylonInfo item = teleportPylonInfo;
                    _pylons.Add(item);
                }
            }
            IEnumerable <TeleportPylonInfo> enumerable = _pylonsOld.Except(_pylons);

            foreach (TeleportPylonInfo item2 in _pylons.Except(_pylonsOld))
            {
                NetManager.Instance.BroadcastOrLoopback(NetTeleportPylonModule.SerializePylonWasAddedOrRemoved(item2, NetTeleportPylonModule.SubPacketType.PylonWasAdded));
            }
            foreach (TeleportPylonInfo item3 in enumerable)
            {
                NetManager.Instance.BroadcastOrLoopback(NetTeleportPylonModule.SerializePylonWasAddedOrRemoved(item3, NetTeleportPylonModule.SubPacketType.PylonWasRemoved));
            }
        }
Exemplo n.º 2
0
 public void OnPlayerJoining(int playerIndex)
 {
     foreach (TeleportPylonInfo pylon in _pylons)
     {
         NetManager.Instance.SendToClient(NetTeleportPylonModule.SerializePylonWasAddedOrRemoved(pylon, NetTeleportPylonModule.SubPacketType.PylonWasAdded), playerIndex);
     }
 }
Exemplo n.º 3
0
        private void UpdatePylonsListAndBroadcastChanges()
        {
            Utils.Swap <List <TeleportPylonInfo> >(ref this._pylons, ref this._pylonsOld);
            this._pylons.Clear();
            foreach (TileEntity tileEntity in TileEntity.ByPosition.Values)
            {
                TeleportPylonType pylonType;
                if (tileEntity is TETeleportationPylon teleportationPylon && teleportationPylon.TryGetPylonType(out pylonType))
                {
                    this._pylons.Add(new TeleportPylonInfo()
                    {
                        PositionInTiles = teleportationPylon.Position,
                        TypeOfPylon     = pylonType
                    });
                }
            }
            IEnumerable <TeleportPylonInfo> teleportPylonInfos = this._pylonsOld.Except <TeleportPylonInfo>((IEnumerable <TeleportPylonInfo>) this._pylons);

            foreach (TeleportPylonInfo info in this._pylons.Except <TeleportPylonInfo>((IEnumerable <TeleportPylonInfo>) this._pylonsOld))
            {
                NetManager.Instance.BroadcastOrLoopback(NetTeleportPylonModule.SerializePylonWasAddedOrRemoved(info, NetTeleportPylonModule.SubPacketType.PylonWasAdded));
            }
            foreach (TeleportPylonInfo info in teleportPylonInfos)
            {
                NetManager.Instance.BroadcastOrLoopback(NetTeleportPylonModule.SerializePylonWasAddedOrRemoved(info, NetTeleportPylonModule.SubPacketType.PylonWasRemoved));
            }
        }
Exemplo n.º 4
0
 public void RequestTeleportation(TeleportPylonInfo info, Player player)
 {
     NetManager.Instance.SendToServerOrLoopback(NetTeleportPylonModule.SerializeUseRequest(info));
 }