feat: register and activate player cosmetics
This commit is contained in:
@@ -4,14 +4,19 @@ package de.fullrisk.citrusDev.client;
|
|||||||
import de.fullrisk.citrusDev.Config;
|
import de.fullrisk.citrusDev.Config;
|
||||||
import de.fullrisk.citrusDev.UI.*;
|
import de.fullrisk.citrusDev.UI.*;
|
||||||
import de.fullrisk.citrusDev.UIHelper.DraggableHud;
|
import de.fullrisk.citrusDev.UIHelper.DraggableHud;
|
||||||
|
import de.fullrisk.citrusDev.client.cosmetic.PlayerCosmeticManager;
|
||||||
|
import de.fullrisk.citrusDev.client.cosmetic.PlayerCosmeticRenderLayer;
|
||||||
import de.fullrisk.citrusDev.helper.RankHelper;
|
import de.fullrisk.citrusDev.helper.RankHelper;
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
|
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
|
||||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
|
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
|
||||||
import net.fabricmc.fabric.api.client.keymapping.v1.KeyMappingHelper;
|
import net.fabricmc.fabric.api.client.keymapping.v1.KeyMappingHelper;
|
||||||
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
|
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
|
||||||
|
import net.fabricmc.fabric.api.client.rendering.v1.LivingEntityRenderLayerRegistrationCallback;
|
||||||
import net.minecraft.client.KeyMapping;
|
import net.minecraft.client.KeyMapping;
|
||||||
|
import net.minecraft.client.renderer.entity.player.AvatarRenderer;
|
||||||
import net.minecraft.resources.Identifier;
|
import net.minecraft.resources.Identifier;
|
||||||
|
import net.minecraft.world.entity.EntityType;
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -25,9 +30,11 @@ public class CitrusDevClient implements ClientModInitializer {
|
|||||||
public static final String API_URL = "https://citrus-api.winniepat.de";
|
public static final String API_URL = "https://citrus-api.winniepat.de";
|
||||||
|
|
||||||
private static KeyMapping openScreenKey;
|
private static KeyMapping openScreenKey;
|
||||||
|
private static boolean testCosmeticPending;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
|
registerPlayerCosmetics();
|
||||||
Module_FPS.register();
|
Module_FPS.register();
|
||||||
Module_KeyStrokes.register();
|
Module_KeyStrokes.register();
|
||||||
Module_Coords.register();
|
Module_Coords.register();
|
||||||
@@ -36,7 +43,11 @@ public class CitrusDevClient implements ClientModInitializer {
|
|||||||
|
|
||||||
ClientLifecycleEvents.CLIENT_STOPPING.register(client -> DiscordRPCManager.shutdown());
|
ClientLifecycleEvents.CLIENT_STOPPING.register(client -> DiscordRPCManager.shutdown());
|
||||||
|
|
||||||
ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> DiscordRPCManager.setIdle());
|
ClientPlayConnectionEvents.DISCONNECT.register((handler, client) -> {
|
||||||
|
DiscordRPCManager.setIdle();
|
||||||
|
PlayerCosmeticManager.clear();
|
||||||
|
testCosmeticPending = false;
|
||||||
|
});
|
||||||
|
|
||||||
KeyMapping.Category category = KeyMapping.Category.register(
|
KeyMapping.Category category = KeyMapping.Category.register(
|
||||||
Identifier.fromNamespaceAndPath("citrus-dev", "general"));
|
Identifier.fromNamespaceAndPath("citrus-dev", "general"));
|
||||||
@@ -47,12 +58,23 @@ public class CitrusDevClient implements ClientModInitializer {
|
|||||||
category
|
category
|
||||||
));
|
));
|
||||||
|
|
||||||
ClientPlayConnectionEvents.JOIN.register((sender, client1, player) -> {
|
ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> {
|
||||||
RankHelper.fetchAllRanks();
|
RankHelper.fetchAllRanks();
|
||||||
|
|
||||||
|
if (client.player != null) {
|
||||||
|
PlayerCosmeticManager.enableTestCosmetic(client.player.getUUID());
|
||||||
|
} else {
|
||||||
|
testCosmeticPending = true;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
||||||
|
|
||||||
|
if (testCosmeticPending && client.player != null) {
|
||||||
|
PlayerCosmeticManager.enableTestCosmetic(client.player.getUUID());
|
||||||
|
testCosmeticPending = false;
|
||||||
|
}
|
||||||
|
|
||||||
if (client.player != null && !client.isPaused()) {
|
if (client.player != null && !client.isPaused()) {
|
||||||
PlaytimeTracker.tick();
|
PlaytimeTracker.tick();
|
||||||
QuestsPanel.tick();
|
QuestsPanel.tick();
|
||||||
@@ -80,6 +102,17 @@ public class CitrusDevClient implements ClientModInitializer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void registerPlayerCosmetics() {
|
||||||
|
LivingEntityRenderLayerRegistrationCallback.EVENT.register(
|
||||||
|
(entityType, entityRenderer, registrationHelper, context) -> {
|
||||||
|
if (entityType == EntityType.PLAYER
|
||||||
|
&& entityRenderer instanceof AvatarRenderer<?> avatarRenderer) {
|
||||||
|
registrationHelper.register(new PlayerCosmeticRenderLayer(avatarRenderer));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public static void debugLog(String message) {
|
public static void debugLog(String message) {
|
||||||
if (debug) {
|
if (debug) {
|
||||||
logger.info("[Citrus] [DEBUG] {}", message);
|
logger.info("[Citrus] [DEBUG] {}", message);
|
||||||
|
|||||||
Reference in New Issue
Block a user