summaryrefslogtreecommitdiff
path: root/src/SMAPI/Framework/ModLoading/InstructionHandleResult.cs
blob: 6592760e95cf586b9aa9e8789427af406103af48 (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>
        DetectedSaveSerialiser,

        /// <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="ISpecialisedEvents.UnvalidatedUpdateTicking"/> or <see cref="ISpecialisedEvents.UnvalidatedUpdateTicked"/> which may impact stability.</summary>
        DetectedUnvalidatedUpdateTick,

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

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