4jcraft/Minecraft.World/Items/WeaponItem.h
2026-03-21 16:39:12 -05:00

34 lines
1.3 KiB
C++

#pragma once
#include "Item.h"
class WeaponItem : public Item {
private:
float damage;
const Tier* tier;
public:
WeaponItem(int id, const Tier* tier);
virtual float getTierDamage();
virtual float getDestroySpeed(std::shared_ptr<ItemInstance> itemInstance,
Tile* tile);
virtual bool hurtEnemy(std::shared_ptr<ItemInstance> itemInstance,
std::shared_ptr<LivingEntity> mob,
std::shared_ptr<LivingEntity> attacker);
virtual bool mineBlock(std::shared_ptr<ItemInstance> itemInstance,
Level* level, int tile, int x, int y, int z,
std::shared_ptr<LivingEntity> owner);
virtual bool isHandEquipped();
virtual UseAnim getUseAnimation(std::shared_ptr<ItemInstance> itemInstance);
virtual int getUseDuration(std::shared_ptr<ItemInstance> itemInstance);
virtual std::shared_ptr<ItemInstance> use(
std::shared_ptr<ItemInstance> instance, Level* level,
std::shared_ptr<Player> player);
virtual bool canDestroySpecial(Tile* tile);
virtual int getEnchantmentValue();
const Tier* getTier();
bool isValidRepairItem(std::shared_ptr<ItemInstance> source,
std::shared_ptr<ItemInstance> repairItem);
attrAttrModMap* getDefaultAttributeModifiers();
};