sp614x / optifine

1.8k stars 418 forks source link

[1.7.10, Possibly Up] Silverfish-Infested Blocks CTM Render Issue #822

Open DarianLStephens opened 7 years ago

DarianLStephens commented 7 years ago

When using CTM for Silverfish-infested block sides, the tops revert back to the base block, which happens to be stone. This makes it way too easy to see where Silverfish are in strongholds, and as far as I can tell, there's no way to use different textures for the sides versus top or bottom of a block with CTM. For example, I'm trying to make the sides of Silverfish-infested blocks randomly have hints of Silverfish, and it works perfectly fine. I can't also make a definition for the tops to make them have normal stone brick. I could have the random texture applied to all faces of the block, but if I can't tell it what textures for what faces, it'll look strange. Speaking of issues like that, I don't seem able to define the beacon's obsidian or glass separately from normal obsidian and glass. That's sorta minor, though.

sp614x commented 7 years ago

CTM can use different textures for top or bottom faces: https://github.com/sp614x/optifine/blob/master/OptiFineDoc/doc/ctm.properties#L107

DarianLStephens commented 7 years ago

I'm already limiting the fixed random texture to the sides of the block. I'd like to be able to separately define a texture for the tops and bottoms, but that doesn't seem to work. It might also not be particularly performance friendly, but I don't know. Setting it to work on all faces stops the metadata=0 texture from showing on the 'untouched' faces, but the random-fixed texture looks weird facing up or down.

Basically, I want to be able to have random textures on the sides of a block, but fixed textures on the top and bottom, if possible.

sp614x commented 7 years ago

Then you should make 2 property files, one with "method=random" and "faces=sides" and a second one with "method=fixed" and "faces=top bottom".

DarianLStephens commented 7 years ago

I haven't quite figured out how to do- Oh wait, are we able to have different names for property files aside form the block? Like 'stonebrick_side' and 'stonebrick_top', and have them refer to the same block in the file? If so, that would solve a lot of problems. On a related note, is it possible to modify the texture of a beacon's obsidian and glass, while leaving obsidian and glass themselves alone? It looks like they inherit from Minecraft's textures, so I'm wondering if CTM can do that.

sp614x commented 7 years ago

You can name the files anything, then add "matchBlocks=..." to specify the blocks. Changing the beacon obsidian texture only could work if you specify both matchBlocks (beacon) and matchTiles (obsidian).

DarianLStephens commented 7 years ago

So I guess something like this: tiles=textures/blocks/beacon_base.png method=fixed matchTiles=obsidian matchBlocks=138 ? Or are the IDs deprecated, and I can just use 'matchBlocks=beacon'?

sp614x commented 7 years ago

Block IDs should also work, but full block names are better "minecraft:beacon"

DarianLStephens commented 7 years ago

Does that work in 1.7.10? I tried that, but it just applied the textures to glass and obsidian, while leaving the beacon's obsidian and glass unaffected.

sp614x commented 7 years ago

It should also work in 1.7.10.

DarianLStephens commented 7 years ago

I can't quite figure out how to make it work... Whatever I try either does nothing, or affects normal glass. Do you have an example I could look at?

DarianLStephens commented 7 years ago

Is there no working example I could see? I'd really like to get this working, but I could live without it. It would just be a shame.

DarianLStephens commented 7 years ago

I'm still wondering if it's actually possible to independently change the Beacon's glass and obsidian textures without altering the base obsidian and glass.