summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ModLoading/InstructionHandleResult.cs
blob: a948213bf1af413bae2678f90df9b527d17770f9 (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
36
37
38
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 uses the <c>dynamic</c> keyword which won't work on Linux/Mac.</summary>
        DetectedDynamic,

        /// <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
    }
}