示例#1
0
    private void addMaterial(uint chara_id)
    {
        uint id = (uint)MaterialList.Count;
        MasterDataParamChara materialMaster = MasterDataUtil.GetCharaParamFromID(chara_id);

        if (materialMaster == null)
        {
            return;
        }
        MaterialValue += materialMaster.name + "\n";

        var iconModel = new ListItemModel((uint)id);

        MaterialDataContext _newData = new MaterialDataContext(iconModel);

        _newData.m_Id       = (int)id;
        _newData.m_CharaId  = chara_id;
        _newData.IsViewIcon = true;
        UnitIconImageProvider.Instance.Get(
            chara_id,
            sprite =>
        {
            _newData.IconImage = sprite;
        });
        _newData.IconColor = new Color(1, 1, 1);

        _newData.Width  = m_IconSize;
        _newData.Height = m_IconSize;
        _newData.calcScale();

        _newData.SelectImage = ResourceManager.Instance.Load("icon_square1");

        MaterialList.Add(_newData);
    }
        public void SetupMaterials(ShotProperty prop, PmxMaterialData[] materials, string[] textures)
        {
            foreach (var texture in textures)
            {
                if (!TextureList.Contains(texture))
                {
                    TextureList.Add(texture);
                }
            }

            foreach (PmxMaterialData material in materials)
            {
                material.MaterialName = "MA_" + MaterialList.Count.ToString();

                if (0 <= material.TextureId && material.TextureId < textures.Length)
                {
                    material.TextureId = TextureList.IndexOf(textures[material.TextureId]);
                }
                else
                {
                    material.TextureId = -1;
                }

                if (0 <= material.SphereId && material.SphereId < textures.Length)
                {
                    material.SphereId = TextureList.IndexOf(textures[material.SphereId]);
                }
                else
                {
                    material.SphereId = -1;
                }
                MaterialList.Add(material);
            }
        }
示例#3
0
        public void MaterialCloneAndPersistTest()
        {
            Material source = PrepareSourceMaterial();
            Material dest   = source.Clone();

            MaterialList list = new MaterialList();

            list.Add(dest);

            DbConnectionMappingContext.DoMappingAction(
                MaterialAdapter.Instance.GetConnectionName(), "SubjectDB",
                () =>
            {
                TransactionScopeFactory.DoAction(() =>
                {
                    MaterialAdapter.Instance.InsertWithContent(list);

                    MaterialList loadedList = MaterialAdapter.Instance.LoadMaterialByMaterialID(dest.ID);

                    Assert.IsTrue(loadedList.Count > 0);

                    loadedList[0].EnsureMaterialContent();
                    ValidateMaterial(source, loadedList[0]);
                });
            });
        }
示例#4
0
		public void MaterialCloneAndPersistTest()
		{
			Material source = PrepareSourceMaterial();
			Material dest = source.Clone();

			MaterialList list = new MaterialList();

			list.Add(dest);

			DbConnectionMappingContext.DoMappingAction(
				MaterialAdapter.Instance.GetConnectionName(), "SubjectDB",
				() =>
				{
					TransactionScopeFactory.DoAction(() =>
					{
						MaterialAdapter.Instance.InsertWithContent(list);

						MaterialList loadedList = MaterialAdapter.Instance.LoadMaterialByMaterialID(dest.ID);

						Assert.IsTrue(loadedList.Count > 0);

						loadedList[0].EnsureMaterialContent();
						ValidateMaterial(source, loadedList[0]);
					});
				});
		}
示例#5
0
        /// <summary>
        /// Binds the data.
        /// </summary>
        public override void BindData()
        {
            base.BindData();

            var workflowTemplateId = Guid.Empty;

            if (!IsEditMode)
            {
                workflowTemplateId = CurrentWorkflowTemplate;
            }
            else if (EditObjectId.HasValue)
            {
                workflowTemplateId = EditObjectId.Value;
            }

            if (MaterialList.Count == 0)
            {
                Session["Materials"] = DataManager.Material.SelectByWorkflowTemplateId(workflowTemplateId).
                                       Select(
                    a =>
                    new MaterialMap
                {
                    ID                 = a.ID,
                    SiteID             = a.SiteID,
                    Name               = a.Name,
                    Type               = a.Type,
                    Description        = a.Description,
                    OldValue           = a.Value,
                    Value              = ((MaterialType)a.Type == MaterialType.Form && !IsEditMode) ? null : a.Value,
                    WorkflowTemplateID = a.WorkflowTemplateID
                }).ToList();
            }


            var workflowTemplateElements = DataManager.WorkflowTemplateElement.SelectAll(workflowTemplateId).Where(a => a.ElementType == (int)WorkflowTemplateElementType.Message).ToList();

            if (SiteActionTemplateList.Count == 0)
            {
                foreach (var workflowTemplateElement in workflowTemplateElements)
                {
                    var workflowTemplateElementParameter = DataManager.WorkflowTemplateElementParameter.SelectByElementId(workflowTemplateElement.ID).FirstOrDefault(a => a.Name == "SiteActionTemplateID");
                    var siteActionTemplate = DataManager.SiteActionTemplate.SelectById(workflowTemplateElementParameter.Value.ToGuid());
                    SiteActionTemplateList.Add(siteActionTemplate);

                    MaterialList.Add(new MaterialMap
                    {
                        ID       = siteActionTemplate.ID,
                        SiteID   = CurrentUser.Instance.SiteID,
                        Name     = workflowTemplateElement.Name,
                        OldValue = siteActionTemplate.ID.ToString(),
                        Value    = siteActionTemplate.ID.ToString(),
                        Type     = (int)MaterialType.ActionTemplate
                    });
                }
            }
        }
        private void LoadMaterials()
        {
            MaterialList.Clear();
            var foundmaterials = service.GetAllContentNamesByType(ContentType.Material);

            foreach (var material in foundmaterials)
            {
                MaterialList.Add(material);
            }
            RaisePropertyChanged("MaterialList");
        }
