public function run(WorldEditSession $session, array $args) { $params = new FormattedArguments($args); $sel = $session->getSelection($params->opt("n", "default")); if ($sel === null) { return Lang::ERR_NO_SEL; } $coll = new BlockCollection(); while (($string = $params->nextPlain()) !== null) { $entry = BlockEntry::fromString($string); // TODO handle exception $coll->addBlock($entry); } $bb = $sel->iteratorAllBlocks($coll); $rheostat = new Rheostat($session->getQueue(), $bb, $session->translate(Lang::SPACE_SET_BLOCKS, ["SPACE" => $sel->name($session)])); $session->getQueue()->addTask($rheostat); return Lang::EDIT_SET_IN_PROGRESS; }
public function run(WorldEditSession $session, array $args) { $params = new FormattedArguments($args); $sel = $session->getSelection($params->opt("n", "default")); if ($sel === null) { return Lang::ERR_NO_SEL; } $blocks = $params->nextPlain(); $sources = []; foreach (explode(",", $blocks) as $block) { $sources[] = BlockEntry::fromString($block, false); } $targets = new BlockCollection(); while (($string = $params->nextPlain()) !== null) { $entry = BlockEntry::fromString($string); // TODO handle exception $targets->addBlock($entry); } $bb = $sel->iteratorAllBlocks($targets); $rheostat = new Rheostat($session->getQueue(), new ArrayBackedBlockFilter($sources), $bb, $session->translate(Lang::SPACE_SET_BLOCKS, ["SPACE" => $sel->name($session)])); $session->getQueue()->addTask($rheostat); return Lang::EDIT_REPLACE_IN_PROGRESS; }