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.")
+ }
+ }
+}