trying to fix the forge

This commit is contained in:
Mohammad-Ali Minaie
2018-09-22 15:41:06 -04:00
parent fed30aef92
commit 0d1cbbaf95
24 changed files with 406 additions and 342 deletions

View File

@@ -6,7 +6,7 @@ org.gradle.jvmargs=-Xmx3G
mod_group=nmd.primal.forgecraft mod_group=nmd.primal.forgecraft
mod_name=ForgeCraft mod_name=ForgeCraft
mod_version=1.6.06 mod_version=1.6.07
forge_version=14.23.4.2744 forge_version=14.23.4.2744
mcp_mappings=snapshot_20171003 mcp_mappings=snapshot_20171003
mc_version=1.12.2 mc_version=1.12.2

View File

@@ -21,7 +21,7 @@ public class ModInfo {
//public static final String MOD_PREFIX = MOD_ID + ":"; //public static final String MOD_PREFIX = MOD_ID + ":";
public static final String MOD_CHANNEL = MOD_ID; public static final String MOD_CHANNEL = MOD_ID;
public static final String MOD_VERSION = "1.6.06"; public static final String MOD_VERSION = "1.6.07";
public static final String MC_VERSIONS = "[1.12.0, 1.13.0)"; public static final String MC_VERSIONS = "[1.12.0, 1.13.0)";
public static final String DEPENDENCIES = "required-after:forge@[14.21.1.2400,);" + "required-after:primal@[0.6.69,);"; public static final String DEPENDENCIES = "required-after:forge@[14.21.1.2400,);" + "required-after:primal@[0.6.69,);";

View File

@@ -1,4 +1,4 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks.ingots;
import net.minecraft.block.BlockDynamicLiquid; import net.minecraft.block.BlockDynamicLiquid;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
@@ -17,6 +17,7 @@ import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World; import net.minecraft.world.World;
import nmd.primal.core.api.PrimalAPI; import nmd.primal.core.api.PrimalAPI;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.blocks.BlockCustomBase;
import java.util.Random; import java.util.Random;
import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.ThreadLocalRandom;

View File

@@ -1,4 +1,4 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks.machine;
import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
@@ -28,6 +28,7 @@ import nmd.primal.core.api.PrimalAPI;
import nmd.primal.core.common.helper.PlayerHelper; import nmd.primal.core.common.helper.PlayerHelper;
import nmd.primal.core.common.recipes.inworld.FireSource; import nmd.primal.core.common.recipes.inworld.FireSource;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.blocks.CustomContainerFacing;
import nmd.primal.forgecraft.crafting.CrucibleCrafting; import nmd.primal.forgecraft.crafting.CrucibleCrafting;
import nmd.primal.forgecraft.items.SlottedTongs; import nmd.primal.forgecraft.items.SlottedTongs;
import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileBloomery;

View File

@@ -1,4 +1,4 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks.machine;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.IProperty;
@@ -21,6 +21,7 @@ import net.minecraftforge.fml.relauncher.SideOnly;
import nmd.primal.core.api.PrimalAPI; import nmd.primal.core.api.PrimalAPI;
import nmd.primal.core.common.items.tools.Gallagher; import nmd.primal.core.common.items.tools.Gallagher;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.blocks.CustomContainerFacing;
import nmd.primal.forgecraft.tiles.TileBreaker; import nmd.primal.forgecraft.tiles.TileBreaker;
import nmd.primal.forgecraft.util.BreakerHandler; import nmd.primal.forgecraft.util.BreakerHandler;

View File

@@ -1,4 +1,4 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks.machine;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.IProperty;
@@ -26,6 +26,7 @@ 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.blocks.Crucibles.NBTCrucible; import nmd.primal.forgecraft.blocks.Crucibles.NBTCrucible;
import nmd.primal.forgecraft.blocks.CustomContainerFacing;
import nmd.primal.forgecraft.crafting.CastingCrafting; import nmd.primal.forgecraft.crafting.CastingCrafting;
import nmd.primal.forgecraft.crafting.CrucibleCrafting; import nmd.primal.forgecraft.crafting.CrucibleCrafting;
import nmd.primal.forgecraft.init.ModBlocks; import nmd.primal.forgecraft.init.ModBlocks;

View File

@@ -1,4 +1,4 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks.machine;
import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
@@ -25,11 +25,16 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import nmd.primal.core.api.PrimalAPI; import nmd.primal.core.api.PrimalAPI;
import nmd.primal.core.common.helper.PlayerHelper; import nmd.primal.core.common.helper.PlayerHelper;
import nmd.primal.core.common.helper.RecipeHelper;
import nmd.primal.core.common.recipes.inworld.FireSource; import nmd.primal.core.common.recipes.inworld.FireSource;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.blocks.CustomContainerFacing;
import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.items.BaseMultiItem; import nmd.primal.forgecraft.items.BaseMultiItem;
import nmd.primal.forgecraft.items.SlottedTongs;
import nmd.primal.forgecraft.items.parts.ToolPart; import nmd.primal.forgecraft.items.parts.ToolPart;
import nmd.primal.forgecraft.tiles.TileForge; import nmd.primal.forgecraft.tiles.TileForge;
import nmd.primal.forgecraft.util.ForgeHandler;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import java.util.Random; import java.util.Random;
@@ -43,7 +48,7 @@ import static nmd.primal.core.common.helper.FireHelper.makeSmoke;
/** /**
* Created by kitsu on 11/26/2016. * Created by kitsu on 11/26/2016.
*/ */
public class Forge extends CustomContainerFacing implements ITileEntityProvider{ public class Forge extends CustomContainerFacing implements ITileEntityProvider, ForgeHandler{
private int maxHeat; private int maxHeat;
//public static final PropertyBool PrimalAPI.States.ACTIVE = PropertyBool.create("PrimalAPI.States.ACTIVE"); //public static final PropertyBool PrimalAPI.States.ACTIVE = PropertyBool.create("PrimalAPI.States.ACTIVE");
@@ -88,137 +93,76 @@ public class Forge extends CustomContainerFacing implements ITileEntityProvider{
@Override @Override
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) { TileForge tile = (TileForge) world.getTileEntity(pos);
TileForge tile = (TileForge) world.getTileEntity(pos); if (tile != null) {
if (tile != null) { if (hand.equals(hand.MAIN_HAND)) {
ItemStack pItem = player.inventory.getCurrentItem(); ItemStack pItem = player.inventory.getCurrentItem().copy();
ItemStack fuelItem = tile.getSlotStack(0); ItemStack fuelItem = tile.getSlotStack(0);
//System.out.println(pItem.getItem().getRegistryName().toString());
if (!world.isRemote) {
/*********************** /***********************
FUEL SLOT CODE FUEL SLOT CODE
***********************/ ***********************/
if (!tile.getSlotStack(0).isEmpty()) { if (!tile.getSlotStack(0).isEmpty()) {
if(player.inventory.getCurrentItem().getItem() instanceof ItemSpade) { if (player.inventory.getCurrentItem().getItem() instanceof ItemSpade) {
ItemStack returnStack = tile.getSlotStack(0).copy(); ItemStack returnStack = tile.getSlotStack(0).copy();
PlayerHelper.spawnItemOnPlayer(world, player, returnStack); PlayerHelper.spawnItemOnPlayer(world, player, returnStack);
tile.clearSlot(0); tile.clearSlot(0);
return true;
}
}
if(pItem.isEmpty()) {
if(!player.isSneaking()){
if(world.getBlockState(pos).getValue(PrimalAPI.States.ACTIVE) == true){
Integer tempInt = tile.getHeat();
String tempString = tempInt.toString();
ITextComponent itextcomponent = new TextComponentString(tempString);
player.sendStatusMessage(itextcomponent, true);
//System.out.println(pos);
return true; return true;
} }
} }
} if (pItem.isEmpty()) {
if((FireSource.useSource(world, pos, facing, player, hand, pItem, hitX, hitY, hitZ))) { if (!player.isSneaking()) {
world.setBlockState(pos, state.withProperty(PrimalAPI.States.ACTIVE, true), 2); if (world.getBlockState(pos).getValue(PrimalAPI.States.ACTIVE) == true) {
tile.setHeat(100); Integer tempInt = tile.getHeat();
tile.markDirty(); String tempString = tempInt.toString();
tile.updateBlock(); ITextComponent itextcomponent = new TextComponentString(tempString);
return true; player.sendStatusMessage(itextcomponent, true);
} //System.out.println(pos);
if((!pItem.isEmpty()) && tile.isItemValidForSlot(0, pItem)) { return true;
if (!fuelItem.isEmpty()){
if(pItem.getItem() == fuelItem.getItem()){
if(fuelItem.getCount() < 64){
if(fuelItem.getCount() + pItem.getCount() <= 64){
fuelItem.grow(pItem.getCount());
player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY);
tile.markDirty();
tile.updateBlock();
return true;
}
if(fuelItem.getCount() + pItem.getCount() > 64){
pItem.setCount(64-pItem.getCount());
fuelItem.setCount(64);
tile.markDirty();
tile.updateBlock();
return true;
}
} }
} }
} }
if(fuelItem.isEmpty()) { if ((FireSource.useSource(world, pos, facing, player, hand, pItem, hitX, hitY, hitZ))) {
tile.setSlotStack(0, pItem); world.setBlockState(pos, state.withProperty(PrimalAPI.States.ACTIVE, true), 2);
player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY); tile.setHeat(100);
tile.markDirty();
tile.updateBlock();
return true; return true;
} }
} if ((!pItem.isEmpty()) && tile.isItemValidForSlot(0, pItem)) {
/*********************** if (!fuelItem.isEmpty()) {
FORGING SLOTS CODE if (pItem.getItem() == fuelItem.getItem()) {
***********************/ if (fuelItem.getCount() < 64) {
//REMOVE COOL INGOT if (fuelItem.getCount() + pItem.getCount() <= 64) {
if(facing == EnumFacing.UP ) { fuelItem.grow(pItem.getCount());
/*if (pItem.isEmpty()) { player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY);
for (int i = 2; i < tile.getSlotListSize(); i++) { tile.markDirty();
//System.out.println(i); tile.updateBlock();
if (!tile.getSlotStack(i).isEmpty()) { return true;
if (Block.getBlockFromItem(tile.getSlotStack(i).getItem()) instanceof IngotBall) { }
CommonUtils.spawnItemEntity(world, player, tile.getSlotStack(i)); if (fuelItem.getCount() + pItem.getCount() > 64) {
tile.setSlotStack(i, ItemStack.EMPTY); pItem.setCount(64 - pItem.getCount());
return true; fuelItem.setCount(64);
} tile.markDirty();
if(tile.getSlotStack(i).hasTagCompound() == true){ tile.updateBlock();
if (tile.getSlotStack(i).getTagCompound().getBoolean("hot") == false) {
CommonUtils.spawnItemEntity(world, player, tile.getSlotStack(i));
tile.setSlotStack(i, ItemStack.EMPTY);
return true; return true;
} }
} }
} }
} }
}*/ if (fuelItem.isEmpty()) {
tile.setSlotStack(0, pItem);
if (pItem.getItem() instanceof BaseMultiItem) {
//System.out.println("Activating");
for (int i = 2; i <= tile.getSlotListSize(); i++) {
if (tile.getSlotStack(i).isEmpty()) {
ItemStack tempItem = pItem.copy();
tile.setSlotStack(i,tempItem);
pItem.shrink(1);
return true;
}
}
}
//Needs Ore Dictionary Compat
if (pItem.getItem().equals(new ItemStack(Items.IRON_INGOT).getItem())) {
for (int i = 2; i < 7; i++) {
if (tile.getSlotStack(i).isEmpty()) {
tile.setSlotStack(i, new ItemStack(Items.IRON_INGOT, 1));
pItem.shrink(1);
return true;
}
}
}
if(pItem.getItem() instanceof ToolPart){
if(tile.getSlotStack(4).isEmpty()){
//System.out.println("Adding player Item to slot");
tile.setSlotStack(4, pItem);
//System.out.println(tile.getSlotStack(4));
player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY); player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY);
return true; return true;
} }
} }
} }
if (facing == EnumFacing.UP) {
doForgeInventoryManager(pItem, world, tile, pos, hitX, hitY, hitZ, state, player);
}
} }
//System.out.println(tile.getSlotStack(0));
//System.out.println(tile.getSlotStack(1));
//System.out.println(tile.getSlotStack(2));
//System.out.println(tile.getSlotStack(3));
//System.out.println(tile.getSlotStack(4));
//System.out.println(tile.getSlotStack(5));
//System.out.println(tile.getSlotStack(6));
} }
return false; return false;
} }
@@ -313,9 +257,8 @@ public class Forge extends CustomContainerFacing implements ITileEntityProvider{
@Override @Override
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack) public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{ {
if(!worldIn.isRemote) { worldIn.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing()).withProperty(PrimalAPI.States.ACTIVE, Boolean.valueOf(false)), 2);
worldIn.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing()).withProperty(PrimalAPI.States.ACTIVE, Boolean.valueOf(false)), 2); System.out.println(placer.getHorizontalFacing());
}
} }
@Override @Override

