From c655b6b6eccab18d2d0d6bdb60dfa7ac740789df Mon Sep 17 00:00:00 2001 From: jmaniuvc Date: Fri, 14 Mar 2025 09:15:16 +0900 Subject: [PATCH] Production Status --- Assets/Images/UI/ProductionStatus.meta | 8 + .../IMG_ProductionStatus_bg.png | Bin 0 -> 5142 bytes .../IMG_ProductionStatus_bg.png.meta | 140 ++++++++++++++++++ Assets/Scripts/ProductionStatusManager.cs | 6 +- Assets/Scripts/UI/Panel_ProductionStatus.cs | 82 ++++++++++ .../Scripts/UI/Panel_ProductionStatus.cs.meta | 11 ++ 6 files changed, 246 insertions(+), 1 deletion(-) create mode 100644 Assets/Images/UI/ProductionStatus.meta create mode 100644 Assets/Images/UI/ProductionStatus/IMG_ProductionStatus_bg.png create mode 100644 Assets/Images/UI/ProductionStatus/IMG_ProductionStatus_bg.png.meta create mode 100644 Assets/Scripts/UI/Panel_ProductionStatus.cs create mode 100644 Assets/Scripts/UI/Panel_ProductionStatus.cs.meta diff --git a/Assets/Images/UI/ProductionStatus.meta b/Assets/Images/UI/ProductionStatus.meta new file mode 100644 index 00000000..1308e018 --- /dev/null +++ b/Assets/Images/UI/ProductionStatus.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7224215e4982612429b499aa770fd435 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Images/UI/ProductionStatus/IMG_ProductionStatus_bg.png b/Assets/Images/UI/ProductionStatus/IMG_ProductionStatus_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..264bf458304cd291a9d83e31fbe853598cd1b6bc GIT binary patch literal 5142 zcmeAS@N?(olHy`uVBq!ia0y~yV9#M-VBEsN1{C?{etid!;ww3IHhoq7pKCk6o_yT?{k{CwZzmF}zx`P{`|9nlHw%_Rm07F{ob7r$ z_{nelV{dH;)CoFQF1$W;p( zVKgr=jJA;=iD0yi1P+HGQZG1fodxS4cVEpm+H#L28WN2SuF}6MW`y2e3+t{g{I#XG z-R{d-I6rFj+QeJ0>tH?ifXi94bL}ju|6Q_Qb$tcI5Qc~byMNcey}u_vukUplOr^ly ztm3-6{M!zn`m`M0kFSaL&pWgJ_rbDFrP)TgXZ2vtFkchCf9vMI?H_AwWbVY+?JZdx zYt`rz8b2xLicmT?k%5ROg{YVRv`br+JB$&+wZN14Ls<-eQ9`N{@+KHpS|5} z|NMA3eg6K^ck1=CL+^f#ye$h?buH`DlI!~a|6YA7?XGKWbmJUw6e!{KnVs_gcfM!8 zy)6!Em(BH>@V9?Bp5*`gbi7(W>h>$uo@;g6tky1lz4_s>Hy2^UL<#loZ?{}O`*g1R ze7|G$vt<5n4FB@&*3mdKI;Vst0D2VDn*aa+ literal 0 HcmV?d00001 diff --git a/Assets/Images/UI/ProductionStatus/IMG_ProductionStatus_bg.png.meta b/Assets/Images/UI/ProductionStatus/IMG_ProductionStatus_bg.png.meta new file mode 100644 index 00000000..62815379 --- /dev/null +++ b/Assets/Images/UI/ProductionStatus/IMG_ProductionStatus_bg.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 5cd2354d7ff2596489aec6d4ae577832 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + 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: 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: 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: Server + 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/Assets/Scripts/ProductionStatusManager.cs b/Assets/Scripts/ProductionStatusManager.cs index e09aa2a2..9303ad33 100644 --- a/Assets/Scripts/ProductionStatusManager.cs +++ b/Assets/Scripts/ProductionStatusManager.cs @@ -12,6 +12,8 @@ namespace CHN { public Building building; + public List productionStatusInfos = new(); + public Dictionary firstFloorInfo = new Dictionary(); public Dictionary secondFloorInfo = new Dictionary(); @@ -28,7 +30,9 @@ namespace CHN public void SetFloorProductionStatus(List completeInfos) { - foreach(var completeInfo in completeInfos) + productionStatusInfos = completeInfos; + + foreach (var completeInfo in completeInfos) { SetFloorInfo(building.floors[0], completeInfo, firstFloorInfo); SetFloorInfo(building.floors[1], completeInfo, secondFloorInfo); diff --git a/Assets/Scripts/UI/Panel_ProductionStatus.cs b/Assets/Scripts/UI/Panel_ProductionStatus.cs new file mode 100644 index 00000000..1621c2a4 --- /dev/null +++ b/Assets/Scripts/UI/Panel_ProductionStatus.cs @@ -0,0 +1,82 @@ +using CHN; +using System; +using System.Collections; +using System.Collections.Generic; +using TMPro; +using UnityEngine; +using WI; +using static MQTT; + +public class Panel_ProductionStatus : PanelBase +{ + TextMeshProUGUI Text_DayAndTime; + TextMeshProUGUI worknm; + TextMeshProUGUI status; + TextMeshProUGUI goalqty; + TextMeshProUGUI workqty; + TextMeshProUGUI goodqty; + TextMeshProUGUI badqty; + + ProductionStatusManager productionStatusManager; + + [SerializeField] + float loopTime = 3; + float waitTime; + + int productionStatusInfoNum; + + public override void AfterAwake() + { + productionStatusManager = FindSingle(); + } + + public override void AfterStart() + { + SetProductionStatus(); + } + + private void Update() + { + UpdateDayAndTime(); + + waitTime += Time.deltaTime; + if (waitTime > loopTime) + { + productionStatusInfoNum += 1; + if (productionStatusInfoNum > productionStatusManager.productionStatusInfos.Count) + { + productionStatusInfoNum = 0; + } + + SetProductionStatus(); + waitTime = 0; + } + } + + void SetProductionStatus() + { + List completeInfos = productionStatusManager.productionStatusInfos; + CompleteInfo completeInfo = completeInfos[productionStatusInfoNum]; + + worknm.SetText(completeInfo.worknm); + status.SetText(completeInfo.statusnm); + goalqty.SetText(RoundToIntData(completeInfo.goalqty)); + workqty.SetText(RoundToIntData(completeInfo.workqty)); + goodqty.SetText(RoundToIntData(completeInfo.goodqty)); + badqty.SetText(RoundToIntData(completeInfo.badqty)); + } + + string RoundToIntData(string data) + { + var floatData = float.Parse(data); + var intData = Mathf.RoundToInt(floatData); + + return intData.ToString(); + } + + void UpdateDayAndTime() + { + string currentTime = DateTime.Now.ToString("yyyy.MM.dd HH:mm"); + Text_DayAndTime.SetText(currentTime); + } +} diff --git a/Assets/Scripts/UI/Panel_ProductionStatus.cs.meta b/Assets/Scripts/UI/Panel_ProductionStatus.cs.meta new file mode 100644 index 00000000..34ae3786 --- /dev/null +++ b/Assets/Scripts/UI/Panel_ProductionStatus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c9007a76f32c0734d90463210cfb995a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: