void CreateMap(List <TriangleNet.Geometry.Vertex> vertices, List <ISegment> segments, float maxz, float yOffset) { Dictionary <int, Star> id2star = new Dictionary <int, Star>(); int v_id = 0; foreach (TriangleNet.Geometry.Vertex v in vertices) { Vector3 pos = new Vector3((float)v.x, Random.Range(0.0f, maxz) + yOffset, (float)v.y); Star star = CreateStar(pos); star.my_text.text = "" + v.id; v.id = v_id++; id2star[v.id] = star; AddStar(star); } foreach (Segment s in segments) { Star start = id2star[s.GetVertex(0).id]; Star end = id2star[s.GetVertex(1).id]; HyperspaceCorridor corridor = CreateCorridor(start, end); AddCorridor(corridor); } }
public void Exit() { traveling_through.BeforeExit(this); SetOrbiting(target); HyperspaceCorridor corridor = traveling_through; traveling_through = null; corridor.AfterExit(this); }
public void Enter(HyperspaceCorridor corridor, Star destination) { corridor.BeforeEnter(this); traveling_through = corridor; SetTarget(destination); UnsetOrbiting(); UpdateSpeed(); corridor.AfterEnter(this); }
public override void ClickedOn(Player player) { if (player.selected_type == SelectedType.Ship) { Ship ship = (Ship)player.selected; if (ship.orbiting != this) { HyperspaceCorridor corridor = GetCorridor(ship.orbiting); if (corridor != null) { ship.Enter(corridor, this); } return; } } player.Select(this); }
private HyperspaceCorridor CreateCorridor(Star start, Star end) { Vector3 pos = (end.pos - start.pos) * 0.5f + start.pos; pos += Game.inst.gameWorld.transform.position; Quaternion rot = Quaternion.FromToRotation(Vector3.up, end.pos - start.pos); HyperspaceCorridor corridor = Object.Instantiate(Game.inst.corridor_prefab, pos, rot).GetComponent <HyperspaceCorridor>(); corridor.SetStartEnd(start, end); corridor.SetColor(Color.yellow); // corridor.SetThickness(0.1f); corridor.SetCurrentSpeed(Random.Range(0.0f, 1.0f)); corridor.gameObject.transform.SetParent(map_obj.transform); return(corridor); }
public void AddCorridor(HyperspaceCorridor corridor) { corridors.Add(corridor); }