[1.7.2]Рецепты своей "печки"

771
5
Сделал подобие печки(рецепты такие же, как и обычной печки).
С ванильными рецептами(FurnaceRecipes.class) пашет нормально, но когда создаю свои рецепты(полностью идентичный ванильный), то крашится.
TileEntity:

Код:
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;
    }
}

Рецепты:

Код:
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;
    }
}
Краш:
Код:
[18:47:36] [Client thread/FATAL]: Reported exception thrown!
net.minecraft.util.ReportedException: Rendering screen
    at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1176) ~[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:?]
Caused by: java.lang.NullPointerException
    at agravaine.agravainelib.item.crafting.CampfireRecipes.areItemStacksEqual(CampfireRecipes.java:74) ~[CampfireRecipes.class:?]
    at agravaine.agravainelib.item.crafting.CampfireRecipes.getCookingTime(CampfireRecipes.java:69) ~[CampfireRecipes.class:?]
    at agravaine.esoteric.tileentity.TileEntityCampfire.getCookProgressScaled(TileEntityCampfire.java:50) ~[TileEntityCampfire.class:?]
    at agravaine.esoteric.client.gui.GuiCampfire.drawGuiContainerBackgroundLayer(GuiCampfire.java:43) ~[GuiCampfire.class:?]
    at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:97) ~[GuiContainer.class:?]
    at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1145) ~[EntityRenderer.class:?]
    ... 9 more
---- Minecraft Crash Report ----
// Hi. I'm Minecraft, and I'm a crashaholic.

Time: 08.06.14 18:47
Description: Rendering screen

java.lang.NullPointerException: Rendering screen
    at agravaine.agravainelib.item.crafting.CampfireRecipes.areItemStacksEqual(CampfireRecipes.java:74)
    at agravaine.agravainelib.item.crafting.CampfireRecipes.getCookingTime(CampfireRecipes.java:69)
    at agravaine.esoteric.tileentity.TileEntityCampfire.getCookProgressScaled(TileEntityCampfire.java:50)
    at agravaine.esoteric.client.gui.GuiCampfire.drawGuiContainerBackgroundLayer(GuiCampfire.java:43)
    at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:97)
    at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1145)
    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:74)
    at agravaine.agravainelib.item.crafting.CampfireRecipes.getCookingTime(CampfireRecipes.java:69)
    at agravaine.esoteric.tileentity.TileEntityCampfire.getCookProgressScaled(TileEntityCampfire.java:50)
    at agravaine.esoteric.client.gui.GuiCampfire.drawGuiContainerBackgroundLayer(GuiCampfire.java:43)
    at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:97)

-- Screen render details --
Details:
    Screen name: agravaine.esoteric.client.gui.GuiCampfire
    Mouse location: Scaled: (213, 119). Absolute: (427, 240)
    Screen size: Scaled: (427, 240). Absolute: (854, 480). Scale factor of 2

