blob: 92a40aea3509ae42878533f89dcd90c411a1f491 (
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
#pragma once
#include "Item.h"
#include "DefaultDispenseItemBehavior.h"
class ArmorItem : public Item
{
public:
static const int SLOT_HEAD = 0;
static const int SLOT_TORSO = 1;
static const int SLOT_LEGS = 2;
static const int SLOT_FEET = 3;
static const eMinecraftColour DEFAULT_LEATHER_COLOR = eMinecraftColour_Armour_Default_Leather_Colour;
private:
static const int healthPerSlot[];
static const wstring LEATHER_OVERLAYS[] ;
public:
static const wstring TEXTURE_EMPTY_SLOTS[];
private:
class ArmorDispenseItemBehavior : public DefaultDispenseItemBehavior
{
protected:
virtual shared_ptr<ItemInstance> execute(BlockSource *source, shared_ptr<ItemInstance> dispensed, eOUTCOME &outcome);
};
public:
class ArmorMaterial
{
public:
static const int clothArray[];
static const int chainArray[];
static const int ironArray[];
static const int goldArray[];
static const int diamondArray[];
public:
static const ArmorMaterial *CLOTH;
static const ArmorMaterial *CHAIN;
static const ArmorMaterial *IRON;
static const ArmorMaterial *GOLD;
static const ArmorMaterial *DIAMOND;
private:
int durabilityMultiplier;
int *slotProtections;
int enchantmentValue;
// 4J Stu - Had to make this public but was private
// We shouldn't be creating these except the static initialisation
public:
ArmorMaterial(int durabilityMultiplier, const int slotProtections[], int enchantmentValue);
~ArmorMaterial();
public:
int getHealthForSlot(int slot) const;
int getDefenseForSlot(int slot) const;
int getEnchantmentValue() const;
int getTierItemId() const;
};
const int slot;
const int defense;
const int modelIndex;
private:
const ArmorMaterial *armorType;
Icon *overlayIcon;
Icon *iconEmpty;
public:
ArmorItem(int id, const ArmorMaterial *armorType, int icon, int slot);
virtual int getColor(shared_ptr<ItemInstance> item, int spriteLayer);
virtual bool hasMultipleSpriteLayers();
virtual int getEnchantmentValue();
virtual const ArmorMaterial *getMaterial();
virtual bool hasCustomColor(shared_ptr<ItemInstance> item);
virtual int getColor(shared_ptr<ItemInstance> item);
virtual Icon *getLayerIcon(int auxValue, int spriteLayer);
virtual void clearColor(shared_ptr<ItemInstance> item);
virtual void setColor(shared_ptr<ItemInstance> item, int color);
virtual bool isValidRepairItem(shared_ptr<ItemInstance> source, shared_ptr<ItemInstance> repairItem);
virtual void registerIcons(IconRegister *iconRegister);
static Icon *getEmptyIcon(int slot);
};
|