Jump to content

[1.10.2] SubItems problem.


BaXMultigaming

Recommended Posts

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

 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

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



×
×
  • Create New...

Important Information

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