Triez vos classes !
-
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 packageLes -
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 ceciD_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 !
-
Bien sympa se petit tuto ^^, par contre c’est un fail ou l’image que tu voulais montrai n’apparais pas ?
Juste au dessus de : " 3)Déclarez vos Items, blocs et crafts ailleurs " -
Honnêtement je n’aime pas ce genre de rangement. J’utilise plutot le nom du mod et ensuite les classes. Ou bien un package par type de classes.
Ex1 : MONMOD_BlockMyBlock
Ex2: monmod.common.items/blocks/core/etc…
-
@‘sevenno07’:
Bien sympa se petit tuto ^^, par contre c’est un fail ou l’image que tu voulais montrai n’apparais pas ?
Juste au dessus de : " 3)Déclarez vos Items, blocs et crafts ailleurs "Pourtant moi je la vois
-
Pour ton problème de rouge, c’était un /color qui n’avait rien à faire là.
Le tutoriel est pas mal, mais :- Comme elias, j’aime pas ta façon de trier. En fait j’ai surtout horreur de mettre des _ dans mes noms de classes. En générale je mets ItemNomDeItem.
- Chacun a ça propre façon de s’organiser, on peut pas vraiment globaliser ça dans un tutoriel.
- Créer des void static et les appeler dans une autre classe, c’est du java, pas du modding forge. Je ferai peut-être une section tutoriel java, mais je suis pas sûr que ça sera super utile.
Donc je refuse le tutoriel.