private void OnPartClick(MachinePart part) { if (modelInstance != null) { Destroy(modelInstance); } string modelUrl = part.ModelUrls[CurrentType]; modelInstance = Instantiate(Resources.Load <GameObject>(modelUrl)); modelInstance.transform.SetParent(modelContainer); modelInstance.transform.localPosition = Vector3.zero; modelInstance.transform.localScale = Vector3.one; UpdateReplaceContent(part); foreach (var p in partButtons) { if (p.ThePart != part) { p.IsSelected = false; } else { p.IsSelected = true; } } }
public bool DeleteMachinePart(int machinePartId) { MachinePart machinePart = GetMachinePart(machinePartId); dataContext.MachineParts.DeleteOnSubmit(machinePart); dataContext.SubmitChanges(); return(dataContext.ChangeConflicts != null && dataContext.ChangeConflicts.Count == 0); }
public async Task <MachinePart> UpdateMachinePartAsync(MachinePart machinePart) { var machinePartEntity = Mapper.Map <MachinePartEntity>(machinePart); machinePartEntity = await _machinePartRepository.UpdateAsync(machinePartEntity); machinePart = Mapper.Map <MachinePart>(machinePartEntity); return(machinePart); }
public bool AddNewMachinePart(int machineId, string partSku) { Part part = GetPart(partSku); Machine machine = GetMachine(machineId); var machinePart = new MachinePart { Machine = machine, Part = part }; dataContext.MachineParts.InsertOnSubmit(machinePart); dataContext.SubmitChanges(); return(dataContext.ChangeConflicts != null && dataContext.ChangeConflicts.Count == 0); }
private void UpdateLublicateContent(MachinePart part) { List <SubPart> lublicatePart = part.SubParts.Where((p) => { return(p.CycleType == CycleType.Luburicate); }).ToList(); for (int i = 0; i < lublicatePartView.Count; i++) { SubPartViewControl ctrl = lublicatePartView[i]; if (i < lublicatePart.Count) { ctrl.ThePart = lublicatePart[i]; ctrl.gameObject.SetActive(true); } } for (int i = lublicatePart.Count; i < lublicatePartView.Count; i++) { SubPartViewControl ctrl = lublicatePartView[i]; ctrl.gameObject.SetActive(false); } }
private void UpdateReplaceContent(MachinePart part) { List <SubPart> replacePart = part.SubParts.Where((p) => { return(p.CycleType == CycleType.Replace && p.PartType == CurrentType); }).ToList(); Dictionary <string, int> unique = new Dictionary <string, int>(); foreach (var p in replacePart) { if (!unique.Keys.Contains(p.SubPartName)) { unique.Add(p.SubPartName, 1); } else { unique[p.SubPartName] += 1; } } for (int i = 0; i < replacePartView.Count; i++) { SubPartViewControl ctrl = replacePartView[i]; if (i < unique.Count) { string subpartname = unique.Keys.ToList()[i]; ctrl.ThePart = replacePart.Find((p) => { return(p.SubPartName == subpartname); }); ctrl.CountOfPart = unique[subpartname]; ctrl.gameObject.SetActive(true); } } for (int i = unique.Keys.Count; i < replacePartView.Count; i++) { SubPartViewControl ctrl = replacePartView[i]; ctrl.gameObject.SetActive(false); } }
private void OnPartClick(MachinePart part) { UpdateLublicateContent(part); }
public abstract void Remove(MachinePart c);
public abstract void Add(MachinePart c);
public void LoadAssembles() { //load part type //ugly implementaion MachineAssembly a2 = new MachineAssembly("棉芯输送机"); a2.AssemblyModelUrl = "Press_module/Models/press_convery_normal"; a2.AssemblyHilightUrl = "Press_module/Models/press_convery_highlight"; //load parts MachinePart p; SubPart s; p = new MachinePart("上部传送模块"); //p.ModelUrls.Add(PartTypeEnum.None, "Press_module/Models/upper_convery"); p.ModelUrls.Add(PartTypeEnum.Bearing, "Press_module/Models/upper_convery_bearing"); p.ModelUrls.Add(PartTypeEnum.Belt, "Press_module/Models/upper_convery_belt"); //p.ModelUrl = "Press_module/Models/upper_convery"; for (int i = 0; i < 8; i++) { s = new SubPart("SKF轴承 6204-2Z/C3/2RSH", i, PartTypeEnum.Bearing, CycleType.Replace, 12); s.VideoUrl = "Videos/ReplaceBearing"; p.SubParts.Add(s); } s = new SubPart("SKF LGLT2/1润滑油", 0, PartTypeEnum.Bearing, CycleType.Luburicate, 6); s.VideoUrl = "Videos/LiburateBearing"; p.SubParts.Add(s); s = new SubPart("GATES POWERGRIP 2GT226", 0, PartTypeEnum.Belt, CycleType.Replace, 12); s.VideoUrl = "Videos/ReplaceBelt"; p.SubParts.Add(s); a2.PartList.Add(p); p = new MachinePart("下部传送模块"); //p.ModelUrl = "Press_module/Models/lower_convery"; p.ModelUrls.Add(PartTypeEnum.Bearing, "Press_module/Models/lower_convery_bearing"); p.ModelUrls.Add(PartTypeEnum.Belt, "Press_module/Models/lower_convery_belt"); for (int i = 0; i < 8; i++) { s = new SubPart("SKF轴承 6204-2Z/C3/2RSH", i, PartTypeEnum.Bearing, CycleType.Replace, 12); s.VideoUrl = "Videos/ReplaceBearing"; p.SubParts.Add(s); } s = new SubPart("SKF LGLT2/1润滑油", 0, PartTypeEnum.Bearing, CycleType.Luburicate, 6); s.VideoUrl = "Videos/LiburateBearing"; p.SubParts.Add(s); s = new SubPart("GATES POWERGRIP 2GT226", 0, PartTypeEnum.Belt, CycleType.Replace, 12); s.VideoUrl = "Videos/ReplaceBelt"; p.SubParts.Add(s); a2.PartList.Add(p); p = new MachinePart("传送模块底座"); p.ModelUrls.Add(PartTypeEnum.LinearGuide, "Press_module/Models/base_highlight"); for (int i = 0; i < 4; i++) { s = new SubPart("HIWIN HGH15CA", i, PartTypeEnum.LinearGuide, CycleType.Replace, 24); s.VideoUrl = "Videos/ReplaceLinearGuide"; p.SubParts.Add(s); } s = new SubPart("NSK AS2 GREASE", 0, PartTypeEnum.LinearGuide, CycleType.Luburicate, 6); s.VideoUrl = "Videos/LiburateLinearGuide"; p.SubParts.Add(s); a2.PartList.Add(p); assemblies.Add(a2); MachineAssembly a1 = new MachineAssembly("热压模块"); a1.AssemblyModelUrl = "Press_module/Models/thermal_press_module_normal"; a1.AssemblyHilightUrl = "Press_module/Models/thermal_press_module_hightlight"; //load parts p = new MachinePart("上压辊"); p.ModelUrls.Add(PartTypeEnum.Bearing, "Press_module/Models/upper_roller"); for (int i = 0; i < 2; i++) { s = new SubPart("SKF轴承 206EC", i, PartTypeEnum.Bearing, CycleType.Replace, 12); s.VideoUrl = "Videos/ReplaceBearing"; p.SubParts.Add(s); } s = new SubPart("SKF重载润滑脂LGWA2/1", 0, PartTypeEnum.Bearing, CycleType.Luburicate, 6); s.VideoUrl = "Videos/LiburateBearing"; p.SubParts.Add(s); a1.PartList.Add(p); p = new MachinePart("下压辊"); p.ModelUrls.Add(PartTypeEnum.Bearing, "Press_module/Models/lower_roller"); for (int i = 0; i < 2; i++) { s = new SubPart("SKF轴承 206EC", i, PartTypeEnum.Bearing, CycleType.Replace, 12); s.VideoUrl = "Videos/ReplaceBearing"; p.SubParts.Add(s); } s = new SubPart("SKF重载润滑脂LGWA2/1", 0, PartTypeEnum.Bearing, CycleType.Luburicate, 6); s.VideoUrl = "Videos/LiburateBearing"; p.SubParts.Add(s); a1.PartList.Add(p); assemblies.Add(a1); MachineAssembly a3 = new MachineAssembly("热压模块底座"); a3.AssemblyModelUrl = "Press_module/Models/base_normal"; a3.AssemblyHilightUrl = "Press_module/Models/base_highlight"; p = new MachinePart("线性导轨组件"); //p.ModelUrl = "Press_module/Models/base_highlight"; p.ModelUrls.Add(PartTypeEnum.LinearGuide, "Press_module/Models/base_highlight"); for (int i = 0; i < 4; i++) { s = new SubPart("HIWIN HGH35CA", i, PartTypeEnum.LinearGuide, CycleType.Replace, 24); s.VideoUrl = "Videos/ReplaceLinearGuide"; p.SubParts.Add(s); } s = new SubPart("NSK AS2 GREASE", 0, PartTypeEnum.LinearGuide, CycleType.Luburicate, 6); s.VideoUrl = "Videos/LiburateLinearGuide"; p.SubParts.Add(s); a3.PartList.Add(p); assemblies.Add(a3); SetAssemblyControl(); }
public void GeneratePartLayout() { //Part layout int size = RandomEx.RandomIndexWeighted(sizeWeights) + 1; List<Vector2i> openLocations = new List<Vector2i>(); openLocations.Add(new Vector2i(){x = 0, y = 0}); int xMin = 0, xMax = 0, yMin = 0, yMax = 0; const int maxGridDimension = 5; for(int i = 0; i < size; i++) { if(openLocations.Count == 0) { Debug.LogError ("Machine tried to spawn too large!"); break; } int locIndex = Random.Range (0, openLocations.Count); Vector2i loc = openLocations[locIndex]; openLocations.RemoveAt(locIndex); int machWidth = xMax - xMin + 1; int machHeight = yMax - yMin + 1; if(HasPartAt(loc) || (machWidth >= maxGridDimension && (loc.x < xMin || loc.x > xMax)) || (machHeight >= maxGridDimension && (loc.y < yMin || loc.y > yMax)) ) { i--; //retry } else{ MachinePart part = new MachinePart(); part.Offset = loc; AddPart(part); xMin = Mathf.Min(loc.x, xMin); xMax = Mathf.Max (loc.x, xMax); yMin = Mathf.Min (loc.y, yMin); yMax = Mathf.Max (loc.y, yMax); var dirs = new Vector2i[]{Vector2i.Up, Vector2i.Down, Vector2i.Left, Vector2i.Right}; for(int j = 0; j < dirs.Length; j++){ Vector2i newOpenLoc = loc + dirs[j]; if(!HasPartAt(newOpenLoc)) { openLocations.Add (newOpenLoc); } } } } //Recenter parts Vector2i partCenterOffset = new Vector2i(xMin+(xMax-xMin) / 2, yMin+(yMax-yMin)/2); for(int i = 0; i < Parts.Count; i++) { Parts[i].Offset -= partCenterOffset; } //TODO: Will break if >4xMachineSize ports? for(int i = 0; i < Rule.NumInPorts; i++) { AddInPort(); } for(int i = 0; i < Rule.NumOutPorts; i++) { AddOutPort(); } LayoutPorts(); }
private void AddPart(MachinePart part) { Parts.Add(part); part.Machine = this; }
public JsonResult Update(MachinePart machinePart) { return(Json(machinePartDB.Insert(machinePart), JsonRequestBehavior.AllowGet)); }