コード例 #1
0
        private void GatherChanges(MinecraftVersion minBlockVersionNumber, MinecraftVersion maxBlockVersionNumber, int suggestedMaxBlockRequests,
                                   MinecraftVersion minPlayerVersionNumber, MinecraftVersion maxPlayerVersionNumber, int suggestedMaxPlayerRequests,
                                   BlockMetaData[] blocks, PlayerMetaData[] players,
                                   ref BlockMetaData[] blocksResult, ref PlayerMetaData[] playerResult,
                                   out int nBlocks, out int nPlayers,
                                   out int nBlocksLeft, out int nPlayersLeft,
                                   out MinecraftVersion lastBlockUsedVersion, out MinecraftVersion lastPlayerUsedVersion)
        {
            nBlocks = 0;
            var blockRange = new BlockEnumerateRange(blocks);

            GetRangeInfo(blockRange, minBlockVersionNumber, maxBlockVersionNumber, suggestedMaxBlockRequests, out int firstIndex, out nBlocks, out nBlocksLeft, out lastBlockUsedVersion);
            if (nBlocks > 0)
            {
                blocksResult = new BlockMetaData[nBlocks];
                Array.Copy(blocks, firstIndex, blocksResult, 0, nBlocks);
            }

            nPlayers = 0;
            var playerRange = new PlayersEnumerateRange(players);

            GetRangeInfo(playerRange, minPlayerVersionNumber, maxPlayerVersionNumber, suggestedMaxPlayerRequests, out firstIndex, out nPlayers, out nPlayersLeft, out lastPlayerUsedVersion);
            if (nPlayers > 0)
            {
                playerResult = new PlayerMetaData[nPlayers];
                Array.Copy(players, firstIndex, playerResult, 0, nPlayers);
            }
        }
コード例 #2
0
ファイル: ChunkGrain.Inform.cs プロジェクト: mweilb/Research
        private void GatherChanges(MinecraftVersion minBlockVersionNumber, MinecraftVersion maxBlockVersionNumber, int suggestedMaxBlockRequests,
                                   MinecraftVersion minPlayerVersionNumber, MinecraftVersion maxPlayerVersionNumber, int suggestedMaxPlayerRequests,
                                   ref BlockInfo[] blocks, ref PlayerInfo[] players,
                                   out int nBlocks, out int nPlayers,
                                   out int nBlocksLeft, out int nPlayersLeft,
                                   out MinecraftVersion lastBlockUsedVersion, out MinecraftVersion lastPlayerUsedVersion)
        {
            int firstIndex = 0;

            nBlocks = 0;
            var blockRange = new BlockEnumerateRange(mBlocks);

            GetRangeInfo(blockRange, minBlockVersionNumber, maxBlockVersionNumber, suggestedMaxBlockRequests, out firstIndex, out nBlocks, out nBlocksLeft, out lastBlockUsedVersion);
            if (nBlocks > 0)
            {
                blocks = new BlockInfo[nBlocks];
                mBlocks.CopyTo(firstIndex, blocks, 0, nBlocks);
            }

            nPlayers = 0;
            var playerRange = new PlayersEnumerateRange(mActivePlayers);

            GetRangeInfo(playerRange, minPlayerVersionNumber, maxPlayerVersionNumber, suggestedMaxPlayerRequests, out firstIndex, out nPlayers, out nPlayersLeft, out lastPlayerUsedVersion);
            if (nPlayers > 0)
            {
                players = new PlayerInfo[nPlayers];
                mActivePlayers.CopyTo(firstIndex, players, 0, nPlayers);
            }
        }