Item factory refactor and added capability to register custom items

This commit is contained in:
Dylan K. Taylor
2017-08-20 19:11:21 +01:00
parent 604d11a8fd
commit 876659cc73
66 changed files with 491 additions and 347 deletions

View File

@@ -27,7 +27,7 @@ use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\event\TranslationContainer;
use pocketmine\item\Item;
use pocketmine\item\ItemFactory;
use pocketmine\nbt\JsonNBTParser;
use pocketmine\nbt\tag\CompoundTag;
use pocketmine\Player;
@@ -54,7 +54,7 @@ class GiveCommand extends VanillaCommand{
}
$player = $sender->getServer()->getPlayer($args[0]);
$item = Item::fromString($args[1]);
$item = ItemFactory::fromString($args[1]);
if(!isset($args[2])){
$item->setCount($item->getMaxStackSize());

View File

@@ -28,6 +28,7 @@ use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\event\TranslationContainer;
use pocketmine\item\Item;
use pocketmine\item\ItemFactory;
use pocketmine\level\particle\AngryVillagerParticle;
use pocketmine\level\particle\BlockForceFieldParticle;
use pocketmine\level\particle\BubbleParticle;
@@ -173,12 +174,12 @@ class ParticleCommand extends VanillaCommand{
case "reddust":
return new RedstoneParticle($pos, $data ?? 1);
case "snowballpoof":
return new ItemBreakParticle($pos, Item::get(Item::SNOWBALL));
return new ItemBreakParticle($pos, ItemFactory::get(Item::SNOWBALL));
case "slime":
return new ItemBreakParticle($pos, Item::get(Item::SLIMEBALL));
return new ItemBreakParticle($pos, ItemFactory::get(Item::SLIMEBALL));
case "itembreak":
if($data !== null and $data !== 0){
return new ItemBreakParticle($pos, Item::get($data));
return new ItemBreakParticle($pos, ItemFactory::get($data));
}
break;
case "terrain":
@@ -206,7 +207,7 @@ class ParticleCommand extends VanillaCommand{
if(strpos($name, "iconcrack_") === 0){
$d = explode("_", $name);
if(count($d) === 3){
return new ItemBreakParticle($pos, Item::get((int) $d[1], (int) $d[2]));
return new ItemBreakParticle($pos, ItemFactory::get((int) $d[1], (int) $d[2]));
}
}elseif(strpos($name, "blockcrack_") === 0){
$d = explode("_", $name);