aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/EnchantmentCategory.cpp
blob: b1c951eee9aad80ab1d4a2a1c9467c2a727eb88b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "stdafx.h"
#include "net.minecraft.world.item.h"
#include "EnchantmentCategory.h"

const EnchantmentCategory *EnchantmentCategory::all = new EnchantmentCategory();
const EnchantmentCategory *EnchantmentCategory::armor = new EnchantmentCategory();
const EnchantmentCategory *EnchantmentCategory::armor_feet = new EnchantmentCategory();
const EnchantmentCategory *EnchantmentCategory::armor_legs = new EnchantmentCategory();
const EnchantmentCategory *EnchantmentCategory::armor_torso = new EnchantmentCategory();
const EnchantmentCategory *EnchantmentCategory::armor_head = new EnchantmentCategory();
const EnchantmentCategory *EnchantmentCategory::weapon = new EnchantmentCategory();
const EnchantmentCategory *EnchantmentCategory::digger = new EnchantmentCategory();
const EnchantmentCategory *EnchantmentCategory::bow = new EnchantmentCategory();

bool EnchantmentCategory::canEnchant(Item *item) const
{
	if (this == all) return true;

	if (dynamic_cast<ArmorItem *>( item ) != nullptr)
	{
		if (this == armor) return true;
		ArmorItem *ai = static_cast<ArmorItem *>(item);
		if (ai->slot == ArmorItem::SLOT_HEAD) return this == armor_head;
		if (ai->slot == ArmorItem::SLOT_LEGS) return this == armor_legs;
		if (ai->slot == ArmorItem::SLOT_TORSO) return this == armor_torso;
		if (ai->slot == ArmorItem::SLOT_FEET) return this == armor_feet;
		return false;
	}
	else if (dynamic_cast<WeaponItem *>(item) != nullptr)
	{
		return this == weapon;
	}
	else if (dynamic_cast<DiggerItem *>(item) != nullptr)
	{
		return this == digger;
	}
	else if (dynamic_cast<BowItem *>(item) != nullptr)
	{
		return this == bow;
	}
	return false;
}