Posted April 29, 201411 yr So I made a custom rendered block, however whenever the texture is loaded it keeps trying to take it from the defualt Minecraft area, meaning no texture is loaded: "[10:53:07] [Client thread/WARN]: Failed to load texture: minecraft:textures/model/MonsterBody.png java.io.FileNotFoundException: minecraft:textures/model/MonsterBody.png" My code: Main file code that is related: public static final BlockCreature MonsterBody = new BlockCreature(TileResourceLocation.MONSTERBODY, new MonsterBody()).setName("MonsterBody"); Block Creature: public class BlockCreature extends ModdingBlock { public BlockInMod model; public ResourceLocation texture; public BlockCreature(ResourceLocation texture, BlockInMod model) { super(Material.stone); this.texture = texture; this.model = model; this.setCreativeTab(CreativeTabs.tabBlock); } public boolean hasTileEntity(int metadata) { return true; } public TileEntity createTileEntity(World world, int metadata) { return new TileEntityCreature(texture, model); } public int getRenderType() { return -1; } public boolean renderAsNormalBlock() { return false; } public boolean isOpaqueCube() { return false; } public void onBlockPlacedBy(World w, int x, int y, int z, EntityLivingBase entity, ItemStack item) { int l = MathHelper.floor_double((double)(entity.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; int i1 = w.getBlockMetadata(x, y, z) >> 2; ++l; l %= 4; if (l == 0) { w.setBlockMetadataWithNotify(x, y, z, 2 | i1 << 2, 2); } if (l == 1) { w.setBlockMetadataWithNotify(x, y, z, 3 | i1 << 2, 2); } if (l == 2) { w.setBlockMetadataWithNotify(x, y, z, 0 | i1 << 2, 2); } if (l == 3) { w.setBlockMetadataWithNotify(x, y, z, 1 | i1 << 2, 2); } } public BlockCreature setName(String name) { setBlockTextureName("cobblestone"); setBlockName(name); GameRegistry.registerBlock(this, name); return this; } ModdingBlock: public class ModdingBlock extends Block { protected static SoundType stone = Block.soundTypeStone; protected static SoundType grass = Block.soundTypeGrass; protected static SoundType cloth = Block.soundTypeCloth; protected static SoundType wood = Block.soundTypeWood; public static Material rock = Material.rock; public static Material wool = Material.cloth; public BlockMod(Material mat) { super(mat); } public Block setHarvestLevel(int i) { setHarvestLevel("pickaxe", i); return this; } public Block setTextureName(String name) { return setBlockTextureName("manyblocks:" + name); } public Block setName(String name) { setTextureName(name); setBlockName(name); GameRegistry.registerBlock(this, name); return this; } } RenderCreatureBlock: public class RenderCreatureBlock extends TileEntitySpecialRenderer { @Override public void renderTileEntityAt(TileEntity te, double x, double y, double z, float tick) { if (te instanceof TileEntityCreature) { TileEntityCreature tes = (TileEntityCreature)te; int rotation = 0; if(tes.getWorldObj() != null) { rotation = tes.getBlockMetadata(); } Minecraft.getMinecraft().getTextureManager().bindTexture(tes.texture); GL11.glPushMatrix(); GL11.glDisable(GL11.GL_LIGHTING); GL11.glTranslatef((float)x + 0.5F, (float)y+0.7F, (float)z + 0.5F); GL11.glScaled(0.5, 0.5, 0.5); GL11.glRotatef(rotation*90, 0.0F, 1.0F, 0.0F); GL11.glRotatef(180, 1.0F, 0.0F, 0.0F); tes.model.render(0.0625F); GL11.glEnable(GL11.GL_LIGHTING); GL11.glPopMatrix(); } } } RenderCreatureItem: public class RenderCreatureItem implements IItemRenderer { private BlockInMod model; private ResourceLocation texture; public RenderCreatureItem(BlockCreature creatureBlock) { this.model = creatureBlock.model; this.texture = creatureBlock.texture; } @Override public boolean handleRenderType(ItemStack item, ItemRenderType type) { return true; } @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { return true; } @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { GL11.glPushMatrix(); GL11.glScalef(-0.6F, -0.6F, 0.6F); switch(type){ case INVENTORY: GL11.glTranslatef(0, 0.12F, 0); break; case EQUIPPED: GL11.glTranslatef(-0.8F, -0.2F, 0.7F); break; case EQUIPPED_FIRST_PERSON: GL11.glTranslatef(0, -0.7F, 0.7F); break; default: } Minecraft.getMinecraft().getTextureManager().bindTexture(texture); model.render(0.0625F); GL11.glPopMatrix(); } } TileResourceLocation: public class TileResourceLocation { public static final String modelPrefix = "textures/model/"; public static final ResourceLocation MONSTERBODY = addModel("monsterBody"); private static ResourceLocation addModel(String text){ return new ResourceLocation(modelPrefix + text + ".png"); } } TileEntityCreature: public class TileEntityCreature extends TileEntity { public ResourceLocation texture; public BlockInMod model; public TileEntityCreature () { } public TileEntityCreature (ResourceLocation texture, BlockInMod model) { this.model = model; this.texture = texture; } } CreatureBlockEntityRenderer: public class CreatureBlockEntityRenderer{ private static TileResourceLocation x; public static void init(){ ManyBlocks.registerItemRenderer(ManyBlocks.MonsterBody, new RenderCreatureItem(ManyBlocks.MonsterBody)); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCreature.class, new RenderCreatureBlock()); } } MonsterBody: public class MonsterBody extends ModelBase implements BlockInMod{ //fields ModelRenderer head1; ModelRenderer body1; ModelRenderer leg1; ModelRenderer leg2; ModelRenderer leg4; ModelRenderer head7; ModelRenderer head3; ModelRenderer body2; ModelRenderer body3; ModelRenderer body4; ModelRenderer body5; ModelRenderer head4; ModelRenderer head5; ModelRenderer head2; ModelRenderer head6; ModelRenderer leg3; public MonsterBody() { textureWidth = 64; textureHeight = 32; head1 = new ModelRenderer(this, 36, 0); head1.addBox(-2F, 4F, -12F, 1, 1, 6); head1.setRotationPoint(0F, 12F, -6F); head1.setTextureSize(64, 32); head1.mirror = true; setRotation(head1, 0F, 0F, 0F); body1 = new ModelRenderer(this, 16, 24); body1.addBox(0F, -5F, -7F, 2, 4, 4); body1.setRotationPoint(1F, 11F, 10F); body1.setTextureSize(64, 32); body1.mirror = true; setRotation(body1, 0F, 0F, 0F); leg1 = new ModelRenderer(this, 0, 16); leg1.addBox(-3F, 0F, -2F, 4, 6, 4); leg1.setRotationPoint(-5F, 18F, -5F); leg1.setTextureSize(64, 32); leg1.mirror = true; setRotation(leg1, 0F, 0F, 0F); leg2 = new ModelRenderer(this, 0, 16); leg2.addBox(-2F, 0F, -2F, 4, 6, 4); leg2.setRotationPoint(6F, 18F, 7F); leg2.setTextureSize(64, 32); leg2.mirror = true; setRotation(leg2, 0F, 0F, 0F); leg4 = new ModelRenderer(this, 0, 16); leg4.addBox(-2F, 0F, -2F, 4, 6, 4); leg4.setRotationPoint(6F, 18F, -5F); leg4.setTextureSize(64, 32); leg4.mirror = true; setRotation(leg4, 0F, 0F, 0F); head7 = new ModelRenderer(this, 16, 21); head7.addBox(2F, -7F, -6F, 2, 3, 4); head7.setRotationPoint(0F, 12F, -6F); head7.setTextureSize(64, 32); head7.mirror = true; setRotation(head7, 0F, 0F, 0F); head3 = new ModelRenderer(this, 36, 0); head3.addBox(-4F, 4F, -12F, 1, 1, 6); head3.setRotationPoint(0F, 12F, -6F); head3.setTextureSize(64, 32); head3.mirror = true; setRotation(head3, 0F, 0F, 0F); body2 = new ModelRenderer(this, 28, ; body2.addBox(-5F, -10F, -7F, 10, 16, ; body2.setRotationPoint(0F, 11F, 3F); body2.setTextureSize(64, 32); body2.mirror = true; setRotation(body2, 1.570796F, 0F, 0F); body3 = new ModelRenderer(this, 16, 24); body3.addBox(0F, -5F, -7F, 2, 4, 4); body3.setRotationPoint(1F, 11F, 3F); body3.setTextureSize(64, 32); body3.mirror = true; setRotation(body3, 0F, 0F, 0F); body4 = new ModelRenderer(this, 16, 24); body4.addBox(0F, -5F, -7F, 2, 4, 4); body4.setRotationPoint(-3F, 11F, 10F); body4.setTextureSize(64, 32); body4.mirror = true; setRotation(body4, 0F, 0F, 0F); body5 = new ModelRenderer(this, 16, 24); body5.addBox(0F, -5F, -7F, 2, 4, 4); body5.setRotationPoint(-3F, 11F, 3F); body5.setTextureSize(64, 32); body5.mirror = true; setRotation(body5, 0F, 0F, 0F); head4 = new ModelRenderer(this, 36, 0); head4.addBox(3F, 4F, -12F, 1, 1, 6); head4.setRotationPoint(0F, 12F, -6F); head4.setTextureSize(64, 32); head4.mirror = true; setRotation(head4, 0F, 0F, 0F); head5 = new ModelRenderer(this, 36, 0); head5.addBox(1F, 4F, -12F, 1, 1, 6); head5.setRotationPoint(0F, 12F, -6F); head5.setTextureSize(64, 32); head5.mirror = true; setRotation(head5, 0F, 0F, 0F); head2 = new ModelRenderer(this, 0, 0); head2.addBox(-4F, -4F, -8F, 8, 8, ; head2.setRotationPoint(0F, 12F, -6F); head2.setTextureSize(64, 32); head2.mirror = true; setRotation(head2, 0F, 0F, 0F); head6 = new ModelRenderer(this, 16, 19); head6.addBox(-4F, -7F, -6F, 2, 3, 4); head6.setRotationPoint(0F, 12F, -6F); head6.setTextureSize(64, 32); head6.mirror = true; setRotation(head6, 0F, 0F, 0F); leg3 = new ModelRenderer(this, 0, 16); leg3.addBox(-2F, 0F, -2F, 4, 6, 4); leg3.setRotationPoint(-6F, 18F, 7F); leg3.setTextureSize(64, 32); leg3.mirror = true; setRotation(leg3, 0F, 0F, 0F); } public void render(float f5) { head1.render(f5); body1.render(f5); leg1.render(f5); leg2.render(f5); leg4.render(f5); head7.render(f5); head3.render(f5); body2.render(f5); body3.render(f5); body4.render(f5); body5.render(f5); head4.render(f5); head5.render(f5); head2.render(f5); head6.render(f5); leg3.render(f5); } private void setRotation(ModelRenderer model, float x, float y, float z) { model.rotateAngleX = x; model.rotateAngleY = y; model.rotateAngleZ = z; } } BlockInMod: public interface BlockInMod{ public abstract void render (float rotation); }
April 29, 201411 yr In your TileResourceLocation, you have the addModel method. In there you return a ResourceLocation. You need to put in the modid of your mod in to, so in your case it is: return new ResourceLocation(YOUR_MOD_ID, modelPrefix + text+".png"); Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.