开始接入厨房
This commit is contained in:
		
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										11
									
								
								Content/Lua/HomeLand/UI/Hearth/HearthMain.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								Content/Lua/HomeLand/UI/Hearth/HearthMain.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,11 @@ | |||||||
|  | local WidgetUtils = require("Utils.UI.WidgetUtils") | ||||||
|  | local HearthMain = {} | ||||||
|  |  | ||||||
|  | function HearthMain:OnInitialized() | ||||||
|  |     self.BtnBack.OnClicked:Add(function() | ||||||
|  |         WidgetUtils.Hide(self, "HearthMain") | ||||||
|  |     end) | ||||||
|  |  | ||||||
|  | end | ||||||
|  |  | ||||||
|  | return Class(nil, nil, HearthMain) | ||||||
| @ -1,11 +1,14 @@ | |||||||
| local GameplayStatics = import("GameplayStatics") | local GameplayStatics = import("GameplayStatics") | ||||||
|  | local WidgetUtils = require("Utils.UI.WidgetUtils") | ||||||
| local HomeLandMainUI = {} | local HomeLandMainUI = {} | ||||||
|  |  | ||||||
| function HomeLandMainUI:Construct() | function HomeLandMainUI:OnInitialized() | ||||||
|     self.Gateway.OnClicked:Add(function() |     self.Gateway.OnClicked:Add(function() | ||||||
|         GameplayStatics.OpenLevel(self, "FalconPlain", false, "") |         GameplayStatics.OpenLevel(self, "FalconPlain", false, "") | ||||||
|     end) |     end) | ||||||
|  |     self.Hearth.OnClicked:Add(function() | ||||||
|  |         WidgetUtils.Show(self, "HearthMain") | ||||||
|  |     end) | ||||||
| end | end | ||||||
|  |  | ||||||
| return Class(nil, nil, HomeLandMainUI) | return Class(nil, nil, HomeLandMainUI) | ||||||
| @ -4,7 +4,7 @@ local GameplayStatics = import("GameplayStatics") | |||||||
|  |  | ||||||
| function SettingPanel:OnInitialized() | function SettingPanel:OnInitialized() | ||||||
|     self.BtnContinue.OnClicked:Add(function() self:BackToGame() end) |     self.BtnContinue.OnClicked:Add(function() self:BackToGame() end) | ||||||
|     self.BtnExitLevel.OnClicked:Add(function() end) |     self.BtnExitLevel.OnClicked:Add(function() self:BackHomeland() end) | ||||||
|     self.BtnExitGame.OnClicked:Add(function() self:ExitGame() end) |     self.BtnExitGame.OnClicked:Add(function() self:ExitGame() end) | ||||||
|     self.BtnClose.OnClicked:Add(function() self:BackToGame() end) |     self.BtnClose.OnClicked:Add(function() self:BackToGame() end) | ||||||
| end | end | ||||||
| @ -19,6 +19,10 @@ function SettingPanel:BackToGame() | |||||||
|     UIUtils.CloseWidget(self) |     UIUtils.CloseWidget(self) | ||||||
| end | end | ||||||
|  |  | ||||||
|  | function SettingPanel:BackHomeland() | ||||||
|  |     GameplayStatics.OpenLevel(self, "HomeLand", false, "") | ||||||
|  | end | ||||||
|  |  | ||||||
| function SettingPanel:ExitGame() | function SettingPanel:ExitGame() | ||||||
|     local pc = GameplayStatics.GetPlayerController(self, 0) |     local pc = GameplayStatics.GetPlayerController(self, 0) | ||||||
|     pc:QuitGame() |     pc:QuitGame() | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| local HomeLandHud = {} | local HomeLandHud = {} | ||||||
|  |  | ||||||
| function HomeLandHud:ReceiveBeginPlay() | function HomeLandHud:ReceiveBeginPlay() | ||||||
|     self:PushWidget("HomeLandMain") |     self:ShowWidget("HomeLandMain") | ||||||
| end | end | ||||||
|  |  | ||||||
| return Class(nil, nil, HomeLandHud) | return Class(nil, nil, HomeLandHud) | ||||||
							
								
								
									
										23
									
								
								Content/Lua/Utils/UI/WidgetUtils.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								Content/Lua/Utils/UI/WidgetUtils.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | local GameplayStatics = import("GameplayStatics") | ||||||
