Exemplo n.º 1
0
def scoreboard(ctx: Context, opts: ScoreboardOptions):
    """Plugin that adds generated scoreboards to the data pack."""
    if scoreboard_data := ctx.meta.get("generate_scoreboard"):
        commands = [
            f"scoreboard objectives add {name} {criterion}"
            for name, criterion in scoreboard_data.items()
        ]
        ctx.generate(opts.function, Function(commands, prepend_tags=list(opts.tags)))
        scoreboard_data.clear()
Exemplo n.º 2
0
Arquivo: demo.py Projeto: mcbeet/beet
def handle_content(ctx: Context, node: TreeNode[str], function: Function, n: int):
    if node.root:
        ctx.generate(Function([f"function {node.parent}"], tags=["minecraft:tick"]))
        function.lines.append(f"scoreboard players add #index temp 1")
    if node.partition(n):
        function.lines.append(
            f"execute if score #index temp matches {node.range} run function {node.children}"
        )
    else:
        function.lines.append(
            f"execute if score #index temp matches {node.range} run say {node.value}"
        )
Exemplo n.º 3
0
Arquivo: demo.py Projeto: mcbeet/beet
def plugin1(ctx: Context):
    ctx.require(plugin2)

    for i in range(5):
        with ctx.generate[f"part{i}"].push():
            loop = ctx.generate(
                "{short_hash}",
                render=Function(source_path=ctx.directory / "main.mcfunction"),
                hash=i,
                count=i + 1,
            )

            ctx.generate("init",
                         render=Function(["function {{ loop }}"]),
                         loop=loop)
Exemplo n.º 4
0
Arquivo: demo.py Projeto: mcbeet/beet
def beet_default(ctx: Context):
    ctx.require("beet.contrib.inline_function_tag")

    ctx.generate(render=Function(["say {{ 6 * 7 }}"]))
    ctx.generate("foo",
                 render=Function(source_path="foo.mcfunction"),
                 message="hello")

    ctx.require(plugin1)

    with ctx.override(generate_namespace="other"):
        ctx.generate["thing"](
            render=Function(
                ['#!include "foo.mcfunction"'],
                tags=[ctx.generate(FunctionTag())],
            ),
            message="world",
        )
Exemplo n.º 5
0
def beet_default(ctx: Context):
    for i in range(5):
        key = ctx.generate(Function(["say hello"]))
        ctx.generate["foo"](Function([f"function {key}"]))

        with ctx.override(generate_namespace="demo"):
            ctx.generate(Function(["say demo"]))

            with ctx.override(generate_prefix="thing"):
                ctx.generate(Function(["say thing"]))

                with ctx.override(generate_path="other:{namespace}/"):
                    for j in range(3):
                        ctx.generate["foo"]("{incr}_{hash}",
                                            Function([f"say {i}{j}"]))

                with ctx.override(generate_path="{namespace}:generated/"):
                    key = ctx.generate("{short_hash}", Function([f"say {i}"]))

            with ctx.generate["a"].push():
                ctx.generate["b"](Function(["say c", f"function {key}"]))

        with ctx.override(generate_path="creeper{incr}:"):
            ctx.generate("boom", Function(["say boom"]))

        ctx.generate["nested"](
            "{hash}",
            Function(["say hello"]),
            hash=f"something/other thing, {i} blah",
        )

    tag1 = ctx.generate.id("foo")
    obj1 = ctx.generate.hash("foo")
    ctx.generate(Function([f"scoreboard players set @s[tag={tag1}] {obj1} 1"]))

    generate = ctx.generate["hello"]

    tag2 = generate.id("foo")
    obj2 = generate.hash("foo")
    generate(Function([f"scoreboard players set @s[tag={tag2}] {obj2} 1"]))
Exemplo n.º 6
0
Arquivo: demo.py Projeto: mcbeet/beet
def plugin5(ctx: Context, opts: JsonDict):
    ctx.generate(Function([f"say {opts}"]))
Exemplo n.º 7
0
Arquivo: demo.py Projeto: mcbeet/beet
def plugin4(ctx: Context, opts: PluginOptions):
    ctx.generate("plugin4_{incr}", Function(opts.commands))
Exemplo n.º 8
0
Arquivo: demo.py Projeto: mcbeet/beet
def plugin2(ctx: Context, opts: JsonDict):
    ctx.generate("plugin2_{incr}", Function(opts["commands"]))