View File

@@ -1,4 +1,4 @@
package nmd.primal.forgecraft.blocks; package nmd.primal.forgecraft.blocks.machine;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.IProperty;
@@ -17,6 +17,7 @@ import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.fml.relauncher.SideOnly;
import nmd.primal.core.api.PrimalAPI; import nmd.primal.core.api.PrimalAPI;
import nmd.primal.forgecraft.ModInfo; import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.blocks.CustomContainerFacing;
import nmd.primal.forgecraft.init.ModSounds; import nmd.primal.forgecraft.init.ModSounds;
import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileBloomery;
import nmd.primal.forgecraft.tiles.TileForge; import nmd.primal.forgecraft.tiles.TileForge;

View File

@@ -14,6 +14,7 @@ import nmd.primal.forgecraft.blocks.Anvil.AnvilIron;
import nmd.primal.forgecraft.blocks.Anvil.AnvilStone; import nmd.primal.forgecraft.blocks.Anvil.AnvilStone;
import nmd.primal.forgecraft.blocks.*; import nmd.primal.forgecraft.blocks.*;
import nmd.primal.forgecraft.blocks.Crucibles.NBTCrucible; import nmd.primal.forgecraft.blocks.Crucibles.NBTCrucible;
import nmd.primal.forgecraft.blocks.machine.*;
/** /**
* Created by kitsu on 11/26/2016. * Created by kitsu on 11/26/2016.

View File

@@ -396,7 +396,7 @@ public class ModCrafting{
diamondBronze.getTagCompound().setString("upgrades", "diamond"); diamondBronze.getTagCompound().setString("upgrades", "diamond");
CrucibleCrafting.addRecipe( CrucibleCrafting.addRecipe(
new OreIngredient("ingotBronze"), new OreIngredient("ingotBronze"),
new OreIngredient("dustDiamond"), new OreIngredient("flakeDiamond"),
Ingredient.EMPTY, Ingredient.EMPTY,
Ingredient.EMPTY, Ingredient.EMPTY,
Ingredient.EMPTY, Ingredient.EMPTY,
@@ -410,7 +410,7 @@ public class ModCrafting{
emeraldBronze.getTagCompound().setString("upgrades", "emerald"); emeraldBronze.getTagCompound().setString("upgrades", "emerald");
CrucibleCrafting.addRecipe( CrucibleCrafting.addRecipe(
new OreIngredient("ingotBronze"), new OreIngredient("ingotBronze"),
new OreIngredient("dustEmerald"), new OreIngredient("flakeEmerald"),
Ingredient.EMPTY, Ingredient.EMPTY,
Ingredient.EMPTY, Ingredient.EMPTY,
Ingredient.EMPTY, Ingredient.EMPTY,
@@ -451,7 +451,7 @@ public class ModCrafting{
new OreIngredient("dustCopper"), new OreIngredient("dustCopper"),
new OreIngredient("dustCopper"), new OreIngredient("dustCopper"),
new OreIngredient("dustTin"), new OreIngredient("dustTin"),
new OreIngredient("dustDiamond"), new OreIngredient("flakeDiamond"),
new ItemStack(PrimalAPI.Items.SLAG, 1), new ItemStack(PrimalAPI.Items.SLAG, 1),
diamondBronze, diamondBronze,
1100, 1100,
@@ -463,7 +463,7 @@ public class ModCrafting{
new OreIngredient("dustCopper"), new OreIngredient("dustCopper"),
new OreIngredient("dustCopper"), new OreIngredient("dustCopper"),
new OreIngredient("dustTin"), new OreIngredient("dustTin"),
new OreIngredient("dustEmerald"), new OreIngredient("flakeEmerald"),
new ItemStack(PrimalAPI.Items.SLAG, 1), new ItemStack(PrimalAPI.Items.SLAG, 1),
emeraldBronze, emeraldBronze,
1100, 1100,
@@ -559,7 +559,7 @@ public class ModCrafting{
/***Anvil***/ /***Anvil***/
RecipeHandler.addShapedOreRecipe(new ItemStack(ModBlocks.stoneanvil, 1), RecipeHandler.addShapedOreRecipe(new ItemStack(ModBlocks.stoneanvil, 1),
" ", " I ", " S ", 'I', ModItems.ironingotball, 'S', Blocks.STONE); " ", " I ", " S ", 'I', "ingotIron", 'S', Blocks.STONE);

