Unicopia/src/main/java/com/minelittlepony/unicopia/client/UnicopiaClient.java

92 lines
3.5 KiB
Java
Raw Normal View History

package com.minelittlepony.unicopia.client;
2019-01-31 16:21:14 +01:00
2020-10-04 12:58:01 +02:00
import java.util.Optional;
2021-08-07 22:31:09 +02:00
import com.minelittlepony.common.client.gui.element.Button;
import com.minelittlepony.common.event.ScreenInitCallback;
import com.minelittlepony.common.event.ScreenInitCallback.ButtonList;
import com.minelittlepony.unicopia.InteractionManager;
import com.minelittlepony.unicopia.Race;
import com.minelittlepony.unicopia.Unicopia;
2021-08-07 22:31:09 +02:00
import com.minelittlepony.unicopia.client.gui.LanSettingsScreen;
import com.minelittlepony.unicopia.client.gui.UHud;
import com.minelittlepony.unicopia.client.gui.spellbook.SpellbookScreen;
2022-09-20 23:50:15 +02:00
import com.minelittlepony.unicopia.client.minelittlepony.MineLPDelegate;
2022-12-12 02:05:10 +01:00
import com.minelittlepony.unicopia.client.render.shader.ViewportShader;
import com.minelittlepony.unicopia.container.*;
2020-10-04 12:58:01 +02:00
import com.minelittlepony.unicopia.entity.player.PlayerCamera;
import com.minelittlepony.unicopia.entity.player.Pony;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
2021-02-22 14:53:13 +01:00
import net.fabricmc.fabric.api.client.item.v1.ItemTooltipCallback;
2022-12-12 02:05:10 +01:00
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
import net.minecraft.client.MinecraftClient;
2021-08-07 22:31:09 +02:00
import net.minecraft.client.gui.screen.OpenToLanScreen;
import net.minecraft.client.gui.screen.Screen;
2022-06-25 00:19:55 +02:00
import net.minecraft.client.gui.screen.ingame.HandledScreens;
2020-10-04 12:58:01 +02:00
import net.minecraft.entity.player.PlayerEntity;
2022-12-12 02:05:10 +01:00
import net.minecraft.resource.ResourceType;
2022-06-25 00:19:55 +02:00
import net.minecraft.text.Text;
2020-04-25 13:32:33 +02:00
public class UnicopiaClient implements ClientModInitializer {
2020-10-04 12:58:01 +02:00
public static Optional<PlayerCamera> getCamera() {
PlayerEntity player = MinecraftClient.getInstance().player;
if (player != null && MinecraftClient.getInstance().cameraEntity == player) {
return Optional.of(Pony.of(player).getCamera());
}
return Optional.empty();
}
public static Race getPreferredRace() {
if (!Unicopia.getConfig().ignoreMineLP.get()
&& MinecraftClient.getInstance().player != null) {
2022-09-20 23:50:15 +02:00
Race race = MineLPDelegate.getInstance().getPlayerPonyRace();
if (!race.isDefault()) {
return race;
}
}
return Unicopia.getConfig().preferredRace.get();
}
public static float getWorldBrightness(float initial) {
return 0.6F;
}
2020-04-22 16:28:20 +02:00
@Override
public void onInitializeClient() {
2020-04-25 13:32:33 +02:00
InteractionManager.INSTANCE = new ClientInteractionManager();
2020-04-22 16:28:20 +02:00
KeyBindingsHandler.bootstrap();
2020-04-24 16:10:00 +02:00
URenderers.bootstrap();
2022-06-25 00:19:55 +02:00
HandledScreens.register(UScreenHandlers.SPELL_BOOK, SpellbookScreen::new);
2021-11-10 18:26:25 +01:00
ClientTickEvents.END_CLIENT_TICK.register(this::onTick);
ScreenInitCallback.EVENT.register(this::onScreenInit);
2021-02-22 14:53:13 +01:00
ItemTooltipCallback.EVENT.register(new ModifierTooltipRenderer());
2022-12-12 02:05:10 +01:00
ResourceManagerHelper.get(ResourceType.CLIENT_RESOURCES).registerReloadListener(ViewportShader.INSTANCE);
Unicopia.SIDE = () -> Optional.ofNullable(MinecraftClient.getInstance().player).map(Pony::of);
}
2020-04-22 16:28:20 +02:00
private void onTick(MinecraftClient client) {
KeyBindingsHandler.INSTANCE.tick(client);
UHud.INSTANCE.tick();
}
2020-04-22 16:28:20 +02:00
private void onScreenInit(Screen screen, ButtonList buttons) {
2021-08-07 22:31:09 +02:00
if (screen instanceof OpenToLanScreen) {
buttons.addButton(new Button(screen.width / 2 - 155, 130, 150, 20))
2021-12-22 10:15:09 +01:00
.onClick(b -> MinecraftClient.getInstance().setScreen(new LanSettingsScreen(screen)))
2022-06-25 00:19:55 +02:00
.getStyle().setText(Text.translatable("unicopia.options.title"));
}
2020-04-22 16:28:20 +02:00
}
2021-02-22 14:53:13 +01:00
}