Jump to content

[1.8] Leaf blocks [[Solved]]


PSmithgamer

Recommended Posts

Okay, to continue a lot of my last posts because I've been working on this for 6 hours now trying to get leaves to work... I have successfully created the block, but the textures are killing me and not working. So I've been searching the internet using this  troubleshooter guild http://greyminecraftcoder.blogspot.com.au/2015/03/troubleshooting-block-and-item-rendering.html. But it has turned up nothing with my code. So I've gone though all rendering and personally I cannot find a single thing wrong. I've even try to recreate the block yet I get the same problem. So if anyone knows what I can do to fix this or give me a different link to fixing this problem I'll be very thankful!

 

Block registration class - the blocks are mango_leaf and mango_leaves

 

package com.PSmithgamer.Alkia.init;

 

import com.PSmithgamer.Alkia.AlkiaMod;

import com.PSmithgamer.Alkia.Reference;

import com.PSmithgamer.Alkia.blocks.alkia_brick;

import com.PSmithgamer.Alkia.blocks.mango_leaf;

import com.PSmithgamer.Alkia.blocks.mango_leaves;

import com.PSmithgamer.Alkia.blocks.mango_wood;

import com.PSmithgamer.Alkia.blocks.sodalite_ore;

import com.PSmithgamer.Alkia.blocks.table;

import com.PSmithgamer.Alkia.blocks.test_block;

 

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

import net.minecraft.client.Minecraft;

import net.minecraft.client.resources.model.ModelResourceLocation;

import net.minecraft.item.Item;

import net.minecraftforge.fml.common.registry.GameRegistry;

 

public class AlkiaBlocks {

 

public static Block test_block;

public static Block alkia_brick;

public static Block sodalite_ore;

public static Block table;

public static Block mango_wood;

public static Block mango_leaf;

public static Block mango_leaves;

 

public static void init() {

test_block = new test_block(Material.rock).setUnlocalizedName("test_block").setCreativeTab(AlkiaMod.tabAlkia).setLightLevel(3);

alkia_brick = new alkia_brick(Material.rock).setUnlocalizedName("alkia_brick").setCreativeTab(AlkiaMod.tabAlkia).setLightLevel((float) 0.7);

sodalite_ore = new sodalite_ore(Material.rock).setUnlocalizedName("sodalite_ore").setCreativeTab(AlkiaMod.tabAlkia).setLightLevel((float) 0.5);

table = new table(Material.wood).setUnlocalizedName("table").setCreativeTab(AlkiaMod.tabAlkia);

mango_wood = new mango_wood(Material.wood).setUnlocalizedName("mango_wood").setCreativeTab(AlkiaMod.tabAlkia);

mango_leaf = new mango_leaf(Material.leaves).setUnlocalizedName("mango_leaf").setCreativeTab(AlkiaMod.tabAlkia);

mango_leaves = new mango_leaves(Material.wood).setUnlocalizedName("mango_leaves").setCreativeTab(AlkiaMod.tabAlkia);

 

}

 

public static void register() {

GameRegistry.registerBlock(test_block,test_block.getUnlocalizedName().substring(5));

GameRegistry.registerBlock(alkia_brick, alkia_brick.getUnlocalizedName().substring(5));

GameRegistry.registerBlock(sodalite_ore, sodalite_ore.getUnlocalizedName().substring(5));

GameRegistry.registerBlock(table, table.getUnlocalizedName().substring(5));

GameRegistry.registerBlock(mango_wood, mango_wood.getUnlocalizedName().substring(5));

GameRegistry.registerBlock(mango_leaf, mango_leaf.getLocalizedName().substring(5));

GameRegistry.registerBlock(mango_leaves, mango_leaves.getLocalizedName().substring(5));

}

 

public static void registerRenders() {

registerRender(test_block);

registerRender(alkia_brick);

registerRender(sodalite_ore);

registerRender(table);

registerRender(mango_wood);

registerRender(mango_leaf);

registerRender(mango_leaves);

}

 

public static void registerRender(Block block) {

Item item = Item.getItemFromBlock(block);

Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, 0, new ModelResourceLocation(

Reference.MOD_ID + ":" + item.getUnlocalizedName().substring(5), "inventory"));

}

}

 

Mango leaf

 

package com.PSmithgamer.Alkia.blocks;

 

import java.util.Random;

import java.lang.Override;

import java.util.Iterator;

 

import com.PSmithgamer.Alkia.init.AlkiaBlocks;

import com.PSmithgamer.Alkia.init.AlkiaItems;

 

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

import net.minecraft.block.state.IBlockState;

import net.minecraft.item.Item;

import net.minecraft.item.ItemStack;

import net.minecraft.util.BlockPos;

import net.minecraft.util.EnumWorldBlockLayer;

import net.minecraft.world.World;

 

public class mango_leaf extends Block{

 

public mango_leaf(Material materialIn) {

super(materialIn);

this.setStepSound(soundTypeGrass);

this.setHardness((float) 0.5);

this.setHarvestLevel("shears", 1);

Random rand = new Random();

int value = rand.nextInt(1)+1;

//this.getItemDropped(null, rand, 1);

}

 

@Override

public Item getItemDropped(IBlockState state, Random rand, int fortune) {

return AlkiaItems.Mango;

}

 

public int getRenderType() {

  return 3;

}

 

}

 

Mango_leaf blockstate

 

{

    "variants": {

        "normal": {"model": "am:mango_leaf"}

    }

}

 

Mango_leaf model block

 

{

    "parent": "block/cube_all",

    "textures": {

        "all": "am:blocks/mango_leaf"

    }

}

 

