Inheritance: MonoBehaviour
Beispiel #1
0
    void GrabObject()
    {
        grabbing = true;
        RaycastHit[] hits;

        hits = Physics.SphereCastAll(transform.position, grabRadius, transform.forward, 0f, grabMask);
        if (hits.Length > 0)
        {
            menu.SetActive(true);
            int closestHit = 0;
            for (int i = 0; i < hits.Length; i++)
            {
                if (hits[i].distance < hits[closestHit].distance)
                {
                    closestHit = i;
                }
            }
            // Debug.LogFormat("You are trying to grab something.");
            CreateLine grabbed = gameObject.GetComponent <CreateLine>();
            grabbed.grabbed = true;
            grabbedObject   = hits[closestHit].transform.gameObject.transform.root.gameObject;
            currchicken     = grabbedObject;
            GameObject.Find(grabbedObject.name).GetComponent <HerdSimCore>().enabled = false;
            grabbedObject.GetComponent <Rigidbody>().isKinematic = true;
            grabbedObject.transform.position = transform.position + transform.forward * 3;
            grabbedObject.transform.parent   = transform;
        }
        else
        {
            // Debug.LogFormat("nothing was close enough.");
        }
    }
Beispiel #2
0
        private void OnMouseDown(object sender, MouseEventArgs e)
        {
            CreateLine newLine = new CreateLine(modelSpace.Project.CreateNewOperationId());

            float value = modelSpace.Project.Environment.GridSize.Value * 2;

            Vector3 point1 = modelSpace.SceneRender.DisplayedGridPoint;

            newLine.StartPoint = new Vector3WithUnit(point1, modelSpace.Project.Environment.DefaultLengthUnit);
            switch (modelSpace.Project.Environment.GridPlane)
            {
            case GridPlane.XY:
                newLine.EndPoint = new Vector3WithUnit(point1 + new Vector3(value, 0, 0), modelSpace.Project.Environment.DefaultLengthUnit);
                break;

            case GridPlane.XZ:
                newLine.EndPoint = new Vector3WithUnit(point1 + new Vector3(0, 0, value), modelSpace.Project.Environment.DefaultLengthUnit);
                break;

            case GridPlane.YZ:
                newLine.EndPoint = new Vector3WithUnit(point1 + new Vector3(0, value, 0), modelSpace.Project.Environment.DefaultLengthUnit);
                break;

            default:
                newLine.EndPoint = new Vector3WithUnit(point1 + new Vector3(value, 0, 0), modelSpace.Project.Environment.DefaultLengthUnit);
                break;
            }


            //Create the new single
            modelSpace.Project.CreateNewSingle(newLine);

            workspace.SelectTool();
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            ICanvas  canvas = null;
            ICommand command;

            while (true)
            {
                Console.Write("enter command : ");
                var userInput = Console.ReadLine();
                var input     = InputParser.ParseInput(userInput);
                switch (input.Command.ToUpper())
                {
                case "C":
                    command = new CreateCanvas();
                    ExecuteCommandAndDrawCanvas();
                    break;

                case "L":
                    command = new CreateLine(canvas);
                    ExecuteCommandAndDrawCanvas();
                    break;

                case "R":
                    command = new CreateRectangle(canvas);
                    ExecuteCommandAndDrawCanvas();
                    break;

                case "B":
                    command = new FillBucket(canvas);
                    ExecuteCommandAndDrawCanvas();
                    break;

                case "Q":
                    command = new ExitCommand();
                    command.ExecuteCommand(input.Args);
                    break;

                default:
                    break;

                    void ExecuteCommandAndDrawCanvas()
                    {
                        try
                        {
                            canvas = command.ExecuteCommand(input.Args);
                            Console.WriteLine(canvas.ToString());
                            //canvas.DrawCanvas();
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine($"Error: {e.Message}");
                        }
                    }
                }
            }
        }
        public void ExecuteCommand_Canvas_Not_Exists()
        {
            string[]   args       = new string[] { "1", "2", "6", "2" };
            CreateLine createLine = new CreateLine(null);
            var        exception  = Record.Exception(() => createLine.ExecuteCommand(args));

            Assert.NotNull(exception);
            Assert.IsType <ArgumentException>(exception);
            Assert.Equal($"{Constants.Command_Canvas_Not_Exists}", exception.Message);
        }
        public void ExecuteCommand_Invalid_Argument(string CommandName, string[] args)
        {
            CreateLine createLine = new CreateLine(_canvas.Object);
            var        exception  = Record.Exception(() => createLine.ExecuteCommand(args));

            Assert.NotNull(exception);
            Assert.IsType <ArgumentException>(exception);
            Assert.Equal($"{Constants.Command_Expect_Four_Positive_Arguments}", exception.Message);
            Assert.Equal("L", CommandName);
        }
