Upload from upload_mods.ps1
This commit is contained in:
39
Scripts/MinEvents/MinEventActionClearMapRebirth.cs
Normal file
39
Scripts/MinEvents/MinEventActionClearMapRebirth.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
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();
|
||||
*/
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user