getIsAnimationPlaying für attacherJoints

  • Hallo,


    für foldingParts kann man ja relativ einfach herausfinden, ob die Animation gerade läuft:
    AnimatedVehicle:getIsAnimationPlaying(name) (animatedVehicle.lua, 394).


    Ich versuche momentan eine bool zu bekommen ob ein bestimmter attacherJoint bzw. das attachedImplement momentan gehoben/gesenkt wird - wie allerdings bekomme ich den Name jener Animation heraus?


    Es gibt ja noch die Attachable:onSetLowered(lowered) (attachable.lua, 382), die auf eine self.lowerAnimation verweist. Diese habe ich in meinem Attachable (zum Testen die Amazone EDX 6000) jedoch nicht gefunden ( = nil), dafür allerdings die lowerAnimationSpeed. self.lowerAnimation müsste m.E. der Name der lowering/raising-Animation sein.


    Ich hab self.loweringDone probiert, was aber immer false war.


    Hat da jemand vlt. ne Lösung oder nen Workaround? Danke im Voraus.



    [Edit] Der lowerAnimation-Absatz ist nach weiterem Überlegen wohl ein Denkfehler. Ich will ja nicht etwas am Attachable senken/heben, sondern den attacherJoint vom Traktor. Vielleicht sollte ich eher folgenden weg gehen:


    self:setAIImplementsMoveDown() [AITractor.lua, 794] --> benutzt Vehicle:setJointMoveDown() [Vehicle.lua, 2840] --> benutzt implement.object:onSetLowered(moveDown) [Attachable.lua, 382] --> was wiederum auch nur die self:playAnimation(self.lowerAnimation, self.lowerAnimationSpeed, nil, true); benutzt. Quasi ein Teufelskreis.

  • Moin..


    Von einem Anbaugerät aus ist es einfach heraus zu finden ob es gerade gesenkt oder angehoben ist:
    [lua]
    if self:isLowered() then
    -- gesenkt
    else
    -- angehoben
    end;
    [/lua]


    Willst du von einer LUA vom Traktor aus zugreifen musst du eben entsprechend zunächst auf das Anbaugerät am enstprechenden Attacher zugreifen und dann abfragen..



    LG

  • Danke für die Rückmeldung, aber das ist nicht wirklich, bzw. nur über Umwege das was ich suche. Ich würde gerne wissen ob eine lower/raise-Animation momentan läuft, nicht ob sie fertig ist. Klar könnte ich mir auch nen Timer einbauen und dann kucken was isLowered() ausgibt, aber das ist mir dafür ehrlich gesagt zu umständlich.


    Edit: Ein Problem was mir bei isLowered() noch aufgefallen ist: es ist true sobald das Gerät nicht ganz oben ist. Sobald es sich auch nur anfängt zu senken gilt es als ... "is lowered".

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!