Jump to content

dude22072

Members
  • Posts

    185
  • Joined

  • Last visited

Everything posted by dude22072

  1. public void onArmorTick(World world, EntityPlayer player, ItemStack armor) { } Maybe that will help you in someway. I'm unsure about this kind of situation. It goes in your ItemArmor class.
  2. Techne has an option to load the texture file. You should load it in Techne and adjust the offsets to the correct spot.
  3. So I tried make a 3 input furnace. When it smelts things it only looks at the first item in the crafting recipe, the other two slots can be anything. I don't know how to fix this as I don't know how tile entities work. FYI: the inputs are slot 0, 3, and 4. Output is slot 1. I haven't got around to fixing this yet. [spoiler=FermenterRecipes] package dudesmods.fermentation.tileentity; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import dudesmods.fermentation.FermentationMod; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemFishFood; import net.minecraft.item.ItemStack; public class FermenterRecipes { private static final FermenterRecipes smeltingBase = new FermenterRecipes(); /** The list of smelting results. */ private Map smeltingList = new HashMap(); private Map experienceList = new HashMap(); private static final String __OBFID = "CL_00000085"; /** * Used to call methods addSmelting and getSmeltingResult. */ public static FermenterRecipes smelting() { return smeltingBase; } /** * Contains the recipes */ private FermenterRecipes() { this.addItemStackSmelting(new ItemStack(FermentationMod.vodka, 1), 0.5F, new Object[]{Items.potato, Items.potionitem, FermentationMod.yeastItem}); this.addItemStackSmelting(new ItemStack(FermentationMod.beer, 1), 0.5F, new Object[]{Blocks.reeds, Items.potionitem, FermentationMod.yeastItem}); } public void addBlockSmelting(Block block, ItemStack itemstack, float XP) { this.addItemSmelting(Item.getItemFromBlock(block), itemstack, XP); } public void addItemSmelting(Item item, ItemStack itemstack, float XP) { this.addItemStackSmelting(itemstack, XP, new ItemStack(item, 1, 32767)); } public void addItemStackSmelting(ItemStack itemstackOUT, float XP, Object ... itemstackInArray) { this.smeltingList.put(itemstackInArray, itemstackOUT); this.experienceList.put(itemstackOUT, Float.valueOf(XP)); } /** * Returns the smelting result of an item. */ public ItemStack getSmeltingResult(Object ... input1) { Iterator iterator = this.smeltingList.entrySet().iterator(); Entry entry; do { if (!iterator.hasNext()) { return null; } entry = (Entry)iterator.next(); } while (!this.func_151397_a()); return (ItemStack)entry.getValue(); } private boolean func_151397_a() { return true; } public Map getSmeltingList() { return this.smeltingList; } public float func_151398_b(ItemStack p_151398_1_) { float ret = p_151398_1_.getItem().getSmeltingExperience(p_151398_1_); if (ret != -1) return ret; Iterator iterator = this.experienceList.entrySet().iterator(); Entry entry; do { if (!iterator.hasNext()) { return 0.0F; } entry = (Entry)iterator.next(); } while (!this.func_151397_a()); return ((Float)entry.getValue()).floatValue(); } } [spoiler=TileEntityFermenter] package dudesmods.fermentation.tileentity; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import cpw.mods.fml.common.registry.GameRegistry; import dudesmods.fermentation.block.Fermenter; public class TileEntityFermenter extends TileEntity implements ISidedInventory { private String localizedName; private static final int[] slots_top = new int[]{0}; private static final int[] slots_bottom = new int[]{2, 1}; private static final int[] slots_side = new int[]{1}; private ItemStack[] slots = new ItemStack [5]; public int furnaceSpeed = 150; public int burnTime; public int currentItemBurnTime; public int cookTime; public void setGuiDisplayName(String displayName) { this.localizedName = displayName; } public String getInventoryName() { return this.hasCustomInventoryName() ? this.localizedName : "container.fermenter"; } public boolean hasCustomInventoryName() { return this.localizedName != null && this.localizedName.length() > 0; } public int getSizeInventory() { return this.slots.length; } @Override public ItemStack getStackInSlot(int var1) { return this.slots[var1]; } @Override public ItemStack decrStackSize(int var1, int var2) { if(this.slots[var1] != null) { ItemStack itemstack; if(this.slots[var1].stackSize <= var2 ){ itemstack = this.slots[var1]; this.slots[var1] = null; return itemstack; }else{ itemstack = this.slots[var1].splitStack(var2); if(this.slots[var1].stackSize == 0){ this.slots[var1] = null; } return itemstack; } }else { return null; } } @Override public ItemStack getStackInSlotOnClosing(int var1) { if(this.slots[var1] != null) { ItemStack itemstack = this.slots[var1]; this.slots[var1] = null; return itemstack; } return null; } @Override public void setInventorySlotContents(int var1, ItemStack var2) { this.slots[var1] = var2; if(var2 != null && var2.stackSize > this.getInventoryStackLimit()) { var2.stackSize = this.getInventoryStackLimit(); } } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer var1) { return this.worldObj.getTileEntity(xCoord, yCoord, zCoord) != this ? false : var1.getDistanceSq((double)xCoord +0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64.0D; } @Override public void openInventory() { } @Override public void closeInventory() { } @Override public boolean isItemValidForSlot(int var1, ItemStack var2) { return var1 == 2 ? false : (var1 == 1 ? isItemFuel(var2) : true); } public static boolean isItemFuel(ItemStack var1) { return getItemBurnTime(var1) > 0; } private static int getItemBurnTime(ItemStack var1) { if(var1 == null){ return 0; }else{ Item item = var1.getItem(); if(item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) { Block block = Block.getBlockFromItem(item); if(block == Blocks.sapling) return 100; if(block == Blocks.coal_block) return 14400; } if(item == Items.coal) return 1600; if(item == Items.stick) return 100; if(item == Items.lava_bucket) return 20000; if(item == Items.blaze_rod) return 2400; } return GameRegistry.getFuelValue(var1); } public void updateEntity() { boolean flag = this.burnTime > 0; boolean flag1 = false; if(this.isBurning()) { this.burnTime--; } if(!this.worldObj.isRemote) { if(this.burnTime == 0 && this.canSmelt()) { this.currentItemBurnTime = this.burnTime = getItemBurnTime(this.slots[1]); if(this.isBurning()){ flag1 = true; if(this.slots[1] != null) { this.slots[1].stackSize--; if(this.slots[1].stackSize == 0) { this.slots[1] = this.slots[1].getItem().getContainerItem(this.slots[1]); } } } } } if(this.isBurning() && this.canSmelt()) { this.cookTime++; if(this.cookTime == this.furnaceSpeed) { this.cookTime = 0; this.smeltItem(); flag1 = true; }else{ } if(flag != this.isBurning()) { flag1 = true; Fermenter.updateFermenterBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } } if(this.slots[0] == null) { this.cookTime = 0; } if(flag1) { this.markDirty(); } } public boolean canSmelt() { if(this.slots[0] == null || this.slots[3] == null || this.slots[4] == null) { return false; }else{ ItemStack itemstack = FermenterRecipes.smelting().getSmeltingResult(this.slots[0], this.slots[3], this.slots[4]); if(itemstack == null) {return false;} if(this.slots[2] == null) {return true;} if(!this.slots[2].isItemEqual(itemstack)) {return false;} int result = this.slots[2].stackSize + itemstack.stackSize; return (result <= getInventoryStackLimit() && result <= this.slots[2].getMaxStackSize()); } } public void smeltItem() { if(this.canSmelt() == false) { } if (this.canSmelt() == true) { ItemStack itemstack = FermenterRecipes.smelting().getSmeltingResult(new Object[]{this.slots[0], this.slots[3], this.slots[4]}); System.out.println(itemstack); if(this.slots[2] == null) { this.slots[2] = itemstack.copy(); }else if(this.slots[2].getItem() == itemstack.getItem()) { this.slots[2].stackSize += itemstack.stackSize; } this.slots[0].stackSize--;this.slots[3].stackSize--;this.slots[4].stackSize--; if (this.slots[0].stackSize <= 0) { this.slots[0] = null; } if (this.slots[3].stackSize <= 0) { this.slots[3] = null; } if (this.slots[4].stackSize <= 0) { this.slots[4] = null; } } } public boolean isBurning() { return this.burnTime > 0; } @Override public int[] getAccessibleSlotsFromSide(int var1) { return var1 == 0 ? slots_bottom : (var1 == 1 ? slots_top : slots_side); } @Override public boolean canInsertItem(int var1, ItemStack var2, int var3) { return this.isItemValidForSlot(var1, var2); } @Override public boolean canExtractItem(int var1, ItemStack var2, int var3) { return var3 != 0 || var1 != 1 || var2.getItem() == Items.bucket; } public int getBurnTimeRemainingScaled(int i) { if(this.currentItemBurnTime == 0) { this.currentItemBurnTime = this.furnaceSpeed; } return this.burnTime * i / this.currentItemBurnTime; } public int getCookProgressScaled(int i) { return this.cookTime * i / this.furnaceSpeed; } public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("Items", 10); this.slots = new ItemStack[this.getSizeInventory()]; for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound compound = (NBTTagCompound) list.getCompoundTagAt(i); byte b = compound.getByte("Slot"); if(b >= 0 && b < this.slots.length) { this.slots[b] = ItemStack.loadItemStackFromNBT(compound); } } this.burnTime = (int)nbt.getShort("BurnTime"); this.cookTime = (int)nbt.getShort("CookTime"); this.currentItemBurnTime = (int)nbt.getShort("CurrentBurnTime"); if(nbt.hasKey("CustomName")) { this.localizedName = nbt.getString("CustomName"); } } public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setShort("BurnTime", (short)this.burnTime); nbt.setShort("CookTime", (short)this.cookTime); nbt.setShort("CurrentBurnTime", (short)this.currentItemBurnTime); NBTTagList list = new NBTTagList(); for(int i = 0; i< this.slots.length; i++) { if(this.slots[i] != null) { NBTTagCompound compound = new NBTTagCompound(); compound.setByte("Slot", (byte)i); this.slots[i].writeToNBT(compound); list.appendTag(compound); } } nbt.setTag("Items", list); if(this.hasCustomInventoryName()) { nbt.setString("CustomName", this.localizedName); } } } [spoiler=ContainerFermenter] package dudesmods.fermentation.container; 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; import net.minecraft.inventory.SlotFurnace; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.tileentity.TileEntityFurnace; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import dudesmods.fermentation.tileentity.TileEntityFermenter; public class ContainerFermenter extends Container { private TileEntityFermenter fermenter; public int lastBurnTime; public int lastCurrentItemBurnTime; public int lastCookTime; public ContainerFermenter(InventoryPlayer inventory, TileEntityFermenter tileentity) { this.fermenter = tileentity; this.addSlotToContainer(new Slot(tileentity, 0, 56, 17)); this.addSlotToContainer(new Slot(tileentity, 1, 56, 53)); this.addSlotToContainer(new SlotFurnace(inventory.player, tileentity, 2, 116, 35)); this.addSlotToContainer(new Slot(tileentity, 3, 37, 17)); this.addSlotToContainer(new Slot(tileentity, 4, 75, 17)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++){ this.addSlotToContainer(new Slot(inventory, j + i*9 + 9, 8 + j*18, 84 + i * 18)); } } for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 142)); } } public void addCrafingToCrafters (ICrafting icrafting) { super.addCraftingToCrafters(icrafting); icrafting.sendProgressBarUpdate(this, 0, this.fermenter.cookTime); icrafting.sendProgressBarUpdate(this, 1, this.fermenter.burnTime); icrafting.sendProgressBarUpdate(this, 2, this.fermenter.currentItemBurnTime); } public void detectAndSendChanges() { super.detectAndSendChanges(); for(int i = 0; i < this.crafters.size(); i++) { ICrafting icrafting = (ICrafting) this.crafters.get(i); if(this.lastCookTime != this.fermenter.cookTime) { icrafting.sendProgressBarUpdate(this, 0, this.fermenter.cookTime); } if(this.lastBurnTime != this.fermenter.burnTime) { icrafting.sendProgressBarUpdate(this, 1, this.fermenter.burnTime); } if(this.lastCurrentItemBurnTime != this.fermenter.currentItemBurnTime) { icrafting.sendProgressBarUpdate(this, 2, this.fermenter.currentItemBurnTime); } } this.lastCookTime = this.fermenter.cookTime; this.lastBurnTime = this.fermenter.burnTime; this.lastCurrentItemBurnTime = this.fermenter.currentItemBurnTime; } @SideOnly(Side.CLIENT) public void updateProgressBar(int slot, int newValue) { if (slot == 0) { this.fermenter.cookTime = newValue; } if (slot == 1) { this.fermenter.burnTime = newValue; } if (slot == 2) { this.fermenter.currentItemBurnTime = newValue; } } public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2) { ItemStack itemstack = null; Slot slot = (Slot)this.inventorySlots.get(par2); if (slot != null && slot.getHasStack()) { ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); if (par2 == 2) { if (!this.mergeItemStack(itemstack1, 3, 39, true)) { return null; } slot.onSlotChange(itemstack1, itemstack); } else if (par2 != 1 && par2 != 0) { if (FurnaceRecipes.smelting().getSmeltingResult(itemstack1) != null) { if (!this.mergeItemStack(itemstack1, 0, 1, false)) { return null; } } else if (TileEntityFurnace.isItemFuel(itemstack1)) { if (!this.mergeItemStack(itemstack1, 1, 2, false)) { return null; } } else if (par2 >= 3 && par2 < 30) { if (!this.mergeItemStack(itemstack1, 30, 39, false)) { return null; } } else if (par2 >= 30 && par2 < 39 && !this.mergeItemStack(itemstack1, 3, 30, false)) { return null; } } else if (!this.mergeItemStack(itemstack1, 3, 39, false)) { return null; } if (itemstack1.stackSize == 0) { slot.putStack((ItemStack)null); } else { slot.onSlotChanged(); } if (itemstack1.stackSize == itemstack.stackSize) { return null; } slot.onPickupFromSlot(par1EntityPlayer, itemstack1); } return itemstack; } @Override public boolean canInteractWith(EntityPlayer var1) { return true; } }
  4. Do your items get consumed? And are smelted Items outputed? Or is only The progreesbar Not working? Maybe i am Wrong, but it looks like you never sync client/server. Can't Rallye See it on my Smartphone display. Fuel is consumed and nothing else
  5. I dont know much about core mods but the crash says Caused by: java.lang.NoClassDefFoundError: net/minecraft/client/Minecraft so maybe change if (arg0.equals("atv") | arg0.contains("net.minecraft.client.Minecraft")) { to just if (arg0.equals("atv")) { because due to obfustication "net.minecraft.client.Minecraft" wouldn't be called this?
  6. try changing this.worldObj.setBlock(j, k, l, Block.tallGrass.blockID); to this.worldObj.setBlock(j, k, l, Block.tallGrass.blockID, 1, 0);
  7. I followed a tutorial on making a custom furnace. Everything seems to be fine except the items don't actually smelt. the flames go down and it consumes fuel put the progress bar never moves. Block class (Fermenter): package dudesmods.fermentation.block; import java.util.Random; 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.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.World; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import dudesmods.fermentation.FermentationMod; import dudesmods.fermentation.tileentity.TileEntityFermenter; public class Fermenter extends BlockContainer { private static boolean isActive; @SideOnly(Side.CLIENT) private IIcon iconFront; @SideOnly(Side.CLIENT) private IIcon iconTop; private static boolean keepInventory; private Random rand = new Random(); public Fermenter(boolean par1) { super(Material.iron); setCreativeTab(FermentationMod.tabFermentMod); setHardness(3.5F); this.isActive = par1; } @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister iconRegister) { this.blockIcon = iconRegister.registerIcon("fermentmod:fermenterSide"); this.iconFront = iconRegister.registerIcon("fermentmod:" + (this.isActive ? "fermenterFrontOn" : "fermenterFrontOff")); this.iconTop = iconRegister.registerIcon("fermentmod:fermenterTop"); } @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int metadata) { return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : (side != metadata ? this.blockIcon : this.iconFront)); } public Item getItemDropped(int i, Random random, int j) { return Item.getItemFromBlock(FermentationMod.blockFermenterIdle); } public void onBlockAdded(World world, int x, int y, int z) { super.onBlockAdded(world, x, y, z); this.setDefaultDirection(world, x, y, z); } private void setDefaultDirection(World world, int x, int y, int z) { if(!world.isRemote) { Block b1 = world.getBlock(x, y, z - 1); Block b2 = world.getBlock(x, y, z + 1); Block b3 = world.getBlock(x - 1, y, z); Block b4 = world.getBlock(x + 1, y, z); byte b0 = 3; if(b1.func_149730_j() && !b2.func_149730_j()) { b0 = 3; } if(b2.func_149730_j() && !b1.func_149730_j()) { b0 = 2; } if(b3.func_149730_j() && !b4.func_149730_j()) { b0 = 5; } if(b4.func_149730_j() && !b3.func_149730_j()) { b0 = 4; } world.setBlockMetadataWithNotify(x, y, z, b0, 2); } } public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if(!world.isRemote) { FMLNetworkHandler.openGui(player, FermentationMod.instance, FermentationMod.guiFermenter, world, x, y, z); } return true; } @Override public TileEntity createNewTileEntity(World world, int i) { return new TileEntityFermenter(); } @SideOnly(Side.CLIENT) public void randomDisplayTick(World world, int x, int y, int z, Random random) { if(this.isActive) { int direction = world.getBlockMetadata(x, y, z); float x1 = (float)x + 0.5F; float y1 = (float)y + random.nextFloat(); float z1 = (float)z + 0.5F; float f = 0.52F; float f1 = random.nextFloat() + 0.6F - 0.3F; if(direction == 4) { world.spawnParticle("smoke", (double)x1 - f, (double)y1 , (double)z1 + f1, 0D, 0D, 0D); world.spawnParticle("flame", (double)x1 - f, (double)y1 , (double)z1 + f1, 0D, 0D, 0D); } if(direction == 5) { world.spawnParticle("smoke", (double)x1 + f, (double)y1 , (double)z1 + f1, 0D, 0D, 0D); world.spawnParticle("flame", (double)x1 + f, (double)y1 , (double)z1 + f1, 0D, 0D, 0D); } if(direction == 2) { world.spawnParticle("smoke", (double)x1 + f1, (double)y1 , (double)z1 - f, 0D, 0D, 0D); world.spawnParticle("flame", (double)x1 + f1, (double)y1 , (double)z1 - f, 0D, 0D, 0D); } if(direction == 3) { world.spawnParticle("smoke", (double)x1 + f1, (double)y1 , (double)z1 + f, 0D, 0D, 0D); world.spawnParticle("flame", (double)x1 + f1, (double)y1 , (double)z1 + f, 0D, 0D, 0D); } } } public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityplayer, ItemStack itemstack) { int l = MathHelper.floor_double((double)(entityplayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3; if(l == 0) { world.setBlockMetadataWithNotify(x, y, z, 2, 2); } if(l == 1) { world.setBlockMetadataWithNotify(x, y, z, 5, 2); } if(l == 2) { world.setBlockMetadataWithNotify(x, y, z, 3, 2); } if(l == 3) { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } if(itemstack.hasDisplayName()) { ((TileEntityFermenter)world.getTileEntity(x, y, z)).setGuiDisplayName(itemstack.getDisplayName()); } } public static void updateFermenterBlockState(boolean active, World worldObj, int xCoord, int yCoord, int zCoord) { int i = worldObj.getBlockMetadata(xCoord, yCoord, zCoord); TileEntity tileentity = worldObj.getTileEntity(xCoord, yCoord, zCoord); keepInventory = true; if(active) { worldObj.setBlock(xCoord, yCoord, zCoord, FermentationMod.blockFermenterActive); }else{ worldObj.setBlock(xCoord, yCoord, zCoord, FermentationMod.blockFermenterIdle); } keepInventory = false; worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, i, 2); if(tileentity != null) { tileentity.validate(); worldObj.setTileEntity(xCoord, yCoord, zCoord, tileentity); } } public void breakBlock(World world, int x, int y, int z, Block oldblock, int oldMetadata) { if(!keepInventory) { TileEntityFermenter tileentity = (TileEntityFermenter) world.getTileEntity(x, y, z); if(tileentity != null) { for(int i = 0; i < tileentity.getSizeInventory(); i++) { ItemStack itemstack = tileentity.getStackInSlot(i); if(itemstack != null) { float f = this.rand.nextFloat() * 0.8F + 0.1F; float f1 = this.rand.nextFloat() * 0.8F + 0.1F; float f2 = this.rand.nextFloat() * 0.8F + 0.1F; while(itemstack.stackSize > 0) { int j = this.rand.nextInt(21) + 10; if(j > itemstack.stackSize) { j = itemstack.stackSize; } itemstack.stackSize -= j; EntityItem item = new EntityItem(world, (double)((float)x + f), (double)((float)y + f1), (double)((float)z + f2), new ItemStack(itemstack.getItem(), j, itemstack.getItemDamage())); if(itemstack.hasTagCompound()) { item.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); } world.spawnEntityInWorld(item); } } } world.func_147453_f(x, y, z, oldblock); } } super.breakBlock(world, x, y, z, oldblock, oldMetadata); } public Item getItem(World world, int x, int y, int z) { return Item.getItemFromBlock(FermentationMod.blockFermenterIdle); } } Container Class(ContainerFermenter): package dudesmods.fermentation.container; 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; import net.minecraft.inventory.SlotFurnace; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.tileentity.TileEntityFurnace; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import dudesmods.fermentation.tileentity.TileEntityFermenter; public class ContainerFermenter extends Container { private TileEntityFermenter fermenter; public int lastBurnTime; public int lastCurrentItemBurnTime; public int lastCookTime; public ContainerFermenter(InventoryPlayer inventory, TileEntityFermenter tileentity) { this.fermenter = tileentity; this.addSlotToContainer(new Slot(tileentity, 0, 56, 17)); this.addSlotToContainer(new Slot(tileentity, 1, 56, 53)); this.addSlotToContainer(new SlotFurnace(inventory.player, tileentity, 2, 116, 35)); for(int i = 0; i < 3; i++) { for(int j = 0; j < 9; j++){ this.addSlotToContainer(new Slot(inventory, j + i*9 + 9, 8 + j*18, 84 + i * 18)); } } for(int i = 0; i < 9; i++) { this.addSlotToContainer(new Slot(inventory, i, 8 + i * 18, 142)); } } public void addCrafingToCrafters (ICrafting icrafting) { super.addCraftingToCrafters(icrafting); icrafting.sendProgressBarUpdate(this, 0, this.fermenter.cookTime); icrafting.sendProgressBarUpdate(this, 1, this.fermenter.burnTime); icrafting.sendProgressBarUpdate(this, 2, this.fermenter.currentItemBurnTime); } public void detectAndSendChanges() { super.detectAndSendChanges(); for(int i = 0; i < this.crafters.size(); i++) { ICrafting icrafting = (ICrafting) this.crafters.get(i); if(this.lastCookTime != this.fermenter.cookTime) { icrafting.sendProgressBarUpdate(this, 0, this.fermenter.cookTime); } if(this.lastBurnTime != this.fermenter.burnTime) { icrafting.sendProgressBarUpdate(this, 1, this.fermenter.burnTime); } if(this.lastCurrentItemBurnTime != this.fermenter.currentItemBurnTime) { icrafting.sendProgressBarUpdate(this, 2, this.fermenter.currentItemBurnTime); } } this.lastCookTime = this.fermenter.cookTime; this.lastBurnTime = this.fermenter.burnTime; this.lastCurrentItemBurnTime = this.fermenter.currentItemBurnTime; } @SideOnly(Side.CLIENT) public void updateProgressBar(int slot, int newValue) { if (slot == 0) { this.fermenter.cookTime = newValue; } if (slot == 1) { this.fermenter.burnTime = newValue; } if (slot == 2) { this.fermenter.currentItemBurnTime = newValue; } } public ItemStack transferStackInSlot(EntityPlayer par1EntityPlayer, int par2) { ItemStack itemstack = null; Slot slot = (Slot)this.inventorySlots.get(par2); if (slot != null && slot.getHasStack()) { ItemStack itemstack1 = slot.getStack(); itemstack = itemstack1.copy(); if (par2 == 2) { if (!this.mergeItemStack(itemstack1, 3, 39, true)) { return null; } slot.onSlotChange(itemstack1, itemstack); } else if (par2 != 1 && par2 != 0) { if (FurnaceRecipes.smelting().getSmeltingResult(itemstack1) != null) { if (!this.mergeItemStack(itemstack1, 0, 1, false)) { return null; } } else if (TileEntityFurnace.isItemFuel(itemstack1)) { if (!this.mergeItemStack(itemstack1, 1, 2, false)) { return null; } } else if (par2 >= 3 && par2 < 30) { if (!this.mergeItemStack(itemstack1, 30, 39, false)) { return null; } } else if (par2 >= 30 && par2 < 39 && !this.mergeItemStack(itemstack1, 3, 30, false)) { return null; } } else if (!this.mergeItemStack(itemstack1, 3, 39, false)) { return null; } if (itemstack1.stackSize == 0) { slot.putStack((ItemStack)null); } else { slot.onSlotChanged(); } if (itemstack1.stackSize == itemstack.stackSize) { return null; } slot.onPickupFromSlot(par1EntityPlayer, itemstack1); } return itemstack; } @Override public boolean canInteractWith(EntityPlayer var1) { return true; } } Tile Entity Class (TileEntityFermenter): package dudesmods.fermentation.tileentity; import net.minecraft.block.Block; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import cpw.mods.fml.common.registry.GameRegistry; import dudesmods.fermentation.block.Fermenter; public class TileEntityFermenter extends TileEntity implements ISidedInventory { private String localizedName; private static final int[] slots_top = new int[]{0}; private static final int[] slots_bottom = new int[]{2, 1}; private static final int[] slots_side = new int[]{1}; private ItemStack[] slots = new ItemStack [3]; public int furnaceSpeed = 200; public int burnTime; public int currentItemBurnTime; public int cookTime; public void setGuiDisplayName(String displayName) { this.localizedName = displayName; } public String getInventoryName() { return this.hasCustomInventoryName() ? this.localizedName : "container.fermenter"; } public boolean hasCustomInventoryName() { return this.localizedName != null && this.localizedName.length() > 0; } public int getSizeInventory() { return this.slots.length; } @Override public ItemStack getStackInSlot(int var1) { return this.slots[var1]; } @Override public ItemStack decrStackSize(int var1, int var2) { if(this.slots[var1] != null) { ItemStack itemstack; if(this.slots[var1].stackSize <= var2 ){ itemstack = this.slots[var1]; this.slots[var1] = null; return itemstack; }else{ itemstack = this.slots[var1].splitStack(var2); if(this.slots[var1].stackSize == 0){ this.slots[var1] = null; } } } return null; } @Override public ItemStack getStackInSlotOnClosing(int var1) { if(this.slots[var1] != null) { ItemStack itemstack = this.slots[var1]; this.slots[var1] = null; return itemstack; } return null; } @Override public void setInventorySlotContents(int var1, ItemStack var2) { this.slots[var1] = var2; if(var2 != null && var2.stackSize > this.getInventoryStackLimit()) { var2.stackSize = this.getInventoryStackLimit(); } } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer var1) { return this.worldObj.getTileEntity(xCoord, yCoord, zCoord) != this ? false : var1.getDistanceSq((double)xCoord +0.5D, (double)yCoord + 0.5D, (double)zCoord + 0.5D) <= 64.0D; } @Override public void openInventory() { } @Override public void closeInventory() { } @Override public boolean isItemValidForSlot(int var1, ItemStack var2) { return var1 == 2 ? false : (var1 == 1 ? isItemFuel(var2) : true); } public static boolean isItemFuel(ItemStack var1) { return getItemBurnTime(var1) > 0; } private static int getItemBurnTime(ItemStack var1) { if(var1 == null){ return 0; }else{ Item item = var1.getItem(); if(item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air) { Block block = Block.getBlockFromItem(item); if(block == Blocks.sapling) return 100; if(block == Blocks.coal_block) return 14400; } if(item == Items.coal) return 1600; if(item == Items.stick) return 100; if(item == Items.lava_bucket) return 20000; if(item == Items.blaze_rod) return 2400; } return GameRegistry.getFuelValue(var1); } public void updateEntity() { boolean flag = this.burnTime > 0; boolean flag1 = false; if(this.isBurning()) { this.burnTime--; } if(!this.worldObj.isRemote) { if(this.burnTime == 0 && this.canSmelt()) { this.currentItemBurnTime = this.burnTime = getItemBurnTime(this.slots[1]); if(this.isBurning()){ flag1 = true; if(this.slots[1] != null) { this.slots[1].stackSize--; if(this.slots[1].stackSize == 0) { this.slots[1] = this.slots[1].getItem().getContainerItem(this.slots[1]); } } } } } if(this.isBurning() && this.canSmelt()) { this.cookTime++; if(this.cookTime == this.furnaceSpeed) { this.cookTime = 0; this.smeltItem(); flag1 = true; }else{ this.cookTime = 0; } if(flag != this.isBurning()) { flag1 = true; Fermenter.updateFermenterBlockState(this.burnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } } if(flag1) { this.markDirty(); } } public boolean canSmelt() { if(this.slots[0] == null) { return false; }else{ ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); if(itemstack == null) return false; if(this.slots[2] == null) return true; if(!this.slots[2].isItemEqual(itemstack)) return false; int result = this.slots[2].stackSize + itemstack.stackSize; return (result <= getInventoryStackLimit() && result <= this.slots[2].getMaxStackSize()); } } public void smeltItem() { if (this.canSmelt()) { ItemStack itemstack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[0]); if(this.slots[2] == null) { this.slots[2] = itemstack.copy(); }else if(this.slots[2].getItem() == itemstack.getItem()) { this.slots[2].stackSize += itemstack.stackSize; } this.slots[0].stackSize--; if (this.slots[0].stackSize <= 0) { this.slots[0] = null; } } } public boolean isBurning() { return this.burnTime > 0; } @Override public int[] getAccessibleSlotsFromSide(int var1) { return var1 == 0 ? slots_bottom : (var1 == 1 ? slots_top : slots_side); } @Override public boolean canInsertItem(int var1, ItemStack var2, int var3) { return this.isItemValidForSlot(var1, var2); } @Override public boolean canExtractItem(int var1, ItemStack var2, int var3) { return var3 != 0 || var1 != 1 || var2.getItem() == Items.bucket; } public int getBurnTimeRemainingScaled(int i) { if(this.currentItemBurnTime == 0) { this.currentItemBurnTime = this.furnaceSpeed; } return this.burnTime * i / this.currentItemBurnTime; } public int getCookProgressScaled(int i) { return this.cookTime * i / this.furnaceSpeed; } public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("Items", 10); this.slots = new ItemStack[this.getSizeInventory()]; for(int i = 0; i < list.tagCount(); i++) { NBTTagCompound compound = (NBTTagCompound) list.getCompoundTagAt(i); byte b = compound.getByte("Slot"); if(b >= 0 && b < this.slots.length) { this.slots[b] = ItemStack.loadItemStackFromNBT(compound); } } this.burnTime = (int)nbt.getShort("BurnTime"); this.cookTime = (int)nbt.getShort("CookTime"); this.currentItemBurnTime = (int)nbt.getShort("CurrentBurnTime"); if(nbt.hasKey("CustomName")) { this.localizedName = nbt.getString("CustomName"); } } public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setShort("BurnTime", (short)this.burnTime); nbt.setShort("CookTime", (short)this.cookTime); nbt.setShort("CurrentBurnTime", (short)this.currentItemBurnTime); NBTTagList list = new NBTTagList(); for(int i = 0; i< this.slots.length; i++) { if(this.slots[i] != null) { NBTTagCompound compound = new NBTTagCompound(); compound.setByte("Slot", (byte)i); this.slots[i].writeToNBT(compound); list.appendTag(compound); } } nbt.setTag("Items", list); if(this.hasCustomInventoryName()) { nbt.setString("CustomName", this.localizedName); } } } Gui class (GuiFermenter) package dudesmods.fermentation.gui; import org.lwjgl.opengl.GL11; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; import dudesmods.fermentation.container.ContainerFermenter; import dudesmods.fermentation.tileentity.TileEntityFermenter; public class GuiFermenter extends GuiContainer { public static final ResourceLocation bground = new ResourceLocation("fermentmod", "textures/gui/GuiFermenter.png"); public TileEntityFermenter fermenter; public GuiFermenter(InventoryPlayer inventoryPlayer, TileEntityFermenter entity) { super(new ContainerFermenter(inventoryPlayer, entity)); this.fermenter = entity; this.xSize = 176; this.ySize = 166; } public void drawGuiContainerForegroundLayer(int par1, int par2) { String name = this.fermenter.hasCustomInventoryName() ? this.fermenter.getInventoryName() : I18n.format(this.fermenter.getInventoryName(), new Object[0]); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 4210752); } @Override protected void drawGuiContainerBackgroundLayer(float var1, int var2, int var3) { guiDraw(bground); if(this.fermenter.isBurning()) { int k = this.fermenter.getBurnTimeRemainingScaled(12); int j = 40 - k; this.drawTexturedModalRect(guiLeft + 56, guiTop + 36 + 12 - k, 176, 12 - k, 14, k + 2); } int k = this.fermenter.getCookProgressScaled(24); this.drawTexturedModalRect(guiLeft + 79, guiTop + 34, 176, 14, k + 1, 16); } protected void guiDraw(ResourceLocation var1) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(var1); this.drawTexturedModalRect(guiLeft, guiTop, 0, 0, this.xSize, this.ySize); } }
  8. Final code ended up being: GameRegistry.addRecipe(new ItemStack(boomerang_magical, 1), new Object[]{"MB ", 'B', boomerang, 'M', new ItemStack(magic_powder, 1, OreDictionary.WILDCARD_VALUE)});
  9. Back in 1.6.4 i had this code: package dudesmods.lozmod2.proxy; import java.util.EnumSet; import javax.activation.CommandMap; import net.minecraft.client.Minecraft; import net.minecraft.command.CommandBase; import net.minecraft.command.CommandHandler; import net.minecraft.command.CommandServerOp; import net.minecraft.command.ICommandSender; import net.minecraft.command.ServerCommand; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.server.MinecraftServer; import net.minecraft.server.integrated.IntegratedServer; import net.minecraft.world.WorldSettings; import net.minecraftforge.event.CommandEvent; import cpw.mods.fml.common.ITickHandler; import cpw.mods.fml.common.TickType; import dudesmods.lozmod2.LOZmod; import dudesmods.lozmod2.LOZmodTCAPI; public class CommonTickHandler implements ITickHandler { public void onPlayerTick(EntityPlayer player) { if(player.getCurrentItemOrArmor(0) != null && player.getHealth() < 19) { ItemStack hand = player.getCurrentItemOrArmor(0); if(hand.getItem() == LOZmod.healingStone && hand.getItemDamage() > 0 && hand.getItemDamage() < 500){ hand.damageItem(1, player); player.heal(2.0F); } } } @Override public void tickStart(EnumSet<TickType> type, Object... tickData) { if(type.equals(EnumSet.of(TickType.PLAYER))){ onPlayerTick((EntityPlayer) tickData[0]); } } @Override public void tickEnd(EnumSet<TickType> type, Object... tickData) { } @Override public EnumSet<TickType> ticks() { return EnumSet.of(TickType.PLAYER, TickType.SERVER); } @Override public String getLabel() { return null; } } What would the replacement for this be in 1.7.2???
  10. I have custom villagers and back in 1.6 you had to add new houses to get them to spawn. Do I still have to add new houses to get them to spawn? If I do what do I use as 1.6 code no longer works.
  11. I don't understand what you mean by this. never used the OreDictionary before.
  12. is the item ID already in use by something else?
  13. When i craft with a damaged item it doesn't output anything GameRegistry.addRecipe(new ItemStack(boomerang_magical, 1), new Object[]{"MB ", 'B', boomerang, 'M', magic_powder}); I don't know why it isn't working
  14. So can anyone help me with my problem?
  15. FMLCommonHandler.instance().bus().register(new AchievementEvent()); still doesn't work.
  16. You said to use the event bus but then you said i was already using it.
  17. So what are you telling me to do?
  18. MinecraftForge.EVENT_BUS.register(new AchievementEvent()); Is this not the event bus?
  19. My achievements aren't getting triggered for some reason. Code: AchievementEvent.class: package dudesmods.extraachievements.extraachievements2; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; public class AchievementEvent { @SubscribeEvent public void onPickup(PlayerEvent.ItemPickupEvent e) { if(e.pickedUp.getEntityItem() == new ItemStack(Items.clay_ball)) { e.player.addStat(ExtraAchievements.aquireClay, 1); } if(e.pickedUp.getEntityItem() == new ItemStack(Items.skull, 1)) { e.player.addStat(ExtraAchievements.witherSkulls, 1); } if(e.pickedUp.getEntityItem() == new ItemStack(Blocks.soul_sand)) { e.player.addStat(ExtraAchievements.soulSand, 1); } if(e.pickedUp.getEntityItem() == new ItemStack(Blocks.netherrack)) { e.player.addStat(ExtraAchievements.aquireNetherrack, 1); } if(e.pickedUp.getEntityItem() == new ItemStack(Blocks.sand)) { e.player.addStat(ExtraAchievements.aquireSand, 1); } } @SubscribeEvent public void onCrafting(PlayerEvent.ItemCraftedEvent e) { /**Tools**/ /*Hoes*/ if (e.crafting.getItem() == Items.stone_hoe) { e.player.addStat(ExtraAchievements.buildHoeStone, 1); } if (e.crafting.getItem() == Items.iron_hoe) { e.player.addStat(ExtraAchievements.buildHoeIron, 1); } if (e.crafting.getItem() == Items.golden_hoe) { e.player.addStat(ExtraAchievements.buildHoeGold, 1); } if (e.crafting.getItem() == Items.diamond_hoe) { e.player.addStat(ExtraAchievements.buildHoeDiamond, 1); } /*Pickaxe*/ if (e.crafting.getItem() == Items.iron_pickaxe) { e.player.addStat(ExtraAchievements.buildPickaxeIron, 1); } if (e.crafting.getItem() == Items.golden_pickaxe) { e.player.addStat(ExtraAchievements.buildPickaxeGold, 1); } if (e.crafting.getItem() == Items.diamond_pickaxe) { e.player.addStat(ExtraAchievements.buildPickaxeDiamond, 1); } /*Swords*/ if (e.crafting.getItem() == Items.stone_sword) { e.player.addStat(ExtraAchievements.buildSwordStone, 1); } if (e.crafting.getItem() == Items.iron_sword) { e.player.addStat(ExtraAchievements.buildSwordIron, 1); } if (e.crafting.getItem() == Items.golden_sword) { e.player.addStat(ExtraAchievements.buildSwordGold, 1); } if (e.crafting.getItem() == Items.diamond_sword) { e.player.addStat(ExtraAchievements.buildSwordDiamond, 1); } /*Axes*/ if (e.crafting.getItem() == Items.wooden_axe) { e.player.addStat(ExtraAchievements.buildAxeWood, 1); } if (e.crafting.getItem() == Items.stone_axe) { e.player.addStat(ExtraAchievements.buildAxeStone, 1); } if (e.crafting.getItem() == Items.iron_axe) { e.player.addStat(ExtraAchievements.buildAxeIron, 1); } if (e.crafting.getItem() == Items.golden_axe) { e.player.addStat(ExtraAchievements.buildAxeGold, 1); } if (e.crafting.getItem() == Items.diamond_axe) { e.player.addStat(ExtraAchievements.buildAxeDiamond, 1); } /*Shovels*/ if (e.crafting.getItem() == Items.wooden_shovel) { e.player.addStat(ExtraAchievements.buildShovelWood, 1); } if (e.crafting.getItem() == Items.stone_shovel) { e.player.addStat(ExtraAchievements.buildShovelStone, 1); } if (e.crafting.getItem() == Items.iron_shovel) { e.player.addStat(ExtraAchievements.buildShovelIron, 1); } if (e.crafting.getItem() == Items.golden_shovel) { e.player.addStat(ExtraAchievements.buildShovelGold, 1); } if (e.crafting.getItem() == Items.diamond_shovel) { e.player.addStat(ExtraAchievements.buildShovelDiamond, 1); } /**Armor**/ /*Helmet*/ if (e.crafting.getItem() == Items.leather_helmet) { e.player.addStat(ExtraAchievements.buildHelmetLeather, 1); } if (e.crafting.getItem() == Items.chainmail_helmet) { e.player.addStat(ExtraAchievements.buildHelmetChain, 1); } if (e.crafting.getItem() == Items.iron_helmet) { e.player.addStat(ExtraAchievements.buildHelmetIron, 1); } if (e.crafting.getItem() == Items.golden_helmet) { e.player.addStat(ExtraAchievements.buildHelmetGold, 1); } if (e.crafting.getItem() == Items.diamond_helmet) { e.player.addStat(ExtraAchievements.buildHelmetDiamond, 1); } /*Chest*/ if (e.crafting.getItem() == Items.leather_chestplate) { e.player.addStat(ExtraAchievements.buildChestpieceLeather, 1); } if (e.crafting.getItem() == Items.chainmail_chestplate) { e.player.addStat(ExtraAchievements.buildChestpieceChain, 1); } if (e.crafting.getItem() == Items.iron_chestplate) { e.player.addStat(ExtraAchievements.buildChestpieceIron, 1); } if (e.crafting.getItem() == Items.golden_chestplate) { e.player.addStat(ExtraAchievements.buildChestpieceGold, 1); } if (e.crafting.getItem() == Items.diamond_chestplate) { e.player.addStat(ExtraAchievements.buildChestpieceDiamond, 1); } /*Legs*/ if (e.crafting.getItem() == Items.leather_leggings) { e.player.addStat(ExtraAchievements.buildLeggingsLeather, 1); } if (e.crafting.getItem() == Items.chainmail_leggings) { e.player.addStat(ExtraAchievements.buildLeggingsChain, 1); } if (e.crafting.getItem() == Items.iron_leggings) { e.player.addStat(ExtraAchievements.buildLeggingsIron, 1); } if (e.crafting.getItem() == Items.golden_leggings) { e.player.addStat(ExtraAchievements.buildLeggingsGold, 1); } if (e.crafting.getItem() == Items.diamond_leggings) { e.player.addStat(ExtraAchievements.buildLeggingsDiamond, 1); } /*Boots*/ if (e.crafting.getItem() == Items.leather_boots) { e.player.addStat(ExtraAchievements.buildBootsLeather, 1); } if (e.crafting.getItem() == Items.chainmail_boots) { e.player.addStat(ExtraAchievements.buildBootsChain, 1); } if (e.crafting.getItem() == Items.iron_boots) { e.player.addStat(ExtraAchievements.buildBootsIron, 1); } if (e.crafting.getItem() == Items.golden_boots) { e.player.addStat(ExtraAchievements.buildBootsGold, 1); } if (e.crafting.getItem() == Items.diamond_boots) { e.player.addStat(ExtraAchievements.buildBootsDiamond, 1); } /**Misc**/ if (e.crafting.getItem() == Items.compass) { e.player.addStat(ExtraAchievements.craftCompass, 1); } if (e.crafting.getItem() == Items.clock) { e.player.addStat(ExtraAchievements.craftClock, 1); } if (Block.getBlockFromItem(e.crafting.getItem()) == Blocks.brick_block) { e.player.addStat(ExtraAchievements.craftBricks, 1); } if (Block.getBlockFromItem(e.crafting.getItem()) == Blocks.glass_pane) { e.player.addStat(ExtraAchievements.craftGlassPane, 1); } if (e.crafting.getItem() == Items.bowl) { e.player.addStat(ExtraAchievements.craftBowl, 1); } if (e.crafting.getItem() == Items.mushroom_stew) { e.player.addStat(ExtraAchievements.craftSoup, 1); } if (Block.getBlockFromItem(e.crafting.getItem()) == Blocks.nether_brick) { e.player.addStat(ExtraAchievements.craftNetherBrick, 1); } } @SubscribeEvent public void onSmelting(PlayerEvent.ItemSmeltedEvent e) { if (e.smelting.getItem() == Items.brick) { e.player.addStat(ExtraAchievements.smeltBrick, 1); } if (e.smelting.getItem() == Items.gold_ingot) { e.player.addStat(ExtraAchievements.aquireGold, 1); } if (Block.getBlockFromItem(e.smelting.getItem()) == Blocks.glass) { e.player.addStat(ExtraAchievements.smeltGlass, 1); } if (e.smelting.getItem() == Items.porkchop) { e.player.addStat(ExtraAchievements.cookPork, 1); } if (e.smelting.getItem() == Items.cooked_beef) { e.player.addStat(ExtraAchievements.cookBeef, 1); } if (e.smelting.getItem() == Items.cooked_chicken) { e.player.addStat(ExtraAchievements.cookChicken, 1); } if (e.smelting.getItem() == Items.netherbrick) { e.player.addStat(ExtraAchievements.smeltNetherBrick, 1); } } } (main class) ExtraAchievements.class: package dudesmods.extraachievements.extraachievements2; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.stats.Achievement; import net.minecraft.stats.AchievementList; import net.minecraftforge.common.AchievementPage; import net.minecraftforge.common.MinecraftForge; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.SidedProxy; 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.registry.GameRegistry; import dudesmods.extraachievements.extraachievements2.proxy.CommonProxy; @Mod(modid = ExtraAchievements.MODID, name = ExtraAchievements.NAME, version = ExtraAchievements.VERSION) public class ExtraAchievements { public static final String MODID = "extraachievements"; public static final String NAME = "Extra Achievements"; public static final String VERSION = "2.0.0"; public static AchievementPage ExtraAchievements; /**Tools**/ /*Hoe*/ public static Achievement buildHoeStone; public static Achievement buildHoeIron; public static Achievement buildHoeGold; public static Achievement buildHoeDiamond; /*Picks*/ public static Achievement buildPickaxeIron; public static Achievement buildPickaxeGold; public static Achievement buildPickaxeDiamond; /*Swords*/ public static Achievement buildSwordStone; public static Achievement buildSwordIron; public static Achievement buildSwordGold; public static Achievement buildSwordDiamond; /*Axes*/ public static Achievement buildAxeWood; public static Achievement buildAxeStone; public static Achievement buildAxeIron; public static Achievement buildAxeGold; public static Achievement buildAxeDiamond; /*Shovels*/ public static Achievement buildShovelWood; public static Achievement buildShovelStone; public static Achievement buildShovelIron; public static Achievement buildShovelGold; public static Achievement buildShovelDiamond; /**Armour**/ /*Helmets*/ public static Achievement buildHelmetLeather; public static Achievement buildHelmetChain; public static Achievement buildHelmetIron; public static Achievement buildHelmetGold; public static Achievement buildHelmetDiamond; /*ChestPeices*/ public static Achievement buildChestpieceLeather; public static Achievement buildChestpieceChain; public static Achievement buildChestpieceIron; public static Achievement buildChestpieceGold; public static Achievement buildChestpieceDiamond; /*Leggings*/ public static Achievement buildLeggingsLeather; public static Achievement buildLeggingsChain; public static Achievement buildLeggingsIron; public static Achievement buildLeggingsGold; public static Achievement buildLeggingsDiamond; /*Boots*/ public static Achievement buildBootsLeather; public static Achievement buildBootsChain; public static Achievement buildBootsIron; public static Achievement buildBootsGold; public static Achievement buildBootsDiamond; /*Wither*/ public static Achievement soulSand; public static Achievement witherSkulls; public static Achievement witherDead; public static Achievement craftBeacon; /**Misc.**/ public static Achievement craftCompass; public static Achievement craftClock; public static Achievement aquireClay; public static Achievement smeltBrick; public static Achievement craftBricks; public static Achievement aquireGold; public static Achievement aquireSand; public static Achievement smeltGlass; public static Achievement craftGlassPane; public static Achievement craftBowl; public static Achievement craftSoup; public static Achievement cookPork; public static Achievement cookBeef; public static Achievement cookChicken; public static Achievement aquireNetherrack; public static Achievement smeltNetherBrick; public static Achievement craftNetherBrick; @SidedProxy(clientSide="dudesmods.extraachievements.extraachievements2.proxy.ClientProxy", serverSide="dudesmods.extraachievements.extraachievements2.proxy.CommonProxy") public static CommonProxy proxy; @EventHandler public void preLoad(FMLPreInitializationEvent event) { initAchieves(); AchievementPage.registerAchievementPage(ExtraAchievements); } @EventHandler public void mainLoad(FMLInitializationEvent event) { MinecraftForge.EVENT_BUS.register(new AchievementEvent()); } @EventHandler public void postLoad(FMLPostInitializationEvent event) { } public void initAchieves() { aquireGold = new Achievement("achievement.aquireGold", "aquireGold", 1, 6, Items.gold_ingot, AchievementList.acquireIron).registerStat();//Vinilla Page /*Hoe*/ buildHoeStone = new Achievement("achievement.buildStoneHoe", "buildHoeStone", 0, -7, Items.stone_hoe, AchievementList.buildHoe).registerStat(); buildHoeIron = new Achievement("achievement.buildHoeIron", "buildHoeIron", 1, -7, Items.iron_hoe, buildHoeStone).registerStat(); buildHoeGold = new Achievement("achievement.buildHoeGold", "buildHoeGold", 1, -6, Items.golden_hoe, buildHoeIron).registerStat(); buildHoeDiamond = new Achievement("achievement.buildHoeDiamond", "buildHoeDiamond", 2, -7, Items.diamond_hoe, buildHoeIron).setSpecial().registerStat(); /*Pickaxe*/ buildPickaxeIron = new Achievement("achievement.buildPickaxeIron", "buildPickaxeIron", 1, -4, Items.iron_pickaxe, AchievementList.buildBetterPickaxe).registerStat(); buildPickaxeGold = new Achievement("achievement.buildPickaxeGold", "buildPickaxeGold", 1, -3, Items.golden_pickaxe, buildPickaxeIron).registerStat(); buildPickaxeDiamond = new Achievement("achievement.buildPickaxeDiamond", "buildPickaxeDiamond", 2, -4, Items.diamond_pickaxe, buildPickaxeIron).setSpecial().registerStat(); /*Sword*/ buildSwordStone = new Achievement("achievement.buildSwordStone", "buildSwordStone", 0, -1, Items.stone_sword, AchievementList.buildSword).registerStat(); buildSwordIron = new Achievement("achievement.buildSwordIron", "buildSwordIron", 1, -1, Items.iron_sword, buildSwordStone).registerStat(); buildSwordGold = new Achievement("achievement.buildSwordGold", "buildSwordGold", 1, 0, Items.golden_sword, buildSwordIron).registerStat(); buildSwordDiamond = new Achievement("achievement.buildSwordDiamond", "buildSwordDiamond", 2, -1, Items.diamond_sword, buildSwordIron).setSpecial().registerStat(); /*Axe*/ buildAxeWood = new Achievement("achievement.buildAxeWood", "buildAxeWood", -1, 2, Items.wooden_axe, AchievementList.buildWorkBench).registerStat(); buildAxeStone = new Achievement("achievement.buildAxeStone", "buildAxeStone", 0, 2, Items.stone_axe, buildAxeWood).registerStat(); buildAxeIron = new Achievement("achievement.buildAxeIron", "buildAxeIron", 1, 2, Items.iron_axe, buildAxeStone).registerStat(); buildAxeGold = new Achievement("achievement.buildAxeGold", "buildAxeGold", 1, 3, Items.golden_axe, buildAxeIron).registerStat(); buildAxeDiamond = new Achievement("achievement.buildAxeDiamond", "buildAxeDiamond", 2, 2, Items.diamond_axe, buildAxeIron).setSpecial().registerStat(); /*Shovel*/ buildShovelWood = new Achievement("achievement.buildShovelWood", "buildShovelWood", -1, 5, Items.wooden_shovel, AchievementList.buildWorkBench).registerStat(); buildShovelStone = new Achievement("achievement.buildShovelStone", "buildShovelStone", 0, 5, Items.stone_shovel, buildShovelWood).registerStat(); buildShovelIron = new Achievement("achievement.buildShovelIron", "buildShovelIron", 1, 5, Items.iron_shovel, buildShovelStone).registerStat(); buildShovelGold = new Achievement("achievement.buildShovelGold", "buildShovelGold", 1, 6, Items.golden_shovel, buildShovelIron).registerStat(); buildShovelDiamond = new Achievement("achievement.buildShovelDiamond", "buildShovelDiamond", 2, 5, Items.diamond_shovel, buildShovelIron).setSpecial().registerStat(); /*Helmet*/ buildHelmetLeather = new Achievement("achievement.buildHelmetLeather", "buildHelmetLeather", 4, -7, Items.leather_helmet, AchievementList.killCow).registerStat(); buildHelmetChain = new Achievement("achievement.buildHelmetChain", "buildHelmetChain", 5, -7, Items.chainmail_helmet, buildHelmetLeather).registerStat(); buildHelmetIron = new Achievement("achievement.buildHelmetIron", "buildHelmetIron", 6, -7, Items.iron_helmet, buildHelmetLeather).registerStat(); buildHelmetGold = new Achievement("achievement.buildHelmetGold", "buildHelmetGold", 7, -7, Items.golden_helmet, buildHelmetIron).registerStat(); buildHelmetDiamond = new Achievement("achievement.buildHelmetDiamond", "buildHelmetDiamond", 8, -7, Items.diamond_helmet, buildHelmetIron).setSpecial().registerStat(); /*Chestpiece*/ buildChestpieceLeather = new Achievement("achievement.buildChestpieceLeather", "buildChestpieceLeather", 4, -6, Items.leather_chestplate, AchievementList.killCow).registerStat(); buildChestpieceChain = new Achievement("achievement.buildChestpieceChain", "buildChestpieceChain", 5, -6, Items.chainmail_chestplate, buildChestpieceLeather).registerStat(); buildChestpieceIron = new Achievement("achievement.buildChestpieceIron", "buildChestpieceIron", 6, -6, Items.iron_chestplate, buildChestpieceLeather).registerStat(); buildChestpieceGold = new Achievement("achievement.buildChestpieceGold", "buildChestpieceGold", 7, -6, Items.golden_chestplate, buildChestpieceIron).registerStat(); buildChestpieceDiamond = new Achievement("achievement.buildChestpieceDiamond", "buildChestpieceDiamond", 8, -6, Items.diamond_chestplate, buildChestpieceIron).setSpecial().registerStat(); /*Leggings*/ buildLeggingsLeather = new Achievement("achievement.buildLeggingsLeather", "buildLeggingsLeather", 4, -5, Items.leather_leggings, AchievementList.killCow).registerStat(); buildLeggingsChain = new Achievement("achievement.buildLeggingsChain", "buildLeggingsChain", 5, -5, Items.chainmail_leggings, buildLeggingsLeather).registerStat(); buildLeggingsIron = new Achievement("achievement.buildLeggingsIron", "buildLeggingsIron", 6, -5, Items.iron_leggings, buildLeggingsLeather).registerStat(); buildLeggingsGold = new Achievement("achievement.buildLeggingsGold", "buildLeggingsGold", 7, -5, Items.golden_leggings, buildLeggingsIron).registerStat(); buildLeggingsDiamond = new Achievement("achievement.buildLeggingsDiamond", "buildLeggingsDiamond", 8, -5, Items.diamond_leggings, buildLeggingsIron).setSpecial().registerStat(); /*Boots*/ buildBootsLeather = new Achievement("achievement.buildBootsLeather", "buildBootsLeather", 4, -4, Items.leather_boots, AchievementList.killCow).registerStat(); buildBootsChain = new Achievement("achievement.buildBootsChain", "buildBootsChain", 5, -4, Items.chainmail_boots, buildBootsLeather).registerStat(); buildBootsIron = new Achievement("achievement.buildBootsIron", "buildBootsIron", 6, -4, Items.iron_boots, buildBootsLeather).registerStat(); buildBootsGold = new Achievement("achievement.buildBootsGold", "buildBootsGold", 7, -4, Items.golden_boots, buildBootsIron).registerStat(); buildBootsDiamond = new Achievement("achievement.buildBootsDiamond", "buildBootsDiamond", 8, -4, Items.diamond_boots, buildBootsIron).setSpecial().registerStat(); /**Misc.**/ craftCompass = new Achievement("achievement.craftCompass", "craftCompass", 4, 0, Items.compass, AchievementList.acquireIron).registerStat(); craftClock = new Achievement("achievement.craftClock", "craftClock", 5, 0, Items.clock, aquireGold).registerStat(); aquireClay = new Achievement("achievement.aquireClay", "aquireClay", 3, 1, Items.clay_ball, null).registerStat(); smeltBrick = new Achievement("achievement.smeltBrick", "smeltBrick", 4, 1, Items.brick, aquireClay).registerStat(); craftBricks = new Achievement("achievement.craftBricks", "craftBricks", 5, 1, Blocks.brick_block, smeltBrick).registerStat(); aquireSand = new Achievement("achievement.aquireSand", "aquireSand", 3, 2, Blocks.sand, null).registerStat(); smeltGlass = new Achievement("achievement.smeltGlass", "smeltGlass", 4, 2, Blocks.glass, aquireSand).registerStat(); craftGlassPane = new Achievement("achievement.craftGlassPane", "craftGlassPane", 5, 2, Blocks.glass_pane, smeltGlass).registerStat(); craftBowl = new Achievement("achievement.craftBowl", "craftBowl", 4, 3, Items.bowl, AchievementList.buildWorkBench).registerStat(); craftSoup = new Achievement("achievement.craftSoup", "craftSoup", 5, 3, Items.mushroom_stew, craftBowl).registerStat(); cookPork = new Achievement("achievement.cookPork", "cookPork", 6, 3, Items.porkchop, AchievementList.buildFurnace).registerStat(); cookBeef = new Achievement("achievement.cookBeef", "cookBeef", 7, 3, Items.cooked_beef, AchievementList.buildFurnace).registerStat(); cookChicken = new Achievement("achievement.cookChicken", "cookChicken", 8, 3, Items.cooked_chicken, AchievementList.buildFurnace).registerStat(); aquireNetherrack = new Achievement("achievement.aquireNetherrack", "aquireNetherrack", 6, 1, Blocks.netherrack, AchievementList.portal).registerStat(); smeltNetherBrick = new Achievement("achievement.smeltNetherBrick", "smeltNetherBrick", 7, 1, Items.netherbrick, aquireNetherrack).registerStat(); craftNetherBrick = new Achievement("achievement.craftNetherBrick", "craftNetherBrick", 8, 1, Blocks.nether_brick, smeltNetherBrick).registerStat(); soulSand = new Achievement("achievement.soulSand", "soulSand", 6, 2, Blocks.soul_sand, null).registerStat(); witherSkulls = new Achievement("achievement.witherSkulls", "witherSkulls", 7, 2, new ItemStack(Items.skull, 1, 1), null).registerStat(); ExtraAchievements = new AchievementPage("Extra Achievements", buildHoeStone, buildHoeIron, buildHoeGold, buildHoeDiamond, buildPickaxeIron, buildPickaxeGold, buildPickaxeDiamond, buildSwordStone, buildSwordIron, buildSwordGold, buildSwordDiamond, buildAxeWood, buildAxeStone, buildAxeIron, buildAxeGold, buildAxeDiamond, buildShovelWood, buildShovelStone, buildShovelIron, buildShovelGold, buildShovelDiamond, buildHelmetLeather, buildHelmetChain, buildHelmetIron, buildHelmetGold, buildHelmetDiamond, buildChestpieceLeather, buildChestpieceChain, buildChestpieceIron, buildChestpieceGold, buildChestpieceDiamond, buildLeggingsLeather, buildLeggingsChain, buildLeggingsIron, buildLeggingsGold, buildLeggingsDiamond, buildBootsLeather, buildBootsChain, buildBootsIron, buildBootsGold, buildBootsDiamond, craftCompass, craftClock, aquireClay, smeltBrick, craftBricks, aquireSand, smeltGlass, craftGlassPane, craftBowl, craftSoup, cookPork, cookBeef, cookChicken, aquireNetherrack, smeltNetherBrick, craftNetherBrick, soulSand, witherSkulls); } }
  20. Thank you both. StatCollector worked just fine.
  21. with 1.6.4 and prior with items tooltips you could make them localized with I18N (Example: par3List.add(I18n.getString("triforce.tooltip.strangeEnergy")); and then you'd localize it in the lang file. but now I18N has "setLocale" and it takes a "locale" not a string and i don't know how to use it. could someone please explain the new format?
  22. Trying to update my mod to 1.7.2. ITickHandler, ICraftingHandler, and TickRegistry all no longer exist. Does anyone know the replacements for these files? Specifically the methods: onCrafting onSmelting onPlayerTick (and tickStart) TickRegistry.registerTickHandler
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.