need to check heat addition or heat management

This commit is contained in:
Mohammad-Ali Minaie
2017-01-04 07:25:14 -05:00
parent fbab5ec849
commit d02ea6e762
3 changed files with 73 additions and 6 deletions

View File

@@ -25,6 +25,8 @@ import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.*;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
@@ -35,6 +37,7 @@ import nmd.primal.forgecraft.tiles.TileFirebox;
import javax.annotation.Nullable;
import java.util.List;
import java.util.Random;
import static net.minecraft.block.BlockHorizontal.FACING;
@@ -42,7 +45,7 @@ import static net.minecraft.block.BlockHorizontal.FACING;
/**
* Created by kitsu on 11/26/2016.
*/
public class Firebox extends CustomContainerFacing implements ITileEntityProvider {
public class Firebox extends CustomContainerFacing implements ITileEntityProvider/*, ITextComponent*/ {
public static final PropertyBool ACTIVE = PropertyBool.create("active");
protected static final AxisAlignedBB collideBox = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.99D, 1.0D);
@@ -75,6 +78,9 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
return boundBox;
}
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
{
@@ -93,6 +99,15 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
return true;
}
}
if(!player.isSneaking()){
if(world.getBlockState(pos).getValue(ACTIVE) == true){
Integer tempInt = tile.getHeat();
String tempString = tempInt.toString();
ITextComponent itextcomponent = new TextComponentString(tempString);
player.sendStatusMessage(itextcomponent, true);
return true;
}
}
}
if((pItem.getItem() == Items.FLINT_AND_STEEL) /*|| (pItem.getItem() == PrimalItems.FIRE_BOW)*/ || pItem.getItem() == Item.getItemFromBlock(Blocks.TORCH)) {
world.setBlockState(pos, state.withProperty(ACTIVE, true), 2);
@@ -105,7 +120,7 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
tile.updateBlock();
return true;
}
if((!pItem.isEmpty()) && (CommonUtils.getVanillaItemBurnTime(pItem) > 0)) {
if((!pItem.isEmpty()) && tile.isItemValidForSlot(0, pItem)) {
if (!tileItem.isEmpty()){
if(pItem.getItem() == tileItem.getItem()){
if(tileItem.getCount() < 64){

View File

@@ -16,6 +16,8 @@ import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
@@ -44,6 +46,8 @@ public class PistonBellows extends CustomFacing {
setHardness(3.0f);
}
// DOESNT SEEM LIKE I'M ADDING HEAT TO THE RIGHT TILE
@Override
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) {
if(!world.isRemote){
@@ -51,14 +55,50 @@ public class PistonBellows extends CustomFacing {
if(facing == EnumFacing.NORTH){
BlockPos tempPos = new BlockPos(pos.getX()-1, pos.getY(), pos.getZ());
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos);
if(world.getBlockState(tempPos) == Firebox.ACTIVE){
if(tile != null){
tile.setHeat(tile.getHeat() + 25);
tile.updateBlock();
tile.markDirty();
return true;
}
}
System.out.println(world.getBlockState(tempPos).getBlock());
}
if(facing == EnumFacing.SOUTH){
BlockPos tempPos = new BlockPos(pos.getX()+1, pos.getY(), pos.getZ());
System.out.println(world.getBlockState(tempPos).getBlock());
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos);
if(world.getBlockState(tempPos) == Firebox.ACTIVE){
if(tile != null){
tile.setHeat(tile.getHeat() + 25);
tile.updateBlock();
tile.markDirty();
return true;
}
}
}
if(facing == EnumFacing.EAST){
BlockPos tempPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ()-1);
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos);
if(world.getBlockState(tempPos) == Firebox.ACTIVE){
if(tile != null){
tile.setHeat(tile.getHeat() + 25);
tile.updateBlock();
tile.markDirty();
return true;
}
}
}
if(facing == EnumFacing.EAST){
BlockPos tempPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ()+1);
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos);
if(world.getBlockState(tempPos) == Firebox.ACTIVE){
if(tile != null){
tile.setHeat(tile.getHeat() + 25);
tile.updateBlock();
tile.markDirty();
return true;
}
}
}
}
return true;

View File

@@ -8,8 +8,10 @@ import net.minecraft.client.gui.GuiChat;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.ItemStackHelper;
import net.minecraft.inventory.SlotFurnaceFuel;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
@@ -143,5 +145,15 @@ public class TileFirebox extends TileBaseSlot implements ITickable {
return stack;
}
public boolean isItemValidForSlot(int index, ItemStack stack) {
if(index == 0){
if(stack.getItem() == Items.COAL){
if(stack.getMetadata() == 1) {
return true;
}
}
}
return false;
}
}