UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

65 lines (58 loc) 2.69 kB
import { Vector3Utils } from "@minecraft/math"; import { BlockPermutation, DimensionLocation } from "@minecraft/server"; import { MinecraftBlockTypes } from "@minecraft/vanilla-data"; /** * Creates a multicolored block out of different colors of wool. * @param {(message: string, status?: number) => void} log: Logger function. If status is positive, test is a success. If status is negative, test is a failure. * @param {DimensionLocation} targetLocation Location to center this sample code around. * @see https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/BlockPermutation#resolve */ export function addBlockColorCube(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) { const allWoolBlocks: string[] = [ MinecraftBlockTypes.WhiteWool, MinecraftBlockTypes.OrangeWool, MinecraftBlockTypes.MagentaWool, MinecraftBlockTypes.LightBlueWool, MinecraftBlockTypes.YellowWool, MinecraftBlockTypes.LimeWool, MinecraftBlockTypes.PinkWool, MinecraftBlockTypes.GrayWool, MinecraftBlockTypes.LightGrayWool, MinecraftBlockTypes.CyanWool, MinecraftBlockTypes.PurpleWool, MinecraftBlockTypes.BlueWool, MinecraftBlockTypes.BrownWool, MinecraftBlockTypes.GreenWool, MinecraftBlockTypes.RedWool, MinecraftBlockTypes.BlackWool, ]; const cubeDim = 7; let colorIndex = 0; for (let x = 0; x <= cubeDim; x++) { for (let y = 0; y <= cubeDim; y++) { for (let z = 0; z <= cubeDim; z++) { colorIndex++; targetLocation.dimension .getBlock(Vector3Utils.add(targetLocation, { x, y, z })) ?.setPermutation(BlockPermutation.resolve(allWoolBlocks[colorIndex % allWoolBlocks.length])); } } } } /** * Checks whether a specified block is dirt, wood, or stone. * @param {(message: string, status?: number) => void} log: Logger function. If status is positive, test is a success. If status is negative, test is a failure. * @param {DimensionLocation} targetLocation Location to center this sample code around. * @see https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/Block#hasTag * @see https://learn.microsoft.com/minecraft/creator/scriptapi/minecraft/server/BlockPermutation#hasTag */ export function checkBlockTags(log: (message: string, status?: number) => void, targetLocation: DimensionLocation) { // Fetch the block const block = targetLocation.dimension.getBlock(targetLocation); // check that the block is loaded if (block) { log(`Block is dirt: ${block.hasTag("dirt")}`); log(`Block is wood: ${block.hasTag("wood")}`); log(`Block is stone: ${block.hasTag("stone")}`); } }