Explorar o código

tools: cleanup

Daniele Bartolini %!s(int64=5) %!d(string=hai) anos
pai
achega
7eb9c30778
Modificáronse 2 ficheiros con 210 adicións e 210 borrados
  1. 12 12
      tools/level_editor/project.vala
  2. 198 198
      tools/level_editor/sprite_import_dialog.vala

+ 12 - 12
tools/level_editor/project.vala

@@ -471,14 +471,14 @@ public class Project
 
 		int width     = (int)sid._pixbuf.width;
 		int height    = (int)sid._pixbuf.height;
-		int num_h     = (int)sid.cells_hv.value.x;
-		int num_v     = (int)sid.cells_hv.value.y;
-		int cell_w    = (int)sid.cell_wh.value.x;
-		int cell_h    = (int)sid.cell_wh.value.y;
-		int offset_x  = (int)sid.offset_xy.value.x;
-		int offset_y  = (int)sid.offset_xy.value.y;
-		int spacing_x = (int)sid.spacing_xy.value.x;
-		int spacing_y = (int)sid.spacing_xy.value.y;
+		int num_h     = (int)sid.cells.value.x;
+		int num_v     = (int)sid.cells.value.y;
+		int cell_w    = (int)sid.cell.value.x;
+		int cell_h    = (int)sid.cell.value.y;
+		int offset_x  = (int)sid.offset.value.x;
+		int offset_y  = (int)sid.offset.value.y;
+		int spacing_x = (int)sid.spacing.value.x;
+		int spacing_y = (int)sid.spacing.value.y;
 		double layer  = sid.layer.value;
 		double depth  = sid.depth.value;
 
@@ -486,11 +486,11 @@ public class Project
 
 		bool collision_enabled         = sid.collision_enabled.active;
 		string shape_active_name       = (string)sid.shape.visible_child_name;
-		int circle_collision_center_x  = (int)sid.circle_collision_center_xy.value.x;
-		int circle_collision_center_y  = (int)sid.circle_collision_center_xy.value.y;
+		int circle_collision_center_x  = (int)sid.circle_collision_center.value.x;
+		int circle_collision_center_y  = (int)sid.circle_collision_center.value.y;
 		int circle_collision_radius    = (int)sid.circle_collision_radius.value;
-		int capsule_collision_center_x = (int)sid.capsule_collision_center_xy.value.x;
-		int capsule_collision_center_y = (int)sid.capsule_collision_center_xy.value.y;
+		int capsule_collision_center_x = (int)sid.capsule_collision_center.value.x;
+		int capsule_collision_center_y = (int)sid.capsule_collision_center.value.y;
 		int capsule_collision_radius   = (int)sid.capsule_collision_radius.value;
 		int capsule_collision_height   = (int)sid.capsule_collision_height.value;
 		int collision_x                = (int)sid.collision_xy.value.x;

+ 198 - 198
tools/level_editor/sprite_import_dialog.vala

@@ -105,11 +105,11 @@ public class SpriteImportDialog : Gtk.Dialog
 	public Gtk.DrawingArea _preview;
 
 	public Gtk.Label resolution;
-	public EntryVector2 cells_hv;
+	public EntryVector2 cells;
 	public Gtk.CheckButton cell_wh_auto;
-	public EntryVector2 cell_wh;
-	public EntryVector2 offset_xy;
-	public EntryVector2 spacing_xy;
+	public EntryVector2 cell;
+	public EntryVector2 offset;
+	public EntryVector2 spacing;
 	public Gtk.ComboBoxText pivot;
 	public EntryDouble layer;
 	public EntryDouble depth;
@@ -119,10 +119,10 @@ public class SpriteImportDialog : Gtk.Dialog
 	public Gtk.StackSwitcher shape_switcher;
 	public Gtk.Stack shape;
 
-	public EntryVector2 circle_collision_center_xy;
+	public EntryVector2 circle_collision_center;
 	public EntryDouble circle_collision_radius;
 
-	public EntryVector2 capsule_collision_center_xy;
+	public EntryVector2 capsule_collision_center;
 	public EntryDouble capsule_collision_height;
 	public EntryDouble capsule_collision_radius;
 
