sandstone-raycast
TypeScript icon, indicating that this package has built-in type declarations

1.0.12 • Public • Published

Raycast Library for Sandstone


This library is built for sandstone: https://github.com/sandstone-mc/sandstone 💻

This library provides a simple raycast function to quickly construct a raycast for blocks and\or entities.

To import the raycast function:

  1. Download the NPM Library. ⬇️
    • You can do it by running npm i sandstone-raycast in your console.
  2. Import the raycast in your project. ⤵️
    import { raycast } from "sandstone-raycast";
  1. Call the raycast function to generate MCFunctons.
  2. Enjoy

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

Package Sidebar

Install

npm i sandstone-raycast

Weekly Downloads

1

Version

1.0.12

License

MIT

Unpacked Size

8.99 kB

Total Files

5

Last publish

Collaborators

  • mizab