java类net.minecraft.client.renderer.entity.layers.LayerRenderer的实例源码

RenderLivingBase.java 文件源码 项目:Backmemed 阅读 17 收藏 0 点赞 0 评论 0
public List<LayerRenderer<T>> getLayerRenderers()
{
    return this.layerRenderers;
}
RenderLivingBase.java 文件源码 项目:CustomWorldGen 阅读 20 收藏 0 点赞 0 评论 0
public <V extends EntityLivingBase, U extends LayerRenderer<V>> boolean addLayer(U layer)
{
    return this.layerRenderers.add((LayerRenderer<T>)layer);
}
RenderLivingBase.java 文件源码 项目:CustomWorldGen 阅读 15 收藏 0 点赞 0 评论 0
public <V extends EntityLivingBase, U extends LayerRenderer<V>> boolean removeLayer(U layer)
{
    return this.layerRenderers.remove(layer);
}
ClientEventHandler.java 文件源码 项目:CrystalMod 阅读 23 收藏 0 点赞 0 评论 0
@SubscribeEvent
  public void onRender(final RenderPlayerEvent.Pre event){
    if(event.getEntityPlayer() ==null)return;
try{
    @SuppressWarnings("unchecked")
    List<LayerRenderer<EntityLivingBase>> layers = (List<LayerRenderer<EntityLivingBase>>) ReflectionUtils.getPrivateValue(event.getRenderer(), RenderLivingBase.class, ObfuscatedNames.RenderLivingBase_layerRenderers);
    for(LayerRenderer<EntityLivingBase> layer : layers){
        if(layer instanceof LayerBipedArmor){
            LayerBipedArmor armor = (LayerBipedArmor)layer;
            ItemStack helmet = event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.HEAD);
            ModelBiped modelHelmet = armor.getModelFromSlot(EntityEquipmentSlot.HEAD);
            ItemStack chest = event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.CHEST);
            ModelBiped modelChest = armor.getModelFromSlot(EntityEquipmentSlot.CHEST);
            ItemStack legs = event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.LEGS);
            ModelBiped modelLegs = armor.getModelFromSlot(EntityEquipmentSlot.LEGS);
            ItemStack boots = event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.FEET);
            ModelBiped modelBoots = armor.getModelFromSlot(EntityEquipmentSlot.FEET);
            if(modelHelmet !=null){
                if(ItemStackTools.isValid(helmet) && ModEnhancements.INVIS_ARMOR.isApplied(helmet)){
                    modelHelmet.bipedHead.isHidden = true;
                    modelHelmet.bipedHeadwear.isHidden = true;
                }
            }
            if(modelChest !=null){
                if(ItemStackTools.isValid(chest) && ModEnhancements.INVIS_ARMOR.isApplied(chest)){
                    modelChest.bipedBody.isHidden = true;
                    modelChest.bipedRightArm.isHidden = true;
                    modelChest.bipedLeftArm.isHidden = true;
                }
            }
            if(modelLegs !=null){
                if(ItemStackTools.isValid(legs) && ModEnhancements.INVIS_ARMOR.isApplied(legs)){
                    modelLegs.bipedBody.isHidden = true;
                    modelLegs.bipedLeftLeg.isHidden = true;
                    modelLegs.bipedRightLeg.isHidden = true;
                }
            }
            if(modelBoots !=null){
                if(ItemStackTools.isValid(boots) && ModEnhancements.INVIS_ARMOR.isApplied(boots)){
                    modelBoots.bipedLeftLeg.isHidden = true;
                    modelBoots.bipedRightLeg.isHidden = true;
                }
            }
        }
    }
}catch(Exception e){
    e.printStackTrace();
}       
  }
