From 2554487fa44051769d010a04fdd7bd0e8587c2a6 Mon Sep 17 00:00:00 2001 From: CortexCore <2630229280@qq.com> Date: Tue, 5 Aug 2025 23:34:10 +0800 Subject: [PATCH] 1 --- Src/Core/DesignPatterns/DoubleBuffer.cs | 5 + Src/Core/Hotkey/IHotkeyCollection.cs | 9 ++ Src/Core/Item/Item.cs | 11 ++ Src/Unity/Art/Icons/bi_cart4.png.meta | 16 +- Src/Unity/Art/Icons/bxs_door-open.png.meta | 16 +- .../Art/Icons/fluent_box-20-filled.png.meta | 16 +- .../Icons/game-icons_airplane-departure.png | Bin 0 -> 678 bytes .../game-icons_airplane-departure.png.meta | 140 ++++++++++++++++++ .../Art/Icons/ic_baseline-drive-eta.png.meta | 16 +- .../Art/Icons/map_train-station.png.meta | 16 +- .../Icons/material-symbols_subway.png.meta | 16 +- Src/Unity/Art/Icons/mdi_bus.png.meta | 16 +- Src/Unity/Art/Icons/mingcute_time-line.png | Bin 0 -> 1059 bytes .../Art/Icons/mingcute_time-line.png.meta | 140 ++++++++++++++++++ ...eamline-kameleon-color_airdrop-box-duo.png | Bin 0 -> 1151 bytes ...ne-kameleon-color_airdrop-box-duo.png.meta | 140 ++++++++++++++++++ .../streamline_emergency-exit-solid.png.meta | 16 +- Src/Unity/Art/Icons/tabler_coin.png | Bin 0 -> 1133 bytes Src/Unity/Art/Icons/tabler_coin.png.meta | 140 ++++++++++++++++++ Src/Unity/Scripts/Pool/UnityPoolService.cs | 2 - Src/Unity/Scripts/Tick/GameTickService.cs | 1 + .../Scripts/UX/RadialMenu/UXRadialMenu.cs | 1 + Src/Unity/UX/Common/Common.uss | 2 +- 23 files changed, 652 insertions(+), 67 deletions(-) create mode 100644 Src/Unity/Art/Icons/game-icons_airplane-departure.png create mode 100644 Src/Unity/Art/Icons/game-icons_airplane-departure.png.meta create mode 100644 Src/Unity/Art/Icons/mingcute_time-line.png create mode 100644 Src/Unity/Art/Icons/mingcute_time-line.png.meta create mode 100644 Src/Unity/Art/Icons/streamline-kameleon-color_airdrop-box-duo.png create mode 100644 Src/Unity/Art/Icons/streamline-kameleon-color_airdrop-box-duo.png.meta create mode 100644 Src/Unity/Art/Icons/tabler_coin.png create mode 100644 Src/Unity/Art/Icons/tabler_coin.png.meta diff --git a/Src/Core/DesignPatterns/DoubleBuffer.cs b/Src/Core/DesignPatterns/DoubleBuffer.cs index 64fce0e..0d450f9 100644 --- a/Src/Core/DesignPatterns/DoubleBuffer.cs +++ b/Src/Core/DesignPatterns/DoubleBuffer.cs @@ -32,6 +32,11 @@ namespace BITKit public void Release(T newValue) { + if (newValue is null) + { + BIT4Log.Warning>("newValue is null,please check"); + } + Current = newValue; OnRelease?.Invoke(newValue); _release.SetValueThenAllow(newValue); diff --git a/Src/Core/Hotkey/IHotkeyCollection.cs b/Src/Core/Hotkey/IHotkeyCollection.cs index 7d504d2..d1604c0 100644 --- a/Src/Core/Hotkey/IHotkeyCollection.cs +++ b/Src/Core/Hotkey/IHotkeyCollection.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using System.Linq; namespace BITKit.UX.Hotkey { @@ -37,6 +38,14 @@ namespace BITKit.UX.Hotkey public class HotkeyCollection:IHotkeyCollection { + public HotkeyCollection() + { + + } + public HotkeyCollection(params IHotkeyProvider[] hotkeyProviders) + { + _hotkeys = hotkeyProviders.ToHashSet(); + } private readonly HashSet _hotkeys = new(); public IEnumerable Hotkeys => _hotkeys; public void Register(IHotkeyProvider hotkey) diff --git a/Src/Core/Item/Item.cs b/Src/Core/Item/Item.cs index 68fb998..f640744 100644 --- a/Src/Core/Item/Item.cs +++ b/Src/Core/Item/Item.cs @@ -139,6 +139,17 @@ namespace BITKit /// // ReSharper disable once EventNeverInvoked.Global event Action OnRuntimePropertiesChanged; + + public bool TryGetRuntimeProperty(out T value) + { + if (RuntimeProperties.TryGetValue(typeof(T), out var o) && o is T t) + { + value = t; + return true; + } + value = default; + return false; + } } #endregion diff --git a/Src/Unity/Art/Icons/bi_cart4.png.meta b/Src/Unity/Art/Icons/bi_cart4.png.meta index adfc320..9e0cae2 100644 --- a/Src/Unity/Art/Icons/bi_cart4.png.meta +++ b/Src/Unity/Art/Icons/bi_cart4.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -37,13 +37,13 @@ TextureImporter: filterMode: 1 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 + wrapU: 1 + wrapV: 1 wrapW: 0 - nPOTScale: 1 + nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 1 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -52,9 +52,9 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 - textureType: 0 + textureType: 8 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 @@ -125,7 +125,7 @@ TextureImporter: outline: [] physicsShape: [] bones: [] - spriteID: + spriteID: 5e97eb03825dee720800000000000000 internalID: 0 vertices: [] indices: diff --git a/Src/Unity/Art/Icons/bxs_door-open.png.meta b/Src/Unity/Art/Icons/bxs_door-open.png.meta index 706a56d..1e32485 100644 --- a/Src/Unity/Art/Icons/bxs_door-open.png.meta +++ b/Src/Unity/Art/Icons/bxs_door-open.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -37,13 +37,13 @@ TextureImporter: filterMode: 1 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 + wrapU: 1 + wrapV: 1 wrapW: 0 - nPOTScale: 1 + nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 1 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -52,9 +52,9 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 - textureType: 0 + textureType: 8 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 @@ -125,7 +125,7 @@ TextureImporter: outline: [] physicsShape: [] bones: [] - spriteID: + spriteID: 5e97eb03825dee720800000000000000 internalID: 0 vertices: [] indices: diff --git a/Src/Unity/Art/Icons/fluent_box-20-filled.png.meta b/Src/Unity/Art/Icons/fluent_box-20-filled.png.meta index a98663f..c6f32e2 100644 --- a/Src/Unity/Art/Icons/fluent_box-20-filled.png.meta +++ b/Src/Unity/Art/Icons/fluent_box-20-filled.png.meta @@ -6,7 +6,7 @@ TextureImporter: serializedVersion: 13 mipmaps: mipMapMode: 0 - enableMipMap: 1 + enableMipMap: 0 sRGBTexture: 1 linearTexture: 0 fadeOut: 0 @@ -37,13 +37,13 @@ TextureImporter: filterMode: 1 aniso: 1 mipBias: 0 - wrapU: 0 - wrapV: 0 + wrapU: 1 + wrapV: 1 wrapW: 0 - nPOTScale: 1 + nPOTScale: 0 lightmap: 0 compressionQuality: 50 - spriteMode: 0 + spriteMode: 1 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 @@ -52,9 +52,9 @@ TextureImporter: spriteBorder: {x: 0, y: 0, z: 0, w: 0} spriteGenerateFallbackPhysicsShape: 1 alphaUsage: 1 - alphaIsTransparency: 0 + alphaIsTransparency: 1 spriteTessellationDetail: -1 - textureType: 0 + textureType: 8 textureShape: 1 singleChannelComponent: 0 flipbookRows: 1 @@ -125,7 +125,7 @@ TextureImporter: outline: [] physicsShape: [] bones: [] - spriteID: + spriteID: 5e97eb03825dee720800000000000000 internalID: 0 vertices: [] indices: diff --git a/Src/Unity/Art/Icons/game-icons_airplane-departure.png b/Src/Unity/Art/Icons/game-icons_airplane-departure.png new file mode 100644 index 0000000000000000000000000000000000000000..f7b379ce2fb73f425a2e6bf519b986a2be3ee139 GIT binary patch literal 678 zcmV;X0$KfuP) zvh*S;1|mTa1VIqyN<UY*~W?SrL>q+kz}nn_$~@$aa}M`GObwYzf4L za}kggIw%C)WnL!5fM8pLTn&5lV{5q965VB9-uN3$O%aH+!BLgXL)}@}$y|}KEh#i` zdt0cDZBZ*qu#@@qdK5ay3*d+5eH)n@19=y~Ugj4LaMWI%0(+TXND)GT>kI5rE?X@YO z6cVV`gA^l8W-uR~OjrC&6hRpE@e}$^Gkx*%1*#{?;bz|j(6>Nu*?*$x(Vg1vXf9|v zfY*CJL}QvhR{6Zjv2)o>Nw7aFc9Ccp&uc&{uF>SC*IAY__9whdaGs`Nm?A zj%8W7I_R8mZ<=Mv@`iHQ&KQQqN~MlVtVU-DR_K0!jvr!KK2rg*CPB0l+lJc7EtdUc zxBqn*YA410Z!Bw;uRLKkG&If)5jVLx&)Bluv0O&fd&P3gvOydcLl22g$+rl_9y%}S z+m7jsVG%a+6%9c|=iRjjDolhS>KmbZBfidWQPCZ{_BR0|7^(rnW4`!X_vrHA(ZeER z*!db=c^XY#lJIxwbh4yGy5}{vR1&n~PvedfQR?esM4w*wR08;2zn9xX_NEo}0Qzun zo|Qiopu7HtdQ#E=U42^=d_jj58>M24jM=t=0kqXA=mi&nx-|SNIDvAHPAdj+f}{N`1z%jUrU9W0X_(2 zJ9e=b8adq%mF58>-LDxyy1AkAp%KcAbfabfX}p}%L4~Ai(i|YsP+i>4u1KVp5_C;5 zz!0np8X<}l0~jjDPtUayMli8AY6gfNLw(?x`iXzOcy7rxLi8M_8K4o$3>Acpu%>!O zFhW^Fv2epTkO>}aqym3f3#mpx8@89YPN`(BRMLNM?QgG`5j=IJ4PnT8>$1^Sic);f zBC;Oo+#o%Mfi|(>m@Kn^r! zhr}YjJZFpQ3q9su{TQrsXEzL2h&c3wK79Je8qux>TDaNJNPz$F#!wC(FQ~R6 zqyqiKI6Knp^8&|`P7K<_ED4KJUJCz7?4Y~1lj#Nh{LNA3BsNW-tp5ys8l1zQAhD!@ zfbRA{&7>)WQ)D)%pCYsMv|oR9LO4mvqQbm@a2D#QGR58vfxKh%efq5pv^8Ak50ncf zO&zl7jByoNuS=@jA};;b<`_9QRn}0OLvWk$Sjkk`Czekq|F!^e*_6UA+6%O< zyFy+5WTB#BOd^{DLs*n!{2iBIg|9P=VbN}f*oQ%;`$iI1ix dCMG7v&Tn%DnU_zs^CkcQ002ovPDHLkV1go4;!Xen literal 0 HcmV?d00001 diff --git a/Src/Unity/Art/Icons/mingcute_time-line.png.meta b/Src/Unity/Art/Icons/mingcute_time-line.png.meta new file mode 100644 index 0000000..8600f3d --- /dev/null +++ b/Src/Unity/Art/Icons/mingcute_time-line.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 3020293f4634e9045992089839627bb4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Src/Unity/Art/Icons/streamline-kameleon-color_airdrop-box-duo.png b/Src/Unity/Art/Icons/streamline-kameleon-color_airdrop-box-duo.png new file mode 100644 index 0000000000000000000000000000000000000000..17c99e1e787688191257c4c56422a1c010e5b103 GIT binary patch literal 1151 zcmV-_1c3XAP)5*P!0$oTt4iv)k3SXIdj4M&?answqd1G z=~GdGXtr~-gFx^4>|J} z*dl=8^d}xl`^y4;AT@5NIN|~Fs?;7VbpSv8IxS9Iih!$96_!>3j$}l|bO1nA*ygG* zkp)OB0R?{g5vU4{qyUK}px{qGV!|chqwG&<2@t^?+@a!A6$$GJNman!xp#V`TBKEg zy*8#|b$v-lt3hlD2#ZWv!~zP!AQZf|eJ<>loKX&}ttxg>+*F!QNI%ec6> zxM#%k^E1*)KNJSdX4Bzz1L7UFj^}ybNfVr@FL!r$U7YXl@4FQ22CEm-1UTPk92cg+ zKBx1!)oS^&u!)TzZbSqW)V(@K?2#rogT3qPYl89lZ;j$TRq4wJ(~m z_6N-_;Ylby+O6VjcrD7v%CE`I zI)O8W`sb2aI;W?n?(6HTLo15c2At6Cc12!XU0sRL@%Hfa^z=*Q1kxf+Y>*~)c6Lzw zzed-C!GL_<|0m4m<|Z8;9xmJ)7Zz-7ZDF1uOG^vd954?A4TrI3)50V1YeDggn33n_jcR;vTNS5T)Dl6#U0 z-BFS3n85b|GBzhEjgGvM6eJsxYmy5^kWnuqx#D{sxsF6})B%s z+4+hjgPFlkL$wGAM(0yl2qpSz<2bGb$cxC!2wuDp$a900MC7m6fA-Dj!>h-db4xO zqM<);&@a{V7#zRyJ`aTqD{bP>SU zv{%0Y`*w4#TY(S62s$lQg1oHbdM5$C5KquW-+iB;A32wMa6_v8kT-sY`SFv>yzizV z0xr4SgByol$FeI(0TZChKqkUD6lNV6*Y9*YOnQ$2Trr$=5+#Zwxa;z#mT|oIy{)k^gn|KRK7~VK{njhDPY`bW&sI zaF1^7LsIa8aD+Kng6iCG-MfzKeFPMGIRyK5!)%9H*_M^LWM^b3oVQ%>S_SU0K??Tm z7Opn8DN95rtmh*(*%`##t81nB-g*T<&lFyl($du+uD?Y)IKON~%c(Oq zEuK@MvaHH8fAL6JU&FYx_z$rP*tX%7zVB16nGKU}hDlzGSdG4|av7cmdH=@x{5>_C zBvGqibHAq%Ww>{6#H5DOqX%c&qchle_34~u(o10?@FQP}_Le&)CxNGFtl&gobM9Ck#$4iELpSj4Ax2F^ z4vxTjGquChL~2lSgQJ58)dBT>V8fltj5-O|yTRs+fSElm(c|3l?BEXV(Eqsn7AJIa zOa5RY6}KE&4$%ByVo#fy7l??6h=_=Ym(); foreach (var (_,list) in Pool) { foreach (var obj in list) { if (obj is not Component component) continue; - if (!hashset.Add(component.gameObject)) continue; if (component) Object.Destroy(component.gameObject); } diff --git a/Src/Unity/Scripts/Tick/GameTickService.cs b/Src/Unity/Scripts/Tick/GameTickService.cs index adf6fb2..e3b3574 100644 --- a/Src/Unity/Scripts/Tick/GameTickService.cs +++ b/Src/Unity/Scripts/Tick/GameTickService.cs @@ -37,6 +37,7 @@ namespace BITKit _ActionQueue.Clear(); //_TickActions.Clear(); TickCount = ulong.MinValue; + _TickEvents = null; } private static readonly Queue _ActionQueue = new(); // private static readonly CacheList> _TickActions = new(); diff --git a/Src/Unity/Scripts/UX/RadialMenu/UXRadialMenu.cs b/Src/Unity/Scripts/UX/RadialMenu/UXRadialMenu.cs index 9314156..78c9537 100644 --- a/Src/Unity/Scripts/UX/RadialMenu/UXRadialMenu.cs +++ b/Src/Unity/Scripts/UX/RadialMenu/UXRadialMenu.cs @@ -12,6 +12,7 @@ namespace BITKit.UX { private static UXRadialMenu _singleton; protected override string DocumentPath => "ui_radial_menu"; + public override bool IsWindow => true; public override bool CloseWhenClickOutside => true; public override bool AllowCursor => true; private VisualTreeAsset _template; diff --git a/Src/Unity/UX/Common/Common.uss b/Src/Unity/UX/Common/Common.uss index 66c3344..ab0f130 100644 --- a/Src/Unity/UX/Common/Common.uss +++ b/Src/Unity/UX/Common/Common.uss @@ -479,7 +479,7 @@ Foldout Toggle Label { margin-right: 0; margin-bottom: 0; margin-left: 0; - min-width: auto; + min-width: 0; min-height: auto; }