示例#7
0
        public void FillMaterialList()
        {
            MaterialList.Clear();
            var materialList = editorService.GetAllContentNamesByType(ContentType.Material);

            foreach (var material in
                     materialList.Where(ControlMaterialChanger.TryAddMaterial))
            {
                MaterialList.Add(material);
            }
        }
示例#8
0
        private void GetMaterials()
        {
            MaterialList.Clear();
            MaterialList.Add("Default2D");
            var materialList = service.GetAllContentNamesByType(ContentType.Material);

            foreach (var material in materialList.Where(material => MaterialHasColor(material)))
            {
                MaterialList.Add(material);                 //ncrunch: no coverage
            }
        }
 public void RefreshOnAddedContent(ContentType type, string name)
 {
     if (type == ContentType.Material && !MaterialList.Contains(name))
     {
         MaterialList.Add(name);
     }
     if ((type == ContentType.Image || type == ContentType.ImageAnimation ||
          type == ContentType.SpriteSheetAnimation) && !ImageList.Contains(name))
     {
         ImageList.Add(name);
     }
 }
示例#10
0
        public Materials(string materialsString, string scaleInput)
        {
            scale = Int32.Parse(scaleInput.Remove(scaleInput.Length - 1));

            string[] lines = materialsString.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
            foreach (var item in lines)
            {
                string[] strings = item.Split(new[] { ",", ";" }, StringSplitOptions.None);
                double   distanceParameter;
                double.TryParse(strings[1], out distanceParameter);
                MaterialList.Add(new Tuple <string, double>(strings[0], distanceParameter));
            }
        }
示例#11
0
        private async Task Restore()
        {
            using (DataBaseHelper dbh = new DataBaseHelper())
            {
                var res = await dbh.GetElements <Material>(Tables.MaterialTable, Tables.MaterialFields);

                MaterialList.Clear();
                foreach (var stock in res)
                {
                    MaterialList.Add(stock);
                }
            }
        }
示例#12
0
    public void addItem(int _id, uint _unit_id, System.Action <MaterialDataContext> action = null, bool notVierw = false)
    {
        var iconModel = new ListItemModel((uint)_id);

        MaterialDataContext _newData = new MaterialDataContext(iconModel);

        _newData.m_Id      = _id;
        _newData.m_CharaId = _unit_id;
        if (_unit_id == 0)
        {
            _newData.IsViewIcon = false;
        }
        else
        {
            _newData.IsViewIcon = true;
            UnitIconImageProvider.Instance.Get(
                _unit_id,
                sprite =>
            {
                _newData.IconImage = sprite;
            },
                true);
        }
        _newData.IconColor = new Color(1, 1, 1);
        if (notVierw == true)
        {
            _newData.MaterialColor = Color.clear;
        }

        _newData.Width  = m_IconSize;
        _newData.Height = m_IconSize;
        _newData.calcScale();

        _newData.SelectImage = ResourceManager.Instance.Load("icon_square1");

        iconModel.OnClicked += () =>
        {
            if (action != null)
            {
                action(_newData);
            }
        };

        MaterialList.Add(_newData);
        m_iconModels.Add(iconModel);
    }
示例#13
0
        //ncrunch: no coverage end

        public void UpdateOnContentChange(ContentType type, string addedName)
        {
            if (type == ContentType.ParticleSystem && !EffectsInProject.Contains(addedName))
            {
                EffectsInProject.Add(addedName);
                RaisePropertyChanged("EffectsInProject");
            }
            if (type == ContentType.ParticleEmitter && !EmittersInProject.Contains(addedName))
            {
                EmittersInProject.Add(addedName);
                RaisePropertyChanged("EmittersInProject");
            }
            if (type == ContentType.Material && !MaterialList.Contains(addedName))
            {
                MaterialList.Add(addedName);
                RaisePropertyChanged("MaterialList");
            }
        }
示例#14
0
        private async void AddMaterialExecute(Material material)
        {
            Collector collector = CollectorViewModel.Collector;

            if (collector.MaterialCollection == null)
            {
                collector.MaterialCollection = new List <string>();
            }
            collector.MaterialCollection.Add(material.MaterialID);
            await CollectorDA.UpdateCollector(collector);

            if (material.CollectorList == null)
            {
                material.CollectorList = new List <string>();
            }
            material.CollectorList.Add(collector.Username);
            await MaterialDA.UpdateMaterial(material);

            AvailableMaterialList.Remove(material);
            MaterialList.Add(material);
            MaterialCount = MaterialList.Count;
            //await Application.Current.MainPage.DisplayAlert("Add Material into Collection", "Material "+material.MaterialName+" is successfully added.", "OK");
            //await Application.Current.MainPage.Navigation.PopAsync();
        }
