forked from mirrors/cobblemon
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
78dfb30759 |
@@ -69,11 +69,14 @@ import com.cobblemon.mod.common.client.tooltips.RecipeSeasoningAbsorbtionTooltip
|
||||
import com.cobblemon.mod.common.client.tooltips.SeasoningTooltipGenerator
|
||||
import com.cobblemon.mod.common.client.tooltips.TooltipManager
|
||||
import com.cobblemon.mod.common.client.trade.ClientTrade
|
||||
import com.cobblemon.mod.common.debug.RidingDebugRenderer
|
||||
import com.cobblemon.mod.common.entity.boat.CobblemonBoatType
|
||||
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.cobblemon.mod.common.platform.events.PlatformEvents
|
||||
import com.cobblemon.mod.common.pokedex.scanner.PokedexUsageContext
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import com.cobblemon.mod.common.util.isLookingAt
|
||||
import io.github.flemmli97.debugutils.api.RegisterDebugRenderers
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.color.block.BlockColor
|
||||
import net.minecraft.client.gui.GuiGraphics
|
||||
@@ -193,6 +196,11 @@ object CobblemonClient {
|
||||
}
|
||||
ClientPlayerIcon.onTick()
|
||||
}
|
||||
|
||||
val debugId = cobblemonResource("riding")
|
||||
RegisterDebugRenderers.registerCustomDebugRenderer(debugId, RidingDebugRenderer)
|
||||
RegisterDebugRenderers.registerServerToggle(debugId)
|
||||
RegisterDebugRenderers.registerClientHandler(debugId) { RidingDebugRenderer.clientHandler(it) }
|
||||
}
|
||||
|
||||
private fun registerTooltipManagers() {
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.cobblemon.mod.common.debug
|
||||
|
||||
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.mojang.blaze3d.vertex.PoseStack
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.renderer.MultiBufferSource
|
||||
import net.minecraft.client.renderer.debug.DebugRenderer
|
||||
import net.minecraft.core.BlockPos
|
||||
import net.minecraft.core.Position
|
||||
import java.util.function.Consumer
|
||||
|
||||
object RidingDebugRenderer : DebugRenderer.SimpleDebugRenderer {
|
||||
var enabled = false
|
||||
|
||||
override fun render(
|
||||
poseStack: PoseStack,
|
||||
buffer: MultiBufferSource,
|
||||
camX: Double,
|
||||
camY: Double,
|
||||
camZ: Double
|
||||
) {
|
||||
val minecraft = Minecraft.getInstance() ?: return
|
||||
val vehicle = minecraft.player?.vehicle
|
||||
if (vehicle != null && vehicle is PokemonEntity) {
|
||||
DebugRenderer.renderFloatingText(poseStack, buffer, "riding", camX, camY, camZ, -1, 1f, false, 0.5f, true)
|
||||
renderRidingInfo(vehicle, poseStack, buffer)
|
||||
}
|
||||
}
|
||||
|
||||
private fun renderRidingInfo(vehicle: PokemonEntity, poseStack: PoseStack, buffer: MultiBufferSource) {
|
||||
val ridingController = vehicle.ridingController
|
||||
if (ridingController != null) {
|
||||
var i = 0
|
||||
ridingController.context?.let { context ->
|
||||
val debugString = "Currently active: ${context.behaviour}"
|
||||
renderTextOverVehicle(poseStack, buffer, vehicle.position(), i, debugString, -1, 0.03f)
|
||||
i++
|
||||
}
|
||||
ridingController.behaviours.forEach { (style, settings) ->
|
||||
val debugString = "Available: $style"
|
||||
renderTextOverVehicle(poseStack, buffer, vehicle.position(), i, debugString, -1, 0.03f)
|
||||
i++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun renderTextOverVehicle(poseStack: PoseStack, buffer: MultiBufferSource, pos: Position, layer: Int, text: String, color: Int, scale: Float) {
|
||||
val blockPos = BlockPos.containing(pos)
|
||||
val x = blockPos.x.toDouble() + 0.5
|
||||
val y = blockPos.y.toDouble() + 2.4 + layer * 0.25
|
||||
val z = blockPos.z.toDouble() + 0.5
|
||||
DebugRenderer.renderFloatingText(poseStack, buffer, text, x, y, z, color, scale, false, 0.5f, true)
|
||||
}
|
||||
|
||||
fun clientHandler(enabled: Boolean) {
|
||||
this.enabled = enabled
|
||||
}
|
||||
}
|
||||
@@ -98,7 +98,7 @@ classgraph = { group = "io.github.classgraph", name = "classgraph", version.ref
|
||||
[bundles]
|
||||
kotlin = [ "kotlin-stdlib", "kotlin-reflect" ]
|
||||
fabric = [ "fabric-kotlin", "fabric-permissions" ]
|
||||
common-integrations-compileOnly = [ "adorn-fabric", "jei-api" ]
|
||||
common-integrations-compileOnly = [ "adorn-fabric", "jei-api", "fabric-debugutils" ]
|
||||
fabric-integrations-implementation = [ "mod-menu" ]
|
||||
fabric-integrations-runtimeOnly = [ "jei-fabric", "c2me-fabric" ]
|
||||
neoforge-integrations-runtimeOnly = [ "jei-neoforge", "c2me-neoforge" ]
|
||||
|
||||
Reference in New Issue
Block a user