protected override void OneUseDestroy()
 {
     base.OneUseDestroy();
     Scene.Remove(pathRenderer);
     pathRenderer = null;
     sfx.Stop();
 }
    // Start is called before the first frame update

    private void Awake()
    {
        pathFinder     = GetComponent <PathfinderAStar>();
        pathRenderer   = GetComponent <PathRenderer>();
        pathVisualizer = GetComponent <PathVisualizer>();
        unitHandler    = GameObject.FindObjectOfType <CurrentUnitHandler>();
    }
    void FingerGestures_OnFingerDown(int fingerIndex, Vector2 fingerPos)
    {
        PathRenderer path = paths[fingerIndex];

        path.Reset();
        path.AddPoint(fingerPos, fingerDownMarkerPrefab);
    }
Example #4
0
    void OnFingerDown(FingerDownEvent e)
    {
        PathRenderer path = paths[e.Finger.Index];

        path.Reset();
        path.AddPoint(e.Finger.Position, fingerDownMarkerPrefab);
    }
Example #5
0
    void OnFingerUp(FingerUpEvent e)
    {
        PathRenderer path = paths[e.Finger.Index];

        path.AddPoint(e.Finger.Position, fingerUpMarkerPrefab);
        UI.StatusText = "Finger " + e.Finger + " was held down for " + e.TimeHeldDown.ToString("N2") + " seconds";
    }
 void Update()
 {
     if (!rendered && Math.Abs(transform.position.x - Player.transform.position.x) <= settings.RenderDistance && Math.Abs(transform.position.y - Player.transform.position.y) <= settings.RenderDistance)
     {
         GrassRenderer grenderer = this.GetComponent(typeof(GrassRenderer)) as GrassRenderer;
         grenderer.Render();
         for (int i = 0; i < this.transform.childCount; i++)
         {
             if (this.transform.GetChild(i).GetComponent(typeof(PathRenderer)) != null)
             {
                 PathRenderer prenderer = this.transform.GetChild(i).GetComponent(typeof(PathRenderer)) as PathRenderer;
                 prenderer.Render();
             }
         }
         rendered = true;
     }
     else if (rendered && Math.Abs(transform.position.x - Player.transform.position.x) > settings.RenderDistance && Math.Abs(transform.position.y - Player.transform.position.y) > settings.RenderDistance)
     {
         GrassRenderer grenderer = this.GetComponent(typeof(GrassRenderer)) as GrassRenderer;
         grenderer.UnRender();
         for (int i = 0; i < this.transform.childCount; i++)
         {
             if (this.transform.GetChild(i).GetComponent(typeof(PathRenderer)) != null)
             {
                 PathRenderer prenderer = this.transform.GetChild(i).GetComponent(typeof(PathRenderer)) as PathRenderer;
                 prenderer.Render();
             }
         }
         rendered = false;
     }
 }
 private void Awake()
 {
     inputManager    = InputManager.instance;
     pathRenderer    = GetComponent <PathRenderer>();
     thisTransform   = transform;
     isInCameraFocus = false;
 }
    void FingerGestures_OnFingerUp(int fingerIndex, Vector2 fingerPos, float timeHeldDown)
    {
        PathRenderer path = paths[fingerIndex];

        path.AddPoint(fingerPos, fingerUpMarkerPrefab);

        UI.StatusText = "Finger " + fingerIndex + " was held down for " + timeHeldDown.ToString("N2") + " seconds";
    }
    void FingerGestures_OnFingerMoveEnd(int fingerIndex, Vector2 fingerPos)
    {
        UI.StatusText = "Stopped moving finger " + fingerIndex;

        PathRenderer path = paths[fingerIndex];

        path.AddPoint(fingerPos, fingerMoveEndMarkerPrefab);
    }
Example #10
0
        /// <summary>
        /// Wait for path to finish
        /// </summary>
        /// <returns></returns>
        private IEnumerator WaitForPathFinish()
        {
            yield return(null);

            yield return(new WaitUntil(() => agent.remainingDistance <= agent.stoppingDistance));

            PathRenderer.ResetPath();
        }
Example #11
0
 /// <summary>
 /// Puts a path renderer at the back of the list. Evicts the front of the list if at capacity.
 /// </summary>
 /// <param name="pathRenderer">The path renderer to put at the back of the list.</param>
 private void PushBack(PathRenderer pathRenderer)
 {
     if (pathList.Count >= CAPACITY)
     {
         pathList.PopFront().SetVisible(false);
     }
     pathList.PushBack(pathRenderer);
     pathRenderer.SetVisible(outlinePath);
 }
Example #12
0
    /// <summary>
    /// Checks for changing the displayed line when the player moves forwards.
    /// </summary>
    /// <param name="player">The player moving forward.</param>
    private void CheckForward(Player player)
    {
        PathRenderer nextLine = pathList.PeekFront().nextLine;

        if (nextLine != null && nextLine.GetBackDistance(player) < pathList.PeekBack().GetFrontDistance(player))
        {
            PushFront(nextLine);
        }
    }
Example #13
0
    /// <summary>
    /// Checks for changing the displayed line when the player moves backwards.
    /// </summary>
    /// <param name="player">The player moving backwards.</param>
    private void CheckBackward(Player player)
    {
        PathRenderer prevLine = pathList.PeekBack().prevLine;

        if (prevLine != null && prevLine.GetFrontDistance(player) < pathList.PeekFront().GetBackDistance(player))
        {
            PushBack(prevLine);
        }
    }
Example #14
0
 private void Awake()
 {
     if (!Instance)
     {
         Instance = this;
     }
     else
     {
         Destroy(gameObject);
     }
 }
Example #15
0
 private void HidePath()
 {
     Path[] paths = DemosHoster.GetComponentsInChildren <Path>(true);
     foreach (Path path in paths)
     {
         PathRenderer pathRenderer = path.GetComponent <PathRenderer>();
         Destroy(pathRenderer);
         LineRenderer lineRenderer = path.GetComponent <LineRenderer>();
         Destroy(lineRenderer);
     }
 }
Example #16
0
 /// <summary>
 /// Draw current agent path
 /// </summary>
 /// <returns></returns>
 private IEnumerator DrawPath()
 {
     while (true)
     {
         if (agent.hasPath)
         {
             PathRenderer.DrawPath(agent.path.corners);
         }
         yield return(new WaitForSeconds(0.25f));
     }
 }
    protected override void Start()
    {
        base.Start();

        UI.StatusText = "Drag your fingers anywhere on the screen";

        // create one PathRenderer per finger
        paths = new PathRenderer[FingerGestures.Instance.MaxFingers];
        for( int i = 0; i < paths.Length; ++i )
            paths[i] = new PathRenderer( i, lineRendererPrefab );
    }
Example #18
0
        private void RenderPathSegList(SvgGraphicsElement element, SvgPathSegList segs)
        {
            var reenderer = new PathRenderer();

            foreach (var seq in segs)
            {
                seq.Accept(reenderer);
            }
            var path = reenderer.Path();

            this.RenderShapeToCanvas(element, path);
        }
Example #19
0
        public void Render(D2D.RenderTarget renderTarget, FrameworkElement rootElement, FrameworkElement fe)
        {
            var textBlock = fe as TextBlock;

            if (textBlock != null)
            {
                TextBlockRenderer.Render(this, renderTarget, rootElement, textBlock);
                return;
            }

            var rectangle = fe as Rectangle;

            if (rectangle != null)
            {
                RectangleRenderer.Render(this, renderTarget, rootElement, rectangle);
                return;
            }

            var border = fe as Border;

            if (border != null)
            {
                BorderRenderer.Render(this, renderTarget, rootElement, border);
                return;
            }

            var ellipse = fe as Ellipse;

            if (ellipse != null)
            {
                EllipseRenderer.Render(this, renderTarget, rootElement, ellipse);
                return;
            }

            var line = fe as Line;

            if (line != null)
            {
                LineRenderer.Render(this, renderTarget, rootElement, line);
                return;
            }

            var path = fe as Path;

            if (path != null)
            {
                PathRenderer.Render(this, renderTarget, rootElement, path);
                return;
            }

            FrameworkElementRenderer.Render(this, renderTarget, rootElement, fe);
        }
Example #20
0
 /// <summary>
 /// Subscribes to all connectors
 /// </summary>
 void Start()
 {
     m_initialPosition = transform.position;
     m_rigidbody       = GetComponent <Rigidbody2D>();
     m_renderer        = GetComponent <SpriteRenderer>();
     m_pathRenderer    = FindObjectOfType <PathRenderer>();
     m_defaultLayer    = m_renderer.sortingLayerID;
     m_fallingLayer    = SortingLayer.NameToID("PlayerFalling");
     if (m_pathRenderer == null)
     {
         Debug.LogWarning("WARNING! Player is missing reference to path renderer");
     }
 }
