101 lines
3.2 KiB
Java
101 lines
3.2 KiB
Java
package net.minecraft.client.main;
|
|
|
|
import com.mojang.authlib.properties.PropertyMap;
|
|
import com.mojang.blaze3d.platform.DisplayData;
|
|
import java.io.File;
|
|
import java.net.Proxy;
|
|
import java.nio.file.Path;
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.minecraft.client.User;
|
|
import net.minecraft.client.resources.IndexedAssetSource;
|
|
import net.minecraft.util.StringUtil;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public class GameConfig {
|
|
public final GameConfig.UserData user;
|
|
public final DisplayData display;
|
|
public final GameConfig.FolderData location;
|
|
public final GameConfig.GameData game;
|
|
public final GameConfig.QuickPlayData quickPlay;
|
|
|
|
public GameConfig(GameConfig.UserData user, DisplayData display, GameConfig.FolderData location, GameConfig.GameData game, GameConfig.QuickPlayData quickPlay) {
|
|
this.user = user;
|
|
this.display = display;
|
|
this.location = location;
|
|
this.game = game;
|
|
this.quickPlay = quickPlay;
|
|
}
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public static class FolderData {
|
|
public final File gameDirectory;
|
|
public final File resourcePackDirectory;
|
|
public final File assetDirectory;
|
|
@Nullable
|
|
public final String assetIndex;
|
|
|
|
public FolderData(File gameDirectory, File resourcePackDirectory, File assetDirectory, @Nullable String assetIndex) {
|
|
this.gameDirectory = gameDirectory;
|
|
this.resourcePackDirectory = resourcePackDirectory;
|
|
this.assetDirectory = assetDirectory;
|
|
this.assetIndex = assetIndex;
|
|
}
|
|
|
|
public Path getExternalAssetSource() {
|
|
return this.assetIndex == null ? this.assetDirectory.toPath() : IndexedAssetSource.createIndexFs(this.assetDirectory.toPath(), this.assetIndex);
|
|
}
|
|
}
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public static class GameData {
|
|
public final boolean demo;
|
|
public final String launchVersion;
|
|
public final String versionType;
|
|
public final boolean disableMultiplayer;
|
|
public final boolean disableChat;
|
|
public final boolean captureTracyImages;
|
|
public final boolean renderDebugLabels;
|
|
|
|
public GameData(
|
|
boolean demo,
|
|
String launchVersion,
|
|
String versionType,
|
|
boolean disableMultiplayer,
|
|
boolean disableChat,
|
|
boolean captureTracyImages,
|
|
boolean renderDebugLabels
|
|
) {
|
|
this.demo = demo;
|
|
this.launchVersion = launchVersion;
|
|
this.versionType = versionType;
|
|
this.disableMultiplayer = disableMultiplayer;
|
|
this.disableChat = disableChat;
|
|
this.captureTracyImages = captureTracyImages;
|
|
this.renderDebugLabels = renderDebugLabels;
|
|
}
|
|
}
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public record QuickPlayData(@Nullable String path, @Nullable String singleplayer, @Nullable String multiplayer, @Nullable String realms) {
|
|
public boolean isEnabled() {
|
|
return !StringUtil.isBlank(this.singleplayer) || !StringUtil.isBlank(this.multiplayer) || !StringUtil.isBlank(this.realms);
|
|
}
|
|
}
|
|
|
|
@Environment(EnvType.CLIENT)
|
|
public static class UserData {
|
|
public final User user;
|
|
public final PropertyMap userProperties;
|
|
public final PropertyMap profileProperties;
|
|
public final Proxy proxy;
|
|
|
|
public UserData(User user, PropertyMap userProperties, PropertyMap profileProperties, Proxy proxy) {
|
|
this.user = user;
|
|
this.userProperties = userProperties;
|
|
this.profileProperties = profileProperties;
|
|
this.proxy = proxy;
|
|
}
|
|
}
|
|
}
|