Šodien mēs sākam rakstu sēriju iesācējiem, kas paredzēti, lai palīdzētu viņiem apgūt Minecraft modifikāciju un, pats galvenais, darīt to pēc iespējas ātrāk un lietderīgāk. Principā katrs no mums var atrast nodarbības un sākt veidot modifikācijas, jo nejauši jūs varat darīt gandrīz jebko, pat ja tas nav pilnīgi pareizi un skaisti. Šī apmācība pasargās jūs no uzkāpšanas uz grābekļa un palīdzēs jums sākt darbu pēc iespējas ātrāk un ērtāk.
Jāpiebilst, ka Minecraft modifikācijas ir rakstīti Java valodā. Šeit nebūs ērti redaktori. Jums ir jābūt vismaz minimālām zināšanām par Java vai pieredzei ar citām programmēšanas valodām, zināšanām par to pamatiem. Kā pēdējais līdzeklis ir liela vēlme to visu apgūt. Ja jūs muļķīgi nekopējat piemērus, bet mēģināt saprast, kā tas darbojas, tad veiksme jūs noteikti gaidīs.
Gandrīz katrs cilvēks, kurš kādreiz ir instalējis Minecraft modifikācijas, ir pazīstams ar Forge modifikāciju, jo lielākajai daļai modifikāciju ir nepieciešama tā klātbūtne jūsu spēlē. Šajā rakstā mēs izveidosim modifikācijas tieši Forge.
Kāpēc Forge? Iedomājieties, ka jums ir jāsalabo televizors/dators/iPhone/lielais hadronu paātrinātājs (vajadzīgo pasvītrot), taču pa rokai ir tikai āmurs un naglas. Protams, iesim un paņemsim noputējušu instrumentu kasti, kurā ir knaibles, pincetes un būtībā viss pārējais, ko sirds kāro. Mūsu gadījumā Forge ir vēlamais rīku komplekts.
Vispirms mums ir jālejupielādē JDK (Java izstrādes komplekts)
Raksts ir ekskluzīvs vietnei. Informācijas kopēšana un pārdrukāšana iespējama tikai ar autora rakstisku piekrišanu.
Nav nepieciešams dzēst META-INF failos minecraft.jar un minecraft_server.jar
1. Izveidojiet mapi (Piemēram: MCP Forge) un izpakojiet arhīva saturu ar MCP tur.
2. Kopējiet bin un resursu mapi no klienta uz mapi ../MCP Forge/jars/, no servera mums vajag tikai minecraft_server.jar.
3. Izsaiņojiet arhīvu ar Forge-src mapē MCP Forge
4. Atveriet mapi ../MCP Forge/forge/ un palaidiet failu install.cmd. Mēs gaidām dekompilācijas pabeigšanu.
(P.S Ja vēlaties, lai jums jau būtu gatavs MCP ar Forge, piemēram, ja nejauši to izdzēsāt vai ko citu, tad: Kad dekompilācija ir pabeigta, palaidiet spēli un ļaujiet tai lejupielādēt lib, un pēc tam pievienojiet šo MCP Forge arhīvā, piemēram, šādi (mcp Forge 1.5.1)
5. “Instalējiet” un palaidiet Eclipse, startēšanas laikā jums tiks “jautāts” mape ar projektu, norādiet ceļu: ../MCP Forge/eclipse/
6. Tātad, mēs atvērām projektu, tagad (parasti kreisajā pusē ir Package explorer) mēs skatāmies, kādu bibliotēku tas "ēd" (Package explorer logā "atveriet Minecraft projektu" un ja ir rinda “JRE System Library”, tad viss ir kārtībā, bet ja rinda ir “JRE System Library”, tad ar peles labo pogu noklikšķiniet (Right-click), izvēlieties Properties, tad atveras logs, kurā ir atlasīta Izpildes vide, izvēlieties JavaSE-1.7 tajā un noklikšķiniet uz Labi.
7. Tātad, preparāti ir gatavi.
Kā sākt rakstīt modi?
Pirmkārt, mums ir jāizveido “bāze”, tas ir, galvenā “mape”, kurā tiks glabāta mūsu “bāze” un viss pārējais.
1. Dodieties uz Eclipse, skatiet Minecraft mapi programmā Package Explorer, atveriet to un ar peles labo pogu noklikšķiniet uz mapes src, izvēlieties New->Package. Atvērtajā logā rindā Nosaukums mēs norādām tās mapes nosaukumu, kurā viss tiks saglabāts (piemēram, ņemiet: mods.testmod.src) un noklikšķiniet uz Labi.
2. Ar peles labo pogu noklikšķiniet uz mūsu mapes (mods.testmod.src), pēc tam uz New -> Class. Rindā Nosaukums norādiet mūsu faila nosaukumu (piemēram, TestModBase) un noklikšķiniet uz Pabeigt.
3. Mainiet ceļu, bet neizņemiet modifikācijas, piemēram, mods.NewItemMod.src.
4. Jaunajās versijās vajag visu importēt “Daudz”, lai ātrāk to izdarītu Eclipse spied “ctrl + shift + o”, un ātri visu importēs un ja parādīsies logs tad izvēlies vajadzīgo importu.
5. Ja nestrādājat Eclipse, tad jums būs daudz grūtāk, tāpēc labāk pāriet uz to, tas norādīs, kur ir kļūda, un kādi importi ir nepieciešami un jums nebūs jājautā stulbi jautājumi komentāros.
pakotne mods.testmod.src;
importēt cpw.mods.fml.common.Mod;
importēt cpw.mods.fml.common.Mod.Init;
importēt cpw.mods.fml.common.Mod.Instance;
importēt cpw.mods.fml.common.Mod.PostInit;
importēt cpw.mods.fml.common.Mod.PreInit;
importēt cpw.mods.fml.common.event.FMLIinitializationEvent;
importēt cpw.mods.fml.common.event.FMLPostInitializationEvent;
importēt cpw.mods.fml.common.event.FMLPreInitializationEvent;
importēt cpw.mods.fml.common.network.NetworkMod;
importēt cpw.mods.fml.common.network.NetworkRegistry;
importēt cpw.mods.fml.common.registry.GameRegistry;
importēt cpw.mods.fml.common.registry.LanguageRegistry;
importēt cpw.mods.fml.common.network.NetworkMod.SidedPacketHandler;
importēt cpw.mods.fml.common.SidedProxy;
@Mod (modid = "TestMod", nosaukums = "Test Mod", versija = "0.0.1")
@NetworkMod(clientSideRequired = patiess, serverSideRequired = nepatiess, versionBounds = "1.0.0")
publiskā klase TestModBase (
@Instance("TestModID")
publiska statiska TestModBase instance;
@Tajā
{
}
@PreInit
public void preload (FMLPreinitializationEvent notikums)
{
}
@PostInit
public void postLoad (FMLPostInitializationEvent notikums)
{
}
}
Mūsu TestModBase failā
Pēc uzraksta:
publiskā klase TestModBase (
Ievadiet šo rindiņu:
publisks statisks galīgais Bloks testBlock = new TestBlock(2020).setUnlocalizedName("testBlock");
Parsēšana:
publisks statisks galīgais Bloks "testBlock" - testBlock mūsu bloka nosaukums kodā (nevis spēlē)
jauns TestBlock(2020) - TestBlock mūsu bloka nosaukums kodā (nevis spēlē), 2020 bloka ID
setUnlocalizedName("testBlock") - ("testBlock") mūsu bloka nosaukums kodā (nevis spēlē)
Pēc uzraksta:
@Tajā
publiskā spēkā esošā slodze (FMLIinitializationEvent notikums)
{
Ievadiet šo rindiņu:
GameRegistry.registerBlock(testBlock);
LanguageRegistry.addName(testBlock, "Test Block");
Parsēšana:
(testBlock) - mūsu bloka nosaukums kodā (nevis spēlē)
(testBlock, "Test Block") - testBlock ir mūsu bloka nosaukums kodā (nevis spēlē), "Test Block" ir mūsu bloka nosaukums spēlē.
Izveidojiet failu testBlock un ievadiet tajā šādu kodu:
pakotne mods.testmod.src;
importēt net.minecraft.block.Block;
importēt net.minecraft.block.material.Material;
publiskā klase TestBlock paplašina Block (
publiskais testbloks (int par1)
{
super(par1, Material.ground);//Materiāls
this.setCreativeTab(CreativeTabs.tabTools);//Pievienot reklāmai
}
//Reģistrēt tekstūru
@Override
{
}
}
Mūsu TestModBase failā
Pēc uzraksta:
publiskā klase TestModBase (
Ievadiet šo rindiņu:
public static Item testItem = new TestItem(2021).setUnlocalizedName("testItem");
Parsēšana:
publisks statisks galīgais vienums "testItem" - testItem ir mūsu preces nosaukums kodā (nevis spēlē)
jauns TestItem(2021) - TestItem mūsu preces nosaukums kodā (nav spēlē), 2021 preces ID
setUnlocalizedName("testItem") - ("testItem") mūsu preces nosaukums kodā (nav spēlē)
Pēc uzraksta:
@Tajā
publiskā spēkā esošā slodze (FMLIinitializationEvent notikums)
{
Ievadiet šo rindiņu:
LanguageRegistry.addName(testa vienums, "pārbaudes vienums");
Parsēšana:
(testItem, "Test Item") - testItem ir mūsu preces nosaukums kodā (nevis spēlē), "Test Item" ir mūsu preces nosaukums spēlē.
Izveidojiet failu testItem un ievadiet tajā šādu kodu:
pakotne mods.testmod.src;
importēt net.minecraft.item.Item;
importēt net.minecraft.client.renderer.texture.IconRegister;
importēt net.minecraft.creativetab.CreativeTabs;
publiskā klase TestItem paplašina vienumu
{
publisks testa vienums (int par1)
{
super(par1);
setCreativeTab(CreativeTabs.tabTools);
}
//Elementa tekstūras reģistrācija nedaudz atšķiras no bloka
@Override
public Void registerIcons (IconRegister par1IconRegister)
{
}
}
@Override
public Void registerIcons (IconRegister par1IconRegister)
{
this.blockIcon = par1IconRegister.registerIcon("testmod:testBlock");
}
("testmod:testBlock"), testmod ir "mapes nosaukums", kurā atradīsies "mape ar tekstūru", testBlock ir mūsu tekstūras nosaukums. Šis ir mūsu tekstūras izvietojums:
\Tutorial Forge 1.5.1\mcp744\src\minecraft\mods\testmod\textures\blocks\testBlock.png
@Override
public Void registerIcons (IconRegister par1IconRegister)
{
this.itemIcon = par1IconRegister.registerIcon("testmod:testItem");
}
("testmod:testItem"), testmod ir "mapes nosaukums", kurā atradīsies "mape ar tekstūru", testItem ir mūsu tekstūras nosaukums. Šis ir mūsu tekstūras izvietojums.
Tātad mums ir mape ar šādiem failiem:
Tagad jums ir jāpalaiž komanda gradlew eclipse. Ja jums ir Windows, ar peles labo pogu noklikšķiniet uz tukšās vietas iekšāšo mapi, turot nospiestu taustiņu Shift. Pēc tam parādītajā konteksta izvēlnē būs vienums “Atvērt komandu logu”. Atlasiet šo vienumu, un konsole nekavējoties tiks atvērta.
Konsolē ierakstiet gradlew eclipse.
Tagad atveriet Eclipse. Nav lielas atšķirības, kur atrodas darbvieta. Ekrāna augšdaļā atveriet izvēlni "Fails" un atlasiet "Importēt". Parādītajā sarakstā atlasiet "Gradle > Gradle Project".
Izlaidiet Gradle ievada logu, noklikšķinot uz pogas "Nākamais >", ja tā tiek parādīta.
Nākamajā logā norādiet mapi ar neizpakotajiem failiem. Noklikšķiniet uz "Pabeigt".
Ekrāna augšdaļā atveriet izvēlni "Logs" un atlasiet "Rādīt skatu > Cits...".
Parādītajā logā atlasiet "Gradle > Gradle Tasks".
Tiks atvērts logs ar Gradle uzdevumiem. Gradle ir populāra automātiskās veidošanas sistēma, kas no pirmkoda saliek gatavas programmas un veic daudzas citas nepieciešamās lietas, taču rutīna Bizness Šīs pašas lietas sauc par uzdevumiem/uzdevumiem/uzdevumiem - uzdevumus. Mēs tikko atvērām uzdevumu logu.
Tas izskatās apmēram šādi:
Lai veiktu testa darbību, ekrāna augšdaļā atveriet izvēlni "Palaist" un atlasiet "Palaist konfigurācijas". Kreisajā pusē parādītajā logā atveriet cilni "Java lietojumprogramma" un atlasiet klientu vai serveri. Pēc tam noklikšķiniet uz pogas "Palaist".