diff --git a/src/main/java/de/bixilon/minosoft/data/assets/MultiAssetsManager.kt b/src/main/java/de/bixilon/minosoft/data/assets/MultiAssetsManager.kt index 726537e0a..0a9168ffa 100644 --- a/src/main/java/de/bixilon/minosoft/data/assets/MultiAssetsManager.kt +++ b/src/main/java/de/bixilon/minosoft/data/assets/MultiAssetsManager.kt @@ -37,7 +37,7 @@ class MultiAssetsManager( throw IllegalArgumentException("Can not add ourself!") } for (namespace in assetsManager.namespaces) { - this.assetsManagers.getOrPut(namespace, { mutableListOf() }).add(assetsManager) + this.assetsManagers.getOrPut(namespace) { mutableListOf() }.add(assetsManager) } } diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt index 07c48ff68..90d787c2c 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/Entity.kt @@ -136,9 +136,9 @@ abstract class Entity( val isSilent: Boolean get() = entityMetaData.sets.getBoolean(EntityMetaDataFields.ENTITY_SILENT) - @EntityMetaDataFunction(name = "Has no gravity") - val hasNoGravity: Boolean - get() = entityMetaData.sets.getBoolean(EntityMetaDataFields.ENTITY_NO_GRAVITY) + @EntityMetaDataFunction(name = "Has gravity") + open val hasGravity: Boolean + get() = !entityMetaData.sets.getBoolean(EntityMetaDataFields.ENTITY_NO_GRAVITY) @get:EntityMetaDataFunction(name = "Pose") val pose: Poses? @@ -275,7 +275,7 @@ abstract class Entity( val newVelocity = Vec3(velocity) val oldVelocity = Vec3(velocity) val deltaTime = deltaMillis.toFloat() / 1000.0f - if (! hasNoGravity && !isFlying) { + if (hasGravity && !isFlying) { newVelocity.y -= ProtocolDefinition.GRAVITY * deltaTime } newVelocity *= 0.25f.pow(deltaTime) // apply diff --git a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.kt b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.kt index ba121f245..acb5fe348 100644 --- a/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.kt +++ b/src/main/java/de/bixilon/minosoft/data/entities/entities/player/PlayerEntity.kt @@ -48,6 +48,14 @@ class PlayerEntity( override val hasCollisions: Boolean get() = gamemode != Gamemodes.SPECTATOR + override val hasGravity: Boolean + get() { + if (gamemode == Gamemodes.SPECTATOR) { + return false + } + return super.hasGravity + } + public override val isFlying: Boolean get() = !hasCollisions || gamemode == Gamemodes.CREATIVE