swirlier black hole, some anvil work

This commit is contained in:
Bob 2021-06-20 21:54:04 +02:00
parent edd359d3b2
commit e81b466b26
7 changed files with 322 additions and 176 deletions

View File

@ -0,0 +1,62 @@
package com.hbm.inventory;
import java.util.ArrayList;
import java.util.List;
import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.items.ModItems;
import net.minecraft.item.ItemStack;
public class AnvilRecipes {
private static List<AnvilSmithingRecipe> smithingRecipes = new ArrayList();
public static void register() {
smithingRecipes.add(new AnvilSmithingRecipe(2, new ItemStack(ModItems.plate_steel, 2),
new OreDictStack("ingotSteel"), new OreDictStack("ingotSteel")));
}
public static class AnvilSmithingRecipe {
int tier;
ItemStack output;
AStack left;
AStack right;
boolean shapeless = false;
public AnvilSmithingRecipe(int tier, ItemStack out, AStack left, AStack right) {
this.tier = tier;
this.output = out;
this.left = left;
this.right = right;
}
public AnvilSmithingRecipe makeShapeless() {
this.shapeless = true;
return this;
}
public boolean matches(ItemStack left, ItemStack right) {
if(doesStackMatch(left, this.left) && doesStackMatch(right, this.right))
return true;
if(shapeless) {
return doesStackMatch(right, this.left) && doesStackMatch(left, this.right);
}
return false;
}
public boolean doesStackMatch(ItemStack input, AStack recipe) {
return recipe.matchesRecipe(input);
}
public ItemStack getOutput(ItemStack left, ItemStack right) {
return output.copy();
}
}
}

View File

@ -72,6 +72,8 @@ public class RecipesCommon {
return false;
}
public abstract boolean matchesRecipe(ItemStack stack);
public abstract AStack copy();
}
@ -212,6 +214,24 @@ public class RecipesCommon {
public AStack copy() {
return new ComparableStack(item, stacksize, meta);
}
@Override
public boolean matchesRecipe(ItemStack stack) {
if(stack == null)
return false;
if(stack.getItem() != this.item)
return false;
if(this.meta != OreDictionary.WILDCARD_VALUE && stack.getItemDamage() != this.meta)
return false;
if(stack.stackSize < this.stacksize)
return false;
return false;
}
}
/*
@ -301,6 +321,25 @@ public class RecipesCommon {
public AStack copy() {
return new OreDictStack(name, stacksize);
}
@Override
public boolean matchesRecipe(ItemStack stack) {
if(stack == null)
return false;
int[] ids = OreDictionary.getOreIDs(stack);
if(ids == null || ids.length == 0)
return false;
for(int i = 0; i < ids.length; i++) {
if(this.name.equals(OreDictionary.getOreName(ids[i])))
return true;
}
return false;
}
}
public static class MetaBlock {

View File

@ -796,6 +796,8 @@ public class CraftingManager {
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad_green, 'C', "dyeGreen" }));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', "dyeGreen" }));
GameRegistry.addRecipe(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "PPP", "PCP", "PPP", 'P', ModItems.undefined, 'C', ModBlocks.anvil_steel });
if(GeneralConfig.enableBabyMode) {
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) });
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ingot_semtex, 3), new Object[] { Items.slime_ball, Blocks.tnt, ModItems.niter });

View File

@ -25,6 +25,7 @@ public class RenderBlackHole extends Render {
private IModelCustom blastModel;
private ResourceLocation hole = new ResourceLocation(RefStrings.MODID, "textures/models/BlackHole.png");
private ResourceLocation swirl = new ResourceLocation(RefStrings.MODID, "textures/entity/bhole.png");
private ResourceLocation disc = new ResourceLocation(RefStrings.MODID, "textures/entity/bholeDisc.png");
public RenderBlackHole() {
blastModel = AdvancedModelLoader.loadModel(objTesterModelRL);
@ -32,87 +33,254 @@ public class RenderBlackHole extends Render {
@Override
public void doRender(Entity entity, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float interp) {
GL11.glPushMatrix();
GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
if(entity instanceof EntityBlackHole) {
float size = entity.getDataWatcher().getWatchableObjectFloat(16);
GL11.glScalef(size, size, size);
bindTexture(hole);
blastModel.renderAll();
if(entity instanceof EntityVortex) {
renderSwirl(entity, interp);
} else if(entity instanceof EntityRagingVortex) {
renderSwirl(entity, interp);
renderJets(entity, interp);
} else {
renderDisc(entity, interp);
renderJets(entity, interp);
}
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}
private void renderDisc(Entity entity, float interp) {
float glow = 0.75F;
bindTexture(disc);
GL11.glPushMatrix();
GL11.glRotatef(entity.getEntityId() % 90 - 45, 1, 0, 0);
GL11.glRotatef(entity.getEntityId() % 360, 0, 1, 0);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glDepthMask(false);
GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.0F);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
Tessellator tess = Tessellator.instance;
int count = 16;
Vec3 vec = Vec3.createVectorHelper(1, 0, 0);
for(int k = 0; k < 15; k++) {
GL11.glPushMatrix();
GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
float size = entity.getDataWatcher().getWatchableObjectFloat(16);
GL11.glScalef(size, size, size);
bindTexture(hole);
blastModel.renderAll();
GL11.glRotatef((entity.ticksExisted + interp % 360) * -((float)Math.pow(k + 1, 1.25)), 0, 1, 0);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
double s = 3 - k * 0.175D;
renderSwirl(entity, true, interp);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glEnable(GL11.GL_LIGHTING);
for(int j = 0; j < 2; j++) {
tess.startDrawingQuads();
for(int i = 0; i < count; i++) {
if(j == 0)
this.setColorFromIteration(tess, k, 1F);
else
tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, glow);
tess.addVertexWithUV(vec.xCoord * s, 0, vec.zCoord * s, 0.5 + vec.xCoord * 0.25, 0.5 + vec.zCoord * 0.25);
this.setColorFromIteration(tess, k, 0F);
tess.addVertexWithUV(vec.xCoord * s * 2, 0, vec.zCoord * s * 2, 0.5 + vec.xCoord * 0.5, 0.5 + vec.zCoord * 0.5);
vec.rotateAroundY((float)(Math.PI * 2 / count));
this.setColorFromIteration(tess, k, 0F);
tess.addVertexWithUV(vec.xCoord * s * 2, 0, vec.zCoord * s * 2, 0.5 + vec.xCoord * 0.5, 0.5 + vec.zCoord * 0.5);
if(j == 0)
this.setColorFromIteration(tess, k, 1F);
else
tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, glow);
tess.addVertexWithUV(vec.xCoord * s, 0, vec.zCoord * s, 0.5 + vec.xCoord * 0.25, 0.5 + vec.zCoord * 0.25);
}
tess.draw();
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
}
GL11.glPopMatrix();
}
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glDisable(GL11.GL_BLEND);
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
GL11.glDepthMask(true);
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glPopMatrix();
}
private void setColorFromIteration(Tessellator tess, int iteration, float alpha) {
if(iteration < 5) {
float g = 0.125F + iteration * (1F / 10F);
tess.setColorRGBA_F(1.0F, g, 0.0F, alpha);
return;
}
if(iteration == 5) {
tess.setColorRGBA_F(1.0F, 1.0F, 0.0F, alpha);
return;
}
if(iteration > 5) {
int i = iteration - 6;
float r = 1.0F - i * (1F / 9F);
float g = 1F - i * (1F / 9F);
float b = i * (1F / 5F);
tess.setColorRGBA_F(r, g, b, alpha);
return;
}
switch(iteration) {
case 0: tess.setColorRGBA_F(1.0F, 0.0F, 0.0F, alpha); break;
case 1: tess.setColorRGBA_F(1.0F, 0.5F, 0.0F, alpha); break;
case 2: tess.setColorRGBA_F(1.0F, 1.0F, 0.0F, alpha); break;
case 3: tess.setColorRGBA_F(0.5F, 1.0F, 1.0F, alpha); break;
}
}
private void renderSwirl(Entity entity, boolean hasJet, float interp) {
private void renderSwirl(Entity entity, float interp) {
float glow = 0.75F;
if(entity instanceof EntityRagingVortex)
glow = 0.25F;
bindTexture(swirl);
GL11.glPushMatrix();
GL11.glRotatef(entity.getEntityId() % 90 - 45, 1, 0, 0);
GL11.glRotatef(entity.getEntityId() % 360, 0, 1, 0);
GL11.glRotatef((entity.ticksExisted + interp % 360) * -5, 0, 1, 0);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glDepthMask(false);
GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.0F);
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
Vec3 vec = Vec3.createVectorHelper(1, 0, 0);
Tessellator tess = Tessellator.instance;
tess.startDrawingQuads();
double s = 3;
int count = 16;
for(int i = 0; i < count; i++) {
tess.setColorRGBA_F(0.0F, 0.0F, 0.0F, 1.0F);
tess.addVertexWithUV(vec.xCoord * 0.9, 0, vec.zCoord * 0.9, 0.5 + vec.xCoord * 0.25 / s * 0.9, 0.5 + vec.zCoord * 0.25 / s * 0.9);
this.setColorFull(entity, tess);
tess.addVertexWithUV(vec.xCoord * s, 0, vec.zCoord * s, 0.5 + vec.xCoord * 0.25, 0.5 + vec.zCoord * 0.25);
//swirl, inner part (solid)
for(int j = 0; j < 2; j++) {
tess.startDrawingQuads();
for(int i = 0; i < count; i++) {
tess.setColorRGBA_F(0.0F, 0.0F, 0.0F, 1.0F);
tess.addVertexWithUV(vec.xCoord * 0.9, 0, vec.zCoord * 0.9, 0.5 + vec.xCoord * 0.25 / s * 0.9, 0.5 + vec.zCoord * 0.25 / s * 0.9);
if(j == 0)
this.setColorFull(entity, tess);
else
tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, glow);
tess.addVertexWithUV(vec.xCoord * s, 0, vec.zCoord * s, 0.5 + vec.xCoord * 0.25, 0.5 + vec.zCoord * 0.25);
vec.rotateAroundY((float)(Math.PI * 2 / count));
if(j == 0)
this.setColorFull(entity, tess);
else
tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, glow);
tess.addVertexWithUV(vec.xCoord * s, 0, vec.zCoord * s, 0.5 + vec.xCoord * 0.25, 0.5 + vec.zCoord * 0.25);
tess.setColorRGBA_F(0.0F, 0.0F, 0.0F, 1.0F);
tess.addVertexWithUV(vec.xCoord * 0.9, 0, vec.zCoord * 0.9, 0.5 + vec.xCoord * 0.25 / s * 0.9, 0.5 + vec.zCoord * 0.25 / s * 0.9);
}
vec.rotateAroundY((float)(Math.PI * 2 / count));
this.setColorFull(entity, tess);
tess.addVertexWithUV(vec.xCoord * s, 0, vec.zCoord * s, 0.5 + vec.xCoord * 0.25, 0.5 + vec.zCoord * 0.25);
tess.setColorRGBA_F(0.0F, 0.0F, 0.0F, 1.0F);
tess.addVertexWithUV(vec.xCoord * 0.9, 0, vec.zCoord * 0.9, 0.5 + vec.xCoord * 0.25 / s * 0.9, 0.5 + vec.zCoord * 0.25 / s * 0.9);
tess.draw();
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
}
tess.draw();
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
//swirl, outer part (fade)
for(int j = 0; j < 2; j++) {
tess.startDrawingQuads();
for(int i = 0; i < count; i++) {
if(j == 0)
this.setColorFull(entity, tess);
else
tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, glow);
tess.addVertexWithUV(vec.xCoord * s, 0, vec.zCoord * s, 0.5 + vec.xCoord * 0.25, 0.5 + vec.zCoord * 0.25);
this.setColorNone(entity, tess);
tess.addVertexWithUV(vec.xCoord * s * 2, 0, vec.zCoord * s * 2, 0.5 + vec.xCoord * 0.5, 0.5 + vec.zCoord * 0.5);
vec.rotateAroundY((float)(Math.PI * 2 / count));
this.setColorNone(entity, tess);
tess.addVertexWithUV(vec.xCoord * s * 2, 0, vec.zCoord * s * 2, 0.5 + vec.xCoord * 0.5, 0.5 + vec.zCoord * 0.5);
if(j == 0)
this.setColorFull(entity, tess);
else
tess.setColorRGBA_F(1.0F, 1.0F, 1.0F, glow);
tess.addVertexWithUV(vec.xCoord * s, 0, vec.zCoord * s, 0.5 + vec.xCoord * 0.25, 0.5 + vec.zCoord * 0.25);
}
tess.draw();
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
}
tess.startDrawingQuads();
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glDisable(GL11.GL_BLEND);
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
GL11.glDepthMask(true);
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glPopMatrix();
}
private void renderJets(Entity entity, float interp) {
Tessellator tess = Tessellator.instance;
GL11.glPushMatrix();
GL11.glRotatef(entity.getEntityId() % 90 - 45, 1, 0, 0);
GL11.glRotatef(entity.getEntityId() % 360, 0, 1, 0);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glDepthMask(false);
GL11.glAlphaFunc(GL11.GL_GEQUAL, 0.0F);
GL11.glEnable(GL11.GL_BLEND);
for(int i = 0; i < count; i++) {
this.setColorFull(entity, tess);
tess.addVertexWithUV(vec.xCoord * s, 0, vec.zCoord * s, 0.5 + vec.xCoord * 0.25, 0.5 + vec.zCoord * 0.25);
this.setColorNone(entity, tess);
tess.addVertexWithUV(vec.xCoord * s * 2, 0, vec.zCoord * s * 2, 0.5 + vec.xCoord * 0.5, 0.5 + vec.zCoord * 0.5);
vec.rotateAroundY((float)(Math.PI * 2 / count));
this.setColorNone(entity, tess);
tess.addVertexWithUV(vec.xCoord * s * 2, 0, vec.zCoord * s * 2, 0.5 + vec.xCoord * 0.5, 0.5 + vec.zCoord * 0.5);
this.setColorFull(entity, tess);
tess.addVertexWithUV(vec.xCoord * s, 0, vec.zCoord * s, 0.5 + vec.xCoord * 0.25, 0.5 + vec.zCoord * 0.25);
}
tess.draw();
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glDisable(GL11.GL_TEXTURE_2D);
for(int j = -1; j <= 1; j += 2) {
@ -132,17 +300,18 @@ public class RenderBlackHole extends Render {
tess.draw();
}
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glDisable(GL11.GL_BLEND);
GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
GL11.glDepthMask(true);
GL11.glEnable(GL11.GL_ALPHA_TEST);
GL11.glPopMatrix();
}
private void renderFlare(Entity entity) {
GL11.glPushMatrix();
GL11.glScalef(0.2F, 0.2F, 0.2F);
Tessellator tessellator = Tessellator.instance;
@ -166,7 +335,6 @@ public class RenderBlackHole extends Render {
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glDepthMask(false);
GL11.glPushMatrix();
for(int i = 0; i < count; i++) {
GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F);
@ -188,7 +356,6 @@ public class RenderBlackHole extends Render {
tessellator.draw();
}
GL11.glPopMatrix();
GL11.glDepthMask(true);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_BLEND);
@ -197,6 +364,7 @@ public class RenderBlackHole extends Render {
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_ALPHA_TEST);
RenderHelper.enableStandardItemLighting();
GL11.glPopMatrix();
}
private void setColorFull(Entity e, Tessellator tessellator) {

View File

@ -1,125 +0,0 @@
package com.hbm.render.entity.effect;
import java.util.Random;
import org.lwjgl.opengl.GL11;
import com.hbm.entity.effect.EntityBlackHole;
import com.hbm.lib.RefStrings;
import net.minecraft.client.renderer.RenderHelper;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
public class RenderVortex extends Render {
private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/Sphere.obj");
private IModelCustom blastModel;
private ResourceLocation blastTexture;
public RenderVortex() {
blastModel = AdvancedModelLoader.loadModel(objTesterModelRL);
blastTexture = new ResourceLocation(RefStrings.MODID, "textures/models/BlackHole.png");
}
@Override
public void doRender(Entity entity, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_,
float p_76986_9_) {
if(entity instanceof EntityBlackHole) {
GL11.glPushMatrix();
GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_);
GL11.glRotatef((entity.ticksExisted % 360) * 10, 1, 1, 1);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
float size = entity.getDataWatcher().getWatchableObjectFloat(16);
GL11.glScalef(size, size, size);
bindTexture(blastTexture);
blastModel.renderAll();
GL11.glScalef(0.2F, 0.2F, 0.2F);
//FLARE START
Tessellator tessellator = Tessellator.instance;
RenderHelper.disableStandardItemLighting();
int j = 75;//entity.ticksExisted > 250 ? 250 : entity.ticksExisted;
float f1 = (j + 2.0F) / 200.0F;
float f2 = 0.0F;
int count = 250;
/*if(entity.ticksExisted < 250)
{
count = entity.ticksExisted * 3;
}*/
count = j;
if (f1 > 0.8F)
{
f2 = (f1 - 0.8F) / 0.2F;
}
Random random = new Random(432L);
GL11.glDisable(GL11.GL_TEXTURE_2D);
GL11.glShadeModel(GL11.GL_SMOOTH);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
GL11.glDisable(GL11.GL_ALPHA_TEST);
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glDepthMask(false);
GL11.glPushMatrix();
//for (int i = 0; (float)i < (f1 + f1 * f1) / 2.0F * 60.0F; ++i)
for(int i = 0; i < count; i++)
{
GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 0.0F, 1.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 1.0F, 0.0F, 0.0F);
GL11.glRotatef(random.nextFloat() * 360.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(random.nextFloat() * 360.0F + f1 * 90.0F, 0.0F, 0.0F, 1.0F);
tessellator.startDrawing(6);
float f3 = random.nextFloat() * 20.0F + 5.0F + f2 * 10.0F;
float f4 = random.nextFloat() * 2.0F + 1.0F + f2 * 2.0F;
//tessellator.setColorRGBA_I(16777215, (int)(255.0F * (1.0F - f2)));
tessellator.setColorRGBA_I(0x3898b3, (int)(255.0F * (1.0F/* - f2*/)));
tessellator.addVertex(0.0D, 0.0D, 0.0D);
//tessellator.setColorRGBA_I(16711935, 0);
tessellator.setColorRGBA_I(0x3898b3, 0);
tessellator.addVertex(-0.866D * f4, f3, -0.5F * f4);
tessellator.addVertex(0.866D * f4, f3, -0.5F * f4);
tessellator.addVertex(0.0D, f3, 1.0F * f4);
tessellator.addVertex(-0.866D * f4, f3, -0.5F * f4);
tessellator.draw();
}
GL11.glPopMatrix();
GL11.glPopMatrix();
GL11.glDepthMask(true);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glDisable(GL11.GL_BLEND);
GL11.glShadeModel(GL11.GL_FLAT);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glEnable(GL11.GL_TEXTURE_2D);
GL11.glEnable(GL11.GL_ALPHA_TEST);
RenderHelper.enableStandardItemLighting();
//FLARE END
}
}
@Override
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
return null;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB