Jump to content

Recommended Posts

Posted

Here is the code I used for my Souls Mod. It is called in  renderItem(ItemRenderType type, ItemStack item, Object... data)

if (data[1] != null && data[1] instanceof EntityPlayer) {
		if (!((EntityPlayer) data[1] == Minecraft.getMinecraft().renderViewEntity
				&& Minecraft.getMinecraft().gameSettings.thirdPersonView == 0 && !((Minecraft
				.getMinecraft().currentScreen instanceof GuiInventory || Minecraft
				.getMinecraft().currentScreen instanceof GuiContainerCreative) && RenderManager.instance.playerViewY == 180.0F))) {
			GL11.glRotatef(-90, 0, 0, 1);
			GL11.glTranslatef(-1.05f, 0.3f, -0.1f);
		} else {
			GL11.glTranslatef(1f, 2f, 0f);
			GL11.glRotatef(190, 1, 0, 0);
		}
	}
	batModel.render((Entity) data[1], 0, 0, 0, 0, 0, 0.0625f);

 

And I use this code to check whether or not the 3D item should be rendered.

	@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
	switch (type) {
	case EQUIPPED:
		return true;
	default:
		return false;
	}
}

 

If you wish, I can release my full ItemRenderClub.java. Just ask.

Aspergers is annoying sometimes :(

Posted

I see your code and i raise you mine

 

 

if(data[1] != null && data[1] instanceof EntityPlayer)
	{
		if(!((EntityPlayer)data[1] == Minecraft.getMinecraft().renderViewEntity && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0 && !((Minecraft.getMinecraft().currentScreen instanceof GuiInventory || Minecraft.getMinecraft().currentScreen instanceof GuiContainerCreative) && RenderManager.instance.playerViewY == 180.0F)))
		{
			GL11.glScalef(1.5f, 1.5f, 1.5f);
			GL11.glTranslatef(x, y, z);
			GL11.glRotatef(15+rotZ, 0.0f, 0.0f, 1.0f);
			GL11.glRotatef(12+rotY, 0.0f, 1.0f, 0.0f);
			GL11.glRotatef(145+rotX, 1.0f, 0.0f, 0.0f);
		}
		else
		{
			GL11.glRotatef(15f+Z, 0.0f, 0.0f, 1.0f);
			GL11.glRotatef(175F+X, 1.0f, 0.0f, 0.0f);
			GL11.glRotatef(102F+Y, 0.0f, 1.0f, 0.0f);
			GL11.glScalef(1.5f, 1.5f, 1.5f);
			GL11.glTranslatef(-0.2f+fpsX ,-0.3f+fpsY, 0.2F+fpsZ);
		}

////////////////////////////////////:

@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
	boolean render = item.getItem().equals(Item.dyePowder) && item.getItemDamage() != 4 ? false : true;
	switch(type)
	{
	case  EQUIPPED:
		return render;
	case ENTITY: 
		return render;
	default: break;
	}
	return false;
} 

 

 

i've got what's needed :/ does your renderer work in 1.5.2 ?

Posted

I see your code and i raise you mine

 

 

if(data[1] != null && data[1] instanceof EntityPlayer)
	{
		if(!((EntityPlayer)data[1] == Minecraft.getMinecraft().renderViewEntity && Minecraft.getMinecraft().gameSettings.thirdPersonView == 0 && !((Minecraft.getMinecraft().currentScreen instanceof GuiInventory || Minecraft.getMinecraft().currentScreen instanceof GuiContainerCreative) && RenderManager.instance.playerViewY == 180.0F)))
		{
			GL11.glScalef(1.5f, 1.5f, 1.5f);
			GL11.glTranslatef(x, y, z);
			GL11.glRotatef(15+rotZ, 0.0f, 0.0f, 1.0f);
			GL11.glRotatef(12+rotY, 0.0f, 1.0f, 0.0f);
			GL11.glRotatef(145+rotX, 1.0f, 0.0f, 0.0f);
		}
		else
		{
			GL11.glRotatef(15f+Z, 0.0f, 0.0f, 1.0f);
			GL11.glRotatef(175F+X, 1.0f, 0.0f, 0.0f);
			GL11.glRotatef(102F+Y, 0.0f, 1.0f, 0.0f);
			GL11.glScalef(1.5f, 1.5f, 1.5f);
			GL11.glTranslatef(-0.2f+fpsX ,-0.3f+fpsY, 0.2F+fpsZ);
		}

////////////////////////////////////:

@Override
public boolean handleRenderType(ItemStack item, ItemRenderType type) {
	boolean render = item.getItem().equals(Item.dyePowder) && item.getItemDamage() != 4 ? false : true;
	switch(type)
	{
	case  EQUIPPED:
		return render;
	case ENTITY: 
		return render;
	default: break;
	}
	return false;
} 

 

 

i've got what's needed :/ does your renderer work in 1.5.2 ?

 

There's a new feature in the newest Forge, which splits the first- and third-person-view:

Add case  EQUIPPED_FIRST_PERSON: below case  EQUIPPED:

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

/**

        * The render type used for when a ItemMap is rendered in first person,

        * All appropriate rotations have been applied, and the player's hands,

        * and the map BG are already rendered.

        *

        * Data Parameters:

        * EntityPlayer player - The player holding the map

        * RenderEngine engine - The RenderEngine instance

        * MapData mapData - The map data

        */

        FIRST_PERSON_MAP

 

 

there is no such case equipped_first_person

Posted

/**

        * The render type used for when a ItemMap is rendered in first person,

        * All appropriate rotations have been applied, and the player's hands,

        * and the map BG are already rendered.

        *

        * Data Parameters:

        * EntityPlayer player - The player holding the map

        * RenderEngine engine - The RenderEngine instance

        * MapData mapData - The map data

        */

        FIRST_PERSON_MAP

 

 

there is no such case equipped_first_person

 

Oh, then that's the one. I just saw the PR, which got pulled. (seems like I have to update Forge, again :P)

Nuh, wait D:

Do you use the LATEST Forge?

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

haha, now my eclipse does the same thing xD

 

I think it's a bug in 688 !! because 684 in eclipse worked, and i had 688 in my vanilla minecraft. that's why.

 

Did you add the case statement I gave you before?

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

/**

        * Called to render an item currently held in-hand by a living entity in

        * first person. If rendering as a 3D block, the item will be rotated to a

        * 45-degree angle. To render a 2D texture with some thickness, see

        * net.minecraft.src.ItemRenderer. In either case, rendering should be done

        * in local coordinates from (0,0,0)-(1,1,1).

        *

        * Data parameters:

        * RenderBlocks render - The RenderBlocks instance

        * EntityLiving entity - The entity holding this item

        */

        EQUIPPED_FIRST_PERSON,

 

I can now affirm that the case exists. thanks !!

 

bug solved. i'm changing the title and i'll close the topic :)

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Maybe there are other mods, not compatible with 47.4.4 - the 2nd 4 indicates mayor changes - so some mods may not compatible with it
    • Nope still the same issue exit code 1
    • I have no idea what the flip is going on, I can load the modpack just fine at forge 42.2.0 but any forge version above it insta-crashes with exit code 1. Can somebody tell me what's going on, this is minecraft 1.20.1 Latest.log: https://pastebin.com/pBUL1ZFa
    • does anyone know how to incorporate custom noise settings into a custom dimension through the use of datagen, I have created a custon json file for the noise settings that I want but I just don't know how to get it to register with the generated json file of the custom dimension.   here is the code for the dimension class package net.hurst.lustria.worldgen.dimension; import com.mojang.datafixers.util.Pair; import net.hurst.lustria.Lustria; import net.hurst.lustria.worldgen.biome.ModBiomes; import net.hurst.lustria.worldgen.registries.LustriaNoiseSettings; import net.minecraft.core.HolderGetter; import net.minecraft.core.registries.Registries; import net.minecraft.data.worldgen.BootstapContext; import net.minecraft.resources.ResourceKey; import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; import net.minecraft.util.valueproviders.ConstantInt; import net.minecraft.world.level.Level; import net.minecraft.world.level.biome.*; import net.minecraft.world.level.dimension.BuiltinDimensionTypes; import net.minecraft.world.level.dimension.DimensionType; import net.minecraft.world.level.dimension.LevelStem; import net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator; import net.minecraft.world.level.levelgen.NoiseGeneratorSettings; import java.util.List; import java.util.OptionalLong; public class ModDimensions { public static final ResourceKey<LevelStem> LUSTRIA_KEY = ResourceKey.create(Registries.LEVEL_STEM, ResourceLocation.fromNamespaceAndPath(Lustria.MOD_ID, "lustriadim")); public static final ResourceKey<Level> LUSTRIA_LEVEL_KEY = ResourceKey.create(Registries.DIMENSION, ResourceLocation.fromNamespaceAndPath(Lustria.MOD_ID, "lustriadim")); public static final ResourceKey<DimensionType> LUSTRIA_DIM_TYPE = ResourceKey.create(Registries.DIMENSION_TYPE, ResourceLocation.fromNamespaceAndPath(Lustria.MOD_ID, "lustriadim_type")); public static void bootstrapType(BootstapContext<DimensionType> context) { context.register(LUSTRIA_DIM_TYPE, new DimensionType( OptionalLong.of(12000), // fixedTime false, // hasSkylight true, // hasCeiling false, // ultraWarm false, // natural 1.0, // coordinateScale true, // bedWorks false, // respawnAnchorWorks -64, // minY 256, // height 256, // logicalHeight BlockTags.INFINIBURN_OVERWORLD, // infiniburn BuiltinDimensionTypes.OVERWORLD_EFFECTS, // effectsLocation 0.0f, // ambientLight new DimensionType.MonsterSettings(false, false, ConstantInt.of(0), 0))); } public static void bootstrapStem(BootstapContext<LevelStem> context) { HolderGetter<Biome> biomeRegistry = context.lookup(Registries.BIOME); HolderGetter<DimensionType> dimTypes = context.lookup(Registries.DIMENSION_TYPE); HolderGetter<NoiseGeneratorSettings> noiseGenSettings = context.lookup(Registries.NOISE_SETTINGS); NoiseBasedChunkGenerator wrappedChunkGenerator = new NoiseBasedChunkGenerator( new FixedBiomeSource(biomeRegistry.getOrThrow(Biomes.BEACH)), noiseGenSettings.getOrThrow(NoiseGeneratorSettings.CAVES)); NoiseBasedChunkGenerator noiseBasedChunkGenerator = new NoiseBasedChunkGenerator( MultiNoiseBiomeSource.createFromList( new Climate.ParameterList<>(List.of(Pair.of( Climate.parameters(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F), biomeRegistry.getOrThrow(Biomes.BEACH)), Pair.of( Climate.parameters(0.1F, 0.2F, 0.0F, 0.2F, 0.0F, 0.0F, 0.0F), biomeRegistry.getOrThrow(Biomes.BIRCH_FOREST)), Pair.of( Climate.parameters(0.3F, 0.6F, 0.1F, 0.1F, 0.0F, 0.0F, 0.0F), biomeRegistry.getOrThrow(Biomes.OCEAN)), Pair.of( Climate.parameters(0.4F, 0.3F, 0.2F, 0.1F, 0.0F, 0.0F, 0.0F), biomeRegistry.getOrThrow(Biomes.DARK_FOREST)) ))), noiseGenSettings.getOrThrow(NoiseGeneratorSettings.CAVES)); LevelStem stem = new LevelStem(dimTypes.getOrThrow(ModDimensions.LUSTRIA_DIM_TYPE), noiseBasedChunkGenerator); context.register(LUSTRIA_KEY, stem); } } minecraft version is 1.20.1
  • Topics

×
×
  • Create New...

Important Information

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