1+ /*
2+ * Copyright 2025 Lambda
3+ *
4+ * This program is free software: you can redistribute it and/or modify
5+ * it under the terms of the GNU General Public License as published by
6+ * the Free Software Foundation, either version 3 of the License, or
7+ * (at your option) any later version.
8+ *
9+ * This program is distributed in the hope that it will be useful,
10+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+ * GNU General Public License for more details.
13+ *
14+ * You should have received a copy of the GNU General Public License
15+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
16+ */
17+
18+ package com.lambda.module.modules.debug
19+
20+ import com.lambda.Lambda.mc
21+ import com.lambda.module.Module
22+ import com.lambda.module.tag.ModuleTag
23+ import net.minecraft.client.render.VertexConsumerProvider
24+ import net.minecraft.client.render.debug.DebugRenderer
25+ import net.minecraft.client.util.math.MatrixStack
26+
27+ object DebugRendererModule: Module(
28+ name = " Debug Renderer" ,
29+ description = " Renders debug information of minecraft internals" ,
30+ tag = ModuleTag .DEBUG ,
31+ ) {
32+ private val waterDebugRenderer by setting(" Water Debug Renderer" , false )
33+ private val chunkBorderDebugRenderer by setting(" Chunk Border Debug Renderer" , false )
34+ private val heightmapDebugRenderer by setting(" Heightmap Debug Renderer" , false )
35+ private val collisionDebugRenderer by setting(" Collision Debug Renderer" , false )
36+ private val supportingBlockDebugRenderer by setting(" Supporting Block Debug Renderer" , false )
37+ private val neighborUpdateDebugRenderer by setting(" Neighbor Update Debug Renderer" , false )
38+ private val redstoneUpdateOrderDebugRenderer by setting(" Redstone Update Order Debug Renderer" , false )
39+ private val structureDebugRenderer by setting(" Structure Debug Renderer" , false )
40+ private val skyLightDebugRenderer by setting(" Sky Light Debug Renderer" , false )
41+ private val worldGenAttemptDebugRenderer by setting(" World Gen Attempt Debug Renderer" , false )
42+ private val blockOutlineDebugRenderer by setting(" Block Outline Debug Renderer" , false )
43+ private val chunkLoadingDebugRenderer by setting(" Chunk Loading Debug Renderer" , false )
44+ private val villageDebugRenderer by setting(" Village Debug Renderer" , false )
45+ private val villageSectionsDebugRenderer by setting(" Village Sections Debug Renderer" , false )
46+ private val beeDebugRenderer by setting(" Bee Debug Renderer" , false )
47+ private val raidCenterDebugRenderer by setting(" Raid Center Debug Renderer" , false )
48+ private val goalSelectorDebugRenderer by setting(" Goal Selector Debug Renderer" , false )
49+ private val gameTestDebugRenderer by setting(" Game Test Debug Renderer" , false )
50+ private val gameEventDebugRenderer by setting(" Game Event Debug Renderer" , false )
51+ private val lightDebugRenderer by setting(" Light Debug Renderer" , false )
52+ // private val breezeDebugRenderer by setting("Breeze Debug Renderer", false)
53+ // private val chunkDebugRenderer by setting("Chunk Debug Renderer", false)
54+ // private val octreeDebugRenderer by setting("Octree Debug Renderer", false)
55+
56+ @JvmStatic
57+ fun render (
58+ matrices : MatrixStack ,
59+ vertexConsumers : VertexConsumerProvider .Immediate ,
60+ cameraX : Double ,
61+ cameraY : Double , cameraZ : Double
62+ ) {
63+ val renderers = mc.debugRenderer
64+ mutableListOf<DebugRenderer .Renderer >().apply {
65+ if (waterDebugRenderer) add(renderers.waterDebugRenderer)
66+ if (chunkBorderDebugRenderer) add(renderers.chunkBorderDebugRenderer)
67+ if (heightmapDebugRenderer) add(renderers.heightmapDebugRenderer)
68+ if (collisionDebugRenderer) add(renderers.collisionDebugRenderer)
69+ if (supportingBlockDebugRenderer) add(renderers.supportingBlockDebugRenderer)
70+ if (neighborUpdateDebugRenderer) add(renderers.neighborUpdateDebugRenderer)
71+ if (redstoneUpdateOrderDebugRenderer) add(renderers.redstoneUpdateOrderDebugRenderer)
72+ if (structureDebugRenderer) add(renderers.structureDebugRenderer)
73+ if (skyLightDebugRenderer) add(renderers.skyLightDebugRenderer)
74+ if (worldGenAttemptDebugRenderer) add(renderers.worldGenAttemptDebugRenderer)
75+ if (blockOutlineDebugRenderer) add(renderers.blockOutlineDebugRenderer)
76+ if (chunkLoadingDebugRenderer) add(renderers.chunkLoadingDebugRenderer)
77+ if (villageDebugRenderer) add(renderers.villageDebugRenderer)
78+ if (villageSectionsDebugRenderer) add(renderers.villageSectionsDebugRenderer)
79+ if (beeDebugRenderer) add(renderers.beeDebugRenderer)
80+ if (raidCenterDebugRenderer) add(renderers.raidCenterDebugRenderer)
81+ if (goalSelectorDebugRenderer) add(renderers.goalSelectorDebugRenderer)
82+ if (gameTestDebugRenderer) add(renderers.gameTestDebugRenderer)
83+ if (gameEventDebugRenderer) add(renderers.gameEventDebugRenderer)
84+ if (lightDebugRenderer) add(renderers.lightDebugRenderer)
85+ }.forEach { it.render(matrices, vertexConsumers, cameraX, cameraY, cameraZ) }
86+ }
87+ }
0 commit comments