Jump to content

Recommended Posts

Posted

I have a Problem with my crops, they have the missing-texture texture and i cant find my mistake.

 

Main:

package io.github.dommihd.blazecraft;

import io.github.dommihd.blazecraft.blocks.BlazeBlocks;
import io.github.dommihd.blazecraft.items.BlazeItems;
import io.github.dommihd.blazecraft.proxy.CommonProxy;
import io.github.dommihd.blazecraft.recepies.BlazeCrafting;
import io.github.dommihd.blazecraft.recepies.BlazeSmelting;
import net.minecraft.init.Blocks;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;

@Mod(modid = Blazecraft.MODID, version = Blazecraft.VERSION, name = Blazecraft.NAME)
public class Blazecraft
{
    public static final String MODID = "blazecraft";
    public static final String VERSION = "0.1";
    public static final String NAME = "Blazecraft";
  
    @Instance(MODID)
public static Blazecraft instance = new Blazecraft();
    
@SidedProxy(modId = MODID, serverSide = "io.github.dommihd.blazecraft.proxy.CommonProxy", clientSide = "io.github.dommihd.blazecraft.proxy.ClientProxy")
public static CommonProxy proxy = new CommonProxy();

public BlazeItems items;
public BlazeBlocks blocks;
public BlazeTab tab;
public BlazeCrafting craft;
public BlazeSmelting smelt;

@EventHandler
public void preInit(FMLPreInitializationEvent event){
	tab = new BlazeTab();

	items = new BlazeItems();
	items.init();
	items.register();

	blocks = new BlazeBlocks();
	blocks.init();
	blocks.register();
}
@EventHandler
public void load(FMLInitializationEvent event){
	craft = new BlazeCrafting();
	craft.register();

	smelt = new BlazeSmelting();
	smelt.register();
}
@EventHandler
public void postInit(FMLPostInitializationEvent event){
	proxy.registerModels();
}
}

 

Client Proxy:

package io.github.dommihd.blazecraft.proxy;

import io.github.dommihd.blazecraft.Blazecraft;
import io.github.dommihd.blazecraft.blocks.BlazeBlocks;
import io.github.dommihd.blazecraft.items.BlazeItems;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.ItemSeeds;

public class ClientProxy extends CommonProxy {


public void registerModels() {
	//items
	registerModel(BlazeItems.testitem, 0, new ModelResourceLocation(BlazeItems.testitem.getRegistryName(),"inventory"));
	registerModel(BlazeItems.emberorchidSeeds, 0, new ModelResourceLocation(BlazeItems.emberorchidSeeds.getRegistryName(),"inventory"));
	//blocks
	registerModel(BlazeBlocks.testblock, 0, new ModelResourceLocation(BlazeBlocks.testblock.getRegistryName(),"inventory"));
	registerModel(BlazeBlocks.emberorchid, 0, new ModelResourceLocation(BlazeBlocks.emberorchid.getRegistryName(),"inventory"));
}

private void registerModel(Object obj, int meta, ModelResourceLocation loc){
	Item item = null;
	if (obj instanceof Item){
		item = (Item) obj;
	}else if (obj instanceof ItemSeeds){
		item = (ItemSeeds) obj;

	} else if (obj instanceof Block){
		item = Item.getItemFromBlock((Block) obj);

	}else{
		throw new IllegalArgumentException();
	} 
	Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, loc);
}

}

Name Utils:

package io.github.dommihd.blazecraft;

import net.minecraft.block.Block;
import net.minecraft.item.Item;

public class NameUtils {

public static void setNames(Object obj,String name){
	if(obj instanceof Item){
		((Item)obj).setRegistryName(name).setUnlocalizedName(name);
	} else if(obj instanceof Block){
		((Block)obj).setRegistryName(name).setUnlocalizedName(name);
	}else{
		throw new IllegalArgumentException();
	}
}

}

Blocks Class:

package io.github.dommihd.blazecraft.blocks;

import io.github.dommihd.blazecraft.Blazecraft;
import io.github.dommihd.blazecraft.NameUtils;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class BlazeBlocks {

public static Block testblock;
public static Block emberorchid;

public void init(){
	testblock = new BlockTest().setCreativeTab(Blazecraft.instance.tab);
	NameUtils.setNames(testblock, "testblock");
	emberorchid = new EmberOrchid();
	NameUtils.setNames(emberorchid, "emberorchid");
}

public void register(){
	registerBlock(testblock);
	registeremberBlock(emberorchid);
}

private void registerBlock(Block block){
	GameRegistry.register(block);
	ItemBlock itemblock = new ItemBlock(block);
	itemblock.setUnlocalizedName(block.getUnlocalizedName()).setRegistryName(block.getRegistryName());
	GameRegistry.register(itemblock);
}
private void registeremberBlock(Block block){
	GameRegistry.register(block);
}
}

Block Crops

package io.github.dommihd.blazecraft.blocks;

import io.github.dommihd.blazecraft.items.BlazeItems;
import net.minecraft.block.BlockCrops;
import net.minecraft.init.Items;
import net.minecraft.item.Item;

