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