Jump to content

Recommended Posts

Posted

I am trying to make a block change texture when I wear a certain helmet, it worked in 1.6.4, but it broke in 1.7.2.

BlockNullOre:

 

 

package aj.Java.Nullvoid.block;

import java.util.Random;

import aj.Java.Nullvoid.VoidMod;
import aj.Java.Nullvoid.client.render.RenderNullOre;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.item.Item;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;

public class BlockNullOre extends Block {
public BlockNullOre() {
	super(Material.iron);
	setCreativeTab(VoidMod.ctab);
	setTickRandomly(true);
	setHardness(15F);
}
public int tickRate(World p_149738_1_)
    {
        return 10;
    }
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
    {
        return VoidMod.ingotNull;
    }
@Override
public int getRenderType(){
	return VoidMod.render;
}
@Override
    public boolean canRenderInPass(int pass)
{
	RenderNullOre.renderPass = pass;
    	return true;
}
@SideOnly(Side.CLIENT)
public IIcon[] icons;
@SideOnly(Side.CLIENT)
public IIcon overlay;
      
@SideOnly(Side.CLIENT)
@Override
public void registerBlockIcons(IIconRegister par1IconRegister)
{
       icons = new IIcon[3];
             
       for(int i = 0; i < icons.length; i++)
       {
              icons[i] = par1IconRegister.registerIcon(VoidMod.MODID + ":" + (this.getUnlocalizedName()));
       }
       overlay = par1IconRegister.registerIcon(VoidMod.MODID + ":" + (this.getUnlocalizedName().substring(5)) + 1);
}
}

 

 

RenderNullOre:

 

 

package aj.Java.Nullvoid.client.render;

import org.lwjgl.opengl.GL11;

import aj.Java.Nullvoid.VoidMod;
import aj.Java.Nullvoid.block.BlockNullOre;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;

public class RenderNullOre implements ISimpleBlockRenderingHandler {
public static int renderPass;
IIcon icon;
static IIcon stone;
@Override
public void renderInventoryBlock(Block block, int metadata, int modelID,
		RenderBlocks renderer) {
	Tessellator tessellator = Tessellator.instance;
	block.setBlockBoundsForItemRender();
        renderer.setRenderBoundsFromBlock(block);
        GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
        GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
        tessellator.startDrawingQuads();
        tessellator.setNormal(0.0F, -1.0F, 0.0F);
        renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 0, metadata));
        tessellator.draw();
        tessellator.startDrawingQuads();
        tessellator.setNormal(0.0F, 1.0F, 0.0F);
        renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 1, metadata));
        tessellator.draw();
        tessellator.startDrawingQuads();
        tessellator.setNormal(0.0F, 0.0F, -1.0F);
        renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 2, metadata));
        tessellator.draw();
        tessellator.startDrawingQuads();
        tessellator.setNormal(0.0F, 0.0F, 1.0F);
        renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 3, metadata));
        tessellator.draw();
        tessellator.startDrawingQuads();
        tessellator.setNormal(-1.0F, 0.0F, 0.0F);
        renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 4, metadata));
        tessellator.draw();
        tessellator.startDrawingQuads();
        tessellator.setNormal(1.0F, 0.0F, 0.0F);
        renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, renderer.getBlockIconFromSideAndMetadata(block, 5, metadata));
        tessellator.draw();
        GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
@Override
public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z,
		Block block, int modelId, RenderBlocks renderer) {
	System.out.println(modelId);
	System.out.println(VoidMod.render);
	if(modelId == VoidMod.render){
		if(block instanceof BlockNullOre){
				System.out.println("isBlock");
				getOreTexture((BlockNullOre) block, world, x, y, z);
				if(renderPass == 0){
					//renderer.setOverrideBlockTexture(stone);
					//renderer.renderStandardBlock(block, x, y, z);
					//renderer.clearOverrideBlockTexture();
					renderer.renderStandardBlock(VoidMod.NullOre, x, y, z);
				}
				else{
					if(stone == null){
						renderer.setOverrideBlockTexture(stone);
						renderer.renderStandardBlock(block, x, y, z);
						renderer.clearOverrideBlockTexture();
					}
					else{
						drawStone(block, renderer);
					}
				}
				return true;
		}
		else{
			renderer.renderStandardBlock(block, x, y, z);
		}
	}
	return false;
}

@Override
public int getRenderId() {
	// TODO Auto-generated method stub
	return VoidMod.render;

}


@SideOnly(Side.CLIENT)
public void getOreTexture(BlockNullOre block, IBlockAccess w, int x, int y, int z){
	EntityPlayerMP p = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(Minecraft.getMinecraft().getSession().getUsername());
	if(p != null){
		System.out.println(p.inventory.armorInventory[3]);
		if(p.inventory.armorInventory[3] != null){
			if(p.inventory.armorInventory[3].isItemEqual(new ItemStack(VoidMod.nullGoggles))){
				icon = block.icons[0];
				stone = block.icons[0];
			}
			else
			{
				stone = Blocks.stone.getIcon(0, 0);
				if(p.dimension == 1){
					stone = Blocks.end_stone.getIcon(0, 0);
				}
				if(p.dimension == -1){
					stone = Blocks.netherrack.getIcon(0, 0);
				}
				if(p.dimension == VoidMod.NullVoidDimID){
					stone = block.icons[0];
				}
			}
		}
		else
		{
			stone = Blocks.stone.getIcon(0, 0);
			if(p.dimension == 1){
				stone = Blocks.end_stone.getIcon(0, 0);
			}
			if(p.dimension == -1){
				stone = Blocks.netherrack.getIcon(0, 0);
			}
			if(p.dimension == VoidMod.NullVoidDimID){
				stone = block.icons[0];
			}
		}
	}
}
private static void drawStone(Block block, RenderBlocks renderer){
        renderer.setRenderBoundsFromBlock(block);
        renderer.renderFaceYNeg(block, 0.1D, 0.1D, 0.1D, stone);
        renderer.renderFaceYPos(block, 0.1D, 0.1D, 0.1D, stone);
        renderer.renderFaceZNeg(block, 0.1D, 0.1D, 0.1D, stone);
        renderer.renderFaceZPos(block, 0.1D, 0.1D, 0.1D, stone);
        renderer.renderFaceXNeg(block, 0.1D, 0.1D, 0.1D, stone);
        renderer.renderFaceXPos(block, 0.1D, 0.1D, 0.1D, stone);
}
@Override
public boolean shouldRender3DInInventory(int modelId) {
	// TODO Auto-generated method stub
	return true;
}

}

 

 

