Ich habe hier alles nochmal komplett neu geschrieben, da ich mit meinen Versuchen weiter gekommen bin!
Ich bin gerade am versuchen längere Tage in Minecraft zu bekommen. In der WorldProvider.java fand Ich den Code:
Code:
public float calculateCelestialAngle(long par1, float par3)
{
int var4 = (int)(par1 % 24000L);
float var5 = ((float)var4 + par3) / 24000.0F - 0.25F;
if (var5 < 0.0F)
{
++var5;
}
if (var5 > 1.0F)
{
--var5;
}
float var6 = var5;
var5 = 1.0F - (float)((Math.cos((double)var5 * Math.PI) + 1.0D) / 2.0D);
var5 = var6 + (var5 - var6) / 3.0F;
return var5;
}
public int getMoonPhase(long par1, float par3)
{
return (int)(par1 / 24000L) % 8;
}
Den habe ich geändert in:
Code:
public float calculateCelestialAngle(long par1, float par3)
{
int var4 = (int)(par1 % 48000L);
float var5 = ((float)var4 + par3) / 48000.0F - 0.50F;
if (var5 < 0.0F)
{
++var5;
}
if (var5 > 1.0F)
{
--var5;
}
float var6 = var5;
var5 = 1.0F - (float)((Math.cos((double)var5 * Math.PI) + 1.0D) / 2.0D);
var5 = var6 + (var5 - var6) / 3.0F;
return var5;
}
public int getMoonPhase(long par1, float par3)
{
return (int)(par1 / 24000L) % 8;
}
Es gelingt mir, dass der Tag nun doppelt so lange dauert, jedoch habe ich noch par Probleme:
- Nachdem ich schlafen gegangen, wache ich in der Mitte des Tages auf, heißt Sonne steht oben.
- Manchmal passiert es sogar, dass es nach dem Schlafen Nacht ist und der Mond oben steht.
- Der Nebel ist dunkel, so als wäre es Nacht. Merkt man besonders, wenn man auf Tiny spielt.
Könnt ihr mir helfen?
Edit: (30.12.2012 um 16:13)
Ich habe den Code noch bearbeitet und jetzt sieht er so aus:
Code:
public float calculateCelestialAngle(long par1, float par3)
{
int var4 = (int)(par1 % 72000L);
float var5 = ((float)var4 + par3) / 72000.0F - 0.25F;
if (var5 < 0.0F)
{
++var5;
}
if (var5 > 1.0F)
{
--var5;
}
float var6 = var5;
var5 = 1.0F - (float)((Math.cos((double)var5 * Math.PI) + 1.0D) / 2.0D);
var5 = var6 + (var5 - var6) / 3.0F;
return var5;
}
public int getMoonPhase(long par1, float par3)
{
return (int)(par1 / 72000L) % 8;
}
Ein ganzer Tag (Tag und Nacht) dauert jetzt insgesamt eine Stunde, also 72000 Ticks. Klappt jetzt einwandfrei, aber Ich habe noch das Problem, dass wenn ich nach dem Sonnenuntergang schlafe gehe, ich bei 48000 Ticks aufwache, also in der Nacht. Gehe ich danach wieder schlafen, wache ich bei 0 Ticks auf, also normaler Morgen. Und ich weiß jetzt wie ich diesen Fehler beheben soll...