public TrackingGate(Gate g, GateCanvas gc) { this.g = g; this.gc = gc; gc.Circuit.ReplaceGates += (sender2, e2) => { if (e2.ContainsKey(this.g.AbGate) && e2[this.g.AbGate] != null) { Gate og = this.g; Gate ng = gc.FindGate(e2[this.g.AbGate]); this.g = ng; } }; }
protected override void OnMouseOver() { //detect right click if (Input.GetMouseButtonDown(0)) { if (click_parity % 2 == 0) { if (Vector3.Distance(TileMap.instance.DemonLord.transform.position, this.gameObject.transform.position) < 1.5) { //display the gui GateCanvas.SetActive(true); foreach (Transform child in GateCanvas.transform) { if (TileMap.instance.tiles [x + 1, y] == 0 && child.name == "Right") { child.gameObject.SetActive(true); } if (x - 1 >= 0 && TileMap.instance.tiles [x - 1, y] == 0 && child.name == "Left") { child.gameObject.SetActive(true); } if (TileMap.instance.tiles [x, y + 1] == 0 && child.name == "Up") { child.gameObject.SetActive(true); } if (y - 1 >= 0 && TileMap.instance.tiles [x, y - 1] == 0 && child.name == "Down") { child.gameObject.SetActive(true); } } } } else { foreach (Transform child in GateCanvas.transform) { child.gameObject.SetActive(false); } GateCanvas.SetActive(false); } click_parity++; } }
protected override void OnMouseOver() { //detect left click if (Input.GetMouseButtonDown(0)) { if (click_parity % 2 == 0) { if (Vector3.Distance(TileMap.instance.DemonLord.transform.position, this.gameObject.transform.position) < 1.5) { //display the gui GateCanvas.SetActive(true); if (!isOpen) { // foreach (Transform child in GateCanvas.transform) { // if (child.gameObject != level_up) // child.gameObject.SetActive (true); // } light_button.SetActive(true); shadow_button.SetActive(true); } else { if (lambda < max_level) { level_up.SetActive(true); } } } } else { foreach (Transform child in GateCanvas.transform) { child.gameObject.SetActive(false); } GateCanvas.SetActive(false); } click_parity++; } }
// Use this for initialization protected override void Start() { lambda = 0; isOpen = false; light_shadow = false; x = (int)transform.position.x; y = (int)transform.position.y; click_parity = 0; GateCanvas = transform.Find("GateCanvas").gameObject; GateCanvas.SetActive(false); foreach (Transform child in GateCanvas.transform) { child.gameObject.SetActive(false); } StartCoroutine(SpawnAtRandomLocation()); //setupButtons (); }
public AddGate(GateCanvas gc, Gate gate) : base(gate, gc) { }
public RotateGate(Gate g, GateCanvas gc, double origin, double dest) : base(g, gc) { this.origin = origin; this.dest = dest; }
public MoveGate(Gate g, GateCanvas gc, Point origin, Point dest) : base(g, gc) { this.origin = origin; this.dest = dest; }
private void _adorner_MouseMove(object sender, MouseEventArgs e) { Point currentPoint = e.GetPosition(_topWindow); //currentPoint.X = currentPoint.X - 20; //currentPoint.Y = currentPoint.Y - 15; _delta = new Point(_initialMousePosition.X - currentPoint.X, _initialMousePosition.Y - currentPoint.Y); _scrollTarget = new Point(_initialMousePosition.X - _delta.X, _initialMousePosition.Y - _delta.Y); Canvas.SetLeft(_adorner, _scrollTarget.X); Canvas.SetTop(_adorner, _scrollTarget.Y); _adorner.AdornerDropState = DropState.CannotDrop; if (_dropTarget != null) { try { GeneralTransform t = _dropTarget.TransformToVisual(_adornerLayer); _dropBoundingBox = t.TransformBounds(new Rect(0, 0, _dropTarget.RenderSize.Width, _dropTarget.RenderSize.Height)); //Unnamed team edit: droptarget is the layer where gates are dropped. Boundingbox is the limits. GateCanvas gc = (GateCanvas)_dropTarget; //Unnamed team edit: conditions for checking the adorner against the boundries. Call scroller if true. if (currentPoint.X > _dropBoundingBox.Right - 50) { ((GateCanvas)_dropTarget).GCScroller.ScrollToHorizontalOffset( ((GateCanvas)_dropTarget).GCScroller.HorizontalOffset + 10); //Unnamed team edit: turn off the size canvas method in order to resize the canvas, to increase scroll area. gc.DisableSizeCanvas = true; //increase scroll area. gc.GC.Width += 5; } if (currentPoint.X < _dropBoundingBox.Left + 50) { ((GateCanvas)_dropTarget).GCScroller.ScrollToHorizontalOffset( ((GateCanvas)_dropTarget).GCScroller.HorizontalOffset - 10); } if (currentPoint.Y < _dropBoundingBox.Top + 50) { ((GateCanvas)_dropTarget).GCScroller.ScrollToVerticalOffset( ((GateCanvas)_dropTarget).GCScroller.VerticalOffset - 10); } if (currentPoint.Y > _dropBoundingBox.Bottom - 50) { ((GateCanvas)_dropTarget).GCScroller.ScrollToVerticalOffset( ((GateCanvas)_dropTarget).GCScroller.VerticalOffset + 10); gc.DisableSizeCanvas = true; gc.GC.Height += 5; } if (e.GetPosition(_adornerLayer).X > _dropBoundingBox.Left && e.GetPosition(_adornerLayer).X < _dropBoundingBox.Right && e.GetPosition(_adornerLayer).Y > _dropBoundingBox.Top && e.GetPosition(_adornerLayer).Y < _dropBoundingBox.Bottom) { _adorner.AdornerDropState = DropState.CanDrop; } } catch (Exception) { } } }