Jump to content

Recommended Posts

Posted

Okay Im try to render my new throwable item so it isnt a white block anymore, I know you have to register your render but the renderregistry wont work

 

Do I have to mess around with the tessellator?

 

here

    RenderingRegistry.registerEntityRenderingHandler(EntityShuriken.class, new RenderShuriken()); <------------ I created a constructor because It said it to :P but it s still a white block that renders whne the item is right clicked

 

 

BaseMod registry

 

//Declaring EventHandler
@Init
public void load(FMLInitializationEvent event) throws Exception {
GameRegistry.registerWorldGenerator(new TitaniumModWorldGen());
EntityRegistry.registerModEntity(EntityShuriken.class, "Shuriken", 2, this , 250, 1, false);

RenderingRegistry.registerEntityRenderingHandler(
	  EntityShuriken.class, new RenderShuriken(Shuriken));

 

Render Class

package minecraftmod;
import net.minecraft.client.renderer.texture.IconRegister;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.client.resources.ResourceLocation;
import net.minecraft.entity.Entity;
import net.minecraft.entity.projectile.EntityArrow;
import net.minecraft.entity.projectile.EntityFireball;
import net.minecraft.item.Item;
import net.minecraft.util.Icon;
import net.minecraft.util.MathHelper;
import minecraftmod.EntityShuriken;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;

@SideOnly(Side.CLIENT)
public class RenderShuriken extends Render 
{
    private float field_77002_a;

    public RenderShuriken(float par1)
    {
        this.field_77002_a = par1;
    }
   
    
    







	// TODO Auto-generated constructor stub
















public  RenderShuriken(Item Shuriken) {
	// TODO Auto-generated constructor stub
}










public void renderShuriken(EntityShuriken par1EntityShuriken, double par2, double par4, double par6, float par8, float par9)
    {
        this.func_110777_b(par1EntityShuriken);
        GL11.glPushMatrix();
        GL11.glTranslatef((float)par2, (float)par4, (float)par6);
        GL11.glRotatef(par1EntityShuriken.prevRotationYaw + (par1EntityShuriken.rotationYaw - par1EntityShuriken.prevRotationYaw) * par9 - 90.0F, 0.0F, 1.0F, 0.0F);
        GL11.glRotatef(par1EntityShuriken.prevRotationPitch + (par1EntityShuriken.rotationPitch - par1EntityShuriken.prevRotationPitch) * par9, 0.0F, 0.0F, 1.0F);
        Tessellator tessellator = Tessellator.instance;
        byte b0 = 0;
        float f2 = 0.0F;
        float f3 = 0.5F;
        float f4 = (float)(0 + b0 * 10) / 32.0F;
        float f5 = (float)(5 + b0 * 10) / 32.0F;
        float f6 = 0.0F;
        float f7 = 0.15625F;
        float f8 = (float)(5 + b0 * 10) / 32.0F;
        float f9 = (float)(10 + b0 * 10) / 32.0F;
        float f10 = 0.05625F;
        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
      
        this.renderManager.renderEngine.func_110577_a(
                new ResourceLocation("titaniummod:shuriken")); 
     
        GL11.glDisable(GL11.GL_TEXTURE_2D);
        GL11.glDisable(GL11.GL_LIGHTING);
        GL11.glEnable(GL11.GL_BLEND);
        GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
        GL11.glRotatef(45.0F, 1.0F, 0.0F, 0.0F);
        GL11.glScalef(f10, f10, f10);
        GL11.glTranslatef(-4.0F, 0.0F, 0.0F);
        GL11.glNormal3f(f10, 0.0F, 0.0F);
        tessellator.startDrawingQuads();
        tessellator.addVertex(-7.0D, -2.0D, -2.0D);
        tessellator.addVertex(-7.0D, -2.0D, 2.0D);
        tessellator.addVertex(-7.0D, 2.0D, 2.0D);
        tessellator.addVertex(-7.0D, 2.0D, -2.0D);
        tessellator.draw();
        GL11.glNormal3f(-f10, 0.0F, 0.0F);
        tessellator.startDrawingQuads();
        tessellator.addVertex(-7.0D, 2.0D, -2.0D);
        tessellator.addVertex(-7.0D, 2.0D, 2.0D);
        tessellator.addVertex(-7.0D, -2.0D, 2.0D);
        tessellator.addVertex(-7.0D, -2.0D, -2.0D);
        tessellator.draw();

        for (int i = 0; i < 4; ++i)
        {
            GL11.glRotatef(90.0F, 1.0F, 0.0F, 0.0F);
            GL11.glNormal3f(0.0F, 0.0F, f10);
            tessellator.startDrawingQuads();
            tessellator.addVertex(-8.0D, -2.0D, 0.0D);
            tessellator.addVertex(8.0D, -2.0D, 0.0D);
            tessellator.addVertex(8.0D, 2.0D, 0.0D);
            tessellator.addVertex(-8.0D, 2.0D, 0.0D);
            tessellator.draw();
            tessellator.setColorRGBA(120, 40, 40, 120);
            int red = 120;
            int green = 40;
            int blue = 40;
            int alpha = 120;
        }
        GL11.glDisable(GL11.GL_BLEND);
        GL11.glEnable(GL11.GL_LIGHTING);
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        GL11.glPopMatrix();
    }

    protected ResourceLocation func_110779_a(EntityShuriken par1EntityShuriken)
    {
	return null;
        
    }

  

    protected ResourceLocation func_110790_a(EntityShuriken par1EntityShuriken)
    {
        return TextureMap.field_110576_c;
    }

    protected ResourceLocation func_110775_a(EntityShuriken par1EntityShuriken)
    {
        return this.func_110790_a((EntityShuriken) par1EntityShuriken);
    }

    /**
     * Actually renders the given argument. This is a synthetic bridge method, always casting down its argument and then
     * handing it off to a worker function which does the actual work. In all probabilty, the class Render is generic
     * (Render<T extends Entity) and this method has signature public void doRender(T entity, double d, double d1,
     * double d2, float f, float f1). But JAD is pre 1.5 so doesn't do that.
     */
    public void doRender(EntityShuriken itemEntity, double par2, double par4, double par6, float par8, float par9)
    {
   
   
    }








@Override
public void doRender(Entity entity, double d0, double d1, double d2,
		float f, float f1) {
	// TODO Auto-generated method stub

}








@Override
protected ResourceLocation func_110775_a(Entity entity) {
	// TODO Auto-generated method stub
	return null;
}}

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

    • Could you send a screenshot of your weapon code? Here is the one I made (for a dagger): protected static final double DAGGER_REACH_MOD = -1.5D; protected final Multimap<Attribute, AttributeModifier> defaultModifiers;     public DaggerItem(Tier pTier, int pAttackDamageModifier, float pAttackSpeedModifier, Properties pProperties) {         super(pTier, pAttackDamageModifier, pAttackSpeedModifier, pProperties);         this.attackDamage = (float) pAttackDamageModifier + pTier.getAttackDamageBonus();         ImmutableMultimap.Builder<Attribute, AttributeModifier> builder = ImmutableMultimap.builder();         builder.put(Attributes.ATTACK_DAMAGE, new AttributeModifier(BASE_ATTACK_DAMAGE_UUID, "Weapon modifier", this.attackDamage, AttributeModifier.Operation.ADDITION));         builder.put(Attributes.ATTACK_SPEED, new AttributeModifier(BASE_ATTACK_SPEED_UUID, "Weapon modifier", pAttackSpeedModifier, AttributeModifier.Operation.ADDITION));         builder.put(ForgeMod.ENTITY_REACH.get(), new AttributeModifier(ToolUtils.BASE_ATTACK_REACH_UUID, "Weapon modifier", DAGGER_REACH_MOD, AttributeModifier.Operation.ADDITION));         this.defaultModifiers = builder.build(); } @Override     public Multimap<Attribute, AttributeModifier> getDefaultAttributeModifiers(EquipmentSlot pEquipmentSlot) {         return pEquipmentSlot == EquipmentSlot.MAINHAND ? this.defaultModifiers : super.getDefaultAttributeModifiers(pEquipmentSlot);     }
    • https://images.app.goo.gl/1PxFKdxByTgkxvSu6
    • That's what we'll try out. I could never figure out how to recreate the crash, so I'll just have to wait and see.
    • Ok, I updated to the latest version and now the models are visible, the problem now is that the glowing eyes are not rendered nor any texture I render there when using shaders, even using the default Minecraft eyes RenderType, I use entityTranslucent and entityCutout, but it still won't render. Something I noticed when using shaders is that a texture, instead of appearing at the world position, would appear somewhere on the screen, following a curved path, it was strange, I haven't been able to reproduce it again. I thought it could be that since I render the texture in the AFTER ENTITIES stage which is posted after the batches used for entity rendering are finished, maybe that was the reason why the render types were not being drawn correctly, so I tried injecting code before finishing the batches but it still didn't work, plus the model was invisible when using shaders, there was a bug where if I look at the model from above it is visible but if I look at it from below it is invisible. So in summary, models are now visible but glowing eyes and textures are not rendered, that hasn't changed.
    • https://pastebin.com/99FA0zvK Attempting to run genIntellijRuns, this task fails with pasted error. IntelliJ IDEA 2024.3 (Community Edition) eclipse_adoptium-21-x86_64-os_x.2/jdk-21.0.6+7 Steps followed: Step 1: Open your command-line and browse to the folder where you extracted the zip file. Step 2: You're left with a choice. If you prefer to use Eclipse: 1. Run the following command: `./gradlew genEclipseRuns` 2. Open Eclipse, Import > Existing Gradle Project > Select Folder    or run `gradlew eclipse` to generate the project. If you prefer to use IntelliJ: 1. Open IDEA, and import project. 2. Select your build.gradle file and have it import. 3. Run the following command: `./gradlew genIntellijRuns` 4. Refresh the Gradle Project in IDEA if required.
  • Topics

×
×
  • Create New...

Important Information

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