Keeps the repo root clean - only README.md visible on landing page. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
32 lines
1008 B
C#
32 lines
1008 B
C#
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<string, List<(long Id, int X, int Y, double Z, int State, int Dir)>>();
|
|
|
|
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 ===");
|