So, um sicher zu gehen hab ich jetzt mal im Sourcecode nachgeschaut (mit MCP 9.03).
Beim Spawnen eines neuen Pferdes beim Generieren der Welt oder mit einem Spawnei wird immer die Funktion onSpawnWithEgg(IEntityLivingData) aufgerufen.
Um die Schritte mal zusammenzufassen:
- Falls bereits EntityHorse.GroupData (enthält Typ und Variante des Pferdes) übergeben wurden (was in beiden Fällen nicht der Fall ist), werden diese benutzt, ansonsten werden diese folgendermaßen zufällig generiert:
- 10% Chance, dass es ein Esel ist
- Wenn es kein Esel ist, wird zufällig Fellfarbe und Muster bestimmt (gleich verteilt)
- Chance von 20%, dass es ein Fohlen ist
- Falls das Pferd kein Zombie- oder Skellet-Pferd ist:
- Setze MaxHealth auf einen zufällig generierten Wert (*1)
- Falls das Pferd ein normales Pferd ist, setze Geschwindigkeit auf einen zufällig generierten Wert (*2), ansonsten auf einen festen Wert von 0.175 (also für Esel und Maultiere)
- Falls das Pferd ein Zombie- oder Skellet-Pferd ist, setze MaxHealth auf 15 und Geschwindigkeit auf 0.2
- Falls das Pferd kein Esel oder Maultier ist, setze Sprungkraft auf einen zufällig generierten Wert (*3), ansonsten auf 0.5
Die zufallsgenerierten Werte sind in eigene Funktionen ausgelagert, in MCP heißen diese (1)
func_110267_cL() für MaxHealth, (2)
func_110203_cN() für Geschwindigkeit und (3)
func_110245_cM() für Sprungstärke.
Die Werte errechnen sich also folgendermaßen:
- Code: Alles auswählen
1. MaxHealth
= 15 + Ganze Zufallszahl zwischen 0 und 7 + Ganze Zufallszahl zwischen 0 und 8
= Wert zwischen 15 und 30
2. Geschwindigkeit
= (0.45 + Zufallszahl zwischen 0 und 0.3 + Zufallszahl zwischen 0 und 0.3 + Zufallszahl zwischen 0 und 0.3) * 0.25
= Wert zwischen 0.1125 und 0.3375
3. Sprungkraft
= 0.4 + Zufallszahl zwischen 0 und 0.2 + Zufallszahl zwischen 0 und 0.2 + Zufallszahl zwischen 0 und 0.2
= Wert zwischen 0.4 und 1.0
Die Werte werden alle völlig unabhängig voneinander errechnet, das heißt es ist möglich bei allen Eigenschaften gute oder bei allen schlechte Werte zu bekommen.