Niveau de lumière
-
Le niveau de lumière est déjà géré sur le WorldClient pour le rendu. Donc pas besoin de paquet, c’est déjà fait par ceux de mc.
Tu peux utiliser world.getFullBlockLightValue(x, y, z);
-
Même problème, cette fonction ne tiens pas compte si il fait jour ou nuit

Merci de votre aide en tout cas !
-
Sinon il faudrait regarder quel code est utilisé dans le code qui rend ce qui voit dans F3.
-
Ha oui, ça c’est pas bête, jvai voir tout de suite
Edit: Mauvaise nouvelle, la nuit n’est pas pris en compte ici non plus
Edit²: Dailleur je viens de tester dans le minecraft officiel 1.7.4, c’est pas le cas non plus

-
Alors ça fait un ptit moment que je suis en train de chercher, et je remarque le la partie client n’a aucune notion de l’heure qu’il est, et ne fait (pratiquement) aucun calcule pour ce qui est de la lumière (voir aucun pour la lumière du soleil)
Dailleur, à l’époque de Minecraft Beta, toutes les lumières était géré par le serveur, le client ne faisait aucun calcule et récupérait toutes les données venant du serveur, se qui est resté le cas pour la lumière du soleilJvai devoir me résumer à utiliser les PacketsHandler

-
Bah, y’a le temps du world non ?
Enfin, moi je me sers de ça pour détecter jour/nuit
if(this.mc.thePlayer.worldObj.getWorldTime() > 13000){ //C'est la nuit o/ } else { //C'est pas la nuit o/ } -
Exactement ^^
Mais je vais dans un peut plus complexe (si possible)
Le soir, la lumière diminue peut à peut, et le niveau de lumière passe de 15 à 0 progressivement, et j’ai besoin de sa
(J’ai regarder dans le code du détecteur de lumière, sa aide pas vraiment)Ps: Sinon, j’avais utiliser à peut de chose près la même fonction:
if(this.mc.TheWorld.getWorldTime() > 12000){ // –- NUIT ! --- // } else { // --- JOUR! --- // } -
Bon, j’ai tester nos deux fonctions, et malheureusement, aucune des deux ne fonctionne correctement

Pourquoi ? Réponse sur le wiki:time add <number>:
Sets the world time. number is an integer between 0 and 24000, inclusive, where 0 is dawn, 6000 midday, 12000 dusk and 18000 midnight. Number can be greater than 24000; in this case, the time of day wraps around, but the moon’s phase is advanced. However, Setting the time “backward” (earlier than the current time) does not change the moon. “time set day” sets the time to 1000, and “time set night” sets the time to 13000.</number>En gros, une fois que le WorldTime arrive a 24000, il ne revient pas à zero mais continue indéfiniment pour pouvoir calculer la phase de la lune
De plus, le WorldTime du serveur et du client peuvent être désynchronisé (coup de lag, ralentissement, etc …), c’est pour ça que c’est le serveur qui envoi l’heure de la journée aux clients, pour qu’il fasse jour ou nuit chez tout le monde en même temps, et pour que la phase de la lune soit partout la même
Donc pour moi, c’est hard, il me faut une autre fonction :dodgy:
Edit:
Solution de secours de type B:int dayNumber = (int) (world.getWorldTime() / 24000) + 1; if( world.getWorldTime() / dayNumber > 13000) { // --- NUIT ! --- // } else { // --- JOUR! --- // }Mais c’est du bricolage et j’aime pas, et j’ai toujours mon problème de synchronisation :s
-
Rooh fait confiance au client. La synchro est automatique.
final boolean isDay = world.getWorldTime() % 24000 < 13000;Pour un niveau de luminosité du soleil de 0 à 15:
final int light = !isDay ? 0 : 15 - Math.abs(6500 - world.getWorldTime() % 24000) * 14 / 6500light == 0 toute la nuit
light == 15 au zénith
light == 1 à l’aube et au crépuscule -
La solution:
int dayNumber = (int) (world.getWorldTime() / 24000) + 1; if( world.getWorldTime() / dayNumber > 13000) { // –- NUIT ! --- // } else { // --- JOUR! --- // }est pas mal, en plus j’ai le nombre de jours !
Merci à tous !