summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ModLoading/InstructionHandleResult.cs
blob: e3f108cb8550c616e2d3bc6f439e7d9efb7c8c82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using StardewModdingAPI.Events;

namespace StardewModdingAPI.Framework.ModLoading
{
    /// <summary>Indicates how an instruction was handled.</summary>
    internal enum InstructionHandleResult
    {
        /// <summary>No special handling is needed.</summary>
        None,

        /// <summary>The instruction was successfully rewritten for compatibility.</summary>
        Rewritten,

        /// <summary>The instruction is not compatible and can't be rewritten for compatibility.</summary>
        NotCompatible,

        /// <summary>The instruction is compatible, but patches the game in a way that may impact stability.</summary>
        DetectedGamePatch,

        /// <summary>The instruction is compatible, but affects the save serializer in a way that may make saves unloadable without the mod.</summary>
        DetectedSaveSerializer,

        /// <summary>The instruction is compatible, but references <see cref="ISpecializedEvents.UnvalidatedUpdateTicking"/> or <see cref="ISpecializedEvents.UnvalidatedUpdateTicked"/> which may impact stability.</summary>
        DetectedUnvalidatedUpdateTick,

        /// <summary>The instruction accesses the SMAPI console directly.</summary>
        DetectedConsoleAccess,

        /// <summary>The instruction accesses the filesystem directly.</summary>
        DetectedFilesystemAccess,

        /// <summary>The instruction accesses the OS shell or processes directly.</summary>
        DetectedShellAccess
    }
}