Also, I know the RenderNullOre is being called on render because of the System.out.println()'s. Currently it does not even render a texture at all, it is just a transparent cube. Sorry if I need to put up any more code.

EDIT: After placing liquid around it it stopped being transparent, but still did not change texture.

EDIT 2: After editing the RenderNullOre a bit, the transparency stopped, but it still will not change texture. Also, I want the change to be client-side only for only the person who is wearing goggles. I also do not want it to be a tile entity, because it is an ore and will spawn a lot in certain places. I put the new code in the spoiler.

Posted

public void onArmorTick(World world, EntityPlayer player, ItemStack armor) {

}

Maybe that will help you in someway. I'm unsure about this kind of situation.

It goes in your ItemArmor class.

Legend of Zelda Mod[updated September 20th to 3.1.1]

Extra Achievements(Minecraft 1.8!)[updated April 3rd to 2.3.0]

Fancy Cheeses[updated May 8th to 0.5.0]

Posted

Hi

 

You could either use a TESR as DieSieben suggested, alternatively you could use an animated texture and change the texture based on whether the player is wearing a helmet or not.  This can be tricky to get right but I think it should work.

 

Check out TextureClock.

 

This link may also help - see the clock and compass sections

 

http://www.minecraftforum.net/topic/1881638-animation-in-resource-packs-a-minecraft-16-tutorial/

 

-TGG

 

 

 

Posted

I don't want to use tile entity special renderers because tile entity. It is an ore and already lags a bit as it is. I chose the animation route, but how would I bind my TextureNullOre to my BlockNullOre?

Posted

Ok, now it is cycling through red, orange, and yellow.

BlockNullOre:

 

 

package aj.Java.Nullvoid.block;

 

import java.util.Random;

 

import aj.Java.Nullvoid.VoidMod;

import aj.Java.Nullvoid.client.render.TextureNullOre;

import cpw.mods.fml.relauncher.Side;

import cpw.mods.fml.relauncher.SideOnly;

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

import net.minecraft.client.renderer.texture.IIconRegister;

import net.minecraft.item.Item;

import net.minecraft.world.World;

 

public class BlockNullOre extends Block {

public BlockNullOre() {

super(Material.iron);

setCreativeTab(VoidMod.ctab);

setTickRandomly(true);

setHardness(15F);

}

public int tickRate(World p_149738_1_)

    {

        return 10;

    }

public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)

    {

        return VoidMod.ingotNull;

    }

     

@SideOnly(Side.CLIENT)

@Override

public void registerBlockIcons(IIconRegister par1IconRegister)

{

this.blockIcon = new TextureNullOre(VoidMod.MODID + ":nullOre");

}

}

 

 

 

TextureNullOre:

 

 

package aj.Java.Nullvoid.client.render;

 

import aj.Java.Nullvoid.VoidMod;

import net.minecraft.client.Minecraft;

import net.minecraft.client.renderer.texture.TextureAtlasSprite;

import net.minecraft.client.renderer.texture.TextureUtil;

import net.minecraft.entity.player.EntityPlayerMP;

import net.minecraft.item.ItemStack;

import net.minecraft.server.MinecraftServer;

 

public class TextureNullOre extends TextureAtlasSprite {

 

public TextureNullOre(String par1Str) {

super(par1Str);

 

}

 

@Override

public void updateAnimation() {

EntityPlayerMP p = MinecraftServer

.getServer()

.getConfigurationManager()

.getPlayerForUsername(

Minecraft.getMinecraft().getSession().getUsername());

if (p.inventory.armorInventory[3] != null) {

if (p.inventory.armorInventory[3].isItemEqual(new ItemStack(

VoidMod.nullGoggles))) {

this.frameCounter = getFrameForDim(p.dimension, true);

} else {

this.frameCounter = getFrameForDim(p.dimension, false);

}

} else {

this.frameCounter = getFrameForDim(p.dimension, false);

}

TextureUtil.uploadTextureMipmap(

(int[][]) this.framesTextureData.get(this.frameCounter),

this.width, this.height, this.originX, this.originY, false,

false);

}

 

private int getFrameForDim(int dim, boolean goggle) {

if (!goggle) {

if (dim == 0) {

return 0;

} else if (dim == -1) {

return 1;

} else if (dim == 1) {

return 2;

} else if (dim == VoidMod.NullVoidDimID) {

return 3;

}

} else {

if (dim == 0) {

return 4;

} else if (dim == -1) {

return 5;

} else if (dim == 1) {

return 6;

} else if (dim == VoidMod.NullVoidDimID) {

return 7;

}

}

return 0;

}

}

 

 

Posted

My MCMeta file looks like this:

 

 

{

  "animation": {"width":1,"height":8}

}

 

 

I don;t want it to be animated, though, because of the wear helmet, different texture thing.

Posted

Hi

 

If you put a breakpoint in   

public void updateAnimation() {

does it actually get called?

 

When you say-

"Ok, now it is cycling through red, orange, and yellow."

1) are the textures correct?  i.e. it cycles through the correct textures, or

2) are the "red, orange, yellow" just random textures that are totally wrong, or

3) are the "red, orange, yellow" a single correct texture that is changing colour by itself?

 

-TGG

Posted

Ok, for some reason updateAnimation is never called. I don't use breakpoints so... also the red, orange, yellow is a solid color that is switching to those colors. Earlier I posted an imgur link to the texture file.

Posted

Hmmm

 

I'm rather rusty on animations unfortunately but from memory you need to register it in a special way;

 

TextureMap.setTextureEntry instead of registerIcon

 

   /**
     * Adds a texture registry entry to this map for the specified name if one does not already exist.
     * Returns false if the map already contains a entry for the specified name.
     *
     * @param name Entry name
     * @param entry Entry instance
     * @return True if the entry was added to the map, false otherwise.
     */
    public boolean setTextureEntry(String name, TextureAtlasSprite entry)
    {
        if (!mapRegisteredSprites.containsKey(name))
        {
            mapRegisteredSprites.put(name, entry);
            return true;
        }
        return false;
    }

 

