[1.12] Создание своего мода. Перенесено на сайт!

RE: [1.8-1.11.2] Создание своего мода.

Doc написал(а):
kuweg написал(а):
Да, все сделал как было написано в инструкции, вводил gradlew setupdecompworkspace eclipse. После этого загрузка чего-то в командной строке.

Ну после там есть папка eclipse в твой директории, копируй путь и вставляй в Workspace этот путь, запускай.

я так и делаю, но после этого эклипс пишет ошибку и не загружает одну библиотеку, а в этой библиотеке исходный код всех предметов в майне
 
3,005
192
592
RE: [1.8-1.11.2] Создание своего мода.

kuweg написал(а):
я так и делаю, но после этого эклипс пишет ошибку и не загружает одну библиотеку, а в этой библиотеке исходный код всех предметов в майне

Если он у тебя делает все так, как на скрине - то этого очень странно.
 
4,046
63
645
RE: [1.8-1.11.2] Создание своего мода.

Слуште!
А как ведёрко своей жидкости добавлять?
Вот есть метод: FluidRegistry.addBucketForFluid();
Но как ему потом имя и текстуру давать?
Пока что жидкость черпается как вода и на выходе даёт ведро воды.
 

Icosider

Kotliner
Администратор
3,600
99
663
RE: [1.8-1.11.2] Создание своего мода.

Liahim написал(а):
Слуште!
А как ведёрко своей жидкости добавлять?
Вот есть метод: FluidRegistry.addBucketForFluid();
Но как ему потом имя и текстуру давать?
Пока что жидкость черпается как вода и на выходе даёт ведро воды.

Создаёшь ведро жидкости унаследованное от ItemBucket, в конструктор пишешь "setContainerItem(Items.bucket);", потом регаешь FluidContainerRegistry.registerFluidContainer(new FluidStack(жидкость, FluidContainerRegistry.BUCKET_VOLUME), new ItemStack(твоё_ведро), new ItemStack(пустое_ведро)); потом пишешь, BucketHandler.INSTANCE.bucket.put(блок_твоей_жидкости, твоё_ведро); потом пишешь MinecraftForge.EVENT_BUS.register(BucketHandler.INSTANCE); Ну вроде всё, дальше регаешь рендер для своего ведра.
 

Icosider

Kotliner
Администратор
3,600
99
663
RE: [1.8-1.11.2] Создание своего мода.

Ведро будет пополняться твоей жидкостью и будет её хранить.
P.S. в репозитории форджа было.
 
4,046
63
645
RE: [1.8-1.11.2] Создание своего мода.

Хм...
А FluidRegistry.addBucketForFluid(жидкость); нужен вообще?
Для чего он?


Мне просто казалось, есть ещё какой-то способ на его основе...
Вот в биомах как раз юзают его и как-то хитро потом рефлексией меняют текстуру...
Я нифига не понял.
 

Icosider

Kotliner
Администратор
3,600
99
663
RE: [1.8-1.11.2] Создание своего мода.

Liahim написал(а):
FluidRegistry.addBucketForFluid(жидкость)
Скорее всего это новый метод для 1.9++ который упрощает добавление ведра для жидкости, но это не точно.
 
4,046
63
645
RE: [1.8-1.11.2] Создание своего мода.

В общем, как оказалось, чтобы заработал этот метод, нужно в главном классе перед преинитом написать:
Код:
static { FluidRegistry.enableUniversalBucket(); }

И будет вам ведро с уже готовой текстурой...

Вот только текстура почему-то отличается от ванильной... Автоматически называется "название жидкости bucket"... И располагается в креативной вкладке с вёдрами...

Вот теперь думаю воспользоваться ли сим универсальным ведром или лучше по старинке зафигачить свой айтем... С ним как-то чище будет.
 

Icosider

Kotliner
Администратор
3,600
99
663
RE: [1.8-1.11.2] Создание своего мода.

Liahim написал(а):
В общем, как оказалось, чтобы заработал этот метод, нужно в главном классе перед преинитом написать:
Код:
static { FluidRegistry.enableUniversalBucket(); }

И будет вам ведро с уже готовой текстурой...

Вот только текстура почему-то отличается от ванильной... Автоматически называется "название жидкости bucket"... И располагается в креативной вкладке с вёдрами...

Вот теперь думаю воспользоваться ли сим универсальным ведром или лучше по старинке зафигачить свой айтем... С ним как-то чище будет.
Лучше своё...
 
5,018
47
783
RE: [1.8-1.11.2] Создание своего мода.

Начал делать SA на 1.11.2 Скажите пожалуйста, а может, есть какие нибудь костыли? Меня json-3D-модели пугают количеством текста. Хотелось бы по старинке, моделить в 3ds max и импортировать в игру? (obj)

P.S еще ошибка кстати. Там где про еду - amount - это колво восполнямого голода(а не здоровья!) а saturation - сытность(как долго будет не хотется есть). более того - saturation это флоат(1.0F) . Исправь пожалуйста
 