|  | local WidgetUtils = {} | ||||||
|  |  | ||||||
|  | local function GetHud(wco) | ||||||
|  |     local pc = GameplayStatics.GetPlayerController(wco, 0) | ||||||
|  |     if pc == nil then return end | ||||||
|  |     return pc:GetHud() | ||||||
|  | end | ||||||
|  |  | ||||||
|  | function WidgetUtils.Show(wco, widget_name) | ||||||
|  |     local hud = GetHud(wco) | ||||||
|  |     if not hud then return end | ||||||
|  |     return hud:ShowWidget(widget_name) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | function WidgetUtils.Hide(wco, widget_name) | ||||||
|  |     local hud = GetHud(wco) | ||||||
|  |     if not hud then return end | ||||||
|  |     return hud:PopWidget(widget_name) | ||||||
|  | end | ||||||
|  |  | ||||||
|  |  | ||||||
|  | return WidgetUtils | ||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Resource/Map/FalconPlain/Test.uasset
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Resource/Map/FalconPlain/Test.uasset
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Resource/Map/FalconPlain/lack-tilemap.uasset
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Resource/Map/FalconPlain/lack-tilemap.uasset
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/Resource/Map/FalconPlain/lack-tilemap_TileSet.uasset
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/Resource/Map/FalconPlain/lack-tilemap_TileSet.uasset
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								Content/UI/HomeLand/Hearth/WBP_HearthMain.uasset
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Content/UI/HomeLand/Hearth/WBP_HearthMain.uasset
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @ -35,3 +35,28 @@ UPW_UserWidget* APW_UIHud::PushWidget(const FName& WidgetName) { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | bool APW_UIHud::PopWidget(const FName& WidgetName){ | ||||||
|  | 	if (UILayer == nullptr) { | ||||||
|  | 		return false; | ||||||
|  | 	} | ||||||
|  | 	return UILayer->PopWidget(WidgetName); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | UPW_UserWidget* APW_UIHud::ShowWidget(const FName& WidgetName){ | ||||||
|  | 	UPW_UserWidget* Widget; | ||||||
|  | 	if (!UILayer) { | ||||||
|  | 		return nullptr; | ||||||
|  | 	} | ||||||
|  | 	if ((Widget = UILayer->ShowWidget(WidgetName))) { | ||||||
|  | 		return Widget; | ||||||
|  | 	} | ||||||
|  | 	return PushWidget(WidgetName); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | bool APW_UIHud::HideWidget(const FName& WidgetName){ | ||||||
|  | 	if (UILayer == nullptr) { | ||||||
|  | 		return false; | ||||||
|  | 	} | ||||||
|  | 	return UILayer->PopWidget(WidgetName); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | |||||||
| @ -8,13 +8,17 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| bool UPW_UILayer::ShowWidget(const FName& WidgetName){ | UPW_UserWidget* UPW_UILayer::ShowWidget(const FName& WidgetName){ | ||||||
| 	UPW_UserWidget* Widget = *WidgetPool.Find(WidgetName); | 	UPW_UserWidget **result = WidgetPool.Find(WidgetName); | ||||||
|  | 	if (result == nullptr) { | ||||||
|  | 		return nullptr; | ||||||
|  | 	} | ||||||
|  | 	UPW_UserWidget* Widget = *result; | ||||||
| 	if (Widget == nullptr) { | 	if (Widget == nullptr) { | ||||||
| 		return false; | 		return nullptr; | ||||||
| 	} | 	} | ||||||
| 	Widget->SetVisible(true); | 	Widget->SetVisible(true); | ||||||
| 	return true; | 	return Widget; | ||||||
| } | } | ||||||
|  |  | ||||||
| bool UPW_UILayer::HideWidget(const FName& WidgetName){ | bool UPW_UILayer::HideWidget(const FName& WidgetName){ | ||||||
| @ -49,5 +53,5 @@ bool UPW_UILayer::PushWidget(const FName& WidgetName, UPW_UserWidget* WidgetInst | |||||||
| } | } | ||||||
|  |  | ||||||
| bool UPW_UILayer::PopWidget(const FName& WidgetName){ | bool UPW_UILayer::PopWidget(const FName& WidgetName){ | ||||||
| 	return true; | 	return HideWidget(WidgetName); | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,3 +1,4 @@ | |||||||
|  | #pragma once | ||||||
| #include "CoreMinimal.h" | #include "CoreMinimal.h" | ||||||
| #include "GameFramework/HUD.h" | #include "GameFramework/HUD.h" | ||||||
| #include "LuaOverriderInterface.h" | #include "LuaOverriderInterface.h" | ||||||
| @ -18,15 +19,23 @@ public: | |||||||
| 	UFUNCTION(BlueprintCallable) | 	UFUNCTION(BlueprintCallable) | ||||||
| 	UPW_UserWidget* PushWidget(const FName& WidgetName); | 	UPW_UserWidget* PushWidget(const FName& WidgetName); | ||||||
|  |  | ||||||
|  | 	UFUNCTION(BlueprintCallable) | ||||||
|  | 	bool PopWidget(const FName& WidgetName); | ||||||
|  |  | ||||||
|  | 	UFUNCTION(BlueprintCallable) | ||||||
|  | 	UPW_UserWidget* ShowWidget(const FName& WidgetName); | ||||||
|  |  | ||||||
|  | 	UFUNCTION(BlueprintCallable) | ||||||
|  | 	bool HideWidget(const FName& WidgetName); | ||||||
|  |  | ||||||
| public: | public: | ||||||
| 	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) | 	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) | ||||||
| 	FString LuaFilePath; | 	FString LuaFilePath; | ||||||
|  |  | ||||||
| 	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite) | 	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category="UI配置") | ||||||
| 	TSubclassOf<UPW_UILayer> LayerClass; | 	TSubclassOf<UPW_UILayer> LayerClass; | ||||||
|  |  | ||||||
|  | 	UPROPERTY(EditAnywhere, Category = "UI配置") | ||||||
| 	UPROPERTY(EditAnywhere, Category = "UI Class Mapping") |  | ||||||
| 	TMap<FName, TSubclassOf<UPW_UserWidget>> UIClassMapping; | 	TMap<FName, TSubclassOf<UPW_UserWidget>> UIClassMapping; | ||||||
|  |  | ||||||
| protected: | protected: | ||||||
|  | |||||||
| @ -17,16 +17,12 @@ class BUSYRABBIT_API UPW_UILayer : public UPW_UserWidget | |||||||
|     GENERATED_BODY() |     GENERATED_BODY() | ||||||
|  |  | ||||||
| public: | public: | ||||||
|     UFUNCTION(BlueprintCallable) |     UPW_UserWidget* ShowWidget(const FName& WidgetName); | ||||||
|     bool ShowWidget(const FName& WidgetName); |  | ||||||
|  |  | ||||||
|     UFUNCTION(BlueprintCallable) |  | ||||||
|     bool HideWidget(const FName& WidgetName); |     bool HideWidget(const FName& WidgetName); | ||||||
|  |  | ||||||
|     UFUNCTION(BlueprintCallable) |  | ||||||
|     bool PushWidget(const FName& WidgetName, UPW_UserWidget* WidgetInst); |     bool PushWidget(const FName& WidgetName, UPW_UserWidget* WidgetInst); | ||||||
|  |  | ||||||
|     UFUNCTION(BlueprintCallable) |  | ||||||
|     bool PopWidget(const FName& WidgetName); |     bool PopWidget(const FName& WidgetName); | ||||||
|  |  | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user