You could try hooking into the TextureStitchEvent.Pre, and in the handler create your TextureNullOre and then call setTextureEntry(name, textureNullOre) .

 

Unfortunately I've lost my old test code for this so I don't remember details

 

-TGG

 

Posted

Do you know what I would put as name? Also, do you mean do an @SubscribeEvent with a TextureStitchEvent.Pre as the arguments? Sorry, first time trying modding animations.

Posted

Still does the red, orange, yellow thing. I think it is the animation missing texture icon or something.

My subscribevent is this:

@SubscribeEvent

public void texturePreStitch(TextureStitchEvent.Pre event){

event.map.setTextureEntry("nullOre", new TextureNullOre("nullvoid:nullOre"));

}

I know the class it is in is registered correctly because I am also using it for another thing.

I use setBlockTextureName("nullOre"); in the BlockNullOre's constructor.

Posted

How to get your TextureAtlas to work:

First make a new instance of it and save it in a static class field, so that you can reference it anywhere.

Use the TextureStitchPre event, instantiate the static field, and there, use the event to register your instance texture atlas. Example code here:

https://github.com/SanAndreasP/EnderStuffPlus/blob/master/java/de/sanandrew/mods/enderstuffplus/client/event/IconRegistry.java

Note: event.map.getTextureType() MUST be equal to 0 here instead of 1, since it's the texture sprite for blocks!

 

If you've done that, go to your block and use the texture atlas instance in your blocks getIcon() methods, Example code can be found here, it's an item, but it should also be similar to the block:

https://github.com/SanAndreasP/EnderStuffPlus/blob/master/java/de/sanandrew/mods/enderstuffplus/item/ItemAvisCompass.java#L62-L64

assign your blockIcon field inside your block with the texture atlas instance, preferably within the registerIcons() method (also DO NOT call the super method in this case! It will either complain about a missing/duplicate texture, or assign the same texture again!)

 

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Posted

I tried SanAndreasP's method, now it gives the missing icon checkerboard texture.

Code:

TextureNullOre:

 

 

package aj.Java.Nullvoid.client.render;

 

import cpw.mods.fml.relauncher.Side;

import cpw.mods.fml.relauncher.SideOnly;

import aj.Java.Nullvoid.VoidMod;

import net.minecraft.client.Minecraft;

import net.minecraft.client.entity.EntityClientPlayerMP;

import net.minecraft.client.renderer.texture.TextureAtlasSprite;

import net.minecraft.client.renderer.texture.TextureUtil;

import net.minecraft.item.ItemStack;

 

public class TextureNullOre extends TextureAtlasSprite {

 

public TextureNullOre(String par1Str) {

super(par1Str);

}

 

@Override

@SideOnly(Side.CLIENT)

public void updateAnimation() {

System.out.println("updateAnimation");

EntityClientPlayerMP p = Minecraft.getMinecraft().thePlayer;

if (p.inventory.armorInventory[3] != null) {

if (p.inventory.armorInventory[3].isItemEqual(new ItemStack(

VoidMod.nullGoggles))) {

this.frameCounter = getFrameForDim(p.dimension, true);

} else {

this.frameCounter = getFrameForDim(p.dimension, false);

}

} else {

this.frameCounter = getFrameForDim(p.dimension, false);

}

TextureUtil.uploadTextureMipmap(

(int[][]) this.framesTextureData.get(this.frameCounter),

this.width, this.height, this.originX, this.originY, false,

false);

}

@SideOnly(Side.CLIENT)

private int getFrameForDim(int dim, boolean goggle) {

if (!goggle) {

if (dim == 0) {

return 0;

} else if (dim == -1) {

return 1;

} else if (dim == 1) {

return 2;

} else if (dim == VoidMod.NullVoidDimID) {

return 3;

}

} else {

if (dim == 0) {

return 4;

} else if (dim == -1) {

return 5;

} else if (dim == 1) {

return 6;

} else if (dim == VoidMod.NullVoidDimID) {

return 7;

}

}

return 0;

}

@Override

public boolean hasAnimationMetadata(){

return true;

}

}

 

 

BlockNullOre:

 

 

package aj.Java.Nullvoid.block;

 

import java.util.Random;

 

import aj.Java.Nullvoid.VoidMod;

import cpw.mods.fml.relauncher.Side;

import cpw.mods.fml.relauncher.SideOnly;

import net.minecraft.block.Block;

import net.minecraft.block.material.Material;

import net.minecraft.client.renderer.texture.IIconRegister;

import net.minecraft.item.Item;

import net.minecraft.world.World;

 

public class BlockNullOre extends Block {

public BlockNullOre() {

super(Material.iron);

setCreativeTab(VoidMod.ctab);

setTickRandomly(true);

setHardness(15F);

setBlockTextureName("nullvoid:nullOre");

}

public int tickRate(World p_149738_1_)

    {

        return 10;

    }

public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)

    {

        return VoidMod.ingotNull;

    }

     

@SideOnly(Side.CLIENT)

@Override

public void registerBlockIcons(IIconRegister par1IconRegister)

{

this.blockIcon = VoidMod.texNullOre;

}

}

 

 

VoidMod:

 

 

package aj.Java.Nullvoid;

 

import aj.Java.Nullvoid.Armor.ArmorNull;

import aj.Java.Nullvoid.Armor.GravityBelt;

import aj.Java.Nullvoid.Biome.BiomeGenNull;

import aj.Java.Nullvoid.Dimention.WorldProviderNullVoid;

import aj.Java.Nullvoid.Entity.BossVoidMaster;

import aj.Java.Nullvoid.Liquids.BucketHandler;

import aj.Java.Nullvoid.Liquids.FluidMoltenFlux;

import aj.Java.Nullvoid.block.BlockMoltenFlux;

import aj.Java.Nullvoid.block.BlockNullOre;

import aj.Java.Nullvoid.block.BlockVoidDoor;

import aj.Java.Nullvoid.block.BlockVoidFabric;

import aj.Java.Nullvoid.block.BlockVoidWalker;

import aj.Java.Nullvoid.client.GUIHandler;

import aj.Java.Nullvoid.client.render.TextureNullOre;

import aj.Java.Nullvoid.gen.VoidModOreGenerator;

import aj.Java.Nullvoid.gen.VoidModStructureGenerator;

import aj.Java.Nullvoid.item.ItemBucket;

import aj.Java.Nullvoid.item.ItemCircut;