public class EmberOrchid extends BlockCrops{

@Override
protected Item getSeed(){

	return BlazeItems.emberorchidSeeds;

}

@Override
protected Item getCrop() {

	return Items.BLAZE_POWDER;
}

}

blockstates:

{
    "variants": {
        "age=0": { "model": "blazecraft:eo_stage0" },
        "age=1": { "model": "blazecraft:eo_stage1" },
        "age=2": { "model": "blazecraft:eo_stage2" },
        "age=3": { "model": "blazecraft:eo_stage3" },
        "age=4": { "model": "blazecraft:eo_stage4" },
        "age=5": { "model": "blazecraft:eo_stage5" },
        "age=6": { "model": "blazecraft:eo_stage6" },
        "age=7": { "model": "blazecraft:eo_stage7" }
    }
}

block models exaple:

{
    "parent": "block/crop",
    "textures": {
        "crop": "blazecraft:blocks/eo_stage0"
    }
}

texture names: eo_stage0.png, eo_stage1.png, ...

Posted

Your blockstate is wrong.  You're telling Minecraft to look for a model that doesn't exist.

You should instead override the texture, like so:

 

https://github.com/Draco18s/ReasonableRealism/blob/master/src/main/resources/assets/harderores/blockstates/hardiron.json

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

I have the same problem : No texture and no error for my item:

 

the main class:

 

  Reveal hidden contents

 

 

the references class:

 

  Reveal hidden contents

 

 

the ModItems class:

 

 

  Reveal hidden contents

 

 

the ItemCheese class:

 

  Reveal hidden contents

 

the item model ItemCheese.json:

 

  Reveal hidden contents

 

 

and the texture is called ItemCheese.png

Posted
  On 10/2/2016 at 12:43 AM, Animefan8888 said:

When dealing with resources do not use capital letters.

 

I watched a video tutorial where the person use capital letters in his resources.

The example worked fine.

But hey i tried it out and changed everything lower case and guess what?

No errors and still no textures.

 

I also saw a little mistake done by me.

I did put proxy.init(); in the postinit instead of the init method.

That didn't fixed it either, so must be something else...

Posted

i found out that all the textures and sounds works if i place the itemblock of the emberorchid , but i i try to place the seeds thers no sound and the missing-texture texture. This makes no sense ;D

Posted

@_Dommi_

Show your ItemSeed class. If the crop-block is placed just fine, then something is likely wrong with your seed.

I have a working ItemSeed implementation here that you can take a look at.

 

 

@winnetrie

1) Mojang will be enforcing lowercase soon for resources, I've heard. It's good practice to follow what will come, and not having to redo all work when updating etc.

2) (Depending on your OS (Windows falls under here)) The dev-environment will ignore lower/uppercase mismatches, and show you the resource for supermod:SuPeRbLoCk == supermod:superblock. This means that if your resources are typed with different cases, they will still show as expected. However, when compiled into a .jar (really just a .zip file with different name) it cannot do this anymore, leading to SuPeRbLoCk =! superblock. It's a pain in the proverbial behind to find all these issues with the naked eye.

3) I don't see you calling ModItems.registerRenders. This has to be done in preInit, in the clientproxy.

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

Posted

i changed it, but still no textures and no error:

@Mod (modid = References.MOD_ID, name = References.NAME, version = References.VERSION,
      acceptedMinecraftVersions = References.ACCEPTED_VERSIONS)

public class Tem {

@SidedProxy(serverSide= References.CLIENT_PROXY_CLASS, clientSide = References.SERVER_PROXY_CLASS)
public static CommonProxy proxy;


@Instance
public static Tem instance;

@EventHandler
public void preInit (FMLPreInitializationEvent event) {
	proxy.init();
	ModItems.init();
	ModItems.register();



}
@EventHandler
public void init (FMLInitializationEvent event){




}
@EventHandler
public void postInit(FMLPostInitializationEvent event){



}

}

 

I also did it exactly as in the tutorial. In the tutorial they do it in the Init and not preInit

Posted

My seed class:

public class EmberOrchidSeeds extends ItemSeeds{

public EmberOrchidSeeds(){
	super(BlazeBlocks.eo, Blocks.DIRT);
	this.setCreativeTab(Blazecraft.instance.tab);
	this.soilBlockID = Blocks.DIRT;
}
}

 

Posted

@_Dommi_

You need to override

onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)

in your seed class.

You can see how my itemseeds do so in my previous post.

 

 

@Winnetrie

You... What are.... how...

What?

You are calling your proxy's init, from preInit... That is not what I told you to do.

In your main's preInit, call proxy.preInit().

In your clientProxy's preInit, call ModItems.registerRenders

 

  On 10/2/2016 at 12:08 PM, winnetrie said:

i changed it, but still no textures and no error:

 

I also did it exactly as in the tutorial. In the tutorial they do it in the Init and not preInit

