diff --git a/src/constants/BlockIDs.php b/src/constants/BlockIDs.php index f44e7a033..ca84ea0e9 100644 --- a/src/constants/BlockIDs.php +++ b/src/constants/BlockIDs.php @@ -156,123 +156,3 @@ define("QUARTZ_STAIRS", 156); define("STONECUTTER", 245); define("GLOWING_OBSIDIAN", 246); define("NETHER_REACTOR", 247); - -// ---- Items ---- -define("IRON_SHOVEL", 256);//Implemented -define("IRON_PICKAXE", 257);//Implemented -define("IRON_AXE", 258);//Implemented -define("FLINT_STEEL", 259); -define("APPLE", 260);//Implemented -define("BOW", 261); -define("ARROW", 262); -define("COAL", 263);//Implemented -define("DIAMOND", 264);//Implemented -define("IRON_INGOT", 265);//Implemented -define("GOLD_INGOT", 266);//Implemented -define("IRON_SWORD", 267); -define("WOODEN_SWORD", 268); -define("WOODEN_SHOVEL", 269); -define("WOODEN_PICKAXE", 270); -define("WOODEN_AXE", 271); -define("STONE_SWORD", 272); -define("STONE_SHOVEL", 273); -define("STONE_PICKAXE", 274); -define("STONE_AXE", 275); -define("DIAMOND_SWORD", 276); -define("DIAMOND_SHOVEL", 277); -define("DIAMOND_PICKAXE", 278); -define("DIAMOND_AXE", 279); -define("STICK", 280);//Implemented -define("BOWL", 281);//Implemented -define("MUSHROOM_STEW", 282); -define("GOLD_SWORD", 283); -define("GOLD_SHOVEL", 284); -define("GOLD_PICKAXE", 285); -define("GOLD_AXE", 286); -define("STRING", 287); -define("FEATHER", 288);//Implemented -define("GUNPOWDER", 289); -define("WOODEN_HOE", 290); -define("STONE_HOE", 291); -define("IRON_HOE", 292);//Implemented -define("DIAMOND_HOE", 293); -define("GOLD_HOE", 294); -define("SEEDS", 295); -define("WHEAT_SEEDS", 295); -define("WHEAT", 296); -define("BREAD", 297); -define("LEATHER_CAP", 298); -define("LEATHER_TUNIC", 299); -define("LEATHER_PANTS", 300); -define("LEATHER_BOOTS", 301); -define("CHAIN_HELMET", 302); -define("CHAIN_CHESTPLATE", 303); -define("CHAIN_LEGGINS", 304); -define("CHAIN_BOOTS", 305); -define("IRON_HELMET", 306); -define("IRON_CHESTPLATE", 307); -define("IRON_LEGGINS", 308); -define("IRON_BOOTS", 309); -define("DIAMOND_HELMET", 310); -define("DIAMOND_CHESTPLATE", 311); -define("DIAMOND_LEGGINS", 312); -define("DIAMOND_BOOTS", 313); -define("GOLD_HELMET", 314); -define("GOLD_CHESTPLATE", 315); -define("GOLD_LEGGINS", 316); -define("GOLD_BOOTS", 317); -define("FLINT", 318); -define("RAW_PORKCHOP", 319); -define("COOKED_PORKCHOP", 320); -define("PAINTING", 321); -define("GOLDEN_APPLE", 322); -define("SIGN", 323); -define("WOODEN_DOOR", 324); - -define("IRON_DOOR", 330); - -define("SNOWBALL", 332); - -define("LEATHER", 334); - -define("BRICK", 336); -define("CLAY", 337); -define("SUGARCANE", 338); -define("SUGAR_CANE", 338); -define("SUGAR_CANES", 338); -define("PAPER", 339); -define("SLIMEBALL", 341); - -define("EGG", 344); -define("COMPASS", 345); - -define("GLOWSTONE_DUST", 348); -define("RAW_FISH", 349); -define("COOKED_FISH", 350); -define("DYE", 351); -define("BONE", 352); -define("SUGAR", 353); - -define("BED", 355); - - -define("COOKIE", 357); - - -define("SHEARS", 359); -define("MELON", 360); -define("MELON_SLICE", 360); - -define("MELON_SEEDS", 362); -define("RAW_BEEF", 363); -define("STEAK", 364); -define("COOKED_BEEF", 364); - -define("RAW_CHICKEN", 365); -define("COOKED_CHICKEN", 366); - -define("NETHER_BRICK", 405); -define("QUARTZ", 406); -define("NETHER_QUARTZ", 406); - -define("CAMERA", 456); diff --git a/src/constants/ItemIDs.php b/src/constants/ItemIDs.php new file mode 100644 index 000000000..a7cf75657 --- /dev/null +++ b/src/constants/ItemIDs.php @@ -0,0 +1,145 @@ +class === ENTITY_OBJECT){ + switch($this->type){ + case OBJECT_PAINTING: + return array( + array(PAINTING, 0, 1), + ); + } + }elseif($this->class === ENTITY_MOB){ + switch($this->type){ + case MOB_CHICKEN: + return array( + array(FEATHER, 0, mt_rand(0,2)), + array(($this->fire > 0 ? COOKED_CHICKEN:RAW_CHICKEN), 0, 1), + ); + case MOB_COW: + return array( + array(LEATHER, 0, mt_rand(0,2)), + array(($this->fire > 0 ? STEAK:RAW_BEEF), 0, 1), + ); + case MOB_PIG: + return array( + array(LEATHER, 0, mt_rand(0,2)), + array(($this->fire > 0 ? COOKED_PORKCHOP:RAW_PORKCHOP), 0, 1), + ); + case MOB_SHEEP: + return array( + array(WOOL, $this->data["Color"] & 0x0F, 1), + ); + } + } + return array(); + } + + public function spawnDrops(){ + foreach($this->getDrops() as $drop){ + $this->server->api->block->drop(new Vector3($this->x, $this->y, $this->z), BlockAPI::getItem($drop[0] & 0xFFFF, $drop[1] & 0xFFFF, $drop[2] & 0xFF)); + } + } + public function environmentUpdate(){ if($this->class === ENTITY_ITEM){ $time = microtime(true); @@ -563,6 +603,7 @@ class Entity extends stdClass{ if($this->player instanceof Player){ $this->server->api->dhandle("player.death", array("name" => $this->name, "cause" => $cause)); }else{ + $this->spawnDrops(); $this->close(); } }elseif($this->health > 0){