@@ -166,75 +166,75 @@ public class SpriteImportDialog : Gtk.Dialog
 		_drawing_area.set_size_request(_pixbuf.width, _pixbuf.height);
 
 		_drawing_area.draw.connect((cr) => {
-				cr.set_source_rgb(0.1, 0.1, 0.1);
-				cr.paint();
-
-				cr.save();
-				cr.set_source_surface(_checker, 0, 0);
-				Cairo.Pattern pattern = cr.get_source();
-				pattern.set_filter(Cairo.Filter.NEAREST);
-				pattern.set_extend(Cairo.Extend.REPEAT);
-				cr.rectangle(0, 0, _pixbuf.width, _pixbuf.height);
-				cr.clip();
-				cr.paint();
-				cr.restore();
-
-				Gdk.cairo_set_source_pixbuf(cr, _pixbuf, 0, 0);
-				cr.paint();
-
-				// Pivot is relative to the top-left corner of the cell
-				Vector2 pivot = sprite_cell_pivot_xy((int)cell_wh.value.x
-					, (int)cell_wh.value.y
-					, (int)pivot.active
-					);
-
-				int num_v = (int)cells_hv.value.y;
-				int num_h = (int)cells_hv.value.x;
-
-				for (int h = 0; h < num_v; ++h)
+			cr.set_source_rgb(0.1, 0.1, 0.1);
+			cr.paint();
+
+			cr.save();
+			cr.set_source_surface(_checker, 0, 0);
+			Cairo.Pattern pattern = cr.get_source();
+			pattern.set_filter(Cairo.Filter.NEAREST);
+			pattern.set_extend(Cairo.Extend.REPEAT);
+			cr.rectangle(0, 0, _pixbuf.width, _pixbuf.height);
+			cr.clip();
+			cr.paint();
+			cr.restore();
+
+			Gdk.cairo_set_source_pixbuf(cr, _pixbuf, 0, 0);
+			cr.paint();
+
+			// Pivot is relative to the top-left corner of the cell
+			Vector2 pivot = sprite_cell_pivot_xy((int)cell.value.x
+				, (int)cell.value.y
+				, (int)pivot.active
+				);
+
+			int num_v = (int)cells.value.y;
+			int num_h = (int)cells.value.x;
+
+			for (int h = 0; h < num_v; ++h)
+			{
+				for (int w = 0; w < num_h; ++w)
 				{
-					for (int w = 0; w < num_h; ++w)
-					{
-						Vector2 cell = sprite_cell_xy(h
-							, w
-							, (int)offset_xy.value.x
-							, (int)offset_xy.value.y
-							, (int)cell_wh.value.x
-							, (int)cell_wh.value.y
-							, (int)spacing_xy.value.x
-							, (int)spacing_xy.value.y
-							);
-
-						int x0 = (int)cell.x;
-						int y0 = (int)cell.y;
-						int x1 = x0+(int)cell_wh.value.x;
-						int y1 = y0;
-						int x2 = x1;
-						int y2 = y0+(int)cell_wh.value.y;
-						int x3 = x0;
-						int y3 = y2;
-						// https://www.cairographics.org/FAQ/#sharp_lines
-						cr.move_to((double)x0,       (double)y0 + 0.5);
-						cr.line_to((double)x1,       (double)y1 + 0.5);
-						cr.move_to((double)x1 + 0.5, (double)y1      );
-						cr.line_to((double)x2 + 0.5, (double)y2      );
-						cr.move_to((double)x2,       (double)y2 + 0.5);
-						cr.line_to((double)x3,       (double)y3 + 0.5);
-						cr.move_to((double)x3 + 0.5, (double)y3      );
-						cr.line_to((double)x0 + 0.5, (double)y0      );
-
-						cr.set_line_width(1);
-						cr.set_source_rgba(0.9, 0.1, 0.1, 0.9);
-						cr.stroke();
-
-						cr.arc(x0 + pivot.x, y0 + pivot.y, 5.0, 0, 2*Math.PI);
-						cr.set_source_rgba(0.1, 0.1, 0.9, 0.6);
-						cr.fill();
-					}
+					Vector2 sc = sprite_cell_xy(h
+						, w
+						, (int)offset.value.x
+						, (int)offset.value.y
+						, (int)cell.value.x
+						, (int)cell.value.y
+						, (int)spacing.value.x
+						, (int)spacing.value.y
+						);
+
+					int x0 = (int)sc.x;
+					int y0 = (int)sc.y;
+					int x1 = x0+(int)cell.value.x;
+					int y1 = y0;
+					int x2 = x1;
+					int y2 = y0+(int)cell.value.y;
+					int x3 = x0;
+					int y3 = y2;
+					// https://www.cairographics.org/FAQ/#sharp_lines
+					cr.move_to((double)x0,       (double)y0 + 0.5);
+					cr.line_to((double)x1,       (double)y1 + 0.5);
+					cr.move_to((double)x1 + 0.5, (double)y1      );
+					cr.line_to((double)x2 + 0.5, (double)y2      );
+					cr.move_to((double)x2,       (double)y2 + 0.5);
+					cr.line_to((double)x3,       (double)y3 + 0.5);
+					cr.move_to((double)x3 + 0.5, (double)y3      );
+					cr.line_to((double)x0 + 0.5, (double)y0      );
+
+					cr.set_line_width(1);
+					cr.set_source_rgba(0.9, 0.1, 0.1, 0.9);
+					cr.stroke();
+
+					cr.arc(x0 + pivot.x, y0 + pivot.y, 5.0, 0, 2*Math.PI);
+					cr.set_source_rgba(0.1, 0.1, 0.9, 0.6);
+					cr.fill();
 				}
+			}
 
-				return Gdk.EVENT_STOP;
-			});
+			return Gdk.EVENT_STOP;
+		});
 
 		_scrolled_window = new Gtk.ScrolledWindow(null, null);
 		_scrolled_window.min_content_width = 640;