ModelLoader HAS to be registered in preInit. If you use Minecraft::getItemModelMesher, then yes, you register in init, but that is buggy as heck, which is why Forge had to add ModelLoader as a better alternative.

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

Posted
  On 9/30/2016 at 4:55 PM, diesieben07 said:

What is it with this trend to put everything inside the proxy classes? That defeats their purpose...

 

Not to mention that your client proxy then calls ModItems, which is common code, further defeating the purpose of proxies.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

now the game crashed ^^ : http://pastebin.com/yE0Nw1jB

 

Seeds:

package io.github.dommihd.blazecraft.items;

import io.github.dommihd.blazecraft.Blazecraft;
import io.github.dommihd.blazecraft.blocks.BlazeBlocks;
import io.github.dommihd.blazecraft.blocks.EmberOrchid;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemSeeds;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;

public class EmberOrchidSeeds extends ItemSeeds{

    private static EmberOrchid crops;
    private static Block soilBlockID;

public EmberOrchidSeeds(){
	super(BlazeBlocks.eo, Blocks.DIRT);
	this.setCreativeTab(Blazecraft.instance.tab);
	this.soilBlockID = Blocks.DIRT;
}


@Override
    public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
    {
        net.minecraft.block.state.IBlockState state = worldIn.getBlockState(pos);
        if (facing == EnumFacing.UP && playerIn.canPlayerEdit(pos.offset(facing), facing, stack) && worldIn.isAirBlock(pos.up()) && this.crops.canSustainBush(state))
        {
            worldIn.setBlockState(pos.up(), this.crops.getDefaultState());
            --stack.stackSize;
            return EnumActionResult.SUCCESS;
        }
        else
        {
            return EnumActionResult.FAIL;
        }
}

}

 

package io.github.dommihd.blazecraft.blocks;

import java.util.Random;

import io.github.dommihd.blazecraft.items.BlazeItems;
import net.minecraft.block.BlockCrops;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class EmberOrchid extends BlockCrops{




@Override
protected Item getSeed(){

	return BlazeItems.emberorchidSeeds;

}

@Override
protected Item getCrop() {

	return Items.BLAZE_POWDER;
}	
  @Override
    public boolean canSustainBush(IBlockState state){
    	if(state.getBlock() == Blocks.DIRT ||state.getBlock() == Blocks.GRASS || state.getBlock() == Blocks.SAND)
    		return true;
    	
        return false;
}
}

Posted
  On 10/2/2016 at 1:46 PM, Matryoshika said:

@Winnetrie

You... What are.... how...

What?

You are calling your proxy's init, from preInit... That is not what I told you to do.

In your main's preInit, call proxy.preInit().

In your clientProxy's preInit, call ModItems.registerRenders

 

I'm really confused now. I don't understand what you mean!

Maybe take a look at this tutorial:

 

I did exactly like this and it works for him, why not for me?

Posted

net.minecraft.block.state.IBlockState state

?  Really?

Couldn't be arsed to import that?

 

As for the crash...

Caused by: java.lang.NullPointerException
    at io.github.dommihd.blazecraft.items.EmberOrchidSeeds.onItemUse(EmberOrchidSeeds.java:33) ~[EmberOrchidSeeds.class:?]

 

Go to EmberOrchidSeeds line 33.  Find the thing that is null, it is very easy.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

I checked something and it appears that this is never been called:

 

public class ClientProxy implements CommonProxy{

@Override
public void init() {

	ModItems.registerRenders();
	System.out.println("renders have been registered");

}	

}

I added the System.out.println("renders have been registered"); to check, but i can't see the message.

So i guess it isn't called but why?

 

Also if i name the method init or preInit or whatever name you can imagine, it's just a name. Does it really matter how i name it?

Like i said before i watch the tutorial video (wich is a working example) and checked every step again and again.

Posted
  On 10/2/2016 at 2:52 PM, winnetrie said:

So i guess it isn't called but why?

Because you never call the method...

 

  Quote

Also if i name the method init or preInit or whatever name you can imagine, it's just a name. Does it really matter how i name it?

Like i said before i watch the tutorial video (wich is a working example) and checked every step again and again.

You can name your methods whatever you want, just be sure to name them something logical.

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/

Posted

@_Dommi_

I didn't mean for you to copy/paste directly from my github.

 

Your crop creates blaze-powder, no? Then I assume you want it to only grow on soulsand. Use that instead of grass|dirt|sand.

 

The nullpointer occurs here:

if (facing == EnumFacing.UP && playerIn.canPlayerEdit(pos.offset(facing), facing, stack) && worldIn.isAirBlock(pos.up()) && this.crops.canSustainBush(state))

Something here, is called, when it does not exist.

You could just simply have if-checks before hand and check if they are null, System.out.print(variable + " is null") and return the method. Then you know what is wrong.

 

  On 10/2/2016 at 2:29 PM, Draco18s said:

net.minecraft.block.state.IBlockState state

?  Really?

Couldn't be arsed to import that?

=_= That's on me, actually. Copied from the github. Lesson learnt: don't code stuff when sick.

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

Posted
  On 10/2/2016 at 3:18 PM, larsgerrits said:

