Jump to content

[1.10.2] Loading custom gui for custom block


Messorix

Recommended Posts

Sure

 

ModBlock (parent of all type of custom blocks)

 

package com.messy.core.blocks;

import com.messy.core.MessyCore;

import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.IBlockAccess;

public abstract class ModBlock extends Block
{
public static String NAME;

    public ModBlock(String unlocalizedName, String registryName, Material material)
    {
    	super(material);
    	
    	NAME = unlocalizedName;
        this.setUnlocalizedName(unlocalizedName);
        this.setCreativeTab(MessyCore.messyCoreTab);
    }

public int getLightValue(IBlockAccess world, BlockPos pos) {
	return 0;
}

public boolean isNormalCube(IBlockState state)
{
	return false;
}

public boolean isFullCube(IBlockState state) {
	return false;
}
}

 

 

BlockMachine (parent of all blocks with processing like furnace and stuff)

 

package com.messy.core.blocks;

import java.util.Random;

import javax.annotation.Nullable;

import net.minecraft.block.BlockHorizontal;
import net.minecraft.block.ITileEntityProvider;
import net.minecraft.block.material.Material;
import net.minecraft.block.properties.IProperty;
import net.minecraft.block.properties.PropertyDirection;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.BlockStateContainer;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks;
import net.minecraft.inventory.Container;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumBlockRenderType;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.Mirror;
import net.minecraft.util.Rotation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public abstract class BlockMachine extends ModBlock implements ITileEntityProvider
{
    public static final PropertyDirection FACING = BlockHorizontal.FACING;
    private final boolean isWorking;
    protected static boolean keepInventory;
    /*protected static PropertyInteger burning_sides;
    protected static int one_side_light_value;
    protected static int two_side_light_value;
    protected static int three_side_light_value;
    protected static int four_side_light_value;*/
    
public BlockMachine(String unlocalizedName, String registryName, Material material, boolean isWorking) {
	super(unlocalizedName, registryName, material);
        this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
        this.isWorking = isWorking;
}

    @Nullable
    public Item getItemDropped(IBlockState state, Random rand, int fortune)
    {
        return Item.getItemFromBlock(Blocks.FURNACE);
    }

    public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state)
    {
        this.setDefaultFacing(worldIn, pos, state);
    }

    private void setDefaultFacing(World worldIn, BlockPos pos, IBlockState state)
    {
        if (!worldIn.isRemote)
        {
            IBlockState iblockstate = worldIn.getBlockState(pos.north());
            IBlockState iblockstate1 = worldIn.getBlockState(pos.south());
            IBlockState iblockstate2 = worldIn.getBlockState(pos.west());
            IBlockState iblockstate3 = worldIn.getBlockState(pos.east());
            EnumFacing enumfacing = (EnumFacing)state.getValue(FACING);

            if (enumfacing == EnumFacing.NORTH && iblockstate.isFullBlock() && !iblockstate1.isFullBlock())
            {
                enumfacing = EnumFacing.SOUTH;
            }
            else if (enumfacing == EnumFacing.SOUTH && iblockstate1.isFullBlock() && !iblockstate.isFullBlock())
            {
                enumfacing = EnumFacing.NORTH;
            }
            else if (enumfacing == EnumFacing.WEST && iblockstate2.isFullBlock() && !iblockstate3.isFullBlock())
            {
                enumfacing = EnumFacing.EAST;
            }
            else if (enumfacing == EnumFacing.EAST && iblockstate3.isFullBlock() && !iblockstate2.isFullBlock())
            {
                enumfacing = EnumFacing.WEST;
            }

            worldIn.setBlockState(pos, state.withProperty(FACING, enumfacing), 2);
        }
    }

    public static void setState(boolean active, World worldIn, BlockPos pos, BlockMachine workingBlock, BlockMachine notWorkingBlock)
    {
        IBlockState iblockstate = worldIn.getBlockState(pos);
        TileEntity tileentity = worldIn.getTileEntity(pos);
        keepInventory = true;

        if (active)
        {
            worldIn.setBlockState(pos, workingBlock.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3);
            worldIn.setBlockState(pos, workingBlock.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3);
        }
        else
        {
            worldIn.setBlockState(pos, notWorkingBlock.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3);
            worldIn.setBlockState(pos, notWorkingBlock.getDefaultState().withProperty(FACING, iblockstate.getValue(FACING)), 3);
        }

        keepInventory = false;

        if (tileentity != null)
        {
            tileentity.validate();
            worldIn.setTileEntity(pos, tileentity);
        }
    }
    
    public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
    {
        return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
    }

    public boolean hasComparatorInputOverride(IBlockState state)
    {
        return true;
    }

    public int getComparatorInputOverride(IBlockState blockState, World worldIn, BlockPos pos)
    {
        return Container.calcRedstone(worldIn.getTileEntity(pos));
    }

    public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state, BlockMachine item)
    {
        return new ItemStack(item);
    }
    
    /**
     * The type of render function called. 3 for standard block models, 2 for TESR's, 1 for liquids, -1 is no render
     */
    public EnumBlockRenderType getRenderType(IBlockState state)
    {
        return EnumBlockRenderType.MODEL;
    }

    /**
     * Convert the given metadata into a BlockState for this Block
     */
    public IBlockState getStateFromMeta(int meta)
    {
        EnumFacing enumfacing = EnumFacing.getFront(meta);

        if (enumfacing.getAxis() == EnumFacing.Axis.Y)
        {
            enumfacing = EnumFacing.NORTH;
        }

        return this.getDefaultState().withProperty(FACING, enumfacing);
    }

    /**
     * Convert the BlockState into the correct metadata value
     */
    public int getMetaFromState(IBlockState state)
    {
        return ((EnumFacing)state.getValue(FACING)).getIndex();
    }

    /**
     * Returns the blockstate with the given rotation from the passed blockstate. If inapplicable, returns the passed
     * blockstate.
     */
    public IBlockState withRotation(IBlockState state, Rotation rot)
    {
        return state.withProperty(FACING, rot.rotate((EnumFacing)state.getValue(FACING)));
    }

    /**
     * Returns the blockstate with the given mirror of the passed blockstate. If inapplicable, returns the passed
     * blockstate.
     */
    public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
    {
        return state.withRotation(mirrorIn.toRotation((EnumFacing)state.getValue(FACING)));
    }
    
    /*public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos, int burningSlots)
    {
    	return getDefaultState().withProperty(burning_sides, burningSlots);
    }*/

    protected BlockStateContainer createBlockState()
    {
        return new BlockStateContainer(this, new IProperty[] {FACING});
    }
    
/*@Override
    public int getLightValue(IBlockAccess world, BlockPos pos)
    {
    	int lightValue = 0;
    	IBlockState state = getActualState(getDefaultState(), world, pos);
    	int burningSides = state.getValue(burning_sides).intValue();
    	
    	switch (burningSides)
    	{
		case 4:
			lightValue += (int)((four_side_light_value - three_side_light_value) / (4.0 - 3.0) * burningSides);
		case 3:
			lightValue += (int)((three_side_light_value - two_side_light_value) / (3.0 - 2.0) * burningSides);
		case 2:
			lightValue += (int)((two_side_light_value - one_side_light_value) / (2.0 - 1.0) * burningSides);
		case 1:
			lightValue += one_side_light_value;
			break;
		default:
			break;
    	}
    	
    	lightValue = MathHelper.clamp_int(lightValue, 0, four_side_light_value);
    	return lightValue;
    }*/

public EnumBlockRenderType renderType(IBlockState state)
{
	return EnumBlockRenderType.MODEL;
}
}

 

 

BlockFluxGrinder (the grinder itself)

 

package com.messy.core.blocks;

import javax.annotation.Nullable;

import com.messy.core.ModBlocks;
import com.messy.core.Reference;
import com.messy.core.gui.GuiHandlerFluxGrinder;
import com.messy.core.tileentities.TileEntityFluxGrinder;

import net.minecraft.block.material.Material;
import net.minecraft.block.properties.PropertyInteger;
import net.minecraft.block.state.IBlockState;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryHelper;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.EnumHand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;

public class BlockFluxGrinder extends BlockMachine 
{
public BlockFluxGrinder() 
{
	super("flux_grinder", "flux_grinder", Material.ROCK, false);
	//burning_sides = PropertyInteger.create("burning_sides", 0, 1);
	//one_side_light_value = 15;
}

public TileEntity createNewTileEntity(World worldIn, int meta)
{
	return new TileEntityFluxGrinder();
}

    public static void setState(boolean active, World worldIn, BlockPos pos)
    {
    	BlockMachine.setState(active, worldIn, pos, ModBlocks.FLUXGRINDERWORKING, ModBlocks.FLUXGRINDER);
    }

    public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
    {
        worldIn.setBlockState(pos, state.withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2);

        if (stack.hasDisplayName())
        {
            TileEntity tileentity = worldIn.getTileEntity(pos);

            if (tileentity instanceof TileEntityFluxGrinder)
            {
                ((TileEntityFluxGrinder)tileentity).setCustomInventoryName(stack.getDisplayName());
            }
        }
    }

    public void breakBlock(World worldIn, BlockPos pos, IBlockState state)
    {
        if (!keepInventory)
        {
            TileEntity tileentity = worldIn.getTileEntity(pos);

            if (tileentity instanceof TileEntityFluxGrinder)
            {
                InventoryHelper.dropInventoryItems(worldIn, pos, (TileEntityFluxGrinder)tileentity);
                worldIn.updateComparatorOutputLevel(pos, this);
            }
        }

        super.breakBlock(worldIn, pos, state);
    }

    public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state)
    {
        return super.getItem(worldIn, pos, state, ModBlocks.FLUXGRINDER); 
    }

    @Override
    public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ)
    {
       	if (worldIn.isRemote)
       	{
       		return true;
       	}
       	
       	playerIn.openGui(Reference.MOD_ID, GuiHandlerFluxGrinder.getGUIID(), worldIn, pos.getX(), pos.getY(), pos.getZ());
       	
       	return true;
    }
    
    /*@Override
    public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos)
    {
    	TileEntityFluxGrinder te = (TileEntityFluxGrinder)world.getTileEntity(pos);
    	int burningSlots = te.numberOfBurningFuelSlots();
    	burningSlots = MathHelper.clamp_int(burningSlots, 0, 1);
    	return super.getActualState(state, world, pos, burningSlots);
    }*/
}

 

Link to comment
Share on other sites

  • Replies 79
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Well I don't know why it was returning null, but lets do some debugging here. Insert a if != null check and if it is print something in to the console.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

The new ModTileEntity doesn't give any console output

 

package com.messy.core.tileentities;

import java.util.Arrays;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagIntArray;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.SPacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.ITickable;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.TextComponentTranslation;
import net.minecraft.world.EnumSkyBlock;

public class ModTileEntity extends TileEntity implements IInventory, ITickable {
public static final int fuel_slots = 0;
public static final int input_slots = 0;
public static final int output_slots = 0;
public static int total_slots = fuel_slots + input_slots + output_slots;

public static final int first_fuel_slot = 0;
public static int first_input_slot = first_fuel_slot + input_slots;
public static int first_output_slot = first_input_slot + output_slots;

protected ItemStack[] itemStacks = new ItemStack[total_slots];

protected int[] burnTimeRemaining;
protected int[] burnTimeInitial;

protected short processTime;
protected static final short working_time_for_completion = 200;
protected int cachedNumberOfBurningSlots = -1;

public double fractionOfFuelRemaining(int fuelSlot) {
	double fraction;

	if (burnTimeRemaining != null)
	{
		System.out.print("burn time remaining is existing and set");
	}

	if (burnTimeInitial != null)
	{
		System.out.print("burn time initial is existing and set");
	}

	if (burnTimeInitial[fuelSlot] <= 0) {
		fraction = 0;
	} else {
		fraction = burnTimeRemaining[fuelSlot] / (double) burnTimeInitial[fuelSlot];
	}

	return MathHelper.clamp_double(fraction, 0.0, 1.0);
}

public int secondsOfFuelRemaining(int fuelSlot) {
	if (burnTimeRemaining[fuelSlot] <= 0) {
		return 0;
	}

	return burnTimeRemaining[fuelSlot] / 20;
}

public int numberOfBurningFuelSlots() {
	int burningCount = 0;

	if (burnTimeRemaining != null)
	{
		System.out.print("burn time remaining is existing and set");
	}

	for (int burnTime : burnTimeRemaining) {
		if (burnTime > 0) {
			++burningCount;
		}
	}

	return burningCount;
}

public double fractionOfProcessingTimeComplete() {
	double fraction = processTime / (double) working_time_for_completion;

	return MathHelper.clamp_double(fraction, 0.0, 1.0);
}

protected int burnFuel() {
	int burningCount = 0;
	boolean inventorychanged = false;

	for (int i = 0; i < fuel_slots; i++) {
		int fuelSlotNumber = i + first_fuel_slot;

		if (burnTimeRemaining[i] > 0) {
			--burnTimeRemaining[i];
			++burningCount;
		}

		if (burnTimeRemaining[i] == 0) {
			if (itemStacks[fuelSlotNumber] != null && getItemBurnTime(itemStacks[fuelSlotNumber]) > 0) {
				burnTimeRemaining[i] = burnTimeInitial[i] = getItemBurnTime(itemStacks[fuelSlotNumber]);
				--itemStacks[fuelSlotNumber].stackSize;
				++burningCount;
				inventorychanged = true;

				if (itemStacks[fuelSlotNumber].stackSize == 0) {
					itemStacks[fuelSlotNumber] = itemStacks[fuelSlotNumber].getItem()
							.getContainerItem(itemStacks[fuelSlotNumber]);
				}
			}
		}
	}

	if (inventorychanged) {
		markDirty();
	}

	return burningCount;
}

protected boolean canProcess() {
	return processItem(false);
}

protected void processItem() {
	processItem(true);
}

protected boolean processItem(boolean performProcess) {
	Integer firstSuitableInputSlot = null;
	Integer firstSuitableOutputSlot = null;
	ItemStack result = null;

	for (int inputSlot = first_input_slot; inputSlot < first_input_slot + input_slots; inputSlot++) {
		System.out.println("Input slot = " + inputSlot);

		if (itemStacks[inputSlot] != null) {
			result = getProcessingResultForItem(itemStacks[inputSlot]);

			if (result != null) {
				for (int outputSlot = first_output_slot; outputSlot < first_output_slot + output_slots; outputSlot++) {
					ItemStack outputStack = itemStacks[outputSlot];

					if (outputStack == null) {
						firstSuitableInputSlot = inputSlot;
						firstSuitableOutputSlot = outputSlot;
						break;
					}

					if (outputStack.getItem() == result.getItem() && (!outputStack.getHasSubtypes()
							|| outputStack.getMetadata() == outputStack.getMetadata()
									&& ItemStack.areItemStacksEqual(outputStack, result))) {
						int combinedSize = itemStacks[outputSlot].stackSize + result.stackSize;

						if (combinedSize <= getInventoryStackLimit()
								&& combinedSize <= itemStacks[outputSlot].getMaxStackSize()) {
							firstSuitableInputSlot = inputSlot;
							firstSuitableOutputSlot = outputSlot;
							break;
						}
					}
				}

				if (firstSuitableInputSlot != null) {
					break;
				}
			}
		}
	}

	if (firstSuitableInputSlot == null) {
		return false;
	}

	if (!performProcess) {
		return true;
	}

	itemStacks[firstSuitableInputSlot].stackSize--;

	if (itemStacks[firstSuitableInputSlot].stackSize <= 0) {
		itemStacks[firstSuitableInputSlot] = null;
	}

	if (itemStacks[firstSuitableOutputSlot] == null) {
		itemStacks[firstSuitableOutputSlot] = result.copy();
	} else {
		itemStacks[firstSuitableOutputSlot].stackSize += result.stackSize;
	}

	markDirty();
	return true;
}

public static short getItemBurnTime(ItemStack stack)
{
	int burnTime = TileEntityFurnace.getItemBurnTime(stack);
	return (short) MathHelper.clamp_int(burnTime, 0, Short.MAX_VALUE);
}

public static ItemStack getProcessingResultForItem(ItemStack stack){
	return stack;
}

@Override
public void update() {
	if (canProcess()) {
		int numberOfFuelBurning = burnFuel();

		if (numberOfFuelBurning > 0) {
			processTime += numberOfFuelBurning;
		} else {
			processTime -= 2;
		}

		if (processTime < 0) {
			processTime = 0;
		}

		if (processTime >= working_time_for_completion) {
			processItem();
			processTime = 0;
		}
	} else {
		processTime = 0;
	}

	int numberBurning = numberOfBurningFuelSlots();

	if (cachedNumberOfBurningSlots != numberBurning) {
		cachedNumberOfBurningSlots = numberBurning;

		if (worldObj.isRemote) {
			worldObj.markBlockRangeForRenderUpdate(pos, pos);
		}

		worldObj.checkLightFor(EnumSkyBlock.BLOCK, pos);
	}
}

@Override
public int getSizeInventory() {
	return itemStacks.length;
}

@Override
public ItemStack getStackInSlot(int index) {
	return itemStacks[index];
}

@Override
public ItemStack decrStackSize(int slotIndex, int count) {
	ItemStack itemStackInSlot = getStackInSlot(slotIndex);

	if (itemStackInSlot == null){
		return null;
	}

	ItemStack itemStackRemoved;

	if (itemStackInSlot.stackSize <= count)
	{
		itemStackRemoved = itemStackInSlot;
		setInventorySlotContents(slotIndex, null);
	}
	else
	{
		itemStackRemoved = itemStackInSlot.splitStack(count);

		if (itemStackInSlot.stackSize == 0)
		{
			setInventorySlotContents(slotIndex, null);
		}
	}

	markDirty();
	return itemStackRemoved;
}

@Override
public void setInventorySlotContents(int slotIndex, ItemStack stack) {
	itemStacks[slotIndex] = stack;

	if (stack != null && stack.stackSize > getInventoryStackLimit())
	{
		stack.stackSize = getInventoryStackLimit();
	}

	markDirty();
}

@Override
public int getInventoryStackLimit() {
	return 64;
}

@Override
public boolean isUseableByPlayer(EntityPlayer player) {
	if (this.worldObj.getTileEntity(this.pos) != this)
	{
		return false;
	}

	final double x_center_offset = 0.5;
	final double y_center_offset = 0.5;
	final double z_center_offset = 0.5;
	final double maximum_distance_sq = 8.0 * 8.0;

	return player.getDistanceSq(pos.getX() + x_center_offset, pos.getY() + y_center_offset, pos.getZ() + z_center_offset) < maximum_distance_sq;
}

public boolean isItemValidForFuelSlot(ItemStack stack) {
	return false;
}

public boolean isItemValidForInputSlot(ItemStack stack) {
	return false;
}

public boolean isItemValidForOutputSlot(ItemStack stack) {
	return false;
}

@Override
public NBTTagCompound writeToNBT(NBTTagCompound parentNBTTagCompound)
{
	super.writeToNBT(parentNBTTagCompound);

	NBTTagList dataForAllSlots = new NBTTagList();

	for (int i = 0; i < this.itemStacks.length; i++)
	{
		if (this.itemStacks[i] != null)
		{
			NBTTagCompound dataForThisSlot = new NBTTagCompound();
			dataForThisSlot.setByte("Slot", (byte)i);
			this.itemStacks[i].writeToNBT(dataForThisSlot);
			dataForAllSlots.appendTag(dataForThisSlot);
		}
	}

	parentNBTTagCompound.setTag("Items", dataForAllSlots);
	parentNBTTagCompound.setShort("ProcessTime", processTime);
	parentNBTTagCompound.setTag("BurnTimeRemaining", new NBTTagIntArray(burnTimeRemaining));
	parentNBTTagCompound.setTag("BurnTimeInitial", new NBTTagIntArray(burnTimeInitial));

	return parentNBTTagCompound;
}

@Override
public void readFromNBT(NBTTagCompound nbtTagCompound)
{
	super.readFromNBT(nbtTagCompound);

	final byte nbt_type_compound = 10;
	NBTTagList dataForAllSlots = nbtTagCompound.getTagList("Items", nbt_type_compound);
	Arrays.fill(itemStacks, null);

	for (int i = 0; i < dataForAllSlots.tagCount(); i++)
	{
		NBTTagCompound dataForOneSlot = dataForAllSlots.getCompoundTagAt(i);
		byte slotNumber = dataForOneSlot.getByte("Slot");

		if (slotNumber >= 0 && slotNumber < this.itemStacks.length)
		{
			this.itemStacks[slotNumber] = ItemStack.loadItemStackFromNBT(dataForOneSlot);
		}
	}

	processTime = nbtTagCompound.getShort("ProcessTime");
	burnTimeRemaining = Arrays.copyOf(nbtTagCompound.getIntArray("BurnTimeRemaining"), fuel_slots);
	burnTimeInitial = Arrays.copyOf(nbtTagCompound.getIntArray("BurnTimeInitial"), fuel_slots);
	cachedNumberOfBurningSlots = -1;
}

@SuppressWarnings("rawtypes")
public Packet getDescriptionPacket()
{
	NBTTagCompound nbtTagCompound = new NBTTagCompound();
	writeToNBT(nbtTagCompound);
	final int metadata = 0;
	return new SPacketUpdateTileEntity(this.pos, metadata, nbtTagCompound);
}

public void onDataPacket(NetworkManager net, SPacketUpdateTileEntity pkt)
{
	readFromNBT(pkt.getNbtCompound());
}

@Override
public void clear() {
	Arrays.fill(itemStacks, null);
}

@Override
public String getName() {
	return "Set this first";
}

@Override
public boolean hasCustomName() {
	return false;
}

public ITextComponent getDisplayName()
{
	return this.hasCustomName() ? new TextComponentString(this.getName()) : new TextComponentTranslation(this.getName());
}

private static final byte process_field_id = 0;
private static final byte first_burn_time_remaining_field_id = 1;
private static final byte first_burn_time_initial_field_id = first_burn_time_remaining_field_id + (byte)fuel_slots;
private static final byte number_of_fields = first_burn_time_initial_field_id + (byte)fuel_slots;

@Override
public int getField(int id) {
	if (id == process_field_id)
	{	
		return 0;
	}

	if (id >= first_burn_time_remaining_field_id && id < first_burn_time_remaining_field_id + (byte)fuel_slots)
	{
		return burnTimeRemaining[id - first_burn_time_remaining_field_id];
	}

	if (id >= first_burn_time_initial_field_id && id < first_burn_time_initial_field_id + (byte)fuel_slots)
	{
		return burnTimeInitial[id - first_burn_time_initial_field_id];
	}

	System.err.println("Invalid field ID in TileInventoryProcessing.getField: " + id);
	return 0;
}

@Override
public void setField(int id, int value) {
	if (id == process_field_id)
	{
		processTime = (short)value;
	}
	else if (id >= first_burn_time_remaining_field_id && id < first_burn_time_remaining_field_id + fuel_slots)
	{
		burnTimeRemaining[id - first_burn_time_remaining_field_id] = value;
	}
	else if (id >= first_burn_time_initial_field_id && id < first_burn_time_initial_field_id + fuel_slots)
	{
		burnTimeInitial[id - first_burn_time_initial_field_id] = value;
	}
	else
	{
		System.err.println("Invalid field ID in TileInventoryProcessing.getField: " + id);
	}
}

@Override
public int getFieldCount() {
	return number_of_fields;
}

@Override
public boolean isItemValidForSlot(int index, ItemStack stack) {
	return false;
}

@Override
public ItemStack removeStackFromSlot(int slotIndex) {
	ItemStack stack = getStackInSlot(slotIndex);

	if (stack != null)
	{
		setInventorySlotContents(slotIndex, null);
	}

	return stack;
}

@Override
public void openInventory(EntityPlayer player) {
	// TODO Auto-generated method stub

}

@Override
public void closeInventory(EntityPlayer player) {
	// TODO Auto-generated method stub

}
}

 

 

That means burnTimeRemaining == null, but I don't understand how...

Link to comment
Share on other sites

I changed my TileEntityFluxGrinder:

 

package com.messy.core.tileentities;

import com.messy.core.crafting.FluxGrinderRecipes;

import net.minecraft.item.ItemStack;

public class TileEntityFluxGrinder extends ModTileEntity
{
private static boolean setupDone = false; 
public static final int fuel_slots = 1;
public static final int input_slots = 2;
public static final int output_slots = 1;

protected ItemStack[] itemStacks = new ItemStack[total_slots];

public static ItemStack getProcessingResultForItem(ItemStack stack){
	return ModTileEntity.getProcessingResultForItem(FluxGrinderRecipes.instance().getGrindingResult(stack));
}

@Override
public String getName() {
	return "container.tile_entity_flux_grinder.name";
}

public double fractionOfFuelRemaining(int fuelSlot) {
	setup();
	return super.fractionOfFuelRemaining(fuelSlot);
}

public int secondsOfFuelRemaining(int fuelSlot) {
	setup();
	return super.secondsOfFuelRemaining(fuelSlot);
}

public int numberOfBurningFuelSlots() {
	setup();
	return super.numberOfBurningFuelSlots();
}

public void setCustomInventoryName(String displayName) {
}

private void setup()
{
	if (!setupDone)
	{
		total_slots = fuel_slots + input_slots + output_slots;
		first_input_slot = first_fuel_slot + input_slots;
		first_output_slot = first_input_slot + output_slots;
		burnTimeInitial = new int[fuel_slots];
		burnTimeRemaining = new int[fuel_slots];

		setupDone = true;
	}
}
}

 

 

Somehow I get to see the output in the console yet have this crashlog:

 

---- Minecraft Crash Report ----

// Don't be sad, have a hug! <3

 

Time: 8/3/16 1:29 PM

Description: Rendering screen

 

java.lang.NullPointerException: Rendering screen

at com.messy.core.tileentities.ModTileEntity.fractionOfFuelRemaining(ModTileEntity.java:55)

at com.messy.core.tileentities.TileEntityFluxGrinder.fractionOfFuelRemaining(TileEntityFluxGrinder.java:27)

at com.messy.core.gui.GuiFluxGrinder.drawGuiContainerBackgroundLayer(GuiFluxGrinder.java:70)

at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:94)

at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:374)

at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1147)

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1139)

at net.minecraft.client.Minecraft.run(Minecraft.java:406)

at net.minecraft.client.main.Main.main(Main.java:118)

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:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)

at GradleStart.main(GradleStart.java:26)

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Thread: Client thread

Stacktrace:

at com.messy.core.tileentities.ModTileEntity.fractionOfFuelRemaining(ModTileEntity.java:55)

at com.messy.core.tileentities.TileEntityFluxGrinder.fractionOfFuelRemaining(TileEntityFluxGrinder.java:27)

at com.messy.core.gui.GuiFluxGrinder.drawGuiContainerBackgroundLayer(GuiFluxGrinder.java:70)

at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:94)

at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:374)

 

-- Screen render details --

Details:

Screen name: com.messy.core.gui.GuiFluxGrinder

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; [EntityPlayerSP['Messorix'/346, l='MpServer', x=3.70, y=68.00, z=1.64]]

Chunk stats: MultiplayerChunkCache: 505, 505

Level seed: 0

Level generator: ID 00 - default, ver 1. Features enabled: false

Level generator options:

Level spawn location: World: (8,64,8), Chunk: (at 8,4,8 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)

Level time: 50471 game time, 5863 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: 117 total; [EntityHorse['Horse'/257, l='MpServer', x=80.06, y=87.00, z=77.50], EntityHorse['Horse'/62, l='MpServer', x=-74.96, y=72.00, z=-22.45], EntityCreeper['Creeper'/63, l='MpServer', x=-68.32, y=17.00, z=-8.43], EntityCreeper['Creeper'/64, l='MpServer', x=-73.46, y=17.00, z=-9.74], EntityCreeper['Creeper'/65, l='MpServer', x=-73.50, y=17.00, z=-8.50], EntitySkeleton['Skeleton'/66, l='MpServer', x=-73.66, y=18.00, z=-4.78], EntitySkeleton['Skeleton'/67, l='MpServer', x=-72.48, y=18.00, z=-11.27], EntityZombie['Zombie'/68, l='MpServer', x=-74.25, y=17.00, z=-8.47], EntityHorse['Horse'/69, l='MpServer', x=-68.66, y=73.00, z=-6.86], EntityHorse['Horse'/70, l='MpServer', x=-65.79, y=73.00, z=-11.44], EntityBat['Bat'/72, l='MpServer', x=-69.30, y=35.10, z=52.39], EntityCreeper['Creeper'/78, l='MpServer', x=-58.50, y=26.00, z=-56.50], EntityCreeper['Creeper'/79, l='MpServer', x=-57.50, y=26.00, z=-59.50], EntitySpider['Spider'/80, l='MpServer', x=-58.95, y=51.00, z=-61.99], EntityHorse['Horse'/81, l='MpServer', x=-60.97, y=70.00, z=-25.85], EntitySkeleton['Skeleton'/82, l='MpServer', x=-57.50, y=21.00, z=15.50], EntitySpider['Spider'/83, l='MpServer', x=-54.24, y=73.00, z=19.62], EntityPlayerSP['Messorix'/346, l='MpServer', x=3.70, y=68.00, z=1.64], EntitySkeleton['Skeleton'/97, l='MpServer', x=-38.26, y=27.00, z=-48.46], EntityRabbit['Rabbit'/98, l='MpServer', x=-42.06, y=74.00, z=-52.87], EntityZombie['Zombie'/99, l='MpServer', x=-49.48, y=22.00, z=-48.04], EntityRabbit['Rabbit'/100, l='MpServer', x=-37.52, y=74.00, z=-46.24], EntityHorse['Horse'/101, l='MpServer', x=-37.58, y=75.00, z=-41.45], EntitySquid['Squid'/102, l='MpServer', x=-38.60, y=62.47, z=-14.10], EntityBat['Bat'/103, l='MpServer', x=-27.79, y=25.03, z=6.56], EntityHorse['Donkey'/104, l='MpServer', x=-40.01, y=72.00, z=43.01], EntityHorse['Horse'/105, l='MpServer', x=-37.90, y=90.00, z=55.01], EntityHorse['Horse'/106, l='MpServer', x=-43.57, y=91.00, z=64.33], EntityHorse['Horse'/107, l='MpServer', x=-38.11, y=88.00, z=67.42], EntityHorse['Horse'/108, l='MpServer', x=-46.98, y=88.00, z=70.99], EntityBat['Bat'/112, l='MpServer', x=-18.25, y=14.10, z=-58.41], EntityHorse['Horse'/113, l='MpServer', x=-20.90, y=74.00, z=-53.29], EntityHorse['Horse'/114, l='MpServer', x=-29.68, y=75.00, z=-33.89], EntityRabbit['Rabbit'/115, l='MpServer', x=-30.48, y=74.00, z=-30.27], EntitySkeleton['Skeleton'/116, l='MpServer', x=-18.49, y=13.00, z=-0.24], EntityHorse['Donkey'/117, l='MpServer', x=-19.84, y=69.00, z=36.62], EntityHorse['Donkey'/118, l='MpServer', x=-17.28, y=69.00, z=39.72], EntityZombie['Zombie'/119, l='MpServer', x=-23.50, y=26.00, z=69.50], EntityRabbit['Rabbit'/127, l='MpServer', x=-11.02, y=71.00, z=-67.49], EntityRabbit['Rabbit'/128, l='MpServer', x=-13.39, y=71.00, z=-74.93], EntityRabbit['Rabbit'/129, l='MpServer', x=-1.44, y=76.00, z=-42.54], EntityHorse['Horse'/130, l='MpServer', x=-15.79, y=74.00, z=-35.97], EntityBat['Bat'/131, l='MpServer', x=-6.04, y=28.10, z=18.50], EntityHorse['Donkey'/132, l='MpServer', x=-15.86, y=70.00, z=29.01], EntitySkeleton['Skeleton'/133, l='MpServer', x=-9.50, y=20.00, z=39.50], EntityHorse['Donkey'/134, l='MpServer', x=-11.82, y=68.00, z=36.56], EntityCreeper['Creeper'/135, l='MpServer', x=-0.50, y=32.00, z=58.50], EntitySkeleton['Skeleton'/141, l='MpServer', x=7.51, y=41.00, z=-74.33], EntityCreeper['Creeper'/142, l='MpServer', x=-0.82, y=44.25, z=-69.46], EntityCreeper['Creeper'/143, l='MpServer', x=15.50, y=42.00, z=-66.50], EntityBat['Bat'/144, l='MpServer', x=0.83, y=36.10, z=-64.84], EntityZombie['Zombie'/145, l='MpServer', x=4.36, y=43.00, z=-66.51], EntityBat['Bat'/146, l='MpServer', x=8.75, y=35.10, z=-64.25], EntityHorse['Horse'/147, l='MpServer', x=6.59, y=67.00, z=-71.01], EntitySkeleton['Skeleton'/148, l='MpServer', x=15.50, y=42.00, z=-63.50], EntityBat['Bat'/149, l='MpServer', x=5.95, y=31.10, z=5.73], EntityBat['Bat'/150, l='MpServer', x=14.22, y=73.94, z=65.30], EntitySkeleton['Skeleton'/163, l='MpServer', x=24.40, y=17.00, z=-65.46], EntitySkeleton['Skeleton'/164, l='MpServer', x=22.24, y=37.00, z=-65.18], EntitySkeleton['Skeleton'/165, l='MpServer', x=24.29, y=18.00, z=-55.49], EntityCreeper['Creeper'/166, l='MpServer', x=31.52, y=28.00, z=-62.02], EntityZombie['Zombie'/167, l='MpServer', x=29.60, y=34.00, z=-42.08], EntityCreeper['Creeper'/168, l='MpServer', x=28.81, y=30.00, z=-22.54], EntityCreeper['Creeper'/169, l='MpServer', x=23.79, y=31.00, z=-24.48], EntityCreeper['Creeper'/170, l='MpServer', x=30.39, y=16.00, z=-25.51], EntityEnderman['Enderman'/171, l='MpServer', x=18.86, y=31.00, z=-19.50], EntityCreeper['Creeper'/172, l='MpServer', x=27.34, y=32.00, z=-27.44], EntityBat['Bat'/173, l='MpServer', x=26.46, y=32.10, z=-18.03], EntityEnderman['Enderman'/174, l='MpServer', x=25.85, y=32.00, z=-28.95], EntityHorse['Horse'/175, l='MpServer', x=27.02, y=66.00, z=47.85], EntityZombie['Zombie'/188, l='MpServer', x=30.53, y=11.00, z=-41.55], EntitySkeleton['Skeleton'/189, l='MpServer', x=39.50, y=15.00, z=-29.50], EntitySkeleton['Skeleton'/190, l='MpServer', x=41.50, y=15.00, z=-27.50], EntityBat['Bat'/191, l='MpServer', x=35.75, y=18.10, z=-22.25], EntityHorse['Horse'/192, l='MpServer', x=36.68, y=95.00, z=-30.64], EntityPig['Pig'/193, l='MpServer', x=37.45, y=95.00, z=-24.68], EntityHorse['Horse'/194, l='MpServer', x=33.18, y=93.00, z=-20.99], EntityHorse['Horse'/195, l='MpServer', x=44.41, y=82.00, z=25.10], EntityHorse['Horse'/196, l='MpServer', x=41.06, y=71.00, z=36.00], EntityCreeper['Creeper'/208, l='MpServer', x=60.77, y=21.00, z=-38.53], EntityCow['Cow'/209, l='MpServer', x=55.06, y=95.00, z=-44.60], EntityPig['Pig'/210, l='MpServer', x=66.28, y=93.00, z=-19.69], EntityHorse['Horse'/211, l='MpServer', x=54.30, y=95.00, z=-6.13], EntityHorse['Donkey'/212, l='MpServer', x=56.03, y=95.00, z=-4.11], EntityHorse['Horse'/213, l='MpServer', x=50.58, y=92.00, z=2.94], EntityPig['Pig'/214, l='MpServer', x=61.58, y=93.00, z=0.05], EntityPig['Pig'/215, l='MpServer', x=63.50, y=93.00, z=16.25], EntityPig['Pig'/216, l='MpServer', x=61.30, y=93.00, z=25.50], EntityHorse['Donkey'/217, l='MpServer', x=51.54, y=92.00, z=58.64], EntityHorse['Horse'/218, l='MpServer', x=52.79, y=92.00, z=57.23], EntityHorse['Horse'/219, l='MpServer', x=54.01, y=89.00, z=74.80], EntitySkeleton['Skeleton'/223, l='MpServer', x=69.08, y=49.00, z=-70.41], EntitySkeleton['Skeleton'/224, l='MpServer', x=79.58, y=50.00, z=-66.73], EntityCow['Cow'/225, l='MpServer', x=68.56, y=90.00, z=-72.61], EntityCreeper['Creeper'/226, l='MpServer', x=77.66, y=21.00, z=-51.90], EntityCreeper['Creeper'/227, l='MpServer', x=72.55, y=45.00, z=-47.82], EntityCow['Cow'/228, l='MpServer', x=71.09, y=96.00, z=-48.51], EntityZombie['Zombie'/229, l='MpServer', x=75.23, y=79.00, z=-35.45], EntityPig['Pig'/230, l='MpServer', x=74.11, y=93.00, z=-34.64], EntityZombie['Zombie'/231, l='MpServer', x=65.71, y=84.00, z=-38.55], EntityPig['Pig'/232, l='MpServer', x=67.68, y=96.00, z=-45.29], EntityPig['Pig'/233, l='MpServer', x=75.51, y=97.00, z=-45.71], EntitySkeleton['Skeleton'/234, l='MpServer', x=70.50, y=25.00, z=-16.21], EntityBat['Bat'/235, l='MpServer', x=60.01, y=43.93, z=-25.45], EntityCreeper['Creeper'/236, l='MpServer', x=78.35, y=52.00, z=-23.50], EntityCreeper['Creeper'/237, l='MpServer', x=65.57, y=84.00, z=-30.77], EntityHorse['Horse'/238, l='MpServer', x=66.33, y=96.00, z=-27.40], EntityHorse['Horse'/239, l='MpServer', x=77.94, y=88.00, z=-9.86], EntityPig['Pig'/240, l='MpServer', x=68.45, y=89.00, z=30.45], EntityPig['Pig'/241, l='MpServer', x=65.57, y=91.00, z=19.60], EntityHorse['Donkey'/242, l='MpServer', x=64.40, y=90.00, z=28.60], EntityHorse['Donkey'/243, l='MpServer', x=65.30, y=91.00, z=52.03], EntityHorse['Horse'/244, l='MpServer', x=75.43, y=88.00, z=49.27], EntityHorse['Horse'/245, l='MpServer', x=73.89, y=86.00, z=77.00], EntityZombie['Zombie'/249, l='MpServer', x=80.40, y=51.00, z=-60.01], EntityBat['Bat'/252, l='MpServer', x=80.51, y=27.10, z=-6.28], EntityZombie['Zombie'/254, l='MpServer', x=80.21, y=24.00, z=-13.40]]

Retry entities: 0 total; []

Server brand: fml,forge

Server type: Integrated singleplayer server

Stacktrace:

at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:450)

at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2779)

at net.minecraft.client.Minecraft.run(Minecraft.java:427)

at net.minecraft.client.main.Main.main(Main.java:118)

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:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)

at GradleStart.main(GradleStart.java:26)

 

-- System Details --

Details:

Minecraft Version: 1.10.2

Operating System: Windows 8.1 (amd64) version 6.3

Java Version: 1.8.0_102, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 565049304 bytes (538 MB) / 1689780224 bytes (1611 MB) up to 7635730432 bytes (7282 MB)

JVM Flags: 2 total; -Xmx8g -Xms256m

IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95

FML: MCP 9.32 Powered by Forge 12.18.1.2011 6 mods loaded, 6 mods active

States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

UCHIJAAAA mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)

UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.10.2-12.18.1.2011.jar)

UCHIJAAAA Forge{12.18.1.2011} [Minecraft Forge] (forgeSrc-1.10.2-12.18.1.2011.jar)

UCHIJAAAA messycore{0.0.1} [Messy: Core] (bin)

UCHIJAAAA examplemod{1.0} [Example Mod] (bin)

UCHIJAAAA JEI{3.7.6.232} [Just Enough Items] (jei_1.10.2-3.7.6.232.jar)

Loaded coremods (and transformers):

GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.13431 Compatibility Profile Context 16.150.2211.0' Renderer: 'AMD Radeon HD 7900 Series'

Launched Version: 1.10.2

LWJGL: 2.9.4

OpenGL: AMD Radeon HD 7900 Series GL version 4.5.13431 Compatibility Profile Context 16.150.2211.0, ATI Technologies Inc.

GL Caps: Using GL 1.3 multitexturing.

Using GL 1.3 texture combiners.

Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.

Shaders are available because OpenGL 2.1 is supported.

VBOs are available because OpenGL 1.5 is supported.

 

Using VBOs: Yes

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)

CPU: 4x Intel® Core i5-3570K CPU @ 3.40GHz

 

Link to comment
Share on other sites

public class TileEntityFluxGrinder extends ModTileEntity
{
public static final int fuel_slots = 1;
public static final int input_slots = 2;
public static final int output_slots = 1;

 

Are you sure? :P

 

These are different fields, they don't refer to the same ones at all.  Whatever you think you've done with these fields you have in fact, not done.

 

Your problem though is the fact that you never initialize burnTimeInitial to anything.  You helpfully check to see if it's not null and print "yep, it's not null!" but it is null, so the program crashes.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

After some changes (and troubles with git) I still get this error though

 

---- Minecraft Crash Report ----

// My bad.

 

Time: 8/3/16 6:16 PM

Description: Rendering screen

 

java.lang.NullPointerException: Rendering screen

at com.messorix.moleculecraft.base.tileentities.ModTileEntity.fractionOfFuelRemaining(ModTileEntity.java:55)

at com.messorix.moleculecraft.base.gui.GuiFluxGrinder.drawGuiContainerBackgroundLayer(GuiFluxGrinder.java:70)

at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:94)

at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:374)

at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1147)

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1139)

at net.minecraft.client.Minecraft.run(Minecraft.java:406)

at net.minecraft.client.main.Main.main(Main.java:118)

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:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)

at GradleStart.main(GradleStart.java:26)

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Thread: Client thread

Stacktrace:

at com.messorix.moleculecraft.base.tileentities.ModTileEntity.fractionOfFuelRemaining(ModTileEntity.java:55)

at com.messorix.moleculecraft.base.gui.GuiFluxGrinder.drawGuiContainerBackgroundLayer(GuiFluxGrinder.java:70)

at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:94)

at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:374)

 

-- Screen render details --

Details:

Screen name: com.messorix.moleculecraft.base.gui.GuiFluxGrinder

Mouse location: Scaled: (480, 254). Absolute: (960, 508)

Screen size: Scaled: (960, 509). Absolute: (1920, 1017). Scale factor of 2

 

-- Affected level --

Details:

Level name: MpServer

All players: 1 total; [EntityPlayerSP['Messorix'/350, l='MpServer', x=3.69, y=68.00, z=1.59]]

Chunk stats: MultiplayerChunkCache: 505, 505

Level seed: 0

Level generator: ID 00 - default, ver 1. Features enabled: false

Level generator options:

Level spawn location: World: (8,64,8), Chunk: (at 8,4,8 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)

Level time: 56364 game time, 11756 day time

Level dimension: 0

Level storage version: 0x00000 - Unknown?

Level weather: Rain time: 0 (now: true), thunder time: 0 (now: false)

Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false

Forced entities: 116 total; [EntityHorse['Horse'/256, l='MpServer', x=70.13, y=88.00, z=72.08], EntityPig['Pig'/263, l='MpServer', x=80.41, y=94.00, z=-43.23], EntityPig['Pig'/264, l='MpServer', x=82.73, y=95.00, z=-21.56], EntityHorse['Horse'/266, l='MpServer', x=80.91, y=87.00, z=79.13], EntityHorse['Horse'/69, l='MpServer', x=-66.88, y=71.00, z=-23.99], EntityHorse['Horse'/72, l='MpServer', x=-69.15, y=73.00, z=-8.93], EntityBat['Bat'/78, l='MpServer', x=-48.70, y=46.02, z=-69.25], EntityRabbit['Rabbit'/79, l='MpServer', x=-48.31, y=74.00, z=-56.32], EntityItem['item.item.dyePowder.black'/80, l='MpServer', x=-55.71, y=55.00, z=-25.13], EntityHorse['Horse'/81, l='MpServer', x=-54.73, y=69.00, z=-20.36], EntityBat['Bat'/82, l='MpServer', x=-60.44, y=21.03, z=-4.29], EntitySkeleton['Skeleton'/83, l='MpServer', x=-57.50, y=21.00, z=20.21], EntityCreeper['Creeper'/84, l='MpServer', x=-58.50, y=21.00, z=24.50], EntitySkeleton['Skeleton'/94, l='MpServer', x=-37.50, y=49.00, z=-73.50], EntityPlayerSP['Messorix'/350, l='MpServer', x=3.69, y=68.00, z=1.59], EntityRabbit['Rabbit'/95, l='MpServer', x=-40.50, y=74.00, z=-46.49], EntityHorse['Horse'/96, l='MpServer', x=-40.99, y=74.00, z=-40.13], EntityRabbit['Rabbit'/97, l='MpServer', x=-33.06, y=75.00, z=-34.79], EntityHorse['Donkey'/98, l='MpServer', x=-40.01, y=73.00, z=43.36], EntityHorse['Horse'/99, l='MpServer', x=-43.88, y=92.00, z=61.90], EntityHorse['Horse'/100, l='MpServer', x=-46.16, y=92.00, z=62.14], EntityHorse['Horse'/101, l='MpServer', x=-40.18, y=87.00, z=80.58], EntityBat['Bat'/111, l='MpServer', x=-30.64, y=48.61, z=-58.43], EntityHorse['Horse'/112, l='MpServer', x=-31.58, y=74.00, z=-40.37], EntityHorse['Horse'/113, l='MpServer', x=-24.00, y=74.00, z=-50.36], EntitySquid['Squid'/114, l='MpServer', x=-19.56, y=62.58, z=18.02], EntitySquid['Squid'/115, l='MpServer', x=-22.34, y=61.18, z=13.95], EntityHorse['Donkey'/116, l='MpServer', x=-16.68, y=69.00, z=42.78], EntityHorse['Horse'/117, l='MpServer', x=-31.26, y=87.00, z=63.14], EntityCreeper['Creeper'/128, l='MpServer', x=-0.57, y=44.00, z=-72.76], EntityRabbit['Rabbit'/129, l='MpServer', x=-8.49, y=71.00, z=-70.10], EntityRabbit['Rabbit'/130, l='MpServer', x=-11.89, y=71.00, z=-75.93], EntityRabbit['Rabbit'/131, l='MpServer', x=-3.75, y=75.00, z=-36.13], EntityHorse['Horse'/132, l='MpServer', x=-12.47, y=76.00, z=-41.53], EntitySpider['Spider'/133, l='MpServer', x=-9.50, y=12.00, z=10.50], EntitySquid['Squid'/134, l='MpServer', x=-15.06, y=61.12, z=6.42], EntitySkeleton['Skeleton'/135, l='MpServer', x=-5.71, y=21.00, z=28.55], EntityHorse['Donkey'/136, l='MpServer', x=-15.41, y=70.00, z=29.97], EntityHorse['Donkey'/137, l='MpServer', x=-1.07, y=66.00, z=39.99], EntityHorse['Donkey'/138, l='MpServer', x=-14.00, y=69.00, z=31.80], EntitySkeleton['Skeleton'/148, l='MpServer', x=9.80, y=44.00, z=-66.50], EntityHorse['Horse'/149, l='MpServer', x=8.15, y=68.00, z=-71.01], EntityZombie['Zombie'/150, l='MpServer', x=15.50, y=27.00, z=-2.50], EntityCreeper['Creeper'/151, l='MpServer', x=10.81, y=32.00, z=-2.58], EntityZombie['Zombie'/152, l='MpServer', x=10.50, y=30.00, z=3.50], EntityZombie['Zombie'/153, l='MpServer', x=10.50, y=29.00, z=8.50], EntityEnderman['Enderman'/154, l='MpServer', x=8.48, y=30.00, z=13.29], EntitySkeleton['Skeleton'/155, l='MpServer', x=9.50, y=28.00, z=41.50], EntityCreeper['Creeper'/162, l='MpServer', x=30.60, y=27.00, z=-64.77], EntitySkeleton['Skeleton'/163, l='MpServer', x=19.50, y=26.00, z=-64.50], EntityBat['Bat'/165, l='MpServer', x=23.75, y=28.10, z=-66.50], EntityZombie['Zombie'/166, l='MpServer', x=30.50, y=30.00, z=-54.50], EntitySkeleton['Skeleton'/167, l='MpServer', x=26.50, y=29.00, z=-58.79], EntityBat['Bat'/168, l='MpServer', x=25.14, y=10.61, z=-47.25], EntityBat['Bat'/169, l='MpServer', x=19.96, y=17.08, z=-53.87], EntityBat['Bat'/170, l='MpServer', x=19.25, y=14.81, z=-51.50], EntityZombie['Zombie'/171, l='MpServer', x=24.82, y=31.00, z=-44.48], EntityCreeper['Creeper'/172, l='MpServer', x=23.50, y=25.00, z=-16.50], EntityZombie['Zombie'/173, l='MpServer', x=23.50, y=25.00, z=-16.50], EntityBat['Bat'/174, l='MpServer', x=16.77, y=25.69, z=-12.45], EntityBat['Bat'/175, l='MpServer', x=38.04, y=31.74, z=47.93], EntityHorse['Horse'/176, l='MpServer', x=26.99, y=66.00, z=49.41], EntityZombie['Zombie'/190, l='MpServer', x=37.49, y=28.00, z=-66.19], EntitySkeleton['Skeleton'/191, l='MpServer', x=44.50, y=57.00, z=-64.50], EntityBat['Bat'/192, l='MpServer', x=43.65, y=36.94, z=-50.23], EntityZombie['Zombie'/193, l='MpServer', x=30.54, y=32.00, z=-44.75], EntityZombie['Zombie'/194, l='MpServer', x=32.70, y=33.00, z=-45.34], EntityBat['Bat'/195, l='MpServer', x=41.97, y=17.10, z=-22.50], EntityBat['Bat'/196, l='MpServer', x=39.75, y=18.10, z=-24.25], EntityPig['Pig'/197, l='MpServer', x=36.56, y=94.00, z=-21.40], EntityHorse['Horse'/198, l='MpServer', x=53.15, y=95.00, z=-38.32], EntityPig['Pig'/199, l='MpServer', x=47.43, y=95.00, z=-17.78], EntitySpider['Spider'/200, l='MpServer', x=35.97, y=31.00, z=-15.46], EntityHorse['Horse'/201, l='MpServer', x=44.96, y=79.00, z=26.89], EntityHorse['Horse'/202, l='MpServer', x=46.93, y=72.00, z=38.76], EntitySkeleton['Skeleton'/212, l='MpServer', x=50.50, y=16.00, z=-70.50], EntityCreeper['Creeper'/213, l='MpServer', x=53.29, y=56.00, z=-67.15], EntitySkeleton['Skeleton'/214, l='MpServer', x=59.50, y=23.00, z=-51.50], EntityBat['Bat'/215, l='MpServer', x=60.40, y=24.51, z=-49.46], EntityCreeper['Creeper'/216, l='MpServer', x=56.50, y=56.00, z=-61.50], EntityCreeper['Creeper'/217, l='MpServer', x=56.50, y=56.00, z=-63.50], EntityCreeper['Creeper'/218, l='MpServer', x=57.50, y=56.00, z=-60.50], EntityZombie['Zombie'/219, l='MpServer', x=56.30, y=27.63, z=-36.70], EntityBat['Bat'/220, l='MpServer', x=61.50, y=41.00, z=-34.58], EntityCow['Cow'/221, l='MpServer', x=54.95, y=95.00, z=-46.57], EntityCreeper['Creeper'/222, l='MpServer', x=59.59, y=85.00, z=-41.17], EntityPig['Pig'/223, l='MpServer', x=52.50, y=92.00, z=-44.67], EntityHorse['Horse'/224, l='MpServer', x=49.79, y=96.00, z=-35.66], EntityCow['Cow'/225, l='MpServer', x=57.85, y=95.00, z=-49.48], EntitySkeleton['Skeleton'/226, l='MpServer', x=55.30, y=11.01, z=-20.30], EntityBat['Bat'/227, l='MpServer', x=60.09, y=13.05, z=-19.34], EntityHorse['Horse'/228, l='MpServer', x=56.14, y=95.00, z=-4.99], EntityBat['Bat'/229, l='MpServer', x=65.75, y=13.76, z=15.25], EntityHorse['Donkey'/230, l='MpServer', x=59.28, y=94.00, z=2.10], EntityHorse['Horse'/231, l='MpServer', x=56.17, y=95.00, z=8.78], EntityPig['Pig'/232, l='MpServer', x=60.26, y=91.00, z=28.51], EntityHorse['Donkey'/233, l='MpServer', x=64.95, y=91.00, z=51.22], EntityHorse['Horse'/234, l='MpServer', x=56.77, y=94.00, z=55.03], EntitySkeleton['Skeleton'/235, l='MpServer', x=60.50, y=18.00, z=76.50], EntityZombie['Zombie'/236, l='MpServer', x=54.50, y=21.00, z=78.50], EntityHorse['Horse'/237, l='MpServer', x=50.10, y=88.00, z=74.95], EntityZombie['Zombie'/241, l='MpServer', x=65.50, y=49.00, z=-65.50], EntityPig['Pig'/242, l='MpServer', x=74.49, y=93.00, z=-34.78], EntityPig['Pig'/243, l='MpServer', x=69.74, y=88.00, z=-33.54], EntityHorse['Horse'/244, l='MpServer', x=78.88, y=95.00, z=-38.02], EntityZombie['Zombie'/245, l='MpServer', x=77.18, y=22.00, z=-28.60], EntityZombie['Zombie'/246, l='MpServer', x=74.95, y=20.00, z=-28.30], EntityHorse['Horse'/247, l='MpServer', x=78.55, y=94.00, z=-16.48], EntityPig['Pig'/248, l='MpServer', x=71.69, y=94.00, z=-16.48], EntitySkeleton['Skeleton'/249, l='MpServer', x=73.50, y=23.00, z=-10.50], EntityPig['Pig'/250, l='MpServer', x=60.39, y=94.00, z=8.53], EntityPig['Pig'/251, l='MpServer', x=76.25, y=91.00, z=16.50], EntityHorse['Donkey'/252, l='MpServer', x=69.62, y=90.00, z=27.16], EntityPig['Pig'/253, l='MpServer', x=69.24, y=91.00, z=17.79], EntityHorse['Horse'/254, l='MpServer', x=74.86, y=89.00, z=46.93], EntityHorse['Donkey'/255, l='MpServer', x=64.18, y=93.00, z=56.40]]

Retry entities: 0 total; []

Server brand: fml,forge

Server type: Integrated singleplayer server

Stacktrace:

at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:450)

at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2779)

at net.minecraft.client.Minecraft.run(Minecraft.java:427)

at net.minecraft.client.main.Main.main(Main.java:118)

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:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)

at GradleStart.main(GradleStart.java:26)

 

-- System Details --

Details:

Minecraft Version: 1.10.2

Operating System: Windows 8.1 (amd64) version 6.3

Java Version: 1.8.0_102, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 429189112 bytes (409 MB) / 1720188928 bytes (1640 MB) up to 7635730432 bytes (7282 MB)

JVM Flags: 2 total; -Xmx8g -Xms256m

IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95

FML: MCP 9.32 Powered by Forge 12.18.1.2011 6 mods loaded, 6 mods active

States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

UCHIJAAAA mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)

UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.10.2-12.18.1.2011.jar)

UCHIJAAAA Forge{12.18.1.2011} [Minecraft Forge] (forgeSrc-1.10.2-12.18.1.2011.jar)

UCHIJAAAA moleculecraft{0.0.1} [MoleculeCraft] (bin)

UCHIJAAAA examplemod{1.0} [Example Mod] (bin)

UCHIJAAAA JEI{3.7.6.232} [Just Enough Items] (jei_1.10.2-3.7.6.232.jar)

Loaded coremods (and transformers):

GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.13431 Compatibility Profile Context 16.150.2211.0' Renderer: 'AMD Radeon HD 7900 Series'

Launched Version: 1.10.2

LWJGL: 2.9.4

OpenGL: AMD Radeon HD 7900 Series GL version 4.5.13431 Compatibility Profile Context 16.150.2211.0, ATI Technologies Inc.

GL Caps: Using GL 1.3 multitexturing.

Using GL 1.3 texture combiners.

Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.

Shaders are available because OpenGL 2.1 is supported.

VBOs are available because OpenGL 1.5 is supported.

 

Using VBOs: Yes

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)

CPU: 4x Intel® Core i5-3570K CPU @ 3.40GHz

 

Link to comment
Share on other sites

Your problem though is the fact that you never initialize burnTimeInitial to anything.  You helpfully check to see if it's not null and print "yep, it's not null!" but it is null, so the program crashes.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Whenever I run the code as it is right now on github, the moment it crashes seems randomish.

In the console I can see it runs through fractionOfFuelRemaining several times without failing, after which it suddenly crashes.

 

I added "System.out.println("FuelSlots = " + fuel_slots + " (fractionOfFuelRemaining)");" on line 54.

 

 

[03:47:25] [server thread/INFO]: Saving chunks for level 'Test world'/The End

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.TileEntityFluxGrinder:setup:100]: Setup runned

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.TileEntityFluxGrinder:setup:104]: Setup not done yet

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.TileEntityFluxGrinder:setup:118]: Setup done

[03:47:30] [Client thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.TileEntityFluxGrinder:setup:100]: Setup runned

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:processItem:153]: Input slot = 1

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:84]: BTR = 1 (numberOfBurningFuelSlots)

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:88]: burnTime = 0

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:95]: burningCount = 0

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:processItem:153]: Input slot = 1

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:84]: BTR = 1 (numberOfBurningFuelSlots)

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:88]: burnTime = 0

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:95]: burningCount = 0

[03:47:30] [Client thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:fractionOfFuelRemaining:54]: FuelSlots = 1 (fractionOfFuelRemaining)

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:processItem:153]: Input slot = 1

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:84]: BTR = 1 (numberOfBurningFuelSlots)

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:88]: burnTime = 0

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:95]: burningCount = 0

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:processItem:153]: Input slot = 1

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:84]: BTR = 1 (numberOfBurningFuelSlots)

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:88]: burnTime = 0

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:95]: burningCount = 0

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:processItem:153]: Input slot = 1

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:84]: BTR = 1 (numberOfBurningFuelSlots)

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:88]: burnTime = 0

[03:47:30] [server thread/INFO] [sTDOUT]: [com.messorix.moleculecraft.base.tileentities.ModTileEntity:numberOfBurningFuelSlots:95]: burningCount = 0

[03:47:30] [server thread/INFO]: Stopping server

[03:47:30] [server thread/INFO]: Saving players

[03:47:30] [server thread/INFO]: Saving worlds

[03:47:30] [server thread/INFO]: Saving chunks for level 'Test world'/Overworld

[03:47:30] [server thread/ERROR] [FML]: A TileEntity type com.messorix.moleculecraft.base.tileentities.TileEntityFluxGrinder has throw an exception trying to write state. It will not persist. Report this to the mod author

java.lang.RuntimeException: class com.messorix.moleculecraft.base.tileentities.TileEntityFluxGrinder is missing a mapping! This is a bug!

at net.minecraft.tileentity.TileEntity.writeInternal(TileEntity.java:95) ~[TileEntity.class:?]

at net.minecraft.tileentity.TileEntity.writeToNBT(TileEntity.java:86) ~[TileEntity.class:?]

at com.messorix.moleculecraft.base.tileentities.ModTileEntity.writeToNBT(ModTileEntity.java:345) ~[ModTileEntity.class:?]

at net.minecraft.world.chunk.storage.AnvilChunkLoader.writeChunkToNBT(AnvilChunkLoader.java:409) [AnvilChunkLoader.class:?]

at net.minecraft.world.chunk.storage.AnvilChunkLoader.saveChunk(AnvilChunkLoader.java:182) [AnvilChunkLoader.class:?]

at net.minecraft.world.gen.ChunkProviderServer.saveChunkData(ChunkProviderServer.java:208) [ChunkProviderServer.class:?]

at net.minecraft.world.gen.ChunkProviderServer.saveChunks(ChunkProviderServer.java:236) [ChunkProviderServer.class:?]

at net.minecraft.world.WorldServer.saveAllChunks(WorldServer.java:1061) [WorldServer.class:?]

at net.minecraft.server.MinecraftServer.saveAllWorlds(MinecraftServer.java:414) [MinecraftServer.class:?]

at net.minecraft.server.integrated.IntegratedServer.saveAllWorlds(IntegratedServer.java:238) [integratedServer.class:?]

at net.minecraft.server.MinecraftServer.stopServer(MinecraftServer.java:455) [MinecraftServer.class:?]

at net.minecraft.server.integrated.IntegratedServer.stopServer(IntegratedServer.java:369) [integratedServer.class:?]

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:589) [MinecraftServer.class:?]

at java.lang.Thread.run(Unknown Source) [?:1.8.0_102]

[03:47:30] [server thread/INFO]: Saving chunks for level 'Test world'/Nether

[03:47:30] [server thread/INFO]: Saving chunks for level 'Test world'/The End

[03:47:31] [server thread/INFO] [FML]: Unloading dimension 0

[03:47:31] [server thread/INFO] [FML]: Unloading dimension -1

[03:47:31] [server thread/INFO] [FML]: Unloading dimension 1

[03:47:31] [Client thread/FATAL]: Reported exception thrown!

