Basic Block/Gui/Tile registertion work for Inscriber is done.
This commit is contained in:
@@ -5,10 +5,14 @@ import java.util.EnumSet;
|
|||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import appeng.block.AEBaseBlock;
|
import appeng.block.AEBaseBlock;
|
||||||
|
import appeng.client.render.BaseBlockRender;
|
||||||
|
import appeng.client.render.blocks.RenderBlockInscriber;
|
||||||
import appeng.core.features.AEFeature;
|
import appeng.core.features.AEFeature;
|
||||||
|
import appeng.core.sync.GuiBridge;
|
||||||
import appeng.tile.misc.TileInscriber;
|
import appeng.tile.misc.TileInscriber;
|
||||||
import appeng.tile.misc.TileInterface;
|
import appeng.util.Platform;
|
||||||
|
|
||||||
public class BlockInscriber extends AEBaseBlock
|
public class BlockInscriber extends AEBaseBlock
|
||||||
{
|
{
|
||||||
@@ -17,6 +21,14 @@ public class BlockInscriber extends AEBaseBlock
|
|||||||
super( BlockInscriber.class, Material.iron );
|
super( BlockInscriber.class, Material.iron );
|
||||||
setfeature( EnumSet.of( AEFeature.Inscriber ) );
|
setfeature( EnumSet.of( AEFeature.Inscriber ) );
|
||||||
setTileEntiy( TileInscriber.class );
|
setTileEntiy( TileInscriber.class );
|
||||||
|
setLightOpacity( 2 );
|
||||||
|
isFullSize = isOpaque = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Class<? extends BaseBlockRender> getRenderer()
|
||||||
|
{
|
||||||
|
return RenderBlockInscriber.class;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -25,11 +37,11 @@ public class BlockInscriber extends AEBaseBlock
|
|||||||
if ( p.isSneaking() )
|
if ( p.isSneaking() )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
TileInterface tg = getTileEntity( w, x, y, z );
|
TileInscriber tg = getTileEntity( w, x, y, z );
|
||||||
if ( tg != null )
|
if ( tg != null )
|
||||||
{
|
{
|
||||||
// if ( Platform.isServer() )
|
if ( Platform.isServer() )
|
||||||
// Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_INSCRIBER );
|
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_INSCRIBER );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package appeng.client.gui.implementations;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
import appeng.client.gui.AEBaseGui;
|
||||||
|
import appeng.container.implementations.ContainerInscriber;
|
||||||
|
import appeng.core.localization.GuiText;
|
||||||
|
import appeng.tile.misc.TileInscriber;
|
||||||
|
|
||||||
|
public class GuiInscriber extends AEBaseGui
|
||||||
|
{
|
||||||
|
|
||||||
|
public GuiInscriber(InventoryPlayer inventoryPlayer, TileInscriber te) {
|
||||||
|
super( new ContainerInscriber( inventoryPlayer, te ) );
|
||||||
|
this.ySize = 176;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawBG(int offsetX, int offsetY, int mouseX, int mouseY)
|
||||||
|
{
|
||||||
|
bindTexture( "guis/inscriber.png" );
|
||||||
|
this.drawTexturedModalRect( offsetX, offsetY, 0, 0, xSize, ySize );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void drawFG(int offsetX, int offsetY, int mouseX, int mouseY)
|
||||||
|
{
|
||||||
|
fontRendererObj.drawString( GuiText.Inscriber.getLocal(), 8, 6, 4210752 );
|
||||||
|
fontRendererObj.drawString( GuiText.inventory.getLocal(), 8, ySize - 96 + 3, 4210752 );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,158 @@
|
|||||||
|
package appeng.client.render.blocks;
|
||||||
|
|
||||||
|
import java.util.EnumSet;
|
||||||
|
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.client.renderer.OpenGlHelper;
|
||||||
|
import net.minecraft.client.renderer.RenderBlocks;
|
||||||
|
import net.minecraft.client.renderer.Tessellator;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
|
import net.minecraftforge.client.IItemRenderer.ItemRenderType;
|
||||||
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
|
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
import org.lwjgl.opengl.GL12;
|
||||||
|
|
||||||
|
import appeng.api.util.IOrientable;
|
||||||
|
import appeng.block.AEBaseBlock;
|
||||||
|
import appeng.block.misc.BlockInscriber;
|
||||||
|
import appeng.client.render.BaseBlockRender;
|
||||||
|
import appeng.client.texture.ExtraTextures;
|
||||||
|
import appeng.core.AELog;
|
||||||
|
import appeng.tile.AEBaseTile;
|
||||||
|
import appeng.util.Platform;
|
||||||
|
|
||||||
|
public class RenderBlockInscriber extends BaseBlockRender
|
||||||
|
{
|
||||||
|
|
||||||
|
public RenderBlockInscriber() {
|
||||||
|
super( true, 30 );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderInventory(AEBaseBlock blk, ItemStack is, RenderBlocks renderer, ItemRenderType type, Object[] obj)
|
||||||
|
{
|
||||||
|
Tessellator tess = Tessellator.instance;
|
||||||
|
|
||||||
|
renderer.renderAllFaces = true;
|
||||||
|
setInvRenderBounds( renderer, 6, 1, 0, 10, 15, 2 );
|
||||||
|
renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
||||||
|
|
||||||
|
blk.getRendererInstance().setTemporaryRenderIcons( ExtraTextures.BlockChargerInside.getIcon(), null, null, null, null, null );
|
||||||
|
|
||||||
|
setInvRenderBounds( renderer, 2, 0, 2, 14, 3, 14 );
|
||||||
|
// renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
||||||
|
|
||||||
|
setInvRenderBounds( renderer, 3, 3, 3, 13, 4, 13 );
|
||||||
|
// renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
||||||
|
|
||||||
|
blk.getRendererInstance().setTemporaryRenderIcon( null );
|
||||||
|
|
||||||
|
blk.getRendererInstance().setTemporaryRenderIcons( null, ExtraTextures.BlockChargerInside.getIcon(), null, null, null, null );
|
||||||
|
|
||||||
|
setInvRenderBounds( renderer, 2, 13, 2, 14, 16, 14 );
|
||||||
|
// renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
||||||
|
|
||||||
|
setInvRenderBounds( renderer, 3, 12, 3, 13, 13, 13 );
|
||||||
|
// renderInvBlock( EnumSet.allOf( ForgeDirection.class ), blk, is, tess, 0xffffff, renderer );
|
||||||
|
|
||||||
|
renderer.renderAllFaces = false;
|
||||||
|
// blk.getRendererInstance().setTemporaryRenderIcon( null );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean renderInWorld(AEBaseBlock block, IBlockAccess world, int x, int y, int z, RenderBlocks renderer)
|
||||||
|
{
|
||||||
|
preRenderInWorld( block, world, x, y, z, renderer );
|
||||||
|
|
||||||
|
BlockInscriber blk = (BlockInscriber) block;
|
||||||
|
|
||||||
|
IOrientable te = getOrientable( block, world, x, y, z );
|
||||||
|
|
||||||
|
ForgeDirection fdy = te.getUp();
|
||||||
|
ForgeDirection fdz = te.getForward();
|
||||||
|
ForgeDirection fdx = Platform.crossProduct( fdz, fdy ).getOpposite();
|
||||||
|
|
||||||
|
renderer.renderAllFaces = true;
|
||||||
|
renderBlockBounds( renderer, 6, 1, 0, 10, 15, 2, fdx, fdy, fdz );
|
||||||
|
boolean out = renderer.renderStandardBlock( blk, x, y, z );
|
||||||
|
|
||||||
|
blk.getRendererInstance().setTemporaryRenderIcons( ExtraTextures.BlockChargerInside.getIcon(), null, null, null, null, null );
|
||||||
|
|
||||||
|
renderBlockBounds( renderer, 2, 0, 2, 14, 3, 14, fdx, fdy, fdz );
|
||||||
|
// out = renderer.renderStandardBlock( blk, x, y, z );
|
||||||
|
|
||||||
|
renderBlockBounds( renderer, 3, 3, 3, 13, 4, 13, fdx, fdy, fdz );
|
||||||
|
// out = renderer.renderStandardBlock( blk, x, y, z );
|
||||||
|
|
||||||
|
blk.getRendererInstance().setTemporaryRenderIcon( null );
|
||||||
|
|
||||||
|
blk.getRendererInstance().setTemporaryRenderIcons( null, ExtraTextures.BlockChargerInside.getIcon(), null, null, null, null );
|
||||||
|
|
||||||
|
renderBlockBounds( renderer, 2, 13, 2, 14, 16, 14, fdx, fdy, fdz );
|
||||||
|
// out = renderer.renderStandardBlock( blk, x, y, z );
|
||||||
|
|
||||||
|
renderBlockBounds( renderer, 3, 12, 3, 13, 13, 13, fdx, fdy, fdz );
|
||||||
|
// out = renderer.renderStandardBlock( blk, x, y, z );
|
||||||
|
|
||||||
|
renderer.renderAllFaces = false;
|
||||||
|
blk.getRendererInstance().setTemporaryRenderIcon( null );
|
||||||
|
|
||||||
|
postRenderInWorld( renderer );
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderTile(AEBaseBlock block, AEBaseTile tile, Tessellator tess, double x, double y, double z, float f, RenderBlocks renderer)
|
||||||
|
{
|
||||||
|
ItemStack sis = null;
|
||||||
|
if ( tile instanceof IInventory )
|
||||||
|
sis = ((IInventory) tile).getStackInSlot( 0 );
|
||||||
|
|
||||||
|
if ( sis != null )
|
||||||
|
{
|
||||||
|
applyTESRRotation( x, y, z, tile.getForward(), tile.getUp() );
|
||||||
|
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
GL11.glTranslatef( 0.5f, 0.45f, 0.5f );
|
||||||
|
GL11.glScalef( 1.0f / 1.1f, 1.0f / 1.1f, 1.0f / 1.1f );
|
||||||
|
GL11.glScalef( 1.0f, 1.0f, 1.0f );
|
||||||
|
|
||||||
|
Block blk = Block.getBlockFromItem( sis.getItem() );
|
||||||
|
if ( sis.getItemSpriteNumber() == 0 && block != null && RenderBlocks.renderItemIn3d( blk.getRenderType() ) )
|
||||||
|
{
|
||||||
|
GL11.glRotatef( 25.0f, 1.0f, 0.0f, 0.0f );
|
||||||
|
GL11.glRotatef( 15.0f, 0.0f, 1.0f, 0.0f );
|
||||||
|
GL11.glRotatef( 30.0f, 0.0f, 1.0f, 0.0f );
|
||||||
|
}
|
||||||
|
|
||||||
|
int light = tile.getWorldObj().getLightBrightnessForSkyBlocks( tile.xCoord, tile.yCoord, tile.zCoord, 0 );
|
||||||
|
int br = light;// << 20 | light << 4;
|
||||||
|
int var11 = br % 65536;
|
||||||
|
int var12 = br / 65536;
|
||||||
|
OpenGlHelper.setLightmapTextureCoords( OpenGlHelper.lightmapTexUnit, var11, var12 );
|
||||||
|
|
||||||
|
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
|
||||||
|
|
||||||
|
GL11.glDisable( GL11.GL_LIGHTING );
|
||||||
|
GL11.glDisable( GL12.GL_RESCALE_NORMAL );
|
||||||
|
tess.setColorOpaque_F( 1.0f, 1.0f, 1.0f );
|
||||||
|
|
||||||
|
doRenderItem( sis, tile );
|
||||||
|
}
|
||||||
|
catch (Exception err)
|
||||||
|
{
|
||||||
|
AELog.error( err );
|
||||||
|
}
|
||||||
|
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package appeng.container.implementations;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
import appeng.container.AEBaseContainer;
|
||||||
|
import appeng.tile.misc.TileInscriber;
|
||||||
|
|
||||||
|
public class ContainerInscriber extends AEBaseContainer
|
||||||
|
{
|
||||||
|
|
||||||
|
TileInscriber myte;
|
||||||
|
|
||||||
|
public ContainerInscriber(InventoryPlayer ip, TileInscriber te) {
|
||||||
|
super( ip, te, null );
|
||||||
|
myte = te;
|
||||||
|
|
||||||
|
bindPlayerInventory( ip, 0, 176 - /* height of playerinventory */82 );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+2
-16
@@ -34,6 +34,7 @@ import appeng.block.grindstone.BlockGrinder;
|
|||||||
import appeng.block.misc.BlockCellWorkbench;
|
import appeng.block.misc.BlockCellWorkbench;
|
||||||
import appeng.block.misc.BlockCharger;
|
import appeng.block.misc.BlockCharger;
|
||||||
import appeng.block.misc.BlockCondenser;
|
import appeng.block.misc.BlockCondenser;
|
||||||
|
import appeng.block.misc.BlockInscriber;
|
||||||
import appeng.block.misc.BlockInterface;
|
import appeng.block.misc.BlockInterface;
|
||||||
import appeng.block.misc.BlockQuartzGrowthAccelerator;
|
import appeng.block.misc.BlockQuartzGrowthAccelerator;
|
||||||
import appeng.block.misc.BlockQuartzTorch;
|
import appeng.block.misc.BlockQuartzTorch;
|
||||||
@@ -276,22 +277,10 @@ public class Registration
|
|||||||
|
|
||||||
blocks.blockGrindStone = addFeature( BlockGrinder.class );
|
blocks.blockGrindStone = addFeature( BlockGrinder.class );
|
||||||
blocks.blockCrankHandle = addFeature( BlockCrank.class );
|
blocks.blockCrankHandle = addFeature( BlockCrank.class );
|
||||||
// blocks.blockInscriber = addFeature( BlockInscriber.class );
|
blocks.blockInscriber = addFeature( BlockInscriber.class );
|
||||||
blocks.blockWireless = addFeature( BlockWireless.class );
|
blocks.blockWireless = addFeature( BlockWireless.class );
|
||||||
blocks.blockTinyTNT = addFeature( BlockTinyTNT.class );
|
blocks.blockTinyTNT = addFeature( BlockTinyTNT.class );
|
||||||
|
|
||||||
// blocks.blockQuartzCrystalizer = addFeature(
|
|
||||||
// BlockQuartzCrystalizer.class );
|
|
||||||
// blocks.blockNetworkEmitter = addFeature( BlockNetworkEmitter.class );
|
|
||||||
|
|
||||||
// blocks.blockPatternProvider = addFeature( BlockPatternProvider.class
|
|
||||||
// );
|
|
||||||
// blocks.blockAssemblerFieldWall = addFeature(
|
|
||||||
// BlockContainmentWall.class );
|
|
||||||
// blocks.blockHeatVent = addFeature( BlockHeatVent.class );
|
|
||||||
// blocks.blockCraftingCPU = addFeature( BlockCraftingAccelerator.class
|
|
||||||
// );
|
|
||||||
|
|
||||||
blocks.blockQuantumRing = addFeature( BlockQuantumRing.class );
|
blocks.blockQuantumRing = addFeature( BlockQuantumRing.class );
|
||||||
blocks.blockQuantumLink = addFeature( BlockQuantumLinkChamber.class );
|
blocks.blockQuantumLink = addFeature( BlockQuantumLinkChamber.class );
|
||||||
|
|
||||||
@@ -314,9 +303,6 @@ public class Registration
|
|||||||
|
|
||||||
blocks.blockSecurity = addFeature( BlockSecurity.class );
|
blocks.blockSecurity = addFeature( BlockSecurity.class );
|
||||||
|
|
||||||
// items.itemEncodedAsemblerPattern = addFeature(
|
|
||||||
// ItemEncodedPattern.class );
|
|
||||||
|
|
||||||
items.itemCellCreative = addFeature( ItemCreativeStorageCell.class );
|
items.itemCellCreative = addFeature( ItemCreativeStorageCell.class );
|
||||||
items.itemViewCell = addFeature( ItemViewCell.class );
|
items.itemViewCell = addFeature( ItemViewCell.class );
|
||||||
|
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ import appeng.container.implementations.ContainerDrive;
|
|||||||
import appeng.container.implementations.ContainerFormationPlane;
|
import appeng.container.implementations.ContainerFormationPlane;
|
||||||
import appeng.container.implementations.ContainerGrinder;
|
import appeng.container.implementations.ContainerGrinder;
|
||||||
import appeng.container.implementations.ContainerIOPort;
|
import appeng.container.implementations.ContainerIOPort;
|
||||||
|
import appeng.container.implementations.ContainerInscriber;
|
||||||
import appeng.container.implementations.ContainerInterface;
|
import appeng.container.implementations.ContainerInterface;
|
||||||
import appeng.container.implementations.ContainerLevelEmitter;
|
import appeng.container.implementations.ContainerLevelEmitter;
|
||||||
import appeng.container.implementations.ContainerMEMonitorable;
|
import appeng.container.implementations.ContainerMEMonitorable;
|
||||||
@@ -65,6 +66,7 @@ import appeng.server.AccessType;
|
|||||||
import appeng.tile.grindstone.TileGrinder;
|
import appeng.tile.grindstone.TileGrinder;
|
||||||
import appeng.tile.misc.TileCellWorkbench;
|
import appeng.tile.misc.TileCellWorkbench;
|
||||||
import appeng.tile.misc.TileCondenser;
|
import appeng.tile.misc.TileCondenser;
|
||||||
|
import appeng.tile.misc.TileInscriber;
|
||||||
import appeng.tile.misc.TileSecurity;
|
import appeng.tile.misc.TileSecurity;
|
||||||
import appeng.tile.misc.TileVibrationChamber;
|
import appeng.tile.misc.TileVibrationChamber;
|
||||||
import appeng.tile.networking.TileWireless;
|
import appeng.tile.networking.TileWireless;
|
||||||
@@ -131,7 +133,7 @@ public enum GuiBridge implements IGuiHandler
|
|||||||
|
|
||||||
GUI_SPATIALIOPORT(ContainerSpatialIOPort.class, TileSpatialIOPort.class, false, SecurityPermissions.BUILD),
|
GUI_SPATIALIOPORT(ContainerSpatialIOPort.class, TileSpatialIOPort.class, false, SecurityPermissions.BUILD),
|
||||||
|
|
||||||
// GUI_INSCRIBER
|
GUI_INSCRIBER(ContainerInscriber.class, TileInscriber.class, false, null),
|
||||||
|
|
||||||
GUI_CELLWORKBENCH(ContainerCellWorkbench.class, TileCellWorkbench.class, false, null);
|
GUI_CELLWORKBENCH(ContainerCellWorkbench.class, TileCellWorkbench.class, false, null);
|
||||||
|
|
||||||
|
|||||||
@@ -7,19 +7,26 @@ import java.util.EnumSet;
|
|||||||
|
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraftforge.common.util.ForgeDirection;
|
import net.minecraftforge.common.util.ForgeDirection;
|
||||||
import appeng.api.util.AECableType;
|
import appeng.api.util.AECableType;
|
||||||
|
import appeng.recipes.handlers.Inscriber;
|
||||||
import appeng.tile.events.AETileEventHandler;
|
import appeng.tile.events.AETileEventHandler;
|
||||||
import appeng.tile.events.TileEventType;
|
import appeng.tile.events.TileEventType;
|
||||||
import appeng.tile.grid.AENetworkPowerTile;
|
import appeng.tile.grid.AENetworkPowerTile;
|
||||||
import appeng.tile.inventory.AppEngInternalInventory;
|
import appeng.tile.inventory.AppEngInternalInventory;
|
||||||
import appeng.tile.inventory.InvOperation;
|
import appeng.tile.inventory.InvOperation;
|
||||||
|
import appeng.util.Platform;
|
||||||
|
import appeng.util.item.AEItemStack;
|
||||||
|
|
||||||
public class TileInscriber extends AENetworkPowerTile
|
public class TileInscriber extends AENetworkPowerTile
|
||||||
{
|
{
|
||||||
|
|
||||||
final int sides[] = new int[] { 0, 1 };
|
final int top[] = new int[] { 0 };
|
||||||
AppEngInternalInventory inv = new AppEngInternalInventory( this, 2 );
|
final int bottom[] = new int[] { 1 };
|
||||||
|
final int sides[] = new int[] { 2, 3 };
|
||||||
|
|
||||||
|
AppEngInternalInventory inv = new AppEngInternalInventory( this, 4 );
|
||||||
int processingTime = 0;
|
int processingTime = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -32,12 +39,33 @@ public class TileInscriber extends AENetworkPowerTile
|
|||||||
{
|
{
|
||||||
|
|
||||||
public TileInscriberHandler() {
|
public TileInscriberHandler() {
|
||||||
super( TileEventType.TICK, TileEventType.NETWORK );
|
super( TileEventType.TICK, TileEventType.WORLD_NBT, TileEventType.NETWORK );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeToNBT(NBTTagCompound data)
|
||||||
|
{
|
||||||
|
inv.writeToNBT( data, "inscriberInv" );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void readFromNBT(NBTTagCompound data)
|
||||||
|
{
|
||||||
|
inv.readFromNBT( data, "inscriberInv" );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean readFromStream(ByteBuf data) throws IOException
|
public boolean readFromStream(ByteBuf data) throws IOException
|
||||||
{
|
{
|
||||||
|
int slot = data.readByte();
|
||||||
|
|
||||||
|
for (int num = 0; num < inv.getSizeInventory(); num++)
|
||||||
|
{
|
||||||
|
if ( (slot | (1 << num)) > 0 )
|
||||||
|
inv.setInventorySlotContents( num, AEItemStack.loadItemStackFromPacket( data ).getItemStack() );
|
||||||
|
else
|
||||||
|
inv.setInventorySlotContents( num, null );
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -45,7 +73,22 @@ public class TileInscriber extends AENetworkPowerTile
|
|||||||
@Override
|
@Override
|
||||||
public void writeToStream(ByteBuf data) throws IOException
|
public void writeToStream(ByteBuf data) throws IOException
|
||||||
{
|
{
|
||||||
|
int slot = 0;
|
||||||
|
|
||||||
|
for (int num = 0; num < inv.getSizeInventory(); num++)
|
||||||
|
{
|
||||||
|
if ( inv.getStackInSlot( num ) != null )
|
||||||
|
slot = slot | (1 << num);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int num = 0; num < inv.getSizeInventory(); num++)
|
||||||
|
{
|
||||||
|
if ( (slot | (1 << num)) > 0 )
|
||||||
|
{
|
||||||
|
AEItemStack st = AEItemStack.create( inv.getStackInSlot( num ) );
|
||||||
|
st.writeToPacket( data );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -80,6 +123,14 @@ public class TileInscriber extends AENetworkPowerTile
|
|||||||
@Override
|
@Override
|
||||||
public int[] getAccessibleSlotsFromSide(int side)
|
public int[] getAccessibleSlotsFromSide(int side)
|
||||||
{
|
{
|
||||||
|
ForgeDirection d = ForgeDirection.getOrientation( side );
|
||||||
|
|
||||||
|
if ( d == ForgeDirection.UP )
|
||||||
|
return top;
|
||||||
|
|
||||||
|
if ( d == ForgeDirection.DOWN )
|
||||||
|
return bottom;
|
||||||
|
|
||||||
return sides;
|
return sides;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,13 +143,27 @@ public class TileInscriber extends AENetworkPowerTile
|
|||||||
@Override
|
@Override
|
||||||
public boolean isItemValidForSlot(int i, ItemStack itemstack)
|
public boolean isItemValidForSlot(int i, ItemStack itemstack)
|
||||||
{
|
{
|
||||||
return i == 0;
|
if ( i == 0 || i == 1 )
|
||||||
|
{
|
||||||
|
for (ItemStack s : Inscriber.plates)
|
||||||
|
if ( Platform.isSameItemPrecise( s, itemstack ) )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( i == 2 )
|
||||||
|
{
|
||||||
|
for (ItemStack s : Inscriber.inputs)
|
||||||
|
if ( Platform.isSameItemPrecise( s, itemstack ) )
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canExtractItem(int i, ItemStack itemstack, int j)
|
public boolean canExtractItem(int i, ItemStack itemstack, int j)
|
||||||
{
|
{
|
||||||
return i == 1;
|
return i == 0 || i == 1 || i == 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user