Pattern slots now report the output qty as well as the item type, at all times ( not just when shift is held )
This commit is contained in:
parent
94951b4209
commit
589e2d60d2
3 changed files with 41 additions and 45 deletions
|
@ -4,14 +4,12 @@ import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.RenderHelper;
|
import net.minecraft.client.renderer.RenderHelper;
|
||||||
import net.minecraft.client.renderer.entity.RenderItem;
|
import net.minecraft.client.renderer.entity.RenderItem;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
|
||||||
import net.minecraft.nbt.NBTTagList;
|
|
||||||
import net.minecraftforge.client.IItemRenderer;
|
import net.minecraftforge.client.IItemRenderer;
|
||||||
|
|
||||||
import org.lwjgl.input.Keyboard;
|
import org.lwjgl.input.Keyboard;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
import appeng.util.Platform;
|
import appeng.items.misc.ItemEncodedPattern;
|
||||||
|
|
||||||
public class ItemEncodedPatternRenderer implements IItemRenderer
|
public class ItemEncodedPatternRenderer implements IItemRenderer
|
||||||
{
|
{
|
||||||
|
@ -26,42 +24,14 @@ public class ItemEncodedPatternRenderer implements IItemRenderer
|
||||||
|
|
||||||
if ( resursive == false && type == IItemRenderer.ItemRenderType.INVENTORY && isShiftHeld )
|
if ( resursive == false && type == IItemRenderer.ItemRenderType.INVENTORY && isShiftHeld )
|
||||||
{
|
{
|
||||||
if ( readOutput( item ) != null )
|
ItemEncodedPattern iep = (ItemEncodedPattern) item.getItem();
|
||||||
|
if ( iep.getOutput( item ) != null )
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private ItemStack readOutput(ItemStack item)
|
|
||||||
{
|
|
||||||
NBTTagCompound encodedValue = item.getTagCompound();
|
|
||||||
|
|
||||||
if ( encodedValue == null )
|
|
||||||
return null;
|
|
||||||
|
|
||||||
NBTTagList outTag = encodedValue.getTagList( "out", 10 );
|
|
||||||
|
|
||||||
if ( outTag.tagCount() == 0 )
|
|
||||||
return null;
|
|
||||||
|
|
||||||
ItemStack out = null;
|
|
||||||
|
|
||||||
for (int x = 0; x < outTag.tagCount(); x++)
|
|
||||||
{
|
|
||||||
ItemStack readItem = ItemStack.loadItemStackFromNBT( outTag.getCompoundTagAt( x ) );
|
|
||||||
if ( readItem != null )
|
|
||||||
{
|
|
||||||
if ( out == null )
|
|
||||||
out = readItem;
|
|
||||||
else if ( out != null && Platform.isSameItemPrecise( readItem, out ) )
|
|
||||||
out.stackSize += readItem.stackSize;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return out;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
|
public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper)
|
||||||
{
|
{
|
||||||
|
@ -73,7 +43,9 @@ public class ItemEncodedPatternRenderer implements IItemRenderer
|
||||||
{
|
{
|
||||||
resursive = true;
|
resursive = true;
|
||||||
|
|
||||||
ItemStack is = readOutput( item );
|
ItemEncodedPattern iep = (ItemEncodedPattern) item.getItem();
|
||||||
|
|
||||||
|
ItemStack is = iep.getOutput( item );
|
||||||
Minecraft mc = Minecraft.getMinecraft();
|
Minecraft mc = Minecraft.getMinecraft();
|
||||||
|
|
||||||
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
GL11.glPushAttrib( GL11.GL_ALL_ATTRIB_BITS );
|
||||||
|
|
|
@ -18,7 +18,7 @@ import appeng.api.implementations.items.ISpatialStorageCell;
|
||||||
import appeng.api.implementations.items.IStorageComponent;
|
import appeng.api.implementations.items.IStorageComponent;
|
||||||
import appeng.api.implementations.items.IUpgradeModule;
|
import appeng.api.implementations.items.IUpgradeModule;
|
||||||
import appeng.api.storage.ICellWorkbenchItem;
|
import appeng.api.storage.ICellWorkbenchItem;
|
||||||
import appeng.api.storage.data.IAEItemStack;
|
import appeng.items.misc.ItemEncodedPattern;
|
||||||
import appeng.recipes.handlers.Inscribe;
|
import appeng.recipes.handlers.Inscribe;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
|
@ -91,19 +91,14 @@ public class SlotRestrictedInput extends AppEngSlot
|
||||||
@Override
|
@Override
|
||||||
public ItemStack getDisplayStack()
|
public ItemStack getDisplayStack()
|
||||||
{
|
{
|
||||||
if ( Platform.isClient() && (which == PlaceableItemType.VALID_ENCODED_PATTERN_W_OUPUT || which == PlaceableItemType.ENCODED_PATTERN_W_OUTPUT) )
|
if ( Platform.isClient() && (which == PlaceableItemType.ENCODED_PATTERN) )
|
||||||
{
|
{
|
||||||
ItemStack is = super.getStack();
|
ItemStack is = super.getStack();
|
||||||
if ( is != null && is.getItem() instanceof ICraftingPatternItem )
|
if ( is != null && is.getItem() instanceof ItemEncodedPattern )
|
||||||
{
|
{
|
||||||
ICraftingPatternItem it = (ICraftingPatternItem) is.getItem();
|
ItemEncodedPattern iep = (ItemEncodedPattern) is.getItem();
|
||||||
ICraftingPatternDetails details = it.getPatternForItem( is );
|
ItemStack out = iep.getOutput( is );
|
||||||
if ( details != null )
|
return out;
|
||||||
{
|
|
||||||
IAEItemStack list[] = details.getOutputs();
|
|
||||||
if ( list.length > 0 )
|
|
||||||
return list[0].getItemStack();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return super.getStack();
|
return super.getStack();
|
||||||
|
|
|
@ -74,6 +74,35 @@ public class ItemEncodedPattern extends AEBaseItem implements ICraftingPatternIt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ItemStack getOutput(ItemStack item)
|
||||||
|
{
|
||||||
|
NBTTagCompound encodedValue = item.getTagCompound();
|
||||||
|
|
||||||
|
if ( encodedValue == null )
|
||||||
|
return null;
|
||||||
|
|
||||||
|
NBTTagList outTag = encodedValue.getTagList( "out", 10 );
|
||||||
|
|
||||||
|
if ( outTag.tagCount() == 0 )
|
||||||
|
return null;
|
||||||
|
|
||||||
|
ItemStack out = null;
|
||||||
|
|
||||||
|
for (int x = 0; x < outTag.tagCount(); x++)
|
||||||
|
{
|
||||||
|
ItemStack readItem = ItemStack.loadItemStackFromNBT( outTag.getCompoundTagAt( x ) );
|
||||||
|
if ( readItem != null )
|
||||||
|
{
|
||||||
|
if ( out == null )
|
||||||
|
out = readItem;
|
||||||
|
else if ( out != null && Platform.isSameItemPrecise( readItem, out ) )
|
||||||
|
out.stackSize += readItem.stackSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
private void readItems(ItemStack[] itemList, NBTTagList tagSrc)
|
private void readItems(ItemStack[] itemList, NBTTagList tagSrc)
|
||||||
{
|
{
|
||||||
for (int x = 0; x < itemList.length; x++)
|
for (int x = 0; x < itemList.length; x++)
|
||||||
|
|
Loading…
Reference in a new issue