| 
									
										
										
										
											2025-08-19 03:23:36 +08:00
										 |  |  | local DataTableUtils = require("Utils.DataTableUtils") | 
					
						
							| 
									
										
										
										
											2025-08-27 00:56:05 +08:00
										 |  |  | local Emitter = require("Utils.Emitter") | 
					
						
							|  |  |  | local EPreCookSlotType = import("EPreCookSlotType") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | --- @class PreCookSlot | 
					
						
							| 
									
										
										
										
											2025-08-19 03:23:36 +08:00
										 |  |  | local PreCookSlot = {} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:OnInitialized() | 
					
						
							| 
									
										
										
										
											2025-08-27 00:56:05 +08:00
										 |  |  |     self.slot_item_id = nil | 
					
						
							|  |  |  |     self.is_slot_item_active = false | 
					
						
							| 
									
										
										
										
											2025-08-19 03:23:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-27 00:56:05 +08:00
										 |  |  |     self.BtnMain.OnClicked:Add(function() self:BP_EmitLuaEvent("PreCookSlotClicked") end) | 
					
						
							| 
									
										
										
										
											2025-08-19 03:23:36 +08:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:Construct() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:Destruct() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:Reset() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-27 00:56:05 +08:00
										 |  |  | function PreCookSlot:GetSlotType() | 
					
						
							|  |  |  |     return self.PreCookSlotType | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:GetSlotItemID() | 
					
						
							|  |  |  |     return self.slot_item_id | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:SetPreCookItemID(pre_cook_item_id) | 
					
						
							| 
									
										
										
										
											2025-08-19 03:23:36 +08:00
										 |  |  |     self:Reset() | 
					
						
							| 
									
										
										
										
											2025-08-27 00:56:05 +08:00
										 |  |  |     if not pre_cook_item_id then return end | 
					
						
							| 
									
										
										
										
											2025-08-19 03:23:36 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-27 00:56:05 +08:00
										 |  |  |     local row_data = DataTableUtils.GetDataTableRow("PreCookItemConfig", pre_cook_item_id) | 
					
						
							| 
									
										
										
										
											2025-08-19 03:23:36 +08:00
										 |  |  |     if not row_data then | 
					
						
							|  |  |  |         return | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     self.SlotImg:SetBrushFromSoftTexture(row_data.DisplayResource, true) | 
					
						
							| 
									
										
										
										
											2025-08-27 00:56:05 +08:00
										 |  |  |     self.slot_item_id = pre_cook_item_id | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:SetPreCookTool(pre_cook_tool_id) | 
					
						
							|  |  |  |     self:SetPreCookItemID(pre_cook_tool_id) | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:SetPreCookContainer(pre_cook_container_id) | 
					
						
							|  |  |  |     self:SetPreCookItemID(pre_cook_container_id) | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:ActiveToolSlot() | 
					
						
							|  |  |  |     self:PlayAnimation(self.Anim_UseTool, 0, 1, 0, 5, false) | 
					
						
							| 
									
										
										
										
											2025-08-19 03:23:36 +08:00
										 |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-27 00:56:05 +08:00
										 |  |  | function PreCookSlot:DeactiveToolSlot() | 
					
						
							|  |  |  |     self:PlayAnimation(self.Anim_UseTool, 0, 1, 1, 1, false) | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:PushSlotItem() | 
					
						
							|  |  |  |     self:PlayAnimation(self.Anim_PushItem, 0, 1, 0, 1, false) | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:ActiveContainerSlot() | 
					
						
							|  |  |  |     self:PlayAnimation(self.Anim_PushItem, 0, 1, 0, 1, false) | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function PreCookSlot:DeactiveContianerSlot() | 
					
						
							|  |  |  |     print("PreCookSlot:DeactiveContianerSlot") | 
					
						
							|  |  |  |     self:PlayAnimation(self.Anim_PushItem, 0, 1, 1, 1, false) | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-08-19 03:23:36 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | return Class(nil, nil, PreCookSlot) |