Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tool
- extends Node
- export(Texture) var texture
- export var tile_size = Vector2(16, 16)
- export var tiles_to_map = Vector2(0, 0)
- export var generate = false
- export var reset_enabled = false
- export var reset = false
- export(Script) var gen_script
- func _process(delta):
- if reset:
- reset = false
- if reset_enabled:
- for child in get_children():
- child.queue_free()
- if generate:
- generate = false
- if texture != null and get_child_count() == 0:
- var xwidth
- var ywidth
- var own = get_tree().get_edited_scene_root()
- if tiles_to_map == Vector2():
- xwidth = texture.get_size().x / tile_size.x
- ywidth = texture.get_size().y / tile_size.y
- else:
- xwidth = tiles_to_map.x
- ywidth = tiles_to_map.y
- var image = texture.get_data()
- image.lock()
- for x in xwidth: for y in ywidth:
- var pos = Vector2(x,y) * tile_size
- if image.get_pixel(pos.x + tile_size.x/2, pos.y + tile_size.y/2).a < 0.2:
- continue
- var nd = Sprite.new()
- nd.position = pos
- nd.texture = texture
- nd.region_enabled = true
- nd.region_rect = Rect2(pos, tile_size)
- nd.set_script(gen_script)
- add_child(nd)
- nd.set_owner(own)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement