public void Initialize(TrackEditor editor, AbstractTrack track) { this.editor = editor; this.Track = track; this.rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, Track.GetTrackHeight()); this.input.text = track.TrackName; Update(); }
protected override string GetGameObjectName() { if (trackEntry != null) { AbstractTrack track = trackEntry.gameObject.GetComponent <AbstractTrack> (); if (track) { return("Play " + track.GetTrackName()); } } return("undefined_PlayTrack"); }
public void AddPath(AbstractTrack track) { //paused = true; //path_queue.Add(path); //pos_map.Add(totalLength,path); PathSpline path = track.GetPath(); LinkedList <KeyValuePair <float, PathNode> > list = new LinkedList <KeyValuePair <float, PathNode> >(); if (path == null) { return; } foreach (KeyValuePair <float, PathNode> temp in path.node_map) { list.AddLast(temp); } foreach (KeyValuePair <float, PathNode> temp in list) { if (traverser_path.back != null) { if (Mathf.Abs(temp.Value.x - traverser_path.back.x) < 0.05 && Mathf.Abs(temp.Value.y - traverser_path.back.y) < 0.05) { continue; } if (Mathf.Abs(temp.Value.x - traverser_path.back.x) > 5 && Mathf.Abs(temp.Value.y - traverser_path.back.y) > 5) { continue; } } //liner.positionCount = (liner.positionCount + 1); PathNode newnode = new PathNode(temp.Value.x, temp.Value.y, temp.Value.z); //vertices.Add(newnode.getVector() + new Vector3(0,5,0)); //Point newpoint = Instantiate(linerendererobj, new Vector3(newnode.x, 2, newnode.y), Quaternion.identity).GetComponent<Point>(); //newpoint.SetNum(count); //count++; //liner.SetPositions(vertices.ToArray()); traverser_path.AddNode(newnode); } //paused = false; Global.Instance.last_inspected_track = track; }
/* * public void Activate_Train(){ * active = true; * } * * public void Deactivate_Train(){ * active = false; * current_speed = 0; * } */ public void JunctionTapped() { GameObject junction_object = EventManager.GetGameObject("JUNCTION_TAPPED"); if (junction_object == null) { TapDetection.IOSdebug("JunctionTapped-- junction_object is null"); return; } AbstractTrack junction = junction_object.GetComponent <AbstractTrack>(); if (junction == null) { TapDetection.IOSdebug("JunctionTapped-- junction is null"); return; } junction.toggle_direction(); }
void InitializeTrain() { train_head = Instantiate(train_head_prefab); Global.Instance.train_head = train_head; AbstractTrack track = current_level.start_station.GetFirstTrack(); for (int i = 0; i < 5; i++) { AddPath(track); track = track.GetNextTrack(); } tracks_object.RequestPath(this); distance_travelled = 12; for (int i = 0; i < 3; i++) { GameObject new_carriage = Instantiate(carriage_prefab); train_carriages.AddLast(new_carriage); } }
override public PathSpline GetPath() { GameObject last_obj = Global.Instance.last_inspected_track.gameObject; //print("TwoJoin: last_track name: "+last_obj.name); AbstractTrack last_track = last_obj.GetComponent <AbstractTrack>(); if (last_track == null) { return(rightpath); } Vector3 twojoin_startpoint = GetStartPoint(); if (twojoin_startpoint.x - transform.position.x < -1f) { return(leftpath); } else if (twojoin_startpoint.x - transform.position.x > 1f) { return(rightpath); } else { if (last_track.usable_junction()) { if (last_track.GetOffset() < 0) { return(leftpath); } else { return(rightpath); } } } return(rightpath); }
/* * public AbstractTrack GetNextTrack(Vector3 pos){ * GameObject track = gameObject; * float dist2 = Mathf.Infinity; * foreach (GameObject track_object in track_array) * { * float this_dist = (track_object.transform.position - pos).magnitude; * if(this_dist < dist2){ * dist2 = this_dist; * track = track_object; * } * } * * int offset = track.GetComponent<AbstractTrack>().GetOffset(); * Vector3 ref_pos = track.transform.position + new Vector3(offset*3,0,4); * GameObject closest = track; * float dist = Mathf.Infinity; * foreach (GameObject track_object in track_array) * { * float this_dist = (track_object.transform.position - ref_pos).magnitude; * if(this_dist < dist){ * dist = this_dist; * closest = track_object; * } * } * * return closest.GetComponent<AbstractTrack>(); * } * * public AbstractTrack GetTrackAt(Vector3 pos){ * GameObject track = gameObject; * float dist2 = Mathf.Infinity; * foreach (GameObject track_object in track_array) * { * float z_dist = -(track_object.GetComponent<AbstractTrack>().GetStartPoint().z - pos.z); * float this_dist = (track_object.GetComponent<AbstractTrack>().GetStartPoint() - pos).magnitude; * if(z_dist<0){ * continue; * } * if(this_dist < dist2){ * dist2 = this_dist; * track = track_object; * } * } * return track.GetComponent<AbstractTrack>(); * } * */ public void RequestPath(GameHandler gamehandler) { //print("controller requested path"); AbstractTrack picked_track = Global.Instance.last_inspected_track.GetNextTrack(); //print("name of last inspected track: "+Global.Instance.last_inspected_track.name); //print("name of the picked_track: "+ picked_track.name); /* * if(Global.Instance.last_inspected_track != null){ * if(!picked_track.Equals(Global.Instance.last_inspected_track)){ * controller.AddPath(picked_track); * } * } */ if (picked_track == null) { Debug.LogError("RequestPath: picked_track is null"); } if (picked_track.gameObject.CompareTag("Junction")) { picked_track.lock_track(); // CHECK THIS gamehandler.AddPath(picked_track); picked_track = picked_track.GetNextTrack(); } //picked_track.lock_track(); //Global.Instance.last_inspected_track = picked_track; int count = 0; //picked_track = GetNextTrack(picked_track.gameObject); while (true) { if ((picked_track.gameObject.CompareTag("Junction") && picked_track.usable_junction())) { Global.Instance.junction_queue.Enqueue(picked_track); Global.Instance.ActivateNextJunction(); //print("queued next junction: "+ picked_track.name); break; } count++; // CHECK THIS gamehandler.AddPath(picked_track); picked_track.lock_track(); //Global.Instance.last_inspected_track = picked_track; //print("adding track: "+ picked_track.name + "; next track: "+picked_track.GetNextTrack()); picked_track = picked_track.GetNextTrack(); if (picked_track.Equals(Global.Instance.last_inspected_track)) { //print("found end"); break; } if (picked_track == null) { Debug.LogWarning("picked track is null"); break; } if (count > 100) { Debug.LogError("COUNT TOO HIGH. INFO: " + picked_track.gameObject.name); return; } } }
public void SelectTrack(AbstractTrack track) { this.selectedTrack = track; this.selectedTrackCategoryDropdown.value = (int)selectedTrack.TrackCategory; }
virtual public void CalculateNextTrack() { next_track = Global.Instance.tracks_object.GetNextTrack(this.gameObject); }
static int sortByZ(AbstractTrack track1, AbstractTrack track2) { return(track1.transform.position.z.CompareTo(track2.transform.position.z)); }