Beispiel #6
0
 // Use this for initialization
 void Start()
 {
     //try to make a dict with scripts inheriting from same base
     createLine      = GetComponent <CreateLine> ();
     pointCreation   = GetComponent <PointCreation> ();
     shipControl     = GetComponent <ShipControl> ();
     squadronControl = GetComponent <SquadronControl> ();
     //shipControl.enabled = false;
     //createLine.Disable ();
     //pointCreation.Disable ();
     SetState("Main");
 }
    void Start()
    {
        line = FindObjectOfType <CreateLine>();
        for (int i = 0; i < dots.Length; i++)
        {
            dots[i] = GameObject.Find("Dots").transform.GetChild(i);
        }

        for (int i = 0; i < distanceTexts.Length; i++)
        {
            distanceTexts[i] = GameObject.Find("DistanceTexts").transform.GetChild(i).gameObject;
        }
    }
Beispiel #8
0
        public void CreateALine()
        {
            var mock = new Mock <ICanvas>();

            mock.Setup(canvas => canvas.Draw(0, 0, 1));
            mock.Setup(canvas => canvas.Draw(1, 0, 1));
            mock.Setup(canvas => canvas.Draw(2, 0, 1));

            CreateLine line = new CreateLine(mock.Object, 0, 0, 2, 0, 1);

            line.Execute();

            mock.Verify(canvas => canvas.Draw(0, 0, 1), Times.Once());
            mock.Verify(canvas => canvas.Draw(1, 0, 1), Times.Once());
            mock.Verify(canvas => canvas.Draw(2, 0, 1), Times.Once());
        }
        public void ExecuteCommand_Create_Line_Success()
        {
            CreateCanvas createCanvas = new CreateCanvas();

            string[] args1  = new string[] { "20", "4" };
            var      canvas = createCanvas.ExecuteCommand(args1);

            string[]   args       = new string[] { "1", "2", "6", "2" };
            CreateLine createLine = new CreateLine(canvas);
            var        result     = createLine.ExecuteCommand(args);

            Assert.NotNull(result);
            for (int i = 1; i <= 6; i++)
            {
                Assert.Equal('x', canvas.Cells[i, 2]);
            }
        }
Beispiel #10
0
    void DropObject()
    {
        grabbing = false;
        menu.SetActive(false);
        CreateLine grabbed = gameObject.GetComponent <CreateLine>();

        grabbed.grabbed = false;
        if (grabbedObject != null)
        {
            grabbedObject.transform.parent = null;
            HerdSimCore sim = GameObject.Find(grabbedObject.name).GetComponent <HerdSimCore>();
            sim._startPosition = transform.position + transform.forward * 3;
            Vector3 pos = transform.position + transform.forward * 3;
            sim._ground = new Vector3(pos.x, 10.0f, pos.z);
            if (mode.GetComponent <Gameplay>().sickness)
            {
                sim.Death();
                GameObject.Find(grabbedObject.name).GetComponent <HerdSimCore>().enabled = true;
                grabbedObject.GetComponent <AudioSource>().Stop();
            }
            grabbedObject.GetComponent <Rigidbody>().isKinematic = false;
            grabbedObject = null;
        }
    }
