Überschreiben von AteBlueBerry und anderen PlayerStats-Methoden

    Nach mehrfacher Nachfrage habe ich die Spendenseite eingerichtet: Jetzt hier spenden und die Entwicklung der ModAPI unterstützen
    • Überschreiben von AteBlueBerry und anderen PlayerStats-Methoden

      Moin zusammen,

      ich habe gerade so einige Schwierigkeiten, die Fullness-Modifikation der Lebensmittel zu überschreiben.

      C-Quellcode

      1. class RebalancedPlayerStats : PlayerStats
      2. {
      3. override protected void AteBlueBerry()
      4. {
      5. ModAPI.Console.Write("RebalancedPlayerStats.AteBlueBerry");
      6. base.AteBlueBerry();
      7. }
      8. ...


      Erwartet hätte ich jetzt, dass in der Konsole "RebalancedPlayerStats.AteBlueBerry" steht, sobald im Spiel Blaubeeren verzehrt werden. In der Praxis passiert allerdings gar nichts. Das gleiche Problem habe ich mit haufenweise Methoden von PlayerStats, namentlich (Zumindest die, die ich getestet habe):

      • AteTwinBerry
      • DrinkLake
      • DrinkBooze
      • Drink
      • AtePlaneFood
      • AteMeds
      • AteMushroomLibertyCap
      • AteMushroomChant
      • AteMushroomDeer
      • AteMushroomAman
      • AteMushroomPuffMush
      • AteMushroomJack

      C-Quellcode

      1. override public void AteFreshMeat(bool isLimb, float size)
      2. {
      3. ModAPI.Console.Write("RebalancedPlayerStats.AteFreshMeat");
      4. base.AteFreshMeat(isLimb, size);
      5. }
      hingegen funktioniert genau wie geplant (Konsolenausgabe erscheint). Ebenfalls getestet und funktionierend:

      • AteEdibleMeat
      • AteBurnt
      • AteSpoiltMeat


      Jetzt fällt mir da die Regelmäßigkeit auf, dass alle nicht-funktionierenden Methoden privat (bzw hier protected) deklariert sind und die anderen public. Übersehe ich da etwas? Vielleicht weiß ja jemand weiter. Ich stehe gerade ziemlich auf dem Schlauch.

      Vielen Dank für's Durchlesen :)