Use 'enchanting' terminology

'enchant' just didn't feel right, being a verb.
All these things pertain to the act of enchanting.

This is now also consistent with CraftingTransaction etc. The ship already sailed on EnchantInventory, which will have to be renamed at a later datte. However, that was already inconsistent with 'enchanting table', so that's the odd one out here.
This commit is contained in:
Dylan K. Taylor 2023-08-23 16:14:17 +01:00
parent bf668c0f6c
commit 1504fdca24
No known key found for this signature in database
GPG Key ID: 8927471A91CAFD3D
10 changed files with 44 additions and 44 deletions

View File

@ -23,11 +23,11 @@ declare(strict_types=1);
namespace pocketmine\block\inventory; namespace pocketmine\block\inventory;
use pocketmine\event\player\PlayerEnchantOptionsRequestEvent; use pocketmine\event\player\PlayerEnchantingOptionsRequestEvent;
use pocketmine\inventory\SimpleInventory; use pocketmine\inventory\SimpleInventory;
use pocketmine\inventory\TemporaryInventory; use pocketmine\inventory\TemporaryInventory;
use pocketmine\item\enchantment\EnchantHelper as Helper; use pocketmine\item\enchantment\EnchantingHelper as Helper;
use pocketmine\item\enchantment\EnchantOption; use pocketmine\item\enchantment\EnchantingOption;
use pocketmine\item\Item; use pocketmine\item\Item;
use pocketmine\world\Position; use pocketmine\world\Position;
use function array_values; use function array_values;
@ -39,7 +39,7 @@ class EnchantInventory extends SimpleInventory implements BlockInventory, Tempor
public const SLOT_INPUT = 0; public const SLOT_INPUT = 0;
public const SLOT_LAPIS = 1; public const SLOT_LAPIS = 1;
/** @var EnchantOption[] $options */ /** @var EnchantingOption[] $options */
private array $options = []; private array $options = [];
public function __construct(Position $holder){ public function __construct(Position $holder){
@ -54,7 +54,7 @@ class EnchantInventory extends SimpleInventory implements BlockInventory, Tempor
$item = $this->getInput(); $item = $this->getInput();
$options = Helper::generateOptions($this->holder, $item, $viewer->getEnchantmentSeed()); $options = Helper::generateOptions($this->holder, $item, $viewer->getEnchantmentSeed());
$event = new PlayerEnchantOptionsRequestEvent($viewer, $this, $options); $event = new PlayerEnchantingOptionsRequestEvent($viewer, $this, $options);
$event->call(); $event->call();
if(!$event->isCancelled() && count($event->getOptions()) > 0){ if(!$event->isCancelled() && count($event->getOptions()) > 0){
$this->options = array_values($event->getOptions()); $this->options = array_values($event->getOptions());
@ -79,7 +79,7 @@ class EnchantInventory extends SimpleInventory implements BlockInventory, Tempor
return $option === null ? null : Helper::enchantItem($this->getInput(), $option->getEnchantments()); return $option === null ? null : Helper::enchantItem($this->getInput(), $option->getEnchantments());
} }
public function getOption(int $optionId) : ?EnchantOption{ public function getOption(int $optionId) : ?EnchantingOption{
return $this->options[$optionId] ?? null; return $this->options[$optionId] ?? null;
} }
} }

View File

