Dimension, structures.
-
ça devrait fonctionner alors oui, donc le problème vient de la fonction update.
-
la nuit passe et le soleil se lève toujours.
le problème vient visiblement des conditions. j’ai viré toutes les conditions, ils la fait respawn à chaque tick. -
Il y a une variable skylightSubtracted dans la classe World, faudrait voir pour la garder sur un nombre voulu (genre 4 ou 5) depuis un tick handler de type world.
Après pour les games rules tu as la fonction getGameRules dans la classe world, donc dans le constructeur du provider tu peux tenter de faire :
this.worldObj.getGameRules().setOrCreateGameRule(“keepInventory”, “true”); -
pour la nuit, j’ai simplement mis la variable hasnosky sur true

pour le gamerule où mettre ça, pck je voudrais que ça s’applique à tout les mondes.
j’ai test dans le worldprovider de la dimension que j’ai créé, je perd ma stuff. -
Essaye depuis WorldEvent.Load dans ce cas.
-
@‘robin4002’:
Pour la nuit, dans ton world provider essaye de mettre :
public boolean isDaytime() { return false; }Pour le gamerule, aucune idée.
Pour ma dimension ça ne marche pas, le cycle jour/nuit continue de défiler. Il faut procéder autrement, je l’ai fait sur ma dimension.
-
oui le cycle continue de défiler mais en mettant ce bout de code + hasnosky sur true, il continue de défiler mais il fait toujours sombre.
-
Pour la lumière regarde mon code ^^
-
J’ai fait quelques test au sujet du bloc quid oit faire spawn la maman creeper.
j’ai utilisé ce code:public class TileEntityCreepyBlock extends TileEntity { public Random rand; public int count = 0; public Date D = new java.util.Date();; public int H = 0; public int M = 0; public int S = 0; @Override public void updateEntity() { H = D.getHours(); M = D.getMinutes(); S = D.getSeconds(); System.out.println(H + "h"); System.out.println(M + "m"); System.out.println(S + "s"); if (H == 12 && H == 16 && H == 20 && H == 22) { if (M == 49) { if (S == 0) { if (count == 0) { System.out.println("Mommy Creepy Respawn!"); final IEntitySelector livingFilter = new MommyFilter(); AxisAlignedBB Axis = AxisAlignedBB.getAABBPool().getAABB(this.xCoord - 24, this.yCoord - 2, this.zCoord - 25, this.xCoord + 24, this.yCoord + 2, this.zCoord + 25); List entityTargetList = this.worldObj.selectEntitiesWithinAABB(Entity.class, Axis, livingFilter); for (int i = 0; i < entityTargetList.size(); i++) { Entity entityTarget = (Entity)entityTargetList.get(i); if (entityTarget instanceof EntityMommyCreepy) { entityTarget.setDead(); } } new MommyDungeon(this.worldObj, rand, this.xCoord, this.yCoord, this.zCoord); if(!worldObj.isRemote) { spawnMommyCreepy(this.worldObj, (double)(this.xCoord + 23), (double)(this.yCoord + 1), (double)(this.zCoord + 24)); } count++; } } if (S == 1) { count = 0; } } } } public void spawnMommyCreepy(World world, double posX, double posY, double posZ) { Entity entity = new EntityMommyCreepy(world); entity.setPosition(posX, posY, posZ); world.spawnEntityInWorld(entity); } }et le résultat dans la console est le suivant:
2014-06-12 11:02:05 [Infos] [STDOUT] 11h 2014-06-12 11:02:05 [Infos] [STDOUT] 1m 2014-06-12 11:02:05 [Infos] [STDOUT] 54s 2014-06-12 11:02:05 [Infos] [STDOUT] 11h 2014-06-12 11:02:05 [Infos] [STDOUT] 1m 2014-06-12 11:02:05 [Infos] [STDOUT] 54s 2014-06-12 11:02:05 [Infos] [STDOUT] 11h 2014-06-12 11:02:05 [Infos] [STDOUT] 1m 2014-06-12 11:02:05 [Infos] [STDOUT] 53s 2014-06-12 11:02:05 [Infos] [STDOUT] 11h 2014-06-12 11:02:05 [Infos] [STDOUT] 1m 2014-06-12 11:02:05 [Infos] [STDOUT] 53s 2014-06-12 11:02:05 [Infos] [STDOUT] 11h 2014-06-12 11:02:05 [Infos] [STDOUT] 1m 2014-06-12 11:02:05 [Infos] [STDOUT] 54s 2014-06-12 11:02:05 [Infos] [STDOUT] 11h 2014-06-12 11:02:05 [Infos] [STDOUT] 1m 2014-06-12 11:02:05 [Infos] [STDOUT] 53s 2014-06-12 11:02:05 [Infos] [STDOUT] 11h 2014-06-12 11:02:05 [Infos] [STDOUT] 1m 2014-06-12 11:02:05 [Infos] [STDOUT] 54s 2014-06-12 11:02:05 [Infos] [STDOUT] 11h 2014-06-12 11:02:05 [Infos] [STDOUT] 1m 2014-06-12 11:02:05 [Infos] [STDOUT] 53sil semblerait, que la valeur est attribué une fois, puis n’est jamais modifié à partir du lancement du jeu.
Autre chose, quand j’avais pas mis les ’ = 0’ à ce code:public int H = 0; public int M = 0; public int S = 0;mes print ne se faisait pas du tout, est ce normal?
quelqu’un a t’il une idée? moi concrétement je sèche.
-
Normal, puisque tu instancie l’objet Date dans le constructeur, donc il n’est jamais mit à jour.