Example #21
0
    LineRenderer lineRenderer;           // line renderer reference

    #endregion

    #region //======            MONOBEHAVIOURS           ======\\

    private void Awake()
    {
        if (Instance == null)
        {
            Instance = this;
        }
        else
        {
            Destroy(this);
        }

        lineRenderer = GetComponent <LineRenderer>();
    }
Example #22
0
    protected override void Start()
    {
        base.Start();

        UI.StatusText = "Drag your fingers anywhere on the screen";

        // create one PathRenderer per finger
        paths = new PathRenderer[FingerGestures.Instance.MaxFingers];
        for (int i = 0; i < paths.Length; ++i)
        {
            paths[i] = new PathRenderer(i, lineRendererPrefab);
        }
    }
Example #23
0
        public void UseSource(object source)
        {
            _source = source as PathRenderer;

            Lighting.IsChecked         = _source.Scene.LightingEnabled;
            Shadows.IsChecked          = _source.Scene.ShadowsEnabled;
            SoftShadows.IsChecked      = _source.Scene.SoftShadows;
            AmbientOcclusion.IsChecked = _source.Scene.AmbientOcclusion;
            GISamples.Text             = _source.Scene.GISamples.ToString();
            FOV.Text            = _source.MainCamera.FOV.ToString();
            CameraDistance.Text = _source.MainCamera.MaxDistance.ToString();

            BatchSize.Text = _source.BatchSize.ToString();
        }
Example #24
0
    void PrefetchData()
    {
        string tmpPath   = pathRenderer.pathFile;
        bool   tmpToggle = pathRenderer.loadItemDataFromTest;

        for (int i = 0; i < commands.Length; i++)
        {
            pathRenderer.pathFile             = commands[i].path;
            pathRenderer.loadItemDataFromTest = commands[i].testDataToggle;
            commands[i].data = PathRenderer.LoadPathFile(commands[i].path);
            commands[i].data = PathRenderer.ScalePathData(commands[i].data, pathRenderer.scaleOnLoad, pathRenderer.offsetOnLoad);
        }
        pathRenderer.pathFile             = tmpPath;
        pathRenderer.loadItemDataFromTest = tmpToggle;
    }
Example #25
0
    public GameObject GenerateTrialWithPath()
    {
        GameObject trialObject = new GameObject("TrialWithPath");

        Configuration.GenerateTrial().transform.parent = trialObject.transform;

        GameObject renderer = GameObject.Instantiate(PathRenderer, trialObject.transform);

        PathRenderer r = renderer.GetComponent <PathRenderer>();

        r.PathConfiguration = this;
        r.GenerateRenderedPath();

        return(trialObject);
    }
Example #26
0
        public override void Added(Scene scene)
        {
            base.Added(scene);

            // Offset the points to their position, relative to the room's position.
            Rectangle bounds      = SceneAs <Level>().Bounds;
            Vector2   levelOffset = new Vector2(bounds.Left, bounds.Top);

            for (int i = 0; i < originalNodes.Length; i++)
            {
                targets[i] = originalNodes[i] + levelOffset;
            }

            // Creating the Path Renderer.
            scene.Add(pathRenderer = new PathRenderer(this));
        }
Example #27
0
        void Start()
        {
            mesh = PathRenderer.Build(count);

            Random.InitState(0);

            segmentBuffer = new ComputeBuffer(count, Marshal.SizeOf(typeof(Segment_t)));
            var segments = new Segment_t[count];

            for (int i = 0; i < count; i++)
            {
                segments[i].position = new Vector3(Random.value - 0.5f, i, Random.value - 0.5f);
            }
            segmentBuffer.SetData(segments);

            vertexBuffer = new ComputeBuffer(count * 2, Marshal.SizeOf(typeof(Vector3)));
            vertexBuffer.SetData(new Vector3[vertexBuffer.count]);
        }
