Advertisement
Guest User

Godot Arabic Fix

a guest
Jan 18th, 2020
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.84 KB | None | 0 0
  1. extends Node2D
  2.  
  3. var a = ["res://ar/alef.png", "res://ar/alef.png", "res://ar/alef-.png", "res://ar/alef-.png", "no"]
  4. var ad =["res://ar/alef'.png", "res://ar/alef'.png", "res://ar/alef'-.png", "res://ar/alef'-.png" , "no"]
  5. var b = ["res://ar/ba2.png", "res://ar/-ba2.png", "res://ar/ba2-.png", "res://ar/-ba2-.png" , "yes"]
  6. var t = ["res://ar/ta2.png", "res://ar/-ta2.png", "res://ar/ta2-.png", "res://ar/-ta2-.png" , "yes"]
  7. var c = ["res://ar/sa2.png", "res://ar/-sa2.png", "res://ar/sa2-.png", "res://ar/-sa2-.png" , "yes"]
  8. var g = ["res://ar/gem.png", "res://ar/-gem.png", "res://ar/gem-.png", "res://ar/-gem-.png" , "yes"]
  9. var hd = ["res://ar/7a2.png", "res://ar/-7a2.png", "res://ar/7a2-.png", "res://ar/-7a2-.png" , "yes"]
  10. var kd = ["res://ar/5a2.png", "res://ar/-5a2.png", "res://ar/5a2-.png", "res://ar/-5a2-.png" , "yes"]
  11. var d = ["res://ar/dal.png", "res://ar/dal.png", "res://ar/dal-.png", "res://ar/dal-.png", "no"]
  12. var zd = ["res://ar/zal.png", "res://ar/zal.png", "res://ar/zal-.png", "res://ar/zal-.png", "no"]
  13. var r = ["res://ar/ra2.png", "res://ar/ra2.png", "res://ar/ra2-.png", "res://ar/ra2-.png", "no"]
  14. var z = ["res://ar/zen.png", "res://ar/zen.png", "res://ar/zen-.png", "res://ar/zen-.png", "no"]
  15. var s = ["res://ar/sen.png", "res://ar/-sen.png", "res://ar/sen-.png", "res://ar/-sen-.png", "yes"]
  16. var cd = ["res://ar/shen.png", "res://ar/-shen.png", "res://ar/shen-.png", "res://ar/-shen-.png", "yes"]
  17. var sd = ["res://ar/sad.png", "res://ar/-sad.png", "res://ar/sad-.png", "res://ar/-sad-.png", "yes"]
  18. var dd = ["res://ar/dad.png", "res://ar/-dad.png", "res://ar/dad-.png", "res://ar/-dad-.png", "yes"]
  19. var td = ["res://ar/6a2.png", "res://ar/-6a2.png", "res://ar/6a2-.png", "res://ar/-6a2-.png" , "yes"]
  20. var rd = ["res://ar/za2.png", "res://ar/-za2.png", "res://ar/za2-.png", "res://ar/-za2-.png" , "yes"]
  21. var e = ["res://ar/3en.png", "res://ar/-3en.png", "res://ar/3en-.png", "res://ar/-3en-.png" , "yes"]
  22. var gd = ["res://ar/8en.png", "res://ar/-8en.png", "res://ar/8en-.png", "res://ar/-8en-.png" , "yes"]
  23. var f = ["res://ar/fa2.png", "res://ar/-fa2.png", "res://ar/fa2-.png", "res://ar/-fa2-.png" , "yes"]
  24. var q = ["res://ar/qaf.png", "res://ar/-qaf.png", "res://ar/qaf-.png", "res://ar/-qaf-.png" , "yes"]
  25. var k = ["res://ar/kaf.png", "res://ar/-kaf.png", "res://ar/kaf-.png", "res://ar/-kaf-.png" , "yes"]
  26. var l = ["res://ar/lam.png", "res://ar/-lam.png", "res://ar/lam-.png", "res://ar/-lam-.png" , "yes"]
  27. var m = ["res://ar/mem.png", "res://ar/-mem.png", "res://ar/mem-.png", "res://ar/-mem-.png" , "yes"]
  28. var n = ["res://ar/non.png", "res://ar/-non.png", "res://ar/non-.png", "res://ar/-non-.png" , "yes"]
  29. var h = ["res://ar/heh.png", "res://ar/-heh.png", "res://ar/heh-.png", "res://ar/-heh-.png", "yes"]
  30. var w = ["res://ar/waw.png", "res://ar/waw.png", "res://ar/waw-.png", "res://ar/waw-.png", "no"]
  31. var i = ["res://ar/ya2.png", "res://ar/-ya2.png", "res://ar/ya2-.png", "res://ar/-ya2-.png", "yes"]
  32. var wd = ["res://ar/wawd.png", "res://ar/wawd.png", "res://ar/wawd-.png", "res://ar/wawd-.png", "no"]
  33. var id = ["res://ar/ya2d.png", "res://ar/ya2d.png", "res://ar/ya2d-.png", "res://ar/ya2d-.png", "no"]
  34. var ld = ["res://ar/la.png", "res://ar/la.png", "res://ar/la-.png", "res://ar/la-.png"]
  35. var al = ["res://ar/allah.png"]
  36. var fd = ["res://ar/fasla.png"]
  37. var bg = "res://textbg.png"
  38.  
  39. var skip = 0
  40. var pos = Vector2(0, 0)
  41. var what = false
  42. var dash = false
  43. var text_bg = Node2D.new()
  44. var Letters = Node2D.new()
  45. var pos2 = Vector2(0, 0)
  46. export var color : Color
  47.  
  48. #########################################
  49.  
  50. func _ready():
  51.     ar("a'hla wshla alslam elikm", color, Letters, Vector2(600, 150))
  52.  
  53. #########################################
  54.  
  55. func ar(a, color, L, pos1):
  56.     add_child(L)
  57.     L.position = pos1
  58.     L.name = "Letters"
  59.     for ii in range(a.length()):
  60.  
  61.         var st
  62.         var xd = ""
  63.         var tmp = false
  64.  
  65.         if skip != 0:
  66.             skip -= 1
  67.             continue
  68.  
  69.  
  70.         if a[ii] == ",": # if ,
  71.             a[ii] = "f"
  72.             tmp = true
  73.            
  74.         if a[ii] == "'": # if '
  75.             continue
  76.  
  77.         if a[ii] == " ": # if space
  78.             pos.x -= 15
  79.             continue
  80.  
  81.         if a[ii] == "a" or a[ii] == "h" or a[ii] == "k" or a[ii] == "z" or a[ii] == "c" or a[ii] == "s" or a[ii] == "d" or a[ii] == "t" or a[ii] == "r" or a[ii] == "g" or a[ii] == "w" or a[ii] == "i" or a[ii] == "f":
  82.             dash = true
  83.         else:
  84.             dash = false
  85.  
  86.         if ii == 0: # if first letter
  87.             if ii == a.length() - 1: # if current is last
  88.                 st = 0
  89.             else: # not last
  90.                 if a[ii+1] == "'" and dash: # if next is ' and dash
  91.                     xd = "d"
  92.                 if ii+1 == a.length() - 1: # if next is last
  93.                     if a[ii+1] == " " or a[ii+1] == "'": # if next is space or '
  94.                         st = 0
  95.                     else: # if not one
  96.                         st = 1
  97.                         if get(a[ii]+xd)[4] == "yes": #if 4 images
  98.                             what = true
  99.                         else: #if not
  100.                             what = false
  101.                 else: # if next is not last
  102.                     if ii+2 == a.length() - 1: # if after next is last
  103.                         if a[ii+1] == "'" and a[ii+2] == " ": # if next is ' and after next is space
  104.                             st = 0
  105.                         else: # if not any
  106.                             st = 1
  107.                             if get(a[ii]+xd)[4] == "yes":
  108.                                 what = true
  109.                             else:
  110.                                 what = false
  111.                     else:
  112.                         st = 1
  113.                         if get(a[ii]+xd)[4] == "yes":
  114.                             what = true
  115.                         else:
  116.                             what = false
  117.             if a[ii] == "l":
  118.                 if a[ii+1] == "a":
  119.                     xd = "d"
  120.                     what = false
  121.                     skip += 1
  122.             if a[ii] == "a":
  123.                 if ii != a.length() -1:
  124.                     if ii+1 != a.length() -1:
  125.                         if ii+2 != a.length() -1:
  126.                             if a[ii+1] == "l" and a[ii+2] == "l" and a[ii+3] == "h":
  127.                                 xd = "l"
  128.                                 st = 0
  129.                                 skip += 3
  130.                                 what = false
  131.             var sprite = Sprite.new()
  132.             sprite.texture = load(get(a[ii]+xd)[st])
  133.             $Letters.add_child(sprite)
  134.             sprite.offset.x -= sprite.texture.get_size().x/2
  135.             sprite.position = pos
  136.             pos.x -= sprite.texture.get_size().x
  137.             continue
  138.  
  139.         if ii != a.length()-1: # current is not last
  140.             if a[ii+1] == "'" and dash: # next is comma and dash is true
  141.                 xd = "d"
  142.             else:
  143.                 xd = ""
  144.  
  145.  
  146.             if a[ii+1] == " ": # next is space
  147.                 if a[ii-1] == " ": # last is space
  148.                     st = 0
  149.                 else: # last is not space
  150.                     if what == false:
  151.                         st = 0
  152.                     else:
  153.                         st = 2
  154.             else: # next is not space
  155.                 if a[ii-1] == " ": # last is space
  156.                     st = 1
  157.                 else: # last is not space
  158.                     if ii+1 != a.length()-1: # next is not last
  159.                         if a[ii+1] == "'": # next is comma
  160.                             if a[ii+2] == " ": # after next is space
  161.                                 if what:
  162.                                     st = 2
  163.                                 else:
  164.                                     st = 0
  165.                             else: # after next is not space
  166.                                 if what: # if 4 images
  167.                                     st = 3
  168.                                 else: # if not
  169.                                     st = 1
  170.                         else: # if next is not comma
  171.                             if what: # if 4 images
  172.                                 st = 3
  173.                             else: # if not
  174.                                 st = 1
  175.                     else: # next is last
  176.                         if a[ii+1] == "'" or a[ii+1] == " ": # if next is '
  177.                             if what: # if 4 images
  178.                                 st = 2
  179.                             else: # if not
  180.                                 st = 0
  181.                         else: # if not one
  182.                             if what: # if 4 images
  183.                                 st = 3
  184.                             else: # if not
  185.                                 st = 1
  186.  
  187.         else: # current is last
  188.             if a[ii - 1] == " ": # last is space
  189.                 st = 0
  190.             else: # last is not space
  191.                 if what :
  192.                     st = 2
  193.                 else:
  194.                     st = 0
  195.         if get(a[ii])[4] == "no":
  196.             what = false
  197.         else:
  198.             what = true
  199.         if a[ii] == "l":
  200.             if a[ii+1] == "a":
  201.                 xd = "d"
  202.                 what = false
  203.                 skip += 1
  204.         if a[ii] == "a":
  205.             if ii != a.length() -1:
  206.                 if ii+1 != a.length() -1:
  207.                     if ii+2 != a.length() -1:
  208.                         if a[ii+1] == "l" and a[ii+2] == "l" and a[ii+3] == "h":
  209.                             xd = "l"
  210.                             st = 0
  211.                             skip += 3
  212.                             what = false
  213.         if tmp: # if tmp is true
  214.             xd = "d"
  215.         var sprite = Sprite.new()
  216.         sprite.texture = load(get(a[ii]+xd)[st])
  217.         $Letters.add_child(sprite)
  218.         sprite.position = pos
  219.         pos.x -= sprite.texture.get_size().x
  220.         sprite.offset.x -= sprite.texture.get_size().x/2
  221.     $Letters.modulate = color
  222.     for n in $Letters.get_children():
  223.         pos2.x -= n.texture.get_size().x
  224.     pos2.y = $Letters.position.y
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement