Example #1
0
        public void Trigger(int x, int y, int z)
        {
            int dropZ = z;

            while (dropZ > 0)
            {
                if (!LetsSandThrough(map.GetBlock(x, y, dropZ - 1)))
                {
                    break;
                }
                dropZ--;
            }

            if (dropZ == z)
            {
                return;
            }
            Block oldBlock = map.GetBlock(x, y, dropZ);

            if (oldBlock != Block.Air)
            {
                map.SetBlockNoUpdate(x, y, dropZ, Block.Air);
            }
            map.Swap(x, y, z,
                     x, y, dropZ);
        }