public static MyToolbarItem CreateToolbarItemFromInventoryItem(IMyInventoryItem inventoryItem)
        {
            var itemDefinitionId = inventoryItem.GetDefinitionId();
            MyDefinitionBase itemDefinition;

            if (MyDefinitionManager.Static.TryGetDefinition(itemDefinitionId, out itemDefinition))
            {
                if ((itemDefinition is MyPhysicalItemDefinition) || (itemDefinition is MyCubeBlockDefinition))
                {
                    var itemBuilder = MyToolbarItemFactory.ObjectBuilderFromDefinition(itemDefinition);
                    if (itemBuilder is MyObjectBuilder_ToolbarItemMedievalWeapon)
                    {
                        var meWeaponBuilder = itemBuilder as MyObjectBuilder_ToolbarItemMedievalWeapon;
                        meWeaponBuilder.ItemId = inventoryItem.ItemId;
                    }

                    if (itemBuilder != null && !(itemBuilder is MyObjectBuilder_ToolbarItemEmpty))
                    {
                        return(MyToolbarItemFactory.CreateToolbarItem(itemBuilder));
                    }
                }
            }

            return(null);
        }
Beispiel #2
0
        //THIS FUNCTION IS ONLY NEEDED FOR OLD SAVE COMPATIBILITY
        public void SetItemAtSerializedCompat(int i, MyDefinitionId defId)
        {
            if (!m_items.IsValidIndex(i))
            {
                return;
            }

            MyDefinitionBase definition;

            if (MyDefinitionManager.Static.TryGetDefinition(defId, out definition))
            {
                MyObjectBuilder_ToolbarItem data = MyToolbarItemFactory.ObjectBuilderFromDefinition(definition);
                SetItemAtIndexInternal(i, MyToolbarItemFactory.CreateToolbarItem(data), true);
            }
        }
Beispiel #3
0
        public void SetDefaults(bool sendEvent = true)
        {
            if (m_toolbarType == MyToolbarType.Character)
            {
                MyDefinitionBase armorblock, cockpit, smallgenerator, smallthrust, gyro;
                MyDefinitionId   armorblockid     = new MyDefinitionId(typeof(MyObjectBuilder_CubeBlock), "LargeBlockArmorBlock");
                MyDefinitionId   cockpitid        = new MyDefinitionId(typeof(MyObjectBuilder_Cockpit), "LargeBlockCockpit");
                MyDefinitionId   smallgeneratorid = new MyDefinitionId(typeof(MyObjectBuilder_Reactor), "LargeBlockSmallGenerator");
                MyDefinitionId   smallthrustid    = new MyDefinitionId(typeof(MyObjectBuilder_Thrust), "LargeBlockSmallThrust");
                MyDefinitionId   gyroid           = new MyDefinitionId(typeof(MyObjectBuilder_Gyro), "LargeBlockGyro");

                int v = 0;
                if (MyDefinitionManager.Static.TryGetDefinition(armorblockid, out armorblock))
                {
                    SetItemAtIndex(v++, armorblockid, MyToolbarItemFactory.ObjectBuilderFromDefinition(armorblock));
                }
                if (MyDefinitionManager.Static.TryGetDefinition(cockpitid, out cockpit))
                {
                    SetItemAtIndex(v++, armorblockid, MyToolbarItemFactory.ObjectBuilderFromDefinition(cockpit));
                }
                if (MyDefinitionManager.Static.TryGetDefinition(smallgeneratorid, out smallgenerator))
                {
                    SetItemAtIndex(v++, armorblockid, MyToolbarItemFactory.ObjectBuilderFromDefinition(smallgenerator));
                }
                if (MyDefinitionManager.Static.TryGetDefinition(smallthrustid, out smallthrust))
                {
                    SetItemAtIndex(v++, armorblockid, MyToolbarItemFactory.ObjectBuilderFromDefinition(smallthrust));
                }
                if (MyDefinitionManager.Static.TryGetDefinition(gyroid, out gyro))
                {
                    SetItemAtIndex(v++, armorblockid, MyToolbarItemFactory.ObjectBuilderFromDefinition(gyro));
                }

                for (int i = v; i < m_items.Length; ++i)
                {
                    SetItemAtIndex(i, null);
                }

                m_currentColorMaskHSV = 0;
                SetDefaultColors();
            }
        }