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"); }
//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); }