public void FixedUpdate() { if (!isStarted && _startup) { // Load scenario JSON TextAsset scenarioJsonFile = Resources.Load <TextAsset>(scenariosPath + scenarioId + "/scenario"); ScenarioJson scenarioJson = JsonUtility.FromJson <ScenarioJson>(scenarioJsonFile.text); // Set current simulated time currentSimulatedTime = Convert.ToDateTime(scenarioJson.currentSimulatedTime); // Set Point Last Seen pointLastSeen = scenarioJson.pointLastSeen; // Set Last Known Position lastKnownPosition = scenarioJson.lastKnownPosition; // Set Command Post location commandPostLocation = scenarioJson.commandPostLocation; // Setup field teams foreach (FieldTeamJson fieldTeamJson in scenarioJson.fieldTeams) { GameObject fieldTeamObj = GameObject.Instantiate(fieldTeamPrefab, this.transform); FieldTeam fieldTeam = fieldTeamObj.GetComponent <FieldTeam>(); fieldTeam.teamName = fieldTeamJson.name; ColorUtility.TryParseHtmlString(fieldTeamJson.color, out fieldTeam.teamColor); fieldTeam.recordingDirectoryPath = scenariosPath + scenarioId + "/TeamRecords/" + fieldTeamJson.path; fieldTeam.simulatedStartTime = Convert.ToDateTime(fieldTeamJson.simulatedStartTime); fieldTeam.mainController = this; AddFieldTeam(fieldTeam); } //// Instantiate PLS and LKP markers //plsMarkerObj = GameObject.Instantiate(plsMarkerPrefab, sceneUiObj.transform); //plsMarkerObj.transform.SetSiblingIndex(0); //lkpMarkerObj = GameObject.Instantiate(lkpMarkerPrefab, sceneUiObj.transform); //lkpMarkerObj.transform.SetSiblingIndex(0); // Instantiate Command Post marker cpMarkerObj = GameObject.Instantiate(cpMarkerPrefab, sceneUiObj.transform); cpMarkerObj.transform.SetSiblingIndex(0); _startTimeOfSimulation = currentSimulatedTime.dateTime; _actualStartTime = DateTime.Now; networkEvents.AddHandler("MessageToCommand", MessageToCommand); //LayoutRebuilder.MarkLayoutForRebuild(sideUiObj.GetComponent<RectTransform>()); Canvas.ForceUpdateCanvases(); layoutGroupToRefresh.enabled = false; layoutGroupToRefresh.enabled = true; isStarted = true; _startup = false; GameObject.Destroy(startScreenObj); } }
public void DisplayImage(UDateTime simulatedTime) { string path; if (fieldTeam.isInRadioDeadZone) { path = fieldTeam.GetGrayscalePhotoThumbnailPathFromSimulatedTime(simulatedTime); if (_lastImagePathDisplayed == null || _lastImagePathDisplayed != path) { _imageLoader.StartLoading(path, this, fieldTeam.mainController.footageThumbnailsCache); _lastImagePathDisplayed = path; } } else { path = fieldTeam.GetPhotoThumbnailPathFromSimulatedTime(simulatedTime); if (_lastImagePathDisplayed == null || _lastImagePathDisplayed != path) { if (fieldTeam.mainController.isOptimizedVersion) { _imageLoader.StartLoading(path, this, fieldTeam.mainController.footageThumbnailsCache); } else { Texture2D texture = Utility.LoadImageFile(path); footage.sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0, 0)); } _lastImagePathDisplayed = path; } } }
public void AddFieldTeam(FieldTeam fieldTeam) { if (_earliestSimulatedStartTime == null || fieldTeam.simulatedStartTime.dateTime < _earliestSimulatedStartTime.dateTime) { _earliestSimulatedStartTime = fieldTeam.simulatedStartTime; } if (_latestSimulatedEndTime == null || fieldTeam.simulatedEndTime.dateTime > _latestSimulatedEndTime) { _latestSimulatedEndTime = fieldTeam.simulatedEndTime; } fieldTeam.FieldTeamInstantiate(); }
public static void SetCurrentDateTime(DateTime dt) { using (var context = new Db1Entities()) { var uDateTime = new UDateTime { CurrentDateTime = dt, SystemTime = DateTime.Now }; context.UDateTime.Add(uDateTime); context.SaveChanges(); } }
public void Start() { if (!isStarted) { if (instantiateBySimulatedTime) { actualTime = fieldTeam.ConvertSimulatedTimeToActualTime(simulatedTime); } else // if (!instantiateBySimulatedTime) { simulatedTime = fieldTeam.ConvertActualTimeToSimulatedTime(actualTime); } isStarted = true; } }
public static IntPtr LastChanceAllocPreferred(ASafeMemoryHandle processHandle, IntPtr preferred, int size, MemoryProtectionFlags protection) { var startTime = UDateTime.Ticks(); var address = UIntPtr.Zero; var distance = 0UL; var count = 0; if (preferred.ToInt64() % 65536 > 0) { preferred = (IntPtr)(preferred.ToInt64() - (preferred.ToInt64() % 65536)); } while (address == UIntPtr.Zero && (count < 10 || (UDateTime.Ticks() < startTime + 10000)) && (distance < 0x80000000UL)) { address = Allocate(processHandle, (IntPtr)(preferred.ToUIntPtr().ToUInt64() + distance), size, protection, MemoryAllocationFlags.Reserve | MemoryAllocationFlags.Commit).ToUIntPtr(); if (address == UIntPtr.Zero) { distance += 65536; } count += 1; } return(address.ToIntPtr()); }