This commit is contained in:
AlgorithmX2
2014-08-12 19:21:42 -05:00
22 changed files with 79 additions and 172 deletions
+1 -1
View File
@@ -54,7 +54,7 @@ public class BlockQuartzGrowthAccelerator extends AEBaseBlock implements IOrient
TileQuartzGrowthAccelerator tqga = getTileEntity( w, x, y, z ); TileQuartzGrowthAccelerator tqga = getTileEntity( w, x, y, z );
if ( tqga.hasPower && CommonHelper.proxy.shouldAddParticles( r ) ) if ( tqga != null && tqga.hasPower && CommonHelper.proxy.shouldAddParticles( r ) )
{ {
double d0 = (double) (r.nextFloat() - 0.5F); double d0 = (double) (r.nextFloat() - 0.5F);
double d1 = (double) (r.nextFloat() - 0.5F); double d1 = (double) (r.nextFloat() - 0.5F);
+4 -4
View File
@@ -364,8 +364,8 @@ public class RenderBlocksWorkaround extends RenderBlocks
{ {
Tessellator tessellator = Tessellator.instance; Tessellator tessellator = Tessellator.instance;
double d4 = (double) par8Icon.getInterpolatedU( this.renderMinZ * 16.0D ); double d3 = (double) par8Icon.getInterpolatedU( 16.0D - this.renderMinZ * 16.0D );
double d3 = (double) par8Icon.getInterpolatedU( this.renderMaxZ * 16.0D ); double d4 = (double) par8Icon.getInterpolatedU( 16.0D - this.renderMaxZ * 16.0D );
double d5 = (double) par8Icon.getInterpolatedV( 16.0D - this.renderMaxY * 16.0D ); double d5 = (double) par8Icon.getInterpolatedV( 16.0D - this.renderMaxY * 16.0D );
double d6 = (double) par8Icon.getInterpolatedV( 16.0D - this.renderMinY * 16.0D ); double d6 = (double) par8Icon.getInterpolatedV( 16.0D - this.renderMinY * 16.0D );
@@ -554,8 +554,8 @@ public class RenderBlocksWorkaround extends RenderBlocks
{ {
Tessellator tessellator = Tessellator.instance; Tessellator tessellator = Tessellator.instance;
double d4 = (double) par8Icon.getInterpolatedU( this.renderMinX * 16.0D ); double d3 = (double) par8Icon.getInterpolatedU( 16.0D - this.renderMinX * 16.0D );
double d3 = (double) par8Icon.getInterpolatedU( this.renderMaxX * 16.0D ); double d4 = (double) par8Icon.getInterpolatedU( 16.0D - this.renderMaxX * 16.0D );
double d5 = (double) par8Icon.getInterpolatedV( 16.0D - this.renderMaxY * 16.0D ); double d5 = (double) par8Icon.getInterpolatedV( 16.0D - this.renderMaxY * 16.0D );
double d6 = (double) par8Icon.getInterpolatedV( 16.0D - this.renderMinY * 16.0D ); double d6 = (double) par8Icon.getInterpolatedV( 16.0D - this.renderMinY * 16.0D );
+2 -1
View File
@@ -482,7 +482,8 @@ public class CableBusPart extends JCuboidPart implements JNormalOcclusion, IReds
@Override @Override
public void partChanged() public void partChanged()
{ {
notifyNeighbors(); if ( isInWorld() )
notifyNeighbors();
} }
@Override @Override
+3 -1
View File
@@ -40,7 +40,9 @@ public enum IntegrationType
Mekanism(IntegrationSide.BOTH, "Mekanism", "Mekanism"), Mekanism(IntegrationSide.BOTH, "Mekanism", "Mekanism"),
ImmibisMicroblocks(IntegrationSide.BOTH, "ImmibisMicroblocks", "ImmibisMicroblocks"); ImmibisMicroblocks(IntegrationSide.BOTH, "ImmibisMicroblocks", "ImmibisMicroblocks"),
BetterStorage(IntegrationSide.BOTH, "BetterStorage", "betterstorage" );
public final IntegrationSide side; public final IntegrationSide side;
public final String dspName; public final String dspName;
@@ -3,7 +3,7 @@ package appeng.integration.abstraction;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import appeng.util.InventoryAdaptor; import appeng.util.InventoryAdaptor;
public interface IBS public interface IBetterStorage
{ {
boolean isStorageCrate(Object te); boolean isStorageCrate(Object te);
@@ -1,18 +1,18 @@
package appeng.integration.modules.dead; package appeng.integration.modules;
import net.mcft.copy.betterstorage.api.ICrateStorage; import net.mcft.copy.betterstorage.api.ICrateStorage;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.AEApi; import appeng.api.AEApi;
import appeng.integration.IIntegrationModule; import appeng.integration.IIntegrationModule;
import appeng.integration.abstraction.IBS; import appeng.integration.abstraction.IBetterStorage;
import appeng.integration.modules.helpers.dead.BSCrateHandler; import appeng.integration.modules.helpers.BSCrateHandler;
import appeng.integration.modules.helpers.dead.BSCrateStorageAdaptor; import appeng.integration.modules.helpers.BSCrateStorageAdaptor;
import appeng.util.InventoryAdaptor; import appeng.util.InventoryAdaptor;
public class BS implements IIntegrationModule, IBS public class BetterStorage implements IIntegrationModule, IBetterStorage
{ {
public static BS instance; public static BetterStorage instance;
@Override @Override
public boolean isStorageCrate(Object te) public boolean isStorageCrate(Object te)
-41
View File
@@ -1,41 +0,0 @@
package appeng.integration.modules.dead;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import appeng.api.AEApi;
import appeng.integration.IIntegrationModule;
public class Mekanism implements IIntegrationModule
{
public static Mekanism instance;
@Override
public void Init()
{
// TODO Auto-generated method stub
}
@Override
public void PostInit()
{
// certus quartz
crusher( AEApi.instance().materials().materialCertusQuartzCrystal.stack( 1 ),
AEApi.instance().materials().materialCertusQuartzDust.stack( 1 ) );
crusher( AEApi.instance().materials().materialCertusQuartzCrystalCharged.stack( 1 ),
AEApi.instance().materials().materialCertusQuartzDust.stack( 1 ) );
// fluix
crusher( AEApi.instance().materials().materialFluixCrystal.stack( 1 ), AEApi.instance().materials().materialFluixDust.stack( 1 ) );
// nether quartz
crusher( new ItemStack( Item.netherQuartz ), AEApi.instance().materials().materialNetherQuartzDust.stack( 1 ) );
}
private void crusher(ItemStack input, ItemStack output)
{
mekanism.api.RecipeHelper.addCrusherRecipe( input, output );
}
}
-78
View File
@@ -1,78 +0,0 @@
package appeng.integration.modules;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.AEApi;
import appeng.integration.BaseModule;
import appeng.integration.IIntegrationModule;
import appeng.integration.abstraction.ITE;
import cpw.mods.fml.common.event.FMLInterModComms;
public class TE extends BaseModule implements IIntegrationModule, ITE
{
public static TE instance;
@Override
public void Init()
{
}
@Override
public void PostInit()
{
// certus quartz
pulverizer( AEApi.instance().materials().materialCertusQuartzCrystal.stack( 1 ), AEApi.instance().materials().materialCertusQuartzDust.stack( 1 ) );
pulverizer( AEApi.instance().materials().materialCertusQuartzCrystalCharged.stack( 1 ), AEApi.instance().materials().materialCertusQuartzDust.stack( 1 ) );
// fluix
pulverizer( AEApi.instance().materials().materialFluixCrystal.stack( 1 ), AEApi.instance().materials().materialFluixDust.stack( 1 ) );
// nether quartz
pulverizer( new ItemStack( Item.netherQuartz ), AEApi.instance().materials().materialNetherQuartzDust.stack( 1 ) );
}
private void pulverizer(ItemStack in, ItemStack out)
{
NBTTagCompound toSend = new NBTTagCompound();
toSend.setInteger( "energy", 3200 );
toSend.setTag( "input", new NBTTagCompound() );
toSend.setTag( "primaryOutput", new NBTTagCompound() );
in.writeToNBT( toSend.getCompoundTag( "input" ) );
out.writeToNBT( toSend.getCompoundTag( "primaryOutput" ) );
FMLInterModComms.sendMessage( "ThermalExpansion", "PulverizerRecipe", toSend );
}
@Override
public ItemStack addItemsToPipe(TileEntity ad, ItemStack itemstack, ForgeDirection dir)
{
return ((IItemConduit) ad).insertItem( dir, itemstack );
}
@Override
public void addPulverizerRecipe(int i, ItemStack blkQuartz, ItemStack blockDust)
{
// TODO Auto-generated method stub
}
@Override
public void addPulverizerRecipe(int i, ItemStack blkQuartzOre, ItemStack matQuartz, ItemStack matQuartzDust)
{
// TODO Auto-generated method stub
}
@Override
public boolean isPipe(TileEntity te, ForgeDirection opposite)
{
return te instanceof IItemConduit;
}
}
@@ -1,4 +1,4 @@
package appeng.integration.modules.helpers.dead; package appeng.integration.modules.helpers;
import net.mcft.copy.betterstorage.api.ICrateStorage; import net.mcft.copy.betterstorage.api.ICrateStorage;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@@ -1,8 +1,9 @@
package appeng.integration.modules.helpers.dead; package appeng.integration.modules.helpers;
import net.mcft.copy.betterstorage.api.ICrateStorage; import net.mcft.copy.betterstorage.api.ICrateStorage;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.networking.security.BaseActionSource;
import appeng.api.storage.IExternalStorageHandler; import appeng.api.storage.IExternalStorageHandler;
import appeng.api.storage.IMEInventory; import appeng.api.storage.IMEInventory;
import appeng.api.storage.StorageChannel; import appeng.api.storage.StorageChannel;
@@ -11,15 +12,15 @@ public class BSCrateHandler implements IExternalStorageHandler
{ {
@Override @Override
public boolean canHandle(TileEntity te, ForgeDirection d, StorageChannel chan) public boolean canHandle(TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource mySrc)
{ {
return chan == StorageChannel.ITEMS && te instanceof ICrateStorage; return channel == StorageChannel.ITEMS && te instanceof ICrateStorage;
} }
@Override @Override
public IMEInventory getInventory(TileEntity te, ForgeDirection d, StorageChannel chan) public IMEInventory getInventory(TileEntity te, ForgeDirection d, StorageChannel channel, BaseActionSource src)
{ {
if ( chan == StorageChannel.ITEMS ) if ( channel == StorageChannel.ITEMS )
return new BSCrate( te, ForgeDirection.UNKNOWN ); return new BSCrate( te, ForgeDirection.UNKNOWN );
return null; return null;
} }
@@ -1,4 +1,4 @@
package appeng.integration.modules.helpers.dead; package appeng.integration.modules.helpers;
import java.util.Iterator; import java.util.Iterator;
@@ -631,8 +631,11 @@ public class CraftingCPUCluster implements IAECluster, ICraftingCPU
{ {
postChange( input[x], machineSrc ); postChange( input[x], machineSrc );
ic.setInventorySlotContents( x, is ); ic.setInventorySlotContents( x, is );
found = true; if ( is.stackSize == input[x].getStackSize() )
continue; {
found = true;
continue;
}
} }
} }
+1 -1
View File
@@ -165,7 +165,7 @@ public class MEMonitorIInventory implements IMEInventory<IAEItemStack>, IMEMonit
for (ItemSlot is : adaptor) for (ItemSlot is : adaptor)
{ {
CachedItemStack old = memory.get( is.slot ); CachedItemStack old = memory.get( is.slot );
ItemStack newIS = is == null ? null : is.getItemStack(); ItemStack newIS = is == null || is.isExtractable == false ? null : is.getItemStack();
ItemStack oldIS = old == null ? null : old.itemStack; ItemStack oldIS = old == null ? null : old.itemStack;
if ( isDiffrent( newIS, oldIS ) ) if ( isDiffrent( newIS, oldIS ) )
-2
View File
@@ -5,7 +5,6 @@ import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.config.AccessRestriction; import appeng.api.config.AccessRestriction;
import appeng.api.config.Actionable; import appeng.api.config.Actionable;
import appeng.api.config.PowerMultiplier; import appeng.api.config.PowerMultiplier;
import appeng.api.networking.GridFlags;
import appeng.api.networking.energy.IAEPowerStorage; import appeng.api.networking.energy.IAEPowerStorage;
import appeng.api.networking.events.MENetworkPowerStorage; import appeng.api.networking.events.MENetworkPowerStorage;
import appeng.api.networking.events.MENetworkPowerStorage.PowerEventType; import appeng.api.networking.events.MENetworkPowerStorage.PowerEventType;
@@ -70,7 +69,6 @@ public class TileEnergyCell extends AENetworkTile implements IAEPowerStorage
public TileEnergyCell() { public TileEnergyCell() {
gridProxy.setIdlePowerUsage( 0 ); gridProxy.setIdlePowerUsage( 0 );
gridProxy.setFlags( GridFlags.CANNOT_CARRY );
addNewHandler( new TileEnergyCellHandler() ); addNewHandler( new TileEnergyCellHandler() );
} }
+6 -2
View File
@@ -125,6 +125,7 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
@Override @Override
public void readFromNBT(NBTTagCompound data) public void readFromNBT(NBTTagCompound data)
{ {
isCached = false;
priority = data.getInteger( "priority" ); priority = data.getInteger( "priority" );
} }
@@ -175,8 +176,11 @@ public class TileDrive extends AENetworkInvTile implements IChestOrDrive, IPrior
@Override @Override
public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removed, ItemStack added) public void onChangeInventory(IInventory inv, int slot, InvOperation mc, ItemStack removed, ItemStack added)
{ {
isCached = false; // recalculate the storage cell. if ( isCached )
updateState(); {
isCached = false; // recalculate the storage cell.
updateState();
}
try try
{ {
+10 -4
View File
@@ -9,6 +9,9 @@ import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntityChest; import net.minecraft.tileentity.TileEntityChest;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.config.FuzzyMode; import appeng.api.config.FuzzyMode;
import appeng.core.AppEng;
import appeng.integration.IntegrationType;
import appeng.integration.abstraction.IBetterStorage;
import appeng.util.inv.AdaptorIInventory; import appeng.util.inv.AdaptorIInventory;
import appeng.util.inv.AdaptorISpecialInventory; import appeng.util.inv.AdaptorISpecialInventory;
import appeng.util.inv.AdaptorList; import appeng.util.inv.AdaptorList;
@@ -44,6 +47,8 @@ public abstract class InventoryAdaptor implements Iterable<ItemSlot>
if ( te == null ) if ( te == null )
return null; return null;
IBetterStorage bs = (IBetterStorage) (AppEng.instance.isIntegrationEnabled( IntegrationType.BetterStorage ) ? AppEng.instance.getIntegration( IntegrationType.BetterStorage ) : null);
if ( te instanceof EntityPlayer ) if ( te instanceof EntityPlayer )
{ {
return new AdaptorIInventory( new AdaptorPlayerInventory( ((EntityPlayer) te).inventory ) ); return new AdaptorIInventory( new AdaptorPlayerInventory( ((EntityPlayer) te).inventory ) );
@@ -51,10 +56,11 @@ public abstract class InventoryAdaptor implements Iterable<ItemSlot>
else if ( te instanceof ArrayList ) else if ( te instanceof ArrayList )
{ {
return new AdaptorList( (ArrayList) te ); return new AdaptorList( (ArrayList) te );
}/* }
* else if ( BS.instance != null && BS.instance.isStorageCrate( te ) ) { return BS.instance.getAdaptor( te, d ); else if ( bs != null && bs.isStorageCrate( te ) )
* } {
*/ return bs.getAdaptor( te, d );
}
else if ( te instanceof TileEntityChest ) else if ( te instanceof TileEntityChest )
{ {
return new AdaptorIInventory( (IInventory) Platform.GetChestInv( te ) ); return new AdaptorIInventory( (IInventory) Platform.GetChestInv( te ) );
+6 -2
View File
@@ -341,8 +341,12 @@ public class AdaptorIInventory extends InventoryAdaptor
@Override @Override
public ItemSlot next() public ItemSlot next()
{ {
is.slot = x; ItemStack iss = i.getStackInSlot( x );
is.setItemStack( i.getStackInSlot( x++ ) );
is.isExtractable = canRemoveStackFromSlot( x, iss );
is.setItemStack( iss );
is.slot = x++;
return is; return is;
} }
+1
View File
@@ -33,6 +33,7 @@ public class IMEAdaptorIterator implements Iterator<ItemSlot>
public ItemSlot next() public ItemSlot next()
{ {
slot.slot = offset++; slot.slot = offset++;
slot.isExtractable=true;
if ( parent.maxSlots < offset ) if ( parent.maxSlots < offset )
parent.maxSlots = offset; parent.maxSlots = offset;
+2
View File
@@ -13,6 +13,8 @@ public class ItemSlot
private IAEItemStack aeitemstack; private IAEItemStack aeitemstack;
private ItemStack itemStack; private ItemStack itemStack;
public boolean isExtractable;
public void setItemStack(ItemStack is) public void setItemStack(ItemStack is)
{ {
aeitemstack = null; aeitemstack = null;
+3 -3
View File
@@ -207,16 +207,16 @@ public final class ItemList<StackType extends IAEStack> implements IItemList<Sta
if ( ais.isOre() ) if ( ais.isOre() )
{ {
OreRefrence or = ais.def.isOre; OreRefrence or = ais.def.isOre;
if ( or.aeotherOptions.size() == 1 ) if ( or.getAEEquivilients().size() == 1 )
{ {
IAEItemStack is = or.aeotherOptions.get( 0 ); IAEItemStack is = or.getAEEquivilients().get( 0 );
return findFuzzyDamage( (AEItemStack) is, fuzzy, is.getItemDamage() == OreDictionary.WILDCARD_VALUE ); return findFuzzyDamage( (AEItemStack) is, fuzzy, is.getItemDamage() == OreDictionary.WILDCARD_VALUE );
} }
else else
{ {
Collection<StackType> output = new LinkedList(); Collection<StackType> output = new LinkedList();
for (IAEItemStack is : or.aeotherOptions) for (IAEItemStack is : or.getAEEquivilients())
output.addAll( findFuzzyDamage( (AEItemStack) is, fuzzy, is.getItemDamage() == OreDictionary.WILDCARD_VALUE ) ); output.addAll( findFuzzyDamage( (AEItemStack) is, fuzzy, is.getItemDamage() == OreDictionary.WILDCARD_VALUE ) );
return output; return output;
+2 -10
View File
@@ -68,7 +68,6 @@ public class OreHelper
OreRefrence ref = new OreRefrence(); OreRefrence ref = new OreRefrence();
Collection<Integer> ores = ref.getOres(); Collection<Integer> ores = ref.getOres();
Collection<ItemStack> set = ref.getEquivilients(); Collection<ItemStack> set = ref.getEquivilients();
Collection<IAEItemStack> aeset = ref.getAEEquivilients();
for (String ore : OreDictionary.getOreNames()) for (String ore : OreDictionary.getOreNames())
{ {
@@ -93,14 +92,7 @@ public class OreHelper
} }
if ( !set.isEmpty() ) if ( !set.isEmpty() )
{
or.oreValue = ref; or.oreValue = ref;
// SUMMON AE STACKS!
for (ItemStack is : set)
if ( is.getItem() != null )
aeset.add( AEItemStack.create( is ) );
}
} }
return or.oreValue; return or.oreValue;
@@ -118,7 +110,7 @@ public class OreHelper
return false; return false;
Collection<Integer> bOres = b.getOres(); Collection<Integer> bOres = b.getOres();
for (Integer ore : a.ores) for (Integer ore : a.getOres())
{ {
if ( bOres.contains( ore ) ) if ( bOres.contains( ore ) )
return true; return true;
@@ -136,7 +128,7 @@ public class OreHelper
return true; return true;
Collection<Integer> bOres = b.getOres(); Collection<Integer> bOres = b.getOres();
for (Integer ore : a.ores) for (Integer ore : a.getOres())
{ {
if ( bOres.contains( ore ) ) if ( bOres.contains( ore ) )
return true; return true;
+16 -4
View File
@@ -1,8 +1,10 @@
package appeng.util.item; package appeng.util.item;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
@@ -10,17 +12,27 @@ import appeng.api.storage.data.IAEItemStack;
public class OreRefrence public class OreRefrence
{ {
LinkedList<ItemStack> otherOptions = new LinkedList(); private LinkedList<ItemStack> otherOptions = new LinkedList();
LinkedList<IAEItemStack> aeotherOptions = new LinkedList(); private ArrayList aeotherOptions = null;
HashSet<Integer> ores = new HashSet<Integer>(); private HashSet<Integer> ores = new HashSet<Integer>();
public Collection<ItemStack> getEquivilients() public Collection<ItemStack> getEquivilients()
{ {
return otherOptions; return otherOptions;
} }
public Collection<IAEItemStack> getAEEquivilients() public List<IAEItemStack> getAEEquivilients()
{ {
if ( aeotherOptions == null )
{
aeotherOptions = new ArrayList( otherOptions.size() );
// SUMMON AE STACKS!
for (ItemStack is : otherOptions)
if ( is.getItem() != null )
aeotherOptions.add( AEItemStack.create( is ) );
}
return aeotherOptions; return aeotherOptions;
} }