mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-22 15:18:34 +01:00
Fireplace and Crucible fully working
This commit is contained in:
parent
74831f14a4
commit
79b2abefca
30 changed files with 645 additions and 150 deletions
|
@ -1,35 +1,30 @@
|
||||||
package ellpeck.gemification;
|
package ellpeck.gemification;
|
||||||
|
|
||||||
import cpw.mods.fml.common.Mod;
|
import cpw.mods.fml.common.Mod;
|
||||||
import cpw.mods.fml.common.Mod.*;
|
import cpw.mods.fml.common.Mod.EventHandler;
|
||||||
|
import cpw.mods.fml.common.Mod.Instance;
|
||||||
import cpw.mods.fml.common.SidedProxy;
|
import cpw.mods.fml.common.SidedProxy;
|
||||||
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
import cpw.mods.fml.common.event.FMLInitializationEvent;
|
||||||
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
|
||||||
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
|
||||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
|
||||||
import cpw.mods.fml.common.registry.GameRegistry;
|
|
||||||
import ellpeck.gemification.blocks.InitBlocks;
|
import ellpeck.gemification.blocks.InitBlocks;
|
||||||
import ellpeck.gemification.container.GuiHandler;
|
|
||||||
import ellpeck.gemification.crafting.CrucibleCraftingManager;
|
import ellpeck.gemification.crafting.CrucibleCraftingManager;
|
||||||
|
import ellpeck.gemification.gen.OreGen;
|
||||||
|
import ellpeck.gemification.inventory.GuiHandler;
|
||||||
import ellpeck.gemification.items.InitItems;
|
import ellpeck.gemification.items.InitItems;
|
||||||
import ellpeck.gemification.proxy.IProxy;
|
import ellpeck.gemification.proxy.IProxy;
|
||||||
import ellpeck.gemification.tile.TileEntityCrucible;
|
import ellpeck.gemification.tile.TileEntityBase;
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
|
|
||||||
@Mod(modid = Gemification.MOD_ID, name = Gemification.NAME, version = Gemification.VERSION)
|
@Mod(modid = Util.MOD_ID, name = Util.NAME, version = Util.VERSION)
|
||||||
public class Gemification{
|
public class Gemification{
|
||||||
|
|
||||||
@Instance(Gemification.MOD_ID)
|
@Instance(Util.MOD_ID)
|
||||||
public static Gemification instance;
|
public static Gemification instance;
|
||||||
|
|
||||||
@SidedProxy(clientSide = "ellpeck.gemification.proxy.ClientProxy", serverSide = "ellpeck.gemification.proxy.ServerProxy")
|
@SidedProxy(clientSide = "ellpeck.gemification.proxy.ClientProxy", serverSide = "ellpeck.gemification.proxy.ServerProxy")
|
||||||
public static IProxy proxy;
|
public static IProxy proxy;
|
||||||
|
|
||||||
public static final String MOD_ID = "gemification";
|
|
||||||
public static final String NAME = "Gemification";
|
|
||||||
public static final String VERSION = "1.7.10-1.0.1";
|
|
||||||
|
|
||||||
public static final int guiCrucible = 0;
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
@EventHandler()
|
@EventHandler()
|
||||||
public void preInit(FMLPreInitializationEvent event){
|
public void preInit(FMLPreInitializationEvent event){
|
||||||
|
@ -43,9 +38,9 @@ public class Gemification {
|
||||||
public void init(FMLInitializationEvent event){
|
public void init(FMLInitializationEvent event){
|
||||||
CrucibleCraftingManager.instance.initRecipes();
|
CrucibleCraftingManager.instance.initRecipes();
|
||||||
proxy.init();
|
proxy.init();
|
||||||
NetworkRegistry.INSTANCE.registerGuiHandler(instance, new GuiHandler());
|
GuiHandler.init();
|
||||||
GameRegistry.registerWorldGenerator(new OreGen(), 0);
|
OreGen.init();
|
||||||
GameRegistry.registerTileEntity(TileEntityCrucible.class, Gemification.MOD_ID + "tileEntityCrucible");
|
TileEntityBase.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
package ellpeck.gemification.blocks;
|
package ellpeck.gemification.blocks;
|
||||||
|
|
||||||
import cpw.mods.fml.client.registry.RenderingRegistry;
|
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||||
import ellpeck.gemification.CreativeTab;
|
|
||||||
import ellpeck.gemification.Gemification;
|
import ellpeck.gemification.Gemification;
|
||||||
import ellpeck.gemification.Util;
|
import ellpeck.gemification.creative.CreativeTab;
|
||||||
|
import ellpeck.gemification.inventory.GuiHandler;
|
||||||
import ellpeck.gemification.tile.TileEntityCrucible;
|
import ellpeck.gemification.tile.TileEntityCrucible;
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.BlockContainer;
|
import net.minecraft.block.BlockContainer;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
|
@ -12,7 +13,6 @@ import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
import net.minecraft.entity.item.EntityItem;
|
import net.minecraft.entity.item.EntityItem;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.init.Items;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
@ -35,12 +35,7 @@ public class BlockCrucible extends BlockContainer{
|
||||||
@SuppressWarnings("static-access")
|
@SuppressWarnings("static-access")
|
||||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ){
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ){
|
||||||
if (!world.isRemote){
|
if (!world.isRemote){
|
||||||
TileEntityCrucible tileCrucible = (TileEntityCrucible)world.getTileEntity(x, y, z);
|
player.openGui(Gemification.instance, GuiHandler.guiCrucible, world, x, y, z);
|
||||||
if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() == Items.water_bucket && tileCrucible.currentFluid == Util.fluidNone){
|
|
||||||
tileCrucible.currentFluid = Util.fluidWater;
|
|
||||||
if(!player.capabilities.isCreativeMode) player.inventory.setInventorySlotContents(player.inventory.currentItem, new ItemStack(Items.bucket));
|
|
||||||
}
|
|
||||||
else player.openGui(Gemification.instance, Gemification.guiCrucible, world, x, y, z);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
package ellpeck.gemification.blocks;
|
||||||
|
|
||||||
|
import cpw.mods.fml.client.registry.RenderingRegistry;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import ellpeck.gemification.Gemification;
|
||||||
|
import ellpeck.gemification.creative.CreativeTab;
|
||||||
|
import ellpeck.gemification.inventory.GuiHandler;
|
||||||
|
import ellpeck.gemification.tile.TileEntityCrucibleFire;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockContainer;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
|
import net.minecraft.entity.item.EntityItem;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
import java.util.Random;
|
||||||
|
|
||||||
|
public class BlockCrucibleFire extends BlockContainer{
|
||||||
|
|
||||||
|
protected BlockCrucibleFire(){
|
||||||
|
super(Material.rock);
|
||||||
|
this.setBlockName("blockCrucibleFire");
|
||||||
|
this.setCreativeTab(CreativeTab.instance);
|
||||||
|
this.setTickRandomly(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public TileEntity createNewTileEntity(World world, int i){
|
||||||
|
return new TileEntityCrucibleFire();
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("static-access")
|
||||||
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ){
|
||||||
|
if (!world.isRemote){
|
||||||
|
player.openGui(Gemification.instance, GuiHandler.guiCrucibleFire, world, x, y, z);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRenderType(){
|
||||||
|
return RenderingRegistry.getNextAvailableRenderId();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOpaqueCube(){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean renderAsNormalBlock(){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void registerBlockIcons(IIconRegister iconReg){
|
||||||
|
this.blockIcon = Blocks.hopper.getIcon(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void breakBlock(World world, int x, int y, int z, Block block, int meta){
|
||||||
|
this.dropInventory(world, x, y, z);
|
||||||
|
super.breakBlock(world, x, y, z, block, meta);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void dropInventory(World world, int x, int y, int z){
|
||||||
|
TileEntityCrucibleFire tileEntity = (TileEntityCrucibleFire)world.getTileEntity(x, y, z);
|
||||||
|
for (int i = 0; i < tileEntity.getSizeInventory(); i++){
|
||||||
|
ItemStack itemStack = tileEntity.getStackInSlot(i);
|
||||||
|
if (itemStack != null && itemStack.stackSize > 0){
|
||||||
|
Random rand = new Random();
|
||||||
|
float dX = rand.nextFloat() * 0.8F + 0.1F;
|
||||||
|
float dY = rand.nextFloat() * 0.8F + 0.1F;
|
||||||
|
float dZ = rand.nextFloat() * 0.8F + 0.1F;
|
||||||
|
EntityItem entityItem = new EntityItem(world, x + dX, y + dY, z + dZ, itemStack.copy());
|
||||||
|
if(itemStack.hasTagCompound()) entityItem.getEntityItem().setTagCompound((NBTTagCompound)itemStack.getTagCompound().copy());
|
||||||
|
float factor = 0.05F;
|
||||||
|
entityItem.motionX = rand.nextGaussian() * factor;
|
||||||
|
entityItem.motionY = rand.nextGaussian() * factor + 0.2F;
|
||||||
|
entityItem.motionZ = rand.nextGaussian() * factor;
|
||||||
|
world.spawnEntityInWorld(entityItem);
|
||||||
|
itemStack.stackSize = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void randomDisplayTick(World world, int x, int y, int z, Random rand){
|
||||||
|
if(((TileEntityCrucibleFire)world.getTileEntity(x, y, z)).isBurning()){
|
||||||
|
for(int i = 0; i < 8; i++){
|
||||||
|
world.spawnParticle("flame", (double) x + rand.nextFloat() * 0.5F + 0.25F, (double) y + 0.55F, (double) z + rand.nextFloat() * 0.5F + 0.25F, 0.0D, 0.0D, 0.0D);
|
||||||
|
world.spawnParticle("smoke", (double) x + rand.nextFloat() * 0.5F + 0.25F, (double) y + 0.55F, (double) z + rand.nextFloat() * 0.5F + 0.25F, 0.0D, 0.0D, 0.0D);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,14 +7,17 @@ public class InitBlocks{
|
||||||
|
|
||||||
public static Block oreGem;
|
public static Block oreGem;
|
||||||
public static Block blockCrucible;
|
public static Block blockCrucible;
|
||||||
|
public static Block blockCrucibleFire;
|
||||||
|
|
||||||
public static void init(){
|
public static void init(){
|
||||||
|
|
||||||
oreGem = new OreGem();
|
oreGem = new OreGem();
|
||||||
blockCrucible = new BlockCrucible();
|
blockCrucible = new BlockCrucible();
|
||||||
|
blockCrucibleFire = new BlockCrucibleFire();
|
||||||
|
|
||||||
GameRegistry.registerBlock(oreGem, ItemBlockOreGem.class, oreGem.getUnlocalizedName().substring(5));
|
GameRegistry.registerBlock(oreGem, ItemBlockOreGem.class, oreGem.getUnlocalizedName().substring(5));
|
||||||
GameRegistry.registerBlock(blockCrucible, ItemBlockCrucible.class, blockCrucible.getUnlocalizedName().substring(5));
|
GameRegistry.registerBlock(blockCrucible, ItemBlockCrucible.class, blockCrucible.getUnlocalizedName().substring(5));
|
||||||
|
GameRegistry.registerBlock(blockCrucibleFire, ItemBlockCrucibleFire.class, blockCrucibleFire.getUnlocalizedName().substring(5));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ package ellpeck.gemification.blocks;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import ellpeck.gemification.Util;
|
import ellpeck.gemification.util.Util;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemBlock;
|
import net.minecraft.item.ItemBlock;
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package ellpeck.gemification.blocks;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.ItemBlock;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.StatCollector;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class ItemBlockCrucibleFire extends ItemBlock {
|
||||||
|
|
||||||
|
public ItemBlockCrucibleFire(Block block){
|
||||||
|
super(block);
|
||||||
|
setHasSubtypes(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUnlocalizedName(ItemStack stack) {
|
||||||
|
return this.getUnlocalizedName();
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean isHeld) {
|
||||||
|
if(Util.isShiftPressed()) list.add(StatCollector.translateToLocal("tooltip." + this.getUnlocalizedName().substring(5) + ".desc"));
|
||||||
|
else list.add(Util.shiftForInfo());
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,7 +2,7 @@ package ellpeck.gemification.blocks;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import ellpeck.gemification.Util;
|
import ellpeck.gemification.util.Util;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemBlock;
|
import net.minecraft.item.ItemBlock;
|
||||||
|
|
|
@ -2,10 +2,9 @@ package ellpeck.gemification.blocks;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import ellpeck.gemification.CreativeTab;
|
import ellpeck.gemification.creative.CreativeTab;
|
||||||
import ellpeck.gemification.Gemification;
|
|
||||||
import ellpeck.gemification.Util;
|
|
||||||
import ellpeck.gemification.items.InitItems;
|
import ellpeck.gemification.items.InitItems;
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
|
@ -58,7 +57,7 @@ public class OreGem extends Block{
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public void registerBlockIcons(IIconRegister iconReg) {
|
public void registerBlockIcons(IIconRegister iconReg) {
|
||||||
for (int i = 0; i < Util.gemList.size(); i++) {
|
for (int i = 0; i < Util.gemList.size(); i++) {
|
||||||
textures[i] = iconReg.registerIcon(Gemification.MOD_ID + ":" + this.getUnlocalizedName().substring(5) + Util.gemList.get(i).name.substring(5));
|
textures[i] = iconReg.registerIcon(Util.MOD_ID + ":" + this.getUnlocalizedName().substring(5) + Util.gemList.get(i).name.substring(5));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
package ellpeck.gemification.blocks.models;
|
||||||
|
|
||||||
|
import net.minecraft.client.model.ModelRenderer;
|
||||||
|
|
||||||
|
public class ModelCrucibleFire extends ModelBaseG{
|
||||||
|
public ModelRenderer floor, wallOne, wallTwo, wallThree, wallFour, supportOne, supportTwo, supportThree, supportFour, outsideSupOne, outsideSupTwo, outsideSupThree, outsideSupFour, topFloor, floorBlock;
|
||||||
|
|
||||||
|
public ModelCrucibleFire() {
|
||||||
|
this.textureWidth = 64;
|
||||||
|
this.textureHeight = 64;
|
||||||
|
this.wallFour = new ModelRenderer(this, 0, 0);
|
||||||
|
this.wallFour.setRotationPoint(-4.5F, 15.0F, 4.5F);
|
||||||
|
this.wallFour.addBox(0.0F, 0.0F, 0.0F, 9, 3, 1);
|
||||||
|
this.outsideSupFour = new ModelRenderer(this, 0, 30);
|
||||||
|
this.outsideSupFour.setRotationPoint(-8.0F, 9.0F, 6.0F);
|
||||||
|
this.outsideSupFour.addBox(0.0F, 0.0F, 0.0F, 2, 15, 2);
|
||||||
|
this.supportFour = new ModelRenderer(this, 0, 0);
|
||||||
|
this.supportFour.setRotationPoint(3.5F, 19.0F, -4.5F);
|
||||||
|
this.supportFour.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1);
|
||||||
|
this.outsideSupThree = new ModelRenderer(this, 0, 30);
|
||||||
|
this.outsideSupThree.setRotationPoint(-8.0F, 9.0F, -8.0F);
|
||||||
|
this.outsideSupThree.addBox(0.0F, 0.0F, 0.0F, 2, 15, 2);
|
||||||
|
this.outsideSupOne = new ModelRenderer(this, 0, 30);
|
||||||
|
this.outsideSupOne.setRotationPoint(6.0F, 9.0F, 6.0F);
|
||||||
|
this.outsideSupOne.addBox(0.0F, 0.0F, 0.0F, 2, 15, 2);
|
||||||
|
this.floorBlock = new ModelRenderer(this, 0, 17);
|
||||||
|
this.floorBlock.setRotationPoint(-5.0F, 21.0F, -5.0F);
|
||||||
|
this.floorBlock.addBox(0.0F, 0.0F, 0.0F, 10, 3, 10);
|
||||||
|
this.wallOne = new ModelRenderer(this, 0, 0);
|
||||||
|
this.wallOne.setRotationPoint(4.5F, 15.0F, -5.5F);
|
||||||
|
this.wallOne.addBox(0.0F, 0.0F, 0.0F, 1, 3, 11);
|
||||||
|
this.wallTwo = new ModelRenderer(this, 0, 0);
|
||||||
|
this.wallTwo.setRotationPoint(-5.5F, 15.0F, -5.5F);
|
||||||
|
this.wallTwo.addBox(0.0F, 0.0F, 0.0F, 1, 3, 11);
|
||||||
|
this.supportOne = new ModelRenderer(this, 0, 0);
|
||||||
|
this.supportOne.setRotationPoint(3.5F, 19.0F, 3.5F);
|
||||||
|
this.supportOne.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1);
|
||||||
|
this.wallThree = new ModelRenderer(this, 0, 0);
|
||||||
|
this.wallThree.setRotationPoint(-4.5F, 15.0F, -5.5F);
|
||||||
|
this.wallThree.addBox(0.0F, 0.0F, 0.0F, 9, 3, 1);
|
||||||
|
this.outsideSupTwo = new ModelRenderer(this, 0, 30);
|
||||||
|
this.outsideSupTwo.setRotationPoint(6.0F, 9.0F, -8.0F);
|
||||||
|
this.outsideSupTwo.addBox(0.0F, 0.0F, 0.0F, 2, 15, 2);
|
||||||
|
this.floor = new ModelRenderer(this, 0, 0);
|
||||||
|
this.floor.mirror = true;
|
||||||
|
this.floor.setRotationPoint(-4.5F, 18.0F, -4.5F);
|
||||||
|
this.floor.addBox(0.0F, 0.0F, 0.0F, 9, 1, 9);
|
||||||
|
this.supportThree = new ModelRenderer(this, 0, 0);
|
||||||
|
this.supportThree.setRotationPoint(-4.5F, 19.0F, -4.5F);
|
||||||
|
this.supportThree.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1);
|
||||||
|
this.topFloor = new ModelRenderer(this, 0, 30);
|
||||||
|
this.topFloor.setRotationPoint(-8.0F, 8.0F, -8.0F);
|
||||||
|
this.topFloor.addBox(0.0F, 0.0F, 0.0F, 16, 1, 16);
|
||||||
|
this.supportTwo = new ModelRenderer(this, 0, 0);
|
||||||
|
this.supportTwo.setRotationPoint(-4.5F, 19.0F, 3.5F);
|
||||||
|
this.supportTwo.addBox(0.0F, 0.0F, 0.0F, 1, 2, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void render(float f){
|
||||||
|
this.wallFour.render(f);
|
||||||
|
this.outsideSupFour.render(f);
|
||||||
|
this.supportFour.render(f);
|
||||||
|
this.outsideSupThree.render(f);
|
||||||
|
this.outsideSupOne.render(f);
|
||||||
|
this.floorBlock.render(f);
|
||||||
|
this.wallOne.render(f);
|
||||||
|
this.wallTwo.render(f);
|
||||||
|
this.supportOne.render(f);
|
||||||
|
this.wallThree.render(f);
|
||||||
|
this.outsideSupTwo.render(f);
|
||||||
|
this.floor.render(f);
|
||||||
|
this.supportThree.render(f);
|
||||||
|
this.topFloor.render(f);
|
||||||
|
this.supportTwo.render(f);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
package ellpeck.gemification.blocks.models;
|
package ellpeck.gemification.blocks.models;
|
||||||
|
|
||||||
import ellpeck.gemification.Gemification;
|
import ellpeck.gemification.util.Util;
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
@ -8,7 +8,7 @@ import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
public class RendererCrucible extends TileEntitySpecialRenderer{
|
public class RendererCrucible extends TileEntitySpecialRenderer{
|
||||||
|
|
||||||
public static final ResourceLocation resLoc = new ResourceLocation(Gemification.MOD_ID, "textures/blocks/models/modelCrucible.png");
|
public static final ResourceLocation resLoc = new ResourceLocation(Util.MOD_ID, "textures/blocks/models/modelCrucible.png");
|
||||||
private ModelCrucible model;
|
private ModelCrucible model;
|
||||||
|
|
||||||
public RendererCrucible(){
|
public RendererCrucible(){
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
package ellpeck.gemification.blocks.models;
|
||||||
|
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
public class RendererCrucibleFire extends TileEntitySpecialRenderer{
|
||||||
|
|
||||||
|
public static final ResourceLocation resLoc = new ResourceLocation(Util.MOD_ID, "textures/blocks/models/modelCrucibleFire.png");
|
||||||
|
private ModelCrucibleFire model;
|
||||||
|
|
||||||
|
public RendererCrucibleFire(){
|
||||||
|
this.model = new ModelCrucibleFire();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float par5) {
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
GL11.glTranslatef((float)x + 0.5F, (float)y + 1.5F, (float)z + 0.5F);
|
||||||
|
GL11.glRotatef(180, 0F, 0F, 1F);
|
||||||
|
this.bindTexture(resLoc);
|
||||||
|
GL11.glPushMatrix();
|
||||||
|
this.model.render(0.0625F);
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
GL11.glPopMatrix();
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,32 +0,0 @@
|
||||||
package ellpeck.gemification.container;
|
|
||||||
|
|
||||||
import cpw.mods.fml.common.network.IGuiHandler;
|
|
||||||
import ellpeck.gemification.Gemification;
|
|
||||||
import ellpeck.gemification.tile.TileEntityCrucible;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
|
|
||||||
public class GuiHandler implements IGuiHandler {
|
|
||||||
|
|
||||||
public Object getServerGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z) {
|
|
||||||
switch (id) {
|
|
||||||
case Gemification.guiCrucible:
|
|
||||||
TileEntityCrucible tileCrucible = (TileEntityCrucible) world.getTileEntity(x, y, z);
|
|
||||||
return new ContainerCrucible(entityPlayer.inventory, tileCrucible);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public Object getClientGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z) {
|
|
||||||
switch (id) {
|
|
||||||
case Gemification.guiCrucible:
|
|
||||||
TileEntityCrucible tileCrucible = (TileEntityCrucible) world.getTileEntity(x, y, z);
|
|
||||||
return new GuiCrucible(entityPlayer.inventory, tileCrucible);
|
|
||||||
|
|
||||||
default:
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,16 +1,16 @@
|
||||||
package ellpeck.gemification.crafting;
|
package ellpeck.gemification.crafting;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import ellpeck.gemification.util.GemType;
|
||||||
import java.util.HashMap;
|
import ellpeck.gemification.util.Util;
|
||||||
|
|
||||||
import ellpeck.gemification.GemType;
|
|
||||||
import ellpeck.gemification.Util;
|
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.init.Items;
|
import net.minecraft.init.Items;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
public class CrucibleCraftingManager{
|
public class CrucibleCraftingManager{
|
||||||
|
|
||||||
public static final CrucibleCraftingManager instance = new CrucibleCraftingManager();
|
public static final CrucibleCraftingManager instance = new CrucibleCraftingManager();
|
||||||
|
@ -72,12 +72,31 @@ public class CrucibleCraftingManager{
|
||||||
stack2[i1] = null;
|
stack2[i1] = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.recipes.add(new CrucibleRecipe(stack2, output, fluidNeeded, processTimeNeeded));
|
this.recipes.add(new CrucibleRecipe(stack2, output, fluidNeeded, processTimeNeeded));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("static-access")
|
@SuppressWarnings("static-access")
|
||||||
public ItemStack getCraftingResult(ItemStack[] slots, int minSlot, int maxSlot, GemType currentFluid){
|
public ItemStack getCraftingResult(ItemStack[] slots, int minSlot, int maxSlot, GemType currentFluid){
|
||||||
|
CrucibleRecipe matchingRecipe = this.matchingRecipe(slots, minSlot, maxSlot);
|
||||||
|
if(matchingRecipe != null){
|
||||||
|
if (currentFluid == matchingRecipe.fluidNeeded){
|
||||||
|
return matchingRecipe.recipeOutput;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("static-access")
|
||||||
|
public int getProcessTimeNeeded(ItemStack[] slots, int minSlot, int maxSlot){
|
||||||
|
CrucibleRecipe matchingRecipe = this.matchingRecipe(slots, minSlot, maxSlot);
|
||||||
|
if(matchingRecipe != null){
|
||||||
|
return matchingRecipe.processTimeNeeded;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("static-access")
|
||||||
|
public CrucibleRecipe matchingRecipe(ItemStack[] slots, int minSlot, int maxSlot){
|
||||||
for (CrucibleRecipe recipe : this.recipes){
|
for (CrucibleRecipe recipe : this.recipes){
|
||||||
ItemStack[] inputs = recipe.recipeItems;
|
ItemStack[] inputs = recipe.recipeItems;
|
||||||
int k = 0;
|
int k = 0;
|
||||||
|
@ -89,21 +108,9 @@ public class CrucibleCraftingManager{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (k == maxSlot - minSlot + 1){
|
if (k == maxSlot - minSlot + 1){
|
||||||
if(currentFluid == recipe.fluidNeeded) {
|
return recipe;
|
||||||
return recipe.recipeOutput;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("static-access")
|
|
||||||
public int getProcessTimeNeeded(ItemStack stack){
|
|
||||||
for(CrucibleRecipe recipe : this.recipes){
|
|
||||||
if(recipe.recipeOutput == stack){
|
|
||||||
return recipe.processTimeNeeded;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
package ellpeck.gemification.crafting;
|
package ellpeck.gemification.crafting;
|
||||||
|
|
||||||
import ellpeck.gemification.GemType;
|
import ellpeck.gemification.util.GemType;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
public class CrucibleRecipe{
|
public class CrucibleRecipe{
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package ellpeck.gemification;
|
package ellpeck.gemification.creative;
|
||||||
|
|
||||||
import ellpeck.gemification.blocks.InitBlocks;
|
import ellpeck.gemification.blocks.InitBlocks;
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
|
|
||||||
|
@ -9,7 +10,7 @@ public class CreativeTab extends CreativeTabs{
|
||||||
public static CreativeTab instance = new CreativeTab();
|
public static CreativeTab instance = new CreativeTab();
|
||||||
|
|
||||||
public CreativeTab(){
|
public CreativeTab(){
|
||||||
super(Gemification.MOD_ID);
|
super(Util.MOD_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Item getTabIconItem() {
|
public Item getTabIconItem() {
|
|
@ -1,7 +1,9 @@
|
||||||
package ellpeck.gemification;
|
package ellpeck.gemification.gen;
|
||||||
|
|
||||||
import cpw.mods.fml.common.IWorldGenerator;
|
import cpw.mods.fml.common.IWorldGenerator;
|
||||||
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
import ellpeck.gemification.blocks.InitBlocks;
|
import ellpeck.gemification.blocks.InitBlocks;
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.init.Blocks;
|
import net.minecraft.init.Blocks;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
@ -48,4 +50,8 @@ public class OreGen implements IWorldGenerator {
|
||||||
(new WorldGenMinable(block, meta, maxVeinSize, blockIn)).generate(world, random, posX, posY, posZ);
|
(new WorldGenMinable(block, meta, maxVeinSize, blockIn)).generate(world, random, posX, posY, posZ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void init(){
|
||||||
|
GameRegistry.registerWorldGenerator(new OreGen(), 0);
|
||||||
|
}
|
||||||
}
|
}
|
50
src/main/java/ellpeck/gemification/inventory/GuiHandler.java
Normal file
50
src/main/java/ellpeck/gemification/inventory/GuiHandler.java
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
package ellpeck.gemification.inventory;
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.network.IGuiHandler;
|
||||||
|
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||||
|
import ellpeck.gemification.Gemification;
|
||||||
|
import ellpeck.gemification.inventory.container.ContainerCrucible;
|
||||||
|
import ellpeck.gemification.inventory.container.ContainerCrucibleFire;
|
||||||
|
import ellpeck.gemification.inventory.gui.GuiCrucible;
|
||||||
|
import ellpeck.gemification.inventory.gui.GuiCrucibleFire;
|
||||||
|
import ellpeck.gemification.tile.TileEntityBase;
|
||||||
|
import ellpeck.gemification.tile.TileEntityCrucible;
|
||||||
|
import ellpeck.gemification.tile.TileEntityCrucibleFire;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class GuiHandler implements IGuiHandler {
|
||||||
|
|
||||||
|
public static final int guiCrucible = 0;
|
||||||
|
public static final int guiCrucibleFire = 1;
|
||||||
|
|
||||||
|
public Object getServerGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z) {
|
||||||
|
TileEntityBase tile = (TileEntityBase)world.getTileEntity(x, y, z);
|
||||||
|
switch (id) {
|
||||||
|
case guiCrucible:
|
||||||
|
return new ContainerCrucible(entityPlayer.inventory, (TileEntityCrucible)tile);
|
||||||
|
case guiCrucibleFire:
|
||||||
|
return new ContainerCrucibleFire(entityPlayer.inventory, (TileEntityCrucibleFire)tile);
|
||||||
|
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getClientGuiElement(int id, EntityPlayer entityPlayer, World world, int x, int y, int z) {
|
||||||
|
TileEntityBase tile = (TileEntityBase)world.getTileEntity(x, y, z);
|
||||||
|
switch (id) {
|
||||||
|
case guiCrucible:
|
||||||
|
return new GuiCrucible(entityPlayer.inventory, (TileEntityCrucible)tile);
|
||||||
|
case guiCrucibleFire:
|
||||||
|
return new GuiCrucibleFire(entityPlayer.inventory, (TileEntityCrucibleFire)tile);
|
||||||
|
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void init(){
|
||||||
|
NetworkRegistry.INSTANCE.registerGuiHandler(Gemification.instance, new GuiHandler());
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,14 @@
|
||||||
package ellpeck.gemification.container;
|
package ellpeck.gemification.inventory.container;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import ellpeck.gemification.tile.TileEntityCrucible;
|
import ellpeck.gemification.tile.TileEntityCrucible;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
import net.minecraft.inventory.*;
|
import net.minecraft.inventory.Container;
|
||||||
|
import net.minecraft.inventory.ICrafting;
|
||||||
|
import net.minecraft.inventory.Slot;
|
||||||
|
import net.minecraft.inventory.SlotFurnace;
|
||||||
|
|
||||||
public class ContainerCrucible extends Container {
|
public class ContainerCrucible extends Container {
|
||||||
|
|
||||||
|
@ -14,6 +17,8 @@ public class ContainerCrucible extends Container {
|
||||||
private int lastCurrentFluidID;
|
private int lastCurrentFluidID;
|
||||||
private int lastProcessTime;
|
private int lastProcessTime;
|
||||||
private int lastProcessTimeNeeded;
|
private int lastProcessTimeNeeded;
|
||||||
|
private int lastBurnTime;
|
||||||
|
private int lastBurnTimeOfItem;
|
||||||
|
|
||||||
public ContainerCrucible(InventoryPlayer inventoryPlayer, TileEntityCrucible tileCrucible) {
|
public ContainerCrucible(InventoryPlayer inventoryPlayer, TileEntityCrucible tileCrucible) {
|
||||||
this.tileCrucible = tileCrucible;
|
this.tileCrucible = tileCrucible;
|
||||||
|
@ -54,6 +59,8 @@ public class ContainerCrucible extends Container {
|
||||||
iCraft.sendProgressBarUpdate(this, 0, this.tileCrucible.currentFluidID);
|
iCraft.sendProgressBarUpdate(this, 0, this.tileCrucible.currentFluidID);
|
||||||
iCraft.sendProgressBarUpdate(this, 1, this.tileCrucible.currentProcessTime);
|
iCraft.sendProgressBarUpdate(this, 1, this.tileCrucible.currentProcessTime);
|
||||||
iCraft.sendProgressBarUpdate(this, 2, this.tileCrucible.processTimeNeeded);
|
iCraft.sendProgressBarUpdate(this, 2, this.tileCrucible.processTimeNeeded);
|
||||||
|
iCraft.sendProgressBarUpdate(this, 3, this.tileCrucible.burnTime);
|
||||||
|
iCraft.sendProgressBarUpdate(this, 4, this.tileCrucible.burnTimeOfItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void detectAndSendChanges(){
|
public void detectAndSendChanges(){
|
||||||
|
@ -64,11 +71,15 @@ public class ContainerCrucible extends Container {
|
||||||
if (this.lastCurrentFluidID != this.tileCrucible.currentFluidID) iCraft.sendProgressBarUpdate(this, 0, this.tileCrucible.currentFluidID);
|
if (this.lastCurrentFluidID != this.tileCrucible.currentFluidID) iCraft.sendProgressBarUpdate(this, 0, this.tileCrucible.currentFluidID);
|
||||||
if (this.lastProcessTime != this.tileCrucible.currentProcessTime) iCraft.sendProgressBarUpdate(this, 1, this.tileCrucible.currentProcessTime);
|
if (this.lastProcessTime != this.tileCrucible.currentProcessTime) iCraft.sendProgressBarUpdate(this, 1, this.tileCrucible.currentProcessTime);
|
||||||
if (this.lastProcessTimeNeeded != this.tileCrucible.processTimeNeeded) iCraft.sendProgressBarUpdate(this, 2, this.tileCrucible.processTimeNeeded);
|
if (this.lastProcessTimeNeeded != this.tileCrucible.processTimeNeeded) iCraft.sendProgressBarUpdate(this, 2, this.tileCrucible.processTimeNeeded);
|
||||||
|
if (this.lastBurnTime != this.tileCrucible.burnTime) iCraft.sendProgressBarUpdate(this, 3, this.tileCrucible.burnTime);
|
||||||
|
if (this.lastBurnTimeOfItem != this.tileCrucible.burnTimeOfItem) iCraft.sendProgressBarUpdate(this, 4, this.tileCrucible.burnTimeOfItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.lastCurrentFluidID = this.tileCrucible.currentFluidID;
|
this.lastCurrentFluidID = this.tileCrucible.currentFluidID;
|
||||||
this.lastProcessTime = this.tileCrucible.currentProcessTime;
|
this.lastProcessTime = this.tileCrucible.currentProcessTime;
|
||||||
this.lastProcessTimeNeeded = this.tileCrucible.processTimeNeeded;
|
this.lastProcessTimeNeeded = this.tileCrucible.processTimeNeeded;
|
||||||
|
this.lastBurnTime = this.tileCrucible.burnTime;
|
||||||
|
this.lastBurnTimeOfItem = this.tileCrucible.burnTimeOfItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
|
@ -76,6 +87,7 @@ public class ContainerCrucible extends Container {
|
||||||
if (par1 == 0) this.tileCrucible.currentFluidID = par2;
|
if (par1 == 0) this.tileCrucible.currentFluidID = par2;
|
||||||
if (par1 == 1) this.tileCrucible.currentProcessTime = par2;
|
if (par1 == 1) this.tileCrucible.currentProcessTime = par2;
|
||||||
if (par1 == 2) this.tileCrucible.processTimeNeeded = par2;
|
if (par1 == 2) this.tileCrucible.processTimeNeeded = par2;
|
||||||
|
if (par1 == 3) this.tileCrucible.burnTime = par2;
|
||||||
|
if (par1 == 4) this.tileCrucible.burnTimeOfItem = par2;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -0,0 +1,64 @@
|
||||||
|
package ellpeck.gemification.inventory.container;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import ellpeck.gemification.tile.TileEntityCrucibleFire;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
import net.minecraft.inventory.Container;
|
||||||
|
import net.minecraft.inventory.ICrafting;
|
||||||
|
import net.minecraft.inventory.Slot;
|
||||||
|
|
||||||
|
public class ContainerCrucibleFire extends Container {
|
||||||
|
|
||||||
|
private TileEntityCrucibleFire tileCrucibleFire;
|
||||||
|
|
||||||
|
private int lastBurnTime;
|
||||||
|
private int lastBurnTimeOfItem;
|
||||||
|
|
||||||
|
public ContainerCrucibleFire(InventoryPlayer inventoryPlayer, TileEntityCrucibleFire tileCrucibleFire) {
|
||||||
|
this.tileCrucibleFire = tileCrucibleFire;
|
||||||
|
|
||||||
|
this.addSlotToContainer(new Slot(this.tileCrucibleFire, 0, 70, 9));
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; ++i){
|
||||||
|
for (int j = 0; j < 9; ++j){
|
||||||
|
this.addSlotToContainer(new Slot(inventoryPlayer, j + i * 9 + 9, 8 + j * 18, 34 + i * 18));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 9; ++i){
|
||||||
|
this.addSlotToContainer(new Slot(inventoryPlayer, i, 8 + i * 18, 92));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canInteractWith(EntityPlayer player) {
|
||||||
|
return tileCrucibleFire.isUseableByPlayer(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addCraftingToCrafters(ICrafting iCraft){
|
||||||
|
super.addCraftingToCrafters(iCraft);
|
||||||
|
|
||||||
|
iCraft.sendProgressBarUpdate(this, 0, this.tileCrucibleFire.burnTime);
|
||||||
|
iCraft.sendProgressBarUpdate(this, 1, this.tileCrucibleFire.burnTimeOfItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void detectAndSendChanges(){
|
||||||
|
super.detectAndSendChanges();
|
||||||
|
for (Object crafter : this.crafters) {
|
||||||
|
ICrafting iCraft = (ICrafting) crafter;
|
||||||
|
|
||||||
|
if (this.lastBurnTime != this.tileCrucibleFire.burnTime) iCraft.sendProgressBarUpdate(this, 0, this.tileCrucibleFire.burnTime);
|
||||||
|
if (this.lastBurnTimeOfItem != this.tileCrucibleFire.burnTimeOfItem) iCraft.sendProgressBarUpdate(this, 1, this.tileCrucibleFire.burnTimeOfItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.lastBurnTime = tileCrucibleFire.burnTime;
|
||||||
|
this.lastBurnTimeOfItem = tileCrucibleFire.burnTimeOfItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public void updateProgressBar(int par1, int par2){
|
||||||
|
if (par1 == 0) this.tileCrucibleFire.burnTime = par2;
|
||||||
|
if (par1 == 1) this.tileCrucibleFire.burnTimeOfItem = par2;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
package ellpeck.gemification.container;
|
package ellpeck.gemification.inventory.gui;
|
||||||
|
|
||||||
import ellpeck.gemification.Gemification;
|
import ellpeck.gemification.inventory.container.ContainerCrucible;
|
||||||
import ellpeck.gemification.Util;
|
|
||||||
import ellpeck.gemification.tile.TileEntityCrucible;
|
import ellpeck.gemification.tile.TileEntityCrucible;
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||||
import net.minecraft.client.renderer.RenderHelper;
|
import net.minecraft.client.renderer.RenderHelper;
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
@ -16,7 +16,7 @@ public class GuiCrucible extends GuiContainer{
|
||||||
|
|
||||||
private TileEntityCrucible tileCrucible;
|
private TileEntityCrucible tileCrucible;
|
||||||
|
|
||||||
public static final ResourceLocation resLoc = new ResourceLocation(Gemification.MOD_ID, "textures/gui/guiCrucible.png");
|
public static final ResourceLocation resLoc = new ResourceLocation(Util.MOD_ID, "textures/gui/guiCrucible.png");
|
||||||
|
|
||||||
public GuiCrucible(InventoryPlayer inventoryPlayer, TileEntityCrucible tileCrucible){
|
public GuiCrucible(InventoryPlayer inventoryPlayer, TileEntityCrucible tileCrucible){
|
||||||
super(new ContainerCrucible(inventoryPlayer, tileCrucible));
|
super(new ContainerCrucible(inventoryPlayer, tileCrucible));
|
||||||
|
@ -36,6 +36,11 @@ public class GuiCrucible extends GuiContainer{
|
||||||
this.drawTexturedModalRect(guiLeft + 107, guiTop + 55, 176, 0, i, 45);
|
this.drawTexturedModalRect(guiLeft + 107, guiTop + 55, 176, 0, i, 45);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(this.tileCrucible.burnTime > 0 && this.tileCrucible.burnTimeOfItem > 0) {
|
||||||
|
int i = this.tileCrucible.getBurnTimeRemainingScaled(13);
|
||||||
|
this.drawTexturedModalRect(guiLeft + 141, guiTop + 21 + 12 - i, 188, 45 + 12 - i, 14, i + 1);
|
||||||
|
}
|
||||||
|
|
||||||
if(this.tileCrucible.currentFluidID == Util.fluidWater.ID) this.drawTexturedModalRect(guiLeft + 141, guiTop + 7, 176, 47, 12, 12);
|
if(this.tileCrucible.currentFluidID == Util.fluidWater.ID) this.drawTexturedModalRect(guiLeft + 141, guiTop + 7, 176, 47, 12, 12);
|
||||||
else if(this.tileCrucible.currentFluidID == Util.gemList.get(0).ID) this.drawTexturedModalRect(guiLeft + 141, guiTop + 7, 176, 59, 12, 12);
|
else if(this.tileCrucible.currentFluidID == Util.gemList.get(0).ID) this.drawTexturedModalRect(guiLeft + 141, guiTop + 7, 176, 59, 12, 12);
|
||||||
else if(this.tileCrucible.currentFluidID == Util.gemList.get(1).ID) this.drawTexturedModalRect(guiLeft + 141, guiTop + 7, 188, 59, 12, 12);
|
else if(this.tileCrucible.currentFluidID == Util.gemList.get(1).ID) this.drawTexturedModalRect(guiLeft + 141, guiTop + 7, 188, 59, 12, 12);
|
||||||
|
@ -58,6 +63,7 @@ public class GuiCrucible extends GuiContainer{
|
||||||
@SuppressWarnings("static-access")
|
@SuppressWarnings("static-access")
|
||||||
public void drawScreen(int par1, int par2, float par3){
|
public void drawScreen(int par1, int par2, float par3){
|
||||||
super.drawScreen(par1, par2, par3);
|
super.drawScreen(par1, par2, par3);
|
||||||
|
|
||||||
RenderHelper.enableGUIStandardItemLighting();
|
RenderHelper.enableGUIStandardItemLighting();
|
||||||
GL11.glEnable(GL11.GL_LIGHTING);
|
GL11.glEnable(GL11.GL_LIGHTING);
|
||||||
itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), tileCrucible.output, guiLeft + 112, guiTop + 65);
|
itemRender.renderItemAndEffectIntoGUI(fontRendererObj, mc.getTextureManager(), tileCrucible.output, guiLeft + 112, guiTop + 65);
|
|
@ -0,0 +1,40 @@
|
||||||
|
package ellpeck.gemification.inventory.gui;
|
||||||
|
|
||||||
|
import ellpeck.gemification.inventory.container.ContainerCrucibleFire;
|
||||||
|
import ellpeck.gemification.tile.TileEntityCrucibleFire;
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
|
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||||
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
import org.lwjgl.opengl.GL11;
|
||||||
|
|
||||||
|
public class GuiCrucibleFire extends GuiContainer{
|
||||||
|
|
||||||
|
@SuppressWarnings("all")
|
||||||
|
private TileEntityCrucibleFire tileCrucibleFire;
|
||||||
|
|
||||||
|
public static final ResourceLocation resLoc = new ResourceLocation(Util.MOD_ID, "textures/gui/guiCrucibleFire.png");
|
||||||
|
|
||||||
|
public GuiCrucibleFire(InventoryPlayer inventoryPlayer, TileEntityCrucibleFire tileCrucibleFire){
|
||||||
|
super(new ContainerCrucibleFire(inventoryPlayer, tileCrucibleFire));
|
||||||
|
this.tileCrucibleFire = tileCrucibleFire;
|
||||||
|
|
||||||
|
this.xSize = 176;
|
||||||
|
this.ySize = 116;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) {
|
||||||
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||||
|
this.mc.getTextureManager().bindTexture(resLoc);
|
||||||
|
this.drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||||
|
|
||||||
|
if(this.tileCrucibleFire.burnTime > 0 && this.tileCrucibleFire.burnTimeOfItem > 0) {
|
||||||
|
int i = this.tileCrucibleFire.getBurnTimeRemainingScaled(13);
|
||||||
|
this.drawTexturedModalRect(guiLeft + 96, guiTop + 10 + 12 - i, 176, 12 - i, 14, i + 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drawScreen(int par1, int par2, float par3){
|
||||||
|
super.drawScreen(par1, par2, par3);
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,9 +2,8 @@ package ellpeck.gemification.items;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import ellpeck.gemification.CreativeTab;
|
import ellpeck.gemification.creative.CreativeTab;
|
||||||
import ellpeck.gemification.Gemification;
|
import ellpeck.gemification.util.Util;
|
||||||
import ellpeck.gemification.Util;
|
|
||||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
@ -59,7 +58,7 @@ public class ItemGem extends Item {
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public void registerIcons(IIconRegister iconReg){
|
public void registerIcons(IIconRegister iconReg){
|
||||||
for (int i = 0; i < Util.gemList.size(); i++) {
|
for (int i = 0; i < Util.gemList.size(); i++) {
|
||||||
textures[i] = iconReg.registerIcon(Gemification.MOD_ID + ":" + this.getUnlocalizedName().substring(5) + Util.gemList.get(i).name.substring(5));
|
textures[i] = iconReg.registerIcon(Util.MOD_ID + ":" + this.getUnlocalizedName().substring(5) + Util.gemList.get(i).name.substring(5));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,9 @@ package ellpeck.gemification.proxy;
|
||||||
|
|
||||||
import cpw.mods.fml.client.registry.ClientRegistry;
|
import cpw.mods.fml.client.registry.ClientRegistry;
|
||||||
import ellpeck.gemification.blocks.InitBlocks;
|
import ellpeck.gemification.blocks.InitBlocks;
|
||||||
import ellpeck.gemification.blocks.models.ModelCrucible;
|
import ellpeck.gemification.blocks.models.*;
|
||||||
import ellpeck.gemification.blocks.models.RendererCrucible;
|
|
||||||
import ellpeck.gemification.blocks.models.RendererHoldingTileEntity;
|
|
||||||
import ellpeck.gemification.tile.TileEntityCrucible;
|
import ellpeck.gemification.tile.TileEntityCrucible;
|
||||||
|
import ellpeck.gemification.tile.TileEntityCrucibleFire;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraftforge.client.MinecraftForgeClient;
|
import net.minecraftforge.client.MinecraftForgeClient;
|
||||||
|
|
||||||
|
@ -19,8 +18,11 @@ public class ClientProxy implements IProxy{
|
||||||
public void init() {
|
public void init() {
|
||||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCrucible.class, new RendererCrucible());
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCrucible.class, new RendererCrucible());
|
||||||
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(InitBlocks.blockCrucible), new RendererHoldingTileEntity(new ModelCrucible(), RendererCrucible.resLoc));
|
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(InitBlocks.blockCrucible), new RendererHoldingTileEntity(new ModelCrucible(), RendererCrucible.resLoc));
|
||||||
|
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCrucibleFire.class, new RendererCrucibleFire());
|
||||||
|
MinecraftForgeClient.registerItemRenderer(Item.getItemFromBlock(InitBlocks.blockCrucibleFire), new RendererHoldingTileEntity(new ModelCrucibleFire(), RendererCrucibleFire.resLoc));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void postInit() {
|
public void postInit() {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package ellpeck.gemification.tile;
|
package ellpeck.gemification.tile;
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.registry.GameRegistry;
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.NetworkManager;
|
import net.minecraft.network.NetworkManager;
|
||||||
import net.minecraft.network.Packet;
|
import net.minecraft.network.Packet;
|
||||||
|
@ -19,4 +21,8 @@ public class TileEntityBase extends TileEntity{
|
||||||
this.readFromNBT(packet.func_148857_g());
|
this.readFromNBT(packet.func_148857_g());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void init(){
|
||||||
|
GameRegistry.registerTileEntity(TileEntityCrucible.class, Util.MOD_ID + "tileEntityCrucible");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityCrucibleFire.class, Util.MOD_ID + "tileEntityCrucibleFire");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,20 +2,14 @@ package ellpeck.gemification.tile;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
import ellpeck.gemification.GemType;
|
|
||||||
import ellpeck.gemification.Util;
|
|
||||||
import ellpeck.gemification.blocks.InitBlocks;
|
import ellpeck.gemification.blocks.InitBlocks;
|
||||||
import ellpeck.gemification.crafting.CrucibleCraftingManager;
|
import ellpeck.gemification.crafting.CrucibleCraftingManager;
|
||||||
import ellpeck.gemification.items.ItemGem;
|
import ellpeck.gemification.items.ItemGem;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import ellpeck.gemification.util.GemType;
|
||||||
|
import ellpeck.gemification.util.Util;
|
||||||
import net.minecraft.init.Items;
|
import net.minecraft.init.Items;
|
||||||
import net.minecraft.inventory.ISidedInventory;
|
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.nbt.NBTTagList;
|
|
||||||
import net.minecraft.network.NetworkManager;
|
|
||||||
import net.minecraft.network.Packet;
|
|
||||||
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
|
||||||
public class TileEntityCrucible extends TileEntityInventoryBase{
|
public class TileEntityCrucible extends TileEntityInventoryBase{
|
||||||
|
@ -32,8 +26,9 @@ public class TileEntityCrucible extends TileEntityInventoryBase{
|
||||||
public int currentFluidID;
|
public int currentFluidID;
|
||||||
public int currentProcessTime;
|
public int currentProcessTime;
|
||||||
public int processTimeNeeded;
|
public int processTimeNeeded;
|
||||||
|
public int burnTime;
|
||||||
|
public int burnTimeOfItem;
|
||||||
|
|
||||||
private boolean isCrafting = false;
|
|
||||||
public static ItemStack output;
|
public static ItemStack output;
|
||||||
|
|
||||||
public TileEntityCrucible(){
|
public TileEntityCrucible(){
|
||||||
|
@ -48,21 +43,33 @@ public class TileEntityCrucible extends TileEntityInventoryBase{
|
||||||
this.slots = new ItemStack[12];
|
this.slots = new ItemStack[12];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("static-access")
|
||||||
public void updateEntity(){
|
public void updateEntity(){
|
||||||
|
boolean isCraftingFlag = this.isCrafting();
|
||||||
if(!worldObj.isRemote){
|
if(!worldObj.isRemote){
|
||||||
|
if(!this.isCrafting()) this.output = CrucibleCraftingManager.instance.getCraftingResult(slots, 0, 8, currentFluid);
|
||||||
|
this.getBurnFromBelow();
|
||||||
this.craft();
|
this.craft();
|
||||||
this.addWaterByWaterSlot();
|
this.addWaterByWaterSlot();
|
||||||
this.colorGemWater();
|
this.colorGemWater();
|
||||||
this.currentFluidID = this.currentFluid.ID;
|
this.currentFluidID = this.currentFluid.ID;
|
||||||
}
|
}
|
||||||
|
if(isCraftingFlag != this.isCrafting()){
|
||||||
|
this.markDirty();
|
||||||
|
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isCrafting(){
|
||||||
|
return this.currentProcessTime > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("static-access")
|
@SuppressWarnings("static-access")
|
||||||
public void craft(){
|
public void craft(){
|
||||||
if(!this.isCrafting){
|
if(this.burnTime > 0){
|
||||||
this.output = CrucibleCraftingManager.instance.getCraftingResult(slots, 0, 8, currentFluid);
|
if (!this.isCrafting()){
|
||||||
if (output != null) {
|
if (output != null && (this.slots[slotOutput] == null || this.slots[slotOutput].isItemEqual(output))) {
|
||||||
this.processTimeNeeded = CrucibleCraftingManager.instance.getProcessTimeNeeded(output);
|
this.processTimeNeeded = this.currentProcessTime = CrucibleCraftingManager.instance.getProcessTimeNeeded(slots, 0, 8);
|
||||||
for (int i = 0; i <= 8; i++){
|
for (int i = 0; i <= 8; i++){
|
||||||
this.slots[i].stackSize--;
|
this.slots[i].stackSize--;
|
||||||
if (this.slots[i].stackSize == 0) {
|
if (this.slots[i].stackSize == 0) {
|
||||||
|
@ -70,21 +77,33 @@ public class TileEntityCrucible extends TileEntityInventoryBase{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.currentFluid = Util.fluidNone;
|
this.currentFluid = Util.fluidNone;
|
||||||
this.isCrafting = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(this.isCrafting){
|
if(this.isCrafting()){
|
||||||
this.currentProcessTime++;
|
this.currentProcessTime--;
|
||||||
if(this.currentProcessTime >= this.processTimeNeeded){
|
if (this.currentProcessTime <= 0){
|
||||||
if (this.slots[slotOutput] == null) this.slots[slotOutput] = output.copy();
|
if (this.slots[slotOutput] == null) this.slots[slotOutput] = output.copy();
|
||||||
else if(this.slots[slotOutput].getItem() == output.getItem()) this.slots[slotOutput].stackSize += output.stackSize;
|
else if (this.slots[slotOutput].getItem() == output.getItem())
|
||||||
|
this.slots[slotOutput].stackSize += output.stackSize;
|
||||||
this.output = null;
|
this.output = null;
|
||||||
this.currentProcessTime = 0;
|
this.currentProcessTime = 0;
|
||||||
this.processTimeNeeded = 0;
|
this.processTimeNeeded = 0;
|
||||||
this.isCrafting = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getBurnFromBelow(){
|
||||||
|
TileEntity tileDown = worldObj.getTileEntity(this.xCoord, this.yCoord - 1, this.zCoord);
|
||||||
|
if(tileDown instanceof TileEntityCrucibleFire){
|
||||||
|
this.burnTime = ((TileEntityCrucibleFire)tileDown).burnTime;
|
||||||
|
this.burnTimeOfItem = ((TileEntityCrucibleFire)tileDown).burnTimeOfItem;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
this.burnTime = 0;
|
||||||
|
this.burnTimeOfItem = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void colorGemWater(){
|
public void colorGemWater(){
|
||||||
ItemStack stack = this.slots[slotSmeltGem];
|
ItemStack stack = this.slots[slotSmeltGem];
|
||||||
|
@ -110,12 +129,27 @@ public class TileEntityCrucible extends TileEntityInventoryBase{
|
||||||
|
|
||||||
public void writeToNBT(NBTTagCompound compound){
|
public void writeToNBT(NBTTagCompound compound){
|
||||||
super.writeToNBT(compound);
|
super.writeToNBT(compound);
|
||||||
|
|
||||||
compound.setInteger("CurrentFluidID", this.currentFluidID);
|
compound.setInteger("CurrentFluidID", this.currentFluidID);
|
||||||
|
compound.setInteger("ProcessTime", this.currentProcessTime);
|
||||||
|
compound.setInteger("ProcessTimeNeeded", this.processTimeNeeded);
|
||||||
|
|
||||||
|
if(output != null) {
|
||||||
|
NBTTagCompound compoundOutput = new NBTTagCompound();
|
||||||
|
compoundOutput = output.writeToNBT(compoundOutput);
|
||||||
|
compound.setTag("Output", compoundOutput);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("static-access")
|
||||||
public void readFromNBT(NBTTagCompound compound){
|
public void readFromNBT(NBTTagCompound compound){
|
||||||
super.readFromNBT(compound);
|
super.readFromNBT(compound);
|
||||||
|
|
||||||
this.currentFluidID = compound.getInteger("CurrentFluidID");
|
this.currentFluidID = compound.getInteger("CurrentFluidID");
|
||||||
|
this.currentProcessTime = compound.getInteger("ProcessTime");
|
||||||
|
this.processTimeNeeded = compound.getInteger("ProcessTimeNeeded");
|
||||||
|
this.output = ItemStack.loadItemStackFromNBT(compound.getCompoundTag("Output"));
|
||||||
|
|
||||||
if(this.currentFluidID == Util.fluidWater.ID) this.currentFluid = Util.fluidWater;
|
if(this.currentFluidID == Util.fluidWater.ID) this.currentFluid = Util.fluidWater;
|
||||||
else if(this.currentFluidID == Util.fluidNone.ID) this.currentFluid = Util.fluidNone;
|
else if(this.currentFluidID == Util.fluidNone.ID) this.currentFluid = Util.fluidNone;
|
||||||
else this.currentFluid = Util.gemList.get(this.currentFluidID);
|
else this.currentFluid = Util.gemList.get(this.currentFluidID);
|
||||||
|
@ -123,6 +157,11 @@ public class TileEntityCrucible extends TileEntityInventoryBase{
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
@SideOnly(Side.CLIENT)
|
||||||
public int getCraftProcessScaled(int par1){
|
public int getCraftProcessScaled(int par1){
|
||||||
return this.currentProcessTime * par1 / this.processTimeNeeded;
|
return (this.processTimeNeeded-this.currentProcessTime) * par1 / this.processTimeNeeded;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public int getBurnTimeRemainingScaled(int i){
|
||||||
|
return this.burnTime * i / this.burnTimeOfItem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
package ellpeck.gemification.tile;
|
||||||
|
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import ellpeck.gemification.blocks.InitBlocks;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.tileentity.TileEntityFurnace;
|
||||||
|
|
||||||
|
public class TileEntityCrucibleFire extends TileEntityInventoryBase{
|
||||||
|
|
||||||
|
public int burnTime;
|
||||||
|
public int burnTimeOfItem;
|
||||||
|
|
||||||
|
public TileEntityCrucibleFire(){
|
||||||
|
this.slots = new ItemStack[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updateEntity(){
|
||||||
|
boolean isBurningFlag = this.isBurning();
|
||||||
|
if(!worldObj.isRemote){
|
||||||
|
this.burnFuel();
|
||||||
|
}
|
||||||
|
if(isBurningFlag != this.isBurning()){
|
||||||
|
this.markDirty();
|
||||||
|
worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void burnFuel(){
|
||||||
|
if(this.burnTime <= 0){
|
||||||
|
if (this.slots[0] != null) {
|
||||||
|
this.burnTimeOfItem = this.burnTime = TileEntityFurnace.getItemBurnTime(this.slots[0]);
|
||||||
|
this.slots[0].stackSize--;
|
||||||
|
if (this.slots[0].stackSize == 0){
|
||||||
|
this.slots[0] = slots[0].getItem().getContainerItem(slots[0]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(this.burnTime > 0){
|
||||||
|
this.burnTime--;
|
||||||
|
if(this.burnTime <= 0){
|
||||||
|
this.burnTimeOfItem = 0;
|
||||||
|
this.burnTime = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getInventoryName() {
|
||||||
|
return InitBlocks.blockCrucibleFire.getUnlocalizedName().substring(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeToNBT(NBTTagCompound compound){
|
||||||
|
super.writeToNBT(compound);
|
||||||
|
compound.setInteger("BurnTime", this.burnTime);
|
||||||
|
compound.setInteger("BurnTimeOfItem", this.burnTimeOfItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void readFromNBT(NBTTagCompound compound){
|
||||||
|
super.readFromNBT(compound);
|
||||||
|
this.burnTime = compound.getInteger("BurnTime");
|
||||||
|
this.burnTimeOfItem = compound.getInteger("BurnTimeOfItem");
|
||||||
|
}
|
||||||
|
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public int getBurnTimeRemainingScaled(int i){
|
||||||
|
return this.burnTime * i / this.burnTimeOfItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isBurning(){
|
||||||
|
return this.burnTime > 0;
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,7 +6,7 @@ import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.nbt.NBTTagList;
|
import net.minecraft.nbt.NBTTagList;
|
||||||
|
|
||||||
public class TileEntityInventoryBase extends TileEntityBase implements ISidedInventory{
|
public abstract class TileEntityInventoryBase extends TileEntityBase implements ISidedInventory{
|
||||||
|
|
||||||
public ItemStack slots[];
|
public ItemStack slots[];
|
||||||
|
|
||||||
|
@ -80,10 +80,6 @@ public class TileEntityInventoryBase extends TileEntityBase implements ISidedInv
|
||||||
this.slots[i] = stack;
|
this.slots[i] = stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getInventoryName() {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getSizeInventory() {
|
public int getSizeInventory() {
|
||||||
return slots.length;
|
return slots.length;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package ellpeck.gemification;
|
package ellpeck.gemification.util;
|
||||||
|
|
||||||
public class GemType {
|
public class GemType {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package ellpeck.gemification;
|
package ellpeck.gemification.util;
|
||||||
|
|
||||||
import net.minecraft.util.EnumChatFormatting;
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
import net.minecraft.util.StatCollector;
|
import net.minecraft.util.StatCollector;
|
||||||
|
@ -8,6 +8,10 @@ import java.util.ArrayList;
|
||||||
|
|
||||||
public class Util {
|
public class Util {
|
||||||
|
|
||||||
|
public static final String MOD_ID = "gemification";
|
||||||
|
public static final String NAME = "Gemification";
|
||||||
|
public static final String VERSION = "1.7.10-1.0.1";
|
||||||
|
|
||||||
public static ArrayList<GemType> gemList = new ArrayList<GemType>();
|
public static ArrayList<GemType> gemList = new ArrayList<GemType>();
|
||||||
|
|
||||||
public static final GemType fluidOnyx = new GemType(0, "Onyx", true);
|
public static final GemType fluidOnyx = new GemType(0, "Onyx", true);
|
||||||
|
@ -34,7 +38,6 @@ public class Util {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String shiftForInfo() {
|
public static String shiftForInfo() {
|
||||||
return (EnumChatFormatting.ITALIC + StatCollector.translateToLocal("tooltip.shiftForInfo.desc"));
|
return ((char)167+"2" + EnumChatFormatting.ITALIC + StatCollector.translateToLocal("tooltip.shiftForInfo.desc"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Loading…
Reference in a new issue