entity: make hotbox color open

This commit is contained in:
Bixilon 2022-05-10 18:05:05 +02:00
parent 1bcb48aa44
commit d554c919a3
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
2 changed files with 24 additions and 19 deletions

View File

@ -29,7 +29,6 @@ import de.bixilon.minosoft.data.entities.Poses
import de.bixilon.minosoft.data.entities.StatusEffectInstance import de.bixilon.minosoft.data.entities.StatusEffectInstance
import de.bixilon.minosoft.data.entities.data.EntityData import de.bixilon.minosoft.data.entities.data.EntityData
import de.bixilon.minosoft.data.entities.data.EntityDataField import de.bixilon.minosoft.data.entities.data.EntityDataField
import de.bixilon.minosoft.data.entities.entities.player.PlayerEntity
import de.bixilon.minosoft.data.entities.entities.vehicle.boat.Boat import de.bixilon.minosoft.data.entities.entities.vehicle.boat.Boat
import de.bixilon.minosoft.data.physics.PhysicsEntity import de.bixilon.minosoft.data.physics.PhysicsEntity
import de.bixilon.minosoft.data.player.LocalPlayerEntity import de.bixilon.minosoft.data.player.LocalPlayerEntity
@ -45,7 +44,6 @@ import de.bixilon.minosoft.data.registries.entities.EntityType
import de.bixilon.minosoft.data.registries.fluid.FlowableFluid import de.bixilon.minosoft.data.registries.fluid.FlowableFluid
import de.bixilon.minosoft.data.registries.fluid.Fluid import de.bixilon.minosoft.data.registries.fluid.Fluid
import de.bixilon.minosoft.data.registries.items.armor.ArmorItem import de.bixilon.minosoft.data.registries.items.armor.ArmorItem
import de.bixilon.minosoft.data.registries.items.armor.DyeableArmorItem
import de.bixilon.minosoft.data.registries.particle.data.BlockParticleData import de.bixilon.minosoft.data.registries.particle.data.BlockParticleData
import de.bixilon.minosoft.data.text.ChatColors import de.bixilon.minosoft.data.text.ChatColors
import de.bixilon.minosoft.data.text.ChatComponent import de.bixilon.minosoft.data.text.ChatComponent
@ -289,23 +287,10 @@ abstract class Entity(
val cameraAABB: AABB val cameraAABB: AABB
get() = defaultAABB + cameraPosition get() = defaultAABB + cameraPosition
val hitBoxColor: RGBColor open val hitBoxColor: RGBColor
get() { get() = when {
return when { isInvisible -> ChatColors.GREEN
isInvisible -> ChatColors.GREEN else -> ChatColors.WHITE
this is PlayerEntity -> {
val chestPlate = equipment[EquipmentSlots.CHEST]
if (chestPlate != null && chestPlate.item.item is DyeableArmorItem) {
chestPlate._display?.dyeColor?.let { return it }
}
val formattingCode = tabListItem.team?.formattingCode
if (formattingCode is RGBColor) {
return formattingCode
}
return ChatColors.RED
}
else -> ChatColors.WHITE
}
} }

View File

@ -16,6 +16,7 @@ import de.bixilon.kotlinglm.vec2.Vec2
import de.bixilon.kotlinglm.vec3.Vec3d import de.bixilon.kotlinglm.vec3.Vec3d
import de.bixilon.kutil.json.JsonObject import de.bixilon.kutil.json.JsonObject
import de.bixilon.minosoft.data.abilities.Gamemodes import de.bixilon.minosoft.data.abilities.Gamemodes
import de.bixilon.minosoft.data.container.InventorySlots
import de.bixilon.minosoft.data.entities.EntityRotation import de.bixilon.minosoft.data.entities.EntityRotation
import de.bixilon.minosoft.data.entities.GlobalPosition import de.bixilon.minosoft.data.entities.GlobalPosition
import de.bixilon.minosoft.data.entities.Poses import de.bixilon.minosoft.data.entities.Poses
@ -27,6 +28,9 @@ import de.bixilon.minosoft.data.player.Arms
import de.bixilon.minosoft.data.player.properties.PlayerProperties import de.bixilon.minosoft.data.player.properties.PlayerProperties
import de.bixilon.minosoft.data.player.tab.TabListItem import de.bixilon.minosoft.data.player.tab.TabListItem
import de.bixilon.minosoft.data.registries.entities.EntityType import de.bixilon.minosoft.data.registries.entities.EntityType
import de.bixilon.minosoft.data.registries.items.armor.DyeableArmorItem
import de.bixilon.minosoft.data.text.ChatColors
import de.bixilon.minosoft.data.text.RGBColor
import de.bixilon.minosoft.data.world.World import de.bixilon.minosoft.data.world.World
import de.bixilon.minosoft.gui.rendering.util.VecUtil.clamp import de.bixilon.minosoft.gui.rendering.util.VecUtil.clamp
import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY import de.bixilon.minosoft.gui.rendering.util.vec.vec3.Vec3dUtil.EMPTY
@ -97,6 +101,22 @@ abstract class PlayerEntity(
} }
} }
override val hitBoxColor: RGBColor
get() {
if (this.isInvisible) {
return ChatColors.GREEN
}
val chestPlate = equipment[InventorySlots.EquipmentSlots.CHEST]
if (chestPlate != null && chestPlate.item.item is DyeableArmorItem) {
chestPlate._display?.dyeColor?.let { return it }
}
val formattingCode = tabListItem.team?.formattingCode
if (formattingCode is RGBColor) {
return formattingCode
}
return ChatColors.RED
}
companion object { companion object {
private val DIMENSIONS: Map<Poses, Vec2> = mapOf( private val DIMENSIONS: Map<Poses, Vec2> = mapOf(
Poses.STANDING to Vec2(0.6f, 1.8f), Poses.STANDING to Vec2(0.6f, 1.8f),