using System; using System.Collections.Generic; using System.Linq; using Xabbo.Core; Log("=== Color Puzzle Scanner ==="); Log("Scanning all floor items in the room..."); var furniByName = new Dictionary>(); foreach (IFloorItem item in FloorItems) { if (item == null) continue; string name = item.GetName(); if (!furniByName.ContainsKey(name)) furniByName[name] = new List<(long, int, int, double, int, int)>(); furniByName[name].Add((item.Id, item.Location.X, item.Location.Y, item.Location.Z, item.State, item.Direction)); } Log($"\nFound {furniByName.Count} unique furni types:\n"); foreach (var kvp in furniByName.OrderByDescending(x => x.Value.Count)) { Log($"--- {kvp.Key} (x{kvp.Value.Count}) ---"); foreach (var f in kvp.Value.OrderBy(x => x.Y).ThenBy(x => x.X)) { Log($" ID={f.Id} Pos=({f.X},{f.Y}) Z={f.Z:F2} State={f.State} Dir={f.Dir}"); } } Log("\n=== Scan Complete ===");