Because you never call the method...

 

Am i not doing that here?:

 

  Reveal hidden contents

 

 

the proxy.init() ?

 

Posted

ok private static EmberOrchid crops; was null and i fixed it and the seeds can now only placed on soul sand, but theres no sound and no texture  :-\ :'(

 

package io.github.dommihd.blazecraft.items;

import io.github.dommihd.blazecraft.Blazecraft;
import io.github.dommihd.blazecraft.blocks.BlazeBlocks;
import io.github.dommihd.blazecraft.blocks.EmberOrchid;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemSeeds;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;

public class EmberOrchidSeeds extends ItemSeeds{

    private static EmberOrchid crops= new EmberOrchid();
    private static Block soilBlockID;

public EmberOrchidSeeds(){
	super(BlazeBlocks.eo, Blocks.SOUL_SAND);
	this.setCreativeTab(Blazecraft.instance.tab);
	this.soilBlockID = Blocks.SOUL_SAND;
}


@Override
    public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
    {
        net.minecraft.block.state.IBlockState state = worldIn.getBlockState(pos);
        if(state!=null&&facing!=null&&pos!=null&&stack!=null&&worldIn!=null&&playerIn!=null&&crops!=null){
        	System.out.println("hi");
        if (facing == EnumFacing.UP && playerIn.canPlayerEdit(pos.offset(facing), facing, stack) && worldIn.isAirBlock(pos.up())&& this.crops.canSustainBush(state))
        {
        	System.out.println("hi2");
            worldIn.setBlockState(pos.up(),this.crops.getDefaultState());
            --stack.stackSize;
            return EnumActionResult.SUCCESS;
        }
        else
        {
            return EnumActionResult.FAIL;
        }
        }else  return EnumActionResult.FAIL;
}

}

Posted

Itemseeds class:

package io.github.dommihd.blazecraft.items;

import io.github.dommihd.blazecraft.Blazecraft;
import io.github.dommihd.blazecraft.blocks.BlazeBlocks;
import io.github.dommihd.blazecraft.blocks.EmberOrchid;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemSeeds;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumActionResult;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;

public class EmberOrchidSeeds extends ItemSeeds{

    private static EmberOrchid crops= new EmberOrchid();
    private static Block soilBlockID;

public EmberOrchidSeeds(){
	super(BlazeBlocks.eo, Blocks.SOUL_SAND);
	this.setCreativeTab(Blazecraft.instance.tab);
	this.soilBlockID = Blocks.SOUL_SAND;
}


@Override
    public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
    {
        net.minecraft.block.state.IBlockState state = worldIn.getBlockState(pos);
        if(state!=null&&facing!=null&&pos!=null&&stack!=null&&worldIn!=null&&playerIn!=null&&crops!=null){
        if (facing == EnumFacing.UP && playerIn.canPlayerEdit(pos.offset(facing), facing, stack) && worldIn.isAirBlock(pos.up())&& this.crops.canSustainBush(state))
        {
            worldIn.setBlockState(pos.up(),this.crops.getDefaultState());
            --stack.stackSize;
            return EnumActionResult.SUCCESS;
        }
        else
        {
            return EnumActionResult.FAIL;
        }
        }else  return EnumActionResult.FAIL;
}

}

Block crops:

package io.github.dommihd.blazecraft.blocks;

import java.util.Random;

import io.github.dommihd.blazecraft.items.BlazeItems;
import net.minecraft.block.BlockCrops;
import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class EmberOrchid extends BlockCrops{




@Override
protected Item getSeed(){

	return BlazeItems.emberorchidSeeds;

}

@Override
protected Item getCrop() {

	return Items.BLAZE_POWDER;
}	
  @Override
    public boolean canSustainBush(IBlockState state){
    	if(state.getBlock() == Blocks.SOUL_SAND){
    		return true;
    	}else{
        return false;
    	}
}
}

 

package io.github.dommihd.blazecraft.items;

import io.github.dommihd.blazecraft.Blazecraft;
import io.github.dommihd.blazecraft.NameUtils;
import io.github.dommihd.blazecraft.blocks.BlazeBlocks;
import io.github.dommihd.blazecraft.blocks.EmberOrchid;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemSeeds;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class BlazeItems {

public static Item testitem;
public static EmberOrchidSeeds emberorchidSeeds =new EmberOrchidSeeds();

public void init(){
	testitem = new ItemTest().setCreativeTab(Blazecraft.instance.tab);
	NameUtils.setNames(testitem, "testitem");
	emberorchidSeeds = new EmberOrchidSeeds();
	NameUtils.setNames(emberorchidSeeds, "emberorchidSeeds");
}

public void register(){
	registerItem(testitem);
	registerItemSeeds(emberorchidSeeds);
}

private void registerItem(Item item){
	GameRegistry.register(item);
}

private void registerItemSeeds(ItemSeeds item){
	GameRegistry.register(item);
}
}

package io.github.dommihd.blazecraft.blocks;

