// Change anys door blocks nearby into air forms static void Door(Level lvl, ref PhysInfo C) { ushort x = C.X, y = C.Y, z = C.Z; BlockID block = (BlockID)(C.Data.Value2 | (C.Data.ExtBlock << Block.ExtendedShift)); bool instant = block == Block.Door_Air || block == Block.Door_AirActivatable; ActivateablePhysics.DoDoors(lvl, (ushort)(x + 1), y, z, instant); ActivateablePhysics.DoDoors(lvl, (ushort)(x - 1), y, z, instant); ActivateablePhysics.DoDoors(lvl, x, y, (ushort)(z + 1), instant); ActivateablePhysics.DoDoors(lvl, x, y, (ushort)(z - 1), instant); ActivateablePhysics.DoDoors(lvl, x, (ushort)(y - 1), z, instant); ActivateablePhysics.DoDoors(lvl, x, (ushort)(y + 1), z, instant); if (block == Block.Door_Green && lvl.physics != 5) { ActivateablePhysics.DoNeighbours(lvl, x, y, z); } }
// Change anys door blocks nearby into air forms public static void Door(Level lvl, ref Check C) { ushort x, y, z; lvl.IntToPos(C.b, out x, out y, out z); byte block = C.data.Value2; bool instant = !C.data.ExtBlock && (block == Block.Door_Air || block == Block.Door_AirActivatable); ActivateablePhysics.DoDoors(lvl, (ushort)(x + 1), y, z, instant); ActivateablePhysics.DoDoors(lvl, (ushort)(x - 1), y, z, instant); ActivateablePhysics.DoDoors(lvl, x, y, (ushort)(z + 1), instant); ActivateablePhysics.DoDoors(lvl, x, y, (ushort)(z - 1), instant); ActivateablePhysics.DoDoors(lvl, x, (ushort)(y - 1), z, instant); ActivateablePhysics.DoDoors(lvl, x, (ushort)(y + 1), z, instant); if (block == Block.Door_Green && lvl.physics != 5) { ActivateablePhysics.DoNeighbours(lvl, C.b, x, y, z); } }