Skip to content

storycraft/mcslib

Repository files navigation

NPM Version (with dist tag)

mcslib: Minecraft command script library

mcslib is structural programming language coded using javascript, compiles into minecraft datapack.

About language guide, see guide.md (in progress)

About language reference, see reference.md (in progress)

Template

See https://github.com/storycraft/mcslib-template

Project milestone

  • Expression template literal lexer and parser
  • Number type
  • String type
  • Builtin types and methods(static dispatch)
  • Reference types
  • Function, object, array types
  • Closure and coroutine
  • IR lowering
  • Command template literal parser
  • Execute commands using variable value
  • Store command result into variable
  • IR optimization (in progress)
    • Loop optimization
    • Branch prediction
    • Constant folding
  • Codegen optimization (in progress)
    • Optimized memory placement
    • Dead code elimination (partial)

Example

Compile example datapack using

npm start --example=build

Run datapack with intrinsics_datapack

example:draw_star

Demonstration of string concatenation

Source code in examples/draw-star.ts Draw star example preview

example:cube_particle

Demonstration of running particle command using variable value

Source code in examples/cube-particle.ts Cube particle example preview

example:poll

Demonstration of running command using command output

Source code in examples/poll.ts poll example preview

example:string_methods, example:number_methods

Demonstration of running builtin methods

Source code in examples/methods.ts poll example preview

License

mcslib and project resources are licensed under MIT license