示例#15
0
        /// <summary>
        /// 获得指定附件的副本
        /// </summary>
        /// <param name="materials">附件集合</param>
        /// <returns>指定附件对应的副本集合</returns>
        internal MaterialList LoadCopyVersionMaterial(MaterialList materials)
        {
            ExceptionHelper.TrueThrow<ArgumentNullException>(materials == null, "materials");

            MaterialList copyVersionMaterials = new MaterialList();

            if (materials.Count != 0)
            {
                ConnectiveSqlClauseCollection orClause = new ConnectiveSqlClauseCollection(LogicOperatorDefine.Or);

                foreach (Material material in materials)
                {
                    WhereSqlClauseBuilder whereSqlClause = new WhereSqlClauseBuilder();

                    whereSqlClause.AppendItem("PARENT_ID", material.ID);
                    whereSqlClause.AppendItem("WF_ACTIVITY_ID", material.WfActivityID);
                    whereSqlClause.AppendItem("VERSION_TYPE", (int)MaterialVersionType.CopyVersion);

                    orClause.Add(whereSqlClause);
                }

                string sql = string.Format("SELECT * FROM WF.MATERIAL WHERE {0}",
                    orClause.AppendTenantCodeSqlClause(typeof(Material)).ToSqlString(TSqlBuilder.Instance));

                using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
                {
                    using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName()))
                    {
                        while (dr.Read())
                        {
                            Material material = new Material();

                            ORMapping.DataReaderToObject(dr, material);

                            copyVersionMaterials.Add(material);
                        }
                    }
                }

                DecorateMaterials(copyVersionMaterials);
            }

            return copyVersionMaterials;
        }
示例#16
0
        /// <summary>
        /// 获得指定ID的副本 和 它之前的一切副本 按照时间正排序 
        /// </summary>
        /// <param name="id">id</param>
        /// <returns>MaterialList</returns>
        public MaterialList GetPreMaterialsCopyVersion(string id)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(id, "id");

            WhereSqlClauseBuilder whereSqlClause = new WhereSqlClauseBuilder();

            whereSqlClause.AppendItem("PARENT_ID",
                string.Format("(SELECT PARENT_ID FROM WF.MATERIAL WHERE ID = {0})", TSqlBuilder.Instance.CheckQuotationMark(id, true)), "=", true);

            whereSqlClause.AppendItem("MODIFY_TIME",
                string.Format("(SELECT MODIFY_TIME FROM WF.MATERIAL WHERE ID = {0})", TSqlBuilder.Instance.CheckQuotationMark(id, true)), "<=", true);

            whereSqlClause.AppendTenantCode(typeof(Material));

            OrderBySqlClauseBuilder orderBySqlClause = new OrderBySqlClauseBuilder();

            orderBySqlClause.AppendItem("MODIFY_TIME", FieldSortDirection.Ascending);

            string sql = string.Format(@"SELECT * FROM WF.MATERIAL 
				WHERE {0} AND VERSION_TYPE = {1} ORDER BY {2}",
                whereSqlClause.ToSqlString(TSqlBuilder.Instance),
                Convert.ToInt16(MaterialVersionType.CopyVersion),
                orderBySqlClause.ToSqlString(TSqlBuilder.Instance));

            MaterialList materials = new MaterialList();

            using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
            {
                using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName()))
                {
                    while (dr.Read())
                    {
                        Material material = new Material();

                        ORMapping.DataReaderToObject(dr, material);

                        materials.Add(material);
                    }
                }
            }

            return materials;
        }
示例#17
0
        /// <summary>
        /// 获得指定ID的Material
        /// </summary>
        /// <param name="materialID">指定ID</param>
        /// <returns>MaterialList</returns>
        public MaterialList LoadMaterialByMaterialID(string materialID)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(materialID, "materialID");

            MaterialList materials = new MaterialList();

            WhereSqlClauseBuilder wBuilder = new WhereSqlClauseBuilder();

            wBuilder.AppendItem("ID", materialID);
            wBuilder.AppendTenantCode(typeof(Material));

            string sql = "SELECT * FROM WF.MATERIAL WHERE " + wBuilder.ToSqlString(TSqlBuilder.Instance);

            using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
            {
                using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName()))
                {
                    while (dr.Read())
                    {
                        Material material = new Material();

                        ORMapping.DataReaderToObject(dr, material);

                        materials.Add(material);
                    }
                }
            }

            DecorateMaterials(materials);

            return materials;
        }
示例#18
0
        /// <summary>
        /// 获得materialID对应的附件对象的所有版本和本身形成的树
        /// 对应的存储过程GetMaterialVersions不存在
        /// </summary>
        /// <param name="mainMaterialID">主版本ID</param>
        /// <returns>以主版本为跟节点各版本为子节点的树</returns>
        //[Obsolete("对应的存储过程GetMaterialVersions不存在")]
        public MaterialTreeNode LoadMaterialVersionsByMaterialID(string mainMaterialID)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(mainMaterialID, "mainMaterialID");

            MaterialList materials = new MaterialList();

            using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
            {
                Database db = DatabaseFactory.Create(dbi);

                using (SqlCommand dbc = new SqlCommand())
                {
                    SqlParameter sqlParameter = new SqlParameter();
                    sqlParameter.Value = mainMaterialID;
                    sqlParameter.SqlDbType = SqlDbType.NVarChar;
                    sqlParameter.Size = 36;
                    sqlParameter.ParameterName = "@mainMaterialID";
                    sqlParameter.SourceColumn = "@mainMaterialID";
                    sqlParameter.Direction = ParameterDirection.InputOutput;

                    dbc.CommandType = CommandType.StoredProcedure;
                    dbc.CommandText = "GetMaterialVersions";
                    dbc.Parameters.Add(sqlParameter);

                    using (IDataReader dr = db.ExecuteReader(dbc))
                    {
                        while (dr.Read())
                        {
                            Material material = new Material();

                            ORMapping.DataReaderToObject(dr, material);

                            materials.Add(material);
                        }
                    }

                    mainMaterialID = sqlParameter.Value.ToString();
                }
            }

            return GenerateMaterialVersionTree(materials, mainMaterialID);
        }
