Files
7d2dXG/Mods/zzz_REBIRTH__Utils/Scripts/Command/ConsoleCmdListPrefabs.cs
Nathaniel Cosford 062dfab2cd Patched
2025-05-30 01:04:40 +09:30

57 lines
2.0 KiB
C#

using System.Collections.Generic;
using System.Linq;
public class ConsoleCmdListPrefabs : ConsoleCmdAbstract
{
public override bool IsExecuteOnClient => true;
public override bool AllowedInMainMenu => false;
public override int DefaultPermissionLevel => 1000;
public override void Execute(List<string> _params, CommandSenderInfo _senderInfo)
{
if (GameManager.Instance.adminTools == null)
return;
List<PrefabInstance> uniquePrefabs = new List<PrefabInstance>();
// Iterate over all prefabs
for (int i = 0; i < GameManager.Instance.GetDynamicPrefabDecorator().allPrefabs.Count; i++)
{
PrefabInstance prefabInstance = GameManager.Instance.GetDynamicPrefabDecorator().allPrefabs[i];
if (prefabInstance == null) continue;
bool proceed = prefabInstance.prefab.SleeperVolumes.Count > 0 && !prefabInstance.prefab.Tags.Test_AnySet(FastTags<TagGroup.Poi>.Parse("rwgonly,streettile,hideui,part"));
if (!proceed)
{
continue;
}
// Check if prefab already exists in the list (by prefabName)
if (uniquePrefabs.Any(p => p.prefab.PrefabName == prefabInstance.prefab.PrefabName)) continue;
// Add unique prefab instance to the list
uniquePrefabs.Add(prefabInstance);
}
// Sort the list by difficultyTier
uniquePrefabs = uniquePrefabs.OrderBy(p => p.prefab.DifficultyTier).ToList();
foreach (PrefabInstance prefabInstance in uniquePrefabs)
{
Log.Out("ConsoleCmdListPrefabs-Execute prefab: " + prefabInstance.prefab.PrefabName + " [" + prefabInstance.prefab.DifficultyTier + "] + / tags: " + prefabInstance.prefab.Tags);
}
}
public override string[] getCommands()
{
return new string[1] { "listprefabs" };
}
public override string getDescription()
{
return "List the prefabs on the current map";
}
}