aternos/plop

Plop Minecraft structures into existence

Installs: 6

Dependents: 0

Suggesters: 0

Security: 0

Stars: 5

Watchers: 1

Forks: 0

Open Issues: 0

Type:project

v1.0.0 2024-08-09 13:24 UTC

This package is auto-updated.

Last update: 2024-11-09 14:01:02 UTC


README

Generate Minecraft function files to make structures plop into existence in Vanilla Minecraft.

plop

Plop uses a Vanilla structure file to generate a single function file that works without any other dependencies.

Installation

CLI

git clone https://github.com/aternosorg/plop.git
cd plop
composer install

Library

composer require aternos/plop

Usage

Plop generates its function files from Minecraft structure files. These files can be created using the structure block in Minecraft: https://minecraft.wiki/w/Structure_Block

CLI

Plop includes a simple CLI to generate Minecraft function files using a handful of preset animation types.

php plop.php <input> [--function|-f <function>] [--output|-o <output>] [--animation|-a <animation>] [--placement|-p <placement>]

The only required argument is the path to your <input> structure file.

Options

Other available options are:

Animations

An animation defines how individual blocks appear usually using block entities. You can find all available animations and parameters here: wiki/Animations

Placement strategies

A placement strategy defines in which order and at which speed blocks of the structure are added to the world. You can find all available placement strategies and parameters here: wiki/Placement Strategies

Library

Using Plop as a library allows much greater control over the generation process. It is also possible to extend Plop to support custom animation types and placement strategies.

$input = \Aternos\Plop\Input\StructureFile\StructureFile::loadFile("something.nbt");
$strategy = new \Aternos\Plop\Placement\SameMaterialPlacementStrategy(perTick: 3);
$animation = new \Aternos\Plop\Animation\FloatAnimation(animationDuration: 25, x: -10, y: 6, z: -10);

$plop = new \Aternos\Plop\Plop(
    input: \Aternos\Plop\Input\StructureFile\StructureFile::loadFile("something.nbt"),
    functionName: "plop:example",
    placementStrategy: $strategy,
    defaultAnimation: $animation
);
$plop->generate();

echo $plop->getOutput()->getAsString();