예제 #1
0
    public bool AgregarSeccion(SeccionPista seccionPista)
    {
        if (seccionPista == null)
        {
            return(false);
        }

        if (seccionInicial == null)
        {
            seccionPista.transform.parent        = transform;
            seccionPista.transform.localPosition = Vector3.zero;
            seccionInicial = seccionPista;
        }
        else
        {
            SeccionPista ultimaSeccion = ObtenerUltimaSeccion();
            Transform    ultimoEnlace  = ultimaSeccion.vecino1 == null ? ultimaSeccion.enlace1 : ultimaSeccion.enlace2;

            //TODO: revisar superposicion de secciones caso 1

            //por ahora asumimos enlace 1
            seccionPista.HacerVecino1(ultimaSeccion, ultimoEnlace);

            //TODO: en caso de falla, revisar superposicion de secciones caso 2
        }

        return(true);
    }
예제 #2
0
	public bool AgregarSeccion( SeccionPista seccionPista ) {
		if( seccionPista == null ) {
			return false;
		}

		if( seccionInicial == null ){
			seccionPista.transform.parent = transform;
			seccionPista.transform.localPosition = Vector3.zero;
			seccionInicial = seccionPista;
		}
		else {
			SeccionPista ultimaSeccion = ObtenerUltimaSeccion();
			Transform ultimoEnlace = ultimaSeccion.vecino1 == null ? ultimaSeccion.enlace1 : ultimaSeccion.enlace2;

			//TODO: revisar superposicion de secciones caso 1
			
			//por ahora asumimos enlace 1
			seccionPista.HacerVecino1( ultimaSeccion, ultimoEnlace );

			//TODO: en caso de falla, revisar superposicion de secciones caso 2
		}

		return true;

	}
예제 #3
0
    public bool RotarUltimaSeccion()
    {
        SeccionPista ultimaSeccion = ObtenerUltimaSeccion();

        if (ultimaSeccion == null)
        {
            return(false);
        }
        if (ultimaSeccion == seccionInicial)
        {
            ultimaSeccion.transform.Rotate(new Vector3(0f, 90f, 0f));
        }
        else
        {
            if (ultimaSeccion.vecino1 != null)
            {
                SeccionPista vecino       = ultimaSeccion.vecino1;
                Transform    enlaceVecino = vecino.vecino1 == ultimaSeccion ? vecino.enlace1 : vecino.enlace2;
                ultimaSeccion.EliminarVecino(vecino);
                ultimaSeccion.HacerVecino2(vecino, enlaceVecino);

                //TODO: validar que esto es posible
            }
            else
            {
                SeccionPista vecino       = ultimaSeccion.vecino2;
                Transform    enlaceVecino = vecino.vecino1 == ultimaSeccion ? vecino.enlace1 : vecino.enlace2;
                ultimaSeccion.EliminarVecino(vecino);
                ultimaSeccion.HacerVecino1(vecino, enlaceVecino);

                //TODO: validar que esto es posible
            }
        }
        return(true);
    }