import { MinecraftBlockTypes, Vector3, world } from "@minecraft/server"; import Level from "../../Commandeer/level/level"; import pupeteer from "../../Commandeer/pupeteer"; import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils"; import { startLevel } from "../../Commandeer/utils/levelUtils"; import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils"; import { level1Conditions } from "../../levelConditions/level1"; import { mindKeeper, CURRENT_LEVEL } from "../../main"; const Level1CommandBlockPos: Vector3 = vector3(2439, 0, 36); const level1StartPosition: Vector3 = vector3(2451, -2, 57); const Level1EndPosition: Vector3 = vector3(2451, -2, 41); const level1ResetCommandBlockPos: Vector3 = vector3(56, 68, 211); const level1: Level = new Level( () => { pupeteer.sendWorldMessage("%message.level1.started"); pupeteer.setTitleTimed("%message.level1.name", 2.5); startLevel(Level1CommandBlockPos); teleportAgent(level1StartPosition); }, () => { pupeteer.setActionBar("%message.level1.make"); }, () => { pupeteer.clearActionBar(); pupeteer.sendWorldMessage("%message.level1.complete"); pupeteer.setTitleTimed("%message.level1.complete", 2.5); mindKeeper.increment(CURRENT_LEVEL); }, () => { let isComplete = false; let isOutOfBounds = false; //6 blocks lower is lava let agentPos = getAgentLocation(); let blockLava = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -7, 0))); let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0))); if ( blockLava && blockLava.type === MinecraftBlockTypes.lava && blockAir && blockAir.type === MinecraftBlockTypes.air ) { isOutOfBounds = true; } if (isAgentAt(Level1EndPosition)) { isComplete = true; } // world.sendMessage(`isComplete: ${isComplete}`); // world.sendMessage(`isOutOfBounds: ${isOutOfBounds}`); if (isOutOfBounds) { pupeteer.sendWorldMessage("%message.level1.outOfBounds"); pupeteer.setTitleTimed("%message.level1.outOfBounds", 2.5); // world.getDimension("overworld").runCommand("/kill @e[type=agent]"); world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s"); teleportAgent(level1StartPosition); return false; } else if (isComplete) { return true; } return false; } ); export default level1;