示例#19
0
        /// <summary>
        /// 由资源ID查询
        /// </summary>
        /// <param name="resourceIDs">资源ID</param>
        /// <returns>查询结果</returns>
        public MaterialList LoadMaterialsByResourceID(params string[] resourceIDs)
        {
            ExceptionHelper.TrueThrow<ArgumentNullException>(resourceIDs == null, "resourceIDs");

            MaterialList result = new MaterialList();

            if (resourceIDs.Length != 0)
            {
                InSqlClauseBuilder inBuilder = new InSqlClauseBuilder("RESOURCE_ID");

                inBuilder.AppendItem(resourceIDs);

                OrderBySqlClauseBuilder orderClause = new OrderBySqlClauseBuilder();

                orderClause.AppendItem("SORT_ID", FieldSortDirection.Ascending);

                string sql = string.Format("SELECT * FROM WF.MATERIAL WHERE {0} AND VERSION_TYPE = '{1}' ORDER BY {2}",
                    inBuilder.AppendTenantCodeSqlClause(typeof(Material)).ToSqlString(TSqlBuilder.Instance),
                    Convert.ToInt32(MaterialVersionType.Normal).ToString(),
                    orderClause.ToSqlString(TSqlBuilder.Instance));

                using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
                {
                    using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName()))
                    {
                        while (dr.Read())
                        {
                            Material material = new Material();

                            ORMapping.DataReaderToObject(dr, material);

                            result.Add(material);
                        }
                    }
                }

                DecorateMaterials(result);
            }

            return result;
        }
示例#20
0
        public MaterialList LoadVersionMaterialsBySceneKey(string resourceID, string wfActivityName)
        {
            MaterialList copyVersionMaterials = new MaterialList();

            WhereSqlClauseBuilder whereSqlClause = new WhereSqlClauseBuilder();

            whereSqlClause.AppendItem("RESOURCE_ID", resourceID);
            whereSqlClause.AppendItem("VERSION_TYPE", Convert.ToInt16(MaterialVersionType.CopyVersion).ToString());
            whereSqlClause.AppendItem("WF_ACTIVITY_NAME", wfActivityName);
            whereSqlClause.AppendTenantCode(typeof(Material));

            string sql = string.Format("SELECT * FROM WF.MATERIAL WHERE {0}",
                                    whereSqlClause.ToSqlString(TSqlBuilder.Instance));

            using (DbContext dbi = DbHelper.GetDBContext(GetConnectionName()))
            {
                using (IDataReader dr = DbHelper.RunSqlReturnDR(sql, GetConnectionName()))
                {
                    while (dr.Read())
                    {
                        Material material = new Material();

                        ORMapping.DataReaderToObject(dr, material);

                        copyVersionMaterials.Add(material);
                    }
                }
            }

            DecorateMaterials(copyVersionMaterials);

            return copyVersionMaterials;
        }
示例#21
0
        public virtual void FromStream(Stream s, bool id)
        {
            Action <Action> action = delegate(Action a)
            {
                try
                {
                    a();
                }
                catch (Exception)
                {
                    LoadErrCount++;
                }
            };
            PmxHeader head = new PmxHeader();

            head.FromStreamEx(s);
            Header.FromHeader(head);
            head.ElementFormat.WithID = id;
            action(delegate
            {
                ModelInfo.FromStreamEx(s, head.ElementFormat);
            });
            int count = 0;

            action(delegate
            {
                count = PmxStreamHelper.ReadElement_Int32(s);
            });
            VertexList.Clear();
            VertexList.Capacity = count;
            for (int k = 0; k < count; k++)
            {
                PmxVertex v = new PmxVertex();
                action(delegate
                {
                    v.FromStreamEx(s, head.ElementFormat);
                });
                VertexList.Add(v);
            }
            action(delegate
            {
                count = PmxStreamHelper.ReadElement_Int32(s);
            });
            FaceList.Clear();
            FaceList.Capacity = count;
            for (int l = 0; l < count; l++)
            {
                int ix = 0;
                action(delegate
                {
                    ix = PmxStreamHelper.ReadElement_Int32(s, head.ElementFormat.VertexSize, signed: false);
                });
                FaceList.Add(ix);
            }
            PmxTextureTable tx = new PmxTextureTable();

            action(delegate
            {
                tx.FromStreamEx(s, head.ElementFormat);
            });
            action(delegate
            {
                count = PmxStreamHelper.ReadElement_Int32(s);
            });
            MaterialList.Clear();
            MaterialList.Capacity = count;
            for (int m = 0; m < count; m++)
            {
                PmxMaterial j = new PmxMaterial();
                action(delegate
                {
                    j.FromStreamEx_TexTable(s, tx, head.ElementFormat);
                });
                MaterialList.Add(j);
            }
            action(delegate
            {
                count = PmxStreamHelper.ReadElement_Int32(s);
            });
            BoneList.Clear();
            BoneList.Capacity = count;
            for (int n = 0; n < count; n++)
            {
                PmxBone b = new PmxBone();
                action(delegate
                {
                    b.FromStreamEx(s, head.ElementFormat);
                });
                BoneList.Add(b);
            }
            action(delegate
            {
                count = PmxStreamHelper.ReadElement_Int32(s);
            });
            MorphList.Clear();
            MorphList.Capacity = count;
            for (int num = 0; num < count; num++)
            {
                PmxMorph morph = new PmxMorph();
                action(delegate
                {
                    morph.FromStreamEx(s, head.ElementFormat);
                });
                MorphList.Add(morph);
            }
            action(delegate
            {
                count = PmxStreamHelper.ReadElement_Int32(s);
            });
            NodeList.Clear();
            NodeList.Capacity = count;
            for (int num2 = 0; num2 < count; num2++)
            {
                PmxNode node = new PmxNode();
                action(delegate
                {
                    node.FromStreamEx(s, head.ElementFormat);
                });
                NodeList.Add(node);
                if (NodeList[num2].SystemNode)
                {
                    if (NodeList[num2].Name == "Root")
                    {
                        RootNode = NodeList[num2];
                    }
                    else if (NodeList[num2].Name == "表情")
                    {
                        ExpNode = NodeList[num2];
                    }
                }
            }
            action(delegate
            {
                count = PmxStreamHelper.ReadElement_Int32(s);
            });
            BodyList.Clear();
            BodyList.Capacity = count;
            for (int num3 = 0; num3 < count; num3++)
            {
                PmxBody b2 = new PmxBody();
                action(delegate
                {
                    b2.FromStreamEx(s, head.ElementFormat);
                });
                BodyList.Add(b2);
            }
            action(delegate
            {
                count = PmxStreamHelper.ReadElement_Int32(s);
            });
            JointList.Clear();
            JointList.Capacity = count;
            for (int num4 = 0; num4 < count; num4++)
            {
                PmxJoint i = new PmxJoint();
                action(delegate
                {
                    i.FromStreamEx(s, head.ElementFormat);
                });
                JointList.Add(i);
            }
            if (head.Ver >= 2.1f)
            {
                action(delegate
                {
                    count = PmxStreamHelper.ReadElement_Int32(s);
                });
                SoftBodyList.Clear();
                SoftBodyList.Capacity = count;
                for (int num5 = 0; num5 < count; num5++)
                {
                    PmxSoftBody b3 = new PmxSoftBody();
                    action(delegate
                    {
                        b3.FromStreamEx(s, head.ElementFormat);
                    });
                    SoftBodyList.Add(b3);
                }
            }
            if (id)
            {
                action(delegate
                {
                    FilePath = PmxStreamHelper.ReadString(s, head.ElementFormat);
                });
            }
            head.ElementFormat.WithID = false;
        }
