Posted April 16, 20187 yr I really don't know how to make custom recipes for my TileEntity, so what I want is to make Mega Sapphire items by placeing a normal sapphire tool in the first slot and a mega sapphire in the second slot of my sapphire infusor: https://github.com/Arthgames3/1.12.2-SapphireCraft Edited April 18, 20187 yr by Arthur Wesley
April 16, 20187 yr You need to create a class that can: - track what "recipes" your machine knows - identify what recipe is currently in the machine - retrieve the output from that recipe 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.
April 16, 20187 yr Author 39 minutes ago, Draco18s said: You need to create a class that can: - track what "recipes" your machine knows - identify what recipe is currently in the machine - retrieve the output from that recipe And how should I add slots to my container class, like, which method to use? public class MSInfusorContainer extends Container { private final IInventory tileFurnace; private int cookTime; private int totalCookTime; private int furnaceBurnTime; private int currentItemBurnTime; public MSInfusorContainer(InventoryPlayer playerInventory, IInventory furnaceInventory) { this.tileFurnace = furnaceInventory; this.addSlotToContainer(new Slot(furnaceInventory, 0, 27, 40)); //<-- I'm talking about this, they are in the correct position in GUI, //but I should add what kind of slot, this furnace itself? this.addSlotToContainer(new SlotFurnaceFuel(furnaceInventory, 1, 76, 40)); this.addSlotToContainer(new SlotFurnaceOutput(playerInventory.player, furnaceInventory, 2, 134, 40)); //... } And to call each slot in my MSInfusorRecipes class, how could I do that? Edited April 16, 20187 yr by Arthur Wesley
April 17, 20187 yr 1 hour ago, Arthur Wesley said: how should I add slots to my container class, like, which method to use? SlotItemHandler 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.
April 17, 20187 yr Author 18 hours ago, Draco18s said: SlotItemHandler This is my container class: package tutuicraft3.sapphirecraft.blocks.msinfusortileentity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.IInventory; import net.minecraft.inventory.InventoryBasic; import net.minecraft.inventory.InventoryCraftResult; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; import net.minecraft.world.World; public class ContainerMSInfusor extends Container { private final IInventory tileMSInfusor; private final IInventory outputSlot; private final IInventory inputSlots; private final World world; public ContainerMSInfusor(InventoryPlayer playerInv, final TileEntityMSInfusor infusor, IInventory mSInfusorInv, World world) { this.outputSlot = new InventoryCraftResult(); this.inputSlots = new InventoryBasic("Infuse", true, 2); this.world = world; this.tileMSInfusor = mSInfusorInv; addSlotToContainer(new Slot(inputSlots, 0, 27, 40)); addSlotToContainer(new Slot(inputSlots, 1, 76, 40)); addSlotToContainer(new Slot(outputSlot, 2, 134, 40) { public boolean isItemValid(ItemStack stack) { return false; } }); for (int i = 0; i < 3; i++) { for (int j = 0; j < 9; j++) { addSlotToContainer(new Slot(playerInv, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); } } for (int k = 0; k < 9; k++) { addSlotToContainer(new Slot(playerInv, k, 8 + k * 18, 142)); } } public void onContainerClosed(EntityPlayer playerIn) { super.onContainerClosed(playerIn); if (!this.world.isRemote) { this.clearContainer(playerIn, this.world, this.inputSlots); } } @Override public boolean canInteractWith(EntityPlayer player) { return true; } @Override public ItemStack transferStackInSlot(EntityPlayer player, int index) { ItemStack itemstack = ItemStack.EMPTY; Slot slot = inventorySlots.get(index); if (slot != null && slot.getHasStack()) { ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); int containerSlots = inventorySlots.size() - player.inventory.mainInventory.size(); if (index < containerSlots) { if (!this.mergeItemStack(itemstack1, containerSlots, inventorySlots.size(), true)) { return ItemStack.EMPTY; } } else if (!this.mergeItemStack(itemstack1, 0, containerSlots, false)) { return ItemStack.EMPTY; } if (itemstack1.getCount() == 0) { slot.putStack(ItemStack.EMPTY); } else { slot.onSlotChanged(); } if (itemstack1.getCount() == itemstack.getCount()) { return ItemStack.EMPTY; } slot.onTake(player, itemstack1); } return itemstack; } } Now I need a Recipes class, that can detect the input and output slots of my container class?, then detect the recipes items like I said before and then it outputs the result?
April 17, 20187 yr you just took the the code from the Furnace delete all of it create a class the extend TileEntity and implements ITickable make a ItemStackHandler field override Has/GetCapbiblty http://mcforge.readthedocs.io/en/latest/datastorage/capabilities/ and make it do stuff and for the recipe delete this https://github.com/Arthgames3/1.12.2-SapphireCraft/blob/master/sapphirecraft/blocks/msinfusortileentity/recipes/MSInfusorRecipes.java example https://github.com/BCA-Team/Buildcraft-Additions/blob/2.2.x/src/main/java/buildcraftAdditions/recipe/duster/DusterRecipe.java https://github.com/BCA-Team/Buildcraft-Additions/blob/2.2.x/src/main/java/buildcraftAdditions/recipe/duster/DusterRecipeManager.java
April 17, 20187 yr Author 1 hour ago, loordgek said: you just took the the code from the Furnace delete all of it create a class the extend TileEntity and implements ITickable make a ItemStackHandler field override Has/GetCapbiblty http://mcforge.readthedocs.io/en/latest/datastorage/capabilities/ and make it do stuff and for the recipe delete this https://github.com/Arthgames3/1.12.2-SapphireCraft/blob/master/sapphirecraft/blocks/msinfusortileentity/recipes/MSInfusorRecipes.java example https://github.com/BCA-Team/Buildcraft-Additions/blob/2.2.x/src/main/java/buildcraftAdditions/recipe/duster/DusterRecipe.java https://github.com/BCA-Team/Buildcraft-Additions/blob/2.2.x/src/main/java/buildcraftAdditions/recipe/duster/DusterRecipeManager.java Oops, I'm sorry, those github code were outdated, I just posted my actual one
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.