the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 120 lines 3.0 kB view raw
1#include "stdafx.h" 2#include "net.minecraft.world.entity.player.h" 3#include "net.minecraft.world.food.h" 4#include "net.minecraft.world.level.h" 5#include "net.minecraft.world.effect.h" 6#include "net.minecraft.h" 7#include "ItemInstance.h" 8#include "FoodItem.h" 9#include "SoundTypes.h" 10 11// 4J : WESTY : Other award ... eating cooked pork chop. 12#include "net.minecraft.stats.h" 13 14void FoodItem::_init() 15{ 16 // 4J Initialisers 17 canAlwaysEat = false; 18 effectId = 0; 19 effectDurationSeconds = 0; 20 effectAmplifier = 0; 21 effectProbability = 0.0f; 22} 23 24FoodItem::FoodItem(int id, int nutrition, float saturationMod, bool isMeat) 25 : Item( id ), nutrition(nutrition), saturationModifier( saturationMod ), m_isMeat( isMeat ) 26{ 27 _init(); 28} 29 30FoodItem::FoodItem(int id, int nutrition, bool isMeat) 31 : Item( id ), nutrition(nutrition), saturationModifier( FoodConstants::FOOD_SATURATION_NORMAL ), m_isMeat( isMeat ) 32{ 33 _init(); 34} 35 36shared_ptr<ItemInstance> FoodItem::useTimeDepleted(shared_ptr<ItemInstance> instance, Level *level, shared_ptr<Player> player) 37{ 38 instance->count--; 39 player->getFoodData()->eat(this); 40 // 4J - new sound brought forward from 1.2.3 41 level->playEntitySound(player, eSoundType_RANDOM_BURP, 0.5f, level->random->nextFloat() * 0.1f + 0.9f); 42 43 addEatEffect(instance, level, player); 44 45 return instance; 46} 47 48void FoodItem::addEatEffect(shared_ptr<ItemInstance> instance, Level *level, shared_ptr<Player> player) 49{ 50 if (!level->isClientSide && effectId > 0 && level->random->nextFloat() < effectProbability) 51 { 52 player->addEffect(new MobEffectInstance(effectId, effectDurationSeconds * SharedConstants::TICKS_PER_SECOND, effectAmplifier)); 53 } 54 55} 56 57int FoodItem::getUseDuration(shared_ptr<ItemInstance> itemInstance) 58{ 59 return EAT_DURATION; 60} 61 62UseAnim FoodItem::getUseAnimation(shared_ptr<ItemInstance> itemInstance) 63{ 64 return UseAnim_eat; 65} 66 67shared_ptr<ItemInstance> FoodItem::use(shared_ptr<ItemInstance> instance, Level *level, shared_ptr<Player> player) 68{ 69 if (player->canEat(canAlwaysEat)) 70 { 71 player->startUsingItem(instance, getUseDuration(instance)); 72 } 73 74 // 4J : WESTY : Other award ... eating cooked pork chop. 75 // 4J-JEV: This is just for an avatar award on the xbox. 76#ifdef _XBOX 77 if ( instance->getItem() == Item::porkChop_cooked ) 78 { 79 player->awardStat(GenericStats::eatPorkChop(),GenericStats::param_eatPorkChop()); 80 } 81#endif 82 83 return instance; 84} 85 86float FoodItem::getSaturationModifier() 87{ 88 return saturationModifier; 89} 90 91int FoodItem::getNutrition() 92{ 93 return nutrition; 94} 95 96bool FoodItem::isMeat() 97{ 98 return m_isMeat; 99} 100 101FoodItem *FoodItem::setEatEffect(int id, int durationInSecods, int amplifier, float effectProbability) 102{ 103 effectId = id; 104 effectDurationSeconds = durationInSecods; 105 effectAmplifier = amplifier; 106 this->effectProbability = effectProbability; 107 return this; 108} 109 110FoodItem *FoodItem::setCanAlwaysEat() 111{ 112 canAlwaysEat = true; 113 return this; 114} 115 116// 4J Added 117bool FoodItem::canEat(shared_ptr<Player> player) 118{ 119 return player->canEat(canAlwaysEat); 120}