Создание собственного измерение

Версия Minecraft
1.16.3
API
Forge
Всем привет, перед задачей для своего будущего глобального проекта поставил цель сделать свое измерение с порталом.Моддинг начал изучать не давно, знаю только маленькую базу, но готов изучать любую информацию из любых ресурсов. Так вот, нужно сделать собственный портал из своих блоков которые активируется своим инструментом. После создается плоское измерение из бедрока(допустим), и к нему же портал который ведет назад, но при возвращение оба портала должны уничтожатся, как это можно реализовать, или же можно мне гайд любой, как сделать вот такую вот задачу.
 

WantaSanchez

Опоздун
633
17
150
А в чём проблема глянуть ванильный код? В большинстве случаев, изучение ванильного кода с применением необходимых навыков Java программирования даёт нужный результат.
 
как-нибудь) здесь готовый код не кинут) подскажут только если что-то делаешь, стараешься, но не получается) как сказал автор выше, тебе необходимо просматривать ванильный код майна, смотреть как он работает и т.п, и на основе этого писать все что нужно, а также просмотры разных зарубежных видео по моддингу. могу скинуть, если нужно
 

WantaSanchez

Опоздун
633
17
150
могу скинуть, если нужно
Похвально, но, по моему мнению, человек, который взялся за программирование, пусть даже для создания игровой модификации, должен уметь работать с поисковыми системами сам.
 
А в чём проблема глянуть ванильный код? В большинстве случаев, изучение ванильного кода с применением необходимых навыков Java программирования даёт нужный результат.
Ванильном коде очень много строчек, я не сильно понимаю где конкретно создание портала, перенос персонажу, создание измерение и тд. Я не прошу код, мне бы гайды, на ютубе посмотрел все что были, ничего для себя не нашел.
 
как-нибудь) здесь готовый код не кинут) подскажут только если что-то делаешь, стараешься, но не получается) как сказал автор выше, тебе необходимо просматривать ванильный код майна, смотреть как он работает и т.п, и на основе этого писать все что нужно, а также просмотры разных зарубежных видео по моддингу. могу скинуть, если нужно
Я не ищу готовый код, мне нужно информацию по типу что да как работает, как создается портал, измерение и тд. Если можешь скинь видео, или текстовую информацию насчет этого, заранее спасибо.
 

WantaSanchez

Опоздун
633
17
150
информацию по типу что да как работает
Тут лучше разбираться смотря на ванильный код.
Ванильном коде очень много строчек
Да ладно? Если знаешь базис Java, то тебе не составит труда ориентироваться как в строках кода так и в методах и классах.
или текстовую информацию насчет этого
С 1.16 измерения в основном на Json. (Может вся игра скоро на Json будет?) ТЫК
И та ссылка это 20 секунд гугла на английском. В чём твои проблемы поиска информации?
 
7,099
324
1,510
Ванильном коде очень много строчек, я не сильно понимаю где конкретно создание портала, перенос персонажу, создание измерение и тд.
Если не можешь понять, как работает какая-то вещь, то есть вариант изобрести ее с нуля. Ты знаком с методом декомпозиции задачи?
Начни с этого: разбей свою задачу на более мелкие и примени тот же метод к каждой мелкой до тех пор, пока не останутся только задачи, решение которых очевидно. Реализуй каждый мелкий кусочек, а потом начни собирать их воедино
1615293436667.png
 
7,099
324
1,510
Одно и то же решение маленькой задачи может использоваться для решения нескольких крупных задач. Поэтому это больше похоже на делегирование и композицию
 
48
1
4
А в чём проблема глянуть ванильный код? В большинстве случаев, изучение ванильного кода с применением необходимых навыков Java программирования даёт нужный результат.
Чел, там очень много костылей, и дай бог знать, что тем или иным куском кода хотел сделать автор)
Там просто так не разобраться, максимум с простыми вещами.

Код внутри ванильного майна выглядит как-то так:

Java:
public TypeRewriteRule makeRule() {
      Type<?> type = this.getInputSchema().getType(TypeReferences.ITEM_STACK);
      OpticFinder<Pair<String, String>> opticfinder = DSL.fieldFinder("id", DSL.named(TypeReferences.ITEM_NAME.typeName(), DSL.namespacedString()));
      OpticFinder<?> opticfinder1 = type.findField("tag");
      return this.fixTypeEverywhereTyped("ItemInstanceMapIdFix", type, (p_206360_2_) -> {
         Optional<Pair<String, String>> optional = p_206360_2_.getOptional(opticfinder);
         if (optional.isPresent() && Objects.equals(optional.get().getSecond(), "minecraft:filled_map")) {
            Dynamic<?> dynamic = p_206360_2_.get(DSL.remainderFinder());
            Typed<?> typed = p_206360_2_.getOrCreateTyped(opticfinder1);
            Dynamic<?> dynamic1 = typed.get(DSL.remainderFinder());
            dynamic1 = dynamic1.set("map", dynamic1.createInt(dynamic.get("Damage").asInt(0)));
            return p_206360_2_.set(opticfinder1, typed.set(DSL.remainderFinder(), dynamic1));
         } else {
            return p_206360_2_;
         }
      });
   }
 
Последнее редактирование:

WantaSanchez

Опоздун
633
17
150
там очень много костылей
Вообще. если прям разбирать ванильный код, то в принцыпе на 60% из костылей. 🤷‍♂️

А про тот код, что ты вкинул, то на маппингах фабрики таких замысловатых названий нету, там всё выглядит понятнее.
 
Сверху