示例#22
0
        public void GetMaterials(float id)
        {
            try
            {
                //connection.Open();
                using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
                {
                    Products.Clear();
                    MaterialList.Clear();

                    connection.Open();
                    StringBuilder sb = new StringBuilder();

                    //sb.Append("SELECT * FROM JoelProducts");
                    sb.Append("SELECT * FROM Sheet1$ WHERE GRP_ID = " + id.ToString() + ";");
                    String sql = sb.ToString();

                    Console.WriteLine(sb.ToString());

                    using (SqlCommand command = new SqlCommand(sql, connection))
                    {
                        using (SqlDataReader reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                Material material = new Material
                                {
                                    Name = reader.GetString(0),
                                    //Material_Cost = (float)reader.GetDouble(1),
                                    Material_Cost = reader.IsDBNull(1) ? 0 : (float)reader.GetDouble(1),
                                    //Setup_Hr = (float)reader.GetDouble(2),
                                    //Setup_Cost = (UInt32)reader.GetDouble(3),
                                    //Operation_Hr = (float)reader.GetDouble(4),
                                    //Operation_Cost = (UInt32)reader.GetDouble(5),
                                    //Markup = (float)reader.GetDouble(6),
                                    Setup_Hr       = reader.IsDBNull(2) ? 0 : (float)reader.GetDouble(2),
                                    Setup_Cost     = reader.IsDBNull(3) ? 0 : (UInt32)reader.GetDouble(3),
                                    Operation_Hr   = reader.IsDBNull(4) ? 0 : (float)reader.GetDouble(4),
                                    Operation_Cost = reader.IsDBNull(5) ? 0 : (UInt32)reader.GetDouble(5),
                                    Markup         = reader.IsDBNull(6) ? 0 : (float)reader.GetDouble(6),
                                    Qty            = reader.IsDBNull(9) ? 0 : (UInt32)reader.GetDouble(9),
                                    Id             = (float)reader.GetInt32(7),
                                    Grp_Id         = reader.IsDBNull(8) ? 0 : (float)reader.GetInt32(8)
                                };

                                material.SetSubTotal();
                                material.SetPricePerPiece();

                                Products.Add(material);
                                MaterialList.Add(material);
                                Console.WriteLine("hey");
                            }
                            Console.WriteLine("heywala");
                        }
                    }
                }
            }
            catch (SqlException ex)
            {
                MessageBox.Show(ex.Message + ex.Source);
            }
        }
示例#23
0
        private ImportedMaterial ConvertMaterial(Material mat)
        {
            ImportedMaterial iMat;

            if (mat != null)
            {
                iMat = ImportedHelpers.FindMaterial(mat.m_Name, MaterialList);
                if (iMat != null)
                {
                    return(iMat);
                }
                iMat      = new ImportedMaterial();
                iMat.Name = mat.m_Name;
                foreach (var col in mat.m_SavedProperties.m_Colors)
                {
                    switch (col.Key)
                    {
                    case "_Color":
                        iMat.Diffuse = col.Value;
                        break;

                    case "_SColor":
                        iMat.Ambient = col.Value;
                        break;

                    case "_EmissionColor":
                        iMat.Emissive = col.Value;
                        break;

                    case "_SpecColor":
                        iMat.Specular = col.Value;
                        break;

                    case "_RimColor":
                    case "_OutlineColor":
                    case "_ShadowColor":
                        break;
                    }
                }

                foreach (var flt in mat.m_SavedProperties.m_Floats)
                {
                    switch (flt.Key)
                    {
                    case "_Shininess":
                        iMat.Power = flt.Value;
                        break;

                    case "_RimPower":
                    case "_Outline":
                        break;
                    }
                }

                //textures
                iMat.Textures   = new string[5];
                iMat.TexOffsets = new Vector2[5];
                iMat.TexScales  = new Vector2[5];
                foreach (var texEnv in mat.m_SavedProperties.m_TexEnvs)
                {
                    Texture2D m_Texture2D = null;
                    if (texEnv.Value.m_Texture.TryGet <Texture2D>(out var m_Texture)) //TODO other Texture
                    {
                        m_Texture2D = m_Texture;
                    }

                    if (m_Texture2D == null)
                    {
                        continue;
                    }
                    int dest = -1;
                    if (texEnv.Key == "_MainTex")
                    {
                        dest = 0;
                    }
                    else if (texEnv.Key == "_BumpMap")
                    {
                        dest = 4;
                    }
                    else if (texEnv.Key.Contains("Spec"))
                    {
                        dest = 2;
                    }
                    else if (texEnv.Key.Contains("Norm"))
                    {
                        dest = 3;
                    }
                    if (dest < 0 || iMat.Textures[dest] != null)
                    {
                        continue;
                    }

                    if (textureNameDictionary.TryGetValue(m_Texture, out var textureName))
                    {
                        iMat.Textures[dest] = textureName;
                    }
                    else if (ImportedHelpers.FindTexture(m_Texture2D.m_Name + ".png", TextureList) != null) //已有相同名字的图片
                    {
                        for (int i = 1; ; i++)
                        {
                            var name = m_Texture2D.m_Name + $" ({i}).png";
                            if (ImportedHelpers.FindTexture(name, TextureList) == null)
                            {
                                iMat.Textures[dest] = name;
                                textureNameDictionary.Add(m_Texture, name);
                                break;
                            }
                        }
                    }
                    else
                    {
                        iMat.Textures[dest] = m_Texture2D.m_Name + ".png";
                        textureNameDictionary.Add(m_Texture, iMat.Textures[dest]);
                    }
                    iMat.TexOffsets[dest] = texEnv.Value.m_Offset;
                    iMat.TexScales[dest]  = texEnv.Value.m_Scale;
                    ConvertTexture2D(m_Texture2D, iMat.Textures[dest]);
                }

                MaterialList.Add(iMat);
            }
            else
            {
                iMat = new ImportedMaterial();
            }
            return(iMat);
        }
示例#24
0
            private void ConvertMaterial(Material mat)
            {
                ImportedMaterial iMat = ImportedHelpers.FindMaterial(mat.m_Name, MaterialList);

                if (iMat != null)
                {
                    return;
                }

                iMat      = new ImportedMaterial();
                iMat.Name = mat.m_Name;

                foreach (var col in mat.m_SavedProperties.m_Colors)
                {
                    switch (col.Key.name)
                    {
                    case "_Color":
                        iMat.Diffuse = col.Value;
                        break;

                    case "_SColor":
                        iMat.Ambient = col.Value;
                        break;

                    case "_ReflectColor":
                        iMat.Emissive = col.Value;
                        break;

                    case "_SpecColor":
                        iMat.Specular = col.Value;
                        break;

                    case "_RimColor":
                    case "_OutlineColor":
                    case "_ShadowColor":
                        break;
                    }
                }

                foreach (var flt in mat.m_SavedProperties.m_Floats)
                {
                    switch (flt.Key.name)
                    {
                    case "_Shininess":
                        iMat.Power = flt.Value;
                        break;

                    case "_RimPower":
                    case "_Outline":
                        break;
                    }
                }

                iMat.Textures = new string[4];
                int numTex = mat.m_SavedProperties.m_TexEnvs.Count > 4 ? 4 : mat.m_SavedProperties.m_TexEnvs.Count;

                for (int i = 0; i < numTex; i++)
                {
                    var       tex   = mat.m_SavedProperties.m_TexEnvs[i];
                    Texture2D tex2D = tex.Value.m_Texture.instance;
                    if (tex2D != null)
                    {
                        iMat.Textures[i] = tex2D.m_Name + "-" + tex.Key.name + "-" + "offset(X" + tex.Value.m_Offset.X.ToFloatString() + "Y" + tex.Value.m_Offset.Y.ToFloatString() + ")-scale(X" + tex.Value.m_Scale.X.ToFloatString() + "Y" + tex.Value.m_Scale.Y.ToFloatString() + ")" + (tex2D.m_TextureFormat == TextureFormat.DXT1 || tex2D.m_TextureFormat == TextureFormat.DXT5 ? ".dds" : ".tga");
                        ConvertTexture2D(tex2D, iMat.Textures[i]);
                    }
                }

                MaterialList.Add(iMat);
            }
