Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hello,

 

I am working on updating my mod to 1.10.2 from 1.7.10, but i got stuck in one position.

 

Here is code from my mod in 1.7.10 version which i would like to update :

 

public abstract class ItemsFirst extends Item {

protected final int ITEM_MAX;
private final String subid;

public ItemsFirst(String subId, int max) {
	super();
	subid = subId;
	ITEM_MAX = max;
	setHasSubtypes(true);
	setUnlocalizedName(ModThings.MODID + "_" + subid);
}

@SideOnly(Side.CLIENT)
private IIcon[] icons;

@SideOnly(Side.CLIENT)
@Override
public void registerIcons(IIconRegister register) {
	icons = new IIcon[iTEM_MAX];
	for (int i = 0; i < ITEM_MAX; i++) {
		icons[i] = register.registerIcon(ModThings.MODID + ':' + subid + '/' + i);
	}
}

@Override
public String getUnlocalizedName(ItemStack is) {
	return super.getUnlocalizedName() + "_" + is.getItemDamage();
}

@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int dv) {
	if ((dv >= 0) && (dv < ITEM_MAX)) {
		return icons[dv];
	}
	return null;
}

@SideOnly(Side.CLIENT)
@Override
public void getSubItems(Item item, CreativeTabs tab, List list) {
	for (int i = 0; i < ITEM_MAX; i++) {
		list.add(new ItemStack(this, 1, i));			
	}
}

}

 

public class LootsOfItems extends ItemsFirst {
public LootsOfItems() {
	super("items", 28);
}
}

 

Here is the code which i made already on 1.10.2:

 

public class ItemThings extends Item implements ItemModelRegister {

protected String name;
protected int liczba;

public ItemThings(String name, int liczba) {
	this.name = name;
	this.liczba = liczba;
	setUnlocalizedName(ModThings.MODID + "_" + name);
	setRegistryName(name);
	setHasSubtypes(true);

	setCreativeTab(ThingsMod.creativeTab);
}

@Override
public void registerItemModel(Item item) {
	ThingsMod.proxy.registerThingNormal(item, 0, name);
}

@Override
public ItemThings setCreativeTab(CreativeTabs tab) {
	super.setCreativeTab(tab);
	return this;
}

@SideOnly(Side.CLIENT)
@Override
public void getSubItems(Item item, CreativeTabs tab, List list) {
	for (int i = 0; i < liczba; i++) {
		list.add(new ItemStack(this, 1, i));			
	}
}

@Override
public String getUnlocalizedName(ItemStack is) {
	return super.getUnlocalizedName() + "_" + is.getItemDamage();
}

}

 

public interface ItemModelRegister {

void registerItemModel(Item item);

}

 

public class ItemThings extends Item implements ItemModelRegister {

protected String name;
protected int liczba;

public ItemThings(String name, int liczba) {
	this.name = name;
	this.liczba = liczba;
	setUnlocalizedName("ThingsMod_" + name);
	setRegistryName(name);
	setHasSubtypes(true);

	setCreativeTab(ThingsMod.creativeTab);
}

@Override
public void registerItemModel(Item item) {
	ThingsMod.proxy.registerThingNormal(item, 0, name);
}

@Override
public ItemThings setCreativeTab(CreativeTabs tab) {
	super.setCreativeTab(tab);
	return this;
}

@SideOnly(Side.CLIENT)
@Override
public void getSubItems(Item item, CreativeTabs tab, List list) {
	for (int i = 0; i < liczba; i++) {
		list.add(new ItemStack(this, 1, i));			
	}
}

@Override
public String getUnlocalizedName(ItemStack is) {
	return super.getUnlocalizedName() + "_" + is.getItemDamage();
}

}

 

public class ItemNormal extends ItemThings {

private String ItemName;

public ItemNormal(String name, String ItemName, int liczba) {
	super(ItemName, liczba);
	maxStackSize = 64;

	this.ItemName = ItemName;
}

}

 

Here is my registry class 1.10.2:

 

public class ManagerItems {

public static ItemThings ItemNormal;

public static void init() {
	ItemNormal = register(new ItemNormal("ItemThingNormal", "ItemThingNormal", 3));
}

private static <T extends Item> T register(T item) {
	GameRegistry.register(item);
	if (item instanceof ItemModelRegister) {
		((ItemModelRegister)item).registerItemModel(item);
	}
	return item;
}

}

 

Can you take a look and tell me what should i change or add to make that it will load specify in minecraft 1.10.2 texture for specify number of sub item?

 

Or maybe you have idea how to just update 1.7.10 code to work fine in 1.10.2?

 

Sorry for my english but you should know what i am talking about xD

 

You need to call

ModelLoader.setCustomModelResourceLocation

to set the model for each metadata value of the

Item

.

 

Consider creating an enum to store the metadata value, unlocalised name and other properties of each sub-item. For examples, look at

ItemFishFood

/

ItemFishFood.FishType

and

ItemDye

/

EnumDyeColor

.

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.

  • Author

Ok i will check that classes.

 

I probably got it and found line which i need to add :

 

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

By the way, BaXMultigaming, you PMed me with an issue a few days ago.

 

Step 1: Read my signature.

Step 2: Clear out your inbox, it is full.

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.

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.