Beispiel #1
0
        internal void Initialize(MainModule mainModule, RenderingModule renderingModule, MaterialModule materialModule)
        {
            _mainModule      = mainModule;
            _renderingModule = renderingModule;
            _materialModule  = materialModule;

            _mesh           = new Mesh();
            _mesh.hideFlags = HideFlags.HideAndDontSave;

            _maskBefore = CreateMaskObject(isBeforeMask: true);
            _maskAfter  = CreateMaskObject(isBeforeMask: false);

            SetupMesh();

#if !UNITY_EDITOR
            SetupMaterials();

            _maskBefore.gameObject.SetActive(_isActive);
            _maskAfter.gameObject.SetActive(_isActive);
#endif

#if UNITY_EDITOR
            _materialModule.OnRenderQueueChange += UpdateSortingProperties;
#endif

            _mainModule.OnGameobjectLayerChange += UpdateMaskObjectsLayers;
        }
Beispiel #2
0
        void ParseContent(string c)
        {
            UnityAction <string, string> PrintConsole = (content, info) => {
                var s = content + "\n" + info + "\n";
                m_page.content.text += s;
            };
            var text = m_page.input.text;

            string[] split = text.Split(',');
            switch (split[0])
            {
            case "AddCurrency":
                /// Add Currency
                if (split.Length != 2)
                {
                    PrintConsole(c, "Input Error");
                    break;
                }
                var value = Utility.TryParseInt(split[1]);
                PlayerManager.Instance.AddCurrency_Current(value);
                break;

            case "AddMaterial":
                if (split.Length != 3)
                {
                    PrintConsole(c, "Input Error");
                    break;
                }
                var materialID = Utility.TryParseInt(split[1]);
                if (MaterialModule.GetMaterialByMaterialID(materialID) == null)
                {
                    PrintConsole(c, "MaterialID Not Found!");
                    break;
                }
                var valueMa = Utility.TryParseInt(split[2]);
                PlayerManager.Instance.AddMaterialData(materialID, (ushort)valueMa);
                break;

            case "ShowEvent":
                if (split.Length != 2)
                {
                    PrintConsole(c, "Input Error");
                    break;
                }
                var EventID = Utility.TryParseInt(split[1]);
                if (ExploreModule.GetExploreEventDataByKey(EventID) == null)
                {
                    PrintConsole(c, "EventID Not Found!");
                    break;
                }
                UIGuide.Instance.ShowRandomEventDialog(EventID, 0, 0, 0);
                break;
            }
        }
Beispiel #3
0
 public void SetMaterialData(Material ma, int amount = 1)
 {
     this.Amount = amount;
     if (amount == 0)
     {
         //destory
         Destroy(this.gameObject);
     }
     ItemImage.sprite = MaterialModule.GetMaterialSprite(ma.MaterialID);
     transform.Find("AmountBG/Amount").GetComponent <Text>().text = amount.ToString();
 }
        /// <summary>
        /// 方法说明:获取下层PBOM
        /// 作    者:jason.tang
        /// 完成时间:2013-08-30
        /// </summary>
        /// <param name="parentNode">父节点</param>
        /// <param name="childId">子节点ID</param>
        private void ShowPbomChildNode(TreeNode parentNode, string childId)
        {
            //根据物料类型查找物料分类
            List <Model.MaterialVersionModule> versionModuleList
                = MaterialModuleBLL.GetChildPbomMaterialByPbomId(childId);

            if (versionModuleList.Count > 0)
            {
                versionModuleList.ForEach((v) =>
                {
                    TreeNode nod       = new TreeNode();
                    MaterialModule mod = new MaterialModule();
                    mod.code           = v.Code;
                    mod.name           = v.Name;
                    mod.materialverid  = v.MaterialVerId;
                    mod.baseid         = v.BaseId;
                    mod.productname    = v.ProductId;
                    mod.pbomid         = v.ChildId;

                    nod.Text = string.Format("{0}({1})", v.Name, v.Code);
                    //nod.Tag = v;
                    nod.Tag      = mod;
                    nod.Name     = v.ChildId;
                    nod.ImageKey = "materialC";

                    ShowPbomChildNode(nod, v.ChildId);

                    List <Model.ProcessCard> materialCardRelations =
                        MaterialCardRelationBLL.GetProcessCardByMaterialId(v.BaseId, 2);

                    if (materialCardRelations.Count > 0)
                    {
                        materialCardRelations.ForEach((m) =>
                        {
                            TreeNode nd = new TreeNode();
                            nd.Text     = m.Name;
                            nd.Tag      = m.ID;
                            nd.Name     = m.ID.ToString();
                            nd.ImageKey = "card";

                            nod.Nodes.Add(nd);
                            nod.ImageKey = "materialCard";
                        });
                    }

                    parentNode.Nodes.Add(nod);
                    if (nod.ImageKey == "materialCard")
                    {
                        parentNode.ImageKey = nod.ImageKey;
                    }
                });
            }
        }
        /// <summary>
        /// 方法说明:根据MaterialId和ProcessCardId删除物料下的卡片
        /// 作      者:jason.tang
        /// 完成时间:2013-08-10
        /// </summary>
        /// <param name="Id">业务ID</param>
        private void RemoveTreeNode(TreeNode currentNode)
        {
            if (currentNode == null || currentNode.Parent.Tag == null)
            {
                return;
            }

            string processCardId = currentNode.Tag.ToString();

            MaterialModule materialModule = (MaterialModule)currentNode.Parent.Tag;
            string         materialId     = materialModule.baseid;

            TreeView treeView = new TreeView();
            int      type     = 1;

            if (tcDesignView.SelectedTab == tbMaterial)
            {
                treeView = tvMaterialDesign;
            }
            else
            {
                treeView = tvMaterialPBom;
                type     = 2;
            }

            bool result = MaterialCardRelationBLL.DeleteMaterialCard(materialId, processCardId, type);

            if (result)
            {
                if (!string.IsNullOrEmpty(currentNode.Parent.ImageKey))
                {
                    //tvMaterialDesign.SelectedNode = currentNode.Parent;
                    //tvMaterialDesign.SelectedImageKey = currentNode.Parent.ImageKey;
                    treeView.SelectedNode     = currentNode.Parent;
                    treeView.SelectedImageKey = currentNode.Parent.ImageKey;
                }
                else
                {
                    //tvMaterialDesign.SelectedNode = tvMaterialDesign.Nodes[0];
                    /////  如果选中的节点为空,默认为卡片
                    //tvMaterialDesign.SelectedImageKey = tvMaterialDesign.Nodes[0].ImageKey;
                    treeView.SelectedNode     = tvMaterialDesign.Nodes[0];
                    treeView.SelectedImageKey = tvMaterialDesign.Nodes[0].ImageKey;
                }

                //Remove treeview
                //tvMaterialDesign.Nodes.Remove(currentNode);
                //tvMaterialDesign.SelectedNode.Expand();
                treeView.Nodes.Remove(currentNode);
                treeView.SelectedNode.Expand();
            }
        }
