Exemplo n.º 1
0
        public override MyObjectBuilder_ToolbarItem GetObjectBuilder()
        {
            if (Definition == null)
            {
                return(null);
            }

            MyObjectBuilder_ToolbarItemUsable builder = (MyObjectBuilder_ToolbarItemUsable)MyToolbarItemFactory.CreateObjectBuilder(this);

            builder.DefinitionId = Definition.Id;

            return(builder);
        }
 public static MyObjectBuilder_ToolbarItem ObjectBuilderFromDefinition(MyDefinitionBase defBase)
 {
     if (defBase is MyUsableItemDefinition)
     {
         MyObjectBuilder_ToolbarItemUsable usableData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemUsable>();
         usableData.DefinitionId = defBase.Id;
         return(usableData);
     }
     else if ((defBase is MyPhysicalItemDefinition) && (defBase.Id.TypeId == typeof(MyObjectBuilder_PhysicalGunObject)))
     {
         MyObjectBuilder_ToolbarItemWeapon weaponData = null;
         // CH: TODO: This is especially ugly, I know. But it's a quick fix. To do it properly, we will need to
         // remove this whole method and construct the inventory items solely based upon factory tags on toolbar item types
         if (MyPerGameSettings.Game == GameEnum.ME_GAME)
         {
             weaponData = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemMedievalWeapon>();
         }
         else
         {
             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);
     }
     else if (defBase is MyGridCreateToolDefinition)
     {
         var gctool = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemCreateGrid>();
         gctool.DefinitionId = defBase.Id;
         return(gctool);
     }
     return(new MyObjectBuilder_ToolbarItemEmpty());
 }