mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-04 17:20:02 +00:00
Yank constants out of Enchantment base class
This commit is contained in:
parent
a01c086481
commit
9947e13121
@ -30,71 +30,6 @@ use function constant;
|
||||
*/
|
||||
class Enchantment{
|
||||
|
||||
public const PROTECTION = 0;
|
||||
public const FIRE_PROTECTION = 1;
|
||||
public const FEATHER_FALLING = 2;
|
||||
public const BLAST_PROTECTION = 3;
|
||||
public const PROJECTILE_PROTECTION = 4;
|
||||
public const THORNS = 5;
|
||||
public const RESPIRATION = 6;
|
||||
public const DEPTH_STRIDER = 7;
|
||||
public const AQUA_AFFINITY = 8;
|
||||
public const SHARPNESS = 9;
|
||||
public const SMITE = 10;
|
||||
public const BANE_OF_ARTHROPODS = 11;
|
||||
public const KNOCKBACK = 12;
|
||||
public const FIRE_ASPECT = 13;
|
||||
public const LOOTING = 14;
|
||||
public const EFFICIENCY = 15;
|
||||
public const SILK_TOUCH = 16;
|
||||
public const UNBREAKING = 17;
|
||||
public const FORTUNE = 18;
|
||||
public const POWER = 19;
|
||||
public const PUNCH = 20;
|
||||
public const FLAME = 21;
|
||||
public const INFINITY = 22;
|
||||
public const LUCK_OF_THE_SEA = 23;
|
||||
public const LURE = 24;
|
||||
public const FROST_WALKER = 25;
|
||||
public const MENDING = 26;
|
||||
public const BINDING = 27;
|
||||
public const VANISHING = 28;
|
||||
public const IMPALING = 29;
|
||||
public const RIPTIDE = 30;
|
||||
public const LOYALTY = 31;
|
||||
public const CHANNELING = 32;
|
||||
public const MULTISHOT = 33;
|
||||
public const PIERCING = 34;
|
||||
public const QUICK_CHARGE = 35;
|
||||
public const SOUL_SPEED = 36;
|
||||
|
||||
public const RARITY_COMMON = 10;
|
||||
public const RARITY_UNCOMMON = 5;
|
||||
public const RARITY_RARE = 2;
|
||||
public const RARITY_MYTHIC = 1;
|
||||
|
||||
public const SLOT_NONE = 0x0;
|
||||
public const SLOT_ALL = 0xffff;
|
||||
public const SLOT_ARMOR = self::SLOT_HEAD | self::SLOT_TORSO | self::SLOT_LEGS | self::SLOT_FEET;
|
||||
public const SLOT_HEAD = 0x1;
|
||||
public const SLOT_TORSO = 0x2;
|
||||
public const SLOT_LEGS = 0x4;
|
||||
public const SLOT_FEET = 0x8;
|
||||
public const SLOT_SWORD = 0x10;
|
||||
public const SLOT_BOW = 0x20;
|
||||
public const SLOT_TOOL = self::SLOT_HOE | self::SLOT_SHEARS | self::SLOT_FLINT_AND_STEEL;
|
||||
public const SLOT_HOE = 0x40;
|
||||
public const SLOT_SHEARS = 0x80;
|
||||
public const SLOT_FLINT_AND_STEEL = 0x100;
|
||||
public const SLOT_DIG = self::SLOT_AXE | self::SLOT_PICKAXE | self::SLOT_SHOVEL;
|
||||
public const SLOT_AXE = 0x200;
|
||||
public const SLOT_PICKAXE = 0x400;
|
||||
public const SLOT_SHOVEL = 0x800;
|
||||
public const SLOT_FISHING_ROD = 0x1000;
|
||||
public const SLOT_CARROT_STICK = 0x2000;
|
||||
public const SLOT_ELYTRA = 0x4000;
|
||||
public const SLOT_TRIDENT = 0x8000;
|
||||
|
||||
/** @var int */
|
||||
private $id;
|
||||
/** @var string */
|
||||
|
69
src/item/enchantment/EnchantmentIds.php
Normal file
69
src/item/enchantment/EnchantmentIds.php
Normal file
@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
*
|
||||
* ____ _ _ __ __ _ __ __ ____
|
||||
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
||||
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
||||
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
||||
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* @author PocketMine Team
|
||||
* @link http://www.pocketmine.net/
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\item\enchantment;
|
||||
|
||||
final class EnchantmentIds{
|
||||
|
||||
private function __construct(){
|
||||
//NOOP
|
||||
}
|
||||
|
||||
public const PROTECTION = 0;
|
||||
public const FIRE_PROTECTION = 1;
|
||||
public const FEATHER_FALLING = 2;
|
||||
public const BLAST_PROTECTION = 3;
|
||||
public const PROJECTILE_PROTECTION = 4;
|
||||
public const THORNS = 5;
|
||||
public const RESPIRATION = 6;
|
||||
public const DEPTH_STRIDER = 7;
|
||||
public const AQUA_AFFINITY = 8;
|
||||
public const SHARPNESS = 9;
|
||||
public const SMITE = 10;
|
||||
public const BANE_OF_ARTHROPODS = 11;
|
||||
public const KNOCKBACK = 12;
|
||||
public const FIRE_ASPECT = 13;
|
||||
public const LOOTING = 14;
|
||||
public const EFFICIENCY = 15;
|
||||
public const SILK_TOUCH = 16;
|
||||
public const UNBREAKING = 17;
|
||||
public const FORTUNE = 18;
|
||||
public const POWER = 19;
|
||||
public const PUNCH = 20;
|
||||
public const FLAME = 21;
|
||||
public const INFINITY = 22;
|
||||
public const LUCK_OF_THE_SEA = 23;
|
||||
public const LURE = 24;
|
||||
public const FROST_WALKER = 25;
|
||||
public const MENDING = 26;
|
||||
public const BINDING = 27;
|
||||
public const VANISHING = 28;
|
||||
public const IMPALING = 29;
|
||||
public const RIPTIDE = 30;
|
||||
public const LOYALTY = 31;
|
||||
public const CHANNELING = 32;
|
||||
public const MULTISHOT = 33;
|
||||
public const PIERCING = 34;
|
||||
public const QUICK_CHARGE = 35;
|
||||
public const SOUL_SPEED = 36;
|
||||
}
|
55
src/item/enchantment/ItemFlags.php
Normal file
55
src/item/enchantment/ItemFlags.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
*
|
||||
* ____ _ _ __ __ _ __ __ ____
|
||||
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
||||
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
||||
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
||||
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* @author PocketMine Team
|
||||
* @link http://www.pocketmine.net/
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\item\enchantment;
|
||||
|
||||
final class ItemFlags{
|
||||
|
||||
private function __construct(){
|
||||
//NOOP
|
||||
}
|
||||
|
||||
//TODO: this should probably move to protocol
|
||||
|
||||
public const NONE = 0x0;
|
||||
public const ALL = 0xffff;
|
||||
public const ARMOR = self::HEAD | self::TORSO | self::LEGS | self::FEET;
|
||||
public const HEAD = 0x1;
|
||||
public const TORSO = 0x2;
|
||||
public const LEGS = 0x4;
|
||||
public const FEET = 0x8;
|
||||
public const SWORD = 0x10;
|
||||
public const BOW = 0x20;
|
||||
public const TOOL = self::HOE | self::SHEARS | self::FLINT_AND_STEEL;
|
||||
public const HOE = 0x40;
|
||||
public const SHEARS = 0x80;
|
||||
public const FLINT_AND_STEEL = 0x100;
|
||||
public const DIG = self::AXE | self::PICKAXE | self::SHOVEL;
|
||||
public const AXE = 0x200;
|
||||
public const PICKAXE = 0x400;
|
||||
public const SHOVEL = 0x800;
|
||||
public const FISHING_ROD = 0x1000;
|
||||
public const CARROT_STICK = 0x2000;
|
||||
public const ELYTRA = 0x4000;
|
||||
public const TRIDENT = 0x8000;
|
||||
}
|
35
src/item/enchantment/Rarity.php
Normal file
35
src/item/enchantment/Rarity.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
*
|
||||
* ____ _ _ __ __ _ __ __ ____
|
||||
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
|
||||
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
|
||||
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
|
||||
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* @author PocketMine Team
|
||||
* @link http://www.pocketmine.net/
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace pocketmine\item\enchantment;
|
||||
|
||||
final class Rarity{
|
||||
private function __construct(){
|
||||
//NOOP
|
||||
}
|
||||
|
||||
public const COMMON = 10;
|
||||
public const UNCOMMON = 5;
|
||||
public const RARE = 2;
|
||||
public const MYTHIC = 1;
|
||||
}
|
@ -62,44 +62,44 @@ final class VanillaEnchantments{
|
||||
private static $mcpeIdMap = [];
|
||||
|
||||
protected static function setup() : void{
|
||||
self::register("PROTECTION", new ProtectionEnchantment(Enchantment::PROTECTION, "%enchantment.protect.all", Enchantment::RARITY_COMMON, Enchantment::SLOT_ARMOR, Enchantment::SLOT_NONE, 4, 0.75, null));
|
||||
self::register("FIRE_PROTECTION", new ProtectionEnchantment(Enchantment::FIRE_PROTECTION, "%enchantment.protect.fire", Enchantment::RARITY_UNCOMMON, Enchantment::SLOT_ARMOR, Enchantment::SLOT_NONE, 4, 1.25, [
|
||||
self::register("PROTECTION", new ProtectionEnchantment(EnchantmentIds::PROTECTION, "%enchantment.protect.all", Rarity::COMMON, ItemFlags::ARMOR, ItemFlags::NONE, 4, 0.75, null));
|
||||
self::register("FIRE_PROTECTION", new ProtectionEnchantment(EnchantmentIds::FIRE_PROTECTION, "%enchantment.protect.fire", Rarity::UNCOMMON, ItemFlags::ARMOR, ItemFlags::NONE, 4, 1.25, [
|
||||
EntityDamageEvent::CAUSE_FIRE,
|
||||
EntityDamageEvent::CAUSE_FIRE_TICK,
|
||||
EntityDamageEvent::CAUSE_LAVA
|
||||
//TODO: check fireballs
|
||||
]));
|
||||
self::register("FEATHER_FALLING", new ProtectionEnchantment(Enchantment::FEATHER_FALLING, "%enchantment.protect.fall", Enchantment::RARITY_UNCOMMON, Enchantment::SLOT_FEET, Enchantment::SLOT_NONE, 4, 2.5, [
|
||||
self::register("FEATHER_FALLING", new ProtectionEnchantment(EnchantmentIds::FEATHER_FALLING, "%enchantment.protect.fall", Rarity::UNCOMMON, ItemFlags::FEET, ItemFlags::NONE, 4, 2.5, [
|
||||
EntityDamageEvent::CAUSE_FALL
|
||||
]));
|
||||
self::register("BLAST_PROTECTION", new ProtectionEnchantment(Enchantment::BLAST_PROTECTION, "%enchantment.protect.explosion", Enchantment::RARITY_RARE, Enchantment::SLOT_ARMOR, Enchantment::SLOT_NONE, 4, 1.5, [
|
||||
self::register("BLAST_PROTECTION", new ProtectionEnchantment(EnchantmentIds::BLAST_PROTECTION, "%enchantment.protect.explosion", Rarity::RARE, ItemFlags::ARMOR, ItemFlags::NONE, 4, 1.5, [
|
||||
EntityDamageEvent::CAUSE_BLOCK_EXPLOSION,
|
||||
EntityDamageEvent::CAUSE_ENTITY_EXPLOSION
|
||||
]));
|
||||
self::register("PROJECTILE_PROTECTION", new ProtectionEnchantment(Enchantment::PROJECTILE_PROTECTION, "%enchantment.protect.projectile", Enchantment::RARITY_UNCOMMON, Enchantment::SLOT_ARMOR, Enchantment::SLOT_NONE, 4, 1.5, [
|
||||
self::register("PROJECTILE_PROTECTION", new ProtectionEnchantment(EnchantmentIds::PROJECTILE_PROTECTION, "%enchantment.protect.projectile", Rarity::UNCOMMON, ItemFlags::ARMOR, ItemFlags::NONE, 4, 1.5, [
|
||||
EntityDamageEvent::CAUSE_PROJECTILE
|
||||
]));
|
||||
self::register("THORNS", new Enchantment(Enchantment::THORNS, "%enchantment.thorns", Enchantment::RARITY_MYTHIC, Enchantment::SLOT_TORSO, Enchantment::SLOT_HEAD | Enchantment::SLOT_LEGS | Enchantment::SLOT_FEET, 3));
|
||||
self::register("RESPIRATION", new Enchantment(Enchantment::RESPIRATION, "%enchantment.oxygen", Enchantment::RARITY_RARE, Enchantment::SLOT_HEAD, Enchantment::SLOT_NONE, 3));
|
||||
self::register("THORNS", new Enchantment(EnchantmentIds::THORNS, "%enchantment.thorns", Rarity::MYTHIC, ItemFlags::TORSO, ItemFlags::HEAD | ItemFlags::LEGS | ItemFlags::FEET, 3));
|
||||
self::register("RESPIRATION", new Enchantment(EnchantmentIds::RESPIRATION, "%enchantment.oxygen", Rarity::RARE, ItemFlags::HEAD, ItemFlags::NONE, 3));
|
||||
|
||||
self::register("SHARPNESS", new SharpnessEnchantment(Enchantment::SHARPNESS, "%enchantment.damage.all", Enchantment::RARITY_COMMON, Enchantment::SLOT_SWORD, Enchantment::SLOT_AXE, 5));
|
||||
self::register("SHARPNESS", new SharpnessEnchantment(EnchantmentIds::SHARPNESS, "%enchantment.damage.all", Rarity::COMMON, ItemFlags::SWORD, ItemFlags::AXE, 5));
|
||||
//TODO: smite, bane of arthropods (these don't make sense now because their applicable mobs don't exist yet)
|
||||
|
||||
self::register("KNOCKBACK", new KnockbackEnchantment(Enchantment::KNOCKBACK, "%enchantment.knockback", Enchantment::RARITY_UNCOMMON, Enchantment::SLOT_SWORD, Enchantment::SLOT_NONE, 2));
|
||||
self::register("FIRE_ASPECT", new FireAspectEnchantment(Enchantment::FIRE_ASPECT, "%enchantment.fire", Enchantment::RARITY_RARE, Enchantment::SLOT_SWORD, Enchantment::SLOT_NONE, 2));
|
||||
self::register("KNOCKBACK", new KnockbackEnchantment(EnchantmentIds::KNOCKBACK, "%enchantment.knockback", Rarity::UNCOMMON, ItemFlags::SWORD, ItemFlags::NONE, 2));
|
||||
self::register("FIRE_ASPECT", new FireAspectEnchantment(EnchantmentIds::FIRE_ASPECT, "%enchantment.fire", Rarity::RARE, ItemFlags::SWORD, ItemFlags::NONE, 2));
|
||||
|
||||
self::register("EFFICIENCY", new Enchantment(Enchantment::EFFICIENCY, "%enchantment.digging", Enchantment::RARITY_COMMON, Enchantment::SLOT_DIG, Enchantment::SLOT_SHEARS, 5));
|
||||
self::register("SILK_TOUCH", new Enchantment(Enchantment::SILK_TOUCH, "%enchantment.untouching", Enchantment::RARITY_MYTHIC, Enchantment::SLOT_DIG, Enchantment::SLOT_SHEARS, 1));
|
||||
self::register("UNBREAKING", new Enchantment(Enchantment::UNBREAKING, "%enchantment.durability", Enchantment::RARITY_UNCOMMON, Enchantment::SLOT_DIG | Enchantment::SLOT_ARMOR | Enchantment::SLOT_FISHING_ROD | Enchantment::SLOT_BOW, Enchantment::SLOT_TOOL | Enchantment::SLOT_CARROT_STICK | Enchantment::SLOT_ELYTRA, 3));
|
||||
self::register("EFFICIENCY", new Enchantment(EnchantmentIds::EFFICIENCY, "%enchantment.digging", Rarity::COMMON, ItemFlags::DIG, ItemFlags::SHEARS, 5));
|
||||
self::register("SILK_TOUCH", new Enchantment(EnchantmentIds::SILK_TOUCH, "%enchantment.untouching", Rarity::MYTHIC, ItemFlags::DIG, ItemFlags::SHEARS, 1));
|
||||
self::register("UNBREAKING", new Enchantment(EnchantmentIds::UNBREAKING, "%enchantment.durability", Rarity::UNCOMMON, ItemFlags::DIG | ItemFlags::ARMOR | ItemFlags::FISHING_ROD | ItemFlags::BOW, ItemFlags::TOOL | ItemFlags::CARROT_STICK | ItemFlags::ELYTRA, 3));
|
||||
|
||||
self::register("POWER", new Enchantment(Enchantment::POWER, "%enchantment.arrowDamage", Enchantment::RARITY_COMMON, Enchantment::SLOT_BOW, Enchantment::SLOT_NONE, 5));
|
||||
self::register("PUNCH", new Enchantment(Enchantment::PUNCH, "%enchantment.arrowKnockback", Enchantment::RARITY_RARE, Enchantment::SLOT_BOW, Enchantment::SLOT_NONE, 2));
|
||||
self::register("FLAME", new Enchantment(Enchantment::FLAME, "%enchantment.arrowFire", Enchantment::RARITY_RARE, Enchantment::SLOT_BOW, Enchantment::SLOT_NONE, 1));
|
||||
self::register("INFINITY", new Enchantment(Enchantment::INFINITY, "%enchantment.arrowInfinite", Enchantment::RARITY_MYTHIC, Enchantment::SLOT_BOW, Enchantment::SLOT_NONE, 1));
|
||||
self::register("POWER", new Enchantment(EnchantmentIds::POWER, "%enchantment.arrowDamage", Rarity::COMMON, ItemFlags::BOW, ItemFlags::NONE, 5));
|
||||
self::register("PUNCH", new Enchantment(EnchantmentIds::PUNCH, "%enchantment.arrowKnockback", Rarity::RARE, ItemFlags::BOW, ItemFlags::NONE, 2));
|
||||
self::register("FLAME", new Enchantment(EnchantmentIds::FLAME, "%enchantment.arrowFire", Rarity::RARE, ItemFlags::BOW, ItemFlags::NONE, 1));
|
||||
self::register("INFINITY", new Enchantment(EnchantmentIds::INFINITY, "%enchantment.arrowInfinite", Rarity::MYTHIC, ItemFlags::BOW, ItemFlags::NONE, 1));
|
||||
|
||||
self::register("MENDING", new Enchantment(Enchantment::MENDING, "%enchantment.mending", Enchantment::RARITY_RARE, Enchantment::SLOT_NONE, Enchantment::SLOT_ALL, 1));
|
||||
self::register("MENDING", new Enchantment(EnchantmentIds::MENDING, "%enchantment.mending", Rarity::RARE, ItemFlags::NONE, ItemFlags::ALL, 1));
|
||||
|
||||
self::register("VANISHING", new Enchantment(Enchantment::VANISHING, "%enchantment.curse.vanishing", Enchantment::RARITY_MYTHIC, Enchantment::SLOT_NONE, Enchantment::SLOT_ALL, 1));
|
||||
self::register("VANISHING", new Enchantment(EnchantmentIds::VANISHING, "%enchantment.curse.vanishing", Rarity::MYTHIC, ItemFlags::NONE, ItemFlags::ALL, 1));
|
||||
}
|
||||
|
||||
protected static function register(string $name, Enchantment $member) : void{
|
||||
|
Loading…
x
Reference in New Issue
Block a user