Jump to content

Custom Machine slot synch error?


sketchd2

Recommended Posts

I'm in the middle of a big modding project, and my chemical extractor is having some weird issues.

There is no actual 'error' in the code, however it still doesnt work correctly.

 

Symptoms:

I put any item in the slot and it doubles

Left click to remove and the item disappears

right click divides stack in slot by 4 and the rest disappears

does not process the item at all.

 

I based the code of the vanilla furnace, but changed it to use an electrical supply which I am yet to implement. To 'charge' the block I change the value in the eclipse editor, but it still doesnt function.

Any help would be appreciated.

 

The files

https://gist.github.com/anonymous/7366482

Link to comment
Share on other sites

I don't have that much time to go through whole code: Container is good that I can tell, as to TileEntity - at some point you are PROBABLY making ghost items - that means they have different properties (stacksize etc.) that are actually showed. Hint for you: Add println before and after getting ANY itemstacks - like:

ItemStack is1 = ExtractorRecipes.extracting()
.getFirstExtractResult(this.extractorItemStacks[0]);
ItemStack is2 = ExtractorRecipes.extracting()
.getSecondExtractResult(this.extractorItemStacks[0]);

or

extractorItemStacks[2].stackSize += is2.stackSize;

Also check if you are not stacking over Stacklimits (saw you did it in canExtract - but just make sure)

This post won't help you much but I can assure you that println will :)

 

Also (as a guy before me said) - GuiHandler should look like this, so make sure it does:

public class GuiHandler implements IGuiHandler
{
@Override
public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z)
{
	TileEntity TE = world.getBlockTileEntity(x, y, z);
	switch(id)
	{
		case 1: return new MyContainer(player.inventory, (MyTileEntity) TE);
	}
	return null;
}

@Override
public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z)
{
	TileEntity TE = world.getBlockTileEntity(x, y, z);
	switch(id)
	{
		case 1: return new MyGui(player.inventory, (MyTileEntity) TE);
	}
	return null;
}
}

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

I have changed the GUI handler code and it works now. however, when I place an item into the input slot, the getPowerRequirement function in the recipes class (attached below) crashes with a null pointer exception on line 81. I tried adding a try-finally statement, but that didn't help at all. any suggestions?

 

https://gist.github.com/anonymous/7396246

Link to comment
Share on other sites

,,This post won't help you much but I can assure you that println will :)"

Probably when some method from TileEntity is calling for result (res) it gets wrong shit :D

Place println before/after every calling of getPowerRequirement and also inside it when there is try/finally part.

I can't help much when I don't see whole code :D

 

1.7.10 is no longer supported by forge, you are on your own.

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.



×
×
  • Create New...

Important Information

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