PepperCode1 / Continuity

A Fabric mod that allows for efficient connected textures
GNU Lesser General Public License v3.0
260 stars 66 forks source link

Continuity causes X-Ray like issue when grass and a snow layer spawn in the same block #434

Closed MrElectrum closed 4 days ago

MrElectrum commented 1 week ago

So I've been creating a custom modpack that changes world generation, among other things, and I noticed that when grass spawns on a block with a snow layer it causes an X-Ray like visual bug.

With Continuity: image Without Continuity: image

PepperCode1 commented 1 week ago

Which resource packs and mods are you using?

MrElectrum commented 1 week ago

Here's the modlist (don't mind the little explanations, they're just for people joining the server and stuff) I've been testing removing some of the optimization-based mods, but it only seems to be a problem when Continuity is installed.

And here's the resource packs. I tried toggling them all on and off, but it doesn't seem to affect anything. image

(Armor/Tools) Advanced Netherite - Adds tiers to netherite armor and tools (Ambience) Ambient Sounds - Adds background noise and such (QOL) Amendments - Adds a bunch of qol stuff to vanilla blocks (QOL) Aquatic Torches - Adds torches that work underwater (API) Architectury (Ambience) Auditory - Changes block sounds and such (Opt) Bad Optimizations - Adds a bunch of optimizations (API) Balm (QOL) Bartering Station - Adds a bartering station for the piglins (API) BCLib (Biome) Better End - Overhauls the end with biomes and structures (QOL) Better F3 - Overhauls the F3 menu and makes it easily readable (Biome) Better Nether - Overhauls the nether with biomes and structures (QOL) Better 3rd Person - Allows you to move in 8 directions while in 3rd person mode (QOL) Better Tridents - Makes tridents craftable, as well as other trident related changes (QOL) Blur - Adds a blur effect to menus (QOL) Boat Item View - Lets you see items in your hand while rowing [such as maps] (QOL) Breakfree - Doesn’t reset the block breaking progress when swapping items and such (Ambience) - Adds cave dust similar to basalt deltas when in the caves (Mobs) Cave Dweller - Adds a hostile cave mob (Biome) Cinderscapes - Adds a couple new biomes to the nether (API) Cloth Config (API) Collective (QOL) Comforts - Adds sleeping bags and hammocks (QOL) Connectable Chains - Makes chains connectable to walls and such for decoration and the like (QOL) Continuity - Adds connected textures (API) CreativeCore (API) CristelLib (Structures) Choice Theorem’s Overhauled Villages [CTOV] - Adds new village structures and overhauls villages. Vanilla Villages still spawn. (Opt) Cull Leaves - Adds leaf culling (API) Dawn (Dimension) Deeper Darker - Adds a new “deep dark” biome (QOL) Detail Armor Bar - Makes the armor bar show the type of armor worn (QOL) Double Doors - Makes it so that when a set of two doors is opened both open (Structures) Dungeons and Taverns - Adds a bunch of structures to the overworld and nether (Structures) Dungeons Arise - Adds a bunch of dungeons to the overworld, nether, and end (QOL) Easy Anvils - Makes a bunch of changes to how anvils work (QOL) Easy Magic - Makes a bunch of changes to how enchanting works (QOL) Eating Animation - Adds eating animations (Mobs) Ender Dragon Fight Remastered - Makes the ender dragon fight harder (Armor/Tools) Elytra Trims Extensions - Adds functionality to add modded trims to elytra (Armor/Tools) Elytra Trims - Adds functionality to add trims to elytra (QOL) Enchanted Vertical Slabs - Adds vertical slabs (Opt) Entity Culling - Optimizes entity rendering (API) Fabric API (Armor/Tools) Fabric Enchantments - Adds more enchantments (Difficulty) Fabric End Remastered - Makes getting to the end harder by adding new eyes (API) Fabric Language Kotlin (Ambience) Falling Leaves - Adds falling leaf particles from leaf blocks (Food) Farmers Delight - Adds new recipes and crops (Opt) FerriteCore - Optimizes Memory usage (API) Forge Config API Port (API) GeckoLib (Gen) Geophilic - Improves the vanilla biomes slightly (QOL) Highlight - Fixes some of the highlights when looking at blocks (Armor/Tools) Horseshoes - Adds horseshoes, which allows horses to have some boot enchants (Opt) Immediately Fast - Optimizes rendering (QOL) Immersive Paintings - Allows you to insert your own images into paintings (Ambience) Immersive Thunder - Makes thunder louder or quieter depending on how far/close it is (Structures) Immersive Structures - Adds a bunch of structures around the overworld (Structures) Immersive Structures - Adds a couple of nether structures (Biome) Incendium - Extends nether world height, and adds new biomes, and a few new structures (Opt) Indium - An addon to sodium, helps optimize further (QOL) Inmis - Adds backpacks (QOL) Inmis Addon - Updates the models for the backpacks (QOL) Inventorio - Acts as the “inventory update.” Adds improvements to the inventory system (Ambience) Iris - Adds shader support (QOL) Just Mob Heads - Allows mobs to drop their heads when killed (QOL) Just Player Heads - Allows players to drop their heads when killed (API) Kiwi (Opt) Krypton - Server and client side cpu optimizations (QOL) Lamb Dynamic Lights - Adds dynamic handlight (Opt) Lithium - Optimizes game physics, mob ai, etc (Opt) FastAnim - Optimizes mob animations (Ambience) Make Bubbles Pop - Allows bubbles to rise all the way to the surface and adds a popping animation (API) MaLiLib (Structures) Moog’s End Structures - Adds various small end structures (QOL) MiniHUD - Adds a bunch of info lines to a nice little hud. Can show shulker box contents as well as many other things [horse speed, bees in a hive, light level, etc] (Structures) Moog’s Nether Structures - Adds a bunch of small nether structures (QOL) ModelFix - Fixes the gap in handheld models (Opt) ModernFix - An all in one optimization mod (QOL) ModMenu - Adds a menu where you can config all mods (API) Moonlight (Armor/Tools) More Armor Trims - Adds new armor trims [compatible with elytra] (QOL) Mouse Tweaks - Makes moving items a lot easier (API) MRU (Structures) Moog’s Voyager Structures - Adds small overworld structures (Biome) Nether Depths Upgrade - Adds a marine environment to the lava lakes of the nether; also adds lava based enchants/potions (QOL) Nether Portal Fix - Fixes linking of nether portals (Opt) Noisium - Optimizes world generation (Biome) Nullscape - Overhauls end generation, adding more height and more biomes (Mobs) Nyfs Spiders - Give spiders new ways to climb walls (API) OWOLib (API) Patchouli (Structures) Phillips Ruins - Adds a bunch of smaller structures to the overworld (Ambience) Presence Footsteps - Overhauls footstep noises (API) PuzzlesLib (Armor/Tools) Qu’s Enchantments - Adds a bunch of enchantments (Biome) Regions Unexplored [Heavily edited, nether biomes removed for compatibility with Better Nether] - Adds a bunch of new biomes (QOL) Roughly Enough Items - Just enough items for fabric (Difficulty) RPG Difficulty - Difficulty scales the longer and further out you go (QOL) Screenshot to Clipboard - Makes it so that when you screenshot it goes straight to clipboard (QOL) 3D Skin Layers - Makes the 2nd skin layer 3d (Opt) Sodium - Game optimization (QOL) SoulFire’d - Makes it so that soul fire actually is blue when you’re set on fire (Ambience) Sound Physics Remastered - Adds echo and sound physics to the game (QOL) Sounds - Adds sounds when interacting with the inventory and such (Structures) Sparse Structures - Spreads out structures (QOL) Stack Refill - Refills items that run out or break (QOL) Stoneworks - Adds a bunch of stonecutter blocks (Structures) Structory - Adds a bunch of smaller structures (Gen) Tectonic - Changes world gen to have giant mountains and such (API) TerraBlender (Biome) Terralith - Adds a bunch of vanilla plus biomes (Structures) TLC - Adds “the lost castle” (Structures) Towns and Towers - Adds new “towns” which function similar to how villages do (QOL) Traveler’s Titles - Displays what biome you’re entering (Difficulty) True Darkness Fork - Turns the minimum light level all the way to 0 (QOL) Universal Ores - Adds skins for ores of other types of stone [granite, dorite, etc] (Ambience) VCInteraction - Allows simple voice chat to interact with sculk sensors (QOL) Villager Names - Gives every villager a custom name (Ambience) Visuality - Adds a bunch of special visual effects (QOL) Simple Voice Chat - Adds a proximity chat (Ambience) Wakes - Adds a bunch of water based effects (QOL) Waystones - Adds waystones that will spawn throughout the world which you can teleport to (Biome) Wilder Wilds - Improves vanilla biomes, as well as improving features added in the wild update (QOL) WI Zoom - Adds a zoom button (QOL) Xaeros Mnimap - Adds a minimap hud (QOL) Xaeros Worldmap - Adds a map of all the chunks that have been loaded (QOL) You’re in Grave Danger - Adds gravestones (API) Yungs API (Structures) Yung’s Better Desert Temples - Overhauls Desert Temples (Structures) Yung’s Better Dungeons - Overhauls the spawner dungeons, and adds a couple of larger dungeon structures (Structures) Yung’s Better Jungle Temples - Overhauls Jungle Temples (Structures) Yung’s Better Mineshafts - Overhauls Mineshafts (Structures) Yung’s Better Nether Fortresses - Overhauls Nether Fortresses (Structures) Yung’s Better Ocean Monuments - Overhauls Ocean Monuments (Structures) Yung’s Better Strongholds - Overhauls Strongholds (Structures) Yung’s Better Witch Huts - Overhauls Witch Huts (Structures) Yung’s Extras - Adds a couple of extra structures around the overworld

