ME Tunnel + Network Tool

This commit is contained in:
AlgorithmX2
2014-01-23 10:28:12 -06:00
parent 1b77755dd6
commit dfbc8a6c79
46 changed files with 929 additions and 128 deletions
+2 -1
View File
@@ -1,10 +1,11 @@
package appeng.helpers;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public interface IGuiItem
{
Object getGuiObject(ItemStack is);
Object getGuiObject(ItemStack is, World world, int x, int y, int z);
}
+14
View File
@@ -0,0 +1,14 @@
package appeng.helpers;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import appeng.api.networking.IGridHost;
public interface INetworkTool extends IInventory
{
IGridHost getGridHost(); // null for most purposes.
public ItemStack getItemStack();
}
+116
View File
@@ -0,0 +1,116 @@
package appeng.helpers;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import appeng.api.implementations.IUpgradeModule;
import appeng.api.networking.IGridHost;
import appeng.tile.inventory.AppEngInternalInventory;
import appeng.util.Platform;
public class NetworkToolInv implements INetworkTool
{
final AppEngInternalInventory inv;
final ItemStack is;
final IGridHost gh;
public NetworkToolInv(ItemStack is, IGridHost gHost) {
this.is = is;
gh = gHost;
inv = new AppEngInternalInventory( null, 9 );
inv.readFromNBT( Platform.openNbtData( is ), "inv" );
}
@Override
public int getSizeInventory()
{
return inv.getSizeInventory();
}
@Override
public ItemStack getStackInSlot(int i)
{
return inv.getStackInSlot( i );
}
@Override
public ItemStack decrStackSize(int i, int j)
{
return inv.decrStackSize( i, j );
}
@Override
public ItemStack getStackInSlotOnClosing(int i)
{
return inv.getStackInSlotOnClosing( i );
}
@Override
public void setInventorySlotContents(int i, ItemStack itemstack)
{
inv.setInventorySlotContents( i, itemstack );
}
@Override
public String getInvName()
{
return inv.getInvName();
}
@Override
public boolean isInvNameLocalized()
{
return inv.isInvNameLocalized();
}
@Override
public int getInventoryStackLimit()
{
return inv.getInventoryStackLimit();
}
@Override
public void onInventoryChanged()
{
inv.onInventoryChanged();
inv.writeToNBT( Platform.openNbtData( is ), "inv" );
}
@Override
public boolean isUseableByPlayer(EntityPlayer entityplayer)
{
return inv.isUseableByPlayer( entityplayer );
}
@Override
public void openChest()
{
inv.openChest();
}
@Override
public void closeChest()
{
inv.closeChest();
}
@Override
public boolean isItemValidForSlot(int i, ItemStack itemstack)
{
return inv.isItemValidForSlot( i, itemstack ) && itemstack.getItem() instanceof IUpgradeModule
&& ((IUpgradeModule) itemstack.getItem()).getType( itemstack ) != null;
}
@Override
public ItemStack getItemStack()
{
return is;
}
@Override
public IGridHost getGridHost()
{
return gh;
}
}
+4
View File
@@ -102,6 +102,9 @@ public class PartPlacement
host.getFacadeContainer().removeFacade( host, sp.side );
}
if ( host.isEmpty() )
world.setBlock( x, y, z, 0 );
if ( is != null && !is.isEmpty() )
{
Platform.spawnDrops( world, x, y, z, is );
@@ -120,6 +123,7 @@ public class PartPlacement
e.printStackTrace();
}
}
return true;
}
return false;