Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Is there a way to dynamically change vanilla block textures?


TrueSalt
 Share

Recommended Posts

So I am wondering if there is a way to go about dynamically changing the textures for vanilla blocks/items without having to completely override the block/items or create new ones. So essentially something like having a texture for a block\item that then in a config file could be toggled on or off by the player.

Link to comment
Share on other sites

19 minutes ago, TrueSalt said:

So essentially something like having a texture for a block\item that then in a config file could be toggled on or off by the player.

You mean a resource pack?

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

5 minutes ago, Animefan8888 said:

You mean a resource pack?

I'm sure that is what it sounds like I would like to do, but no. I want to keep everything within the confines of the mod I am making, just offering the player the option to swap between a couple of textures. These options would also affect some of the mods' textures. I hope that clears things up a bit more.

Link to comment
Share on other sites

4 minutes ago, TrueSalt said:

I want to keep everything within the confines of the mod I am making, just offering the player the option to swap between a couple of textures.

I'm sure this is semi possible, but it's not as easy as it sounds. Theres no option in a model file to say if this then do this. So the only option would be to have some sort of Resource reloading listener that does what you want.

 

Or you could just give them a resource pack they can download along with the mod. Yes resource packs can affect modded textures and models. 

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

13 minutes ago, Animefan8888 said:

Or you could just give them a resource pack they can download along with the mod. Yes resource packs can affect modded textures and models. 

1
1

Yes, I know. Again, I am trying to keep it in the confines of the mod. Would seem unnecessary to have them download a mod and then a resource pack just for a few optional texture changes. I'm not looking to go down the Conquest route. If it is not possible within reasonable limits, then damn. If I can do it then all the better. I have seen people change vanilla item models and so forth with mods before, so I felt like asking if the same was possible with textures. If I have to I am even willing to just replace one block with another if need be and if it would be easier to do.

Edited by TrueSalt
Link to comment
Share on other sites

3 minutes ago, TrueSalt said:

I have seen people change vanilla item models and so forth with mods before, so I felt like asking if the same was possible with textures.

Yes its fully possible to change the textures and models of items/blocks using a mod. It functions exactly as a resource pack would. The problem is that you want to do it conditionally. There is no way to do it conditionally that immediately comes to mind. Like I said you would have to do some resource reload listener stuff. 

 

Aka you would have to make your own listener for when resources reload and replace the texture(s) based off the config setting. And also reload all the resources whenever that config setting has changed. Just changing one block for another will not work.

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

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
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.

 Share



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • So i just bought a RLcraft server for me and my friends to play on. I launched it and it is working fine but it tells me that i need to download all the mods i go to mods and press "minecraft forge" and nothing shows up that i can open files. If anyone have a suggestion i would need the help. This is the server hosting i  used 
    • i did it in 1.12.2 not walking for me can anyone help me get it pls???  
    • Got the rotation working. I had to look at LivingEntityRenderer#render and setupRotations a little more closely, and I realized that I needed to change the custom entity's yBodyRot and yBodyRotO.  private static boolean renderingCustomEntity = false; private static CustomEntity customEntity; private static void refreshCustomEntity(LocalPlayer localPlayer, LivingEntity livingEntity) { if (customEntity == null || customEntity.isRemoved()) { customEntity = ModEntities.CUSTOM_ENTITY.get().create(localPlayer.clientLevel); } if (!customEntity.level.dimension().equals(livingEntity.level.dimension())) { customEntity.discard(); } } @SubscribeEvent public static void replaceMobModel(RenderLivingEvent.Pre<LivingEntity, EntityModel<LivingEntity>> event) { LocalPlayer localPlayer = Minecraft.getInstance().player; if (localPlayer != null && event.getEntity() instanceof Mob mob) { if (/* put your own condition here */) { if (!renderingCustomEntity) { try { renderingCustomEntity = true; event.setCanceled(true); refreshCustomEntity(localPlayer, mob); // (truth be told, my custom entity does not have a "head", so these lines aren't needed) // customEntity.setYHeadRot(mob.getYHeadRot()); // customEntity.yHeadRotO = mob.yHeadRotO; customEntity.setYBodyRot(mob.yBodyRot); customEntity.yBodyRotO = mob.yBodyRotO; customEntity.setPose(mob.getPose()); Minecraft.getInstance().getEntityRenderDispatcher().getRenderer(customEntity).render( customEntity, customEntity.yBodyRot, event.getPartialTick(), event.getPoseStack(), event.getMultiBufferSource(), event.getPackedLight() ); } finally { renderingCustomEntity = false; } } } } }   As shown in my code, if the mob whose model is replaced moves to a different dimension, I unload the custom entity with Entity#discard and then reinitialize it on the next tick. I wonder if I also have to unload the custom entity when the mob it is "replacing" dies.
    • Thank you for the video, but I found the issue. I had to update the Gradle from 7.2 to 7.3 in gradle/wrapper/gradle-wrapper.properties.
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.