Пример #1
0
 public void Clear()
 {
     lock (AnnotationsList)
         AnnotationsList.Clear();
     lock (BlocksList)
         BlocksList.Clear();
 }
Пример #2
0
 void Awake()
 {
     mainMenu      = GameObject.FindGameObjectWithTag("MainMenu").GetComponent <MainMenu>();
     serialization = GetComponent <BlocksSerialization>();
     blockList     = GameObject.FindGameObjectWithTag("BlockList").GetComponent <BlocksList>();
     loadTiles();
 }
Пример #3
0
        public override List <FlacTagFrame> TagFramesFactory(byte[] rawFramesBytes)
        {
            List <FlacTagFrame> tempTagFrames = new List <FlacTagFrame>();

            if (BlocksList.Any(b => b.BlockHeader.Type == FlacTagBlockHeader.BlockType.VORBIS_COMMEN))
            {
                var metaBlock    = BlocksList.Find(b => b.BlockHeader.Type == FlacTagBlockHeader.BlockType.VORBIS_COMMEN);
                var metaString   = metaBlock.Content;
                var metaStrArray = metaString.Split(new string[] { "\0\0\0", "\0\0" }, StringSplitOptions.RemoveEmptyEntries);
                for (int i = 0; i < metaStrArray.Length; i++)
                {
                    if (metaStrArray[i].Length > 1)
                    {
                        metaStrArray[i] = metaStrArray[i].Remove(metaStrArray[i].Length - 1);
                    }
                    if (!metaStrArray[i].Contains("="))
                    {
                        continue;
                    }
                    tempTagFrames.Add(new FlacTagFrame(metaStrArray[i]));
                }
            }

            return(tempTagFrames);
        }
Пример #4
0
        public void InitPictures()
        {
            var rawPicList = BlocksList.FindAll(b => b.BlockHeader.Type == FlacTagBlockHeader.BlockType.PICTURE);

            foreach (var rawPictureBlock in rawPicList)
            {
                PictureList.Add(new FlacTagPicture(rawPictureBlock.ToBytes()));
            }
        }
Пример #5
0
    void Awake()
    {
        game     = GameObject.FindGameObjectWithTag("Game");
        menu     = GameObject.FindGameObjectWithTag("MainMenu");
        settings = GameObject.FindGameObjectWithTag("Settings");
        endGame  = GameObject.FindGameObjectWithTag("Game_end");

        blockCreator = GameObject.FindGameObjectWithTag("BlockArchitect").GetComponent <BlocksArchitect>();
        blockList    = GameObject.FindGameObjectWithTag("BlockList").GetComponent <BlocksList>();
    }
Пример #6
0
 public void InitBlocks(BinaryReader br)
 {
     for (;;)
     {
         FlacTagBlockHeader blockHeader       = new FlacTagBlockHeader(br.ReadBytes(4));
         byte[]             blockContentBytes = br.ReadBytes(blockHeader.BlockSize);
         BlocksList.Add(new FlacBlock(blockContentBytes, blockHeader));
         if (blockHeader.IsLastMetaData)
         {
             break;
         }
     }
 }
Пример #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="blocks"></param>
        /// <returns></returns>
        public bool SpawnBlock(Defs.Blocks[,] blocks)
        {
            int posY = 0, posX = 2;

            if (!IsPlaceBlocks(posX, posY, blocks))
            {
                return(false);
            }

            for (int y = 0; y < blocks.GetLength(0); ++y)
            {
                for (int x = 0, max = blocks.GetLength(1); x < max; ++x)
                {
                    FieldBlocks[y + posY, x + posX] = blocks[y, x];
                }
            }

            ActiveBlocks = new BlocksObject(blocks, 2, 0);
            BlocksList.Add(blocks);
            return(true);
        }
Пример #8
0
 public bool AddBlock(int blockNr, double onset)
 {
     Debug.Assert(blockNr >= 0, TALConsts.InvalidBlockIndex);
     Debug.Assert(double.IsNaN(onset) || (onset >= 0), TALConsts.InvalidBlockOnset);
     _lastError = TalError.None;
     DoSetBlocksListCapacity(blockNr);
     while (blockNr >= BlocksList.Count)
     {
         BlocksList.Add(null);
     }
     if (BlocksList[blockNr] != null)
     {
         Block(blockNr).DataRecOnset = onset;
     }
     else
     {
         EdfPlusAnnotationDataBlock newBlock = new EdfPlusAnnotationDataBlock(this, blockNr, onset)
         {
             Modified = true
         };
         BlocksList[blockNr] = newBlock;
     }
     return(Block(blockNr) != null);
 }
Пример #9
0
        public override void Execute(JobDataMap data, IServiceProvider serviceProvider)
        {
            var config        = serviceProvider.GetService <IConfiguration>();
            var dataExtractor = serviceProvider.GetService <IDataExtractorService>();
            var logger        = serviceProvider.GetService <ILogger <NodeJob> >();
            var mapper        = serviceProvider.GetService <IMapper>();

            var rpcConfig = GetNodeRpcConfig(config);

            var cache            = serviceProvider.GetService <IMemoryCache>();
            var difficultyResult = dataExtractor.RpcCall(rpcConfig, "getdifficulty");

            ProcessResult(logger, difficultyResult, diff =>
            {
                var difficulty = double.Parse(diff, CultureInfo.InvariantCulture);
                cache.Set(Constants.DifficultyKey, difficulty);
            });

            var networkRateResult = dataExtractor.RpcCall(rpcConfig, "getnetworkhashps");

            ProcessResult(logger, networkRateResult, rate =>
            {
                var networkRate     = double.Parse(rate, CultureInfo.InvariantCulture);
                var networkRateInMh = DenominationHelper.ToMSol(networkRate, Denomination.Sol);
                cache.Set(Constants.HashRateKey, networkRateInMh);
            });

            var blockCount     = config.GetValue <int>("Node:StoreLastBlocks");
            var chainTipResult = dataExtractor.RpcCall(rpcConfig, "getbestblockhash");

            ProcessResult(logger, chainTipResult, blockHash =>
            {
                var hasStoredBlocks = cache.TryGetValue(Constants.BlocksInfoKey, out BlocksList storedBlocks);
                if (!hasStoredBlocks)
                {
                    storedBlocks = new BlocksList();
                }

                if (storedBlocks.Contains(blockHash))
                {
                    // At chain tip
                    return;
                }

                ProcessResult(logger, GetBlockInfo(rpcConfig, dataExtractor, mapper, blockHash), (block) =>
                {
                    storedBlocks.Add(block);

                    Func <bool> expr;
                    if (hasStoredBlocks)
                    {
                        expr = () => !storedBlocks.Contains(block.PreviousBlockHash);
                    }
                    else
                    {
                        expr = () => storedBlocks.Count < blockCount;
                    }

                    while (expr())
                    {
                        ProcessResult(logger, GetBlockInfo(rpcConfig, dataExtractor, mapper, block.PreviousBlockHash), prevBlock =>
                        {
                            // We add from tip to genesis TimeSinceLast not present before here
                            storedBlocks.SetTimeSinceLast(block.Hash, block.Time - prevBlock.Time);

                            block = prevBlock;
                            storedBlocks.Add(prevBlock);
                        }
                                      );
                    }
                });

                if (storedBlocks.Count > blockCount)
                {
                    storedBlocks.RemoveOver(blockCount);
                }

                cache.Set(Constants.BlocksInfoKey, storedBlocks);
            });
        }