import io.github.dommihd.blazecraft.Blazecraft;
import io.github.dommihd.blazecraft.NameUtils;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class BlazeBlocks {

public static Block testblock;
public static EmberOrchid eo = new EmberOrchid();

public void init(){
	testblock = new BlockTest().setCreativeTab(Blazecraft.instance.tab);
	NameUtils.setNames(testblock, "testblock");
	eo = new EmberOrchid();
	NameUtils.setNames(eo, "eo");
}

public void register(){
	registerBlock(testblock);
	registerBlock(eo);
}

private void registerBlock(Block block){
	GameRegistry.register(block);
	ItemBlock itemblock = new ItemBlock(block);
	itemblock.setUnlocalizedName(block.getUnlocalizedName()).setRegistryName(block.getRegistryName());
	GameRegistry.register(itemblock);
}
private void registeremberBlock(Block block){
	GameRegistry.register(block);
	//Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(block),0, new ModelResourceLocation("blazecraft:eo","inventory"));
}
}

Client Proxy:

package io.github.dommihd.blazecraft.proxy;

import io.github.dommihd.blazecraft.Blazecraft;
import io.github.dommihd.blazecraft.blocks.BlazeBlocks;
import io.github.dommihd.blazecraft.items.BlazeItems;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.ItemSeeds;

