예제 #1
0
 public Pathfinder(Node start, Node target, PathfindMaster.PathfindingJobComplete callback)
 {
     startPosition    = start;
     endPosition      = target;
     completeCallback = callback;
     gridBase         = GridBase.GetInstance();
 }
예제 #2
0
    //AI pathing across the grid
    void MoveToTarget(Vector3 position)
    {
        //Determines the end (target) node.
        Node targetNode = GridBase.GetInstance().GetNodeFromVector3(position);

        Pathfinding.PathfindMaster.GetInstance().RequestPathfind(currNode, targetNode, PathfindCallback);
    }
예제 #3
0
        void Start()
        {
            gridBase = GridBase.GetInstance();
            manager  = LevelManager.GetInstance();
            ui       = InterfaceManager.GetInstance();

            PaintAll();
        }
예제 #4
0
    private void Start()
    {
        gridBase = GridBase.GetInstance();

        // InitLevelObjects();
    }
예제 #5
0
 void MonitorPosition()
 {
     //This is the fast and dirty way.
     currNode = GridBase.GetInstance().GetNodeFromVector3(transform.position);
 }
예제 #6
0
    void LoadLevelActual(LevelSaveable levelSaveable)
    {
        // Level Objects
        for (int i = 0; i < levelSaveable.saveLevelObjects_List.Count; i++)
        {
            SaveableLevelObject s_obj = levelSaveable.saveLevelObjects_List[i];
            Node nodeToPlace          = GridBase.GetInstance().grid[s_obj.posX, s_obj.posZ];

            GameObject go = Instantiate(
                ResourceManager.GetInstance().GetObjBase(s_obj.obj_Id).objPrefab,
                nodeToPlace.vis.transform.position,
                Quaternion.Euler(
                    s_obj.rotX,
                    s_obj.rotY,
                    s_obj.rotZ))
                            as GameObject;

            nodeToPlace.placedObj               = go.GetComponent <Level_Object>();
            nodeToPlace.placedObj.gridPosX      = nodeToPlace.nodePosX;
            nodeToPlace.placedObj.gridPosZ      = nodeToPlace.nodePosZ;
            nodeToPlace.placedObj.worldRotation = nodeToPlace.placedObj.transform.localEulerAngles;
        }

        // Stackale Objeects
        for (int i = 0; i < levelSaveable.saveStackableObjects_List.Count; i++)
        {
            SaveableLevelObject s_obj = levelSaveable.saveStackableObjects_List[i];
            Node nodeToPlace          = GridBase.GetInstance().grid[s_obj.posX, s_obj.posZ];

            GameObject go = Instantiate(
                ResourceManager.GetInstance().GetStackedObjsBase(s_obj.obj_Id).objPrefab,
                nodeToPlace.vis.transform.position,
                Quaternion.Euler(
                    s_obj.rotX,
                    s_obj.rotY,
                    s_obj.rotZ))
                            as GameObject;

            Level_Object stack_obj = go.GetComponent <Level_Object>();
            stack_obj.gridPosX = nodeToPlace.nodePosX;
            stack_obj.gridPosZ = nodeToPlace.nodePosZ;
            nodeToPlace.stackedObjs.Add(stack_obj);
        }

        // Paint Tiles
        for (int i = 0; i < levelSaveable.saveNodeObjectsList.Count; i++)
        {
            Node node = GridBase.GetInstance().grid[levelSaveable.saveNodeObjectsList[i].posX,
                                                    levelSaveable.saveNodeObjectsList[i].posZ];

            node.vis.GetComponent <NodeObject>().UpdateNodeObject(node, levelSaveable.saveNodeObjectsList[i]);
        }

        // Walls
        for (int i = 0; i < levelSaveable.saveWallsList.Count; i++)
        {
            WallObjectSaveable s_wall = levelSaveable.saveWallsList[i];
            Node nodeToPlace          = GridBase.GetInstance().grid[s_wall.levelObject.posX, s_wall.levelObject.posZ];

            GameObject go = Instantiate(ResourceManager.GetInstance().wallPrefab,
                                        nodeToPlace.vis.transform.position,
                                        Quaternion.identity)
                            as GameObject;

            Level_Object lvlObj = go.GetComponent <Level_Object>();
            lvlObj.gridPosX = nodeToPlace.nodePosX;
            lvlObj.gridPosZ = nodeToPlace.nodePosZ;
            Level_WallObj wall_Obj = go.GetComponent <Level_WallObj>();

            wall_Obj.UpdateWall(s_wall.wallObject.direction);
            wall_Obj.UpdateCorners(s_wall.wallObject.corner_a,
                                   s_wall.wallObject.corner_b, s_wall.wallObject.corner_c);
        }
    }