Jump to content

Adding textures to items?


Animus_Surge

Recommended Posts

2 minutes ago, Animus_Surge said:

No code errors after fixing a bunch of errors, and my game crashes with the following:

Where are you calling ModelLoader.setCustom...

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

  • Replies 50
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

1 minute ago, Animefan8888 said:

Where are you calling ModelLoader.setCustom...

in the ItemLightBridge class file

Forge 1.8.9 and below are not supported in the forums anymore. Please upgrade to a later version.

 

My experimental mod: new GitHub page to be created... (Add your favorite TCGs in MC! [WIP])

 

When asking for assistance with modding or making mods, paste the log (located in .minecraft/logs folder for mod users or in the console for mod makers).

Link to comment
Share on other sites

2 minutes ago, Animus_Surge said:

in the ItemLightBridge class file

Patient: Ouch doctor it hurts

Doctor: Where does it hurt.

Patient: Right there

Doctor: Where is there?

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

The item class file (ItemLightBridge)

package net.overgrownportal.item;

import net.minecraft.item.Item;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.overgrownportal.mod.OvergrownPortal;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.client.renderer.texture.SimpleTexture;
import net.minecraft.creativetab.*;

public class ItemLightBridge extends Item{
	public static final Item itemLightBridge = null;

	public ItemLightBridge() {
        setRegistryName("overgrownportal:itemlightbridge");
        setUnlocalizedName(OvergrownPortal.MODID + ".itemlightbridge");
       
		ModelLoader.setCustomModelResourceLocation(itemLightBridge, 0, new ModelResourceLocation(getRegistryName(), getUnlocalizedName()));
    }

    @SideOnly(Side.CLIENT)
    public void initModel() {
        ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
    }

	public static void init() {
		// TODO Auto-generated method stub
		
	}
}

ModItems class file:

package net.overgrownportal.item;

import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class ModItems{

    @GameRegistry.ObjectHolder("overgrownportal:itemlightbridge")
    public static final Item ItemLightBridge = null;

    @SideOnly(Side.CLIENT)
    public static void initModels() {
    	
    }
		
}

and the JSON file:

{
    "parent":"item/generated",
    "textures":{
        "layer0": "overgrownportal:items/itemlightbridge"
    }
}

Edited by Animus_Surge

Forge 1.8.9 and below are not supported in the forums anymore. Please upgrade to a later version.

 

My experimental mod: new GitHub page to be created... (Add your favorite TCGs in MC! [WIP])

 

When asking for assistance with modding or making mods, paste the log (located in .minecraft/logs folder for mod users or in the console for mod makers).

Link to comment
Share on other sites

What's about CommonProxy and ClientProxy

Quote

And the registration in the CommonProxy:


@Mod.EventBusSubscriber
public class CommonProxy {

    ...

    @SubscribeEvent
    public static void registerItems(RegistryEvent.Register<Item> event) {
        event.getRegistry().register(new SimpleTexturedItem());
        ...
    }
}

Also in ClientProxy:


@Mod.EventBusSubscriber(Side.CLIENT)
public class ClientProxy extends CommonProxy {

    ...

    @SubscribeEvent
    public static void registerModels(ModelRegistryEvent event) {
        ModBlocks.initModels();
        ModItems.initModels();
    }


}

 

(Quote from the Tutorial I posted)

 

My Projects:

Cruelars Triforcemod (1.12 release; 1.14 alpha soon coming)

 

Important:

As my mod is on at least 10 different third party sites without my permission, I want to warn you about that with a link to StopModReposts

Link to comment
Share on other sites

1 minute ago, Animus_Surge said:

The item class file (ItemLightBridge)

You're passing a null item into setCustomModelResourceLocation.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

1 minute ago, Animefan8888 said:

You're passing a null item into setCustomModelResourceLocation.

What does it need to be instead?

 

Forge 1.8.9 and below are not supported in the forums anymore. Please upgrade to a later version.

 