net.minecraft.util.ReportedException: Rendering screen

at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1174) ~[EntityRenderer.class:?]

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1139) ~[Minecraft.class:?]

at net.minecraft.client.Minecraft.run(Minecraft.java:406) [Minecraft.class:?]

at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_102]

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_102]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_102]

at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_102]

at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]

at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_102]

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_102]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_102]

at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_102]

at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]

at GradleStart.main(GradleStart.java:26) [start/:?]

Caused by: java.lang.NullPointerException

at com.messorix.moleculecraft.base.tileentities.ModTileEntity.fractionOfFuelRemaining(ModTileEntity.java:56) ~[ModTileEntity.class:?]

at com.messorix.moleculecraft.base.gui.GuiFluxGrinder.drawGuiContainerBackgroundLayer(GuiFluxGrinder.java:70) ~[GuiFluxGrinder.class:?]

at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:94) ~[GuiContainer.class:?]

at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:374) ~[ForgeHooksClient.class:?]

at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1147) ~[EntityRenderer.class:?]

... 15 more

[03:47:31] [Client thread/INFO] [sTDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:649]: ---- Minecraft Crash Report ----

// Quite honestly, I wouldn't worry myself about that.

 

 

 

The error-part above is always the same, but the STDOUT-part varies in size for some random reason.

burnTimeInitial is set and at one point just un-sets itself or something.

Link to comment
Share on other sites

In the method fractionOfFuelRemaining just insert a != null check that will reset it not equal to null. And to reset it not equal to null I would create a boolean method to do this and make it return true if it could and false if it couldn't and if that method returns false make the method that ran fractionOfFuelRemaining return 0; or return; something default like that.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

That seemed to have fixed the gui crashing the game.

I also figured out the alignment of the player inventory and hotbar, so they are good as well.

 

Somehow the input and output slots are still misaligned though...

On top of that, when I shift-click an item that has a recipe in the flux grinder it crashes the game with this error:

 

---- Minecraft Crash Report ----

// I blame Dinnerbone.

 

Time: 8/4/16 4:23 AM

Description: Updating screen events

 

java.lang.IndexOutOfBoundsException: Index: 36, Size: 36

at java.util.ArrayList.rangeCheck(Unknown Source)

at java.util.ArrayList.get(Unknown Source)

at net.minecraft.inventory.Container.mergeItemStack(Container.java:653)

at com.messorix.moleculecraft.base.containers.ContainerFluxGrinder.transferStackInSlot(ContainerFluxGrinder.java:47)

at net.minecraft.inventory.Container.slotClick(Container.java:275)

at net.minecraft.client.multiplayer.PlayerControllerMP.windowClick(PlayerControllerMP.java:594)

at net.minecraft.client.gui.inventory.GuiContainer.handleMouseClick(GuiContainer.java:685)

at net.minecraft.client.gui.inventory.GuiContainer.mouseClicked(GuiContainer.java:427)

at net.minecraft.client.gui.GuiScreen.handleMouseInput(GuiScreen.java:615)

at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:581)

at net.minecraft.client.Minecraft.runTick(Minecraft.java:1797)

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1118)

at net.minecraft.client.Minecraft.run(Minecraft.java:406)

at net.minecraft.client.main.Main.main(Main.java:118)

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:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)

at GradleStart.main(GradleStart.java:26)

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Thread: Client thread

Stacktrace:

at java.util.ArrayList.rangeCheck(Unknown Source)

at java.util.ArrayList.get(Unknown Source)

at net.minecraft.inventory.Container.mergeItemStack(Container.java:653)

at com.messorix.moleculecraft.base.containers.ContainerFluxGrinder.transferStackInSlot(ContainerFluxGrinder.java:47)

at net.minecraft.inventory.Container.slotClick(Container.java:275)

at net.minecraft.client.multiplayer.PlayerControllerMP.windowClick(PlayerControllerMP.java:594)

at net.minecraft.client.gui.inventory.GuiContainer.handleMouseClick(GuiContainer.java:685)

at net.minecraft.client.gui.inventory.GuiContainer.mouseClicked(GuiContainer.java:427)

at net.minecraft.client.gui.GuiScreen.handleMouseInput(GuiScreen.java:615)

at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:581)

 

-- Affected screen --

Details:

Screen name: com.messorix.moleculecraft.base.gui.GuiFluxGrinder

 

-- Affected level --

Details:

Level name: MpServer

All players: 1 total; [EntityPlayerSP['Messorix'/348, l='MpServer', x=3.69, y=68.00, z=1.59]]

Chunk stats: MultiplayerChunkCache: 505, 505

Level seed: 0

Level generator: ID 00 - default, ver 1. Features enabled: false

Level generator options:

Level spawn location: World: (8,64,8), Chunk: (at 8,4,8 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)

Level time: 59378 game time, 14770 day time

Level dimension: 0

Level storage version: 0x00000 - Unknown?

Level weather: Rain time: 0 (now: true), thunder time: 0 (now: false)

Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false

Forced entities: 116 total; [EntityHorse['Horse'/258, l='MpServer', x=82.16, y=97.00, z=-53.90], EntityPig['Pig'/259, l='MpServer', x=83.27, y=96.00, z=-41.48], EntityHorse['Horse'/261, l='MpServer', x=81.85, y=95.00, z=-20.93], EntityHorse['Horse'/69, l='MpServer', x=-70.95, y=73.00, z=-18.91], EntityBat['Bat'/76, l='MpServer', x=-48.40, y=44.91, z=-69.28], EntityItem['item.item.dyePowder.black'/77, l='MpServer', x=-55.71, y=55.00, z=-25.13], EntityHorse['Horse'/78, l='MpServer', x=-51.12, y=64.00, z=-21.13], EntityBat['Bat'/79, l='MpServer', x=-62.86, y=20.93, z=-0.38], EntitySkeleton['Skeleton'/80, l='MpServer', x=-59.22, y=21.00, z=20.49], EntityCreeper['Creeper'/81, l='MpServer', x=-59.48, y=21.00, z=22.81], EntityPlayerSP['Messorix'/348, l='MpServer', x=3.69, y=68.00, z=1.59], EntitySkeleton['Skeleton'/97, l='MpServer', x=-37.50, y=49.00, z=-73.50], EntityRabbit['Rabbit'/98, l='MpServer', x=-41.18, y=74.00, z=-52.03], EntityRabbit['Rabbit'/99, l='MpServer', x=-32.55, y=74.00, z=-47.50], EntityRabbit['Rabbit'/100, l='MpServer', x=-34.17, y=75.00, z=-32.63], EntityHorse['Horse'/101, l='MpServer', x=-35.35, y=74.00, z=-46.23], EntityHorse['Donkey'/102, l='MpServer', x=-40.01, y=73.00, z=43.36], EntityHorse['Horse'/103, l='MpServer', x=-38.59, y=90.00, z=53.04], EntityHorse['Horse'/104, l='MpServer', x=-48.84, y=90.00, z=57.00], EntityHorse['Horse'/105, l='MpServer', x=-32.15, y=88.00, z=76.18], EntityBat['Bat'/111, l='MpServer', x=-29.25, y=48.10, z=-59.52], EntityHorse['Horse'/112, l='MpServer', x=-24.14, y=75.00, z=-48.59], EntityHorse['Horse'/113, l='MpServer', x=-23.87, y=73.00, z=-55.99], EntityHorse['Horse'/114, l='MpServer', x=-28.46, y=87.00, z=59.19], EntityCreeper['Creeper'/122, l='MpServer', x=-2.40, y=46.00, z=-70.19], EntityRabbit['Rabbit'/123, l='MpServer', x=-10.30, y=71.00, z=-77.63], EntityRabbit['Rabbit'/124, l='MpServer', x=-5.48, y=76.00, z=-46.18], EntityHorse['Horse'/125, l='MpServer', x=-10.57, y=76.00, z=-43.43], EntitySquid['Squid'/126, l='MpServer', x=-7.63, y=60.58, z=0.22], EntitySquid['Squid'/127, l='MpServer', x=-6.24, y=62.00, z=2.66], EntitySpider['Spider'/128, l='MpServer', x=-10.38, y=13.00, z=4.99], EntitySkeleton['Skeleton'/129, l='MpServer', x=-0.24, y=28.00, z=14.08], EntityEnderman['Enderman'/130, l='MpServer', x=-1.04, y=28.00, z=13.43], EntitySquid['Squid'/131, l='MpServer', x=-6.40, y=62.00, z=5.60], EntitySkeleton['Skeleton'/132, l='MpServer', x=-4.48, y=20.00, z=32.33], EntityHorse['Donkey'/133, l='MpServer', x=-11.86, y=66.00, z=24.06], EntityHorse['Donkey'/134, l='MpServer', x=-14.84, y=68.00, z=33.95], EntityHorse['Donkey'/135, l='MpServer', x=-9.83, y=68.00, z=33.89], EntitySkeleton['Skeleton'/146, l='MpServer', x=9.80, y=44.00, z=-66.50], EntityZombie['Zombie'/147, l='MpServer', x=8.81, y=32.00, z=-71.52], EntityHorse['Horse'/148, l='MpServer', x=13.99, y=67.00, z=-71.98], EntityCreeper['Creeper'/150, l='MpServer', x=10.81, y=32.00, z=-2.58], EntityZombie['Zombie'/151, l='MpServer', x=7.56, y=29.00, z=6.24], EntityZombie['Zombie'/152, l='MpServer', x=3.48, y=28.00, z=1.73], EntityZombie['Zombie'/153, l='MpServer', x=8.52, y=30.00, z=2.80], EntityHorse['Donkey'/154, l='MpServer', x=-1.97, y=65.00, z=43.85], EntityZombie['Zombie'/155, l='MpServer', x=12.50, y=29.00, z=50.50], EntitySkeleton['Skeleton'/162, l='MpServer', x=19.50, y=26.00, z=-64.50], EntityBat['Bat'/163, l='MpServer', x=23.75, y=28.10, z=-66.50], EntityCreeper['Creeper'/164, l='MpServer', x=26.50, y=28.00, z=-62.22], EntityZombie['Zombie'/165, l='MpServer', x=29.52, y=29.00, z=-58.81], EntitySkeleton['Skeleton'/166, l='MpServer', x=23.73, y=34.00, z=-51.50], EntityZombie['Zombie'/167, l='MpServer', x=21.30, y=31.00, z=-42.30], EntityZombie['Zombie'/168, l='MpServer', x=24.48, y=31.00, z=-44.28], EntityCreeper['Creeper'/169, l='MpServer', x=23.82, y=27.00, z=-17.40], EntityZombie['Zombie'/170, l='MpServer', x=26.18, y=27.00, z=-17.41], EntitySkeleton['Skeleton'/184, l='MpServer', x=46.28, y=15.00, z=-71.68], EntityZombie['Zombie'/185, l='MpServer', x=29.52, y=32.00, z=-49.80], EntityZombie['Zombie'/186, l='MpServer', x=35.17, y=34.00, z=-53.35], EntitySkeleton['Skeleton'/187, l='MpServer', x=45.70, y=57.00, z=-63.30], EntityZombie['entity.Zombie.name'/188, l='MpServer', x=44.53, y=58.00, z=-59.80], EntityBat['Bat'/189, l='MpServer', x=38.57, y=38.10, z=-47.75], EntityBat['Bat'/190, l='MpServer', x=41.97, y=17.10, z=-22.50], EntityBat['Bat'/191, l='MpServer', x=39.75, y=18.10, z=-24.25], EntitySpider['Spider'/192, l='MpServer', x=32.70, y=28.00, z=-28.03], EntityPig['Pig'/193, l='MpServer', x=45.22, y=95.00, z=-19.50], EntityHorse['Horse'/194, l='MpServer', x=44.35, y=82.00, z=25.10], EntityBat['Bat'/195, l='MpServer', x=45.56, y=31.10, z=43.83], EntityHorse['Horse'/196, l='MpServer', x=42.07, y=72.00, z=34.01], EntityHorse['Horse'/197, l='MpServer', x=32.12, y=68.00, z=49.88], EntityHorse['Horse'/198, l='MpServer', x=47.00, y=86.00, z=69.07], EntityCreeper['Creeper'/208, l='MpServer', x=53.13, y=56.00, z=-67.18], EntityCreeper['Creeper'/209, l='MpServer', x=49.53, y=56.00, z=-61.85], EntityCreeper['Creeper'/210, l='MpServer', x=53.90, y=56.00, z=-66.84], EntityZombie['Zombie'/211, l='MpServer', x=60.49, y=49.00, z=-65.19], EntityCreeper['Creeper'/212, l='MpServer', x=50.34, y=57.00, z=-76.16], EntityZombie['Zombie'/213, l='MpServer', x=51.55, y=30.00, z=-48.23], EntityCreeper['Creeper'/214, l='MpServer', x=59.17, y=56.00, z=-58.58], EntityCow['Cow'/215, l='MpServer', x=67.22, y=96.00, z=-48.50], EntitySkeleton['Skeleton'/216, l='MpServer', x=62.18, y=25.00, z=-43.51], EntityBat['Bat'/217, l='MpServer', x=50.56, y=39.78, z=-33.08], EntityPig['Pig'/218, l='MpServer', x=54.50, y=95.00, z=-37.75], EntityHorse['Horse'/219, l='MpServer', x=52.06, y=95.00, z=-38.01], EntityHorse['Horse'/220, l='MpServer', x=53.00, y=96.00, z=-41.99], EntityCow['Cow'/221, l='MpServer', x=64.55, y=95.00, z=-34.45], EntitySkeleton['Skeleton'/222, l='MpServer', x=55.30, y=11.01, z=-20.30], EntityBat['Bat'/223, l='MpServer', x=60.95, y=41.08, z=-24.25], EntityHorse['Horse'/224, l='MpServer', x=53.14, y=94.00, z=-3.00], EntityPig['Pig'/225, l='MpServer', x=52.74, y=95.00, z=-9.57], EntityHorse['Donkey'/226, l='MpServer', x=55.91, y=94.00, z=3.02], EntityHorse['Horse'/227, l='MpServer', x=53.60, y=94.00, z=8.43], EntityPig['Pig'/228, l='MpServer', x=59.78, y=94.00, z=8.51], EntityPig['Pig'/229, l='MpServer', x=57.66, y=94.00, z=20.48], EntityHorse['Horse'/230, l='MpServer', x=57.00, y=94.00, z=54.98], EntitySkeleton['Skeleton'/231, l='MpServer', x=60.50, y=18.00, z=76.50], EntityZombie['Zombie'/232, l='MpServer', x=54.50, y=21.00, z=78.50], EntitySkeleton['Skeleton'/233, l='MpServer', x=50.50, y=21.00, z=78.50], EntityHorse['Horse'/237, l='MpServer', x=71.12, y=96.00, z=-55.98], EntityPig['Pig'/238, l='MpServer', x=74.48, y=93.00, z=-34.78], EntityPig['Pig'/239, l='MpServer', x=70.31, y=88.00, z=-33.46], EntityZombie['Zombie'/240, l='MpServer', x=74.31, y=21.00, z=-25.79], EntityZombie['Zombie'/241, l='MpServer', x=73.32, y=20.00, z=-25.80], EntityBat['Bat'/242, l='MpServer', x=66.63, y=20.46, z=-23.15], EntityPig['Pig'/243, l='MpServer', x=75.48, y=96.00, z=-25.22], EntityCreeper['Creeper'/244, l='MpServer', x=65.42, y=84.00, z=-30.83], EntitySkeleton['Skeleton'/245, l='MpServer', x=73.50, y=23.00, z=-10.50], EntityBat['Bat'/246, l='MpServer', x=62.55, y=12.93, z=17.42], EntityPig['Pig'/247, l='MpServer', x=76.25, y=91.00, z=16.50], EntityHorse['Donkey'/248, l='MpServer', x=68.95, y=89.00, z=31.86], EntityPig['Pig'/249, l='MpServer', x=70.74, y=89.00, z=33.19], EntityHorse['Donkey'/250, l='MpServer', x=61.18, y=90.00, z=36.07], EntityHorse['Horse'/251, l='MpServer', x=76.97, y=88.00, z=46.96], EntityHorse['Donkey'/252, l='MpServer', x=83.75, y=88.00, z=32.18], EntityHorse['Donkey'/253, l='MpServer', x=67.84, y=89.00, z=52.03], EntityHorse['Horse'/254, l='MpServer', x=72.00, y=87.00, z=79.89], EntityHorse['Horse'/255, l='MpServer', x=69.89, y=88.00, z=76.09]]

