Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b98e6b8
commit d9372e8
Showing
5 changed files
with
584 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
167 changes: 167 additions & 0 deletions
167
src/main/java/com/resaloli/eim/content/crafting/InventoryCraftingResult.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,167 @@ | ||
package com.resaloli.eim.content.crafting; | ||
|
||
import com.resaloli.eim.interfaces.IRecipe; | ||
import net.minecraft.entity.player.EntityPlayer; | ||
import net.minecraft.inventory.IInventory; | ||
import net.minecraft.inventory.ItemStackHelper; | ||
import net.minecraft.item.ItemStack; | ||
import net.minecraft.util.NonNullList; | ||
import net.minecraft.util.text.ITextComponent; | ||
import net.minecraft.util.text.TextComponentString; | ||
import net.minecraft.util.text.TextComponentTranslation; | ||
|
||
import javax.annotation.Nullable; | ||
|
||
public class InventoryCraftingResult implements IInventory { | ||
/** A list of one item containing the result of the crafting formula */ | ||
private final NonNullList<ItemStack> stackResult = NonNullList.<ItemStack>withSize(1, ItemStack.EMPTY); | ||
private IRecipe recipeUsed; | ||
|
||
/** | ||
* Returns the number of slots in the inventory. | ||
*/ | ||
public int getSizeInventory() | ||
{ | ||
return 1; | ||
} | ||
|
||
public boolean isEmpty() | ||
{ | ||
for (ItemStack itemstack : this.stackResult) | ||
{ | ||
if (!itemstack.isEmpty()) | ||
{ | ||
return false; | ||
} | ||
} | ||
|
||
return true; | ||
} | ||
|
||
/** | ||
* Returns the stack in the given slot. | ||
*/ | ||
public ItemStack getStackInSlot(int index) | ||
{ | ||
return this.stackResult.get(0); | ||
} | ||
|
||
/** | ||
* Get the name of this object. For players this returns their username | ||
*/ | ||
public String getName() | ||
{ | ||
return "Result"; | ||
} | ||
|
||
/** | ||
* Returns true if this thing is named | ||
*/ | ||
public boolean hasCustomName() | ||
{ | ||
return false; | ||
} | ||
|
||
/** | ||
* Get the formatted ChatComponent that will be used for the sender's username in chat | ||
*/ | ||
public ITextComponent getDisplayName() | ||
{ | ||
return (ITextComponent)(this.hasCustomName() ? new TextComponentString(this.getName()) : new TextComponentTranslation(this.getName(), new Object[0])); | ||
} | ||
|
||
/** | ||
* Removes up to a specified number of items from an inventory slot and returns them in a new stack. | ||
*/ | ||
public ItemStack decrStackSize(int index, int count) | ||
{ | ||
return ItemStackHelper.getAndRemove(this.stackResult, 0); | ||
} | ||
|
||
/** | ||
* Removes a stack from the given slot and returns it. | ||
*/ | ||
public ItemStack removeStackFromSlot(int index) | ||
{ | ||
return ItemStackHelper.getAndRemove(this.stackResult, 0); | ||
} | ||
|
||
/** | ||
* Sets the given item stack to the specified slot in the inventory (can be crafting or armor sections). | ||
*/ | ||
public void setInventorySlotContents(int index, ItemStack stack) | ||
{ | ||
this.stackResult.set(0, stack); | ||
} | ||
|
||
/** | ||
* Returns the maximum stack size for a inventory slot. Seems to always be 64, possibly will be extended. | ||
*/ | ||
public int getInventoryStackLimit() | ||
{ | ||
return 64; | ||
} | ||
|
||
/** | ||
* For tile entities, ensures the chunk containing the tile entity is saved to disk later - the game won't think it | ||
* hasn't changed and skip it. | ||
*/ | ||
public void markDirty() | ||
{ | ||
} | ||
|
||
/** | ||
* Don't rename this method to canInteractWith due to conflicts with Container | ||
*/ | ||
public boolean isUsableByPlayer(EntityPlayer player) | ||
{ | ||
return true; | ||
} | ||
|
||
public void openInventory(EntityPlayer player) | ||
{ | ||
} | ||
|
||
public void closeInventory(EntityPlayer player) | ||
{ | ||
} | ||
|
||
/** | ||
* Returns true if automation is allowed to insert the given stack (ignoring stack size) into the given slot. For | ||
* guis use Slot.isItemValid | ||
*/ | ||
public boolean isItemValidForSlot(int index, ItemStack stack) | ||
{ | ||
return true; | ||
} | ||
|
||
public int getField(int id) | ||
{ | ||
return 0; | ||
} | ||
|
||
public void setField(int id, int value) | ||
{ | ||
} | ||
|
||
public int getFieldCount() | ||
{ | ||
return 0; | ||
} | ||
|
||
public void clear() | ||
{ | ||
this.stackResult.clear(); | ||
} | ||
|
||
public void setRecipeUsed(@Nullable IRecipe p_193056_1_) | ||
{ | ||
this.recipeUsed = p_193056_1_; | ||
} | ||
|
||
@Nullable | ||
public IRecipe getRecipeUsed() | ||
{ | ||
return this.recipeUsed; | ||
} | ||
} |
Oops, something went wrong.