private static Boolean IsFiltered(EntityComponent component) { // Filter empty containers if (Configuration.Scanner.DoNotHighlightEmptyContainers) { if (component is CharacterComponent characterComponent) { return(CharacterComponentHelper.TryGetLootCost(characterComponent, out var cost) && cost == 0); } if (component.Entity is Chest chest) { return(chest.lockLevel == 0 && chest.Inventory.Count == 0); } } // Filter standalone items by name if (component is ItemComponent itemComponent) { EntityProto prototype = itemComponent.Entity.Prototype; if (!String.IsNullOrEmpty(prototype.m_Localization)) { return(Configuration.Scanner.DoNotHighlightItems.Contains(prototype.Caption)); } } return(false); }
public static void Prefix(PlayerSelection __instance, EntityComponent entity, ref PlayerSelection.SelectionType type, Single intensity = 0f) { const PlayerSelection.SelectionType GrayColor = unchecked ((PlayerSelection.SelectionType) 0xFF____80_80_80); const PlayerSelection.SelectionType VioletColor = unchecked ((PlayerSelection.SelectionType) 0xFF__EA_04_FF); if (type != PlayerSelection.SelectionType.Select) { return; } if (Game.World.Player.CharacterComponent.Character.Hallucinating.Level != ConditionLevel.Normal) { return; } if (entity is CharacterComponent characterComponent) { if (CharacterComponentHelper.TryGetLootCost(characterComponent, out var cost) && cost == 0) { type = GrayColor; } } else if (entity is ChestComponent chestComponent) { Chest chest = chestComponent.chest; if (chest.lockLevel != 0) { type = VioletColor; return; } if (chest.Inventory.Count == 0) { type = GrayColor; } } else if (entity is DoorComponent doorComponent) { var door = doorComponent.door; if (door.lockLevel != 0) { type = VioletColor; return; } } }