Sodium enhanced animated textures

- Fix animated textures for saws and factory gauges not being animated when sodium is installed
This commit is contained in:
IThundxr 2025-02-19 21:44:56 -05:00
parent ab2eab05f8
commit 4ebde6610c
Failed to generate hash of commit
6 changed files with 52 additions and 1 deletions

View file

@ -162,6 +162,8 @@ dependencies {
compileOnly("top.theillusivec4.curios:curios-neoforge:${curios_version}+${curios_minecraft_version}:api")
runtimeOnly("top.theillusivec4.curios:curios-neoforge:${curios_version}+${curios_minecraft_version}")
compileOnly("maven.modrinth:sodium:mc${minecraft_version}-${sodium_version}-neoforge")
if (cc_tweaked_enable.toBoolean()) {
compileOnly("cc.tweaked:cc-tweaked-${cc_tweaked_minecraft_version}-core-api:${cc_tweaked_version}")
compileOnly("cc.tweaked:cc-tweaked-${cc_tweaked_minecraft_version}-forge-api:${cc_tweaked_version}")

View file

@ -30,6 +30,7 @@ jei_minecraft_version = 1.21.1
jei_version = 19.21.0.247
curios_minecraft_version = 1.21.1
curios_version = 9.2.2
sodium_version = 0.6.9
cc_tweaked_enable = true
cc_tweaked_minecraft_version = 1.21.1

View file

@ -4,6 +4,7 @@ import com.mojang.blaze3d.platform.GlStateManager;
import com.mojang.blaze3d.systems.RenderSystem;
import com.simibubi.create.compat.Mods;
import com.simibubi.create.compat.ftb.FTBIntegration;
import com.simibubi.create.compat.sodium.SodiumCompat;
import com.simibubi.create.content.contraptions.glue.SuperGlueSelectionHandler;
import com.simibubi.create.content.contraptions.render.ContraptionRenderInfo;
import com.simibubi.create.content.contraptions.render.ContraptionRenderInfoManager;
@ -40,6 +41,7 @@ import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.ComponentUtils;
import net.minecraft.network.chat.HoverEvent;
import net.minecraft.network.chat.MutableComponent;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.common.Mod;
@ -83,6 +85,7 @@ public class CreateClient {
POTATO_CANNON_RENDER_HANDLER.registerListeners(neoEventBus);
Mods.FTBLIBRARY.executeIfInstalled(() -> () -> FTBIntegration.init(modEventBus, neoEventBus));
Mods.SODIUM.executeIfInstalled(() -> () -> SodiumCompat.init(modEventBus, neoEventBus));
}
public static void clientInit(final FMLClientSetupEvent event) {

View file

@ -35,7 +35,8 @@ public enum Mods {
MODERNUI,
FTBCHUNKS,
JOURNEYMAP,
FTBLIBRARY;
FTBLIBRARY,
SODIUM;
private final String id;

View file

@ -0,0 +1,37 @@
package com.simibubi.create.compat.sodium;
import java.util.function.Function;
import com.simibubi.create.Create;
import net.caffeinemc.mods.sodium.api.texture.SpriteUtil;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.inventory.InventoryMenu;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.neoforge.client.event.RenderLevelStageEvent;
import net.neoforged.neoforge.client.event.RenderLevelStageEvent.Stage;
/**
* Fixes the Mechanical Saw's sprite and Factory Gauge's sprite
*/
public class SodiumCompat {
public static final ResourceLocation SAW_TEXTURE = Create.asResource("block/saw_reversed");
public static final ResourceLocation FACTORY_PANEL_TEXTURE = Create.asResource("block/factory_panel_connections_animated");
public static void init(IEventBus modEventBus, IEventBus neoEventBus) {
Minecraft mc = Minecraft.getInstance();
neoEventBus.addListener((RenderLevelStageEvent event) -> {
if (event.getStage() == Stage.AFTER_ENTITIES) {
Function<ResourceLocation, TextureAtlasSprite> atlas = mc.getTextureAtlas(InventoryMenu.BLOCK_ATLAS);
TextureAtlasSprite sawSprite = atlas.apply(SAW_TEXTURE);
SpriteUtil.INSTANCE.markSpriteActive(sawSprite);
TextureAtlasSprite factoryPanelSprite = atlas.apply(FACTORY_PANEL_TEXTURE);
SpriteUtil.INSTANCE.markSpriteActive(factoryPanelSprite);
}
});
}
}

View file

@ -43,3 +43,10 @@ description='''${mod_description}'''
versionRange="[0.8,)"
ordering="AFTER"
side="BOTH"
[[dependencies.${ mod_id }]]
modId = "sodium"
type = "optional"
versionRange = "[0.6.9,)"
ordering = "AFTER"
side = "BOTH"