diff --git a/src/main/kotlin/gg/skytils/skytilsmod/features/impl/dungeons/catlas/core/CatlasConfig.kt b/src/main/kotlin/gg/skytils/skytilsmod/features/impl/dungeons/catlas/core/CatlasConfig.kt index cdb9fad46..25d06e764 100644 --- a/src/main/kotlin/gg/skytils/skytilsmod/features/impl/dungeons/catlas/core/CatlasConfig.kt +++ b/src/main/kotlin/gg/skytils/skytilsmod/features/impl/dungeons/catlas/core/CatlasConfig.kt @@ -126,6 +126,30 @@ object CatlasConfig : Vigilant( ) var mapVanillaMarker = false + @Property( + name = "Show Class Name Instead of Player Names", + type = PropertyType.SWITCH, + description = "Show the class name under player heads instead of the player name", + category = "Map", + subcategory = "Toggle", + i18nName = "catlas.config.map.toggle.player_class_name", + i18nCategory = "catlas.config.map", + i18nSubcategory = "catlas.config.map.toggle" + ) + var useClassForPlayerNames = false + + @Property( + name = "Color Player Names By Class", + type = PropertyType.SWITCH, + description = "Colors player names according to their class", + category = "Map", + subcategory = "Toggle", + i18nName = "catlas.config.map.toggle.name_class_color", + i18nCategory = "catlas.config.map", + i18nSubcategory = "catlas.config.map.toggle" + ) + var colorPlayerNames = false + @Property( name = "Map Text Scale", type = PropertyType.DECIMAL_SLIDER, @@ -413,7 +437,7 @@ object CatlasConfig : Vigilant( i18nCategory = "catlas.config.colors", i18nSubcategory = "catlas.config.colors.players" ) - var colorPlayerArcher = Color(0, 0, 0, 255) + var colorPlayerArcher = Color(247, 156, 165, 255) @Property( name = "Player Border Color (Berserk)", @@ -425,7 +449,7 @@ object CatlasConfig : Vigilant( i18nCategory = "catlas.config.colors", i18nSubcategory = "catlas.config.colors.players" ) - var colorPlayerBerserk = Color(0, 0, 0, 255) + var colorPlayerBerserk = Color(245, 184, 127, 255) @Property( name = "Player Border Color (Healer)", @@ -437,7 +461,7 @@ object CatlasConfig : Vigilant( i18nCategory = "catlas.config.colors", i18nSubcategory = "catlas.config.colors.players" ) - var colorPlayerHealer = Color(0, 0, 0, 255) + var colorPlayerHealer = Color(207, 158, 240, 255) @Property( name = "Player Border Color (Mage)", @@ -449,7 +473,7 @@ object CatlasConfig : Vigilant( i18nCategory = "catlas.config.colors", i18nSubcategory = "catlas.config.colors.players" ) - var colorPlayerMage = Color(0, 0, 0, 255) + var colorPlayerMage = Color(148, 193, 242, 255) @Property( name = "Player Border Color (Tank)", @@ -461,7 +485,7 @@ object CatlasConfig : Vigilant( i18nCategory = "catlas.config.colors", i18nSubcategory = "catlas.config.colors.players" ) - var colorPlayerTank = Color(0, 0, 0, 255) + var colorPlayerTank = Color(148, 242, 151, 255) @Property( name = "Blood Room", diff --git a/src/main/kotlin/gg/skytils/skytilsmod/features/impl/dungeons/catlas/utils/RenderUtils.kt b/src/main/kotlin/gg/skytils/skytilsmod/features/impl/dungeons/catlas/utils/RenderUtils.kt index 0f87b9ca3..7945222fc 100644 --- a/src/main/kotlin/gg/skytils/skytilsmod/features/impl/dungeons/catlas/utils/RenderUtils.kt +++ b/src/main/kotlin/gg/skytils/skytilsmod/features/impl/dungeons/catlas/utils/RenderUtils.kt @@ -175,14 +175,7 @@ object RenderUtils { GlStateManager.rotate(-180f, 0f, 0f, 1f) } else { // Render box behind the player head - val borderColor = when (player.teammate.dungeonClass) { - DungeonClass.ARCHER -> CatlasConfig.colorPlayerArcher - DungeonClass.BERSERK -> CatlasConfig.colorPlayerBerserk - DungeonClass.HEALER -> CatlasConfig.colorPlayerHealer - DungeonClass.MAGE -> CatlasConfig.colorPlayerMage - DungeonClass.TANK -> CatlasConfig.colorPlayerTank - else -> Color.BLACK - } + val borderColor = player.teammate.dungeonClass.color renderRect(-6.0, -6.0, 12.0, 12.0, borderColor) GlStateManager.translate(0f, 0f, 0.1f) @@ -216,8 +209,13 @@ object RenderUtils { } GlStateManager.translate(0f, 10f, 0f) GlStateManager.scale(CatlasConfig.playerNameScale, CatlasConfig.playerNameScale, 1f) + val renderName = if (!CatlasConfig.useClassForPlayerNames) name else player.teammate.dungeonClass.className mc.fontRendererObj.drawString( - name, -mc.fontRendererObj.getStringWidth(name) / 2f, 0f, 0xffffff, true + renderName, + -mc.fontRendererObj.getStringWidth(renderName) / 2f, + 0f, + if (CatlasConfig.colorPlayerNames) player.teammate.dungeonClass.color.rgb else 0xffffff, + true ) } GlStateManager.popMatrix() diff --git a/src/main/kotlin/gg/skytils/skytilsmod/utils/apiTools.kt b/src/main/kotlin/gg/skytils/skytilsmod/utils/apiTools.kt index 4f170a624..2b025090a 100644 --- a/src/main/kotlin/gg/skytils/skytilsmod/utils/apiTools.kt +++ b/src/main/kotlin/gg/skytils/skytilsmod/utils/apiTools.kt @@ -21,6 +21,7 @@ package gg.skytils.skytilsmod.utils import gg.skytils.hypixel.types.player.Player import gg.skytils.hypixel.types.skyblock.Profile import gg.skytils.hypixel.types.util.Inventory +import gg.skytils.skytilsmod.features.impl.dungeons.catlas.core.CatlasConfig import kotlinx.serialization.KSerializer import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -61,6 +62,15 @@ enum class DungeonClass { val className = name.toTitleCase() val apiName = name.lowercase() + val color: Color + get() = when (this) { + ARCHER -> CatlasConfig.colorPlayerArcher + BERSERK -> CatlasConfig.colorPlayerBerserk + HEALER -> CatlasConfig.colorPlayerHealer + MAGE -> CatlasConfig.colorPlayerMage + TANK -> CatlasConfig.colorPlayerTank + else -> Color.BLACK + } override fun toString(): String { return this.className diff --git a/src/main/resources/assets/catlas/lang/en_US.lang b/src/main/resources/assets/catlas/lang/en_US.lang index b9c7bfd2b..15b7eb622 100644 --- a/src/main/resources/assets/catlas/lang/en_US.lang +++ b/src/main/resources/assets/catlas/lang/en_US.lang @@ -6,6 +6,8 @@ catlas.config.map.toggle.hide_in_boss=Hide In Boss catlas.config.map.toggle.show_before_start=Show Before Start catlas.config.map.toggle.show_player_names=Show Player Names catlas.config.map.toggle.vanilla_head_marker=Vanilla Head Marker +catlas.config.map.toggle.player_class_name=Show Class Name Instead of Player Names +catlas.config.map.toggle.name_class_color=Color Player Names By Class catlas.config.map.size.map_text_scale=Map Text Scale catlas.config.map.size.player_heads_scale=Player Heads Scale catlas.config.map.size.head_border_scale=Head Border Scale