diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/modMain.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/modMain.py index 658060c..a80ed61 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/modMain.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/modMain.py @@ -16,6 +16,7 @@ from xiangyemod.chuju.service.ChujuService import ChujuService from xiangyemod.chuju.service.ChujuTimerService import ChujuTimerService from xiangyemod.ziran.service.NaturalService import NaturalService from xiangyemod.ziran.service.NaturalTimerService import NaturalTimerService +from xiangyemod.shicai.service.ShicaiService import ShicaiService if not serverApi.IsInServer(): pass diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/ShicaiData.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/ShicaiData.py new file mode 100644 index 0000000..84eede9 --- /dev/null +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/ShicaiData.py @@ -0,0 +1,101 @@ +# -*- coding: utf-8 -*- +""" +================================================================================ +乡野食材(xy_ingredients)·切配与裹粉 规则数据 +================================================================================ +统一管理"食材切配"(菜刀切分 / 蒜末) 与 "裹粉半成品" 的规则常量。 +只被 ShicaiService 读取,FeatureDispatcher 通过方块名 O(1) 路由到服务。 + +【一、菜刀切分】(CHOP_CHAINS) + 手持 菜刀(rtdd:cleaver) 右键"摆放地上"的切配方块, 逐级切分; + 切到最后一级再切 -> 掉落对应"碎"(数量见 drop) 并把方块变空气。 + +【二、蒜末】(GARLIC) + 手持 菜刀 右键 大蒜(rtdd:cutgarlic) 三次 -> 掉落 16 个蒜末并消失。 + +【三、裹粉】(COATING_RULES) + 手持生食材右键 面粉块(rtdd:farineblock_3) -> 消耗若干生食材 + 面粉块(变空气), + 掉落对应的裹粉半成品物品(供油锅炸物)。 +================================================================================ +""" + +# 菜刀 +CLEAVER_ITEM = "rtdd:cleaver" + +# 切分链: blocks 为逐级方块序列, 切到最后一级继续切 -> 掉 drop 并变空气 +CHOP_CHAINS = [ + { + "blocks": [ + "rtdd:cutcarrot_0", "rtdd:cutcarrot_1", "rtdd:cutcarrot_2", + "rtdd:cutcarrot_3", "rtdd:cutcarrot_4", + ], + "drop": {"name": "rtdd:crushed_carrots", "count": 3}, + "tip": "§a切出了胡萝卜碎", + }, + { + "blocks": [ + "rtdd:cutpotato_0", "rtdd:cutpotato_1", "rtdd:cutpotato_2", + "rtdd:cutpotato_3", "rtdd:cutpotato_4", + ], + "drop": {"name": "rtdd:potato_wedges", "count": 3}, + "tip": "§a切出了土豆块", + }, + { + "blocks": [ + "rtdd:cutvegetable_0", "rtdd:cutvegetable_1", + "rtdd:cutvegetable_2", "rtdd:cutvegetable_3", + ], + "drop": {"name": "rtdd:vegetable", "count": 3}, + "tip": "§a切出了青菜碎", + }, + { + "blocks": [ + "rtdd:cutscallions_1", "rtdd:cutscallions_2", + "rtdd:cutscallions_3", "rtdd:cutscallions_4", + ], + "drop": {"name": "rtdd:crushed_scallions", "count": 3}, + "tip": "§a切出了葱花碎", + }, +] + +# ---- 蒜末: 大蒜 + 菜刀右键 GARLIC_CHOP_COUNT 次 -> 掉落 GARLIC_DROP ---- +GARLIC_BLOCK = "rtdd:cutgarlic" +GARLIC_CHOP_COUNT = 3 +GARLIC_DROP = {"name": "rtdd:crushedgarlic", "count": 16} + +# ---- 裹粉: 面粉块 + 生食材 -> 掉落裹粉半成品 ---- +FLOUR_BLOCK = "rtdd:farineblock_3" +COATING_RULES = [ + {"item": "rtdd:sashimi", "count": 6, + "drop": {"name": "rtdd:oilfish_0", "count": 1}}, + {"item": "rtdd:lobster", "count": 2, + "drop": {"name": "rtdd:oiltempura", "count": 1}}, + {"item": "minecraft:porkchop", "count": 1, + "drop": {"name": "rtdd:oilpork", "count": 1}}, + {"item": "minecraft:chicken", "count": 1, + "drop": {"name": "rtdd:oil_chickennuggets", "count": 6}}, + {"item": "minecraft:potato", "count": 1, + "drop": {"name": "rtdd:oilfrenchfries", "count": 10}}, +] + +# ---- 左键破坏掉落: 摆在地上的切配方块 -> 原版食材(相对"切配态"的原版不切物品) ---- +DESTROY_DROP = { + "rtdd:cutcarrot_0": "minecraft:carrot", + "rtdd:cutcarrot_1": "minecraft:carrot", + "rtdd:cutcarrot_2": "minecraft:carrot", + "rtdd:cutcarrot_3": "minecraft:carrot", + "rtdd:cutcarrot_4": "minecraft:carrot", + "rtdd:cutpotato_0": "minecraft:potato", + "rtdd:cutpotato_1": "minecraft:potato", + "rtdd:cutpotato_2": "minecraft:potato", + "rtdd:cutpotato_3": "minecraft:potato", + "rtdd:cutpotato_4": "minecraft:potato", + "rtdd:cutvegetable_0": "rtdd:qingcai", + "rtdd:cutvegetable_1": "rtdd:qingcai", + "rtdd:cutvegetable_2": "rtdd:qingcai", + "rtdd:cutvegetable_3": "rtdd:qingcai", + "rtdd:cutscallions_1": "rtdd:scallions", + "rtdd:cutscallions_2": "rtdd:scallions", + "rtdd:cutscallions_3": "rtdd:scallions", + "rtdd:cutscallions_4": "rtdd:scallions", +} \ No newline at end of file diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/__init__.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/__init__.py new file mode 100644 index 0000000..7c68785 --- /dev/null +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- \ No newline at end of file diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/service/ShicaiService.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/service/ShicaiService.py new file mode 100644 index 0000000..297821e --- /dev/null +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/service/ShicaiService.py @@ -0,0 +1,292 @@ +# -*- coding: utf-8 -*- +""" +================================================================================ +乡野食材·切配与裹粉 右键转换引擎(服务端) +================================================================================ +处理"乡野食材"(xy_ingredients) 分类下的右键转换: + 菜刀切分配(胡萝卜/土豆/青菜/葱花 逐级切 + 切碎掉落)、 + 蒜末(大蒜+菜刀右键三次)、裹粉半成品(生食材+面粉块)。 + +【事件监听在哪?】 + 本类【不】监听任何事件! + 所有事件由 FeatureDispatcher 统一监听,按 blockOwner 路由到本类 handleBlockUse。 + +【本类怎么做】 + handleBlockUse ← 入口:分发器转发右键方块事件 + ├─ _handleChop ← 菜刀切分(切配方块逐级推进 / 最后一刀掉碎) + ├─ _handleGarlic ← 蒜末(菜刀右键大蒜计数) + └─ _handleCoating ← 裹粉(生食材右键面粉块) + (通用工具) getCarriedItem / consumeItem / dropItems / replaceBlock / + clearBlock / checkCooldown +================================================================================ +""" +import time +import mod.server.extraServerApi as serverApi + +# ---- 网易API基础对象 ---- +ServerSystem = serverApi.GetServerSystemCls() # 服务端系统基类 +comp = serverApi.GetEngineCompFactory() # 组件工厂 + +# ---- 继承 BlueFox 框架的系统基类(提供 CreateEngineItemEntity 等方法) ---- +from ....BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxServerSystem +from ....BlueFoxTools.ToolsConfig import LevelId + +# ---- 只导入乡野食材自己的数据库 ---- +from ..ShicaiData import ( + CLEAVER_ITEM, CHOP_CHAINS, GARLIC_BLOCK, GARLIC_CHOP_COUNT, + GARLIC_DROP, FLOUR_BLOCK, COATING_RULES, DESTROY_DROP, +) + +# ---- 统一分发器 ---- +from ...service.FeatureDispatcher import FeatureDispatcher + + +class ShicaiService(BlueFoxServerSystem): + """ + 乡野食材·切配与裹粉 右键转换引擎 + """ + + def __init__(self, namespace, systemName): + super(ShicaiService, self).__init__(namespace, systemName) + print "===== ShicaiService init =====" + + # ---- 切分链映射: 方块名 -> (链, 索引) O(1) ---- + self.chopMap = {} + self.featureBlocks = set() + for chain in CHOP_CHAINS: + for i, b in enumerate(chain["blocks"]): + self.chopMap[b] = (chain, i) + self.featureBlocks.add(b) + + # ---- 蒜末方块 + 面粉块 ---- + self.featureBlocks.add(GARLIC_BLOCK) + self.featureBlocks.add(FLOUR_BLOCK) + + # ---- 裹粉规则映射: 手持物品名 -> 规则 ---- + self.coatingMap = {} + for r in COATING_RULES: + self.coatingMap[r["item"]] = r + + # ---- 蒜末切菜计数 {(dim,x,y,z): n} ---- + self.garlicChop = {} + + # ---- 右键冷却表 ---- + self.cooldown = {} + + # ---- 注册到统一分发器 ---- + FeatureDispatcher.register(self) + + # ============================================================================ + # 一、给 FeatureDispatcher 的接口 + # ============================================================================ + + def getFeatureBlocks(self): + """返回本功能管辖的所有右键方块名集合""" + return self.featureBlocks + + def getItemUseOnRules(self): + """手持物品右键方块表面不需要单独路由, 返回空""" + return {} + + def handleDestroy(self, args): + """由 FeatureDispatcher 转发的"玩家左键破坏方块"入口。 + 摆在地上的切配方块(切胡萝卜/切土豆/切青菜/葱花) 被左键打碎 -> + 掉落对应的原版食材(胡萝卜/土豆/青菜/葱), 并清空方块。 + 返回 True=处理了; False=不属本功能管。""" + blockName = args.get("fullName") or args.get("blockName") + itemName = DESTROY_DROP.get(blockName) + if not itemName: + return False + playerId = args.get("playerId") + x, y, z = args.get("x"), args.get("y"), args.get("z") + dim = comp.CreateDimension(playerId).GetEntityDimensionId() + + # 取消默认破坏+默认掉落(不让切配方块本身掉出来) + args['cancel'] = True + args['spawnResources'] = False + + # 清空方块为空气(aux 强制 0, 保证定向变体正常清除) + try: + comp.CreateBlockInfo(LevelId).SetBlockNew( + (x, y, z), blockDict={"name": "minecraft:air", "aux": 0}, + oldBlockHandling=0, dimensionId=dim) + except Exception: + pass + + # 掉落原版食材 + try: + self.CreateEngineItemEntity( + {"itemName": itemName, "count": 1, "auxValue": 0}, + dim, (x, y + 0.5, z)) + except Exception: + pass + return True + + def handleBlockUse(self, args): + """由 FeatureDispatcher 转发的右键方块入口""" + blockName = args.get("blockName") + playerId = args.get("playerId") + x, y, z = args.get("x"), args.get("y"), args.get("z") + pos = (x, y, z) + dim = comp.CreateDimension(playerId).GetEntityDimensionId() + key = (dim, x, y, z) + + itemDict = self.getCarriedItem(playerId) + itemName = itemDict.get("newItemName") if itemDict else None + + # ---- 菜刀切分 ---- + if blockName in self.chopMap: + return self._handleChop(blockName, playerId, pos, dim, itemDict, itemName, key) + + # ---- 蒜末 ---- + if blockName == GARLIC_BLOCK: + return self._handleGarlic(playerId, pos, dim, itemDict, itemName, key) + + # ---- 裹粉 ---- + if blockName == FLOUR_BLOCK: + return self._handleCoating(playerId, pos, dim, itemDict, itemName, key) + + return False + + # ============================================================================ + # 二、菜刀切分配 + # ============================================================================ + + def _handleChop(self, blockName, playerId, pos, dim, itemDict, itemName, key): + if itemName != CLEAVER_ITEM: + return False + chain, idx = self.chopMap[blockName] + blocks = chain["blocks"] + if not self.checkCooldown(key, 0.3): + return True + if idx < len(blocks) - 1: + # 逐级推进到下一刀 + self.replaceBlock(pos, dim, blocks[idx + 1], playerId) + comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a继续切配…") + else: + # 最后一级再切 -> 掉碎 + 变空气 + self.clearBlock(pos, dim) + self.dropItems(dim, pos, [chain["drop"]]) + comp.CreateMsg(playerId).NotifyOneMessage( + playerId, chain.get("tip", "§a切好了")) + return True + + # ============================================================================ + # 三、蒜末(大蒜 + 菜刀右键三次 -> 掉 16 蒜末) + # ============================================================================ + + def _handleGarlic(self, playerId, pos, dim, itemDict, itemName, key): + if itemName != CLEAVER_ITEM: + return False + if not self.checkCooldown(key, 0.3): + return True + gkey = (dim, pos[0], pos[1], pos[2]) + n = self.garlicChop.get(gkey, 0) + 1 + if n >= GARLIC_CHOP_COUNT: + self.clearBlock(pos, dim) + self.dropItems(dim, pos, [GARLIC_DROP]) + self.garlicChop.pop(gkey, None) + comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a切好了蒜末") + else: + self.garlicChop[gkey] = n + comp.CreateMsg(playerId).NotifyOneMessage( + playerId, "§a切大蒜中…(%d/%d)" % (n, GARLIC_CHOP_COUNT)) + return True + + # ============================================================================ + # 四、裹粉(生食材右键面粉块 -> 掉裹粉物品) + # ============================================================================ + + def _handleCoating(self, playerId, pos, dim, itemDict, itemName, key): + rule = self.coatingMap.get(itemName) + if not rule: + return False + need = rule.get("count", 1) + if itemDict is not None and (itemDict.get("count") or 0) < need: + comp.CreateMsg(playerId).NotifyOneMessage( + playerId, "§c数量不足,需要 %d 个" % need) + return True + if not self.checkCooldown(key, 0.5): + return True + self.consumeItem(playerId, itemDict, need) + self.clearBlock(pos, dim) + self.dropItems(dim, pos, [rule["drop"]]) + comp.CreateMsg(playerId).NotifyOneMessage(playerId, "§a裹粉完成") + return True + + # ============================================================================ + # 五、工具方法:获取玩家主手物品 + # ============================================================================ + + def getCarriedItem(self, playerId): + itemComp = comp.CreateItem(playerId) + return itemComp.GetPlayerItem( + serverApi.GetMinecraftEnum().ItemPosType.CARRIED, 0, True) + + # ============================================================================ + # 六、工具方法:消耗物品 + # ============================================================================ + + def consumeItem(self, playerId, itemDict, amount=1): + if itemDict is None: + return + count = itemDict.get("count", 0) + if count <= amount: + comp.CreateItem(playerId).SetEntityItem( + serverApi.GetMinecraftEnum().ItemPosType.CARRIED, + {"itemName": "minecraft:air", "count": 0, "auxValue": 0}) + else: + itemDict["count"] = count - amount + comp.CreateItem(playerId).SetEntityItem( + serverApi.GetMinecraftEnum().ItemPosType.CARRIED, + {"itemName": itemDict["newItemName"], + "count": itemDict["count"], + "auxValue": itemDict.get("newAuxValue", 0), + "userData": itemDict.get("userData", {})}) + + # ============================================================================ + # 七、工具方法:替换方块 / 清空方块 + # ============================================================================ + + def replaceBlock(self, pos, dim, newBlockName, playerId=None): + creator = playerId if playerId is not None else LevelId + aux = 0 + try: + oldBlock = comp.CreateBlockInfo(creator).GetBlockNew(pos, dim) + aux = oldBlock.get("aux", 0) + except Exception: + aux = 0 + comp.CreateBlockInfo(creator).SetBlockNew( + pos, blockDict={"name": newBlockName, "aux": aux}, + oldBlockHandling=0, dimensionId=dim) + + def clearBlock(self, pos, dim): + """把方块清空为空气(切完拿碎/裹粉耗掉面粉块)""" + comp.CreateBlockInfo(LevelId).SetBlockNew( + pos, blockDict={"name": "minecraft:air", "aux": 0}, + oldBlockHandling=0, dimensionId=dim) + + # ============================================================================ + # 八、工具方法:以掉落物形式生成物品 + # ============================================================================ + + def dropItems(self, dim, pos, dropList): + for d in dropList: + 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])) + + # ============================================================================ + # 九、工具方法:冷却检查 + # ============================================================================ + + def checkCooldown(self, key, cd=0.5): + now = time.time() + last = self.cooldown.get(key, 0) + if now - last < cd: + return False + self.cooldown[key] = now + return True \ No newline at end of file diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/service/__init__.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/service/__init__.py new file mode 100644 index 0000000..7c68785 --- /dev/null +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/shicai/service/__init__.py @@ -0,0 +1 @@ +# -*- coding: utf-8 -*- \ No newline at end of file diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yuanbanfangzhi/YuanbanData.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yuanbanfangzhi/YuanbanData.py index 7b8e53f..4fc1637 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yuanbanfangzhi/YuanbanData.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/yuanbanfangzhi/YuanbanData.py @@ -53,6 +53,31 @@ ITEM_USE_ON_RULES = [ "consume": 1, "tip": "§a已放置死鳕鱼", }, + # ---- 蔬菜·切配: 原版食材右键放置 -> 摆放地上的切配方块 ---- + { + "item": "minecraft:carrot", # 原版胡萝卜 + "target": "rtdd:cutcarrot_0", # 切胡萝卜(摆放地上) + "consume": 1, + "tip": "§a已放置胡萝卜,可手持菜刀切配", + }, + { + "item": "minecraft:potato", # 原版土豆 + "target": "rtdd:cutpotato_0", # 切土豆(摆放地上) + "consume": 1, + "tip": "§a已放置土豆,可手持菜刀切配", + }, + { + "item": "rtdd:qingcai", # 青菜(整颗) + "target": "rtdd:cutvegetable_0", # 切青菜(摆放地上) + "consume": 1, + "tip": "§a已放置青菜,可手持菜刀切配", + }, + { + "item": "rtdd:scallions", # 葱 + "target": "rtdd:cutscallions_1", # 葱花_1 + "consume": 1, + "tip": "§a已放置葱,可手持菜刀切分", + }, ] # ---- 二、盘子转换: 手持原版食物右键 空盘子(plate_0), 盘子变为对应成品盘 ---- diff --git a/behavior_pack_v8jz0zSR/netease_blocks/plantvegetables.json b/behavior_pack_v8jz0zSR/netease_blocks/plantvegetables.json deleted file mode 100644 index 8c3a4ad..0000000 --- a/behavior_pack_v8jz0zSR/netease_blocks/plantvegetables.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "format_version": "1.10.0", - "minecraft:block": { - "description": { - "identifier": "rtdd:plantvegetables", - "register_to_creative_menu": true, - "category": "xy_ingredients" - }, - "components": { - "netease:aabb": { - "collision": { - "min": [ - 0, - 0, - 0.1 - ], - "max": [ - 1, - 0.15, - 0.75 - ] - }, - "clip": { - "min": [ - 0, - 0, - 0.1 - ], - "max": [ - 1, - 0.15, - 0.75 - ] - } - }, - "minecraft:block_light_absorption": { - "value": 0 - }, - "netease:render_layer": { - "value": "alpha" - }, - "netease:solid": { - "value": false - }, - "netease:face_directional": { - "type": "direction" - }, - "netease:block_entity": { - "client_tick": false, - "movable": false, - "tick": false - } - } - } -} diff --git a/behavior_pack_v8jz0zSR/netease_group/ingredients_groups.json b/behavior_pack_v8jz0zSR/netease_group/ingredients_groups.json index 513f50b..46e0004 100644 --- a/behavior_pack_v8jz0zSR/netease_group/ingredients_groups.json +++ b/behavior_pack_v8jz0zSR/netease_group/ingredients_groups.json @@ -23,7 +23,7 @@ "rtdd:cutscallions_3", "rtdd:cutscallions_4", "rtdd:scallions", - "rtdd:plantvegetables", + "rtdd:qingcai", "rtdd:vegetable", "rtdd:crushed_carrots", "rtdd:crushed_scallions", diff --git a/behavior_pack_v8jz0zSR/netease_items_beh/rtdd_qingcai.json b/behavior_pack_v8jz0zSR/netease_items_beh/rtdd_qingcai.json new file mode 100644 index 0000000..d18560a --- /dev/null +++ b/behavior_pack_v8jz0zSR/netease_items_beh/rtdd_qingcai.json @@ -0,0 +1,12 @@ +{ + "format_version": "1.10", + "minecraft:item": { + "components": { + "minecraft:max_stack_size": 64 + }, + "description": { + "category": "xy_ingredients", + "identifier": "rtdd:qingcai" + } + } +} \ No newline at end of file diff --git a/behavior_pack_v8jz0zSR/netease_recipes/xy_chiliskewer.json b/behavior_pack_v8jz0zSR/netease_recipes/xy_chiliskewer.json new file mode 100644 index 0000000..86fe06a --- /dev/null +++ b/behavior_pack_v8jz0zSR/netease_recipes/xy_chiliskewer.json @@ -0,0 +1,31 @@ +{ + "format_version": "1.12", + "minecraft:recipe_shaped": { + "key": { + "P": { + "item": "rtdd:pepper", + "data": 0 + }, + "R": { + "item": "rtdd:b_34", + "data": 0 + } + }, + "description": { + "identifier": "rtdd:xy_chiliskewer" + }, + "pattern": [ + "PPP", + "PRP", + "PRP" + ], + "result": { + "data": 0, + "item": "rtdd:chiliskewer", + "count": 1 + }, + "tags": [ + "crafting_table" + ] + } +} \ No newline at end of file diff --git a/behavior_pack_v8jz0zSR/netease_recipes/xy_garlicskewers.json b/behavior_pack_v8jz0zSR/netease_recipes/xy_garlicskewers.json new file mode 100644 index 0000000..98b1953 --- /dev/null +++ b/behavior_pack_v8jz0zSR/netease_recipes/xy_garlicskewers.json @@ -0,0 +1,31 @@ +{ + "format_version": "1.12", + "minecraft:recipe_shaped": { + "key": { + "G": { + "item": "rtdd:cutgarlic", + "data": 0 + }, + "R": { + "item": "rtdd:b_34", + "data": 0 + } + }, + "description": { + "identifier": "rtdd:xy_garlicskewers" + }, + "pattern": [ + "GGG", + "GRG", + "GRG" + ], + "result": { + "data": 0, + "item": "rtdd:garlicskewers", + "count": 1 + }, + "tags": [ + "crafting_table" + ] + } +} \ No newline at end of file diff --git a/behavior_pack_v8jz0zSR/netease_recipes/xy_orangepile_0.json b/behavior_pack_v8jz0zSR/netease_recipes/xy_orangepile_0.json new file mode 100644 index 0000000..161d642 --- /dev/null +++ b/behavior_pack_v8jz0zSR/netease_recipes/xy_orangepile_0.json @@ -0,0 +1,59 @@ +{ + "format_version": "1.12", + "minecraft:recipe_shaped": { + "key": { + "0": { + "item": "rtdd:orange", + "data": 0 + }, + "1": { + "item": "rtdd:orange", + "data": 0 + }, + "2": { + "item": "rtdd:orange", + "data": 0 + }, + "3": { + "item": "rtdd:orange", + "data": 0 + }, + "4": { + "item": "rtdd:orange", + "data": 0 + }, + "5": { + "item": "rtdd:orange", + "data": 0 + }, + "6": { + "item": "rtdd:orange", + "data": 0 + }, + "7": { + "item": "rtdd:orange", + "data": 0 + }, + "8": { + "item": "rtdd:orange", + "data": 0 + } + }, + "description": { + "identifier": "rtdd:xy_orangepile_0" + }, + "pattern": [ + "012", + "345", + "678" + ], + "result": { + "data": 0, + "item": "rtdd:orangepile_0", + "count": 1 + }, + "tags": [ + "crafting_table" + ] + } +} \ No newline at end of file diff --git a/behavior_pack_v8jz0zSR/netease_recipes/xy_peachpile_0.json b/behavior_pack_v8jz0zSR/netease_recipes/xy_peachpile_0.json new file mode 100644 index 0000000..0049ffa --- /dev/null +++ b/behavior_pack_v8jz0zSR/netease_recipes/xy_peachpile_0.json @@ -0,0 +1,59 @@ +{ + "format_version": "1.12", + "minecraft:recipe_shaped": { + "key": { + "0": { + "item": "rtdd:peach", + "data": 0 + }, + "1": { + "item": "rtdd:peach", + "data": 0 + }, + "2": { + "item": "rtdd:peach", + "data": 0 + }, + "3": { + "item": "rtdd:peach", + "data": 0 + }, + "4": { + "item": "rtdd:peach", + "data": 0 + }, + "5": { + "item": "rtdd:peach", + "data": 0 + }, + "6": { + "item": "rtdd:peach", + "data": 0 + }, + "7": { + "item": "rtdd:peach", + "data": 0 + }, + "8": { + "item": "rtdd:peach", + "data": 0 + } + }, + "description": { + "identifier": "rtdd:xy_peachpile_0" + }, + "pattern": [ + "012", + "345", + "678" + ], + "result": { + "data": 0, + "item": "rtdd:peachpile_0", + "count": 1 + }, + "tags": [ + "crafting_table" + ] + } +} \ No newline at end of file diff --git a/resource_pack_Are13Lvd/blocks.json b/resource_pack_Are13Lvd/blocks.json index 0e82e33..27af945 100644 --- a/resource_pack_Are13Lvd/blocks.json +++ b/resource_pack_Are13Lvd/blocks.json @@ -2149,11 +2149,6 @@ "sound": "wood", "textures": "rtdd_blocks_vegetables" }, - "rtdd:plantvegetables": { - "netease_model": "rtdd:plantvegetables", - "sound": "grass", - "textures": "rtdd_blocks_vegetables" - }, "rtdd:cutvegetable_1": { "netease_model": "rtdd:cutvegetable_1", "sound": "wood", diff --git a/resource_pack_Are13Lvd/models/netease_block/plantvegetables.json b/resource_pack_Are13Lvd/models/netease_block/plantvegetables.json deleted file mode 100644 index 281598c..0000000 --- a/resource_pack_Are13Lvd/models/netease_block/plantvegetables.json +++ /dev/null @@ -1,1480 +0,0 @@ -{ - "format_version": "1.13.0", - "netease:block_geometry": { - "description": { - "identifier": "rtdd:plantvegetables", - "textures": [ - "rtdd_blocks_vegetables" - ], - "textures_descriptions": [ - { - "width": 16, - "length": 16 - } - ], - "use_ao": true - }, - "bones": [ - { - "name": "root", - "pivot": [ - 0, - 0, - 0 - ], - "cubes": [ - { - "origin": [ - -12, - -0.5, - 9 - ], - "size": [ - 6, - 1.0, - 2 - ], - "uv": { - "north": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -6, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 8, - 10 - ], - "uv_size": [ - -2, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 11, - 6 - ], - "uv_size": [ - -6, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 6, - 6 - ], - "uv_size": [ - 2, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 7, - 10 - ], - "uv_size": [ - 2, - -6 - ], - "texture": 0, - "rot": 270 - }, - "down": { - "uv": [ - 11, - 3 - ], - "uv_size": [ - -2, - 6 - ], - "texture": 0, - "rot": 90 - } - } - }, - { - "origin": [ - -11, - -0.5, - 8 - ], - "size": [ - 3, - 1.0, - 1 - ], - "uv": { - "north": { - "uv": [ - 9, - 6 - ], - "uv_size": [ - -3, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 7, - 6 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 7, - 8 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 8, - 5 - ], - "uv_size": [ - -1, - 3 - ], - "texture": 0, - "rot": 270 - }, - "down": { - "uv": [ - 9, - 3 - ], - "uv_size": [ - -1, - 3 - ], - "texture": 0, - "rot": 90 - } - } - }, - { - "origin": [ - -11, - -0.5, - 11 - ], - "size": [ - 4, - 1.0, - 1 - ], - "uv": { - "north": { - "uv": [ - 10, - 6 - ], - "uv_size": [ - -4, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 9, - 6 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 12, - 8 - ], - "uv_size": [ - -4, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 5, - 11 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 12, - 5 - ], - "uv_size": [ - -1, - 4 - ], - "texture": 0, - "rot": 270 - }, - "down": { - "uv": [ - 12, - 7 - ], - "uv_size": [ - -1, - 4 - ], - "texture": 0, - "rot": 90 - } - } - }, - { - "origin": [ - -13, - -0.5, - 9 - ], - "size": [ - 1, - 1.0, - 1 - ], - "uv": { - "north": { - "uv": [ - 6, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 10, - 8 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 6, - 10 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0, - "rot": 270 - }, - "down": { - "uv": [ - 9, - 3 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0, - "rot": 90 - } - } - }, - { - "origin": [ - -4, - -0.5, - 3 - ], - "size": [ - 6, - 1.0, - 2 - ], - "uv": { - "north": { - "uv": [ - 11, - 6 - ], - "uv_size": [ - -6, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 6, - 6 - ], - "uv_size": [ - 2, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -6, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 8, - 10 - ], - "uv_size": [ - -2, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 7, - 10 - ], - "uv_size": [ - 2, - -6 - ], - "texture": 0, - "rot": 90 - }, - "down": { - "uv": [ - 11, - 3 - ], - "uv_size": [ - -2, - 6 - ], - "texture": 0, - "rot": 270 - } - }, - "rotation": [ - 0, - -22.5, - 0 - ], - "pivot": [ - -8, - 1, - -9 - ] - }, - { - "origin": [ - -2, - -0.5, - 5 - ], - "size": [ - 3, - 1.0, - 1 - ], - "uv": { - "east": { - "uv": [ - 7, - 8 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 9, - 6 - ], - "uv_size": [ - -3, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 7, - 6 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 8, - 5 - ], - "uv_size": [ - -1, - 3 - ], - "texture": 0, - "rot": 90 - }, - "down": { - "uv": [ - 9, - 3 - ], - "uv_size": [ - -1, - 3 - ], - "texture": 0, - "rot": 270 - } - }, - "rotation": [ - 0, - -22.5, - 0 - ], - "pivot": [ - -8, - 1, - -9 - ] - }, - { - "origin": [ - -3, - -0.5, - 2 - ], - "size": [ - 4, - 1.0, - 1 - ], - "uv": { - "north": { - "uv": [ - 12, - 8 - ], - "uv_size": [ - -4, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 5, - 11 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 10, - 6 - ], - "uv_size": [ - -4, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 9, - 6 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 12, - 5 - ], - "uv_size": [ - -1, - 4 - ], - "texture": 0, - "rot": 90 - }, - "down": { - "uv": [ - 12, - 7 - ], - "uv_size": [ - -1, - 4 - ], - "texture": 0, - "rot": 270 - } - }, - "rotation": [ - 0, - -22.5, - 0 - ], - "pivot": [ - -8, - 1, - -9 - ] - }, - { - "origin": [ - 2, - -0.5, - 4 - ], - "size": [ - 1, - 1.0, - 1 - ], - "uv": { - "north": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 6, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 10, - 8 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 6, - 10 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0, - "rot": 90 - }, - "down": { - "uv": [ - 9, - 3 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0, - "rot": 270 - } - }, - "rotation": [ - 0, - -22.5, - 0 - ], - "pivot": [ - -8, - 1, - -9 - ] - }, - { - "origin": [ - -8, - 0, - 8 - ], - "size": [ - 3, - 1, - 1 - ], - "uv": { - "north": { - "uv": [ - 7, - 10 - ], - "uv_size": [ - -3, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 7, - 8 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 9, - 6 - ], - "uv_size": [ - -3, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 7, - 6 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 6, - 10 - ], - "uv_size": [ - -1, - 3 - ], - "texture": 0, - "rot": 90 - }, - "down": { - "uv": [ - 10, - 3 - ], - "uv_size": [ - -1, - 3 - ], - "texture": 0, - "rot": 270 - } - } - }, - { - "origin": [ - -5.5, - -0.7, - 8 - ], - "size": [ - 3.0, - 1.0, - 1 - ], - "uv": { - "north": { - "uv": [ - 2, - 13 - ], - "uv_size": [ - 3, - -1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 7, - 8 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 9, - 6 - ], - "uv_size": [ - -3, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 3, - 12 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 5, - 12 - ], - "uv_size": [ - -3, - 1 - ], - "texture": 0 - }, - "down": { - "uv": [ - 10, - 3 - ], - "uv_size": [ - -1, - 3 - ], - "texture": 0, - "rot": 270 - } - } - }, - { - "origin": [ - -6, - -0.7, - 7 - ], - "size": [ - 4, - 1.0, - 1 - ], - "uv": { - "north": { - "uv": [ - 2, - 12 - ], - "uv_size": [ - 4, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 5, - 11 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 10, - 6 - ], - "uv_size": [ - -4, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 4, - 13 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 4, - 10 - ], - "uv_size": [ - -1, - 4 - ], - "texture": 0, - "rot": 90 - }, - "down": { - "uv": [ - 12, - 7 - ], - "uv_size": [ - -1, - 4 - ], - "texture": 0, - "rot": 270 - } - } - }, - { - "origin": [ - -6, - -0.7, - 9 - ], - "size": [ - 1, - 1.0, - 1 - ], - "uv": { - "north": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 6, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 6, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 6, - 10 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0, - "rot": 90 - }, - "down": { - "uv": [ - 10, - 4 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0, - "rot": 270 - } - } - }, - { - "origin": [ - -11, - -2, - 5 - ], - "size": [ - 6, - 1, - 2 - ], - "uv": { - "north": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -6, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 8, - 10 - ], - "uv_size": [ - -2, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 11, - 6 - ], - "uv_size": [ - -6, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 6, - 6 - ], - "uv_size": [ - 2, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 9, - 5 - ], - "uv_size": [ - -2, - 6 - ], - "texture": 0, - "rot": 270 - }, - "down": { - "uv": [ - 10, - 4 - ], - "uv_size": [ - -2, - 6 - ], - "texture": 0, - "rot": 90 - } - }, - "rotation": [ - -22.5, - 0, - 0 - ], - "pivot": [ - 4, - -1, - 11 - ] - }, - { - "origin": [ - -12, - -2, - 2 - ], - "size": [ - 3, - 1, - 1 - ], - "uv": { - "north": { - "uv": [ - 9, - 6 - ], - "uv_size": [ - -3, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 7, - 6 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 7, - 8 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 8, - 5 - ], - "uv_size": [ - -1, - 3 - ], - "texture": 0, - "rot": 270 - }, - "down": { - "uv": [ - 11, - 5 - ], - "uv_size": [ - -1, - 3 - ], - "texture": 0, - "rot": 90 - } - }, - "rotation": [ - -22.5, - 0, - 0 - ], - "pivot": [ - 4, - -1, - 11 - ] - }, - { - "origin": [ - -10, - -2, - 7 - ], - "size": [ - 4, - 1, - 1 - ], - "uv": { - "north": { - "uv": [ - 10, - 6 - ], - "uv_size": [ - -4, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 10, - 8 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 12, - 8 - ], - "uv_size": [ - -4, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 5, - 11 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 12, - 5 - ], - "uv_size": [ - -1, - 4 - ], - "texture": 0, - "rot": 270 - }, - "down": { - "uv": [ - 12, - 7 - ], - "uv_size": [ - -1, - 4 - ], - "texture": 0, - "rot": 90 - } - }, - "rotation": [ - -22.5, - 0, - 0 - ], - "pivot": [ - 4, - -1, - 11 - ] - }, - { - "origin": [ - -12, - -2, - 5 - ], - "size": [ - 1, - 1, - 1 - ], - "uv": { - "north": { - "uv": [ - 6, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 6, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 11, - 9 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 6, - 10 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0, - "rot": 270 - }, - "down": { - "uv": [ - 11, - 6 - ], - "uv_size": [ - -1, - 1 - ], - "texture": 0, - "rot": 90 - } - }, - "rotation": [ - -22.5, - 0, - 0 - ], - "pivot": [ - 4, - -1, - 11 - ] - }, - { - "origin": [ - -13, - -2, - 3 - ], - "size": [ - 6, - 1, - 2 - ], - "uv": { - "north": { - "uv": [ - 14, - 3 - ], - "uv_size": [ - -6, - 1 - ], - "texture": 0 - }, - "east": { - "uv": [ - 9, - 5 - ], - "uv_size": [ - -2, - 1 - ], - "texture": 0 - }, - "south": { - "uv": [ - 13, - 7 - ], - "uv_size": [ - -6, - 1 - ], - "texture": 0 - }, - "west": { - "uv": [ - 9, - 5 - ], - "uv_size": [ - -2, - 1 - ], - "texture": 0 - }, - "up": { - "uv": [ - 11, - 3 - ], - "uv_size": [ - -2, - 6 - ], - "texture": 0, - "rot": 270 - }, - "down": { - "uv": [ - 10, - 3 - ], - "uv_size": [ - -2, - 6 - ], - "texture": 0, - "rot": 90 - } - }, - "rotation": [ - -22.5, - 0, - 0 - ], - "pivot": [ - 4, - -1, - 11 - ] - } - ] - } - ] - } -} \ No newline at end of file diff --git a/resource_pack_Are13Lvd/texts/zh_CN.lang b/resource_pack_Are13Lvd/texts/zh_CN.lang index 637f202..3e9af12 100644 --- a/resource_pack_Are13Lvd/texts/zh_CN.lang +++ b/resource_pack_Are13Lvd/texts/zh_CN.lang @@ -161,8 +161,6 @@ tile.rtdd:beefkebabs_3.name=牛肉串(熟) tile.rtdd:cookingmeat_1.name=炒锅_45(炒碎肉_熟) tile.rtdd:cookingcookedporkloin.name=炒锅_30(小炒五花肉_生) tile.rtdd:crushed_copper_ore_1.name=铜矿(碎铜矿_1)_禁用 -tile.rtdd:plantvegetables_1.name=青菜_6(青菜_1) -tile.rtdd:plantvegetables_3.name=青菜_7(青菜_3) tile.rtdd:carrotcodsoup.name=汤锅_13(胡萝卜鳕鱼汤_生) tile.rtdd:dumplingssoup.name=饺子_碗装 tile.rtdd:plate_17.name=生鱼片 @@ -249,7 +247,6 @@ tile.rtdd:b_108.name=古式唱片机(无碟) tile.rtdd:balance.name=天平 tile.rtdd:b_109.name=古式唱片机(有碟) tile.rtdd:plate_53.name=胡萝卜炒猪肉 -tile.rtdd:plantvegetables.name=青菜_5(青菜) tile.rtdd:plate_54.name=香菇滑鸡 tile.rtdd:plate_51.name=炸饺子 tile.rtdd:plate_52.name=土豆炒猪肉 @@ -846,7 +843,6 @@ tile.rtdd:cutvegetable_1.name=切青菜(切一刀) tile.rtdd:b_269.name=橘木 tile.rtdd:bowlavegetablebeefsoup.name=清汤羊肉 tile.rtdd:cutvegetable_0.name=切青菜(摆放地上) -tile.rtdd:plantvegetables.name=青菜 tile.rtdd:garlicskewers.name=大蒜串 tile.rtdd:cookingcookedporkribs.name=炒锅_32(胡萝卜炒猪排骨_生) tile.rtdd:fish_2.name=挂肉钩_6(鱼_2(禁用)) @@ -1243,6 +1239,7 @@ item.rtdd:crushed_scallions.name=葱花碎 item.rtdd:potato_wedges.name=土豆块 item.rtdd:cream_0.name=奶油 item.rtdd:rice_seeds.name=稻谷 -item.rtdd:vegetable.name=青菜 +item.rtdd:vegetable.name=青菜碎 +item.rtdd:qingcai.name=青菜 item.rtdd:rice_balls.name=饭团 item.rtdd:boiled_egg.name=水煮蛋 diff --git a/resource_pack_Are13Lvd/textures/item_texture.json b/resource_pack_Are13Lvd/textures/item_texture.json index 2069958..394671e 100644 --- a/resource_pack_Are13Lvd/textures/item_texture.json +++ b/resource_pack_Are13Lvd/textures/item_texture.json @@ -129,6 +129,9 @@ }, "vegetable": { "textures": "textures/items/vegetable" + }, + "qingcai": { + "textures": "textures/items/meiqiedeqingcai" } } } \ No newline at end of file diff --git a/resource_pack_Are13Lvd/textures/items/meiqiedeqingcai.png b/resource_pack_Are13Lvd/textures/items/meiqiedeqingcai.png new file mode 100644 index 0000000..1b3c9a4 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/items/meiqiedeqingcai.png differ diff --git a/tuilun/乡野食材转化关系.txt b/tuilun/乡野食材转化关系.txt index 3377ad5..eae3ae1 100644 --- a/tuilun/乡野食材转化关系.txt +++ b/tuilun/乡野食材转化关系.txt @@ -17,37 +17,40 @@ 【原版放置】手持原版食材右键地面/方块表面, 消耗1个, 生成"摆放地上"形态: - 原版胡萝卜(minecraft:carrot) 右键放置 -> 切胡萝卜(摆放地上 cutcarrot_0) - 原版土豆(minecraft:potato) 右键放置 -> 切土豆(摆放地上 cutpotato_0) -- 原版青菜(rtdd:vegetable, 青菜) 右键放置 -> 切青菜(摆放地上 cutvegetable_0) - +- 原版青菜(rtdd:qingcai, 青菜) 右键放置 -> 切青菜(摆放地上 cutvegetable_0) +- 原版葱(rtdd:scallions, 葱) 右键放置 -> 葱花_1(cutscallions_1) +- 摆在地上的切配方块(切胡萝卜/切土豆/切青菜/葱花) 左键打碎 -> 掉落 原版食材(胡萝卜/土豆/青菜/葱) 1. 切胡萝卜(摆放地上) -> 切胡萝卜(切一块) -> 切胡萝卜(切两块) -> 切胡萝卜(切三块) -> 切胡萝卜(切四块) 转换条件:[手持 菜刀 右键 依次切割] 机制: 手持菜刀右键,每刀切一级,共四刀 1a. 切胡萝卜(切四块) -> 胡萝卜碎(crushed_carrots) -转换条件:[右键 进行转换(进一步切碎)] -机制: 切到四块后继续切, 变为 胡萝卜碎(切配半成品)【待确认: 具体切法】 +转换条件:[手持 菜刀 右键 进行转换(进一步切碎)] +机制: 切到四块后继续切, 掉落 3个 胡萝卜碎 2. 切土豆(摆放地上) -> 切土豆(去皮) -> 切土豆(切一块) -> 切土豆(切两块) -> 切土豆(切三块) 转换条件:[手持 菜刀 右键 依次切割] 机制: 手持菜刀右键,先去皮再逐级切,共四刀 2a. 切土豆(切三块) -> 土豆块(potato_wedges) -转换条件:[右键 进行转换(切块)] -机制: 切到三块后继续切, 变为 土豆块(切配半成品, 供油锅炸薯条)【待确认: 具体切法】 +转换条件:[手持 菜刀右键 进行转换(切块)] +机制: 切到三块后继续切, 掉落 3个 土豆块(切配半成品, 供油锅炸薯条) 3. 切青菜(摆放地上) -> 切青菜(切一刀) -> 切青菜(切两刀) -> 切青菜(切三刀) 转换条件:[手持 菜刀 右键 依次切割] 机制: 手持菜刀右键,每刀切一级,共三刀 +3a. 切青菜(切三刀) -> 青菜碎(rtdd:vegetable) +转换条件:[手持 菜刀 右键 进行转换(进一步切碎)] +机制: 切到三刀后继续切, 掉落 3个 青菜碎(切配半成品) 4. 葱花_1 -> 葱花_2 -> 葱花_3 -> 葱花_4 转换条件:[手持 菜刀 右键 依次切分葱] 机制: 手持菜刀右键切葱,逐级切分 4a. 葱花_4 -> 葱花碎(crushed_scallions) -转换条件:[右键 进行转换(进一步切碎)] -机制: 切到葱花_4后继续切, 变为 葱花碎(切配半成品)【待确认: 具体切法】 - +转换条件:[手持 菜刀 右键 进行转换(进一步切碎)] +机制: 切到葱花_4后继续切, 掉落 3个 葱花碎(切配半成品) 5. 葱(scallions) 转换条件:[静态食材,无独立转换](本次由Java版迁入,用于炒锅加葱/葱花锅底) - -5a. 青菜(原版, plantvegetables/vegetable) +放置: 手持葱右键 -> 葱花_1(cutscallions_1) +5a. 青菜(qingcai) 转换条件:[静态食材,无独立转换] 机制: 原版不切状态, 手持右键放置后成为切青菜(摆放地上), 再菜刀切分 [已从Java版迁入] @@ -75,11 +78,9 @@ ======================================== 四、食材堆(各类堆叠食材集中分组) ======================================== -10. 土豆堆 / 胡萝卜堆(b_40) / 桃子堆 / 橙子堆 / 苹果堆 / 鸡蛋堆 / 鲑鱼堆 / 鳕鱼堆 / 面包堆 +10. 土豆堆 / 胡萝卜堆/ 桃子堆 / 橙子堆 / 苹果堆 / 鸡蛋堆 / 鲑鱼堆 / 鳕鱼堆 / 面包堆 转换条件:[静态堆叠食材,无独立转换] -说明: 各类"XX堆"集中到本组"食材堆"(含原鱼·海鲜的鲑鱼堆/鳕鱼堆、原谷物·米面的面包堆) -- 鸡蛋堆(egg_pile)仍属食材堆, 供鸡窝/蛋液/汤锅煮鸡蛋(raweggsoup)/蛋花汤(eggsoup)/炒锅煎蛋(cookedegg)等使用 - +配方(工作台): 九个对应食材 合成 堆; 堆 放工作台 分解成 九个对应食材 ======================================== 五、蔬果·水果(单个水果, 供榨汁/冰棍/炒冰) ======================================== @@ -93,9 +94,6 @@ 转换条件:[静态食材,无独立转换](本次由Java版迁入,用于生米锅/米饭/竹筒饭/蛋炒饭; 米饭需先经 汤锅 煮熟盛出, 再做寿司(含饭团 rice_balls)/蛋炒饭等) -13. 生面(noodles) -转换条件:[静态食材,无独立转换](本次由Java版迁入,归本组,用作汤锅生面汤/炒锅意面的面条食材) - ======================================== 七、调味·佐料 ======================================== @@ -103,10 +101,10 @@ 转换条件:[静态切配食材,无独立转换] 16. 蒜末(crushedgarlic) -转换条件:[静态切配食材,无独立转换](本次由Java版迁入) +转换条件: 手持菜刀 右键 大蒜 需要右键三次 掉落 16个 蒜末(切配半成品) 17. 大蒜串 / 辣椒串 -转换条件:[静态串类食材,无独立转换](注:辣椒串原属烧烤分类,已迁至此分组) +配方(工作台): 大蒜x7 + 支杆x2 -> 大蒜串(garlicskewers); 辣椒x7 + 支杆x2 -> 辣椒串(chiliskewer) 18. 豆腐(beancurd) 转换条件:[静态食材,无独立转换](本次由Java版迁入) @@ -118,30 +116,30 @@ 八、裹粉半成品(油锅炸物前置,由生食材裹面粉而来) ======================================== 20. 生鱼片 -> 裹粉的鱼 -转换条件:[手持 面粉 右键 进行裹粉](【待确认】) -机制: 生鱼片裹面粉,变为裹粉的鱼,供油锅炸鱼块 +转换条件:[手持 生鱼片 右键 面粉块 进行裹粉] +机制: 消耗6个生鱼片, 获得 1个 裹粉的鱼(oilfish_0), 供油锅炸鱼块 21. 龙虾 -> 裹粉的天妇罗 -转换条件:[手持 面粉 右键 进行裹粉](【待确认】) -机制: 龙虾裹面粉,变为裹粉的天妇罗,供油锅炸天妇罗(天妇罗炸虾成品即由此而来) +转换条件:[手持 龙虾 右键 面粉块 进行裹粉] +机制: 消耗2个龙虾, 获得 1个 裹粉的天妇罗(oiltempura), 供油锅炸天妇罗(天妇罗炸虾成品即由此而来) 22. 猪肉 -> 裹粉的猪肉 -转换条件:[手持 面粉 右键 进行裹粉](【待确认】) -机制: 猪肉裹面粉,变为裹粉的猪肉,供油锅炸猪排 +转换条件:[手持 原版猪肉 右键 面粉块 进行裹粉] +机制: 消耗1个猪肉, 获得 1个 裹粉的猪肉(oilpork), 供油锅炸猪排 -23. 鸡块 -> 裹粉的鸡块 -转换条件:[手持 面粉 右键 进行裹粉](【待确认】) -机制: 鸡块裹面粉,变为裹粉的鸡块,供油锅炸鸡块 +23. 鸡肉 -> 裹粉的鸡块 +转换条件:[手持 原版生鸡肉 右键 面粉块 进行裹粉] +机制: 消耗1个鸡肉, 获得 6个 裹粉的鸡块(oil_chickennuggets), 供油锅炸鸡块 -24. 土豆条 -> 裹粉的薯条 -转换条件:[手持 面粉 右键 进行裹粉](【待确认】) -机制: 土豆条裹面粉,变为裹粉的薯条,供油锅炸薯条 +24. 土豆 -> 裹粉的薯条 +转换条件:[手持 土豆 右键 面粉块 进行裹粉] +机制: 消耗1个土豆, 获得 10个 裹粉的薯条(oilfrenchfries), 供油锅炸薯条 ======================================== 九、方块/物品清单(按8分组) ======================================== 【蔬菜·切配】cutcarrot_0~4(切胡萝卜)、cutpotato_0~4(切土豆)、cutvegetable_0~3(切青菜)、 -cutscallions_1~4(葱花)、scallions(葱)、plantvegetables(青菜)、vegetable(青菜物品)、 +cutscallions_1~4(葱花)、scallions(葱)、qingcai(青菜)、vegetable(青菜碎)、 crushed_carrots(胡萝卜碎)、crushed_scallions(葱花碎)、potato_wedges(土豆块) 【肉类·肉馅】rawmeatball_0~3(生肉馅)、legsleep(羊腿)、sheeploins(羊里脊)、sheepracks(羊小排)、 diff --git a/tuilun/全部功能做了什么.txt b/tuilun/全部功能做了什么.txt index aadb07b..d2f28fc 100644 --- a/tuilun/全部功能做了什么.txt +++ b/tuilun/全部功能做了什么.txt @@ -324,10 +324,11 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher) 【缺失食材·已创建】(对比Java版, 已迁入基岩版行为包) - 物品类(8个, 均归乡野食材/成品分类, 贴图/JSON/item_texture/lang 齐全): 胡萝卜碎(crushed_carrots)、葱花碎(crushed_scallions)、土豆块(potato_wedges)、 - 奶油(cream_0)、稻谷(rice_seeds)、青菜物品(vegetable)、 + 奶油(cream_0)、稻谷(rice_seeds)、青菜(qingcai)、青菜碎(vegetable)、 饭团(rice_balls,乡野食物)、水煮蛋(boiled_egg,乡野食物) -- 青菜方块(plantvegetables): 已创建(参照切青菜模型), 归乡野食材/蔬菜·切配组, - 与原版放置衔接(手持青菜物品右键放置→切青菜摆放地上) [已创建] +- 青菜物品(qingcai): 整颗未切青菜, 贴图 meiqiedeqingcai.png, 与原版放置衔接 + (手持青菜物品右键放置→切青菜摆放地上); 原 vegetable 物品改名"青菜碎" [已调整] +- 青菜方块(plantvegetables): 已删除(不再使用原版态放置方块) [已删除] 【已放弃·不创建】(用户确认不迁入) - 鸡腿(raw_chicken_thighs)、鸡翅(raw_chicken_wings)、大饼(bannock) —— 已删除已建文件 @@ -337,7 +338,7 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher) 【食材分组·已落地】(ingredients_groups.json / xy_Ingredients.json / lang 三处同步) - 新建"食材堆"分组(ingr_09_pile): 土豆堆/胡萝卜堆/桃子堆/橙子堆/苹果堆/鸡蛋堆/鲑鱼堆/鳕鱼堆/面包堆 集中 - 原"蔬果·堆类"(ingr_04_crop) 改名"蔬果·水果": 只留 葡萄/桃子/橙子(单个水果) -- 新食材归组: 胡萝卜碎/葱花碎/土豆块/青菜/青菜方块→蔬菜·切配; 稻谷→谷物·米面; 奶油→调味·佐料 [已调整] +- 新食材归组: 胡萝卜碎/葱花碎/土豆块/青菜/青菜碎→蔬菜·切配; 稻谷→谷物·米面; 奶油→调味·佐料 [已调整] - 乡野食材转化关系.txt 重写纳入新食材(8分组+新食材+稻谷/奶油/切配半成品) [已整理] - 关联补充: 稻谷→水稻种植(乡野自然)、土豆块→裹粉薯条(油锅) [已整理] @@ -430,3 +431,44 @@ FurnitureData+FurnitureService 实现, 注册到 FeatureDispatcher) 【留后】果树"树苗成长"机制 见 全部功能没做什么.txt 乡野自然节 + +######################################## +【乡野食材·切配与裹粉】(xy_ingredients) 2026-09-08 +######################################## +实现于 xiangyemod/shicai (ShicaiData + ShicaiService, 注册到 FeatureDispatcher) ++ 原版放置扩展 (yuanbanfangzhi/YuanbanData) + +一、原版放置(手持原版食材右键方块表面, 放置成"摆放地上"切配方块) +- 胡萝卜(minecraft:carrot) -> 切胡萝卜(摆放地上 cutcarrot_0) [已实现] +- 土豆(minecraft:potato) -> 切土豆(摆放地上 cutpotato_0) [已实现] +- 青菜(rtdd:qingcai) -> 切青菜(摆放地上 cutvegetable_0) [已实现] +- 葱(rtdd:scallions) -> 葱花_1(cutscallions_1) [已实现] + +二、菜刀切分(手持 菜刀cleaver 右键, 逐级切, 最后一级再切掉碎) +- 切胡萝卜: cutcarrot_0 -> _1 -> _2 -> _3 -> _4, 再切 -> 掉3胡萝卜碎 + 变空气 [已实现] +- 切土豆: cutpotato_0 -> _1 -> _2 -> _3 -> _4, 再切 -> 掉3土豆块 + 变空气 [已实现] +- 切青菜: cutvegetable_0 -> _1 -> _2 -> _3, 再切 -> 掉3青菜碎(vegetable) + 变空气 [已实现] +- 葱花: cutscallions_1 -> _2 -> _3 -> _4, 再切 -> 掉3葱花碎 + 变空气 [已实现] + +三、左键打碎切配方块 -> 掉原版食材(ShicaiService.handleDestroy) +- cutcarrot_0~4 -> 原版胡萝卜; cutpotato_0~4 -> 原版土豆 [已实现] +- cutvegetable_0~3 -> 青菜(qingcai); cutscallions_1~4 -> 葱(scallions) [已实现] + +四、蒜末(手持 菜刀 右键 大蒜cutgarlic, 3次) +- 大蒜 -> 掉16蒜末(crushedgarlic) + 变空气 [已实现] + +五、裹粉半成品(手持生食材右键 面粉块farineblock_3, 消耗面粉块变空气 + 掉落产物) +- 生鱼片(sashimi) x6 -> 裹粉的鱼(oilfish_0) x1 [已实现] +- 龙虾(lobster) x2 -> 裹粉的天妇罗(oiltempura) x1 [已实现] +- 原版猪肉 x1 -> 裹粉的猪肉(oilpork) x1 [已实现] +- 原版生鸡肉 x1 -> 裹粉的鸡块(oil_chickennuggets) x6 [已实现] +- 原版土豆 x1 -> 裹粉的薯条(oilfrenchfries) x10 [已实现] + +六、工作台配方(netease_recipes) +- 大蒜串: 大蒜x7 + 支杆(b_34)x2 -> garlicskewers (xy_garlicskewers) [已实现] +- 辣椒串: 辣椒(pepper)x7 + 支杆x2 -> chiliskewer (xy_chiliskewer) [已实现] +- 桃子堆: 桃子(peach)x9 -> peachpile_0 (xy_peachpile_0) [已实现] +- 橙子堆: 橙子(orange)x9 -> orangepile_0 (xy_orangepile_0) [已实现] + (注: 苹果/面包/胡萝卜/鳕鱼/土豆/鲑鱼堆 为既有 8合1(中间空) 配方; 鸡蛋堆为 9满格; + 分解配方待确认后补充, 见 全部功能没做什么.txt) + diff --git a/tuilun/全部功能没做什么.txt b/tuilun/全部功能没做什么.txt index 8a638c5..86f115c 100644 --- a/tuilun/全部功能没做什么.txt +++ b/tuilun/全部功能没做什么.txt @@ -94,6 +94,7 @@ - 设想: 床, 但是可以两个人一起睡 - 未做原因: 未实现 (家具家私转化关系.txt 静态段 todo 已标注) +厨具架 通过指针 所在 碰撞箱位置 取物品 比如左锅 右刀 指向哪个取哪个 ######################################## 【乡野食物】(xy_food)