import aj.Java.Nullvoid.item.ItemIngotNull;

import aj.Java.Nullvoid.item.ItemIngotVoid;

import aj.Java.Nullvoid.tileentity.TileEntityVoidWalker;

import net.minecraft.block.Block;

import net.minecraft.creativetab.CreativeTabs;

import net.minecraft.init.Blocks;

import net.minecraft.init.Items;

import net.minecraft.item.Item;

import net.minecraft.item.ItemArmor.ArmorMaterial;

import net.minecraft.item.ItemStack;

import net.minecraft.stats.Achievement;

import net.minecraft.stats.AchievementList;

import net.minecraft.world.biome.BiomeGenBase;

import net.minecraftforge.common.AchievementPage;

import net.minecraftforge.common.BiomeDictionary;

import net.minecraftforge.common.BiomeDictionary.Type;

import net.minecraftforge.common.DimensionManager;

import net.minecraftforge.common.MinecraftForge;

import net.minecraftforge.common.config.Configuration;

import net.minecraftforge.fluids.Fluid;

import net.minecraftforge.fluids.FluidContainerRegistry;

import net.minecraftforge.fluids.FluidRegistry;

import net.minecraftforge.fluids.FluidStack;

import net.minecraftforge.oredict.OreDictionary;

import net.minecraftforge.oredict.ShapedOreRecipe;

import cpw.mods.fml.client.registry.RenderingRegistry;

import cpw.mods.fml.common.FMLCommonHandler;

import cpw.mods.fml.common.Mod;

import cpw.mods.fml.common.Mod.EventHandler;

import cpw.mods.fml.common.Mod.Instance;

import cpw.mods.fml.common.SidedProxy;

import cpw.mods.fml.common.event.FMLInitializationEvent;

import cpw.mods.fml.common.event.FMLPostInitializationEvent;

import cpw.mods.fml.common.event.FMLPreInitializationEvent;

import cpw.mods.fml.common.registry.EntityRegistry;

import cpw.mods.fml.common.registry.GameRegistry;

import net.minecraftforge.common.util.EnumHelper;

@Mod(modid = VoidMod.MODID, name="The Void", version = VoidMod.VERSION)

public class VoidMod {

public static Achievement enterNull = null;

public static Achievement useTardis = null;

public static Achievement fallVoid = null;

public static AchievementPage nullChievements = null;

public static CreativeTabs ctab = new NullVoidTab(CreativeTabs.getNextID(), "The Null Void");

public static int render = RenderingRegistry.getNextAvailableRenderId();

public static int guiWalker = 0;

public static Item circuts = null;

public static Item ingotNull = null;

public static Item ingotVoid = null;

public static Item bucket = null;

public static Block NullOre = null;

public static Block VoidFabric = null;

public static Block walker = null;

public static Block voiddoor = null;

public static int NullVoidDimID;

public static final String MODID = "nullvoid";

    public static final String VERSION = "0.0.1";

    public static Fluid liquidFlux = null;

    public static Block blockLiquidFlux = null;

    public static Item nullGoggles = null;

    public static Item voidGear = null;

    public static Item gravityBelt = null;

    public static BiomeGenBase biomeNullVoid = null;

    public static TextureNullOre texNullOre = null;

    public static ArmorMaterial NullArmor = EnumHelper.addArmorMaterial("NullArmor", 8, new int[] { 6, 12, 10, 6 }, 30);

    @Instance(value = MODID)

    public static VoidMod me;

    @SidedProxy(clientSide="aj.Java.Nullvoid.client.ClientProxy", serverSide="aj.Java.Nullvoid.CommonProxy")

    public static CommonProxy proxy;

    @EventHandler

    public void preInit(FMLPreInitializationEvent event) {

    //Initing stuff

    Configuration config = new Configuration(event.getSuggestedConfigurationFile());

    config.load();

    voiddoor = new BlockVoidDoor().setBlockName("voidDoor"); //iron

    nullGoggles = new ArmorNull(NullArmor, 0, 0).setUnlocalizedName("nullGoggles");

    voidGear = new ArmorNull(NullArmor, 0, 1).setUnlocalizedName("voidGear");

    circuts = new ItemCircut().setUnlocalizedName("circuits");

    ingotNull = new ItemIngotNull().setUnlocalizedName("ingotNull");

    ingotVoid = new ItemIngotVoid().setUnlocalizedName("ingotVoid");

    NullOre = new BlockNullOre().setBlockName("nullOre");

    VoidFabric = new BlockVoidFabric().setBlockName("voidFabric");

    walker = new BlockVoidWalker().setBlockName("voidWalker"); //iron

    NullVoidDimID = config.get(Configuration.CATEGORY_GENERAL, "Null Void Dimention ID", 42).getInt();

    liquidFlux = new FluidMoltenFlux("Molten Flux");

    liquidFlux.setBlock(blockLiquidFlux);

    blockLiquidFlux = new BlockMoltenFlux(liquidFlux).setBlockName("moltenFlux");

    gravityBelt = new GravityBelt().setUnlocalizedName("gravBelt");

bucket = new ItemBucket(blockLiquidFlux);

    biomeNullVoid = new BiomeGenNull(config.get(Configuration.CATEGORY_GENERAL, "Null Void Biome ID", 34).getInt());

    enterNull = new Achievement("achievement.GoToVoid", "GoToVoid", 0, 0, ingotNull, AchievementList.openInventory).registerStat().setSpecial();

    useTardis = new Achievement("achievement.UseTARDIS", "UseTARDIS", 2, 0, Blocks.lapis_block, enterNull).registerStat();

    fallVoid = new Achievement("achievement.FallVoid", "FallVoid", -3, -1, ingotVoid, enterNull).registerStat();

    nullChievements = new AchievementPage("The Null Void", enterNull, useTardis, fallVoid);

    config.save();

   

    //Fluids

    FluidRegistry.registerFluid(liquidFlux);

   

    //Blocks

    GameRegistry.registerBlock(walker, "The Voidwalker");

    GameRegistry.registerBlock(voiddoor, "Void Door");

    GameRegistry.registerBlock(VoidFabric, "Void Fabric");

    GameRegistry.registerBlock(NullOre, "Null Ore");

    GameRegistry.registerBlock(blockLiquidFlux, "Molten Flux Block");

   

    //Items

    GameRegistry.registerItem(bucket, "bucketFlux");

    GameRegistry.registerItem(circuts, "circutsVoidFlux");

    GameRegistry.registerItem(ingotVoid, "ingotVoid");

    GameRegistry.registerItem(ingotNull, "ingotNull");

    GameRegistry.registerItem(nullGoggles, "goggleNull");

    GameRegistry.registerItem(voidGear, "voidGear");

    GameRegistry.registerItem(gravityBelt, "gravityBelt");

   

    //Tile entities

    GameRegistry.registerTileEntity(TileEntityVoidWalker.class, "NullVoidWalker");

   

    //Oredict

    OreDictionary.registerOre("crystalNull", ingotNull);

    OreDictionary.registerOre("oreNull", NullOre);

 

//GUI

new GUIHandler();

 

//Buckets

FluidContainerRegistry.registerFluidContainer(new FluidStack(liquidFlux, FluidContainerRegistry.BUCKET_VOLUME), new ItemStack(bucket), new ItemStack(Items.bucket));

MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE);

 

//Register Biomes

BiomeDictionary.registerBiomeType(biomeNullVoid, Type.END, Type.MAGICAL);

 

//Entities

EntityRegistry.registerModEntity(BossVoidMaster.class, "Void Master", 1, this, 80, 10, true);

 

//Register dims

DimensionManager.registerProviderType(VoidMod.NullVoidDimID, WorldProviderNullVoid.class, true);

DimensionManager.registerDimension(VoidMod.NullVoidDimID, VoidMod.NullVoidDimID);

 

//Generation

GameRegistry.registerWorldGenerator(new VoidModOreGenerator(), 100);

GameRegistry.registerWorldGenerator(new VoidModStructureGenerator(), 101);

 

//Renderers

proxy.registerRenderers();

 

//NullChievements

AchievementPage.registerAchievementPage(nullChievements);

 

//Events

FMLCommonHandler.instance().bus().register(new TickListner());

    }

    @EventHandler

    public void init(FMLInitializationEvent event)

    {

//Crafting

GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(circuts, 1, 0), "RPR", "NEN", "QNQ",

'R', new ItemStack(Items.redstone),

'P', new ItemStack(Items.pumpkin_pie),

'N', "crystalNull",

'E', "dyeLime",

'Q', new ItemStack(Items.quartz)));

