Jump to content

[1.14.4] How to change the player renderer?


kaydogz

Recommended Posts

Basically, I want to make it so that whenever I hit a certain key, it changes the player's model from a player to the selected mob. Everything works except I have no clue as to how to change the renderer/model of the player to that of the selected mob.

Here is the RenderLivingEvent.Pre:

@SubscribeEvent
public static void renderLivingPre(final RenderLivingEvent.Pre<?, ?> event) {
	if (event.getEntity() instanceof PlayerEntity) {
		PlayerEntity player = (PlayerEntity) event.getEntity();
		if (GodsCrownItem.isWearingGodsCrown(player)) {
			ItemStack stack = player.inventory.armorInventory.get(3);
			if (GodsCrownItem.isGodsCrownMorphed(stack) && !GodsCrownItem.isSelectedMorphMobEmpty(stack)) {
				
				// Don't know how to change renderer.
					
			}
		}	
	}
}

So, how would I go about changing the renderer of the player?

Link to comment
Share on other sites

9 minutes ago, kaydogz said:

So, how would I go about changing the renderer of the player?

First off use PlayerRenderEvent.Pre instead. Cancel the event under your conditions then subscribe to the RenderPlayerEvent.Post and render the model there yourself.

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

53 minutes ago, Animefan8888 said:

First off use PlayerRenderEvent.Pre instead. Cancel the event under your conditions then subscribe to the RenderPlayerEvent.Post and render the model there yourself.

Just tried that and it seems that because I am canceling PlayerRenderEvent.Pre it is not firing PlayerRenderEvent.Post as a result. Is there any way to fix this?

Link to comment
Share on other sites

7 minutes ago, kaydogz said:

Just tried that and it seems that because I am canceling PlayerRenderEvent.Pre it is not firing PlayerRenderEvent.Post as a result. Is there any way to fix this?

Sorry my bad do your rendering in the Pre event. Don't know why I said Post.

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

1 minute ago, Animefan8888 said:

Sorry my bad do your rendering in the Pre event. Don't know why I said Post.

Its aight but I don't know how to do the rendering properly. The best I have is this: https://imgur.com/a/pw4FaM4
Rendering code:

event.setCanceled(true);
Entity entity = EntityType.byKey(GodsCrownItem.getSelectedMorphMobOf(stack).toString()).get().create(event.getEntity().world);
Minecraft.getInstance().getRenderManager().getRenderer(entity.getClass()).doRender(entity, event.getX(), event.getY(), event.getZ(), event.getPlayer().rotationYaw, event.getPartialRenderTick());


Im probably doing this terribly wrong

Link to comment
Share on other sites

1 minute ago, kaydogz said:

Entity entity = EntityType.byKey(GodsCrownItem.getSelectedMorphMobOf(stack).toString()).get().create(event.getEntity().world);

You might also need to apply the rotations to the entity as well as passing them into the doRender method.

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

18 hours ago, Animefan8888 said:

You might also need to apply the rotations to the entity as well as passing them into the doRender method.

This worked incredibly well, thanks so much. But there are a few issues that I am having. I need it to:
- Change the height of the client's POV to correspond with that of the entity I am rendering

- Make it so you cannot swim while the entity is being rendered

- Make it so other mobs won't attack you

- Render the player's hand to that of the different entity's

 

If you could help me with one or two of these that would be great :D

Link to comment
Share on other sites

On 9/24/2019 at 2:06 PM, kaydogz said:

Make it so you cannot swim while the entity is being rendered

You'll have to check every tick if they are swimming and if they are make it so they aren't. 

 

On 9/24/2019 at 2:06 PM, kaydogz said:

Make it so other mobs won't attack you

Use the LivingSetAttackTargetEvent

 

On 9/24/2019 at 2:06 PM, kaydogz said:

Render the player's hand to that of the different entity's

I believe there is a RenderHandEvent that you can cancel and render your own hand. You'll have to do this yourself.

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

  • 2 weeks later...
On 9/26/2019 at 10:00 PM, Animefan8888 said:

You'll have to check every tick if they are swimming and if they are make it so they aren't. 

 

Use the LivingSetAttackTargetEvent

 

I believe there is a RenderHandEvent that you can cancel and render your own hand. You'll have to do this yourself.

Great all of those worked, but I have one last issue that has been bugging me for the last few days. I don't know how to change the player's hitbox to respect the entity's. I can change their EntitySize, but that is not the same as the actual hitbox.

Link to comment
Share on other sites

  • 3 weeks later...
1 minute ago, kaydogz said:

bump?

Find where the hitbox is stored in the entity class. I cant don it right now dont have an environment set up. You might need to use reflection to edit it.

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

  • 3 weeks later...

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.