PocketMine-Plugin-Tutorials icon indicating copy to clipboard operation
PocketMine-Plugin-Tutorials copied to clipboard

Generator

Open Ivanzar opened this issue 9 years ago • 38 comments

how to make my generation of the world, so that some part of world hung in the air? I used Generator but not understood it

Ivanzar avatar Apr 15 '15 22:04 Ivanzar

use pocketmine\level\generator\Generator;
use pocketmine\level\ChunkManager;
use pocketmine\utils\Random;

use pocketmine\math\Vector3;
use pocketmine\block\Block;

class TWWGenerator extends Generator{

    private $random,$level;

    public function __construct(array $settings=array()){

    }



    public function getName(){
        return "tww";

    }

    public function getSettings(){

    }

    public function getSpawn(){
        return new Vector3(128.5, 64, 128.5);
    }

    public function init(ChunkManager $level,Random $random){
        $this->random = $rnadom;
        $this->level = $level;

    }

    public function generateChunk($chunkX,$chunkZ){

        $chunk = $this->level->getChunk($chunkX, $chunkZ);
        $startX = min($selection[0][0] = 0, $selection[1][0] = 128);
        $endX = max($selection[0][0] = 0, $selection[1][0] = 128);
        $startY = min($selection[0][1] = 0, $selection[1][1] = 128);
        $endY = max($selection[0][1] = 0, $selection[1][1] = 128);
        $startZ = min($selection[0][2] = 0, $selection[1][2] = 128);
        $endZ = max($selection[0][2] = 0, $selection[1][2] = 128);
        for($x = $startX; $x < $endX; ++$x){
                for($y = $startY; $y < $endY; ++$y){
                for($z = $startZ; $z < $endZ; ++$z){
            $chunk->setBlockId($x,$y,$z,1);
        }
        }
        }
    }

    public function populateChunk($chunkX,$chunkZ){

    }

}

I used it as an experiment. Ignore if you did not understand me, give me example a generation

Ivanzar avatar Apr 15 '15 22:04 Ivanzar

What if I am not sure? :P

PEMapModder avatar Apr 16 '15 10:04 PEMapModder

Just to explain the principle of generation. I honestly didn't quite understand what i write xD

Ivanzar avatar Apr 16 '15 12:04 Ivanzar

i forgot load: STARTUP )

Ivanzar avatar Apr 16 '15 12:04 Ivanzar

@Ivanzar Айайай, плахой!! :D

xpyctum avatar Apr 16 '15 12:04 xpyctum

it`s progress line 15, __construct() 16:47:49 [CRITICAL] Could not execute asynchronous task GenerationTask: Argument 1 passed to Ivanzar\TheTwoTowerns\TWWGenerator::__construct() must be of the type array, null given, called in phar://C:/Users/ivanzar/PocketMine Progect/PocketMine-MP/PocketMine-MP.phar/src/pocketmine/level/generator/GenerationTask.php on line 63 and defined

Ivanzar avatar Apr 16 '15 12:04 Ivanzar

@Ivanzar

public function __construct(){
     private $settings = array();
}

xpyctum avatar Apr 16 '15 12:04 xpyctum

да я знаю

Ivanzar avatar Apr 16 '15 12:04 Ivanzar

это есть

Ivanzar avatar Apr 16 '15 12:04 Ivanzar

@Ivanzar Fixed. Исправил коммент

xpyctum avatar Apr 16 '15 12:04 xpyctum

@Ivanzar попробуй моё. вдруг поможет

xpyctum avatar Apr 16 '15 12:04 xpyctum

это ты про это public function __construct(array $settings=array()){

}

Ivanzar avatar Apr 16 '15 12:04 Ivanzar

@Ivanzar угу, замени мое на твоё и попробуй.

xpyctum avatar Apr 16 '15 12:04 xpyctum

может вместо приват php private $settings = array(); поставить php return

Ivanzar avatar Apr 16 '15 12:04 Ivanzar

@Ivanzar попробуй.

xpyctum avatar Apr 16 '15 12:04 xpyctum

нет Declaration of Ivanzar\TheTwoTowerns\TWWGenerator::__construct() must be compatible with pocketmine\level\generator\Generator::__construct(array $settings = Array) in C:\Users\ivanzar\PocketMine Progect\PocketMine-MP\plugins\DevTools\src\Ivanzar\TheTwoTowerns\TWWGenerator.php on line 0

Ivanzar avatar Apr 16 '15 12:04 Ivanzar

сразу на 0 <php ему не нравиться )

Ivanzar avatar Apr 16 '15 12:04 Ivanzar

@Ivanzar <?php или <? сделай

xpyctum avatar Apr 16 '15 12:04 xpyctum

<php

Ivanzar avatar Apr 16 '15 13:04 Ivanzar

@Ivanzar <?php надо, лал

xpyctum avatar Apr 16 '15 13:04 xpyctum

ой у меня <?php

Ivanzar avatar Apr 16 '15 13:04 Ivanzar

@Ivanzar скинь весь код

xpyctum avatar Apr 16 '15 13:04 xpyctum

вот

<?php
namespace Ivanzar\TheTwoTowerns;

use pocketmine\level\generator\Generator;
use pocketmine\level\ChunkManager;
use pocketmine\utils\Random;

use pocketmine\math\Vector3;
use pocketmine\block\Block;

class TWWGenerator extends Generator{

    private $random,$level;

    public function __construct(array $settings=array()){
        return $settings = array();
}


    public function getName(){
        return "tww";

    }

    public function getSettings(){

    }

    public function getSpawn(){
        return new Vector3(128, 64, 128);
    }

    public function init(ChunkManager $level,Random $random){
        $this->random = $random;
        $this->level = $level;

    }

    public function generateChunk($chunkX,$chunkZ){

        $chunk = $this->level->getChunk($chunkX, $chunkZ);
        $startX = min($selection[0][0] = 0, $selection[1][0] = 128);
        $endX = max($selection[0][0] = 0, $selection[1][0] = 128);
        $startY = min($selection[0][1] = 0, $selection[1][1] = 128);
        $endY = max($selection[0][1] = 0, $selection[1][1] = 128);
        $startZ = min($selection[0][2] = 0, $selection[1][2] = 128);
        $endZ = max($selection[0][2] = 0, $selection[1][2] = 128);
        for($x = $startX; $x < $endX; ++$x){
                for($y = $startY; $y < $endY; ++$y){
                for($z = $startZ; $z < $endZ; ++$z){
            $chunk->setBlockId($x,$y,$z,1);
        }
        }
        }
    }

    public function populateChunk($chunkX,$chunkZ){

    }

}

Ivanzar avatar Apr 16 '15 13:04 Ivanzar

сейчас жалуется на __construct

Ivanzar avatar Apr 16 '15 13:04 Ivanzar

@Ivanzar мля.. сделай так:


public function __construct(){
    private $settings = array();
}

xpyctum avatar Apr 16 '15 13:04 xpyctum

private не может быть в функции

Ivanzar avatar Apr 16 '15 13:04 Ivanzar

@Ivanzar тогда сделай ее не в конструкте. А выше, где другие переменные. В конструкте ничего тогда не пиши. И можно её удалить

xpyctum avatar Apr 16 '15 13:04 xpyctum

нет, то же самое

Ivanzar avatar Apr 16 '15 13:04 Ivanzar

@Ivanzar что теперь?

xpyctum avatar Apr 16 '15 13:04 xpyctum

Declaration of Ivanzar\TheTwoTowerns\TWWGenerator::__construct() must be compatible with pocketmine\level\generator\Generator::__construct(array $settings = Array) in C:\Users\ivanzar\PocketMine Progect\PocketMine-MP\plugins\DevTools\src\Ivanzar\TheTwoTowerns\TWWGenerator.php on line 0

Ivanzar avatar Apr 16 '15 13:04 Ivanzar