破坏掉落存储物品 (keyong)

This commit is contained in:
wenhe committed 2026-09-03 17:07:41 +08:00
1 parent 0cb1da680d
commit 620500ab45
11 files changed
+373 -101

No files matched your search

+21 -3
View File
@@ -209,9 +209,21 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher)
- 取盘子: 空手右键逐个取回 [已实现]
四、书柜 (bookcase 系列, 后放先取, 至多13本)
- 放书: 手持书/附魔书右键逐个放入, 消耗1本, stack记录完整物品信息(附魔不丢,
字段 rtdd_swt=stack, 退出重进不丢) [已实现]
- 取书: 空手右键后放先取(LIFO) [已实现]
- 放书: 手持书/附魔书右键逐个放入, 消耗1本; 堆栈"替换方块前从旧方块读出→替换后写回新方块",
多本连续放入不会丢 [已实现]
- 取书: 空手右键后放先取(LIFO), 取回的书以掉落物形式掉在书柜前(不进背包) [已实现]
- 附魔书: 附魔以扁平ench字段([[附魔ID,等级],...])存方块实体(rtdd_swt=stack/rtdd_sws),
取回时重建userData; 不存含__type__/__value__的userData(引擎写不进方块实体),
退出重进词条不丢(掉落保护仍是掉落保护) [已实现]
- 健壮性: 方块实体里损坏/为None的旧堆栈数据按空堆栈处理, 不再报错(TypeError) [已实现]
四b、药水架 (lotion 系列, 后放先取, 至多3瓶)
- 从药物系统(xy_medicine)移至家具分类(xy_furniture) [已实现]
- 放药水: 手持任意药水(普通/喷溅/滞留)右键逐个放入, 消耗1瓶, 记录药水名+aux(aux决定效果) [已实现]
- 取药水: 空手右键后放先取(LIFO), 取回的药水以掉落物形式掉在架前(原样返还, 含aux效果) [已实现]
- 满架: 手持药水右键三瓶满的药水架 → 提示"已满", 拦截默认行为(防止误喝药水) [已实现]
- 方块链: 药水架_1(空)=lotion_0, 药水架_2(一瓶)=lotion_1, 药水架_3(两瓶)=lotion_2,
药水架_4(三瓶)=lotion_3 [已实现]
五、厨具架 (kitchenwarerack 系列, 组合顺序无关, 后放先取, 至多2件)
- 放入: 手持 锅铲/锅勺/菜刀/炒锅 右键空架/未满架 → 消耗1个 → 按组合成型 [已实现]
@@ -230,3 +242,9 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher)
- 扔垃圾: 打开时手持任意物品右键 → 变为 有垃圾 状态 + 清空主手物品 [已实现]
- 关闭: 右键(空手/手持均可) 打开/有垃圾 → 关闭桶盖 [已实现]
八、左键破坏存物方块掉落 (书柜/药水架/厨具架)
- 存了东西的家具方块被左键打碎时: 取消默认掉落 → 掉 空方块本体(保留朝向) + 全部存储物品 [已实现]
(书柜掉空书柜bookcase+里面的书; 药水架掉空药水架lotion_0+里面的药水; 厨具架掉空架+厨具)
- 附魔书/药水效果在掉落物中保留(取回时重建, 词条/效果不丢) [已实现]
- 与售卖盒区分: 售卖盒破坏重放仍可右键取物; 书柜这类破坏后记录随方块消失, 重放取不到 [已实现]