Esempio n. 1
0
        void ModoRecursos(ModoEdicion modoEdicion, int capa, int idActual, int posicionValida, Vector3Int posicionTile)
        {
            bool mouseClickIzq      = Input.GetMouseButtonDown(0);
            bool mouseClickIzqConst = Input.GetMouseButton(0);
            bool mouseClickDer      = Input.GetMouseButtonDown(1);
            bool mouseClickDerConst = Input.GetMouseButton(1);

            if (modoEdicion == ModoEdicion.Crear)
            {
                if (HasSingleton <AzulejoPreviewComponent>())
                {
                    AzulejoPreviewComponent pre = GetSingleton <AzulejoPreviewComponent>();
                    if (mouseClickIzqConst && posicionValida == 1)
                    {
                        AdministradorMundos.MundoActual().AgregarRecurso(idActual, pre.posicionAzulejo, pre.posicionInicial, pre.posicionFinal);
                        // AdministradorRecursos.Instanciar().CrearRecurso(1, new Unity.Mathematics.float3(pos.x-1, pos.y+1.0f, pos.z-1));
                    }
                }
            }
            if (modoEdicion == ModoEdicion.Eliminar)
            {
                if (mouseClickIzqConst && posicionValida == 1)
                {
                    AdministradorMundos.MundoActual().removerRecurso(posicionTile);
                }
            }
            if (modoEdicion == ModoEdicion.Seleccion)
            {
                // Debug.Log("Modo Seleccion");
            }
        }
Esempio n. 2
0
        void ModoTerreno(ModoEdicion modoEdicion, int capa)
        {
            bool mouseClickIzq      = Input.GetMouseButtonDown(0);
            bool mouseClickIzqConst = Input.GetMouseButton(0);
            bool mouseClickDer      = Input.GetMouseButtonDown(1);
            bool mouseClickDerConst = Input.GetMouseButton(1);

            if (modoEdicion == ModoEdicion.Crear)
            {
                Vector3Int pos = AdministradorMundos.MundoActual().ObtenerPosicionIsometrica(capa);
                if (mouseClickIzqConst)
                {
                    /// AdministradorRecursos.Instanciar().CrearRecurso(1, new Unity.Mathematics.float3(pos.x, 1.8f, pos.z));
                    AdministradorMundos.MundoActual().AgregarVoxelTerreno(2, pos);
                }
            }
            if (modoEdicion == ModoEdicion.Eliminar)
            {
                //Debug.Log("Modo Eliminar");
            }
            if (modoEdicion == ModoEdicion.Seleccion)
            {
                // Debug.Log("Modo Seleccion");
            }
        }
Esempio n. 3
0
        protected override void OnUpdate()
        {
            // Assign values to local variables captured in your job here, so that it has
            // everything it needs to do its work when it runs later.
            // For example,
            //     float deltaTime = Time.DeltaTime;

            // This declares a new kind of job, which is a unit of work to do.
            // The job is declared as an Entities.ForEach with the target components as parameters,
            // meaning it will process all entities in the world that have both
            // Translation and Rotation components. Change it to process the component
            // types you want.


            Entities.ForEach((ref EdicionModoActualData modo) =>
            {
                ModoEdicion modoEdicion = modo.modoEdicion;
                TipoEdicion tipoEdicion = modo.tipoEdicion;
                int idAnterior          = modo.idAnterior;
                capa                = modo.capaActual;
                int idAzulejo       = modo.idActual;
                modo.posicionValida = 0;
                Vector3Int pos      = AdministradorMundos.MundoActual().ObtenerPosicionIsometrica(capa);

                if (pos.x > 0 && pos.z > 0)
                {
                    Vector3 posPreview = new Vector3(0, capa - 0.48f, 0);

                    if (modoEdicion == ModoEdicion.Crear)
                    {
                        if (tipoEdicion == TipoEdicion.Recursos && idAnterior != idAzulejo)
                        {
                            modo.idAnterior             = idAzulejo;
                            Entity entidadPreview       = AdministradorRecursos.Instanciar().CrearRecurso(idAzulejo, new Unity.Mathematics.float3(0, 0, 0));
                            EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;
                            entityManager.SetName(entidadPreview, "AzulejoPreview");
                            Rotation rotation = new Rotation {
                                Value = quaternion.Euler(0, 45, 0)
                            };
                            Translation translation = new Translation {
                                Value = new float3(0, 0, 0)
                            };
                            entityManager.AddComponent <AzulejoPreviewComponent>(entidadPreview);
                            //entityManager.AddComponent<EdicionModoActualData>(entidad);
                            entityManager.AddComponentData(entidadPreview, rotation);
                            entityManager.AddComponentData(entidadPreview, translation);

                            RecursosPlantilla recurso = AdministradorRecursos.Instanciar().ObtenerRecurso(idAzulejo);
                            xAzul = recurso.xMax;
                            zAzul = recurso.zMax;
                            gridPrevioGameObject.transform.localScale = new Vector3(0.1f * recurso.xMax, 1, 0.1f * recurso.zMax);

                            gridPrevioGameObject.GetComponent <Renderer>().material.SetVector("Vector2_642EB6F1", new Vector4(recurso.xMax, recurso.zMax, 0, 0));
                        }
                    }
                    if (modoEdicion == ModoEdicion.Seleccion || modoEdicion == ModoEdicion.Eliminar)
                    {
                        if (HasSingleton <AzulejoPreviewComponent>())
                        {
                            modo.idActual               = modo.idAnterior;
                            modo.idAnterior             = -1;
                            Entity ent                  = GetSingletonEntity <AzulejoPreviewComponent>();
                            EntityManager entityManager = World.DefaultGameObjectInjectionWorld.EntityManager;
                            entityManager.DestroyEntity(ent);
                            Debug.Log("entre seleccion");
                        }

                        xAzul = 1;
                        zAzul = 1;
                    }
                    modo.posicionTileActual = pos;
                    modo.posicionValida     = 1;
                    actualizarPosicionGrid(posPreview, pos);
                }
            });

            Entities.ForEach((ref AzulejoPreviewComponent azulejoPreview, ref Translation translation, ref Rotation rotation, ref LocalToWorld localToWorld) =>
            {
                Vector3Int pos = AdministradorMundos.MundoActual().ObtenerPosicionIsometrica(capa);

                if (pos.x > 0 && pos.z > 0)
                {
                    azulejoPreview.posicionInicial = new Vector2(pos.x - xInferiorAzul, pos.z - zInferiorAzul);
                    azulejoPreview.posicionFinal   = new Vector2(pos.x + xMedioAzul, pos.z + zMedioAzul);
                    azulejoPreview.posicionAzulejo = pos;
                    pos.x              = pos.x - 1;
                    pos.z              = pos.z - 1;
                    Vector3 medio      = puntoMedio(pos, new Vector3(pos.x + xAzul, 0, pos.z + zAzul));
                    localToWorld.Value = float4x4.TRS(new float3(medio.x - (0.5f * xAzul), pos.y + 1, medio.z - (0.5f * zAzul)), Quaternion.Euler(0, 45, 0), new float3(1, 1, 1));

                    /*  translation = new Translation { Value = new float3(pos.x-1, pos.y+1, pos.z-1) };
                     * rotation = new Rotation { Value = quaternion.Euler(0, 45, 0) };*/
                }
            });
        }
Esempio n. 4
0
 protected override void OnDestroy()
 {
     AdministradorMundos.MundoActual().Liberar();
 }
Esempio n. 5
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();
                }
            });
        }