Jump to content

f1rSt1kChannel

Members
  • Posts

    138
  • Joined

  • Last visited

Everything posted by f1rSt1kChannel

  1. See this: https://github.com/wuppy29/WuppyMods/tree/master/com/wuppy/harderpeaceful
  2. Not work... package agravaine.esoteric.tileentity; import net.minecraft.init.Items; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntityFurnace; import agravaine.agravainelib.block.tileentity.TileEntityInventoryBase; import agravaine.agravainelib.item.crafting.CampfireRecipes; public class TileEntityCampfire extends TileEntityInventoryBase{ public int fuelBurnTime; public int currentFoodBurnTime; public int campfireCookTime1; public int campfireCookTime2; public static final int FUEL = 1, INPUT_1 = 0, INPUT_2 = 3, OUTPUT_1 = 2, OUTPUT_2 = 4; public TileEntityCampfire(){ super("Campfire", false, 5); fuelBurnTime = 0; currentFoodBurnTime = 0; campfireCookTime1 = 0; campfireCookTime2 = 0; } public void writeToNBT(NBTTagCompound nbt){ super.writeToNBT(nbt); nbt.setShort("BurnTime", (short)fuelBurnTime); nbt.setShort("CookTime1", (short)campfireCookTime1); nbt.setShort("CookTime2", (short)campfireCookTime2); } public void readFromNBT(NBTTagCompound nbt){ super.readFromNBT(nbt); fuelBurnTime = nbt.getShort("BurnTime"); campfireCookTime1 = nbt.getShort("CookTime1"); campfireCookTime2 = nbt.getShort("CookTime2"); currentFoodBurnTime = getItemBurnTime(inventoryContents[FUEL]); } public int getInventoryStackLimit(){ return 6; } public int getCookProgressScaled(int i, int j){ int cookingTime; if(j == 0){ cookingTime = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_1]); return (campfireCookTime1 * i) / cookingTime; }else{ cookingTime = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_2]); return (campfireCookTime2 * i) / cookingTime; } } public int getBurnTimeRemainingScaled(int i){ if(currentFoodBurnTime == 0){ currentFoodBurnTime = 200; } return (fuelBurnTime * i) / currentFoodBurnTime; } public boolean isBurning(){ return fuelBurnTime > 0; } public void updateEntity(){ boolean isBurning = fuelBurnTime > 0; boolean inventoryChanged = false; if(fuelBurnTime > 0){ fuelBurnTime--; } if(!worldObj.isRemote){ if(fuelBurnTime == 0 && (canCook(0, 2) || canCook(3, 4))){ currentFoodBurnTime = fuelBurnTime = getItemBurnTime(inventoryContents[FUEL]); if(fuelBurnTime > 0){ onInventoryChanged(); if(inventoryContents[FUEL] != null){ --inventoryContents[FUEL].stackSize; if(inventoryContents[FUEL].stackSize == 0){ inventoryContents[FUEL] = inventoryContents[FUEL].getItem().getContainerItem(inventoryContents[FUEL]); } } } } if(isBurning()){ if(canCook(INPUT_1, OUTPUT_1)){ campfireCookTime1++; int cookingTime = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_1]); if(campfireCookTime1 == cookingTime){ campfireCookTime1 = 0; cookItem(0, 2); onInventoryChanged(); } }else{ campfireCookTime1 = 0; } if(canCook(INPUT_2, OUTPUT_2)){ campfireCookTime2++; int cookingTime = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_2]); if(campfireCookTime2 == cookingTime){ campfireCookTime2 = 0; cookItem(3, 4); onInventoryChanged(); } }else{ campfireCookTime2 = 0; } }else{ campfireCookTime1 = 0; campfireCookTime2 = 0; } if(isBurning != (fuelBurnTime > 0)){ onInventoryChanged(); //BlockCampfire.updateCampfireState(furnaceBurnTime > 0, worldObj, xCoord, yCoord, zCoord); } } } public boolean canCook(int input, int output){ if(inventoryContents[input] == null){ return false; } ItemStack itemstack = CampfireRecipes.cooking().getCookingResult(inventoryContents[input]); if(itemstack == null){ return false; } if(inventoryContents[output] == null){ return true; } if(!inventoryContents[output].isItemEqual(itemstack)){ return false; } if(inventoryContents[output].stackSize + itemstack.stackSize <= getInventoryStackLimit() && inventoryContents[output].stackSize + itemstack.stackSize <= inventoryContents[output].getMaxStackSize()){ return true; } return inventoryContents[output].stackSize + itemstack.stackSize <= itemstack.getMaxStackSize(); } public void cookItem(int input, int output){ if(!canCook(input, output)){ return; } ItemStack itemstack = CampfireRecipes.cooking().getCookingResult(inventoryContents[input]); if(inventoryContents[output] == null){ inventoryContents[output] = itemstack.copy(); }else if(inventoryContents[output].getItem() == itemstack.getItem()){ inventoryContents[output].stackSize += itemstack.stackSize; } --inventoryContents[input].stackSize; if(inventoryContents[input].stackSize <= 0){ inventoryContents[input] = null; } } public static int getItemBurnTime(ItemStack itemstack){ return TileEntityFurnace.getItemBurnTime(itemstack); } public static boolean isItemFuel(ItemStack par0ItemStack){ return getItemBurnTime(par0ItemStack) > 0; } public boolean isItemValidForSlot(int slotId, ItemStack iStack){ return slotId == OUTPUT_1 || slotId == OUTPUT_2 ? false : slotId == FUEL ? isItemFuel(iStack) : iStack.getItem() instanceof ItemFood; } public int[] getAccessibleSlotsFromSide(int slotId){ return slotId == 0 || slotId == 3 ? new int[]{2, 1, 4, 3} : (slotId == 1 ? new int[] {0} : new int[] {1}); } public boolean canInsertItem(int slotId, ItemStack iStack, int side){ return isItemValidForSlot(slotId, iStack); } public boolean canExtractItem(int slotId, ItemStack iStack, int side){ return false; } }
  3. Does not work public int getCookingTime(ItemStack iStack){ Iterator iterator = cookingTimeList.entrySet().iterator(); Entry entry = null; do{ if(!iterator.hasNext()){ return 0; } if(iterator.next() != null){ entry = (Entry)iterator.next(); } }while(!areItemStacksEqual(iStack, (ItemStack)entry.getKey())); return ((Integer)entry.getValue()).intValue(); }
  4. Made his "furnace" and I want her to make their recipes. They are the same as the stove and recipes, but instead of getting experience I have while cooking. But for some reason it does not work and breaks the game. P.S Sorry for my bad english. TileEntity: package agravaine.esoteric.tileentity; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.item.ItemTool; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntityFurnace; import agravaine.agravainelib.block.tileentity.TileEntityInventoryBase; import agravaine.agravainelib.item.crafting.CampfireRecipes; public class TileEntityCampfire extends TileEntityInventoryBase{ public int fuelBurnTime; public int currentFoodBurnTime; public int campfireCookTime1; public int campfireCookTime2; public int cookingTime1; public int cookingTime2; public static final int FUEL = 1, INPUT_1 = 0, INPUT_2 = 3, OUTPUT_1 = 2, OUTPUT_2 = 4; public TileEntityCampfire(){ super("Campfire", false, 5); fuelBurnTime = 0; currentFoodBurnTime = 0; campfireCookTime1 = 0; campfireCookTime2 = 0; cookingTime1 = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_1]); cookingTime2 = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_2]); } public void writeToNBT(NBTTagCompound nbt){ super.writeToNBT(nbt); nbt.setShort("BurnTime", (short)fuelBurnTime); nbt.setShort("CookTime1", (short)campfireCookTime1); nbt.setShort("CookTime2", (short)campfireCookTime2); } public void readFromNBT(NBTTagCompound nbt){ super.readFromNBT(nbt); fuelBurnTime = nbt.getShort("BurnTime"); campfireCookTime1 = nbt.getShort("CookTime1"); campfireCookTime2 = nbt.getShort("CookTime2"); currentFoodBurnTime = getItemBurnTime(inventoryContents[FUEL]); } public int getInventoryStackLimit(){ return 6; } public int getCookProgressScaled(int i, int j){ if(j == 0){ return cookingTime1 == 0 ? 0 : (campfireCookTime1 * i) / cookingTime1; }else{ return cookingTime2 == 0 ? 0 : (campfireCookTime2 * i) / cookingTime2; } } public int getBurnTimeRemainingScaled(int i){ if(currentFoodBurnTime == 0){ currentFoodBurnTime = 200; } return (fuelBurnTime * i) / currentFoodBurnTime; } public boolean isBurning(){ return fuelBurnTime > 0; } public void updateEntity(){ boolean isBurning = fuelBurnTime > 0; boolean inventoryChanged = false; if(fuelBurnTime > 0){ fuelBurnTime--; } if(!worldObj.isRemote){ if(fuelBurnTime == 0 && (canCook(0, 2) || canCook(3, 4))){ currentFoodBurnTime = fuelBurnTime = getItemBurnTime(inventoryContents[FUEL]); if(fuelBurnTime > 0){ onInventoryChanged(); if(inventoryContents[FUEL] != null){ --inventoryContents[FUEL].stackSize; if(inventoryContents[FUEL].stackSize == 0){ inventoryContents[FUEL] = inventoryContents[FUEL].getItem().getContainerItem(inventoryContents[FUEL]); } } } } if(isBurning()){ if(canCook(INPUT_1, OUTPUT_1)){ campfireCookTime1++; if(campfireCookTime1 == cookingTime1){ campfireCookTime1 = 0; cookItem(0, 2); onInventoryChanged(); } }else{ campfireCookTime1 = 0; } if(canCook(INPUT_2, OUTPUT_2)){ campfireCookTime2++; if(campfireCookTime2 == cookingTime2){ campfireCookTime2 = 0; cookItem(3, 4); onInventoryChanged(); } }else{ campfireCookTime2 = 0; } }else{ campfireCookTime1 = 0; campfireCookTime2 = 0; } if(isBurning != (fuelBurnTime > 0)){ onInventoryChanged(); //BlockCampfire.updateCampfireState(furnaceBurnTime > 0, worldObj, xCoord, yCoord, zCoord); } } } public boolean canCook(int input, int output){ if(inventoryContents[input] == null){ return false; } ItemStack itemstack = CampfireRecipes.cooking().getCookingResult(inventoryContents[input]); if(itemstack == null){ return false; } if(inventoryContents[output] == null){ return true; } if(!inventoryContents[output].isItemEqual(itemstack)){ return false; } if(inventoryContents[output].stackSize + itemstack.stackSize <= getInventoryStackLimit() && inventoryContents[output].stackSize + itemstack.stackSize <= inventoryContents[output].getMaxStackSize()){ return true; } return inventoryContents[output].stackSize + itemstack.stackSize <= itemstack.getMaxStackSize(); } public void cookItem(int input, int output){ if(!canCook(input, output)){ return; } ItemStack itemstack = CampfireRecipes.cooking().getCookingResult(inventoryContents[input]); if(inventoryContents[output] == null){ inventoryContents[output] = itemstack.copy(); }else if(inventoryContents[output].getItem() == itemstack.getItem()){ inventoryContents[output].stackSize += itemstack.stackSize; } --inventoryContents[input].stackSize; if(inventoryContents[input].stackSize <= 0){ inventoryContents[input] = null; } } public static int getItemBurnTime(ItemStack iStack){ if(iStack == null){ return 0; } Item item = iStack.getItem(); if(item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air){ Block block = Block.getBlockFromItem(item); if(block == Blocks.wooden_slab){ return 250; } if(block.getMaterial() == Material.wood){ return 500; } if(block == Blocks.coal_block){ return 18000; } } if(item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")){ return 450; } if(item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")){ return 450; } if(item instanceof ItemHoe && ((ItemHoe)item).getToolMaterialName().equals("WOOD")){ return 450; } if(item == Items.stick) return 200; if(item == Items.coal) return 2400; if(item == Item.getItemFromBlock(Blocks.sapling)){ return 150; } if(item == Items.blaze_rod){ return 2700; } return GameRegistry.getFuelValue(iStack); } public static boolean isItemFuel(ItemStack par0ItemStack){ return getItemBurnTime(par0ItemStack) > 0; } public boolean isItemValidForSlot(int slotId, ItemStack iStack){ return slotId == OUTPUT_1 || slotId == OUTPUT_2 ? false : slotId == FUEL ? isItemFuel(iStack) : iStack.getItem() instanceof ItemFood; } public int[] getAccessibleSlotsFromSide(int slotId){ return slotId == 0 || slotId == 3 ? new int[]{2, 1, 4, 3} : (slotId == 1 ? new int[] {0} : new int[] {1}); } public boolean canInsertItem(int slotId, ItemStack iStack, int side){ return isItemValidForSlot(slotId, iStack); } public boolean canExtractItem(int slotId, ItemStack iStack, int side){ return false; } } Recipes: package agravaine.agravainelib.item.crafting; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; 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.ItemFood; import net.minecraft.item.ItemStack; public class CampfireRecipes{ private static final CampfireRecipes instance = new CampfireRecipes();; private Map<ItemStack, ItemStack> cookingList = new HashMap<ItemStack, ItemStack>(); private Map<ItemStack, Integer> cookingTimeList = new HashMap<ItemStack, Integer>(); public static CampfireRecipes cooking(){ return instance; } private CampfireRecipes(){ addRecipe(Items.porkchop, new ItemStack(Items.cooked_porkchop), 250); addRecipe(Items.beef, new ItemStack(Items.cooked_beef), 250); addRecipe(Items.chicken, new ItemStack(Items.cooked_chicken), 300); addRecipe(Items.potato, new ItemStack(Items.baked_potato), 200); ItemFishFood.FishType[] fishtypes = ItemFishFood.FishType.values(); for(int j = 0; j < fishtypes.length; ++j){ ItemFishFood.FishType fishtype = fishtypes[j]; if(fishtype.func_150973_i()){ addRecipe(new ItemStack(Items.fish, 1, fishtype.func_150976_a()), new ItemStack(Items.cooked_fished, 1, fishtype.func_150976_a()), 320); } } } public void addRecipe(Item item, ItemStack result, int cookingTime){ addRecipe(new ItemStack(item, 1, 32767), result, cookingTime); } public void addRecipe(ItemStack iStack, ItemStack result, int cookingTime){ cookingList.put(iStack, result); cookingTimeList.put(result, cookingTime); } public ItemStack getCookingResult(ItemStack item){ Iterator iterator = cookingList.entrySet().iterator(); Entry entry; do{ if(!iterator.hasNext()){ return null; } entry = (Entry)iterator.next(); }while(!areItemStacksEqual(item, (ItemStack)entry.getKey())); return (ItemStack)entry.getValue(); } public int getCookingTime(ItemStack iStack){ Iterator iterator = cookingTimeList.entrySet().iterator(); Entry entry; do{ if(!iterator.hasNext()){ return 0; } entry = (Entry)iterator.next(); }while(!areItemStacksEqual(iStack, (ItemStack)entry.getKey())); return ((Integer)entry.getValue()).intValue(); } private boolean areItemStacksEqual(ItemStack itemStackOne, ItemStack itemStackTwo){ return itemStackTwo.getItem() == itemStackOne.getItem() && (itemStackTwo.getItemDamage() == 32767 || itemStackTwo.getItemDamage() == itemStackOne.getItemDamage()); } public Map<ItemStack, ItemStack> getSmeltingList(){ return cookingList; } } Crash: java.lang.NullPointerException at agravaine.agravainelib.item.crafting.CampfireRecipes.areItemStacksEqual(CampfireRecipes.java:75) ~[CampfireRecipes.class:?] at agravaine.agravainelib.item.crafting.CampfireRecipes.getCookingTime(CampfireRecipes.java:70) ~[CampfireRecipes.class:?] at agravaine.esoteric.tileentity.TileEntityCampfire.<init>(TileEntityCampfire.java:37) ~[TileEntityCampfire.class:?] at agravaine.esoteric.block.BlockCampfire.createNewTileEntity(BlockCampfire.java:21) ~[blockCampfire.class:?] at net.minecraft.block.Block.createTileEntity(Block.java:1770) ~[block.class:?] at net.minecraft.world.chunk.Chunk.func_150806_e(Chunk.java:939) ~[Chunk.class:?] at net.minecraft.world.ChunkCache.getTileEntity(ChunkCache.java:103) ~[ChunkCache.class:?] at net.minecraft.client.renderer.WorldRenderer.updateRenderer(WorldRenderer.java:189) ~[WorldRenderer.class:?] at net.minecraft.client.renderer.RenderGlobal.updateRenderers(RenderGlobal.java:1616) ~[RenderGlobal.class:?] at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1262) ~[EntityRenderer.class:?] at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1095) ~[EntityRenderer.class:?] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1024) ~[Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:912) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_55] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_55] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_55] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_55] at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?] ---- Minecraft Crash Report ---- // I'm sorry, Dave. Time: 09.06.14 21:05 Description: Unexpected error java.lang.NullPointerException: Unexpected error at agravaine.agravainelib.item.crafting.CampfireRecipes.areItemStacksEqual(CampfireRecipes.java:75) at agravaine.agravainelib.item.crafting.CampfireRecipes.getCookingTime(CampfireRecipes.java:70) at agravaine.esoteric.tileentity.TileEntityCampfire.<init>(TileEntityCampfire.java:37) at agravaine.esoteric.block.BlockCampfire.createNewTileEntity(BlockCampfire.java:21) at net.minecraft.block.Block.createTileEntity(Block.java:1770) at net.minecraft.world.chunk.Chunk.func_150806_e(Chunk.java:939) at net.minecraft.world.ChunkCache.getTileEntity(ChunkCache.java:103) at net.minecraft.client.renderer.WorldRenderer.updateRenderer(WorldRenderer.java:189) at net.minecraft.client.renderer.RenderGlobal.updateRenderers(RenderGlobal.java:1616) at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1262) at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1095) at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1024) at net.minecraft.client.Minecraft.run(Minecraft.java:912) at net.minecraft.client.main.Main.main(Main.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at agravaine.agravainelib.item.crafting.CampfireRecipes.areItemStacksEqual(CampfireRecipes.java:75) at agravaine.agravainelib.item.crafting.CampfireRecipes.getCookingTime(CampfireRecipes.java:70) at agravaine.esoteric.tileentity.TileEntityCampfire.<init>(TileEntityCampfire.java:37) at agravaine.esoteric.block.BlockCampfire.createNewTileEntity(BlockCampfire.java:21) at net.minecraft.block.Block.createTileEntity(Block.java:1770) at net.minecraft.world.chunk.Chunk.func_150806_e(Chunk.java:939) at net.minecraft.world.ChunkCache.getTileEntity(ChunkCache.java:103) at net.minecraft.client.renderer.WorldRenderer.updateRenderer(WorldRenderer.java:189) at net.minecraft.client.renderer.RenderGlobal.updateRenderers(RenderGlobal.java:1616) at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1262) -- Affected level -- Details: Level name: MpServer All players: 1 total; [EntityClientPlayerMP['Player376'/148, l='MpServer', x=-272,64, y=5,62, z=-1090,34]] Chunk stats: MultiplayerChunkCache: 35, 35 Level seed: 0 Level generator: ID 01 - flat, ver 0. Features enabled: false Level generator options: Level spawn location: World: (-282,4,-1086), Chunk: (at 6,0,2 in -18,-68; contains blocks -288,0,-1088 to -273,255,-1073), Region: (-1,-3; contains chunks -32,-96 to -1,-65, blocks -512,0,-1536 to -1,255,-1025) Level time: 4264 game time, 4264 day time Level dimension: 0 Level storage version: 0x00000 - Unknown? Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false) Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false Forced entities: 28 total; [EntityChicken['Chicken'/76, l='MpServer', x=-293,50, y=4,00, z=-1119,50], EntityHorse['Horse'/77, l='MpServer', x=-291,50, y=4,00, z=-1119,50], EntityPig['Pig'/78, l='MpServer', x=-289,50, y=4,00, z=-1119,84], EntityPig['Pig'/79, l='MpServer', x=-300,81, y=4,00, z=-1106,34], EntityChicken['Chicken'/73, l='MpServer', x=-300,69, y=4,00, z=-1123,97], EntityChicken['Chicken'/74, l='MpServer', x=-292,53, y=4,00, z=-1127,53], EntityHorse['Horse'/75, l='MpServer', x=-300,28, y=4,00, z=-1122,88], EntityClientPlayerMP['Player376'/148, l='MpServer', x=-272,64, y=5,62, z=-1090,34], EntityChicken['Chicken'/85, l='MpServer', x=-278,63, y=4,00, z=-1099,41], EntityPig['Pig'/84, l='MpServer', x=-284,78, y=4,00, z=-1119,81], EntityHorse['Horse'/87, l='MpServer', x=-262,50, y=4,00, z=-1115,50], EntityChicken['Chicken'/86, l='MpServer', x=-272,63, y=4,00, z=-1088,44], EntityPig['Pig'/81, l='MpServer', x=-288,88, y=4,00, z=-1115,13], EntityPig['Pig'/80, l='MpServer', x=-289,38, y=4,00, z=-1111,88], EntitySheep['Sheep'/83, l='MpServer', x=-285,63, y=4,00, z=-1134,22], EntityCow['Cow'/93, l='MpServer', x=-247,50, y=4,00, z=-1115,50], EntityCow['Cow'/94, l='MpServer', x=-251,50, y=4,00, z=-1115,81], EntityCow['Cow'/89, l='MpServer', x=-265,13, y=4,00, z=-1107,31], EntityHorse['Horse'/88, l='MpServer', x=-262,97, y=4,00, z=-1118,16], EntityCow['Cow'/90, l='MpServer', x=-258,34, y=4,00, z=-1105,47], EntitySheep['Sheep'/111, l='MpServer', x=-227,81, y=4,00, z=-1086,69], EntitySheep['Sheep'/108, l='MpServer', x=-227,75, y=4,00, z=-1090,03], EntitySheep['Sheep'/109, l='MpServer', x=-233,38, y=4,00, z=-1090,19], EntitySheep['Sheep'/107, l='MpServer', x=-231,81, y=4,00, z=-1088,44], EntitySheep['Sheep'/115, l='MpServer', x=-223,91, y=4,00, z=-1087,94], EntitySheep['Sheep'/114, l='MpServer', x=-238,50, y=4,00, z=-1082,50], EntitySheep['Sheep'/113, l='MpServer', x=-234,50, y=4,00, z=-1082,50], EntitySheep['Sheep'/112, l='MpServer', x=-227,03, y=4,00, z=-1080,09]] Retry entities: 0 total; [] Server brand: fml,forge Server type: Integrated singleplayer server Stacktrace: at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:412) at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2523) at net.minecraft.client.Minecraft.run(Minecraft.java:941) at net.minecraft.client.main.Main.main(Main.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) -- System Details -- Details: Minecraft Version: 1.7.2 Operating System: Windows XP (x86) version 5.1 Java Version: 1.7.0_55, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 896474512 bytes (854 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 9254 (518224 bytes; 0 MB) allocated, 2 (112 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP v9.03 FML v7.2.209.1112 Minecraft Forge 10.12.1.1112 5 mods loaded, 5 mods active mcp{9.03} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available FML{7.2.209.1112} [Forge Mod Loader] (forgeSrc-1.7.2-10.12.1.1112.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Forge{10.12.1.1112} [Minecraft Forge] (forgeSrc-1.7.2-10.12.1.1112.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available AgravaineLib{0.12} [AgravaineLib] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Esoteric{Alpha Alpha 0.03} [Esoteric] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Launched Version: 1.6 LWJGL: 2.9.0 OpenGL: GeForce 6100 nForce 405/PCI/SSE2/3DNOW! GL version 2.0.3, NVIDIA Corporation Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Packs: [] Current Language: English (US) Profiler Position: N/A (disabled) Vec3 Pool Size: 33 (1848 bytes; 0 MB) allocated, 26 (1456 bytes; 0 MB) used Anisotropic Filtering: Off (1) [21:05:09] [server thread/INFO]: Stopping server #@!@# Game crashed! Crash report saved to: #@!@# C:\Modding\Forge\eclipse\.\crash-reports\crash-2014-06-09_21.05.09-client.txt [21:05:09] [Client thread/INFO] [FML]: Waiting for the server to terminate/save. [21:05:09] [server thread/INFO]: Saving players [21:05:09] [server thread/INFO]: Saving worlds [21:05:09] [server thread/INFO]: Saving chunks for level 'New World'/Overworld [21:05:10] [server thread/INFO]: Saving chunks for level 'New World'/Nether [21:05:10] [server thread/INFO]: Saving chunks for level 'New World'/The End [21:05:10] [server thread/INFO] [FML]: Unloading dimension 0 [21:05:10] [server thread/INFO] [FML]: Unloading dimension -1 [21:05:10] [server thread/INFO] [FML]: Unloading dimension 1 [21:05:10] [server thread/INFO] [FML]: Applying holder lookups [21:05:10] [server thread/INFO] [FML]: Holder lookups applied [21:05:10] [Client thread/INFO] [FML]: Server terminated. AL lib: (EE) alc_cleanup: 1 device not closed Indicates this method: private boolean areItemStacksEqual(ItemStack itemStackOne, ItemStack itemStackTwo){ return itemStackTwo.getItem() == itemStackOne.getItem() && (itemStackTwo.getItemDamage() == 32767 || itemStackTwo.getItemDamage() == itemStackOne.getItemDamage()); //<---------------------------- } Help, please!
  5. Create class Cooldownable.class: public class Cooldownable{ public static final String COOLDOWN_NBT = "agravaine:cooldown"; /** * Call this onUpdate() in your Item WARNING: you should check for * !world.isRemote * * @param iStack * stack to update * @param maxCooldown * maximum cooldown */ public static void onUpdate(ItemStack iStack, int maxCooldown){ AgravaineNBTHelper.checkNBT(iStack); if(!AgravaineNBTHelper.verifyKey(iStack, COOLDOWN_NBT)){ AgravaineNBTHelper.setInteger(iStack, COOLDOWN_NBT, maxCooldown); } if(AgravaineNBTHelper.getInteger(iStack, COOLDOWN_NBT) > 0){ AgravaineNBTHelper.decreaseInteger(iStack, COOLDOWN_NBT, 1); } } /** * Checks for cooldown. Call it when your item needs to be used * * @param iStack * Stack to check * @param maxCooldown * Maximum cooldown * @return True if item's cooldown is zero, returns true and sets it to * maximum, otherwise false */ public static boolean canUse(ItemStack iStack, int maxCooldown){ AgravaineNBTHelper.checkNBT(iStack); if(AgravaineNBTHelper.getInteger(iStack, COOLDOWN_NBT) > 0){ return false; }else{ AgravaineNBTHelper.setInteger(iStack, COOLDOWN_NBT, maxCooldown); return true; } } /** * Call this addInformation() in your Item * * @param iStack * stack to update * @param info * cooldown text */ public static void displayCooldown(ItemStack iStack, List info){ AgravaineNBTHelper.checkNBT(iStack); if(AgravaineNBTHelper.getInteger(iStack, COOLDOWN_NBT) > 0){ info.add("Cooldown: " + AgravaineNBTHelper.getInteger(iStack, COOLDOWN_NBT)); }else{ info.add("Cooldown: ready"); } } } Example weapons with cooldown: public class ItemBase extends Item{ public static final int COOLDOWN = 200; //200 - cooldown in ticks. 1 sec - 20 ticks. public ItemBase(){ super(); } public void onUpdate(ItemStack iStack, World world, Entity entity, int esotericInt, boolean agravaineBoolean){ if(!world.isRemote){ Cooldownable.onUpdate(iStack, COOLDOWN); } } public ItemStack onItemRightClick(ItemStack iStack, World world, EntityPlayer player){ if(Cooldownable.canUse(iStack, COOLDOWN)){ player.motionY++; } return iStack; } public void addInformation(ItemStack iStack, EntityPlayer player, List info, boolean esotericBoolean){ Cooldownable.displayCooldown(iStack, info); //display current cooldown } } Util: public class AgravaineNBTHelper{ /** * Used for null-safety * * @param stack */ public static NBTTagCompound checkNBT(ItemStack stack){ if(stack.stackTagCompound == null){ stack.stackTagCompound = new NBTTagCompound(); } return stack.stackTagCompound; } /** * Shortcut for NBTTagCompound.hasKey() */ public static boolean verifyKey(ItemStack stack, String name){ return stack.stackTagCompound.hasKey(name); } public static void setInteger(ItemStack stack, String name, int value){ stack.stackTagCompound.setInteger(name, value); } public static int getInteger(ItemStack stack, String name){ return stack.stackTagCompound.getInteger(name); } public static void decreaseInteger(ItemStack stack, String name, int value){ if(getInteger(stack, name) > 0){ setInteger(stack, name, getInteger(stack, name) - value); } } public static void decreaseIntegerIgnoreZero(ItemStack stack, String name, int value){ setInteger(stack, name, getInteger(stack, name) - value); } public static void setString(ItemStack stack, String name, String value){ stack.stackTagCompound.setString(name, value); } public static String getString(ItemStack stack, String name){ return stack.stackTagCompound.getString(name); } public static void setBoolean(ItemStack stack, String name, boolean value){ stack.stackTagCompound.setBoolean(name, value); } public static boolean getBoolean(ItemStack stack, String name){ return stack.stackTagCompound.getBoolean(name); } public static void invertBoolean(ItemStack stack, String name){ setBoolean(stack, name, !getBoolean(stack, name)); } public static void setByte(ItemStack stack, String name, byte value){ stack.stackTagCompound.setByte(name, value); } public static byte getByte(ItemStack stack, String name){ if(!verifyKey(stack, name)){ setByte(stack, name, (byte)0); } return stack.stackTagCompound.getByte(name); } } Good luck!
  6. Ну да, на mcmodding врятли кто ответит =)
  7. See https://github.com/Glitchfiend/BiomesOPlenty/tree/master/src/main/java/biomesoplenty/common/potions
  8. You did not specify a biome, which will spawn a spider.
  9. List<Entity> entities = mc.theWorld.getEntitiesWithinAABBExcludingEntity(mc.thePlayer, mc.thePlayer.boundingBox.expand(19.8D, 19.8D, 19.8D)); EntityLivingBase entity; while(entities.iterator.hasNext()){ entity = (EntityLivingBase)entities.iterator.next(); if(entity instanceof EntityGrunt){ //sample } }
  10. See PlayerInteractEvent and Action.RIGTH_CLICK_BLOCK.
  11. Order of objects depends on the ID. Put here are from smaller to larger and you will have everything in order.
  12. for(int i = 0; i < inv.getSizeInventory(); i++){ inv.setInventorySlotContents(i, itemStack); }
  13. TileEntity tile = world.getBlockTileEntity(x, y, z); if(tile instanceof IInventory){ IInventory inv = (IInventory)tile; inv.setInventorySlotContents(slot, itemStack); }
  14. Thank you! Try it now and accomplish your goal!
  15. That's what I deserve. But how to get GIT eclipse that it is synchronized?
×
×
  • Create New...

Important Information

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