private static void UpdateBuildingHealthMode() { Vector3 playerPos = Player.m_localPlayer.transform.position; foreach (WearNTear wearNTear in WearNTear.GetAllInstaces()) { UpdateDataCache(wearNTear); if (ShouldHighlight(wearNTear, playerPos)) { HighlightPiece(wearNTear); } } }
private void Update() { if (configEnableAutoRepair.Value) { var cur_time = DateTime.Now.Ticks; if ((cur_time - l_saved_time) / TimeSpan.TicksPerSecond >= configRepairInterval.Value) { l_saved_time = cur_time; List <WearNTear> list = WearNTear.GetAllInstaces(); if (list.Count > 0) { foreach (WearNTear item in list) { ZNetView view = (ZNetView)GetInstanceField(item, "m_nview"); if (view != null) { if (PrivateArea.CheckInPrivateArea(item.transform.position)) { float health = view.GetZDO().GetFloat("health"); if (!(health > 0) || !(health < item.m_health)) { continue; } var res_health = health + item.m_health * configRepairAmountPercent.Value / 100; if (res_health > item.m_health) { res_health = item.m_health; } view.GetZDO().Set("health", res_health); view.InvokeRPC(ZNetView.Everybody, "WNTHealthChanged", new object[] { res_health }); } } } } } } }
private static IEnumerator UpdateBuildingHealthModeCo() { Vector3 playerPos = Player.m_localPlayer.transform.position; int c = 0; int m = AsyncObjectPerFrame.Value; WearNTear[] instances = WearNTear.GetAllInstaces().OrderBy( i => Vector3.Distance(i.transform.position, playerPos)).ToArray(); foreach (WearNTear wearNTear in instances) { if (c % m == 0) { yield return(null); } if (!_modEnabled) { break; } if (wearNTear == null) { continue; } UpdateDataCache(wearNTear); if (ShouldHighlight(wearNTear, playerPos)) { HighlightPiece(wearNTear); } c++; } isUpdatingAsync = false; }
// Token: 0x0600103A RID: 4154 RVA: 0x000727CF File Offset: 0x000709CF private IEnumerator UpdateWear() { for (;;) { List <WearNTear> instances = WearNTear.GetAllInstaces(); int index = 0; while (index < instances.Count) { int num = 0; while (num < 50 && instances.Count != 0 && index < instances.Count) { instances[index].UpdateWear(); int num2 = index + 1; index = num2; num++; } yield return(null); } yield return(new WaitForSeconds(0.5f)); instances = null; } yield break; }