예제 #1
0
        public void MostrarVistaPreviaReceta(Assets.Construccion nuevaReceta)
        {
            recetaConstruccion = nuevaReceta;
            Canvas.Canvas.instancia.construcciones.SetActive(false);
            Movimientos.instancia.EnseñarCursor(false);

            vistaPrevia = Instantiate(nuevaReceta.vistaPreviaPrefab.gameObject).GetComponent <Construccion.VistaPrevia>();
        }
예제 #2
0
        private void VistaPreviaUbicar(Construccion.VistaPrevia vistaPrevia)
        {
            if (vistaPrevia.ColisionandoConObjetos() == false)
            {
                if (puedeUbicarConstruccion == false)
                {
                    vistaPrevia.PuedeColocar();
                }

                puedeUbicarConstruccion = true;
            }
            else
            {
                if (puedeUbicarConstruccion == true)
                {
                    vistaPrevia.NoPuedeColocar();
                }

                puedeUbicarConstruccion = false;
            }
        }
예제 #3
0
        public override void AtacarInput()
        {
            if (recetaConstruccion == null || vistaPrevia == null || puedeUbicarConstruccion == false)
            {
                return;
            }

            GameObject objetoConstruir = recetaConstruccion.prefab;
            Vector3    coordenadas     = vistaPrevia.transform.position;

            if (vistaPrevia != null)
            {
                if (recetaConstruccion.tipo == Assets.Tipos.Construccion.Suelo || recetaConstruccion.tipo == Assets.Tipos.Construccion.Pared)
                {
                    Coordenadas coordenadas2 = vistaPrevia.gameObject.GetComponent <Coordenadas>();

                    if (coordenadas2 != null)
                    {
                        Assets.Casilla casilla = Escenario.Generar.Escenario.instancia.casillas[coordenadas2.x, coordenadas2.z];

                        if (casilla != null)
                        {
                            if (recetaConstruccion.tipo == Assets.Tipos.Construccion.Suelo)
                            {
                                if (casilla.pisos == null)
                                {
                                    casilla.pisos = new List <Assets.Piso>();
                                }

                                Assets.Piso piso = new Assets.Piso();
                                piso.suelo = recetaConstruccion.prefab;

                                casilla.pisos.Add(piso);
                            }
                            else if (recetaConstruccion.tipo == Assets.Tipos.Construccion.Pared)
                            {
                                if (casilla.pisos != null)
                                {
                                    if (casilla.pisos.Count > 0)
                                    {
                                        Assets.Piso piso = casilla.pisos[casilla.pisos.Count - 1];
                                        piso.pared = recetaConstruccion.prefab;
                                    }
                                }
                            }
                        }
                    }
                }
            }

            Instantiate(objetoConstruir, coordenadas, vistaPrevia.transform.rotation);

            int i = 0;

            while (i < recetaConstruccion.costes.Length)
            {
                int j = 0;
                while (j < recetaConstruccion.costes[i].cantidad)
                {
                    Inventario.Inventario.instancia.QuitarObjeto(recetaConstruccion.costes[i].objeto);
                    j += 1;
                }

                i += 1;
            }

            recetaConstruccion = null;
            Destroy(vistaPrevia.gameObject);
            vistaPrevia             = null;
            puedeUbicarConstruccion = false;
            rotacionLibreEjeY       = 0;
        }