Add support for GIFs and Music

This commit is contained in:
Martin Prokoph
2024-06-20 21:32:06 +02:00
parent 948c7f47d1
commit 64dfcd8a87
13 changed files with 205 additions and 64 deletions

View File

@@ -1,7 +1,8 @@
package eu.midnightdust.picturesign.fabric;
import eu.midnightdust.picturesign.PictureSignClient;
import eu.midnightdust.picturesign.util.VideoHandler;
import eu.midnightdust.picturesign.util.GIFHandler;
import eu.midnightdust.picturesign.util.MediaHandler;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientBlockEntityEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
@@ -21,18 +22,19 @@ public class PictureSignClientFabric implements ClientModInitializer {
KeyBindingHelper.registerKeyBinding(BINDING_COPY_SIGN);
ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> {
if (hasWaterMedia) VideoHandler.closeAll();
if (hasWaterMedia) MediaHandler.closeAll();
});
ClientBlockEntityEvents.BLOCK_ENTITY_UNLOAD.register((blockEntity, world) -> {
if (hasWaterMedia) {
BlockPos pos = blockEntity.getPos();
Identifier videoId = id(pos.getX() + "_" + pos.getY() + "_" + pos.getZ()+"_f");
VideoHandler.closePlayer(videoId);
MediaHandler.closePlayer(videoId);
Identifier videoId2 = id(pos.getX() + "_" + pos.getY() + "_" + pos.getZ()+"_b");
VideoHandler.closePlayer(videoId2);
MediaHandler.closePlayer(videoId2);
}
});
ClientTickEvents.END_CLIENT_TICK.register(client -> {
GIFHandler.gifPlayers.forEach(((identifier, handler) -> handler.tick()));
if (!BINDING_COPY_SIGN.isPressed()) return;
BINDING_COPY_SIGN.setPressed(false);
if (client.player == null || client.world == null || client.crosshairTarget == null || client.crosshairTarget.getType() != HitResult.Type.BLOCK) return;