Created
May 11, 2016 22:51
-
-
Save MarianoGnu/d44c9829615e0df8e789b4798b4d6416 to your computer and use it in GitHub Desktop.
Fill a scene with autogenerated sprites with collisions to export as a tileset.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tool | |
extends EditorScript | |
# ------------------HOW TO USE------------------------- | |
# CONFIGURE CONSTANTS TO AUTOGENERATE THE TILESET SCENE | |
# ----------------------------------------------------- | |
# PATH TO TEXTURE FILE | |
const TEXTURE_PATH = "res://tileset/tileset.png" | |
#TILE SIZE | |
const TILE_W = 16 | |
const TILE_H = 16 | |
# TILE SEPARATION | |
const SEPARATION_H = 0 | |
const SEPARATION_V = 0 | |
# PASABILITY: | |
# _ = PASABLE | |
# O = BLOQUED | |
# X = IGNORE TILE | |
# \n = NEXT ROW | |
const PASABILITY = "____OOOOO_O_O_O__O_O_____\n______OOOOO_OOO__________\nO_OOO_OOOOOOOOOO____O_O\nO_OO_OO_OO_OO_OOOO__O_O\nOOOO_OO_OO_OO_OOOOOOOOO\nO_OOOOOOOOOOO_OOO_OOO_O\nOOO_OOO_______OOO_OO\nOOOOOOO_________OO___\nOOOOOOO________O_O___\nOOOO_OOOOOO____O_O___\nOOOO_OOOOOOOOO_OOO___\nOOOOOOOOOO_O_O_____OO\nOOOOOOOOOO_OO_\nOOOOOOOO_OOO\nOOOXXXXXXOOO\nOOO\nOOOOOOOOOO___O_OOOXXO__OOOOOOOOOOOO\n" | |
func _run(): | |
var scn = get_scene() | |
var pasable = PASABILITY.split("\n") | |
var texture = load(TEXTURE_PATH) | |
var shape = RectangleShape2D.new() | |
shape.set_extents(Vector2(TILE_W/2,TILE_H/2)) | |
for r in range(pasable.size()): # r is ROW | |
for c in range(pasable[r].length()): # C is COLUMN | |
if (pasable[r][c] == "X"): continue | |
var sprite = Sprite.new() | |
var rect = Rect2(c*(TILE_W+SEPARATION_H),r*(TILE_H+SEPARATION_V),TILE_W,TILE_H) | |
sprite.set_texture(texture) | |
sprite.set_region(true) | |
sprite.set_region_rect(rect) | |
sprite.set_pos(rect.pos) | |
scn.add_child(sprite) | |
sprite.set_owner(scn) | |
if (pasable[r][c] == "O"): # BLOQUED | |
var body = StaticBody2D.new() | |
var shape_node = CollisionShape2D.new() | |
shape_node.set_shape(shape) | |
sprite.add_child(body) | |
body.set_owner(scn) | |
body.add_child(shape_node) | |
shape_node.set_owner(scn) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment