Jump to content

[1.8] Suggestion for custom block textures using TextureMap


PlayerInDistress

Recommended Posts

Currently, a hook exists to add custom textures before the texture map is stitched, and it looks like this:

public class CustomBlockTextureStitchEvent
{
   @SubscribeEvent
   public void onTextureStitchedPre(TextureStitchEvent.Pre event)
   {
      event.map.setTextureEntry("lucky:blocks/lucky_block", new CustomBlockTexture());
   }
}

 

This problem with this is that the forge method setTextureEntry does not allow for textures to be overriden, you can only add a texture that is not already registered. What I am trying to do is make my modded block load it's texture from an external location, so I need to add a custom TextureAtlasSprite to the registry which has a custom load method (i.e. CustomBlockTexture).

 

However, since setTextureEntry does not allow for overrides, it has very limited use. All of the bellow functions are suggestions for what could be added to the TextureMap class to make it much more usable, but only one of the needs to be added:

 

public boolean setTextureEntry(String name, TextureAtlasSprite entry, boolean override)
{
    if (!mapRegisteredSprites.containsKey(name) || override)
    {
        mapRegisteredSprites.put(name, entry);
        return true;
    }
    return false;
}

public boolean clearTextureEntry(String name)
{
    mapRegisteredSprites.remove(name);
}

public Map getRegisteredSprites()
{
    return mapRegisteredSprites.put(name, entry);
}

 

The last option is particularly useful as it allows full control over the registry, but any will work.

Link to comment
Share on other sites

Sorry for the confusion, the lucky:lucky_block is my texture from my mod. I just want it to be loaded from outside of the mod's zip file, and to do that the current entry in the TextureMap would need to be overriden. I understand that blocking this feature is intentional, but I see no harm in overriding textures. If you do, however, then there could always be some sort of check (such as !name.startsWith("minecraft:")), which would only allow modded textures to be overriden.

 

Lastly, I have actually found a work-around solution for this problem. I have registered a new texture ("lucky:blocks/lucky_block_custom") and have created a custom model loader and used it to load my model, with my custom texture. While this woks, it requires several model loading lines to be copied from different places, feels wrong since I am not actually making a new model, will be annoying to manage and overall seems like way too much for  something as basic as changing the texture.

 

My point is, I could modify this model loader and use it to override any default minecraft texture, as well as textures from other mods. So if I am able to do this, then why shouldn't TextureMap allow it directly?

Link to comment
Share on other sites

If registering an IResourcePack would make this work, then I will be happy to try it. I will not ask how to do this, nor will I ask for sample code, but it would be really helpful if I at least knew which classes handle this, or had an online reference to an example. It would really save me time looking through all of the code.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Yes... You're right, this mod conflicts with very many other mods causing this error.
    • Hi, the microphone mod is not working on my Mac. It says “launcher does not support MacOS microphone permissions” Thank you in advance for answering.
    • Make sure you have Optifine installed as a mod. Go into Options > Video Settings > Shaders > and then click the shader you want Make sure the shader.zip files are in the shaderpacks folder inside the minecraft folder
    • It sounds like you're probably registering the item in the wrong place, try looking at this tutorial for how to register items:  Forge Modding Tutorial - Minecraft 1.20: Custom Items & Creative Mode Tab | #2 This (free) tutorial series is excellent, by the way, and I'd highly recommend watching through some or all of the videos. There may also be an error in the code I showed above since I was in a hurry, but it should be enough for the general idea. I can't be more specific since I don't know exactly what you plan to do.
    • Realizing I was a victim of a scam was a devastating blow. My initial investment of $89,000, driven by dreams of financial success and the buzz surrounding a new cryptocurrency project, turned into a nightmare. The project promised high returns and rapid gains, attracting many eager investors like myself. However, as time passed and inconsistencies began to surface, it became evident that I had made a grave mistake by not thoroughly vetting the brokerage company handling the investment. Feeling anxious and betrayed, I desperately searched for a way to recover my funds. It was during this frantic search that I stumbled upon the Lee Ultimate Hacker tool through a Facebook post. With little left to lose, I decided to reach out to their team for help. To my relief, they were quick to respond and immediately started recovering my compromised email and regaining access to my cryptocurrency wallets. The team at Lee Ultimate Hacker was incredibly professional and transparent throughout the process. They meticulously traced the digital footprints left by the scammers, employing advanced technological methods to unravel the complex network that had ensnared my funds. Their expertise in cybersecurity and recovery strategies gradually began to turn the tide in my favor. Although the scammers had already siphoned off $30,000 worth of Bitcoin, Lee Ultimate Hacker was relentless in their pursuit. They managed to expose the fraudulent activities of the scam operators, revealing their identities and the mechanisms they used to lure investors. This exposure was crucial not only for my case but also as a warning to the wider community about the perils of unverified investment schemes. As we progressed, it became a race against time to retrieve the remaining $59,000 before the scammers could vanish completely. Each step forward was met with new challenges, as these criminals constantly shifted tactics and moved their digital assets to evade capture. Nonetheless, the determination and skill of the recovery team kept us hopeful. Throughout this ordeal, I learned the hard value of caution and due diligence in investment, especially within the volatile world of cryptocurrency. The experience has been incredibly taxing, both emotionally and financially, but the support and results provided by Lee Ultimate Hacker have been indispensable. The recovery process is ongoing, and while the final outcome remains uncertain, the progress made so far gives me hope. The battle to recover the full amount of my investment continues, and with the expertise of Lee Ultimate Hacker, I remain optimistic about the eventual recovery of my funds. Their commitment to their clients and proficiency in handling such complex cases truly sets them apart in the field of cyber recovery. LEEULTIMATEHACKER@ AOL. COM   Support @ leeultimatehacker . com.  telegram:LEEULTIMATE   wh@tsapp +1  (715) 314  -  9248     
  • Topics

×
×
  • Create New...

Important Information

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