mirror of
https://github.com/dje4321/TerrafirmaPunk-Tweaks.git
synced 2024-09-28 23:00:54 +00:00
Added Brick Oven, loom MT recipe optimization
Added Brick Oven, loom MT recipe optimization
This commit is contained in:
parent
5ef8e15c21
commit
8d8a9f60ea
@ -1,6 +1,6 @@
|
||||
minecraft_version=1.7.10
|
||||
forge_version=10.13.4.1566-1.7.10
|
||||
tfc_version=0.79.27
|
||||
mod_version=1.13
|
||||
mod_version=1.14
|
||||
mod_id=TerraFirmaPunkTweaks
|
||||
group_name=com.JAWolfe.TerraFirmaPunkTweaks
|
BIN
builds/TerraFirmaPunkTweaks-1.7.10-1.14.jar
Normal file
BIN
builds/TerraFirmaPunkTweaks-1.7.10-1.14.jar
Normal file
Binary file not shown.
@ -1,6 +1,14 @@
|
||||
Changelog
|
||||
=================================================
|
||||
-------------------------------------------------
|
||||
TFP Tweaks 1.14
|
||||
-------------------------------------------------
|
||||
New Features
|
||||
+Added a new block, Brick Oven. Brick oven acts like a firepit and vanilla furnace
|
||||
|
||||
Tweaks
|
||||
+Loom minetweaker method addRecipe code optimization
|
||||
-------------------------------------------------
|
||||
TFP Tweaks 1.13
|
||||
-------------------------------------------------
|
||||
Bug Fixes
|
||||
|
@ -2,7 +2,11 @@ package com.JAWolfe.terrafirmapunktweaks;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.JAWolfe.terrafirmapunktweaks.handlers.FuelManager;
|
||||
import com.JAWolfe.terrafirmapunktweaks.reference.ConfigSettings;
|
||||
import com.bioxx.tfc.api.TFCBlocks;
|
||||
import com.bioxx.tfc.api.TFCItems;
|
||||
import com.bioxx.tfc.api.Constant.Global;
|
||||
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import net.minecraft.item.Item;
|
||||
@ -41,6 +45,13 @@ public class RecipeTweaks
|
||||
|
||||
public static void RecipeFixes()
|
||||
{
|
||||
for(int i = 0; i < Global.WOOD_ALL.length; i++)
|
||||
{
|
||||
FuelManager.getInstance().addFuel(new ItemStack(TFCItems.logs, 1, i));
|
||||
}
|
||||
|
||||
FuelManager.getInstance().addFuel(new ItemStack(Item.getItemFromBlock(TFCBlocks.peat), 1));
|
||||
|
||||
if(Loader.isModLoaded("Steamcraft"))
|
||||
{
|
||||
//OreDictionary.registerOre("itemAxe", new ItemStack(SteamcraftItems.steamAxe, 1, OreDictionary.WILDCARD_VALUE));
|
||||
|
@ -14,6 +14,7 @@ import cpw.mods.fml.common.Mod.EventHandler;
|
||||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
@Mod(modid = References.ModID, name = References.ModName, version = References.ModVersion, dependencies = References.ModDependencies)
|
||||
@ -45,9 +46,13 @@ public class TerraFirmaPunkTweaks
|
||||
|
||||
proxy.setupFluids();
|
||||
|
||||
NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GUIHandler());
|
||||
|
||||
MinecraftForge.EVENT_BUS.register(new PlayerInteractionHandler());
|
||||
MinecraftForge.EVENT_BUS.register(new PlayerDamageHandler());
|
||||
|
||||
proxy.registerRenderInformation();
|
||||
|
||||
proxy.registerWAILA();
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.blocks;
|
||||
|
||||
import com.bioxx.tfc.api.Constant.Global;
|
||||
import com.google.common.collect.ObjectArrays;
|
||||
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import flaxbeard.steamcraft.SteamcraftBlocks;
|
||||
@ -9,14 +12,27 @@ import net.minecraftforge.fluids.FluidRegistry;
|
||||
|
||||
public class TFPBlocks
|
||||
{
|
||||
|
||||
public static Block tweakedboiler;
|
||||
public static Block tweakedboilerOn;
|
||||
public static Block tweakedFlashBoiler;
|
||||
public static Block[] tfpBrickOven;
|
||||
public static Block tfpBlood;
|
||||
public static Fluid tfpFluidBlood;
|
||||
|
||||
public static int brickOvenRenderID;
|
||||
|
||||
public static void initialise()
|
||||
{
|
||||
String[] IgStone = ObjectArrays.concat(Global.STONE_IGEX, Global.STONE_IGIN, String.class);
|
||||
tfpBrickOven = new Block[IgStone.length];
|
||||
|
||||
for (int i = 0; i < IgStone.length; i++)
|
||||
{
|
||||
tfpBrickOven[i] = new TFPBrickOven(i).setBlockName("TFPBrickOven " + IgStone[i]);
|
||||
GameRegistry.registerBlock(tfpBrickOven[i], "tfpBrickOven" + IgStone[i]);
|
||||
}
|
||||
|
||||
if(Loader.isModLoaded("Steamcraft"))
|
||||
{
|
||||
tweakedboiler = new TweakedBoiler(false).setBlockName(SteamcraftBlocks.boiler.getUnlocalizedName().substring(5)).setHardness(5.0F).setResistance(10.0F);
|
||||
|
@ -0,0 +1,357 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.blocks;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.JAWolfe.terrafirmapunktweaks.TerraFirmaPunkTweaks;
|
||||
import com.JAWolfe.terrafirmapunktweaks.reference.GUIs;
|
||||
import com.JAWolfe.terrafirmapunktweaks.reference.References;
|
||||
import com.JAWolfe.terrafirmapunktweaks.tiles.TEBrickOven;
|
||||
import com.bioxx.tfc.Blocks.BlockTerraContainer;
|
||||
import com.bioxx.tfc.api.TFCBlocks;
|
||||
import com.bioxx.tfc.api.TFCItems;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TFPBrickOven extends BlockTerraContainer
|
||||
{
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon OvenFrontOnIcon;
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon OvenFrontOffIcon;
|
||||
@SideOnly(Side.CLIENT)
|
||||
private IIcon OvenSideIcon;
|
||||
|
||||
private final Random random = new Random();
|
||||
private int OvenType;
|
||||
|
||||
public TFPBrickOven(int ovenType)
|
||||
{
|
||||
this.OvenType = ovenType;
|
||||
this.blockHardness = 16;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlockIcons(IIconRegister register)
|
||||
{
|
||||
String iconPrefix = References.ModID + ":";
|
||||
OvenFrontOnIcon = register.registerIcon(iconPrefix + "TFPOvenFrontOn");
|
||||
OvenFrontOffIcon = register.registerIcon(iconPrefix + "TFPOvenFrontOff");
|
||||
OvenSideIcon = register.registerIcon(References.MODID_TFC + ":" + "Invisible");
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIcon(int side, int metadata)
|
||||
{
|
||||
if (side == 1)
|
||||
return this.OvenSideIcon;
|
||||
else
|
||||
{
|
||||
if(metadata == 0 || metadata == 2)
|
||||
{
|
||||
if(side == 3)
|
||||
return this.OvenFrontOffIcon;
|
||||
else if(side == 4 || side == 5 || side == 2)
|
||||
return this.OvenSideIcon;
|
||||
}
|
||||
else if(metadata == 1)
|
||||
{
|
||||
if(side == 2)
|
||||
return this.OvenFrontOffIcon;
|
||||
else if(side == 3 || side == 4 || side == 5)
|
||||
return this.OvenSideIcon;
|
||||
}
|
||||
else if(metadata == 3)
|
||||
{
|
||||
if(side == 2 || side == 3 || side == 5)
|
||||
return this.OvenSideIcon;
|
||||
else if(side == 4)
|
||||
return this.OvenFrontOffIcon;
|
||||
}
|
||||
else if(metadata == 4)
|
||||
{
|
||||
if(side == 2 || side == 3 || side == 4)
|
||||
return this.OvenSideIcon;
|
||||
else if(side == 5)
|
||||
return this.OvenFrontOffIcon;
|
||||
}
|
||||
else if(metadata == 5)
|
||||
{
|
||||
if(side == 2)
|
||||
return this.OvenFrontOnIcon;
|
||||
else if(side == 3 || side == 4 || side == 5)
|
||||
return this.OvenSideIcon;
|
||||
}
|
||||
else if(metadata == 6)
|
||||
{
|
||||
if(side == 3)
|
||||
return this.OvenFrontOnIcon;
|
||||
else if(side == 4 || side == 5 || side == 2)
|
||||
return this.OvenSideIcon;
|
||||
}
|
||||
else if(metadata == 7)
|
||||
{
|
||||
if(side == 2 || side == 3 || side == 5)
|
||||
return this.OvenSideIcon;
|
||||
else if(side == 4)
|
||||
return this.OvenFrontOnIcon;
|
||||
}
|
||||
else if(metadata == 8)
|
||||
{
|
||||
if(side == 2 || side == 3 || side == 4)
|
||||
return this.OvenSideIcon;
|
||||
else if(side == 5)
|
||||
return this.OvenFrontOnIcon;
|
||||
}
|
||||
|
||||
return this.OvenFrontOffIcon;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType()
|
||||
{
|
||||
return TFPBlocks.brickOvenRenderID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int par6, float par7, float par8, float par9)
|
||||
{
|
||||
if(world.isRemote)
|
||||
return true;
|
||||
|
||||
ItemStack heldItem = entityplayer.getHeldItem();
|
||||
TEBrickOven TE = (TEBrickOven)world.getTileEntity(x, y, z);
|
||||
|
||||
if(heldItem != null && (heldItem.getItem() == TFCItems.fireStarter || heldItem.getItem() == TFCItems.flintSteel))
|
||||
{
|
||||
if(TE != null)
|
||||
{
|
||||
if(TE.fireTemp < 210 && TE.ovenItemStacks[9] != null)
|
||||
{
|
||||
TE.fireTemp = 300;
|
||||
int ss = entityplayer.inventory.getCurrentItem().stackSize;
|
||||
int dam = entityplayer.inventory.getCurrentItem().getItemDamage();
|
||||
|
||||
entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem,
|
||||
new ItemStack(entityplayer.getCurrentEquippedItem().getItem(), ss, dam));
|
||||
|
||||
int metadata = world.getBlockMetadata(x, y, z);
|
||||
world.setBlockMetadataWithNotify(x, y, z, metadata + 4, 3);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(heldItem != null && heldItem.getItem() == Item.getItemFromBlock(TFCBlocks.torch))
|
||||
{
|
||||
if(TE != null)
|
||||
{
|
||||
if(TE.fireTemp < 210 && TE.ovenItemStacks[9] != null)
|
||||
{
|
||||
TE.fireTemp = 300;
|
||||
int ss = entityplayer.inventory.getCurrentItem().stackSize - 1;
|
||||
|
||||
entityplayer.inventory.setInventorySlotContents(entityplayer.inventory.currentItem,
|
||||
new ItemStack(entityplayer.getCurrentEquippedItem().getItem(), ss));
|
||||
|
||||
int metadata = world.getBlockMetadata(x, y, z);
|
||||
world.setBlockMetadataWithNotify(x, y, z, metadata + 4, 3);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(TE != null)
|
||||
{
|
||||
entityplayer.openGui(TerraFirmaPunkTweaks.instance, GUIs.BRICKOVEN.ordinal(), world, x, y, z);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockAdded(World world, int x, int y, int z)
|
||||
{
|
||||
super.onBlockAdded(world, x, y, z);
|
||||
if (!world.isRemote)
|
||||
{
|
||||
Block block1 = world.getBlock(x, y, z - 1);
|
||||
Block block2 = world.getBlock(x, y, z + 1);
|
||||
Block block3 = world.getBlock(x - 1, y, z);
|
||||
Block block4 = world.getBlock(x + 1, y, z);
|
||||
byte b0 = 3;
|
||||
|
||||
if (block1.func_149730_j() && !block2.func_149730_j())
|
||||
{
|
||||
b0 = 2;
|
||||
}
|
||||
|
||||
if (block2.func_149730_j() && !block1.func_149730_j())
|
||||
{
|
||||
b0 = 1;
|
||||
}
|
||||
|
||||
if (block3.func_149730_j() && !block4.func_149730_j())
|
||||
{
|
||||
b0 = 4;
|
||||
}
|
||||
|
||||
if (block4.func_149730_j() && !block3.func_149730_j())
|
||||
{
|
||||
b0 = 3;
|
||||
}
|
||||
|
||||
world.setBlockMetadataWithNotify(x, y, z, b0, 2);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityliving, ItemStack stack)
|
||||
{
|
||||
int l = MathHelper.floor_double((double)(entityliving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
|
||||
|
||||
if (l == 0)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 1, 2);
|
||||
}
|
||||
|
||||
if (l == 1)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||
}
|
||||
|
||||
if (l == 2)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
|
||||
if (l == 3)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
|
||||
if (stack.hasDisplayName())
|
||||
{
|
||||
((TEBrickOven)world.getTileEntity(x, y, z)).setCustomInventoryName(stack.getDisplayName());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int metadata)
|
||||
{
|
||||
return new TEBrickOven();
|
||||
}
|
||||
|
||||
public int getOvenType()
|
||||
{
|
||||
return this.OvenType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void randomDisplayTick(World world, int x, int y, int z, Random rand)
|
||||
{
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
if (meta >= 5)
|
||||
{
|
||||
if (rand.nextInt(24) == 0)
|
||||
world.playSound(x, y, z, "fire.fire", 0.4F + (rand.nextFloat() / 2), 0.7F + rand.nextFloat(), false);
|
||||
|
||||
float f = (float)x + 0.5F;
|
||||
float f1 = (float)y + 0.0F + rand.nextFloat() * 6.0F / 16.0F;
|
||||
float f2 = (float)z + 0.5F;
|
||||
float f3 = 0.52F;
|
||||
float f4 = rand.nextFloat() * 0.6F - 0.3F;
|
||||
|
||||
if (meta == 7)
|
||||
{
|
||||
world.spawnParticle("smoke", (double)(f - f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
|
||||
world.spawnParticle("flame", (double)(f - f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
else if (meta == 8)
|
||||
{
|
||||
world.spawnParticle("smoke", (double)(f + f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
|
||||
world.spawnParticle("flame", (double)(f + f3), (double)f1, (double)(f2 + f4), 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
else if (meta == 5)
|
||||
{
|
||||
world.spawnParticle("smoke", (double)(f + f4), (double)f1, (double)(f2 - f3), 0.0D, 0.0D, 0.0D);
|
||||
world.spawnParticle("flame", (double)(f + f4), (double)f1, (double)(f2 - f3), 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
else if (meta == 6)
|
||||
{
|
||||
world.spawnParticle("smoke", (double)(f + f4), (double)f1, (double)(f2 + f3), 0.0D, 0.0D, 0.0D);
|
||||
world.spawnParticle("flame", (double)(f + f4), (double)f1, (double)(f2 + f3), 0.0D, 0.0D, 0.0D);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightValue(IBlockAccess world, int x, int y, int z)
|
||||
{
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
if(meta > 4)
|
||||
return 10;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock(World world, int x, int y, int z, Block block, int metadata)
|
||||
{
|
||||
if (world.getTileEntity(x, y, z) instanceof TEBrickOven)
|
||||
{
|
||||
TEBrickOven te = (TEBrickOven)world.getTileEntity(x, y, z);
|
||||
for (int i1 = 0; i1 < te.getSizeInventory(); ++i1)
|
||||
{
|
||||
ItemStack itemstack = te.getStackInSlot(i1);
|
||||
|
||||
if (itemstack != null)
|
||||
{
|
||||
while (itemstack.stackSize > 0)
|
||||
{
|
||||
int j1 = this.random.nextInt(21) + 10;
|
||||
|
||||
if (j1 > itemstack.stackSize)
|
||||
{
|
||||
j1 = itemstack.stackSize;
|
||||
}
|
||||
|
||||
itemstack.stackSize -= j1;
|
||||
EntityItem entityitem = new EntityItem(world, x + 0.5f, y + 0.5f, z + 0.5f, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage()));
|
||||
|
||||
if (itemstack.hasTagCompound())
|
||||
{
|
||||
entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy());
|
||||
}
|
||||
|
||||
//float f3 = 0.05F;
|
||||
world.spawnEntityInWorld(entityitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
world.func_147453_f(x, y, z, block);
|
||||
}
|
||||
super.breakBlock(world, x, y, z, block, metadata);
|
||||
}
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.blocks;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.bioxx.tfc.api.TFCBlocks;
|
||||
|
||||
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
public class TFPBrickOvenRenderer implements ISimpleBlockRenderingHandler
|
||||
{
|
||||
@Override
|
||||
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId,
|
||||
RenderBlocks renderer)
|
||||
{
|
||||
int ovenType = 0;
|
||||
|
||||
if(block instanceof TFPBrickOven)
|
||||
ovenType = ((TFPBrickOven)block).getOvenType();
|
||||
|
||||
IIcon cobbleIcon = TFCBlocks.stoneIgExCobble.getIcon(0, ovenType);
|
||||
|
||||
if(ovenType > 3)
|
||||
cobbleIcon = TFCBlocks.stoneIgInCobble.getIcon(0, ovenType - 4);
|
||||
|
||||
renderer.renderAllFaces = true;
|
||||
|
||||
renderer.setRenderBounds(0, 0, 0, 1, 1, 1);
|
||||
|
||||
renderer.overrideBlockTexture = cobbleIcon;
|
||||
renderer.renderStandardBlock(block, x, y, z);
|
||||
renderer.clearOverrideBlockTexture();
|
||||
|
||||
renderer.renderStandardBlock(block, x, y, z);
|
||||
|
||||
renderer.uvRotateTop = 0;
|
||||
renderer.uvRotateBottom = 0;
|
||||
renderer.uvRotateWest = 0;
|
||||
renderer.uvRotateEast = 0;
|
||||
renderer.uvRotateNorth = 0;
|
||||
renderer.uvRotateSouth = 0;
|
||||
|
||||
renderer.renderAllFaces = false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer)
|
||||
{
|
||||
int ovenType = 0;
|
||||
|
||||
if(block instanceof TFPBrickOven)
|
||||
ovenType = ((TFPBrickOven)block).getOvenType();
|
||||
|
||||
IIcon cobbleIcon = TFCBlocks.stoneIgExCobble.getIcon(0, ovenType);
|
||||
|
||||
if(ovenType > 3)
|
||||
cobbleIcon = TFCBlocks.stoneIgInCobble.getIcon(0, ovenType - 4);
|
||||
|
||||
renderInvBlock(block, renderer, cobbleIcon);
|
||||
}
|
||||
|
||||
private void renderInvBlock(Block block, RenderBlocks renderer, IIcon icon)
|
||||
{
|
||||
Tessellator tessellator = Tessellator.instance;
|
||||
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
|
||||
tessellator.startDrawingQuads();
|
||||
tessellator.setNormal(0.0F, -1F, 0.0F);
|
||||
renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, icon);
|
||||
renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(0));
|
||||
tessellator.draw();
|
||||
tessellator.startDrawingQuads();
|
||||
tessellator.setNormal(0.0F, 1.0F, 0.0F);
|
||||
renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, icon);
|
||||
renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(1));
|
||||
tessellator.draw();
|
||||
tessellator.startDrawingQuads();
|
||||
tessellator.setNormal(0.0F, 0.0F, -1F);
|
||||
renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, icon);
|
||||
renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(2));
|
||||
tessellator.draw();
|
||||
tessellator.startDrawingQuads();
|
||||
tessellator.setNormal(0.0F, 0.0F, 1.0F);
|
||||
renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, icon);
|
||||
renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(3));
|
||||
tessellator.draw();
|
||||
tessellator.startDrawingQuads();
|
||||
tessellator.setNormal(-1F, 0.0F, 0.0F);
|
||||
renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, icon);
|
||||
renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(4));
|
||||
tessellator.draw();
|
||||
tessellator.startDrawingQuads();
|
||||
tessellator.setNormal(1.0F, 0.0F, 0.0F);
|
||||
renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, icon);
|
||||
renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSide(5));
|
||||
tessellator.draw();
|
||||
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldRender3DInInventory(int modelId) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderId() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.handlers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
public class FuelManager
|
||||
{
|
||||
private static final FuelManager INSTANCE = new FuelManager();
|
||||
public static final FuelManager getInstance()
|
||||
{
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
private List<ItemStack> fuels;
|
||||
|
||||
private FuelManager()
|
||||
{
|
||||
fuels = new ArrayList<ItemStack>();
|
||||
}
|
||||
|
||||
public void addFuel(ItemStack fuel)
|
||||
{
|
||||
for(int i = 0; i < fuels.size(); i++)
|
||||
{
|
||||
if (fuels.get(i) != null && matches(fuel, fuels.get(i)))
|
||||
return;
|
||||
}
|
||||
|
||||
this.fuels.add(fuel);
|
||||
}
|
||||
|
||||
public void removeFuel(ItemStack fuel)
|
||||
{
|
||||
for(int i = 0; i < fuels.size(); i++)
|
||||
{
|
||||
if (fuels.get(i) != null && matches(fuel, fuels.get(i)))
|
||||
fuels.remove(i--);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isFuel(ItemStack itemstack)
|
||||
{
|
||||
for(int i = 0; i < fuels.size(); i++)
|
||||
{
|
||||
if (fuels.get(i) != null && matches(itemstack, fuels.get(i)))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public List<ItemStack> getFuels()
|
||||
{
|
||||
return this.fuels;
|
||||
}
|
||||
|
||||
private Boolean matches(ItemStack item1, ItemStack item2)
|
||||
{
|
||||
boolean iStack = item1 != null && item2 != null;
|
||||
|
||||
boolean itemsEqual = OreDictionary.itemMatches(item1, item2, true);
|
||||
|
||||
return iStack && itemsEqual;
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.handlers;
|
||||
|
||||
import com.JAWolfe.terrafirmapunktweaks.inventory.GUIBrickOven;
|
||||
import com.JAWolfe.terrafirmapunktweaks.inventory.containers.ContainerBrickOven;
|
||||
import com.JAWolfe.terrafirmapunktweaks.reference.GUIs;
|
||||
import com.JAWolfe.terrafirmapunktweaks.tiles.TEBrickOven;
|
||||
|
||||
import cpw.mods.fml.common.network.IGuiHandler;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class GUIHandler implements IGuiHandler
|
||||
{
|
||||
|
||||
@Override
|
||||
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity entity = world.getTileEntity(x, y, z);
|
||||
|
||||
if(ID == GUIs.BRICKOVEN.ordinal() && entity != null && entity instanceof TEBrickOven)
|
||||
return new ContainerBrickOven(player.inventory, (TEBrickOven)entity);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
|
||||
{
|
||||
TileEntity entity = world.getTileEntity(x, y, z);
|
||||
|
||||
if(ID == GUIs.BRICKOVEN.ordinal() && entity != null && entity instanceof TEBrickOven)
|
||||
return new GUIBrickOven(player.inventory, (TEBrickOven)entity, world, x, y, z);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -39,7 +39,9 @@ public class PlayerDamageHandler
|
||||
//Reset Attacking tag on attacking entity
|
||||
if(event.source.getEntity() != null && event.source.getEntity().getEntityData().hasKey("Attacking") &&
|
||||
event.source.getEntity().getEntityData().getBoolean("Attacking"))
|
||||
{
|
||||
event.source.getEntity().getEntityData().setBoolean("Attacking", false);
|
||||
}
|
||||
|
||||
//Check if damage is already processed by TFC
|
||||
if (event.source == DamageSource.onFire || event.source == DamageSource.fall || event.source == DamageSource.drown ||
|
||||
|
@ -0,0 +1,55 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.inventory;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.JAWolfe.terrafirmapunktweaks.inventory.containers.ContainerBrickOven;
|
||||
import com.JAWolfe.terrafirmapunktweaks.reference.References;
|
||||
import com.JAWolfe.terrafirmapunktweaks.tiles.TEBrickOven;
|
||||
import com.bioxx.tfc.Core.Player.PlayerInventory;
|
||||
import com.bioxx.tfc.GUI.GuiContainerTFC;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class GUIBrickOven extends GuiContainerTFC
|
||||
{
|
||||
public static ResourceLocation texture = new ResourceLocation(References.ModID.toLowerCase(), "textures/gui/BrickOvenGUI.png");
|
||||
private TEBrickOven teBrickOven;
|
||||
|
||||
public GUIBrickOven(InventoryPlayer inventoryplayer, TEBrickOven te, World world, int x, int y, int z)
|
||||
{
|
||||
super(new ContainerBrickOven(inventoryplayer, te), 176, 85);
|
||||
this.teBrickOven = te;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerBackgroundLayer(float f, int i, int j)
|
||||
{
|
||||
if (texture != null)
|
||||
{
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
guiLeft = (width - xSize) / 2;
|
||||
guiTop = (height - ySize) / 2;
|
||||
int height = this.getShiftedYSize();
|
||||
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, height);
|
||||
|
||||
drawForeground(guiLeft, guiTop);
|
||||
}
|
||||
|
||||
PlayerInventory.drawInventory(this, width, height, this.getShiftedYSize());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawForeground(int guiLeft, int guiTop)
|
||||
{
|
||||
if(teBrickOven != null)
|
||||
{
|
||||
int scale = teBrickOven.getTemperatureScaled(49);
|
||||
drawTexturedModalRect(guiLeft + 30, guiTop + 65 - scale, 185, 31, 15, 6);
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,149 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.inventory.containers;
|
||||
|
||||
import com.JAWolfe.terrafirmapunktweaks.handlers.FuelManager;
|
||||
import com.JAWolfe.terrafirmapunktweaks.tiles.TEBrickOven;
|
||||
import com.bioxx.tfc.Containers.ContainerTFC;
|
||||
import com.bioxx.tfc.Containers.Slots.SlotFirepit;
|
||||
import com.bioxx.tfc.Containers.Slots.SlotFirepitIn;
|
||||
import com.bioxx.tfc.Containers.Slots.SlotFirepitOut;
|
||||
import com.bioxx.tfc.Core.Player.PlayerInventory;
|
||||
import com.bioxx.tfc.Items.ItemOre;
|
||||
import com.bioxx.tfc.api.HeatRegistry;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.ICrafting;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerBrickOven extends ContainerTFC
|
||||
{
|
||||
private TEBrickOven teBrickOven;
|
||||
private float firetemp;
|
||||
|
||||
public ContainerBrickOven(InventoryPlayer inventoryplayer, TEBrickOven BrickOven)
|
||||
{
|
||||
this.teBrickOven = BrickOven;
|
||||
firetemp = -1111;
|
||||
|
||||
//Input Slots
|
||||
addSlotToContainer(new SlotFirepitIn(inventoryplayer.player, teBrickOven, 0, 84, 19));
|
||||
addSlotToContainer(new SlotFirepitIn(inventoryplayer.player, teBrickOven, 1, 102, 19));
|
||||
addSlotToContainer(new SlotFirepitIn(inventoryplayer.player, teBrickOven, 2, 120, 19));
|
||||
|
||||
//Output Slots
|
||||
addSlotToContainer(new SlotFirepitOut(inventoryplayer.player, teBrickOven, 3, 84, 47));
|
||||
addSlotToContainer(new SlotFirepitOut(inventoryplayer.player, teBrickOven, 4, 102, 47));
|
||||
addSlotToContainer(new SlotFirepitOut(inventoryplayer.player, teBrickOven, 5, 120, 47));
|
||||
|
||||
//Fuel Slots
|
||||
addSlotToContainer(new SlotBrickOvenFuel(inventoryplayer.player, teBrickOven, 6, 8, 7));
|
||||
addSlotToContainer(new SlotFirepit(inventoryplayer.player, teBrickOven, 7, 8, 25));
|
||||
addSlotToContainer(new SlotFirepit(inventoryplayer.player, teBrickOven, 8, 8, 43));
|
||||
addSlotToContainer(new SlotFirepit(inventoryplayer.player, teBrickOven, 9, 8, 61));
|
||||
|
||||
PlayerInventory.buildInventoryLayout(this, inventoryplayer, 8, 90, false, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlotTFC(EntityPlayer entityPlayer, int slotIndex)
|
||||
{
|
||||
super.transferStackInSlotTFC(entityPlayer, slotIndex);
|
||||
ItemStack origStack = null;
|
||||
Slot slot = (Slot) inventorySlots.get(slotIndex);
|
||||
Slot[] slotinput = {(Slot)inventorySlots.get(0), (Slot)inventorySlots.get(1), (Slot)inventorySlots.get(2)};
|
||||
Slot[] slotfuel = {(Slot)inventorySlots.get(6), (Slot)inventorySlots.get(7), (Slot)inventorySlots.get(8), (Slot)inventorySlots.get(9)};
|
||||
|
||||
if(slot != null && slot.getHasStack())
|
||||
{
|
||||
ItemStack slotStack = slot.getStack();
|
||||
origStack = slotStack.copy();
|
||||
|
||||
// From firepit to inventory
|
||||
if (slotIndex < 10)
|
||||
{
|
||||
if (!this.mergeItemStack(slotStack, 10, this.inventorySlots.size(), true))
|
||||
return null;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fuel to the fuel input slot
|
||||
if (FuelManager.getInstance().isFuel(slotStack))
|
||||
{
|
||||
if(slotfuel[0].getHasStack())
|
||||
return null;
|
||||
ItemStack stack = slotStack.copy();
|
||||
stack.stackSize = 1;
|
||||
slotfuel[0].putStack(stack);
|
||||
slotStack.stackSize--;
|
||||
}
|
||||
// No ores, but anything else with a heat index to the input slot
|
||||
else if (!(slotStack.getItem() instanceof ItemOre) && HeatRegistry.getInstance().findMatchingIndex(slotStack) != null)
|
||||
{
|
||||
int openSlot = 0;
|
||||
for(openSlot = 0; openSlot <= 3; openSlot++)
|
||||
{
|
||||
if(openSlot == 3)
|
||||
return null;
|
||||
|
||||
if(!slotinput[openSlot].getHasStack())
|
||||
break;
|
||||
}
|
||||
|
||||
ItemStack stack = slotStack.copy();
|
||||
stack.stackSize = 1;
|
||||
slotinput[openSlot].putStack(stack);
|
||||
slotStack.stackSize--;
|
||||
}
|
||||
}
|
||||
|
||||
if (slotStack.stackSize <= 0)
|
||||
slot.putStack(null);
|
||||
else
|
||||
slot.onSlotChanged();
|
||||
|
||||
if (slotStack.stackSize == origStack.stackSize)
|
||||
return null;
|
||||
|
||||
slot.onPickupFromSlot(player, slotStack);
|
||||
}
|
||||
|
||||
return origStack;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Override
|
||||
public void detectAndSendChanges()
|
||||
{
|
||||
super.detectAndSendChanges();
|
||||
for (int var1 = 0; var1 < this.inventorySlots.size(); ++var1)
|
||||
{
|
||||
ItemStack var2 = ((Slot)this.inventorySlots.get(var1)).getStack();
|
||||
ItemStack var3 = (ItemStack)this.inventoryItemStacks.get(var1);
|
||||
|
||||
if (!ItemStack.areItemStacksEqual(var3, var2))
|
||||
{
|
||||
var3 = var2 == null ? null : var2.copy();
|
||||
this.inventoryItemStacks.set(var1, var3);
|
||||
|
||||
for (int var4 = 0; var4 < this.crafters.size(); ++var4)
|
||||
((ICrafting)this.crafters.get(var4)).sendSlotContents(this, var1, var3);
|
||||
}
|
||||
}
|
||||
|
||||
for (int var1 = 0; var1 < this.crafters.size(); ++var1)
|
||||
{
|
||||
ICrafting var2 = (ICrafting)this.crafters.get(var1);
|
||||
if (this.firetemp != this.teBrickOven.fireTemp)
|
||||
var2.sendProgressBarUpdate(this, 0, (int)this.teBrickOven.fireTemp);
|
||||
}
|
||||
firetemp = this.teBrickOven.fireTemp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateProgressBar(int par1, int par2)
|
||||
{
|
||||
if (par1 == 0)
|
||||
this.teBrickOven.fireTemp = par2;
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.inventory.containers;
|
||||
|
||||
import com.JAWolfe.terrafirmapunktweaks.handlers.FuelManager;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class SlotBrickOvenFuel extends Slot
|
||||
{
|
||||
public SlotBrickOvenFuel(EntityPlayer entityplayer, IInventory iinventory, int i, int j, int k)
|
||||
{
|
||||
super(iinventory, i, j, k);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValid(ItemStack itemstack)
|
||||
{
|
||||
return FuelManager.getInstance().isFuel(itemstack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlotStackLimit()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void putStack(ItemStack par1ItemStack)
|
||||
{
|
||||
if (par1ItemStack != null) par1ItemStack.stackSize = 1;
|
||||
super.putStack(par1ItemStack);
|
||||
}
|
||||
}
|
@ -0,0 +1,129 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.minetweaker;
|
||||
|
||||
import com.JAWolfe.terrafirmapunktweaks.handlers.FuelManager;
|
||||
|
||||
import minetweaker.IUndoableAction;
|
||||
import minetweaker.MineTweakerAPI;
|
||||
import minetweaker.api.item.IItemStack;
|
||||
import minetweaker.api.minecraft.MineTweakerMC;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import stanhebben.zenscript.annotations.ZenClass;
|
||||
import stanhebben.zenscript.annotations.ZenMethod;
|
||||
|
||||
@ZenClass("mods.tfptweaks.BrickOven")
|
||||
public class BrickOven
|
||||
{
|
||||
@ZenMethod
|
||||
public static void addFuel(IItemStack Ifuel)
|
||||
{
|
||||
ItemStack fuel = MineTweakerMC.getItemStack(Ifuel);
|
||||
|
||||
if(fuel == null || fuel.getItem() == null)
|
||||
MineTweakerAPI.logError("Missing Fuel");
|
||||
else
|
||||
MineTweakerAPI.apply(new addFuelAction(fuel));
|
||||
}
|
||||
|
||||
@ZenMethod
|
||||
public static void removeFuel(IItemStack Ifuel)
|
||||
{
|
||||
ItemStack fuel = MineTweakerMC.getItemStack(Ifuel);
|
||||
|
||||
if(fuel == null || fuel.getItem() == null)
|
||||
MineTweakerAPI.logError("Missing Fuel");
|
||||
else
|
||||
MineTweakerAPI.apply(new removeFuelAction(fuel));
|
||||
}
|
||||
|
||||
private static class addFuelAction implements IUndoableAction
|
||||
{
|
||||
private ItemStack Fuel;
|
||||
|
||||
public addFuelAction(ItemStack fuel)
|
||||
{
|
||||
this.Fuel = fuel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apply()
|
||||
{
|
||||
FuelManager.getInstance().addFuel(Fuel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe()
|
||||
{
|
||||
return "Adding item '" + Fuel.getDisplayName() + "' to the Brick Oven Fuel Registry.";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canUndo()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void undo()
|
||||
{
|
||||
FuelManager.getInstance().removeFuel(Fuel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describeUndo()
|
||||
{
|
||||
return "Removing item '" + Fuel.getDisplayName() + "' from the Brick Oven Fuel Registry.";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getOverrideKey()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
private static class removeFuelAction implements IUndoableAction
|
||||
{
|
||||
private ItemStack Fuel;
|
||||
|
||||
public removeFuelAction(ItemStack fuel)
|
||||
{
|
||||
this.Fuel = fuel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apply()
|
||||
{
|
||||
FuelManager.getInstance().removeFuel(Fuel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describe()
|
||||
{
|
||||
return "Removing item '" + Fuel.getDisplayName() + "' from the Brick Oven Fuel Registry.";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canUndo()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void undo()
|
||||
{
|
||||
FuelManager.getInstance().addFuel(Fuel);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String describeUndo()
|
||||
{
|
||||
return "Adding item '" + Fuel.getDisplayName() + "' to the Brick Oven Fuel Registry.";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getOverrideKey()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
@ -107,7 +107,7 @@ public class Loom
|
||||
{
|
||||
if (LoomList.get(i) != null)
|
||||
{
|
||||
if (LoomList.get(i).matches(inputStack))
|
||||
if (LoomList.get(i).matches(inputStack) && LoomList.get(i).resultMatches(outputStack))
|
||||
LoomList.remove(i--);
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,8 @@ public class TFCTweaker
|
||||
{
|
||||
if (Loader.isModLoaded("MineTweaker3") && ConfigSettings.MineTweakerSupport)
|
||||
{
|
||||
MineTweakerAPI.registerClass(BrickOven.class);
|
||||
|
||||
MineTweakerAPI.registerClass(ItemHeat.class);
|
||||
MineTweakerAPI.registerClass(Loom.class);
|
||||
MineTweakerAPI.registerClass(Quern.class);
|
||||
|
@ -1,9 +1,25 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.proxy;
|
||||
|
||||
import com.JAWolfe.terrafirmapunktweaks.blocks.TFPBlocks;
|
||||
import com.JAWolfe.terrafirmapunktweaks.blocks.TFPBrickOvenRenderer;
|
||||
|
||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class ClientProxy extends CommonProxy
|
||||
{
|
||||
public void registerTileEntities()
|
||||
{
|
||||
super.registerTileEntities();
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerRenderInformation()
|
||||
{
|
||||
TFPBlocks.brickOvenRenderID = RenderingRegistry.getNextAvailableRenderId();
|
||||
|
||||
RenderingRegistry.registerBlockHandler(TFPBlocks.brickOvenRenderID, new TFPBrickOvenRenderer());
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.JAWolfe.terrafirmapunktweaks.proxy;
|
||||
import com.JAWolfe.terrafirmapunktweaks.blocks.TFPBlocks;
|
||||
import com.JAWolfe.terrafirmapunktweaks.items.TFPItems;
|
||||
import com.JAWolfe.terrafirmapunktweaks.tiles.TEBoiler;
|
||||
import com.JAWolfe.terrafirmapunktweaks.tiles.TEBrickOven;
|
||||
import com.JAWolfe.terrafirmapunktweaks.tiles.TEFlashBoiler;
|
||||
import com.bioxx.tfc.api.TFCItems;
|
||||
import com.sirolf2009.necromancy.item.ItemGeneric;
|
||||
@ -20,6 +21,8 @@ public class CommonProxy
|
||||
{
|
||||
public void registerTileEntities()
|
||||
{
|
||||
GameRegistry.registerTileEntity(TEBrickOven.class, "TEBrickOven");
|
||||
|
||||
if(Loader.isModLoaded("Steamcraft"))
|
||||
{
|
||||
GameRegistry.registerTileEntity(TEBoiler.class, "TEBoiler");
|
||||
@ -41,6 +44,11 @@ public class CommonProxy
|
||||
}
|
||||
}
|
||||
|
||||
public void registerRenderInformation()
|
||||
{
|
||||
//Not server-sided
|
||||
}
|
||||
|
||||
public void registerWAILA()
|
||||
{
|
||||
FMLInterModComms.sendMessage("Waila", "register", "com.JAWolfe.terrafirmapunktweaks.WAILAInfo.callbackRegister");
|
||||
|
@ -0,0 +1,6 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.reference;
|
||||
|
||||
public enum GUIs
|
||||
{
|
||||
BRICKOVEN
|
||||
}
|
@ -0,0 +1,541 @@
|
||||
package com.JAWolfe.terrafirmapunktweaks.tiles;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.JAWolfe.terrafirmapunktweaks.handlers.FuelManager;
|
||||
import com.bioxx.tfc.Core.TFC_Core;
|
||||
import com.bioxx.tfc.Items.ItemMeltedMetal;
|
||||
import com.bioxx.tfc.Items.ItemOre;
|
||||
import com.bioxx.tfc.api.Food;
|
||||
import com.bioxx.tfc.api.HeatIndex;
|
||||
import com.bioxx.tfc.api.HeatRegistry;
|
||||
import com.bioxx.tfc.api.TFCItems;
|
||||
import com.bioxx.tfc.api.TFC_ItemHeat;
|
||||
import com.bioxx.tfc.api.Enums.EnumFuelMaterial;
|
||||
import com.bioxx.tfc.api.Events.ItemCookEvent;
|
||||
import com.bioxx.tfc.api.Interfaces.ICookableFood;
|
||||
import com.bioxx.tfc.api.TileEntities.TEFireEntity;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.ISidedInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.nbt.NBTTagList;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
|
||||
public class TEBrickOven extends TEFireEntity implements ISidedInventory
|
||||
{
|
||||
private static final int[] slotsTop = new int[] {0, 1, 2};
|
||||
private static final int[] slotsBottom = new int[] {3, 4, 5};
|
||||
private static final int[] slotsSides = new int[] {6};
|
||||
|
||||
public ItemStack[] ovenItemStacks = new ItemStack[10];
|
||||
private String invName;
|
||||
|
||||
public TEBrickOven()
|
||||
{
|
||||
fuelTimeLeft = 0;
|
||||
fuelBurnTemp = 0;
|
||||
fireTemp = 0;
|
||||
maxFireTempScale = 2000;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity()
|
||||
{
|
||||
if(!worldObj.isRemote)
|
||||
{
|
||||
careForInventorySlot(this.ovenItemStacks[0]);
|
||||
careForInventorySlot(this.ovenItemStacks[1]);
|
||||
careForInventorySlot(this.ovenItemStacks[2]);
|
||||
careForInventorySlot(this.ovenItemStacks[3]);
|
||||
careForInventorySlot(this.ovenItemStacks[4]);
|
||||
careForInventorySlot(this.ovenItemStacks[5]);
|
||||
|
||||
cookItem(0);
|
||||
cookItem(1);
|
||||
cookItem(2);
|
||||
|
||||
//Push the input fuel down the stack
|
||||
handleFuelStack();
|
||||
|
||||
//Turn oven on and off. Meta 0-4 off, 5-8 on
|
||||
int metadata = worldObj.getBlockMetadata(xCoord, yCoord, zCoord);
|
||||
|
||||
if (fireTemp < 1 && metadata > 4)
|
||||
{
|
||||
worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, metadata - 4, 3);
|
||||
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||
}
|
||||
else if (fireTemp >= 1 && metadata <= 4)
|
||||
{
|
||||
worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, metadata + 4, 3);
|
||||
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||
}
|
||||
|
||||
metadata = worldObj.getBlockMetadata(xCoord, yCoord, zCoord);
|
||||
//If the fire is still burning and has fuel
|
||||
if(fuelTimeLeft > 0 && fireTemp >= 1)
|
||||
{
|
||||
if(worldObj.getBlockMetadata(xCoord, yCoord, zCoord) <= 4)
|
||||
{
|
||||
worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, metadata + 4, 3);
|
||||
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||
}
|
||||
}
|
||||
else if(fuelTimeLeft <= 0 && fireTemp >= 1 && ovenItemStacks[9] != null &&
|
||||
(!worldObj.canLightningStrikeAt(xCoord, yCoord, zCoord) && !worldObj.canLightningStrikeAt(xCoord, yCoord + 1, zCoord) ||
|
||||
!worldObj.isRaining()))
|
||||
{
|
||||
if(ovenItemStacks[9] != null)
|
||||
{
|
||||
EnumFuelMaterial m = TFC_Core.getFuelMaterial(ovenItemStacks[9]);
|
||||
fuelTasteProfile = m.ordinal();
|
||||
ovenItemStacks[9] = null;
|
||||
fuelTimeLeft = m.burnTimeMax;
|
||||
fuelBurnTemp = m.burnTempMax;
|
||||
}
|
||||
}
|
||||
|
||||
//Calculate the fire temp
|
||||
float desiredTemp = handleTemp();
|
||||
|
||||
handleTempFlux(desiredTemp);
|
||||
|
||||
//Here we handle the bellows
|
||||
handleAirReduction();
|
||||
|
||||
//do a last minute check to verify stack size
|
||||
if(ovenItemStacks[3] != null)
|
||||
{
|
||||
if(ovenItemStacks[3].stackSize <= 0)
|
||||
ovenItemStacks[3].stackSize = 1;
|
||||
}
|
||||
|
||||
if(ovenItemStacks[4] != null)
|
||||
{
|
||||
if(ovenItemStacks[4].stackSize <= 0)
|
||||
ovenItemStacks[4].stackSize = 1;
|
||||
}
|
||||
|
||||
if(ovenItemStacks[5] != null)
|
||||
{
|
||||
if(ovenItemStacks[5].stackSize <= 0)
|
||||
ovenItemStacks[5].stackSize = 1;
|
||||
}
|
||||
|
||||
if(fuelTimeLeft <= 0)
|
||||
TFC_Core.handleItemTicking(this, worldObj, xCoord, yCoord, zCoord);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void careForInventorySlot(ItemStack is)
|
||||
{
|
||||
if(is != null)
|
||||
{
|
||||
HeatRegistry manager = HeatRegistry.getInstance();
|
||||
HeatIndex index = manager.findMatchingIndex(is);
|
||||
|
||||
if (index != null)
|
||||
{
|
||||
float temp = TFC_ItemHeat.getTemp(is);
|
||||
if (fuelTimeLeft > 0 && is.getItem() instanceof ICookableFood)
|
||||
{
|
||||
float inc = Food.getCooked(is) + Math.min(fireTemp / 700, 2f);
|
||||
Food.setCooked(is, inc);
|
||||
temp = inc;
|
||||
if (Food.isCooked(is))
|
||||
{
|
||||
int[] cookedTasteProfile = new int[]
|
||||
{ 0, 0, 0, 0, 0 };
|
||||
Random r = new Random(((ICookableFood) is.getItem()).getFoodID() + (((int) Food.getCooked(is) - 600) / 120));
|
||||
cookedTasteProfile[0] = r.nextInt(31) - 15;
|
||||
cookedTasteProfile[1] = r.nextInt(31) - 15;
|
||||
cookedTasteProfile[2] = r.nextInt(31) - 15;
|
||||
cookedTasteProfile[3] = r.nextInt(31) - 15;
|
||||
cookedTasteProfile[4] = r.nextInt(31) - 15;
|
||||
Food.setCookedProfile(is, cookedTasteProfile);
|
||||
Food.setFuelProfile(is, EnumFuelMaterial.getFuelProfile(fuelTasteProfile));
|
||||
}
|
||||
}
|
||||
else if (fireTemp > temp && index.hasOutput())
|
||||
{
|
||||
temp += TFC_ItemHeat.getTempIncrease(is);
|
||||
}
|
||||
else
|
||||
temp -= TFC_ItemHeat.getTempDecrease(is);
|
||||
TFC_ItemHeat.setTemp(is, temp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void cookItem(int slot)
|
||||
{
|
||||
HeatRegistry manager = HeatRegistry.getInstance();
|
||||
Random r = new Random();
|
||||
if(ovenItemStacks[slot] != null)
|
||||
{
|
||||
HeatIndex index = manager.findMatchingIndex(ovenItemStacks[slot]);
|
||||
if(index != null && TFC_ItemHeat.getTemp(ovenItemStacks[slot]) > index.meltTemp)
|
||||
{
|
||||
ItemStack output = index.getOutput(ovenItemStacks[slot], r);
|
||||
ItemCookEvent eventMelt = new ItemCookEvent(ovenItemStacks[slot], output, this);
|
||||
MinecraftForge.EVENT_BUS.post(eventMelt);
|
||||
output = eventMelt.result;
|
||||
int damage = 0;
|
||||
ItemStack mold = null;
|
||||
if(output != null)
|
||||
{
|
||||
damage = output.getItemDamage();
|
||||
if(output.getItem() == ovenItemStacks[slot].getItem())
|
||||
damage = ovenItemStacks[slot].getItemDamage();
|
||||
|
||||
//If the input is unshaped metal
|
||||
if(ovenItemStacks[slot].getItem() instanceof ItemMeltedMetal)
|
||||
{
|
||||
//if both output slots are empty then just lower the input item into the first output slot
|
||||
if(ovenItemStacks[3] == null && ovenItemStacks[4] == null && ovenItemStacks[5] == null)
|
||||
{
|
||||
ovenItemStacks[3] = ovenItemStacks[slot].copy();
|
||||
ovenItemStacks[slot] = null;
|
||||
return;
|
||||
}
|
||||
//Otherwise if the first output has an item that doesnt match the input item then put the item in the second output slot
|
||||
else if(ovenItemStacks[3] != null && ovenItemStacks[3].getItem() != TFCItems.ceramicMold &&
|
||||
(ovenItemStacks[3].getItem() != ovenItemStacks[slot].getItem() || ovenItemStacks[3].getItemDamage() == 0))
|
||||
{
|
||||
if(ovenItemStacks[4] == null)
|
||||
{
|
||||
ovenItemStacks[4] = ovenItemStacks[slot].copy();
|
||||
ovenItemStacks[slot] = null;
|
||||
return;
|
||||
}
|
||||
}
|
||||
//Otherwise if both the first and second outputs have items that doesnt match the input item then put the item in the third output slot
|
||||
else if(ovenItemStacks[4] != null && ovenItemStacks[4].getItem() != TFCItems.ceramicMold &&
|
||||
(ovenItemStacks[4].getItem() != ovenItemStacks[slot].getItem() || ovenItemStacks[4].getItemDamage() == 0))
|
||||
{
|
||||
if(ovenItemStacks[5] == null)
|
||||
{
|
||||
ovenItemStacks[5] = ovenItemStacks[slot].copy();
|
||||
ovenItemStacks[slot] = null;
|
||||
return;
|
||||
}
|
||||
}
|
||||
mold = new ItemStack(TFCItems.ceramicMold, 1);
|
||||
mold.stackSize = 1;
|
||||
mold.setItemDamage(1);
|
||||
}
|
||||
}
|
||||
//Morph the input
|
||||
float temp = TFC_ItemHeat.getTemp(ovenItemStacks[slot]);
|
||||
ovenItemStacks[slot] = index.getMorph();
|
||||
if(ovenItemStacks[slot] != null && manager.findMatchingIndex(ovenItemStacks[slot]) != null)
|
||||
{
|
||||
//if the input is a new item, then apply the old temperature to it
|
||||
TFC_ItemHeat.setTemp(ovenItemStacks[slot], temp);
|
||||
}
|
||||
|
||||
//Check if we should combine the output with a pre-existing output
|
||||
if(output != null && output.getItem() instanceof ItemMeltedMetal)
|
||||
{
|
||||
int leftover = 0;
|
||||
boolean addLeftover = false;
|
||||
int dest = 3;
|
||||
if (ovenItemStacks[3] != null && output.getItem() == ovenItemStacks[3].getItem() && ovenItemStacks[3].getItemDamage() > 0)
|
||||
{
|
||||
combineMetals(output, mold, 3, slot, temp, damage, leftover, addLeftover);
|
||||
}
|
||||
else if (ovenItemStacks[4] != null && output.getItem() == ovenItemStacks[4].getItem() && ovenItemStacks[4].getItemDamage() > 0)
|
||||
{
|
||||
combineMetals(output, mold, 4, slot, temp, damage, leftover, addLeftover);
|
||||
dest = 4;
|
||||
}
|
||||
else if (ovenItemStacks[5] != null && output.getItem() == ovenItemStacks[5].getItem() && ovenItemStacks[5].getItemDamage() > 0)
|
||||
{
|
||||
combineMetals(output, mold, 5, slot, temp, damage, leftover, addLeftover);
|
||||
dest = 5;
|
||||
}
|
||||
else if (ovenItemStacks[3] != null && ovenItemStacks[3].getItem() == TFCItems.ceramicMold)
|
||||
{
|
||||
ovenItemStacks[3] = output.copy();
|
||||
ovenItemStacks[3].setItemDamage(damage);
|
||||
|
||||
TFC_ItemHeat.setTemp(ovenItemStacks[3], temp);
|
||||
}
|
||||
else if (ovenItemStacks[4] != null && ovenItemStacks[4].getItem() == TFCItems.ceramicMold)
|
||||
{
|
||||
ovenItemStacks[4] = output.copy();
|
||||
ovenItemStacks[4].setItemDamage(damage);
|
||||
|
||||
TFC_ItemHeat.setTemp(ovenItemStacks[4], temp);
|
||||
}
|
||||
else if (ovenItemStacks[5] != null && ovenItemStacks[5].getItem() == TFCItems.ceramicMold)
|
||||
{
|
||||
ovenItemStacks[5] = output.copy();
|
||||
ovenItemStacks[5].setItemDamage(damage);
|
||||
|
||||
TFC_ItemHeat.setTemp(ovenItemStacks[5], temp);
|
||||
}
|
||||
|
||||
if (addLeftover)
|
||||
{
|
||||
if(ovenItemStacks[dest] != null && output.getItem() == ovenItemStacks[dest].getItem() && ovenItemStacks[dest].getItemDamage() > 0)
|
||||
{
|
||||
int amt1 = 100 - leftover;//the percentage of the output
|
||||
int amt2 = 100 - ovenItemStacks[dest].getItemDamage();//the percentage currently in the out slot
|
||||
int amt3 = amt1 + amt2;//combined amount
|
||||
int amt4 = 100 - amt3;//convert the percent back to mc damage
|
||||
if(amt4 < 0)
|
||||
amt4 = 0;//stop the infinite glitch
|
||||
ovenItemStacks[dest] = output.copy();
|
||||
ovenItemStacks[dest].setItemDamage(amt4);
|
||||
|
||||
TFC_ItemHeat.setTemp(ovenItemStacks[dest], temp);
|
||||
}
|
||||
else if(ovenItemStacks[dest] != null && ovenItemStacks[dest].getItem() == TFCItems.ceramicMold)
|
||||
{
|
||||
ovenItemStacks[dest] = output.copy();
|
||||
ovenItemStacks[dest].setItemDamage(100 - leftover);
|
||||
TFC_ItemHeat.setTemp(ovenItemStacks[dest], temp);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(output != null)
|
||||
{
|
||||
if(ovenItemStacks[3] == null)
|
||||
{
|
||||
ovenItemStacks[3] = output.copy();
|
||||
}
|
||||
else if(ovenItemStacks[4] == null)
|
||||
{
|
||||
ovenItemStacks[4] = output.copy();
|
||||
}
|
||||
else if(ovenItemStacks[5] == null)
|
||||
{
|
||||
ovenItemStacks[5] = output.copy();
|
||||
}
|
||||
else if (ovenItemStacks[3] != null && ovenItemStacks[4] != null && ovenItemStacks[5] != null)
|
||||
{
|
||||
ovenItemStacks[slot] = output.copy();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void combineMetals(ItemStack output, ItemStack mold, int outputSlot, int inputSlot, float temp, int damage, int leftover, boolean addLeftover)
|
||||
{
|
||||
int amt1 = 100 - damage;//the percentage of the output
|
||||
int amt2 = 100 - ovenItemStacks[outputSlot].getItemDamage();//the percentage currently in the out slot
|
||||
int amt3 = amt1 + amt2;//combined amount
|
||||
leftover = amt3 - 100;//assign the leftover so that we can add to the other slot if applicable
|
||||
if(leftover > 0)
|
||||
addLeftover = true;
|
||||
int amt4 = 100 - amt3;//convert the percent back to mc damage
|
||||
if(amt4 < 0)
|
||||
amt4 = 0;//stop the infinite glitch
|
||||
ovenItemStacks[outputSlot] = output.copy();
|
||||
ovenItemStacks[outputSlot].setItemDamage(amt4);
|
||||
|
||||
TFC_ItemHeat.setTemp(ovenItemStacks[outputSlot], temp);
|
||||
|
||||
if(ovenItemStacks[inputSlot] == null && mold != null)
|
||||
ovenItemStacks[inputSlot] = mold;
|
||||
}
|
||||
|
||||
public void handleFuelStack()
|
||||
{
|
||||
if(ovenItemStacks[7] == null && ovenItemStacks[6] != null)
|
||||
{
|
||||
ovenItemStacks[7] = ovenItemStacks[6];
|
||||
ovenItemStacks[6] = null;
|
||||
}
|
||||
if(ovenItemStacks[8] == null && ovenItemStacks[7] != null)
|
||||
{
|
||||
ovenItemStacks[8] = ovenItemStacks[7];
|
||||
ovenItemStacks[7] = null;
|
||||
}
|
||||
if(ovenItemStacks[9] == null && ovenItemStacks[8] != null)
|
||||
{
|
||||
ovenItemStacks[9] = ovenItemStacks[8];
|
||||
ovenItemStacks[8] = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSizeInventory()
|
||||
{
|
||||
return ovenItemStacks.length;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlot(int slot)
|
||||
{
|
||||
return this.ovenItemStacks[slot];
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack decrStackSize(int slot, int amount)
|
||||
{
|
||||
if (this.ovenItemStacks[slot] != null)
|
||||
{
|
||||
ItemStack itemstack;
|
||||
|
||||
if (this.ovenItemStacks[slot].stackSize <= amount)
|
||||
{
|
||||
itemstack = this.ovenItemStacks[slot];
|
||||
this.ovenItemStacks[slot] = null;
|
||||
return itemstack;
|
||||
}
|
||||
else
|
||||
{
|
||||
itemstack = this.ovenItemStacks[slot].splitStack(amount);
|
||||
|
||||
if (this.ovenItemStacks[slot].stackSize == 0)
|
||||
this.ovenItemStacks[slot] = null;
|
||||
|
||||
return itemstack;
|
||||
}
|
||||
}
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getStackInSlotOnClosing(int slot)
|
||||
{
|
||||
if (this.ovenItemStacks[slot] != null)
|
||||
{
|
||||
ItemStack itemstack = this.ovenItemStacks[slot];
|
||||
this.ovenItemStacks[slot] = null;
|
||||
return itemstack;
|
||||
}
|
||||
else
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setInventorySlotContents(int slot, ItemStack stack)
|
||||
{
|
||||
this.ovenItemStacks[slot] = stack;
|
||||
|
||||
if (stack != null && stack.stackSize > this.getInventoryStackLimit())
|
||||
{
|
||||
stack.stackSize = this.getInventoryStackLimit();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInventoryName()
|
||||
{
|
||||
return this.hasCustomInventoryName() ? this.invName : "container.brickOven";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasCustomInventoryName()
|
||||
{
|
||||
return this.invName != null && this.invName.length() > 0;
|
||||
}
|
||||
|
||||
public void setCustomInventoryName(String name)
|
||||
{
|
||||
this.invName = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getInventoryStackLimit()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUseableByPlayer(EntityPlayer player)
|
||||
{
|
||||
return this.worldObj.getTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : player.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openInventory() {}
|
||||
|
||||
@Override
|
||||
public void closeInventory() {}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int slot, ItemStack item)
|
||||
{
|
||||
if(slot == slotsTop[0] && ovenItemStacks[slotsTop[0]] == null)
|
||||
{
|
||||
return !(item.getItem() instanceof ItemOre) && HeatRegistry.getInstance().findMatchingIndex(item) != null;
|
||||
}
|
||||
else if(slot == slotsTop[1] && ovenItemStacks[slotsTop[1]] == null)
|
||||
{
|
||||
return !(item.getItem() instanceof ItemOre) && HeatRegistry.getInstance().findMatchingIndex(item) != null;
|
||||
}
|
||||
else if(slot == slotsTop[2] && ovenItemStacks[slotsTop[2]] == null)
|
||||
{
|
||||
return !(item.getItem() instanceof ItemOre) && HeatRegistry.getInstance().findMatchingIndex(item) != null;
|
||||
}
|
||||
else if(slot == slotsSides[0] && ovenItemStacks[slotsSides[0]] == null)
|
||||
{
|
||||
return FuelManager.getInstance().isFuel(item);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int side)
|
||||
{
|
||||
return side == 0 ? slotsBottom : (side == 1 ? slotsTop : slotsSides);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canInsertItem(int slot, ItemStack item, int side)
|
||||
{
|
||||
return this.isItemValidForSlot(slot, item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int slot, ItemStack item, int side)
|
||||
{
|
||||
return side == 0 && (slot == 3 || slot == 4 || slot == 5);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbttagcompound)
|
||||
{
|
||||
super.writeToNBT(nbttagcompound);
|
||||
NBTTagList nbttaglist = new NBTTagList();
|
||||
for(int i = 0; i < ovenItemStacks.length; i++)
|
||||
{
|
||||
if(ovenItemStacks[i] != null)
|
||||
{
|
||||
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
|
||||
nbttagcompound1.setByte("Slot", (byte)i);
|
||||
ovenItemStacks[i].writeToNBT(nbttagcompound1);
|
||||
nbttaglist.appendTag(nbttagcompound1);
|
||||
}
|
||||
}
|
||||
nbttagcompound.setTag("Items", nbttaglist);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbttagcompound)
|
||||
{
|
||||
super.readFromNBT(nbttagcompound);
|
||||
NBTTagList nbttaglist = nbttagcompound.getTagList("Items", 10);
|
||||
this.ovenItemStacks = new ItemStack[getSizeInventory()];
|
||||
|
||||
for(int i = 0; i < nbttaglist.tagCount(); i++)
|
||||
{
|
||||
NBTTagCompound nbttagcompound1 = nbttaglist.getCompoundTagAt(i);
|
||||
byte byte0 = nbttagcompound1.getByte("Slot");
|
||||
if(byte0 >= 0 && byte0 < ovenItemStacks.length)
|
||||
ovenItemStacks[byte0] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
|
||||
}
|
||||
}
|
||||
}
|
@ -32,6 +32,27 @@ effect.bleed.postfix=Potion of Bleeding
|
||||
#= Blocks =
|
||||
#==========
|
||||
tile.tfpBlood.name=Blood
|
||||
tile.TFPBrickOven Granite.name=Granite Brick Oven
|
||||
tile.TFPBrickOven Diorite.name=Diorite Brick Oven
|
||||
tile.TFPBrickOven Gabbro.name=Gabbro Brick Oven
|
||||
tile.TFPBrickOven Shale.name=Shale Brick Oven
|
||||
tile.TFPBrickOven Claystone.name=Claystone Brick Oven
|
||||
tile.TFPBrickOven Rock Salt.name=Rock Salt Brick Oven
|
||||
tile.TFPBrickOven Limestone.name=Limestone Brick Oven
|
||||
tile.TFPBrickOven Conglomerate.name=Conglomerate Brick Oven
|
||||
tile.TFPBrickOven Dolomite.name=Dolomite Brick Oven
|
||||
tile.TFPBrickOven Chert.name=Chert Brick Oven
|
||||
tile.TFPBrickOven Chalk.name=Chalk Brick Oven
|
||||
tile.TFPBrickOven Rhyolite.name=Rhyolite Brick Oven
|
||||
tile.TFPBrickOven Basalt.name=Basalt Brick Oven
|
||||
tile.TFPBrickOven Andesite.name=Andesite Brick Oven
|
||||
tile.TFPBrickOven Dacite.name=Dacite Brick Oven
|
||||
tile.TFPBrickOven Quartzite.name=Quartzite Brick Oven
|
||||
tile.TFPBrickOven Slate.name=Slate Brick Oven
|
||||
tile.TFPBrickOven Phyllite.name=Phyllite Brick Oven
|
||||
tile.TFPBrickOven Schist.name=Schist Brick Oven
|
||||
tile.TFPBrickOven Gneiss.name=Gneiss Brick Oven
|
||||
tile.TFPBrickOven Marble.name=Marble Brick Oven
|
||||
|
||||
#==========
|
||||
#= Fluids =
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 288 B |
Binary file not shown.
After Width: | Height: | Size: 489 B |
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
Loading…
Reference in New Issue
Block a user