Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
5.6 kB · 202 lines
C++
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202#include "stdafx.h"#include "net.minecraft.world.item.enchantment.h"#include "net.minecraft.world.item.h"#include "Enchantment.h"
//Enchantment *Enchantment::enchantments[256];EnchantmentArray Enchantment::enchantments = EnchantmentArray( 256 );vector<Enchantment *> Enchantment::validEnchantments;
Enchantment *Enchantment::allDamageProtection = NULL;Enchantment *Enchantment::fireProtection = NULL;Enchantment *Enchantment::fallProtection = NULL;Enchantment *Enchantment::explosionProtection = NULL;Enchantment *Enchantment::projectileProtection = NULL;Enchantment *Enchantment::drownProtection = NULL;Enchantment *Enchantment::waterWorker = NULL;Enchantment *Enchantment::thorns = NULL;
// weaponEnchantment *Enchantment::damageBonus = NULL;Enchantment *Enchantment::damageBonusUndead = NULL;Enchantment *Enchantment::damageBonusArthropods = NULL;Enchantment *Enchantment::knockback = NULL;Enchantment *Enchantment::fireAspect = NULL;Enchantment *Enchantment::lootBonus = NULL;
// diggerEnchantment *Enchantment::diggingBonus = NULL;Enchantment *Enchantment::untouching = NULL;Enchantment *Enchantment::digDurability = NULL;Enchantment *Enchantment::resourceBonus = NULL;
// bowsEnchantment *Enchantment::arrowBonus = NULL;Enchantment *Enchantment::arrowKnockback = NULL;Enchantment *Enchantment::arrowFire = NULL;Enchantment *Enchantment::arrowInfinite = NULL;
void Enchantment::staticCtor(){ allDamageProtection = new ProtectionEnchantment(0, FREQ_COMMON, ProtectionEnchantment::ALL); fireProtection = new ProtectionEnchantment(1, FREQ_UNCOMMON, ProtectionEnchantment::FIRE); fallProtection = new ProtectionEnchantment(2, FREQ_UNCOMMON, ProtectionEnchantment::FALL); explosionProtection = new ProtectionEnchantment(3, FREQ_RARE, ProtectionEnchantment::EXPLOSION); projectileProtection = new ProtectionEnchantment(4, FREQ_UNCOMMON, ProtectionEnchantment::PROJECTILE); drownProtection = new OxygenEnchantment(5, FREQ_RARE); waterWorker = new WaterWorkerEnchantment(6, FREQ_RARE); thorns = new ThornsEnchantment(7, FREQ_VERY_RARE);
// weapon damageBonus = new DamageEnchantment(16, FREQ_COMMON, DamageEnchantment::ALL); damageBonusUndead = new DamageEnchantment(17, FREQ_UNCOMMON, DamageEnchantment::UNDEAD); damageBonusArthropods = new DamageEnchantment(18, FREQ_UNCOMMON, DamageEnchantment::ARTHROPODS); knockback = new KnockbackEnchantment(19, FREQ_UNCOMMON); fireAspect = new FireAspectEnchantment(20, FREQ_RARE); lootBonus = new LootBonusEnchantment(21, FREQ_RARE, EnchantmentCategory::weapon);
// digger diggingBonus = new DiggingEnchantment(32, FREQ_COMMON); untouching = new UntouchingEnchantment(33, FREQ_VERY_RARE); digDurability = new DigDurabilityEnchantment(34, FREQ_UNCOMMON); resourceBonus = new LootBonusEnchantment(35, FREQ_RARE, EnchantmentCategory::digger);
// bows arrowBonus = new ArrowDamageEnchantment(48, FREQ_COMMON); arrowKnockback = new ArrowKnockbackEnchantment(49, FREQ_RARE); arrowFire = new ArrowFireEnchantment(50, FREQ_RARE); arrowInfinite = new ArrowInfiniteEnchantment(51, FREQ_VERY_RARE);
for(unsigned int i = 0; i < 256; ++i) { Enchantment *enchantment = enchantments[i]; if (enchantment != NULL) { validEnchantments.push_back(enchantment); } }}
void Enchantment::_init(int id){ if (enchantments[id] != NULL) { app.DebugPrintf("Duplicate enchantment id!");#ifndef _CONTENT_PACKAGE __debugbreak();#endif //throw new IllegalArgumentException("Duplicate enchantment id!"); } enchantments[id] = this;}
Enchantment::Enchantment(int id, int frequency, const EnchantmentCategory *category) : id(id), frequency(frequency), category(category){ _init(id);}
Enchantment::Enchantment(int id) : id(id), frequency(FREQ_COMMON), category(EnchantmentCategory::all){ _init(id);}
int Enchantment::getFrequency(){ return frequency;}
int Enchantment::getMinLevel(){ return 1;}
int Enchantment::getMaxLevel(){ return 1;}
int Enchantment::getMinCost(int level){ return 1 + level * 10;}
int Enchantment::getMaxCost(int level){ return getMinCost(level) + 5;}
int Enchantment::getDamageProtection(int level, DamageSource *source){ return 0;}
float Enchantment::getDamageBonus(int level, shared_ptr<LivingEntity> target){ return 0.0f;}
bool Enchantment::isCompatibleWith(Enchantment *other) const{ return this != other;}
Enchantment *Enchantment::setDescriptionId(int id){ descriptionId = id; return this;}
int Enchantment::getDescriptionId(){ return descriptionId;}
HtmlString Enchantment::getFullname(int level){ wchar_t formatted[256]; swprintf(formatted, 256, L"%ls %ls", app.GetString(getDescriptionId()), getLevelString(level).c_str());
return HtmlString(formatted, eHTMLColor_f);}
bool Enchantment::canEnchant(shared_ptr<ItemInstance> item){ return category->canEnchant(item->getItem());}
// 4J Addedwstring Enchantment::getLevelString(int level){ int stringId = IDS_ENCHANTMENT_LEVEL_1; switch(level) { case 2: stringId = IDS_ENCHANTMENT_LEVEL_2; break; case 3: stringId = IDS_ENCHANTMENT_LEVEL_3; break; case 4: stringId = IDS_ENCHANTMENT_LEVEL_4; break; case 5: stringId = IDS_ENCHANTMENT_LEVEL_5; break; case 6: stringId = IDS_ENCHANTMENT_LEVEL_6; break; case 7: stringId = IDS_ENCHANTMENT_LEVEL_7; break; case 8: stringId = IDS_ENCHANTMENT_LEVEL_8; break; case 9: stringId = IDS_ENCHANTMENT_LEVEL_9; break; case 10: stringId = IDS_ENCHANTMENT_LEVEL_10; break; }; return app.GetString(stringId); //I18n.get("enchantment.level." + level);}