@@ -245,79 +245,79 @@ public class SpriteImportDialog : Gtk.Dialog
 		_preview.set_size_request(128, 128);
 
 		_preview.draw.connect((cr) => {
-				cr.set_source_rgb(0.1, 0.1, 0.1);
-				cr.paint();
-
-				Vector2 cell = sprite_cell_xy(0
-					, 0
-					, (int)offset_xy.value.x
-					, (int)offset_xy.value.y
-					, (int)cell_wh.value.x
-					, (int)cell_wh.value.y
-					, (int)spacing_xy.value.x
-					, (int)spacing_xy.value.y
-					);
-
-				int x0 = (int)cell.x;
-				int y0 = (int)cell.y;
-				int x1 = x0+(int)cell_wh.value.x;
-				int y2 = y0+(int)cell_wh.value.y;
-
-				// Draw checkered background
-				cr.save();
-				cr.set_source_surface(_checker, 0, 0);
-				Cairo.Pattern pattern = cr.get_source();
-				pattern.set_filter(Cairo.Filter.NEAREST);
-				pattern.set_extend(Cairo.Extend.REPEAT);
-				cr.rectangle(x0, y0, x1, y2);
-				cr.clip();
-				cr.new_path(); // path not consumed by clip()
-				cr.paint();
-				cr.restore();
-
-				// Draw sprite
-				cr.save();
-				Gdk.cairo_set_source_pixbuf(cr, _pixbuf, 0, 0);
-				cr.rectangle(x0, y0, x1, y2);
-				cr.clip();
-				cr.new_path(); // path not consumed by clip()
-				cr.paint();
-				cr.restore();
-
-				// Draw collision
-				if (shape.visible_child_name == "square_collider") {
-					cr.rectangle(collision_xy.value.x, collision_xy.value.y, collision_wh.value.x, collision_wh.value.y);
-					cr.set_source_rgba(0.3, 0.3, 0.3, 0.6);
-					cr.fill();
-				} else if (shape.visible_child_name == "circle_collider") {
-					cr.arc(circle_collision_center_xy.value.x, circle_collision_center_xy.value.y, circle_collision_radius.value, 0, 2*Math.PI);
-					cr.set_source_rgba(0.3, 0.3, 0.3, 0.6);
-					cr.fill();
-				} else if (shape.visible_child_name == "capsule_collider") {
-					double x = capsule_collision_center_xy.value.x;
-					double y = capsule_collision_center_xy.value.y;
-					double radius = capsule_collision_radius.value;
-					double height = capsule_collision_height.value - 2*radius;
-					cr.arc(x - height/2, y, radius, Math.PI/2, 3*Math.PI/2);
-					cr.rectangle(x - height/2, y - radius, height, 2*radius);
-					cr.arc(x + height/2, y, radius, 3*Math.PI/2, Math.PI/2);
-					cr.set_source_rgba(0.3, 0.3, 0.3, 0.6);
-					cr.fill();
-				}
+			cr.set_source_rgb(0.1, 0.1, 0.1);
+			cr.paint();
 
-				return Gdk.EVENT_STOP;
-			});
+			Vector2 sc = sprite_cell_xy(0
+				, 0
+				, (int)offset.value.x
+				, (int)offset.value.y
+				, (int)cell.value.x
+				, (int)cell.value.y
+				, (int)spacing.value.x
+				, (int)spacing.value.y
+				);
+
+			int x0 = (int)sc.x;
+			int y0 = (int)sc.y;
+			int x1 = x0+(int)cell.value.x;
+			int y2 = y0+(int)cell.value.y;
+
+			// Draw checkered background
+			cr.save();
+			cr.set_source_surface(_checker, 0, 0);
+			Cairo.Pattern pattern = cr.get_source();
+			pattern.set_filter(Cairo.Filter.NEAREST);
+			pattern.set_extend(Cairo.Extend.REPEAT);
+			cr.rectangle(x0, y0, x1, y2);
+			cr.clip();
+			cr.new_path(); // path not consumed by clip()
+			cr.paint();
+			cr.restore();
+
+			// Draw sprite
+			cr.save();
+			Gdk.cairo_set_source_pixbuf(cr, _pixbuf, 0, 0);
+			cr.rectangle(x0, y0, x1, y2);
+			cr.clip();
+			cr.new_path(); // path not consumed by clip()
+			cr.paint();
+			cr.restore();
+
+			// Draw collision
+			if (shape.visible_child_name == "square_collider") {
+				cr.rectangle(collision_xy.value.x, collision_xy.value.y, collision_wh.value.x, collision_wh.value.y);
+				cr.set_source_rgba(0.3, 0.3, 0.3, 0.6);
+				cr.fill();
+			} else if (shape.visible_child_name == "circle_collider") {
+				cr.arc(circle_collision_center.value.x, circle_collision_center.value.y, circle_collision_radius.value, 0, 2*Math.PI);
+				cr.set_source_rgba(0.3, 0.3, 0.3, 0.6);
+				cr.fill();
+			} else if (shape.visible_child_name == "capsule_collider") {
+				double x = capsule_collision_center.value.x;
+				double y = capsule_collision_center.value.y;
+				double radius = capsule_collision_radius.value;
+				double height = capsule_collision_height.value - 2*radius;
+				cr.arc(x - height/2, y, radius, Math.PI/2, 3*Math.PI/2);
+				cr.rectangle(x - height/2, y - radius, height, 2*radius);
+				cr.arc(x + height/2, y, radius, 3*Math.PI/2, Math.PI/2);
+				cr.set_source_rgba(0.3, 0.3, 0.3, 0.6);
+				cr.fill();
+			}
+
+			return Gdk.EVENT_STOP;
+		});
 
 		resolution = new Gtk.Label(_pixbuf.width.to_string() + " × " + _pixbuf.height.to_string());
 		resolution.halign = Gtk.Align.START;
 
