Exemplo n.º 1
0
 public static CamaraGrid instanciar()
 {
     if (instancia == null)
     {
         instancia = new CamaraGrid();
     }
     return(instancia);
 }
        protected void Update()
        {
            bool Creacion  = Input.GetKeyDown(KeyCode.C);
            bool Seleccion = Input.GetKeyDown(KeyCode.S);
            bool Eliminar  = Input.GetKeyDown(KeyCode.E);

            bool subirCapa = Input.GetKeyDown(KeyCode.KeypadPlus);
            bool bajarCapa = Input.GetKeyDown(KeyCode.KeypadMinus);

            bool planoGrid = Input.GetKeyDown(KeyCode.Tab);

            bool ModoTipoAzulejo = Input.GetKeyDown(KeyCode.Space);


            if (ModoTipoAzulejo)
            {
                if (tipoAzulejo == TipoAzulejo.Automatico)
                {
                    tipoAzulejo = TipoAzulejo.Simple;
                }
                else
                {
                    tipoAzulejo = TipoAzulejo.Automatico;
                }
            }
            if (planoGrid)
            {
                CamaraGrid.instanciar().gameObject.SetActive(!CamaraGrid.instanciar().gameObject.activeSelf);
            }
            if (subirCapa)
            {
                if (capa < CamaraConfiguracionComponente.mapaTam.y)
                {
                    capa += 1;
                    CamaraGrid.instanciar().actualizarPosicion(CamaraConfiguracionComponente.azulejoTam.y, CamaraGrid.GridElevacion.Subir);
                }
            }
            if (bajarCapa)
            {
                if (capa > 1)
                {
                    capa -= 1;
                    CamaraGrid.instanciar().actualizarPosicion(CamaraConfiguracionComponente.azulejoTam.y, CamaraGrid.GridElevacion.Bajar);
                }
            }
            if (Creacion)
            {
                brocha = Brocha.Creacion;
            }
            if (Seleccion)
            {
                brocha = Brocha.Seleccion;
            }
            if (Eliminar)
            {
                brocha = Brocha.Eliminar;
            }
        }
Exemplo n.º 3
0
        //public Entity CrearEntidad(Vector3Int posicion)
        //{
        //    EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;
        //    EntityArchetype archetype = entityManager.CreateArchetype(
        //        typeof(Translation),
        //        typeof(RenderMesh),
        //        typeof(RenderBounds),
        //        typeof(LocalToWorld)
        //        );

        //    Entity myEntity = entityManager.CreateEntity(archetype);
        //    entityManager.SetName(myEntity, posicion.x + "_" + posicion.z);
        //    entityManager.AddComponentData(myEntity, new Translation
        //    {
        //        Value = new float3(posicion.x, posicion.y, posicion.z)
        //    });

        //    RenderBounds redn = new RenderBounds();
        //    redn.Value = mesh.bounds.ToAABB();

        //    entityManager.AddComponentData(myEntity, redn);

        //    entityManager.AddSharedComponentData(myEntity, new RenderMesh
        //    {
        //        mesh = mesh,
        //        material = material
        //    });
        //    return myEntity;
        //}
        public Vector3Int ObtenerPosicionIsometrica(int capa)
        {
            CamaraGrid.instanciar().actualizarPosicion(1, capa);
            /*----*/
            Vector3 Posicion = new Vector3(0, 0, 0);
            Plane   PlanoX   = new Plane(Vector3.up, 0);
            Ray     ray      = CamaraMovimientoSistema.CamaraLocal.ScreenPointToRay(Input.mousePosition);
            float   distancia;

            if (PlanoX.Raycast(ray, out distancia))
            {
                Posicion = ray.GetPoint(distancia);
            }

            /*--------------------------------------*/
            //Debug.Log("Posicion REal:"+Posicion);
            float r = (capa - 1) + 0.25f * (capa - 1);
            int   x = Mathf.FloorToInt(Posicion.x - r / tamAzulejo.x) + 1;
            int   y = capa; // Mathf.FloorToInt(Posicion.y / CamaraConfiguracionComponente.azulejoTam.y) + 1;
            int   z = Mathf.FloorToInt(Posicion.z - r / tamAzulejo.z) + 1;

            if (x < 0 || z < 0 || x > tamMundo.x || z > tamMundo.z)
            {
                return(new Vector3Int {
                    x = -1, y = -1, z = -1
                });
            }
            return(new Vector3Int {
                x = x, y = y, z = z
            });
            //CamaraPosicionComponente.posicionIsometrica = new Vector3Int { x = x, y = y, z = z };
            //CamaraPosicionComponente.posicionNormal = Posicion;
            //CamaraPosicionComponente.posicionNumerica = (tamMundo.x * x) - tamMundo.z + z;

            //if (CamaraPosicionComponente.posicionIsometrica.x <= 0 || CamaraPosicionComponente.posicionIsometrica.x > ConfiguracionMapa.mapaTam.x || CamaraPosicionComponente.posicionIsometrica.z <= 0 || CamaraPosicionComponente.posicionIsometrica.z > ConfiguracionMapa.mapaTam.z)
            //{

            //    CamaraPosicionComponente.posicionIsometrica = new Vector3Int(0, 0, 0);
            //    CamaraPosicionComponente.posicionNormal = new float3(0f, 0f, 0f);
            //    CamaraPosicionComponente.posicionNumerica = 0;
            //    return;
            //}
            //else
            //{
            //    // NotificarPantalla?.Invoke(this, PosicionIsometrica);
            //}
        }
