If you wan't to do little things, like changing the hardness, you can just do Blocks.dirt.setHardness(1F), but else there's no legit way to replace the vanilla block.
Using GitHub allows you to make your mod open source, you can access the source at any place, and you can use it as a backup system that if you lose your file for some reason, you can get it back from GitHub.
Where do you call "new fuelRegistry()"? If you don't, the fuelRegister array is still null, as you initialize it when you make a new instance of the fuelRegistry class.
PS, please use camel-case, it makes the code much more easier to read.
You can use the getDescriptionPacket() and the onPacketData() method in the TileEntity class. In the getDescpriptioPacket method you need to return a S35UpdateTileEntityPacket(xCoord,yCoord,zCoord,1,YOUR_NBT_COMPOUND) and in the onPacketData method you readFromNBT the packet's NBTTagCompound.
You're making it a static value, which is the same for all TileEntities of that type. You should make it a non-static value and instead of using TileEntityKeyPad.*, use world.getTileEntity(x,y,z) to get the TileEntity at that location, and check if the TileEntity is an instanceof TileEntityKeyPad, then cast it to the appropriate type and then set the value in that.
That's quite a performance hit, because you need to go through every block in the world, so thats like 30000000x256x30000000 blocks to check, check if they are a chest, get the chest TileEntity and fill the inventory with the items you want.
backlegleft.mirror = true;
backlegleft = new ModelRenderer(this, 32, 0);
backlegleft.addBox(0F, 0F, 0F, 4, 12, 4);
When setting backlegleft.mirro, backlegleft is still null, so you need to put the backlegleft.irror line underneath the declaration.
That's because they blindly copy-paste code. You can see that by this line: private static final String __OBFID = "CL_00000253"; as that's put in most vanilla class by forge when the code deobfuscated. If you don't remove those lines from your class, it will throw errors when building the mod.
@Override
public ItemStack getStackInSlot(int i) {
return null;
}
@Override
public ItemStack decrStackSize(int i, int j) {
return null;
}
You need to properly implement those methods to make it work (use TileEntityFurnace.java as a example).
The second time. where all the coords are 0, that time it's the client version. The server version is the time where the coords are correct. so you may need to check if !world.isRemote.