public class ClientProxy extends CommonProxy {


public void registerModels() {
	//items
	registerModel(BlazeItems.testitem, 0, new ModelResourceLocation(BlazeItems.testitem.getRegistryName(),"inventory"));
	registerModel(BlazeItems.emberorchidSeeds, 0, new ModelResourceLocation(BlazeItems.emberorchidSeeds.getRegistryName(),"inventory"));
	//blocks
	registerModel(BlazeBlocks.testblock, 0, new ModelResourceLocation(BlazeBlocks.testblock.getRegistryName(),"inventory"));
	registerModel(BlazeBlocks.eo, 0, new ModelResourceLocation(BlazeBlocks.eo.getRegistryName(),"inventory"));
}

private void registerModel(Object obj, int meta, ModelResourceLocation loc){
	Item item = null;
	System.out.println(obj);
	if (obj instanceof Item){
		item = (Item) obj;
		System.out.println(item);
	}else if (obj instanceof ItemSeeds){
		item = (ItemSeeds) obj;
		System.out.println(item);
	} else if (obj instanceof Block){
		item = Item.getItemFromBlock((Block) obj);
		System.out.println(item);
	}else{
		throw new IllegalArgumentException();

	} 
	Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(item, meta, loc);
}

}

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

    • ddddddddddddddddd
    • Temu Coupon Code $100 Off [acu729640] First-Time User  Looking for unbeatable savings on your first Temu purchase? You’re in the right place. The Temu Coupon Code $100 Off [acu729640] is the perfect way to start shopping smart. Whether you’re buying trendy fashion, home essentials, or tech gadgets, this offer ensures you save big from day one.   Why Use the Temu Coupon Code (acu729640)? Instant $100 Discount – Slash $100 off your first order with no hidden requirements.   Extra 40% Off on Select Items – Combine your coupon with existing offers for maximum savings.   Free Gifts for New Users – Many first-time buyers receive bonus items at checkout.   $100 Coupon Bundle – Enjoy more savings on future purchases as both new and existing customers can access this deal.   How to Redeem Your $100 Off Coupon Code Visit Temu’s Official Website or App – Access the latest product catalog.   Browse and Add to Cart – Select items you want and place them in your shopping cart.   Proceed to Checkout – Click on the cart icon to review your order.   Enter Coupon Code – In the “Coupon Code” field, type acu729640.   Apply and Save – Watch your total instantly drop by $100.   Complete Your Purchase – Enter your shipping details and payment method to finalize the deal.   Exclusive August 2025 Promotions USA-Only Offer – First-time buyers in the United States get an exclusive $100 off with code acu729640.   Special New User Coupons – Additional promotional codes may be available this month for extra savings.   Pro Tips to Maximize Your Temu Savings Subscribe to the Newsletter – Receive alerts on flash sales, seasonal discounts, and exclusive codes.   Use Smart Filters – Quickly find the best deals on exactly what you’re looking for.   Check Daily Deals – Grab high-demand products at heavily discounted prices.   Read Reviews Before Buying – Learn from other customers to make confident purchase decisions.   Final Takeaway The Temu Coupon Code $100 Off [acu729640] is more than just a discount—it’s your ticket to premium shopping at budget-friendly prices. Combine it with ongoing promotions, explore the daily deals section, and enjoy free gifts as a first-time buyer. From fashion to home décor, Temu delivers exceptional value on every purchase. Start saving today — visit Temu and use your $100 off code before the offer expires.
    • Giriş E-ticaret platformlarında indirim kodları kullanmak, alışveriş deneyimini daha uygun hale getiriyor. Temu Kupon Kodu "(acr639380)" 100TL kapalı kampanyası, özellikle 2025 yılında, tüm kullanıcıları için inanılmaz bir fırsat sunuyor. Bu fırsat sayesinde, özellikle "(acr639380)" kodunu kullanarak maksimum fayda sağlayabilirsiniz. Bu kod, hem yeni hem de mevcut müşteriler için büyük bir avantaj. 2025 yılında "Temu Kupon Kodu" (acr639380) ile "Temu 100TL indirim kuponu" kazancınızı en üst seviyeye çıkarabilirsiniz. Bu yazıda, bu fırsatların detaylarını inceleyeceğiz. Temu Kupon Kodu "(acr639380)" 100TL İndirim Nedir? Hem yeni hem de mevcut müşteriler için özel olarak tasarlanan "Temu kuponu "(acr639380)" 100TL indirim", her alışverişte ciddi tasarruflar sağlama imkânı sunuyor. Şu avantajlardan faydalanabilirsiniz: "(acr639380)" kodu ile yeni kullanıcılara 100TL indirim. Mevcut müşterilere "(acr639380)" kodu ile 100TL indirim. Birden fazla kullanım için 100TL kupon paketi. Yeni müşterilere 100TL ekstra indirim. "(acr639380)" koduyla, "100TL indirim Temu kuponu" kullanarak özel promosyonlar. Temu Kupon Kodu "(acr639380)" Yeni Kullanıcılar için 100TL İndirim Yeni kullanıcılar, Temu platformunda ilk siparişlerinde büyük avantajlar elde edebilirler. "Mevcut kullanıcılar için 100TL indirim kuponu" ve diğer fırsatları da "(acr639380)" kodu ile yakalayabilirsiniz: Yeni kullanıcılara "(acr639380)" kodu ile 100TL indirim. Yeni müşterilere özel 100TL kupon paketi. Birden fazla kullanım için "(acr639380)" ile 100TL kupon avantajı. "Türkiye'ye üretsiz kargo" ile özel teslimat. İlk kez kullananlara herhangi bir alışverişte ekstra 100TL indirim. Temu 100TL İndirim Kupon Kodu "(acr639380)" Yeni Müşteriler için Nasıl Kullanılır? "Temu 100TL indirim" kuponunu kullanmak oldukça kolay ve hızlıdır. Aşağıdaki adımları takip ederek bu fırsattan hemen yararlanabilirsiniz: Temu uygulamasını veya web sitesini açın. Üye kaydı oluşturun veya mevcut hesabınıza giriş yapın. Alışveriş sepetinizi oluşturun. "(acr639380)" kodunu ödeme sayfasında girin. "Temu 100TL kupon kodu" ile anında indirim kazandınız! Temu Kupon Kodu "(acr639380)" Mevcut Kullanıcılar için 100TL İndirim "Mevcut müşteriler için Temu 100TL kupon kodu", sadık kullanıcılarımız için harika bir şekilde tasarlandı. Şu avantajlardan faydalanabilirsiniz: "(acr639380)" kodu ile mevcut Temu kullanıcılarına 100TL ekstra indirim. Birden fazla alışveriş için 100TL kupon paketi. Türkiye’nin her yerine ekspres kargo ile üretsiz hediye. "(acr639380)" kodu ile ekstra 100TL indirim. Mevcut indirimlere ek olarak %70’e varan tasarruf fırsatları. Mevcut Müşteriler için Temu Kupon Kodu "(acr639380)" 100TL İndirim Nasıl Kullanılır? "Mevcut kullanıcılar için Temu Kupon Kodu 100TL" şu adımlarla kullanılabilir: Temu hesabınıza giriş yapın. Alışverişinize özel ürünleri seçin. "(acr639380)" kodunu ödeme ekranında uygulayın. "Mevcut kullanıcılar için Temu indirim kodu" ile tasarrufun tadını çıkarın. Temu Kupon Kodu "(acr639380)" 100TL İndirim Nasıl Bulunur? Doğrulanmış ve çalışan kupon kodlarını bulmanın birkaç yolu vardır: Temu’nun resmi bültenine kaydolun ve "İlk siparişten 100TL indirimli Temu Kupon Kodu" fırsatlarını kaçırAugustın. Sosyal medya sayfalarından en son "100TL indirimli Temu kuponları" hakkında bilgi edinin. Güvenilir kupon sitelerini ziyaret ederek "(acr639380)" kodunu kolayca bulun. 100TL İndirim Kuponları Nasıl Çalışır? "Temu Kupon Kodu" (acr639380)" özellikle "İlk kez kullananlara 100TL indirim" sağlamak için tasarlanmıştır. Kod, alışveriş toplamınızdan otomatik olarak 100TL indirir ve anında tasarruf sağlar. Temu'da Yeni Müşteri Olarak 100TL İndirim Kuponu Nasıl Kazanılır? "Temu Kupon Kodu" (acr639380)" 100TL kapalı fırsatından faydalanmak için Temu’ya kaydolup, kodu ödeme ekranında kullanabilirsiniz. Bu kod, herhangi bir alışveriş için uygundur ve ekstra tasarruf sağlar. Temu 100TL İndirim Kuponlarını Kullanmanın Avantajları Nelerdir? "Temu 100TL kapalı Kupa Kodu" (acr639380)" ile şu avantajlardan yararlanabilirsiniz: İlk siparişte 100TL indirim. Birden fazla kullanım için 100TL kupon paketi. Popüler ürünlerde %70 indirim. Yeni kullanıcılara üretsiz hediye. Türkiye'ye üretsiz teslimat. Son Not Temu Kupon Kodu "(acr639380)" 100TL kapalı fırsatı, hem yeni hem de mevcut kullanıcılar için kaçırılmaz bir şans. Bu kampanya, alışveriş deneyiminizi daha uygun hale getirmek için tasarlandı. Temu 100TL indirim kuponu "(acr639380)", 2025 yılında düzenli olarak kullanabileceğiniz bir fırsattır. Detayları kaçırmadan bu fırsatı değerlendirin!
    • Giriş T e m u Kupon Kodu 3000TL kapalı, 2025 yılında tasarruflarınızı maksimize etmek için en iyi fırsatları sunuyor. Bu çekici kampanya, online alışverişte önemli bir avantaj sağlamaktadır. T e m u Kupon Kodu (acr639380), "Türkiye'deki insanlar için maksimum fayda" taahhüt eder. Yeni ve mevcut müşteriler bu kodu kullanarak çok çeşitli indirimlerden yararlanabilirler. T e m u Kupon Kodu "(acr639380)" mevcut müşteriler için 2025 kampanyası, herkese çarpıcı indirimler sunuyor. T e m u 3000TL indirim kuponu, "Türkiye" çapında özel tekliflerle doludur. T e m u Kupon Kodu "(acr639380)" 3000TL İndirim Nedir? Yeni ve mevcut müşteriler için T e m u Kuponu 3000TL indirim harika bir fırsat sunuyor. Bu kod, 3000TL indirim T e m u Kuponu sayesinde alışverişi daha uygun hale getiriyor. Avantajlar: Yeni kullanıcılar için (acr639380) koduyla 3000TL indirim. Mevcut kullanıcılar için (acr639380) ile ekstra 3000TL indirim. Çoklu kullanımlar için (acr639380) koduyla 3000TL kupon paketi. Yeni müşteriler için ilk siparişte (acr639380) ile ekstra 3000TL indirim. "Türkiye" için özel, (acr639380) ile bedava gönderim. T e m u Kupon Kodu "(acr639380)" 2025 Bu kupon kodunu kullanarak maksimum tasarruf elde edebilirsiniz. T e m u Kupon Kodu 3000TL [(acr639380)] - İndirim Kodu 2025 tekliflerinden yararlanın. Avantajlar: Yeni kullanıcılar için (acr639380) koduyla 3000TL kupon paketi. Birden fazla alışverişte (acr639380) ile 3000TL'ye kadar tasarruf. "Türkiye" için özel (acr639380) ile bedava gönderim. Tüm yeni müşteriler için ekstra 3000TL indirim. Herhangi bir üründe 3000TL'ye kadar tasarruf. T e m u 3000TL İndirim Kuponu "(acr639380)" Nasıl Kullanılır? T e m u 3000TL indirim kuponunu kullanmak kolaydır. İşte basit bir rehber: T e m u uygulamasını veya web sitesini ziyaret edin. Hesabınıza giriş yapın veya yeni bir hesap oluşturun. Alışverişinizi yapın ve sepetinizi oluşturun. "Kupon Kodu" alanına (acr639380) yazın. İndirim otomatik olarak uygulanacaktır. T e m u Kupon Kodu "(acr639380)" Mevcut Kullanıcılar için 3000TL İndirim Mevcut kullanıcılar da bu kupondan faydalanabilir. Mevcut müşteriler için T e m u 3000TL Kupon Kodu, "Türkiye" genelinde cazip indirimler sunuyor. Avantajlar: (acr639380) ile mevcut müşterilere ekstra 3000TL indirim. Birden fazla alışveriş için (acr639380) kupon paketi. "Türkiye" genelinde bedava kargo. Ekstra promosyonlarla tasarrufu maksimize edin. T e m u Kupon Kodu "(acr639380)" 3000TL İndirim Nasıl Bulunur? Doğrulanmış ve test edilmiş T e m u Kupon Kodu bulmak için: T e m u bültenine kaydolun. Sosyal medya sayfalarını takip edin. Güvenilir kupon sitelerini ziyaret edin. T e m u 3000TL İndirim Kuponları Nasıl Çalışır? T e m u Kupon Kodu "(acr639380)" ilk kez kullanana 3000TL indirim sağlar. Kod, sepetinizde otomatik olarak uygulanır. T e m u 3000TL İndirim Kuponlarını Kullanmanın Avantajları Nelerdir? Avantajlar: İlk siparişte 3000TL indirim. Birden fazla alışverişte 3000TL kupon paketi. Popüler ürünlerde %70'e varan indirim. Mevcut müşterilere ekstra 3000TL indirim. "Türkiye" genelinde özel bedava gönderim. Son Not T e m u Kupon Kodu "(acr639380)" 3000TL kapalı, 2025 yılında alışverişte büyük tasarruf sağlama şansı sunuyor. Kodunuzu kullanın ve alışverişinizi daha hesaplı hale getirin. T e m u 3000TL indirim kuponu (acr639380), hem yeni hem de mevcut kullanıcılar için idealdir. Hemen faydalanın!
    • Unlocking incredible savings on your favorite finds just got easier with the Temu coupon code (acr639380)! Whether you're a new or existing customer, this code, along with (acr639380), opens doors to amazing discounts. Let's dive into how you can maximize your savings and discover the fantastic world of Temu. Temu has quickly become a go-to destination for savvy shoppers seeking a vast selection of trendy products at unbeatable prices. From fashion and home goods to electronics and beauty essentials, Temu offers a huge collection of trending items. And with fast delivery and free shipping available in 67 countries, shopping from Temu is not only convenient but also budget-friendly. I'm excited to share how you can save even more with these exclusive Temu coupon codes. (acr639380): A flat 30% off for new users, making your first Temu purchase even more rewarding. (acr639380): Existing users can also enjoy 30% off, showing Temu's appreciation for loyal customers. (acr639380): Get up to 30% extra off on selected items, stacking your savings potential. (acr639380): New users can receive a free gift with their first purchase, adding a delightful surprise to your order. (acr639380): A 30% off coupon bundle for both new and existing users, providing a comprehensive discount solution. These Temu coupon codes offer a range of benefits, ensuring every shopper can find a way to save. Whether you're a first-time buyer eager to explore Temu's offerings or a returning customer looking for the best deals, these codes have you covered. I've found that using coupon codes is a great way to stretch my budget further and get more of what I love. Temu's commitment to providing value extends beyond just discounts. They frequently introduce new offers, making it easy to stay on top of the latest deals. I'm always impressed by the variety of products and the competitive pricing. It's like a treasure hunt finding amazing deals! Temu coupon code 30% off for USA (acr639380) Temu coupon code 30% off for Canada (acr639380) Temu coupon code 30% off for UK (acr639380) Temu coupon code 30% off for Japan (acr639380) Temu coupon code 30% off for Mexico (acr639380) Temu coupon code 30% off for Brazil (acr639380) These codes are valid in various regions, allowing shoppers worldwide to experience the Temu savings. Remember to check the terms and conditions for each code to ensure it applies to your specific location and purchase. I always make sure to double-check before I check out! Temu is constantly evolving, with new products and promotions regularly added. Keep an eye out for Temu new offers in 2025 and take advantage of the Temu promo code for 2025 and Temu discount code for 2025 as they become available. These opportunities to save make shopping even more enjoyable. Here are some additional tips for maximizing your savings on Temu: Combine coupon codes with sale items: Look for products already on sale and apply your Temu coupon code for an even greater discount. Take advantage of free shipping: Temu offers free shipping to many countries, so be sure to meet the minimum purchase requirement to save on shipping costs. Check for bundle deals: Sometimes, Temu offers bundle deals where you can purchase multiple items at a discounted price. These can be a great way to save if you need several items. Sign up for the Temu newsletter: Stay informed about the latest promotions and exclusive coupon codes by subscribing to the Temu newsletter. I've found that by combining these strategies, I can save a significant amount of money on my Temu purchases. It's like getting rewarded for being a smart shopper! Temu also offers a Temu coupon Bundle, which can include a variety of discounts and offers. This can be a great option for both new and existing users, providing a comprehensive way to save. I'm a big fan of these bundles as they often include discounts on items I frequently purchase. For new users, there's often a Temu first time user coupon available, providing an extra incentive to try Temu. This Temu new user coupon, along with the Temu coupon codes for new users, makes it an ideal time to explore the platform and discover its offerings. I remember how excited I was to use my first Temu coupon! Existing users are not forgotten! Temu also provides Temu coupon codes for existing users, ensuring that loyal customers can continue to enjoy savings. The Temu coupon code 30% off is a popular choice for both new and existing users. I encourage you to explore Temu and discover the wide array of products available. With the Temu coupon code (acr639380) , along with other available coupon codes, you can make your shopping experience even more rewarding. Remember to check for the Temu coupon for 2025, Temu discount code for 2025, and Temu promo code for 2025 as the year progresses. Remember to keep an eye out for the latest Temu new offers in 2025. Temu is always updating its product selection and offering new ways to save. I'm constantly amazed by the new and innovative products I find on Temu. Using the Temu coupon code (acr639380) is a simple yet effective way to maximize your savings. Whether you're looking for a Temu coupon code, Temu coupon code 30% off, Temu coupon code 30% off, Temu 30% coupon bundle, Temu coupons for new users, Temu coupons for existing users, Temu promo code, or Temu discount code, you're sure to find a way to save on your next Temu purchase. I hope this information helps you save big on your Temu shopping spree. Happy shopping!  
  • Topics

×
×
  • Create New...

Important Information

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