new resource: map_loader

Offen
#697 7 Kommentare 7 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Feature
Klarheit
Muss geklärt werden
Aktivitätsstatus
Ruhig
Tech-Stack
json, lua
Bereich
backend

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Lua
Sterne
185
Forks
180
Ø Merge
5 T. 13 Std.
Gemergte PRs (30 T.)
2

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus multitheftauto/mtasa-resources

Alle Issues in multitheftauto/mtasa-resources

Ähnliche Issues

Weitere Issues zu Lua

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.