-		cells_hv = new EntryVector2(Vector2(4.0, 4.0), Vector2(1.0, 1.0), Vector2(256.0, 256.0));
+		cells = new EntryVector2(Vector2(4.0, 4.0), Vector2(1.0, 1.0), Vector2(256.0, 256.0));
 		cell_wh_auto = new Gtk.CheckButton();
 		cell_wh_auto.active = true;
-		cell_wh = new EntryVector2(Vector2(_pixbuf.width / cells_hv.value.x, _pixbuf.height / cells_hv.value.y), Vector2(1.0, 1.0), Vector2(double.MAX, double.MAX));
-		cell_wh.sensitive = !cell_wh_auto.active;
-		offset_xy = new EntryVector2(Vector2(0.0, 0.0), Vector2(0.0, 0.0), Vector2(double.MAX, double.MAX));
-		spacing_xy = new EntryVector2(Vector2(0.0, 0.0), Vector2(0.0, 0.0), Vector2(double.MAX, double.MAX));
+		cell = new EntryVector2(Vector2(_pixbuf.width / cells.value.x, _pixbuf.height / cells.value.y), Vector2(1.0, 1.0), Vector2(double.MAX, double.MAX));
+		cell.sensitive = !cell_wh_auto.active;
+		offset = new EntryVector2(Vector2(0.0, 0.0), Vector2(0.0, 0.0), Vector2(double.MAX, double.MAX));
+		spacing = new EntryVector2(Vector2(0.0, 0.0), Vector2(0.0, 0.0), Vector2(double.MAX, double.MAX));
 
 		collision_enabled = new Gtk.CheckButton();
 		collision_enabled.active = true;
