コード例 #1
0
    ////////////////////////////////////////////////
    ////////////////////////////////////////////////

    void Awake()
    {
        if (_instance != null && _instance != this)
        {
            Destroy(gameObject);
        }
        else
        {
            _instance = this;
        }
    }
コード例 #2
0
    ////////////////////////////////////////////////
    ////////////////////////////////////////////////


    public static void BuildEnvironmentNodes()
    {
        WorldNodeBuilder.CalculateWorldNodeVects();
        WorldNodeBuilder.CreateWorldNodes();
        WorldNodeBuilder.CalculateWorldNodeNeighbours();

        foreach (WorldNode worldNode in WorldNodeBuilder.GetWorldNodes().Values)
        {
            if (worldNode.NodeData != null)
            {
                MapNodeBuilder.CreateMapNodesForWorldNode(worldNode);
            }
        }
        // LayerManager.AssignLayerCountsToWorldAndMapNodes(WorldNodeBuilder.GetWorldNodes());
    }
コード例 #3
0
    ////////////////////////////////////////////////
    ////////////////////////////////////////////////
    public static void CreatePlayerShip(NetworkNodeStruct nodeStruct, int playerID)
    {
        Vector3Int nodeID = new Vector3Int(Mathf.FloorToInt(nodeStruct.NodeID.x), Mathf.FloorToInt(nodeStruct.NodeID.y), Mathf.FloorToInt(nodeStruct.NodeID.z));

        WorldNodeStruct worldNodeData = new WorldNodeStruct()
        {
            NodeID  = nodeID,
            CurrLoc = new Vector3Int(Mathf.FloorToInt(nodeStruct.CurrLoc.x), Mathf.FloorToInt(nodeStruct.CurrLoc.y), Mathf.FloorToInt(nodeStruct.CurrLoc.z)),
            CurrRot = new Vector3Int(Mathf.FloorToInt(nodeStruct.CurrRot.x), Mathf.FloorToInt(nodeStruct.CurrRot.y), Mathf.FloorToInt(nodeStruct.CurrRot.z)),
        };

        WorldNode worldNode = WorldBuilder._nodeBuilder.CreateWorldNode(worldNodeData);

        LocationManager.SaveNodeTo_CLIENT(nodeID, worldNode);

        BasePlayerData playerData = PlayerManager.GetPlayerData(playerID);

        worldNode.transform.eulerAngles = new Vector3Int(0, 90, 0);

        worldNode.NodeData.worldNodeMapPieces = playerData.shipMapPieces;

        MapNodeBuilder.CreateMapNodesForWorldNode(worldNode);

        Dictionary <Vector3Int, WorldNode> dict = new Dictionary <Vector3Int, WorldNode>();

        dict.Add(nodeID, worldNode);
        //LayerManager.AssignLayerCountsToWorldAndMapNodes(dict);

        //if (playerID == PlayerManager.PlayerID)
        //{
        foreach (MapNode mapNode in worldNode.mapNodes)
        {
            mapNode.ActivateMapPiece(true);
        }
        //}

        if (playerData.playerID == PlayerManager.PlayerID)
        {
            MoveShip(playerData, worldNode);

            worldNode.transform.Find("RotationalNode").GetComponent <RotationalNode>()._rotate = true;
            PlayerManager.PlayersShipLoaded();
        }
    }
コード例 #4
0
    ////////////////////////////////////////////////
    ////////////////////////////////////////////////


    public static void BuildWorldNodes()
    {
        List <Vector3> worldVects;
        Dictionary <WorldNode, List <MapNode> >       worldAndWrapperNodes;
        Dictionary <WorldNode, List <ConnectorNode> > worldAndconnectorNodes;
        Dictionary <WorldNode, List <KeyValuePair <Vector3, int> > > connectorVectsAndRotations;

        List <List <Vector3> > container = WorldNodeBuilder.GetWorld_Outer_DockingVects();

        worldVects = container[0];

        WorldNodeBuilder.CreateWorldNodes(worldVects);
        List <WorldNode> worldNodes = WorldNodeBuilder.GetWorldNodes();

        WorldNodeBuilder.GetWorldNodeNeighbours();
        MapNodeBuilder.CreateMapNodes(worldNodes);

        connectorVectsAndRotations = ConnectorNodeBuilder.GetConnectorVects(worldNodes);
        worldAndconnectorNodes     = ConnectorNodeBuilder.CreateConnectorNodes(connectorVectsAndRotations);
    }