Posted February 1, 201411 yr Hi all, If I want to check that a block of mine is being placed on top of a valid block and im building a list of these blocks and I want to include things like oreCopper, oreTin etc.. even if my mod doesnt implement these ores do I have to create a block and register it in the OreDict or can I add something else to the list that signifies oreCopper etc... for example: public static Object[] allowedBlocks = new Object[] {Block.oreCoal, Block.oreDiamond}; how would I add copper ore to that? or is there a better way of doing this?
February 1, 201411 yr You need to listen to ore dictionary events. Here's how I did it: public class EventHookOreRegistration { @ForgeSubscribe public void entityAttacked(OreDictionary.OreRegisterEvent event) { if(event.Name.indexOf("ore") >= 0 || event.Name.indexOf("gem") >= 0) { MapsBase.oreBlocks.add(event.Ore); //oreBlocks is defined in the base mod as a new ArrayList<ItemStack>(); } } } Also, use ArrayLists instead of static arrays, as then the array size is dynamic so you don't have to worry about making sure you have room for mods that load after yours (also, for blocks, use Block[] not Object[] if you're ever going to do it that way). 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.