/// <summary> /// Add your custom block to the list /// </summary> /// <param name="b">Block to add</param> public static void Add(Block b) { if (!CustomBlockList.Contains(b)) CustomBlockList.Add(b); }
public int SearchColumn(int x, int z, Block id) { return SearchColumn(x, z, id, CWMap.Size.y - 1); }
public int SearchColumn(int x, int z, Block id, int zStart) { for (int y = zStart; y > 0; y--) { if (GetBlock(x, z, y) == id) { return y; } } return -1; // -1 means 'not found' }
/// <summary> /// Fills the Y layer. /// </summary> /// <param name="x">The x.</param> /// <param name="z">The z.</param> /// <param name="block">The block.</param> public void FillY(int x, int z, Block block) { for (int y = 0; y < CWMap.Size.z; y++) SetBlock(x, z, y, block); }
/// <summary> /// Fills the Z layer. /// </summary> /// <param name="x">The x.</param> /// <param name="y">The y.</param> /// <param name="block">The block.</param> public void FillZ(int x, int y, Block block) { for (int z = 0; z < CWMap.Size.y; z++) SetBlock(x, z, y, block); }
/// <summary> /// Fills the X layer. /// </summary> /// <param name="y">The y.</param> /// <param name="z">The z.</param> /// <param name="block">The block.</param> public void FillX(int y, int z, Block block) { for (int x = 0; x < CWMap.Size.x; x++) SetBlock(x, z, y, block); }
/// <summary> /// Fills the plane ZY. /// </summary> /// <param name="x">The x.</param> /// <param name="block">The block.</param> public void FillPlaneZY(int x, Block block) { for (int z = 0; z < CWMap.Size.y; z++) for (int y = 0; y < CWMap.Size.z; y++) SetBlock(x, z, y, block); }
/// <summary> /// Fills the plane XZ. /// </summary> /// <param name="y">The y.</param> /// <param name="block">The block.</param> public void FillPlaneXZ(int y, Block block) { for (int x = 0; x < CWMap.Size.x; x++) for (int z = 0; z < CWMap.Size.y; z++) SetBlock(x, z, y, block); }
/// <summary> /// Fills the plane XY. /// </summary> /// <param name="z">The z.</param> /// <param name="block">The block.</param> public void FillPlaneXY(int z, Block block) { for (int x = 0; x < CWMap.Size.x; x++) for (int y = 0; y < CWMap.Size.z; y++) SetBlock(x, z, y, block); }
/// <summary> /// Fills the <see cref="Cuboid"/> with <paramref name="block"/>. /// </summary> /// <param name="block">The <see cref="Block"/> to fill with.</param> /// <param name="world">The <see cref="Level"/>.</param> /// <param name="p">The player.</param> /// <remarks></remarks> public void Fill(Block block, Level world, Player p = null) { var buffer = new List<Pos>(); ushort x, z, y; ushort xmin = (ushort) Min.x, xmax = (ushort) Max.x, zmin = (ushort) Min.z, zmax = (ushort) Max.z, ymin = (ushort) Min.y, ymax = (ushort) Max.y; for (x = xmin; x <= xmax; ++x) for (z = zmin; z <= zmax; ++z) for (y = ymin; y <= ymax; ++y) if (world.GetBlock(x, z, y) != block) BufferAdd(buffer, x, z, y); //Level Blockqueue if (p != null) p.SendMessage(buffer.Count.ToString(CultureInfo.InvariantCulture) + " blocks."); buffer.ForEach( pos => world.BlockChange((ushort) (pos.pos.x), (ushort) (pos.pos.z), (ushort) (pos.pos.y), block, p)); }