new resource: map_loader

Aperta
#697 7 commenti 7 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Tranquilla
Stack tecnologico
json, lua
Ambito
backend

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Lua
Stelle
185
Fork
180
Merge medio
5g 13h
PR unite (30g)
2

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di multitheftauto/mtasa-resources

Tutte le issue di multitheftauto/mtasa-resources

Issue simili

Altre issue su Lua

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.