Cactus Placement

This commit is contained in:
Shoghi Cervantes Pueyo 2013-02-04 19:08:31 +01:00
parent 7e7f1892fd
commit 3e87d1927d
3 changed files with 18 additions and 17 deletions

View File

@ -283,14 +283,6 @@ class BlockAPI{
"title" => "Furnace", "title" => "Furnace",
)); ));
break; break;
case 6:
if($data["block"] === 351 and $data["meta"] === 0x0F){ //Bonemeal
$s = new SaplingBlock($target[1] & 0x03);
$s->position(new Vector3($target[2][0], $target[2][1], $target[2][2]));
$s->onActivate($this->server->api->level, new Item($data["block"], $data["meta"]), $entity->player);
$cancelPlace = true;
}
break;
default: default:
$cancelPlace = true; $cancelPlace = true;
break; break;
@ -341,14 +333,6 @@ class BlockAPI{
$data2["z"] = $next[2][2]; $data2["z"] = $next[2][2];
$this->server->handle("player.block.place", $data2); $this->server->handle("player.block.place", $data2);
break; break;
case 59://Seeds
case 105:
$blockDown = $this->server->api->level->getBlock($data["x"], $data["y"] - 1, $data["z"]);
if($blockDown[0] !== 60){
return false;
}
$data["meta"] = 0;
break;
case 81: //Cactus case 81: //Cactus
$blockDown = $this->server->api->level->getBlock($data["x"], $data["y"] - 1, $data["z"]); $blockDown = $this->server->api->level->getBlock($data["x"], $data["y"] - 1, $data["z"]);
$block0 = $this->server->api->level->getBlock($data["x"], $data["y"], $data["z"] + 1); $block0 = $this->server->api->level->getBlock($data["x"], $data["y"], $data["z"] + 1);

View File

@ -30,4 +30,21 @@ class CactusBlock extends TransparentBlock{
parent::__construct(CACTUS, 0, "Cactus"); parent::__construct(CACTUS, 0, "Cactus");
} }
public function place(BlockAPI $level, Item $item, Player $player, Block $block, Block $target, $face, $fx, $fy, $fz){
if($block->inWorld === true){
$down = $level->getBlockFace($block, 0);
if($down->getID() === SAND or $down->getID() === CACTUS){
$block0 = $level->getBlockFace($block, 2);
$block1 = $level->getBlockFace($block, 3);
$block2 = $level->getBlockFace($block, 4);
$block3 = $level->getBlockFace($block, 5);
if($block0->isFlowable === true and $block1->isFlowable === true and $block2->isFlowable === true and $block3->isFlowable === true){
$level->setBlock($block, $this->id, 0);
return true;
}
}
}
return false;
}
} }

View File

@ -42,7 +42,7 @@ class SugarcaneBlock extends TransparentBlock{
if($down->getID() === SUGARCANE_BLOCK){ if($down->getID() === SUGARCANE_BLOCK){
$level->setBlock($block, $this->id, 0); $level->setBlock($block, $this->id, 0);
return true; return true;
}elseif($down->getID() === 2 or $down->getID() === 3 or $down->getID() === 12){ }elseif($down->getID() === GRASS or $down->getID() === DIRT or $down->getID() === SAND){
$block0 = $level->getBlockFace($down, 2); $block0 = $level->getBlockFace($down, 2);
$block1 = $level->getBlockFace($down, 3); $block1 = $level->getBlockFace($down, 3);
$block2 = $level->getBlockFace($down, 4); $block2 = $level->getBlockFace($down, 4);