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.UI.*;
|
||||
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 net.fabricmc.api.ClientModInitializer;
|
||||
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.keymapping.v1.KeyMappingHelper;
|
||||
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.renderer.entity.player.AvatarRenderer;
|
||||
import net.minecraft.resources.Identifier;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -25,9 +30,11 @@ public class CitrusDevClient implements ClientModInitializer {
|
||||
public static final String API_URL = "https://citrus-api.winniepat.de";
|
||||
|
||||
private static KeyMapping openScreenKey;
|
||||
private static boolean testCosmeticPending;
|
||||
|
||||
@Override
|
||||
public void onInitializeClient() {
|
||||
registerPlayerCosmetics();
|
||||
Module_FPS.register();
|
||||
Module_KeyStrokes.register();
|
||||
Module_Coords.register();
|
||||
@@ -36,7 +43,11 @@ public class CitrusDevClient implements ClientModInitializer {
|
||||
|
||||
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(
|
||||
Identifier.fromNamespaceAndPath("citrus-dev", "general"));
|
||||
@@ -47,12 +58,23 @@ public class CitrusDevClient implements ClientModInitializer {
|
||||
category
|
||||
));
|
||||
|
||||
ClientPlayConnectionEvents.JOIN.register((sender, client1, player) -> {
|
||||
ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> {
|
||||
RankHelper.fetchAllRanks();
|
||||
|
||||
if (client.player != null) {
|
||||
PlayerCosmeticManager.enableTestCosmetic(client.player.getUUID());
|
||||
} else {
|
||||
testCosmeticPending = true;
|
||||
}
|
||||
});
|
||||
|
||||
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
||||
|
||||
if (testCosmeticPending && client.player != null) {
|
||||
PlayerCosmeticManager.enableTestCosmetic(client.player.getUUID());
|
||||
testCosmeticPending = false;
|
||||
}
|
||||
|
||||
if (client.player != null && !client.isPaused()) {
|
||||
PlaytimeTracker.tick();
|
||||
QuestsPanel.tick();
|
||||
@@ -80,9 +102,20 @@ 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) {
|
||||
if (debug) {
|
||||
logger.info("[Citrus] [DEBUG] {}", message);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user