Просмотр исходного кода

tools: add ability to choose between predefined actor classes in Inspector

Daniele Bartolini 6 лет назад
Родитель
Сommit
cc82f42442
2 измененных файлов с 16 добавлено и 6 удалено
  1. 6 0
      tools/level_editor/level.vala
  2. 10 6
      tools/level_editor/properties_view.vala

+ 6 - 0
tools/level_editor/level.vala

@@ -364,6 +364,12 @@ namespace Crown
 			unit.set_component_property_string(component_id, "data.collision_filter", collision_filter);
 			unit.set_component_property_string(component_id, "data.collision_filter", collision_filter);
 			unit.set_component_property_string(component_id, "data.material", material);
 			unit.set_component_property_string(component_id, "data.material", material);
 			unit.set_component_property_double(component_id, "data.mass", mass);
 			unit.set_component_property_double(component_id, "data.mass", mass);
+			unit.set_component_property_bool  (component_id, "data.lock_rotation_x", (bool)unit.get_component_property_bool(component_id, "data.lock_rotation_x"));
+			unit.set_component_property_bool  (component_id, "data.lock_rotation_y", (bool)unit.get_component_property_bool(component_id, "data.lock_rotation_y"));
+			unit.set_component_property_bool  (component_id, "data.lock_rotation_z", (bool)unit.get_component_property_bool(component_id, "data.lock_rotation_z"));
+			unit.set_component_property_bool  (component_id, "data.lock_translation_x", (bool)unit.get_component_property_bool(component_id, "data.lock_translation_x"));
+			unit.set_component_property_bool  (component_id, "data.lock_translation_y", (bool)unit.get_component_property_bool(component_id, "data.lock_translation_y"));
+			unit.set_component_property_bool  (component_id, "data.lock_translation_z", (bool)unit.get_component_property_bool(component_id, "data.lock_translation_z"));
 			unit.set_component_property_string(component_id, "type", "actor");
 			unit.set_component_property_string(component_id, "type", "actor");
 
 
 			// No synchronization
 			// No synchronization

+ 10 - 6
tools/level_editor/properties_view.vala

@@ -399,14 +399,18 @@ namespace Crown
 			_level = level;
 			_level = level;
 
 
 			// Widgets
 			// Widgets
-			_class = new Gtk.Entry();
+			_class = new ComboBoxMap();
+			_class.append("static", "static");
+			_class.append("dynamic", "dynamic");
+			_class.append("keyframed", "keyframed");
+			_class.append("trigger", "trigger");
+			_class.value_changed.connect(on_value_changed);
 			_collision_filter = new Gtk.Entry();
 			_collision_filter = new Gtk.Entry();
+			_collision_filter.sensitive = false;
 			_material = new Gtk.Entry();
 			_material = new Gtk.Entry();
+			_material.sensitive = false;
 			_mass = new SpinButtonDouble(1.0, 0.0, double.MAX);
 			_mass = new SpinButtonDouble(1.0, 0.0, double.MAX);
 			_mass.value_changed.connect(on_value_changed);
 			_mass.value_changed.connect(on_value_changed);
-			_class.sensitive = false;
-			_collision_filter.sensitive = false;
-			_material.sensitive = false;
 
 
 			add_row("Class", _class);
 			add_row("Class", _class);
 			add_row("Collision Filter", _collision_filter);
 			add_row("Collision Filter", _collision_filter);
@@ -418,7 +422,7 @@ namespace Crown
 		{
 		{
 			_level.set_actor(_id
 			_level.set_actor(_id
 				, _component_id
 				, _component_id
-				, _class.text
+				, _class.value
 				, _collision_filter.text
 				, _collision_filter.text
 				, _material.text
 				, _material.text
 				, _mass.value
 				, _mass.value
@@ -428,7 +432,7 @@ namespace Crown
 		public override void update()
 		public override void update()
 		{
 		{
 			Unit unit = new Unit(_level._db, _id, _level._prefabs);
 			Unit unit = new Unit(_level._db, _id, _level._prefabs);
-			_class.text            = unit.get_component_property_string(_component_id, "data.class");
+			_class.value           = unit.get_component_property_string(_component_id, "data.class");
 			_collision_filter.text = unit.get_component_property_string(_component_id, "data.collision_filter");
 			_collision_filter.text = unit.get_component_property_string(_component_id, "data.collision_filter");
 			_material.text         = unit.get_component_property_string(_component_id, "data.material");
 			_material.text         = unit.get_component_property_string(_component_id, "data.material");
 			_mass.value            = unit.get_component_property_double(_component_id, "data.mass");
 			_mass.value            = unit.get_component_property_double(_component_id, "data.mass");