增加堆叠限制和排序

This commit is contained in:
kercylan98
2023-05-10 15:30:59 +08:00
parent b8f625d7c8
commit 02e4cad427
4 changed files with 90 additions and 16 deletions
+17 -1
View File
@@ -1,6 +1,9 @@
package builtin
import "github.com/kercylan98/minotaur/game"
import (
"github.com/kercylan98/minotaur/game"
"github.com/kercylan98/minotaur/utils/huge"
)
type ItemContainerOption[ItemID comparable, Item game.Item[ItemID]] func(container *ItemContainer[ItemID, Item])
@@ -13,3 +16,16 @@ func WithItemContainerSizeLimit[ItemID comparable, Item game.Item[ItemID]](sizeL
container.sizeLimit = sizeLimit
}
}
// WithItemContainerStackLimit 通过设置特定物品堆叠数量创建容器
func WithItemContainerStackLimit[ItemID comparable, Item game.Item[ItemID]](id ItemID, stackLimit *huge.Int) ItemContainerOption[ItemID, Item] {
return func(container *ItemContainer[ItemID, Item]) {
if stackLimit.LessThanOrEqualTo(huge.IntZero) {
return
}
if container.stackLimit == nil {
container.stackLimit = map[ItemID]*huge.Int{}
}
container.stackLimit[id] = stackLimit
}
}