# Conflicts:
#	behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/jiaju/service/FurnitureService.py
This commit is contained in:
wenhe committed 2026-09-30 11:40:43 +08:00
commit 2b1d14ad78
28 files changed
+256 -217

No files matched your search

@@ -15,8 +15,10 @@
target: 转换成的目标方块
consume: 消耗数量(默认0, 即不消耗)
clearHand: True=清空主手全部物品(垃圾桶扔垃圾)
giveItem: 取回/取水时给玩家背包的物品名(直接进背包)
dropItem: 以掉落物形式给的物品 [{"name": "xx", "count": N}]
giveItem: 取回/取水时给玩家的物品名
(统一优先级: 背包同名堆叠 -> 主手(空) -> 背包空位 -> 掉落)
dropItem: 取回时给的物品列表 [{"name": "xx", "count": N}]
(与 giveItem 同走统一优先级, 空间不足才掉出来)
record: "count"=记录一种物品+数量(箭桶) / "stack"=后放先取堆栈(书柜),
记录写入方块实体数据(rtdd_swt/rtdd_swc/rtdd_swi/rtdd_swa/rtdd_sws),
退出重进不丢; 附魔以扁平ench字段([[附魔ID,等级],...])存储,
@@ -354,10 +354,11 @@ class FurnitureService(BlueFoxServerSystem):
"""
厨具架:放入/取回通用处理(任务五: 点哪边拿哪个)。
放入: 手持 锅铲/锅勺/菜刀/炒锅 右键空架/单件架 -> 按组合(顺序无关)成型
取回: 空手右键 -> 按方块朝向(aux)+命中坐标(clickX/clickZ)判断点在左槽还是右槽,
取下该槽对应厨具, 形态退回剩余单件/空(与玩家站哪一侧无关)。
槽位固定布局: 组合块按 KITCHENRACK_BLOCK_ITEMS 的顺序 左=index0, 右=index1
(以方块模型摆放为准, 与放入顺序无关)。左右映射见 _rackSideByClick。
取回: 空手右键 -> 按点击位置(clickX/clickZ/face)判断点在左槽还是右槽,
取下该槽对应厨具, 形态退回剩余单件/空。
槽位固定布局: 组合块模型的左槽 = KITCHENRACK_BLOCK_ITEMS[blockName][0],
右槽 = [1] (与放入顺序无关, 以方块固态布局为准)。
[注意] 左右判定依赖朝向, 若实测相反, 调 _rackSideFlip 即可翻转。
"""
click = click or {}
# 槽位固定布局(左=index0, 右=index1); 单件=1个
@@ -465,13 +466,17 @@ class FurnitureService(BlueFoxServerSystem):
oldRecord = self._loadRecord(pos, dim)
bookStack = list(oldRecord.get("stack") or []) if oldRecord else []
if recipe.get("item") is None:
# 取回: 后放先取, 弹栈, 以掉落物形式给玩家
# 取回: 后放先取(LIFO), 每条记录=1件, 走统一优先级给玩家
if not bookStack:
return
droppedBook = bookStack.pop()
elif itemDict:
# 放入: 压栈(扁平化物品信息, 附魔存ench字段, 取回时重建)
bookStack.append(self._toItemObj(itemDict))
# 每次只消耗 consume 个(书/药水均为1), 记录数量必须与消耗数一致;
# 否则手持整摞右键会"只消耗1件、却按整摞计数", 取出时凭空多给。
_putObj = self._toItemObj(itemDict)
_putObj["count"] = max(1, int(recipe.get("consume", 1)))
bookStack.append(_putObj)
# ---- 唱片机取回: 先读记录(此时方块还是有碟的) ----
discToDrop = None
@@ -508,23 +513,24 @@ class FurnitureService(BlueFoxServerSystem):
if recipe.get("discPut") and itemDict:
self._writeDiscData(dim, pos, itemDict)
# ---- 掉落物(书柜取书/唱片取回): 走统一优先级(任务一) ----
# ---- 取回物品(书柜取书/唱片取回/碗柜取碗) ----
# 统一走优先级: 背包同名堆叠 -> 主手(空) -> 背包空位 -> 都没地方才掉出来
if droppedBook is not None:
self._dropItemObj(dim, pos, droppedBook, playerId)
self.giveItemObj(playerId, droppedBook, pos, dim)
if discToDrop:
self._dropItemDict(dim, pos, discToDrop, playerId)
self._giveItemDict(playerId, pos, dim, discToDrop)
if recipe.get("dropItem"):
self.dropItems(dim, pos, recipe["dropItem"], playerId)
# ---- 给物品(水槽取水/取脏盘子/盘子架取回/碗柜取碗等): 走统一优先级(任务一) ----
# ---- 给玩家物品(水槽取水/取脏盘子/盘子架取回等) ----
if recipe.get("giveItem"):
_gItem = recipe["giveItem"]
if isinstance(_gItem, dict):
self._dropItemDict(dim, pos, _gItem, playerId)
self._giveItemDict(playerId, pos, dim, _gItem)
else:
self._dropItemDict(dim, pos,
{"itemName": _gItem, "count": recipe.get("giveCount", 1), "auxValue": 0},
playerId)
self._giveItemDict(playerId, pos, dim,
{"itemName": _gItem,
"count": recipe.get("giveCount", 1)})
# ============================================================================
# 五、方块记录:count/stack 读写(箭桶/书柜, 字段 rtdd_sw*)
@@ -556,6 +562,12 @@ class FurnitureService(BlueFoxServerSystem):
stack = parsed
except Exception:
stack = []
# 每条 stack 记录在设计上固定代表1件(方块链级数 == 存了几件),
# 历史版本误把整摞数量写进来, 统一归一成1: 否则取回(书柜/药水架)
# 或左键破坏时会凭空多给。归一后由调用方回写, 老存档自动修好。
for _s in stack:
if isinstance(_s, dict):
_s["count"] = 1
# None/异常/损坏数据一律按空堆栈处理, 保证不报错
return {"stack": stack}
return None
@@ -702,8 +714,8 @@ class FurnitureService(BlueFoxServerSystem):
except Exception:
pass
def _dropItemDict(self, dim, pos, itemDict, playerId=None):
"""给出一个物品(唱片取回/箭桶取回等)。playerId 给出时走统一优先级(任务一)。"""
def _dropItemDict(self, dim, pos, itemDict):
"""以掉落物形式生成一个物品(唱片取回 / 箭桶取回等)"""
try:
outDict = {"itemName": itemDict["itemName"],
"count": itemDict.get("count", 1),
@@ -712,17 +724,12 @@ class FurnitureService(BlueFoxServerSystem):
# 药水箭等带 userData(item额外数据, 如药水NBT)的物品: 一并重建到掉落物
if itemDict.get("userData"):
outDict["userData"] = itemDict["userData"]
if playerId is not None:
self.giveItemToPlayer(playerId, outDict["itemName"], outDict["count"],
pos, dim, aux=outDict["auxValue"],
userData=outDict.get("userData"))
return
self.CreateEngineItemEntity(outDict, dim, (pos[0], pos[1] + 0.5, pos[2]))
except Exception:
pass
def _dropItemObj(self, dim, pos, itemObj, playerId=None):
"""给出一个物品(书柜取书, 按扁平ench重建附魔)。playerId 给出时走统一优先级(任务一)。"""
def _dropItemObj(self, dim, pos, itemObj):
"""以掉落物形式生成一个物品(书柜取书, 按扁平ench重建附魔)"""
try:
itemDict = {
"itemName": itemObj["itemName"],
@@ -732,11 +739,6 @@ class FurnitureService(BlueFoxServerSystem):
ench = itemObj.get("ench")
if ench:
itemDict["userData"] = self._buildEnchUserData(ench)
if playerId is not None:
self.giveItemToPlayer(playerId, itemDict["itemName"], itemDict["count"],
pos, dim, aux=itemDict["auxValue"],
userData=itemDict.get("userData"))
return
self.CreateEngineItemEntity(itemDict, dim, (pos[0], pos[1] + 0.5, pos[2]))
except Exception:
pass
@@ -759,21 +761,34 @@ class FurnitureService(BlueFoxServerSystem):
""""给玩家物品": 统一走优先级(同类合并->主手->背包->掉落)"""
self.giveItemToPlayer(playerId, itemName, count, aux=aux, userData=userData)
def giveItemObj(self, playerId, itemObj, pos=None, dim=None):
"""按持久化物品对象给玩家(厨具架取回; 附魔书按扁平ench重建附魔)。
统一优先级(任务一): 同类合并->主手->背包->掉落。"""
def _giveItemDict(self, playerId, pos, dim, itemDict):
"""按统一优先级给玩家一个物品 dict(唱片取回/规则 giveItem 等)。
空间不足时由 giveItemToPlayer 用 pos/dim 掉落兜底; 数据异常则忽略。"""
try:
self.giveItemToPlayer(
playerId,
itemDict["itemName"],
itemDict.get("count", 1),
pos, dim,
# 兼容两种 key: 调用处既有用 aux 也有用 auxValue
aux=itemDict.get("aux", itemDict.get("auxValue", 0)),
userData=itemDict.get("userData"))
except Exception:
pass
def giveItemObj(self, playerId, itemObj, pos=None, dim=None):
"""按持久化物品对象给玩家(厨具架取回/书柜取书; 附魔书按扁平ench重建附魔)
统一走优先级(同类合并->主手->背包), pos/dim 给定时空间不足才掉落。"""
try:
itemName = itemObj["itemName"]
count = itemObj.get("count", 1)
aux = itemObj.get("aux", 0)
userData = None
ench = itemObj.get("ench")
if ench:
userData = self._buildEnchUserData(ench)
elif itemObj.get("userData"):
userData = itemObj["userData"]
self.giveItemToPlayer(playerId, itemName, count, pos, dim,
aux=aux, userData=userData)
self.giveItemToPlayer(playerId, itemObj["itemName"],
itemObj.get("count", 1), pos, dim,
aux=itemObj.get("aux", 0), userData=userData)
except Exception:
pass
@@ -845,24 +860,25 @@ class FurnitureService(BlueFoxServerSystem):
dimensionId=dim)
# ============================================================================
# 十一、工具方法:以掉落物形式生成物品(厨具架取回)
# 十一、工具方法:给玩家一组物品(碗柜取碗等),没有 playerId 时直接掉落
# ============================================================================
def dropItems(self, dim, pos, dropList, playerId=None):
"""
dropList 格式:[{"name": "xxx", "count": N}, ...]
playerId 给出时走统一优先级(任务一: 同类合并->主手->背包->掉落)。
playerId 给出时走统一优先级(同类合并->主手->背包->掉落);
未给出时(方块被破坏等)直接在方块上方生成掉落物。
"""
for d in dropList:
itemDict = {
"itemName": d["name"],
"count": d.get("count", 1),
"auxValue": d.get("aux", 0),
}
if playerId is not None:
self.giveItemToPlayer(playerId, d["name"], d.get("count", 1), pos, dim,
aux=d.get("aux", 0))
self.giveItemToPlayer(playerId, d["name"], d.get("count", 1),
pos, dim, aux=d.get("aux", 0))
else:
itemDict = {
"itemName": d["name"],
"count": d.get("count", 1),
"auxValue": d.get("aux", 0),
}
self.CreateEngineItemEntity(itemDict, dim, (pos[0], pos[1] + 0.5, pos[2]))
# ============================================================================
@@ -11,24 +11,24 @@
"collision": {
"min": [
-0.1187,
-0.25,
0.5,
0.0
],
"max": [
1.1187,
0.125,
0.6875,
1.0
]
},
"clip": {
"min": [
-0.1187,
-0.25,
0.5,
0.0
],
"max": [
1.1187,
0.125,
0.6875,
1.0
]
}
@@ -11,24 +11,24 @@
"collision": {
"min": [
-0.1187,
-0.25,
0.5,
0.0
],
"max": [
1.1187,
0.125,
0.6875,
1.0
]
},
"clip": {
"min": [
-0.1187,
-0.25,
0.5,
0.0
],
"max": [
1.1187,
0.125,
0.6875,
1.0
]
}
@@ -11,24 +11,24 @@
"collision": {
"min": [
-0.1187,
-0.25,
0.5,
0.0
],
"max": [
1.1187,
0.125,
0.6875,
1.0
]
},
"clip": {
"min": [
-0.1187,
-0.25,
0.5,
0.0
],
"max": [
1.1187,
0.125,
0.6875,
1.0
]
}
@@ -11,24 +11,24 @@
"collision": {
"min": [
-0.1187,
-0.25,
0.5,
0.0
],
"max": [
1.1187,
0.125,
0.6875,
1.0
]
},
"clip": {
"min": [
-0.1187,
-0.25,
0.5,
0.0
],
"max": [
1.1187,
0.125,
0.6875,
1.0
]
}
@@ -8,30 +8,26 @@
},
"components": {
"netease:aabb": {
"collision": {
"min": [
0.1875,
-0.0625,
0.6256
],
"max": [
1.7812,
1.0125,
0.7512
]
},
"clip": {
"min": [
0.1875,
-0.0625,
0.6256
],
"max": [
1.7812,
1.0125,
0.7512
]
}
"collision": [
{ "min": [0, -0.0625, 0], "max": [0.125, 1.0125, 0.21875] },
{ "min": [0.125, -0.0625, 0.03125], "max": [0.25, 1.0125, 0.34375] },
{ "min": [0.25, -0.0625, 0.15625], "max": [0.375, 1.0125, 0.46875] },
{ "min": [0.375, -0.0625, 0.28125], "max": [0.5, 1.0125, 0.59375] },
{ "min": [0.5, -0.0625, 0.40625], "max": [0.625, 1.0125, 0.71875] },
{ "min": [0.625, -0.0625, 0.53125], "max": [0.75, 1.0125, 0.84375] },
{ "min": [0.75, -0.0625, 0.65625], "max": [0.875, 1.0125, 0.96875] },
{ "min": [0.875, -0.0625, 0.78125], "max": [1, 1.0125, 1] }
],
"clip": [
{ "min": [0, -0.0625, 0], "max": [0.125, 1.0125, 0.21875] },
{ "min": [0.125, -0.0625, 0.03125], "max": [0.25, 1.0125, 0.34375] },
{ "min": [0.25, -0.0625, 0.15625], "max": [0.375, 1.0125, 0.46875] },
{ "min": [0.375, -0.0625, 0.28125], "max": [0.5, 1.0125, 0.59375] },
{ "min": [0.5, -0.0625, 0.40625], "max": [0.625, 1.0125, 0.71875] },
{ "min": [0.625, -0.0625, 0.53125], "max": [0.75, 1.0125, 0.84375] },
{ "min": [0.75, -0.0625, 0.65625], "max": [0.875, 1.0125, 0.96875] },
{ "min": [0.875, -0.0625, 0.78125], "max": [1, 1.0125, 1] }
]
},
"minecraft:block_light_absorption": {
"value": 0
@@ -8,30 +8,26 @@
},
"components": {
"netease:aabb": {
"collision": {
"min": [
0.1875,
-0.0625,
0.625
],
"max": [
1.7812,
1.0125,
0.75
]
},
"clip": {
"min": [
0.1875,
-0.0625,
0.625
],
"max": [
1.7812,
1.0125,
0.75
]
}
"collision": [
{ "min": [0, -0.0625, 0], "max": [0.125, 1.0125, 0.21875] },
{ "min": [0.125, -0.0625, 0.03125], "max": [0.25, 1.0125, 0.34375] },
{ "min": [0.25, -0.0625, 0.15625], "max": [0.375, 1.0125, 0.46875] },
{ "min": [0.375, -0.0625, 0.28125], "max": [0.5, 1.0125, 0.59375] },
{ "min": [0.5, -0.0625, 0.40625], "max": [0.625, 1.0125, 0.71875] },
{ "min": [0.625, -0.0625, 0.53125], "max": [0.75, 1.0125, 0.84375] },
{ "min": [0.75, -0.0625, 0.65625], "max": [0.875, 1.0125, 0.96875] },
{ "min": [0.875, -0.0625, 0.78125], "max": [1, 1.0125, 1] }
],
"clip": [
{ "min": [0, -0.0625, 0], "max": [0.125, 1.0125, 0.21875] },
{ "min": [0.125, -0.0625, 0.03125], "max": [0.25, 1.0125, 0.34375] },
{ "min": [0.25, -0.0625, 0.15625], "max": [0.375, 1.0125, 0.46875] },
{ "min": [0.375, -0.0625, 0.28125], "max": [0.5, 1.0125, 0.59375] },
{ "min": [0.5, -0.0625, 0.40625], "max": [0.625, 1.0125, 0.71875] },
{ "min": [0.625, -0.0625, 0.53125], "max": [0.75, 1.0125, 0.84375] },
{ "min": [0.75, -0.0625, 0.65625], "max": [0.875, 1.0125, 0.96875] },
{ "min": [0.875, -0.0625, 0.78125], "max": [1, 1.0125, 1] }
]
},
"minecraft:block_light_absorption": {
"value": 0
@@ -11,24 +11,24 @@
"collision": {
"min": [
0.0,
-0.4375,
0.40625,
0.0
],
"max": [
1.0006,
0.125,
0.6875,
1.0
]
},
"clip": {
"min": [
0.0,
-0.4375,
0.40625,
0.0
],
"max": [
1.0006,
0.125,
0.6875,
1.0
]
}
@@ -11,24 +11,24 @@
"collision": {
"min": [
-0.1187,
-0.25,
0.5,
0.0
],
"max": [
1.1187,
0.125,
0.6875,
1.0
]
},
"clip": {
"min": [
-0.1187,
-0.25,
0.5,
0.0
],
"max": [
1.1187,
0.125,
0.6875,
1.0
]
}
@@ -11,24 +11,24 @@
"collision": {
"min": [
0.0,
-0.4375,
0.40625,
0.0
],
"max": [
1.0006,
0.125,
0.6875,
1.0
]
},
"clip": {
"min": [
0.0,
-0.4375,
0.40625,
0.0
],
"max": [
1.0006,
0.125,
0.6875,
1.0
]
}
@@ -11,24 +11,24 @@
"collision": {
"min": [
0.0,
-0.4375,
0.40625,
0.0
],
"max": [
1.0006,
0.125,
0.6875,
1.0
]
},
"clip": {
"min": [
0.0,
-0.4375,
0.40625,
0.0
],
"max": [
1.0006,
0.125,
0.6875,
1.0
]
}
@@ -11,24 +11,24 @@
"collision": {
"min": [
0.0,
-0.4375,
0.40625,
0.0
],
"max": [
1.0006,
0.125,
0.6875,
1.0
]
},
"clip": {
"min": [
0.0,
-0.4375,
0.40625,
0.0
],
"max": [
1.0006,
0.125,
0.6875,
1.0
]
}
@@ -11,24 +11,24 @@
"collision": {
"min": [
0.0,
-0.4375,
0.40625,
0.0
],
"max": [
1.0006,
0.125,
0.6875,
1.0
]
},
"clip": {
"min": [
0.0,
-0.4375,
0.40625,
0.0
],
"max": [
1.0006,
0.125,
0.6875,
1.0
]
}
@@ -11,7 +11,7 @@
"collision": {
"min": [
0.0,
0.125,
0.40625,
0.0
],
"max": [
@@ -23,7 +23,7 @@
"clip": {
"min": [
0.0,
0.125,
0.40625,
0.0
],
"max": [
@@ -67,6 +67,33 @@
"rtdd:arrowbarrel_0"
]
},
{
"group_name": "itemGroup.name.chaoguo_00_disc",
"icon": "rtdd:b_108",
"list": [
"minecraft:music_disc_13",
"minecraft:music_disc_cat",
"minecraft:music_disc_blocks",
"minecraft:music_disc_chirp",
"minecraft:music_disc_far",
"minecraft:music_disc_mall",
"minecraft:music_disc_mellohi",
"minecraft:music_disc_stal",
"minecraft:music_disc_strad",
"minecraft:music_disc_ward",
"minecraft:music_disc_11",
"minecraft:music_disc_wait",
"minecraft:music_disc_pigstep",
"minecraft:music_disc_otherside",
"minecraft:music_disc_5",
"minecraft:music_disc_relic",
"minecraft:music_disc_creator",
"minecraft:music_disc_creator_music_box",
"minecraft:music_disc_precipice",
"minecraft:music_disc_tears",
"minecraft:music_disc_lava_chicken"
]
},
{
"group_name": "itemGroup.name.chaoguo_00_cloth",
"icon": "rtdd:cloth_blue",
@@ -9,6 +9,7 @@
"itemGroup.name.chaoguo_00_kitchen",
"itemGroup.name.chaoguo_00_noodle",
"itemGroup.name.chaoguo_00_deco",
"itemGroup.name.chaoguo_00_disc",
"itemGroup.name.chaoguo_00_cloth",
"itemGroup.name.chaoguo_01_utensils",
"itemGroup.name.chaoguo_00_cutveg",
@@ -31,7 +31,7 @@
{
"origin": [
-16,
-4,
5,
0
],
"size": [
@@ -114,14 +114,14 @@
],
"pivot": [
0,
0,
9,
0
]
},
{
"origin": [
-17.9,
0,
9,
14
],
"size": [
@@ -31,7 +31,7 @@
{
"origin": [
-16,
-4,
5,
0
],
"size": [
@@ -114,14 +114,14 @@
],
"pivot": [
0,
0,
9,
0
]
},
{
"origin": [
-17.9,
0,
9,
14
],
"size": [
@@ -31,7 +31,7 @@
{
"origin": [
-16,
-4,
5,
0
],
"size": [
@@ -114,14 +114,14 @@
],
"pivot": [
0,
0,
9,
0
]
},
{
"origin": [
-17.9,
0,
9,
14
],
"size": [
@@ -31,7 +31,7 @@
{
"origin": [
-16,
-4,
5,
0
],
"size": [
@@ -114,14 +114,14 @@
],
"pivot": [
0,
0,
9,
0
]
},
{
"origin": [
-17.9,
0,
9,
14
],
"size": [
@@ -36,7 +36,7 @@
{
"origin": [
-16.01,
-4,
5,
1
],
"size": [
@@ -119,14 +119,14 @@
],
"pivot": [
1,
-5,
4,
1
]
},
{
"origin": [
-16,
0,
9,
14
],
"size": [
@@ -206,7 +206,7 @@
{
"origin": [
-4.01,
-4,
5,
1
],
"size": [
@@ -289,14 +289,14 @@
],
"pivot": [
13,
-5,
4,
1
]
},
{
"origin": [
-4,
-6,
3,
0
],
"size": [
@@ -376,7 +376,7 @@
{
"origin": [
-12.01,
-4,
5,
1
],
"size": [
@@ -459,14 +459,14 @@
],
"pivot": [
5,
-5,
4,
1
]
},
{
"origin": [
-12,
-7,
2,
0
],
"size": [
@@ -546,7 +546,7 @@
{
"origin": [
-8,
-7,
2,
0
],
"size": [
@@ -626,7 +626,7 @@
{
"origin": [
-16,
-6,
3,
0
],
"size": [
@@ -706,7 +706,7 @@
{
"origin": [
-8.01,
-4,
5,
1
],
"size": [
@@ -789,7 +789,7 @@
],
"pivot": [
9,
-5,
4,
1
]
}
@@ -31,7 +31,7 @@
{
"origin": [
-16,
-4,
5,
0
],
"size": [
@@ -114,14 +114,14 @@
],
"pivot": [
0,
0,
9,
0
]
},
{
"origin": [
-17.9,
0,
9,
14
],
"size": [
@@ -36,7 +36,7 @@
{
"origin": [
-16.01,
-4,
5,
1
],
"size": [
@@ -119,14 +119,14 @@
],
"pivot": [
1,
-5,
4,
1
]
},
{
"origin": [
-16,
0,
9,
14
],
"size": [
@@ -206,7 +206,7 @@
{
"origin": [
-4.01,
-4,
5,
1
],
"size": [
@@ -289,14 +289,14 @@
],
"pivot": [
13,
-5,
4,
1
]
},
{
"origin": [
-4,
-6,
3,
0
],
"size": [
@@ -376,7 +376,7 @@
{
"origin": [
-12.01,
-4,
5,
1
],
"size": [
@@ -459,14 +459,14 @@
],
"pivot": [
5,
-5,
4,
1
]
},
{
"origin": [
-12,
-7,
2,
0
],
"size": [
@@ -546,7 +546,7 @@
{
"origin": [
-8,
-7,
2,
0
],
"size": [
@@ -626,7 +626,7 @@
{
"origin": [
-16,
-6,
3,
0
],
"size": [
@@ -706,7 +706,7 @@
{
"origin": [
-8.01,
-4,
5,
1
],
"size": [
@@ -789,7 +789,7 @@
],
"pivot": [
9,
-5,
4,
1
]
}
@@ -36,7 +36,7 @@
{
"origin": [
-16.01,
-4,
5,
1
],
"size": [
@@ -119,14 +119,14 @@
],
"pivot": [
1,
-5,
4,
1
]
},
{
"origin": [
-16,
0,
9,
14
],
"size": [
@@ -206,7 +206,7 @@
{
"origin": [
-4.01,
-4,
5,
1
],
"size": [
@@ -289,14 +289,14 @@
],
"pivot": [
13,
-5,
4,
1
]
},
{
"origin": [
-4,
-6,
3,
0
],
"size": [
@@ -376,7 +376,7 @@
{
"origin": [
-12.01,
-4,
5,
1
],
"size": [
@@ -459,14 +459,14 @@
],
"pivot": [
5,
-5,
4,
1
]
},
{
"origin": [
-12,
-7,
2,
0
],
"size": [
@@ -546,7 +546,7 @@
{
"origin": [
-8,
-7,
2,
0
],
"size": [
@@ -626,7 +626,7 @@
{
"origin": [
-16,
-6,
3,
0
],
"size": [
@@ -706,7 +706,7 @@
{
"origin": [
-8.01,
-4,
5,
1
],
"size": [
@@ -789,7 +789,7 @@
],
"pivot": [
9,
-5,
4,
1
]
}
@@ -26,7 +26,7 @@
{
"origin": [
-16.01,
-4,
5,
1
],
"size": [
@@ -109,14 +109,14 @@
],
"pivot": [
1,
-5,
4,
1
]
},
{
"origin": [
-16,
0,
9,
14
],
"size": [
@@ -196,7 +196,7 @@
{
"origin": [
-4.01,
-4,
5,
1
],
"size": [
@@ -279,14 +279,14 @@
],
"pivot": [
13,
-5,
4,
1
]
},
{
"origin": [
-4,
-6,
3,
0
],
"size": [
@@ -366,7 +366,7 @@
{
"origin": [
-12.01,
-4,
5,
1
],
"size": [
@@ -449,14 +449,14 @@
],
"pivot": [
5,
-5,
4,
1
]
},
{
"origin": [
-12,
-7,
2,
0
],
"size": [
@@ -536,7 +536,7 @@
{
"origin": [
-8,
-7,
2,
0
],
"size": [
@@ -616,7 +616,7 @@
{
"origin": [
-16,
-6,
3,
0
],
"size": [
@@ -696,7 +696,7 @@
{
"origin": [
-8.01,
-4,
5,
1
],
"size": [
@@ -779,7 +779,7 @@
],
"pivot": [
9,
-5,
4,
1
]
}
@@ -36,7 +36,7 @@
{
"origin": [
-16.01,
-4,
5,
1
],
"size": [
@@ -119,14 +119,14 @@
],
"pivot": [
1,
-5,
4,
1
]
},
{
"origin": [
-16,
0,
9,
14
],
"size": [
@@ -206,7 +206,7 @@
{
"origin": [
-4.01,
-4,
5,
1
],
"size": [
@@ -289,14 +289,14 @@
],
"pivot": [
13,
-5,
4,
1
]
},
{
"origin": [
-4,
-6,
3,
0
],
"size": [
@@ -376,7 +376,7 @@
{
"origin": [
-12.01,
-4,
5,
1
],
"size": [
@@ -459,14 +459,14 @@
],
"pivot": [
5,
-5,
4,
1
]
},
{
"origin": [
-12,
-7,
2,
0
],
"size": [
@@ -546,7 +546,7 @@
{
"origin": [
-8,
-7,
2,
0
],
"size": [
@@ -626,7 +626,7 @@
{
"origin": [
-16,
-6,
3,
0
],
"size": [
@@ -706,7 +706,7 @@
{
"origin": [
-8.01,
-4,
5,
1
],
"size": [
@@ -789,7 +789,7 @@
],
"pivot": [
9,
-5,
4,
1
]
}
+1
View File
@@ -1109,6 +1109,7 @@ itemGroup.name.tangguo_veg_potato_lamb=蔬菜土豆羊肉汤
itemGroup.name.chaoguo_00_kitchen=厨房用具
itemGroup.name.chaoguo_00_noodle=面团·面粉
itemGroup.name.chaoguo_00_deco=家具·摆设
itemGroup.name.chaoguo_00_disc=唱片
itemGroup.name.chaoguo_00_cloth=布料·旗帜
itemGroup.name.chaoguo_00_cutveg=切配蔬菜
itemGroup.name.chaoguo_01_utensils=厨具·炊具