RimWorld
617 次評價
儲存區遲滯演算法〔智慧補貨〕
16
12
2
7
2
2
3
3
   
獎勵
加入最愛
已加入最愛
移除最愛
Mod, 1.5, 1.6
檔案大小
發佈於
更新時間
551.468 KB
2024 年 6 月 22 日 下午 9:00
7 月 15 日 下午 1:26
10 項更新註記 (檢視)

訂閱以下載
儲存區遲滯演算法〔智慧補貨〕

在 pureMJ 的 1 個收藏中
Common Sense +
5 個項目
描述
儲存區新增了「智慧補貨」(遲滯演算法)功能。
低於設定值則補貨,高於另一個設定值則停止。

這可以有效防止「單送一份飯」這種蠢事,讓儲存更平衡,讓搬運自適應。

支援儲存區域,貨架,冰箱以及一切儲存類建​​築,也支援聯結在一起的多個儲存建築。
支持營養機進料口!

有自動演算法和手動切換功能。



背景知識
在遊戲裡我們有儲存區域,貨架,冰箱(mod裡的)等東西,統稱為儲存區。小人會自己搬到儲存區。

老玩家常用的策略:在餐桌/工作室/廚房等地方建造一些高優先級的貨架/冰箱/小型存儲區域,這樣小人幹活/吃飯時就可以隨手從旁邊拿材料,而不用跑很遠去通用儲存區拿貨。

這個辦法好是好,但是我們會發現當一個小人這麼做時,很有可能有另一個小人穿越整個地圖跑到通用存儲區拿單單一份飯,然後再跑很遠到剛才有人吃飯的桌子那裡把那一份飯放進冰箱。

這也太蠢了,我看著想死。

這個Mod新加
遲滯, 一個神奇的字解決問題!

怎麼做?裝上這個mod,對你喜歡的儲存區開啟「智慧補貨」功能,一切OK了!

詳細解釋
我們會設定一個目標使用區間。
小人把貨架上的材料慢慢使用消耗之後,這個貨架的使用率會降到區間裡的最小值以下,此時補貨就被自動開啟了。
小人可以一次搬運比較多的貨來補貨。 (尤其是如果你有Pickup And Haul Mod時那智慧補貨就非常必要)
補貨完成時這個貨架的使用率會提升到區間的最大值,此時補貨就又被暫停了。
之後再降到最小值以下,再開啟,…循環

這個過程被稱為「遲滯」。 原理跟各種工作台裡做東西設定成的「一直做直接到有X個」並且"暫停等個數低於Y」是一樣的。
這個目標區間我們叫它“遲滯區間”

常用情形
遲滯區間的不同設定能產生不同的工作模式。
下面是一些例子。

6-9 智慧補貨模式
經典的[60%, 95%). (這也是預設值。可以在mod設定裡改這個預設值)
這個模式下你的儲存區會被一些補貨到95%以上一點,然後補貨就暫停了,直到被用到低於60%.
這兩個數值對常用的貨架冰箱來說正好。再也不用看小人送單單一份飯了。

補貨一次模式
遲滯區間[0%, x%).
儲存區會被補貨到x%,然後就停了。之後不會再自動開始補貨,但你可以點一下手動按鈕則再次開始補貨。

無遲滯模式
遲滯區間[x%, x%).
儲存區會補貨到x%, 然後只要用掉一點就又會再補。
這個模式跟SatisfiedStorage mod很類似,不過本mod會完整的計算一個存儲區的所有格子,並且支持聯結在一起的存儲.

監控模式
遲滯區間[100%, 100%). ( 也可以用[95%, 95%) )
即使你不想用智慧補貨功能,打開它也是有好處的。
在這個模式下,小人的補貨行為類似你不用本mod,但是本mod:
1. 能提升大儲存區的後期遊戲效能
2. 能讓你輕鬆地在儲存介面上看見你的儲存區使用比例。

更多玩法等你來發現。

性能
經過後期遊戲,幾萬儲存空間的測試,本mod無負面效能影響。

實際上,靠著快取演算法,本mod反而提升了遊戲效能。原理是在本體遊戲裡如果你的大儲存區快滿了,小人搬東西時會一個一個格子試(後台計算),並且是每次都算。
而本mod會直接告訴遊戲「不用試了,補貨已經停了」。