示例#25
0
        private ImportedMaterial ConvertMaterial(Material mat)
        {
            ImportedMaterial iMat;

            if (mat != null)
            {
                iMat = ImportedHelpers.FindMaterial(mat.m_Name, MaterialList);
                if (iMat != null)
                {
                    return(iMat);
                }
                iMat      = new ImportedMaterial();
                iMat.Name = mat.m_Name;
                foreach (var col in mat.m_SavedProperties.m_Colors)
                {
                    switch (col.Key)
                    {
                    case "_Color":
                        iMat.Diffuse = col.Value;
                        break;

                    case "_SColor":
                        iMat.Ambient = col.Value;
                        break;

                    case "_EmissionColor":
                        iMat.Emissive = col.Value;
                        break;

                    case "_SpecularColor":
                    case "_SpecColor":
                        iMat.Specular = col.Value;
                        break;

                    case "_ReflectColor":
                        iMat.Reflection = col.Value;
                        break;
                    }
                }

                foreach (var flt in mat.m_SavedProperties.m_Floats)
                {
                    switch (flt.Key)
                    {
                    case "_Shininess":
                        iMat.Shininess = flt.Value;
                        break;

                    case "_Transparency":
                        iMat.Transparency = flt.Value;
                        break;
                    }
                }

                //textures
                iMat.Textures = new List <ImportedMaterialTexture>();
                foreach (var texEnv in mat.m_SavedProperties.m_TexEnvs)
                {
                    if (!texEnv.Value.m_Texture.TryGet <Texture2D>(out var m_Texture2D)) //TODO other Texture
                    {
                        continue;
                    }

                    var texture = new ImportedMaterialTexture();
                    iMat.Textures.Add(texture);

                    int dest = -1;
                    if (texEnv.Key == "_MainTex")
                    {
                        dest = 0;
                    }
                    else if (texEnv.Key == "_BumpMap")
                    {
                        dest = 3;
                    }
                    else if (texEnv.Key.Contains("Specular"))
                    {
                        dest = 2;
                    }
                    else if (texEnv.Key.Contains("Normal"))
                    {
                        dest = 1;
                    }

                    texture.Dest = dest;

                    if (textureNameDictionary.TryGetValue(m_Texture2D, out var textureName))
                    {
                        texture.Name = textureName;
                    }
                    else if (ImportedHelpers.FindTexture(m_Texture2D.m_Name + ".png", TextureList) != null) //已有相同名字的图片
                    {
                        for (int i = 1; ; i++)
                        {
                            var name = m_Texture2D.m_Name + $" ({i}).png";
                            if (ImportedHelpers.FindTexture(name, TextureList) == null)
                            {
                                texture.Name = name;
                                textureNameDictionary.Add(m_Texture2D, name);
                                break;
                            }
                        }
                    }
                    else
                    {
                        texture.Name = m_Texture2D.m_Name + ".png";
                        textureNameDictionary.Add(m_Texture2D, texture.Name);
                    }

                    texture.Offset = texEnv.Value.m_Offset;
                    texture.Scale  = texEnv.Value.m_Scale;
                    ConvertTexture2D(m_Texture2D, texture.Name);
                }

                MaterialList.Add(iMat);
            }
            else
            {
                iMat = new ImportedMaterial();
            }
            return(iMat);
        }
示例#26
0
 public Materials()
 {
     MaterialList.Add(new Tuple <string, double>("test", 1));
 }
示例#27
0
        private void SetupShotModelData(ShotModelData data)
        {
            int[] indices = Array.ConvertAll(data.Indices, i => i + VertexList.Count);
            IndexList.AddRange(indices);

            PmxVertexData[] vertices = data.Vertices;
            foreach (var vertex in vertices)
            {
                vertex.VertexId = VertexList.Count;
                vertex.BoneId   = Array.ConvertAll(vertex.BoneId, i => i + BoneList.Count);
                VertexList.Add(vertex);
            }

            PmxMaterialData[] materials = data.Materials;
            PmxMorphData      morph     = data.MaterialMorph;

            morph.MorphName  = data.Property.Type.Name[0] + MorphList.Count.ToString();
            morph.Type       = 4;
            morph.MorphArray = ArrayUtil.Set(new PmxMorphMaterialData[materials.Length], i => new PmxMorphMaterialData());

            for (int i = 0; i < materials.Length; i++)
            {
                morph.MorphArray[i].Index = MaterialList.Count + i;
                morph.MorphId             = MorphList.Count + i;
            }
            MorphList.Add(morph);

            string[] textures = data.Textures;
            foreach (var texture in textures)
            {
                if (!TextureList.Contains(texture))
                {
                    TextureList.Add(texture);
                }
            }

            foreach (PmxMaterialData material in materials)
            {
                material.MaterialName = data.Property.Type.Name[0] + MaterialList.Count.ToString();

                if (0 <= material.TextureId && material.TextureId < textures.Length)
                {
                    material.TextureId = TextureList.IndexOf(textures[material.TextureId]);
                }
                else
                {
                    material.TextureId = -1;
                }

                if (0 <= material.SphereId && material.SphereId < textures.Length)
                {
                    material.SphereId = TextureList.IndexOf(textures[material.SphereId]);
                }
                else
                {
                    material.SphereId = -1;
                }
                material.MaterialId = MaterialList.Count;
                MaterialList.Add(material);
            }
            SetupBone(data, data.Bones);

            ModelDataList.Add(data);
        }
示例#28
0
        public void FromPmx(Pmx pmx)
        {
            Clear();
            FilePath     = pmx.FilePath;
            LoadErrCount = pmx.LoadErrCount;
            Header       = pmx.Header.Clone();
            ModelInfo    = pmx.ModelInfo.Clone();
            int count = pmx.VertexList.Count;

            VertexList.Capacity = count;
            for (int i = 0; i < count; i++)
            {
                VertexList.Add(pmx.VertexList[i].Clone());
            }
            count             = pmx.FaceList.Count;
            FaceList.Capacity = count;
            for (int j = 0; j < count; j++)
            {
                FaceList.Add(pmx.FaceList[j]);
            }
            count = pmx.MaterialList.Count;
            MaterialList.Capacity = count;
            for (int k = 0; k < count; k++)
            {
                MaterialList.Add(pmx.MaterialList[k].Clone());
            }
            count             = pmx.BoneList.Count;
            BoneList.Capacity = count;
            for (int l = 0; l < count; l++)
            {
                BoneList.Add(pmx.BoneList[l].Clone());
            }
            count = pmx.MorphList.Count;
            MorphList.Capacity = count;
            for (int m = 0; m < count; m++)
            {
                MorphList.Add(pmx.MorphList[m].Clone());
            }
            count = pmx.NodeList.Count;
            NodeList.Clear();
            NodeList.Capacity = count;
            for (int n = 0; n < count; n++)
            {
                NodeList.Add(pmx.NodeList[n].Clone());
                if (NodeList[n].SystemNode)
                {
                    if (NodeList[n].Name == "Root")
                    {
                        RootNode = NodeList[n];
                    }
                    else if (NodeList[n].Name == "表情")
                    {
                        ExpNode = NodeList[n];
                    }
                }
            }
            count             = pmx.BodyList.Count;
            BodyList.Capacity = count;
            for (int num = 0; num < count; num++)
            {
                BodyList.Add(pmx.BodyList[num].Clone());
            }
            count = pmx.JointList.Count;
            JointList.Capacity = count;
            for (int num2 = 0; num2 < count; num2++)
            {
                JointList.Add(pmx.JointList[num2].Clone());
            }
            count = pmx.SoftBodyList.Count;
            SoftBodyList.Capacity = count;
            for (int num3 = 0; num3 < count; num3++)
            {
                SoftBodyList.Add(pmx.SoftBodyList[num3].Clone());
            }
        }
