Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 1 - Minecraft Modding - Úvod

Vítejte u 1. dílu mého nového seriálu o základech modování Java hry s názvem Minecraft. Naučíme se zde základní věci např. přidání blocku do hry až po pokročilejší programování TileEntity. Dnes si vytvoříme prostředí pro modování. (Vše v OS Windows 7.)

Vytvoření prostředí pro Modding

MinecraftForge

Je ve zkratce systém řízení modů, přidává zdrojovou přílohu (source attachment=Můžeme se podívat na tělo např. metody, třídy... Prostě víme jak pracuje) pro Minecraft. Je to API, programovací rozhraní, díky kterému jsme schopni udělat mod. Je to ovšem také mod, základní mod bez kterého by žadný další nefungoval, protože všichni samozřejmě využívají pro vytvoření modu MinecraftForge. Znamená to tedy, že by všechny mody měly být kompatibilní? Bohužel tomu tak není.. Samozřejmě záleží na tom, jak to naprogramujete a jak to naprogramovali ostatní. Pokud spolu mody nefungují, musíme si najít jiný mod zastupující stejnou funkci či se hrabat ve zdrojáku.

Minecraft Modding
Eclipse

Vývojové prostředí, které je podporováno MinecraftForgem a ve kterém budeme programovat.

Jdeme na to

Eclipse zde popisovat nebudu z důvodu zbytečného rozepisování. Nejprve si potřebujeme stáhnout nejnovější verzi MinecraftForge_src na Minecraft verzi 1.7.10 a zvolit si v "Download Recommended" možnost "src" (symbol: </>). Soubor extrahujeme, přejmenujeme na jméno našeho modu a pomocí Shift+RightClick v extrahované složce zvolíme možnost Zde otevřít Příkazové okno, do okna zadáme příkaz gradlew setupDecompWor­kspace eclipse. Počkáme, až nám vypíše build succesfull a poté můžeme příkazové okno zavřít.
Když rozjedeme eclipse, v možnosti Select/Switch Workspace najdeme naši extrahovanou složku, otevřeme ji a zvolíme adresář eclipse.

Minecraft Modding
Minecraft Modding

Nyní, když jsme úspěšně importovali project vytvořený přes MinecraftForge do Eclipse, musíme nastavit Run Configurations, aby Eclipse věděl, jakou třídu z té hromady má vybrat. Takže najedeme na Možnosti zeleného play tlačítka s názvem Run=>Run Configuration­s=>New Run Configuration (Takový papír s plusíkem). Pojmenujeme si ho třeba Client a teď ho musíme nastavit:

  • V Main nastavíme Project na Minecraft a MainClass nastavíme na GradleStart, což je třída ke spuštění.
Minecraft Modding
  • V Arguments vložíme do Program Arguments kod:

    --version 1.6 --tweakClass cpw.mods.fml.com­mon.launcher.FML Tweaker --accessToken FML

    a do VM Arguments tento kod:

    -Xincgc -Xmx1024M -Xms1024M -Dfml.ignoreIn­validMinecraf­tCertificates=true

  • Working Directory nastavíme na Other, a vložíme tento kod: ${workspace_loc}.
Minecraft Modding

Gratuluji, nyní pokud zvolíte možnost Client, měl by vám najet Minecraft (if problém, use comments). Ještě jsem však opomenul říci, že MinecraftForge používá “cracknutý“ Minecraft, díky této výhodě se nemusíme pořád přihlašovat, pokud program spustíme.

Vytvoření projektu našeho modu

V Eclipse si vytvoříme nový Java Project, nazveme ho názvem našeho modu - "SaltMod", protože bude všechno ze soli. A to je vše, můžeme dát Finish. Vytvoří se nám project, ve kterém najdeme source folder. Nyní bychom chtěli do našeho modu dát nějakou třídu main hádám, avšak není třeba ji psát díky hodným chlápkům z MinecraftForge, stačí pouze otevřít project Minecraft, otevřít source folder src/main/java, kde najdeme package com.example.e­xamplemod v něm třídu ExamleMod.java a celý package včetně třídy přesunout do našeho source folderu. Nyní na nás vyskočí celá řada chyb.

  1. Přejmenujeme package =Alt+Shift+R podle vzoru: cs.some_name.mod_na­me.main
  2. Přejmenujeme třídu na Main.java
  3. Teď k těm chybám: Jelikož náš project neví, kde je někde nějaký block , item atd., musíme mu to říci:=>Klik pravým tlačítkem na náš project=>Build Path=>Configure Build Path=>Project=>Add a vybereme Project Minecraft=>OK=>OK

