Преглед на файлове

tools: flag unit components

Daniele Bartolini преди 4 месеца
родител
ревизия
ec7901b5d2
променени са 2 файла, в които са добавени 15 реда и са изтрити 31 реда
  1. 1 17
      tools/level_editor/unit.vala
  2. 14 14
      tools/resource/types.vala

+ 1 - 17
tools/level_editor/unit.vala

@@ -894,23 +894,7 @@ public struct Unit
 
 	public static bool is_component(Guid id, Database db)
 	{
-		string type = db.object_type(id);
-
-		return type == OBJECT_TYPE_TRANSFORM
-			|| type == OBJECT_TYPE_CAMERA
-			|| type == OBJECT_TYPE_MESH_RENDERER
-			|| type == OBJECT_TYPE_SPRITE_RENDERER
-			|| type == OBJECT_TYPE_LIGHT
-			|| type == OBJECT_TYPE_FOG
-			|| type == OBJECT_TYPE_GLOBAL_LIGHTING
-			|| type == OBJECT_TYPE_BLOOM
-			|| type == OBJECT_TYPE_TONEMAP
-			|| type == OBJECT_TYPE_SCRIPT
-			|| type == OBJECT_TYPE_COLLIDER
-			|| type == OBJECT_TYPE_ACTOR
-			|| type == OBJECT_TYPE_MOVER
-			|| type == OBJECT_TYPE_ANIMATION_STATE_MACHINE
-			;
+		return (db.object_type_flags(StringId64(db.object_type(id))) & ObjectTypeFlags.UNIT_COMPONENT) != 0;
 	}
 
 	public void add_component_type_dependencies(ref Gee.ArrayList<Guid?> components_added, string component_type)

+ 14 - 14
tools/resource/types.vala

@@ -149,7 +149,7 @@ public static void create_object_types(Database database)
 			deffault = VECTOR3_ONE,
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_TRANSFORM, properties);
+	database.create_object_type(OBJECT_TYPE_TRANSFORM, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -189,7 +189,7 @@ public static void create_object_types(Database database)
 			deffault = true
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_MESH_RENDERER, properties);
+	database.create_object_type(OBJECT_TYPE_MESH_RENDERER, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -238,7 +238,7 @@ public static void create_object_types(Database database)
 			name = "data.flip_y",
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_SPRITE_RENDERER, properties);
+	database.create_object_type(OBJECT_TYPE_SPRITE_RENDERER, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -292,7 +292,7 @@ public static void create_object_types(Database database)
 			deffault = true,
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_LIGHT, properties);
+	database.create_object_type(OBJECT_TYPE_LIGHT, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -325,7 +325,7 @@ public static void create_object_types(Database database)
 			deffault = 1000.0,
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_CAMERA, properties);
+	database.create_object_type(OBJECT_TYPE_CAMERA, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -395,7 +395,7 @@ public static void create_object_types(Database database)
 			deffault = 1.0,
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_COLLIDER, properties);
+	database.create_object_type(OBJECT_TYPE_COLLIDER, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -470,7 +470,7 @@ public static void create_object_types(Database database)
 			name = "data.lock_rotation_z",
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_ACTOR, properties);
+	database.create_object_type(OBJECT_TYPE_ACTOR, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -483,7 +483,7 @@ public static void create_object_types(Database database)
 			resource_type = "lua"
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_SCRIPT, properties);
+	database.create_object_type(OBJECT_TYPE_SCRIPT, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -496,7 +496,7 @@ public static void create_object_types(Database database)
 			resource_type = OBJECT_TYPE_STATE_MACHINE
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_ANIMATION_STATE_MACHINE, properties);
+	database.create_object_type(OBJECT_TYPE_ANIMATION_STATE_MACHINE, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -592,7 +592,7 @@ public static void create_object_types(Database database)
 			deffault = true,
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_FOG, properties);
+	database.create_object_type(OBJECT_TYPE_FOG, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -637,7 +637,7 @@ public static void create_object_types(Database database)
 			enum_callback = collision_filter_enum_callback
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_MOVER, properties);
+	database.create_object_type(OBJECT_TYPE_MOVER, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -666,7 +666,7 @@ public static void create_object_types(Database database)
 			max = VECTOR3_ONE,
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_GLOBAL_LIGHTING, properties);
+	database.create_object_type(OBJECT_TYPE_GLOBAL_LIGHTING, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -700,7 +700,7 @@ public static void create_object_types(Database database)
 			deffault = 0.8,
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_BLOOM, properties);
+	database.create_object_type(OBJECT_TYPE_BLOOM, properties, ObjectTypeFlags.UNIT_COMPONENT);
 
 	properties =
 	{
@@ -712,7 +712,7 @@ public static void create_object_types(Database database)
 			enum_values = { "gamma", "reinhard", "filmic", "aces" },
 		},
 	};
-	database.create_object_type(OBJECT_TYPE_TONEMAP, properties);
+	database.create_object_type(OBJECT_TYPE_TONEMAP, properties, ObjectTypeFlags.UNIT_COMPONENT);
 }
 
 } /* namespace Crown */