/// <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; }
public void Setup() { sourceBlock = new NamespacedBlock("TestBlock", NbtBlockProperty.CreateFromNbt("test", new NbtCompound() { new NbtInt("base", 2) })); sourceBlock2 = new NamespacedBlock("EqualTest"); sourceBlock3 = new NamespacedBlock("EqualTest"); }
public Block CreateBlock(NamespacedBlock block, BlockEntity entity) { if (Index == -1) { return(Factory.FromNamespaced(block, entity)); } else { return(FactoryMultiple.FromNamespaced(Index, block, entity)); } }
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)); }
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); } } }
Block IBlockFactoryMultiple.FromNamespaced(int index, NamespacedBlock block, BlockEntity entity) => ListOfBlocks[index].Block;
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); }