if (OreDictionary.getOres("ingotCopper").size() != 0 && OreDictionary.getOres("ingotElectrum").size() != 0) {

GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(circuts, 1, 1), "OGO", "NCN", "RRR",

'R', new ItemStack(Items.redstone),

'G', "ingotElectrum",

'C', new ItemStack(circuts, 1, 0),

'O', "ingotCopper",

'N', "crystalNull"));

}

else if (OreDictionary.getOres("ingotCopper").size() != 0) {

GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(circuts, 1, 1), "OGO", "NCN", "RRR",

'R', new ItemStack(Items.redstone),

'G', new ItemStack(Items.glowstone_dust),

'C', new ItemStack(circuts, 1, 0),

'O', "ingotCopper",

'N', "crystalNull"));

}

else{

GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(circuts, 1, 1), "GGG", "NCN", "RRR",

'R', new ItemStack(Items.redstone),

'G', new ItemStack(Items.glowstone_dust),

'C', new ItemStack(circuts, 1, 0),

'N', "crystalNull"));

}

GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(circuts, 1, 2), "NNN", "NCN", "NRN",

'R', new ItemStack(Blocks.redstone_block),

'N', "crystalNull",

'C', new ItemStack(circuts, 1, 1)));

GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(circuts, 1, 3), "REB", "NCN", "YQP",

'C', new ItemStack(circuts, 1, 2),

'N', "crystalNull",

'R', "dyeRed",

'B', "dyeCyan",

'Y', "dyeYellow",

'P', "dyePurple",

'Q', new ItemStack(Items.quartz),

'E', new ItemStack(Blocks.redstone_block)));

GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(circuts, 1, 4), "NNN", "RCR", "EDE",

'R', new ItemStack(Blocks.redstone_block),

'C', new ItemStack(circuts, 1, 3),

'N', "crystalNull",

'D', Blocks.diamond_block,

'E', Blocks.end_stone));

GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(walker), "NCN", "EDE", "NIN",

'D', new ItemStack(Blocks.diamond_block),

'C', new ItemStack(circuts, 1, 0),

'I', new ItemStack(circuts, 1, 3),

'N', "crystalNull",

'E', Blocks.end_stone));

GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(nullGoggles), "SCS", "GLG", "NGN",

'S', new ItemStack(Items.string),

'C', new ItemStack(circuts, 1, 4),

'N', "crystalNull",

'G', Blocks.glass_pane,

'L', Items.leather));

GameRegistry.addSmelting(NullOre, new ItemStack(ingotNull), 0.5f);

    }

    @EventHandler

    public void postInit(FMLPostInitializationEvent event) {

    System.out.println("Shall we traverse the void?");

    }

}

 

 

TickListner:

 

 

package aj.Java.Nullvoid;

 

import aj.Java.Nullvoid.client.render.TextureNullOre;

import net.minecraft.entity.player.EntityPlayerMP;

import net.minecraft.server.MinecraftServer;

import net.minecraftforge.client.event.TextureStitchEvent;

import net.minecraftforge.common.DimensionManager;

import cpw.mods.fml.common.eventhandler.SubscribeEvent;

import cpw.mods.fml.common.gameevent.TickEvent;

 

public class TickListner {

@SubscribeEvent

public void onTick(TickEvent.ServerTickEvent event){

String[] pls = MinecraftServer.getServer().getConfigurationManager().getAllUsernames();

    EntityPlayerMP p;

for(int i = 0; i < pls.length; i++){

p = MinecraftServer.getServer().getConfigurationManager().getPlayerForUsername(pls);

if(p != null){

System.out.println("Got a ticked player");

if(p.posY < 0){

System.out.println("In the void!");

if(p.dimension == VoidMod.NullVoidDimID){

p.setLocationAndAngles(p.posX, 256, p.posZ, p.cameraYaw, p.cameraPitch);

}

p.addStat(VoidMod.fallVoid, 1);

}

if(p.dimension == VoidMod.NullVoidDimID){

p.clearActivePotions();

}

}

}

DimensionManager.getProvider(VoidMod.NullVoidDimID).setWorldTime(13000);

//WorldProviderNullVoid.getProviderForDimension(VoidMod.NullVoidDimID).setWorldTime(13000);

}

@SubscribeEvent

public void texturePreStitch(TextureStitchEvent.Pre event){

if(event.map.getTextureType() == 0){

event.map.setTextureEntry("nullvoid:nullOre", VoidMod.texNullOre = new TextureNullOre("nullvoid:nullOre"));

}

}

}

 

 

