public static MyObjectBuilder_ToolbarItem ObjectBuilderFromDefinition(MyDefinitionBase defBase) { if (defBase is MyPhysicalItemDefinition) { MyObjectBuilder_ToolbarItemWeapon weaponData = MyObjectBuilderSerializer.CreateNewObject<MyObjectBuilder_ToolbarItemWeapon>(); weaponData.DefinitionId = defBase.Id; return weaponData; } else if (defBase is MyCubeBlockDefinition) { MyCubeBlockDefinition blockDef = defBase as MyCubeBlockDefinition; MyObjectBuilder_ToolbarItemCubeBlock cubeData = MyObjectBuilderSerializer.CreateNewObject<MyObjectBuilder_ToolbarItemCubeBlock>(); cubeData.DefinitionId = defBase.Id; return cubeData; } else if (defBase is MyAnimationDefinition) { var animData = MyObjectBuilderSerializer.CreateNewObject<MyObjectBuilder_ToolbarItemAnimation>(); animData.DefinitionId = defBase.Id; return animData; } else if (defBase is MyVoxelHandDefinition) { var vhData = MyObjectBuilderSerializer.CreateNewObject<MyObjectBuilder_ToolbarItemVoxelHand>(); vhData.DefinitionId = defBase.Id; return vhData; } else if (defBase is MyPrefabThrowerDefinition) { var ptData = MyObjectBuilderSerializer.CreateNewObject<MyObjectBuilder_ToolbarItemPrefabThrower>(); ptData.DefinitionId = defBase.Id; return ptData; } else if (defBase is MyBotDefinition) { var bdData = MyObjectBuilderSerializer.CreateNewObject<MyObjectBuilder_ToolbarItemBot>(); bdData.DefinitionId = defBase.Id; return bdData; } else if (defBase is MyAiCommandDefinition) { var acData = MyObjectBuilderSerializer.CreateNewObject<MyObjectBuilder_ToolbarItemAiCommand>(); acData.DefinitionId = defBase.Id; return acData; } else if (defBase.Id.TypeId == typeof(MyObjectBuilder_RopeDefinition)) { var ob = MyObjectBuilderSerializer.CreateNewObject<MyObjectBuilder_ToolbarItemRope>(); ob.DefinitionId = defBase.Id; return ob; } else if (defBase is MyAreaMarkerDefinition) { var acData = MyObjectBuilderSerializer.CreateNewObject<MyObjectBuilder_ToolbarItemAreaMarker>(); acData.DefinitionId = defBase.Id; return acData; } return new MyObjectBuilder_ToolbarItemEmpty(); }
private string sorter(MyDefinitionBase def) { var physDef = def as MyPhysicalItemDefinition; if (physDef != null) return physDef.DisplayNameText; return null; }