made IngotBall with variants

This commit is contained in:
Mohammad-Ali Minaie
2017-02-12 17:39:33 -05:00
parent 31abc6b0ec
commit 1e72721c22
17 changed files with 305 additions and 178 deletions

View File

@@ -27,3 +27,8 @@ To-Dos
- [ ] Crafting recipes - [ ] Crafting recipes
- [ ] Casting Bloomery - [ ] Casting Bloomery
- [ ] Sounds
- [ ] Bellows Sounds
- [ ] Bloomery Sound?
- [ ] Forge Sound?

View File

@@ -1,13 +1,11 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks;
import net.minecraft.block.BlockLog;
import net.minecraft.block.ITileEntityProvider; 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;
import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
@@ -18,7 +16,6 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.*; import net.minecraft.util.*;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.ITextComponent; import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.TextComponentString;
@@ -26,11 +23,8 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import nmd.primal.forgecraft.CommonUtils;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileBloomery;
import nmd.primal.forgecraft.tiles.TileFirebox;
import java.util.Random; import java.util.Random;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;
@@ -143,53 +137,6 @@ public class Bloomery extends CustomContainerFacing implements ITileEntityProvid
return false; return false;
} }
/*@Override
public void onEntityCollidedWithBlock(World world, BlockPos pos, IBlockState state, Entity ent)
{
if (!world.isRemote)
{
if(ent instanceof EntityItem){
//System.out.println("collision");
EntityItem itemEnt = (EntityItem) ent;
ItemStack stack = itemEnt.getEntityItem();
//System.out.println(stack);
TileFirebox tile = (TileFirebox)world.getTileEntity(pos);
if (tile != null) {
if(!tile.getSlotStack(0).isEmpty()) {
if(tile.getSlotStack(0).getItem() == stack.getItem()) {
int entStackSize = stack.getCount();
int tileStackSize = tile.getSlotStack(0).getCount();
int tileSizeRemaining = 64 - tileStackSize;
if (tileStackSize < 64) {
if (entStackSize <= tileSizeRemaining) {
tile.incrementStackSize(tile.getSlotList(), 0, entStackSize);
//tile.setSlotStack(0, new ItemStack(stack.getItem(), tileStackSize + entStackSize, stack.getItemDamage()));
ent.setDead();
world.notifyBlockUpdate(pos, state, state, 3);
tile.updateBlock();
}
if (entStackSize > tileSizeRemaining) {
tile.getSlotStack(0).setCount(64);
stack.setCount(64 - entStackSize);
}
}
}
}
if (tile.getSlotStack(0).isEmpty()) {
//int entStackSize = stack.getCount();
tile.setSlotStack(0, itemEnt.getEntityItem());
itemEnt.setDead();
world.notifyBlockUpdate(pos, state, state, 3);
tile.updateBlock();
}
}
}
}
}
*/
public void onBlockClicked(World world, BlockPos pos, EntityPlayer player) {
}
@Override @Override
public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos) public int getLightValue(IBlockState state, IBlockAccess world, BlockPos pos)

View File

@@ -1,21 +1,13 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks;
import net.minecraft.block.Block; import net.minecraft.block.Block;
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.PropertyDirection;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType; import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand; import net.minecraft.util.EnumHand;
@@ -28,13 +20,8 @@ import net.minecraftforge.fml.relauncher.SideOnly;
import nmd.primal.forgecraft.CommonUtils; import nmd.primal.forgecraft.CommonUtils;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.init.ModBlocks; import nmd.primal.forgecraft.init.ModBlocks;
import nmd.primal.forgecraft.tiles.TileBaseCrucible;
import nmd.primal.forgecraft.tiles.TileFirebox;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import javax.annotation.CheckForNull;
import javax.annotation.Nullable;
import java.util.List;
import java.util.Random; import java.util.Random;
import static nmd.primal.forgecraft.CommonUtils.spawnItemEntityFromWorld; import static nmd.primal.forgecraft.CommonUtils.spawnItemEntityFromWorld;

View File

