Xexanos / PoorOres

5 stars 6 forks source link

Texture Generation Issues #16

Open UndeadZeratul opened 9 years ago

UndeadZeratul commented 9 years ago

I'm looking to integrate poor versions of metallurgy ores into my modpack, but I can't seem to get them to work properly. I can't tell if it's because most of their ores don't follow the standard ore pattern, or what, but the ore block looks a bit off, and the nuggets all show up as black and purple squares. On top of that, the item name is messed up, such as a manganese nugget being called a copper nugget, while being registered under nuggetManganese correctly, and even having correct crafting recipes.

I will post some screenshots when I can (I'm currently on my phone), along with my configuration. I can say, though, that I am on your latest version, 1.4.4.

EDIT: Here are some screenshots I took to show the problem I'm having, as well as the relevant portion of my config.

Example 1: Metallurgy End and Nether Ores and their texture patterns.

Example 2: Ceruclase Nugget displays as Ignatius, while still BEING a Ceruclase nugget.

Example 3: Crafting recipe still works

Config Snippet:

    block_ignatius {
        S:baseBlock=nether.ore
        I:baseBlockMeta=0
        S:baseBlockTexture=metallurgy:nether/ignatius_ore
        I:burnTime=0
        S:dimBlackList=
        S:dimWhiteList=
        B:isDust=false
        S:modID=Metallurgy
        I:nuggetRenderType=0
        I:oreRenderType=1
        S:underlyingBlock=minecraft:netherrack
        I:veinHeight=0
        I:veinRate=0
        I:veinSize=0
    }

    block_ceruclase {
        S:baseBlock=nether.ore
        I:baseBlockMeta=5
        S:baseBlockTexture=metallurgy:nether/ceruclase_ore
        I:burnTime=0
        S:dimBlackList=
        S:dimWhiteList=
        B:isDust=false
        S:modID=Metallurgy
        I:nuggetRenderType=0
        I:oreRenderType=1
        S:underlyingBlock=minecraft:netherrack
        I:veinHeight=0
        I:veinRate=0
        I:veinSize=0
    }
Xexanos commented 9 years ago

thanks for the config and the screenshots. Your Assumption with the non standard ore patterns is correct. I basically use the patterns under https://github.com/Xexanos/PoorOres/tree/master/src/main/resources/assets/poorores/textures/blocks to combine the texture of the underlyingBlock with the baseBlockTexture. Did you try using different values for oreRenderType? If you did I might have to add some additional patterns to use.

For the issue with the wrong name i have got an idea, but need to test it a little bit.

regarding the problem with the textures: I'm currently trying to rework the system i use to color the nugget to enable the modpackmaker/player to give it a hex code for the RGB-color (while keeping the old code as a default)

UndeadZeratul commented 9 years ago

I'm fairly certain I tried them in the past (around version 1.3.3), as shown by our now out-of-date config, here. I had experimented with the alternate render types to see what they'd look like, but they either just didn't match up, or they were completely broken (Osmium is one of them, but IIRC, that's more along the lines of the same issue DenseOres had about mismatching texture resolutions, and I don't know what can really be done about it, and it's not the focus of this issue).

I figured the name was just a problem with defining the display name when you register the item, and it must not check the metadata of the block/item, because Ignatius is metadata 0 for Metallurgy:nether.ore, same with Copper for base.ore, Prometheum for fantasy.ore, etc.

A manual hex code would work, as I think that's what AOBD does for their custom items. Is the problem with the current system that it can't determine what hex code to use, and thus breaks when trying to render the icon, resulting in the purple/black box?

Thanks for the quick reply! If you need any more examples from me, let me know. Also, I realized after I got everything set up, but there's a few other ores that look off. Metallurgy splits up their ores into a few categories: base ores (same pattern as vanilla), utility, precious, fantasy, nether, and end (all of which use a different pattern than vanilla does). In example 1, I showed both end ores, a base ore, and 3 nether ores. The problem with the texture also applies to any utility ore, such as magnesium; any precious ore, such as silver; and any fantasy ore, such as adamantine.

Xexanos commented 9 years ago

OK, all the issues should be fixed now. You were right with the metadata part, but it is mostly because I did not add the names of most metallurgy ores to the .lang file. I'll probably do that at a later date to get rid of the annoying ore inside the name of the nuggets... I'm uploading a new version to curseforge and just have to wait for them to approve it. I added 5 new alpha sets for metallurgy. Could you test them and give me some feedback on the design? I noticed, that the texture of alduorite has an offset of one for some reason, but the other ores should work. (3 = end, 4 = fantasy, 5 = nether, 6 = precious, 7 = utility) I had the same problem with osmium, when I was playing with it. my way to fix it (with denseOres and with poorOres) was to simply make a resource pack with just one file in it: a downsized (16x16) version of the osmium ore texture.

UndeadZeratul commented 9 years ago

Oh, cool! I'll give that a whirl when I get home after work and let you know.

UndeadZeratul commented 9 years ago

Here's what I've gotten so far:

The ore textures are working, even for Ceruclase, it seems.

The only issue I still notice, is for the Metallurgy Utility ores; they're dust icon seems to still be broken, and I think (going on intuition alone, I've not looked into this for sure) it's because you're looking for what the ore normally smelts into, and these ores don't smelt, they just drop their dusts. However, they can be pulverized into dusts (as expected).

