diff --git a/pom.xml b/pom.xml index 9c13f3b7f..3718a8980 100644 --- a/pom.xml +++ b/pom.xml @@ -100,7 +100,35 @@ - + + + pl.project13.maven + git-commit-id-plugin + 3.0.1 + + + get-the-git-infos + + revision + + + + + ${project.basedir}/.git + git + false + true + ${project.build.outputDirectory}/assets/git.json + json + + false + false + -dirty + + + git.remote.* + + diff --git a/src/main/java/de/bixilon/minosoft/Minosoft.java b/src/main/java/de/bixilon/minosoft/Minosoft.java index eabaedd31..9cf2255c8 100644 --- a/src/main/java/de/bixilon/minosoft/Minosoft.java +++ b/src/main/java/de/bixilon/minosoft/Minosoft.java @@ -35,6 +35,7 @@ import de.bixilon.minosoft.protocol.network.Connection; import de.bixilon.minosoft.protocol.protocol.LANServerListener; import de.bixilon.minosoft.terminal.CLI; import de.bixilon.minosoft.util.CountUpAndDownLatch; +import de.bixilon.minosoft.util.GitInfo; import de.bixilon.minosoft.util.MinosoftCommandLineArguments; import de.bixilon.minosoft.util.Util; import de.bixilon.minosoft.util.logging.Log; @@ -64,6 +65,7 @@ public final class Minosoft { Util.initUtilClasses(); Log.info("Starting..."); + GitInfo.INSTANCE.load(); AsyncTaskWorker taskWorker = new AsyncTaskWorker("StartUp"); taskWorker.setFatalError((exception) -> { diff --git a/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.kt b/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.kt index d78740e9d..d07eaa361 100644 --- a/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.kt +++ b/src/main/java/de/bixilon/minosoft/data/mappings/versions/VersionMapping.kt @@ -359,10 +359,6 @@ class VersionMapping(var version: Version?) { } val blockStates = block.getAsJsonObject("states") for (identifier in blockStates.keySet()) { - if (identifier == "dispenser") { - Log.debug("") - } - loadBlockModelState(mod, identifier!!, blockStates) } } @@ -519,7 +515,7 @@ class VersionMapping(var version: Version?) { if (availableFeatures.size == Mappings.values().size) { return true } - for (mapping in Mappings.values()) { + for (mapping in Mappings.VALUES) { if (!availableFeatures.contains(mapping)) { return false } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/BlockModel.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/BlockModel.kt index cd858217e..27175daca 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/BlockModel.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/chunk/models/BlockModel.kt @@ -15,6 +15,7 @@ open class BlockModel(val parent: BlockModel? = null, json: JsonObject) { private val fullFaceDirections: MutableSet = parent?.fullFaceDirections?.toMutableSet() ?: mutableSetOf() private var rotation: Vec3 private var uvLock = false // ToDo + private var rescale = false // ToDo init { json["textures"]?.asJsonObject?.let { @@ -51,6 +52,9 @@ open class BlockModel(val parent: BlockModel? = null, json: JsonObject) { json["uvlock"]?.let { uvLock = it.asBoolean } + json["rescale"]?.let { + rescale = it.asBoolean + } rotation = glm.radians(Vec3(rotateX, rotateY, rotateZ)) } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/text/HUDDebugScreenElement.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/text/HUDDebugScreenElement.kt index ee52f3d1f..04b55ac77 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/text/HUDDebugScreenElement.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/hud/elements/text/HUDDebugScreenElement.kt @@ -6,6 +6,7 @@ import de.bixilon.minosoft.data.world.ChunkLocation import de.bixilon.minosoft.data.world.InChunkSectionLocation import de.bixilon.minosoft.gui.rendering.font.FontBindings import de.bixilon.minosoft.modding.loading.ModLoader +import de.bixilon.minosoft.util.GitInfo import org.lwjgl.opengl.GL11.* import oshi.SystemInfo @@ -57,6 +58,8 @@ class HUDDebugScreenElement(private val hudTextElement: HUDTextElement) : HUDTex "GPU: $gpuText", "Version: $gpuVersionText", "", + "Commit: ${GitInfo.GIT_COMMIT_ID_DESCRIBE}: ${GitInfo.GIT_COMMIT_MESSAGE_SHORT}", + "", "Mods: ${ModLoader.MOD_MAP.size} active, ${hudTextElement.connection.eventListenerSize} listeners", )) } diff --git a/src/main/java/de/bixilon/minosoft/util/GitInfo.kt b/src/main/java/de/bixilon/minosoft/util/GitInfo.kt new file mode 100644 index 000000000..c10eada3d --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/util/GitInfo.kt @@ -0,0 +1,90 @@ +package de.bixilon.minosoft.util + +import de.bixilon.minosoft.util.logging.Log +import de.bixilon.minosoft.util.logging.LogLevels +import java.text.DateFormat +import java.text.SimpleDateFormat + + +object GitInfo { + var GIT_BRANCH: String = "" + private set + var GIT_BUILD_HOST_BRANCH: String = "" + private set + var GIT_BUILD_TIME: Long = 0L + private set + var GIT_BUILD_USER_EMAIL: String = "" + private set + var GIT_BUILD_USER_NAME: String = "" + private set + var GIT_BUILD_VERSION: String = "" + private set + var GIT_CLOSEST_TAG_COMMIT_COUNT: String = "" + private set + var GIT_CLOSEST_TAG_NAME: String = "" + private set + var GIT_COMMIT_ID: String = "" + private set + var GIT_COMMIT_ID_ABBREV: String = "" + private set + var GIT_COMMIT_ID_DESCRIBE: String = "" + private set + var GIT_COMMIT_ID_DESCRIBE_SHORT: String = "" + private set + var GIT_COMMIT_MESSAGE_FULL: String = "" + private set + var GIT_COMMIT_MESSAGE_SHORT: String = "" + private set + var GIT_COMMIT_TIME: Long = 0L + private set + var GIT_COMMIT_USER_EMAIL: String = "" + private set + var GIT_COMMIT_USER_NAME: String = "" + private set + var GIT_DIRTY: Boolean = false + private set + var GIT_LOCAL_BRANCH_AHEAD: Int = 0 + private set + var GIT_LOCAL_BRANCH_BEHIND: Int = 0 + private set + var GIT_TAGS: Int = 0 + private set + var GIT_TOTAL_COMMIT_COUNT: Int = 0 + private set + + fun load() { + try { + val dateFormat: DateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ") + val json = Util.readJsonAssetResource("git.json") + GIT_BRANCH = json["git.branch"].asString + GIT_BUILD_HOST_BRANCH = json["git.build.host"].asString + GIT_BUILD_TIME = dateFormat.parse(json["git.build.time"].asString).time + GIT_BUILD_USER_EMAIL = json["git.build.user.email"].asString + GIT_BUILD_USER_NAME = json["git.build.user.name"].asString + GIT_BUILD_VERSION = json["git.build.version"].asString + GIT_CLOSEST_TAG_COMMIT_COUNT = json["git.closest.tag.commit.count"].asString + GIT_CLOSEST_TAG_NAME = json["git.closest.tag.name"].asString + GIT_COMMIT_ID = json["git.commit.id"].asString + GIT_COMMIT_ID_ABBREV = json["git.commit.id.abbrev"].asString + GIT_COMMIT_ID_DESCRIBE = json["git.commit.id.describe"].asString + GIT_COMMIT_ID_DESCRIBE_SHORT = json["git.commit.id.describe-short"].asString + GIT_COMMIT_MESSAGE_FULL = json["git.commit.message.full"].asString + GIT_COMMIT_MESSAGE_SHORT = json["git.commit.message.short"].asString + GIT_COMMIT_TIME = dateFormat.parse(json["git.commit.time"].asString).time + GIT_COMMIT_USER_EMAIL = json["git.commit.user.email"].asString + GIT_COMMIT_USER_NAME = json["git.commit.user.name"].asString + GIT_DIRTY = json["git.dirty"].asBoolean + GIT_LOCAL_BRANCH_AHEAD = json["git.local.branch.ahead"].asInt + GIT_LOCAL_BRANCH_BEHIND = json["git.local.branch.behind"].asInt + GIT_TAGS = if (json["git.tags"].asString.isBlank()) { + 0 + } else { + json["git.tags"].asInt + } + GIT_TOTAL_COMMIT_COUNT = json["git.total.commit.count"].asInt + } catch (exception: Throwable) { + Log.printException(exception, LogLevels.DEBUG) + Log.warn("Can not load git information.") + } + } +}