@@ -333,42 +333,42 @@ public class SpriteImportDialog : Gtk.Dialog
 		lock_rotation_y.active = true;
 		mass = new EntryDouble(10.0, 0.0, double.MAX);
 
-		circle_collision_center_xy = new EntryVector2(Vector2(cell_wh.value.x/2.0, cell_wh.value.y/2.0), Vector2(-double.MAX, -double.MAX), Vector2(double.MAX, double.MAX));
+		circle_collision_center = new EntryVector2(Vector2(cell.value.x/2.0, cell.value.y/2.0), Vector2(-double.MAX, -double.MAX), Vector2(double.MAX, double.MAX));
 		circle_collision_radius = new EntryDouble(32.0, 0.0, double.MAX);
 
-		capsule_collision_center_xy = new EntryVector2(Vector2(cell_wh.value.x/2.0, cell_wh.value.y/2.0), Vector2(-double.MAX, -double.MAX), Vector2(double.MAX, double.MAX));
+		capsule_collision_center = new EntryVector2(Vector2(cell.value.x/2.0, cell.value.y/2.0), Vector2(-double.MAX, -double.MAX), Vector2(double.MAX, double.MAX));
 		capsule_collision_radius = new EntryDouble(32.0, -double.MAX, double.MAX);
 		capsule_collision_height = new EntryDouble(64.0, 0.0, double.MAX);
 
