You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-07 12:30:27 +00:00
New TileSet Editor
This commit is contained in:
committed by
Mariano Javier Suligoy
parent
432f2f1a67
commit
ce87a30e45
@@ -57,8 +57,6 @@ void TextureRegionEditor::_region_draw() {
|
||||
base_tex = obj_styleBox->get_texture();
|
||||
else if (atlas_tex.is_valid())
|
||||
base_tex = atlas_tex->get_atlas();
|
||||
else if (tile_set.is_valid() && selected_tile != -1 && tile_set->has_tile(selected_tile))
|
||||
base_tex = tile_set->tile_get_texture(selected_tile);
|
||||
|
||||
if (base_tex.is_null())
|
||||
return;
|
||||
@@ -284,8 +282,6 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) {
|
||||
r = obj_styleBox->get_region_rect();
|
||||
else if (atlas_tex.is_valid())
|
||||
r = atlas_tex->get_region();
|
||||
else if (tile_set.is_valid() && selected_tile != -1)
|
||||
r = tile_set->tile_get_region(selected_tile);
|
||||
rect.expand_to(r.position);
|
||||
rect.expand_to(r.position + r.size);
|
||||
}
|
||||
@@ -302,9 +298,6 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) {
|
||||
} else if (atlas_tex.is_valid()) {
|
||||
undo_redo->add_do_method(atlas_tex.ptr(), "set_region", rect);
|
||||
undo_redo->add_undo_method(atlas_tex.ptr(), "set_region", atlas_tex->get_region());
|
||||
} else if (tile_set.is_valid() && selected_tile != -1) {
|
||||
undo_redo->add_do_method(tile_set.ptr(), "tile_set_region", selected_tile, rect);
|
||||
undo_redo->add_undo_method(tile_set.ptr(), "tile_set_region", selected_tile, tile_set->tile_get_region(selected_tile));
|
||||
}
|
||||
undo_redo->add_do_method(edit_draw, "update");
|
||||
undo_redo->add_undo_method(edit_draw, "update");
|
||||
@@ -327,8 +320,6 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) {
|
||||
rect_prev = obj_styleBox->get_region_rect();
|
||||
else if (atlas_tex.is_valid())
|
||||
rect_prev = atlas_tex->get_region();
|
||||
else if (tile_set.is_valid() && selected_tile != -1)
|
||||
rect_prev = tile_set->tile_get_region(selected_tile);
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
Vector2 tuv = endpoints[i];
|
||||
@@ -372,9 +363,6 @@ void TextureRegionEditor::_region_input(const Ref<InputEvent> &p_input) {
|
||||
} else if (obj_styleBox.is_valid()) {
|
||||
undo_redo->add_do_method(obj_styleBox.ptr(), "set_region_rect", obj_styleBox->get_region_rect());
|
||||
undo_redo->add_undo_method(obj_styleBox.ptr(), "set_region_rect", rect_prev);
|
||||
} else if (tile_set.is_valid()) {
|
||||
undo_redo->add_do_method(tile_set.ptr(), "tile_set_region", selected_tile, tile_set->tile_get_region(selected_tile));
|
||||
undo_redo->add_undo_method(tile_set.ptr(), "tile_set_region", selected_tile, rect_prev);
|
||||
}
|
||||
drag_index = -1;
|
||||
}
|
||||
@@ -595,8 +583,6 @@ void TextureRegionEditor::apply_rect(const Rect2 &rect) {
|
||||
obj_styleBox->set_region_rect(rect);
|
||||
else if (atlas_tex.is_valid())
|
||||
atlas_tex->set_region(rect);
|
||||
else if (tile_set.is_valid() && selected_tile != -1)
|
||||
tile_set->tile_set_region(selected_tile, rect);
|
||||
}
|
||||
|
||||
void TextureRegionEditor::_notification(int p_what) {
|
||||
@@ -623,12 +609,11 @@ void TextureRegionEditor::_notification(int p_what) {
|
||||
}
|
||||
|
||||
void TextureRegionEditor::_node_removed(Object *p_obj) {
|
||||
if (p_obj == node_sprite || p_obj == node_ninepatch || p_obj == obj_styleBox.ptr() || p_obj == atlas_tex.ptr() || p_obj == tile_set.ptr()) {
|
||||
if (p_obj == node_sprite || p_obj == node_ninepatch || p_obj == obj_styleBox.ptr() || p_obj == atlas_tex.ptr()) {
|
||||
node_ninepatch = NULL;
|
||||
node_sprite = NULL;
|
||||
obj_styleBox = Ref<StyleBox>(NULL);
|
||||
atlas_tex = Ref<AtlasTexture>(NULL);
|
||||
tile_set = Ref<TileSet>(NULL);
|
||||
hide();
|
||||
}
|
||||
}
|
||||
@@ -677,8 +662,6 @@ void TextureRegionEditor::edit(Object *p_obj) {
|
||||
obj_styleBox->remove_change_receptor(this);
|
||||
if (atlas_tex.is_valid())
|
||||
atlas_tex->remove_change_receptor(this);
|
||||
if (tile_set.is_valid())
|
||||
tile_set->remove_change_receptor(this);
|
||||
if (p_obj) {
|
||||
node_sprite = Object::cast_to<Sprite>(p_obj);
|
||||
node_ninepatch = Object::cast_to<NinePatchRect>(p_obj);
|
||||
@@ -686,8 +669,6 @@ void TextureRegionEditor::edit(Object *p_obj) {
|
||||
obj_styleBox = Ref<StyleBoxTexture>(Object::cast_to<StyleBoxTexture>(p_obj));
|
||||
if (Object::cast_to<AtlasTexture>(p_obj))
|
||||
atlas_tex = Ref<AtlasTexture>(Object::cast_to<AtlasTexture>(p_obj));
|
||||
if (Object::cast_to<TileSet>(p_obj))
|
||||
tile_set = Ref<TileSet>(Object::cast_to<TileSet>(p_obj));
|
||||
p_obj->add_change_receptor(this);
|
||||
_edit_region();
|
||||
} else {
|
||||
@@ -695,7 +676,6 @@ void TextureRegionEditor::edit(Object *p_obj) {
|
||||
node_ninepatch = NULL;
|
||||
obj_styleBox = Ref<StyleBoxTexture>(NULL);
|
||||
atlas_tex = Ref<AtlasTexture>(NULL);
|
||||
tile_set = Ref<TileSet>(NULL);
|
||||
}
|
||||
edit_draw->update();
|
||||
if (node_sprite && !node_sprite->is_region()) {
|
||||
@@ -724,8 +704,6 @@ void TextureRegionEditor::_edit_region() {
|
||||
texture = obj_styleBox->get_texture();
|
||||
else if (atlas_tex.is_valid())
|
||||
texture = atlas_tex->get_atlas();
|
||||
else if (tile_set.is_valid() && selected_tile != -1 && tile_set->has_tile(selected_tile))
|
||||
texture = tile_set->tile_get_texture(selected_tile);
|
||||
|
||||
if (texture.is_null()) {
|
||||
edit_draw->update();
|
||||
@@ -794,8 +772,6 @@ void TextureRegionEditor::_edit_region() {
|
||||
rect = obj_styleBox->get_region_rect();
|
||||
else if (atlas_tex.is_valid())
|
||||
rect = atlas_tex->get_region();
|
||||
else if (tile_set.is_valid() && selected_tile != -1)
|
||||
rect = tile_set->tile_get_region(selected_tile);
|
||||
|
||||
edit_draw->update();
|
||||
}
|
||||
@@ -814,10 +790,8 @@ TextureRegionEditor::TextureRegionEditor(EditorNode *p_editor) {
|
||||
node_ninepatch = NULL;
|
||||
obj_styleBox = Ref<StyleBoxTexture>(NULL);
|
||||
atlas_tex = Ref<AtlasTexture>(NULL);
|
||||
tile_set = Ref<TileSet>(NULL);
|
||||
editor = p_editor;
|
||||
undo_redo = editor->get_undo_redo();
|
||||
selected_tile = -1;
|
||||
|
||||
snap_step = Vector2(10, 10);
|
||||
snap_separation = Vector2(0, 0);
|
||||
|
||||
Reference in New Issue
Block a user