need to move inventory changes back to on active

This commit is contained in:
kitsushadow
2016-12-07 05:25:27 -05:00
parent ff2609ad2e
commit bdb63d52a4
2 changed files with 122 additions and 24 deletions

View File

@@ -48,7 +48,7 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
setRegistryName(ModInfo.ForgecraftBlocks.FIREBOX.getRegistryName()); setRegistryName(ModInfo.ForgecraftBlocks.FIREBOX.getRegistryName());
setCreativeTab(ModInfo.TAB_FORGECRAFT); setCreativeTab(ModInfo.TAB_FORGECRAFT);
setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(ACTIVE, Boolean.valueOf(false))); setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH).withProperty(ACTIVE, Boolean.valueOf(false)));
setHardness(3.0f);
} }
@Override @Override
@@ -65,15 +65,13 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
TileFirebox tile = (TileFirebox) world.getTileEntity(pos); TileFirebox tile = (TileFirebox) world.getTileEntity(pos);
if (tile != null) if (tile != null)
{ {
//System.out.println("Server Slot: " + tile.getStackInSlot(0));
ItemStack playerStack = player.getHeldItemMainhand(); ItemStack playerStack = player.getHeldItemMainhand();
Item playerItem; Item playerItem;
ItemStack tileStack = tile.getStackInSlot(0); ItemStack tileStack = tile.getStackInSlot(0);
if(playerStack != null){ if(playerStack != null){
playerItem = playerStack.getItem(); playerItem = playerStack.getItem();
if (playerItem.equals(Items.FLINT_AND_STEEL)) { if (playerItem.equals(Items.FLINT_AND_STEEL) || playerItem.equals(Item.getItemFromBlock(Blocks.TORCH))) {
if (CommonUtils.getVanillaItemBurnTime(tileStack) > 0) { if (CommonUtils.getVanillaItemBurnTime(tileStack) > 0) {
world.setBlockState(pos, state.withProperty(ACTIVE, true), 2); world.setBlockState(pos, state.withProperty(ACTIVE, true), 2);
BlockPos tempPos = new BlockPos(pos.getX(), pos.getY()+1, pos.getZ()); BlockPos tempPos = new BlockPos(pos.getX(), pos.getY()+1, pos.getZ());
@@ -82,18 +80,68 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
tile.markDirty(); tile.markDirty();
world.notifyBlockUpdate(pos, state, state, 2); world.notifyBlockUpdate(pos, state, state, 2);
} }
/*if(world.getBlockState(tempPos).getBlock() instanceof BlockFurnace){ if(playerItem.equals(Items.FLINT_AND_STEEL)){
//System.out.println("Trying to set Block Furnace State active"); player.inventory.getCurrentItem().damageItem(1, player);
IBlockState iblockstate = world.getBlockState(tempPos); }
world.setBlockState(tempPos, Blocks.LIT_FURNACE.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3); }
TileEntityFurnace tileFurnace = (TileEntityFurnace) world.getTileEntity(tempPos); }
tileFurnace.setField(0,2000); if(tile.getStackInSlot(0)!=null){
}*/ if(CommonUtils.getVanillaItemBurnTime(playerStack) > 0) {
if (tileStack.getItem() == playerItem && tileStack.getItemDamage() == playerStack.getItemDamage()) {
//tile.setInventorySlotContents(0, playerStack);
ItemStack tempStack = new ItemStack(tileStack.getItem(), tileStack.stackSize + 1, tileStack.getItemDamage());
if(tileStack.stackSize < 64) {
tile.setInventorySlotContents(0, tempStack);
player.inventory.decrStackSize(player.inventory.currentItem, 1);
//player.setHeldItem(EnumHand.MAIN_HAND, null);
tile.markDirty();
world.notifyBlockUpdate(pos, state, state, 2);
}
}
}
}
if(tile.getStackInSlot(0)==null){
if(CommonUtils.getVanillaItemBurnTime(playerStack) > 0) {
if (playerItem != Items.FLINT_AND_STEEL || playerItem != Item.getItemFromBlock(Blocks.TORCH)) {
tile.setInventorySlotContents(0, playerStack);
player.setHeldItem(EnumHand.MAIN_HAND, null);
tile.markDirty();
world.notifyBlockUpdate(pos, state, state, 2);
}
} }
} }
}
if(tileStack != null && playerStack == null && player.isSneaking()){ }
/*if(playerStack == null && player.isSneaking()){
if(tileStack != null){
ItemStack tempStack = new ItemStack(tileStack.getItem(), tileStack.stackSize -1, tileStack.getItemDamage());
world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, tempStack));
tile.setInventorySlotContents(0, null);
world.notifyBlockUpdate(pos, state, state, 2);
}
}
if(!player.isSneaking()){
if(playerStack == null) {
if (tileStack != null) {
ItemStack tempStack1 = tileStack;
tempStack1.stackSize = 1;
world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, tempStack1));
world.notifyBlockUpdate(pos, state, state, 2);
}
}
}*/
/*if(tileStack != null && playerStack == null && player.isSneaking()){
if(state.getValue(ACTIVE)==true){ if(state.getValue(ACTIVE)==true){
world.setBlockState(pos, state.withProperty(ACTIVE, false), 2); world.setBlockState(pos, state.withProperty(ACTIVE, false), 2);
ItemStack returnStack = new ItemStack(tileStack.getItem(), tileStack.stackSize - 1); ItemStack returnStack = new ItemStack(tileStack.getItem(), tileStack.stackSize - 1);
@@ -120,17 +168,71 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
world.notifyBlockUpdate(pos, state, state, 2); world.notifyBlockUpdate(pos, state, state, 2);
} }
} }
} }*/
} }
} }
return true; return true;
} }
public void onBlockClicked(World world, BlockPos pos, EntityPlayer player) {
if(!world.isRemote){
TileFirebox tile = (TileFirebox) world.getTileEntity(pos);
IBlockState state = world.getBlockState(pos);
if (tile != null) {
ItemStack playerStack = player.getHeldItemMainhand();
Item playerItem;
ItemStack tileStack = tile.getStackInSlot(0);
if (!player.isSneaking()) {
if( tileStack !=null) {
if (playerStack == null) {
ItemStack tempStack1 = tileStack;
ItemStack tempStack2 = tileStack;
tempStack1.stackSize = 1;
tempStack2.stackSize = tileStack.stackSize - 1;
System.out.println(tileStack.stackSize + "|" + "|" + tempStack2.stackSize);
//int tileSize = tile.decrStackSize()
//ItemStack tempReset = new ItemStack(tileStack.getItem(), tileSize - 1, tileStack.getItemDamage());
//System.out.println(tileSize + "|" + tempReset.stackSize);
world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, tempStack1));
tile.setInventorySlotContents(0, tempStack2);
world.notifyBlockUpdate(pos, state, state, 2);
}
}
}
//RETURN THE WHOLE STACK
if (playerStack == null && player.isSneaking()) {
if (tileStack != null) {
if(state.getValue(ACTIVE)) {
ItemStack tempStack = new ItemStack(tileStack.getItem(), tileStack.stackSize - 1, tileStack.getItemDamage());
world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, tempStack));
tile.setInventorySlotContents(0, null);
world.notifyBlockUpdate(pos, state, state, 2);
} else {
world.spawnEntityInWorld(new EntityItem(world, player.posX, player.posY, player.posZ, tileStack));
tile.setInventorySlotContents(0, null);
world.notifyBlockUpdate(pos, state, state, 2);
}
}
}
//RETURN 1
}
}
}
@Override @Override
public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos) public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos)
{ {
if(state.getValue(ACTIVE) == true){ if(state.getValue(ACTIVE) == true){
return 1; return 15;
} }
return 0; return 0;
} }

