Hi, i would be interested to take on this project. I'm gonna email you and if you send me all the stuff i need, like the diagrams and info about the machines etc, i'll get ready to develop.
You can's use the displayGUIWorkbench, because some code in the ContainerWorkbench checks for a workbench at the location you specify, and if there isn't, you can't open the gui.
First you need to check if the mod is actually loaded, or else the Item will be null. Then, if the mod has an API, search for reference class for all the items. If it hasn't, us ethe Block.blockRegistry.getBlockFromName method to get the block. The format you need to put in as string is as follows: modid:name_block_registered_with.
Use the actionPerformed method. You get a GuiButton parameter which you can use to get the id, which you canuse to identify the button, and do stuff based on the button that was clicked.
You are using this code"
if(!world.isRemote)
and with that code you are doing thing SERVER side, so you should remove the exclamation mark to make it work CLIENT side.
for (int i=player.inventory.getSizeInventory(); i > -1; i++)
For loops don't work like this. You need to start integer i at 0, check if it's less then getSizeInventory and then you increment i.
Can we have the full log?
@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
Configuration config = new Configuration(event.getSuggestedConfigurationFile());
instance = this;
config.load();
config.save();
}
@EventHandler
public void init(FMLInitializationEvent event)
{
createItems();
registerItems();
registerRenders();
registerEntity();
}
I don't see all the registering stuff in preInit. Move the createItems() and all the other methods from init to preInit.
In your @Mod file, i think there's a requiredAfter tag that you could specify COFH's modid. That way the mod is loaded after COFH so it has the classes in the class path so you can use them.
For the IConnectionHandler, i never used one. But for the source, Go to Referenced Libraries/forgeSrc-[YOUR_FORGE_VERSION] and in there are all the packages.
You use the client proxy things only needed on the client, like rendering and textures etc, and the server proxy for things that should be registered both sides, like TileEntitys etc.
This is the third thread asking for recipes, so i'm not gonna give a answer other then: look at FurnaceRecipes.class. For the shift clicking, override the transferStackInSlot method in your container.