@ -25,7 +25,7 @@ namespace pocketmine\command\defaults;
use pocketmine\command\CommandSender; use pocketmine\command\CommandSender;
use pocketmine\command\utils\InvalidCommandSyntaxException; use pocketmine\command\utils\InvalidCommandSyntaxException;
use pocketmine\item\enchantment\EnchantHelper; use pocketmine\item\enchantment\EnchantingHelper;
use pocketmine\item\enchantment\EnchantmentInstance; use pocketmine\item\enchantment\EnchantmentInstance;
use pocketmine\item\enchantment\StringToEnchantmentParser; use pocketmine\item\enchantment\StringToEnchantmentParser;
use pocketmine\lang\KnownTranslationFactory; use pocketmine\lang\KnownTranslationFactory;
@ -78,7 +78,7 @@ class EnchantCommand extends VanillaCommand{
} }
//this is necessary to deal with enchanted books, which are a different item type than regular books //this is necessary to deal with enchanted books, which are a different item type than regular books
$enchantedItem = EnchantHelper::enchantItem($item, [new EnchantmentInstance($enchantment, $level)]); $enchantedItem = EnchantingHelper::enchantItem($item, [new EnchantmentInstance($enchantment, $level)]);
$player->getInventory()->setItemInHand($enchantedItem); $player->getInventory()->setItemInHand($enchantedItem);
self::broadcastCommandMessage($sender, KnownTranslationFactory::commands_enchant_success($player->getName())); self::broadcastCommandMessage($sender, KnownTranslationFactory::commands_enchant_success($player->getName()));

View File