示例#29
0
        private ImportedMaterial ConvertMaterial(Material mat)
        {
            ImportedMaterial iMat;

            if (mat != null)
            {
                iMat = ImportedHelpers.FindMaterial(mat.m_Name, MaterialList);
                if (iMat != null)
                {
                    return(iMat);
                }
                iMat      = new ImportedMaterial();
                iMat.Name = mat.m_Name;
                foreach (var col in mat.m_Colors)
                {
                    var color = new Color4(col.second[0], col.second[1], col.second[2], col.second[3]);
                    switch (col.first)
                    {
                    case "_Color":
                        iMat.Diffuse = color;
                        break;

                    case "_SColor":
                        iMat.Ambient = color;
                        break;

                    case "_EmissionColor":
                        iMat.Emissive = color;
                        break;

                    case "_SpecColor":
                        iMat.Specular = color;
                        break;

                    case "_RimColor":
                    case "_OutlineColor":
                    case "_ShadowColor":
                        break;
                    }
                }

                foreach (var flt in mat.m_Floats)
                {
                    switch (flt.first)
                    {
                    case "_Shininess":
                        iMat.Power = flt.second;
                        break;

                    case "_RimPower":
                    case "_Outline":
                        break;
                    }
                }

                //textures
                iMat.Textures   = new string[5];
                iMat.TexOffsets = new Vector2[5];
                iMat.TexScales  = new Vector2[5];
                foreach (var texEnv in mat.m_TexEnvs)
                {
                    Texture2D tex2D = null;
                    if (assetsfileList.TryGetPD(texEnv.m_Texture, out var TexturePD) && TexturePD.Type == ClassIDReference.Texture2D)//TODO other Texture
                    {
                        tex2D = new Texture2D(TexturePD, true);
                    }

                    if (tex2D == null)
                    {
                        continue;
                    }
                    int dest = texEnv.name == "_MainTex" ? 0 : texEnv.name == "_BumpMap" ? 4 : texEnv.name.Contains("Spec") ? 2 : texEnv.name.Contains("Norm") ? 3 : -1;
                    if (dest < 0 || iMat.Textures[dest] != null)
                    {
                        continue;
                    }
                    iMat.Textures[dest]   = TexturePD.Text + ".png";
                    iMat.TexOffsets[dest] = new Vector2(texEnv.m_Offset[0], texEnv.m_Offset[1]);
                    iMat.TexScales[dest]  = new Vector2(texEnv.m_Scale[0], texEnv.m_Scale[1]);
                    ConvertTexture2D(tex2D, iMat.Textures[dest]);
                }

                MaterialList.Add(iMat);
            }
            else
            {
                iMat = new ImportedMaterial();
            }
            return(iMat);
        }
示例#30
0
        public xxParser(Stream stream)
        {
            using (BinaryReader reader = new BinaryReader(stream))
            {
                this.reader = reader;

                Format = 0;
                byte[] formatBuf = reader.ReadBytes(5);
                if ((formatBuf[0] >= 0x01) && (BitConverter.ToInt32(formatBuf, 1) == 0))
                {
                    Format = BitConverter.ToInt32(formatBuf, 0);
                }
                else
                {
                    uint id = BitConverter.ToUInt32(formatBuf, 0);
                    if ((id == 0x3F8F5C29) || (id == 0x3F90A3D7) || (id == 0x3F91EB85) || (id == 0x3F933333) ||
                        (id == 0x3F947AE1) || (id == 0x3F95C28F) || (id == 0x3F970A3D) || (id == 0x3F99999A) ||
                        (id == 0x3FA66666) || (id == 0x3FB33333))
                    {
                        Format = -1;
                    }
                }

                byte[] headerBuf;
                int    headerBufLen;
                if (Format >= 1)
                {
                    headerBufLen = 26;
                }
                else
                {
                    headerBufLen = 21;
                }
                headerBuf = new byte[headerBufLen];
                formatBuf.CopyTo(headerBuf, 0);
                reader.ReadBytes(headerBufLen - formatBuf.Length).CopyTo(headerBuf, formatBuf.Length);
                Header = headerBuf;

                this.Frame = ParseFrame();

                this.MaterialSectionUnknown = reader.ReadBytes(4);
                int numMaterials = reader.ReadInt32();
                this.MaterialList = new List <xxMaterial>(numMaterials);
                for (int i = 0; i < numMaterials; i++)
                {
                    MaterialList.Add(ParseMaterial());
                }

                int numTextures = reader.ReadInt32();
                this.TextureList = new List <xxTexture>(numTextures);
                for (int i = 0; i < numTextures; i++)
                {
                    TextureList.Add(ParseTexture());
                }

                if (Format >= 2)
                {
                    Footer = reader.ReadBytes(10);
                }

                if (reader.ReadBytes(1).Length > 0)
                {
                    throw new Exception("Parsing " + Name + " finished before the end of the file");
                }

                this.reader = null;
            }
        }