配方错误修改 厨具架左右取 修改
This commit is contained in:
1 parent
e1e63f43a4
commit
51db95c43a
4 files changed
+16
-14
No files matched your search
+13
-11
@@ -376,7 +376,7 @@ class FurnitureService(BlueFoxServerSystem):
|
||||
if not stackNames:
|
||||
return
|
||||
# 点左/点右 决定取哪个厨具(单件时无论点左右都取那一个)
|
||||
side = self._rackSideByClick(click.get("face"), click.get("cx"), click.get("cz"))
|
||||
side = self._rackSideByClick(click.get("aux"), click.get("cx"), click.get("cz"))
|
||||
if len(layout) >= 2:
|
||||
idx = 0 if side == "left" else 1
|
||||
else:
|
||||
@@ -422,16 +422,18 @@ class FurnitureService(BlueFoxServerSystem):
|
||||
self.replaceBlock(pos, dim, target, playerId)
|
||||
self._saveRecordDelayed(pos, dim, {"stack": self._namesToObjs(stackNames)})
|
||||
|
||||
def _rackSideByClick(self, face, cx, cz):
|
||||
"""根据点击的面 + 命中比例位置, 判断点的是左槽还是右槽。
|
||||
顶面/南北面(法线沿Z): 沿X分左右; 东西面(法线沿X): 沿Z分左右。
|
||||
返回 'left' / 'right'。若实测与实际相反, 直接翻转本方法即可。"""
|
||||
if face in (4, 5): # 东/西面: 沿 Z 分
|
||||
v = cz
|
||||
else: # 顶/北/南面(默认): 沿 X 分
|
||||
v = cx
|
||||
v = float(v) if v is not None else 0
|
||||
return "left" if v < 0.5 else "right"
|
||||
def _rackSideByClick(self, aux, cx, cz):
|
||||
"""根据方块朝向(aux) + 命中点在方块内的坐标, 判定点的是左槽还是右槽。
|
||||
与玩家站在哪一侧/点哪个面无关 —— 只按 aux 定出架子的"右轴"与右槽所在端,
|
||||
取命中点沿该轴坐标(v, clickX 或 clickZ)与 0.5 比较。
|
||||
aux 编码(实测): 0=朝北(-Z) 1=朝东(+X) 2=朝南(+Z) 3=朝西(-X)。
|
||||
以 d_4(左锅勺右菜刀)为锚: 朝北时左槽在低X端, 依 rotation 推得其余朝向。"""
|
||||
axis_x = aux in (0, 2) # 右轴沿 X(朝北0/朝南2); 否则沿 Z(朝东1/朝西3)
|
||||
positive = aux in (0, 1) # 右槽在 +轴端: 0→+X, 1→+Z; 2/3 则在 -轴端
|
||||
v = float((cx if axis_x else cz) or 0)
|
||||
if positive:
|
||||
return "right" if v >= 0.5 else "left"
|
||||
return "right" if v < 0.5 else "left"
|
||||
|
||||
def _rackTarget(self, itemNames):
|
||||
"""根据厨具物品名列表计算厨具架目标方块(0件=空, 1件=单件, 2件=组合, 顺序无关)"""
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"pattern": [
|
||||
"0 ",
|
||||
"34 ",
|
||||
"6 8"
|
||||
" 68"
|
||||
],
|
||||
"result": {
|
||||
"data": 0,
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
},
|
||||
"pattern": [
|
||||
"000",
|
||||
"34 "
|
||||
"3 4"
|
||||
],
|
||||
"result": {
|
||||
"data": 0,
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
"pattern": [
|
||||
"0 ",
|
||||
"34 ",
|
||||
"6 8"
|
||||
" 68"
|
||||
],
|
||||
"result": {
|
||||
"data": 0,
|
||||
|
||||
Reference in new issue
Block a user