diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/SpecialFunciton/BlueFoxMath.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/SpecialFunciton/BlueFoxMath.py index 2d15a4e..a6d6597 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/SpecialFunciton/BlueFoxMath.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/SpecialFunciton/BlueFoxMath.py @@ -1,5 +1,6 @@ # coding=utf-8 import time +from math import * class GraduallySum(object): diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/SystemTools.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/SystemTools.py index 72cf960..de44d15 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/SystemTools.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/SystemTools.py @@ -72,7 +72,7 @@ class SystemTools(object): """ return self.ListenForEvent(namespace=MOD_NAME, systemName='BlueFoxClientSystem') - def ListenForEvent(self, eventName=None, namespace=MC_SYSTEM_NAMESPACE, systemName=MC_SYSTEM_NAME, priority=0): + def ListenForEvent(self, namespace=MC_SYSTEM_NAMESPACE, systemName=MC_SYSTEM_NAME, eventName=None, priority=0): """ 监听事件,binding的服务端可监听服务端事件,binding的客户端则可监听客户端事件 :param eventName: 可选:事件名 or 不传入参数.若不传入参数,则将函数名称视为事件名称 @@ -99,13 +99,14 @@ class SystemTools(object): self.bindingInstance.ListenForEvent(*eventName) self.lastListened.add(eventName) - def FilterListener(self, eventName, namespace=MC_SYSTEM_NAMESPACE, systemName=MC_SYSTEM_NAME, priority=0): + def FilterListener(self, namespace=MC_SYSTEM_NAMESPACE, systemName=MC_SYSTEM_NAME, eventName=None, priority=0): """ 滤过监听器, 通常用于优化代码可读性 """ def Filter(*args): # type:(Callable) -> Callable + def Listener(func): _filter = EventFilter(func, self.bindingInstance, *args) EventName = (namespace, systemName, eventName, _filter, _filter.Filter, priority) diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/ToolsConfig.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/ToolsConfig.py index 340b9e3..b18dff4 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/ToolsConfig.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/BlueFoxTools/ToolsConfig.py @@ -5,7 +5,7 @@ import mod.client.extraClientApi as clientApi import mod.server.extraServerApi as serverApi if False: - pass + from typing import * IsDebug = 1 @@ -155,4 +155,8 @@ if not serverApi.IsInServer(): nativeScreenManager = clientApi.GetNativeScreenManagerCls().instance() # type:clientApi.GetNativeScreenManagerCls() viewBinder = clientApi.GetViewBinderCls() baseScreen = clientApi.GetScreenNodeCls() - customUIScreenProxy = clientApi.GetUIScreenProxyCls() \ No newline at end of file + customUIScreenProxy = clientApi.GetUIScreenProxyCls() +RootScreenPathHead = ( + 'variables_button_mappings_and_controls/safezone_screen_matrix/' + 'inner_matrix/safezone_screen_panel/root_screen_panel' +) diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Client/MainClient.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Client/MainClient.py index accd075..e4dcd47 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Client/MainClient.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Client/MainClient.py @@ -3,22 +3,24 @@ from ...BlueFoxTools.ModConfig import MOD_NAME from ...BlueFoxTools.SpecialFunciton.BlueFoxSystem import BlueFoxClientSystem from ...BlueFoxTools.SystemTools import SystemTools from ...BlueFoxTools.ToolsConfig import * +from ...BlueFoxTools.EventFilter import BlueFoxFilterEnum as ef class MainClient(BlueFoxClientSystem): systemTools = SystemTools.GetTools('MainClient') mcListener = systemTools.ListenForEvent() - blueFox = systemTools.GetBlueFoxServerListener() + blueFoxListener = systemTools.GetBlueFoxServerListener() mainServer = systemTools.ListenForEvent( namespace=MOD_NAME, systemName='MainServer' ) - blockUse = systemTools.FilterListener('ClientBlockUseEvent') + blockUseListener = systemTools.FilterListener(eventName='ClientItemUseOnEvent') def __init__(self, *args): super(MainClient, self).__init__(*args) self.systemTools.Binding(self) + self.usingCd = False - @blueFox + @blueFoxListener def PlaySound(self, args): posDim = args['posDim'] pitch = args['pitch'] @@ -27,13 +29,11 @@ class MainClient(BlueFoxClientSystem): args['soundName'], posDim[:3], pitch=pitch ) - # @blockUse(ef.ClientEvent.NormalEvent.NotInCd('rtdd:blockUse', 0.2)) - # def BlockUseNotIn02(self, args): - # print args - # blockName = args['blockName'] - # if blockName in blockName: - # args['cancel'] = True + @blockUseListener(ef.ClientEvent.NormalEvent.NotInCd('rtdd:ItemUseOnEvent', 0.2)) + def ClientItemUseOnEventNotInCd02(self, args): + if args['itemName'] == 'rtdd:recipe_book': + clientApi.PushScreen(MOD_NAME, 'CookRecipe', {}) - @blueFox + @blueFoxListener def PlayAttackAnim(self, args): clientCompFactory.CreatePlayer(LevelId).Swing() diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Client/__init__.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Client/__init__.py index e69de29..6fe4acd 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Client/__init__.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Client/__init__.py @@ -0,0 +1 @@ +import MainClient diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Server/__init__.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Server/__init__.py index e69de29..14dc0a4 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Server/__init__.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Server/__init__.py @@ -0,0 +1 @@ +import MainServer diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Ui/CookRecipe.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Ui/CookRecipe.py new file mode 100644 index 0000000..72f7bfa --- /dev/null +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Ui/CookRecipe.py @@ -0,0 +1,124 @@ +# coding=utf-8 +from ...BlueFoxTools.ScreenTools import ScreenTools +from ...BlueFoxTools.ScreenTools import ButtonTouchTypeEnum as btte +from ...BlueFoxTools.SystemTools import SystemTools +from ...BlueFoxTools.ToolsConfig import * + +allCookRecipe = [ + { + 'publicResult': 'rtdd:oilpan', # 共有步骤产生的结果 + 'publicStep': [ + {'itemName': 'rtdd:spatula', 'count': 1}, + {'itemName': 'rtdd:oilcan', 'count': 1}, + {}, + ], # 共有步骤 + 'splitStep': [ + { + 'result': 'rtdd:plate_24', # 分步骤产生的结果 + 'items': [{}, {}, {}], # 分步骤的物品 + } + ], # 分步骤,一页最多8个分步骤 + }, # 这是一页显示的数据 + { + 'publicResult': 'rtdd:oilpan', + 'publicStep': [ + {'itemName': 'rtdd:spatula', 'count': 1}, + {'itemName': 'rtdd:oilcan', 'count': 1}, + {}, + ], + 'splitStep': [] + } +] + + +@ScreenTools.AutoRegister('rtdd_caipu.RecipeScreen') +class CookRecipe(baseScreen): + screenTools = ScreenTools.GetTools('CookRecipe') + buttonBinder = screenTools.ButtonCallFuncBackBinder + + def __init__(self, *args): + super(CookRecipe, self).__init__(*args) + self.page = 0 + self.pageData = allCookRecipe[self.page] + + def Create(self): + self.screenTools.Binding(self) + lastButton = self.GetBaseUIControl(RootScreenPathHead + '/image/stack_panel1/last').asButton() + nextButton = self.GetBaseUIControl(RootScreenPathHead + '/image/stack_panel1/next').asButton() + lastButton.AddTouchEventParams() + nextButton.AddTouchEventParams() + lastButton.SetButtonTouchUpCallback(self.LastPage) + nextButton.SetButtonTouchUpCallback(self.NextPage) + + self.anyStepControlRoot = self.GetBaseUIControl(RootScreenPathHead + '/image/stack_panel') + self.anyStemControlItemCells = [] + for i in range(1, 5): + self.anyStemControlItemCells.append( + self.anyStepControlRoot.GetChildByName('item_cell{}'.format(i)).GetChildByName( + 'item_renderer' + ).asItemRenderer() + ) + self.splitStepControlRoot = self.GetBaseUIControl(RootScreenPathHead + '/image/recipe3') + self.splitStepControl = [] + for i in range(1, 5): + self.splitStepControl.append( + self.splitStepControlRoot.GetChildByName('recipe_list{}'.format(i)) + ) + self.Build() + + def RenderItem(self, itemRender, itemInfo): + if not itemInfo: + itemRender.SetUiItem('minecraft:air', 0) + return + itemName = itemInfo['itemName'] + count = itemInfo['count'] + itemRender.SetUiItem(itemName, 0) + if count <= 1: + itemRender.GetChildByName('label').SetVisible(False, False) + else: + itemRender.GetChildByName('label').SetVisible(True, False) + itemRender.GetChildByName('label').asLabel().SetText(str(count), False) + + def Build(self): + self.RenderItem( + self.anyStemControlItemCells[0], + {'itemName': self.pageData.get('publicResult', ''), 'count': 1} + ) + for _ in range(1, 4): + self.RenderItem( + self.anyStemControlItemCells[_], + self.pageData.get('publicStep', [{}, {}, {}, ])[_ - 1] + ) + splitStep = self.pageData.get('splitStep', []) + for index in range(4): + control = self.splitStepControl[index] + control.SetVisible(True, False) + for j in range(1, 3): + infoIndex = index * 2 + j - 1 + control_j = control.GetChildByName('recipe{}'.format(j)).GetChildByName('recipe') + if infoIndex >= len(splitStep): + control_j.SetVisible(False, False) + continue + control_j.SetVisible(True, False) + splitStepInfo = splitStep[infoIndex] + for k in range(1, 4): + itemCell = control_j.GetChildByName('item{}'.format(k)).asItemRenderer() + self.RenderItem(itemCell, splitStepInfo.get('items', [{}, {}, {}])[k - 1]) + itemCell = control_j.GetChildByName('item4').asItemRenderer() + self.RenderItem(itemCell, {'itemName': splitStepInfo.get('result', ''), 'count': 1}) + + def LastPage(self, args): + if self.page <= 0: return + self.page -= 1 + self.pageData = allCookRecipe[self.page] + self.Build() + + def NextPage(self, args): + if self.page >= len(allCookRecipe) - 1: return + self.page += 1 + self.pageData = allCookRecipe[self.page] + self.Build() + + @buttonBinder(btte.TouchUp, RootScreenPathHead + '/close') + def Close(self, args): + clientApi.PopScreen() diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Ui/__init__.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Ui/__init__.py new file mode 100644 index 0000000..78a7d74 --- /dev/null +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/Ui/__init__.py @@ -0,0 +1 @@ +import CookRecipe diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/__init__.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/__init__.py index e69de29..56f8d44 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/__init__.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/System/__init__.py @@ -0,0 +1,3 @@ +import Client +import Server +import Ui diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/modMain.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/modMain.py index 14aef5b..a140cd3 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/modMain.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/modMain.py @@ -1,3 +1,4 @@ +# coding=utf-8 from BlueFoxTools.ModLoader import * from xiangyemod.service.FeatureDispatcher import FeatureDispatcher from xiangyemod.dongwuyangzhi.service.AnimalService import AnimalService @@ -32,5 +33,8 @@ if not serverApi.IsInServer(): # 客户端进程: 导入客户端拦截系统(继承 BlueFoxClientSystem, 框架自动注册), # 提前取消右键默认行为, 消除服务端拦截的"闪一下" from xiangyemod.service.ClientFeatureDispatcher import ClientFeatureDispatcher + pass -LoadMod() \ No newline at end of file +import System + +LoadMod() diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/jiaju/FurnitureData.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/jiaju/FurnitureData.py index 504aebb..db55684 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/jiaju/FurnitureData.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/jiaju/FurnitureData.py @@ -148,20 +148,20 @@ CUPBOARD_RULES = [ # 书柜_13(12本)=bookcase_2, 书柜_14(13本)=bookcase_1 # ============================================================ _BOOKCASE_CHAIN = [ - "rtdd:bookcase", # 书柜_1(空) - "rtdd:bookcase_12", # 书柜_2(1本) - "rtdd:bookcase_11", # 书柜_3(2本) - "rtdd:bookcase_10", # 书柜_4(3本) - "rtdd:bookcase_9", # 书柜_5(4本) - "rtdd:bookcase_8", # 书柜_6(5本) - "rtdd:bookcase_7", # 书柜_7(6本) - "rtdd:bookcase_6", # 书柜_8(7本) - "rtdd:bookcase_5", # 书柜_9(8本) - "rtdd:bookcase_4", # 书柜_10(9本) - "rtdd:b_196", # 书柜_11(10本) - "rtdd:bookcase_3", # 书柜_12(11本) - "rtdd:bookcase_2", # 书柜_13(12本) - "rtdd:bookcase_1", # 书柜_14(13本) + "rtdd:bookcase", # 书柜_1(空) + "rtdd:bookcase_12", # 书柜_2(1本) + "rtdd:bookcase_11", # 书柜_3(2本) + "rtdd:bookcase_10", # 书柜_4(3本) + "rtdd:bookcase_9", # 书柜_5(4本) + "rtdd:bookcase_8", # 书柜_6(5本) + "rtdd:bookcase_7", # 书柜_7(6本) + "rtdd:bookcase_6", # 书柜_8(7本) + "rtdd:bookcase_5", # 书柜_9(8本) + "rtdd:bookcase_4", # 书柜_10(9本) + "rtdd:b_196", # 书柜_11(10本) + "rtdd:bookcase_3", # 书柜_12(11本) + "rtdd:bookcase_2", # 书柜_13(12本) + "rtdd:bookcase_1", # 书柜_14(13本) ] BOOKCASE_RULES = [] @@ -195,10 +195,10 @@ for _i in range(len(_BOOKCASE_CHAIN) - 1, 0, -1): # 药水架_3(两瓶)=lotion_2, 药水架_4(三瓶)=lotion_3 # ============================================================ _POTIONRACK_CHAIN = [ - "rtdd:lotion_0", # 药水架_1(空) - "rtdd:lotion_1", # 药水架_2(一瓶) - "rtdd:lotion_2", # 药水架_3(两瓶) - "rtdd:lotion_3", # 药水架_4(三瓶) + "rtdd:lotion_0", # 药水架_1(空) + "rtdd:lotion_1", # 药水架_2(一瓶) + "rtdd:lotion_2", # 药水架_3(两瓶) + "rtdd:lotion_3", # 药水架_4(三瓶) ] POTIONRACK_RULES = [] @@ -230,18 +230,18 @@ POTIONRACK_RULES.append({ # 可放: 锅铲(spatula) / 锅勺(potandspoon) / 菜刀(cleaver) / 炒锅(wok) # ============================================================ KITCHENRACK_BLOCKS = [ - "rtdd:kitchenwarerack", # 厨具架(空) - "rtdd:kitchenwareracka_1", # 单锅铲 - "rtdd:kitchenwareracka_2", # 双锅铲 - "rtdd:kitchenwareracka_3", # 锅铲+锅勺 - "rtdd:kitchenwarerackb_1", # 单锅勺 - "rtdd:kitchenwarerackb_2", # 双锅勺 - "rtdd:kitchenwarerackc_1", # 单炒锅 - "rtdd:kitchenwarerackc_2", # 炒锅+菜刀 - "rtdd:kitchenwarerackd_1", # 单菜刀 - "rtdd:kitchenwarerackd_2", # 菜刀+锅铲 - "rtdd:kitchenwarerackd_3", # 双菜刀 - "rtdd:kitchenwarerackd_4", # 菜刀+锅勺 + "rtdd:kitchenwarerack", # 厨具架(空) + "rtdd:kitchenwareracka_1", # 单锅铲 + "rtdd:kitchenwareracka_2", # 双锅铲 + "rtdd:kitchenwareracka_3", # 锅铲+锅勺 + "rtdd:kitchenwarerackb_1", # 单锅勺 + "rtdd:kitchenwarerackb_2", # 双锅勺 + "rtdd:kitchenwarerackc_1", # 单炒锅 + "rtdd:kitchenwarerackc_2", # 炒锅+菜刀 + "rtdd:kitchenwarerackd_1", # 单菜刀 + "rtdd:kitchenwarerackd_2", # 菜刀+锅铲 + "rtdd:kitchenwarerackd_3", # 双菜刀 + "rtdd:kitchenwarerackd_4", # 菜刀+锅勺 ] # 可上架的厨具物品 @@ -257,30 +257,30 @@ KITCHENRACK_SINGLE_BLOCK = { # 双件组合(sorted) -> 对应方块, 顺序无关(先放A再放B == 先放B再放A) KITCHENRACK_COMBO_BLOCK = { - ("rtdd:potandspoon", "rtdd:spatula"): "rtdd:kitchenwareracka_3", # 锅铲+锅勺 - ("rtdd:cleaver", "rtdd:wok"): "rtdd:kitchenwarerackc_2", # 炒锅+菜刀 - ("rtdd:cleaver", "rtdd:spatula"): "rtdd:kitchenwarerackd_2", # 菜刀+锅铲 - ("rtdd:cleaver", "rtdd:potandspoon"): "rtdd:kitchenwarerackd_4", # 菜刀+锅勺 - ("rtdd:spatula", "rtdd:spatula"): "rtdd:kitchenwareracka_2", # 双锅铲 + ("rtdd:potandspoon", "rtdd:spatula"): "rtdd:kitchenwareracka_3", # 锅铲+锅勺 + ("rtdd:cleaver", "rtdd:wok"): "rtdd:kitchenwarerackc_2", # 炒锅+菜刀 + ("rtdd:cleaver", "rtdd:spatula"): "rtdd:kitchenwarerackd_2", # 菜刀+锅铲 + ("rtdd:cleaver", "rtdd:potandspoon"): "rtdd:kitchenwarerackd_4", # 菜刀+锅勺 + ("rtdd:spatula", "rtdd:spatula"): "rtdd:kitchenwareracka_2", # 双锅铲 ("rtdd:potandspoon", "rtdd:potandspoon"): "rtdd:kitchenwarerackb_2", # 双锅勺 - ("rtdd:cleaver", "rtdd:cleaver"): "rtdd:kitchenwarerackd_3", # 双菜刀 + ("rtdd:cleaver", "rtdd:cleaver"): "rtdd:kitchenwarerackd_3", # 双菜刀 } # 方块状态 -> 厨具物品列表(名称即组合, 顺序按方块名从左到右, 最后一件=后放入) # 用于"无记录"时推断(如创造模式直接放置带厨具的厨具架), 取回按此顺序后放先取 KITCHENRACK_BLOCK_ITEMS = { - "rtdd:kitchenwarerack": [], # 空 - "rtdd:kitchenwareracka_1": ["rtdd:spatula"], # 单锅铲 - "rtdd:kitchenwareracka_2": ["rtdd:spatula", "rtdd:spatula"], # 双锅铲 + "rtdd:kitchenwarerack": [], # 空 + "rtdd:kitchenwareracka_1": ["rtdd:spatula"], # 单锅铲 + "rtdd:kitchenwareracka_2": ["rtdd:spatula", "rtdd:spatula"], # 双锅铲 "rtdd:kitchenwareracka_3": ["rtdd:spatula", "rtdd:potandspoon"], # 锅铲+锅勺 - "rtdd:kitchenwarerackb_1": ["rtdd:potandspoon"], # 单锅勺 + "rtdd:kitchenwarerackb_1": ["rtdd:potandspoon"], # 单锅勺 "rtdd:kitchenwarerackb_2": ["rtdd:potandspoon", "rtdd:potandspoon"], # 双锅勺 - "rtdd:kitchenwarerackc_1": ["rtdd:wok"], # 单炒锅 - "rtdd:kitchenwarerackc_2": ["rtdd:wok", "rtdd:cleaver"], # 炒锅+菜刀 - "rtdd:kitchenwarerackd_1": ["rtdd:cleaver"], # 单菜刀 - "rtdd:kitchenwarerackd_2": ["rtdd:cleaver", "rtdd:spatula"], # 菜刀+锅铲 - "rtdd:kitchenwarerackd_3": ["rtdd:cleaver", "rtdd:cleaver"], # 双菜刀 - "rtdd:kitchenwarerackd_4": ["rtdd:cleaver", "rtdd:potandspoon"], # 菜刀+锅勺 + "rtdd:kitchenwarerackc_1": ["rtdd:wok"], # 单炒锅 + "rtdd:kitchenwarerackc_2": ["rtdd:wok", "rtdd:cleaver"], # 炒锅+菜刀 + "rtdd:kitchenwarerackd_1": ["rtdd:cleaver"], # 单菜刀 + "rtdd:kitchenwarerackd_2": ["rtdd:cleaver", "rtdd:spatula"], # 菜刀+锅铲 + "rtdd:kitchenwarerackd_3": ["rtdd:cleaver", "rtdd:cleaver"], # 双菜刀 + "rtdd:kitchenwarerackd_4": ["rtdd:cleaver", "rtdd:potandspoon"], # 菜刀+锅勺 } # ============================================================ @@ -339,11 +339,11 @@ FIREPLACE_RULES = [ # 与售卖盒不同: 破坏后记录随方块一起消失, 重新放置右键取不到东西。 # ============================================================ STORAGE_EMPTY_BLOCK = {} -for _b in _BOOKCASE_CHAIN[1:]: # 书柜_2~14(有书) -> 书柜_1(空) +for _b in _BOOKCASE_CHAIN[1:]: # 书柜_2~14(有书) -> 书柜_1(空) STORAGE_EMPTY_BLOCK[_b] = _BOOKCASE_CHAIN[0] -for _b in _POTIONRACK_CHAIN[1:]: # 药水架_2~4(有药水) -> 药水架_1(空) +for _b in _POTIONRACK_CHAIN[1:]: # 药水架_2~4(有药水) -> 药水架_1(空) STORAGE_EMPTY_BLOCK[_b] = _POTIONRACK_CHAIN[0] -for _b in KITCHENRACK_BLOCKS[1:]: # 厨具架各形态 -> 厨具架(空) +for _b in KITCHENRACK_BLOCKS[1:]: # 厨具架各形态 -> 厨具架(空) STORAGE_EMPTY_BLOCK[_b] = KITCHENRACK_BLOCKS[0] # ============================================================ diff --git a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/service/ClientFeatureDispatcher.py b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/service/ClientFeatureDispatcher.py index 20a2443..58f706a 100644 --- a/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/service/ClientFeatureDispatcher.py +++ b/behavior_pack_v8jz0zSR/Script_NeteaseModousIY5aSF/xiangyemod/service/ClientFeatureDispatcher.py @@ -81,12 +81,16 @@ class ClientFeatureDispatcher(BlueFoxClientSystem): def Destroy(self): print "===== ClientFeatureDispatcher Destroy =====" - self.UnListenForEvent(clientApi.GetEngineNamespace(), - clientApi.GetEngineSystemName(), - "ClientItemUseOnEvent", self, self.OnItemUseOn) - self.UnListenForEvent(clientApi.GetEngineNamespace(), - clientApi.GetEngineSystemName(), - "ClientItemTryUseEvent", self, self.OnItemTryUse) + self.UnListenForEvent( + clientApi.GetEngineNamespace(), + clientApi.GetEngineSystemName(), + "ClientItemUseOnEvent", self, self.OnItemUseOn + ) + self.UnListenForEvent( + clientApi.GetEngineNamespace(), + clientApi.GetEngineSystemName(), + "ClientItemTryUseEvent", self, self.OnItemTryUse + ) # ============================================================================ # 入口1: 手持物品右键方块表面 -> 白名单组合才 ret (取消默认放置/吃) @@ -128,7 +132,7 @@ class ClientFeatureDispatcher(BlueFoxClientSystem): if blockName and (itemName, blockName) in BLOCKUSE_CANCEL: args["ret"] = True self._blockCd[cdKey] = time.time() - self._blockCdPlayer[pId] = time.time() # 玩家级短标记, 取消随后 0.2s 内投掷动画 + self._blockCdPlayer[pId] = time.time() # 玩家级短标记, 取消随后 0.2s 内投掷动画 self.NotifyToServer(BLOCK_USE_REQUEST, { "playerId": pId, "x": args.get("x"), "y": args.get("y"), "z": args.get("z"), @@ -228,17 +232,16 @@ class ClientFeatureDispatcher(BlueFoxClientSystem): # 饭团/水煮蛋/豆腐 在 ITEM_USE_ON_CANCEL_BY_ITEM 里(EAT_ITEMS) if itemName in ITEM_USE_ON_CANCEL_BY_ITEM: args["cancel"] = True - # 投掷/使用抑制: 玩家刚做过 BlockUse 转换(0.2s 内, 如放蛋/放料), 引擎重置右键会立即 - # 再触发一次"投掷/使用"动画(鸡蛋右键鸡窝放蛋 -> 扔蛋)。此窗口内若手持 BlockUse 可投掷/ - # 可用物品, 直接 cancel 掉投掷; 窗口过后放行(对地扔蛋正常)。 - # 注意: 玩家级标记(pId)而非坐标——投掷事件无目标方块坐标, 只有玩家。0.2s 极短且仅在 - # 刚做完方块转换后生效, 不会影响玩家正常对地面/空中扔蛋。 - _pId = args.get("playerId") or args.get("entityId") - _pc = self._blockCdPlayer.get(_pId, 0) - if _pc and (time.time() - _pc) < 0.2 and itemName in BLOCKUSE_CANCEL_ITEMS: - args["cancel"] = True - + # 投掷/使用抑制: 玩家刚做过 BlockUse 转换(0.2s 内, 如放蛋/放料), 引擎重置右键会立即 + # 再触发一次"投掷/使用"动画(鸡蛋右键鸡窝放蛋 -> 扔蛋)。此窗口内若手持 BlockUse 可投掷/ + # 可用物品, 直接 cancel 掉投掷; 窗口过后放行(对地扔蛋正常)。 + # 注意: 玩家级标记(pId)而非坐标——投掷事件无目标方块坐标, 只有玩家。0.2s 极短且仅在 + # 刚做完方块转换后生效, 不会影响玩家正常对地面/空中扔蛋。 + _pId = args.get("playerId") or args.get("entityId") + _pc = self._blockCdPlayer.get(_pId, 0) + if _pc and (time.time() - _pc) < 0.2 and itemName in BLOCKUSE_CANCEL_ITEMS: + args["cancel"] = True # 注: 客户端系统需在客户端进程被实例化。modMain 只能在服务端 import 服务端 # 系统; 客户端系统由 BlueFox 框架自动注册其子类。为确保本类被加载, 需在 -# modMain 客户端分支(IsInServer()==False)里 import 本模块。 \ No newline at end of file +# modMain 客户端分支(IsInServer()==False)里 import 本模块。 diff --git a/behavior_pack_v8jz0zSR/netease_items_beh/rtdd_recipe_book.json b/behavior_pack_v8jz0zSR/netease_items_beh/rtdd_recipe_book.json new file mode 100644 index 0000000..ea0f699 --- /dev/null +++ b/behavior_pack_v8jz0zSR/netease_items_beh/rtdd_recipe_book.json @@ -0,0 +1,12 @@ +{ + "format_version": "1.10", + "minecraft:item": { + "components": { + "minecraft:max_stack_size": 1 + }, + "description": { + "category": "items", + "identifier": "rtdd:recipe_book" + } + } +} \ No newline at end of file diff --git a/resource_pack_Are13Lvd/netease_items_res/rtdd_recipe_book.json b/resource_pack_Are13Lvd/netease_items_res/rtdd_recipe_book.json new file mode 100644 index 0000000..2d4cbb4 --- /dev/null +++ b/resource_pack_Are13Lvd/netease_items_res/rtdd_recipe_book.json @@ -0,0 +1,11 @@ +{ + "format_version": "1.10", + "minecraft:item": { + "components": { + "minecraft:icon": "rtdd:recipe_book" + }, + "description": { + "identifier": "rtdd:recipe_book" + } + } +} \ 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 591972f..d5e6e34 100644 --- a/resource_pack_Are13Lvd/texts/zh_CN.lang +++ b/resource_pack_Are13Lvd/texts/zh_CN.lang @@ -1243,5 +1243,6 @@ item.rtdd:vegetable.name=青菜碎 item.rtdd:qingcai.name=青菜 item.rtdd:rice_balls.name=饭团 item.rtdd:boiled_egg.name=水煮蛋 +item.rtdd:recipe_book.name=乡野装饰:菜谱 entity.villager_v2.name=村民 item.spawn_egg.entity.villager_v2.name=村民生物蛋 diff --git a/resource_pack_Are13Lvd/textures/item_texture.json b/resource_pack_Are13Lvd/textures/item_texture.json index 394671e..fa76252 100644 --- a/resource_pack_Are13Lvd/textures/item_texture.json +++ b/resource_pack_Are13Lvd/textures/item_texture.json @@ -7,6 +7,9 @@ "beef_tenderloin": { "textures": "textures/items/beef_tenderloin" }, + "boiled_egg": { + "textures": "textures/items/boiled_egg" + }, "brownrice": { "textures": "textures/items/rice" }, @@ -19,6 +22,15 @@ "crab": { "textures": "textures/items/crab" }, + "cream_0": { + "textures": "textures/items/cream_0" + }, + "crushed_carrots": { + "textures": "textures/items/crushed_carrots" + }, + "crushed_scallions": { + "textures": "textures/items/crushed_scallions" + }, "crushedgarlic": { "textures": "textures/items/crushedgarlic" }, @@ -76,9 +88,24 @@ "potandspoon": { "textures": "textures/items/pot_and_spoon" }, + "potato_wedges": { + "textures": "textures/items/potato_wedges" + }, + "qingcai": { + "textures": "textures/items/meiqiedeqingcai" + }, "rawsquidwhiskersr": { "textures": "textures/items/rawsquidwhiskersr" }, + "rice_balls": { + "textures": "textures/items/rice_balls" + }, + "rice_seeds": { + "textures": "textures/items/rice_seeds" + }, + "rtdd:recipe_book": { + "textures": "textures/items/rtdd/rtdd_recipe_book" + }, "rtdd:soybean": { "textures": "textures/items/soybean" }, @@ -106,32 +133,8 @@ "thedriedfish": { "textures": "textures/items/thedriedfish" }, - "boiled_egg": { - "textures": "textures/items/boiled_egg" - }, - "cream_0": { - "textures": "textures/items/cream_0" - }, - "crushed_carrots": { - "textures": "textures/items/crushed_carrots" - }, - "crushed_scallions": { - "textures": "textures/items/crushed_scallions" - }, - "potato_wedges": { - "textures": "textures/items/potato_wedges" - }, - "rice_balls": { - "textures": "textures/items/rice_balls" - }, - "rice_seeds": { - "textures": "textures/items/rice_seeds" - }, "vegetable": { "textures": "textures/items/vegetable" - }, - "qingcai": { - "textures": "textures/items/meiqiedeqingcai" } } } \ No newline at end of file diff --git a/resource_pack_Are13Lvd/textures/items/rtdd/rtdd_recipe_book.png b/resource_pack_Are13Lvd/textures/items/rtdd/rtdd_recipe_book.png new file mode 100644 index 0000000..314c27f Binary files /dev/null and b/resource_pack_Are13Lvd/textures/items/rtdd/rtdd_recipe_book.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/chaoguo/xiang_ye_zhuang_shi_cai_pu_-chao_guo_.png b/resource_pack_Are13Lvd/textures/ui/rtdd/chaoguo/xiang_ye_zhuang_shi_cai_pu_-chao_guo_.png new file mode 100644 index 0000000..dbc6909 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/chaoguo/xiang_ye_zhuang_shi_cai_pu_-chao_guo_.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/chaoguo/xiang_ye_zhuang_shi_cai_pu_-chao_guo_2.png b/resource_pack_Are13Lvd/textures/ui/rtdd/chaoguo/xiang_ye_zhuang_shi_cai_pu_-chao_guo_2.png new file mode 100644 index 0000000..124b197 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/chaoguo/xiang_ye_zhuang_shi_cai_pu_-chao_guo_2.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/chaoguo/xiang_ye_zhuang_shi_cai_pu_-chao_guo_3.png b/resource_pack_Are13Lvd/textures/ui/rtdd/chaoguo/xiang_ye_zhuang_shi_cai_pu_-chao_guo_3.png new file mode 100644 index 0000000..2b41602 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/chaoguo/xiang_ye_zhuang_shi_cai_pu_-chao_guo_3.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/close.png b/resource_pack_Are13Lvd/textures/ui/rtdd/close.png new file mode 100644 index 0000000..2173912 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/close.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/first_page.png b/resource_pack_Are13Lvd/textures/ui/rtdd/first_page.png new file mode 100644 index 0000000..e9029bf Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/first_page.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/item_cell.png b/resource_pack_Are13Lvd/textures/ui/rtdd/item_cell.png new file mode 100644 index 0000000..25b9b16 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/item_cell.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_.png b/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_.png new file mode 100644 index 0000000..f90ab6f Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_1.png b/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_1.png new file mode 100644 index 0000000..2626b44 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_1.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_2.png b/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_2.png new file mode 100644 index 0000000..2626b44 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_2.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_3.png b/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_3.png new file mode 100644 index 0000000..0c4911b Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_cai_pu_-shou_si_he_la_mian_3.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_tie_shu.png b/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_tie_shu.png new file mode 100644 index 0000000..138d4bf Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/lamian/xiang_ye_zhuang_shi_tie_shu.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/last.png b/resource_pack_Are13Lvd/textures/ui/rtdd/last.png new file mode 100644 index 0000000..a050daa Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/last.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/next.png b/resource_pack_Are13Lvd/textures/ui/rtdd/next.png new file mode 100644 index 0000000..efe0423 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/next.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/next_op.png b/resource_pack_Are13Lvd/textures/ui/rtdd/next_op.png new file mode 100644 index 0000000..3157bbc Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/next_op.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/recipe.png b/resource_pack_Are13Lvd/textures/ui/rtdd/recipe.png new file mode 100644 index 0000000..e55d4a0 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/recipe.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/split3.png b/resource_pack_Are13Lvd/textures/ui/rtdd/split3.png new file mode 100644 index 0000000..26c517d Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/split3.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_.png b/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_.png new file mode 100644 index 0000000..e379a73 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_2.png b/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_2.png new file mode 100644 index 0000000..cd46c68 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_2.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_3.png b/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_3.png new file mode 100644 index 0000000..83e1a59 Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_3.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_4.png b/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_4.png new file mode 100644 index 0000000..f8af3db Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/tangguo/xiang_ye_zhuang_shi_cai_pu_-tang_guo_4.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/tieshu/xiang_ye_zhuang_shi_tie_shu_1.png b/resource_pack_Are13Lvd/textures/ui/rtdd/tieshu/xiang_ye_zhuang_shi_tie_shu_1.png new file mode 100644 index 0000000..6f5035a Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/tieshu/xiang_ye_zhuang_shi_tie_shu_1.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/tieshu/xiang_ye_zhuang_shi_tie_shu_2.png b/resource_pack_Are13Lvd/textures/ui/rtdd/tieshu/xiang_ye_zhuang_shi_tie_shu_2.png new file mode 100644 index 0000000..c6f93ed Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/tieshu/xiang_ye_zhuang_shi_tie_shu_2.png differ diff --git a/resource_pack_Are13Lvd/textures/ui/rtdd/tieshu/xiang_ye_zhuang_shi_tie_shu_3.png b/resource_pack_Are13Lvd/textures/ui/rtdd/tieshu/xiang_ye_zhuang_shi_tie_shu_3.png new file mode 100644 index 0000000..909816a Binary files /dev/null and b/resource_pack_Are13Lvd/textures/ui/rtdd/tieshu/xiang_ye_zhuang_shi_tie_shu_3.png differ diff --git a/resource_pack_Are13Lvd/ui/_ui_defs.json b/resource_pack_Are13Lvd/ui/_ui_defs.json new file mode 100644 index 0000000..c18f0d8 --- /dev/null +++ b/resource_pack_Are13Lvd/ui/_ui_defs.json @@ -0,0 +1,5 @@ +{ + "ui_defs": [ + "ui/rtdd_caipu.json" + ] +} \ No newline at end of file diff --git a/resource_pack_Are13Lvd/ui/rtdd_caipu.json b/resource_pack_Are13Lvd/ui/rtdd_caipu.json new file mode 100644 index 0000000..24756ee --- /dev/null +++ b/resource_pack_Are13Lvd/ui/rtdd_caipu.json @@ -0,0 +1,1346 @@ +{ + "RecipeScreen@common.base_screen": { + "$screen_content": "rtdd_caipu.recipeScreen" + }, + "item_cell": { + "type": "image", + "size": [ + 24.0, + 24.0 + ], + "layer": 1, + "clip_direction": "left", + "clip_ratio": 0.0, + "nineslice_size": [ + 1.0, + 1.0, + 1.0, + 1.0 + ], + "texture": "textures/ui/rtdd/item_cell", + "controls": [ + { + "item_renderer": { + "type": "custom", + "renderer": "inventory_item_renderer", + "size": [ + "100%+-4px", + "100%+-4px" + ], + "layer": 1, + "property_bag": { + "#item_id_aux": 131072 + }, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "bottom_right", + "anchor_to": "bottom_right", + "layer": 2, + "font_scale_factor": 0.8, + "font_type": "unicode", + "text": "1", + "text_alignment": "center" + } + } + ] + } + } + ] + }, + "main": { + "type": "screen" + }, + "namespace": "rtdd_caipu", + "recipeScreen": { + "type": "panel", + "layer": 1, + "controls": [ + { + "close@common.button": { + "type": "button", + "$control_alpha": 1.0, + "$default_texture": "textures/ui/rtdd/close", + "$hover_texture": "textures/ui/rtdd/close", + "$is_new_nine_slice": false, + "$label_color": [ + 1, + 1, + 1 + ], + "$label_font_scale_factor": 1.0, + "$label_font_size": "large", + "$label_layer": 3, + "$label_offset": [ + 0, + 0 + ], + "$label_text": "", + "$nine_slice_buttom": 0, + "$nine_slice_left": 0, + "$nine_slice_right": 0, + "$nine_slice_top": 0, + "$nineslice_size": [ + 0, + 0, + 0, + 0 + ], + "$pressed_button_name": "%netease_editor_template_namespace.click", + "$pressed_texture": "textures/ui/rtdd/close", + "$texture_layer": 2, + "offset": [ + 145.0, + -58.0 + ], + "size": [ + "121.8%y+0px", + 20.0 + ], + "layer": 0, + "button_mappings": [], + "default_control": "default", + "hover_control": "hover", + "is_handle_button_move_event": true, + "pressed_control": "pressed", + "bindings": [ + { + "binding_type": "collection_details", + "binding_collection_name": "", + "binding_condition": "always_when_visible" + } + ], + "controls": [ + { + "default@netease_editor_template_namespace.default": {} + }, + { + "hover@netease_editor_template_namespace.hover": {} + }, + { + "pressed@netease_editor_template_namespace.pressed": {} + }, + { + "button_label@netease_editor_template_namespace.button_label": {} + } + ] + } + }, + { + "image": { + "type": "image", + "size": [ + 270.0, + 138.0 + ], + "layer": 2, + "clip_direction": "left", + "clip_ratio": 0.0, + "nineslice_size": [ + 12.0, + 9.0, + 12.0, + 9.0 + ], + "texture": "textures/ui/rtdd/recipe", + "controls": [ + { + "recipe1@rtdd_caipu.recipe_all_1": { + "visible": false + } + }, + { + "recipe2@rtdd_caipu.recipe_all_2": { + "layer": 6030, + "visible": false + } + }, + { + "recipe3@rtdd_caipu.recipe_all_3": { + "anchor_from": "bottom_left", + "anchor_to": "bottom_left", + "layer": 11099, + "offset": [ + 21, + -9 + ] + } + }, + { + "stack_panel": { + "type": "stack_panel", + "anchor_from": "top_left", + "anchor_to": "top_left", + "offset": [ + 19.0, + 9.0 + ], + "size": [ + "default", + 24.0 + ], + "layer": 16576, + "orientation": "horizontal", + "controls": [ + { + "empty0": { + "type": "panel", + "size": [ + 23.0, + "default" + ], + "layer": 1, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "left_middle", + "anchor_to": "left_middle", + "layer": 1, + "color": [ + 0.5294117647058824, + 0.2901960784313726, + 0.1764705882352941 + ], + "font_type": "default", + "text": "结果:", + "text_alignment": "center" + } + } + ] + } + }, + { + "item_cell1@rtdd_caipu.item_cell": { + "layer": 3 + } + }, + { + "empty1": { + "type": "panel", + "size": [ + 55.0, + "default" + ], + "layer": 7, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "left_middle", + "anchor_to": "left_middle", + "offset": [ + 7.0, + 0.0 + ], + "layer": 1, + "color": [ + 0.5294117647058824, + 0.2901960784313726, + 0.1764705882352941 + ], + "font_type": "default", + "text": "共有步骤:", + "text_alignment": "center" + } + } + ] + } + }, + { + "item_cell2@rtdd_caipu.item_cell": { + "layer": 9 + } + }, + { + "empty2": { + "type": "panel", + "size": [ + 2.0, + "default" + ], + "layer": 13 + } + }, + { + "image1": { + "type": "image", + "size": [ + 24.0, + "default" + ], + "layer": 14, + "clip_direction": "left", + "clip_ratio": 0.0, + "texture": "textures/ui/rtdd/next_op" + } + }, + { + "empty3": { + "type": "panel", + "size": [ + 2.0, + "default" + ], + "layer": 15 + } + }, + { + "item_cell3@rtdd_caipu.item_cell": { + "layer": 16 + } + }, + { + "empty4": { + "type": "panel", + "size": [ + 2.0, + "default" + ], + "layer": 20 + } + }, + { + "image2": { + "type": "image", + "size": [ + 24.0, + "default" + ], + "layer": 21, + "clip_direction": "left", + "clip_ratio": 0.0, + "texture": "textures/ui/rtdd/next_op" + } + }, + { + "empty5": { + "type": "panel", + "size": [ + 2.0, + "default" + ], + "layer": 22 + } + }, + { + "item_cell4@rtdd_caipu.item_cell": { + "layer": 23 + } + } + ] + } + }, + { + "stack_panel1": { + "type": "stack_panel", + "anchor_from": "bottom_middle", + "anchor_to": "top_middle", + "size": [ + "default", + 20.0 + ], + "layer": 1, + "orientation": "horizontal", + "controls": [ + { + "last@common.button": { + "type": "button", + "$control_alpha": 1.0, + "$default_texture": "textures/ui/rtdd/last", + "$hover_texture": "textures/ui/rtdd/last", + "$is_new_nine_slice": false, + "$label_color": [ + 1, + 1, + 1 + ], + "$label_font_scale_factor": 1.0, + "$label_font_size": "large", + "$label_layer": 3, + "$label_offset": [ + 0, + 0 + ], + "$label_text": "", + "$nine_slice_buttom": 0, + "$nine_slice_left": 0, + "$nine_slice_right": 0, + "$nine_slice_top": 0, + "$nineslice_size": [ + 0, + 0, + 0, + 0 + ], + "$pressed_button_name": "%netease_editor_template_namespace.click", + "$pressed_texture": "textures/ui/rtdd/last", + "$texture_layer": 2, + "size": [ + 20.0, + 20.0 + ], + "layer": 2, + "button_mappings": [], + "default_control": "default", + "hover_control": "hover", + "is_handle_button_move_event": true, + "pressed_control": "pressed", + "bindings": [ + { + "binding_type": "collection_details", + "binding_collection_name": "", + "binding_condition": "always_when_visible" + } + ], + "controls": [ + { + "default@netease_editor_template_namespace.default": {} + }, + { + "hover@netease_editor_template_namespace.hover": {} + }, + { + "pressed@netease_editor_template_namespace.pressed": {} + }, + { + "button_label@netease_editor_template_namespace.button_label": {} + } + ] + } + }, + { + "empty": { + "type": "panel", + "size": [ + 80.0, + 20.0 + ], + "layer": 1 + } + }, + { + "next@common.button": { + "type": "button", + "$control_alpha": 1.0, + "$default_texture": "textures/ui/rtdd/next", + "$hover_texture": "textures/ui/rtdd/next", + "$is_new_nine_slice": false, + "$label_color": [ + 1, + 1, + 1 + ], + "$label_font_scale_factor": 1.0, + "$label_font_size": "large", + "$label_layer": 3, + "$label_offset": [ + 0, + 0 + ], + "$label_text": "", + "$nine_slice_buttom": 0, + "$nine_slice_left": 0, + "$nine_slice_right": 0, + "$nine_slice_top": 0, + "$nineslice_size": [ + 0, + 0, + 0, + 0 + ], + "$pressed_button_name": "%netease_editor_template_namespace.click", + "$pressed_texture": "textures/ui/rtdd/next", + "$texture_layer": 2, + "size": [ + 20.0, + 20.0 + ], + "layer": 2, + "button_mappings": [], + "default_control": "default", + "hover_control": "hover", + "is_handle_button_move_event": true, + "pressed_control": "pressed", + "bindings": [ + { + "binding_type": "collection_details", + "binding_collection_name": "", + "binding_condition": "always_when_visible" + } + ], + "controls": [ + { + "default@netease_editor_template_namespace.default": {} + }, + { + "hover@netease_editor_template_namespace.hover": {} + }, + { + "pressed@netease_editor_template_namespace.pressed": {} + }, + { + "button_label@netease_editor_template_namespace.button_label": {} + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "recipe_1": { + "type": "stack_panel", + "size": [ + "default", + 21.0 + ], + "layer": 1, + "orientation": "horizontal", + "controls": [ + { + "item1": { + "type": "custom", + "renderer": "inventory_item_renderer", + "size": [ + 21.0, + "default" + ], + "layer": 1, + "property_bag": { + "#item_id_aux": 131072 + }, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "bottom_right", + "anchor_to": "bottom_right", + "layer": 1, + "font_scale_factor": 0.8, + "font_type": "unicode", + "shadow": true, + "text": "1", + "text_alignment": "center" + } + } + ] + } + }, + { + "empty1": { + "type": "panel", + "size": [ + 2.0, + 21.0 + ], + "layer": 3 + } + }, + { + "image": { + "type": "image", + "size": [ + 21.0, + "default" + ], + "layer": 4, + "clip_direction": "left", + "clip_ratio": 0.0, + "texture": "textures/ui/rtdd/next" + } + }, + { + "item2": { + "type": "custom", + "renderer": "inventory_item_renderer", + "size": [ + 21.0, + "default" + ], + "layer": 5, + "property_bag": { + "#item_id_aux": 131072 + }, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "bottom_right", + "anchor_to": "bottom_right", + "layer": 1, + "font_scale_factor": 0.8, + "font_type": "unicode", + "shadow": true, + "text": "1", + "text_alignment": "center" + } + } + ] + } + }, + { + "empty2": { + "type": "panel", + "size": [ + 2.0, + 21.0 + ], + "layer": 7 + } + } + ] + }, + "recipe_2": { + "type": "stack_panel", + "size": [ + "default", + 21.0 + ], + "layer": 1, + "orientation": "horizontal", + "controls": [ + { + "item1": { + "type": "custom", + "renderer": "inventory_item_renderer", + "size": [ + 21.0, + "default" + ], + "layer": 1, + "property_bag": { + "#item_id_aux": 131072 + }, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "bottom_right", + "anchor_to": "bottom_right", + "layer": 1, + "font_scale_factor": 0.8, + "font_type": "unicode", + "shadow": true, + "text": "1", + "text_alignment": "center" + } + } + ] + } + }, + { + "empty1": { + "type": "panel", + "size": [ + 2.0, + 21.0 + ], + "layer": 3 + } + }, + { + "item2": { + "type": "custom", + "renderer": "inventory_item_renderer", + "size": [ + 21.0, + "default" + ], + "layer": 4, + "property_bag": { + "#item_id_aux": 131072 + }, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "bottom_right", + "anchor_to": "bottom_right", + "layer": 1, + "font_scale_factor": 0.8, + "font_type": "unicode", + "shadow": true, + "text": "1", + "text_alignment": "center" + } + } + ] + } + }, + { + "empty2": { + "type": "panel", + "size": [ + 2.0, + 21.0 + ], + "layer": 6 + } + }, + { + "image": { + "type": "image", + "size": [ + 21.0, + "default" + ], + "layer": 10, + "clip_direction": "left", + "clip_ratio": 0.0, + "texture": "textures/ui/rtdd/next" + } + }, + { + "empty3": { + "type": "panel", + "size": [ + 2.0, + 21.0 + ], + "layer": 11 + } + }, + { + "item3": { + "type": "custom", + "renderer": "inventory_item_renderer", + "size": [ + 21.0, + "default" + ], + "layer": 12, + "property_bag": { + "#item_id_aux": 131072 + }, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "bottom_right", + "anchor_to": "bottom_right", + "layer": 1, + "font_scale_factor": 0.8, + "font_type": "unicode", + "shadow": true, + "text": "1", + "text_alignment": "center" + } + } + ] + } + } + ] + }, + "recipe_3": { + "type": "stack_panel", + "size": [ + "default", + 21.0 + ], + "layer": 1, + "orientation": "horizontal", + "controls": [ + { + "item1": { + "type": "custom", + "renderer": "inventory_item_renderer", + "size": [ + 21.0, + "default" + ], + "layer": 1, + "property_bag": { + "#item_id_aux": 131072 + }, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "bottom_right", + "anchor_to": "bottom_right", + "layer": 1, + "font_scale_factor": 0.8, + "font_type": "unicode", + "shadow": true, + "text": "1", + "text_alignment": "center" + } + } + ] + } + }, + { + "empty1": { + "type": "panel", + "size": [ + 2.0, + 21.0 + ], + "layer": 3 + } + }, + { + "item2": { + "type": "custom", + "renderer": "inventory_item_renderer", + "size": [ + 21.0, + "default" + ], + "layer": 4, + "property_bag": { + "#item_id_aux": 131072 + }, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "bottom_right", + "anchor_to": "bottom_right", + "layer": 1, + "font_scale_factor": 0.8, + "font_type": "unicode", + "shadow": true, + "text": "1", + "text_alignment": "center" + } + } + ] + } + }, + { + "empty2": { + "type": "panel", + "size": [ + 2.0, + 21.0 + ], + "layer": 6 + } + }, + { + "item3": { + "type": "custom", + "renderer": "inventory_item_renderer", + "size": [ + 21.0, + "default" + ], + "layer": 7, + "property_bag": { + "#item_id_aux": 131072 + }, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "bottom_right", + "anchor_to": "bottom_right", + "layer": 1, + "font_scale_factor": 0.8, + "font_type": "unicode", + "shadow": true, + "text": "1", + "text_alignment": "center" + } + } + ] + } + }, + { + "empty3": { + "type": "panel", + "size": [ + 2.0, + 21.0 + ], + "layer": 9 + } + }, + { + "image": { + "type": "image", + "size": [ + 21.0, + "default" + ], + "layer": 10, + "clip_direction": "left", + "clip_ratio": 0.0, + "texture": "textures/ui/rtdd/next" + } + }, + { + "empty4": { + "type": "panel", + "size": [ + 2.0, + 21.0 + ], + "layer": 11 + } + }, + { + "item4": { + "type": "custom", + "renderer": "inventory_item_renderer", + "size": [ + 21.0, + "default" + ], + "layer": 12, + "property_bag": { + "#item_id_aux": 131072 + }, + "controls": [ + { + "label": { + "type": "label", + "anchor_from": "bottom_right", + "anchor_to": "bottom_right", + "layer": 1, + "font_scale_factor": 0.8, + "font_type": "unicode", + "shadow": true, + "text": "1", + "text_alignment": "center" + } + } + ] + } + } + ] + }, + "recipe_all_1": { + "type": "stack_panel", + "anchor_from": "bottom_middle", + "anchor_to": "bottom_middle", + "offset": [ + 0.0, + -9.0 + ], + "size": [ + "100%cm+0px", + "default" + ], + "layer": 1, + "controls": [ + { + "recipe_list1@rtdd_caipu.recipe_list_1": {} + }, + { + "empty1": { + "type": "panel", + "size": [ + "100%sm+0px", + 2.0 + ], + "layer": 377 + } + }, + { + "recipe_list2@rtdd_caipu.recipe_list_1": { + "layer": 378 + } + }, + { + "empty2": { + "type": "panel", + "size": [ + "100%sm+0px", + 2.0 + ], + "layer": 754 + } + }, + { + "recipe_list3@rtdd_caipu.recipe_list_1": { + "layer": 755 + } + }, + { + "empty3": { + "type": "panel", + "size": [ + "100%sm+0px", + 2.0 + ], + "layer": 1131 + } + }, + { + "recipe_list4@rtdd_caipu.recipe_list_1": { + "layer": 1132 + } + } + ] + }, + "recipe_all_2": { + "type": "stack_panel", + "anchor_from": "bottom_middle", + "anchor_to": "bottom_middle", + "offset": [ + 0.0, + -9.0 + ], + "size": [ + "100%cm+0px", + "default" + ], + "layer": 1, + "controls": [ + { + "recipe_list1@rtdd_caipu.recipe_list_2": {} + }, + { + "empty1": { + "type": "panel", + "size": [ + "100%sm+0px", + 2.0 + ], + "layer": 317 + } + }, + { + "recipe_list2@rtdd_caipu.recipe_list_2": { + "layer": 318 + } + }, + { + "empty2": { + "type": "panel", + "size": [ + "100%sm+0px", + 2.0 + ], + "layer": 634 + } + }, + { + "recipe_list3@rtdd_caipu.recipe_list_2": { + "layer": 635 + } + }, + { + "empty3": { + "type": "panel", + "size": [ + "100%sm+0px", + 2.0 + ], + "layer": 951 + } + }, + { + "recipe_list4@rtdd_caipu.recipe_list_2": { + "layer": 952 + } + } + ] + }, + "recipe_all_3": { + "type": "stack_panel", + "anchor_from": "bottom_middle", + "anchor_to": "bottom_middle", + "offset": [ + 0.0, + -9.0 + ], + "size": [ + "100%cm+0px", + "default" + ], + "layer": 1, + "controls": [ + { + "recipe_list1@rtdd_caipu.recipe_list_3": {} + }, + { + "empty1": { + "type": "panel", + "size": [ + "100%sm+0px", + 2.0 + ], + "layer": 317 + } + }, + { + "recipe_list2@rtdd_caipu.recipe_list_3": { + "layer": 318 + } + }, + { + "empty2": { + "type": "panel", + "size": [ + "100%sm+0px", + 2.0 + ], + "layer": 634 + } + }, + { + "recipe_list3@rtdd_caipu.recipe_list_3": { + "layer": 635 + } + }, + { + "empty3": { + "type": "panel", + "size": [ + "100%sm+0px", + 2.0 + ], + "layer": 951 + } + }, + { + "recipe_list4@rtdd_caipu.recipe_list_3": { + "layer": 952 + } + } + ] + }, + "recipe_list_1": { + "type": "stack_panel", + "size": [ + "default", + 21.0 + ], + "layer": 1, + "orientation": "horizontal", + "controls": [ + { + "recipe1@rtdd_caipu.recipe_1": {} + }, + { + "empty1": { + "type": "panel", + "size": [ + 1.0, + 21.0 + ], + "layer": 24 + } + }, + { + "image1": { + "type": "image", + "size": [ + 1.0, + 21.0 + ], + "layer": 25, + "clip_direction": "left", + "clip_ratio": 0.0, + "fill": true, + "is_new_nine_slice": true, + "keep_ratio": false, + "texture": "textures/ui/rtdd/split3" + } + }, + { + "empty2": { + "type": "panel", + "size": [ + 1.0, + 21.0 + ], + "layer": 26 + } + }, + { + "recipe2@rtdd_caipu.recipe_1": { + "layer": 27 + } + }, + { + "empty3": { + "type": "panel", + "size": [ + 1.0, + 21.0 + ], + "layer": 50 + } + }, + { + "image2": { + "type": "image", + "size": [ + 1.0, + 21.0 + ], + "layer": 51, + "clip_direction": "left", + "clip_ratio": 0.0, + "fill": true, + "is_new_nine_slice": true, + "keep_ratio": false, + "texture": "textures/ui/rtdd/split3" + } + }, + { + "empty4": { + "type": "panel", + "size": [ + 1.0, + 21.0 + ], + "layer": 52 + } + }, + { + "recipe3@rtdd_caipu.recipe_1": { + "layer": 53 + } + } + ] + }, + "recipe_list_2": { + "type": "stack_panel", + "size": [ + "default", + 21.0 + ], + "layer": 1, + "orientation": "horizontal", + "controls": [ + { + "recipe1@rtdd_caipu.recipe_2": {} + }, + { + "empty1": { + "type": "panel", + "size": [ + 1.0, + 21.0 + ], + "layer": 52 + } + }, + { + "image1": { + "type": "image", + "size": [ + 1.0, + 21.0 + ], + "layer": 53, + "clip_direction": "left", + "clip_ratio": 0.0, + "fill": true, + "is_new_nine_slice": true, + "keep_ratio": false, + "texture": "textures/ui/rtdd/split3" + } + }, + { + "empty2": { + "type": "panel", + "size": [ + 1.0, + 21.0 + ], + "layer": 54 + } + }, + { + "recipe2@rtdd_caipu.recipe_2": { + "layer": 55 + } + } + ] + }, + "recipe_list_3": { + "type": "stack_panel", + "size": [ + "default", + 21.0 + ], + "layer": 1, + "orientation": "horizontal", + "controls": [ + { + "recipe1": { + "type": "panel", + "size": [ + 113.0, + 21.0 + ], + "layer": 1, + "controls": [ + { + "recipe@rtdd_caipu.recipe_3": { + "anchor_from": "left_middle", + "anchor_to": "left_middle" + } + } + ] + } + }, + { + "empty1": { + "type": "panel", + "size": [ + 1.0, + 21.0 + ], + "layer": 69 + } + }, + { + "image": { + "type": "image", + "size": [ + 1.0, + 21.0 + ], + "layer": 70, + "clip_direction": "left", + "clip_ratio": 0.0, + "fill": true, + "is_new_nine_slice": true, + "keep_ratio": false, + "texture": "textures/ui/rtdd/split3" + } + }, + { + "empty2": { + "type": "panel", + "size": [ + 1.0, + 21.0 + ], + "layer": 71 + } + }, + { + "recipe2": { + "type": "panel", + "size": [ + 113.0, + 21.0 + ], + "layer": 1, + "controls": [ + { + "recipe@rtdd_caipu.recipe_3": { + "anchor_from": "left_middle", + "anchor_to": "left_middle" + } + } + ] + } + } + ] + } +} \ No newline at end of file