NPCs included, finishing touches zijn nog nodig

This commit is contained in:
2024-09-11 16:54:16 +02:00
parent 283f95e00a
commit c323e98bcd
25 changed files with 1665 additions and 891 deletions

View File

@@ -2,22 +2,28 @@ import { BlockVolume, 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 { startLevel, teleportAndFaceAgent } from "../../Commandeer/utils/levelUtils";
import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils";
import { mindKeeper, CURRENT_LEVEL } from "../../main";
import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block";
import level5 from "../level3/mission1";
const Level4CommandBlockPos: Vector3 = vector3(-161, 68, 291);
const level4StartPosition: Vector3 = vector3(-161, 62, 261);
const level4EndPosition: Vector3 = vector3(-174, 62, 268);
const level4ResetCommandBlockPos: Vector3 = vector3(56, 68, 211);
let volumeResetRedstoneBlock: BlockVolume = new BlockVolume(vector3(-163, 67, 291), vector3(-163, 67, 291));
let isComplete = false;
let isOutOfBounds = false;
const level4: Level = new Level(
() => {
pupeteer.sendWorldMessage("%message.level4.started");
pupeteer.setTitleTimed("%message.level4.name", 2.5);
startLevel(Level4CommandBlockPos);
teleportAndFaceAgent(level4StartPosition, vector3(-175, 62, 261));
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
},
() => {
pupeteer.setActionBar("%message.level4.make");
@@ -31,9 +37,6 @@ const level4: Level = new Level(
level5.reset();
},
() => {
let isComplete = false;
let isOutOfBounds = false;
let agentPos = getAgentLocation();
let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0)));
@@ -46,13 +49,12 @@ const level4: Level = new Level(
}
if (isOutOfBounds) {
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
teleportAndFaceAgent(level4StartPosition, vector3(-175, 62, 261));
pupeteer.sendWorldMessage("%message.level4.outOfBounds");
pupeteer.setTitleTimed("%message.level4.outOfBounds", 2.5);
world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s");
let volume: BlockVolume = new BlockVolume(vector3(-163, 67, 291), vector3(-163, 67, 291));
world.getDimension("overworld").fillBlocks(volume, MinecraftBlockTypes.RedstoneBlock);
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
return false;
} else if (isComplete) {
@@ -61,23 +63,9 @@ const level4: Level = new Level(
return false;
},
() => {
let volume: BlockVolume = new BlockVolume(vector3(-163, 67, 291), vector3(-163, 67, 291));
world.getDimension("overworld").fillBlocks(volume, MinecraftBlockTypes.RedstoneBlock);
isComplete = false;
world.getDimension("overworld").fillBlocks(volumeResetRedstoneBlock, MinecraftBlockTypes.RedstoneBlock);
}
);
function teleportAndFaceAgent(position: Vector3, facing: Vector3 = vector3(0, 0, 0)): void {
if (facing == vector3(-175, 62, 261)) {
world
.getDimension("overworld")
.runCommand(`/execute as @a run tp @e[type=agent] ${position.x} ${position.y} ${position.z}`);
} else {
world
.getDimension("overworld")
.runCommand(
`/execute as @a run tp @e[type=agent] ${position.x} ${position.y} ${position.z} facing ${facing.x} ${facing.y} ${facing.z}`
);
}
}
export default level4;