You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.9 KiB
99 lines
2.9 KiB
// This code is part of the Fungus library (http://fungusgames.com) maintained by Chris Gregan (http://twitter.com/gofungus). |
|
// It is released for free under the MIT open source license (https://github.com/snozbot/fungus/blob/master/LICENSE) |
|
|
|
using UnityEngine; |
|
|
|
namespace Fungus |
|
{ |
|
/// <summary> |
|
/// Checks if Writer signals are being sent correctly. |
|
/// </summary> |
|
[AddComponentMenu("")] |
|
public class WriterSignalsTester : MonoBehaviour |
|
{ |
|
int correctTagCount = 0; |
|
bool receivedInput = false; |
|
int glyphCount = 0; |
|
|
|
void OnEnable() |
|
{ |
|
WriterSignals.OnTextTagToken += OnTextTagToken; |
|
WriterSignals.OnWriterState += OnWriterState; |
|
WriterSignals.OnWriterInput += OnWriterInput; |
|
WriterSignals.OnWriterGlyph += OnWriterGlyph; |
|
} |
|
|
|
void OnDisable() |
|
{ |
|
WriterSignals.OnTextTagToken -= OnTextTagToken; |
|
WriterSignals.OnWriterState -= OnWriterState; |
|
WriterSignals.OnWriterInput -= OnWriterInput; |
|
WriterSignals.OnWriterGlyph -= OnWriterGlyph; |
|
} |
|
|
|
void OnTextTagToken(Writer writer, TextTagToken token, int index, int maxIndex) |
|
{ |
|
if (index == 0 && token.type == TokenType.BoldStart) |
|
{ |
|
correctTagCount++; |
|
} |
|
else if (index == 1 && token.type == TokenType.Wait) |
|
{ |
|
correctTagCount++; |
|
} |
|
else if (index == 2 && token.type == TokenType.Words) |
|
{ |
|
correctTagCount++; |
|
} |
|
else if (index == 3 && token.type == TokenType.BoldEnd) |
|
{ |
|
correctTagCount++; |
|
} |
|
} |
|
|
|
void OnWriterState(Writer writer, WriterState writerState) |
|
{ |
|
if (writerState == WriterState.Start && correctTagCount != 0) |
|
{ |
|
IntegrationTest.Fail(); |
|
} |
|
if (writerState == WriterState.Pause && correctTagCount != 2) |
|
{ |
|
IntegrationTest.Fail(); |
|
} |
|
if (writerState == WriterState.Resume && correctTagCount != 2) |
|
{ |
|
IntegrationTest.Fail(); |
|
} |
|
else if (writerState == WriterState.End && correctTagCount != 4) |
|
{ |
|
IntegrationTest.Fail(); |
|
} |
|
|
|
if (writerState == WriterState.End) |
|
{ |
|
if (!receivedInput) |
|
{ |
|
IntegrationTest.Fail(); |
|
} |
|
|
|
if (glyphCount != 6) |
|
{ |
|
IntegrationTest.Fail(); |
|
} |
|
|
|
IntegrationTest.Pass(); |
|
} |
|
} |
|
|
|
void OnWriterInput(Writer writer) |
|
{ |
|
receivedInput = true; |
|
} |
|
|
|
void OnWriterGlyph(Writer writer) |
|
{ |
|
glyphCount++; |
|
} |
|
} |
|
} |