// Returns true if the segment moves past the deleter's position. private bool CheckDelete(SegmentController segment) { if (segment.Back < transform.position.x) { return(true); } return(false); }
public RingManager(float distance, List <SegmentCollisionBehaviour> segmentCollisionBehaviours, List <SegmentTickBehaviour> segmentTickBehaviours, List <SegmentTriggerBehaviour> segmentTriggerBehaviours, Sprite sprite) { if (segmentPrefab == null) { segmentPrefab = Resources.Load("Segment") as GameObject; } segmentControlers = new List <SegmentController> (); int max = (int)Mathf.Floor(distance * Mathf.PI * 1.25f); // number of segments segments = new List <GameObject> (max); float min = -Mathf.PI; //First segment position float step = (2 * Mathf.PI / (float)max); //Distance between segments //SegmentTickBehaviourMove stbm = new SegmentTickBehaviourMove (tickMove); //Segments with this tick behaviour will move //SegmentTriggerBehaviourDestroy stbd = new SegmentTriggerBehaviourDestroy (); //Segments with this tick behaviour will be destroyed upon getting shot SegmentsParent = new GameObject(); SegmentsParent.name = "SegmentsParent" + max; SegmentsParent.transform.position = Vector3.zero; SegmentsParent.transform.rotation = Quaternion.identity; SegmentsParent.transform.SetParent(GameManager.GMInstance.root.transform); for (int i = 0; i < max; i++) { GameObject currentSegment = MonoBehaviour.Instantiate(segmentPrefab) as GameObject; SegmentController currentSegmentManager = currentSegment.GetComponentInChildren <SegmentController> (); segmentControlers.Add(currentSegmentManager); segments.Add(currentSegment); currentSegmentManager.SetPosition(new Vector2((min + step * i + 0.0001f), distance)); currentSegmentManager.mesh.transform.Find("barrier").GetComponent <SpriteRenderer> ().sprite = sprite; for (int j = 0; j < segmentCollisionBehaviours.Count; j++) { currentSegmentManager.addBehaviour(segmentCollisionBehaviours [j]); } for (int j = 0; j < segmentTriggerBehaviours.Count; j++) { currentSegmentManager.addBehaviour(segmentTriggerBehaviours[j]); } for (int j = 0; j < segmentTickBehaviours.Count; j++) { currentSegmentManager.addBehaviour(segmentTickBehaviours[j]); } currentSegment.transform.SetParent(SegmentsParent.transform); } }
void SegmentTriggerBehaviour.Enter(Collider2D other, SegmentController segmentController) { if (other.gameObject.tag == "Shot" || other.gameObject.tag == "PiercingShot" || other.gameObject.tag == "StarPulse") { Vector3 explodePosition = UtilityScript.transformToCartesian(other.transform.position); GameObject explosionInstance = MonoBehaviour.Instantiate(segmentController.shotFart, explodePosition, Quaternion.identity) as GameObject; CamShakeManager.PlayShake(0.1f, 0.5f); //SoundManager.PlayExplosionClip(); // segmentController.mesh.transform.GetChild(0).gameObject.SetActive(false); explosionInstance.transform.SetParent(segmentController.mesh.transform); } }
protected SegmentController BuildSegmentController(string mediaTypeName) { var httpContext = new DefaultHttpContext(); httpContext.Request.Headers[HeaderNames.Accept] = mediaTypeName; var controller = new SegmentController(FakeLogger, FakeHowToBecomeSegmentService, FakeMapper, FakeJobProfileSegmentRefreshService) { ControllerContext = new ControllerContext() { HttpContext = httpContext, }, }; return(controller); }
private void AppendSegment(SegmentController segment) { segment.LoadParameters(loadedSegmentParameters); if (segments.Count > 0) { segment.AlignToSegment(segments.Last()); } else { segment.transform.position = Vector3.zero; } segments.Add(segment); lastSegmentZ = segment.transform.position.z; }
public void AlignToSegment(SegmentController otherSegment) { var deviationDecay = globalAppliedAngleDeviation * 0.65f; globalAppliedAngleDeviation -= deviationDecay; var outAngle = angle - deviationDecay; if (loadedParameters != null) { var angleDeviation = (Random.value - 0.5f) * LoadedParameters.AngleDeviation; outAngle += angleDeviation; globalAppliedAngleDeviation = angleDeviation; } var corePivotOffset = corePivot.transform.position - transform.position; transform.position = otherSegment.CoreSocket.transform.position - corePivotOffset; leftWall.localEulerAngles = new Vector3(0, outAngle, 0); var leftWallPivotOffset = leftWallPivot.transform.position - leftWall.transform.position; leftWall.transform.position = otherSegment.leftWallSocket.transform.position - leftWallPivotOffset; rightWall.localEulerAngles = new Vector3(0, -outAngle, 0); var rightWallPivotOffset = rightWallPivot.transform.position - rightWall.transform.position; rightWall.transform.position = otherSegment.rightWallSocket.transform.position - rightWallPivotOffset; // Wall offset at longer ranges fix var leftWallLocalPosition = leftWall.transform.localPosition; leftWallLocalPosition.x = Mathf.Lerp(leftWallLocalPosition.x, 0, 0.25f); leftWall.transform.localPosition = leftWallLocalPosition; var rightWallLocalPosition = rightWall.transform.localPosition; rightWallLocalPosition.x = Mathf.Lerp(rightWallLocalPosition.x, 0, 0.25f); rightWall.transform.localPosition = rightWallLocalPosition; CleanupObstacles(); if (loadedParameters.Forest) { GenerateObstacles(); } }
void SegmentTriggerBehaviour.Enter(Collider2D other, SegmentController segmentController) { if (other.gameObject.tag == "Shot") { ShotDestroyerScript SDS = other.GetComponent <ShotDestroyerScript> (); if (SDS.IsUsed == false) //if the shot has not yet hit something, destroy the segment and mark the shot used { Vector3 spawnPos = UtilityScript.transformToCartesian(other.transform.position); segmentController.DestroySegment(spawnPos); SDS.IsUsed = true; } } else if (other.gameObject.tag == "PiercingShot" || other.gameObject.tag == "StarPulse") { Vector3 spawnPos = UtilityScript.transformToCartesian(other.transform.position); segmentController.DestroySegment(spawnPos); } }
public RingManagerMulti(float distance, float tickMove) { if (segmentPrefab == null) { segmentPrefab = Resources.Load("SegmentMulti") as GameObject; } segmentControlers = new List <SegmentController> (); int max = (int)Mathf.Floor(distance * Mathf.PI * 1.25f); segments = new List <GameObject> (max); float min = -Mathf.PI; float step = (2 * Mathf.PI / (float)max); //Debug.Log ("# segments in ring " + max); SegmentTickBehaviourMove stbm = new SegmentTickBehaviourMove(tickMove); SegmentTriggerBehaviourDestroy stbd = new SegmentTriggerBehaviourDestroy(); GameObject SegmentsParent = new GameObject(); SegmentsParent.name = "SegmentsParent" + max; SegmentsParent.transform.position = Vector3.zero; SegmentsParent.transform.rotation = Quaternion.identity; for (int i = 0; i < max; i++) { GameObject currentSegment = MonoBehaviour.Instantiate(segmentPrefab /*, new Vector3(min + step * i, distance, 0), new Quaternion()*/) as GameObject; NetworkServer.Spawn(currentSegment); SegmentController currentSegmentManager = currentSegment.GetComponentInChildren <SegmentController> (); segmentControlers.Add(currentSegmentManager); currentSegmentManager.SetPosition(new Vector2((min + step * i + 0.0001f), distance)); currentSegmentManager.addBehaviour(stbm); currentSegmentManager.addBehaviour(stbd); //currentSegmentManager.SetPosition (new Vector2 ((min + step * i), distance)); segments.Add(currentSegment); currentSegment.transform.SetParent(SegmentsParent.transform); } }
private void RemoveSegment(SegmentController segment) { segment.OnExitSegmentBegin -= AddNextSegment; segment.OnExitSegmentEnd -= RemoveSegment; resourseManager.RemoveSegment(segment); }
public ConcurrentQueue <DataEntry> SegmentData(int NumOfSplits = 50) { return(SegmentController.SegmentData(AllDataEntries, NumOfSplits)); }
void OnEnable() { segment = GetComponentInParent <SegmentController>(); }
public void RemoveSegment(SegmentController segment) { Destroy(segment.transform.parent.gameObject); }
void SegmentTickBehaviour.Tick(SegmentController segmentController) { }
void SegmentTickBehaviour.FixedTick(SegmentController segmentController) { segmentController.physics.transform.Translate(speed * Time.fixedDeltaTime); }