the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 70 lines 2.0 kB view raw
1#include "stdafx.h" 2#include "net.minecraft.world.entity.h" 3#include "net.minecraft.world.entity.ai.attributes.h" 4#include "net.minecraft.world.entity.monster.h" 5#include "net.minecraft.world.item.h" 6#include "net.minecraft.world.level.tile.h" 7#include "DiggerItem.h" 8 9DiggerItem::DiggerItem(int id, float attackDamage, const Tier *tier, TileArray *tiles) : Item( id ), tier( tier ) 10{ 11 //this->tier = tier; 12 this->tiles = tiles; 13 maxStackSize = 1; 14 setMaxDamage(tier->getUses()); 15 this->speed = tier->getSpeed(); 16 this->attackDamage = attackDamage + tier->getAttackDamageBonus(); 17} 18 19float DiggerItem::getDestroySpeed(shared_ptr<ItemInstance> itemInstance, Tile *tile) 20{ 21 for (unsigned int i = 0; i < tiles->length; i++) 22 if ( (*tiles)[i] == tile) return speed; 23 return 1; 24} 25 26bool DiggerItem::hurtEnemy(shared_ptr<ItemInstance> itemInstance, shared_ptr<LivingEntity> mob, shared_ptr<LivingEntity> attacker) 27{ 28 itemInstance->hurtAndBreak(2, attacker); 29 return true; 30} 31 32bool DiggerItem::mineBlock(shared_ptr<ItemInstance> itemInstance, Level *level, int tile, int x, int y, int z, shared_ptr<LivingEntity> owner) 33{ 34 // Don't damage tools if the tile can be destroyed in one hit. 35 if (Tile::tiles[tile]->getDestroySpeed(level, x, y, z) != 0.0) itemInstance->hurtAndBreak(1, owner); 36 return true; 37} 38 39bool DiggerItem::isHandEquipped() 40{ 41 return true; 42} 43 44int DiggerItem::getEnchantmentValue() 45{ 46 return tier->getEnchantmentValue(); 47} 48 49const Item::Tier *DiggerItem::getTier() 50{ 51 return tier; 52} 53 54bool DiggerItem::isValidRepairItem(shared_ptr<ItemInstance> source, shared_ptr<ItemInstance> repairItem) 55{ 56 if (tier->getTierItemId() == repairItem->id) 57 { 58 return true; 59 } 60 return Item::isValidRepairItem(source, repairItem); 61} 62 63attrAttrModMap *DiggerItem::getDefaultAttributeModifiers() 64{ 65 attrAttrModMap *result = Item::getDefaultAttributeModifiers(); 66 67 (*result)[SharedMonsterAttributes::ATTACK_DAMAGE->getId()] = new AttributeModifier(eModifierId_ITEM_BASEDAMAGE, attackDamage, AttributeModifier::OPERATION_ADDITION); 68 69 return result; 70}