Jump to content

Recommended Posts

Posted

Is it possible to change an entity's model at runtime?

 

I'm having some trouble with my tamagotchi mod, wherein my 'gotchi has to age up and change model. Now, I have two options; change the model at runtime, or instantiate a new class and delete the old instance.

 

So if it's not possible to change an entity's model at runtime, how would I go about deleting the old instance?

Posted

You can just make the model render different via any data of the entity...

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

Posted

To make it more clear:

When you register your renderer to MyEntity.class you have full power over rendering.

 

You are passing entity arguments into render method - save some field inside entity (age) and use it insdie render method to e.g scale model down, or even use different model.

1.7.10 is no longer supported by forge, you are on your own.

Posted

Sorry to bring up a slightly old topic, have been ill a few days.

 

So I've got texture swapping working, but not model swapping.

 

You are passing entity arguments into render method - save some field inside entity (age) and use it insdie render method to e.g scale model down, or even use different model.

 

How would I go about that? RenderEntityLiving's mainModel is a protected non-static value, and as far as I know, that's what's used for rendering. (Or renderPassModel, one of the two)

Posted

My graphics programming skills are awful, so I call super.doRender and leave it at that. That's going to stop me changing my model, isn't it?

Posted

Are there any good, 1.7.10 tutorials on custom mob rendering? I'm utterly useless when it comes to graphics programming, so I could use all the help I can get.

 

Sorry for the double post.

Posted

[move]TRIPLE COMBO POST[/move]

 

So I solved it. I just set the super's mainModel to the static model I have in my renderer, which can be changed by calling a function. It seems to work just fine.

Posted

Wait what? Either i didnt understand what you ment or you just did something entirely not good.

 

You do realize there is ONE Renderer for ALL Entities, don't you? Changing one field will cause all entities to change their renderings (especially when it's static). It was alredy noted out that you should save variable inside ENTITY and load other model using that variable, not anything inside renderer itself.

 

Disclaimer - unless I didn't understand :D Then you are cool.

Edit

Also, unless you change the model field with every start of render method, that is cool too, I guess.

1.7.10 is no longer supported by forge, you are on your own.

Posted

I'll elaborate:

I realise there's one renderer for all entities, yes.

What I'm doing is saving the age within the entity, then when the entity changes life stages, it sets a static ModelBase in the renderer to the new model, then changes the model field at the start of every render call. Feels pretty hacky, but it gets the job done.

 

...I also get the feeling this shouldn't work. But it does, so yay!

Posted

I'll elaborate:

I realise there's one renderer for all entities, yes.

What I'm doing is saving the age within the entity, then when the entity changes life stages, it sets a static ModelBase in the renderer to the new model, then changes the model field at the start of every render call. Feels pretty hacky, but it gets the job done.

 

...I also get the feeling this shouldn't work. But it does, so yay!

That is not good.. Changing static field is really bad.

You should just have many models in the renderer, and gets the model you need using the age of the entity.

I. Stellarium for Minecraft: Configurable Universe for Minecraft! (WIP)

II. Stellar Sky, Better Star Rendering&Sky Utility mod, had separated from Stellarium.

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.