예제 #1
0
    public void FRenderSet(List <DATA_ORoute> rRoutes, List <ED_RP_Rec> rRecs, int grdToYards, ED_RP_Grd grd)
    {
        // ------------ delete the old graphics from the scene.
        ED_RP_GFX_Rt[] rtGfx = FindObjectsOfType <ED_RP_GFX_Rt>();
        foreach (ED_RP_GFX_Rt g in rtGfx)
        {
            Destroy(g.gameObject);
        }

        // ------------ render the routes
        for (int i = 0; i < rRoutes.Count; i++)
        {
            for (int j = 0; j < rRecs.Count; j++)
            {
                if (rRecs[j].mTag == rRoutes[i].mOwner)
                {
                    // now render the route from his perspective.
                    TDC_IntVec iVecConv = new TDC_IntVec(rRecs[j].mIxX, rRecs[j].mIxY);

                    for (int k = 1; k < rRoutes[i].mSpots.Count; k++)
                    {
                        Vector2    vSpot = rRoutes[i].mSpots[k];
                        TDC_IntVec v     = new TDC_IntVec((int)vSpot.x + iVecConv.x, (int)vSpot.y + iVecConv.y);
                        vSpot = rRoutes[i].mSpots[k - 1];
                        TDC_IntVec   v1 = new TDC_IntVec((int)vSpot.x + iVecConv.x, (int)vSpot.y + iVecConv.y);
                        ED_RP_GFX_Rt g  = Instantiate(GFX_RtNd, grd.mSquares[v.x, v.y].transform.position, transform.rotation);
                        g.transform.SetParent(grd.transform);

                        RenderTrail(grd.mSquares[v.x, v.y].transform.position, grd.mSquares[v1.x, v1.y].transform.position, grd);
                    }
                }
            }
        }
    }
예제 #2
0
 // Massive side effects, but it's worth it for readibility. Passing in state to make it more obvious.
 private void MoveSelectedEntity(int wd, int ht, ED_RP_Man.STATE state)
 {
     if(state == ED_RP_Man.STATE.S_SELECTED_PLAYER){
         TDC_IntVec v = FuncGetNewPos(cMan.rRecs[cMan.ixRec].mIxX, cMan.rRecs[cMan.ixRec].mIxY, wd, ht, cMan.rGrd.mAxLth);
         cMan.rRecs[cMan.ixRec].mIxX = v.x; cMan.rRecs[cMan.ixRec].mIxY = v.y;
         cMan.rRecs[cMan.ixRec].transform.position = cMan.rGrd.mSquares[cMan.rRecs[cMan.ixRec].mIxX, cMan.rRecs[cMan.ixRec].mIxY].transform.position;
     }else if(state == ED_RP_Man.STATE.S_SELECTED_HOOP){
         TDC_IntVec v = FuncGetNewPos(cMan.rHoops[cMan.ixHoop].mIxX, cMan.rHoops[cMan.ixHoop].mIxY, wd, ht, cMan.rGrd.mAxLth);
         cMan.rHoops[cMan.ixHoop].mIxX = v.x; cMan.rHoops[cMan.ixHoop].mIxY = v.y;
         cMan.rHoops[cMan.ixHoop].transform.position = cMan.rGrd.mSquares[cMan.rHoops[cMan.ixHoop].mIxX, cMan.rHoops[cMan.ixHoop].mIxY].transform.position;
     }
 }
예제 #3
0
    public List <Vector2> FConvNodesToRoute(TDC_IntVec recPos)
    {
        List <Vector2> spots = new List <Vector2>();

        for (int i = 0; i < rRouteNodes.Count; i++)
        {
            Vector2 v = new Vector2();
            v.x  = rRouteNodes[i].mIxX; v.y = rRouteNodes[i].mIxY;
            v.x -= recPos.x; v.y -= recPos.y;
            spots.Add(v);
        }

        return(spots);
    }