相容
相容:Deep Storage, Pickup and Haul, While You Are Nearby, Rim Fridge 等等.
也兼容:Adaptive Storage Framework, RimKeeper - Storage & Filters Helper 等等。

F.A.Q
會影響遊戲運行速度嗎?
不會。事實上本mod能提升遊戲運行速度。

能隨便加入存檔或移除嗎?
可以

為什麼我的小人會往儲存區送貨送到高出設定的上限?
這個是正常的。 超量送貨效果是設計好的。

詳細解釋:
設定上限是為了兩個目標:
  1. 使用率低於上限時,如果是允許送貨狀態,則不會停止。
  2. 使用率達上限時,送貨自動停止。

注意,第一個目標是嚴格的.沒到上限補貨一定不會停。
但是第二目標不是。當上限達到的一瞬間,遊戲裡會花一點時間,最多一秒左右(可以在Mod設定裡設定),然後才會停補貨。這個是為了遊戲運作效率考慮。
同時,考慮到小人的工作效率,本Mod並不會強制停止已經在送貨的小人。他們會送完這最後一次再停止。
(如果你仔細考慮一下,你會發現強制停止沒有意義。其相當於浪費了上限之上的存儲空間,也浪費了小人最後一次送貨到一半的勞力付出)


更新
v0.2.0 支持 1.6.
v0.1.6 修正了一個小BUG:藍圖狀態的置物架無法連結.
v0.1.5 修正了一個小BUG:Mod設定只在DEV模式下才會顯示.
v0.1.4 緊急修復了一個遊戲無法讀取的BUG.
v0.1.3 修正了一個小BUG:營養機進料口的填充工作原來會忽略智慧補貨設定。
v0.1.2 改進了UI的邏輯,現在跟更多的mod相容了。
v0.1.1 修正了一個小BUG:當本Mod加入存檔時,舊的儲存區無法開啟遲滯功能。
v0.1.0 初版

感謝與連結
非常感謝在Rimworld Discord 伺服器裡#mod-development頻道的成員!

如果你喜歡這個Mod, 請關注我的其它Mod
熱門討論 檢視全部(1)
0
2024 年 6 月 26 日 上午 8:45
Bug Report
pureMJ
246 則留言
Barblegarb 8 月 21 日 上午 10:04 
It's infuriating that they implemented hysteresis on production bills, so they are obviously aware of the necessity, but have done nothing to add it to storage functionality.
Glothia 8 月 19 日 上午 9:41 
@baka1125 太感谢了,我找了好久没找到原因,没想到是 Vehicle Map Framework
Hattsworth 8 月 17 日 下午 7:11 
Question: does this affect all hauling or only hauling from other storage units. My use case is that I want to have a primary storage location, and an overflow one, where they will only take to overflow once the main is full (easily done with priority of course). Ideally then, this mod just prevents them from hauling from overflow every time something is taken out of main storage.
大番薯之怒 8 月 9 日 上午 4:13 
我居然现在才发现这个神级MOD~
躲进温柔的梦 8 月 9 日 上午 1:18 
点击物品架没有相关设置是不是和哪个冲突了
碳烤鱿鱼丝 8 月 7 日 上午 3:36 
太棒了,强迫症狂喜
Soup_UK 8 月 6 日 下午 12:00 
@DawnsGlow - StackGap, a mod I've been using for years to set/configure stack limits - has the same issue regarding settings resetting for storage on GravShips at launch. I've not found a stack limiting mod that works reliably with GravShips yet.
DawnsGlow 8 月 4 日 下午 11:56 
@PureMJ : The storage settings turns itself off after gravship launch.

Will you accept a patch, which I might create, to fix the odyssey gravship ? It would be helpful if you release the source but I can create the patch using ilspy.

A similar error also happens with Farming Hysteresis. You can check the comment of tapuesch and the response of author.
PsychedellicToxin 8 月 4 日 上午 11:56 
@pureMJ all I wanted was a single storage shelf frequently resupplied with a minor amount of meals at all time so that my minions don't have to carry and feed a malnutritioned prisoner in bed. Fill it to the brim, and the food will spoil. They're prisoners not guests, I'm not giving them 30 meals to use one or two a day.
pureMJ  [作者] 8 月 2 日 下午 4:18 
@Psychedellictoxin
You can raise the thresholds, or simply build one more storage.
This mod only turns it off when it's "kind of full". You probably have too many prisoners hence your meal storage depleted from "kind of full" to empty too fast. If that is the case, having more storage is the solution.