Mango_leaf model item

 

{

    "parent": "am:block/mango_leaf",

    "display": {

        "thirdperson": {

            "rotation": [ 10, -45, 170 ],

            "translation": [ 0, 1.5, -2.75 ],

            "scale": [ 0.375, 0.375, 0.375 ]

        }

    }

}

 

 

Mango_leaves

 

package com.PSmithgamer.Alkia.blocks;

 

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

 

public class mango_leaves extends Block{

 

public mango_leaves(Material materialIn) {

super(materialIn);

net.minecraft.block.BlockLeaves;

}

 

Mango_leaves blockstate

 

{

    "variants": {

        "normal": {"model": "am:mango_leaves"}

    }

}

 

Mango_leaves block

 

{

    "parent": "block/cube_all",

    "textures": {

        "all": "am:blocks/mango_leaves"

    }

}

 

Mango_leaves item

 

{

    "parent": "am:block/mango_leaves",

    "display": {

        "thirdperson": {

            "rotation": [ 10, -45, 170 ],

            "translation": [ 0, 1.5, -2.75 ],

            "scale": [ 0.375, 0.375, 0.375 ]

        }

    }

}

 

 

Files

 

vuNTpfS.png

xhzFxNZ.png

5zK6hl0.png

 

Link to comment
Share on other sites

https://gist.github.com/anonymous/276a65cde513b280780b

 

There are four errors showing up in the log (8 but they repeat twice each).

 

[16:06:56] [Client thread/ERROR] [FML]: Model definition for location am:mango_leaves.name#normal not found

[16:06:56] [Client thread/ERROR] [FML]: Model definition for location am: leaves#normal not found

[16:06:56] [Client thread/ERROR] [FML]: Model definition for location am: leaves#inventory not found

[16:06:56] [Client thread/ERROR] [FML]: Model definition for location am:mango_leaves.name#inventory not found

 

Link to comment
Share on other sites

The issue is that you're using the localised name instead of the unlocalised name to register

mango_leaf

and

mango_leaves

with

GameRegistry

. Since you haven't localised these names, it's using the unlocalised name with the

.name

suffix.

 

If all of your blocks are going to be registered using their unlocalised name, I'd recommend making a method that takes a

Block

argument and registers it using its unlocalised name so you don't need to write the same code over and over.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Another Minecraft Launcher https://multimc.org/#Download or https://atlauncher.com/downloads
    • Remove these mods and combine OptiFine HD U I6 with Forge 47.2.18 Start with Optifine - without any other mods - if this works, add the mods one by one or in groups until you find the mod, conflicting with Optifine
    • Ok yeah I think this might be where the problem starts. For starters, I think you can get rid of your RecipeType impl and make it a static constant instead. I'm not 100% sure this will fix it but it's posssible. RuneInscribingRecipe public class RuneInscribingRecipe implements Recipe<SimpleContainer> { public static final RecipeType<RuneInscribingRecipe> RECIPE_TYPE = new RecipeType<>(){}; // .... @Override public RecipeType<?> getType() { return RECIPE_TYPE; } // .... } RuneInscriberMenu private Optional<RecipeHolder<RuneInscribingRecipe>> getCurrentRecipe() { SimpleContainer inventory = new SimpleContainer(2); inventory.setItem(BASE_INPUT_SLOT, this.inventory.getStackInSlot(BASE_INPUT_SLOT)); inventory.setItem(TEMPLATE_INPUT_SLOT, this.inventory.getStackInSlot(TEMPLATE_INPUT_SLOT)); List<RecipeHolder<RuneInscribingRecipe>> list = this.blockEntity.getLevel().getRecipeManager().getRecipesFor(RuneInscribingRecipe.RECIPE_TYPE, inventory, this.blockEntity.getLevel()); if (list.isEmpty()) { return Optional.empty(); } return Optional.of(list.get(0)); }   Also, this here is a little suspicious where you're getting the `this.inventory.getStackInSlot` calls. I'd try and make sure those are what you expect they are with either a Debug line in IDE or print statement SimpleContainer inventory = new SimpleContainer(2); inventory.setItem(BASE_INPUT_SLOT, this.inventory.getStackInSlot(BASE_INPUT_SLOT)); System.out.printf("CHECKING BASE INPUT OF RECIPE: %s\n", this.inventory.getStackInSlot(BASE_INPUT_SLOT)); inventory.setItem(TEMPLATE_INPUT_SLOT, this.inventory.getStackInSlot(TEMPLATE_INPUT_SLOT)); System.out.printf("CHECKING TEMPLATE INPUT OF RECIPE: %s\n", this.inventory.getStackInSlot(TEMPLATE_INPUT_SLOT)); ^ See what the result of those print statements are, make sure they're right
    • Upon testing again after adding them, the game still doesn't crash however the resource packs are still unfortunately broken.
    • Hi! Can someone please point me to the correct FAQ or place? I'm not able do DuckDuckGo myself out of this one. As you can hopefully see, chunks are not rendered. I run a forge server, fresh install on a linux VM. Curseforge on the Win11 client with Embeddium, Oculus and Unbound shader. No mods. Forge 47.2.23 on server & client.  No errors, no crashes, no apparent CPU or RAM issues with the VM. This screenshot was captured while creative, but the same happens when flying in survival. Waiting (floating) for a few minutes sooner or (often) later, lets the missing chunks appear. Usually takes 5-10 minutes.  When on a local game, the chunks appear slowly, but they do appear without pause.   This must be something simple, obvious, but I can't find the correct "search words" to find my way out. "Chunks not loading / rendering" didn't help. Browsing several forums neither. 
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.