37 lines
1002 B
C#
37 lines
1002 B
C#
using Assets.Scripts.Objects.Motherboards;
|
|
using HarmonyLib;
|
|
|
|
namespace Slang
|
|
{
|
|
[HarmonyPatch]
|
|
public static class SlangPatches
|
|
{
|
|
[HarmonyPatch(
|
|
typeof(ProgrammableChipMotherboard),
|
|
nameof(ProgrammableChipMotherboard.InputFinished)
|
|
)]
|
|
[HarmonyPrefix]
|
|
public static void PGM_InputFinished(ref string result)
|
|
{
|
|
if (string.IsNullOrEmpty(result) || !SlangPlugin.IsSlangSource(ref result))
|
|
{
|
|
return;
|
|
}
|
|
|
|
L.Info("Detected Slang source, compiling...");
|
|
|
|
// Compile the Slang source into IC10
|
|
string compiled = SlangPlugin.Compile(result);
|
|
|
|
// Ensure that the string is correct
|
|
if (string.IsNullOrEmpty(compiled))
|
|
{
|
|
return;
|
|
}
|
|
|
|
// Set the result to be the compiled source so the rest of the function can continue as normal
|
|
result = compiled;
|
|
}
|
|
}
|
|
}
|