First Version

This commit is contained in:
2024-09-09 09:28:16 +02:00
parent 1ab45204b9
commit e5d35618f8
9 changed files with 69 additions and 43 deletions

View File

@@ -28,19 +28,19 @@ export namespace TrailMaker {
OnChat(event: ChatSendAfterEvent) {
if (event.message == "!trailWand") {
let item: ItemStack = new ItemStack("minecraft:stick");
const item: ItemStack = new ItemStack("minecraft:stick");
item.nameTag = "AddPoint";
Pupeteer.givePlayerItem(event.sender as Player, item);
world.sendMessage("Thou shall have the Trailing Powah");
}
if (event.message == "!trailDeleteWand") {
let item: ItemStack = new ItemStack("minecraft:stick");
const item: ItemStack = new ItemStack("minecraft:stick");
item.nameTag = "DeletePoint";
Pupeteer.givePlayerItem(event.sender as Player, item);
world.sendMessage("Luke, i'm NOT your father");
}
if (event.message == "!trailLineWand") {
let item: ItemStack = new ItemStack("minecraft:stick");
const item: ItemStack = new ItemStack("minecraft:stick");
item.nameTag = "AddLine";
Pupeteer.givePlayerItem(event.sender as Player, item);
world.sendMessage(`This is where i draw the ${Chalk.red("Line")} >:(`);
@@ -50,7 +50,6 @@ export namespace TrailMaker {
}
}
OnItemUse(event: ItemUseOnBeforeEvent) {
const currentItemHeld: ItemStack = event.itemStack;
const blockInteracted: Block = event.block;
const player: Player = event.source as Player;
const oldLog = this.log.get(player.name)!;
@@ -58,8 +57,8 @@ export namespace TrailMaker {
if (oldLog + 150 >= Date.now()) return;
if (event.itemStack.typeId == "minecraft:stick" && event.itemStack.nameTag == "AddPoint") {
let block = event.block;
let pos = this.BlockToParticlePosition(block);
const block = event.block;
const pos = this.BlockToParticlePosition(block);
world.sendMessage(`Added Point ${Vector3ToString(pos)}`);
this.currentTrail.points.push(new Point(pos, this.currentTrail.currentPoint));
@@ -68,10 +67,10 @@ export namespace TrailMaker {
}
if (event.itemStack.typeId == "minecraft:stick" && event.itemStack.nameTag == "DeletePoint") {
let block = event.block;
let pos = this.BlockToParticlePosition(block);
const block = event.block;
const pos = this.BlockToParticlePosition(block);
let point = this.currentTrail.points.find((point) => Vector3ToString(point.position) == Vector3ToString(pos));
const point = this.currentTrail.points.find((point) => Vector3ToString(point.position) == Vector3ToString(pos));
if (point) {
this.currentTrail.points.splice(this.currentTrail.points.indexOf(point), 1);
Pupeteer.setActionBarTimed(`Deleted point ${point.index}`, 3);
@@ -96,18 +95,18 @@ export namespace TrailMaker {
//Calculate the blocks between these 2 points, andd add them to the trail
//Assume point1 is the start, and point2 is the end
let x1 = this.point1.x;
let x2 = this.point2.x;
let y1 = this.point1.y;
let y2 = this.point2.y;
let z1 = this.point1.z;
let z2 = this.point2.z;
const x1 = this.point1.x;
const x2 = this.point2.x;
const y1 = this.point1.y;
const y2 = this.point2.y;
const z1 = this.point1.z;
const z2 = this.point2.z;
//Find out what axis is the movement on, throw an error if it's on more than one axis
let xDiff = Math.abs(x2 - x1);
let yDiff = Math.abs(y2 - y1);
let zDiff = Math.abs(z2 - z1);
const xDiff = Math.abs(x2 - x1);
const yDiff = Math.abs(y2 - y1);
const zDiff = Math.abs(z2 - z1);
let axis = "";
@@ -165,8 +164,8 @@ export namespace TrailMaker {
Export() {
let output = "";
for (let i = 0; i < this.currentTrail.points.length; i++) {
let point = this.currentTrail.points[i];
let actualPos = point.position;
const point = this.currentTrail.points[i];
const actualPos = point.position;
output += `{ index: ${point.index}, position: vector3(${actualPos.x}, ${actualPos.y}, ${actualPos.z}) },\n`;
}
console.warn(output);
@@ -177,7 +176,7 @@ export namespace TrailMaker {
pos = Vector3Add(pos, vector3(0.5, 0, 0.5));
//If block is a slab or stair, offset by half a block
let isHalfBlock = block.typeId.includes("slab") || block.typeId.includes("stair");
const isHalfBlock = block.typeId.includes("slab") || block.typeId.includes("stair");
if (isHalfBlock) {
pos = Vector3Add(pos, vector3(0, 0.5, 0));
} else {

View File

@@ -8,7 +8,7 @@ const level1StartPosition: Vector3 = vector3(2488, -2, 7);
const level1AgentFacing: Vector3 = vector3(0, 0, 1);
const Level1EndPosition: Vector3 = vector3(2488, -2, 22);
let mission3part1: AbstractAgentTrackMission = new AbstractAgentTrackMission(
const mission3part1: AbstractAgentTrackMission = new AbstractAgentTrackMission(
"mission3part1",
level1StartPosition,
level1AgentFacing,

View File

@@ -8,7 +8,7 @@ const level1StartPosition: Vector3 = vector3(2492, -2, 26);
const level1AgentFacing: Vector3 = vector3(0, 0, 1);
const Level1EndPosition: Vector3 = vector3(2484, -2, 32);
let mission3part2: AbstractAgentTrackMission = new AbstractAgentTrackMission(
const mission3part2: AbstractAgentTrackMission = new AbstractAgentTrackMission(
"mission3part2",
level1StartPosition,
level1AgentFacing,

View File

@@ -9,7 +9,7 @@ const level1AgentFacing: Vector3 = vector3(1, 0, 0);
const Level1EndPosition: Vector3 = vector3(2488, -2, 57);
const mission3part2: AbstractAgentTrackMission = new AbstractAgentTrackMission(
"mission3part2",
"mission3part3",
level1StartPosition,
level1AgentFacing,
Level1EndPosition,

View File

@@ -16,6 +16,7 @@ import {
Vector3ToCommandString,
Vector3ToFancyString,
vector3,
vector3Distance,
} from "./Commandeer/utils/vectorUtils";
import { delay } from "./Commandeer/utils/waitUtil";
import { ParticleColumn, PARTICLES, spawnParticle } from "./Commandeer/utils/particleUtils";
@@ -56,7 +57,7 @@ const triggerManager = new CCTrigger.Manager(mindKeeper);
const CURRENT_LEVEL = "currentLevel";
const AGENT_ID = "agentid";
const PREFIX = "!";
let DEVELOPER_MODE = true;
let DEVELOPER_MODE = false;
export { mindKeeper, CURRENT_LEVEL, triggerManager, PREFIX, DEVELOPER_MODE };
@@ -104,11 +105,20 @@ system.runInterval(() => {
triggerManager.Update();
}
const currentLevel = mindKeeper.get(CURRENT_LEVEL);
if (prevCurrentLevel != currentLevel) {
world.sendMessage("Current level: " + currentLevel);
prevCurrentLevel = mindKeeper.get(CURRENT_LEVEL) as number;
if (tickCounter % 10 == 0) {
//Give the player water breathing
const player = world.getPlayers()[0];
player.addEffect("water_breathing", 200, { showParticles: false });
}
const currentLevel = mindKeeper.get(CURRENT_LEVEL);
if (DEVELOPER_MODE) {
if (prevCurrentLevel != currentLevel) {
world.sendMessage("Current level: " + currentLevel);
prevCurrentLevel = mindKeeper.get(CURRENT_LEVEL) as number;
}
}
switch (currentLevel) {
case 0:
// Show goto airlock text
@@ -117,6 +127,17 @@ system.runInterval(() => {
drawArrow(vector3(2478, 37, 89));
airlockParticles.update();
airlockParticles.draw();
//Check if the player is 100 blocks from /setblock 2475 11 91
{
const playerPos = world.getPlayers()[0].location;
const distance = vector3Distance(playerPos, vector3(2475, 11, 91));
if (distance > 40) {
world.getPlayers()[0].teleport(vector3(2480, 23, 88));
world.sendMessage("%message.teleport.airlock");
}
}
break;
case 1:
Pupeteer.setActionBar("%message.enter.airlock");
@@ -232,6 +253,14 @@ system.runInterval(() => {
}
});
Commands.register(PREFIX, "connect", () => {
//Websocket
system.run(() => {
world.sendMessage("Connecting to websocket");
world.getDimension("overworld").runCommand("/connect 192.168.0.207/ws");
});
});
triggerManager.RegisterFunctionTrigger("lightPath", () => {
lightUpPath();
});

View File

@@ -1,8 +1,7 @@
import { Vector3 } from "@minecraft/server";
import { TrailType } from "../Commandeer/trail/trailTypes";
import { vector3 } from "../Commandeer/utils/vectorUtils";
let IntroToLevel1Trail: TrailType = {
const IntroToLevel1Trail: TrailType = {
name: "IntroToLevel1Trail",
points: [
{ index: 0, position: vector3(2468, 11.1, 104.5) },