My experimental mod: new GitHub page to be created... (Add your favorite TCGs in MC! [WIP])

 

When asking for assistance with modding or making mods, paste the log (located in .minecraft/logs folder for mod users or in the console for mod makers).

Link to comment
Share on other sites

2 minutes ago, _Cruelar_ said:

What's about CommonProxy and ClientProxy

 

package net.overgrownportal.mod;

import net.minecraft.item.Item;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.overgrownportal.item.ItemLightBridge;

@Mod.EventBusSubscriber
public class CommonProxy {



    @SubscribeEvent
    public static void registerItems(RegistryEvent.Register<Item> event) {
        event.getRegistry().register(new ItemLightBridge());

    }
}
package net.overgrownportal.mod;

import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.overgrownportal.item.ModItems;
import net.minecraftforge.fml.relauncher.Side;

@Mod.EventBusSubscriber(Side.CLIENT)
public class ClientProxy extends CommonProxy {

    @SubscribeEvent
    public static void registerModels(ModelRegistryEvent event) {
        ModItems.initModels();
    }


}

 

Forge 1.8.9 and below are not supported in the forums anymore. Please upgrade to a later version.

 

My experimental mod: new GitHub page to be created... (Add your favorite TCGs in MC! [WIP])

 

When asking for assistance with modding or making mods, paste the log (located in .minecraft/logs folder for mod users or in the console for mod makers).

Link to comment
Share on other sites

Quote

@SideOnly(Side.CLIENT)
    public void initModel() {
        ModelLoader.setCustomModelResourceLocation(this, 0, new ModelResourceLocation(getRegistryName(), "inventory"));
    }

Quote from the Tutorial

Where you got that with

public static final Item itemLightBridge = null;

My Projects:

Cruelars Triforcemod (1.12 release; 1.14 alpha soon coming)

 

Important:

As my mod is on at least 10 different third party sites without my permission, I want to warn you about that with a link to StopModReposts

Link to comment
Share on other sites

9 minutes ago, Animus_Surge said:

ModelLoader.setCustomModelResourceLocation

Do NOT in any circumstance reference this outside of the client proxy class.

 

	public ItemLightBridge() {
        setRegistryName("overgrownportal:itemlightbridge");
        setUnlocalizedName(OvergrownPortal.MODID + ".itemlightbridge");
      
       //you know, this line here:
		ModelLoader.setCustomModelResourceLocation(itemLightBridge, 0, new ModelResourceLocation(getRegistryName(), getUnlocalizedName()));
      //DO NOT DO THIS AT ALL EVER
    }
Edited by Draco18s

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.

Link to comment
Share on other sites

It worked when I replaced itemLightBridge with (this). 

Just now, _Cruelar_ said:

Where you got that with


public static final Item itemLightBridge = null;

I removed it when I replaced itemLightBridge with (this). 

Forge 1.8.9 and below are not supported in the forums anymore. Please upgrade to a later version.

 

My experimental mod: new GitHub page to be created... (Add your favorite TCGs in MC! [WIP])

 

When asking for assistance with modding or making mods, paste the log (located in .minecraft/logs folder for mod users or in the console for mod makers).

Link to comment
Share on other sites

2 minutes ago, Draco18s said:

Do NOT in any circumstance reference this outside of the client proxy class

So do I put it in the client proxy class?

 

Forge 1.8.9 and below are not supported in the forums anymore. Please upgrade to a later version.

 

My experimental mod: new GitHub page to be created... (Add your favorite TCGs in MC! [WIP])

 

When asking for assistance with modding or making mods, paste the log (located in .minecraft/logs folder for mod users or in the console for mod makers).

Link to comment
Share on other sites

No you put it in initModel() in your Item call that in initModels in your ModItems which you call in your registerModels() in your ClientProxy

Edited by _Cruelar_

My Projects:

Cruelars Triforcemod (1.12 release; 1.14 alpha soon coming)

 

Important:

