Making Furnaces work from firebox

This commit is contained in:
Mohammad-Ali Minaie
2016-12-05 18:48:52 -05:00
parent dc8b6e5474
commit ca05805c85
2 changed files with 22 additions and 4 deletions

View File

@@ -1,10 +1,7 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks;
import akka.actor.dsl.Creators; import akka.actor.dsl.Creators;
import net.minecraft.block.Block; import net.minecraft.block.*;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.BlockHorizontal;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.properties.PropertyBool;
@@ -35,6 +32,8 @@ import nmd.primal.forgecraft.tiles.TileFirebox;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import static net.minecraft.block.BlockHorizontal.FACING;
/** /**
* Created by kitsu on 11/26/2016. * Created by kitsu on 11/26/2016.
*/ */
@@ -82,6 +81,13 @@ 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){
System.out.println("Trying to set Block Furnace State active");
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);
}*/
} }
} }
} }

View File

@@ -14,6 +14,7 @@ import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.NetworkManager; import net.minecraft.network.NetworkManager;
import net.minecraft.network.play.server.SPacketUpdateTileEntity; import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.ITickable; import net.minecraft.util.ITickable;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
@@ -23,7 +24,9 @@ import nmd.primal.forgecraft.CommonUtils;
import nmd.primal.forgecraft.blocks.Firebox; import nmd.primal.forgecraft.blocks.Firebox;
import nmd.primal.forgecraft.init.ModBlocks; import nmd.primal.forgecraft.init.ModBlocks;
import org.omg.PortableInterceptor.ACTIVE; import org.omg.PortableInterceptor.ACTIVE;
import net.minecraft.block.BlockFurnace;
import static net.minecraft.block.BlockHorizontal.FACING;
import static nmd.primal.forgecraft.CommonUtils.getVanillaItemBurnTime; import static nmd.primal.forgecraft.CommonUtils.getVanillaItemBurnTime;
/** /**
@@ -48,6 +51,8 @@ public class TileFirebox extends BaseTile implements IInventory, ITickable {
//System.out.println(iteration); //System.out.println(iteration);
this.iteration = 0; this.iteration = 0;
IBlockState state = world.getBlockState(this.pos); IBlockState state = world.getBlockState(this.pos);
BlockPos abovePos = new BlockPos(this.getPos().getX(), this.getPos().getY(), this.getPos().getZ());
IBlockState aboveState = world.getBlockState(abovePos);
if (worldObj.getBlockState(this.getPos()).getValue(Firebox.ACTIVE)) { if (worldObj.getBlockState(this.getPos()).getValue(Firebox.ACTIVE)) {
if (this.getStackInSlot(0) == null) { if (this.getStackInSlot(0) == null) {
worldObj.setBlockState(this.getPos(), state.withProperty(Firebox.ACTIVE, false), 2); worldObj.setBlockState(this.getPos(), state.withProperty(Firebox.ACTIVE, false), 2);
@@ -60,6 +65,13 @@ public class TileFirebox extends BaseTile implements IInventory, ITickable {
this.markDirty(); this.markDirty();
world.notifyBlockUpdate(pos, state, state, 2); world.notifyBlockUpdate(pos, state, state, 2);
} }
if(world.getBlockState(abovePos).getBlock() instanceof BlockFurnace){
System.out.println("Trying to set Block Furnace State active");
IBlockState iblockstate = world.getBlockState(abovePos);
TileEntityFurnace tileFurnace = (TileEntityFurnace) world.getTileEntity(abovePos);
world.setBlockState(pos, Blocks.LIT_FURNACE.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3);
tileFurnace.setField(0,2000);
}
} }
} }
} }