Beispiel #11
0
    // Use this for initialization
    void Start()
    {
        GameObject cart = GameObject.Find("Cart"); // cart
        GameObject slot = GameObject.Find("CartSlot"); // slot for cart to fit into on first graph
        GameObject slot2 = GameObject.Find("CartSlot1"); // slot for cart to fit into on second graph
        GameObject slot3 = GameObject.Find("CartSlot2"); // slot for cart to fit into on third graph

        // grab necessary billboard graph elements
        line2DPrefab = Resources.Load ("prefabs/UI LineRenderer") as GameObject;
        graphCanvas = GameObject.Find ("GraphCanvas");

        createLine = cart.GetComponent<CreateLine>();
        for (int i = 0; i < 3; i++) {
            createLine.createLine (i, CSVReader.topThreeCandidates [i]);
        }
        //createLine.createLine(2, "Palin"); // create 1st graph that cart can ride on
        //createLine.createLine(0, "Gingrich"); // create 2nd graph that cart can ride on
        //createLine.createLine(1, "Romney"); // create 3rd graph that cart can ride on

        GameObject line1 = Instantiate (line2DPrefab);
        GameObject line2 = Instantiate (line2DPrefab);
        GameObject line3 = Instantiate (line2DPrefab);

        line1.GetComponent<Make2DLine> ().Initialize (createLine.Positions2, CSVReader.topThreeCandidates [0]);
        line2.GetComponent<Make2DLine> ().Initialize (createLine.Positions1, CSVReader.topThreeCandidates [1]);
        line3.GetComponent<Make2DLine> ().Initialize (createLine.Positions3, CSVReader.topThreeCandidates [2]);
        Make2DLine.followParent (line1, graphCanvas);
        Make2DLine.followParent (line2, graphCanvas);
        Make2DLine.followParent (line3, graphCanvas);

        // load timeline prefab
        if (timelinePrefab == null) {
            timelinePrefab = (GameObject)Resources.Load ("prefabs/TimelineCanvas");
        }
        // create a timeline
        GameObject midTimelineR = (GameObject)Instantiate(
            timelinePrefab,
            // positions this 1/10 between the left and center line
            new Vector3(Mathf.Lerp(createLine.Positions1[0].x, createLine.Positions3[0].x, 0.1f), 0f, 0f),
            Quaternion.AngleAxis(270f, Vector3.up));
        midTimelineR.GetComponent<CoasterTimeline> ().Initialize(createLine.Positions1);

        slot.transform.position = createLine.Positions1[0];//initiate camera location to first point
        slot.transform.LookAt(createLine.Positions1[1]);//initiate camera aim to second point
        currentPercent = createLine.Positions1[0][1];
        nextPercent = createLine.Positions1[1][1];
        Debug.Log(currentPercent);

        slot2.transform.position = createLine.Positions2[0];//initiate camera location to first point
        slot2.transform.LookAt(createLine.Positions2[1]);//initiate camera aim to second point
        currentPercent = createLine.Positions2[0][1];
        nextPercent = createLine.Positions2[1][1];
        Debug.Log(currentPercent);

        slot3.transform.position = createLine.Positions3[0];//initiate camera location to first point
        slot3.transform.LookAt(createLine.Positions3[1]);//initiate camera aim to second point
        currentPercent = createLine.Positions3[0][1];
        nextPercent = createLine.Positions3[1][1];
        Debug.Log(currentPercent);

        waypointCart = createLine.Positions1[1]; //initiate travel-to point to second point
        candPositions = createLine.Positions1;

        waypointCart1 = createLine.Positions2[1]; //initiate travel-to point to second point
        candPositions1 = createLine.Positions2;

        waypointCart2 = createLine.Positions3[1]; //initiate travel-to point to second point
        candPositions2 = createLine.Positions3;

        //boost = createLine.boost;

        currentDate = createLine.Position1Dates[0].Date.ToString("d");
        nextDate = createLine.Position1Dates[1].Date.ToString("d");
        currentCandidate = createLine.Position1Candidate;
        pause = 1;
    }
    private void CreateLineMesh()
    {
        var meshCreator = new CreateLine(spline);

        GUILayout.Space(5);

        EditorGUI.BeginChangeCheck();
        float widht = EditorGUILayout.FloatField("Width", master.radius1);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(master, "Variable change");
            EditorUtility.SetDirty(master);
            master.radius1 = widht;
        }

        GUILayout.Space(5);

        EditorGUI.BeginChangeCheck();
        int lenghtSegmentsCount = EditorGUILayout.IntField("Lenght Segments", master.LenghtSegmentsCount);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(master, "Variable change");
            EditorUtility.SetDirty(master);
            master.LenghtSegmentsCount = lenghtSegmentsCount;
        }

        EditorGUI.BeginChangeCheck();
        int widthSegmentsCount = EditorGUILayout.IntField("Width Segments", master.WidthSegmentsCount);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(master, "Variable change");
            EditorUtility.SetDirty(master);
            master.WidthSegmentsCount = widthSegmentsCount;
        }

        GUILayout.Space(5);

        EditorGUI.BeginChangeCheck();
        bool twoSided = EditorGUILayout.Toggle("Two Sided", master.twoSided);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(master, "Variable change");
            EditorUtility.SetDirty(master);
            master.twoSided = twoSided;
        }

        EditorGUI.BeginChangeCheck();
        bool textureOrientation = EditorGUILayout.Toggle("Texture Orientation X/Y", master.textureOrientation);

        if (EditorGUI.EndChangeCheck())
        {
            Undo.RecordObject(master, "Variable change");
            EditorUtility.SetDirty(master);
            master.textureOrientation = textureOrientation;
        }

        meshCreator.LenghtSegmentsCount = master.LenghtSegmentsCount;
        meshCreator.WidthSegmentsCount  = master.WidthSegmentsCount;
        meshCreator.radius1             = master.radius1;
        meshCreator.twoSided            = master.twoSided;
        meshCreator.textureOrientation  = textureOrientation;

        master.meshCreator = meshCreator;
    }
        public void CanvasApp_Test()
        {
            List <string> commands = new List <string>
            {
                new string("C 20 4"),
                new string("L 1 2 6 2"),
                new string("L 6 3 6 4"),
                new string("R 14 1 18 3"),
                new string("B 10 3 o"),
            };

            ICanvas  canvas = null;
            ICommand command;

            foreach (string com in commands)
            {
                var input = InputParser.ParseInput(com);
                switch (input.Command.ToUpper())
                {
                case "C":
                    command = new CreateCanvas();
                    ExecuteCommandAndDrawCanvas();
                    break;

                case "L":
                    command = new CreateLine(canvas);
                    ExecuteCommandAndDrawCanvas();
                    break;

                case "R":
                    command = new CreateRectangle(canvas);
                    ExecuteCommandAndDrawCanvas();
                    break;

                case "B":
                    command = new FillBucket(canvas);
                    ExecuteCommandAndDrawCanvas();
                    break;

                case "Q":
                    command = new ExitCommand();
                    command.ExecuteCommand(input.Args);
                    break;

                default:
                    break;
                    void ExecuteCommandAndDrawCanvas()
                    {
                        try
                        {
                            canvas = command.ExecuteCommand(input.Args);
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine($"Error: {e.Message}");
                        }
                    }
                }
            }

            string[] expected = new string[6]
            {
                "----------------------",
                "|oooooooooooooxxxxxoo|",
                "|xxxxxxooooooox   xoo|",
                "|     xoooooooxxxxxoo|",
                "|     xoooooooooooooo|",
                "----------------------"
            };

            for (int i = 0; i < 6; i++)
            {
                StringBuilder sb = new StringBuilder();
                for (int j = 0; j < 22; j++)
                {
                    sb.Append(canvas.Cells[j, i]);
                }
                sb.Replace('\0', ' ');
                Assert.Equal(expected[i], sb.ToString());
            }
        }