As my mod is on at least 10 different third party sites without my permission, I want to warn you about that with a link to StopModReposts

Link to comment
Share on other sites

 

package net.overgrownportal.item;

import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.fml.common.registry.GameRegistry;

public class ModItems{

    @GameRegistry.ObjectHolder("overgrownportal:itemlightbridge")
    public static final Item ItemLightBridge = null;

    @SideOnly(Side.CLIENT)
    public static void initModels() {
		ModelLoader.setCustomModelResourceLocation(ItemLightBridge, 0, new ModelResourceLocation(getRegistryName(), getUnlocalizedName()));
    }

	private static String getUnlocalizedName() {
		// TODO Auto-generated method stub
		return null;
	}

	private static ResourceLocation getRegistryName() {
		// TODO Auto-generated method stub
		return null;
	}
		
}

scratch that thought

I have one of those in my initModel already

Edited by Animus_Surge

Forge 1.8.9 and below are not supported in the forums anymore. Please upgrade to a later version.

 

My experimental mod: new GitHub page to be created... (Add your favorite TCGs in MC! [WIP])

 

When asking for assistance with modding or making mods, paste the log (located in .minecraft/logs folder for mod users or in the console for mod makers).

Link to comment
Share on other sites

4 minutes ago, _Cruelar_ said:

No you put it in initModel() in your Item call that in initModels in your ModItems which you call in your registerModels() in your ClientProxy

No, this is dumb. There is no reason for it to be here. None. At all.

You can call the method without having to ask the class to do it:

 

ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName()))

instead of:

item.initModels()

There is literally no reason to ask the item class to do this.

Bam

 

Quote

	private static String getUnlocalizedName() {
		// TODO Auto-generated method stub
		return null;
	}

	private static ResourceLocation getRegistryName() {
		// TODO Auto-generated method stub
		return null;
	}

WHY ARE THESE METHODS RETURNING NULL!?

No one told you to add these methods, so why did you?

Edited by Draco18s

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.

Link to comment
Share on other sites

1 minute ago, Animus_Surge said:

Like this?

Who told you to do anything with those methods?

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

1 minute ago, Draco18s said:

No, this is dumb. There is no reason for it to be here. None. At all.

You can call the method without having to ask the class to do it:

 

ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName()))

instead of:

item.initModels()

There is literally no reason to ask the item class to do this.

Bam

 

WHY ARE THESE METHODS RETURNING NULL!?

No one told you to add these methods, so why did you?

 

Just now, Animefan8888 said:

Who told you to do anything with those methods?

I just removed them

Forge 1.8.9 and below are not supported in the forums anymore. Please upgrade to a later version.

 

My experimental mod: new GitHub page to be created... (Add your favorite TCGs in MC! [WIP])

 

When asking for assistance with modding or making mods, paste the log (located in .minecraft/logs folder for mod users or in the console for mod makers).

Link to comment
Share on other sites

This is a link to my ModelRegistryEvent for a WIP mod if you trace it back you will see how it all comes together. I feel it might be easier than explaining it all to you with a back and forth.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

12 minutes ago, Animus_Surge said:

I just removed them

And once you have read it and possibly have questions come back and ask and I will answer.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

21 hours ago, Draco18s said:

ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName()))

instead of:

item.initModels()

There is literally no reason to ask the item class to do this.

  1. In the guide of which I posted the link to uses item.initModels so I wanted to keep it like that for the explanation.
  2. Yes there's no reason to do that in the Item class and a central method would be better but both ways work perfectly fine as long you don't make mistakes.

My Projects:

Cruelars Triforcemod (1.12 release; 1.14 alpha soon coming)

 

Important:

As my mod is on at least 10 different third party sites without my permission, I want to warn you about that with a link to StopModReposts

Link to comment
Share on other sites

15 minutes ago, _Cruelar_ said:
  1. In the guide of which I posted the link to uses item.initModels so I wanted to keep it like that for the explanation.

Doesn't mean its a good way to do it

