Parce-que moi aussi j'ai envie de te convaincre :
Je te fait un exemple utilisant l'héritage,
mais comme je sais pas d’où tu sort "blockActivated(World world, int i, int j, int k, EntityPlayer entityplayer)"
je suppose que l'exemple sera faux, mais l'idée est là.
Admettons pour départ le code :
Code:
boolean parcequeilaenviedemettreunif = true;
if(parcequeilaenviedemettreunif) {
{
openhud(GUIFurnace);
}
Facile à comprendre par un neofite.
L'IHM l'intégrera dans une class, qui représente le code du mod.
Code:
package mon.mod;
import sdk.de.ouf.SuperMod;
public class MonMod extends SuperMod {
public void main () {
boolean parcequeilaenviedemettreunif = true;
if(parcequeilaenviedemettreunif) {
openhud(GUIFurnace);
}
}
}
Cette class hérite d'une class de ton SDK, qui définies toutes les méthodes utile.
Code:
package sdk.de.ouf;
public class SuperMod {
public static final String GUIFurnace = 'GUIFurnace';
public World world = ??;
public int i = ??;
public int j = ??;
public int k = ??;
public EntityPlayer entityplayer = ??;
public void openhud (String gui) {
if(world.multiplayerWorld) {
return true;
} else {
switch (gui) {
case GUIFurnace :
TileEntityFurnace tileentityfurnace = (TileEntityFurnace)world.getBlockTileEntity(i, j, k);
entityplayer.displayGUIFurnace(tileentityfurnace);
break;
}
return true;
}
}
}
Inutile de créer un langage de script qui ajoute une couche d'abstraction, et donc d'erreur supplémentaire, quand il suffit d'utiliser l'héritage de class pour fournir à l'utilisateur des méthodes comme "openhud(GUIFurnace);" simple à écrire et à comprendre.
Et qui en plus s’inscrit dans une logique OO, facilement ré-exploitable, par d'autres personne, qui ne connaitrais pas forcément ton langage de script (mais juste le java
)
La couche d'abstraction nécessaire pour amortir les différentes mise à jour effectuer par mojang est tout simplement le package sdk.de.ouf, autrement dit ton SDK.
je tente un mariage
http://minecraft.fr/forums/showthread.php?tid=8746