Beispiel #1
0
        private bool PacketWasDeferred(Packet packet)
        {
            if (packet is PlayerActionPacket)
            {
                PlayerActionPacket playerAction = (PlayerActionPacket)packet;

                if (!playerAction.PlayerMustBeInRangeToReceive)
                {
                    return(false);
                }

                Int3 actionBatchId = LargeWorldStreamer.main.GetContainingBatch(playerAction.ActionPosition);

                if (!loadedChunks.HasChunkWithMinDesiredLevelOfDetail(actionBatchId, DESIRED_CHUNK_MIN_LOD_FOR_ACTIONS))
                {
                    Log.Debug("Action was deferred, batch not loaded (with required lod): " + actionBatchId);
                    AddPacketToDeferredMap(playerAction, actionBatchId);
                    return(true);
                }
            }

            return(false);
        }