4,046
63
645
RE: [1.8-1.11.2] Создание своего мода.

Да )))
Твои модельки в .json перегнать ручками будет сложновато...
А я предупреждал :D
Может что-нибудь попроще делать?
Я так всё через блокнот пишу без всякого 3д макса...
 
5,018
47
783
RE: [1.8-1.11.2] Создание своего мода.

Ага, только то что ты руками напишешь за день, я сделаю в пару кликов в редакторе


Liahim написал(а):
Да )))
Твои модельки в .json перегнать ручками будет сложновато...
А я предупреждал :D
Может что-нибудь попроще делать?
Я так всё через блокнот пишу без всякого 3д макса...

http://www.cgdev.net/json/download.php
P.s усиленно скачиваю 3ds max 2017. Хоть бы это было то что надо!!!
 
4,046
63
645
RE: [1.8-1.11.2] Создание своего мода.

Maxik001 написал(а):
Ага, только то что ты руками напишешь за день, я сделаю в пару кликов в редакторе
Вопрос не в том, на сколько ты это сделаешь быстро, а в том, что получится в итоге.
Почитай "Снег на траве" Норштейна...
Она тебе многое объяснит )
 

Icosider

Kotliner
Администратор
3,600
99
663
RE: [1.8-1.11.2] Создание своего мода.

Maxik001 написал(а):
более того - saturation это флоат(1.0F)
И? Можно указывать как целое число, а можно и как десятичную дробь. Это не считается ошибкой.
 
5,018
47
783
RE: [1.8-1.11.2] Создание своего мода.

WildHeart написал(а):
Maxik001 написал(а):
более того - saturation это флоат(1.0F)
И? Можно указывать как целое число, а можно и как десятичную дробь. Это не считается ошибкой.

Да? :) Я почему то всегда думал, что если и целое, обязательно нолик ставить после запятой(точки) Ну в любом случае, у тебя описание этих параметров неверное. Исправь пожалста
 
2,505
81
397
RE: [1.8-1.11.2] Создание своего мода.

Maxik001 написал(а):
Я почему то всегда думал, что если и целое, обязательно нолик ставить после запятой(точки)
Просто int неявно кастится во float и double
 
7,099
324
1,510
RE: [1.8-1.11.2] Создание своего мода.

У мя такой код компилится:
float a=1f;
Т.е. ".0" не обязателен
 
RE: [1.8-1.11.2] Создание своего мода.

у меня почему то достижение находится в обычном месте для достежений ванильки... если что, то я на 1.7.10
Код:
public class AchievementsList
{
   private static String achiev = "achievement.";

   public static Achievement
           /**
            * @param statIdIn - описание нашего достижения.
            * @param unlocalizedName - название достижения.
            * @param column - расположение нашего достижения в окне по X(или колонка, для кого как удобно).
            * @param row - расположение нашего достижения в окне по Y(или строке, для кого как удобно).
            * @param Item - иконка предмет/блок.
            * @param Achievement - от кого произошло достижение или после кого идёт.
            */
           FOOTBALL = new Achievement(achiev + "football.description", "Start for Hacker", 0, 0, Main.Wire, (Achievement)null).initIndependentStat().registerStat();

   public static void register()
   {
       /**
        * @param name - Название нашей страницы с достижениями.
        * @param Achievement - Лист наших достижений, которые будут на данной странице.
        */
       AchievementPage.registerAchievementPage(new AchievementPage("TEST", new Achievement[]{
               FOOTBALL
       }));
   }
}
 

Icosider

Kotliner
Администратор
3,600
99
663
RE: [1.8-1.11.2] Создание своего мода.

asdqwertypro написал(а):
у меня почему то достижение находится в обычном месте для достежений ванильки... если что, то я на 1.7.10
Код:
public class AchievementsList
{
   private static String achiev = "achievement.";

   public static Achievement
           /**
            * @param statIdIn - описание нашего достижения.
            * @param unlocalizedName - название достижения.
            * @param column - расположение нашего достижения в окне по X(или колонка, для кого как удобно).
            * @param row - расположение нашего достижения в окне по Y(или строке, для кого как удобно).
            * @param Item - иконка предмет/блок.
            * @param Achievement - от кого произошло достижение или после кого идёт.
            */
           FOOTBALL = new Achievement(achiev + "football.description", "Start for Hacker", 0, 0, Main.Wire, (Achievement)null).initIndependentStat().registerStat();

   public static void register()
   {
       /**
        * @param name - Название нашей страницы с достижениями.
        * @param Achievement - Лист наших достижений, которые будут на данной странице.
        */
       AchievementPage.registerAchievementPage(new AchievementPage("TEST", new Achievement[]{
               FOOTBALL
       }));
   }
}
-1.7.10 версии не поддерживаются в данном руководстве.
 
Сверху