ClientEventHandler.java 文件源码 项目:CrystalMod 阅读 19 收藏 0 点赞 0 评论 0
@SubscribeEvent
  public void renderSpecials(RenderPlayerEvent.Post event){

    try{
        @SuppressWarnings("unchecked")
    List<LayerRenderer<EntityLivingBase>> layers = (List<LayerRenderer<EntityLivingBase>>) ReflectionUtils.getPrivateValue(event.getRenderer(), RenderLivingBase.class, ObfuscatedNames.RenderLivingBase_layerRenderers);
    for(LayerRenderer<EntityLivingBase> layer : layers){
        if(layer instanceof LayerBipedArmor){
            LayerBipedArmor armor = (LayerBipedArmor)layer;
            ItemStack helmet = event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.HEAD);
            ModelBiped modelHelmet = armor.getModelFromSlot(EntityEquipmentSlot.HEAD);
            ItemStack chest = event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.CHEST);
            ModelBiped modelChest = armor.getModelFromSlot(EntityEquipmentSlot.CHEST);
            ItemStack legs = event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.LEGS);
            ModelBiped modelLegs = armor.getModelFromSlot(EntityEquipmentSlot.LEGS);
            ItemStack boots = event.getEntityPlayer().getItemStackFromSlot(EntityEquipmentSlot.FEET);
            ModelBiped modelBoots = armor.getModelFromSlot(EntityEquipmentSlot.FEET);
            if(modelHelmet !=null){
                if(ItemStackTools.isValid(helmet) && ModEnhancements.INVIS_ARMOR.isApplied(helmet)){
                    modelHelmet.bipedHead.isHidden = false;
                    modelHelmet.bipedHeadwear.isHidden = false;
                }
            }
            if(modelChest !=null){
                if(ItemStackTools.isValid(chest) && ModEnhancements.INVIS_ARMOR.isApplied(chest)){
                    modelChest.bipedBody.isHidden = false;
                    modelChest.bipedRightArm.isHidden = false;
                    modelChest.bipedLeftArm.isHidden = false;
                }
            }
            if(modelLegs !=null){
                if(ItemStackTools.isValid(legs) && ModEnhancements.INVIS_ARMOR.isApplied(legs)){
                    modelLegs.bipedBody.isHidden = false;
                    modelLegs.bipedLeftLeg.isHidden = false;
                    modelLegs.bipedRightLeg.isHidden = false;
                }
            }
            if(modelBoots !=null){
                if(ItemStackTools.isValid(boots) && ModEnhancements.INVIS_ARMOR.isApplied(boots)){
                    modelBoots.bipedLeftLeg.isHidden = false;
                    modelBoots.bipedRightLeg.isHidden = false;
                }
            }
        }
    }
}catch(Exception e){
    e.printStackTrace();
}
  }
ForgeProxy.java 文件源码 项目:MineLittlePony 阅读 19 收藏 0 点赞 0 评论 0
public static Optional<Function<RenderManager,LayerRenderer<EntityPlayer>>> createShoulderLayer() {
    if (forgeLoaded) {
        // TODO
    }
    return Optional.empty();
}
AbstractPonyLayer.java 文件源码 项目:MineLittlePony 阅读 19 收藏 0 点赞 0 评论 0
public AbstractPonyLayer(RenderLivingBase<? extends T> renderer, LayerRenderer<T> humanLayer) {
    this.renderer = renderer;
    this.layer = humanLayer;
}
LayerEntityOnPonyShoulder.java 文件源码 项目:MineLittlePony 阅读 17 收藏 0 点赞 0 评论 0
private static LayerRenderer<EntityPlayer> getForgeLayer(RenderManager rm) {
    return ForgeProxy.createShoulderLayer()
            .orElse(LayerEntityOnShoulder::new)
            .apply(rm);
}
EventHandlerClient.java 文件源码 项目:Mob-Amputation 阅读 25 收藏 0 点赞 0 评论 0
@SubscribeEvent
public void onRenderLivingPre(RenderLivingEvent.Pre event)
{
    EntityGib[] gibs = amputationMap.get(event.getEntity());
    if(gibs != null)
    {
        boolean gibbed = false;
        for(int i = 0; i <= 2; i++)
        {
            if(!gibs[i].attached)
            {
                gibbed = true;
                break;
            }
        }
        if(gibbed)
        {
            if(event.getRenderer() instanceof RenderBiped || event.getRenderer() instanceof RenderPlayer)
            {
                ModelBase model = event.getRenderer().mainModel;
                ModelBiped bipedPass1 = null;
                ModelBiped bipedPass2 = null;
                for(int i = 0; i < event.getRenderer().layerRenderers.size(); i++)
                {
                    LayerRenderer layer = (LayerRenderer)event.getRenderer().layerRenderers.get(i);
                    if(layer instanceof LayerBipedArmor)
                    {
                        LayerBipedArmor armor = (LayerBipedArmor)layer;
                        bipedPass1 = armor.modelLeggings;
                        bipedPass2 = armor.modelArmor;
                        break;
                    }
                }
                if(model instanceof ModelBiped && bipedPass1 != null && bipedPass2 != null)
                {
                    ModelBiped biped = (ModelBiped)model;

                    ModelGib.bipedHead1 = bipedPass1.bipedHead;
                    ModelGib.bipedHeadwear1 = bipedPass1.bipedHeadwear;
                    ModelGib.bipedLeftArm1 = bipedPass1.bipedLeftArm;
                    ModelGib.bipedRightArm1 = bipedPass1.bipedRightArm;

                    ModelGib.bipedHead2 = bipedPass2.bipedHead;
                    ModelGib.bipedHeadwear2 = bipedPass2.bipedHeadwear;
                    ModelGib.bipedLeftArm2 = bipedPass2.bipedLeftArm;
                    ModelGib.bipedRightArm2 = bipedPass2.bipedRightArm;

                    if(!gibs[0].attached)
                    {
                        biped.bipedHead.showModel = false;
                        biped.bipedHeadwear.showModel = false;

                        bipedPass1.bipedHead = bipedPass2.bipedHead = bipedPass1.bipedHeadwear = bipedPass2.bipedHeadwear = ModelGib.emptyModel;
                    }
                    if(!gibs[1].attached)
                    {
                        biped.bipedLeftArm.showModel = false;

                        bipedPass1.bipedLeftArm = bipedPass2.bipedLeftArm = ModelGib.emptyModel;
                    }
                    if(!gibs[2].attached)
                    {
                        biped.bipedRightArm.showModel = false;

                        bipedPass1.bipedRightArm = bipedPass2.bipedRightArm = ModelGib.emptyModel;
                    }
                }
            }
        }
    }
}
EventHandlerClient.java 文件源码 项目:Mob-Amputation 阅读 30 收藏 0 点赞 0 评论 0
@SubscribeEvent
public void onRenderLivingPost(RenderLivingEvent.Post event)
{
    EntityGib[] gibs = amputationMap.get(event.getEntity());
    if(gibs != null)
    {
        boolean gibbed = false;
        for(int i = 0; i <= 2; i++)
        {
            if(!gibs[i].attached)
            {
                gibbed = true;
                break;
            }
        }
        if(gibbed)
        {
            if(event.getRenderer() instanceof RenderBiped || event.getRenderer() instanceof RenderPlayer)
            {
                ModelBase model = event.getRenderer().mainModel;
                ModelBiped bipedPass1 = null;
                ModelBiped bipedPass2 = null;
                for(int i = 0; i < event.getRenderer().layerRenderers.size(); i++)
                {
                    LayerRenderer layer = (LayerRenderer)event.getRenderer().layerRenderers.get(i);
                    if(layer instanceof LayerBipedArmor)
                    {
                        LayerBipedArmor armor = (LayerBipedArmor)layer;
                        bipedPass1 = armor.modelLeggings;
                        bipedPass2 = armor.modelArmor;
                        break;
                    }
                }
                if(model instanceof ModelBiped && bipedPass1 != null && bipedPass2 != null)
                {
                    ModelBiped biped = (ModelBiped)model;

                    bipedPass1.bipedHead = ModelGib.bipedHead1;
                    bipedPass1.bipedHeadwear = ModelGib.bipedHeadwear1;
                    bipedPass1.bipedLeftArm = ModelGib.bipedLeftArm1;
                    bipedPass1.bipedRightArm = ModelGib.bipedRightArm1;

                    bipedPass2.bipedHead = ModelGib.bipedHead2;
                    bipedPass2.bipedHeadwear = ModelGib.bipedHeadwear2;
                    bipedPass2.bipedLeftArm = ModelGib.bipedLeftArm2;
                    bipedPass2.bipedRightArm = ModelGib.bipedRightArm2;

                    biped.bipedHead.showModel = true;
                    biped.bipedHeadwear.showModel = true;
                    biped.bipedLeftArm.showModel = true;
                    biped.bipedRightArm.showModel = true;
                }
            }
        }
    }
}


问题


面经


文章

微信
公众号

扫码关注公众号