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);
 }
Exemple #3
0
        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));
    }