Пример #1
0
        protected override void AddPrefabItems(MyTreeViewItem parentItem, MyMwcObjectBuilder_Prefab_AppearanceEnum appearanceTextureEnum, BuildTypesEnum buildType, CategoryTypesEnum categoryType)
        {
            MyMwcLog.WriteLine("GAME AddPrefabItems - START");

            Vector2 itemSize = MyGuiConstants.CHECKBOX_SIZE * 3;

            foreach (MyMwcObjectBuilderTypeEnum enumValue in MyGuiPrefabHelpers.MyMwcPrefabTypesEnumValues)
            {
                foreach (int prefabId in MyMwcObjectBuilder_Base.GetObjectBuilderIDs(enumValue))
                {
                    MyPrefabConfiguration config             = MyPrefabConstants.GetPrefabConfiguration(enumValue, prefabId);
                    MyGuiPrefabHelper     prefabModuleHelper = MyGuiObjectBuilderHelpers.GetGuiHelper(enumValue, prefabId) as MyGuiPrefabHelper;

                    if (config == null)
                    {
                        continue;
                    }

                    if (config.FactionSpecific.HasValue && config.FactionSpecific.Value != appearanceTextureEnum)
                    {
                        continue;
                    }

                    if (config.BuildType == buildType && config.CategoryType == categoryType && config.EnabledInEditor)
                    {
                        MyMwcObjectBuilder_PrefabBase prefabObjectBuilder   = MyPrefabFactory.GetInstance().CreatePrefabObjectBuilder(enumValue, prefabId, appearanceTextureEnum);
                        MyBuildingSpecification       buildingSpecification = MyBuildingSpecifications.GetBuildingSpecification(prefabObjectBuilder);
                        MyTexture2D previewTexture = MyGuiManager.GetPrefabPreviewTexture(enumValue, prefabId, appearanceTextureEnum);
                        AddTreeViewItem(parentItem, prefabModuleHelper.Description, previewTexture, itemSize, MyGuiManager.GetBlankTexture(), MyGuiManager.GetBlankTexture(), MyGuiConstants.CHECKBOX_SIZE, prefabObjectBuilder, buildingSpecification);
                    }
                }
            }

            MyMwcLog.WriteLine("GAME AddPrefabItems - END");
        }
Пример #2
0
        //public void AssignToFoundationFactory(MyFoundationFactory foundationFactory)
        //{
        //    Debug.Assert(m_prefabTypeSingleFlagsCount[(int) PrefabTypesFlagEnum.FoundationFactory] == 0);

        //    m_prefabTypesFlag = m_prefabTypesFlag | PrefabTypesFlagEnum.FoundationFactory;
        //    m_prefabTypeSingleFlagsCount[(int)PrefabTypesFlagEnum.FoundationFactory]++;
        //    if (MyEntities.Exist(this))
        //    {
        //        MyEntities.Remove(this);
        //    }

        //    foundationFactory.AddChild(this, true);
        //}

        //  This method is responsible for adding new prefab modules into container
        public MyEntity CreateAndAddPrefab(string hudLabelText, MyMwcObjectBuilder_PrefabBase prefabBuilder)
        {
            if (m_prefabs.Count + 1 >= m_prefabs.Capacity)
            {
                return(null);
            }

            MyPrefabBase prefab = MyPrefabFactory.GetInstance().CreatePrefab(hudLabelText, this, prefabBuilder);

            this.AddPrefab(prefab);
            return((MyEntity)prefab);
        }