world.beforeEvents.playerInteractWithBlock.subscribe(event => {
system.run(() => {
const itemInHand = event.itemStack;
const contourPortal = 'minecraft:glowstone';
const portalBlock = 'minecraft:stone';
const item = 'minecraft:flint_and_steel'
if (!itemInHand || itemInHand.typeId !== item) return;
const block = event.block;
const playerPos = block.location;
const dimension = world.getDimension('overworld');
const isCorrectContour = (x, y, z, rotation) => {
const offsets = {
x: [
{ dx: 0, dz: 1 }, { dx: 0, dz: -2 },
{ dx: 0, dy: 1, dz: 1 }, { dx: 0, dy: 1, dz: -2 },
{ dx: 0, dy: 2, dz: 1 }, { dx: 0, dy: 2, dz: -2 },
{ dx: 0, dy: 3, dz: 1 }, { dx: 0, dy: 3, dz: -2 },
{ dx: 0, dy: 4, dz: 1 }, { dx: 0, dy: 4, dz: -2 },
{ dx: 0, dy: 4, dz: 0 }, { dx: 0, dy: 4, dz: -1 },
{ dx: 0, dz: -1 }
],
z: [
{ dx: 1, dz: 0 }, { dx: -2, dz: 0 },
{ dx: 1, dy: 1, dz: 0 }, { dx: -2, dy: 1, dz: 0 },
{ dx: 1, dy: 2, dz: 0 }, { dx: -2, dy: 2, dz: 0 },
{ dx: 1, dy: 3, dz: 0 }, { dx: -2, dy: 3, dz: 0 },
{ dx: 1, dy: 4, dz: 0 }, { dx: -2, dy: 4, dz: 0 },
{ dx: 0, dy: 4, dz: 0 }, { dx: -1, dy: 4, dz: 0 },
{ dx: -1, dz: 0 }
]
};