-		cells_hv.value_changed.connect (() => {
+		cells.value_changed.connect (() => {
 			if (cell_wh_auto.active)
-				cell_wh.value = Vector2(_pixbuf.width / cells_hv.value.x, _pixbuf.height / cells_hv.value.y);
+				cell.value = Vector2(_pixbuf.width / cells.value.x, _pixbuf.height / cells.value.y);
 
 			_drawing_area.queue_draw();
 			_preview.queue_draw();
 		});
 
 		cell_wh_auto.toggled.connect(() => {
-			cell_wh.sensitive = !cell_wh_auto.active;
-			cell_wh.value = Vector2(_pixbuf.width / cells_hv.value.x, _pixbuf.height / cells_hv.value.y);
+			cell.sensitive = !cell_wh_auto.active;
+			cell.value = Vector2(_pixbuf.width / cells.value.x, _pixbuf.height / cells.value.y);
 
 			_drawing_area.queue_draw();
 			_preview.queue_draw();
 		});
 
-		cell_wh.value_changed.connect (() => {
-			circle_collision_center_xy.value = Vector2(cell_wh.value.x/2.0, cell_wh.value.y/2.0);
-			capsule_collision_center_xy.value = Vector2(cell_wh.value.x/2.0, cell_wh.value.y/2.0);
+		cell.value_changed.connect (() => {
+			circle_collision_center.value = Vector2(cell.value.x/2.0, cell.value.y/2.0);
+			capsule_collision_center.value = Vector2(cell.value.x/2.0, cell.value.y/2.0);
 			_drawing_area.queue_draw();
 			_preview.queue_draw();
 		});
 
-		offset_xy.value_changed.connect(() => {
+		offset.value_changed.connect(() => {
 			_drawing_area.queue_draw();
 			_preview.queue_draw();
 		});
 
-		spacing_xy.value_changed.connect(() => {
+		spacing.value_changed.connect(() => {
 			_drawing_area.queue_draw();
 			_preview.queue_draw();
 		});
@@ -377,9 +377,9 @@ public class SpriteImportDialog : Gtk.Dialog
 			collision_xy.sensitive = !collision_xy.sensitive;
 			collision_wh.sensitive = !collision_wh.sensitive;
 			shape_switcher.sensitive = !shape_switcher.sensitive;
-			circle_collision_center_xy.sensitive = !circle_collision_center_xy.sensitive;
+			circle_collision_center.sensitive = !circle_collision_center.sensitive;
 			circle_collision_radius.sensitive = !circle_collision_radius.sensitive;
-			capsule_collision_center_xy.sensitive = !capsule_collision_center_xy.sensitive;
+			capsule_collision_center.sensitive = !capsule_collision_center.sensitive;
 			capsule_collision_radius.sensitive = !capsule_collision_radius.sensitive;
 			capsule_collision_height.sensitive = !capsule_collision_height.sensitive;
 			actor_class.sensitive = !actor_class.sensitive;
@@ -395,7 +395,7 @@ public class SpriteImportDialog : Gtk.Dialog
 			_preview.queue_draw();
 		});
 
-		circle_collision_center_xy.value_changed.connect(() => {
+		circle_collision_center.value_changed.connect(() => {
 			_preview.queue_draw();
 		});
 
@@ -403,7 +403,7 @@ public class SpriteImportDialog : Gtk.Dialog
 			_preview.queue_draw();
 		});
 
-		capsule_collision_center_xy.value_changed.connect(() => {
+		capsule_collision_center.value_changed.connect(() => {
 			_preview.queue_draw();
 		});
 
@@ -451,11 +451,11 @@ public class SpriteImportDialog : Gtk.Dialog
 		grid.attach(label_with_alignment("Lock Rotation"), 0, 12, 1, 1);
 
 		grid.attach(resolution,        1,  0, 1, 1);
-		grid.attach(cells_hv,          1,  1, 1, 1);
+		grid.attach(cells,             1,  1, 1, 1);
 		grid.attach(cell_wh_auto,      1,  2, 1, 1);
-		grid.attach(cell_wh,           1,  3, 1, 1);
-		grid.attach(offset_xy,         1,  4, 1, 1);
-		grid.attach(spacing_xy,        1,  5, 1, 1);
+		grid.attach(cell,              1,  3, 1, 1);
+		grid.attach(offset,            1,  4, 1, 1);
+		grid.attach(spacing,           1,  5, 1, 1);
 		grid.attach(pivot,             1,  6, 1, 1);
 		grid.attach(layer,             1,  7, 1, 1);
 		grid.attach(depth,             1,  8, 1, 1);
@@ -465,33 +465,33 @@ public class SpriteImportDialog : Gtk.Dialog
 		grid.attach(lock_rotation_y,   1, 12, 1, 1);
 
 		Gtk.Grid square_grid = new Gtk.Grid();
-		square_grid.attach(label_with_alignment("Collision XY"), 0, 0, 1, 1);
-		square_grid.attach(label_with_alignment("Collision WH"), 0, 1, 1, 1);
-		square_grid.attach(collision_xy,                         1, 0, 1, 1);
-		square_grid.attach(collision_wh,                         1, 1, 1, 1);
+		square_grid.attach(label_with_alignment("Origin"), 0, 0, 1, 1);
+		square_grid.attach(label_with_alignment("Size"),   0, 1, 1, 1);
+		square_grid.attach(collision_xy,                   1, 0, 1, 1);
+		square_grid.attach(collision_wh,                   1, 1, 1, 1);
 		collision_xy.hexpand = true;
 		collision_wh.hexpand = true;
 		square_grid.row_spacing = 6;
 		square_grid.column_spacing = 12;
 
 		Gtk.Grid circle_grid = new Gtk.Grid();
-		circle_grid.attach(label_with_alignment("Collision XY"), 0, 0, 1, 1);
-		circle_grid.attach(label_with_alignment("Radius"),       0, 1, 1, 1);
-		circle_grid.attach(circle_collision_center_xy,           1, 0, 1, 1);
-		circle_grid.attach(circle_collision_radius,              1, 1, 1, 1);
-		circle_collision_center_xy.hexpand = true;
+		circle_grid.attach(label_with_alignment("Origin"), 0, 0, 1, 1);
+		circle_grid.attach(label_with_alignment("Radius"), 0, 1, 1, 1);
+		circle_grid.attach(circle_collision_center,        1, 0, 1, 1);
+		circle_grid.attach(circle_collision_radius,        1, 1, 1, 1);
+		circle_collision_center.hexpand = true;
 		circle_collision_radius.hexpand = true;
 		circle_grid.row_spacing = 6;
 		circle_grid.column_spacing = 12;
 
 		Gtk.Grid capsule_grid = new Gtk.Grid();
-		capsule_grid.attach(label_with_alignment("Collision XY"), 0, 0, 1, 1);
-		capsule_grid.attach(label_with_alignment("Radius"),       0, 1, 1, 1);
-		capsule_grid.attach(label_with_alignment("Height"),       0, 2, 1, 1);
-		capsule_grid.attach(capsule_collision_center_xy,          1, 0, 1, 1);
-		capsule_grid.attach(capsule_collision_radius,             1, 1, 1, 1);
-		capsule_grid.attach(capsule_collision_height,             1, 2, 1, 1);
-		capsule_collision_center_xy.hexpand = true;
+		capsule_grid.attach(label_with_alignment("Origin"), 0, 0, 1, 1);
+		capsule_grid.attach(label_with_alignment("Radius"), 0, 1, 1, 1);
+		capsule_grid.attach(label_with_alignment("Height"), 0, 2, 1, 1);
+		capsule_grid.attach(capsule_collision_center,       1, 0, 1, 1);
+		capsule_grid.attach(capsule_collision_radius,       1, 1, 1, 1);
+		capsule_grid.attach(capsule_collision_height,       1, 2, 1, 1);
+		capsule_collision_center.hexpand = true;
 		capsule_collision_radius.hexpand = true;
 		capsule_collision_height.hexpand = true;
 		capsule_grid.row_spacing = 6;
@@ -540,10 +540,10 @@ public class SpriteImportDialog : Gtk.Dialog
 	public void load(Hashtable importer_settings)
 	{
 		// Load settings
-		cells_hv.value           = Vector2((double)importer_settings["num_h"], (double)importer_settings["num_v"]);
-		cell_wh.value            = Vector2((double)importer_settings["cell_w"], (double)importer_settings["cell_h"]);
-		offset_xy.value          = Vector2((double)importer_settings["offset_x"], (double)importer_settings["offset_y"]);
-		spacing_xy.value         = Vector2((double)importer_settings["spacing_x"], (double)importer_settings["spacing_y"]);
+		cells.value              = Vector2((double)importer_settings["num_h"], (double)importer_settings["num_v"]);
+		cell.value               = Vector2((double)importer_settings["cell_w"], (double)importer_settings["cell_h"]);
+		offset.value             = Vector2((double)importer_settings["offset_x"], (double)importer_settings["offset_y"]);
+		spacing.value            = Vector2((double)importer_settings["spacing_x"], (double)importer_settings["spacing_y"]);
 		layer.value              = (double)importer_settings["layer"];
 		depth.value              = (double)importer_settings["depth"];
 		pivot.active             = (int)(double)importer_settings["pivot"];
@@ -551,29 +551,29 @@ public class SpriteImportDialog : Gtk.Dialog
 		collision_xy.value       = Vector2((double)importer_settings["collision_x"], (double)importer_settings["collision_y"]);
 		collision_wh.value       = Vector2((double)importer_settings["collision_w"], (double)importer_settings["collision_h"]);
 
-		circle_collision_center_xy.value = Vector2(importer_settings.has_key("circle_collision_center_x") ? (double)importer_settings["circle_collision_center_x"] : cell_wh.value.x/2.0, importer_settings.has_key("circle_collision_center_y") ? (double)importer_settings["circle_collision_center_y"] : cell_wh.value.y/2.0);
-		circle_collision_radius.value    = importer_settings.has_key("circle_collision_radius") ? (double)importer_settings["circle_collision_radius"] : 32;
+		circle_collision_center.value = Vector2(importer_settings.has_key("circle_collision_center_x") ? (double)importer_settings["circle_collision_center_x"] : cell.value.x/2.0, importer_settings.has_key("circle_collision_center_y") ? (double)importer_settings["circle_collision_center_y"] : cell.value.y/2.0);
+		circle_collision_radius.value = importer_settings.has_key("circle_collision_radius") ? (double)importer_settings["circle_collision_radius"] : 32;
 
-		capsule_collision_center_xy.value = Vector2(importer_settings.has_key("capsule_collision_center_x") ? (double)importer_settings["capsule_collision_center_x"] : cell_wh.value.x/2.0, importer_settings.has_key("capsule_collision_center_y") ? (double)importer_settings["capsule_collision_center_y"] : cell_wh.value.y/2.0);
-		capsule_collision_radius.value    = importer_settings.has_key("capsule_collision_radius") ? (double)importer_settings["capsule_collision_radius"] : 32;
-		capsule_collision_height.value    = importer_settings.has_key("capsule_collision_height") ? (double)importer_settings["capsule_collision_height"] : 64;
+		capsule_collision_center.value = Vector2(importer_settings.has_key("capsule_collision_center_x") ? (double)importer_settings["capsule_collision_center_x"] : cell.value.x/2.0, importer_settings.has_key("capsule_collision_center_y") ? (double)importer_settings["capsule_collision_center_y"] : cell.value.y/2.0);
+		capsule_collision_radius.value = importer_settings.has_key("capsule_collision_radius") ? (double)importer_settings["capsule_collision_radius"] : 32;
+		capsule_collision_height.value = importer_settings.has_key("capsule_collision_height") ? (double)importer_settings["capsule_collision_height"] : 64;
 
-		shape.visible_child_name          = importer_settings.has_key("shape_active_name") ? (string)importer_settings["shape_active_name"] : "square_collider";
-		actor_class.value                 = importer_settings.has_key("actor_class") ? (string)importer_settings["actor_class"] : "static";
-		lock_rotation_y.active			  = importer_settings.has_key("lock_rotation_y") ? (bool)importer_settings["lock_rotation_y"] : true;
-		mass.value						  = importer_settings.has_key("mass") ? (double)importer_settings["mass"] : 10.0;
+		shape.visible_child_name = importer_settings.has_key("shape_active_name") ? (string)importer_settings["shape_active_name"] : "square_collider";
+		actor_class.value        = importer_settings.has_key("actor_class") ? (string)importer_settings["actor_class"] : "static";
+		lock_rotation_y.active   = importer_settings.has_key("lock_rotation_y") ? (bool)importer_settings["lock_rotation_y"] : true;
+		mass.value               = importer_settings.has_key("mass") ? (double)importer_settings["mass"] : 10.0;
 	}
 
 	public void save(Hashtable importer_settings)
 	{
-		importer_settings["num_h"]                      = cells_hv.value.x;
-		importer_settings["num_v"]                      = cells_hv.value.y;
-		importer_settings["cell_w"]                     = cell_wh.value.x;
-		importer_settings["cell_h"]                     = cell_wh.value.y;
-		importer_settings["offset_x"]                   = offset_xy.value.x;
-		importer_settings["offset_y"]                   = offset_xy.value.y;
-		importer_settings["spacing_x"]                  = spacing_xy.value.x;
-		importer_settings["spacing_y"]                  = spacing_xy.value.y;
+		importer_settings["num_h"]                      = cells.value.x;
+		importer_settings["num_v"]                      = cells.value.y;
+		importer_settings["cell_w"]                     = cell.value.x;
+		importer_settings["cell_h"]                     = cell.value.y;
+		importer_settings["offset_x"]                   = offset.value.x;
+		importer_settings["offset_y"]                   = offset.value.y;
+		importer_settings["spacing_x"]                  = spacing.value.x;
+		importer_settings["spacing_y"]                  = spacing.value.y;
 		importer_settings["layer"]                      = layer.value;
 		importer_settings["depth"]                      = depth.value;
 		importer_settings["pivot"]                      = pivot.active;
@@ -582,11 +582,11 @@ public class SpriteImportDialog : Gtk.Dialog
 		importer_settings["collision_y"]                = collision_xy.value.y;
 		importer_settings["collision_w"]                = collision_wh.value.x;
 		importer_settings["collision_h"]                = collision_wh.value.y;
-		importer_settings["circle_collision_center_x"]  = circle_collision_center_xy.value.x;
-		importer_settings["circle_collision_center_y"]  = circle_collision_center_xy.value.y;
+		importer_settings["circle_collision_center_x"]  = circle_collision_center.value.x;
+		importer_settings["circle_collision_center_y"]  = circle_collision_center.value.y;
 		importer_settings["circle_collision_radius"]    = circle_collision_radius.value;
-		importer_settings["capsule_collision_center_x"] = capsule_collision_center_xy.value.x;
-		importer_settings["capsule_collision_center_y"] = capsule_collision_center_xy.value.y;
+		importer_settings["capsule_collision_center_x"] = capsule_collision_center.value.x;
+		importer_settings["capsule_collision_center_y"] = capsule_collision_center.value.y;
 		importer_settings["capsule_collision_radius"]   = capsule_collision_radius.value;
 		importer_settings["capsule_collision_height"]   = capsule_collision_height.value;
 		importer_settings["shape_active_name"]          = shape.visible_child_name;