Beispiel #6
0
        private Material GetRailMaterial()
        {
            StandardMaterial mat = MaterialModule.GetRailBase().Clone();

            this.railTextures.Apply(mat);
            foreach (MaterialModifier mod in this.materialModifiers[SniperMaterial.Rail])
            {
                mod(mat);
            }

            SniperMain.AddMaterial(mat, String.Format("{0} {1}", this.name, "Railgun"));
            return(mat.material);
        }
Beispiel #7
0
        private Material GetThrowKnifeMaterial()
        {
            StandardMaterial mat = MaterialModule.GetThrowKnifeBase().Clone();

            this.throwKnifeTextures.Apply(mat);
            foreach (MaterialModifier mod in this.materialModifiers[SniperMaterial.ThrowKnife])
            {
                mod(mat);
            }

            SniperMain.AddMaterial(mat, String.Format("{0} {1}", this.name, "ThrowKnife"));
            return(mat.material);
        }
Beispiel #8
0
        private Material GetEmissiveMaterial()
        {
            StandardMaterial mat = MaterialModule.CreateSniperBase().Clone();

            this.sniperTextures.Apply(mat);
            foreach (MaterialModifier mod in this.materialModifiers[SniperMaterial.Emissive])
            {
                mod(mat);
            }

            SniperMain.AddMaterial(mat, String.Format("{0} {1}", this.name, "Emissive"));
            return(mat.material);
        }
Beispiel #9
0
        private Material GetKnifeMaterial()
        {
            // FUTURE: Knife base material
            StandardMaterial mat = MaterialModule.CreateSniperBase().Clone();

            this.knifeTextures.Apply(mat);
            foreach (MaterialModifier mod in this.materialModifiers[SniperMaterial.Knife])
            {
                mod(mat);
            }

            SniperMain.AddMaterial(mat, String.Format("{0} {1}", this.name, "Knife"));
            return(mat.material);
        }
Beispiel #10
0
        public void ShouldGetMaterial()
        {
            MockedDatabase <Material> database;
            MaterialModule            module;
            Material result;

            database = new MockedDatabase <Material>(false, 1, (t) => new Material()
            {
                MaterialID = t
            });
            module = new MaterialModule(NullLogger.Instance, database);
            result = module.GetMaterial(1);
            Assert.IsNotNull(result);
            Assert.AreEqual(0, result.MaterialID);
        }
        /// <summary>
        /// 材料定额
        /// </summary>
        private void tsmnuMaterialQuota_Click(object sender, EventArgs e)
        {
            object obj = tvMaterialDesign.SelectedNode.Tag;

            if (obj == null)
            {
                return;
            }
            using (MaterialQuotaToolFrm form = new MaterialQuotaToolFrm())
            {
                MaterialModule materia = (MaterialModule)obj;
                form.MaterialVerId = materia.materialverid;
                form.ShowDialog();
            }
        }
Beispiel #12
0
        public void ShouldCreateMaterial()
        {
            MockedDatabase <Material> database;
            MaterialModule            module;
            Material result;

            database = new MockedDatabase <Material>(false, 1, (t) => new Material()
            {
                MaterialID = t
            });
            module = new MaterialModule(NullLogger.Instance, database);
            result = module.CreateMaterial(BuildingTypeIDs.Forest, ResourceTypeIDs.Wood, 1);
            Assert.IsNotNull(result);
            Assert.AreEqual(ResourceTypeIDs.Wood, result.ResourceTypeID);
            Assert.AreEqual(1, database.InsertedCount);
        }
Beispiel #13
0
        public void ShouldNotGetMaterialsAndLogError()
        {
            MockedDatabase <Material> database;
            MaterialModule            module;
            MemoryLogger logger;


            logger   = new MemoryLogger();
            database = new MockedDatabase <Material>(true, 3, (t) => new Material()
            {
                MaterialID = t
            });
            module = new MaterialModule(logger, database);
            Assert.ThrowsException <PIODataException>(() => module.GetMaterials(BuildingTypeIDs.Sawmill));
            Assert.IsNotNull(logger.Logs.FirstOrDefault(item => (item.Level == LogLevels.Error) && (item.ComponentName == module.ModuleName)));
        }
Beispiel #14
0
        public void ShouldNotCreateMaterialAndLogError()
        {
            MockedDatabase <Material> database;
            MaterialModule            module;
            MemoryLogger logger;


            logger   = new MemoryLogger();
            database = new MockedDatabase <Material>(true, 1, (t) => new Material()
            {
                MaterialID = t
            });
            module = new MaterialModule(logger, database);
            Assert.ThrowsException <PIODataException>(() => module.CreateMaterial(BuildingTypeIDs.Forest, ResourceTypeIDs.Wood, 1));
            Assert.IsNotNull(logger.Logs.FirstOrDefault(item => (item.Level == LogLevels.Error) && (item.ComponentName == module.ModuleName)));
            Assert.AreEqual(0, database.InsertedCount);
        }
Beispiel #15
0
        public void ShouldGetMaterials()
        {
            MockedDatabase <Material> database;
            MaterialModule            module;

            Material[] results;

            database = new MockedDatabase <Material>(false, 3, (t) => new Material()
            {
                MaterialID = t, BuildingTypeID = BuildingTypeIDs.Sawmill
            });
            module  = new MaterialModule(NullLogger.Instance, database);
            results = module.GetMaterials(BuildingTypeIDs.Sawmill);
            Assert.IsNotNull(results);
            Assert.AreEqual(3, results.Length);
            for (int t = 0; t < 3; t++)
            {
                Assert.IsNotNull(results[t]);
                Assert.AreEqual(t, results[t].MaterialID);
                Assert.AreEqual(BuildingTypeIDs.Sawmill, results[t].BuildingTypeID);
            }
        }
Beispiel #16
0
        private static ParticleSystemRenderer BurnRenderer(this ParticleSystemRenderer psr)
        {
            psr.renderMode                 = ParticleSystemRenderMode.Mesh;
            psr.mesh                       = AssetsCore.LoadAsset <Mesh>(MeshIndex.Quad);
            psr.material                   = MaterialModule.GetPlasmaBurnMaterial().material;
            psr.trailMaterial              = null;
            psr.sortMode                   = ParticleSystemSortMode.None;
            psr.sortingFudge               = 0;
            psr.alignment                  = ParticleSystemRenderSpace.Local;
            psr.flip                       = Vector3.zero;
            psr.enableGPUInstancing        = true;
            psr.pivot                      = Vector3.zero;
            psr.maskInteraction            = SpriteMaskInteraction.None;
            psr.shadowCastingMode          = UnityEngine.Rendering.ShadowCastingMode.Off;
            psr.receiveShadows             = false;
            psr.motionVectorGenerationMode = MotionVectorGenerationMode.Object;
            psr.sortingLayerID             = LayerIndex.defaultLayer.intVal;
            psr.sortingOrder               = 0;
            psr.lightProbeUsage            = UnityEngine.Rendering.LightProbeUsage.Off;
            psr.reflectionProbeUsage       = UnityEngine.Rendering.ReflectionProbeUsage.Off;

            return(psr);
        }
Beispiel #17
0
        internal void CreateAndAddSkin(CharacterModel model, String nameToken, String unlockableName, Sprite icon)
        {
            var rampTex = this.knifeTrail.OutputTextureAndDispose();

            using (var skin = Skin.Create(model))
            {
                var snipermeshInd   = -1;
                var throwkinfeInd   = -1;
                var knifeInd        = -1;
                var railgunInd      = -1;
                var gaussgunInd     = -1;
                var ammomeshInd     = -1;
                var armormeshInd    = -1;
                var bodymeshInd     = -1;
                var cloakmeshInd    = -1;
                var emismeshInd     = -1;
                var classicRifleInd = -1;
                var classicMeshInd  = -1;

                CharacterModel.RendererInfo[] rendInfos = skin.rendererInfos;
                for (Int32 i = 0; i < rendInfos.Length; ++i)
                {
                    CharacterModel.RendererInfo info = rendInfos[i];
                    Renderer smr = info.renderer;
                    switch (smr.name)
                    {
                    default:
#if ASSERT
                        Log.Warning(String.Format("{0} is not a handled renderer name", smr.name));
#endif
                        info.defaultMaterial = null;
                        break;

                    case "SniperMesh":
                        info.defaultMaterial = null;
                        snipermeshInd        = i;
                        break;

                    case "ThrowKnife":
                        info.defaultMaterial = this.throwknifeMat;
                        throwkinfeInd        = i;
                        break;

                    case "Knife":
                        info.defaultMaterial = this.isTrash ? null : this.knifeMat;
                        knifeInd             = i;
                        break;

                    case "RailGun":
                        info.defaultMaterial = this.isTrash ? null : this.railMat;
                        railgunInd           = i;
                        break;

                    case "GaussGun":
                        info.defaultMaterial = null;
                        gaussgunInd          = i;
                        break;

                    case "AmmoMesh":
                        info.defaultMaterial = this.isTrash ? null : this.ammoMat;
                        ammomeshInd          = i;
                        break;

                    case "ArmorMesh":
                        info.defaultMaterial = this.isTrash ? null : this.armorMat;
                        armormeshInd         = i;
                        break;

                    case "BodyMesh":
                        info.defaultMaterial = this.isTrash ? null : this.bodyMat;
                        bodymeshInd          = i;
                        break;

                    case "CloakMesh":
                        info.defaultMaterial = this.isTrash ? null : this.cloakMat;
                        cloakmeshInd         = i;
                        break;

                    case "EmissionMesh":
                        info.defaultMaterial = this.isTrash ? null : this.emisMat;
                        emismeshInd          = i;
                        break;

                    case "ClassicRifle":
                        info.defaultMaterial = !this.isTrash ? null : this.railMat;
                        classicRifleInd      = i;
                        break;

                    case "ClassicMesh":
                        info.defaultMaterial = !this.isTrash ? null : this.armorMat;
                        classicMeshInd       = i;
                        break;
                    }
                    rendInfos[i] = info;
                }
                skin.rendererInfos = rendInfos;



                skin.projectileGhostReplacements = new[]
                {
                    new SkinDef.ProjectileGhostReplacement
                    {
                        projectilePrefab = ProjectileModule.GetKnifeProjectile(),
                        projectileGhostReplacementPrefab = ProjectileGhostModule.GetKnifeGhost(this.throwknifeMat, MaterialModule.GetKnifeTrailMaterial(rampTex).material),
                    },
                };

                if (this.isTrash)
                {
                    skin.gameObjectActivations = new[]
                    {
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = false,
                            gameObject     = rendInfos[armormeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = false,
                            gameObject     = rendInfos[ammomeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = false,
                            gameObject     = rendInfos[bodymeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = false,
                            gameObject     = rendInfos[cloakmeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = false,
                            gameObject     = rendInfos[emismeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = false,
                            gameObject     = rendInfos[railgunInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = false,
                            gameObject     = rendInfos[knifeInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = true,
                            gameObject     = rendInfos[classicMeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = true,
                            gameObject     = rendInfos[classicRifleInd].renderer.gameObject,
                        }
                    };
                }
                else
                {
                    skin.gameObjectActivations = new[]
                    {
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = true,
                            gameObject     = rendInfos[armormeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = true,
                            gameObject     = rendInfos[ammomeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = true,
                            gameObject     = rendInfos[bodymeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = true,
                            gameObject     = rendInfos[cloakmeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = true,
                            gameObject     = rendInfos[emismeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = true,
                            gameObject     = rendInfos[railgunInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = true,
                            gameObject     = rendInfos[knifeInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = false,
                            gameObject     = rendInfos[classicMeshInd].renderer.gameObject,
                        },
                        new SkinDef.GameObjectActivation
                        {
                            shouldActivate = false,
                            gameObject     = rendInfos[classicRifleInd].renderer.gameObject,
                        }
                    };
                }

                skin.icon           = icon;
                skin.nameToken      = nameToken;
                skin.unlockableName = unlockableName;
            }

            var index    = model.GetComponent <ModelSkinController>().skins.Length - 1;
            var material = MaterialModule.GetSlashMaterial(rampTex);

            VFXModule.AddKnifePickupSlash((UInt32)index, material);
        }
Beispiel #18
0
        internal static GameObject CreatePlasmaAmmoTracer()
        {
            GameObject obj = CreateBaseAmmoTracer(MaterialModule.GetPlasmaTracerMaterial().material, MaterialModule.GetPlasmaTracerTrailMaterial().material);

            return(obj);
        }
Beispiel #19
0
        internal static GameObject CreateScatterAmmoTracer()
        {
            GameObject obj = CreateSmallAmmoTracer(MaterialModule.GetScatterTracerMaterial().material, MaterialModule.GetScatterTracerTrailMaterial().material);

            return(obj);
        }
        /// <summary>
        /// 方法说明:根据根节点加载子节点
        /// 作    者:jason.tang
        /// 完成时间:2013-03-05
        /// </summary>
        /// <param name="parentNode"></param>
        private void LoadPbomChildNode(string categoryid, string code)
        {
            //查找根节点(物料)下的子节点
            materialModuleList = MaterialModuleBLL.GetMaterialModuleListByCategoryId(CategoryTypeIds[0], CategoryTypeIds[1]);

            if (materialModuleList.Count <= 0)
            {
                return;
            }


            List <string> listBaseIds = new List <string>();

            foreach (MaterialModule material in materialModuleList)
            {
                listBaseIds.Add(string.Format("'{0}'", material.baseid));
            }
            string            baseIds        = string.Join(",", listBaseIds.ToArray());
            List <PBomModule> pbomModuleList = MaterialModuleBLL.GetPBomModuleListByBaseId(baseIds);

            if (pbomModuleList.Count <= 0)
            {
                return;
            }

            pbomModuleList.ForEach((o) =>
            {
                TreeNode node = new TreeNode();
                node.Text     = o.FolderName;
                node.Tag      = o.VerId;
                node.Name     = o.VerId;
                node.ImageKey = "materialG";

                node.ExpandAll();

                //根据物料类型查找物料分类
                List <Model.MaterialVersionModule> versionModuleList
                    = MaterialModuleBLL.GetChildPbomMaterialByPbomId(o.VerId);

                if (versionModuleList.Count > 0)
                {
                    versionModuleList.ForEach((v) =>
                    {
                        TreeNode nod       = new TreeNode();
                        MaterialModule mod = new MaterialModule();
                        mod.code           = v.Code;
                        mod.name           = v.Name;
                        mod.materialverid  = v.MaterialVerId;
                        mod.baseid         = v.BaseId;
                        mod.productname    = v.ProductId;
                        mod.pbomid         = v.ChildId;

                        nod.Text = string.Format("{0}({1})", v.Name, v.Code);
                        //nod.Tag = v;
                        nod.Tag      = mod;
                        nod.Name     = v.ChildId;
                        nod.ImageKey = "materialC";

                        ShowPbomChildNode(nod, v.ChildId);

                        List <Model.ProcessCard> materialCardRelations =
                            MaterialCardRelationBLL.GetProcessCardByMaterialId(v.BaseId, 2);

                        if (materialCardRelations.Count > 0)
                        {
                            materialCardRelations.ForEach((m) =>
                            {
                                TreeNode nd = new TreeNode();
                                nd.Text     = m.Name;
                                nd.Tag      = m.ID;
                                nd.Name     = m.ID.ToString();
                                nd.ImageKey = "card";

                                nod.Nodes.Add(nd);
                                nod.ImageKey = "materialCard";
                            });
                        }

                        node.Nodes.Add(nod);
                        if (nod.ImageKey == "materialCard")
                        {
                            node.ImageKey = nod.ImageKey;
                        }
                    });
                }

                ////if (versionModuleList.Count > 0)
                ////{
                ////    versionModuleList.ForEach((v) =>
                ////    {
                ////        TreeNode nod = new TreeNode();
                ////        MaterialModule mod = new MaterialModule();
                ////        mod.code = v.Code;
                ////        mod.name = v.Name;
                ////        mod.materialverid = v.MaterialVerId;
                ////        mod.baseid = v.BaseId;
                ////        mod.productname = v.ProductId;

                ////        nod.Text = string.Format("{0}({1})", v.Code, v.Name);
                ////        //nod.Tag = v;
                ////        nod.Tag = mod;
                ////        nod.Name = v.BaseId;
                ////        nod.ImageKey = "materialC";

                ////        List<Model.ProcessCard> materialCardRelations =
                ////            MaterialCardRelationBLL.GetProcessCardByMaterialId(v.BaseId, 2);

                ////        if (materialCardRelations.Count > 0)
                ////        {
                ////            materialCardRelations.ForEach((m) =>
                ////            {
                ////                TreeNode nd = new TreeNode();
                ////                nd.Text = m.Name;
                ////                nd.Tag = m.ID;
                ////                nd.Name = m.ID.ToString();
                ////                nd.ImageKey = "card";

                ////                nod.Nodes.Add(nd);
                ////            });
                ////        }

                ////        node.Nodes.Add(nod);
                ////    });
                ////}

                tvMaterialPBom.Nodes.Add(node);
            });
        }
Beispiel #21
0
        /// <summary>
        /// 方法说明:增加关系对象记录
        /// 作    者:jason.tang
        /// 完成时间:2013-09-17
        /// </summary>
        /// <param name="verId">版本ID</param>
        /// <returns></returns>
        private static bool AddRelationObject(string verId, MaterialModule materialModule, string pbomid)
        {
            string materialVerId  = string.Empty;
            string materialBaseId = string.Empty;
            string routingId      = string.Empty;

            if (materialModule != null)
            {
                materialVerId  = materialModule.materialverid;
                materialBaseId = materialModule.baseid;
                if (string.IsNullOrEmpty(pbomid))
                {
                    pbomid = materialModule.pbomid;
                }
            }

            if (!string.IsNullOrEmpty(pbomid))
            {
                DataSet ds = MaterialModuleDAL.GetRoutingByPBomId(pbomid);
                if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
                {
                    return(false);
                }

                routingId = ds.Tables[0].Rows[0]["RoutingId"].ToString();
            }

            string strsql = @"
                            INSERT INTO [PLM].[dbo].[SYS_RelationObject]
                                   ([KeyId]
                                   ,[SrcObjectType]
                                   ,[SrcObjectId]
                                   ,[DesObjectType]
                                   ,[DesObjectId]
                                   ,[RelationType]
                                   ,[OriginalVerId]
                                   ,[OriginalMode]
                                   ,[SrcBasetId]
                                   ,[DesBasetId])
                             VALUES
                                   (@KeyId
                                   ,@SrcObjectType
                                   ,@SrcObjectId
                                   ,@DesObjectType
                                   ,@DesObjectId
                                   ,0
                                   ,null
                                   ,0
                                   ,@SrcBasetId
                                   ,@DesBasetId)
                            ";

            using (DbCommand cmd = db.GetSqlStringCommand(strsql))
            {
                Guid id = Guid.NewGuid();
                db.AddInParameter(cmd, "@KeyId", DbType.Guid, id);
                db.AddInParameter(cmd, "@SrcObjectType", DbType.Int32, 30);
                db.AddInParameter(cmd, "@DesObjectType", DbType.Int32, 30);
                if (!string.IsNullOrEmpty(routingId))
                {
                    db.AddInParameter(cmd, "@SrcObjectId", DbType.String, routingId);
                    db.AddInParameter(cmd, "@SrcBasetId", DbType.String, routingId);
                }
                else
                {
                    db.AddInParameter(cmd, "@SrcObjectId", DbType.String, materialVerId);
                    db.AddInParameter(cmd, "@SrcBasetId", DbType.String, materialBaseId);
                }
                db.AddInParameter(cmd, "@DesObjectId", DbType.String, verId);
                db.AddInParameter(cmd, "@DesBasetId", DbType.String, verId);

                return(db.ExecuteNonQuery(cmd) > 0);
            }
        }
Beispiel #22
0
        internal static GameObject CreateExplosiveAmmoTracer()
        {
            GameObject obj = CreateBaseAmmoTracer(MaterialModule.GetExplosiveTracerMaterial().material, MaterialModule.GetExplosiveTracerTrailMaterial().material);

            return(obj);
        }
Beispiel #23
0
        /// <summary>
        /// 方法说明:卡片版本新增
        /// 作    者:jason.tang
        /// 完成时间:2013-08-23
        /// </summary>
        /// <param name="version">卡片版本实体</param>
        /// <returns>True/False</returns>
        public static bool AddProcessVersion(ProcessVersion version, object material)
        {
            bool result = false;

            string strsql = @"INSERT INTO [PP_PCVersion]
                                           ([VerId]
                                           ,[BaseId]
                                           ,[VerCode]
                                           ,[VerName]
                                           ,[Code]
                                           ,[Name]
                                           ,[CategoryId]
                                           ,[MajorVer]
                                           ,[MinorVer]
                                           ,[State]
                                           ,[Creator]
                                           ,[CreateDate]
                                           ,[Updater]
                                           ,[UpdateDate]
                                           ,[CheckOutPerson]
                                           ,[CheckOutDate]
                                           ,[ArchiveDate]
                                           ,[ReleaseDate]
                                           ,[Remark]
                                           ,[IsChange]
                                           ,[IsEffective]
                                           ,[IsInFlow]
                                           ,[IsShow]
                                           ,[FolderId]
                                           ,[ObjectStatePath]
                                           ,[ObjectIconPath])
                                     VALUES
                                           (@VerId,
                                           @BaseId,
                                           @VerCode,
                                           @VerName,
                                           @Code,
                                           @Name,
                                           @CategoryId,
                                           @MajorVer,
                                           @MinorVer,
                                           @State,
                                           @Creator,
                                           @CreateDate,
                                           @Updater,
                                           @UpdateDate,
                                           @CheckOutPerson,
                                           @CheckOutDate,
                                           @ArchiveDate,
                                           @ReleaseDate,
                                           @Remark,
                                           @IsChange,
                                           @IsEffective,
                                           @IsInFlow,
                                           @IsShow,
                                           @FolderId,
                                           @ObjectStatePath,
                                           @ObjectIconPath)";

            using (DbCommand cmd = db.GetSqlStringCommand(strsql))
            {
                string categroyId = GetCategroyByFolderId(version.FolderId);
                if (string.IsNullOrEmpty(categroyId))
                {
                    categroyId = "ceff050d-31bd-47dd-b282-3a68729db064";
                }
                string code = GetCode(version.Code, version.Name);

                Guid id = Guid.NewGuid();
                db.AddInParameter(cmd, "@VerId", DbType.Guid, id);
                db.AddInParameter(cmd, "@BaseId", DbType.String, version.BaseId);
                db.AddInParameter(cmd, "@VerCode", DbType.String, version.VerCode);
                db.AddInParameter(cmd, "@VerName", DbType.String, version.VerName);
                db.AddInParameter(cmd, "@Code", DbType.String, code);
                db.AddInParameter(cmd, "@Name", DbType.String, version.Name);
                db.AddInParameter(cmd, "@CategoryId", DbType.String, categroyId);
                db.AddInParameter(cmd, "@MajorVer", DbType.Int32, version.MajorVer);
                db.AddInParameter(cmd, "@MinorVer", DbType.Int32, version.MinorVer);
                db.AddInParameter(cmd, "@State", DbType.Int32, version.State);
                db.AddInParameter(cmd, "@Creator", DbType.String, version.Creator);
                db.AddInParameter(cmd, "@CreateDate", DbType.String, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
                db.AddInParameter(cmd, "@Updater", DbType.String, version.Updater);
                db.AddInParameter(cmd, "@UpdateDate", DbType.String, version.UpdateDate);
                db.AddInParameter(cmd, "@CheckOutPerson", DbType.String, version.CheckOutPerson);
                db.AddInParameter(cmd, "@CheckOutDate", DbType.String, version.CheckOutDate);
                db.AddInParameter(cmd, "@ArchiveDate", DbType.String, version.ArchiveDate);
                db.AddInParameter(cmd, "@ReleaseDate", DbType.String, version.ReleaseDate);
                db.AddInParameter(cmd, "@Remark", DbType.String, version.Remark);
                db.AddInParameter(cmd, "@IsChange", DbType.Boolean, version.IsChange);
                db.AddInParameter(cmd, "@IsEffective", DbType.Boolean, true);
                db.AddInParameter(cmd, "@IsInFlow", DbType.Boolean, version.IsInFlow);
                db.AddInParameter(cmd, "@IsShow", DbType.Int32, version.IsShow);
                db.AddInParameter(cmd, "@FolderId", DbType.String, version.FolderId);
                db.AddInParameter(cmd, "@ObjectStatePath", DbType.String, "../skins/ObjectState/2.gif");
                db.AddInParameter(cmd, "@ObjectIconPath", DbType.String, "../skins/ObjectIcon/materialCard.PNG");


                if (db.ExecuteNonQuery(cmd) > 0)
                {
                    AddFolderRelation(version.BaseId, version.FolderId);

                    if (material != null)
                    {
                        MaterialModule materialModule = null;
                        string         pbomId         = string.Empty;
                        if (material.GetType() == typeof(MaterialModule))
                        {
                            materialModule = (MaterialModule)material;
                        }
                        else if (material.GetType() == typeof(String))
                        {
                            pbomId = material.ToString();
                        }
                        AddRelationObject(id.ToString(), materialModule, pbomId);
                    }
                    result = true;
                }
            }

            return(result);
        }
        internal static GameObject CreateStandardAmmoTracer()
        {
            GameObject obj = CreateBaseAmmoTracer(MaterialModule.GetStandardTracerMaterial().material, MaterialModule.GetStandardTracerTrailMaterial().material);

            return(obj);
        }
Beispiel #25
0
        static void Main(string[] args)
        {
            ILogger logger;
            VersionControlModule versionControlModule;
            ServiceHostModule    pioServiceHostModule;
            ServiceHostModule    taskCallbackServiceHostModule;
            SchedulerModule      schedulerModule;

            IPIOService          pioService;
            ITaskCallbackService taskCallbackService;
            IDatabase            database;
            IConnectionFactory   connectionFactory;
            ICommandBuilder      commandBuilder;
            IDatabaseCreator     databaseCreator;

            IPlanetGeneratorModule planetGeneratorModule;

            IPhraseModule       phraseModule;
            IPlanetModule       planetModule;
            ICellModule         cellModule;
            IBuildingModule     buildingModule;
            IWorkerModule       workerModule;
            IBuilderModule      factoryBuilderModule;
            IStackModule        stackModule;
            IResourceTypeModule resourceTypeModule;
            IBuildingTypeModule buildingTypeModule;
            ITaskTypeModule     taskTypeModule;
            IMaterialModule     materialModule;
            IIngredientModule   ingredientModule;
            IProductModule      productModule;
            ITaskModule         taskModule;

            IIdlerModule           idlerModule;
            IResourceCheckerModule resourceCheckerModule;
            ILocationCheckerModule locationCheckerModule;
            IProducerModule        producerModule;
            IHarvesterModule       harvesterModule;
            IMoverModule           moverModule;
            ITakerModule           takerModule;
            IStorerModule          storerModule;

            quitEvent = new AutoResetEvent(false);
            Console.CancelKeyPress += new ConsoleCancelEventHandler(Console_CancelKeyPress);

            //logger = new ConsoleLogger(new DefaultLogFormatter());
            logger = new UnicastLogger(IPAddress.Loopback, Properties.Settings.Default.UnicastPort);
            //logger = new FileLogger(new DefaultLogFormatter(), "PIO.ServerHost.Log");

            databaseCreator   = new SqlDatabaseCreator(Properties.Settings.Default.Server, Properties.Settings.Default.DatabaseName);
            connectionFactory = new SqlConnectionFactory(Properties.Settings.Default.Server, Properties.Settings.Default.DatabaseName);
            commandBuilder    = new SqlCommandBuilder();
            database          = new Database(connectionFactory, commandBuilder);

            versionControlModule = new VersionControlModule(logger, databaseCreator, new PIOVersionControl(database));
            if (!versionControlModule.InitializeDatabase(Properties.Settings.Default.DropDatabase))
            {
                return;
            }


            phraseModule       = new PhraseModule(logger, database);
            planetModule       = new PlanetModule(logger, database);
            cellModule         = new CellModule(logger, database);
            buildingModule     = new BuildingModule(logger, database);
            workerModule       = new WorkerModule(logger, database);
            stackModule        = new StackModule(logger, database);
            resourceTypeModule = new ResourceTypeModule(logger, database);
            buildingTypeModule = new BuildingTypeModule(logger, database);
            taskTypeModule     = new TaskTypeModule(logger, database);
            materialModule     = new MaterialModule(logger, database);
            ingredientModule   = new IngredientModule(logger, database);
            productModule      = new ProductModule(logger, database);
            taskModule         = new TaskModule(logger, database);


            factoryBuilderModule  = new BuilderModule(logger, taskModule, workerModule, buildingModule, buildingTypeModule, stackModule, materialModule);;
            idlerModule           = new IdlerModule(logger, taskModule, workerModule);
            resourceCheckerModule = new ResourceCheckerModule(logger, buildingModule, stackModule, ingredientModule, materialModule);
            locationCheckerModule = new LocationCheckerModule(logger, workerModule, buildingModule);
            producerModule        = new ProducerModule(logger, taskModule, workerModule, buildingModule, buildingTypeModule, stackModule, ingredientModule, productModule);
            harvesterModule       = new HarvesterModule(logger, taskModule, workerModule, buildingModule, buildingTypeModule, stackModule, productModule);
            moverModule           = new MoverModule(logger, taskModule, workerModule, buildingModule);
            takerModule           = new TakerModule(logger, taskModule, workerModule, buildingModule, stackModule);
            storerModule          = new StorerModule(logger, taskModule, workerModule, buildingModule, stackModule);

            planetGeneratorModule = new PlanetGeneratorModule(logger, phraseModule, resourceTypeModule, buildingTypeModule, taskTypeModule, materialModule, ingredientModule, productModule, planetModule, cellModule, buildingModule, workerModule);
            if (!planetGeneratorModule.Generate())
            {
                return;
            }

            schedulerModule = new SchedulerModule(logger, taskModule, idlerModule, producerModule, harvesterModule, moverModule, takerModule, storerModule, factoryBuilderModule);
            schedulerModule.Start();


            pioService = new PIOService(
                logger, phraseModule, planetModule, cellModule, buildingModule, workerModule,
                stackModule, resourceTypeModule,
                buildingTypeModule, taskTypeModule, materialModule, ingredientModule, productModule, taskModule,
                schedulerModule,
                resourceCheckerModule, locationCheckerModule, idlerModule, producerModule, harvesterModule, moverModule, takerModule, storerModule,
                factoryBuilderModule);

            pioServiceHostModule = new ServiceHostModule(logger, pioService);
            pioServiceHostModule.Start();

            taskCallbackService           = new TaskCallbackService(logger, schedulerModule);
            taskCallbackServiceHostModule = new ServiceHostModule(logger, taskCallbackService);
            taskCallbackServiceHostModule.Start();

            WaitHandle.WaitAny(new WaitHandle[] { quitEvent }, -1);

            taskCallbackServiceHostModule.Stop();
            pioServiceHostModule.Stop();
            schedulerModule.Stop();

            Console.CancelKeyPress -= new ConsoleCancelEventHandler(Console_CancelKeyPress);
        }
        /// <summary>
        /// 方法说明:根据根节点加载子节点
        /// 作    者:jason.tang
        /// 完成时间:2013-03-05
        /// </summary>
        /// <param name="parentNode"></param>
        private void LoadMaterialChildNode(string categoryid, string code)
        {
            //if (parentNode == null) return;

            //parentNode.Nodes.Clear();

            //查找根节点(物料)下的子节点
            materialModuleList = MaterialModuleBLL.GetMaterialModuleListByCategoryId(categoryid, code);

            if (materialModuleList.Count <= 0)
            {
                return;
            }

            materialModuleList.ForEach((o) =>
            {
                TreeNode node = new TreeNode();
                node.Text     = string.Format("({0})", o.name);
                node.Tag      = o;
                node.Name     = o.baseid;
                switch (o.TypeId)
                {
                case "1":
                    node.ImageKey = "materialG";
                    break;

                case "2":
                    node.ImageKey = "materialS";
                    break;

                case "3":
                    node.ImageKey = "materialC";
                    break;

                case "4":
                    node.ImageKey = "materialC";
                    break;

                default:
                    break;
                }
                node.ExpandAll();

                //根据物料类型查找物料分类
                List <Model.MaterialVersionModule> versionModuleList
                    = MaterialModuleBLL.GetChildMaterialByVersionId(o.materialverid);

                if (versionModuleList.Count > 0)
                {
                    versionModuleList.ForEach((v) =>
                    {
                        TreeNode nod       = new TreeNode();
                        MaterialModule mod = new MaterialModule();
                        mod.code           = v.Code;
                        mod.name           = v.Name;
                        mod.materialverid  = v.MaterialVerId;
                        mod.baseid         = v.BaseId;
                        mod.productname    = v.ProductId;

                        nod.Text = string.Format("{0}({1})", v.Name, v.Code);
                        //nod.Tag = v;
                        nod.Tag      = mod;
                        nod.Name     = v.MaterialVerId;
                        nod.ImageKey = "materialC";

                        //TreeNode nod = new TreeNode();
                        //nod.Text = string.Format("{0}({1})", v.Code, v.Name);
                        //nod.Tag = v.MaterialVerId;
                        //nod.Name = v.BaseId;
                        //nod.ImageKey = "materialC";

                        ShowMaterialChildNode(nod, v.MaterialVerId);

                        List <Model.ProcessCard> materialCardRelations =
                            MaterialCardRelationBLL.GetProcessCardByMaterialId(v.BaseId, 1);

                        if (materialCardRelations.Count > 0)
                        {
                            materialCardRelations.ForEach((m) =>
                            {
                                TreeNode nd = new TreeNode();
                                nd.Text     = m.Name;
                                nd.Tag      = m.ID;
                                nd.Name     = m.ID.ToString();
                                nd.ImageKey = "card";

                                nod.Nodes.Add(nd);
                                nod.ImageKey = "materialCard";
                            });
                        }

                        node.Nodes.Add(nod);
                        if (nod.ImageKey == "materialCard")
                        {
                            node.ImageKey = nod.ImageKey;
                        }
                    });
                }

                //parentNode.Nodes.Add(node);
                tvMaterialDesign.Nodes.Add(node);
            });
        }