예제 #1
0
 /// <summary>
 /// Create an UnknownBlock from low-level classic block.
 /// </summary>
 /// <param name="block"></param>
 /// <param name="entity"></param>
 public UnknownBlock(ClassicBlock block, BlockEntity entity = null) : base(BuiltInUniqueId)
 {
     _isNamespaced = false;
     _entity       = entity;
     _classicblock = block;
     _classicIndex = block.Id;
 }
예제 #2
0
 public Block CreateBlock(ClassicBlock block, BlockEntity entity)
 {
     if (Index == -1)
     {
         return(Factory.FromClassic(block, entity));
     }
     else
     {
         return(FactoryMultiple.FromClassic(Index, block, entity));
     }
 }
예제 #3
0
            public int RegisterDispatcherCache(bool hasClassicBlock, ClassicBlock classic, NamespacedBlock ns, BlockEntity entity)
            {
                if (!hasClassicBlock && ns is null)
                {
                    throw new ArgumentException($"{nameof(hasClassicBlock)} & {nameof(ns)} cannot be both empty.");
                }

                _entries.Add(new Entry()
                {
                    HasClassicBlock = hasClassicBlock,
                    Classic         = classic,
                    Namespaced      = ns,
                    Entity          = entity
                });

                return(_entries.Count - 1);
            }
예제 #4
0
 Block IBlockFactoryMultiple.FromClassic(int index, ClassicBlock block, BlockEntity entity) => ListOfBlocks[index].Block;