public void Initialize(VehicleScheduleData data, Settings settings) { Transform timeIndicator = transform.Find("TimeIndicator"); if (settings.ShowScheduleTotalTime) { _text = timeIndicator.Find("TotalTimeText").GetComponent <Text>(); Locale locale = LazyManager <LocaleManager> .Current.Locale; Tooltip.For(timeIndicator, GetTotalTimeTooltipText, 0); } else { timeIndicator.SetActive(false); } if (settings.ShowTotalTransferCapacity) { _capacityIndicator = transform.GetComponentInChildren <CargoCapacityIndicator>(); _capacityIndicator.Initialize(null, null); Tooltip.For( _capacityIndicator, () => GetCapacityTooltipText(), 0 ); } _scheduleData = data; UpdateValues(data, null); }
private static void VehicleWindowScheduleTabSeparatorView_Initialize_pof(VehicleWindowDetailsTabBodyItem __instance, int index, VehicleUnit vehicleUnit) { VehicleScheduleData scheduleData = Manager <VehicleScheduleDataManager> .Current[vehicleUnit.Vehicle]; if (scheduleData != null) { Tooltip.For(__instance, () => GetToolTipText(vehicleUnit.Vehicle, index), 0); } }
public void Initialize(VehicleScheduleData vehicleScheduleData) { ScheduleTab = gameObject.GetComponent <VehicleWindowScheduleTab>(); if (ScheduleTab == null) { throw new NullReferenceException("Component VehicleWindowScheduleTab not found"); } ScheduleData = vehicleScheduleData; }
public void UpdateValues(VehicleScheduleData data, RootTask _) { if (data != _scheduleData) { throw new ArgumentException("Schedule data is not for this ScheduleTotalIndicator"); } Locale locale = LazyManager <LocaleManager> .Current.Locale; IReadOnlyDictionary <Item, TransferData> routeTotalTransfers = null; if (_capacityIndicator != null) { _lastTotalTransfers = data.Capacity.GetTotalTransfers(); routeTotalTransfers = RouteTotalTransfers; } int itemsLimit = routeTotalTransfers != null ? 7 : 10; _lastTransfersPerStation = null; _lastMonthMultiplier = data.ScheduleMonthlyMultiplier; _lastTotalTime = data.ScheduleAvereageDuration; _lastInaccurate = _lastTotalTime is { Estimated : true }; _lastInaccurate = false; if (_text != null) { itemsLimit = routeTotalTransfers != null ? 3 : 5; if (_lastTotalTime != null) { _lastInaccurate = _lastTotalTime.Estimated; _text.text = locale.GetString("schedule_stopwatch/days_hours").Format(((int)_lastTotalTime.Duration.TotalDays).ToString("N0"), _lastTotalTime.Duration.Hours.ToString("N0")); if (_lastInaccurate) { _text.color = Color.gray; } else { _text.color = Color.black; } } else { _text.text = locale.GetString("schedule_stopwatch/unknown").ToUpper(); } } if (_capacityIndicator != null) { _lastTotalTransfers = data.Capacity.GetTotalTransfers(); _capacityIndicator.UpdateItems(_lastTotalTransfers, _lastMonthMultiplier, routeTotalTransfers, itemsLimit: itemsLimit, transfDirection: TransferDirection.unloading); } }
public void Initialize(RootTask task, VehicleScheduleData data, Settings settings) { Task = task; _scheduleData = data; transform.name = "StopWatchDuration"; Transform timeIndicator = transform.Find("TimeIndicator"); if (settings.ShowIndividualTaskTimes) { _travelTimeText = timeIndicator.Find("TravelTimeText").GetComponent <Text>(); _loadingTimeText = timeIndicator.Find("LoadingTimeText").GetComponent <Text>(); Tooltip.For( timeIndicator, LazyManager <LocaleManager> .Current.Locale.GetString("schedule_stopwatch/task_times_hint") ); } else { timeIndicator.gameObject.SetActive(false); } if (settings.ShowIndividualLoadingCapacity) { _loadingCapIcon = transform.Find("LoadingCapacityIcon"); _loadCapacityIndicator = transform.Find("CargoCapacityLoad").GetComponent <CargoCapacityIndicator>(); _loadCapacityIndicator.Initialize(null, null); Tooltip.For( _loadCapacityIndicator, () => GetCapacityTooltipText(), null ); } if (settings.ShowIndividualUnloadingCapacity) { _unloadCapacityIndicator = transform.Find("CargoCapacityUnload").GetComponent <CargoCapacityIndicator>(); _unloadingCapIcon = transform.Find("UnloadingCapacityIcon"); _unloadCapacityIndicator.Initialize(null, null); Tooltip.For( _unloadCapacityIndicator, () => GetCapacityTooltipText(), null ); } transform.gameObject.SetActive(true); }
private static string GetToolTipText(Vehicle vehicle, int unitIndex) { VehicleScheduleData scheduleData = Manager <VehicleScheduleDataManager> .Current[vehicle]; Locale locale = LazyManager <LocaleManager> .Current.Locale; if (scheduleData != null) { string result = ScheduleCapacityHelper.GetCapacityTooltipText(scheduleData.ScheduleMonthlyMultiplier, null, scheduleData.Capacity.GetTransfersPerStation(unitIndex), scheduleData.IsInacurate); if (result == "") { if (scheduleData.ScheduleMonthlyMultiplier != null) { result = locale.GetString("schedule_stopwatch/no_transfers"); } else { result = locale.GetString("schedule_stopwatch/no_transfers_data"); } } return(result); } return(locale.GetString("schedule_stopwatch/no_transfers_data")); }
public void UpdateValues(VehicleScheduleData data, RootTask _) { if (data != _scheduleData || data == null) { throw new ArgumentException("Schedule data is not for this ScheduleTaskIndicator"); } Locale locale = LazyManager <LocaleManager> .Current.Locale; if (_travelTimeText != null) { DurationData travel = _lastTravelData = data.GetAverageTravelDuration(Task); if (travel != null) { _travelTimeText.text = locale.GetString("schedule_stopwatch/days_hours").Format(((int)travel.Duration.TotalDays).ToString("N0"), travel.Duration.Hours.ToString("N0")); if (travel.Estimated) { _travelTimeText.color = Color.gray; } else { _travelTimeText.color = Color.black; } } else { _travelTimeText.text = locale.GetString("schedule_stopwatch/unknown").ToUpper(); } DurationData loading = _lastStationLoadingData = data.GetAverageStationLoadingDuration(Task); if (loading != null) { _loadingTimeText.text = locale.GetString("schedule_stopwatch/hours_minutes").Format(((int)loading.Duration.TotalHours).ToString("N0"), loading.Duration.Minutes.ToString("N0")); if (loading.Estimated) { _loadingTimeText.color = Color.grey; } else { _loadingTimeText.color = Color.black; } } else { _loadingTimeText.text = locale.GetString("schedule_stopwatch/unknown").ToUpper(); } } if (_loadCapacityIndicator != null || _unloadCapacityIndicator != null) { _lastMonthMultiplier = data.ScheduleMonthlyMultiplier; _lastTaskTransfers = _scheduleData.Capacity.GetTransfers(Task); IReadOnlyDictionary <Item, TransferData> routeTransfers = RouteTaskTransfers; int itemsLimit; if (routeTransfers != null && routeTransfers.Count > 0) { itemsLimit = _travelTimeText != null ? 2 : 5; } else { itemsLimit = _travelTimeText != null ? 4 : 8; } if (_unloadCapacityIndicator != null) { _unloadCapacityIndicator.UpdateItems(_lastTaskTransfers, _lastMonthMultiplier, routeTransfers, transfDirection: TransferDirection.unloading, itemsLimit); _unloadCapacityIndicator.gameObject.SetActive(_unloadCapacityIndicator.ItemsCount > 0); _unloadingCapIcon.gameObject.SetActive(_unloadCapacityIndicator.ItemsCount > 0); itemsLimit -= Math.Min(_unloadCapacityIndicator.ItemsCount, 1); } if (_loadCapacityIndicator != null) { _loadCapacityIndicator.UpdateItems(_lastTaskTransfers, _lastMonthMultiplier, routeTransfers, transfDirection: TransferDirection.loading, itemsLimit); _loadCapacityIndicator.gameObject.SetActive(_loadCapacityIndicator.ItemsCount > 0); _loadingCapIcon.gameObject.SetActive(_loadCapacityIndicator.ItemsCount > 0); } } }