Take-2: Delay "parsePreset" until we have to really generate a block

This commit is contained in:
Alejandro Liu 2015-03-20 08:13:55 +01:00
parent 8ae9cd4eaf
commit 1d1a8a316e

View File

@ -59,6 +59,7 @@ class Flat extends Generator{
$this->preset = "2;7,2x3,2;1;"; $this->preset = "2;7,2x3,2;1;";
//$this->preset = "2;7,59x1,3x3,2;1;spawn(radius=10 block=89),decoration(treecount=80 grasscount=45)"; //$this->preset = "2;7,59x1,3x3,2;1;spawn(radius=10 block=89),decoration(treecount=80 grasscount=45)";
$this->options = $options; $this->options = $options;
$this->chunk = null;
if(isset($this->options["decoration"])){ if(isset($this->options["decoration"])){
$ores = new Ore(); $ores = new Ore();
@ -80,7 +81,7 @@ class Flat extends Generator{
}*/ }*/
} }
protected function parsePreset($preset){ protected function parsePreset($preset, $chunkX, $chunkZ){
$this->preset = $preset; $this->preset = $preset;
$preset = explode(";", $preset); $preset = explode(";", $preset);
$version = (int) $preset[0]; $version = (int) $preset[0];
@ -106,7 +107,7 @@ class Flat extends Generator{
} }
$this->chunk = clone $this->level->getChunk(0, 0); $this->chunk = $this->level->getChunk($chunkX, $chunkZ);
$this->chunk->setGenerated(); $this->chunk->setGenerated();
for($Z = 0; $Z < 16; ++$Z){ for($Z = 0; $Z < 16; ++$Z){
@ -139,15 +140,24 @@ class Flat extends Generator{
$this->level = $level; $this->level = $level;
$this->random = $random; $this->random = $random;
/*
// Commented out : We want to delay this
if(isset($this->options["preset"]) and $this->options["preset"] != ""){ if(isset($this->options["preset"]) and $this->options["preset"] != ""){
$this->parsePreset($this->options["preset"]); $this->parsePreset($this->options["preset"]);
}else{ }else{
$this->parsePreset($this->preset); $this->parsePreset($this->preset);
} }
*/
} }
public function generateChunk($chunkX, $chunkZ){ public function generateChunk($chunkX, $chunkZ){
if($this->chunk === null) {
if(isset($this->options["preset"]) and $this->options["preset"] != ""){
$this->parsePreset($this->options["preset"], $chunkX, $chunkZ);
}else{
$this->parsePreset($this->preset, $chunkX, $chunkZ);
}
}
$chunk = clone $this->chunk; $chunk = clone $this->chunk;
$chunk->setX($chunkX); $chunk->setX($chunkX);
$chunk->setZ($chunkZ); $chunk->setZ($chunkZ);