Add debug log enabling
This commit is contained in:
@@ -8,7 +8,7 @@ root = true
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
indent_style = tab
|
||||
insert_final_newline = true
|
||||
max_line_length = 120
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import net.minecraft.text.Text
|
||||
import moe.nea.firmament.apis.UrsaManager
|
||||
import moe.nea.firmament.events.CommandEvent
|
||||
import moe.nea.firmament.events.FirmamentEventBus
|
||||
import moe.nea.firmament.features.debug.DebugLogger
|
||||
import moe.nea.firmament.features.debug.PowerUserTools
|
||||
import moe.nea.firmament.features.inventory.buttons.InventoryButtons
|
||||
import moe.nea.firmament.features.inventory.storageoverlay.StorageOverlayScreen
|
||||
@@ -186,6 +187,24 @@ fun firmamentCommand() = literal("firmament") {
|
||||
}
|
||||
}
|
||||
}
|
||||
thenLiteral("debuglog") {
|
||||
thenLiteral("toggle") {
|
||||
thenArgument("tag", string()) { tag ->
|
||||
suggestsList { DebugLogger.allInstances.getAll().map { it.tag } + DebugLogger.EnabledLogs.data }
|
||||
thenExecute {
|
||||
val tagText = this[tag]
|
||||
val enabled = DebugLogger.EnabledLogs.data
|
||||
if (tagText in enabled) {
|
||||
enabled.remove(tagText)
|
||||
source.sendFeedback(Text.literal("Disabled $tagText debug logging"))
|
||||
} else {
|
||||
enabled.add(tagText)
|
||||
source.sendFeedback(Text.literal("Enabled $tagText debug logging"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
thenLiteral("sbdata") {
|
||||
thenExecute {
|
||||
source.sendFeedback(Text.stringifiedTranslatable("firmament.sbinfo.profile", SBData.profileId))
|
||||
|
||||
@@ -1,18 +1,22 @@
|
||||
|
||||
package moe.nea.firmament.features.debug
|
||||
|
||||
import kotlinx.serialization.serializer
|
||||
import net.minecraft.text.Text
|
||||
import moe.nea.firmament.util.MC
|
||||
import moe.nea.firmament.util.collections.InstanceList
|
||||
import moe.nea.firmament.util.data.DataHolder
|
||||
|
||||
class DebugLogger(val tag: String) {
|
||||
companion object {
|
||||
val allInstances = InstanceList<DebugLogger>("DebugLogger")
|
||||
}
|
||||
object EnabledLogs : DataHolder<MutableSet<String>>(serializer(), "DebugLogs", ::mutableSetOf)
|
||||
|
||||
init {
|
||||
allInstances.add(this)
|
||||
}
|
||||
fun isEnabled() = DeveloperFeatures.isEnabled // TODO: allow filtering by tag
|
||||
|
||||
fun isEnabled() = DeveloperFeatures.isEnabled && EnabledLogs.data.contains(tag)
|
||||
fun log(text: () -> String) {
|
||||
if (!isEnabled()) return
|
||||
MC.sendChat(Text.literal(text()))
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
package moe.nea.firmament.features.debug
|
||||
|
||||
import java.nio.file.Path
|
||||
@@ -13,7 +11,6 @@ import moe.nea.firmament.features.FirmamentFeature
|
||||
import moe.nea.firmament.gui.config.ManagedConfig
|
||||
import moe.nea.firmament.util.MC
|
||||
import moe.nea.firmament.util.TimeMark
|
||||
import moe.nea.firmament.util.errorBoundary
|
||||
import moe.nea.firmament.util.iterate
|
||||
|
||||
object DeveloperFeatures : FirmamentFeature {
|
||||
@@ -43,7 +40,9 @@ object DeveloperFeatures : FirmamentFeature {
|
||||
MC.player?.sendMessage(Text.translatable("firmament.dev.resourcerebuild.start"))
|
||||
val startTime = TimeMark.now()
|
||||
process.toHandle().onExit().thenApply {
|
||||
MC.player?.sendMessage(Text.stringifiedTranslatable("firmament.dev.resourcerebuild.done", startTime.passedTime()))
|
||||
MC.player?.sendMessage(Text.stringifiedTranslatable(
|
||||
"firmament.dev.resourcerebuild.done",
|
||||
startTime.passedTime()))
|
||||
Unit
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user