Render GeoArmor Item in GUI instead of 2D texture
Thanks to MrSterner for this tip
In your Armor item class, do the createRenderer like for Fabric:
@Override
public void createRenderer(Consumer<Object> consumer) {
consumer.accept(new RenderProvider() {
private GeoArmorRenderer<?> renderer;
private GeoItemRenderer<?> itemRenderer;
@Override
public BuiltinModelItemRenderer getCustomRenderer() {
if(this.itemRenderer == null) {
this.itemRenderer = new ExampleItemRenderer();
}
return this.itemRenderer;
}
@Override
public HumanoidModel<LivingEntity> getHumanoidArmorModel(LivingEntity livingEntity, ItemStack itemStack, EquipmentSlot equipmentSlot, HumanoidModel<LivingEntity> original) {
if(this.renderer == null) {
this.renderer = new ExampleArmorRenderer();
}
this.renderer.prepForRender(livingEntity, itemStack, equipmentSlot, original);
return this.renderer;
}
});
}
and Forge like so:
@Override
public void initializeClient(Consumer<IClientItemExtensions> consumer) {
consumer.accept(new IClientItemExtensions() {
private GeoArmorRenderer<?> renderer;
private GeoItemRenderer<?> itemRenderer;
@Override
public BuiltinModelItemRenderer getCustomRenderer() {
if(this.itemRenderer == null) {
this.itemRenderer = new ExampleItemRenderer();
}
return this.itemRenderer;
}
@Override
@NotNull HumanoidModel<?> getHumanoidArmorModel(LivingEntity livingEntity, ItemStack itemStack, EquipmentSlot equipmentSlot, HumanoidModel<?> original) {
if(this.renderer == null) {
this.renderer = new ExampleArmorRenderer();
}
this.renderer.prepForRender(livingEntity, itemStack, equipmentSlot, original);
return this.renderer;
}
});
}
Last updated