右键 改3
This commit is contained in:
1 parent
45d328b339
commit
0dc9bec3bc
4 files changed
+24
-46
No files matched your search
+7
-19
@@ -9,9 +9,11 @@
|
|||||||
客户端先 cancel/ret, 再由服务端精确处理转换。
|
客户端先 cancel/ret, 再由服务端精确处理转换。
|
||||||
|
|
||||||
【监听事件】(全模组客户端唯一拦截点)
|
【监听事件】(全模组客户端唯一拦截点)
|
||||||
1. ClientBlockUseEvent 右键功能方块 -> cancel=True
|
1. ClientItemUseOnEvent 手持白名单物品右键方块表面 -> ret=True
|
||||||
2. ClientItemUseOnEvent 手持白名单物品右键方块表面 -> ret=True
|
2. ClientItemTryUseEvent 手持直接吃物品(饭团/水煮蛋/豆腐) -> cancel=True
|
||||||
3. ClientItemTryUseEvent 手持直接吃物品(饭团/水煮蛋/豆腐) -> cancel=True
|
【注意】不拦 ClientBlockUseEvent(右键功能方块本体): 那会误拦"对炉灶放置
|
||||||
|
蒸笼/对空锅放置盘子"等合理放置。右键方块本体的转换由服务端 OnBlockUse
|
||||||
|
精确路由处理, 不在客户端提前 cancel。
|
||||||
|
|
||||||
【白名单来源】
|
【白名单来源】
|
||||||
共享数据 InterceptData.py (客户端/服务端同一份, 见其注释)
|
共享数据 InterceptData.py (客户端/服务端同一份, 见其注释)
|
||||||
@@ -24,7 +26,7 @@ clientComp = clientApi.GetEngineCompFactory()
|
|||||||
|
|
||||||
from ...BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxClientSystem
|
from ...BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxClientSystem
|
||||||
from .InterceptData import (ITEM_USE_ON_CANCEL, ITEM_USE_ON_CANCEL_BY_ITEM,
|
from .InterceptData import (ITEM_USE_ON_CANCEL, ITEM_USE_ON_CANCEL_BY_ITEM,
|
||||||
BLOCK_USE_CANCEL, SUSHI_BLOCKS, COATING_ITEMS)
|
SUSHI_BLOCKS, COATING_ITEMS)
|
||||||
|
|
||||||
|
|
||||||
class ClientFeatureDispatcher(BlueFoxClientSystem):
|
class ClientFeatureDispatcher(BlueFoxClientSystem):
|
||||||
@@ -33,9 +35,6 @@ class ClientFeatureDispatcher(BlueFoxClientSystem):
|
|||||||
def __init__(self, namespace, systemName):
|
def __init__(self, namespace, systemName):
|
||||||
BlueFoxClientSystem.__init__(self, namespace, systemName)
|
BlueFoxClientSystem.__init__(self, namespace, systemName)
|
||||||
print "===== ClientFeatureDispatcher init ====="
|
print "===== ClientFeatureDispatcher init ====="
|
||||||
self.ListenForEvent(clientApi.GetEngineNamespace(),
|
|
||||||
clientApi.GetEngineSystemName(),
|
|
||||||
"ClientBlockUseEvent", self, self.OnBlockUse)
|
|
||||||
self.ListenForEvent(clientApi.GetEngineNamespace(),
|
self.ListenForEvent(clientApi.GetEngineNamespace(),
|
||||||
clientApi.GetEngineSystemName(),
|
clientApi.GetEngineSystemName(),
|
||||||
"ClientItemUseOnEvent", self, self.OnItemUseOn)
|
"ClientItemUseOnEvent", self, self.OnItemUseOn)
|
||||||
@@ -45,9 +44,6 @@ class ClientFeatureDispatcher(BlueFoxClientSystem):
|
|||||||
|
|
||||||
def Destroy(self):
|
def Destroy(self):
|
||||||
print "===== ClientFeatureDispatcher Destroy ====="
|
print "===== ClientFeatureDispatcher Destroy ====="
|
||||||
self.UnListenForEvent(clientApi.GetEngineNamespace(),
|
|
||||||
clientApi.GetEngineSystemName(),
|
|
||||||
"ClientBlockUseEvent", self, self.OnBlockUse)
|
|
||||||
self.UnListenForEvent(clientApi.GetEngineNamespace(),
|
self.UnListenForEvent(clientApi.GetEngineNamespace(),
|
||||||
clientApi.GetEngineSystemName(),
|
clientApi.GetEngineSystemName(),
|
||||||
"ClientItemUseOnEvent", self, self.OnItemUseOn)
|
"ClientItemUseOnEvent", self, self.OnItemUseOn)
|
||||||
@@ -56,15 +52,7 @@ class ClientFeatureDispatcher(BlueFoxClientSystem):
|
|||||||
"ClientItemTryUseEvent", self, self.OnItemTryUse)
|
"ClientItemTryUseEvent", self, self.OnItemTryUse)
|
||||||
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
# 入口1: 右键功能方块 -> 提前 cancel 默认交互
|
# 入口1: 手持物品右键方块表面 -> 白名单组合才 ret (取消默认放置/吃)
|
||||||
# ============================================================================
|
|
||||||
def OnBlockUse(self, args):
|
|
||||||
blockName = args.get("blockName")
|
|
||||||
if blockName in BLOCK_USE_CANCEL:
|
|
||||||
args["cancel"] = True
|
|
||||||
|
|
||||||
# ============================================================================
|
|
||||||
# 入口2: 手持物品右键方块表面 -> 白名单组合才 ret
|
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
def OnItemUseOn(self, args):
|
def OnItemUseOn(self, args):
|
||||||
blockName = args.get("blockName")
|
blockName = args.get("blockName")
|
||||||
|
|||||||
+7
-27
@@ -83,6 +83,10 @@ CHAOGUO_CANCEL = {
|
|||||||
("rtdd:bowlofrice", "rtdd:plate_15"),
|
("rtdd:bowlofrice", "rtdd:plate_15"),
|
||||||
("rtdd:bowlofrice_2", "rtdd:plate_15"),
|
("rtdd:bowlofrice_2", "rtdd:plate_15"),
|
||||||
("rtdd:bowlofrice_3", "rtdd:plate_15"),
|
("rtdd:bowlofrice_3", "rtdd:plate_15"),
|
||||||
|
# 蛋炒饭: 手持米饭(三形态任一) 右键 炒锅_86(蛋炒饭_加胡萝卜_熟) -> 炒锅_87(加米饭_熟)
|
||||||
|
("rtdd:bowlofrice", "rtdd:riceegg_2"),
|
||||||
|
("rtdd:bowlofrice_2", "rtdd:riceegg_2"),
|
||||||
|
("rtdd:bowlofrice_3", "rtdd:riceegg_2"),
|
||||||
}
|
}
|
||||||
|
|
||||||
# ---- 厨具 锅铲/带油锅铲 (Chuju) ----
|
# ---- 厨具 锅铲/带油锅铲 (Chuju) ----
|
||||||
@@ -135,7 +139,7 @@ ITEM_USE_ON_CANCEL = (PLATE_CANCEL | MIANSHI_CANCEL | TANGGUO_CANCEL
|
|||||||
# 二、纯手持物品取消: 只看手持item (右键任意方块表面/空中)
|
# 二、纯手持物品取消: 只看手持item (右键任意方块表面/空中)
|
||||||
# ============================================================================
|
# ============================================================================
|
||||||
|
|
||||||
# ---- 原版相邻放置 (YuanbanService ITEM_USE_ON_RULES) ----
|
# ---- 原版相邻放置 (YuanbanService ITEM_USE_ON_RULES) + 水稻种植 (Natural RICE_PLANT) ----
|
||||||
PLACE_ITEMS = {
|
PLACE_ITEMS = {
|
||||||
"minecraft:chicken",
|
"minecraft:chicken",
|
||||||
"minecraft:salmon",
|
"minecraft:salmon",
|
||||||
@@ -145,6 +149,7 @@ PLACE_ITEMS = {
|
|||||||
"minecraft:potato",
|
"minecraft:potato",
|
||||||
"rtdd:qingcai",
|
"rtdd:qingcai",
|
||||||
"rtdd:scallions",
|
"rtdd:scallions",
|
||||||
|
"rtdd:rice_seeds", # 稻谷: 右键耕地相邻放置水稻苗(RICE_PLANT)
|
||||||
}
|
}
|
||||||
|
|
||||||
# ---- 总食用 手持直接吃 (Shiyongfood TRY_USE_RULES) ----
|
# ---- 总食用 手持直接吃 (Shiyongfood TRY_USE_RULES) ----
|
||||||
@@ -154,29 +159,4 @@ EAT_ITEMS = {
|
|||||||
"rtdd:beancurd", # 豆腐
|
"rtdd:beancurd", # 豆腐
|
||||||
}
|
}
|
||||||
|
|
||||||
ITEM_USE_ON_CANCEL_BY_ITEM = PLACE_ITEMS | EAT_ITEMS
|
ITEM_USE_ON_CANCEL_BY_ITEM = PLACE_ITEMS | EAT_ITEMS
|
||||||
|
|
||||||
# ============================================================================
|
|
||||||
# 三、右键功能方块集合 (ClientBlockUseEvent 提前 cancel)
|
|
||||||
# 右键这些功能方块, 无论空手/手持, 客户端都提前取消"默认交互",
|
|
||||||
# 由服务端 OnBlockUse 精确路由处理(不误伤放置)。
|
|
||||||
# 注意: 仅列出"交互型"功能方块(灶台/蒸笼/炒锅/汤锅/锅具/柴火/水箱等),
|
|
||||||
# 不放被右键时应当正常放置的方块。
|
|
||||||
# ============================================================================
|
|
||||||
BLOCK_USE_CANCEL = {
|
|
||||||
"rtdd:stove", "rtdd:stove_1", "rtdd:stove_2",
|
|
||||||
"rtdd:steamer", "rtdd:steamercover",
|
|
||||||
"rtdd:wok", "rtdd:coverthepan", "rtdd:oilpan",
|
|
||||||
"rtdd:stewedsoup", "rtdd:stewedsoupwater", "rtdd:coverthepot",
|
|
||||||
"rtdd:oilpot_0", "rtdd:oilpot_1",
|
|
||||||
"rtdd:oilcan",
|
|
||||||
"rtdd:manger_0", "rtdd:manger_1", "rtdd:manger_2", "rtdd:manger_3",
|
|
||||||
"rtdd:pigmanger_1", "rtdd:pigmanger_2",
|
|
||||||
"rtdd:chickenmanger_0", "rtdd:chickenmanger_1",
|
|
||||||
"rtdd:firewood", "rtdd:firewood_2",
|
|
||||||
"rtdd:stonemill",
|
|
||||||
"rtdd:beater", "rtdd:beatermeat_0", "rtdd:beatermeat_1",
|
|
||||||
"rtdd:beatermike_0", "rtdd:beatermike_1", "rtdd:beatermike_2",
|
|
||||||
"rtdd:beater_custard_0", "rtdd:beater_custard_1", "rtdd:beater_custard_2",
|
|
||||||
"rtdd:beater_eggsandmilk_0", "rtdd:beater_eggsandmilk_1", "rtdd:beater_eggsandmilk_2",
|
|
||||||
}
|
|
||||||
@@ -971,4 +971,12 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher)
|
|||||||
ClientBlockUseEvent(cancel功能方块)/ ClientItemUseOnEvent(ret白名单组合)/
|
ClientBlockUseEvent(cancel功能方块)/ ClientItemUseOnEvent(ret白名单组合)/
|
||||||
ClientItemTryUseEvent(cancel手持吃物品), 客户端提前拦截消除"闪一下"
|
ClientItemTryUseEvent(cancel手持吃物品), 客户端提前拦截消除"闪一下"
|
||||||
④modMain.py 客户端分支导入 ClientFeatureDispatcher, 由 BlueFox 框架自动注册 [已实现]
|
④modMain.py 客户端分支导入 ClientFeatureDispatcher, 由 BlueFox 框架自动注册 [已实现]
|
||||||
|
- 复查补漏(2026-09-22): 白名单核对全部17服务 getItemUseOnRules + handleItemUseOn 后补:
|
||||||
|
①水稻种植 rtdd:rice_seeds 加入相邻放置 PLACE_ITEMS(Natural RICE_PLANT 漏)
|
||||||
|
②蛋炒饭 米饭三形态 x rtdd:riceegg_2 补 3 组进 CHAOGUO_CANCEL
|
||||||
|
核对确认已覆盖无遗漏: 装盘PLATE_CANCEL9项/面食MIANSHI_CANCEL6项/汤锅TANGGUO_CANCEL
|
||||||
|
3项/盖饭CHAOGUO_CANCEL 24+3项/锅铲CHUJU_CANCEL3项/寿司SUSHI_CANCEL/裹粉COATING_
|
||||||
|
CANCEL/原版放置PLACE_ITEMS/手持吃EAT_ITEMS。注意: Chaoguo.handleItemUseOn 有"手持
|
||||||
|
成品菜/米饭右键炒锅中间态方块→取消放置"的服务端兜底, 因要使客户端白名单宁少勿多
|
||||||
|
(避免误拦正常放置), 该边缘防误触仍只服务端处理(功能正确, 仅轻微闪烁), 暂不搬客户端 [已复查]
|
||||||
|
|
||||||
@@ -93,6 +93,8 @@
|
|||||||
反向(手持米饭 bowlofrice/2/3 -> 右键上述成品菜方块):
|
反向(手持米饭 bowlofrice/2/3 -> 右键上述成品菜方块):
|
||||||
- 米饭三形态 右键 辣子鸡丁plate_47/香菇滑鸡plate_54/麻婆豆腐plate_32/胡萝卜炒鳕鱼plate_15
|
- 米饭三形态 右键 辣子鸡丁plate_47/香菇滑鸡plate_54/麻婆豆腐plate_32/胡萝卜炒鳕鱼plate_15
|
||||||
被点方块原地变对应盖饭
|
被点方块原地变对应盖饭
|
||||||
|
蛋炒饭(手持米饭三形态 右键 炒锅_86 riceegg_2 -> 炒锅_87 riceegg_3):
|
||||||
|
- bowlofrice/2/3 x riceegg_2 = 3组
|
||||||
|
|
||||||
|
|
||||||
========================================
|
========================================
|
||||||
|
|||||||
Reference in new issue
Block a user