PepperCode1 commented 1 week ago

Are the grass and snow in the same block position? If so, what mod adds that functionality and does this issue occur if only that mod, Fabric API, and Continuity are present?

MrElectrum commented 1 week ago

The grass and snow are in the same spot. I tested the mod (wilder wilds) along with fabric API and continuity and the visual bug doesn't seem to happen. After adding sodium the bug still doesn't happen. After adding indium the bug still doesn't happen.

I'm going to slowly start adding parts of my modpack and see which one is causing issues

MrElectrum commented 1 week ago

So this might have been my fault. It turns out I got some folders mixed around, and had accidentally put an older version of continuity into my mods folder. It seems that on the latest version this bug is fixed. Sorry about that.

MrElectrum commented 1 week ago

Wait no. It seems it's something with the "Emissive textures" setting.

MrElectrum commented 1 week ago

When turned off the bug is not present, but when turned on I can see through the snow

MrElectrum commented 1 week ago

It also seems to be affected by the other config settings

vico93 commented 4 days ago

I'm have the same issue (disabling connected textures seems to fix the problem). If Pepper have interest, i can zip my modpack (and world) for better testing

PepperCode1 commented 4 days ago

I looked through Wilder Wild's code. They mixin to the vanilla block renderer, the Indigo terrain renderer, and the Sodium terrain renderer to render the snow layer model before the main block model, but they do not have Indium compatibility. If Indium is installed and any resource pack that uses Continuity's features is enabled, then all snowlogging rendering will be broken. Report this to Wilder Wild; I cannot fix this.