Posted

If you get the missing icon, there must be something mentioned in the log. Can you give it to us?

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Posted

No, it does not say anything about the nullOre texture. Only some other untextured blocks and items.

 

can you still post it?

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

Posted

 

 

[16:01:47] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLTweaker

[16:01:47] [main/INFO] [LaunchWrapper]: Using primary tweak class name cpw.mods.fml.common.launcher.FMLTweaker

[16:01:47] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLTweaker

[16:01:47] [main/INFO] [FML]: Forge Mod Loader version 7.2.156.1060 for Minecraft 1.7.2 loading

[16:01:47] [main/INFO] [FML]: Java is Java HotSpot 64-Bit Server VM, version 1.7.0_51, running on Mac OS X:x86_64:10.9.2, installed at /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre

[16:01:47] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation

[16:01:47] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker

[16:01:47] [main/INFO] [LaunchWrapper]: Loading tweak class name cpw.mods.fml.common.launcher.FMLDeobfTweaker

[16:01:47] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker

[16:01:47] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker

[16:01:47] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[16:01:47] [main/ERROR] [FML]: The binary patch set is missing. Either you are in a development environment, or things are not going to work!

[16:01:48] [main/ERROR] [FML]: The minecraft jar file:/Users/AJ/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.1.1060/forgeSrc-1.7.2-10.12.1.1060.jar!/net/minecraft/client/ClientBrandRetriever.class appears to be corrupt! There has been CRITICAL TAMPERING WITH MINECRAFT, it is highly unlikely minecraft will work! STOP NOW, get a clean copy and try again!

[16:01:48] [main/ERROR] [FML]: FML has been ordered to ignore the invalid or missing minecraft certificate. This is very likely to cause a problem!

[16:01:48] [main/ERROR] [FML]: Technical information: ClientBrandRetriever was at jar:file:/Users/AJ/.gradle/caches/minecraft/net/minecraftforge/forge/1.7.2-10.12.1.1060/forgeSrc-1.7.2-10.12.1.1060.jar!/net/minecraft/client/ClientBrandRetriever.class, there were 0 certificates for it

[16:01:48] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing

[16:01:48] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.relauncher.CoreModManager$FMLPluginWrapper

[16:01:48] [main/INFO] [LaunchWrapper]: Calling tweak class cpw.mods.fml.common.launcher.FMLDeobfTweaker

[16:01:48] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}

[16:01:48] [main/INFO]: Setting user: Herobrine027

[16:01:50] [Client thread/INFO]: LWJGL Version: 2.9.1

[16:01:50] [Client thread/INFO] [MinecraftForge]: Attempting early MinecraftForge initialization

[16:01:50] [Client thread/INFO] [FML]: MinecraftForge v10.12.1.1060 Initialized

[16:01:50] [Client thread/INFO] [FML]: Replaced 141 ore recipies

[16:01:50] [Client thread/INFO] [MinecraftForge]: Completed early MinecraftForge initialization

[16:01:50] [Client thread/INFO] [FML]: Searching /Users/AJ/Desktop/MCP/TheVoid/mods for mods

[16:01:51] [Client thread/ERROR] [FML]: FML has detected a mod that is using a package name based on 'net.minecraft.src' : net.minecraft.src.FMLRenderAccessLibrary. This is generally a severe programming error.  There should be no mod code in the minecraft namespace. MOVE YOUR MOD! If you're in eclipse, select your source code and 'refactor' it into a new package. Go on. DO IT NOW!

[16:01:52] [Client thread/INFO] [FML]: Forge Mod Loader has identified 5 mods to load

[16:01:52] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:The Void, FMLFileResourcePack:Baubles

[16:01:53] [Client thread/INFO] [FML]: Configured a dormant chunk cache size of 0

 

Starting up SoundSystem...

Initializing LWJGL OpenAL

    (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)

OpenAL initialized.

 

[16:01:53] [sound Library Loader/INFO]: Sound engine started

[16:01:54] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/blocks/MISSING_ICON_BLOCK_165_voidWalker.png

java.io.FileNotFoundException: minecraft:textures/blocks/MISSING_ICON_BLOCK_165_voidWalker.png

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58) [TextureManager.class:?]

at net.minecraft.client.Minecraft.startGame(Minecraft.java:579) [Minecraft.class:?]

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

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

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_51]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]

at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]

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

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

[16:01:54] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/blocks/MISSING_ICON_BLOCK_169_moltenFlux.png

java.io.FileNotFoundException: minecraft:textures/blocks/MISSING_ICON_BLOCK_169_moltenFlux.png

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58) [TextureManager.class:?]

at net.minecraft.client.Minecraft.startGame(Minecraft.java:579) [Minecraft.class:?]

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

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

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_51]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]

at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]

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

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

[16:01:54] [Client thread/INFO]: Created: 512x256 textures/blocks-atlas

[16:01:54] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/items/MISSING_ICON_ITEM_4101_voidGear.png

java.io.FileNotFoundException: minecraft:textures/items/MISSING_ICON_ITEM_4101_voidGear.png

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58) [TextureManager.class:?]

at net.minecraft.client.Minecraft.startGame(Minecraft.java:580) [Minecraft.class:?]

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

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

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_51]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]

at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]

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

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

[16:01:54] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/items/MISSING_ICON_ITEM_4100_nullGoggles.png

java.io.FileNotFoundException: minecraft:textures/items/MISSING_ICON_ITEM_4100_nullGoggles.png

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTickableTexture(TextureManager.java:71) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTextureMap(TextureManager.java:58) [TextureManager.class:?]

at net.minecraft.client.Minecraft.startGame(Minecraft.java:580) [Minecraft.class:?]

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

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

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_51]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]

at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]

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

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

[16:01:54] [Client thread/INFO]: Created: 256x256 textures/items-atlas

Shall we traverse the void?

[16:01:54] [Client thread/INFO] [FML]: Forge Mod Loader has successfully loaded 5 mods