Beispiel #14
0
    // Use this for initialization
    void Start()
    {
        GameObject cart  = GameObject.Find("Cart");        // cart
        GameObject slot  = GameObject.Find("CartSlot");    // slot for cart to fit into on first graph
        GameObject slot2 = GameObject.Find("CartSlot1");   // slot for cart to fit into on second graph
        GameObject slot3 = GameObject.Find("CartSlot2");   // slot for cart to fit into on third graph

        // grab necessary billboard graph elements
        line2DPrefab = Resources.Load("prefabs/UI LineRenderer") as GameObject;
        graphCanvas  = GameObject.Find("GraphCanvas");

        createLine = cart.GetComponent <CreateLine>();
        for (int i = 0; i < 3; i++)
        {
            createLine.createLine(i, CSVReader.topThreeCandidates [i]);
        }
        //createLine.createLine(2, "Palin"); // create 1st graph that cart can ride on
        //createLine.createLine(0, "Gingrich"); // create 2nd graph that cart can ride on
        //createLine.createLine(1, "Romney"); // create 3rd graph that cart can ride on

        GameObject line1 = Instantiate(line2DPrefab);
        GameObject line2 = Instantiate(line2DPrefab);
        GameObject line3 = Instantiate(line2DPrefab);

        line1.GetComponent <Make2DLine> ().Initialize(createLine.Positions2, CSVReader.topThreeCandidates [0]);
        line2.GetComponent <Make2DLine> ().Initialize(createLine.Positions1, CSVReader.topThreeCandidates [1]);
        line3.GetComponent <Make2DLine> ().Initialize(createLine.Positions3, CSVReader.topThreeCandidates [2]);
        Make2DLine.followParent(line1, graphCanvas);
        Make2DLine.followParent(line2, graphCanvas);
        Make2DLine.followParent(line3, graphCanvas);


        // load timeline prefab
        if (timelinePrefab == null)
        {
            timelinePrefab = (GameObject)Resources.Load("prefabs/TimelineCanvas");
        }
        // create a timeline
        GameObject midTimelineR = (GameObject)Instantiate(
            timelinePrefab,
            // positions this 1/10 between the left and center line
            new Vector3(Mathf.Lerp(createLine.Positions1[0].x, createLine.Positions3[0].x, 0.1f), 0f, 0f),
            Quaternion.AngleAxis(270f, Vector3.up));

        midTimelineR.GetComponent <CoasterTimeline> ().Initialize(createLine.Positions1);


        slot.transform.position = createLine.Positions1[0];     //initiate camera location to first point
        slot.transform.LookAt(createLine.Positions1[1]);        //initiate camera aim to second point
        currentPercent = createLine.Positions1[0][1];
        nextPercent    = createLine.Positions1[1][1];
        Debug.Log(currentPercent);

        slot2.transform.position = createLine.Positions2[0];     //initiate camera location to first point
        slot2.transform.LookAt(createLine.Positions2[1]);        //initiate camera aim to second point
        currentPercent = createLine.Positions2[0][1];
        nextPercent    = createLine.Positions2[1][1];
        Debug.Log(currentPercent);

        slot3.transform.position = createLine.Positions3[0];     //initiate camera location to first point
        slot3.transform.LookAt(createLine.Positions3[1]);        //initiate camera aim to second point
        currentPercent = createLine.Positions3[0][1];
        nextPercent    = createLine.Positions3[1][1];
        Debug.Log(currentPercent);

        waypointCart  = createLine.Positions1[1];        //initiate travel-to point to second point
        candPositions = createLine.Positions1;

        waypointCart1  = createLine.Positions2[1];        //initiate travel-to point to second point
        candPositions1 = createLine.Positions2;

        waypointCart2  = createLine.Positions3[1];        //initiate travel-to point to second point
        candPositions2 = createLine.Positions3;

        //boost = createLine.boost;

        currentDate      = createLine.Position1Dates[0].Date.ToString("d");
        nextDate         = createLine.Position1Dates[1].Date.ToString("d");
        currentCandidate = createLine.Position1Candidate;
        pause            = 1;
    }