Обучение/API туториалы: Difference between revisions

No edit summary
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 15: Line 15:




==Начало==
==Запуск Galacticraft в Eclipse ==
Вам понадобится:
*Cамо API https://github.com/micdoodle8/Galacticraft/tree/master/common/micdoodle8/mods/galacticraft/api
*MCP
*Eclipse
*Базовые знания моддинга minecraft
*Galacticraft и MicdoodleCore (не код а уже скомпилированный мод)


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


Как только вы это сделали, вы должны внести некоторые изменения в файл. Перейдите по этой ссылке: https://github.com/micdoodle8/Galacticraft на правой стороне страницы, должна быть кнопка, "Download ZIP». Загрузите архив, и распакуйте его куда-нибудь.
*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 зависимость.


'''ЕСЛИ ВЫ НЕ ХОТИТЕ НАРУШАТЬ ЛИЦЕНЗИЮ, СЛЕДУЮЩИЙ ШАГ ЯВЛЯЕТСЯ ОЧЕНЬ ВАЖНЫМ. ЕСЛИ ВЫ НЕ СДЕЛАТЬ ЭТОТ ШАГ, ВЫ МОЖЕТЕ ПОЛУЧИТЬ MICDOODLE8 BANNING ! Вы были предупреждены!'''
==Добавление Планеты==
В методе 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 лицензии.


Входим в недавно извлеченную папку и переходим к /micdoodle8/mods/galacticraft. Оказавшись там, удаляем папки core , moon и mars, но оставить папку "api". Скопируйте эту папку туда где у вас forge, в папке /Forge/MCP/SRC. Убедитесь, что вы взяли всю папку, в том числе /micdoodle8/mods/glacticraft, иначе при компиляции и запуске будет куча ошибок. Как только вы сделаете это, войдите в папку /Forge/MCP и запустите "updatemd5" Делая все это убедитесь, что вы не будете распространять код micdoodle, когда вы опубликуете аддон.
===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 заполняете все поля в зависимости от того какую планету вы собираетесь делать. (Советую посмотреть в исходники мода: Луны и Марса.)


Эти инструкции предназначены для Eclipse, так как если вы делаете моды, вы должны, вероятно, использовать Eclipse. Загрузите последнюю Micdoodle8core Galacticraft и jar с сайта. Поместите эти файлы в /Forge/MCP/Lib. Щелкните правой кнопкой мыши на название, а затем нажмите "properties", в нижней части меню. Перейдите в раздел "Java Build Path" и нажмите "Add External Jars". Выберите GalacticraftCore jar в папке Lib, затем повторите процесс для Micdoodle8Core.
Еще один файл, до конца ... 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();
    }


==Добавление Планеты==
'''Это все!! :)'''
В разработке


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

Latest revision as of 14:20, 17 March 2014

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();
   }

Это все!! :)

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

В разработке

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

В разработке



Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Need wiki hosting?

Do you need a wiki for your Minecraft mod/gaming wiki? We'll host it for free! Contact us.

Other wikis

Indie-game wikis
Powered by Indie Wikis