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());
 }
Example #2
0
        public static MyToolbarItem ToItem(ToolbarItem msgItem)
        {
            MyToolbarItem item = null;

            if (msgItem.GunId.HasValue)
            {
                MyObjectBuilder_ToolbarItemWeapon builder = MyToolbarItemFactory.WeaponObjectBuilder();
                builder.defId = msgItem.GunId.Value;
                item          = MyToolbarItemFactory.CreateToolbarItem(builder);
            }
            else if (string.IsNullOrEmpty(msgItem.GroupName))
            {
                MyTerminalBlock block;
                if (MyEntities.TryGetEntityById(msgItem.EntityID, out block))
                {
                    var builder = MyToolbarItemFactory.TerminalBlockObjectBuilderFromBlock(block);
                    builder._Action    = msgItem.Action;
                    builder.Parameters = msgItem.Parameters;
                    item = MyToolbarItemFactory.CreateToolbarItem(builder);
                }
            }
            else
            {
                MyCubeBlock parent;
                if (MyEntities.TryGetEntityById(msgItem.EntityID, out parent))
                {
                    var grid      = parent.CubeGrid;
                    var groupName = msgItem.GroupName;
                    var group     = grid.GridSystems.TerminalSystem.BlockGroups.Find(x => x.Name.ToString() == groupName);
                    if (group != null)
                    {
                        var builder = MyToolbarItemFactory.TerminalGroupObjectBuilderFromGroup(@group);
                        builder._Action       = msgItem.Action;
                        builder.Parameters    = msgItem.Parameters;
                        builder.BlockEntityId = msgItem.EntityID;
                        item = MyToolbarItemFactory.CreateToolbarItem(builder);
                    }
                }
            }
            return(item);
        }
Example #3
0
        public static MyToolbarItem ToItem(ToolbarItem msgItem)
        {
            MyToolbarItem item = null;

            if (msgItem.GunId != null)
            {
                MyObjectBuilder_ToolbarItemWeapon data = MyToolbarItemFactory.WeaponObjectBuilder();
                data.defId = msgItem.GunId.Value;
                item       = MyToolbarItemFactory.CreateToolbarItem(data);
            }
            else if (string.IsNullOrEmpty(msgItem.GroupName))
            {
                MyTerminalBlock block;
                if (Sandbox.Game.Entities.MyEntities.TryGetEntityById <MyTerminalBlock>(msgItem.EntityID, out block, false))
                {
                    MyObjectBuilder_ToolbarItemTerminalBlock data = MyToolbarItemFactory.TerminalBlockObjectBuilderFromBlock(block);
                    data._Action    = msgItem.Action;
                    data.Parameters = msgItem.Parameters;
                    item            = MyToolbarItemFactory.CreateToolbarItem(data);
                }
            }
            else
            {
                MyCubeBlock block2;
                if (Sandbox.Game.Entities.MyEntities.TryGetEntityById <MyCubeBlock>(msgItem.EntityID, out block2, false))
                {
                    string       groupName = msgItem.GroupName;
                    MyBlockGroup group     = block2.CubeGrid.GridSystems.TerminalSystem.BlockGroups.Find(x => x.Name.ToString() == groupName);
                    if (group != null)
                    {
                        MyObjectBuilder_ToolbarItemTerminalGroup data = MyToolbarItemFactory.TerminalGroupObjectBuilderFromGroup(group);
                        data._Action       = msgItem.Action;
                        data.Parameters    = msgItem.Parameters;
                        data.BlockEntityId = msgItem.EntityID;
                        item = MyToolbarItemFactory.CreateToolbarItem(data);
                    }
                }
            }
            return(item);
        }
 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());
 }
        public static MyObjectBuilder_ToolbarItemWeapon WeaponObjectBuilder()
        {
            MyObjectBuilder_ToolbarItemWeapon output = MyObjectBuilderSerializer.CreateNewObject <MyObjectBuilder_ToolbarItemWeapon>();

            return(output);
        }