@@ -28,7 +28,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
//import nmd.primal.core.api.PrimalBlocks; //import nmd.primal.core.api.PrimalBlocks;
import nmd.primal.forgecraft.CommonUtils; import nmd.primal.forgecraft.CommonUtils;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.tiles.TileFirebox; import nmd.primal.forgecraft.tiles.TileForge;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Random; import java.util.Random;
@@ -38,13 +38,13 @@ import java.util.Random;
/** /**
* Created by kitsu on 11/26/2016. * Created by kitsu on 11/26/2016.
*/ */
public class Firebox extends CustomContainerFacing implements ITileEntityProvider/*, ITextComponent*/ { public class Forge extends CustomContainerFacing implements ITileEntityProvider/*, ITextComponent*/ {
public static final PropertyBool ACTIVE = PropertyBool.create("active"); 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); protected static final AxisAlignedBB collideBox = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.99D, 1.0D);
protected static final AxisAlignedBB boundBox = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); protected static final AxisAlignedBB boundBox = new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
public Firebox(Material material) { public Forge(Material material) {
super(material); super(material);
setUnlocalizedName(ModInfo.ForgecraftBlocks.FIREBOX.getUnlocalizedName()); setUnlocalizedName(ModInfo.ForgecraftBlocks.FIREBOX.getUnlocalizedName());
setRegistryName(ModInfo.ForgecraftBlocks.FIREBOX.getRegistryName()); setRegistryName(ModInfo.ForgecraftBlocks.FIREBOX.getRegistryName());
@@ -56,7 +56,7 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
@Override @Override
public TileEntity createNewTileEntity(World worldIn, int meta) public TileEntity createNewTileEntity(World worldIn, int meta)
{ {
return new TileFirebox(); return new TileForge();
} }
@Nullable @Nullable
@@ -75,7 +75,7 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
{ {
if (!world.isRemote) { if (!world.isRemote) {
TileFirebox tile = (TileFirebox) world.getTileEntity(pos); TileForge tile = (TileForge) world.getTileEntity(pos);
if (tile != null) { if (tile != null) {
ItemStack pItem = player.inventory.getCurrentItem(); ItemStack pItem = player.inventory.getCurrentItem();
ItemStack tileItem = tile.getSlotStack(0); ItemStack tileItem = tile.getSlotStack(0);
@@ -102,11 +102,6 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
} }
if((pItem.getItem() == Items.FLINT_AND_STEEL) /*|| (pItem.getItem() == PrimalItems.FIRE_BOW)*/ || pItem.getItem() == Item.getItemFromBlock(Blocks.TORCH)) { 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); world.setBlockState(pos, state.withProperty(ACTIVE, true), 2);
BlockPos tempPos = new BlockPos(pos.getX(), pos.getY() + 1, pos.getZ());
if(world.getBlockState(tempPos).getBlock() == Blocks.AIR) {
world.setBlockState(tempPos, Blocks.FIRE.getDefaultState(), 2);
}
tile.markDirty(); tile.markDirty();
tile.updateBlock(); tile.updateBlock();
return true; return true;
@@ -153,7 +148,7 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
EntityItem itemEnt = (EntityItem) ent; EntityItem itemEnt = (EntityItem) ent;
ItemStack stack = itemEnt.getEntityItem(); ItemStack stack = itemEnt.getEntityItem();
//System.out.println(stack); //System.out.println(stack);
TileFirebox tile = (TileFirebox)world.getTileEntity(pos); TileForge tile = (TileForge)world.getTileEntity(pos);
if (tile != null) { if (tile != null) {
if(!tile.getSlotStack(0).isEmpty()) { if(!tile.getSlotStack(0).isEmpty()) {
if(tile.getSlotStack(0).getItem() == stack.getItem()) { if(tile.getSlotStack(0).getItem() == stack.getItem()) {
@@ -216,7 +211,7 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
if (side == EnumFacing.UP) if (side == EnumFacing.UP)
{ {
if(!world.isRemote){ if(!world.isRemote){
TileFirebox tile = (TileFirebox) world.getTileEntity(pos); TileForge tile = (TileForge) world.getTileEntity(pos);
if(tile.getSlotStack(0) != ItemStack.EMPTY){ if(tile.getSlotStack(0) != ItemStack.EMPTY){
if(world.getBlockState(pos).getValue(ACTIVE)==true){ if(world.getBlockState(pos).getValue(ACTIVE)==true){
return true; return true;
@@ -235,7 +230,7 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
{ {
if (!world.isRemote && world.getGameRules().getBoolean("doTileDrops")) if (!world.isRemote && world.getGameRules().getBoolean("doTileDrops"))
{ {
TileFirebox tile = (TileFirebox) world.getTileEntity(pos); TileForge tile = (TileForge) world.getTileEntity(pos);
if (tile !=null) if (tile !=null)
{ {
for (ItemStack stack : tile.getSlotList()) for (ItemStack stack : tile.getSlotList())
@@ -397,7 +392,7 @@ public class Firebox extends CustomContainerFacing implements ITileEntityProvide
@SuppressWarnings("incomplete-switch") @SuppressWarnings("incomplete-switch")
public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rand) public void randomDisplayTick(IBlockState state, World world, BlockPos pos, Random rand)
{ {
if(state.getValue(Firebox.ACTIVE) == true) if(state.getValue(Forge.ACTIVE) == true)
{ {
double d0 = (double)pos.getX() + 0.5D; double d0 = (double)pos.getX() + 0.5D;
double d1 = (double)pos.getY() + 0.96D; double d1 = (double)pos.getY() + 0.96D;

View File

@@ -1,10 +1,17 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyBool;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess; import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
/** /**
@@ -13,9 +20,11 @@ import nmd.primal.forgecraft.ModInfo;
public class IngotBall extends BlockCustomBase { public class IngotBall extends BlockCustomBase {
protected static final AxisAlignedBB boundBox = new AxisAlignedBB(7/16D, 0.0D, 7/16D, 9/16D, 2/16D, 9/16D); protected static final AxisAlignedBB boundBox = new AxisAlignedBB(7/16D, 0.0D, 7/16D, 9/16D, 2/16D, 9/16D);
public static final PropertyBool ACTIVE = PropertyBool.create("active");
public IngotBall(Material material, String registryName, Float hardness){ public IngotBall(Material material, String registryName, Float hardness){
super(material, registryName, hardness); super(material, registryName, hardness);
} }
@Override @Override
@@ -24,4 +33,45 @@ public class IngotBall extends BlockCustomBase {
return boundBox; return boundBox;
} }
@Override
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{
worldIn.setBlockState(pos, state.withProperty(ACTIVE, Boolean.valueOf(false)), 2);
}
@Override
public int getMetaFromState(IBlockState state) {
int i = 0;
if( state.getValue(ACTIVE) == false) {
i = 0;
return i;
}
if( state.getValue(ACTIVE) == true) {
i = 1;
return i;
}
return i;
}
@Override
public IBlockState getStateFromMeta(int meta)
{
IBlockState iblockstate = this.getDefaultState();
if (meta == 0){
iblockstate = iblockstate.withProperty(ACTIVE, Boolean.valueOf(false));
}
if (meta == 1) {
iblockstate = iblockstate.withProperty(ACTIVE, Boolean.valueOf(true));
}
return iblockstate;
}
@Override
protected BlockStateContainer createBlockState() {
return new BlockStateContainer(this, new IProperty[] {ACTIVE});
}
} }

View File

@@ -1,6 +1,5 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks;
import javafx.scene.effect.Bloom;
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;
@@ -23,7 +22,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.init.ModBlocks; import nmd.primal.forgecraft.init.ModBlocks;
import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileBloomery;
import nmd.primal.forgecraft.tiles.TileFirebox; import nmd.primal.forgecraft.tiles.TileForge;
import nmd.primal.forgecraft.tiles.TilePistonBellows; import nmd.primal.forgecraft.tiles.TilePistonBellows;
import java.util.Random; import java.util.Random;
@@ -78,10 +77,10 @@ public class PistonBellows extends CustomContainerFacing {
if (state.getValue(PistonBellows.FACING) == EnumFacing.NORTH) { if (state.getValue(PistonBellows.FACING) == EnumFacing.NORTH) {
BlockPos tempPos = new BlockPos(pos.getX() + 1, pos.getY(), pos.getZ()); BlockPos tempPos = new BlockPos(pos.getX() + 1, pos.getY(), pos.getZ());
if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) { if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) {
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos); TileForge tile = (TileForge) world.getTileEntity(tempPos);
if ((world.getBlockState(tempPos).getValue(Firebox.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Firebox.FACING) == EnumFacing.EAST)) { if ((world.getBlockState(tempPos).getValue(Forge.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Forge.FACING) == EnumFacing.EAST)) {
if (tile != null) { if (tile != null) {
//System.out.println(world.getBlockState(tempPos).getValue(Firebox.FACING)); //System.out.println(world.getBlockState(tempPos).getValue(Forge.FACING));
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
tile.updateBlock(); tile.updateBlock();
tile.markDirty(); tile.markDirty();
@@ -94,7 +93,7 @@ public class PistonBellows extends CustomContainerFacing {
if ((world.getBlockState(tempPos).getValue(Bloomery.ACTIVE) == true) if ((world.getBlockState(tempPos).getValue(Bloomery.ACTIVE) == true)
&& (world.getBlockState(tempPos).getValue(Bloomery.FACING) == EnumFacing.EAST)) { && (world.getBlockState(tempPos).getValue(Bloomery.FACING) == EnumFacing.EAST)) {
if (tile != null) { if (tile != null) {
//System.out.println(world.getBlockState(tempPos).getValue(Firebox.FACING)); //System.out.println(world.getBlockState(tempPos).getValue(Forge.FACING));
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
if(world.getBlockState(tempPos).getValue(Bloomery.COVERED) == true){ if(world.getBlockState(tempPos).getValue(Bloomery.COVERED) == true){
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
@@ -109,10 +108,10 @@ public class PistonBellows extends CustomContainerFacing {
if (state.getValue(PistonBellows.FACING) == EnumFacing.SOUTH) { if (state.getValue(PistonBellows.FACING) == EnumFacing.SOUTH) {
BlockPos tempPos = new BlockPos(pos.getX() - 1, pos.getY(), pos.getZ()); BlockPos tempPos = new BlockPos(pos.getX() - 1, pos.getY(), pos.getZ());
if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) { if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) {
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos); TileForge tile = (TileForge) world.getTileEntity(tempPos);
if ((world.getBlockState(tempPos).getValue(Firebox.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Firebox.FACING) == EnumFacing.WEST)) { if ((world.getBlockState(tempPos).getValue(Forge.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Forge.FACING) == EnumFacing.WEST)) {
if (tile != null) { if (tile != null) {
//System.out.println(world.getBlockState(tempPos).getValue(Firebox.FACING)); //System.out.println(world.getBlockState(tempPos).getValue(Forge.FACING));
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
tile.updateBlock(); tile.updateBlock();
tile.markDirty(); tile.markDirty();
@@ -125,7 +124,7 @@ public class PistonBellows extends CustomContainerFacing {
if ((world.getBlockState(tempPos).getValue(Bloomery.ACTIVE) == true) if ((world.getBlockState(tempPos).getValue(Bloomery.ACTIVE) == true)
&& (world.getBlockState(tempPos).getValue(Bloomery.FACING) == EnumFacing.WEST)) { && (world.getBlockState(tempPos).getValue(Bloomery.FACING) == EnumFacing.WEST)) {
if (tile != null) { if (tile != null) {
//System.out.println(world.getBlockState(tempPos).getValue(Firebox.FACING)); //System.out.println(world.getBlockState(tempPos).getValue(Forge.FACING));
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
if(world.getBlockState(tempPos).getValue(Bloomery.COVERED) == true){ if(world.getBlockState(tempPos).getValue(Bloomery.COVERED) == true){
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
@@ -140,10 +139,10 @@ public class PistonBellows extends CustomContainerFacing {
if (state.getValue(PistonBellows.FACING) == EnumFacing.EAST) { if (state.getValue(PistonBellows.FACING) == EnumFacing.EAST) {
BlockPos tempPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ() + 1); BlockPos tempPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ() + 1);
if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) { if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) {
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos); TileForge tile = (TileForge) world.getTileEntity(tempPos);
if ((world.getBlockState(tempPos).getValue(Firebox.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Firebox.FACING) == EnumFacing.SOUTH)) { if ((world.getBlockState(tempPos).getValue(Forge.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Forge.FACING) == EnumFacing.SOUTH)) {
if (tile != null) { if (tile != null) {
//System.out.println(world.getBlockState(tempPos).getValue(Firebox.FACING)); //System.out.println(world.getBlockState(tempPos).getValue(Forge.FACING));
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
tile.updateBlock(); tile.updateBlock();
tile.markDirty(); tile.markDirty();
@@ -156,7 +155,7 @@ public class PistonBellows extends CustomContainerFacing {
if ((world.getBlockState(tempPos).getValue(Bloomery.ACTIVE) == true) if ((world.getBlockState(tempPos).getValue(Bloomery.ACTIVE) == true)
&& (world.getBlockState(tempPos).getValue(Bloomery.FACING) == EnumFacing.SOUTH)) { && (world.getBlockState(tempPos).getValue(Bloomery.FACING) == EnumFacing.SOUTH)) {
if (tile != null) { if (tile != null) {
//System.out.println(world.getBlockState(tempPos).getValue(Firebox.FACING)); //System.out.println(world.getBlockState(tempPos).getValue(Forge.FACING));
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
if(world.getBlockState(tempPos).getValue(Bloomery.COVERED) == true){ if(world.getBlockState(tempPos).getValue(Bloomery.COVERED) == true){
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
@@ -171,10 +170,10 @@ public class PistonBellows extends CustomContainerFacing {
if (state.getValue(PistonBellows.FACING) == EnumFacing.WEST) { if (state.getValue(PistonBellows.FACING) == EnumFacing.WEST) {
BlockPos tempPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ() - 1); BlockPos tempPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ() - 1);
if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) { if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) {
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos); TileForge tile = (TileForge) world.getTileEntity(tempPos);
if ((world.getBlockState(tempPos).getValue(Firebox.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Firebox.FACING) == EnumFacing.NORTH)) { if ((world.getBlockState(tempPos).getValue(Forge.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Forge.FACING) == EnumFacing.NORTH)) {
if (tile != null) { if (tile != null) {
//System.out.println(world.getBlockState(tempPos).getValue(Firebox.FACING)); //System.out.println(world.getBlockState(tempPos).getValue(Forge.FACING));
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
tile.updateBlock(); tile.updateBlock();
tile.markDirty(); tile.markDirty();
@@ -187,7 +186,7 @@ public class PistonBellows extends CustomContainerFacing {
if ((world.getBlockState(tempPos).getValue(Bloomery.ACTIVE) == true) if ((world.getBlockState(tempPos).getValue(Bloomery.ACTIVE) == true)
&& (world.getBlockState(tempPos).getValue(Bloomery.FACING) == EnumFacing.NORTH)) { && (world.getBlockState(tempPos).getValue(Bloomery.FACING) == EnumFacing.NORTH)) {
if (tile != null) { if (tile != null) {
//System.out.println(world.getBlockState(tempPos).getValue(Firebox.FACING)); //System.out.println(world.getBlockState(tempPos).getValue(Forge.FACING));
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
if(world.getBlockState(tempPos).getValue(Bloomery.COVERED) == true){ if(world.getBlockState(tempPos).getValue(Bloomery.COVERED) == true){
tile.setHeat(tile.getHeat() + 25); tile.setHeat(tile.getHeat() + 25);
@@ -386,8 +385,8 @@ public class PistonBellows extends CustomContainerFacing {
if (state.getValue(PistonBellows.FACING) == EnumFacing.NORTH) { if (state.getValue(PistonBellows.FACING) == EnumFacing.NORTH) {
BlockPos tempPos = new BlockPos(pos.getX() + 1, pos.getY(), pos.getZ()); BlockPos tempPos = new BlockPos(pos.getX() + 1, pos.getY(), pos.getZ());
if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) { if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) {
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos); TileForge tile = (TileForge) world.getTileEntity(tempPos);
if ((world.getBlockState(tempPos).getValue(Firebox.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Firebox.FACING) == EnumFacing.EAST)) { if ((world.getBlockState(tempPos).getValue(Forge.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Forge.FACING) == EnumFacing.EAST)) {
makeEmbers(world, tempPos, world.rand); makeEmbers(world, tempPos, world.rand);
} }
} }
@@ -403,8 +402,8 @@ public class PistonBellows extends CustomContainerFacing {
if (state.getValue(PistonBellows.FACING) == EnumFacing.SOUTH) { if (state.getValue(PistonBellows.FACING) == EnumFacing.SOUTH) {
BlockPos tempPos = new BlockPos(pos.getX() - 1, pos.getY(), pos.getZ()); BlockPos tempPos = new BlockPos(pos.getX() - 1, pos.getY(), pos.getZ());
if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) { if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) {
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos); TileForge tile = (TileForge) world.getTileEntity(tempPos);
if ((world.getBlockState(tempPos).getValue(Firebox.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Firebox.FACING) == EnumFacing.WEST)) { if ((world.getBlockState(tempPos).getValue(Forge.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Forge.FACING) == EnumFacing.WEST)) {
makeEmbers(world, tempPos, world.rand); makeEmbers(world, tempPos, world.rand);
} }
} }
@@ -420,8 +419,8 @@ public class PistonBellows extends CustomContainerFacing {
if (state.getValue(PistonBellows.FACING) == EnumFacing.EAST) { if (state.getValue(PistonBellows.FACING) == EnumFacing.EAST) {
BlockPos tempPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ() + 1); BlockPos tempPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ() + 1);
if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) { if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) {
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos); TileForge tile = (TileForge) world.getTileEntity(tempPos);
if ((world.getBlockState(tempPos).getValue(Firebox.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Firebox.FACING) == EnumFacing.SOUTH)) { if ((world.getBlockState(tempPos).getValue(Forge.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Forge.FACING) == EnumFacing.SOUTH)) {
makeEmbers(world, tempPos, world.rand); makeEmbers(world, tempPos, world.rand);
} }
} }
@@ -437,8 +436,8 @@ public class PistonBellows extends CustomContainerFacing {
if (state.getValue(PistonBellows.FACING) == EnumFacing.WEST) { if (state.getValue(PistonBellows.FACING) == EnumFacing.WEST) {
BlockPos tempPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ() - 1); BlockPos tempPos = new BlockPos(pos.getX(), pos.getY(), pos.getZ() - 1);
if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) { if (world.getBlockState(tempPos).getBlock() == ModBlocks.firebox) {
TileFirebox tile = (TileFirebox) world.getTileEntity(tempPos); TileForge tile = (TileForge) world.getTileEntity(tempPos);
if ((world.getBlockState(tempPos).getValue(Firebox.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Firebox.FACING) == EnumFacing.NORTH)) { if ((world.getBlockState(tempPos).getValue(Forge.ACTIVE) == true) && (world.getBlockState(tempPos).getValue(Forge.FACING) == EnumFacing.NORTH)) {
makeEmbers(world, tempPos, world.rand); makeEmbers(world, tempPos, world.rand);
} }
} }

View File

@@ -0,0 +1,130 @@
package nmd.primal.forgecraft.crafting;
import net.minecraft.item.ItemStack;
import java.util.ArrayList;
/**
* Created by mminaie on 2/11/17.
*/
public class ForgeCrafting {
// ***************************************************************************** //
// Recipe Handler ForgeCrafting
// ***************************************************************************** //
private static ArrayList<ForgeCrafting> forgeRecipes = new ArrayList<>();
private ItemStack input;
private ItemStack output;
private ItemStack output_failed;
private ItemStack cool_output;
private int heat_threshold;
private int ideal_time;
private int cooldown;
public ForgeCrafting(ItemStack input, ItemStack output, ItemStack output_failed, ItemStack cool_output, int heat_threshold, int ideal_time, int cooldown,float heat_variance, float time_variance)
{
this.input = input;
this.output = output;
this.output_failed = output_failed;
this.cool_output = cool_output;
this.heat_threshold = heat_threshold;
this.ideal_time = ideal_time;
this.cooldown = cooldown;
}
// ***************************************************************************** //
// Recipe Methods
// ***************************************************************************** //
public static void addRecipe(ItemStack input, ItemStack output, ItemStack failed, ItemStack cool, int heat_threshold, int ideal_time, int cooldown, float heat_variance, float time_variance)
{
forgeRecipes.add(new ForgeCrafting(input, output, failed, cool, heat_threshold, ideal_time, cooldown, heat_variance, time_variance));
}
public static boolean isRecipeItem(ItemStack stack)
{
for(ForgeCrafting recipe : forgeRecipes) {
if (stack.isItemEqual(recipe.input))
return true;
}
return false;
}
public static boolean isOutputItem(ItemStack stack)
{
for(ForgeCrafting recipe : forgeRecipes) {
if (stack.isItemEqual(recipe.output))
return true;
}
return false;
}
public static boolean isCoolItem(ItemStack stack)
{
for(ForgeCrafting recipe : forgeRecipes) {
if (stack.isItemEqual(recipe.cool_output))
return true;
}
return false;
}
public static ForgeCrafting getRecipe(ItemStack stack)
{
for(ForgeCrafting recipe : forgeRecipes) {
if (stack.isItemEqual(recipe.input))
return recipe;
}
return null;
}
public static ForgeCrafting getRecipeFromOutput(ItemStack stack)
{
for(ForgeCrafting recipe : forgeRecipes) {
if (stack.isItemEqual(recipe.output))
return recipe;
}
return null;
}
public ItemStack getInput()
{
return this.input;
}
public ItemStack getOutput()
{
return this.output;
}
public ItemStack getOutputFailed()
{
return this.output_failed;
}
public ItemStack getCoolOutput()
{
return this.cool_output;
}
public int getHeatThreshold()
{
return this.heat_threshold;
}
public int getIdealTime()
{
return this.ideal_time;
}
public int getCooldown(){ return this.cooldown;}
///
// end
///
}

View File

@@ -39,7 +39,7 @@ public class ModBlocks {
public static void init() { public static void init() {
firebox = new Firebox(Material.ROCK); firebox = new Forge(Material.ROCK);
bloomery = new Bloomery(Material.ROCK, "bloomery"); bloomery = new Bloomery(Material.ROCK, "bloomery");

View File

@@ -14,7 +14,7 @@ import nmd.primal.forgecraft.crafting.BloomeryCrafting;
public class ModCrafting { public class ModCrafting {
public static void register() { public static void register() {
/***Firebox***/ /***Forge***/
GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.firebox), "X X", "XYX", "X X", 'X', Items.BRICK, 'Y', Blocks.FURNACE); GameRegistry.addShapedRecipe(new ItemStack(ModBlocks.firebox), "X X", "XYX", "X X", 'X', Items.BRICK, 'Y', Blocks.FURNACE);
/***Wooden PistonBellows***/ /***Wooden PistonBellows***/

View File

@@ -4,7 +4,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.fml.common.registry.GameRegistry; import net.minecraftforge.fml.common.registry.GameRegistry;
import nmd.primal.forgecraft.tiles.TileBaseCrucible; import nmd.primal.forgecraft.tiles.TileBaseCrucible;
import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileBloomery;
import nmd.primal.forgecraft.tiles.TileFirebox; import nmd.primal.forgecraft.tiles.TileForge;
import nmd.primal.forgecraft.tiles.TilePistonBellows; import nmd.primal.forgecraft.tiles.TilePistonBellows;
/** /**
@@ -13,7 +13,7 @@ import nmd.primal.forgecraft.tiles.TilePistonBellows;
public class ModTiles { public class ModTiles {
public static void registerTileEntities () { public static void registerTileEntities () {
registerTileEntity(TileFirebox.class, "firebox"); registerTileEntity(TileForge.class, "firebox");
registerTileEntity(TilePistonBellows.class, "pistonbellows"); registerTileEntity(TilePistonBellows.class, "pistonbellows");
registerTileEntity(TileBloomery.class, "bloomery"); registerTileEntity(TileBloomery.class, "bloomery");
registerTileEntity(TileBaseCrucible.class, "basecrucible"); registerTileEntity(TileBaseCrucible.class, "basecrucible");

View File

@@ -1,23 +1,13 @@
package nmd.primal.forgecraft.proxy; package nmd.primal.forgecraft.proxy;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.block.model.ModelBakery;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.client.model.obj.OBJLoader;
import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.client.registry.ClientRegistry;
import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.init.ModBlocks; import nmd.primal.forgecraft.init.ModBlocks;
import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.renders.TileBloomeryRender; import nmd.primal.forgecraft.renders.TileBloomeryRender;
import nmd.primal.forgecraft.renders.TileFireboxRender; import nmd.primal.forgecraft.renders.TileForgeRender;
import nmd.primal.forgecraft.renders.TilePistonBellowsRender; import nmd.primal.forgecraft.renders.TilePistonBellowsRender;
import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileBloomery;
import nmd.primal.forgecraft.tiles.TileFirebox; import nmd.primal.forgecraft.tiles.TileForge;
import nmd.primal.forgecraft.tiles.TilePistonBellows; import nmd.primal.forgecraft.tiles.TilePistonBellows;
/** /**
@@ -43,7 +33,7 @@ public class ClientProxy implements CommonProxy {
//@Override //@Override
public void registerTileRendering() public void registerTileRendering()
{ {
ClientRegistry.bindTileEntitySpecialRenderer(TileFirebox.class, new TileFireboxRender()); ClientRegistry.bindTileEntitySpecialRenderer(TileForge.class, new TileForgeRender());
ClientRegistry.bindTileEntitySpecialRenderer(TilePistonBellows.class, new TilePistonBellowsRender()); ClientRegistry.bindTileEntitySpecialRenderer(TilePistonBellows.class, new TilePistonBellowsRender());
ClientRegistry.bindTileEntitySpecialRenderer(TileBloomery.class, new TileBloomeryRender()); ClientRegistry.bindTileEntitySpecialRenderer(TileBloomery.class, new TileBloomeryRender());
} }

View File

@@ -9,7 +9,6 @@ import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileBloomery;
import nmd.primal.forgecraft.tiles.TileFirebox;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
/** /**

View File

@@ -8,18 +8,18 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import nmd.primal.forgecraft.tiles.TileFirebox; import nmd.primal.forgecraft.tiles.TileForge;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
/** /**
* Created by kitsu on 12/4/2016. * Created by kitsu on 12/4/2016.
*/ */
public class TileFireboxRender extends TileEntitySpecialRenderer<TileFirebox> public class TileForgeRender extends TileEntitySpecialRenderer<TileForge>
{ {
private RenderItem renderItem = Minecraft.getMinecraft().getRenderItem(); private RenderItem renderItem = Minecraft.getMinecraft().getRenderItem();
@Override @Override
public void renderTileEntityAt(TileFirebox tile, double x, double y, double z, float partialTicks, int destroyStage) public void renderTileEntityAt(TileForge tile, double x, double y, double z, float partialTicks, int destroyStage)
{ {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glTranslated(x + 0.5D, y + 0.95D, z + 0.5D); GL11.glTranslated(x + 0.5D, y + 0.95D, z + 0.5D);

View File

@@ -1,19 +1,16 @@
package nmd.primal.forgecraft.tiles; package nmd.primal.forgecraft.tiles;
import net.minecraft.block.BlockFurnace;
import net.minecraft.block.state.IBlockState; import net.minecraft.block.state.IBlockState;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.ITickable; import net.minecraft.util.ITickable;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import nmd.primal.forgecraft.blocks.Bloomery; import nmd.primal.forgecraft.blocks.Bloomery;
import nmd.primal.forgecraft.blocks.Firebox; import nmd.primal.forgecraft.blocks.Forge;
import nmd.primal.forgecraft.crafting.BloomeryCrafting; import nmd.primal.forgecraft.crafting.BloomeryCrafting;
import nmd.primal.forgecraft.init.ModBlocks; import nmd.primal.forgecraft.init.ModBlocks;
import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.init.ModItems;
@@ -47,7 +44,7 @@ public class TileBloomery extends TileBaseSlot implements ITickable {
BlockPos abovePos = new BlockPos(this.getPos().getX(), this.getPos().getY()+1, this.getPos().getZ()); BlockPos abovePos = new BlockPos(this.getPos().getX(), this.getPos().getY()+1, this.getPos().getZ());
if (world.getBlockState(this.getPos()).getValue(Bloomery.ACTIVE)) { if (world.getBlockState(this.getPos()).getValue(Bloomery.ACTIVE)) {
if (this.getSlotStack(0) == ItemStack.EMPTY) { if (this.getSlotStack(0) == ItemStack.EMPTY) {
world.setBlockState(this.getPos(), state.withProperty(Firebox.ACTIVE, false), 2); world.setBlockState(this.getPos(), state.withProperty(Forge.ACTIVE, false), 2);
this.markDirty(); this.markDirty();
world.notifyBlockUpdate(pos, state, state, 2); world.notifyBlockUpdate(pos, state, state, 2);
} }

View File

@@ -11,14 +11,14 @@ import net.minecraft.util.ITickable;
import net.minecraft.util.NonNullList; import net.minecraft.util.NonNullList;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import nmd.primal.forgecraft.blocks.Firebox; import nmd.primal.forgecraft.blocks.Forge;
import static nmd.primal.forgecraft.CommonUtils.getVanillaItemBurnTime; import static nmd.primal.forgecraft.CommonUtils.getVanillaItemBurnTime;
/** /**
* Created by mminaie on 11/30/16. * Created by mminaie on 11/30/16.
*/ */
public class TileFirebox extends TileBaseSlot implements ITickable { public class TileForge extends TileBaseSlot implements ITickable {
private NonNullList<ItemStack> slotList = NonNullList.<ItemStack>withSize(1, ItemStack.EMPTY); private NonNullList<ItemStack> slotList = NonNullList.<ItemStack>withSize(1, ItemStack.EMPTY);
//private ItemStack[] inventory = new ItemStack [0]; //private ItemStack[] inventory = new ItemStack [0];
@@ -35,10 +35,10 @@ public class TileFirebox extends TileBaseSlot implements ITickable {
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()+1, this.getPos().getZ()); BlockPos abovePos = new BlockPos(this.getPos().getX(), this.getPos().getY()+1, this.getPos().getZ());
IBlockState aboveState = world.getBlockState(abovePos);
if (world.getBlockState(this.getPos()).getValue(Firebox.ACTIVE)) { if (world.getBlockState(this.getPos()).getValue(Forge.ACTIVE)) {
if (this.getSlotStack(0) == ItemStack.EMPTY) { if (this.getSlotStack(0) == ItemStack.EMPTY) {
world.setBlockState(this.getPos(), state.withProperty(Firebox.ACTIVE, false), 2); world.setBlockState(this.getPos(), state.withProperty(Forge.ACTIVE, false), 2);
this.markDirty(); this.markDirty();
world.notifyBlockUpdate(pos, state, state, 2); world.notifyBlockUpdate(pos, state, state, 2);
} }
@@ -52,20 +52,7 @@ public class TileFirebox extends TileBaseSlot implements ITickable {
this.markDirty(); this.markDirty();
this.updateBlock(); this.updateBlock();
} }
if(world.getBlockState(abovePos).getBlock() instanceof BlockFurnace){ this.furnaceManager(abovePos);
//System.out.println("Trying to set Block Furnace State active");
IBlockState iblockstate = world.getBlockState(abovePos);
TileEntityFurnace tileFurnace = (TileEntityFurnace) world.getTileEntity(abovePos);
if(world.getBlockState(abovePos).getBlock() == Blocks.LIT_FURNACE){
tileFurnace.setField(0,1000);
}
if(world.getBlockState(abovePos).getBlock() == Blocks.FURNACE){
BlockFurnace.setState(true, world, abovePos);
//world.setBlockState(abovePos, Blocks.LIT_FURNACE.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3);
tileFurnace.setField(0,1000);
}
}
} }
} }
this.heatManager(this.getHeat(), state, this.getSlotStack(0), world, pos); this.heatManager(this.getHeat(), state, this.getSlotStack(0), world, pos);
@@ -73,6 +60,49 @@ public class TileFirebox extends TileBaseSlot implements ITickable {
} }
} }
private void forgeRecipeManager(){
}
private void furnaceManager(BlockPos abovePos){
if(world.getBlockState(abovePos).getBlock() instanceof BlockFurnace){
TileEntityFurnace tileFurnace = (TileEntityFurnace) world.getTileEntity(abovePos);
if(world.getBlockState(abovePos).getBlock() == Blocks.LIT_FURNACE){
tileFurnace.setField(0,1000);
}
if(world.getBlockState(abovePos).getBlock() == Blocks.FURNACE){
BlockFurnace.setState(true, world, abovePos);
tileFurnace.setField(0,1000);
}
}
}
private void heatManager(Integer h, IBlockState state, ItemStack stack, World world, BlockPos pos){
if(state.getValue(Forge.ACTIVE) == true){
if(!stack.isEmpty()) {
if(h > 0) {
this.setHeat(h - 25);
}
if(h < 10 ){
world.setBlockState(pos, state.withProperty(Forge.ACTIVE, false), 2);
}
}
if(stack.isEmpty()){
world.setBlockState(pos, state.withProperty(Forge.ACTIVE, false), 2);
}
}
if(state.getValue(Forge.ACTIVE) == false){
if(h > 50){
this.setHeat(h - 50);
}
if(h < 0){
this.setHeat(0);
}
}
this.updateBlock();
this.markDirty();
}
public int getHeat(){ public int getHeat(){
return this.heat; return this.heat;
} }
@@ -85,32 +115,6 @@ public class TileFirebox extends TileBaseSlot implements ITickable {
return 1; return 1;
} }
private void heatManager(Integer h, IBlockState state, ItemStack stack, World world, BlockPos pos){
if(state.getValue(Firebox.ACTIVE) == true){
if(!stack.isEmpty()) {
if(h > 0) {
this.setHeat(h - 25);
}
if(h < 10 ){
world.setBlockState(pos, state.withProperty(Firebox.ACTIVE, false), 2);
}
}
if(stack.isEmpty()){
world.setBlockState(pos, state.withProperty(Firebox.ACTIVE, false), 2);
}
}
if(state.getValue(Firebox.ACTIVE) == false){
if(h > 50){
this.setHeat(h - 50);
}
if(h < 0){
this.setHeat(0);
}
}
this.updateBlock();
this.markDirty();
}
public ItemStack removeStackFromSlot(int index) { public ItemStack removeStackFromSlot(int index) {
ItemStack stack = this.getSlotStack(index); ItemStack stack = this.getSlotStack(index);
this.setSlotStack(index, ItemStack.EMPTY); this.setSlotStack(index, ItemStack.EMPTY);

View File

@@ -1,5 +1,29 @@
{ {
"forge_marker":1,
"defaults": {
"textures": {
"particle": "forgecraft:blocks/iron_ingot",
"texture": "forgecraft:blocks/iron_ingot"
},
"parent": "forgecraft:ironball"
},
"variants": { "variants": {
"normal": { "model": "forgecraft:ironball" } "active=false": {
"model": "forgecraft:ironball",
"textures": {
"particle": "forgecraft:blocks/iron_ingot",
"texture": "forgecraft:blocks/iron_ingot"
}
},
"active=true": {
"model": "forgecraft:ironball",
"textures": {
"particle": "forgecraft:blocks/iron_ingot_hot",
"texture": "forgecraft:blocks/iron_ingot_hot"
}
}
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 801 B