Commit 69eacbe172c1f8dd00dc5f8a38472ff72f88887d
1 parent
76620b0b
Exists in
devel
Restricts allowed characters
Showing
2 changed files
with
36 additions
and
40 deletions
Show diff stats
Assets/Scripts/PlayerManager/GenericPlayerManager.cs
@@ -86,6 +86,15 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -86,6 +86,15 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
86 | 86 | ||
87 | private bool[] lastLetterAnimations = new bool[256]; | 87 | private bool[] lastLetterAnimations = new bool[256]; |
88 | 88 | ||
89 | + private HashSet<char> allowedCharacters = new HashSet<char>() { | ||
90 | + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', | ||
91 | + 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', | ||
92 | + 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', | ||
93 | + 'Y', 'Z', | ||
94 | + '1', '2', '3', '4', '5', '6', '7', '8', | ||
95 | + '9', '0', '%', '.', ',', '!', '?', | ||
96 | + }; | ||
97 | + | ||
89 | public virtual void Start() | 98 | public virtual void Start() |
90 | { | 99 | { |
91 | // Configuração de velocidade das animações | 100 | // Configuração de velocidade das animações |
@@ -377,29 +386,35 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -377,29 +386,35 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
377 | 386 | ||
378 | for (int i = 0; i < word.Length; i++) | 387 | for (int i = 0; i < word.Length; i++) |
379 | { | 388 | { |
380 | - lastAnimationSubtitle = Subtitle.highlight(word, i); | ||
381 | - char anim = word[i]; | ||
382 | - | ||
383 | switch (word[i]) | 389 | switch (word[i]) |
384 | { | 390 | { |
385 | case 'Á': | 391 | case 'Á': |
386 | case 'Â': | 392 | case 'Â': |
387 | case 'À': | 393 | case 'À': |
388 | - case 'Ã': anim = 'A'; | ||
389 | - break; | 394 | + case 'Ã': word = word.Replace(word[i], 'A'); break; |
390 | case 'É': | 395 | case 'É': |
391 | - case 'Ê': anim = 'E'; | ||
392 | - break; | ||
393 | - case 'Í': anim = 'I'; | ||
394 | - break; | 396 | + case 'Ê': word = word.Replace(word[i], 'E'); break; |
397 | + case 'Í': word = word.Replace(word[i], 'I'); break; | ||
395 | case 'Ó': | 398 | case 'Ó': |
396 | case 'Ô': | 399 | case 'Ô': |
397 | - case 'Õ': anim = 'O'; | ||
398 | - break; | ||
399 | - case 'Ú': anim = 'U'; | ||
400 | - break; | 400 | + case 'Õ': word = word.Replace(word[i], 'O'); break; |
401 | + case 'Ú': word = word.Replace(word[i], 'U'); break; | ||
401 | } | 402 | } |
402 | 403 | ||
404 | + if (!allowedCharacters.Contains(word[i])) | ||
405 | + { | ||
406 | + Debug.Log(word[i] + " is not allowed"); | ||
407 | + | ||
408 | + word = word.Remove(i, 1); | ||
409 | + i--; | ||
410 | + } | ||
411 | + } | ||
412 | + | ||
413 | + for (int i = 0; i < word.Length; i++) | ||
414 | + { | ||
415 | + lastAnimationSubtitle = Subtitle.highlight(word, i); | ||
416 | + char anim = word[i]; | ||
417 | + | ||
403 | short type = getType(anim); | 418 | short type = getType(anim); |
404 | string animName = nextLetterAnimation(anim); | 419 | string animName = nextLetterAnimation(anim); |
405 | 420 | ||
@@ -416,7 +431,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -416,7 +431,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
416 | this.subtitles.updateLetterSpeed(); | 431 | this.subtitles.updateLetterSpeed(); |
417 | } | 432 | } |
418 | 433 | ||
419 | - UnityEngine.Debug.Log("GPM.sW(" + word + "): Animação \"" + animName + "\" inexistente."); | 434 | + Debug.Log("GPM.sW(" + word + "): Animação \"" + animName + "\" inexistente."); |
420 | } | 435 | } |
421 | else | 436 | else |
422 | { | 437 | { |
@@ -473,7 +488,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -473,7 +488,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
473 | 488 | ||
474 | StartCoroutine(subtitlesSynchronizer); | 489 | StartCoroutine(subtitlesSynchronizer); |
475 | 490 | ||
476 | - String[] stringPos = gloss.Split(' '); | 491 | + string[] stringPos = gloss.Split(' '); |
477 | 492 | ||
478 | Queue<ToPlay> toPlayQueue = new Queue<ToPlay>(); | 493 | Queue<ToPlay> toPlayQueue = new Queue<ToPlay>(); |
479 | int wordsCount = 0; | 494 | int wordsCount = 0; |
@@ -506,7 +521,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | @@ -506,7 +521,7 @@ public abstract class GenericPlayerManager : MonoBehaviour { | ||
506 | Debug.Log("GPM:LAP(" + gloss + "): www.error == null"); | 521 | Debug.Log("GPM:LAP(" + gloss + "): www.error == null"); |
507 | bundle = www.assetBundle; | 522 | bundle = www.assetBundle; |
508 | 523 | ||
509 | - if (bundle != null && ! String.IsNullOrEmpty(bundle.mainAsset.name)) | 524 | + if (bundle != null && ! string.IsNullOrEmpty(bundle.mainAsset.name)) |
510 | { | 525 | { |
511 | AnimationClip aniClip = bundle.mainAsset as AnimationClip; | 526 | AnimationClip aniClip = bundle.mainAsset as AnimationClip; |
512 | bundle.Unload(false); | 527 | bundle.Unload(false); |
Assets/Scripts/ServerDebug.cs
1 | -/********************** | ||
2 | -********LAVID********** | ||
3 | -*******VLibras********* | ||
4 | -*------------------------------------------------------------------------ | ||
5 | -*Description: | ||
6 | -*Server gets pts from Core (client) by TCP connection | ||
7 | -*and runs the animations until a final tag is found. | ||
8 | -*------------------------------------------------------------------------ | ||
9 | -*Author: Claudiomar Araujo # claudiomar.araujo@lavid.ufpb.br | ||
10 | -*------------------------------------------------------------------------ | ||
11 | -***********************/ | ||
12 | - | ||
13 | using UnityEngine; | 1 | using UnityEngine; |
14 | -using System; | ||
15 | -using System.IO; | ||
16 | -using System.Net; | ||
17 | -using System.Net.Sockets; | ||
18 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
19 | 3 | ||
20 | public class ServerDebug { | 4 | public class ServerDebug { |
@@ -30,23 +14,18 @@ public class ServerDebug { | @@ -30,23 +14,18 @@ public class ServerDebug { | ||
30 | public bool IsNotReady { | 14 | public bool IsNotReady { |
31 | get { return !isReady; } | 15 | get { return !isReady; } |
32 | } | 16 | } |
33 | - | ||
34 | - /** | ||
35 | - * Starts receiving of glosa and time from server. | ||
36 | - * Stops when receive "FINALIZE". | ||
37 | - */ | 17 | + |
38 | public void StartCommunication() | 18 | public void StartCommunication() |
39 | { | 19 | { |
40 | List<string> messages = new List<string>() { | 20 | List<string> messages = new List<string>() { |
41 | - "TESTE#1000", "TEST2'#2000", "FINALIZE" | 21 | + "`TÉST\"E#1000", "TES´T2'#2000", "FINALIZE" |
42 | }; | 22 | }; |
43 | - | 23 | + |
44 | Debug.Log("S.SC()"); | 24 | Debug.Log("S.SC()"); |
45 | 25 | ||
46 | foreach (string text in messages) | 26 | foreach (string text in messages) |
47 | { | 27 | { |
48 | Message message = new Message(text); | 28 | Message message = new Message(text); |
49 | - | ||
50 | Debug.Log("S.SC(): Received: " + message.Text); | 29 | Debug.Log("S.SC(): Received: " + message.Text); |
51 | 30 | ||
52 | if (message.Text.Equals("FINALIZE")) | 31 | if (message.Text.Equals("FINALIZE")) |
@@ -60,4 +39,6 @@ public class ServerDebug { | @@ -60,4 +39,6 @@ public class ServerDebug { | ||
60 | Debug.Log("S.SC(): END"); | 39 | Debug.Log("S.SC(): END"); |
61 | } | 40 | } |
62 | 41 | ||
42 | + public void SendFinalizeToCore() { } | ||
43 | + | ||
63 | } | 44 | } |
64 | \ No newline at end of file | 45 | \ No newline at end of file |