[16:01:54] [Client thread/INFO]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:The Void, FMLFileResourcePack:Baubles

[16:01:54] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/items/MISSING_ICON_ITEM_4101_voidGear.png

java.io.FileNotFoundException: minecraft:textures/items/MISSING_ICON_ITEM_4101_voidGear.png

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.onResourceManagerReload(TextureManager.java:170) [TextureManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:134) [simpleReloadableResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:118) [simpleReloadableResourceManager.class:?]

at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:624) [Minecraft.class:?]

at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:283) [FMLClientHandler.class:?]

at net.minecraft.client.Minecraft.startGame(Minecraft.java:583) [Minecraft.class:?]

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

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

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_51]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]

at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]

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

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

[16:01:54] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/items/MISSING_ICON_ITEM_4100_nullGoggles.png

java.io.FileNotFoundException: minecraft:textures/items/MISSING_ICON_ITEM_4100_nullGoggles.png

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.onResourceManagerReload(TextureManager.java:170) [TextureManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:134) [simpleReloadableResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:118) [simpleReloadableResourceManager.class:?]

at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:624) [Minecraft.class:?]

at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:283) [FMLClientHandler.class:?]

at net.minecraft.client.Minecraft.startGame(Minecraft.java:583) [Minecraft.class:?]

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

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

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_51]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]

at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]

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

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

[16:01:54] [Client thread/INFO]: Created: 256x256 textures/items-atlas

[16:01:54] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/blocks/MISSING_ICON_BLOCK_165_voidWalker.png

java.io.FileNotFoundException: minecraft:textures/blocks/MISSING_ICON_BLOCK_165_voidWalker.png

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.onResourceManagerReload(TextureManager.java:170) [TextureManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:134) [simpleReloadableResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:118) [simpleReloadableResourceManager.class:?]

at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:624) [Minecraft.class:?]

at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:283) [FMLClientHandler.class:?]

at net.minecraft.client.Minecraft.startGame(Minecraft.java:583) [Minecraft.class:?]

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

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

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_51]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]

at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]

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

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

[16:01:54] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/blocks/MISSING_ICON_BLOCK_169_moltenFlux.png

java.io.FileNotFoundException: minecraft:textures/blocks/MISSING_ICON_BLOCK_169_moltenFlux.png

at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:65) ~[FallbackResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:67) ~[simpleReloadableResourceManager.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTextureAtlas(TextureMap.java:126) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureMap.loadTexture(TextureMap.java:91) [TextureMap.class:?]

at net.minecraft.client.renderer.texture.TextureManager.loadTexture(TextureManager.java:89) [TextureManager.class:?]

at net.minecraft.client.renderer.texture.TextureManager.onResourceManagerReload(TextureManager.java:170) [TextureManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.notifyReloadListeners(SimpleReloadableResourceManager.java:134) [simpleReloadableResourceManager.class:?]

at net.minecraft.client.resources.SimpleReloadableResourceManager.reloadResources(SimpleReloadableResourceManager.java:118) [simpleReloadableResourceManager.class:?]

at net.minecraft.client.Minecraft.refreshResources(Minecraft.java:624) [Minecraft.class:?]

at cpw.mods.fml.client.FMLClientHandler.finishMinecraftLoading(FMLClientHandler.java:283) [FMLClientHandler.class:?]

at net.minecraft.client.Minecraft.startGame(Minecraft.java:583) [Minecraft.class:?]

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

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

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_51]

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_51]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_51]

at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_51]

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

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

[16:01:54] [Client thread/INFO]: Created: 512x256 textures/blocks-atlas

 

SoundSystem shutting down...

    Author: Paul Lamb, www.paulscode.com

 

 

Starting up SoundSystem...

Initializing LWJGL OpenAL

    (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)

OpenAL initialized.

