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

39 lines
1.3 KiB
C#

public class MinEventActionClearMapRebirth : MinEventActionTargetedBase
{
private const BindingFlags _NonPublicFlags = BindingFlags.NonPublic | BindingFlags.Instance;
public override void Execute(MinEventParams _params)
{
ClearMap(this.targets[0] as EntityPlayer);
}
public static void ClearMap(EntityPlayer player)
{
if (player != null
&& player.ChunkObserver != null
&& player.ChunkObserver.mapDatabase != null)
ClearMapChunkDatabase(player.ChunkObserver.mapDatabase as MapChunkDatabase);
}
private static void ClearMapChunkDatabase(MapChunkDatabase mapDatabase)
{
mapDatabase.catalog.Clear();
mapDatabase.database.Clear();
mapDatabase.dirty.Clear();
/*
var type = typeof(MapChunkDatabase).BaseType;
var catalog = (DictionaryKeyList<int, int>)type.GetField("catalog", _NonPublicFlags).GetValue(mapDatabase);
if (catalog != null)
catalog.Clear();
var database = (DictionarySave<int, ushort[]>)type.GetField("database", _NonPublicFlags).GetValue(mapDatabase);
if (database != null)
database.Clear();
var dirty = (Dictionary<int, bool>)type.GetField("dirty", _NonPublicFlags).GetValue(mapDatabase);
if (dirty != null)
dirty.Clear();
*/
}
}