View File

@@ -93,7 +93,7 @@ public class TileFireboxRender extends TileEntitySpecialRenderer<TileFirebox>
float scale = is_block ? 0.9F : 1.8F; float scale = is_block ? 0.9F : 1.8F;
int stackSize = stack.stackSize; int stackSize = stack.stackSize;
if(stackSize < 16){ //if(stackSize < 16){
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslatef(translateX, height, translateZ); GL11.glTranslatef(translateX, height, translateZ);
GL11.glScalef(scale, scale, scale); GL11.glScalef(scale, scale, scale);
@@ -101,8 +101,8 @@ public class TileFireboxRender extends TileEntitySpecialRenderer<TileFirebox>
renderItem.renderItem(stack, renderItem.getItemModelMesher().getItemModel(stack)); renderItem.renderItem(stack, renderItem.getItemModelMesher().getItemModel(stack));
GL11.glPopMatrix(); GL11.glPopMatrix();
} //}
if(stackSize > 15 && stackSize < 32){ /*if(stackSize > 15 && stackSize < 32){
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslatef(translateX, height, translateZ); GL11.glTranslatef(translateX, height, translateZ);
GL11.glScalef(scale, scale, scale); GL11.glScalef(scale, scale, scale);
@@ -167,11 +167,7 @@ public class TileFireboxRender extends TileEntitySpecialRenderer<TileFirebox>
GL11.glRotatef(90.0F * (rotation + 3), 0.0F, 1.0F, 0.0F); GL11.glRotatef(90.0F * (rotation + 3), 0.0F, 1.0F, 0.0F);
renderItem.renderItem(stack, renderItem.getItemModelMesher().getItemModel(stack)); renderItem.renderItem(stack, renderItem.getItemModelMesher().getItemModel(stack));
GL11.glPopMatrix(); GL11.glPopMatrix();
} }*/
} }
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);