石磨掉落
This commit is contained in:
1 parent
5841e7eea3
commit
6caaf09632
5 files changed
+123
-90
No files matched your search
+26
@@ -528,6 +528,32 @@ class ChujuService(BlueFoxServerSystem):
|
||||
# 五、石磨(加黄豆 -> 研磨旋转 -> 玻璃罐取油罐)
|
||||
# ============================================================================
|
||||
|
||||
def handleDestroy(self, args):
|
||||
"""
|
||||
石磨被左键打碎:
|
||||
- 已放入黄豆(rtdd_mill>=0)的 → 额外掉落16个黄豆(石磨本体仍正常碎裂掉落)
|
||||
- 空石磨 → 不掉黄豆,交还默认破坏
|
||||
返回 False:不取消默认破坏(保证石磨方块本身正常掉落)。
|
||||
"""
|
||||
blockName = args.get("fullName") or args.get("blockName")
|
||||
if blockName != "rtdd:stonemill":
|
||||
return False
|
||||
playerId = args.get("playerId")
|
||||
x, y, z = args.get("x"), args.get("y"), args.get("z")
|
||||
dim = comp.CreateDimension(playerId).GetEntityDimensionId()
|
||||
# 读取研磨进度;None 或 <0(已清豆/-1) = 空石磨
|
||||
prog = self._readMill((x, y, z), dim)
|
||||
if prog is None or prog < 0:
|
||||
return False
|
||||
# 有黄豆:额外掉落16个(石磨本体由默认破坏掉落)
|
||||
try:
|
||||
self.CreateEngineItemEntity(
|
||||
{"itemName": SOYBEAN_ITEM, "count": SOYBEAN_COUNT, "auxValue": 0},
|
||||
dim, (x, y + 0.5, z))
|
||||
except Exception:
|
||||
pass
|
||||
return False
|
||||
|
||||
def _handleStonemill(self, playerId, pos, dim, itemDict, itemName, key):
|
||||
prog = self._readMill(pos, dim) # None=空, 0~3=研磨中, 4=完成
|
||||
|
||||
|
||||
+9
-2
@@ -156,13 +156,20 @@ class BarbecueService(BlueFoxServerSystem):
|
||||
"""
|
||||
在烧烤字典中查找匹配规则:
|
||||
1. 先精确匹配 (方块名, 物品名)
|
||||
2. 没找到再匹配 (方块名, None) —— 空手也能触发的规则(烤串/取下等)
|
||||
2. 空手(None)规则(烤串/取下成品)【只允许真·空手触发】。手持任何物品
|
||||
(包括方块物品)时【不】回退到空手分支,否则手持方块右键烤串/成品
|
||||
会误触"翻烤/取下"并取消放置。
|
||||
"""
|
||||
itemName = itemDict.get("newItemName") if itemDict else None
|
||||
if itemName == "minecraft:air":
|
||||
itemName = None # 空手(主手是空气)统一归为 None
|
||||
recipe = self.barbecueRecipes.get((blockName, itemName))
|
||||
if recipe:
|
||||
return recipe
|
||||
return self.barbecueRecipes.get((blockName, None))
|
||||
# 只有真·空手时才查空手规则;手持方块物品时返回 None(交还默认放置)
|
||||
if itemName is None:
|
||||
return self.barbecueRecipes.get((blockName, None))
|
||||
return None
|
||||
|
||||
# ============================================================================
|
||||
# 三、计时自动启动(上杆/放置计时源方块后,判定下方营火并启动烤制)
|
||||
|
||||
Reference in new issue
Block a user