need to move inventory changes back to on active
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user