Add silouette support inside the equipment page.
This commit is contained in:
parent
30a68a21d6
commit
99d5076168
6 changed files with 26 additions and 6 deletions
|
|
@ -1,6 +1,7 @@
|
|||
package com.pixelized.rplexicon.model
|
||||
|
||||
data class Equipment(
|
||||
var silhouette: String? = null,
|
||||
val head: String? = null,
|
||||
val face: String? = null,
|
||||
val neck: String? = null,
|
||||
|
|
@ -17,6 +18,7 @@ data class Equipment(
|
|||
val offHand: String? = null,
|
||||
) {
|
||||
class Builder(
|
||||
var background: String? = null,
|
||||
var head: String? = null,
|
||||
var face: String? = null,
|
||||
var neck: String? = null,
|
||||
|
|
@ -33,6 +35,7 @@ data class Equipment(
|
|||
var offHand: String? = null,
|
||||
) {
|
||||
fun build(): Equipment = Equipment(
|
||||
silhouette = background,
|
||||
head = head,
|
||||
face = face,
|
||||
neck = neck,
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ class EquipmentParser @Inject constructor() {
|
|||
val character = characters[column]
|
||||
equipments.getEquipment(name = character).let {
|
||||
when (row[0]) {
|
||||
BACKGROUND -> it.background = item.toItem()
|
||||
HEAD -> it.head = item.toItem()
|
||||
FACE -> it.face = item.toItem()
|
||||
NECK -> it.neck = item.toItem()
|
||||
|
|
@ -51,6 +52,7 @@ class EquipmentParser @Inject constructor() {
|
|||
this.getOrPut(name) { Equipment.Builder() }
|
||||
|
||||
companion object {
|
||||
private const val BACKGROUND = "Silhouette"
|
||||
private const val HEAD = "Tête"
|
||||
private const val FACE = "Visage"
|
||||
private const val NECK = "Gorge"
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import androidx.compose.runtime.remember
|
|||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.BlurredEdgeTreatment
|
||||
import androidx.compose.ui.draw.blur
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
|
@ -74,7 +75,10 @@ fun BlurredOverlayHost(
|
|||
label = "RollOverlayHostBlurAnimation",
|
||||
)
|
||||
Box(
|
||||
modifier = Modifier.blur(radius = blurs.value),
|
||||
modifier = Modifier.blur(
|
||||
radius = blurs.value,
|
||||
edgeTreatment = BlurredEdgeTreatment.Unbounded,
|
||||
),
|
||||
content = { content() },
|
||||
)
|
||||
AnimatedVisibility(
|
||||
|
|
|
|||
|
|
@ -15,15 +15,19 @@ import androidx.compose.foundation.layout.padding
|
|||
import androidx.compose.foundation.layout.size
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.LocalContentColor
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Surface
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.ColorFilter
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
import androidx.compose.ui.platform.LocalLayoutDirection
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
|
|
@ -37,10 +41,11 @@ import com.pixelized.rplexicon.R
|
|||
import com.pixelized.rplexicon.ui.composable.BackgroundImage
|
||||
import com.pixelized.rplexicon.ui.composable.rememberBackgroundGradient
|
||||
import com.pixelized.rplexicon.ui.theme.LexiconTheme
|
||||
import com.pixelized.rplexicon.utilitary.extentions.uri
|
||||
|
||||
@Stable
|
||||
data class EquipmentItemUio(
|
||||
@DrawableRes val silhouette: Int,
|
||||
val silhouette: String? = null,
|
||||
val head: String? = null,
|
||||
val face: String? = null,
|
||||
val shoulder: String? = null,
|
||||
|
|
@ -63,11 +68,15 @@ fun EquipmentItem(
|
|||
equipments: EquipmentItemUio,
|
||||
onClick: (String) -> Unit,
|
||||
) {
|
||||
val contentColor = LocalContentColor.current
|
||||
|
||||
Box(modifier = modifier) {
|
||||
BackgroundImage(
|
||||
modifier = Modifier.matchParentSize(),
|
||||
contentScale = ContentScale.FillHeight,
|
||||
background = rememberBackgroundGradient(from = 0.75f, to = 0.95f),
|
||||
painter = painterResource(id = R.drawable.ic_woman_archer_256),
|
||||
colorFilter = remember { ColorFilter.tint(color = contentColor) },
|
||||
model = equipments.silhouette,
|
||||
)
|
||||
|
||||
Column {
|
||||
|
|
@ -277,7 +286,7 @@ private fun InventoryItemPreview() {
|
|||
EquipmentItem(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
equipments = EquipmentItemUio(
|
||||
silhouette = R.drawable.ic_woman_archer_256,
|
||||
silhouette = R.drawable.ic_woman_archer_256.uri,
|
||||
shoulder = "Cloak of Protection",
|
||||
mainHand = "Battleaxe",
|
||||
offHand = "Shield",
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import androidx.compose.runtime.mutableStateOf
|
|||
import androidx.compose.runtime.remember
|
||||
import com.pixelized.rplexicon.R
|
||||
import com.pixelized.rplexicon.ui.screens.character.composable.actions.EquipmentItemUio
|
||||
import com.pixelized.rplexicon.utilitary.extentions.uri
|
||||
|
||||
@Composable
|
||||
@Stable
|
||||
|
|
@ -14,7 +15,7 @@ fun rememberEquipmentState(): State<EquipmentItemUio> {
|
|||
return remember {
|
||||
mutableStateOf(
|
||||
EquipmentItemUio(
|
||||
silhouette = R.drawable.ic_woman_archer_256,
|
||||
silhouette = R.drawable.ic_woman_archer_256.uri,
|
||||
shoulder = "Cloak of Protection",
|
||||
mainHand = "Battleaxe",
|
||||
offHand = "Shield",
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import com.pixelized.rplexicon.ui.screens.character.composable.actions.Inventory
|
|||
import com.pixelized.rplexicon.ui.screens.character.factory.ItemUioFactory
|
||||
import com.pixelized.rplexicon.ui.screens.character.pages.actions.SkillDetailUio
|
||||
import com.pixelized.rplexicon.utilitary.extentions.context
|
||||
import com.pixelized.rplexicon.utilitary.extentions.uri
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
|
|
@ -61,7 +62,7 @@ class InventoryViewModel @Inject constructor(
|
|||
equipmentRepository.data.collect {
|
||||
val equipments = it[character]?.let { data ->
|
||||
EquipmentItemUio(
|
||||
silhouette = R.drawable.ic_woman_archer_256,
|
||||
silhouette = data.silhouette ?: R.drawable.ic_woman_archer_256.uri,
|
||||
head = data.head,
|
||||
face = data.face,
|
||||
shoulder = data.shoulder,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue