Title menu stuff
This commit is contained in:
@@ -8,10 +8,18 @@ import java.awt.image.BufferedImage;
|
||||
public abstract class MinecraftProvider {
|
||||
public static MinecraftProvider PROVIDER;
|
||||
|
||||
public static enum MinecraftScreen {
|
||||
SelectWorld,
|
||||
Multiplayer,
|
||||
Options
|
||||
}
|
||||
|
||||
public abstract IMinecraftClient getClient();
|
||||
|
||||
public abstract void setScreen(SaturnScreen screen);
|
||||
|
||||
public abstract void setScreen(MinecraftScreen screen);
|
||||
|
||||
public abstract Object createIdentifier(String namespace, String path);
|
||||
|
||||
public abstract boolean isKeyPressed(int key);
|
||||
@@ -21,4 +29,6 @@ public abstract class MinecraftProvider {
|
||||
public abstract void registerBufferedImageTexture(SaturnIdentifier i, BufferedImage bi);
|
||||
|
||||
public abstract String getKeyName(int key);
|
||||
|
||||
public abstract void stop();
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.saturnclient.ui.screens;
|
||||
|
||||
import org.saturnclient.common.minecraft.MinecraftProvider;
|
||||
import org.saturnclient.common.minecraft.MinecraftProvider.MinecraftScreen;
|
||||
import org.saturnclient.config.AnimationConfig;
|
||||
import org.saturnclient.config.Config;
|
||||
import org.saturnclient.ui.SaturnScreen;
|
||||
@@ -31,25 +32,23 @@ public class TitleMenu extends SaturnScreen {
|
||||
|
||||
AnimationStagger mainButtonStagger = new AnimationStagger(AnimationConfig.mainMenu);
|
||||
|
||||
// TODO implement all of these
|
||||
|
||||
mainButtonStagger.draw(new Button("SINGLEPLAYER", () -> {
|
||||
// MinecraftProvider.PROVIDER.setScreen(new SelectWorldScreen(new TitleMenu()));
|
||||
MinecraftProvider.PROVIDER.setScreen(MinecraftScreen.SelectWorld);
|
||||
}).scale(0.69f).dimensions(420, 52).position(0, 0)
|
||||
.animation(new SlideFade(AnimationConfig.mainMenu, -10)));
|
||||
|
||||
mainButtonStagger.draw(new Button("MULTIPLAYER", () -> {
|
||||
// MinecraftProvider.PROVIDER.setScreen(new MultiplayerScreen(new TitleMenu()));
|
||||
MinecraftProvider.PROVIDER.setScreen(MinecraftScreen.Multiplayer);
|
||||
}).scale(0.69f).dimensions(420, 52).position(0, 40)
|
||||
.animation(new SlideFade(AnimationConfig.mainMenu, -10)));
|
||||
|
||||
mainButtonStagger.draw(new Button("OPTIONS", () -> {
|
||||
// MinecraftProvider.PROVIDER.setScreen(new OptionsScreen(new TitleMenu(), SaturnClient.client.options));
|
||||
MinecraftProvider.PROVIDER.setScreen(MinecraftScreen.Options);
|
||||
}).scale(0.69f).dimensions(206, 52).position(0, 80)
|
||||
.animation(new SlideFade(AnimationConfig.mainMenu, -10)));
|
||||
|
||||
mainButtonStagger.draw(new Button("QUIT", () -> {
|
||||
// client.scheduleStop();
|
||||
MinecraftProvider.PROVIDER.stop();
|
||||
}).scale(0.69f).dimensions(206, 52).position(146, 80)
|
||||
.animation(new SlideFade(AnimationConfig.mainMenu, -10)));
|
||||
|
||||
|
||||
@@ -10,7 +10,11 @@ import org.saturnclient.cosmetics.cloak.utils.IdentifierUtils;
|
||||
import org.saturnclient.saturnclient.SaturnClient;
|
||||
import org.saturnclient.ui.SaturnScreen;
|
||||
import org.saturnclient.ui.SaturnScreenFabric;
|
||||
import org.saturnclient.ui.screens.TitleMenu;
|
||||
|
||||
import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen;
|
||||
import net.minecraft.client.gui.screen.option.OptionsScreen;
|
||||
import net.minecraft.client.gui.screen.world.SelectWorldScreen;
|
||||
import net.minecraft.util.Identifier;
|
||||
|
||||
public class SaturnClientProvider extends MinecraftProvider {
|
||||
@@ -49,4 +53,28 @@ public class SaturnClientProvider extends MinecraftProvider {
|
||||
public void setScreen(SaturnScreen screen) {
|
||||
SaturnClient.client.setScreen(new SaturnScreenFabric(screen));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setScreen(MinecraftScreen screen) {
|
||||
SaturnScreenFabric exitTarget = new SaturnScreenFabric(new TitleMenu());
|
||||
|
||||
switch (screen) {
|
||||
case SelectWorld:
|
||||
SaturnClient.client.setScreen(new SelectWorldScreen(exitTarget));
|
||||
break;
|
||||
|
||||
case Multiplayer:
|
||||
SaturnClient.client.setScreen(new MultiplayerScreen(exitTarget));
|
||||
break;
|
||||
|
||||
case Options:
|
||||
SaturnClient.client.setScreen(new OptionsScreen(exitTarget, SaturnClient.client.options));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
SaturnClient.client.scheduleStop();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user