Обучение/API туториалы

From Galacticraft Wiki
Jump to: navigation, search
This article is a stub. You can help us by expanding it

Введение

Вы скорей всего как и многие ждете когда появится болще планет. Но как насчет добавить свою планету или ракету? Для этого в моде есть такая вещь как API.

API позволяет сделать такие вещи как:

  • Добавить планету
  • Добавить галактику
  • Добавить gui для ракеты (индикатор высоты который появляется справа при взлете)
  • Добавить лут в данж (например, на Луне или Марсе)
  • Добавить рецепт для ракеты T1, T2, Kargo.
  • Добавить багги
  • Добавить космическую станцию
  • Добавить планету/луну/систему на карту галактики (кнопка M)


Запуск Galacticraft в Eclipse

Предполагается, что вы знакомы с основами Java и умеете делать моды, и у вас уже есть forge рабочее пространство. Если нет, перейдите по этой ссылке:http://www.mcmodding.ru/учебник/

  • 1.---Скачайте GC API отсюда: http://www.micdoodle8.com/mods/galacticraft/downloads/dev
  • 2.---Скачайте Chickencodecore отсюда: http://www.minecraftforum.net/topic/909223-164-smp-chickenbones-mods/
  • 3.---Зайдите в ваше рабочее пространство, найдите папку Mods и поместите туда ChickenCodeCore
  • 4.---Запустите
  • 5.---Поместите GC core к Chickencodecore, в папку mods рабочего пространства
  • 6.---Вуаля рабочего пространство теперь должно работать (если вы уже привязал исходники GC для моддинга) AKA теперь вы не должны компилировать, чтобы проверить свой ​​мод, использующий GC зависимость.

Добавление Планеты

В методе FMLPreInitalizationEvent, добавляем следующую строку кода:

       GalacticraftRegistry.registerTeleportType (PlanetWorldProvider.class, новая PlanetTeleportType ());

Этот код используется позже, в определении того, где будут спавнится игроки на новой планете. Eclipse должен добавить необходимые импорты, однако если этого не произойдет, после каждого шага не забывайте нажимать Ctrl + Shift + O, чтобы добавлять необходимые импорты.

PlanetWorldProvider Class

Это второе место для того чтобы сделать конфигурацию планеты. Единственное другое место это файл генерации мира. У этого класса должны быть extends WorldProvider, а также некоторые классы Galacticraft API. Эти классы включают IGalacticraftWorldProvider, IExitHeight, и, возможно, ISolarLevel. Так как это длинный класс, я просто дам вам Pastebin примера кода.Pastebin: http://pastebin.com/NhGTmR5D

Там должны быть некоторые ошибки под кодом "PlanetWorldChunkManager" и "PlanetWorldChunkProvider" Чтобы исправить это, создайте класс "PlanetWorldChunkProvider" и скопируйте код из файла "net.minecraft.world.gen.ChunkProviderGenerate" Чтобы исправить ошибку в PlanetWorldChunkManager, создать этот класс и скопируйте код из "net.minecraft.world.biome.WorldChunkManager". В обоих этих случаях, не забудьте изменить имя класса и package на то, какие должны быть. И не забудьте нажать Ctrl + Shift + O в каждом классе. Я не буду размещать код, и если вы используете этот код ваша планета не должна быть с открытым исходным кодом, так как это может быть нарушением Mojang лицензии.

PlanetTeleporterType Class

Этот класс определяет, как каждый игрок, будут появляться на новой планете. В этом классе необходимо добавить implements ITeleportType, и заполнить методы оттуда. Pastebin пример здесь: http://pastebin.com/bzknNwGN и еще раз, не забудьте нажать Ctrl + Shift + O. Все эти методы очень нуждаются в пояснениях.

GCTestPlanet Class

Создайте новый класс и назовите его GCTestPlanet, и он должен быть implements IPlanet. Pastebin пример: http://pastebin.com/dn2Jh1YD Это также должно быть зарегистрировано с Galacticraft. Добавьте следующий код в файл @Mod в методе FMLPreInitializationEvent:

       GalacticraftRegistry.registerCelestialBody(new GCTestPlanet());

В файле GCTestPlanet заполняете все поля в зависимости от того какую планету вы собираетесь делать. (Советую посмотреть в исходники мода: Луны и Марса.)

Еще один файл, до конца ... EDIT: ВРУ ПРОСТИТЕ. ЕСТЬ ЕЩЕ ОДИН ФАЙЛ ПОСЛЕ ЭТОГО!

TutorialPlanetMapObject

Этот класс, добавляет планету на карту вселенной. Вы можете сделать очень прикольную графику здесь, однако я просто собираюсь взять код Земли и изменить несколько цифр, чтобы наша планета вращалась в два раза дальше. Создайте класс TutorialPlanetMapObject, и сделайте его implements IMapObject. В этот класс скопируйте и вставьте код с Pastebin, или из файла исходного кода Galacticraft "/ micdoodle8/mods/galacticraft/client/GCCoreMapPlanetOverworld" Pastebin здесь с измененным кодом и комментариями: http://pastebin.com/eCsbnyri

TutorialPlanetSlotRenderer class

В этом классе есть только три метода. Вам нужно сделать implements ICelestialBodyRenderer, и использовать следующий код:

   @Override
   public ResourceLocation getPlanetSprite()
   {
       return new ResourceLocation(GalacticraftCore.TEXTURE_DOMAIN, "textures/gui/planets/overworld.png");
   }
   @Override
   public String getPlanetName()
   {
       return "TutorialPlanet";//Replace this string with the name of your dimension as defined in the WorldProvider class.
   }
   @Override
   public void renderSlot(int index, int x, int y, float slotHeight, Tessellator tessellator)
   {
       tessellator.startDrawingQuads();
       tessellator.addVertexWithUV(x + 12 - slotHeight, y - 11 + slotHeight, -90.0D, 0.0, 1.0);
       tessellator.addVertexWithUV(x + 12, y - 11 + slotHeight, -90.0D, 1.0, 1.0);
       tessellator.addVertexWithUV(x + 12, y - 11, -90.0D, 1.0, 0.0);
       tessellator.addVertexWithUV(x + 12 - slotHeight, y - 11, -90.0D, 0.0, 0.0);
       tessellator.draw();
   }

Это все!! :)

Добавление Галактики

В разработке

Добавление Ракеты

В разработке


<ad_leaderboard_A />


<ad_leaderboard_B />