From 7186a5e76b933659883951691a381cca5173eca1 Mon Sep 17 00:00:00 2001 From: "theo.renaud" Date: Wed, 29 Mar 2023 10:42:42 +0200 Subject: [PATCH] base persistance player --- .../com/example/shakecraft/data/BossDao.kt | 15 --------------- .../com/example/shakecraft/data/DataBase.kt | 8 ++++++++ .../com/example/shakecraft/data/PlayerDao.kt | 15 +++++++++++++++ .../java/com/example/shakecraft/data/Stub.kt | 2 +- .../java/com/example/shakecraft/model/Boss.kt | 7 ------- .../com/example/shakecraft/model/Player.kt | 18 ++++++++++++++++-- 6 files changed, 40 insertions(+), 25 deletions(-) delete mode 100644 ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/BossDao.kt create mode 100644 ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/DataBase.kt create mode 100644 ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/PlayerDao.kt diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/BossDao.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/BossDao.kt deleted file mode 100644 index f31f5c7..0000000 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/BossDao.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.example.shakecraft.data; -import androidx.room.Dao; -import androidx.room.Query; -import com.example.shakecraft.model.Boss; -import java.util.List; -import kotlinx.coroutines.flow.Flow; - -@Dao -interface BossDao { - @Query("SELECT * from Boss ") - fun getBoss(): Flow> - - @Query("SELECT * from Boss WHERE name = :name") - fun getBoss(name : String): Flow -} diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/DataBase.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/DataBase.kt new file mode 100644 index 0000000..3817a7b --- /dev/null +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/DataBase.kt @@ -0,0 +1,8 @@ +package com.example.shakecraft.data +import androidx.room.Database +import com.example.shakecraft.model.Player + +@Database(entities = [Player::class],version = 1) +abstract class DataBase { + +} \ No newline at end of file diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/PlayerDao.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/PlayerDao.kt new file mode 100644 index 0000000..6aeaf8a --- /dev/null +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/PlayerDao.kt @@ -0,0 +1,15 @@ +package com.example.shakecraft.data + +import androidx.room.Query +import com.example.shakecraft.model.Boss +import com.example.shakecraft.model.Player +import kotlinx.coroutines.flow.Flow +import java.util.List + +interface PlayerDao { + @Query("SELECT * from Player ") + fun getBoss(): Flow> + + @Query("SELECT * from Player WHERE name = :name") + fun getBoss(name : String): Flow +} \ No newline at end of file diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt index b8f301f..32eea51 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/data/Stub.kt @@ -8,7 +8,7 @@ import com.example.shakecraft.model.Player class Stub { fun load() : Player{ - val currentPlayer = Player("Winker",0) + val currentPlayer = Player() val items : MutableList = mutableListOf() items.add(Item(type = ITEMS.BEECH_LOG.itemtype, stack = 30)) items.add(Item(type = ITEMS.BRONZE_INGOT.itemtype, stack = 30)) diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Boss.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Boss.kt index ff609df..a49bb23 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Boss.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Boss.kt @@ -4,18 +4,11 @@ import androidx.room.ColumnInfo import androidx.room.Entity import androidx.room.PrimaryKey -@Entity(tableName="Boss") data class Boss ( - @PrimaryKey(autoGenerate = true) val id: Int = 0, - @ColumnInfo(name = "name") var name: String, - @ColumnInfo(name = "life") var life: Int, - @ColumnInfo(name = "maxlife") var maxlife: Int, - @ColumnInfo(name = "image") var image: Int, - @ColumnInfo(name = "xpreward") var xpReward: Int, val possibleLoot: List>, ){ diff --git a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt index 131979b..f18f9c0 100644 --- a/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt +++ b/ShakeAndCraft/app/src/main/java/com/example/shakecraft/model/Player.kt @@ -1,11 +1,25 @@ package com.example.shakecraft.model +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.PrimaryKey import com.example.shakecraft.R import com.example.shakecraft.model.Generator.Companion.generateTreasure -class Player(val pseudo: String, var xp: Int = 0) { - var level: Int = 1 +@Entity(tableName="Player") +class Player() { + @PrimaryKey(autoGenerate = true) + val id : Int = 0 + @ColumnInfo(name = "name") + val pseudo: String = "Unknow" + @ColumnInfo(name = "level") + var level: Int = 0 + @ColumnInfo(name = "xp") + var xp: Int = 0 + @ColumnInfo(name = "image") val image: Int = R.drawable.player_image + @ColumnInfo(index = true) var items: MutableList = mutableListOf() var rank: String = "Beginner"