new resource: map_loader

Abierto
#697 7 comentarios 7 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Necesita aclaración
Estado de actividad
Tranquilo
Stack tecnológico
json, lua
Área
backend

Línea de trabajo

Start by reading the existing MTA map loading behavior referenced in the issue, including meta.xml <map/> nodes and loadMapData, then review the author's proposed map loader resource approach. The issue asks for opinions on replacing or deprecating the current loader and adding broad capabilities, but does not identify files, tests, or a settled scope; a clear done state would need to be agreed on first.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

Is your feature request related to a problem? Please describe.
In short, MTA Map Loading system (through meta.xml <map/> nodes or loadMapData (probably nobody uses this feature) has limitations:

  • It's server-side and uses element data (inefficient)
  • Maps exported by map editor even require a mapEditorScriptingExtension_c.lua script to do removeWorldObject and LODs!!! This duplicates a lot of code.
  • It doesn't support createBuilding
  • It doesn't support new models, which are incredibly popular since the addition of engineRequestModel
  • It doesn't support custom textures, which servers since shaders were invented
  • ...

Describe the solution you'd like
I believe the solution is not to expand the MTA Map Loader in C++ (mtasa-blue code), but instead to remove it (deprecate nodes etc) and create a map loader resource (official) that does everything the current system does + all the nice fun features we can add.
The idea is that new official resource will be included in the default resources pack, allowing any server to use it to load their maps through:

  • File drag & drop
  • Custom exported functions
  • etc

Additional context
Honestly I've already created a map loader for fun and for several servers in the past, it's pretty simple.
A map is just a list of elements to spawn at certain positions with certain properties.
The list can be stored on any popular format like JSON, then just use Lua functions to spawn the elements and set their properties.
We can even use the new glob features (<file src="maps/**/*.json"/>) if useful.

Tell us your opinion about this.

Lenguaje dominante
Lua
Estrellas
185
Forks
180
Merge medio
5 d 13 h
PR fusionados (30 d)
2

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de multitheftauto/mtasa-resources

Todos los issues de multitheftauto/mtasa-resources

Issues similares

Más issues de Lua

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.