Added 4 View Cell Slots.

Multiple View Cells now sum together to allow more customization.
View Cells are now protected by Build Security.
Meteorite Compass now renders correctly in other peoples hands.
This commit is contained in:
AlgorithmX2
2014-03-04 21:12:23 -06:00
parent 4536189042
commit 929efa5597
30 changed files with 228 additions and 102 deletions
@@ -64,7 +64,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
GuiImgButton searchBoxSettings;
boolean viewCell;
ItemStack currentViewCell;
ItemStack myCurrentViewCells[] = new ItemStack[5];
ContainerMEMonitorable mecontainer;
public GuiMEMonitorable(InventoryPlayer inventoryPlayer, ITerminalHost te) {
@@ -277,11 +277,19 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
if ( viewCell )
{
if ( currentViewCell != mecontainer.cellView.getStack() )
boolean update = false;
for (int i = 0; i < 5; i++)
{
currentViewCell = mecontainer.cellView.getStack();
repo.setViewCell( currentViewCell );
if ( myCurrentViewCells[i] != mecontainer.cellView[i].getStack() )
{
update = true;
myCurrentViewCells[i] = mecontainer.cellView[i].getStack();
}
}
if ( update )
repo.setViewCell( myCurrentViewCells );
}
if ( searchField != null )
+52 -43
View File
@@ -24,6 +24,7 @@ import appeng.util.Platform;
import appeng.util.item.AEItemStack;
import appeng.util.prioitylist.FuzzyPriorityList;
import appeng.util.prioitylist.IPartitionList;
import appeng.util.prioitylist.MergedPriorityList;
import appeng.util.prioitylist.PrecisePriorityList;
public class ItemRepo
@@ -80,65 +81,73 @@ public class ItemRepo
list.add( is );
}
boolean hasInverter = false;
boolean hasFuzzy = false;
IPartitionList<IAEItemStack> myPartitionList;
public void setViewCell(ItemStack currentViewCell)
public void setViewCell(ItemStack[] list)
{
if ( currentViewCell == null || !(currentViewCell.getItem() instanceof ItemViewCell) )
myPartitionList = null;
else
myPartitionList = null;
MergedPriorityList<IAEItemStack> myMergedList = new MergedPriorityList<IAEItemStack>();
for (ItemStack currentViewCell : list)
{
IItemList<IAEItemStack> priorityList = AEApi.instance().storage().createItemList();
if ( currentViewCell == null )
continue;
ItemViewCell vc = (ItemViewCell) currentViewCell.getItem();
IInventory upgrades = vc.getUpgradesInventory( currentViewCell );
IInventory config = vc.getConfigInventory( currentViewCell );
FuzzyMode fzMode = vc.getFuzzyMode( currentViewCell );
hasInverter = false;
hasFuzzy = false;
for (int x = 0; x < upgrades.getSizeInventory(); x++)
if ( (currentViewCell.getItem() instanceof ItemViewCell) )
{
ItemStack is = upgrades.getStackInSlot( x );
if ( is != null && is.getItem() instanceof IUpgradeModule )
boolean hasInverter = false;
boolean hasFuzzy = false;
IItemList<IAEItemStack> priorityList = AEApi.instance().storage().createItemList();
ItemViewCell vc = (ItemViewCell) currentViewCell.getItem();
IInventory upgrades = vc.getUpgradesInventory( currentViewCell );
IInventory config = vc.getConfigInventory( currentViewCell );
FuzzyMode fzMode = vc.getFuzzyMode( currentViewCell );
hasInverter = false;
hasFuzzy = false;
for (int x = 0; x < upgrades.getSizeInventory(); x++)
{
Upgrades u = ((IUpgradeModule) is.getItem()).getType( is );
if ( u != null )
ItemStack is = upgrades.getStackInSlot( x );
if ( is != null && is.getItem() instanceof IUpgradeModule )
{
switch (u)
Upgrades u = ((IUpgradeModule) is.getItem()).getType( is );
if ( u != null )
{
case FUZZY:
hasFuzzy = true;
break;
case INVERTER:
hasInverter = true;
break;
default:
switch (u)
{
case FUZZY:
hasFuzzy = true;
break;
case INVERTER:
hasInverter = true;
break;
default:
}
}
}
}
}
for (int x = 0; x < config.getSizeInventory(); x++)
{
ItemStack is = config.getStackInSlot( x );
if ( is != null )
priorityList.add( AEItemStack.create( is ) );
}
for (int x = 0; x < config.getSizeInventory(); x++)
{
ItemStack is = config.getStackInSlot( x );
if ( is != null )
priorityList.add( AEItemStack.create( is ) );
}
// myWhitelist = hasInverter ? IncludeExclude.BLACKLIST : IncludeExclude.WHITELIST;
if ( !priorityList.isEmpty() )
{
if ( hasFuzzy )
myMergedList.addNewList( new FuzzyPriorityList<IAEItemStack>( priorityList, fzMode ), !hasInverter );
else
myMergedList.addNewList( new PrecisePriorityList<IAEItemStack>( priorityList ), !hasInverter );
if ( !priorityList.isEmpty() )
{
if ( hasFuzzy )
myPartitionList = new FuzzyPriorityList<IAEItemStack>( priorityList, fzMode );
else
myPartitionList = new PrecisePriorityList<IAEItemStack>( priorityList );
myPartitionList = myMergedList;
}
}
}
updateView();
}
@@ -175,7 +184,7 @@ public class ItemRepo
{
if ( myPartitionList != null )
{
if ( hasInverter == myPartitionList.isListed( is ) )
if ( !myPartitionList.isListed( is ) )
continue;
}
+1 -1
View File
@@ -357,7 +357,7 @@ public class BaseBlockRender
}
}
public void renderInventory(AEBaseBlock block, ItemStack item, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock block, ItemStack item, RenderBlocks renderer, ItemRenderType type, Object[] data)
{
Tessellator tess = Tessellator.instance;
+1 -1
View File
@@ -38,7 +38,7 @@ public class ItemRenderer implements IItemRenderer
if ( type == ItemRenderType.INVENTORY )
GL11.glTranslatef( 0.0f, -0.1f, 0.0f );
WorldRender.instance.renderItemBlock( item, type );
WorldRender.instance.renderItemBlock( item, type, data );
GL11.glPopAttrib();
GL11.glPopMatrix();
+2 -2
View File
@@ -58,7 +58,7 @@ public class WorldRender implements ISimpleBlockRenderingHandler
return renderID;
}
public void renderItemBlock(ItemStack item, ItemRenderType type)
public void renderItemBlock(ItemStack item, ItemRenderType type, Object[] data)
{
Block blk = Block.getBlockFromItem( item.getItem() );
if ( blk instanceof AEBaseBlock )
@@ -67,7 +67,7 @@ public class WorldRender implements ISimpleBlockRenderingHandler
renderer.setRenderBoundsFromBlock( block );
renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0;
getRender( block ).renderInventory( block, item, renderer, type );
getRender( block ).renderInventory( block, item, renderer, type, data );
renderer.uvRotateBottom = renderer.uvRotateEast = renderer.uvRotateNorth = renderer.uvRotateSouth = renderer.uvRotateTop = renderer.uvRotateWest = 0;
}
else
+1 -1
View File
@@ -32,7 +32,7 @@ public class RenderBlockCharger extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
Tessellator tess = Tessellator.instance;
+3 -3
View File
@@ -25,15 +25,15 @@ public class RenderBlockCrank extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
renderer.renderAllFaces = true;
renderer.setRenderBounds( 0.5D - 0.05, 0.5D - 0.5, 0.5D - 0.05, 0.5D + 0.05, 0.5D + 0.3, 0.5D + 0.05 );
super.renderInventory( blk, is, renderer, type );
super.renderInventory( blk, is, renderer, type, obj );
renderer.setRenderBounds( 0.70D - 0.15, 0.75D - 0.05, 0.5D - 0.05, 0.70D + 0.28, 0.75D + 0.05, 0.5D + 0.05 );
super.renderInventory( blk, is, renderer, type );
super.renderInventory( blk, is, renderer, type, obj );
renderer.renderAllFaces = false;
}
@@ -16,7 +16,7 @@ public class RenderBlockEnergyCube extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
IAEItemPowerStorage myItem = (IAEItemPowerStorage) is.getItem();
double internalCurrentPower = myItem.getAECurrentPower( is );
@@ -30,7 +30,7 @@ public class RenderBlockEnergyCube extends BaseBlockRender
meta = 0;
renderer.setOverrideBlockTexture( blk.getIcon( 0, meta ) );
super.renderInventory( blk, is, renderer, type );
super.renderInventory( blk, is, renderer, type, obj );
renderer.setOverrideBlockTexture( null );
}
@@ -26,7 +26,7 @@ public class RenderBlockSkyChest extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
GL11.glEnable( 32826 /* GL_RESCALE_NORMAL_EXT */);
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
@@ -31,7 +31,7 @@ public class RenderBlockSkyCompass extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
GL11.glEnable( 32826 /* GL_RESCALE_NORMAL_EXT */);
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
@@ -62,10 +62,16 @@ public class RenderBlockSkyCompass extends BaseBlockRender
}
long now = System.currentTimeMillis();
if ( type == ItemRenderType.EQUIPPED_FIRST_PERSON || type == ItemRenderType.INVENTORY )
if ( type == ItemRenderType.EQUIPPED_FIRST_PERSON || type == ItemRenderType.INVENTORY || type == ItemRenderType.EQUIPPED )
{
EntityPlayer p = Minecraft.getMinecraft().thePlayer;
if ( type == ItemRenderType.EQUIPPED )
{
p = (EntityPlayer) obj[1];
p.rotationYaw = p.renderYawOffset;
}
int x = (int) p.posX;
int y = (int) p.posY;
int z = (int) p.posZ;
@@ -27,7 +27,7 @@ public class RenderBlockWireless extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
this.blk = blk;
cenx = 0;
+2 -2
View File
@@ -23,13 +23,13 @@ public class RenderDrive extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
renderer.overrideBlockTexture = ExtraTextures.getMissing();
this.renderInvBlock( EnumSet.of( ForgeDirection.SOUTH ), block, is, Tessellator.instance, 0x000000, renderer );
renderer.overrideBlockTexture = null;
super.renderInventory( block, is, renderer, type );
super.renderInventory( block, is, renderer, type, obj );
}
@Override
+2 -2
View File
@@ -27,7 +27,7 @@ public class RenderMEChest extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
renderer.overrideBlockTexture = ExtraTextures.getMissing();
this.renderInvBlock( EnumSet.of( ForgeDirection.SOUTH ), block, is, Tessellator.instance, 0x000000, renderer );
@@ -36,7 +36,7 @@ public class RenderMEChest extends BaseBlockRender
this.renderInvBlock( EnumSet.of( ForgeDirection.UP ), block, is, Tessellator.instance, 0xffffff, renderer );
renderer.overrideBlockTexture = null;
super.renderInventory( block, is, renderer, type );
super.renderInventory( block, is, renderer, type, obj );
}
@Override
+1 -1
View File
@@ -15,7 +15,7 @@ public class RenderNull extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
}
+2 -2
View File
@@ -72,13 +72,13 @@ public class RenderQNB extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock block, ItemStack item, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock block, ItemStack item, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
float px = 2.0f / 16.0f;
float maxpx = 14.0f / 16.0f;
renderer.setRenderBounds( px, px, px, maxpx, maxpx, maxpx );
super.renderInventory( block, item, renderer, type );
super.renderInventory( block, item, renderer, type, obj );
}
@Override
+3 -3
View File
@@ -114,12 +114,12 @@ public class RenderQuartzGlass extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
renderer.overrideBlockTexture = ExtraTextures.GlassFrame.getIcon();
super.renderInventory( block, is, renderer, type );
super.renderInventory( block, is, renderer, type, obj );
renderer.overrideBlockTexture = null;
super.renderInventory( block, is, renderer, type );
super.renderInventory( block, is, renderer, type, obj );
}
@Override
+3 -3
View File
@@ -17,11 +17,11 @@ public class RenderQuartzOre extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
super.renderInventory( blk, is, renderer, type );
super.renderInventory( blk, is, renderer, type, obj );
blk.getRendererInstance().setTemporaryRenderIcon( ExtraTextures.OreQuartzStone.getIcon() );
super.renderInventory( blk, is, renderer, type );
super.renderInventory( blk, is, renderer, type, obj );
blk.getRendererInstance().setTemporaryRenderIcon( null );
}
+1 -1
View File
@@ -22,7 +22,7 @@ public class RenderQuartzTorch extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
Tessellator tess = Tessellator.instance;
+3 -3
View File
@@ -21,12 +21,12 @@ public class RenderSpatialPylon extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
renderer.overrideBlockTexture = ExtraTextures.BlockSpatialPylon_dim.getIcon();
super.renderInventory( block, is, renderer, type );
super.renderInventory( block, is, renderer, type, obj );
renderer.overrideBlockTexture = null;
super.renderInventory( block, is, renderer, type );
super.renderInventory( block, is, renderer, type, obj );
}
@Override
+2 -2
View File
@@ -15,10 +15,10 @@ public class RenderTinyTNT extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
renderer.setRenderBounds( 0.25f, 0.0f, 0.25f, 0.75f, 0.5f, 0.75f );
super.renderInventory( block, is, renderer, type );
super.renderInventory( block, is, renderer, type, obj );
}
@Override
+1 -1
View File
@@ -19,7 +19,7 @@ public class RendererCableBus extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
// nothin.
}
+2 -2
View File
@@ -22,7 +22,7 @@ public class RendererSecurity extends BaseBlockRender
}
@Override
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type)
public void renderInventory(AEBaseBlock block, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
{
renderer.overrideBlockTexture = ExtraTextures.getMissing();
this.renderInvBlock( EnumSet.of( ForgeDirection.SOUTH ), block, is, Tessellator.instance, 0x000000, renderer );
@@ -31,7 +31,7 @@ public class RendererSecurity extends BaseBlockRender
this.renderInvBlock( EnumSet.of( ForgeDirection.UP ), block, is, Tessellator.instance, 0xffffff, renderer );
renderer.overrideBlockTexture = null;
super.renderInventory( block, is, renderer, type );
super.renderInventory( block, is, renderer, type, obj );
}
@Override