15 minutes ago, _Cruelar_ said:
  1. Yes there's no reason to do that in the Item class and a central method would be better but both ways work perfectly fine as long you don't make mistakes.

As long as you don't make mistakes is the important bit. If you never put the code in your item class you can't make a mistake that's basically invisible until you compile and distribute and someone says "it crashes my server."

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.

Link to comment
Share on other sites

For beginner's it's easier to see the ModelLoader thing in the Item that goes with it as code with ItemVariants can be easily forgotten while using an general method for it.

11 minutes ago, Draco18s said:

someone says "it crashes my server."

How should it do that if it's made like the guide says you to do that, I always like it to learn new things about how things can go wrong so I can avoid using these things.

My Projects:

Cruelars Triforcemod (1.12 release; 1.14 alpha soon coming)

 

Important:

As my mod is on at least 10 different third party sites without my permission, I want to warn you about that with a link to StopModReposts

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

    • Hey folks. I am working on a custom "Mecha" entity (extended from LivingEntity) that the player builds up from blocks that should get modular stats depending on the used blocks. e.g. depending on what will be used for the legs, the entity will have a different jump strength. However, something unexpected is happening when trying to override a few of LivingEntity's functions and using my new own "Mecha" specific fields: instead of their actual instance-specific value, the default value is used (0f for a float, null for an object...) This is especially strange as when executing with the same entity from a point in the code specific to the mecha entity, the correct value is used. Here are some code snippets to better illustrate what I mean: /* The main Mecha class, cut down for brevity */ public class Mecha extends LivingEntity { protected float jumpMultiplier; //somewhere later during the code when spawning the entity, jumpMultiplier is set to something like 1.5f //changing the access to public didn't help @Override //Overridden from LivingEntity, this function is only used in the jumpFromGround() function, used in the aiStep() function, used in the LivingEntity tick() function protected float getJumpPower() { //something is wrong with this function //for some reason I can't correctly access the fields and methods from the instanciated entity when I am in one of those overridden protected functions. this is very annoying LogUtils.getLogger().info(String.valueOf(this.jumpMultiplier))) //will print 0f return this.jumpMultiplier * super.getJumpPower(); } //The code above does not operate properly. Written as is, the entity will not jump, and adding debug logs shows that when executing the code, the value of this.jumpMultiplier is 0f //in contrast, it will be the correct value when done here: @Override public void tick() { super.tick(); //inherited LivingEntity logic //Custom logic LogUtils.getLogger().info(String.valueOf(this.jumpMultiplier))) //will print 1.5f } } My actual code is slightly different, as the jumpMuliplier is stored in another object (so I am calling "this.legModule.getJumpPower()" instead of the float), but even using a simple float exactly like in the code above didn't help. When running my usual code, the object I try to use is found to be null instead, leading to a crash from a nullPointerException. Here is the stacktrace of said crash: The full code can be viewed here. I have found a workaround in the case of jump strength, but have already found the same problem for another parameter I want to do, and I do not understand why the code is behaving as such, and I would very much like to be able to override those methods as intended - they seemed to work just fine like that for vanilla mobs... Any clues as to what may be happening here?
    • Please delete post. Had not noticed the newest edition for 1.20.6 which resolves the issue.
    • https://paste.ee/p/GTgAV Here's my debug log, I'm on 1.18.2 with forge 40.2.4 and I just want to get it to work!! I cant find any mod names in the error part and I would like some help from the pros!! I have 203 mods at the moment.
    • In 1.20.6 any potion brewed in the brewing stand disappears upon completion.
    • My game crashes whenever I click on Singleplayer then it crashes after the "Saving world". I'm playing on fabric 1.20.1 on forge for the easy instance loading. My game is using 12GB of RAM, I tried deleting the options.txt, and also renaming the saves file but neither worked. Here's the crash report link: https://mclo.gs/qByOqVK
  • Topics

×
×
  • Create New...

Important Information

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