// Update is called once per frame void Update() { slider_value = right_click.GetComponent <RightClickSlider>().slider.value; enemy = right_click.GetComponent <RightClickSlider>().enemy; if (cloneInstance == null && enemy_stored == false) { currentMode = Mode.Empty; } else if (cloneInstance == null) { currentMode = Mode.Stored; } else { currentMode = Mode.Spawned; if (cloneInstance.GetComponent <PlayerAttackPattern>().entity == null) { cloneInstance.GetComponent <PlayerAttackPattern>().entity = cloneInstance.GetComponent <Entity>(); cloneInstance.GetComponent <MovementPatternAbstract>().entity = cloneInstance.GetComponent <Entity>(); } cloneInstance.GetComponent <CloneEntity>().setTargetVector(Input.mousePosition); } switch (currentMode) { case Mode.Empty: active = true; if (enemy != null) { EmptyFill(); if (recorded_value == 1) { cloneTemplate = enemy.GetComponent <PrefabHolder>().prefab; moveSpeed = enemy.GetComponent <Entity>().moveSpeed; attackAnimationDelay = enemy.GetComponent <Entity>().attackAnimationDelay; attackSpeed = enemy.GetComponent <Entity>().attackSpeed; DEFAULT_SPEED = enemy.GetComponent <Entity>().DEFAULT_SPEED; equip = enemy.GetComponent <Entity>().equip; cloneTemplate = cloneTemplate.GetComponent <PrefabHolder>().prefab; //Debug.Log(equip); recorded_value = 0; enemy_stored = true; } } else { setSliderPos2Mouse(); } break; case Mode.Stored: active = true; StoredFill(); if (cloneInstance == null && clone_ready) { cloneInstance = Instantiate(cloneTemplate, transform.position, Quaternion.identity); Destroy(cloneInstance.GetComponent <MovementPatternAbstract>()); Destroy(cloneInstance.GetComponent <AttackPatternAbstract>()); Entity prevEntity = cloneInstance.GetComponent <Entity>(); //Destroy(cloneInstance.GetComponent<Entity>()); if (cloneInstance.GetComponent <MeleeMovement>()) { Destroy(cloneInstance.GetComponent <MeleeMovement>()); } CloneEntity currentEntity = cloneInstance.AddComponent <CloneEntity>(); currentEntity.equip = prevEntity.equip; /* * cloneInstance.GetComponent<Entity>().moveSpeed = this.moveSpeed; * cloneInstance.GetComponent<Entity>().attackAnimationDelay = this.attackAnimationDelay; * cloneInstance.GetComponent<Entity>().attackSpeed = this.attackSpeed; * cloneInstance.GetComponent<Entity>().DEFAULT_SPEED = this.DEFAULT_SPEED; * cloneInstance.GetComponent<Entity>().equip = this.equip; * cloneInstance.GetComponent<Entity>().createWeaponInstance(); * //Debug.Log(cloneInstance.GetComponent<Entity>().equip); */ cloneInstance.AddComponent <CloneMovement>(); cloneInstance.AddComponent <PlayerAttackPattern>(); cloneInstance.GetComponent <PlayerAttackPattern>().entity = cloneInstance.GetComponent <Entity>(); cloneInstance.GetComponent <Entity>().createWeaponInstance(); cloneInstance.GetComponent <Entity>().setTargetVector(Input.mousePosition); //cloneInstance.GetComponent<PlayerAttackPattern>().setEntity(cloneInstance.GetComponent<Entity>()); cloneInstance.layer = 9; cloneInstance.tag = "Clone"; setCloneHealth(); cloneInstance.GetComponent <CloneEntity>().setColor(); Destroy(prevEntity); } recorded_value = 0; break; case Mode.Spawned: break; } }
/// <summary> /// リモートリポジトリをローカルへ複製する /// </summary> /// <param name="entity">エンティティ</param> /// <param name="monitor">モニター</param> public void CloneRepository(CloneEntity entity, BusyIndicatorProgressMonitor monitor) { FilePath directory = entity.Path; CloneCommand clone = new CloneCommand(); //clone.SetCloneAllBranches(true); clone.SetDirectory(directory); clone.SetURI(entity.Url); clone.SetProgressMonitor(monitor); if (entity.IsCredential) { UsernamePasswordCredentialsProvider user = new UsernamePasswordCredentialsProvider(entity.UserName, entity.PassWord); clone.SetCredentialsProvider(user); } BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += (s, evt) => { monitor.StartAction(); try { clone.Call(); } catch (JGitInternalException exception) { // TODO: } }; bw.RunWorkerCompleted += (s, evt) => { monitor.CompleteAction(); }; bw.RunWorkerAsync(); }