Esempio n. 1
0
    /// <summary>
    /// Détruis le GameObject correspondant à une porte et retire leur association du dictionnaire.
    /// </summary>
    /// <param name="gateStruct"></param>
    private void RemoveGate(Circuit.GateStruct gateStruct)
    {
        GateObject gateObject = gateObjects[gateStruct];

        gateObjects.Remove(gateStruct);

        gateObject.FadeOutAndDestroy();
    }
Esempio n. 2
0
    /// <summary>
    /// Crée le GameObject correspondant à une porte.
    /// </summary>
    /// <param name="gateStruct"></param>
    private GateObject CreateGateObject(Circuit.GateStruct gateStruct)
    {
        Gate gate = gateStruct.gate;

        GateObject gateObject = ObjectFactory.Build(gate, _gridGame.transform);

        gateObject.gateStruct = gateStruct;

        return(gateObject);
    }
Esempio n. 3
0
    /**
     * ######################################################################################################
     * ################################################ GATE ################################################
     * ######################################################################################################
     */

    /// <summary>
    /// Calcule la position que doit occuper l'objet représentant la porte correspondante.
    /// </summary>
    /// <param name="gateObject"></param>
    private Vector3 ComputeGatePosition(GateObject gateObject)
    {
        Circuit.GateStruct gateStruct = gateObject.gateStruct;
        int row       = gateStruct.row;
        int col       = gateStruct.col;
        int nbEntries = gateStruct.gate.NbEntries;

        float col_offset = (nbEntries - 1) / 2f;

        Vector3 newPosition = new Vector3(-((_circuit.NbCol - 1) * localColWidth / 2) + localColWidth * (col + col_offset), 0, -localRowHeight * row + localRowHeight / 2 - gateHeightRatio * localRowHeight / 2);

        return(newPosition);
    }
Esempio n. 4
0
    /// <summary>
    /// Calcule et fait transiter les tuyaux d'une porte vers leurs nouvelles positions.
    /// </summary>
    /// <param name="gateStruct"></param>
    private void TransitionPipes(Circuit.GateStruct gateStruct)
    {
        GateObject gateObject = gateObjects[gateStruct];

        int row = gateStruct.row;
        int col = gateStruct.col;

        for (int i = 0; i < gateObject.pipes.Count; i++)
        {
            Vector3 newPosition = ComputeGridPosition(row, col + i);
            AnimationManager.Move(gateObject.pipes[i], newPosition, animationTime);
        }
    }
Esempio n. 5
0
    /**
     * ######################################################################################################
     * ############################################### PIPES ################################################
     * ######################################################################################################
     */

    /// <summary>
    /// Calcule et positionne les tuyaux d'une porte à leurs nouvelles positions
    /// </summary>
    /// <param name="gateStruct"></param>
    private void PositionPipes(Circuit.GateStruct gateStruct)
    {
        GateObject gateObject = gateObjects[gateStruct];

        int row = gateStruct.row;
        int col = gateStruct.col;

        for (int i = 0; i < gateObject.pipes.Count; i++)
        {
            Vector3 newPosition = ComputeGridPosition(row, col + i);
            gateObject.pipes[i].transform.localPosition = newPosition;
        }
    }
Esempio n. 6
0
    /// <summary>
    /// Calcule et fait transiter une porte vers sa nouvelle position.
    /// </summary>
    /// <param name="gateStruct"></param>
    private void TransitionGate(Circuit.GateStruct gateStruct)
    {
        GateObject gateObject     = gateObjects[gateStruct];
        GameObject gateGameObject = gateObject.body;

        if (gateGameObject == null)
        {
            return;
        }

        Vector3 newPosition = ComputeGatePosition(gateObject);

        AnimationManager.Move(gateGameObject, newPosition, animationTime);
    }
Esempio n. 7
0
    /// <summary>
    /// Calcule et positionne une porte vers sa nouvelle position.
    /// </summary>
    /// <param name="gateStruct"></param>
    private void PositionGate(Circuit.GateStruct gateStruct)
    {
        GateObject gateObject     = gateObjects[gateStruct];
        GameObject gateGameObject = gateObject.body;

        if (gateGameObject == null)
        {
            return;
        }

        Vector3 newPosition = ComputeGatePosition(gateObject);

        gateGameObject.transform.localPosition = newPosition;
    }
Esempio n. 8
0
 /// <summary>
 /// Recupère le "GateObject" de la ligne "row" et de la colonne "col"
 /// </summary>
 /// <returns> Le "GateObject"</returns>
 /// <param name="indexCol">Indice de la colonne </param>
 /// <param name="indexRow">Indice de la ligne </param>
 public GateObject GetGateObject(int row, int col)
 {
     Circuit.GateStruct gateStruct = _circuit.GetGate(row, col);
     return(gateObjects[gateStruct]);
 }
Esempio n. 9
0
    /// <summary>
    /// Crée le GameObject correspondant à une porte, l'ajoute au dictionnaire associant les entrées et leur object et met à jour sa position.
    /// </summary>
    /// <param name="gateStruct"></param>
    private void AddGate(Circuit.GateStruct gateStruct)
    {
        GateObject gateObject = CreateGateObject(gateStruct);

        gateObjects.Add(gateStruct, gateObject);
    }