/
Belyash5
/
Flu
Обзор
Документация
Войти
/
Belyash5
/
Flu
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/main/java/com/hbm/items/armor/JetpackBase.java
105 строк
3 KB
abel1502
Fix wings rendering
02 ноя 2024, 23:44
Не верифицирован
02 ноя 2024, 23:44
b58ab45
Код
Авторство
О чём код?
package com.hbm.items.armor; import java.util.List; import com.hbm.handler.ArmorModHandler; import com.hbm.render.model.ModelJetPack; import com.hbm.util.ArmorUtil; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelBiped; import net.minecraft.client.renderer.entity.RenderPlayer; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.RenderPlayerEvent; public abstract class JetpackBase extends ItemArmorMod { protected ModelBiped cachedModel; public JetpackBase() { super(ArmorModHandler.plate_only, false, true, false, false); } @Override public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { super.addInformation(itemstack, player, list, bool); list.add(EnumChatFormatting.GOLD + "Can be worn on its own!"); } @Override public void addDesc(List list, ItemStack stack, ItemStack armor) { ItemStack jetpack = ArmorModHandler.pryMods(armor)[ArmorModHandler.plate_only]; if(jetpack == null) return; list.add(EnumChatFormatting.RED + " " + stack.getDisplayName()); } @Override public void modUpdate(EntityLivingBase entity, ItemStack armor) { if(!(entity instanceof EntityPlayer)) return; ItemStack jetpack = ArmorModHandler.pryMods(armor)[ArmorModHandler.plate_only]; if(jetpack == null) return; onArmorTick(entity.worldObj, (EntityPlayer)entity, jetpack); ArmorUtil.resetFlightTime((EntityPlayer)entity); ArmorModHandler.applyMod(armor, jetpack); } @Override @SideOnly(Side.CLIENT) public void modRender(RenderPlayerEvent.SetArmorModel event, ItemStack armor) { ModelBiped modelJetpack = getArmorModel(event.entityLiving, null, 1); RenderPlayer renderer = event.renderer; ModelBiped model = renderer.modelArmor; EntityPlayer player = event.entityPlayer; modelJetpack.isSneak = model.isSneak; float interp = event.partialRenderTick; float yawHead = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * interp; float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * interp; float yaw = yawHead - yawOffset; float yawWrapped = MathHelper.wrapAngleTo180_float(yawHead - yawOffset); float pitch = player.rotationPitch; Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(this.getArmorTexture(armor, event.entity, 1, null))); modelJetpack.render(event.entityPlayer, 0.0F, 0.0F, yawWrapped, yaw, pitch, 0.0625F); } @Override public boolean isValidArmor(ItemStack stack, int armorType, Entity entity) { return armorType == 1; } @Override @SideOnly(Side.CLIENT) public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, int armorSlot) { if (armorSlot == 1) { if (cachedModel == null) { this.cachedModel = new ModelJetPack(); } return this.cachedModel; } return null; } }