Fixed check of free slots in AbstractContainer.

Adjusted kettle boiling queue strength to soft.
This commit is contained in:
Syndromeramo 2025-07-28 10:32:29 -05:00
parent a5fae86f52
commit 2db794a9d0
2 changed files with 11 additions and 5 deletions

View file

@ -1,6 +1,7 @@
package content.global.skill.construction.decoration.kitchen package content.global.skill.construction.decoration.kitchen
import core.api.addItem import core.api.addItem
import core.api.freeSlots
import core.api.hasSpaceFor import core.api.hasSpaceFor
import core.api.sendDialogue import core.api.sendDialogue
import core.game.dialogue.DialogueFile import core.game.dialogue.DialogueFile
@ -46,7 +47,7 @@ abstract class AbstractContainer(containerId: Int, containers: Map<Int,List<Pair
override fun handle(componentID: Int, buttonID: Int) { override fun handle(componentID: Int, buttonID: Int) {
if (player!!.inventory.freeSlot() < 1) { if (freeSlots(player!!) == 0) {
sendDialogue(player!!, "You need at least one free inventory space to take from the $containerName.").also { stage = END_DIALOGUE } sendDialogue(player!!, "You need at least one free inventory space to take from the $containerName.").also { stage = END_DIALOGUE }
return return
} }

View file

@ -47,10 +47,11 @@ class StoveInteraction : InteractionListener {
if (removeItem(player, used)){ if (removeItem(player, used)){
replaceScenery(with as Scenery, in_progress_stoves[idx], -1) replaceScenery(with as Scenery, in_progress_stoves[idx], -1)
sendMessage(player, "You place the kettle over the fire.") sendMessage(player, "You place the kettle over the fire.")
queueScript(player, secondsToTicks(10), QueueStrength.STRONG){ _ -> setAttribute(player, kettleBoiled, 1)
queueScript(player, secondsToTicks(10), QueueStrength.SOFT){ _ ->
sendMessage(player, "The kettle boils.") sendMessage(player, "The kettle boils.")
// Of course they changed how these items work so we need 2 different cases // Of course they changed how these items work so we need 2 different cases
setAttribute(player, kettleBoiled, true) setAttribute(player, kettleBoiled, 2)
if (with.id in intArrayOf(SceneryConst.FIREPIT_WITH_HOOK_13529, SceneryConst.FIREPIT_WITH_POT_13531)) if (with.id in intArrayOf(SceneryConst.FIREPIT_WITH_HOOK_13529, SceneryConst.FIREPIT_WITH_POT_13531))
return@queueScript stopExecuting(player) return@queueScript stopExecuting(player)
else{ else{
@ -64,13 +65,17 @@ class StoveInteraction : InteractionListener {
on(stoves_with_kettle, SCENERY, "take-kettle"){ player, node -> on(stoves_with_kettle, SCENERY, "take-kettle"){ player, node ->
if (!getAttribute(player, kettleBoiled, false)){ if (getAttribute(player, kettleBoiled, 0) == 0){
sendMessage(player, "This is not your kettle.") //inauthentic message
return@on false
}
else if (getAttribute(player, kettleBoiled, 0) == 1){
sendMessage(player, "The kettle has not boiled yet.") sendMessage(player, "The kettle has not boiled yet.")
return@on false return@on false
} }
if(addItem(player, Items.HOT_KETTLE_7691)){ if(addItem(player, Items.HOT_KETTLE_7691)){
replaceScenery(node as Scenery, valid_stoves[stoves_with_kettle.indexOf(node.id)], -1) replaceScenery(node as Scenery, valid_stoves[stoves_with_kettle.indexOf(node.id)], -1)
setAttribute(player, kettleBoiled, false) setAttribute(player, kettleBoiled, 0)
return@on true return@on true
} }
else { else {