Skip to content

Commit

Permalink
Fixed translucent models
Browse files Browse the repository at this point in the history
  • Loading branch information
Jais Djurhuus-Kempel committed Feb 5, 2021
1 parent c3f1119 commit e9f366d
Show file tree
Hide file tree
Showing 19 changed files with 215 additions and 284 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ public DyeBeeRenderer(EntityRendererManager renderManagerIn, ProductiveBeeModel<
}

public DyeBeeRenderer(EntityRendererManager renderManagerIn) {
this(renderManagerIn, new ProductiveBeeModel<>());
this(renderManagerIn, new ProductiveBeeModel<>("default"));
}

@Nonnull
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public ProductiveBeeRenderer(EntityRendererManager renderManagerIn) {
addLayer(new BeeBodyLayer(this, "small", isChristmas));
addLayer(new BeeBodyLayer(this, "slim", isChristmas));
addLayer(new BeeBodyLayer(this, "tiny", isChristmas));
addLayer(new BeeBodyLayer(this, "translucent_with_center", isChristmas));

addLayer(new GlowingInnardsLayer(this));
// addLayer(new FoliageLayer<>(this));
Expand All @@ -47,10 +48,8 @@ public ProductiveBeeRenderer(EntityRendererManager renderManagerIn) {
@Nullable
@Override
protected RenderType func_230042_a_(ProductiveBeeEntity bee, boolean b1, boolean b2) {
if (bee instanceof ConfigurableBeeEntity) {
if (((ConfigurableBeeEntity) bee).isTranslucent()) {
return RenderType.getEntityTranslucent(this.getEntityTexture(bee));
}
if (bee instanceof ConfigurableBeeEntity && ((ConfigurableBeeEntity) bee).isTranslucent()) {
return RenderType.getEntityTranslucent(this.getEntityTexture(bee));
}
return super.func_230042_a_(bee, b1, b2);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.entity.IEntityRenderer;
import net.minecraft.client.renderer.entity.LivingRenderer;
import net.minecraft.client.renderer.entity.layers.LayerRenderer;
import net.minecraft.client.renderer.entity.model.EntityModel;
import net.minecraft.client.renderer.texture.OverlayTexture;
Expand All @@ -31,11 +32,17 @@ public BeeBodyLayer(IEntityRenderer<ProductiveBeeEntity, ProductiveBeeModel<Prod
}

public void render(@Nonnull MatrixStack matrixStackIn, @Nonnull IRenderTypeBuffer bufferIn, int packedLightIn, @Nonnull ProductiveBeeEntity entity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch) {
if (entity.getRenderer().equals(this.modelType)) {
if (entity.getRenderer().equals(this.modelType) && !entity.isInvisible()) {
this.getEntityModel().copyModelAttributesTo(this.model);
this.model.setLivingAnimations(entity, limbSwing, limbSwingAmount, partialTicks);
this.model.setRotationAngles(entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch);
renderCutoutModel(this.model, this.getEntityTexture(entity), matrixStackIn, bufferIn, packedLightIn, entity, 1.0F, 1.0F, 1.0F);

if (entity instanceof ConfigurableBeeEntity && ((ConfigurableBeeEntity) entity).isTranslucent()) {
IVertexBuilder vertexBuilder = bufferIn.getBuffer(RenderType.getEntityTranslucent(this.getEntityTexture(entity)));
this.model.render(matrixStackIn, vertexBuilder, packedLightIn, LivingRenderer.getPackedOverlay(entity, 0.0F), 1.0F, 1.0F, 1.0F, 1.0F);
} else {
renderCutoutModel(this.model, this.getEntityTexture(entity), matrixStackIn, bufferIn, packedLightIn, entity, 1.0F, 1.0F, 1.0F);
}

if (entity.getColor(0) != null) {
if (entity instanceof ConfigurableBeeEntity) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ public void addBodyParts(boolean withTorso) {

@Override
protected void addCrystals() {
crystals.setRotationPoint(-1.5F, -7.0F, -4.0F);
crystals.setTextureOffset(50, 54).addBox(1.0F, 1.0F, 1.0F, 3.0F, 2.0F, 4.0F, 0.0F, 0.0F, 0.0F);
crystals.setTextureOffset(48, 47).addBox(-1.0F, 0.0F, 0.0F, 4.0F, 3.0F, 4.0F, 0.0F, 0.0F, 0.0F);
crystals.setTextureOffset(52, 60).addBox(-1.0F, 2.0F, 4.0F, 3.0F, 1.0F, 2.0F, 0.0F, 0.0F, 0.0F);
crystals.setTextureOffset(42, 58).addBox(0.0F, 2.0F, -2.0F, 3.0F, 4.0F, 2.0F, 0.0F, 0.0F, 0.0F);
torso.addChild(this.crystals);
externals.setRotationPoint(-1.5F, -7.0F, -4.0F);
externals.setTextureOffset(50, 54).addBox(1.0F, 1.0F, 1.0F, 3.0F, 2.0F, 4.0F, 0.0F, 0.0F, 0.0F);
externals.setTextureOffset(48, 47).addBox(-1.0F, 0.0F, 0.0F, 4.0F, 3.0F, 4.0F, 0.0F, 0.0F, 0.0F);
externals.setTextureOffset(52, 60).addBox(-1.0F, 2.0F, 4.0F, 3.0F, 1.0F, 2.0F, 0.0F, 0.0F, 0.0F);
externals.setTextureOffset(42, 58).addBox(0.0F, 2.0F, -2.0F, 3.0F, 4.0F, 2.0F, 0.0F, 0.0F, 0.0F);
torso.addChild(this.externals);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@ public void addBodyParts(boolean withTorso) {

@Override
protected void addCrystals() {
crystals.setRotationPoint(0.0F, -4.0F, 0.0F);
crystals.setTextureOffset(52, 28).addBox(-3.0F, -6.0F, -5.0F, 0.0F, 6.0F, 6.0F, 0.0F, 0.0F, 0.0F);
crystals.setTextureOffset(52, 34).addBox(-6.0F, -6.0F, -2.0F, 6.0F, 6.0F, 0.0F, 0.0F, 0.0F, 0.0F);
crystals.setTextureOffset(52, 34).addBox(1.0F, -6.0F, -4.0F, 0.0F, 6.0F, 6.0F, 0.0F, 0.0F, 0.0F);
crystals.setTextureOffset(52, 40).addBox(-2.0F, -6.0F, -1.0F, 6.0F, 6.0F, 0.0F, 0.0F, 0.0F, 0.0F);
setRotationAngle(crystals, 0.0F, -0.7853981633974483F, 0.0F);
torso.addChild(crystals);
externals.setRotationPoint(0.0F, -4.0F, 0.0F);
externals.setTextureOffset(52, 28).addBox(-3.0F, -6.0F, -5.0F, 0.0F, 6.0F, 6.0F, 0.0F, 0.0F, 0.0F);
externals.setTextureOffset(52, 34).addBox(-6.0F, -6.0F, -2.0F, 6.0F, 6.0F, 0.0F, 0.0F, 0.0F, 0.0F);
externals.setTextureOffset(52, 34).addBox(1.0F, -6.0F, -4.0F, 0.0F, 6.0F, 6.0F, 0.0F, 0.0F, 0.0F);
externals.setTextureOffset(52, 40).addBox(-2.0F, -6.0F, -1.0F, 6.0F, 6.0F, 0.0F, 0.0F, 0.0F, 0.0F);
setRotationAngle(externals, 0.0F, -0.7853981633974483F, 0.0F);
torso.addChild(externals);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ public void addBodyParts(boolean withTorso) {

@Override
protected void addCrystals() {
crystals.setRotationPoint(-1.5F, -7.0F, -4.0F);
crystals.setRotationPoint(-1.5F, -4.0F, -4.0F);
crystals.setTextureOffset(36, 46).addBox(-2.5F, -1.0F, 0.0F, 8.0F, 6.0F, 6.0F, 0.0F, 0.0F, 0.0F);
crystals.setTextureOffset(48, 58).addBox(-2.5F, -2.0F, 0.0F, 4.0F, 1.0F, 4.0F, 0.0F, 0.0F, 0.0F);
torso.addChild(crystals);
externals.setRotationPoint(-1.5F, -7.0F, -4.0F);
externals.setRotationPoint(-1.5F, -4.0F, -4.0F);
externals.setTextureOffset(36, 46).addBox(-2.5F, -1.0F, 0.0F, 8.0F, 6.0F, 6.0F, 0.0F, 0.0F, 0.0F);
externals.setTextureOffset(48, 58).addBox(-2.5F, -2.0F, 0.0F, 4.0F, 1.0F, 4.0F, 0.0F, 0.0F, 0.0F);
torso.addChild(externals);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ abstract public class PartialBeeModel
protected ModelRenderer stinger;
protected ModelRenderer leftAntenna;
protected ModelRenderer rightAntenna;
protected ModelRenderer crystals;
protected ModelRenderer externals;
protected ModelRenderer innards;
protected ModelRenderer santaHat;

Expand All @@ -32,7 +32,7 @@ public PartialBeeModel(
ModelRenderer middleLegs,
ModelRenderer frontLegs,
ModelRenderer backLegs,
ModelRenderer crystals,
ModelRenderer externals,
ModelRenderer innards,
ModelRenderer santaHat)
{
Expand All @@ -47,7 +47,7 @@ public PartialBeeModel(
this.middleLegs = middleLegs;
this.frontLegs = frontLegs;
this.backLegs = backLegs;
this.crystals = crystals;
this.externals = externals;
this.innards = innards;
this.santaHat = santaHat;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ public ProductiveBeeModel(String modelType) {
partialModel = new MediumCrystalBeeModel(this, body, torso, stinger, leftAntenna, rightAntenna, leftWing, rightWing, middleLegs, frontLegs, backLegs, crystals, innards, santaHat);
break;
case "translucent_with_center":
partialModel = new SlimyBeeModel(this, body, torso, stinger, leftAntenna, rightAntenna, leftWing, rightWing, middleLegs, frontLegs, backLegs, crystals, innards, santaHat);
break;
case "default":
default:
partialModel = new MediumBeeModel(this, body, torso, stinger, leftAntenna, rightAntenna, leftWing, rightWing, middleLegs, frontLegs, backLegs, crystals, innards, santaHat);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,62 +1,31 @@
package cy.jdkdigital.productivebees.client.render.entity.model;

import cy.jdkdigital.productivebees.common.entity.bee.ProductiveBeeEntity;
import net.minecraft.client.renderer.model.Model;
import net.minecraft.client.renderer.model.ModelRenderer;

public class SlimyBeeModel<T extends ProductiveBeeEntity> extends ProductiveBeeModel<T>
public class SlimyBeeModel extends MediumBeeModel
{
public SlimyBeeModel(boolean outerLayer) {
super();
public SlimyBeeModel(Model model, ModelRenderer body, ModelRenderer torso, ModelRenderer stinger, ModelRenderer leftAntenna, ModelRenderer rightAntenna, ModelRenderer leftWing, ModelRenderer rightWing, ModelRenderer middleLegs, ModelRenderer frontLegs, ModelRenderer backLegs, ModelRenderer externals, ModelRenderer innards, ModelRenderer santaHat) {
super(model, body, torso, stinger, leftAntenna, rightAntenna, leftWing, rightWing, middleLegs, frontLegs, backLegs, externals, innards, santaHat);
}

ModelRenderer slime = new ModelRenderer(this, 0, 0);
ModelRenderer innards = new ModelRenderer(this, 34, 0);
@Override
public void addBodyParts(boolean withTorso) {
super.addBodyParts(false);
addCrystals();
}

if (!outerLayer) {
addBodyParts(true);
} else {
slime.setRotationPoint(0.0F, 0.0F, 0.0F);
slime.addBox(-3.5F, -4.0F, -5.0F, 7.0F, 7.0F, 10.0F, 0.0F);
this.body.addChild(slime);
@Override
protected void addCrystals() {
externals.setRotationPoint(0.0F, 0.0F, 0.0F);
externals.addBox(-3.5F, -4.0F, -5.0F, 7.0F, 7.0F, 10.0F, 0.0F);
body.addChild(externals);

innards.setRotationPoint(0.0F, 0.0F, 0.0F);
innards.addBox(-2.5F, -3.0F, -4.0F, 5.0F, 5.0F, 8.0F, 0.0F);
this.body.addChild(innards);
}
innards.setRotationPoint(0.0F, 0.0F, 0.0F);
innards.addBox(-2.5F, -3.0F, -4.0F, 5.0F, 5.0F, 8.0F, 0.0F);
body.addChild(innards);
}

protected void addBodyParts(boolean withTorso) {
this.body.setRotationPoint(0.0F, 19.0F, 0.0F);
this.torso.setRotationPoint(0.0F, 0.0F, 0.0F);
this.body.addChild(this.torso);
this.stinger.addBox(0.0F, -1.0F, 5.0F, 0.0F, 1.0F, 2.0F, 0.0F);
this.torso.addChild(this.stinger);
this.leftAntenna.setRotationPoint(0.0F, -2.0F, -5.0F);
this.leftAntenna.addBox(1.5F, -2.0F, -3.0F, 1.0F, 2.0F, 3.0F, 0.0F);
this.rightAntenna.setRotationPoint(0.0F, -2.0F, -5.0F);
this.rightAntenna.addBox(-2.5F, -2.0F, -3.0F, 1.0F, 2.0F, 3.0F, 0.0F);
this.torso.addChild(this.leftAntenna);
this.torso.addChild(this.rightAntenna);
this.rightWing.setRotationPoint(-1.5F, -4.0F, -3.0F);
this.rightWing.rotateAngleX = 0.0F;
this.rightWing.rotateAngleY = -0.2618F;
this.rightWing.rotateAngleZ = 0.0F;
this.body.addChild(this.rightWing);
this.rightWing.addBox(-9.0F, 0.0F, 0.0F, 9.0F, 0.0F, 6.0F, 0.001F);
this.leftWing.setRotationPoint(1.5F, -4.0F, -3.0F);
this.leftWing.rotateAngleX = 0.0F;
this.leftWing.rotateAngleY = 0.2618F;
this.leftWing.rotateAngleZ = 0.0F;
this.leftWing.mirror = true;
this.body.addChild(this.leftWing);
this.leftWing.addBox(0.0F, 0.0F, 0.0F, 9.0F, 0.0F, 6.0F, 0.001F);
this.frontLegs.setRotationPoint(1.5F, 3.0F, -2.0F);
this.body.addChild(this.frontLegs);
this.frontLegs.addBox("frontLegBox", -5.0F, 0.0F, 0.0F, 7, 2, 0, 0.0F, 26, 1);
this.middleLegs.setRotationPoint(1.5F, 3.0F, 0.0F);
this.body.addChild(this.middleLegs);
this.middleLegs.addBox("midLegBox", -5.0F, 0.0F, 0.0F, 7, 2, 0, 0.0F, 26, 3);
this.backLegs.setRotationPoint(1.5F, 3.0F, 2.0F);
this.body.addChild(this.backLegs);
this.backLegs.addBox("backLegBox", -5.0F, 0.0F, 0.0F, 7, 2, 0, 0.0F, 26, 5);
}
@Override
protected void addSantaHat() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
import net.minecraftforge.registries.ForgeRegistries;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.awt.*;
import java.util.List;
import java.util.*;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,6 @@
import net.minecraft.util.text.TranslationTextComponent;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.util.LazyOptional;
import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.energy.EnergyStorage;
import net.minecraftforge.energy.IEnergyStorage;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandlerModifiable;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
package cy.jdkdigital.productivebees.container.gui;

import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.systems.RenderSystem;
import cy.jdkdigital.productivebees.ProductiveBees;
import cy.jdkdigital.productivebees.common.block.AdvancedBeehive;
import cy.jdkdigital.productivebees.common.tileentity.AdvancedBeehiveTileEntityAbstract;
import cy.jdkdigital.productivebees.common.tileentity.DragonEggHiveTileEntity;
import cy.jdkdigital.productivebees.container.AdvancedBeehiveContainer;
import cy.jdkdigital.productivebees.handler.bee.CapabilityBee;
import cy.jdkdigital.productivebees.integrations.jei.ingredients.BeeIngredient;
import cy.jdkdigital.productivebees.integrations.jei.ingredients.BeeIngredientFactory;
import cy.jdkdigital.productivebees.state.properties.VerticalHive;
import net.minecraft.block.BeehiveBlock;
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.Vector3f;
import net.minecraft.client.renderer.entity.EntityRendererManager;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.passive.BeeEntity;
import net.minecraft.entity.player.PlayerInventory;
Expand Down Expand Up @@ -50,7 +48,6 @@ protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
this.font.drawString(this.title.getFormattedText(), expanded ? -5f : 8.0F, 6.0F, 4210752);
this.font.drawString(this.playerInventory.getDisplayName().getFormattedText(), expanded ? -5f : 8.0F, (float) (this.ySize - 96 + 2), 4210752);

// Draw bees here
assert minecraft != null;
HashMap<Integer, List<Integer>> positions = expanded ? AdvancedBeehiveContainer.BEE_POSITIONS_EXPANDED : AdvancedBeehiveContainer.BEE_POSITIONS;

Expand Down Expand Up @@ -104,26 +101,17 @@ protected void drawGuiContainerBackgroundLayer(float partialTicks, int mouseX, i
// Bees
int i = 0;
for (AdvancedBeehiveTileEntityAbstract.Inhabitant inhabitant : inhabitantHandler.getInhabitants()) {
BeeEntity bee = (BeeEntity) EntityType.loadEntityAndExecute(inhabitant.nbt, this.container.tileEntity.getWorld(), (spawnedEntity) -> spawnedEntity);
if (minecraft.player != null && bee != null && positions.containsKey(i)) {
bee.ticksExisted = minecraft.player.ticksExisted;
bee.renderYawOffset = -20;

MatrixStack matrixStack = new MatrixStack();
matrixStack.push();
matrixStack.translate(7 + getGuiLeft() + positions.get(i).get(0) - (expanded ? 13 : 0), 17 + getGuiTop() + positions.get(i).get(1), 1.5D);
matrixStack.rotate(Vector3f.ZP.rotationDegrees(180.0F));
matrixStack.translate(0.0F, -0.2F, 1);
matrixStack.scale(28, 28, 32);

EntityRendererManager entityrenderermanager = minecraft.getRenderManager();
IRenderTypeBuffer.Impl buffer = minecraft.getRenderTypeBuffers().getBufferSource();
entityrenderermanager.renderEntityStatic(bee, 0, 0, 0.0D, minecraft.getRenderPartialTicks(), 1, matrixStack, buffer, 15728880);
buffer.finish();

matrixStack.pop();
}
if (minecraft.player != null && positions.containsKey(i)) {
String type = inhabitant.nbt.getString("type");
if (type.isEmpty()) {
type = inhabitant.nbt.getString("id");
}
BeeIngredient beeIngredient = BeeIngredientFactory.getIngredient(type).get();

if (beeIngredient != null) {
BeeIngredient.render(getGuiLeft() + positions.get(i).get(0) - (expanded ? 13 : 0), getGuiTop() + positions.get(i).get(1), beeIngredient, minecraft);
}
}
i++;
}
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TranslationTextComponent;
import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.items.CapabilityItemHandler;

import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@
import cy.jdkdigital.productivebees.common.item.CombBlockItem;
import net.minecraft.block.*;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.RenderTypeLookup;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Item;
import net.minecraft.item.ItemGroup;
Expand Down
Loading

0 comments on commit e9f366d

Please sign in to comment.