-- Affected level --
Details:
    Level name: MpServer
    All players: 1 total; [EntityClientPlayerMP['Player32'/155, l='MpServer', x=983,98, y=5,62, z=-988,11]]
    Chunk stats: MultiplayerChunkCache: 225, 225
    Level seed: 0
    Level generator: ID 01 - flat, ver 0. Features enabled: false
    Level generator options: 
    Level spawn location: World: (991,4,-981), Chunk: (at 15,0,11 in 61,-62; contains blocks 976,0,-992 to 991,255,-977), Region: (1,-2; contains chunks 32,-64 to 63,-33, blocks 512,0,-1024 to 1023,255,-513)
    Level time: 36766 game time, 11181 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: 52 total; [EntitySheep['Sheep'/139, l='MpServer', x=1065,13, y=4,00, z=-921,81], EntityCow['Cow'/144, l='MpServer', x=1065,75, y=4,00, z=-912,75], EntityHorse['Horse'/38, l='MpServer', x=915,94, y=4,00, z=-1033,06], EntityHorse['Horse'/39, l='MpServer', x=917,22, y=4,00, z=-1036,00], EntityHorse['Horse'/37, l='MpServer', x=924,84, y=4,00, z=-1030,75], EntityCow['Cow'/42, l='MpServer', x=928,75, y=4,00, z=-1042,25], EntityChicken['Chicken'/43, l='MpServer', x=934,59, y=4,00, z=-1053,44], EntitySheep['Sheep'/40, l='MpServer', x=919,84, y=4,00, z=-909,16], EntityCow['Cow'/46, l='MpServer', x=941,69, y=4,00, z=-950,22], EntitySheep['Sheep'/47, l='MpServer', x=941,97, y=4,00, z=-916,09], EntityChicken['Chicken'/44, l='MpServer', x=941,63, y=4,00, z=-1053,63], EntityPig['Pig'/45, l='MpServer', x=942,81, y=4,00, z=-1000,94], EntitySheep['Sheep'/51, l='MpServer', x=939,25, y=4,00, z=-909,78], EntitySheep['Sheep'/54, l='MpServer', x=933,97, y=4,00, z=-910,03], EntityPig['Pig'/53, l='MpServer', x=943,94, y=4,00, z=-910,94], EntityChicken['Chicken'/63, l='MpServer', x=949,44, y=4,00, z=-1060,38], EntityChicken['Chicken'/62, l='MpServer', x=957,41, y=4,00, z=-1059,41], EntityCow['Cow'/68, l='MpServer', x=949,84, y=4,00, z=-1049,75], EntityHorse['Horse'/69, l='MpServer', x=952,38, y=4,00, z=-1051,91], EntityChicken['Chicken'/70, l='MpServer', x=949,44, y=4,00, z=-1052,59], EntityPig['Pig'/71, l='MpServer', x=944,19, y=4,00, z=-995,41], EntityChicken['Chicken'/64, l='MpServer', x=952,31, y=4,00, z=-1049,56], EntityChicken['Chicken'/65, l='MpServer', x=945,56, y=4,00, z=-1057,38], EntityChicken['Chicken'/66, l='MpServer', x=958,41, y=4,00, z=-1046,59], EntityCow['Cow'/67, l='MpServer', x=941,13, y=4,00, z=-1041,03], EntityHorse['Horse'/77, l='MpServer', x=959,94, y=4,00, z=-911,03], EntityCow['Cow'/72, l='MpServer', x=953,03, y=4,00, z=-1001,03], EntityCow['Cow'/73, l='MpServer', x=944,56, y=4,00, z=-993,75], EntityPig['Pig'/74, l='MpServer', x=954,94, y=4,00, z=-974,09], EntityCow['Cow'/93, l='MpServer', x=961,06, y=4,00, z=-1008,94], EntityPig['Pig'/92, l='MpServer', x=965,91, y=4,00, z=-1015,31], EntitySheep['Sheep'/95, l='MpServer', x=960,13, y=4,00, z=-1011,06], EntityPig['Pig'/94, l='MpServer', x=964,91, y=4,00, z=-1017,16], EntityHorse['Horse'/89, l='MpServer', x=975,09, y=4,00, z=-1065,63], EntitySheep['Sheep'/88, l='MpServer', x=969,97, y=4,00, z=-1063,09], EntityHorse['Horse'/90, l='MpServer', x=966,53, y=4,00, z=-1062,84], EntityCow['Cow'/100, l='MpServer', x=964,16, y=4,00, z=-941,06], EntityCow['Cow'/98, l='MpServer', x=962,97, y=4,00, z=-949,06], EntityCow['Cow'/99, l='MpServer', x=961,22, y=4,00, z=-930,66], EntityPig['Pig'/96, l='MpServer', x=956,13, y=4,00, z=-1006,66], EntityCow['Cow'/97, l='MpServer', x=971,31, y=4,00, z=-976,25], EntityHorse['Horse'/110, l='MpServer', x=990,22, y=4,00, z=-1040,06], EntitySheep['Sheep'/111, l='MpServer', x=978,69, y=4,00, z=-1054,22], EntitySheep['Sheep'/108, l='MpServer', x=978,03, y=4,00, z=-1057,44], EntitySheep['Sheep'/109, l='MpServer', x=983,16, y=4,00, z=-1054,84], EntitySheep['Sheep'/115, l='MpServer', x=990,09, y=4,00, z=-930,03], EntitySheep['Sheep'/114, l='MpServer', x=977,84, y=4,00, z=-933,09], EntityCow['Cow'/113, l='MpServer', x=988,22, y=4,00, z=-1011,78], EntityPig['Pig'/112, l='MpServer', x=981,19, y=4,00, z=-1025,03], EntityClientPlayerMP['Player32'/155, l='MpServer', x=983,98, y=5,62, z=-988,11], EntitySheep['Sheep'/122, l='MpServer', x=1008,84, y=4,00, z=-931,81], EntityCow['Cow'/121, l='MpServer', x=1015,88, y=4,00, z=-1000,03]]
    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:934)
    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: 941694344 bytes (898 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB)
    JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
    AABB Pool Size: 11127 (623112 bytes; 0 MB) allocated, 908 (50848 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: 1306 (73136 bytes; 0 MB) allocated, 157 (8792 bytes; 0 MB) used
    Anisotropic Filtering: Off (1)
#@!@# Game crashed! Crash report saved to: #@!@# C:\Modding\Forge\eclipse\.\crash-reports\crash-2014-06-08_18.47.36-client.txt
AL lib: (EE) alc_cleanup: 1 device not closed
 
905
5
> net.minecraft.util.ReportedException: Rendering screen
А гуй где, лолка?
 
905
5
Ну, во-первых,
Код:
Caused by: java.lang.NullPointerException
как бы намекает.
/me - хронический нечитатель.
 
771
5
Ну так гуи не причем, а вот что после эксепшена - вот это причем.

Код:
public class GuiCampfire extends GuiContainer{

    private ResourceLocation largeFurnace = new ResourceLocation(Esoteric.MODID, "textures/gui/campfire.png");
    
    private TileEntityCampfire furnaceInventory;
    
    public GuiCampfire(InventoryPlayer inventoryPlayer, TileEntityCampfire campfire){
        super(new ContainerCampfire(inventoryPlayer, campfire));
        furnaceInventory = campfire;
    }
    
    protected void drawGuiContainerForegroundLayer(int par1, int par2){
        fontRendererObj.drawString(StatCollector.translateToLocal("Campfire"), 50, 4, 0x404040);
        fontRendererObj.drawString(StatCollector.translateToLocal("Inventory"), 7, (ySize - 94) + 2, 0x404040);
    }
    
    protected void drawGuiContainerBackgroundLayer(float f, int var1, int var2){
        GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
        mc.renderEngine.bindTexture(largeFurnace);
        int j = (width - xSize) / 2;
        int k = (height - ySize) / 2;
        drawTexturedModalRect(j, k, 0, 0, xSize, ySize);


        if(furnaceInventory.isBurning()){
            int l = furnaceInventory.getBurnTimeRemainingScaled(12);
            drawTexturedModalRect(j + 82, (k + 71) - l, 176, 12 - l, 14, l + 2);
        }
        int i1 = furnaceInventory.getCookProgressScaled(24, 0);
        int j1 = furnaceInventory.getCookProgressScaled(24, 1);
        drawTexturedModalRect(j + 77, k + 34, 176, 14, j1 + 1, 16);
        drawTexturedModalRect(j + 77, k + 15, 176, 14, i1 + 1, 16);
    }
}
 
905
5
Поставь уже в
Код:
    private boolean areItemStacksEqual(ItemStack itemStackOne, ItemStack itemStackTwo){
        return itemStackTwo.getItem() == itemStackOne.getItem() && (itemStackTwo.getItemDamage() == 32767 || itemStackTwo.getItemDamage() == itemStackOne.getItemDamage());
    }
нулл-чек, е-мое.
 
771
5
Думаешь я не ставил?
Тогда вообще рецепты не пашут.
 
905
5
Ну что я могу сказать, если у тебя из-за нулл-чека не пашет? Не ругайся на нулл-чек. НИКОГДА не ругайся на нулл-чек. Повыводи массив внутри карты через sys.out. Мне помогает.

Да, и мне интересно, как можно запороть точную копию ванильного кода.
 
Сверху