Retry entities: 0 total; []

Server brand: fml,forge

Server type: Integrated singleplayer server

Stacktrace:

at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:450)

at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2779)

at net.minecraft.client.Minecraft.run(Minecraft.java:427)

at net.minecraft.client.main.Main.main(Main.java:118)

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:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)

at GradleStart.main(GradleStart.java:26)

 

-- System Details --

Details:

Minecraft Version: 1.10.2

Operating System: Windows 8.1 (amd64) version 6.3

Java Version: 1.8.0_102, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 1055931944 bytes (1007 MB) / 1655177216 bytes (1578 MB) up to 7635730432 bytes (7282 MB)

JVM Flags: 2 total; -Xmx8g -Xms256m

IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95

FML: MCP 9.32 Powered by Forge 12.18.1.2011 6 mods loaded, 6 mods active

States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

UCHIJAAAA mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)

UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.10.2-12.18.1.2011.jar)

UCHIJAAAA Forge{12.18.1.2011} [Minecraft Forge] (forgeSrc-1.10.2-12.18.1.2011.jar)

UCHIJAAAA moleculecraft{0.0.1} [MoleculeCraft] (bin)

UCHIJAAAA examplemod{1.0} [Example Mod] (bin)

UCHIJAAAA JEI{3.7.6.232} [Just Enough Items] (jei_1.10.2-3.7.6.232.jar)

Loaded coremods (and transformers):

GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.13431 Compatibility Profile Context 16.150.2211.0' Renderer: 'AMD Radeon HD 7900 Series'

Launched Version: 1.10.2

LWJGL: 2.9.4

OpenGL: AMD Radeon HD 7900 Series GL version 4.5.13431 Compatibility Profile Context 16.150.2211.0, ATI Technologies Inc.

GL Caps: Using GL 1.3 multitexturing.

Using GL 1.3 texture combiners.

Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.

Shaders are available because OpenGL 2.1 is supported.

VBOs are available because OpenGL 1.5 is supported.

 

Using VBOs: Yes

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)

CPU: 4x Intel® Core i5-3570K CPU @ 3.40GHz

 

 

I updated git with my current code.

Link to comment
Share on other sites

Could I have a link to your Github and if you ever run into a NullPointerException locate what is null, insert != null checks.

 

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

for (int x = 0; x < fuel_slots; x++)
	{
		int slotNumber = x + first_fuel_slot;
		addSlotToContainer(new SlotFuel(player, slotNumber, fuel_slots_xpos + slot_x_spacing * x, fuel_slots_ypos));
	}

	//Input slots
	final int input_slots_xpos = 26;
	final int input_slots_ypos = 24;

	for (int x = 0; x < input_slots; x++)
	{
		int SlotNumber = x + first_input_slot;
		addSlotToContainer(new SlotProcessableInput(player, SlotNumber, input_slots_xpos + slot_x_spacing * x, input_slots_ypos));
	}

	//Output slots
	final int output_slots_xpos = 134;
	final int output_slots_ypos = 24;

	for (int x = 0; x < output_slots; x++)
	{
		int SlotNumber = x + first_output_slot;
		addSlotToContainer(new SlotOutput(player, SlotNumber, output_slots_xpos + slot_x_spacing * x, output_slots_ypos));
	}

Look very hard at that and I'm sure you will see what you did wrong.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

The inventory variable, instead of passing in the TileEntity you passed in the players inventory and the last time I checked the player only has 36 normal inventory slots. :3

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

Here you go ;)

 

---- Minecraft Crash Report ----

// I feel sad now :(

 

Time: 8/4/16 5:11 AM

Description: Updating screen events

 

java.lang.IndexOutOfBoundsException: Index: 36, Size: 36

at java.util.ArrayList.rangeCheck(Unknown Source)

at java.util.ArrayList.get(Unknown Source)

at net.minecraft.inventory.Container.mergeItemStack(Container.java:653)

at com.messorix.moleculecraft.base.containers.ContainerFluxGrinder.transferStackInSlot(ContainerFluxGrinder.java:47)

at net.minecraft.inventory.Container.slotClick(Container.java:275)

at net.minecraft.client.multiplayer.PlayerControllerMP.windowClick(PlayerControllerMP.java:594)

at net.minecraft.client.gui.inventory.GuiContainer.handleMouseClick(GuiContainer.java:685)

at net.minecraft.client.gui.inventory.GuiContainer.mouseClicked(GuiContainer.java:427)

at net.minecraft.client.gui.GuiScreen.handleMouseInput(GuiScreen.java:615)

at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:581)

at net.minecraft.client.Minecraft.runTick(Minecraft.java:1797)

at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1118)

at net.minecraft.client.Minecraft.run(Minecraft.java:406)

at net.minecraft.client.main.Main.main(Main.java:118)

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:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)

at GradleStart.main(GradleStart.java:26)

 

 

A detailed walkthrough of the error, its code path and all known details is as follows:

---------------------------------------------------------------------------------------

 

-- Head --

Thread: Client thread

Stacktrace:

at java.util.ArrayList.rangeCheck(Unknown Source)

at java.util.ArrayList.get(Unknown Source)

at net.minecraft.inventory.Container.mergeItemStack(Container.java:653)

at com.messorix.moleculecraft.base.containers.ContainerFluxGrinder.transferStackInSlot(ContainerFluxGrinder.java:47)

at net.minecraft.inventory.Container.slotClick(Container.java:275)

at net.minecraft.client.multiplayer.PlayerControllerMP.windowClick(PlayerControllerMP.java:594)

at net.minecraft.client.gui.inventory.GuiContainer.handleMouseClick(GuiContainer.java:685)

at net.minecraft.client.gui.inventory.GuiContainer.mouseClicked(GuiContainer.java:427)

at net.minecraft.client.gui.GuiScreen.handleMouseInput(GuiScreen.java:615)

at net.minecraft.client.gui.GuiScreen.handleInput(GuiScreen.java:581)

 

-- Affected screen --

Details:

Screen name: com.messorix.moleculecraft.base.gui.GuiFluxGrinder

 

-- Affected level --

Details:

Level name: MpServer

All players: 1 total; [EntityPlayerSP['Messorix'/347, l='MpServer', x=3.69, y=68.00, z=1.59]]

Chunk stats: MultiplayerChunkCache: 505, 505

Level seed: 0

Level generator: ID 00 - default, ver 1. Features enabled: false

Level generator options:

Level spawn location: World: (8,64,8), Chunk: (at 8,4,8 in 0,0; contains blocks 0,0,0 to 15,255,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)

Level time: 61923 game time, 17315 day time

Level dimension: 0

Level storage version: 0x00000 - Unknown?

Level weather: Rain time: 0 (now: true), thunder time: 0 (now: false)

Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false

