Second commit
This commit is contained in:
commit
36840f3ad4
999 files changed
+61364
No files matched your search
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// This file is part of the Tremble package by Tiny Goose.
|
||||
// Copyright (c) 2024-2026 TinyGoose Ltd., All Rights Reserved.
|
||||
//
|
||||
|
||||
using System;
|
||||
using AOT;
|
||||
using UnityEngine;
|
||||
|
||||
namespace TinyGoose.Tremble
|
||||
{
|
||||
// This class encapsulates the logic of parsing messages from Q3Map2, passing them on and
|
||||
// retaining any overrides to the end result.
|
||||
//
|
||||
// It used to be a nice lambda in MapCompiler.cs, but IL2CPP does not support instance method callbacks
|
||||
// from native code :(
|
||||
public static class MapCompilerOutputHandler
|
||||
{
|
||||
private static Action<string> s_OnOutputMessage;
|
||||
private static Q3Map2Result? s_OverrideResult;
|
||||
|
||||
public static void Init(Action<string> onOutputMessage)
|
||||
{
|
||||
s_OnOutputMessage = onOutputMessage;
|
||||
s_OverrideResult = null;
|
||||
}
|
||||
|
||||
public static Q3Map2Result? DeInit()
|
||||
{
|
||||
s_OnOutputMessage = null;
|
||||
return s_OverrideResult;
|
||||
}
|
||||
|
||||
[MonoPInvokeCallback(typeof(Action<string>))]
|
||||
public static void HandleOutput(string message)
|
||||
{
|
||||
if (message.ContainsInvariant("Couldn't find image"))
|
||||
{
|
||||
if (!message.ContainsInvariant("__TB") &&
|
||||
!message.ContainsInvariant("special/") &&
|
||||
!message.ContainsInvariant(TBConsts.CLIP_TEXTURE) &&
|
||||
!message.ContainsInvariant(TBConsts.SKIP_TEXTURE) &&
|
||||
!message.ContainsInvariant(TBConsts.TRIGGER_TEXTURE))
|
||||
{
|
||||
s_OverrideResult = Q3Map2Result.FailedWithMissingTextures;
|
||||
}
|
||||
}
|
||||
else if (message.StartsWithInvariant("WARNING:") &&
|
||||
!message.ContainsInvariant("Unknown option") &&
|
||||
!message.ContainsInvariant("90 percent structural map"))
|
||||
{
|
||||
Debug.LogWarning($"Q3Map2: {message}");
|
||||
s_OverrideResult = Q3Map2Result.SucceededWithWarnings;
|
||||
}
|
||||
|
||||
s_OnOutputMessage?.Invoke(message);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user