public void DrawWires()
    {
        if (enabled)
        {
            GizmoTurtle.WithGizmoColor(Color.yellow, () =>
            {
                Gizmos.DrawWireSphere(transform.position, 0.1f);
            });
        }
        else
        {
            GizmoTurtle.WithGizmoColor(Color.gray, () =>
            {
                Gizmos.DrawWireSphere(transform.position, 0.1f);
            });
        }

        GizmoTurtle.WithGizmoColor(Color.white, () =>
        {
            foreach (FieldInfo field in GetType().GetFields(BindingFlags.Instance | BindingFlags.Public))
            {
                List <CircuitComponent> components = field.GetValue(this) as List <CircuitComponent>;
                if (components != null)
                {
                    foreach (CircuitComponent component in components)
                    {
                        if (field.Name.ToLower() != "next")
                        {
                            DrawWire(Regex.Replace(field.Name, @"[A-Z]", " $0").Trim(), component.transform.position);
                        }
                        else
                        {
                            DrawWire("", component.transform.position);
                        }
                    }
                }

                if (this is CircuitDictionaryComponent)
                {
                    foreach (CircuitDictionaryItem item in (this as CircuitDictionaryComponent).transitions)
                    {
                        foreach (CircuitComponent component in item.transition)
                        {
                            if (item.transitionName.ToLower() != "next")
                            {
                                DrawWire(Regex.Replace(item.transitionName, @"[A-Z]", " $0").Trim(), component.transform.position);
                            }
                            else
                            {
                                DrawWire("", component.transform.position);
                            }
                        }
                    }
                }
            }
        });
    }
Пример #2
0
    public void OnDrawGizmos()
    {
        DrawWires();

        if (hitbox != null)
        {
            GizmoTurtle turtle = new GizmoTurtle(transform.position);
            GizmoFont   font   = new RobotLetters(turtle, 0.4f);

            turtle.PenUp().RotateRight(90).Forward(0.12f).RotateLeft(90).Forward(0.15f);
            font.Write(hitbox.name);
        }
    }
    void OnDrawGizmos()
    {
        GizmoTurtle turtle = new GizmoTurtle(transform.position);

        turtle.PenUp().Forward(0.3f);
        turtle.PenDown().RotateLeft(90).Forward(0.1f).RotateLeft(90).Forward(0.2f)
        .RotateRight(90).Forward(0.2f).RotateLeft(90).Forward(0.2f).RotateLeft(90).Forward(0.2f)
        .RotateRight(90).Forward(0.2f).RotateLeft(90).Forward(0.2f).RotateLeft(90).Forward(0.2f)
        .RotateRight(90).Forward(0.2f).RotateLeft(90).Forward(0.2f).RotateLeft(90).Forward(0.2f)
        .RotateRight(90).Forward(0.2f).RotateLeft(90).Forward(0.1f);

        DrawWires();
    }
    void DrawWire(string label, Vector3 to)
    {
        GizmoTurtle  turtle = new GizmoTurtle(new Ray(transform.position, to - transform.position));
        RobotLetters font   = new RobotLetters(turtle, 0.1f);

        turtle.PenDown().Forward(0.2f).RotateLeft(90).Forward(0.05f).RotateRight(120).Forward(0.1f).RotateRight(150).Forward(0.1f).RotateRight(180);
        turtle.PenUp().Forward(0.15f);

        font.Write(Regex.Replace(label, @"[A-Z]", " $0").Trim());

        turtle.PenUp().Forward(0.05f);
        turtle.PenDown().Forward(Vector3.Distance(turtle.Position, to));
    }
    public void DrawLabel()
    {
        GizmoTurtle.WithGizmoColor(Color.white, () =>
        {
            GizmoTurtle turtle = new GizmoTurtle(transform.position);
            RobotLetters font  = new RobotLetters(turtle, 0.1f);

            turtle.Forward(0.15f);
            turtle.RotateRight(90);
            turtle.Forward(0.02f);
            turtle.RotateLeft(90);
            font.Write(Regex.Replace(name, @"[A-Z]", " $0").Trim());
        });
    }