vico93 commented 4 days ago

@PepperCode1 FYI i forwarded this issue to FrozenBlock (WW authors) Discord - they said they are aware of the issue.

Relevant issue: https://github.com/FrozenBlock/WilderWild/issues/377

AViewFromTheEnd commented 4 days ago

I looked through Wilder Wild's code. They mixin to the vanilla block renderer, the Indigo terrain renderer, and the Sodium terrain renderer to render the snow layer model before the main block model, but they do not have Indium compatibility. If Indium is installed and any resource pack that uses Continuity's features is enabled, then all snowlogging rendering will be broken. Report this to Wilder Wild; I cannot fix this.

Hey! Lead dev of Wilder Wild here. How would I go about fixing this with Indium? Another mixin, or does it have an API?

PepperCode1 commented 4 days ago

Basically copy the mixin for Indigo and apply it to Indium's version of the same class. Alternatively, consider reworking how snowlogging works so that the models associated with snowlogged states proxy to the snow layer model and block model. That way you will not need any mixins to vanilla, Sodium, Indigo, or Indium.

AViewFromTheTop commented 4 days ago

Basically copy the mixin for Indigo and apply it to Indium's version of the same class. Alternatively, consider reworking how snowlogging works so that the models associated with snowlogged states proxy to the snow layer model and block model. That way you will not need any mixins to vanilla, Sodium, Indigo, or Indium.

How exactly would i do that? With vegetation, they’re randomly offset so adding snowlogged models to the json won’t work.

PepperCode1 commented 4 days ago

I forgot about that. A mixin to Indium would be the easiest solution then.

AViewFromTheTop commented 4 days ago

I forgot about that. A mixin to Indium would be the easiest solution then.

Ah, got it. I’ll take a look into the mixin soon. Thank you very much!!!