DEADSOFTWARE

Add chest
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / ui / windows / GameWindowsManager.kt
1 package ru.deadsoftware.cavedroid.game.ui.windows
3 import ru.deadsoftware.cavedroid.game.GameScope
4 import ru.deadsoftware.cavedroid.game.GameUiWindow
5 import ru.deadsoftware.cavedroid.game.mobs.MobsController
6 import ru.deadsoftware.cavedroid.game.objects.container.Chest
7 import ru.deadsoftware.cavedroid.game.objects.drop.DropController
8 import ru.deadsoftware.cavedroid.game.objects.container.Furnace
9 import ru.deadsoftware.cavedroid.game.ui.TooltipManager
10 import ru.deadsoftware.cavedroid.game.ui.windows.inventory.*
11 import javax.inject.Inject
13 @GameScope
14 class GameWindowsManager @Inject constructor(
15 private val tooltipManager: TooltipManager,
16 private val mobsController: MobsController,
17 private val dropController: DropController,
18 ) {
20 var creativeScrollAmount = 0
21 var isDragging = false
23 var currentWindow: AbstractInventoryWindow? = null
25 @JvmName("getCurrentWindowType")
26 fun getCurrentWindow(): GameUiWindow {
27 return currentWindow?.type ?: GameUiWindow.NONE
28 }
30 fun openInventory() {
31 if (mobsController.player.gameMode == 1) {
32 currentWindow = CreativeInventoryWindow()
33 } else {
34 currentWindow = SurvivalInventoryWindow()
35 }
36 }
38 fun openFurnace(furnace: Furnace) {
39 currentWindow = FurnaceInventoryWindow(furnace)
40 }
42 fun openChest(chest: Chest) {
43 currentWindow = ChestInventoryWindow(chest)
44 }
46 fun openCrafting() {
47 currentWindow = CraftingInventoryWindow()
48 }
50 fun closeWindow() {
51 (currentWindow as? SurvivalInventoryWindow)?.let { window ->
52 window.craftingItems.forEach { item ->
53 item?.item?.let {
54 dropController.addDrop(mobsController.player.x, mobsController.player.y, it, item.amount)
55 }
56 }
57 }
59 (currentWindow as? CraftingInventoryWindow)?.let { window ->
60 window.craftingItems.forEach { item ->
61 item?.item?.let {
62 dropController.addDrop(mobsController.player.x, mobsController.player.y, it, item.amount)
63 }
64 }
65 }
67 currentWindow = null
68 tooltipManager.showMouseTooltip("")
69 }
71 }