private void Update() { if (Config.Instance.showVision) { AntDrawer.DrawPie(_t.position.x, _t.position.y, radius, Angle, lowerLimit, upperLimit, Color.green); } }
private void DrawLinks(List <AntAIDebuggerNode> aList, bool aVertical) { AntAIDebuggerNode node; for (int i = 0, n = aList.Count; i < n; i++) { node = aList[i]; if (node.isActive && node.links.Count > 0) { for (int j = 0, nj = node.links.Count; j < nj; j++) { if (node.links[j].Key.isActive) { if (aVertical) { AntDrawer.DrawVerticalSolidConnection(node.Output, node.links[j].Key.Input, node.links[j].Value, 1, 15.0f); } else { AntDrawer.DrawSolidConnection(node.Output, node.links[j].Key.Input, node.links[j].Value, 1, 15.0f); } } } } } }
public void Execute() { SpawnerNode spawner; for (int i = 0, n = _spawnerNodes.Count; i < n; i++) { spawner = _spawnerNodes[i]; if (spawner.Spawner.IsActive) { spawner.Spawner.Delay -= Time.deltaTime; if (spawner.Spawner.Delay <= 0.0f) { spawner.Spawner.Spawn(); spawner.Spawner.Delay = spawner.Spawner.spawnDelay; spawner.Spawner.IsActive = false; } if (Config.Instance.showDropperRecharge && spawner.Spawner.IsActive) { AntDrawer.DrawPie(spawner.entity.Position, 0.5f, 90.0f, 0.0f, (1 - (spawner.Spawner.Delay / spawner.Spawner.spawnDelay)) * 360.0f, Color.grey); } } } }
public void DrawLinks() { for (int i = 0, n = neighbors.Count; i < n; i++) { AntDrawer.DrawLine(position, neighbors[i].position, Color.white); } }
private void DrawWay() { for (int i = 0, n = _way.Count; i < n; i++) { if (i > 0) { AntDrawer.DrawLine(_way[i - 1], _way[i], Color.red); } } }
public bool IsSee(Vector2 aPoint) { if (AntMath.Distance(_t.position.x, _t.position.y, aPoint.x, aPoint.y) < radius) { float angle = AntMath.Angle(AntMath.AngleDeg(_t.position.x, _t.position.y, aPoint.x, aPoint.y)); float diff = AntMath.AngleDifferenceDeg(angle, Angle); if (AntMath.InRange(diff, lowerLimit, upperLimit)) { if (Config.Instance.showVision) { AntDrawer.DrawLine(_t.position.x, _t.position.y, aPoint.x, aPoint.y, Color.yellow); } return(true); } } return(false); }
private void DrawLinks() { Vector2 current; AntDrawer.BeginHandles(Handles.matrix); for (int i = 0, n = _self.wayPoints.Count; i < n; i++) { current = _self.wayPoints[i]; for (int j = 0; j < n; j++) { if (i != j && AntMath.Distance(current, _self.wayPoints[j]) <= _self.linkRadius) { AntDrawer.DrawLine(current, _self.wayPoints[j], Color.yellow); } } } AntDrawer.EndHandles(); }
public override void Update(float aDeltaTime) { DropperNode dropper; MagnetableNode item; float dist; for (int i = 0, n = _dropperNodes.Count; i < n; i++) { dropper = _dropperNodes[i]; dropper.Dropper.IsEmpty = true; // Проверяем все вещи на предмет их попадания в область дроппера. for (int j = 0, jn = _magnetableNodes.Count; j < jn; j++) { item = _magnetableNodes[j]; dist = AntMath.Distance(dropper.entity.Position, item.entity.Position); if (dist <= dropper.Dropper.observeRadius) { dropper.Dropper.IsEmpty = false; break; } } // Если дроппер пустой. if (dropper.Dropper.IsEmpty) { dropper.Dropper.Delay -= aDeltaTime; if (dropper.Dropper.Delay < 0.0f) { dropper.Dropper.DropItem(); dropper.Dropper.Delay = dropper.Dropper.rechargeTime; } } if (Config.Instance.showDropperRecharge && dropper.Dropper.IsEmpty) { AntDrawer.DrawPie(dropper.entity.Position, 0.3f, 90.0f, 0.0f, (1 - (dropper.Dropper.Delay / dropper.Dropper.rechargeTime)) * 360.0f, Color.grey); } } }
private void DrawCurrentStateLink() { // Реализация линка, что называется "в лоб" между текущим действием и состояним :) if (_genericNodes.Count >= 2) { var gNode = _genericNodes[1]; AntAIDebuggerNode sNode; for (int i = 0, n = _nodes.Count; i < n; i++) { sNode = _nodes[i]; if (gNode.value.Equals(sNode.value)) { AntDrawer.DrawVerticalSolidConnection( new Vector2(gNode.rect.x + gNode.rect.width * 0.5f, gNode.rect.y + 10.0f), new Vector2(sNode.rect.x + gNode.rect.width * 0.5f, sNode.rect.y + sNode.rect.height - 10.0f), Color.gray, -1, 50.0f); break; } } } }
private void OnSceneGUI() { bool dirty = false; bool removePressed = ((Event.current.modifiers & (EventModifiers.Command | EventModifiers.Control)) != 0); bool addPressed = ((Event.current.modifiers & (EventModifiers.Shift)) != 0); Handles.matrix = _self.transform.localToWorldMatrix; if (removePressed) { Handles.color = Color.red; for (int i = 0, n = _self.wayPoints.Count; i < n; i++) { if (Handles.Button(_self.wayPoints[i], Quaternion.identity, 0.05f, 0.05f, Handles.DotHandleCap)) { _self.wayPoints.RemoveAt(i); dirty = true; break; } } } else if (addPressed) { var mouse = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition).origin; var p = _self.transform.InverseTransformPoint(mouse); AntDrawer.BeginHandles(Handles.matrix); AntDrawer.DrawCircle((Vector2)p, _self.linkRadius, Color.yellow); AntDrawer.EndHandles(); if (Handles.Button(p, Quaternion.identity, 0.05f, 0.05f, Handles.DotHandleCap)) { _self.wayPoints.Add((Vector2)p); dirty = true; } Handles.color = Color.white; float s = HandleUtility.GetHandleSize(p) * 0.05f; for (int i = 0, n = _self.wayPoints.Count; i < n; i++) { Handles.DotHandleCap(0, _self.wayPoints[i], Quaternion.identity, s, EventType.dragUpdated); } HandleUtility.Repaint(); } else { Handles.color = Color.white; for (int i = 0, n = _self.wayPoints.Count; i < n; i++) { Vector2 p = _self.wayPoints[i]; Vector2 delta = DotHandle(p) - p; if (delta != Vector2.zero) { _self.wayPoints[i] = p + delta; dirty = true; } } } DrawLinks(); if (dirty) { EditorUtility.SetDirty(target); } }