Skip to content

Commit

Permalink
Fix excursion funnel not animating by default with Sodium
Browse files Browse the repository at this point in the history
  • Loading branch information
Gaming32 committed Jul 13, 2023
1 parent e03b732 commit d8cf0b7
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 0 deletions.
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,8 @@ dependencies {
file("runtime-mods").list { _, name -> name.endsWith(".jar") }.each {
modLocalRuntime(files("runtime-mods/$it"))
}

modCompileOnly("maven.modrinth:sodium:mc1.20-0.4.10")
}

loom {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.fusionflux.portalcubed.client.render.entity.animatedtextures;

import com.fusionflux.portalcubed.compat.sodium.SodiumIntegration;
import com.fusionflux.portalcubed.mixin.client.SpriteContentsAccessor;
import com.mojang.blaze3d.platform.NativeImage;
import com.mojang.blaze3d.platform.TextureUtil;
Expand Down Expand Up @@ -53,6 +54,7 @@ public void tick() {
}

private void cycle() {
SodiumIntegration.INSTANCE.markSpriteActive(contents);
bind();
ticker.tickAndUpload(0, 0);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.fusionflux.portalcubed.compat.sodium;

import com.fusionflux.portalcubed.compat.sodium.absent.SodiumIntegrationAbsent;
import com.fusionflux.portalcubed.compat.sodium.present.SodiumIntegrationPresent;
import net.minecraft.client.renderer.texture.SpriteContents;
import org.quiltmc.loader.api.QuiltLoader;

public interface SodiumIntegration {
SodiumIntegration INSTANCE = QuiltLoader.isModLoaded("sodium") ? SodiumPresentHolder.create() : SodiumIntegrationAbsent.INSTANCE;

void markSpriteActive(SpriteContents sprite);

class SodiumPresentHolder {
private static SodiumIntegration create() {
return new SodiumIntegrationPresent();
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.fusionflux.portalcubed.compat.sodium.absent;

import com.fusionflux.portalcubed.compat.sodium.SodiumIntegration;
import net.minecraft.client.renderer.texture.SpriteContents;

public enum SodiumIntegrationAbsent implements SodiumIntegration {
INSTANCE;

@Override
public void markSpriteActive(SpriteContents sprite) {
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.fusionflux.portalcubed.compat.sodium.present;

import com.fusionflux.portalcubed.compat.sodium.SodiumIntegration;
import me.jellysquid.mods.sodium.client.render.texture.SpriteExtended;
import net.minecraft.client.renderer.texture.SpriteContents;

public class SodiumIntegrationPresent implements SodiumIntegration {
@Override
public void markSpriteActive(SpriteContents sprite) {
if (sprite instanceof SpriteExtended extended) {
extended.setActive(true);
}
}
}

0 comments on commit d8cf0b7

Please sign in to comment.