Advertisement
KoBeWi

Generate.gd

Jan 9th, 2019
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.21 KB | None | 0 0
  1. tool
  2. extends Node
  3.  
  4. export(Texture) var texture
  5.  
  6. export var tile_size = Vector2(16, 16)
  7. export var tiles_to_map = Vector2(0, 0)
  8.  
  9. export var generate = false
  10. export var reset_enabled = false
  11. export var reset = false
  12.  
  13. export(Script) var gen_script
  14.  
  15. func _process(delta):
  16. if reset:
  17. reset = false
  18.  
  19. if reset_enabled:
  20. for child in get_children():
  21. child.queue_free()
  22.  
  23. if generate:
  24. generate = false
  25.  
  26. if texture != null and get_child_count() == 0:
  27. var xwidth
  28. var ywidth
  29. var own = get_tree().get_edited_scene_root()
  30.  
  31. if tiles_to_map == Vector2():
  32. xwidth = texture.get_size().x / tile_size.x
  33. ywidth = texture.get_size().y / tile_size.y
  34. else:
  35. xwidth = tiles_to_map.x
  36. ywidth = tiles_to_map.y
  37.  
  38. var image = texture.get_data()
  39. image.lock()
  40.  
  41. for x in xwidth: for y in ywidth:
  42. var pos = Vector2(x,y) * tile_size
  43.  
  44. if image.get_pixel(pos.x + tile_size.x/2, pos.y + tile_size.y/2).a < 0.2:
  45. continue
  46.  
  47. var nd = Sprite.new()
  48. nd.position = pos
  49. nd.texture = texture
  50. nd.region_enabled = true
  51. nd.region_rect = Rect2(pos, tile_size)
  52. nd.set_script(gen_script)
  53. add_child(nd)
  54. nd.set_owner(own)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement