mirror of
https://github.com/TeamMidnightDust/PictureSign.git
synced 2025-12-11 12:05:09 +01:00
Update WATERMeDIA to 2.1.x
This commit is contained in:
@@ -17,7 +17,6 @@ import org.lwjgl.glfw.GLFW;
|
||||
public class PictureSignClient {
|
||||
public static Logger LOGGER = LogManager.getLogger("PictureSign");
|
||||
public static final String MOD_ID = "picturesign";
|
||||
public static final boolean hasWaterMedia = PlatformFunctions.isModLoaded("watermedia");
|
||||
public static String[] clipboard = new String[4];
|
||||
public static final MinecraftClient client = MinecraftClient.getInstance();
|
||||
public static final KeyBinding BINDING_COPY_SIGN = new KeyBinding("key."+MOD_ID+".copy_sign",
|
||||
@@ -25,7 +24,7 @@ public class PictureSignClient {
|
||||
|
||||
public static void init() {
|
||||
PictureSignConfig.init(MOD_ID, PictureSignConfig.class);
|
||||
if (hasWaterMedia) {
|
||||
if (PlatformFunctions.isModLoaded("watermedia")) {
|
||||
MediaHandler.registerHandler(WaterMediaHandler::new);
|
||||
GIFHandler.registerHandler(WaterGIFHandler::new);
|
||||
}
|
||||
|
||||
@@ -159,6 +159,7 @@ public class PictureRenderer {
|
||||
texture = data.identifier;
|
||||
} else if (type.isVideo && mediaHandler != null) {
|
||||
if (mediaHandler.isWorking()) {
|
||||
mediaHandler.preRender();
|
||||
int rawTexture = mediaHandler.getTexture();
|
||||
if (rawTexture != -1) {
|
||||
RenderSystem.setShaderTexture(0, rawTexture);
|
||||
|
||||
@@ -5,6 +5,7 @@ import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import org.jetbrains.annotations.ApiStatus;
|
||||
import org.watermedia.api.player.videolan.VideoPlayer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -93,6 +94,8 @@ public abstract class MediaHandler {
|
||||
}
|
||||
public void setTime(long value) {
|
||||
}
|
||||
public void preRender() {
|
||||
}
|
||||
public int getTexture() {
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
package eu.midnightdust.picturesign.util;
|
||||
|
||||
import me.srrapero720.watermedia.api.image.ImageAPI;
|
||||
import me.srrapero720.watermedia.api.image.ImageCache;
|
||||
import me.srrapero720.watermedia.api.math.MathAPI;
|
||||
import net.minecraft.util.Identifier;
|
||||
import org.watermedia.api.image.ImageAPI;
|
||||
import org.watermedia.api.image.ImageCache;
|
||||
import org.watermedia.api.math.MathAPI;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import static eu.midnightdust.picturesign.PictureSignClient.client;
|
||||
|
||||
public class WaterGIFHandler extends GIFHandler {
|
||||
private ImageCache player;
|
||||
private long tick = 0L;
|
||||
private int tick = 0;
|
||||
|
||||
public WaterGIFHandler(Identifier id) {
|
||||
super(id);
|
||||
@@ -29,7 +31,7 @@ public class WaterGIFHandler extends GIFHandler {
|
||||
|
||||
@Override
|
||||
public void play(String url) {
|
||||
this.player = ImageAPI.getCache(url, client);
|
||||
this.player = ImageAPI.getCache(URI.create(url), client);
|
||||
player.load();
|
||||
super.play(url);
|
||||
}
|
||||
|
||||
@@ -1,19 +1,21 @@
|
||||
package eu.midnightdust.picturesign.util;
|
||||
|
||||
import me.srrapero720.watermedia.api.player.PlayerAPI;
|
||||
import me.srrapero720.watermedia.api.player.SyncBasePlayer;
|
||||
import me.srrapero720.watermedia.api.player.SyncMusicPlayer;
|
||||
import me.srrapero720.watermedia.api.player.SyncVideoPlayer;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.sound.SoundCategory;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
import org.watermedia.api.player.PlayerAPI;
|
||||
import org.watermedia.api.player.videolan.BasePlayer;
|
||||
import org.watermedia.api.player.videolan.MusicPlayer;
|
||||
import org.watermedia.api.player.videolan.VideoPlayer;
|
||||
|
||||
import java.net.URI;
|
||||
|
||||
import static eu.midnightdust.picturesign.PictureSignClient.client;
|
||||
|
||||
public class WaterMediaHandler extends MediaHandler {
|
||||
private SyncBasePlayer player;
|
||||
private BasePlayer player;
|
||||
|
||||
public WaterMediaHandler(Identifier id, BlockPos pos) {
|
||||
super(id, pos);
|
||||
@@ -57,10 +59,10 @@ public class WaterMediaHandler extends MediaHandler {
|
||||
|
||||
@Override
|
||||
public void play(String url, boolean isVideo) {
|
||||
this.player = isVideo ? new SyncVideoPlayer(client) : new SyncMusicPlayer();
|
||||
this.player = isVideo ? new VideoPlayer(client) : new MusicPlayer();
|
||||
mediaHandlers.put(id, this);
|
||||
if (player.isBroken()) return;
|
||||
player.start(url);
|
||||
player.start(URI.create(url));
|
||||
this.playbackStarted = true;
|
||||
}
|
||||
@Override
|
||||
@@ -80,10 +82,15 @@ public class WaterMediaHandler extends MediaHandler {
|
||||
player.seekTo(value);
|
||||
}
|
||||
@Override
|
||||
public void preRender() {
|
||||
if (player instanceof VideoPlayer videoPlayer) {
|
||||
videoPlayer.preRender();
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public int getTexture() {
|
||||
if (player instanceof SyncVideoPlayer videoPlayer) {
|
||||
int tex = videoPlayer.getGlTexture();
|
||||
if (GL11.glIsTexture(tex)) return tex;
|
||||
if (player instanceof VideoPlayer videoPlayer) {
|
||||
return videoPlayer.texture();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
"recommends": {
|
||||
"watermedia": "*"
|
||||
},
|
||||
"breaks": {
|
||||
"watermedia": "<2.1.0"
|
||||
},
|
||||
"mixins": [
|
||||
"picturesign.mixins.json"
|
||||
]
|
||||
|
||||
@@ -11,8 +11,8 @@ release_type=release
|
||||
curseforge_id=533897
|
||||
modrinth_id=9WP2dmkk
|
||||
|
||||
midnightlib_version=1.5.7
|
||||
watermedia_version=2.0.64
|
||||
midnightlib_version=1.6.3
|
||||
watermedia_version=2.1.2
|
||||
|
||||
iris_version=1.6.17+1.20.4
|
||||
# The latest Iris version causes the build to fail, but we don't need that anyway
|
||||
|
||||
@@ -16,21 +16,21 @@ Use signs to display custom images and videos completely client-side!
|
||||
[[mixins]]
|
||||
config = "picturesign.mixins.json"
|
||||
|
||||
[[dependencies.visualoverhaul]]
|
||||
[[dependencies.picturesign]]
|
||||
modId = "neoforge"
|
||||
mandatory = true
|
||||
versionRange = "[21.0,)"
|
||||
ordering = "NONE"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.visualoverhaul]]
|
||||
[[dependencies.picturesign]]
|
||||
modId = "minecraft"
|
||||
mandatory = true
|
||||
versionRange = "[1.21,)"
|
||||
ordering = "NONE"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.visualoverhaul]]
|
||||
[[dependencies.picturesign]]
|
||||
modId = "midnightlib"
|
||||
mandatory = true
|
||||
versionRange = "[1.0,)"
|
||||
|
||||
Reference in New Issue
Block a user