private void ReadFromDB(List <BlockData> blockDatas, List <BlockDataGroup> dataGoups) { foreach (BlockData blockData in blockDatas) { BlockDataGroup blockGroup = dataGoups.Find(s => s.modelName.Equals(blockData.model)); if (blockGroup == null) { blockGroup = new BlockDataGroup(); blockGroup.modelName = blockData.model; blockGroup.type = blockData.type; blockGroup.size = blockData.size; blockGroup.category = (Category)Convert.ToInt32(Enum.Parse(typeof(Category), blockData.category, true)); blockGroup.isAllColor = blockData.isAllColor; dataGoups.Add(blockGroup); } BlockDataItem dataItem = new BlockDataItem(); dataItem.colorName = blockData.color; dataItem.prefabName = blockData.prefab; dataItem.material = blockData.material; dataItem.materialHigh = blockData.material_high; dataItem.partnum = blockData.partnum; blockGroup.AddBlockDataItem(dataItem); } }
public void AddBlockDataItem(BlockDataItem item) { blockDataItems.Add(item); if (!colors.Contains(item.colorName)) { colors.Add(item.colorName); } materials.Add(item.material); prefabs.Add(item.prefabName); }
private void PrepareThumbExportElement(BlockDataGroup group, List <ThumbExportElement> elements) { if (!categoryToggles[(int)group.category]) { return; } string prefabDir = BlockPath.Prefab(group.category, PolygonType.HIGH); int[] angle = mThumInfo.GetAngleOfModel(group.modelName); List <string> prefabs = new List <string>(); if (!mColorToggles[0]) { foreach (string color in group.GetColors()) { int indexOfColor = IndexOfColor(color); if (indexOfColor >= 0 && mColorToggles[indexOfColor]) { prefabs.AddRange(group.GetPrefabsByColor(color)); } } } else { prefabs.AddRange(group.GetPrefabs()); } foreach (string prefab in prefabs) { BlockDataItem dataItem = group.GetItems().FirstOrDefault(s => s.prefabName == prefab); elements.Add(new ThumbExportElement() { eulerAngle = new Vector3(angle[0], angle[1], angle[2]), prefabPath = Path.Combine(prefabDir, prefab + ".prefab"), modelName = group.modelName, material = dataItem.material, materialH = dataItem.materialHigh, category = group.category, light = lightNames.Contains(dataItem.colorName) ? dataItem.colorName : "", }); } }
public static GameObject CreateSinglePrefab(string prefabName, BlockDataGroup blockDataGroup, Category category, PolygonType polygonType, bool isTemp = false) { BlockDataItem dataItem = blockDataGroup.GetItems().FirstOrDefault(s => s.prefabName == prefabName); return(CreateSinglePrefab(prefabName, blockDataGroup.modelName, dataItem.material, dataItem.materialHigh, category, polygonType)); }