准备制作食材预处理流程,为lua直接读data table做基建
...
This commit is contained in:
		| @ -1,14 +1,39 @@ | ||||
| local WidgetUtils = require("Utils.UI.WidgetUtils") | ||||
| local Emitter = require("Utils.Emitter") | ||||
| local HearthMain = {} | ||||
|  | ||||
| function HearthMain:ctor() | ||||
|     self.switch_to_prep_cook_station_handle = nil | ||||
| end | ||||
|  | ||||
| function HearthMain:OnInitialized() | ||||
|     self.BtnBack.OnClicked:Add(function() | ||||
|         WidgetUtils.Hide(self, "HearthMain") | ||||
|     end) | ||||
|     self.BtnOpenRecipe.OnClicked:Add(function() | ||||
|         WidgetUtils.Show(self, "RecipeMenu") | ||||
|         self:BP_Close() | ||||
|     end) | ||||
| end | ||||
|  | ||||
| function HearthMain:Construct() | ||||
|     self.switch_to_prep_cook_station_handle = Emitter.OnEvent( | ||||
|         "switch_to_prep_station", function() self:SwitchToPrepCookStation() end | ||||
|     ) | ||||
| end | ||||
|  | ||||
| function HearthMain:Destruct() | ||||
|     Emitter.OffEvent("switch_to_prep_station", self.switch_to_prep_cook_station_handle) | ||||
| end | ||||
|  | ||||
| function HearthMain:SwitchToPrepCookStation() | ||||
|     if self:IsAnimationPlaying(self.Anim_StartPrepCook) then | ||||
|         return | ||||
|     end | ||||
|     self:PlayAnimation(self.Anim_StartPrepCook, 0, 1, 0, 1, false) | ||||
| end | ||||
|  | ||||
| function HearthMain:OnAnimationFinished(anim) | ||||
|     if anim == self.Anim_StartPrepCook then | ||||
|         WidgetUtils.Show(self, "PreCookStation") | ||||
|         print("HearthMain:OnAnimationFinished") | ||||
|     end | ||||
| end | ||||
|  | ||||
| return Class(nil, nil, HearthMain) | ||||
							
								
								
									
										40
									
								
								Content/Lua/HomeLand/UI/Hearth/PreCookStationPanel.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								Content/Lua/HomeLand/UI/Hearth/PreCookStationPanel.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,40 @@ | ||||
| local PreCookStationPanel = {} | ||||
|  | ||||
| local PRE_COOK_TOOL_CNT = 3 | ||||
|  | ||||
|  | ||||
| function PreCookStationPanel:ctor() | ||||
|     self.cook_tool_slots = {} | ||||
| end | ||||
| function PreCookStationPanel:OnInitialized() | ||||
|     self.BackBtn.OnClicked:Add(function() self:BP_Close() end) | ||||
|  | ||||
|     self.cook_tool_slots = {} | ||||
|  | ||||
|     for i = 1, PRE_COOK_TOOL_CNT do | ||||
|         local slot_name = "PreCookToolSlot_" .. tostring(i) | ||||
|         table.insert(self.cook_tool_slots, self[slot_name]) | ||||
|     end | ||||
| end | ||||
|  | ||||
| function PreCookStationPanel:Construct() | ||||
|     self:Refresh() | ||||
| end | ||||
|  | ||||
| function PreCookStationPanel:Destruct() | ||||
|  | ||||
| end | ||||
|  | ||||
| function PreCookStationPanel:Refresh() | ||||
|     self:RefreshPreCookTools() | ||||
| end | ||||
|  | ||||
| function PreCookStationPanel:RefreshPreCookTools() | ||||
|     local display_tools = {"PCT0001"} | ||||
|     for i = 1, PRE_COOK_TOOL_CNT do | ||||
|         self.cook_tool_slots[i]:SetPreCookToolID(display_tools[i]) | ||||
|     end | ||||
| end | ||||
|  | ||||
|  | ||||
| return Class(nil, nil, PreCookStationPanel) | ||||
| @ -0,0 +1,11 @@ | ||||
| local CookPrepStationEntry = {} | ||||
| local Emitter = require("Utils.Emitter") | ||||
|  | ||||
| function CookPrepStationEntry:OnInitialized() | ||||
|     self.MainBtn.OnClicked:Add(function() | ||||
|         Emitter.EmitEvent("switch_to_prep_station") | ||||
|     end) | ||||
| end | ||||
|  | ||||
|  | ||||
| return Class(nil, nil, CookPrepStationEntry) | ||||
| @ -88,11 +88,11 @@ end | ||||
|  | ||||
| function CookingBench:UpdateCookState() | ||||
|     if self.temperature > 0 then | ||||
|         self.WBP_CookingProcess:SetVisible(true) | ||||
|         self.WBP_CookingProcess:BP_SetVisible(true) | ||||
|         local percent = self.temperature / self.max_temperature | ||||
|         self.WBP_CookingProcess.TemperatureProcess:SetPercent(percent) | ||||
|     else | ||||
|         self.WBP_CookingProcess:SetVisible(false) | ||||
|         self.WBP_CookingProcess:BP_SetVisible(false) | ||||
|     end | ||||
| end | ||||
|  | ||||
|  | ||||
							
								
								
									
										35
									
								
								Content/Lua/HomeLand/UI/Hearth/Widgets/PreCookSlot.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								Content/Lua/HomeLand/UI/Hearth/Widgets/PreCookSlot.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,35 @@ | ||||
| local DataTableUtils = require("Utils.DataTableUtils") | ||||
| local PreCookSlot = {} | ||||
|  | ||||
| function PreCookSlot:OnInitialized() | ||||
|  | ||||
| end | ||||
|  | ||||
| function PreCookSlot:Construct() | ||||
|  | ||||
| end | ||||
|  | ||||
| function PreCookSlot:Destruct() | ||||
|  | ||||
| end | ||||
|  | ||||
| function PreCookSlot:Reset() | ||||
|  | ||||
|  | ||||
| end | ||||
|  | ||||
| function PreCookSlot:SetPreCookToolID(pre_cook_tool_id) | ||||
|     self:Reset() | ||||
|     if not pre_cook_tool_id then return end | ||||
|  | ||||
|     local row_data = DataTableUtils.GetDataTableRow("PreCookItemConfig", pre_cook_tool_id) | ||||
|     if not row_data then | ||||
|         return | ||||
|     end | ||||
|  | ||||
|     self.SlotImg:SetBrushFromSoftTexture(row_data.DisplayResource, true) | ||||
|     print("PreCookSlot:SetPreCookToolID", row_data) | ||||
| end | ||||
|  | ||||
|  | ||||
| return Class(nil, nil, PreCookSlot) | ||||
		Reference in New Issue
	
	Block a user