package dev.photosync.platform;

import dev.photosync.mcapi.ClientBridge;
import dev.photosync.platform.impl.CaptureAdapter;
import dev.photosync.platform.impl.GameAdapter;
import dev.photosync.platform.impl.ScreenAdapter;
import dev.photosync.platform.impl.TextureAdapter;
import lombok.Getter;
import lombok.experimental.Accessors;

/**
 * Assembles this bucket's adapters into the one object the rest of the mod sees.
 *
 * <p>Built once, at client startup, before Minecraft has finished constructing
 * itself -- so nothing here may touch the game. Each adapter resolves what it
 * needs when it is first used instead.
 */
@Getter
@Accessors(fluent = true)
public final class MinecraftBridge implements ClientBridge {

    private final GameAdapter game = new GameAdapter();
    private final TextAdapter text = new TextAdapter();
    private final ClipboardAdapter clipboard = new ClipboardAdapter();
    private final TextureAdapter textures = new TextureAdapter();
    private final ScreenAdapter screens = new ScreenAdapter();
    private final CaptureAdapter screenshots = new CaptureAdapter();
}
