sandstone-raycast
v1.0.12
Published
A Sandstone library to create raycast
Downloads
5
Readme
Raycast Library for Sandstone
This library is built for sandstone: https://github.com/sandstone-mc/sandstone :computer:
This library provides a simple raycast function to quickly construct a raycast for blocks and\or entities.
To import the raycast function:
- Download the NPM Library. :arrow_down:
- You can do it by running
npm i sandstone-raycast
in your console.
- You can do it by running
- Import the
raycast
in your project. :arrow_heading_down:
import { raycast } from "sandstone-raycast";
- Call the raycast function to generate MCFunctons.
- Enjoy :star:
Syntax:
raycast(fileName, blockToIgnore, entityToHit, runOnEveryStep, runOnHit, step, maxIter){
// code
}
nameOfFile
Name of the file that will be generated.
blockToIgnore
Block name ignore, if the current block is not the specified block then the raycast will stop, can be null.
entityToHit
Name of the Entity to look for, it accept Selectors with distance attribute, can be null.
runOnEveryStep
MCFunction to run on every step.
runOnHit
MCFunction to run on hitting the target.
step
Step size of the raycast, default is 1 (OPTIONAL).
maxIter
Maximum iteration of the raycast, default is 20 (OPTIONAL).
Example of raycast function:
raycast(
"raycast/cast",
"minecraft:air",
Selector('@e',
{
type: "minecraft:husk",
dx: 0
}
),
MCFunction("raycast/update", () => {
particle("minecraft:crit", rel(0, 0, 0), [0, 0, 0], 0, 1);
}),
MCFunction("raycast/hit", () => {
effect.give(Selector('@e', { type: 'minecraft:husk', dx: 0}), "minecraft:instant_health");
say("Hi")
}), 1, 50
)
Example Pack:
import { effect, execute, loc, MCFunction, Objective, particle, rel, say, Selector } from 'sandstone'
import { raycast } from "sandstone-raycast";
export const rightClickObj = Objective.create("rcObj", "minecraft.used:minecraft.carrot_on_a_stick")
export const rightClick = rightClickObj("@s")
MCFunction('test', () => {
execute.as(Selector('@a', { scores: { 'rcObj': [1, null] } })).at('@s').anchored("eyes").positioned(loc(0, 0, 1)).run(() => {
rightClick.set(0);
raycast(
"raycast/cast",
"minecraft:air",
Selector('@e',
{
type: "minecraft:husk",
dx: 0
}
),
MCFunction("raycast/update", () => {
particle("minecraft:crit", rel(0, 0, 0), [0, 0, 0], 0, 1);
}),
MCFunction("raycast/hit", () => {
effect.give(Selector('@e', { type: 'minecraft:husk', dx: 0}), "minecraft:instant_health");
say("Hi")
}), 1, 50
)
})
}, {
runEachTick: true
})
NOTE: This library does NOT handle scores and right click detection