@ -37,7 +37,7 @@ use pocketmine\inventory\InventoryHolder;
use pocketmine\inventory\PlayerEnderInventory; use pocketmine\inventory\PlayerEnderInventory;
use pocketmine\inventory\PlayerInventory; use pocketmine\inventory\PlayerInventory;
use pocketmine\inventory\PlayerOffHandInventory; use pocketmine\inventory\PlayerOffHandInventory;
use pocketmine\item\enchantment\EnchantHelper; use pocketmine\item\enchantment\EnchantingHelper;
use pocketmine\item\enchantment\VanillaEnchantments; use pocketmine\item\enchantment\VanillaEnchantments;
use pocketmine\item\Item; use pocketmine\item\Item;
use pocketmine\item\Totem; use pocketmine\item\Totem;
@ -219,7 +219,7 @@ class Human extends Living implements ProjectileSource, InventoryHolder{
} }
public function regenerateEnchantmentSeed() : void{ public function regenerateEnchantmentSeed() : void{
$this->xpSeed = EnchantHelper::generateSeed(); $this->xpSeed = EnchantingHelper::generateSeed();
} }
public function getXpDropAmount() : int{ public function getXpDropAmount() : int{
@ -345,7 +345,7 @@ class Human extends Living implements ProjectileSource, InventoryHolder{
if(($xpSeedTag = $nbt->getTag(self::TAG_XP_SEED)) instanceof IntTag){ if(($xpSeedTag = $nbt->getTag(self::TAG_XP_SEED)) instanceof IntTag){
$this->xpSeed = $xpSeedTag->getValue(); $this->xpSeed = $xpSeedTag->getValue();
}else{ }else{
$this->xpSeed = EnchantHelper::generateSeed(); $this->xpSeed = EnchantingHelper::generateSeed();
} }
} }

View File

@ -27,7 +27,7 @@ use pocketmine\block\inventory\EnchantInventory;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
use pocketmine\event\CancellableTrait; use pocketmine\event\CancellableTrait;
use pocketmine\event\Event; use pocketmine\event\Event;
use pocketmine\item\enchantment\EnchantOption; use pocketmine\item\enchantment\EnchantingOption;
use pocketmine\player\Player; use pocketmine\player\Player;
use pocketmine\utils\Utils; use pocketmine\utils\Utils;
use function count; use function count;
@ -36,36 +36,36 @@ use function count;
* Called when a player inserts an item into an enchanting table's input slot. * Called when a player inserts an item into an enchanting table's input slot.
* The options provided by the event will be shown on the enchanting table menu. * The options provided by the event will be shown on the enchanting table menu.
*/ */
class PlayerEnchantOptionsRequestEvent extends PlayerEvent implements Cancellable{ class PlayerEnchantingOptionsRequestEvent extends PlayerEvent implements Cancellable{
use CancellableTrait; use CancellableTrait;
/** /**
* @param EnchantOption[] $options * @param EnchantingOption[] $options
*/ */
public function __construct( public function __construct(
Player $player, Player $player,
private readonly EnchantInventory $enchantInventory, private readonly EnchantInventory $inventory,
private array $options private array $options
){ ){
$this->player = $player; $this->player = $player;
} }
public function getEnchantInventory() : EnchantInventory{ public function getInventory() : EnchantInventory{
return $this->enchantInventory; return $this->inventory;
} }
/** /**
* @return EnchantOption[] * @return EnchantingOption[]
*/ */
public function getOptions() : array{ public function getOptions() : array{
return $this->options; return $this->options;
} }
/** /**
* @param EnchantOption[] $options * @param EnchantingOption[] $options
*/ */
public function setOptions(array $options) : void{ public function setOptions(array $options) : void{
Utils::validateArrayValueType($options, function(EnchantOption $_) : void{ }); Utils::validateArrayValueType($options, function(EnchantingOption $_) : void{ });
if(($optionCount = count($options)) > 3){ if(($optionCount = count($options)) > 3){
throw new \LogicException("The maximum number of options for an enchanting table is 3, but $optionCount have been passed"); throw new \LogicException("The maximum number of options for an enchanting table is 3, but $optionCount have been passed");
} }

View File

@ -25,8 +25,8 @@ namespace pocketmine\event\player;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
use pocketmine\event\CancellableTrait; use pocketmine\event\CancellableTrait;
use pocketmine\inventory\transaction\EnchantTransaction; use pocketmine\inventory\transaction\EnchantingTransaction;
use pocketmine\item\enchantment\EnchantOption; use pocketmine\item\enchantment\EnchantingOption;
use pocketmine\item\Item; use pocketmine\item\Item;
use pocketmine\player\Player; use pocketmine\player\Player;
@ -38,8 +38,8 @@ class PlayerItemEnchantEvent extends PlayerEvent implements Cancellable{
public function __construct( public function __construct(
Player $player, Player $player,
private readonly EnchantTransaction $transaction, private readonly EnchantingTransaction $transaction,
private readonly EnchantOption $option, private readonly EnchantingOption $option,
private readonly Item $inputItem, private readonly Item $inputItem,
private readonly Item $outputItem, private readonly Item $outputItem,
private readonly int $cost private readonly int $cost
@ -50,14 +50,14 @@ class PlayerItemEnchantEvent extends PlayerEvent implements Cancellable{
/** /**
* Returns the inventory transaction involved in this enchant event. * Returns the inventory transaction involved in this enchant event.
*/ */
public function getTransaction() : EnchantTransaction{ public function getTransaction() : EnchantingTransaction{
return $this->transaction; return $this->transaction;
} }
/** /**
* Returns the enchantment option used. * Returns the enchantment option used.
*/ */
public function getOption() : EnchantOption{ public function getOption() : EnchantingOption{
return $this->option; return $this->option;
} }

View File

@ -24,8 +24,8 @@ declare(strict_types=1);
namespace pocketmine\inventory\transaction; namespace pocketmine\inventory\transaction;
use pocketmine\event\player\PlayerItemEnchantEvent; use pocketmine\event\player\PlayerItemEnchantEvent;
use pocketmine\item\enchantment\EnchantHelper; use pocketmine\item\enchantment\EnchantingHelper;
use pocketmine\item\enchantment\EnchantOption; use pocketmine\item\enchantment\EnchantingOption;
use pocketmine\item\Item; use pocketmine\item\Item;
use pocketmine\item\ItemTypeIds; use pocketmine\item\ItemTypeIds;
use pocketmine\player\Player; use pocketmine\player\Player;
@ -33,14 +33,14 @@ use pocketmine\utils\AssumptionFailedError;
use function count; use function count;
use function min; use function min;
class EnchantTransaction extends InventoryTransaction{ class EnchantingTransaction extends InventoryTransaction{
private ?Item $inputItem = null; private ?Item $inputItem = null;
private ?Item $outputItem = null; private ?Item $outputItem = null;
public function __construct( public function __construct(
Player $source, Player $source,
private readonly EnchantOption $option, private readonly EnchantingOption $option,
private readonly int $cost private readonly int $cost
){ ){
parent::__construct($source); parent::__construct($source);
@ -51,7 +51,7 @@ class EnchantTransaction extends InventoryTransaction{
throw new AssumptionFailedError("Expected that inputItem and outputItem are not null before validating output"); throw new AssumptionFailedError("Expected that inputItem and outputItem are not null before validating output");
} }
$enchantedInput = EnchantHelper::enchantItem($this->inputItem, $this->option->getEnchantments()); $enchantedInput = EnchantingHelper::enchantItem($this->inputItem, $this->option->getEnchantments());
if(!$this->outputItem->equalsExact($enchantedInput)){ if(!$this->outputItem->equalsExact($enchantedInput)){
throw new TransactionValidationException("Invalid output item"); throw new TransactionValidationException("Invalid output item");
} }

View File

@ -45,7 +45,7 @@ use function round;
/** /**
* Helper methods used for enchanting using the enchanting table. * Helper methods used for enchanting using the enchanting table.
*/ */
final class EnchantHelper{ final class EnchantingHelper{
private const MAX_BOOKSHELF_COUNT = 15; private const MAX_BOOKSHELF_COUNT = 15;
private function __construct(){ private function __construct(){
@ -73,7 +73,7 @@ final class EnchantHelper{
} }
/** /**
* @return EnchantOption[] * @return EnchantingOption[]
*/ */
public static function generateOptions(Position $tablePos, Item $input, int $seed) : array{ public static function generateOptions(Position $tablePos, Item $input, int $seed) : array{
if($input->isNull() || $input->hasEnchantments()){ if($input->isNull() || $input->hasEnchantments()){
@ -89,9 +89,9 @@ final class EnchantHelper{
$bottomRequiredLevel = max($baseRequiredLevel, $bookshelfCount * 2); $bottomRequiredLevel = max($baseRequiredLevel, $bookshelfCount * 2);
return [ return [
self::createEnchantOption($random, $input, $topRequiredLevel), self::createOption($random, $input, $topRequiredLevel),
self::createEnchantOption($random, $input, $middleRequiredLevel), self::createOption($random, $input, $middleRequiredLevel),
self::createEnchantOption($random, $input, $bottomRequiredLevel), self::createOption($random, $input, $bottomRequiredLevel),
]; ];
} }
@ -133,7 +133,7 @@ final class EnchantHelper{
return $bookshelfCount; return $bookshelfCount;
} }
private static function createEnchantOption(Random $random, Item $inputItem, int $requiredXpLevel) : EnchantOption{ private static function createOption(Random $random, Item $inputItem, int $requiredXpLevel) : EnchantingOption{
$enchantingPower = $requiredXpLevel; $enchantingPower = $requiredXpLevel;
$enchantability = $inputItem->getEnchantability(); $enchantability = $inputItem->getEnchantability();
@ -171,7 +171,7 @@ final class EnchantHelper{
} }
} }
return new EnchantOption($requiredXpLevel, self::getRandomOptionName($random), $resultEnchantments); return new EnchantingOption($requiredXpLevel, self::getRandomOptionName($random), $resultEnchantments);
} }
/** /**

View File

@ -27,7 +27,7 @@ namespace pocketmine\item\enchantment;
* Represents an option on the enchanting table menu. * Represents an option on the enchanting table menu.
* If selected, all the enchantments in the option will be applied to the item. * If selected, all the enchantments in the option will be applied to the item.
*/ */
class EnchantOption{ class EnchantingOption{
/** /**
* @param EnchantmentInstance[] $enchantments * @param EnchantmentInstance[] $enchantments

View File

@ -39,8 +39,8 @@ use pocketmine\data\bedrock\EnchantmentIdMap;
use pocketmine\inventory\Inventory; use pocketmine\inventory\Inventory;
use pocketmine\inventory\transaction\action\SlotChangeAction; use pocketmine\inventory\transaction\action\SlotChangeAction;
use pocketmine\inventory\transaction\InventoryTransaction; use pocketmine\inventory\transaction\InventoryTransaction;
use pocketmine\item\enchantment\EnchantingOption;
use pocketmine\item\enchantment\EnchantmentInstance; use pocketmine\item\enchantment\EnchantmentInstance;
use pocketmine\item\enchantment\EnchantOption;
use pocketmine\network\mcpe\cache\CreativeInventoryCache; use pocketmine\network\mcpe\cache\CreativeInventoryCache;
use pocketmine\network\mcpe\protocol\ClientboundPacket; use pocketmine\network\mcpe\protocol\ClientboundPacket;
use pocketmine\network\mcpe\protocol\ContainerClosePacket; use pocketmine\network\mcpe\protocol\ContainerClosePacket;
@ -645,7 +645,7 @@ class InventoryManager{
} }
/** /**
* @param EnchantOption[] $options * @param EnchantingOption[] $options
*/ */
public function syncEnchantingTableOptions(array $options) : void{ public function syncEnchantingTableOptions(array $options) : void{
$protocolOptions = []; $protocolOptions = [];

View File

@ -29,7 +29,7 @@ use pocketmine\inventory\transaction\action\CreateItemAction;
use pocketmine\inventory\transaction\action\DestroyItemAction; use pocketmine\inventory\transaction\action\DestroyItemAction;
use pocketmine\inventory\transaction\action\DropItemAction; use pocketmine\inventory\transaction\action\DropItemAction;
use pocketmine\inventory\transaction\CraftingTransaction; use pocketmine\inventory\transaction\CraftingTransaction;
use pocketmine\inventory\transaction\EnchantTransaction; use pocketmine\inventory\transaction\EnchantingTransaction;
use pocketmine\inventory\transaction\InventoryTransaction; use pocketmine\inventory\transaction\InventoryTransaction;
use pocketmine\inventory\transaction\TransactionBuilder; use pocketmine\inventory\transaction\TransactionBuilder;
use pocketmine\inventory\transaction\TransactionBuilderInventory; use pocketmine\inventory\transaction\TransactionBuilderInventory;
@ -289,7 +289,7 @@ class ItemStackRequestExecutor{
* @throws ItemStackRequestProcessException * @throws ItemStackRequestProcessException
*/ */
private function assertDoingCrafting() : void{ private function assertDoingCrafting() : void{
if(!$this->specialTransaction instanceof CraftingTransaction && !$this->specialTransaction instanceof EnchantTransaction){ if(!$this->specialTransaction instanceof CraftingTransaction && !$this->specialTransaction instanceof EnchantingTransaction){
if($this->specialTransaction === null){ if($this->specialTransaction === null){
throw new ItemStackRequestProcessException("Expected CraftRecipe or CraftRecipeAuto action to precede this action"); throw new ItemStackRequestProcessException("Expected CraftRecipe or CraftRecipeAuto action to precede this action");
}else{ }else{
@ -339,7 +339,7 @@ class ItemStackRequestExecutor{
if($window instanceof EnchantInventory){ if($window instanceof EnchantInventory){
$optionId = $this->inventoryManager->getEnchantingTableOptionIndex($action->getRecipeId()); $optionId = $this->inventoryManager->getEnchantingTableOptionIndex($action->getRecipeId());
if($optionId !== null && ($option = $window->getOption($optionId)) !== null){ if($optionId !== null && ($option = $window->getOption($optionId)) !== null){
$this->specialTransaction = new EnchantTransaction($this->player, $option, $optionId + 1); $this->specialTransaction = new EnchantingTransaction($this->player, $option, $optionId + 1);
$this->setNextCreatedItem($window->getOutput($optionId)); $this->setNextCreatedItem($window->getOutput($optionId));
} }
}else{ }else{