Example #28
0
    void OnFingerMove(FingerMotionEvent e)
    {
        PathRenderer path = paths[e.Finger.Index];

        if (e.Phase == FingerMotionPhase.Started)
        {
            UI.StatusText = "Started moving " + e.Finger;
            // path.AddPoint( e.Position, fingerMoveBeginMarkerPrefab );
        }
        else if (e.Phase == FingerMotionPhase.Updated)
        {
            path.AddPoint(e.Position);
        }
        else
        {
            UI.StatusText = "Stopped moving " + e.Finger;
            //  path.AddPoint( e.Position, fingerMoveEndMarkerPrefab );
        }
    }
Example #29
0
 /// <summary>
 /// Fills the path list with the first lines in the path.
 /// </summary>
 /// <param name="startPath">The start of the path being rendered.</param>
 public void Init(PathComponent startPath)
 {
     if (pathList.Count > 0)
     {
         foreach (PathRenderer pathRenderer in pathList)
         {
             pathRenderer.SetVisible(false);
         }
         pathList.Clear();
     }
     if (startPath != null)
     {
         PathRenderer current = startPath.firstLine;
         while (pathList.Count < CAPACITY && current != null)
         {
             PushFront(current);
             current = current.nextLine;
         }
     }
 }
        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();

            if (GUILayout.Button("A*"))
            {
                var controller = (Controller)target;
                var nodes      = controller.NodesTree
                                 .Select(kdTreeNode => kdTreeNode.Value)
                                 .Where(informer => informer)
                                 .ToList();

                var from = nodes.Find(x => x.transform.position == controller.From);
                var to   = nodes.Find(x => x.transform.position == controller.To);

                DebugInformationAlgorithm debugInformation;
                controller.AStar(from, to, controller.Radius, true, out debugInformation);
                controller.InitializeDebugInfo();
                controller.DebugManagerAStar.AddPath(debugInformation);
            }

            if (GUILayout.Button("Test"))
            {
                Test();
            }

            if (GUILayout.Button("Test100"))
            {
                for (var i = 0; i < 100; i++)
                {
                    Test();
                }
            }

            if (GUILayout.Button("Map update"))
            {
                var controller = (Controller)target;
                controller.RemoveEmpty();
                PathRenderer.MapRebuild();
            }
        }
        public override void Awake(Scene scene)
        {
            /*
             * Yes, I'm doing this before base.Awake, because ConnectedSolid will
             * change the original width and height of this entity, because
             * of how the game handles multiple colliders, and adds them.
             */
            scene.Add(path = new PathRenderer(this));

            base.Awake(scene);
            if (Theme == SwapBlock.Themes.Normal)
            {
                greenTiles = AutoTile(customGreenTextures ? customGreenEdgeTiles : GreenEdgeTiles, customGreenTextures ? customGreenInnerCornerTiles : GreenInnerCornerTiles, out greenBgTiles, false, false);
                redTiles   = AutoTile(customRedTextures ? customRedEdgeTiles : RedEdgeTiles, customRedTextures ? customRedInnerCornerTiles : RedInnerCornerTiles, out redBgTiles, false, false);
            }
            else
            {
                greenTiles = AutoTile(customGreenTextures ? customGreenEdgeTiles : MoonGreenEdgeTiles, customGreenTextures ? customGreenInnerCornerTiles : MoonGreenInnerCornerTiles, out greenBgTiles, false, false);
                redTiles   = AutoTile(customRedTextures ? customRedEdgeTiles : MoonRedEdgeTiles, customRedTextures ? customRedInnerCornerTiles : MoonRedInnerCornerTiles, out redBgTiles, false, false);
            }

            greenTiles.RemoveAll(image => greenBgTiles.Contains(image));
            redTiles.RemoveAll(image => redBgTiles.Contains(image));

            Add(middleRed);
            Add(middleGreen);

            // Making the track rectangle always contain the connected swap block, entirely.
            int x1 = (int)MathHelper.Min(GroupBoundsMin.X, offset.X + GroupBoundsMin.X);
            int y1 = (int)MathHelper.Min(GroupBoundsMin.Y, offset.Y + GroupBoundsMin.Y);
            int x2 = (int)MathHelper.Max(GroupBoundsMax.X, offset.X + GroupBoundsMax.X);
            int y2 = (int)MathHelper.Max(GroupBoundsMax.Y, offset.Y + GroupBoundsMax.Y);

            moveRect = new Rectangle(x1, y1, x2 - x1, y2 - y1);

            scene.Add(bgTiles = new ConnectedSwapBlockBGTilesRenderer(this));
        }