From d6a1a2df0b4ba5d7e73a66396e381b947fef3116 Mon Sep 17 00:00:00 2001 From: DarcJC Date: Fri, 31 Mar 2023 18:36:39 +0800 Subject: [PATCH 1/3] feat: add base class for menu extender --- .../UI/Menu/VATEditorExtenderService.cpp | 14 ++--- .../UI/Menu/ZenoEditorMenuExtender.cpp | 21 ++++++++ .../ZenoEmbedGraphEditorExtenderService.cpp | 52 +++++++++++++++++++ .../Public/UI/Menu/VATEditorExtenderService.h | 8 +-- .../Public/UI/Menu/ZenoEditorMenuExtender.h | 16 ++++++ .../ZenoEmbedGraphEditorExtenderService.h | 23 ++++++++ 6 files changed, 118 insertions(+), 16 deletions(-) create mode 100644 Source/ZenoEditor/Private/UI/Menu/ZenoEmbedGraphEditorExtenderService.cpp create mode 100644 Source/ZenoEditor/Public/UI/Menu/ZenoEmbedGraphEditorExtenderService.h diff --git a/Source/ZenoEditor/Private/UI/Menu/VATEditorExtenderService.cpp b/Source/ZenoEditor/Private/UI/Menu/VATEditorExtenderService.cpp index 82e81d8..08f803a 100644 --- a/Source/ZenoEditor/Private/UI/Menu/VATEditorExtenderService.cpp +++ b/Source/ZenoEditor/Private/UI/Menu/VATEditorExtenderService.cpp @@ -19,30 +19,24 @@ #define LOCTEXT_NAMESPACE "FVATEditorExtenderService" FVATEditorExtenderService::FVATEditorExtenderService() - : CommandList(MakeShared()) + : FZenoEditorExtenderServiceBase() { } void FVATEditorExtenderService::Register() { - MapAction(); - - FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked("LevelEditor"); - MenuBarExtender = MakeShareable(new FExtender); - + FZenoEditorExtenderServiceBase::Register(); MenuBarExtender->AddMenuBarExtension("Help", EExtensionHook::After, CommandList, FMenuBarExtensionDelegate::CreateRaw(this, &FVATEditorExtenderService::ExtendMenuBar)); - - LevelEditorModule.GetMenuExtensibilityManager()->AddExtender(MenuBarExtender); } void FVATEditorExtenderService::Unregister() { + FZenoEditorExtenderServiceBase::Unregister(); } void FVATEditorExtenderService::ExtendMenuBar(FMenuBarBuilder& Builder) { - const FName ZenoHook = "MENU_Zeno"; - Builder.AddPullDownMenu(LOCTEXT("Zeno", "Zeno"), LOCTEXT("ZenoTooltip", "Zeno Tools"), FNewMenuDelegate::CreateRaw(this, &FVATEditorExtenderService::ExtendVATPullDownMenu), ZenoHook, ZenoHook); + Builder.AddPullDownMenu(LOCTEXT("Zeno", "Zeno"), LOCTEXT("ZenoTooltip", "Zeno Tools"), FNewMenuDelegate::CreateRaw(this, &FVATEditorExtenderService::ExtendVATPullDownMenu), ZenoHookLabel, ZenoHookLabel); } void FVATEditorExtenderService::ExtendVATPullDownMenu(FMenuBuilder& Builder) diff --git a/Source/ZenoEditor/Private/UI/Menu/ZenoEditorMenuExtender.cpp b/Source/ZenoEditor/Private/UI/Menu/ZenoEditorMenuExtender.cpp index 78892a6..27506b7 100644 --- a/Source/ZenoEditor/Private/UI/Menu/ZenoEditorMenuExtender.cpp +++ b/Source/ZenoEditor/Private/UI/Menu/ZenoEditorMenuExtender.cpp @@ -1,5 +1,26 @@ #include "UI/Menu/ZenoEditorMenuExtender.h" +#include "LevelEditor.h" + +FZenoEditorExtenderServiceBase::FZenoEditorExtenderServiceBase() + : CommandList(MakeShared()) +{ +} + +void FZenoEditorExtenderServiceBase::Register() +{ + MapAction(); + FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked("LevelEditor"); + MenuBarExtender = MakeShareable(new FExtender); + LevelEditorModule.GetMenuExtensibilityManager()->AddExtender(MenuBarExtender); +} + +void FZenoEditorExtenderServiceBase::Unregister() +{ + FLevelEditorModule& LevelEditorModule = FModuleManager::LoadModuleChecked("LevelEditor"); + LevelEditorModule.GetMenuExtensibilityManager()->RemoveExtender(MenuBarExtender); +} + void FZenoEditorMenuExtender::Register() { for (const auto Pair : Services) diff --git a/Source/ZenoEditor/Private/UI/Menu/ZenoEmbedGraphEditorExtenderService.cpp b/Source/ZenoEditor/Private/UI/Menu/ZenoEmbedGraphEditorExtenderService.cpp new file mode 100644 index 0000000..4fa4749 --- /dev/null +++ b/Source/ZenoEditor/Private/UI/Menu/ZenoEmbedGraphEditorExtenderService.cpp @@ -0,0 +1,52 @@ +#include "UI/Menu/ZenoEmbedGraphEditorExtenderService.h" + +#include "LevelEditor.h" +#include "ZenoEditorCommand.h" + +#define LOCTEXT_NAMESPACE "FZenoEmbedGraphEditorExtenderService" + +FZenoEmbedGraphEditorExtenderService::FZenoEmbedGraphEditorExtenderService() + : FZenoEditorExtenderServiceBase() +{ +} + +void FZenoEmbedGraphEditorExtenderService::Register() +{ + FZenoEditorExtenderServiceBase::Register(); + MenuBarExtender->AddMenuBarExtension("Help", EExtensionHook::After, CommandList, FMenuBarExtensionDelegate::CreateRaw(this, &FZenoEmbedGraphEditorExtenderService::ExtendTopMenuBar)); +} + +void FZenoEmbedGraphEditorExtenderService::Unregister() +{ + FZenoEditorExtenderServiceBase::Unregister(); +} + +FZenoEmbedGraphEditorExtenderService& FZenoEmbedGraphEditorExtenderService::Get() +{ + static FZenoEmbedGraphEditorExtenderService Service; + return Service; +} + +void FZenoEmbedGraphEditorExtenderService::ExtendTopMenuBar(FMenuBarBuilder& Builder) +{ + Builder.AddPullDownMenu(LOCTEXT("Zeno", "Zeno"), LOCTEXT("ZenoTooltip", "Zeno Tools"), FNewMenuDelegate::CreateRaw(this, &FZenoEmbedGraphEditorExtenderService::ExtendEmbedPullDownMenu), ZenoHookLabel, ZenoHookLabel); +} + +void FZenoEmbedGraphEditorExtenderService::ExtendEmbedPullDownMenu(FMenuBuilder& Builder) +{ + Builder.AddMenuEntry(FZenoEditorCommand::Get().Debug); +} + +void FZenoEmbedGraphEditorExtenderService::MapAction() +{ + CommandList->MapAction(FZenoEditorCommand::Get().Debug, FExecuteAction::CreateRaw(this, &FZenoEmbedGraphEditorExtenderService::Debug)); +} + +void FZenoEmbedGraphEditorExtenderService::Debug() +{ + UE_LOG(LogTemp, Error, TEXT("123")); +} + +#undef LOCTEXT_NAMESPACE + +REGISTER_EDITOR_EXTENDER_SERVICE("Embed", FZenoEmbedGraphEditorExtenderService); diff --git a/Source/ZenoEditor/Public/UI/Menu/VATEditorExtenderService.h b/Source/ZenoEditor/Public/UI/Menu/VATEditorExtenderService.h index c98dc2b..808b865 100644 --- a/Source/ZenoEditor/Public/UI/Menu/VATEditorExtenderService.h +++ b/Source/ZenoEditor/Public/UI/Menu/VATEditorExtenderService.h @@ -1,7 +1,7 @@ #pragma once #include "ZenoEditorMenuExtender.h" -class FVATEditorExtenderService final : public IZenoEditorExtenderService +class FVATEditorExtenderService final : public FZenoEditorExtenderServiceBase { public: FVATEditorExtenderService(); @@ -11,14 +11,10 @@ class FVATEditorExtenderService final : public IZenoEditorExtenderService void ExtendMenuBar(FMenuBarBuilder& Builder); void ExtendVATPullDownMenu(FMenuBuilder& Builder); - void MapAction(); + virtual void MapAction() override; static FVATEditorExtenderService& Get(); -private: - TSharedPtr MenuBarExtender; - TSharedPtr CommandList; - private: void Debug(); void ImportWavefrontObjFile(); diff --git a/Source/ZenoEditor/Public/UI/Menu/ZenoEditorMenuExtender.h b/Source/ZenoEditor/Public/UI/Menu/ZenoEditorMenuExtender.h index f795256..aa1b6ab 100644 --- a/Source/ZenoEditor/Public/UI/Menu/ZenoEditorMenuExtender.h +++ b/Source/ZenoEditor/Public/UI/Menu/ZenoEditorMenuExtender.h @@ -8,6 +8,22 @@ class IZenoEditorExtenderService virtual void Unregister() = 0; }; +class FZenoEditorExtenderServiceBase : public IZenoEditorExtenderService +{ +public: + FZenoEditorExtenderServiceBase(); + + virtual void Register() override; + virtual void Unregister() override; + virtual void MapAction() {}; + +protected: + TSharedPtr CommandList; + TSharedPtr MenuBarExtender; + + inline static FName ZenoHookLabel = "MENU_Zeno"; +}; + class FZenoEditorMenuExtender final : public IZenoEditorExtenderService { public: diff --git a/Source/ZenoEditor/Public/UI/Menu/ZenoEmbedGraphEditorExtenderService.h b/Source/ZenoEditor/Public/UI/Menu/ZenoEmbedGraphEditorExtenderService.h new file mode 100644 index 0000000..47566c3 --- /dev/null +++ b/Source/ZenoEditor/Public/UI/Menu/ZenoEmbedGraphEditorExtenderService.h @@ -0,0 +1,23 @@ +#pragma once +#include "ZenoEditorMenuExtender.h" + +class FZenoEmbedGraphEditorExtenderService final : public FZenoEditorExtenderServiceBase +{ +public: + FZenoEmbedGraphEditorExtenderService(); + + virtual void Register() override; + virtual void Unregister() override; + + static FZenoEmbedGraphEditorExtenderService& Get(); + +private: + void ExtendTopMenuBar(FMenuBarBuilder& Builder); + void ExtendEmbedPullDownMenu(FMenuBuilder& Builder); + +protected: + virtual void MapAction() override; + + // Actions + void Debug(); +}; From 53c0cb1200cdeec574610a1b80395c4e0b86c55e Mon Sep 17 00:00:00 2001 From: DarcJC Date: Fri, 31 Mar 2023 18:36:59 +0800 Subject: [PATCH 2/3] fix: vat normal decode --- .../Function/MF_PositionAndNormmalVAT.uasset | Bin 49386 -> 55099 bytes .../Material/Mat_PositionAndNormalVAT.uasset | Bin 22027 -> 22901 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Content/Material/Function/MF_PositionAndNormmalVAT.uasset b/Content/Material/Function/MF_PositionAndNormmalVAT.uasset index aae06f2ac7ce6301b66880a96f183e17e6e32d47..b30756964db32ca07add17bf90100d3e126e2282 100644 GIT binary patch literal 55099 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 literal 49386 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 b9;*gtI)rXaqJ`Hch3cF-WD6@}2tfZoc4+v3 literal 22027 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 UoW?+Dm&Zk!ojmAHcJ9FcKfr^-?f?J) From 37c2a5d1668b88bc8342d2728c43d7d7cac3f06e Mon Sep 17 00:00:00 2001 From: DarcJC Date: Fri, 31 Mar 2023 18:40:48 +0800 Subject: [PATCH 3/3] feat: update default roughness of vat --- .../Material/Mat_PositionAndNormalVAT.uasset | Bin 22901 -> 22898 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Content/Material/Mat_PositionAndNormalVAT.uasset b/Content/Material/Mat_PositionAndNormalVAT.uasset index 22d5f8f50ca97459a2eb7a2e519afbac1a82343b..dcadd7133033b4312e1c38e5f829ef03e6facc40 100644 GIT binary patch delta 2158 zcmZ8ie^3)w9)B+Zf>;oA6);8HB5A@+&mY9l3qp6=CP*M5A$Q(2j^=)NC2I$S7L+oF zS+Aqa#YPJot&MW7`3aq2IxS&HK|F`vsrBRrl3e}(f^gVE;DU1$%A8E^?z>=}dOOKC z@9o>S^L?LRS^5kwe1<=`jx$^OFA_WvLS)VTz&HK$>pctSe)q|ZjWtXq-v7K57K+|L zPhJ0oD^rZnZ{Y5$T|@ZW6kev7Ifb_}sc*zFU#F5hb?%d?GL6KkOmmtMcQMmY4=}|W zjkt~RLY-vRqNd!-&^2UZ@R>Ak&DiGnJV}-gm#~x|4YWq*7v&w`4Q<|ZOO~hn1jwNsi-2V2%JS!4Do(?cKN8h{hr*NGh#B(a8qQEO<3Z-Pl}Os77IU@-sPGW4J(H=4mv|K z9xt>ehcA;UVFmK8bk#DP?0BQZy^+J1snovgDfwBF5J6WesqFBww0gr17CgVh5epyY-yw zSTAKmHlK|+x^tEwgfU2g6ao-S6P5_o3+mv>xT`w6ik8$9<&jGbRS8<^kb3(u+9b@>|% zuYHpuu|1e06N1WMv>Z6Y0#Tb^d%rGJheeZf%E`Gh7rTxV)Dv}4CKqcKcvba#<@$Ey z>48D7mQP7cY&?+h>m~0HRuI~_I)DR#jw##HiVykV(7SsB6+H$OQoUX8avy$--i>Jc zta8Qk5gDIDXmM$Y0=-mtGFDu%^9kmy7kUF)tZJit&?jggq(5)A|F#fz&LFqT{X_9D zw_~xRmEHz`g`ygkXOBoifY>vRi>>stp!~ngm9spHm`$AV#AydAdQ z4%6E~!tiTDN;Q&MPIBoGB@>~iFBTS^wX7g`&@GypBd6aZ*R7cz{e7<7^8o@&G@0xa6pa{w@Mxe-t+CA_v!oM7)iyMu60-uJKbZbdKZ9TcFBdeK z1TF*!RmcF7j0hz;*eRovIM|;S?NK@6g5&sv;2WmeN0(L`uq@&iz2Y;N252L zwbuZD-n^8Zp9o6+8m801_-1f^@~v@&XiBpx{XU2enFXC(GrrJQQF)Aawd~k+6M7sE z6V(rfeOgY(5y$&g5AoM;~r&bspj@QFJchgR)rUh}685QHRbk}PT= z0<<-|sL-vITR^7H-x#XX^3UIEa8hngG;ao@WX8T=6rfM9an>xg&#;2l#G8PZvA>*6 z{PwEq5SK#=a4!bv+h-M!H89}|J7rfQln?0{81#ce!OYoBSwUUMx~$$qZ@k!QK^Nip zyi4~R;2$VV3rkBF$Bt}u_O+shVRV0 o9(%4+(^}K~2Z>a6g}Jty=+frux5ee<<-Nj?%FM2t`@2*B2R**H6aWAK delta 2131 zcmZ8i4NM#78U8+-pW+4==;a5@PeThir%KWkV>e8pmngQuV6btbDvla&%Qoyzc1X(4 zLPzY3A(U%P63#)53B$Fq9i&;6ij%lFBvp}|ED;;V9;*yAq(sRKGFvxTG)T3*2aT5Q zbbkHaecyNYzR&wS&;8>wy!;tHe*@=U80jIBixEoMi8f$^>cBF_D09^wdd zdy|fXRSdcLD3&svn|1gs^BCe7Bj2LKe8vm$112?Fhi@_U**Xq7Jai}fCdMBObqb2P zW-9xY6MyoRoLF|9Sazg@>x}s}BZ2cOM#$J+;lTL@5-({aIg$b`68OZw+mkzyfZ07| zk!$A^`^8-(j%r|zoqoS9QteJ++G}DYwp}a^%feJ=Y*vM3N0wT z60HI$PBsm=kNS~$g>+gnhjV_u_h$UcUy<8Mqi&jXa6X<TchJR5DrY#skmRv{K56(Phc+& zO1Dhi@oJ8^QSqE?uCkKir?wD5skw03I}RJgbQ6KbLe@}swB!tqfhh-xzI#No%OLipo+er^#smCp2$p z;Z@gPpwcR9V)~dKYusga{@3Y(4pe5JfhFcYE+#{f?|Q5rOY%ak2VZBZ0xIqm&mv(W zP)yit7u%7d^}Cp9RKX9oQ+#J{KpjwVBwFK-1fLT|5sIB`av9v*@DboxNPV`a9rNf#*--IPwN~k!WYP&za)wfOMb5dwN6V;xq58pg9W9@ zA45#T^1$0~d~>O$#*d65W4UdG#FmVchN+J9CrUY$Wy<%%c~^mYe!#9CGp#_ajb07( z#lrg~41gfw?j9N)f@bW}wjn|-Me@q3N-7z6e5qC!q+W!gxdLC&>rDfWB=0t@;?Ohn z7VTXF$A=9zR0o>~zfHx7{ADrPRQNy4g-3ivh!~vgW%FdIZ_d0K_h_bIr-i3gXrCkh z{Z>mBEhKS#qEA_4n@2()3;?maLIa8KP4-tG^{*fj^wLG24##ETIF%Xw@QMC8)voIj zGJWgUqxN^5mTX0zVM^}aDv(K08U2g71=-w!nc}kM{r*<9U&RSmPq*pe z#7m)h_%~2VKO5)jy$NuKd>cAD(O3QUE`=lqwUrLnnachAUy0E7qECms3}^$bygg|t zkbEOACRG2=oWw zEjf}|YFa0|FAhiahz0!MGr-sB>T+;cmoSM;BJiFmD=GL~boavP1Y%7H1e)D>8OkXCx2{cE;RuqNv#j#QAMds?_V z2!^ok3y0!0p7!hQ@JK#bql8xyJVR}8yIG?_x{?1klXI!o_zgXtVqHKkMQ=U5 zO`FB`gYg=8OSuiVkCn3+x9}t{X}f52>XnapN>9gXbOoI=EV)^$NjeBx+XxtU4IH&0 zKV0k{ju^%!d#PmjN*V64Bm|R^%#`L;+;5DK806zf(*xmz)+bi@#(+tJQn?W@W?&@J z9ASR{+9q7kT`a;GL#4&DoQ&Tzr#b$->2H;vewp{qy{*|l9V!wg;f%(!qH|fs^9skQ cxvf7@b!9R8N{Aulc1=FhCeIrhskoZ)U#fO}&Hw-a