​Mehr Möglichkeiten für World3DModel​

  • Deutsch

Ein paar Vorschaubilder der neuen Spielerfiguren sind nun verfügbar

  • ​Mehr Möglichkeiten für World3DModel​

    hallo,
    ich wünsche mir mehr Möglichkeiten für World3DModel und ModelInformation

    In erster Linie eine Methode setAttribute(String, Object) für World3DModel - das habe ich schon hier gepostet
    und
    .setUserFriendlyName(Locale language, String name) um für manche Objekte den Namen in verschiedenen Sprachen anzuzeigen

    dann etwas komplexer :)
    int addChild(World3DModel child) - return childID
    removeChild(World3DModel child)
    removeChildById(int childID)
    World3DModel getChildById(int childID)
    ArrayList<World3DModel> getChildsByName(String name)

    und für ModelInformation ne Kleinigkeit
    Vector3f getSize()
    .setAlpha(float a)
    float getAlpha()

    Es ist natürlich nur ein Wunsch ;)
    es wird alles gut :) früher oder später :D meistens später :evil: ... ich wandle Kaffee in Quelltext um

    aktuelles Java Projekt für RW: [Plugin] UserObjectLoader

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Kryssi_79 ()

  • Die Size eines Modells pro Achse einstellbar machen war ohnehin geplant, das wird mit dem nächsten Update eingeführt (somit gibt getScale() tatsächlich dann einen Vektor3f zurück - das würde bedeuten, dass bisherige Plugins, die mit "getScale()" gearbeitet haben, aktualisiert werden müssen [für "setScale()" gibts keine Änderung, lediglich eine zusätzliche Version welche xyz dann getrennt einstellbar macht]) :) Würde sich allerdings auf World3DModel beziehen, da ModelInformation ja lediglich den Verweis auf die Modelldatei darstellt.

    Support für Alphawerte können wir eigentlich auch anbieten (die neuen Fkt. wären dann "setAlpha(float)" und "getAlpha()"). Würde sich aber ebenfalls auf World3DModel beziehen.

    Attribute gehören für sowas eigentlich auch dazu, ist gebongt ;)

    Ordentliches Parent-Child-Handling wäre zwar sehr wünschenswert, ist momentan aber leider erstmal noch nicht geplant. Vielleicht wird das zu einem späteren Zeitpunkt hinzugefügt.

    Was genau meinst du mit "setUserFriendlyName()"? Bzw. auf welchen "Namen" beziehst du dich dabei?
  • 8o da freue ich mich schon drauf :thumbsup: danke schön
    getScale() und getSize() sind für mich 2 verschiedene Werte. Wurde ich auch so verstanden ?

    getScale() ist eigentlich klar - Wert wen ich ein Objekt verkleinere oder vergrößere. 1 bzw. (1, 1, 1) ist dann original (Ausgangs) Größe

    Mit getSize() möchte ich dann die tatsächliche Abmessungen wissen um z.B. ein Objekt immer auf die gleiche Größe (mit setScale() ) zu bringen.


    red51 schrieb:

    Was genau meinst du mit "setUserFriendlyName()"? Bzw. auf welchen "Namen" beziehst du dich dabei?
    Die .obj Dateien haben nicht immer einen schönen Dateinamen z.B. "meinTest 001.obj", "object2.obj" ... oder so.
    setUserFriendlyName() möchte ich die Möglichkeit schaffen ein Anzeigenamen mit zu transportieren und ggf anzuzeigen.
    UserFriendlyName = benutzerfreundlich / Anzeigename
    Z.B.: "Kleiderschrank", "Multi-Entsafter", "große Truhe".
    So können von uns hinzugefügte Modelle ein Anzeigenamen haben z.B. für Tooltips oder Objekt-Listen
    Locale language - war nur so eine Idee :)

    Danke für deine Antwort :)
    es wird alles gut :) früher oder später :D meistens später :evil: ... ich wandle Kaffee in Quelltext um

    aktuelles Java Projekt für RW: [Plugin] UserObjectLoader
  • Kryssi_79 schrieb:

    getScale() und getSize() sind für mich 2 verschiedene Werte. Wurde ich auch so verstanden ?
    Achso, ich hatte das tatsächlich anders verstanden ;)

    Kryssi_79 schrieb:

    Mit getSize() möchte ich dann die tatsächliche Abmessungen wissen um z.B. ein Objekt immer auf die gleiche Größe (mit setScale() ) zu bringen.
    Also das ist so in der Form momentan nicht direkt vorgesehen, allerdings kannst du die Größe eines Modells mithilfe einer BoundingInformation bestimmen:

    Java-Quellcode

    1. ModelInformation modelInfo = new ModelInformation(...);
    2. BoundingInformation boundingInfo = new BoundingInformation(modelInfo);
    3. //Mittelpunkt des Modells (i.d.R. 0.0 0.0 0.0)
    4. System.out.println("Mittelpunkt: " + boundingInfo.getCenter());
    5. //Halbe (!) X-,Y-,Z-Größe (ausgehend vom Mittelpunkt)
    6. System.out.println("X-Größe: " + boundingInfo.getXExtent());
    7. System.out.println("Y-Größe: " + boundingInfo.getYExtent());
    8. System.out.println("Z-Größe: " + boundingInfo.getZExtent());

    Das Problem bei einer getSize() Funktion wäre, dass sie keine Rückschlüsse auf den Mittelpunkt des Modells gibt (es kann ja sein, dass das Modell eine Box mit den Abmessungen 1x1x1 ist, allerdings der Mittelpunkt des Modells um 100 Einheiten nach unten versetzt ist), daher bietet eigentlich nur eine BoundingInformation vollen Zugriff auf diese Informationen (was aber kein Problem darstellen sollte - man muss nur berücksichtigen, dass getXExtent(), getYExtent() und getZExtent() jeweils nur halbe Werte zurückgeben [bei einer 1x1x1 Box also jeweils 0.5]).

    Kryssi_79 schrieb:

    setUserFriendlyName() möchte ich die Möglichkeit schaffen ein Anzeigenamen mit zu transportieren und ggf anzuzeigen.
    Welchen Anzeigenamen meinst du genau (da World3DModel ja keinen direkten Anzeigenamen hat)? Bei späteren Modellen, die als Items oder platzierbare Objekte im Inventar fungieren (die ja definitiv einen Namen hätten [bspw. als Tooltip]) würde es aber hingegen auf jeden Fall eine Möglichkeit geben, lokalisierte Namen und Beschreibungen hinzuzufügen (diese werden aber dann vmtl. eine eigene Klasse bekommen die keinen Bezug zur World3DModel Klasse hätte) :)
  • @red51 danke für deine Hinweise. BoundingInformation habe ich tatsächlich nicht entdeckt :thumbup:

    red51 schrieb:

    Welchen Anzeigenamen meinst du genau (da World3DModel ja keinen direkten Anzeigenamen hat)?
    Es geht mir darum, dass Leute sehr gerne eigene .obj Modelle ins Spiel bringen. Ich wollte einfach mehr Möglichkeiten anbieten unter anderem eigenen Anzeigenamen.
    Aber wenn es Dir unsinnig erscheint noch Namen in die World3DModel Klasse rein zu bringen dann ist es auch nicht so schlimm ;)
    Ich Kann ja auch von der klasse ableiten z.B. class UserObj extends World3DModel und dann intern nutzen.
    es wird alles gut :) früher oder später :D meistens später :evil: ... ich wandle Kaffee in Quelltext um

    aktuelles Java Projekt für RW: [Plugin] UserObjectLoader