Exemplo n.º 4
0
        protected override void OnUpdate()
        {
            Entities.ForEach((ref EntradaEdicionTeclasData entrada, ref EdicionModoActualData modo) =>
            {
                bool teclaPresionadaTerreno  = Input.GetKeyDown(entrada.teclaTerreno);
                bool teclaPresionadaRecursos = Input.GetKeyDown(entrada.teclaRecursos);

                bool teclaPresionadaCrear     = Input.GetKeyDown(entrada.teclaCrear);
                bool teclaPresionadaEliminar  = Input.GetKeyDown(entrada.teclaEliminar);
                bool teclaPresionadaModificar = Input.GetKeyDown(entrada.teclaModificar);
                bool teclaPresionadaSeleccion = Input.GetKeyDown(entrada.teclaSeleccion);

                bool teclaPresionadaSubirGrid   = Input.GetKeyDown(entrada.teclaSubirGrid);
                bool teclaPresionadaBajarGrid   = Input.GetKeyDown(entrada.teclaBajarGrid);
                bool teclaPresionadaActivarGrid = Input.GetKeyDown(entrada.teclaActivarGrid);

                bool teclaPresionadaAvanzar    = Input.GetKeyDown(entrada.teclaAvanzar);
                bool teclaPresionadaRetroceder = Input.GetKeyDown(entrada.teclaRetroceder);


                bool teclaPresionadaGuardar = Input.GetKeyDown(entrada.teclaGuardar);
                bool teclaPresionadaCargar  = Input.GetKeyDown(entrada.teclaCargar);

                if (teclaPresionadaGuardar)
                {
                    AdministradorMundos.MundoActual().Guardar();
                }
                if (teclaPresionadaCargar)
                {
                    AdministradorMundos.MundoActual().Cargar();
                }
                if (teclaPresionadaTerreno)
                {
                    modo.tipoEdicion = TipoEdicion.Terreno;
                }
                if (teclaPresionadaRecursos)
                {
                    modo.tipoEdicion = TipoEdicion.Recursos;
                }
                if (teclaPresionadaCrear)
                {
                    modo.modoEdicion = ModoEdicion.Crear;
                }
                if (teclaPresionadaEliminar)
                {
                    modo.modoEdicion = ModoEdicion.Eliminar;
                }
                if (teclaPresionadaSeleccion)
                {
                    modo.modoEdicion = ModoEdicion.Seleccion;
                }
                if (teclaPresionadaSubirGrid)
                {
                    if (modo.capaActual < 10)
                    {
                        modo.capaActual += 1;
                    }
                }
                if (teclaPresionadaBajarGrid)
                {
                    if (modo.capaActual > 1)
                    {
                        modo.capaActual -= 1;
                    }
                }
                if (teclaPresionadaAvanzar)
                {
                }
                if (teclaPresionadaActivarGrid)
                {
                    CamaraGrid.instanciar().ActivarDesactivarGrid();
                }
            });
        }
 protected void Start()
 {
     CamaraLocal    = CamaraIsometrica;
     PosicionCamara = this.transform;
     CamaraGrid.instanciar().actualizarGrid(ConfiguracionMapa.mapaTam, ConfiguracionMapa.azulejoTam);
 }