16 mai 2016, 15:54

Salut
J’ai plusieurs questions/problèmes concernant les entités, les blocks, le monde, …

Je vais commencer par expliquer mon “concept” pour que tout paraisse plus logique et compréhensible : j’ai (grâce à vous) créer une variable s’appelant “apocalypse” qui par défault vaut false. Mais quand on rentre dans une dimension perso pour la 1ère fois, ça met la variable à true, ce qui déclenche donc l’apocalypse. Je créerai un boss qu’il faudra tuer pour annuler l’apocalypse (et donc mettre la variable à false).

  1. J’aimerai changer certains blocks par d’autre blocks uniquement pendant l’apocalypse et ensuite les rechanger quand l’apocalypse est fini (je vais prendre l’exemple de l’eau : quand c’est l’apocalypse, je voudrais changer toute l’eau du monde par de la lave (celle que j’ai créer) et ensuite quand c’est fini, rechanger ma lave par de l’eau).

  2. Dans le même style que la question précédente, je voudrais changer certains mobs par d’autre (par exemple changer le loup par un loup garou).

  3. Je voudrais aussi générer des structures. Mais c’est plus complexe que ça : je sais comment générer des structures dans des biomes non visités, mais je ne sais pas comment faire pour des biomes déjà chargés (je voudrais surtout mettre du feu).

  4. J’ai un problème pour désactiver la pluie. J’ai utilisé cette fonction : java    BiomeGenBase.plains.setDisableRain(); ça marche bien. Mais dès que j’ajoute cette condition : ```java
      if(apocalypse == true)
      {
    BiomeGenBase.plains.setDisableRain();
    BiomeGenBase.plains.temperature = 5698F;
      }


5) J'ai aussi un problème pour afficher du texte dans le chat. J'ai utilisé cette fonction :```java
player.addChatMessage(new ChatComponentTranslation("msg.apocalyspe.start", player.getDisplayName()).setChatStyle((new ChatStyle().setColor(EnumChatFormatting.RED))));
``` (c'est celle que j'ai utilisé pour mon mode de Noël), mais rien ne s'affiche dans le chat.

6) Je pense avoir trouvé comment modifier la couleur du ciel : ```java
package This_is_Halloween.Client;

import net.minecraft.entity.Entity;
import net.minecraft.util.Vec3;
import net.minecraft.world.WorldProvider;
import net.minecraftforge.client.IRenderHandler;

public abstract class ApocalypseWorldProvider extends WorldProvider
{
@Override
public Vec3 getFogColor(float var1, float var2)
{
System.out.println("getFogColor called");
       float f3 = 0.7529412F;
       float f4 = 0.84705883F;
       float f5 = 1.0F;
       return Vec3.createVectorHelper((double)f3, (double)f4, (double)f5);
}

@Override
public Vec3 getSkyColor(Entity cameraEntity, float partialTicks)
{
System.out.println("getSkyColor called");
       float f4 = (float)0 / 255.0F;
       float f5 = (float)0 / 255.0F;
       float f6 = (float)0 / 255.0F;
       return Vec3.createVectorHelper((double)f4, (double)f5, (double)f6);
}

@Override
public void setCloudRenderer(IRenderHandler renderer)
{
System.out.println("setCloudRenderer called");
}
}
```(au passage, ça enlèvera aussi les nuages et ça modifiera le brouillard).
Je l'appelle via : ```java
@SubscribeEvent
public void Apocalypse(EntityJoinWorldEvent event)
{
if (event.entity != null & event.entity instanceof EntityPlayerMP)
{
DimensionManager.unregisterProviderType(0);
DimensionManager.registerProviderType(0, ApocalypseWorldProvider.class, false);
}
}
``` mais rien : ça garde le provider par défaut. J'ai peut-être utilisé le mauvais event. Je précise que je l'ai mis dans ma classe d'évent côté client uniquement.
(au départ, j'avais testé sans désenregistré le provider, mais je l'ai rajouté après pensant que ça réglerait le bug)

7) Je voudrais aussi changer la couleur de l'herbe. J'ai trouvé un sujet qui peut me correspondre ([ici](https://www.minecraftforgefrance.fr/showthread.php?tid=2117)). Je l'ai mis en modifiant les paramètres (BlockPos n'existe pas en 1.7). Dans ma classe d'évent client, j'ai créer une fonction avec comme évent BiomeEvent.GetGrassColor (ce que Robin avait dit), mais après, je ne sais pas comment appeler la classe.

8) Et pour finir, j'aimerai également que quand l'apocalypse vient de finir, il se mette à pleuvoir. J'avais pensé à mettre la fonction addChatMessage avec la commande de la pluie, mais si le joueur n'active pas les commandes, c'est rapé :/

Je sais que je demande beaucoup, certaines sont peut-être infaisable mais bon …

Merci d'avance