Forced entities: 118 total; [EntityHorse['Horse'/257, l='MpServer', x=83.09, y=97.00, z=-54.94], EntityPig['Pig'/259, l='MpServer', x=83.27, y=96.00, z=-41.48], EntityHorse['Horse'/261, l='MpServer', x=81.85, y=95.00, z=-20.93], EntityHorse['Horse'/67, l='MpServer', x=-70.95, y=73.00, z=-18.91], EntityHorse['Horse'/68, l='MpServer', x=-74.19, y=72.00, z=-21.83], EntityZombie['Husk'/75, l='MpServer', x=-50.60, y=77.00, z=-73.26], EntitySpider['Spider'/76, l='MpServer', x=-50.50, y=76.00, z=-66.50], EntityCreeper['Creeper'/77, l='MpServer', x=-51.50, y=22.00, z=-50.50], EntityHorse['Horse'/78, l='MpServer', x=-56.87, y=70.00, z=-21.99], EntityCreeper['Creeper'/79, l='MpServer', x=-63.50, y=73.00, z=-20.50], EntityZombie['Zombie'/80, l='MpServer', x=-55.39, y=69.00, z=-20.21], EntitySkeleton['Skeleton'/81, l='MpServer', x=-53.72, y=21.00, z=13.51], EntityHorse['Horse'/82, l='MpServer', x=-54.83, y=92.00, z=63.81], EntityPlayerSP['Messorix'/347, l='MpServer', x=3.69, y=68.00, z=1.59], EntityRabbit['Rabbit'/102, l='MpServer', x=-42.80, y=74.00, z=-55.22], EntityHorse['Horse'/103, l='MpServer', x=-40.84, y=74.00, z=-48.98], EntityCreeper['Creeper'/104, l='MpServer', x=-47.50, y=22.00, z=-44.50], EntityBat['Bat'/105, l='MpServer', x=-41.63, y=48.99, z=-35.51], EntityRabbit['Rabbit'/106, l='MpServer', x=-32.55, y=74.00, z=-47.50], EntityRabbit['Rabbit'/107, l='MpServer', x=-32.63, y=75.00, z=-37.16], EntityCreeper['Creeper'/108, l='MpServer', x=-41.50, y=69.00, z=1.50], EntityHorse['Donkey'/109, l='MpServer', x=-40.01, y=73.00, z=43.36], EntityHorse['Horse'/110, l='MpServer', x=-38.59, y=90.00, z=53.04], EntityHorse['Horse'/111, l='MpServer', x=-32.15, y=88.00, z=76.18], EntityHorse['Horse'/114, l='MpServer', x=-24.14, y=75.00, z=-48.59], EntityHorse['Horse'/115, l='MpServer', x=-23.87, y=73.00, z=-55.99], EntitySquid['Squid'/116, l='MpServer', x=-24.48, y=61.00, z=-11.40], EntitySquid['Squid'/117, l='MpServer', x=-27.60, y=60.00, z=21.60], EntityHorse['Donkey'/118, l='MpServer', x=-18.93, y=67.00, z=32.17], EntityHorse['Horse'/119, l='MpServer', x=-29.00, y=85.00, z=49.17], EntityCreeper['Creeper'/126, l='MpServer', x=-2.40, y=46.00, z=-70.19], EntityRabbit['Rabbit'/127, l='MpServer', x=-2.64, y=70.13, z=-77.51], EntityRabbit['Rabbit'/128, l='MpServer', x=-8.99, y=76.00, z=-43.63], EntitySpider['Spider'/129, l='MpServer', x=-10.38, y=13.00, z=4.99], EntitySkeleton['Skeleton'/130, l='MpServer', x=-3.45, y=25.00, z=24.26], EntityEnderman['Enderman'/131, l='MpServer', x=7.24, y=29.00, z=8.72], EntitySquid['Squid'/132, l='MpServer', x=-15.60, y=60.15, z=3.54], EntitySquid['Squid'/133, l='MpServer', x=-10.44, y=60.93, z=4.55], EntitySkeleton['Skeleton'/134, l='MpServer', x=-5.49, y=21.00, z=28.73], EntityBat['Bat'/135, l='MpServer', x=6.09, y=30.95, z=7.14], EntityZombie['Zombie'/136, l='MpServer', x=-11.50, y=23.00, z=45.50], EntitySquid['Squid'/137, l='MpServer', x=-11.45, y=48.03, z=42.49], EntityHorse['Donkey'/138, l='MpServer', x=-15.99, y=68.00, z=34.48], EntityHorse['Donkey'/139, l='MpServer', x=-9.85, y=68.00, z=48.93], EntitySkeleton['Skeleton'/146, l='MpServer', x=13.26, y=43.00, z=-67.53], EntityZombie['Zombie'/147, l='MpServer', x=7.48, y=41.00, z=-74.28], EntityHorse['Horse'/148, l='MpServer', x=13.99, y=67.00, z=-71.98], EntityHorse['Horse'/150, l='MpServer', x=0.07, y=76.00, z=-49.97], EntityZombie['Zombie'/151, l='MpServer', x=1.50, y=30.00, z=-1.70], EntityZombie['Zombie'/152, l='MpServer', x=1.50, y=30.00, z=-1.06], EntityZombie['Zombie'/153, l='MpServer', x=11.46, y=30.00, z=2.75], EntityHorse['Donkey'/154, l='MpServer', x=0.31, y=68.00, z=23.62], EntityBat['Bat'/155, l='MpServer', x=12.12, y=15.85, z=62.58], EntityCreeper['Creeper'/163, l='MpServer', x=31.20, y=30.00, z=-57.56], EntitySkeleton['Skeleton'/164, l='MpServer', x=23.73, y=34.00, z=-51.50], EntityZombie['Zombie'/165, l='MpServer', x=29.52, y=32.00, z=-49.80], EntityCreeper['Creeper'/166, l='MpServer', x=28.39, y=32.00, z=-49.85], EntityZombie['Zombie'/167, l='MpServer', x=27.48, y=28.00, z=-14.80], EntityCreeper['Creeper'/168, l='MpServer', x=21.50, y=65.00, z=57.50], EntityBat['Bat'/183, l='MpServer', x=47.34, y=15.03, z=-77.11], EntityCreeper['Creeper'/184, l='MpServer', x=35.50, y=48.00, z=-57.50], EntitySpider['Spider'/185, l='MpServer', x=46.30, y=80.12, z=-51.09], EntitySkeleton['Skeleton'/186, l='MpServer', x=40.40, y=72.00, z=-53.02], EntitySkeleton['Skeleton'/187, l='MpServer', x=38.25, y=72.00, z=-50.17], EntityCreeper['Creeper'/188, l='MpServer', x=35.77, y=71.00, z=-54.53], EntityCreeper['Creeper'/189, l='MpServer', x=41.50, y=71.00, z=-62.50], EntityBat['Bat'/190, l='MpServer', x=38.57, y=38.10, z=-47.75], EntityHorse['Horse'/191, l='MpServer', x=53.00, y=95.00, z=-38.06], EntityBat['Bat'/192, l='MpServer', x=41.97, y=17.10, z=-22.50], EntityBat['Bat'/193, l='MpServer', x=39.75, y=18.10, z=-24.25], EntitySpider['Spider'/194, l='MpServer', x=32.70, y=28.00, z=-28.03], EntityPig['Pig'/195, l='MpServer', x=45.22, y=95.00, z=-19.50], EntityHorse['Horse'/196, l='MpServer', x=44.38, y=82.00, z=25.10], EntityBat['Bat'/197, l='MpServer', x=45.56, y=31.10, z=43.83], EntityHorse['Horse'/198, l='MpServer', x=30.74, y=67.00, z=57.00], EntitySkeleton['Skeleton'/199, l='MpServer', x=41.50, y=11.00, z=77.50], EntityHorse['Horse'/200, l='MpServer', x=47.00, y=86.00, z=69.07], EntityCreeper['Creeper'/214, l='MpServer', x=53.13, y=56.00, z=-67.18], EntityCreeper['Creeper'/215, l='MpServer', x=50.34, y=57.00, z=-76.16], EntityCreeper['Creeper'/216, l='MpServer', x=59.17, y=56.00, z=-58.58], EntityCreeper['Creeper'/217, l='MpServer', x=49.53, y=56.00, z=-61.85], EntityZombie['entity.Zombie.name'/218, l='MpServer', x=54.49, y=57.00, z=-56.80], EntityZombie['Zombie'/219, l='MpServer', x=60.49, y=48.00, z=-61.77], EntityZombie['Zombie'/220, l='MpServer', x=51.19, y=31.00, z=-39.53], EntityHorse['Horse'/221, l='MpServer', x=50.53, y=94.00, z=-39.20], EntityCow['Cow'/222, l='MpServer', x=58.77, y=96.00, z=-41.18], EntityPig['Pig'/223, l='MpServer', x=61.53, y=92.00, z=-26.80], EntityHorse['Horse'/224, l='MpServer', x=53.14, y=94.00, z=-3.00], EntityPig['Pig'/225, l='MpServer', x=50.27, y=94.00, z=-5.75], EntityHorse['Horse'/226, l='MpServer', x=55.98, y=94.00, z=-1.86], EntityHorse['Donkey'/227, l='MpServer', x=55.97, y=95.00, z=7.87], EntityPig['Pig'/228, l='MpServer', x=59.78, y=94.00, z=8.51], EntityPig['Pig'/229, l='MpServer', x=53.47, y=93.00, z=18.96], EntityHorse['Donkey'/230, l='MpServer', x=62.93, y=91.00, z=27.15], EntityHorse['Horse'/231, l='MpServer', x=48.00, y=72.00, z=35.14], EntityHorse['Horse'/232, l='MpServer', x=57.00, y=94.00, z=54.98], EntitySkeleton['Skeleton'/233, l='MpServer', x=60.50, y=18.00, z=76.50], EntityZombie['Zombie'/234, l='MpServer', x=54.50, y=21.00, z=78.50], EntityBat['Bat'/236, l='MpServer', x=64.22, y=20.73, z=-42.80], EntityHorse['Horse'/237, l='MpServer', x=71.12, y=96.00, z=-55.98], EntityCow['Cow'/238, l='MpServer', x=68.16, y=96.00, z=-48.50], EntityPig['Pig'/239, l='MpServer', x=73.47, y=92.00, z=-33.75], EntityPig['Pig'/240, l='MpServer', x=66.50, y=85.00, z=-39.25], EntityZombie['Zombie'/241, l='MpServer', x=73.32, y=20.00, z=-25.80], EntityBat['Bat'/242, l='MpServer', x=64.69, y=42.89, z=-23.49], EntityPig['Pig'/243, l='MpServer', x=75.48, y=96.00, z=-25.22], EntityBat['Bat'/244, l='MpServer', x=66.53, y=12.04, z=11.69], EntitySkeleton['Skeleton'/245, l='MpServer', x=67.50, y=91.00, z=15.50], EntityPig['Pig'/246, l='MpServer', x=76.25, y=91.00, z=16.50], EntityHorse['Horse'/247, l='MpServer', x=77.51, y=88.00, z=47.46], EntityPig['Pig'/248, l='MpServer', x=77.39, y=88.00, z=43.00], EntityHorse['Donkey'/249, l='MpServer', x=79.84, y=88.00, z=40.47], EntityCreeper['Creeper'/250, l='MpServer', x=75.86, y=88.00, z=46.30], EntityHorse['Donkey'/251, l='MpServer', x=72.15, y=90.00, z=35.97], EntityHorse['Donkey'/252, l='MpServer', x=73.01, y=91.00, z=44.52], EntityHorse['Horse'/253, l='MpServer', x=72.00, y=87.00, z=79.89], EntityHorse['Horse'/254, l='MpServer', x=69.89, y=88.00, z=76.09], EntityHorse['Horse'/255, l='MpServer', x=77.04, y=87.00, z=66.01]]

Retry entities: 0 total; []

Server brand: fml,forge

Server type: Integrated singleplayer server

Stacktrace:

at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:450)

at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2779)

at net.minecraft.client.Minecraft.run(Minecraft.java:427)

at net.minecraft.client.main.Main.main(Main.java:118)

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:135)

at net.minecraft.launchwrapper.Launch.main(Launch.java:28)

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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)

at GradleStart.main(GradleStart.java:26)

 

-- System Details --

Details:

Minecraft Version: 1.10.2

Operating System: Windows 8.1 (amd64) version 6.3

Java Version: 1.8.0_102, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 903939592 bytes (862 MB) / 1749549056 bytes (1668 MB) up to 7635730432 bytes (7282 MB)

JVM Flags: 2 total; -Xmx8g -Xms256m

IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95

FML: MCP 9.32 Powered by Forge 12.18.1.2011 6 mods loaded, 6 mods active

States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

UCHIJAAAA mcp{9.19} [Minecraft Coder Pack] (minecraft.jar)

UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.10.2-12.18.1.2011.jar)

UCHIJAAAA Forge{12.18.1.2011} [Minecraft Forge] (forgeSrc-1.10.2-12.18.1.2011.jar)

UCHIJAAAA moleculecraft{0.0.1} [MoleculeCraft] (bin)

UCHIJAAAA examplemod{1.0} [Example Mod] (bin)

UCHIJAAAA JEI{3.7.6.232} [Just Enough Items] (jei_1.10.2-3.7.6.232.jar)

Loaded coremods (and transformers):

GL info: ' Vendor: 'ATI Technologies Inc.' Version: '4.5.13431 Compatibility Profile Context 16.150.2211.0' Renderer: 'AMD Radeon HD 7900 Series'

Launched Version: 1.10.2

LWJGL: 2.9.4

OpenGL: AMD Radeon HD 7900 Series GL version 4.5.13431 Compatibility Profile Context 16.150.2211.0, ATI Technologies Inc.

GL Caps: Using GL 1.3 multitexturing.

Using GL 1.3 texture combiners.

Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.

Shaders are available because OpenGL 2.1 is supported.

VBOs are available because OpenGL 1.5 is supported.

 

Using VBOs: Yes

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)

CPU: 4x Intel® Core i5-3570K CPU @ 3.40GHz

 

Link to comment
Share on other sites

The slot bounds problem is in the

transferStackInSlot

method.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

What is the result when

System.out.println(first_input_index + ", " + input_slots + ", " + (first_input_index + input_slots));

prints out.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements




×
×
  • Create New...

Important Information

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