初始化提交
This commit is contained in:
		
							
								
								
									
										58
									
								
								Content/Lua/UI/Bag/InventoryArea.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								Content/Lua/UI/Bag/InventoryArea.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,58 @@ | ||||
| local InventoryArea = {} | ||||
| local RoleUtils = require("GamePlay.Utils.RoleUtils") | ||||
| local GameplayStatics = import("GameplayStatics") | ||||
| local WidgetBlueprintLibrary = import("WidgetBlueprintLibrary") | ||||
| local BusyActorManagerSubSystem = import("BusyActorManagerSubSystem") | ||||
|  | ||||
|  | ||||
| function InventoryArea:ctor() | ||||
|     self.widgets = {} | ||||
| end | ||||
|  | ||||
| function InventoryArea:PreConstruct(bIsDesignTime) | ||||
|     if not bIsDesignTime then return end | ||||
| end | ||||
|  | ||||
| function InventoryArea:OnInitialized() | ||||
|     self:InitInventoryLayout(self.RowGridCnt, self.ColGridCnt, self.GridClass) | ||||
| end | ||||
|  | ||||
| function InventoryArea:InitInventoryLayout(row_cnt, col_cnt, cls) | ||||
|     self.widgets = {} | ||||
|     local pc = GameplayStatics.GetPlayerController(self, 0) | ||||
|     for i=1, row_cnt do | ||||
|         for j=1, col_cnt do | ||||
|             local widget = WidgetBlueprintLibrary.Create(self, cls, pc) | ||||
|             self.GridPanel:AddChildToGrid(widget, i-1, j-1) | ||||
|             widget:SetData(nil) | ||||
|             table.insert(self.widgets, widget) | ||||
|         end | ||||
|     end | ||||
| end | ||||
|  | ||||
| function InventoryArea:OnSwitchIn(inventory_name) | ||||
|     self:SetVisible(true) | ||||
|     local inventory = nil | ||||
|     if inventory_name == "BonfireInventory" then | ||||
|         local sub_system = BusyActorManagerSubSystem.Get(self) | ||||
|         local bonfire = sub_system:GetNearestBonfire() | ||||
|         inventory = bonfire.Inventory | ||||
|     elseif inventory_name == "RoleInventory" then | ||||
|         local role = RoleUtils.GetRole(self) | ||||
|         inventory = role.Inventory | ||||
|     end | ||||
|  | ||||
|     if inventory == nil then return end | ||||
|  | ||||
|     inventory:ForEach(slua.createDelegate(function(idx, grid) | ||||
|         local widget = self.widgets[idx+1] | ||||
|         widget:SetData(grid) | ||||
|         widget:SetInventoryInfo(inventory, idx) | ||||
|     end)) | ||||
| end | ||||
|  | ||||
| function InventoryArea:OnSwitchOut(inventory_name) | ||||
|     self:SetVisible(false) | ||||
| end | ||||
|  | ||||
| return Class(nil, nil, InventoryArea) | ||||
		Reference in New Issue
	
	Block a user