the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 112 lines 3.1 kB view raw
1#include "stdafx.h" 2#include "ZombieModel.h" 3#include "VillagerZombieModel.h" 4#include "..\Minecraft.World\net.minecraft.world.entity.monster.h" 5#include "ZombieRenderer.h" 6 7ResourceLocation ZombieRenderer::ZOMBIE_PIGMAN_LOCATION(TN_MOB_PIGZOMBIE); 8ResourceLocation ZombieRenderer::ZOMBIE_LOCATION(TN_MOB_ZOMBIE); 9ResourceLocation ZombieRenderer::ZOMBIE_VILLAGER_LOCATION(TN_MOB_ZOMBIE_VILLAGER); 10 11ZombieRenderer::ZombieRenderer() : HumanoidMobRenderer(new ZombieModel(), .5f, 1.0f) 12{ 13 modelVersion = 1; 14 defaultModel = humanoidModel; 15 villagerModel = new VillagerZombieModel(); 16 17 defaultArmorParts1 = NULL; 18 defaultArmorParts2 = NULL; 19 20 villagerArmorParts1 = NULL; 21 villagerArmorParts2 = NULL; 22 23 createArmorParts(); 24} 25 26void ZombieRenderer::createArmorParts() 27{ 28 delete armorParts1; 29 delete armorParts2; 30 31 armorParts1 = new ZombieModel(1.0f, true); 32 armorParts2 = new ZombieModel(0.5f, true); 33 34 defaultArmorParts1 = armorParts1; 35 defaultArmorParts2 = armorParts2; 36 37 villagerArmorParts1 = new VillagerZombieModel(1.0f, 0, true); 38 villagerArmorParts2 = new VillagerZombieModel(0.5f, 0, true); 39} 40 41int ZombieRenderer::prepareArmor(shared_ptr<LivingEntity> _mob, int layer, float a) 42{ 43 shared_ptr<Zombie> mob = dynamic_pointer_cast<Zombie>(_mob); 44 swapArmor(mob); 45 return HumanoidMobRenderer::prepareArmor(_mob, layer, a); 46} 47 48void ZombieRenderer::render(shared_ptr<Entity> _mob, double x, double y, double z, float rot, float a) 49{ 50 shared_ptr<Zombie> mob = dynamic_pointer_cast<Zombie>(_mob); 51 swapArmor(mob); 52 HumanoidMobRenderer::render(_mob, x, y, z, rot, a); 53} 54 55ResourceLocation *ZombieRenderer::getTextureLocation(shared_ptr<Entity> entity) 56{ 57 shared_ptr<Zombie> mob = dynamic_pointer_cast<Zombie>(entity); 58 59 // TODO Extract this clusterfck into 3 renderers 60 if ( entity->instanceof(eTYPE_PIGZOMBIE) ) 61 { 62 return &ZOMBIE_PIGMAN_LOCATION; 63 } 64 65 if (mob->isVillager()) 66 { 67 return &ZOMBIE_VILLAGER_LOCATION; 68 } 69 return &ZOMBIE_LOCATION; 70} 71 72void ZombieRenderer::additionalRendering(shared_ptr<LivingEntity> _mob, float a) 73{ 74 shared_ptr<Zombie> mob = dynamic_pointer_cast<Zombie>(_mob); 75 swapArmor(mob); 76 HumanoidMobRenderer::additionalRendering(_mob, a); 77} 78 79void ZombieRenderer::swapArmor(shared_ptr<Zombie> mob) 80{ 81 if (mob->isVillager()) 82 { 83 //if (modelVersion != villagerModel->version()) 84 //{ 85 // villagerModel = new VillagerZombieModel(); 86 // modelVersion = villagerModel->version(); 87 // villagerArmorParts1 = new VillagerZombieModel(1.0f, 0, true); 88 // villagerArmorParts2 = new VillagerZombieModel(0.5f, 0, true); 89 //} 90 model = villagerModel; 91 armorParts1 = villagerArmorParts1; 92 armorParts2 = villagerArmorParts2; 93 } 94 else 95 { 96 model = defaultModel; 97 armorParts1 = defaultArmorParts1; 98 armorParts2 = defaultArmorParts2; 99 } 100 101 humanoidModel = (HumanoidModel *) model; 102} 103 104void ZombieRenderer::setupRotations(shared_ptr<LivingEntity> _mob, float bob, float bodyRot, float a) 105{ 106 shared_ptr<Zombie> mob = dynamic_pointer_cast<Zombie>(_mob); 107 if (mob->isConverting()) 108 { 109 bodyRot += (float) (cos(mob->tickCount * 3.25) * PI * .25f); 110 } 111 HumanoidMobRenderer::setupRotations(mob, bob, bodyRot, a); 112}