Résolu [1.9] ForgeDirection.UNKNOW to 1.8/1.9
-
Bonjour ,
J’ai une question tout bête mais:
Avant (1.7), on avait un ForgeDirection et maintenant c’est EnumFacing, mais voila: Le ForgeDirection pouvait –> ForgeDirection.UNKNOW mais maintenant on ne peux plus faire ca de l’autre sens --> EnumFacing.UNKNOW car le UNKNOW n’existe plus.
Ma question:
–> Existe t’il un moyen de reproduire un ForeDirection.UNKNOW à un truc similaire avec la class EnumFacing ?
J’éspère que vous avez compris.
Yohann
-
Salut,
Il me semble que lex avait dit de simplement utiliser null pour cette situation. -
@‘robin4002’:
Salut,
Il me semble que lex avait dit de simplement utiliser null pour cette situation.Je sais plus, mais il me semble que c’est ca.
Edit: Oui, c’est ca. Merci.
Yohann
-
D’ailleurs, une autre question, par contre celle-ci je n’ai vraiment rien trouvée.
Pour passer de ForgeDirection.VALID_DIRECTION en EnumFacing c’est quoi ?
-
Il n’y pas de truc spécial pour ça (du moins, je crois pas), mais c’est toutes les faces de EnumFacing qui sont valides.
-
VALID_DIRECTIONS contenait tout sauf UNKNOWN.
Sachant que maintenant on utilise simplement null pour UNKNOWN, il suffit de faire un null check. VALID_DIRECTIONS n’est plus nécessaire.
Si tu n’utilisais dans une boucle for pour parcourir les différentes directions possible, tu as EnumFacing.VALUES. -
Le problème c’est que ici (voir dessous), je ne sais pas comment le mettre bien
public class EnergyNet { public void distributeEnergyToSurrounding(World world, int x, int y, int z, EnumFacing lastDirection, EnergyBar energyBar) { distributeEnergyToSurroundingWithLose(world, x, y, z, lastDirection, energyBar); } public void distributeEnergyToSurrounding(World world, int x, int y, int z, EnergyBar energyBar) { distributeEnergyToSurrounding(world, x, y, z, null, energyBar); } public static void distributeEnergyToSide(World world, BlockPos faces, EnumFacing direction, EnergyBar energyBar) { int x = x + direction.getFrontOffsetX(); int y = y + direction.getFrontOffsetY(); int z = z + direction.getFrontOffsetZ(); if (world.getTileEntity(faces.add(x, y, z)) instanceof IEnergy) { IEnergy energyTileOnSide = (IEnergy) world.getTileEntity(faces.add(x + direction.getFrontOffsetX(), y + direction.getFrontOffsetY(), z + direction.getFrontOffsetZ())); IEnergy thisEnergyTile = (IEnergy) world.getTileEntity(faces); EnumFacing invertedSide = EnumFacing. } } }
Sur la toute dernière ligne “EnumFacing invertedSide = EnumFacing.” Normalement en 1.7, cette ligne c’est :
ForgeDirection invertedSide = ForgeDirection.VALID_DIRECTIONS[ForgeDirection.OPPOSITES[direction.ordinal()]];
mais je ne sais pas comment le mettre en remplacant tout en EnumFacing.
Surtout dans ma partis assez foireuse du “distributeEnergyToSide”
Yohann
-
tout simplement direction.getOpposite()
-
Du genre, comme ca ? (pour la derniere ligne)
EnumFacing invertedSide = direction.getOpposite();
-
oui
-
Ok, je te remercie
-
Bon ok, je crois que cette histoire de ForgeDirection m’as littéralement m’enerver.
Maintenant j’ai une erreur au niveau du :
for (EnumFacing direction : lastDirection.getOpposite())
Erreur –> “Can only iterate over an array or an instance of java.lang.Iterable”
[java]
private void distributeEnergyToSurroundingWithLose(World world, int x, int y, int z, EnumFacing lastDirection,
EnergyBar energyBar)
{
int sides = 0;
boolean sidesCanOutput [] = new boolean [6];
for (EnumFacing direction : lastDirection.getOpposite())
{}
}[java]
-
lastDirection.getOpposite() est du type EnumFacing, ce n’est ni une liste, ni une array
-
Ba alors comment on met en place ca:
for (ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) { }
-
Comme ça :
for(EnumFacing face : EnumFacing.VALUES) { }
-
J’allais demander exactement si c’était bien ca.
j’ai checker enfaite dans la class et j’ai vus qu’il y avais deux listes.
Sinon, je te remercie
-
résolu ?
-
@‘SCAREX’:
résolu ?
Ha oui désole, j’avais oublier