fix git info loading

This commit is contained in:
Bixilon 2021-08-02 14:54:53 +02:00
parent 7f66977b52
commit 3bf80ccea3
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
17 changed files with 53 additions and 65 deletions

View File

@ -33,6 +33,5 @@ class ZombiePigman(connection: PlayConnection, entityType: EntityType, position:
override fun tweak(connection: PlayConnection, entityMetaData: EntityMetaData?, versionId: Int): ResourceLocation {
return ZombifiedPiglin.RESOURCE_LOCATION
}
}
}

View File

@ -18,9 +18,9 @@ import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationD
import de.bixilon.minosoft.gui.rendering.util.VecUtil.lerp
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil.nullCast
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.unsafeCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.get
data class Dimension(
@ -73,22 +73,22 @@ data class Dimension(
override fun deserialize(registries: Registries?, resourceLocation: ResourceLocation, data: Map<String, Any>): Dimension {
return Dimension(
resourceLocation = resourceLocation,
piglinSafe = data["piglin_safe"]?.booleanCast() ?: false,
natural = data["natural"]?.booleanCast() ?: false,
piglinSafe = data["piglin_safe"]?.toBoolean() ?: false,
natural = data["natural"]?.toBoolean() ?: false,
ambientLight = data["ambient_light"]?.unsafeCast<Float>() ?: 0.0f,
infiniBurn = ResourceLocation(data["infiniburn"].nullCast<String>() ?: "infiniburn_overworld"),
respawnAnchorWorks = data["respawn_anchor_works"]?.booleanCast() ?: false,
hasSkyLight = data["has_skylight", "has_sky_light"]?.booleanCast() ?: false,
bedWorks = data["bed_works"]?.booleanCast() ?: false,
respawnAnchorWorks = data["respawn_anchor_works"]?.toBoolean() ?: false,
hasSkyLight = data["has_skylight", "has_sky_light"]?.toBoolean() ?: false,
bedWorks = data["bed_works"]?.toBoolean() ?: false,
effects = ResourceLocation(data["effects"].nullCast<String>() ?: "overworld"),
hasRaids = data["has_raids"]?.booleanCast() ?: false,
hasRaids = data["has_raids"]?.toBoolean() ?: false,
logicalHeight = data["logical_height"]?.toInt() ?: 256,
coordinateScale = data["coordinate_scale"].nullCast() ?: 0.0,
minY = data["min_y"]?.toInt() ?: 0,
hasCeiling = data["has_ceiling"]?.booleanCast() ?: false,
ultraWarm = data["ultrawarm"]?.booleanCast() ?: false,
hasCeiling = data["has_ceiling"]?.toBoolean() ?: false,
ultraWarm = data["ultrawarm"]?.toBoolean() ?: false,
height = data["height"]?.toInt() ?: 256,
supports3DBiomes = data["supports_3d_biomes"]?.booleanCast() ?: false,
supports3DBiomes = data["supports_3d_biomes"]?.toBoolean() ?: false,
)
}
}

View File

@ -26,10 +26,10 @@ import de.bixilon.minosoft.gui.rendering.block.models.BlockModel
import de.bixilon.minosoft.gui.rendering.block.renderable.WorldEntryRenderer
import de.bixilon.minosoft.gui.rendering.block.renderable.block.BlockRenderer
import de.bixilon.minosoft.gui.rendering.block.renderable.block.MultipartRenderer
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.unsafeCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.asCompound
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import glm_.vec3.Vec3i
import java.util.*
@ -172,7 +172,7 @@ data class BlockState(
}
val collisionShape = data["collision_shape"]?.asShape()
?: if (data["is_collision_shape_full_block"]?.booleanCast() == true) {
?: if (data["is_collision_shape_full_block"]?.toBoolean() == true) {
VoxelShape.FULL
} else {
VoxelShape.EMPTY
@ -196,7 +196,7 @@ data class BlockState(
occlusionShape = occlusionShape,
outlineShape = outlineShape,
hardness = data["hardness"]?.unsafeCast<Float>() ?: 1.0f,
requiresTool = data["requires_tool"]?.booleanCast() ?: material.soft,
requiresTool = data["requires_tool"]?.toBoolean() ?: material.soft,
breakSoundEvent = data["break_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] },
stepSoundEvent = data["step_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] },
placeSoundEvent = data["place_sound_type"]?.toInt()?.let { registries.soundEventRegistry[it] },

View File

@ -31,14 +31,14 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.noise
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.asResourceLocation
import de.bixilon.minosoft.util.KUtil.chance
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
import de.bixilon.minosoft.util.KUtil.toBoolean
import glm_.vec3.Vec3
import glm_.vec3.Vec3d
import glm_.vec3.Vec3i
import kotlin.random.Random
open class CampfireBlock(resourceLocation: ResourceLocation, registries: Registries, data: Map<String, Any>) : Block(resourceLocation, registries, data) {
val lavaParticles = data["lava_particles"]?.booleanCast() ?: true
val lavaParticles = data["lava_particles"]?.toBoolean() ?: true
private val campfireCrackleSoundEvent = registries.soundEventRegistry[CAMPFIRE_CRACKLE_SOUND_RESOURCE_LOCATION]!!
private val cosySmokeParticle = registries.particleTypeRegistry[CampfireSmokeParticle.CosyFactory]!!

View File

@ -26,8 +26,8 @@ import de.bixilon.minosoft.data.registries.registries.registry.Translatable
import de.bixilon.minosoft.datafixer.EntityAttributeFixer.fix
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.asResourceLocation
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.unsafeCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import glm_.vec3.Vec3d
import java.util.*
@ -79,8 +79,8 @@ data class EntityType(
translationKey = data["translation_key"]?.asResourceLocation(),
width = data["width"].unsafeCast(),
height = data["height"].unsafeCast(),
fireImmune = data["fire_immune"]?.booleanCast() ?: false,
sizeFixed = data["size_fixed"]?.booleanCast() ?: false,
fireImmune = data["fire_immune"]?.toBoolean() ?: false,
sizeFixed = data["size_fixed"]?.toBoolean() ?: false,
attributes = attributes.toMap(),
factory = DefaultEntityFactories[resourceLocation] ?: error("Can not find entity factory for $resourceLocation"),
)

View File

@ -15,8 +15,8 @@ package de.bixilon.minosoft.data.registries.inventory
import de.bixilon.minosoft.data.registries.registries.Registries
import de.bixilon.minosoft.data.registries.registries.registry.IdDeserializer
import de.bixilon.minosoft.data.registries.registries.registry.RegistryFakeEnumerable
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.unsafeCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
data class CreativeModeTab(
override val name: String,
@ -33,8 +33,8 @@ data class CreativeModeTab(
name = data["language_id"].unsafeCast(),
recipeFolderName = data["recipe_folder_name"].unsafeCast(),
backgroundSuffix = data["background_suffix"].unsafeCast(),
canScroll = data["can_scroll"]!!.booleanCast(),
showTitle = data["show_title"]!!.booleanCast(),
canScroll = data["can_scroll"]!!.toBoolean(),
showTitle = data["show_title"]!!.toBoolean(),
)
}
}

View File

@ -29,9 +29,9 @@ import de.bixilon.minosoft.data.registries.registries.registry.Translatable
import de.bixilon.minosoft.gui.rendering.input.camera.hit.RaycastHit
import de.bixilon.minosoft.protocol.network.connection.play.PlayConnection
import de.bixilon.minosoft.util.KUtil.asResourceLocation
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.unsafeCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
open class Item(
override val resourceLocation: ResourceLocation,
@ -41,7 +41,7 @@ open class Item(
val rarity: Rarities = data["rarity"]?.toInt()?.let { Rarities[it] } ?: Rarities.COMMON
val maxStackSize: Int = data["max_stack_size"]?.toInt() ?: 64
val maxDamage: Int = data["max_damage"]?.toInt() ?: 1
val isFireResistant: Boolean = data["is_fire_resistant"]?.booleanCast() ?: false
val isFireResistant: Boolean = data["is_fire_resistant"]?.toBoolean() ?: false
override val translationKey: ResourceLocation? = data["translation_key"]?.asResourceLocation()
val creativeModeTab: CreativeModeTab? = data["category"]?.toInt()?.let { registries.creativeModeTabRegistry[it] }

View File

@ -19,8 +19,8 @@ import de.bixilon.minosoft.data.registries.registries.registry.ResourceLocationD
import de.bixilon.minosoft.data.text.RGBColor
import de.bixilon.minosoft.gui.rendering.TintColorCalculator
import de.bixilon.minosoft.util.KUtil.nullCast
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
import java.util.*
data class Material(
@ -46,13 +46,13 @@ data class Material(
resourceLocation = resourceLocation,
color = TintColorCalculator.getJsonColor(data["color"]?.toInt() ?: 0),
pushReaction = data["push_reaction"].nullCast<String>()?.let { PushReactions.valueOf(it.uppercase(Locale.getDefault())) } ?: PushReactions.NORMAL,
blockMotion = data["blocks_motion"]?.booleanCast() ?: false,
flammable = data["flammable"]?.booleanCast() ?: false,
liquid = data["liquid"]?.booleanCast() ?: false,
soft = data["is_soft"]?.booleanCast() ?: false,
solidBlocking = data["solid_blocking"]?.booleanCast() ?: false,
replaceable = data["replaceable"]?.booleanCast() ?: false,
solid = data["solid"]?.booleanCast() ?: false,
blockMotion = data["blocks_motion"]?.toBoolean() ?: false,
flammable = data["flammable"]?.toBoolean() ?: false,
liquid = data["liquid"]?.toBoolean() ?: false,
soft = data["is_soft"]?.toBoolean() ?: false,
solidBlocking = data["solid_blocking"]?.toBoolean() ?: false,
replaceable = data["replaceable"]?.toBoolean() ?: false,
solid = data["solid"]?.toBoolean() ?: false,
)
}
}

View File

@ -21,7 +21,7 @@ import de.bixilon.minosoft.gui.rendering.particle.DefaultParticleFactory
import de.bixilon.minosoft.gui.rendering.particle.ParticleFactory
import de.bixilon.minosoft.gui.rendering.particle.types.Particle
import de.bixilon.minosoft.gui.rendering.textures.Texture
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.compoundCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast
@ -53,7 +53,7 @@ data class ParticleType(
return ParticleType(
resourceLocation = resourceLocation,
textures = textures.toList(),
overrideLimiter = data["override_limiter"]?.booleanCast() ?: false,
overrideLimiter = data["override_limiter"]?.toBoolean() ?: false,
factory = factory,
)
}

View File

@ -77,7 +77,6 @@ interface ChatComponent {
@JvmOverloads
fun of(raw: Any? = null, translator: Translator? = null, parent: TextComponent? = null, ignoreJson: Boolean = false, restrictedMode: Boolean = false): ChatComponent {
// ToDo: Remove gson, replace with maps
if (raw == null) {
return BaseComponent()
}

View File

@ -43,7 +43,6 @@ class ErosErrorReport : DialogController() {
detailsFX.text = exception?.toStackTrace()
}
@FXML
fun ignore() {
stage.close()

View File

@ -32,7 +32,7 @@ import de.bixilon.minosoft.gui.rendering.util.VecUtil.plus
import de.bixilon.minosoft.gui.rendering.util.VecUtil.rotate
import de.bixilon.minosoft.gui.rendering.util.VecUtil.toVec3
import de.bixilon.minosoft.gui.rendering.util.mesh.Mesh
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
import de.bixilon.minosoft.util.KUtil.toBoolean
import glm_.vec3.Vec3
class ElementRenderer(
@ -47,7 +47,7 @@ class ElementRenderer(
private var transformedPositions: Array<Vec3> = element.transformedPositions.clone()
init {
rotatePositionsAxes(transformedPositions, rotation, data["rescale"]?.booleanCast() ?: model.rescale)
rotatePositionsAxes(transformedPositions, rotation, data["rescale"]?.toBoolean() ?: model.rescale)
val faces: MutableMap<Directions, BlockModelFace> = mutableMapOf()
for (direction in Directions.VALUES) {
@ -60,7 +60,7 @@ class ElementRenderer(
faces[direction] = BlockModelFace(it)
}
}
if (data["uvlock"]?.booleanCast() ?: model.uvLock) {
if (data["uvlock"]?.toBoolean() ?: model.uvLock) {
for (direction in Directions.VALUES) {
val axis = Axes[direction]
val angle = axis.choose(rotation) * axis.choose(direction.vector)

View File

@ -31,6 +31,7 @@ import de.bixilon.minosoft.util.CountUpAndDownLatch
import de.bixilon.minosoft.util.KUtil.asResourceLocation
import de.bixilon.minosoft.util.KUtil.nullCast
import de.bixilon.minosoft.util.KUtil.synchronizedListOf
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.toSynchronizedList
import de.bixilon.minosoft.util.KUtil.unsafeCast
@ -38,7 +39,6 @@ import de.bixilon.minosoft.util.Queue
import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.listCast
import glm_.vec3.Vec3
import glm_.vec3.Vec3i
@ -242,9 +242,9 @@ class AudioPlayer(
volume = soundJson["volume"]?.unsafeCast<Double>()?.toFloat() ?: 1.0f,
pitch = soundJson["pitch"]?.unsafeCast<Double>()?.toFloat() ?: 1.0f,
weight = soundJson["weight"]?.toInt() ?: 1,
stream = soundJson["stream"]?.booleanCast() ?: false,
stream = soundJson["stream"]?.toBoolean() ?: false,
attenuationDistance = soundJson["attenuation_distance"]?.toInt() ?: 16,
preload = soundJson["preload"]?.booleanCast() ?: false,
preload = soundJson["preload"]?.toBoolean() ?: false,
)
}
is JsonArray -> TODO()

View File

@ -16,11 +16,12 @@ package de.bixilon.minosoft.util
import de.bixilon.minosoft.Minosoft
import de.bixilon.minosoft.data.registries.ResourceLocation
import de.bixilon.minosoft.protocol.protocol.ProtocolDefinition
import de.bixilon.minosoft.util.KUtil.toBoolean
import de.bixilon.minosoft.util.KUtil.toInt
import de.bixilon.minosoft.util.KUtil.unsafeCast
import de.bixilon.minosoft.util.logging.Log
import de.bixilon.minosoft.util.logging.LogLevels
import de.bixilon.minosoft.util.logging.LogMessageType
import de.bixilon.minosoft.util.nbt.tag.NBTUtil.booleanCast
import java.text.DateFormat
import java.text.SimpleDateFormat
@ -94,15 +95,15 @@ object GitInfo {
GIT_COMMIT_TIME = dateFormat.parse(json["git.commit.time"].unsafeCast()).time
GIT_COMMIT_USER_EMAIL = json["git.commit.user.email"].unsafeCast()
GIT_COMMIT_USER_NAME = json["git.commit.user.name"].unsafeCast()
GIT_DIRTY = json["git.dirty"]!!.booleanCast()
GIT_LOCAL_BRANCH_AHEAD = json["git.local.branch.ahead"].unsafeCast()
GIT_LOCAL_BRANCH_BEHIND = json["git.local.branch.behind"].unsafeCast()
GIT_DIRTY = json["git.dirty"].toBoolean()
GIT_LOCAL_BRANCH_AHEAD = json["git.local.branch.ahead"].toInt()
GIT_LOCAL_BRANCH_BEHIND = json["git.local.branch.behind"].toInt()
GIT_TAGS = if (json["git.tags"].unsafeCast<String>().isBlank()) {
0
} else {
json["git.tags"].unsafeCast()
}
GIT_TOTAL_COMMIT_COUNT = json["git.total.commit.count"].unsafeCast()
GIT_TOTAL_COMMIT_COUNT = json["git.total.commit.count"].toInt()
IS_INITIALIZED = true
} catch (exception: Throwable) {

View File

@ -298,7 +298,7 @@ object KUtil {
return JSONSerializer.ANY_ADAPTER.fromJson(this)!!
}
fun Any.toInt(): Int {
fun Any?.toInt(): Int {
return when (this) {
is Int -> this
is Number -> this.toInt()
@ -308,7 +308,7 @@ object KUtil {
}
}
fun Any.toDouble(): Double {
fun Any?.toDouble(): Double {
return when (this) {
is Double -> this
is Number -> this.toDouble()
@ -316,7 +316,7 @@ object KUtil {
}
}
fun Any.toFloat(): Float {
fun Any?.toFloat(): Float {
return when (this) {
is Float -> this
is Number -> this.toFloat()
@ -324,11 +324,13 @@ object KUtil {
}
}
fun Any.toBoolean(): Boolean {
fun Any?.toBoolean(): Boolean {
return when (this) {
is Boolean -> this
is String -> this.toBooleanStrict()
else -> TODO()
is Number -> this.toInt() == 0x01
"true" -> true
"false" -> false
else -> TODO("$this is not a boolean!")
}
}

View File

@ -52,15 +52,6 @@ object NBTUtil {
return null
}
fun Any.booleanCast(): Boolean {
if (this is Boolean) {
return this
}
if (this is Number) {
return this.toInt() == 0x01
}
TODO()
}
operator fun Map<String, Any>.get(key1: String, key2: String, vararg keys: String): Any? {
this[key1]?.let { return it }

View File

@ -45,9 +45,6 @@
<ColumnConstraints hgrow="NEVER" minWidth="10.0"/>
<ColumnConstraints hgrow="NEVER" minWidth="10.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
</rowConstraints>
<FontIcon fx:id="playIconFX" accessibleText="Play" iconLiteral="fas-play" iconSize="30" GridPane.columnIndex="1">
<GridPane.margin>
<Insets bottom="2.0" left="5.0" right="5.0" top="2.0"/>