Pinned Tutorial - Anleitung - Howto: Neue "Filltypes" ins Spiel integrieren, z.B. Milch, Schweinefutter, Dünger, ...

    • Tutorial - Anleitung - Howto: Neue "Filltypes" ins Spiel integrieren, z.B. Milch, Schweinefutter, Dünger, ...

      Hallo,

      ich habe mich gefragt, ob es möglich ist in Cattle and Crops neben neuen Fruchtsorten die auf dem Feld wachsen, auch andere "Produkte" ins Spiel zu bringen. Meine Idee war, dass ich neue Dünger hinzufügen kann, z.B. "Mist" für einen Misstreuer oder einen neuen mineralischen Dünger. Auch habe ich mich gefragt, ob man nicht gezielt Tierfutter ins Spiel integrieren kann oder andere Produkte wie Milch, Kaffee, Eier, ...

      Es hat sich gezeigt, dass solche produkte sehr einfach ins Spiel hinzugefügt werden können. Ob es eine Limitierung gibt, kann ich nicht beurteilen, aber die "FIlltypes" die es aktuell gibt, sind schon sehr umfangreich.



      Zuerst einmal müssen wir die neuen "Filltypes" definieren. Das macht man in der XML:
      C:\Program Files (x86)\Steam\steamapps\common\Cattle and Crops\Assets\Data\Base.zip\config\fruits\filltypes.xml


      Dort gibt es verschiedene Bereiche, die Feststoffe (Solid) und flüssige Stoffe (Liquid) aufteilen. Es gibt dort bereiche, wo die Fruchtsorten des Feldes definiert sind, aber auch solche Dinge wie Methangas (BGA), oder Diesel oder Luft oder Wasser.


      Ich habe einmal einige Futtersorten hinzugefügt. Dazu habe ich mir den Abschnitt mit "Feed" in der XML herausgesucht, der auch shcon "SuperSilo2000" beschreibt, also das, was aktuell aus dem vertimix heraus kommt:

      • Es wird der "FillType name" definiert, hier SuperSilo2000. Dieser kann frei gewählt werden, muss aber einmalig sein.
      • die "stringId" ist wieder für die Lokalisierung der Sprache nötig.
      • In "MatterAttributes" wird definiert, welche Inhaltsstoffe dieser Typ hat, welche Dichte, welches Kompression, welchen Energiegehalt etc.
      • Nicht alle "MatterAttributes" sind in jedem FillType vergeben. Zu beginn der Datei werden die "MatterAttribites" mit einem Default Wert ausgestattet. Wenn man es im einzelnen FillType überschreiben möchte, definiert man es dort, ansonsten lässt man es weg und es wir der Default genommen.
      • Im Abschnitt "Materials" definiert man dann die Optik, d.h. hier muss man den Pfad zu den Grafiken angeben, wenn "Eier" wie "Eier" aussehen sollen. Die muss man natürlich selbst erstellen.

      XML Source Code

      1. <FillType name="Feed" stringId="FILT-SLID-FEED" icon="">
      2. <FillType name="SuperSilo2000" stringId="FILT-SLID-FEED-SUSI" icon="">
      3. <MatterAttributes>
      4. <Attribute name="densityKGperL" value="0.5" />
      5. <!-- TODO ??? -->
      6. <Attribute name="quality" value="1.0" />
      7. <Attribute name="waterConcentration" value="0.5" />
      8. <!-- TODO ??? -->
      9. <Attribute name="energyMJperKG" value="11.5" />
      10. <Attribute name="proteinConcentration" value="0.13" />
      11. <Attribute name="fibreConcentration" value="0.35" />
      12. </MatterAttributes>
      13. <Materials>
      14. <Material type="heap" materialId="FDS1" material="vegetation/fruits/misc/supersilo2000_heap" />
      15. <Material type="heapWhirl" materialId="FDS2" material="vegetation/fruits/misc/supersilo2000_heap_whirl" />
      16. </Materials>
      17. </FillType>
      Display All





      Hier nun ein paar Beispiele, wie ich verschiedene Futtersorten definiert habe, mit Testparametern bei den Inhaltsstoffen:
      Ich habe einmal "Pigfood", einmal "Horsefood" und einmal "Chickenfood" definiert. Energie, Protein und Rohfaser etwas manipuliert, ebenso Dichte und Wassergehalt.

      XML Source Code

      1. <FillType name="Pigfood" stringId="FILT-SLID-FEED-PIGF" icon="">
      2. <MatterAttributes>
      3. <Attribute name="densityKGperL" value="1.00" />
      4. <!-- TODO ??? -->
      5. <Attribute name="quality" value="1.0" />
      6. <Attribute name="waterConcentration" value="1.00" />
      7. <!-- TODO ??? -->
      8. <Attribute name="energyMJperKG" value="0.00" />
      9. <Attribute name="proteinConcentration" value="0.00" />
      10. <Attribute name="fibreConcentration" value="10.00" />
      11. </MatterAttributes>
      12. <Materials>
      13. <Material type="heap" materialId="FDS1" material="vegetation/fruits/misc/supersilo2000_heap" />
      14. <Material type="heapWhirl" materialId="FDS2" material="vegetation/fruits/misc/supersilo2000_heap_whirl" />
      15. </Materials>
      16. </FillType>
      17. <FillType name="Chickenfood" stringId="FILT-SLID-FEED-CHIF" icon="">
      18. <MatterAttributes>
      19. <Attribute name="densityKGperL" value="1.00" />
      20. <!-- TODO ??? -->
      21. <Attribute name="quality" value="1.0" />
      22. <Attribute name="waterConcentration" value="1.00" />
      23. <!-- TODO ??? -->
      24. <Attribute name="energyMJperKG" value="0.00" />
      25. <Attribute name="proteinConcentration" value="10.00" />
      26. <Attribute name="fibreConcentration" value="0.00" />
      27. </MatterAttributes>
      28. <Materials>
      29. <Material type="heap" materialId="FDS1" material="vegetation/fruits/misc/supersilo2000_heap" />
      30. <Material type="heapWhirl" materialId="FDS2" material="vegetation/fruits/misc/supersilo2000_heap_whirl" />
      31. </Materials>
      32. </FillType>
      33. <FillType name="Horsefood" stringId="FILT-SLID-FEED-HORF" icon="">
      34. <MatterAttributes>
      35. <Attribute name="densityKGperL" value="1.00" />
      36. <!-- TODO ??? -->
      37. <Attribute name="quality" value="1.0" />
      38. <Attribute name="waterConcentration" value="1.0" />
      39. <!-- TODO ??? -->
      40. <Attribute name="energyMJperKG" value="10.00" />
      41. <Attribute name="proteinConcentration" value="0.00" />
      42. <Attribute name="fibreConcentration" value="0.00" />
      43. </MatterAttributes>
      44. <Materials>
      45. <Material type="heap" materialId="FDS1" material="vegetation/fruits/misc/supersilo2000_heap" />
      46. <Material type="heapWhirl" materialId="FDS2" material="vegetation/fruits/misc/supersilo2000_heap_whirl" />
      47. </Materials>
      48. </FillType>
      49. <FillType name="Food_20_20_20" stringId="FILT-SLID-FEED-FOOD" icon="">
      50. <MatterAttributes>
      51. <Attribute name="densityKGperL" value="1.0" />
      52. <!-- TODO ??? -->
      53. <Attribute name="quality" value="1.0" />
      54. <Attribute name="waterConcentration" value="1.0" />
      55. <!-- TODO ??? -->
      56. <Attribute name="energyMJperKG" value="20.0" />
      57. <Attribute name="proteinConcentration" value="20.0" />
      58. <Attribute name="fibreConcentration" value="20.0" />
      59. </MatterAttributes>
      60. <Materials>
      61. <Material type="heap" materialId="FDS1" material="vegetation/fruits/misc/supersilo2000_heap" />
      62. <Material type="heapWhirl" materialId="FDS2" material="vegetation/fruits/misc/supersilo2000_heap_whirl" />
      63. </Materials>
      64. </FillType>
      Display All



      Weiter unten in der XML habe ich noch einen anderen Dünger definiert:
      EasyFert_100_100_100 hat eine Dichte von 1kg pro 1 Liter. Weiterhin ein NPK Verhältnis von 100-100-100.

      XML Source Code

      1. <FillType name="EasyFert_100_100_100" stringId="FILT-SLID-FERT-EASY" icon="" fertilizer="1">
      2. <Materials>
      3. <Material type="heap" materialId="SF8H" material="vegetation/fruits/granular_fertilizer/red_heap" />
      4. <Material type="fertilizerSolidSpread" materialId="SF8P" material="vegetation/fruits/granular_fertilizer/red_swathResidue" />
      5. <Material type="unload" materialId="SF8U" material="vegetation/fruits/granular_fertilizer/red_unload" />
      6. </Materials>
      7. <MatterAttributes>
      8. <Attribute name="densityKGperL" value="1.0" />
      9. <Attribute name="waterConcentration" value="0.0" />
      10. <Attribute name="nutrients_N_Concentration" value="1.0" />
      11. <Attribute name="nutrients_P_Concentration" value="1.0" />
      12. <Attribute name="nutrients_K_Concentration" value="1.0" />
      13. </MatterAttributes>
      14. </FillType>
      Display All



      Ihr könnt Euch dort also jeden beliebigen Filltype definieren und mit "MatterAttributes" ausstatten. Ihr könnt sagen, ob es "fest" oder "flüssig" ist und somit im Hänger oder im Fass transportiert werden kann etc.





      Im zweiten Schritt müsst Ihr schauen, dass Ihr in der "game.csv" Eure neuen FillTypes eintragt, damit die Lokalisierung klappt und der Filltype auch den Namen bekommt, den Ihr ihm gegeben habt.




      Im dritten Schritt ist es nun leider wieder notwendig, diese Fillytpes in der "albergtal.wld" mit Hilfe des Editors an den Verkaufsstellen, im Futtertrog, im Hänger, im Fass bekannt zu machen. Wenn Ihr genau wissen wollt wie das geht, dann schaut in den tutorials zu "Neue Fruchtsorten in CNC, da wird erklärt, wie man beim Händler ein neues "Trading Item" definiert. Dort erkläre ich auch, wie man die "game.csv" Datei editiert um Lokalisierung durchzuführen.








      Am Ende sehr Ihr dann die neuen Filltypes auch im Finanzen Menü, wenn der Händler dort geführt ist:






      Anbei meine "filltypes.xml" Datei, auch wenn sie alleine nichts bringt, so will vielleicht jemand hinein schauen um es besser nachvollziehen zu können. Ebenso die "Strings" zur Übersetzung:
      New_Filltypes_XMLs.zip



      Den "CNC Gameplay Mod" findet Ihr hier mit angepassten Gebäuden und Händlern die diese anbieten.
      CNC-Gameplay-Mod




      Grüße