View File

@@ -178,11 +178,10 @@ public class BaseMultiItem extends BaseItem {
@Override @Override
public void onUpdate(ItemStack stack, World world, Entity player, int itemSlot, boolean isSelected) { public void onUpdate(ItemStack stack, World world, Entity player, int itemSlot, boolean isSelected) {
//System.out.println(item.getTagCompound()); //System.out.println(item.getTagCompound());
//if (!stack.hasTagCompound()) { if (!stack.hasTagCompound()) {
// stack.setTagCompound(new NBTTagCompound()); stack.setTagCompound(new NBTTagCompound());
// stack.getTagCompound().setBoolean("hot", false); stack.getTagCompound().setBoolean("hot", false);
//} }
} }
@Override @Override

View File

@@ -27,7 +27,7 @@ import nmd.primal.forgecraft.ModInfo;
import nmd.primal.forgecraft.blocks.Anvil.AnvilBase; import nmd.primal.forgecraft.blocks.Anvil.AnvilBase;
import nmd.primal.forgecraft.blocks.Anvil.AnvilStone; import nmd.primal.forgecraft.blocks.Anvil.AnvilStone;
import nmd.primal.forgecraft.blocks.Crucibles.NBTCrucible; import nmd.primal.forgecraft.blocks.Crucibles.NBTCrucible;
import nmd.primal.forgecraft.blocks.Forge; import nmd.primal.forgecraft.blocks.machine.Forge;
import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.items.blocks.ItemNBTCrucible; import nmd.primal.forgecraft.items.blocks.ItemNBTCrucible;
import nmd.primal.forgecraft.items.parts.ToolPart; import nmd.primal.forgecraft.items.parts.ToolPart;
@@ -55,7 +55,8 @@ public class SlottedTongs extends Item implements IPickup, AnvilHandler{
public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn) public float apply(ItemStack stack, @Nullable World worldIn, @Nullable EntityLivingBase entityIn)
{ {
SlottedTongs item = (SlottedTongs) stack.getItem(); SlottedTongs item = (SlottedTongs) stack.getItem();
ItemStack slotStack = item.getSlotList().get(0); ItemStack slotStack = item.getSlotList().get(0).copy();
if (stack.getItem() instanceof SlottedTongs) { if (stack.getItem() instanceof SlottedTongs) {
if (slotStack.getItem() instanceof ItemNBTCrucible) { if (slotStack.getItem() instanceof ItemNBTCrucible) {
/***Render Empty Crucible***/ /***Render Empty Crucible***/
@@ -284,7 +285,7 @@ public class SlottedTongs extends Item implements IPickup, AnvilHandler{
public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing face, float hitx, float hity, float hitz) public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing face, float hitx, float hity, float hitz)
{ {
//if(!world.isRemote){ //if(!world.isRemote){
//if (hand.equals(player.swingingHand)) { if (hand.equals(player.getActiveHand())) {
IBlockState state = world.getBlockState(pos); IBlockState state = world.getBlockState(pos);
Block block = world.getBlockState(pos).getBlock(); Block block = world.getBlockState(pos).getBlock();
ItemStack itemstack = player.getHeldItem(hand); ItemStack itemstack = player.getHeldItem(hand);
@@ -319,49 +320,59 @@ public class SlottedTongs extends Item implements IPickup, AnvilHandler{
} }
} }
/*****
TAKES anything out from the Forge
*****/
if (slotList.get(0).isEmpty()) {
if (world.getBlockState(pos).getBlock() instanceof Forge) {
TileForge tile = (TileForge) world.getTileEntity(pos);
for (int i = 2; i < tile.getSlotListSize(); i++) {
if (tile.getSlotStack(i) != ItemStack.EMPTY) {
ItemStack tempStack = tile.getSlotStack(i).copy();
//System.out.println(tempStack);
slotList.set(0, tempStack);
tile.setSlotStack(i, ItemStack.EMPTY);
//System.out.println(slotList.get(0));
return EnumActionResult.SUCCESS;
}
}
}
}
/***** /*****
PUTS the Ingots into the Forge PUTS anything into the Forge
*****/ *****/
/*
if (!slotList.get(0).isEmpty()) { if (!slotList.get(0).isEmpty()) {
if (world.getBlockState(pos).getBlock() instanceof Forge) { if (world.getBlockState(pos).getBlock() instanceof Forge) {
TileForge tile = (TileForge) world.getTileEntity(pos); TileForge tile = (TileForge) world.getTileEntity(pos);
if (!(slotList.get(0).getItem() instanceof ToolPart)) { for (int i = 2; i < tile.getSlotListSize(); i++) {
for (int i = 2; i < tile.getSlotListSize(); i++) { if(tile.getSlotStack(i).isEmpty()) {
ItemStack tempStack = slotList.get(0).copy(); ItemStack tempStack = slotList.get(0).copy();
tile.setSlotStack(i, tempStack); tile.setSlotStack(i, tempStack);
slotList.set(0, ItemStack.EMPTY); slotList.set(0, ItemStack.EMPTY);
tile.update();
return EnumActionResult.SUCCESS; return EnumActionResult.SUCCESS;
} }
} }
} }
} }
*/
/*****
TAKES anything out from the Forge
*****/
/*
if (slotList.get(0).isEmpty()) {
if (world.getBlockState(pos).getBlock() instanceof Forge) {
TileForge tile = (TileForge) world.getTileEntity(pos);
for (int i = 2; i < tile.getSlotListSize(); i++) {
if (tile.getSlotStack(i) != ItemStack.EMPTY) {
ItemStack tempStack = tile.getSlotStack(i).copy();
slotList.set(0, tempStack);
tile.setSlotStack(i, ItemStack.EMPTY);
return EnumActionResult.SUCCESS;
}
}
}
}
//}
*/
/***** /*****
PUTS the ToolParts into the Forge PUTS the ToolParts into the Forge
*****/ *****/
/*
if (!slotList.get(0).isEmpty()) { if (!slotList.get(0).isEmpty()) {
if (world.getBlockState(pos).getBlock() instanceof Forge) { if (world.getBlockState(pos).getBlock() instanceof Forge) {
TileForge tile = (TileForge) world.getTileEntity(pos); TileForge tile = (TileForge) world.getTileEntity(pos);
if (slotList.get(0).getItem() instanceof ToolPart) { if (slotList.get(0).getItem() instanceof ToolPart) {
if(){
ItemStack tempStack = slotList.get(0).copy(); ItemStack tempStack = slotList.get(0).copy();
tile.setSlotStack(4, tempStack); tile.setSlotStack(4, tempStack);
slotList.set(0, ItemStack.EMPTY); slotList.set(0, ItemStack.EMPTY);
@@ -369,6 +380,7 @@ public class SlottedTongs extends Item implements IPickup, AnvilHandler{
} }
} }
} }
*/
/***** /*****
DROPS the ToolParts into the World DROPS the ToolParts into the World
@@ -383,16 +395,6 @@ public class SlottedTongs extends Item implements IPickup, AnvilHandler{
} }
} }
} }
if (!slotList.get(0).isEmpty()) {
if ((block.equals(Blocks.HOPPER))) {
if (slotList.get(0).getItem() instanceof BaseMultiItem) {
ItemStack tempStack = slotList.get(0).copy();
PlayerHelper.spawnItemOnGround(world, pos, tempStack);
slotList.set(0, ItemStack.EMPTY);
return EnumActionResult.SUCCESS;
}
}
}
/***** /*****
Cools the Ingots on the Tongs Cools the Ingots on the Tongs
@@ -421,17 +423,19 @@ public class SlottedTongs extends Item implements IPickup, AnvilHandler{
*****/ *****/
if (!slotList.get(0).isEmpty()) { if (!slotList.get(0).isEmpty()) {
if (!(block instanceof AnvilBase)) { if (!(block instanceof AnvilBase)) {
if (slotList.get(0).getItem() instanceof BaseMultiItem) { if (!(block instanceof Forge)) {
ItemStack tempStack = slotList.get(0).copy(); if (slotList.get(0).getItem() instanceof BaseMultiItem) {
PlayerHelper.spawnItemOnGround(world, pos, tempStack); ItemStack tempStack = slotList.get(0).copy();
slotList.set(0, ItemStack.EMPTY); PlayerHelper.spawnItemOnGround(world, pos, tempStack);
return EnumActionResult.SUCCESS; slotList.set(0, ItemStack.EMPTY);
return EnumActionResult.SUCCESS;
}
} }
} }
} }
return EnumActionResult.FAIL; return EnumActionResult.FAIL;
//} }
//return EnumActionResult.FAIL; return EnumActionResult.FAIL;
} }
public ItemStack getItem(World world, BlockPos pos, IBlockState state, Block block) public ItemStack getItem(World world, BlockPos pos, IBlockState state, Block block)

View File

@@ -16,7 +16,6 @@ import net.minecraft.util.math.BlockPos;
import nmd.primal.core.api.PrimalAPI; import nmd.primal.core.api.PrimalAPI;
import nmd.primal.forgecraft.blocks.Anvil.AnvilBase; import nmd.primal.forgecraft.blocks.Anvil.AnvilBase;
import nmd.primal.forgecraft.blocks.Anvil.AnvilStone; import nmd.primal.forgecraft.blocks.Anvil.AnvilStone;
import nmd.primal.forgecraft.blocks.IngotBall;
import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.items.BaseMultiItem; import nmd.primal.forgecraft.items.BaseMultiItem;
import nmd.primal.forgecraft.tiles.TileAnvil; import nmd.primal.forgecraft.tiles.TileAnvil;
@@ -155,14 +154,6 @@ public class TileAnvilRender extends TileEntitySpecialRenderer<TileAnvil>
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
if (Block.getBlockFromItem(item) instanceof IngotBall) {
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.44D, tile.getNormalZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (item instanceof BaseMultiItem) { if (item instanceof BaseMultiItem) {
GL11.glPushMatrix(); GL11.glPushMatrix();
double scale = 1.0D; double scale = 1.0D;
@@ -248,14 +239,6 @@ public class TileAnvilRender extends TileEntitySpecialRenderer<TileAnvil>
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
if (Block.getBlockFromItem(item) instanceof IngotBall) {
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getReverseX(a), -0.44D, tile.getReverseZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (item instanceof BaseMultiItem) { if (item instanceof BaseMultiItem) {
GL11.glPushMatrix(); GL11.glPushMatrix();
double scale = 1.0D; double scale = 1.0D;
@@ -339,14 +322,7 @@ public class TileAnvilRender extends TileEntitySpecialRenderer<TileAnvil>
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
if (Block.getBlockFromItem(item) instanceof IngotBall) {
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getNormalX(a), -0.44D, tile.getReverseZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (item instanceof BaseMultiItem) { if (item instanceof BaseMultiItem) {
GL11.glPushMatrix(); GL11.glPushMatrix();
double scale = 1.0D; double scale = 1.0D;
@@ -430,14 +406,6 @@ public class TileAnvilRender extends TileEntitySpecialRenderer<TileAnvil>
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED); renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
if (Block.getBlockFromItem(item) instanceof IngotBall) {
GL11.glPushMatrix();
double scale = 1.0D;
GL11.glScaled(scale, scale, scale);
GL11.glTranslated(tile.getReverseX(a), -0.44D, tile.getNormalZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (item instanceof BaseMultiItem) { if (item instanceof BaseMultiItem) {
GL11.glPushMatrix(); GL11.glPushMatrix();
double scale = 1.0D; double scale = 1.0D;

View File

@@ -10,7 +10,7 @@ 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.blocks.BloomeryBase; import nmd.primal.forgecraft.blocks.machine.BloomeryBase;
import nmd.primal.forgecraft.tiles.TileBloomery; import nmd.primal.forgecraft.tiles.TileBloomery;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;

View File

@@ -9,7 +9,7 @@ import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import nmd.primal.forgecraft.blocks.Breaker; import nmd.primal.forgecraft.blocks.machine.Breaker;
import nmd.primal.forgecraft.tiles.TileBreaker; import nmd.primal.forgecraft.tiles.TileBreaker;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;

View File

@@ -10,7 +10,7 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import nmd.primal.forgecraft.blocks.CastingForm; import nmd.primal.forgecraft.blocks.machine.CastingForm;
import nmd.primal.forgecraft.blocks.CustomContainerFacing; import nmd.primal.forgecraft.blocks.CustomContainerFacing;
import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.tiles.TileCastingForm; import nmd.primal.forgecraft.tiles.TileCastingForm;

View File

@@ -8,11 +8,17 @@ import net.minecraft.client.renderer.block.model.ItemCameraTransforms;
import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.EnumDyeColor;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import nmd.primal.forgecraft.blocks.Forge; import nmd.primal.core.api.PrimalAPI;
import nmd.primal.forgecraft.blocks.machine.Forge;
import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.items.BaseMultiItem;
import nmd.primal.forgecraft.items.parts.ToolPart;
import nmd.primal.forgecraft.tiles.TileForge; import nmd.primal.forgecraft.tiles.TileForge;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@@ -40,19 +46,19 @@ public class TileForgeRender extends TileEntitySpecialRenderer<TileForge>
int bright = tile.getWorld().getCombinedLight(pos.up(), 0); int bright = tile.getWorld().getCombinedLight(pos.up(), 0);
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, bright % 65536, bright / 65536);
ItemStack stack1 = tile.getSlotStack(0); ItemStack stack0 = tile.getSlotStack(0);
boolean is_block = stack1.getItem() instanceof ItemBlock; boolean is_block = stack0.getItem() instanceof ItemBlock;
float scale = is_block ? 0.1725F : 0.3F; float scale = is_block ? 0.1725F : 0.3F;
double xTrans = is_block ? -1.6D : -0.45D; double xTrans = is_block ? -1.6D : -0.45D;
double yTrans = is_block ? -1.26D : 0.75D; double yTrans = is_block ? -1.26D : 0.75D;
if (!stack1.isEmpty()) { if (!stack0.isEmpty()) {
int stackRotation = stack1.getCount(); int stackRotation = stack0.getCount();
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glScalef(scale, scale, scale); GL11.glScalef(scale, scale, scale);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1)); renderItem.renderItem(stack0, renderItem.getItemModelMesher().getItemModel(stack0));
GL11.glPopMatrix(); GL11.glPopMatrix();
for (int i = 0; i < Math.ceil(stackRotation / 8) + 1; i++) { for (int i = 0; i < Math.ceil(stackRotation / 8) + 1; i++) {
GL11.glPushMatrix(); GL11.glPushMatrix();
@@ -60,64 +66,90 @@ public class TileForgeRender extends TileEntitySpecialRenderer<TileForge>
GL11.glRotated(45.0F * i, 0.0F, 1.0F, 0.0F); GL11.glRotated(45.0F * i, 0.0F, 1.0F, 0.0F);
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F); GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslated(xTrans, yTrans, 0.0D); GL11.glTranslated(xTrans, yTrans, 0.0D);
renderItem.renderItem(stack1, renderItem.getItemModelMesher().getItemModel(stack1)); renderItem.renderItem(stack0, renderItem.getItemModelMesher().getItemModel(stack0));
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
} }
for (int i = 2; i < tile.getSlotListSize(); i++) { if (state.getValue(Forge.FACING) == EnumFacing.NORTH) {
//float tempScale = 0.8F;
GL11.glScalef(0.8F, 0.8F, 0.8F);
GL11.glTranslated(-0.3F, 0.1D, -0.7D);
int counter = 1;
for (int i = 0; i < tile.getArraySize(); i++) {
for (int a = 0; a < tile.getArraySize(); a++) {
if (!tile.getSlotStack(counter).isEmpty()) {
Item item = tile.getSlotStack(counter).getItem();
if (item instanceof ToolPart ) {
GL11.glPushMatrix();
double tempScale = 1.0D;
GL11.glScaled(tempScale, tempScale, tempScale);
GL11.glTranslated(tile.getNormalX(a), -0.465D, tile.getNormalZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
if (item instanceof BaseMultiItem) {
GL11.glPushMatrix();
double tempScale = 1.0D;
GL11.glScaled(tempScale, tempScale, tempScale);
GL11.glTranslated(tile.getNormalX(a), -0.0625D, tile.getNormalZ(i));
renderItem.renderItem(tile.getSlotStack(counter), ItemCameraTransforms.TransformType.FIXED);
GL11.glPopMatrix();
}
}
counter++;
}
}
}
/*
for (int i = 1; i < tile.getSlotListSize(); i++) {
if (!tile.getSlotStack(i).isEmpty()) { if (!tile.getSlotStack(i).isEmpty()) {
GL11.glPushMatrix(); GL11.glPushMatrix();
float tempScale = 0.8F; float tempScale = 0.8F;
GL11.glScalef(tempScale, tempScale, tempScale); GL11.glScalef(tempScale, tempScale, tempScale);
GL11.glTranslated(0.0F, 0.1D, 0.0F); GL11.glTranslated(0.0F, 0.1D, 0.0F);
if (i == 2) { if (i == 1) {
GL11.glTranslated(-0.3, -0.05D, -0.3D); GL11.glTranslated(-0.3, -0.05D, -0.3D);
if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) { if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) {
GL11.glScalef(0.5f, 0.5f, 0.5f); GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f); GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
} }
if (tile.getSlotStack(i).getItem() instanceof ToolPart) {
GL11.glRotated(180.0F, 0.0F, 1.0F, 0.0F);
}
} }
if (i == 3) { if (i == 2) {
GL11.glTranslated(-0.3, -0.05D, 0.3D); GL11.glTranslated(-0.3, -0.05D, 0.3D);
if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) { if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) {
GL11.glScalef(0.5f, 0.5f, 0.5f); GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f); GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
} }
if (tile.getSlotStack(i).getItem() instanceof ToolPart) {
GL11.glRotated(180.0F, 0.0F, 1.0F, 0.0F);
}
} }
if (i == 4) { if (i == 3) {
if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) { if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) {
GL11.glScalef(0.5f, 0.5f, 0.5f); GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f); GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
} }
//GL11.glScalef(0.6F, 0.6F, 0.6F); //GL11.glScalef(0.6F, 0.6F, 0.6F);
if (tile.getSlotStack(i).getItem() == ModItems.pickaxehead) { if (tile.getSlotStack(i).getItem() instanceof ToolPart) {
GL11.glRotated(180.0F, 0.0F, 1.0F, 0.0F); GL11.glRotated(180.0F, 0.0F, 1.0F, 0.0F);
} }
if (tile.getSlotStack(i).getItem() == ModItems.ironaxehead) {
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
}
if (tile.getSlotStack(i).getItem() == ModItems.ironshovelhead) {
GL11.glRotated(90.0F, 1.0F, 0.0F, 0.0F);
}
if (tile.getSlotStack(i).getItem() == ModItems.ironhoehead) {
GL11.glRotated(180.0F, 1.0F, 0.0F, 0.0F);
GL11.glTranslated(0.0, 0.025D, 0.0D);
}
} }
if (i == 5) { if (i == 4) {
GL11.glTranslated(0.3, -0.05D, -0.3D); GL11.glTranslated(0.3, -0.05D, -0.3D);
if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) { if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) {
GL11.glScalef(0.5f, 0.5f, 0.5f); GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f); GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
} }
} if (tile.getSlotStack(i).getItem() instanceof ToolPart) {
if (i == 6) { GL11.glRotated(180.0F, 0.0F, 1.0F, 0.0F);
GL11.glTranslated(0.3, -0.05D, 0.3D);
if (tile.getSlotStack(i).getItem() == Items.IRON_INGOT) {
GL11.glScalef(0.5f, 0.5f, 0.5f);
GL11.glRotated(90.0F, 1.0f, 0.0f, 0.0f);
} }
} }
@@ -126,7 +158,7 @@ public class TileForgeRender extends TileEntitySpecialRenderer<TileForge>
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
} }
*/
OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY); OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, prevLGTX, prevLGTY);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }

View File

@@ -10,7 +10,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import nmd.primal.core.api.PrimalAPI; import nmd.primal.core.api.PrimalAPI;
import nmd.primal.forgecraft.blocks.PistonBellows; import nmd.primal.forgecraft.blocks.machine.PistonBellows;
import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.tiles.TilePistonBellows; import nmd.primal.forgecraft.tiles.TilePistonBellows;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;

View File

@@ -14,7 +14,7 @@ import net.minecraft.world.World;
import nmd.primal.core.api.PrimalAPI; import nmd.primal.core.api.PrimalAPI;
import nmd.primal.core.common.helper.FireHelper; import nmd.primal.core.common.helper.FireHelper;
import nmd.primal.core.common.helper.RecipeHelper; import nmd.primal.core.common.helper.RecipeHelper;
import nmd.primal.forgecraft.blocks.BloomeryBase; import nmd.primal.forgecraft.blocks.machine.BloomeryBase;
import nmd.primal.forgecraft.blocks.Crucibles.NBTCrucible; import nmd.primal.forgecraft.blocks.Crucibles.NBTCrucible;
import nmd.primal.forgecraft.crafting.CrucibleCrafting; import nmd.primal.forgecraft.crafting.CrucibleCrafting;
import nmd.primal.forgecraft.init.ModItems; import nmd.primal.forgecraft.init.ModItems;

View File

@@ -11,10 +11,8 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World; import net.minecraft.world.World;
import nmd.primal.core.api.PrimalAPI; import nmd.primal.core.api.PrimalAPI;
import nmd.primal.core.common.helper.RecipeHelper; import nmd.primal.core.common.helper.RecipeHelper;
import nmd.primal.forgecraft.blocks.Forge; import nmd.primal.forgecraft.blocks.machine.Forge;
import nmd.primal.forgecraft.crafting.ForgeCrafting; import nmd.primal.forgecraft.crafting.ForgeCrafting;
import nmd.primal.forgecraft.items.BaseMultiItem;
import nmd.primal.forgecraft.items.parts.ToolPart;
import nmd.primal.forgecraft.util.ToolNBT; import nmd.primal.forgecraft.util.ToolNBT;
import static nmd.primal.core.api.PrimalAPI.randomCheck; import static nmd.primal.core.api.PrimalAPI.randomCheck;
@@ -25,7 +23,27 @@ import static nmd.primal.core.common.helper.FireHelper.makeSmoke;
*/ */
public class TileForge extends TileBaseSlot implements ITickable, ToolNBT{ public class TileForge extends TileBaseSlot implements ITickable, ToolNBT{
private NonNullList<ItemStack> slotList = NonNullList.<ItemStack>withSize(7, ItemStack.EMPTY); private int arraySize = 2;
private double[] normalMin = {0.0625, 0.5625};
private double[] normalMax = {0.4375, 0.9375};
private double[] reverseMin = {0.5625, 0.0625};
private double[] reverseMax = {0.9375, 0.4375};
public int getArraySize(){return arraySize;}
public double getNormalX(Integer x) {
return normalMin[x];
}
public double getNormalZ(Integer x) {
return normalMax[x];
}
public double getReverseX(Integer x) {
return reverseMin[x];
}
public double getReverseZ(Integer x) {
return reverseMax[x];
}
private NonNullList<ItemStack> slotList = NonNullList.<ItemStack>withSize(5, ItemStack.EMPTY);
//private ItemStack[] inventory = new ItemStack [0]; //private ItemStack[] inventory = new ItemStack [0];
//private String customName; //private String customName;
private int iteration = 0; private int iteration = 0;
@@ -174,7 +192,7 @@ public class TileForge extends TileBaseSlot implements ITickable, ToolNBT{
private void craftingManager() { private void craftingManager() {
for (int i = 2; i < this.getSlotListSize(); i++) { for (int i = 1; i < this.getSlotListSize(); i++) {
ItemStack stack = this.getSlotStack(i).copy(); ItemStack stack = this.getSlotStack(i).copy();
ForgeCrafting recipe = ForgeCrafting.getRecipe(stack.getItem()); ForgeCrafting recipe = ForgeCrafting.getRecipe(stack.getItem());
@@ -183,7 +201,7 @@ public class TileForge extends TileBaseSlot implements ITickable, ToolNBT{
if(stack.hasTagCompound()){ if(stack.hasTagCompound()){
stackCompound=stack.getTagCompound().copy(); stackCompound=stack.getTagCompound().copy();
} }
if(i == 2){ if(i == 1){
if (this.getHeat() >= recipe.getHeatThreshold()) { if (this.getHeat() >= recipe.getHeatThreshold()) {
cookCounter2++; cookCounter2++;
} }
@@ -197,7 +215,7 @@ public class TileForge extends TileBaseSlot implements ITickable, ToolNBT{
cookCounter2 = 0; cookCounter2 = 0;
} }
} }
if(i == 3){ if(i == 2){
if (this.getHeat() >= recipe.getHeatThreshold()) { if (this.getHeat() >= recipe.getHeatThreshold()) {
cookCounter3++; cookCounter3++;
} }
@@ -213,7 +231,7 @@ public class TileForge extends TileBaseSlot implements ITickable, ToolNBT{
cookCounter3 = 0; cookCounter3 = 0;
} }
} }
if(i == 4){ if(i == 3){
if (this.getHeat() >= recipe.getHeatThreshold()) { if (this.getHeat() >= recipe.getHeatThreshold()) {
cookCounter4++; cookCounter4++;
} }
@@ -227,7 +245,7 @@ public class TileForge extends TileBaseSlot implements ITickable, ToolNBT{
cookCounter4 = 0; cookCounter4 = 0;
} }
} }
if(i == 5){ if(i == 4){
if (this.getHeat() >= recipe.getHeatThreshold()) { if (this.getHeat() >= recipe.getHeatThreshold()) {
cookCounter5++; cookCounter5++;
} }
@@ -241,20 +259,6 @@ public class TileForge extends TileBaseSlot implements ITickable, ToolNBT{
cookCounter5 = 0; cookCounter5 = 0;
} }
} }
if(i == 6){
if (this.getHeat() >= recipe.getHeatThreshold()) {
cookCounter6++;
}
if (this.getHeat() < recipe.getHeatThreshold() && cookCounter6 > 0) {
cookCounter6--;
}
if (cookCounter6 >= recipe.getIdealTime()) {
ItemStack outputStack = recipe.getOutput().copy();
outputStack.setItemDamage(stack.getItemDamage());
this.setSlotStack(i, outputStack);
cookCounter6 = 0;
}
}
} }
} }
} }

View File

@@ -371,82 +371,6 @@ public interface AnvilHandler {
ItemStack dropStack = null; ItemStack dropStack = null;
if (stack.getItem() instanceof BaseMultiItem) { if (stack.getItem() instanceof BaseMultiItem) {
BaseMultiItem item = (BaseMultiItem) stack.getItem(); BaseMultiItem item = (BaseMultiItem) stack.getItem();
/*
switch (item.getID()) {
case 6:
dropStack = new ItemStack(ModBlocks.ironball, 1);
break;
case 7:
dropStack = new ItemStack(ModBlocks.ironchunk, 1);
break;
case 8:
dropStack = new ItemStack(ModItems.pickaxehead, 1);
break;
case 9:
dropStack = new ItemStack(ModItems.ironaxehead, 1);
break;
case 10:
dropStack = new ItemStack(ModItems.ironshovelhead, 1);
break;
case 11:
dropStack = new ItemStack(ModItems.ironhoehead, 1);
break;
case 15:
dropStack = new ItemStack(ModBlocks.ironcleanball, 1);
break;
case 16:
dropStack = new ItemStack(ModBlocks.ironcleanchunk, 1);
break;
case 17:
dropStack = new ItemStack(ModItems.cleanironpickaxehead, 1);
break;
case 18:
dropStack = new ItemStack(ModItems.cleanironaxehead, 1);
break;
case 19:
dropStack = new ItemStack(ModItems.cleanironshovelhead, 1);
break;
case 20:
dropStack = new ItemStack(ModItems.cleanironhoehead, 1);
break;
case 24:
dropStack = new ItemStack(ModBlocks.steelball, 1);
break;
case 25:
dropStack = new ItemStack(ModBlocks.steelchunk, 1);
break;
case 26:
dropStack = new ItemStack(ModItems.steelpickaxehead, 1);
break;
case 27:
dropStack = new ItemStack(ModItems.steelaxehead, 1);
break;
case 28:
dropStack = new ItemStack(ModItems.steelshovelhead, 1);
break;
case 29:
dropStack = new ItemStack(ModItems.steelhoehead, 1);
break;
case 33:
dropStack = new ItemStack(ModBlocks.wootzball, 1);
break;
case 34:
dropStack = new ItemStack(ModBlocks.wootzchunk, 1);
break;
case 35:
dropStack = new ItemStack(ModItems.wootzpickaxehead, 1);
break;
case 36:
dropStack = new ItemStack(ModItems.wootzaxehead, 1);
break;
case 37:
dropStack = new ItemStack(ModItems.wootzshovelhead, 1);
break;
case 38:
dropStack = new ItemStack(ModItems.wootzhoehead, 1);
break;
}*/
} else { } else {
dropStack = stack; dropStack = stack;
} }

View File

@@ -0,0 +1,184 @@
package nmd.primal.forgecraft.util;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import nmd.primal.core.common.helper.RecipeHelper;
import nmd.primal.core.common.items.tools.Gallagher;
import nmd.primal.forgecraft.init.ModItems;
import nmd.primal.forgecraft.items.BaseMultiItem;
import nmd.primal.forgecraft.items.ForgeHammer;
import nmd.primal.forgecraft.items.SlottedTongs;
import nmd.primal.forgecraft.tiles.TileAnvil;
import nmd.primal.forgecraft.tiles.TileForge;
import static nmd.primal.forgecraft.blocks.CustomContainerFacing.FACING;
/**
* Created by mminaie on 9/22/18.
*/
public interface ForgeHandler {
int arraySize = 2;
double[] normalMin = {0.0625, 0.5625};
double[] normalMax = {0.4375, 0.9375};
double[] reverseMin = {0.5625, 0.0625};
double[] reverseMax = {0.9375, 0.4375};
default int getArraySize(){return arraySize;}
default double getNormalMin(Integer x) {
return normalMin[x];
}
default double getNormalMax(Integer x) {
return normalMax[x];
}
default double getReverseMin(Integer x) {
return reverseMin[x];
}
default double getReverseMax(Integer x) {
return reverseMax[x];
}
/*****************************************************************************
Adding and Removing Inventory With Tongs
*****************************************************************************/
default boolean doForgeInventoryManager(ItemStack pItem, World world, TileForge tile, BlockPos pos, float hitx, float hity, float hitz, IBlockState state, EntityPlayer player) {
//if ((!(pItem.getItem() instanceof Gallagher)) || (!(pItem.getItem() instanceof ForgeHammer))) {
// if (pItem.getItem() instanceof BaseMultiItem) {
// return false;
// }
if (state.getValue(FACING) == EnumFacing.NORTH) {
int counter = 0;
for (int z = 0; z < arraySize; z++) {
for (int x = 0; x < arraySize; x++) {
if (hitx >= this.getNormalMin(x) && hitx <= this.getNormalMax(x)) {
if (hitz >= this.getNormalMin(z) && hitz <= this.getNormalMax(z)) {
return ForgeHandler.doWork(pItem, (counter + 1), tile, world, pos, player);
}
}
counter++;
}
}
}
if (state.getValue(FACING) == EnumFacing.SOUTH) {
int counter = 0;
for (int z = 0; z < arraySize; z++) {
for (int x = 0; x < arraySize; x++) {
if (hitx >= this.getReverseMin(x) && hitx <= this.getReverseMax(x)) {
if (hitz >= this.getReverseMin(z) && hitz <= this.getReverseMax(z)) {
return ForgeHandler.doWork(pItem, (counter + 1), tile, world, pos, player);
}
}
counter++;
}
}
}
if (state.getValue(FACING) == EnumFacing.WEST) {
int counter = 0;
for (int x = 0; x < arraySize; x++) {
for (int z = 0; z < arraySize; z++) {
if (hitx >= this.getNormalMin(x) && hitx <= this.getNormalMax(x)) {
if (hitz >= this.getReverseMin(z) && hitz <= this.getReverseMax(z)) {
return ForgeHandler.doWork(pItem, (counter + 1), tile, world, pos, player);
}
}
counter++;
}
}
}
if (state.getValue(FACING) == EnumFacing.EAST) {
int counter = 0;
for (int x = 0; x < arraySize; x++) {
for (int z = 0; z < arraySize; z++) {
if (hitx >= this.getReverseMin(x) && hitx <= this.getReverseMax(x)) {
if (hitz >= this.getNormalMin(z) && hitz <= this.getNormalMax(z)) {
return ForgeHandler.doWork(pItem, (counter + 1), tile, world, pos, player);
}
}
counter++;
}
}
}
//}
return false;
}
static boolean doWork(ItemStack pItem, Integer counter, TileForge tile, World world, BlockPos pos, EntityPlayer player) {
if (pItem.getItem().equals(ModItems.slottedtongs)) {
SlottedTongs tongs = (SlottedTongs) pItem.getItem();
ItemStack tongStack = tongs.getSlotList().get(0).copy();
if (tongStack.isEmpty()) {
if (!tile.getSlotStack(counter).isEmpty()) {
System.out.println("Removing stuff");
ItemStack tempStack = tile.getSlotStack(counter).copy();
tongs.setSlotList(tempStack);
tile.setSlotStack(counter, ItemStack.EMPTY);
System.out.println(tongs.getSlotList().get(0));
return true;
}
}
if (!tongStack.isEmpty()) {
if (tile.getSlotStack(counter).isEmpty()) {
System.out.println("Adding stuff");
ItemStack tempStack = tongs.getSlotList().get(0).copy();
tile.setSlotStack(counter, tempStack);
tongs.setSlotList(ItemStack.EMPTY);
return true;
}
}
}
if (pItem.getItem() instanceof BaseMultiItem) {
if (tile.getSlotStack(counter).isEmpty()) {
ItemStack tempItem = pItem.copy();
tempItem.setCount(1);
tile.setSlotStack(counter,tempItem);
player.inventory.getCurrentItem().shrink(1);
return true;
}
}
if (!(pItem.getItem() instanceof BaseMultiItem)) {
if (RecipeHelper.isOreName(pItem, "ingotIron")) {
if (tile.getSlotStack(counter).isEmpty()) {
tile.setSlotStack(counter, new ItemStack(Items.IRON_INGOT, 1));
pItem.shrink(1);
return true;
}
}
if (RecipeHelper.isOreName(pItem, "nuggetIron")) {
if (tile.getSlotStack(counter).isEmpty()) {
tile.setSlotStack(counter, new ItemStack(ModItems.wroughtironchunk, 1));
pItem.shrink(1);
return true;
}
}
if (RecipeHelper.isOreName(pItem, "ingotSteel")) {
if (tile.getSlotStack(counter).isEmpty()) {
tile.setSlotStack(counter, new ItemStack(ModItems.steelingotball, 1));
pItem.shrink(1);
return true;
}
}
if (RecipeHelper.isOreName(pItem, "nuggetSteel")) {
if (tile.getSlotStack(counter).isEmpty()) {
tile.setSlotStack(counter, new ItemStack(ModItems.steelchunk, 1));
pItem.shrink(1);
return true;
}
}
}
return false;
}
}

View File

@@ -52,7 +52,7 @@
{"predicate": {"type": 0.36},"model": "forgecraft:item/slottedtongs/slottedtongs_36"}, {"predicate": {"type": 0.36},"model": "forgecraft:item/slottedtongs/slottedtongs_36"},
{"predicate": {"type": 0.37},"model": "forgecraft:item/slottedtongs/slottedtongs_37"}, {"predicate": {"type": 0.37},"model": "forgecraft:item/slottedtongs/slottedtongs_37"},
{"predicate": {"type": 0.38},"model": "forgecraft:item/slottedtongs/slottedtongs_38"}, {"predicate": {"type": 0.38},"model": "forgecraft:item/slottedtongs/slottedtongs_38"},
{"predicate": {"type": 0.29},"model": "forgecraft:item/slottedtongs/slottedtongs_39"}, {"predicate": {"type": 0.39},"model": "forgecraft:item/slottedtongs/slottedtongs_39"},
{"predicate": {"type": 0.40},"model": "forgecraft:item/slottedtongs/slottedtongs_40"}, {"predicate": {"type": 0.40},"model": "forgecraft:item/slottedtongs/slottedtongs_40"},
{"predicate": {"type": 0.41},"model": "forgecraft:item/slottedtongs/slottedtongs_41"}, {"predicate": {"type": 0.41},"model": "forgecraft:item/slottedtongs/slottedtongs_41"},
{"predicate": {"type": 0.42},"model": "forgecraft:item/slottedtongs/slottedtongs_42"}, {"predicate": {"type": 0.42},"model": "forgecraft:item/slottedtongs/slottedtongs_42"},

View File

@@ -2,7 +2,7 @@
"modid": "forgecraft", "modid": "forgecraft",
"name": "Kitsu's Forgecraft", "name": "Kitsu's Forgecraft",
"description": "Forged with sweat and blood", "description": "Forged with sweat and blood",
"version": "1.6.06", "version": "1.6.07",
"mcversion": "1.12.2", "mcversion": "1.12.2",
"url": "", "url": "",
"updateUrl": "", "updateUrl": "",