Nyní všechny chyby zmizí, pokud ne zkuste Refresh(F5)+Sa­ve(Ctrl+S). Fajn, takže teď náš project ví o tom Minecraft projectu, avšak to neplatí obráceně,(To znamená, že pokud bychom to teď spustili, náš mod(v našem projektu) by to nenačetlo) tím pádem musíme nastavit v Run Configuration­s(zase to zelené tlačítko) v našem Client=>ClassPat­h=>Use Entries=>Add Projects, vybereme ten náš a odškrtneme ty dvě volby dole, jelikož to nepotřebujeme. Nyní můžeme zvolit Run. Pokud nám najetý Minecraft hlásí v levém dolním rohu 4mods loaded, 4mods active, tak je vše správně a můžeme klidně spát. :D

public static final String MODID

Je nutné nastavit unikátní ID modu, se kterým Minecraft pracuje a závisí na něm všechny blocky, itemy, obecně objekty, protože každý objekt má ve svém ID také ID modu (Např.: "DopravniPros­tredkyMod:Bagr"). Vysvětlím to asi tak, že kdybychom měli mod, jehož MODID="Doprav­niProstredkyMod", který by přidával např. Item Bagr, vytvořili bychom si svět, schovali Bagr do truhly, vypnuli MC a teď změnili MODID na "DopravniPros­tredkyMod2", a loadli bychom svět:

Minecraft Modding

Forge zjistil, že tu má object neexistující, neplatné ID, jelikož ID Bagru se změnilo na "DopravniPros­tredkyMod2:Ba­gr".(Takže ho ze světa vymaže(nabídne zálohu)). K tomu udělat novou verzi je tu String VERSION.

public static final String VERSION

Je verze modu, tím pádem pokud chceme udělat novou verzi modu, nebudeme přepisovat MODID jako předtím, ale změníme VERSION. Jelikož bude mít object pořád stejné MODID, nezmizí(object) a vše bude v pohodě.

mcmod.info

Je textový soubor, ve kterém jsou uloženy nějaké Stringy. Jistě jste již na tento soubor narazili, pokud jste byli zvědaví a nahlédli do Minecraft src složky src/main/resou­rces. Pokud chceme tento soubor přemístit, jednoduše přesuneme src složku do našeho projectu. Ok, pořád ještě něco chybí, musíme napsat MODID našeho modu do mcmod.info, aby Minecraft věděl, k jakému modu náleží. Když ho otevřeme:

[
{
  "modid": "examplemod",
  "name": "Example Mod",
  "description": "Example placeholder mod.",
  "version": "${version}",
  "mcversion": "${mcversion}",
  "url": "",
  "updateUrl": "",
  "authorList": ["ExampleDude"],
  "credits": "The Forge and FML guys, for making this example",
  "logoFile": "",
  "screenshots": [],
  "dependencies": []
}
]

Tady si samozřejmě můžete vyhrát. Teď chceme najít, kde se zobrazí, spustíme Minecraft, klikneme na tlačítko Mods (přidává Forge) a zde najdeme svůj mod, klikneme na něj a co vidíme? To, co jsme napsali do mcmod.info.

Tak a je konec úvodu.

V dalším díle, Minecraft Modding - Hlavní třída a Item, se koukneme na Block, Item, a celkové rozpoložení tříd v duchu OOP.


 

Všechny články v sekci
Minecraft Modding
Přeskočit článek
(nedoporučujeme)
Minecraft Modding - Hlavní třída a Item
Článek pro vás napsal Matěj Černý
Avatar
Uživatelské hodnocení:
15 hlasů
Autor se věnuje programování v Javě, C++, zajímá se o OpenGL.
Aktivity