Je ne sais pas vraiment si on peux appeler ça un tutoriel car moins de 33 % du tuto est du code , enfin bref.
Bonjour a tous , voila un petit tuto pour vous apprendre a adopter un style de triage pour vos mods minecraft.
#1) Des préfixes !(1) Des préfixes !)
Une méthode simple et efficace , ajoutez de préfixes au noms de vos classes.
Les +
Les catégories seront regroupés ensemble ( Items , Blocks , etc )
Les -
Si votre classe est déjà crée , vous perdrez du temps a la renommer.
Exemple :
:::
Voici quelques préfixes que j’utilise , a vous de créer les votre !
D_ ( data ) : Fichier concernant l’IA , les trad de villageois , etc etc
B_ (blocs) : Blocs
Mi_ ( Minerais ) : Minerais
TE_ ( Tile Entity ) : Les Tile Entity ( coffre , blocs a animations et models )
I_ (Items ) : Objet Lambda
Ge_ (gemme) : Objet Gemme , issu d’un minerai
G_ (gear) : Armures
W_ ( weapons ) : Armes
Pio_ : Pioches
H_ (hoe) : Houes
A_ (axe) : Haches
Pe_ : pelles
E_ (entity) : une entité
M_ ( Mob ) : …
Mod_ (model) : Model 3D d’un mob/block/item etc
R_ (Render) : Render
GUI_ : GUI
Misc_ (miscellanous) : Divers
Sounds_ : Les fichiers servant aux sons
:::
#2)Des Packages !(2)Des Packages !)
Créez des packages pour effectuer un classement rapide.
Les +
Plus de clarté
Perdre moins de temps a chercher dans chaque package
Les -
Peut sembler bord*lique au début
:::
Voici quelques packages que j’utilise :
Common : Contient le commonProxy , la classe principale , les les fichiers D_
Client : Contient le ClientProxy , et les models/renders
Items : Contient les Objets ( tous , I_ , Ge_ , W_ … )
Blocs : Contient les blocs ( B_ , TE_ , Mi_ … )
Entités : Contient les entités
Sounds : Contient les fichiers Sounds_ + les sons en eux-mêmes
:::
Exemple :
#3)Déclarez vos Items, blocs et crafts ailleurs(3)Déclarez vos Items, blocs et crafts ailleurs)
(merci a robin4002 pour cette partie , il m’a aidé sans le vouloir )
Du codage ! Enfin !
Je vais ici utiliser 3 fichiers D_ :
D_Items , D_Crafts , D_Blocs.
Créez les trois classes.
D_Items :
package mods.nono.MGSmod.common;
public class D_Items{
public static void loadItems()
{
// votre code ici
}
}
D_Crafts
package mods.nono.MGSmod.common;
public class D_Items{
public static void loadCrafts()
{
// votre code ici
}
}
D_Blocs
package mods.nono.MGSmod.common;
public class D_Items{
public static void loadBlocs()
{
// votre code ici
}
}
Ensuite dans votre classe principale ,
a @Init :
insérez ceci
D_Items.loadItems();
D_Blocs.loadBlocs();
Et a la fin de @Init /!\Très important !!!
D_Crafts.loadrecipe();
Maintenant , copiez/collez les déclarations de vos Items dans D_Items , de vos Blocs dans D_Blocs et des crafts dans D_crafts , la ou est inscris
// votre code ici
Vous aurez une erreur. Pour l’enlever , collez devant le nom de la variable qui déclare :
votreclasseprincipale.
Exemple :
package mods.nono.MGSmod.common;
import mods.nono.MGSmod.ammo.I_Akammo;
import mods.nono.MGSmod.ammo.I_PKMammo;
import mods.nono.MGSmod.ammo.I_Plomb;
import mods.nono.MGSmod.ammo.I_Rocket;
import mods.nono.MGSmod.ammo.I_SOammo;
import mods.nono.MGSmod.ammo.I_SniperAmmo;
import mods.nono.MGSmod.items.I_Box;
import cpw.mods.fml.common.registry.LanguageRegistry;
public class D_Items {
public static void loadItems()
{
Main.Box = new I_Box(3998).setUnlocalizedName("Box");
Main.SOammo = new I_SOammo(3999).setUnlocalizedName("SOammo");
Main.Akammo = new I_Akammo(4000).setUnlocalizedName("Akammo");
Main.PKMammo = new I_PKMammo(4001).setUnlocalizedName("PKMammo");
Main.Rocket = new I_Rocket(4002).setUnlocalizedName("Rocket");
Main.SniperAmmo = new I_SniperAmmo(4003).setUnlocalizedName("SniperAmmo");
Main.plomb = new I_Plomb(4004).setUnlocalizedName("plomb");
}
}
Vous voyez que j’ai n’ai pas les
LanguageRegistry.addName(Main.Box, "Boite en carton");
Si vous en avez peur , regardez plus bas.
#4) Pour aller plus loin(4) Pour aller plus loin)
Vous pouvez modifier ce système en décomposant en plusieurs catégories :
package mods.nono.MGSmod.common;
import mods.nono.MGSmod.items.I_Knife;
import mods.nono.MGSmod.weapons.W_AK47;
import mods.nono.MGSmod.weapons.W_Famas;
import mods.nono.MGSmod.weapons.W_MK22;
import mods.nono.MGSmod.weapons.W_Mosin;
import mods.nono.MGSmod.weapons.W_Patriot;
import mods.nono.MGSmod.weapons.W_Railgun;
import mods.nono.MGSmod.weapons.W_SOCOM;
import mods.nono.MGSmod.weapons.W_SPAS12;
import mods.nono.MGSmod.weapons.W_SVD;
import mods.nono.MGSmod.weapons.W_Unikita;
import mods.nono.MGSmod.weapons.W_nikita;
import mods.nono.MGSmod.weapons.W_pkm;
import cpw.mods.fml.common.registry.LanguageRegistry;
public class D_Weapons {
public static void loadCQC()
{
Main.Knife = new I_Knife(3500, Main.MKnife).setUnlocalizedName("Knife");
}
public static void loadguns()
{
Main.Ak47 = new W_AK47(4005).setUnlocalizedName("Ak47");
Main.Patriot = new W_Patriot(4006).setUnlocalizedName("Patriot");
Main.FAMAS = new W_Famas(4007).setUnlocalizedName("FAMAS");
Main.PKM = new W_pkm(4008).setUnlocalizedName("PKM");
Main.SOCOM = new W_SOCOM(4009).setUnlocalizedName("SOCOM");
Main.nikita = new W_nikita(4010).setUnlocalizedName("nikita");
Main.MK22 = new W_MK22(4011).setUnlocalizedName("MK22");
Main.SPAS12 = new W_SPAS12(4012).setUnlocalizedName("SPAS12");
Main.MosinNagant = new W_Mosin(4013).setUnlocalizedName("MosinNagant");
Main.SVD = new W_SVD(4014).setUnlocalizedName("SVD");
Main.Unikita = new W_Unikita(666).setUnlocalizedName("Unikita");
Main.Railgun = new W_Railgun(4015).setUnlocalizedName("Railgun");
}
}
Vous voyez ici que j’ai loadCQC et loadguns
N’oubliez pas de les importez dans la classe principale !
D_Weapons.loadguns();
D_Weapons.loadCQC();
Ici , ma classe D_weapons est composé de deux catégories : loadCQC et loadguns.
A quoi ça sert ? Quasiment a rien , juste a espacer , et surtout a ça :
Revenons au fait que je n’ai pas ça
LanguageRegistry.addName(Main.Box, "Boite en carton");
Dans mes codes.
Créez une classe D_Name.
package mods.nono.MGSmod.common;
import cpw.mods.fml.common.registry.LanguageRegistry;
public class D_Names {
public static void loadItems()
{
}
}
Importez la dans la classe principale
D_Names.loadItems();
Et dedans , copiez/collez tout simplement les LanguageRegistry.addName !
Exemple :
package mods.nono.MGSmod.common;
import cpw.mods.fml.common.registry.LanguageRegistry;
public class D_Names {
public static void loadItems()
{
LanguageRegistry.addName(Main.Box, "Boite en carton");
LanguageRegistry.addName(Main.SOammo, "munitions Mk.23");
LanguageRegistry.addName(Main.Akammo, "munitions Ak-47");
LanguageRegistry.addName(Main.PKMammo, "munitions PKM");
LanguageRegistry.addName(Main.Rocket, "Roquette");
LanguageRegistry.addName(Main.SniperAmmo, "Muntion de fusil Sniper");
LanguageRegistry.addName(Main.plomb, "Muntion de SPAS12");
}
public static void loadCQC()
{
LanguageRegistry.addName(Main.Knife, "Couteau de survie");
}
public static void loadguns()
{
LanguageRegistry.addName(Main.Ak47, "Ak-47");
LanguageRegistry.addName(Main.Patriot, "Patriot");
LanguageRegistry.addName(Main.FAMAS, "FAMAS");
LanguageRegistry.addName(Main.PKM, "Mitrailleuse lourde PKM");
LanguageRegistry.addName(Main.SOCOM, "SOCOM Mk.23");
LanguageRegistry.addName(Main.nikita, "nikita");
LanguageRegistry.addName(Main.MK22, "MK.22");
LanguageRegistry.addName(Main.SPAS12, "SPAS12");
LanguageRegistry.addName(Main.MosinNagant, "MosinNagant");
LanguageRegistry.addName(Main.SVD, "SVD");
LanguageRegistry.addName(Main.Unikita, "nikita ubercharge");
LanguageRegistry.addName(Main.Railgun, "Canon a rampe");
}
public static void loadArmors()
{
LanguageRegistry.addName(Main.OctocamoV, "Octocamo");
LanguageRegistry.addName(Main.OctocamoJ, "Octocamo");
LanguageRegistry.addName(Main.OctocamoB, "Octocamo");
LanguageRegistry.addName(Main.CamoT, "Tenue de camouflage");
LanguageRegistry.addName(Main.CamoV, "Tenue de camouflage");
LanguageRegistry.addName(Main.CamoJ, "Tenue de camouflage");
LanguageRegistry.addName(Main.CamoB, "Tenue de camouflage");
}
}
Couplez tout ça avec ce que vous avez appris , et amusez vous !