[16:01:55] [MCO Availability Checker #1/ERROR]: Couldn't connect to Realms

 

[16:01:55] [sound Library Loader/INFO]: Sound engine started

[16:02:00] [Client thread/WARN]: Unable to play unknown soundEvent: minecraft:music.menu

[16:02:01] [Client thread/INFO]: Stopping!

 

SoundSystem shutting down...

    Author: Paul Lamb, www.paulscode.com

 

 

 

Posted

hm... Can you do a println() in your registerBlockIcons method and see if the VoidMod.texNullOre is null?

 

EDIT: I just noticed that the registerBlockIcons method is called before the event and thus you assign null to your blockIcon (why it works for me, I have no clue).

So instanciate your texture atlas whilst defining the field. Then use the reference in the event and the registerBlockIcons method (you just move the

new TextureNullOre()

from the event into the main mod, where you declare your field for it)

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • It is 1.12.2 - I have no idea if there is a 1.12 pack
    • Okay, but does the modpack works with 1.12 or just with 1.12.2, because I need the Forge client specifically for Minecraft 1.12, not 1.12.2
    • Version 1.19 - Forge 41.0.63 I want to create a wolf entity that I can ride, so far it seems to be working, but the problem is that when I get on the wolf, I can’t control it. I then discovered that the issue is that the server doesn’t detect that I’m riding the wolf, so I’m struggling with synchronization. However, it seems to not be working properly. As I understand it, the server receives the packet but doesn’t register it correctly. I’m a bit new to Java, and I’ll try to provide all the relevant code and prints *The comments and prints are translated by chatgpt since they were originally in Spanish* Thank you very much in advance No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. MountableWolfEntity package com.vals.valscraft.entity; import com.vals.valscraft.network.MountSyncPacket; import com.vals.valscraft.network.NetworkHandler; import net.minecraft.client.Minecraft; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.animal.Wolf; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.Entity; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.network.PacketDistributor; public class MountableWolfEntity extends Wolf { private boolean hasSaddle; private static final EntityDataAccessor<Byte> DATA_ID_FLAGS = SynchedEntityData.defineId(MountableWolfEntity.class, EntityDataSerializers.BYTE); public MountableWolfEntity(EntityType<? extends Wolf> type, Level level) { super(type, level); this.hasSaddle = false; } @Override protected void defineSynchedData() { super.defineSynchedData(); this.entityData.define(DATA_ID_FLAGS, (byte)0); } public static AttributeSupplier.Builder createAttributes() { return Wolf.createAttributes() .add(Attributes.MAX_HEALTH, 20.0) .add(Attributes.MOVEMENT_SPEED, 0.3); } @Override public InteractionResult mobInteract(Player player, InteractionHand hand) { ItemStack itemstack = player.getItemInHand(hand); if (itemstack.getItem() == Items.SADDLE && !this.hasSaddle()) { if (!player.isCreative()) { itemstack.shrink(1); } this.setSaddle(true); return InteractionResult.SUCCESS; } else if (!level.isClientSide && this.hasSaddle()) { player.startRiding(this); MountSyncPacket packet = new MountSyncPacket(true); // 'true' means the player is mounted NetworkHandler.CHANNEL.sendToServer(packet); // Ensure the server handles the packet return InteractionResult.SUCCESS; } return InteractionResult.PASS; } @Override public void travel(Vec3 travelVector) { if (this.isVehicle() && this.getControllingPassenger() instanceof Player) { System.out.println("The wolf has a passenger."); System.out.println("The passenger is a player."); Player player = (Player) this.getControllingPassenger(); // Ensure the player is the controller this.setYRot(player.getYRot()); this.yRotO = this.getYRot(); this.setXRot(player.getXRot() * 0.5F); this.setRot(this.getYRot(), this.getXRot()); this.yBodyRot = this.getYRot(); this.yHeadRot = this.yBodyRot; float forward = player.zza; float strafe = player.xxa; if (forward <= 0.0F) { forward *= 0.25F; } this.flyingSpeed = this.getSpeed() * 0.1F; this.setSpeed((float) this.getAttributeValue(Attributes.MOVEMENT_SPEED) * 1.5F); this.setDeltaMovement(new Vec3(strafe, travelVector.y, forward).scale(this.getSpeed())); this.calculateEntityAnimation(this, false); } else { // The wolf does not have a passenger or the passenger is not a player System.out.println("No player is mounted, or the passenger is not a player."); super.travel(travelVector); } } public boolean hasSaddle() { return this.hasSaddle; } public void setSaddle(boolean hasSaddle) { this.hasSaddle = hasSaddle; } @Override protected void dropEquipment() { super.dropEquipment(); if (this.hasSaddle()) { this.spawnAtLocation(Items.SADDLE); this.setSaddle(false); } } @SubscribeEvent public static void onServerTick(TickEvent.ServerTickEvent event) { if (event.phase == TickEvent.Phase.START) { MinecraftServer server = net.minecraftforge.server.ServerLifecycleHooks.getCurrentServer(); if (server != null) { for (ServerPlayer player : server.getPlayerList().getPlayers()) { if (player.isPassenger() && player.getVehicle() instanceof MountableWolfEntity) { MountableWolfEntity wolf = (MountableWolfEntity) player.getVehicle(); System.out.println("Tick: " + player.getName().getString() + " is correctly mounted on " + wolf); } } } } } private boolean lastMountedState = false; @Override public void tick() { super.tick(); if (!this.level.isClientSide) { // Only on the server boolean isMounted = this.isVehicle() && this.getControllingPassenger() instanceof Player; // Only print if the state changed if (isMounted != lastMountedState) { if (isMounted) { Player player = (Player) this.getControllingPassenger(); // Verify the passenger is a player System.out.println("Server: Player " + player.getName().getString() + " is now mounted."); } else { System.out.println("Server: The wolf no longer has a passenger."); } lastMountedState = isMounted; } } } @Override public void addPassenger(Entity passenger) { super.addPassenger(passenger); if (passenger instanceof Player) { Player player = (Player) passenger; if (!this.level.isClientSide && player instanceof ServerPlayer) { // Send the packet to the server to indicate the player is mounted NetworkHandler.CHANNEL.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new MountSyncPacket(true)); } } } @Override public void removePassenger(Entity passenger) { super.removePassenger(passenger); if (passenger instanceof Player) { Player player = (Player) passenger; if (!this.level.isClientSide && player instanceof ServerPlayer) { // Send the packet to the server to indicate the player is no longer mounted NetworkHandler.CHANNEL.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new MountSyncPacket(false)); } } } @Override public boolean isControlledByLocalInstance() { Entity entity = this.getControllingPassenger(); return entity instanceof Player; } @Override public void positionRider(Entity passenger) { if (this.hasPassenger(passenger)) { double xOffset = Math.cos(Math.toRadians(this.getYRot() + 90)) * 0.4; double zOffset = Math.sin(Math.toRadians(this.getYRot() + 90)) * 0.4; passenger.setPos(this.getX() + xOffset, this.getY() + this.getPassengersRidingOffset() + passenger.getMyRidingOffset(), this.getZ() + zOffset); } } } MountSyncPacket package com.vals.valscraft.network; import com.vals.valscraft.entity.MountableWolfEntity; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class MountSyncPacket { private final boolean isMounted; public MountSyncPacket(boolean isMounted) { this.isMounted = isMounted; } public void encode(FriendlyByteBuf buffer) { buffer.writeBoolean(isMounted); } public static MountSyncPacket decode(FriendlyByteBuf buffer) { return new MountSyncPacket(buffer.readBoolean()); } public void handle(NetworkEvent.Context context) { context.enqueueWork(() -> { ServerPlayer player = context.getSender(); // Get the player from the context if (player != null) { // Verifies if the player has dismounted if (!isMounted) { Entity vehicle = player.getVehicle(); if (vehicle instanceof MountableWolfEntity wolf) { // Logic to remove the player as a passenger wolf.removePassenger(player); System.out.println("Server: Player " + player.getName().getString() + " is no longer mounted."); } } } }); context.setPacketHandled(true); // Marks the packet as handled } } networkHandler package com.vals.valscraft.network; import com.vals.valscraft.valscraft; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.network.NetworkRegistry; import net.minecraftforge.network.simple.SimpleChannel; import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class NetworkHandler { private static final String PROTOCOL_VERSION = "1"; public static final SimpleChannel CHANNEL = NetworkRegistry.newSimpleChannel( new ResourceLocation(valscraft.MODID, "main"), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals ); public static void init() { int packetId = 0; // Register the mount synchronization packet CHANNEL.registerMessage( packetId++, MountSyncPacket.class, MountSyncPacket::encode, MountSyncPacket::decode, (msg, context) -> msg.handle(context.get()) // Get the context with context.get() ); } }  
  • Topics

×
×
  • Create New...

Important Information

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