public static bool Prefix(StorageContainer __instance) { if (!__instance.enabled) { return(false); } Constructable component = __instance.gameObject.GetComponent <Constructable>(); if (!component || component.constructed) { if (__instance.IsEmpty()) { HandReticle.main.SetInteractText(__instance.hoverText, "Empty"); } else { List <TechType> itemTypes = __instance.container.GetItemTypes(); if (itemTypes.Count() == 1) { HandReticle.main.SetInteractText(__instance.hoverText, string.Format("{0} {1}", __instance.container.count, Language.main.Get(itemTypes[0].AsString()))); } else { HandReticle.main.SetInteractText(__instance.hoverText, string.Format("{0} items", __instance.container.count)); } } HandReticle.main.SetIcon(HandReticle.IconType.Hand, 1f); } return(false); }
public static string Getfullstate(StorageContainer _storageContainer) { Logger.Log(Logger.Level.Debug, "call Getfullstate"); var items = _storageContainer.container.GetItemTypes(); int itemscount = _storageContainer.container.count; Logger.Log(Logger.Level.Debug, $"Itemcount all Items = {itemscount.ToString()}"); int origSize = _storageContainer.container.sizeX * _storageContainer.container.sizeY; Logger.Log(Logger.Level.Debug, $"Original Max Size = {origSize.ToString()}"); int usedSize = 0; foreach (var i in items) { var size = TechData.GetItemSize(i); int numberofsingletechtype = (_storageContainer.container.GetItems(i)).Count; Logger.Log(Logger.Level.Debug, $"Techtype = {i.ToString()}"); Logger.Log(Logger.Level.Debug, $"Number of items in this Techtype = {numberofsingletechtype.ToString()}"); usedSize += size.x * size.y * numberofsingletechtype; Logger.Log(Logger.Level.Debug, $"Used Space of this Techtype = {(size.x * size.y * numberofsingletechtype).ToString()}"); } var sizeLeft = origSize - usedSize; Logger.Log(Logger.Level.Debug, $"Used Space off all Techtypes = {usedSize.ToString()}"); StringBuilder stringBuilder = new StringBuilder(); if (!_storageContainer.container.HasRoomFor(1, 1)) { Logger.Log(Logger.Level.Debug, "Container is Full - way"); stringBuilder.AppendLine("Full - " + itemscount + " Items stored"); stringBuilder.AppendLine($"{sizeLeft} of {origSize} free"); } else if (_storageContainer.IsEmpty()) { Logger.Log(Logger.Level.Debug, "Container is empty - way"); stringBuilder.AppendLine("Empty"); stringBuilder.AppendLine($"{sizeLeft} of {origSize} free"); } else { Logger.Log(Logger.Level.Debug, "Container Contains X Item - way"); stringBuilder.AppendLine(itemscount + " Items - " + usedSize + " used"); stringBuilder.AppendLine($"{sizeLeft} of {origSize} free"); } return(stringBuilder.ToString()); }
private IEnumerator Sort() { isSorting = false; sortableItems = 0; unsortableItems = container.container.count; if (!initialized || container.IsEmpty()) { yield break; } AccumulateTargets(); if (NoTargets()) { yield break; } if (SortFilteredTargets(false)) { isSorting = true; } else if (SortFilteredTargets(true)) { isSorting = true; } else { foreach (AutosortTarget target in anyTargets) { foreach (var item in container.container.ToList()) { if (target.CanAddItem(item.item)) { SortItem(item.item, target); sortableItems++; unsortableItems--; isSorting = true; yield break; } } yield return(null); } } yield break; }
private IEnumerator Sort() { sortedItem = false; sortableItems = 0; unsortableItems = container.container.count; if (!initialized || container.IsEmpty()) { isSorting = false; yield break; } AccumulateTargets(); if (NoTargets()) { isSorting = false; yield break; } isSorting = true; yield return(SortFilteredTargets(false)); if (sortedItem) { yield break; } yield return(SortFilteredTargets(true)); if (sortedItem) { yield break; } yield return(SortAnyTargets()); if (sortedItem) { yield break; } isSorting = false; }