Exemplo n.º 1
0
 /// <summary>
 /// Create an UnknownBlock from low-level namespaced block.
 /// </summary>
 /// <param name="block"></param>
 /// <param name="entity"></param>
 public UnknownBlock(NamespacedBlock block, BlockEntity entity = null) : base(BuiltInUniqueId)
 {
     _isNamespaced   = true;
     _entity         = entity;
     _nsblock        = block;
     _namespacedName = block.Name;
 }
Exemplo n.º 2
0
        public void Setup()
        {
            sourceBlock = new NamespacedBlock("TestBlock",
                                              NbtBlockProperty.CreateFromNbt("test", new NbtCompound()
            {
                new NbtInt("base", 2)
            }));

            sourceBlock2 = new NamespacedBlock("EqualTest");
            sourceBlock3 = new NamespacedBlock("EqualTest");
        }
Exemplo n.º 3
0
 public Block CreateBlock(NamespacedBlock block, BlockEntity entity)
 {
     if (Index == -1)
     {
         return(Factory.FromNamespaced(block, entity));
     }
     else
     {
         return(FactoryMultiple.FromNamespaced(Index, block, entity));
     }
 }
Exemplo n.º 4
0
        private static NamespacedBlock QuerySimpleBlockCache(string name)
        {
            if (name == NamespacedBlock.IdAirBlock)
            {
                return(NamespacedBlock.AirBlock);
            }

            if (SimpleBlockCache.TryGetValue(name, out var block))
            {
                return(block);
            }

            return(SimpleBlockCache[name] = new NamespacedBlock(name));
        }
Exemplo n.º 5
0
        public void AllBlocksTest()
        {
            var chunk = CreateEmpty();
            var ns    = new NamespacedBlock("test");

            using (var t = chunk.CreateChangeBlockTransaction())
            {
                t.SetBlock(6, 16, 6, ns);
                t.SetBlock(6, 90, 6, ns);
                t.CommitChanges();
            }

            foreach (var it in chunk.AllBlocks())
            {
                if (it.X == 6 && it.Z == 6 && (it.Y == 16 || it.Y == 90))
                {
                    Assert.IsTrue(it.Block == ns);
                }
                else
                {
                    Assert.IsTrue(it.Block == NamespacedBlock.AirBlock);
                }
            }
        }
Exemplo n.º 6
0
 Block IBlockFactoryMultiple.FromNamespaced(int index, NamespacedBlock block, BlockEntity entity) => ListOfBlocks[index].Block;
Exemplo n.º 7
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);
            }