That makes me wonder, should the dust ores just drop a single tiny dust? What if every ore had a tiny dust, so that processing them in pulverizers was possible? I know that's a bit off topic, and I can split this question off into it's own issue if you'd prefer, I'm just curious.

Other than that, it looks a lot better now that every ore is generating its texture correctly, and their nuggets are being colored correctly. Their tooltips seem to be referencing the right ores, too!

Thanks Xexanos! I look forward to what more you can improve upon with this.

Xexanos commented 9 years ago

Oh right. I didn't notice the textures were still off, but, yes, that is probably the case. It is the same Problem, the quartz from ae2 has (issue #14). As a workaround you could now use the manual color selector and add the recipe by hand (modtweaker etc...)

I like the idea of making processing in pulverizers etc. possible, but I currently have no Idea, how to do that^^ It would be cool, if you could add that as a Suggestion in a new Issue, so I don't forget to implement it, when i get the time.

UndeadZeratul commented 9 years ago

Sure! And yeah I'll try and set the hex manually, and adding in a minetweaker script is no problem.

Xexanos commented 9 years ago

The issue with the broken textures and missing recipes should be fixed. Could you test it, and give me some feedback on the issue?

UndeadZeratul commented 9 years ago

Hey, sorry, I've been busy for the last week or so. I ran the latest on curse.com (1.4.7) and got a crash on startup, shown here. The thing I notice as being off, is that my crash report shows it breaks at line 123 in Nugget.java, while that line in the actual source file doesn't match to the stack trace. Did the file that got uploaded to curse get mixed up with another?

Oh, and if you need it, here's the config at the time of writing this.

Xexanos commented 9 years ago

wow, I actually uploaded the wrong file. If you grab the new version it should be working.

Ps.: thanks for the config file. Mind if I add it to the example config?

UndeadZeratul commented 9 years ago

Oh, haha. Well that explains that. I'll grab the corrected file and let you know.

As for the example config, feel free to add it. Did you want me to do a PR, or did you want to add it yourself?

Xexanos commented 9 years ago

actually a PR would be nice. That way, The credit also goes to you.

UndeadZeratul commented 9 years ago

Alright. I'll see what I can whip up later on and submit a PR then.

UndeadZeratul commented 9 years ago

Sadly, it still seems to be crashing. It's at least a new jar, since the stack trace fails on line 127 instead of line 123. However, it's still failing on registering the textures it seems, which was the same problem as before. Is there a problem with my config file perhaps?

Here's the new crash report.

Xexanos commented 9 years ago

This doesn't make sense. I tried it with your config and it works for me. I believe, this might take some more time to fix.

UndeadZeratul commented 9 years ago

Could it have anything to do with resource packs? I'll double check later tonight and see if I had one on (if it is, it's the faithful 32x pack) and if I did, I'll disable it and see what happens. I haven't changed my config or anything, so if there's a difference between us, it's probably that. It also makes sense considering the method that seems to fail is the texture registration in Nugget.java

Xexanos commented 9 years ago

I just tested it with the texturepack too but sill don't get any errors. this is so strange... My guess would be, that it has to do with some compatibility issue with another mod, since someone reported nearly the exact same error when using ProjectRed. I have now rewritten the code in that part of the file completely, since it caused more bugs, than it solved. Maybe that solved your problem as well.

On a different note: the oreRenderType for lapis and diamond should be 0 not 1. I don't know if that is intentional but to me it looked a little strange...

UndeadZeratul commented 9 years ago

Hey, whatever I'm doing incorrectly, I'd rather fix than just ignore. We do have Project:RED in our pack, so that's a start.

UndeadZeratul commented 9 years ago

Wow, it's been WAY too long since I was able to last look at this; I apologize.

To catch up, our pack has removed Project: Red for unrelated reasons to those stated above. However, when I try to start up the pack with the latest version of Poor Ores (v1.4.8), I get the same error in Nugget.java. However, after looking into the log a bit further, I found this. Judging by the logging statements, PoorOres cannot find the osmium base block. I double checked, I have everything defined correctly in my config, as shown here:

block_osmium {
        S:baseBlock=OreBlock
        I:baseBlockMeta=0
        S:baseBlockTexture=mekanism:OsmiumOre
        I:burnTime=0
        S:dimBlackList=
        S:dimWhiteList=-100
        B:isDust=false
        S:modID=Mekanism
        I:nuggetRenderType=0
        I:oreRenderType=0
        S:underlyingBlock=minecraft:stone
        I:veinHeight=64
        I:veinRate=2
        I:veinSize=8
    }

My guess is that you're searching for the block when it hasn't been registered yet, and thus it can't find it. I noticed some other ores that fail less severely; if you look on line 58, the Thermal Foundation copper ore texture breaks because it's looking for "thermalfoundation:textures/items/ore/Ore_Copper.png" which doesn't exist. This causes the nuggets and tiny dusts to not generate a texture, so the ores are all fine now but the items they create all fail.

mrdeadlocked commented 9 years ago

Ya i havent been abe to get osmium to render either. block_osmium{ S:baseBlock=OreBlock I:baseBlockMeta=0 S:baseBlockTexture=mekanism:OsmiumOre I:burnTime=0 S:dimBlackList=-100,-19,-1,1,7 S:dimWhiteList= B:isDust=false S:modID=Mekanism S:nuggetColor=0xC0DDFF I:nuggetRenderType=0 I:oreRenderType=0 S:underlyingBlock=minecraft:stone I:veinHeight=64 I:veinRate=0 I:veinSize=0 }

Everything else i've ried works great.