From c06ffe30030b51a375ce0046d71d1cb997d1e16e Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Pueyo Date: Sun, 27 Jan 2013 22:58:54 +0100 Subject: [PATCH] TileEntity spawning improvement --- src/classes/Player.php | 2 +- src/classes/PocketMinecraftServer.php | 2 +- src/classes/world/TileEntity.php | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/classes/Player.php b/src/classes/Player.php index 169129d3c..1bf416094 100644 --- a/src/classes/Player.php +++ b/src/classes/Player.php @@ -511,7 +511,7 @@ class Player{ "data" => $d, ), true); } - $tiles = $this->server->query("SELECT * FROM tileentities WHERE x >= '.$x.' AND x < '.($x + 16).' AND z >= '.$z.' AND z < '.($z + 16).';"); + $tiles = $this->server->query("SELECT * FROM tileentities WHERE spawnable = 1 AND x >= '.$x.' AND x < '.($x + 16).' AND z >= '.$z.' AND z < '.($z + 16).';"); if($tiles !== false and $tiles !== true){ while(($tile = $tiles->fetchArray(SQLITE3_ASSOC)) !== false){ $this->server->api->tileentity->spawnTo($tile["ID"], "'.$this->username.'"); diff --git a/src/classes/PocketMinecraftServer.php b/src/classes/PocketMinecraftServer.php index 472065611..891d1d19a 100644 --- a/src/classes/PocketMinecraftServer.php +++ b/src/classes/PocketMinecraftServer.php @@ -115,7 +115,7 @@ class PocketMinecraftServer{ //$this->query("PRAGMA secure_delete = OFF;"); $this->query("CREATE TABLE players (clientID INTEGER PRIMARY KEY, EID NUMERIC, ip TEXT, port NUMERIC, name TEXT UNIQUE);"); $this->query("CREATE TABLE entities (EID INTEGER PRIMARY KEY, type NUMERIC, class NUMERIC, name TEXT, x NUMERIC, y NUMERIC, z NUMERIC, yaw NUMERIC, pitch NUMERIC, health NUMERIC);"); - $this->query("CREATE TABLE tileentities (ID INTEGER PRIMARY KEY, class NUMERIC, x NUMERIC, y NUMERIC, z NUMERIC);"); + $this->query("CREATE TABLE tileentities (ID INTEGER PRIMARY KEY, class NUMERIC, x NUMERIC, y NUMERIC, z NUMERIC, spawnable NUMERIC);"); $this->query("CREATE TABLE actions (ID INTEGER PRIMARY KEY, interval NUMERIC, last NUMERIC, code TEXT, repeat NUMERIC);"); $this->query("CREATE TABLE events (ID INTEGER PRIMARY KEY, name TEXT);"); $this->query("CREATE TABLE handlers (ID INTEGER PRIMARY KEY, name TEXT, priority NUMERIC);"); diff --git a/src/classes/world/TileEntity.php b/src/classes/world/TileEntity.php index 2ed4d1b73..681211342 100644 --- a/src/classes/world/TileEntity.php +++ b/src/classes/world/TileEntity.php @@ -57,6 +57,7 @@ class TileEntity extends stdClass{ $update = false; switch($this->class){ case TILE_SIGN: + $this->server->query("UPDATE tileentities SET spawnable = 1 WHERE ID = ".$this->id.";"); break; } if($update === true){