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

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

Oldestkon написал(а):
Если что, блоки и предметы - не синглтоны (или я тебя неправильно понял?).
Ну да, я неправильно выразился.

Oldestkon написал(а):
В качестве хранилища можно использовать банальную хешмапу.
Это вместо словаря при генерации через конфиг? Использовать мапу, чтобы потом выложить в другую мапу? Тогда уж можно сразу к тому контейнеру обращаться и нужда в своем отпадает.


А чего вы с Максиком голубыми пишите?
Типа чтобы чуть-чуть было видно? Вот таким серым по-лучше будет
 
7,099
324
1,510
RE: [1.8-1.11.2] Создание своего мода.

Oldestkon написал(а):
Если что, блоки и предметы - не синглтоны (или я тебя неправильно понял?).
В scala можно блоки/предметы оформить, как object-ы, т.е. как синглтоны, очень удобно. Если нужно наследовать какое-то поведение, то можно делать это через трейты.
 
2,505
81
397
RE: [1.8-1.11.2] Создание своего мода.

hohserg написал(а):
Oldestkon написал(а):
Если что, блоки и предметы - не синглтоны (или я тебя неправильно понял?).
В scala можно блоки/предметы оформить, как object-ы, т.е. как синглтоны, очень удобно. Если нужно наследовать какое-то поведение, то можно делать это через трейты.
Подозреваю, что это не синглтоны, а просто статические объекты.
Синглтон это паттерн, гарантирующий наличие исключительно одного объекта класса и дающий доступ к нему из любого места программы.
 
7,099
324
1,510
RE: [1.8-1.11.2] Создание своего мода.

Dahaka написал(а):
Подозреваю, что это не синглтоны, а просто статические объекты.
Синглтон это паттерн, гарантирующий наличие исключительно одного объекта класса и дающий доступ к нему из любого места программы.
Это синглтон. От object-ов даже нельзя наследовать.
 

Icosider

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

Ну а пока ты ждёшь, я уже новую статью допиливать буду:)
f842f836bd6d449e81b2b5e5b404911f.png
 

Icosider

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

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

Крута! Вот это полезно )))
Жидкостями тоже скоро займусь...
Небольшой вопрос: а как решается столкновение жидкостей друг с другом?
Лава/вода - понятно, а вот что с остальными делать?
Видел в гроукрафте такой глюк, когда их жидкость затекает в воду и растекается под ней О_о
Нельзя ли как-то организовать смешивание?
 
RE: [1.8-1.11.2] Создание своего мода.

А можно материал отдельным классом сделать? В 1.7.10 можно, а тут не знаю
 

Icosider

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

Liahim написал(а):
Крута! Вот это полезно )))
Жидкостями тоже скоро займусь...
Небольшой вопрос: а как решается столкновение жидкостей друг с другом?
Лава/вода - понятно, а вот что с остальными делать?
Видел в гроукрафте такой глюк, когда их жидкость затекает в воду и растекается под ней О_о
Нельзя ли как-то организовать смешивание?

Легко, завтра дополню статью.


DCV_Hacker написал(а):
А можно материал отдельным классом сделать? В 1.7.10 можно, а тут не знаю

Материал воды или что?
 

Icosider

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

Liahim написал(а):
Крута! Вот это полезно )))
Жидкостями тоже скоро займусь...
Небольшой вопрос: а как решается столкновение жидкостей друг с другом?
Лава/вода - понятно, а вот что с остальными делать?
Видел в гроукрафте такой глюк, когда их жидкость затекает в воду и растекается под ней О_о
Нельзя ли как-то организовать смешивание?

На вот. Если наша жидкость попадает на воду, то вместо воды становится камень, если на лаву то вместо лавы становится блок кирпича.
Код:
   @Override
    public void onBlockAdded(World world, BlockPos pos, IBlockState state)
    {
        super.onBlockAdded(world, pos, state);
        mergerFluids(pos, world);
    }

    @Override
    public void neighborChanged(IBlockState state, World world, BlockPos pos, Block neighborBlock)
    {
        super.neighborChanged(state, world, pos, neighborBlock);
        mergerFluids(pos, world);
    }

    private void mergerFluids(BlockPos pos, World world)
    {
        for(EnumFacing facing : EnumFacing.values())
        {
            Block block = world.getBlockState(pos.offset(facing)).getBlock();
            if(block == Blocks.WATER || block == Blocks.FLOWING_WATER)
            {
                world.setBlockState(pos.offset(facing), Blocks.STONE.getDefaultState());
            }
            else if(block == Blocks.LAVA || block == Blocks.FLOWING_LAVA)
            {
                world.setBlockState(pos.offset(facing), Blocks.BRICK_BLOCK.getDefaultState());
            }
        }
    }


Может сделать статью про контейнеры для жидкости?
 

Icosider

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

Liahim написал(а):
Сделай...
Правда про слияние жидкостей я имел ввиду немного другое... Но всё равно спасибо )
Позже сам разберусь... Может, пойму, что к чему...

Ты хотел именно смешивание жидкости? Типа в одном блоке несколько жидкостей или как?
 
4,046
63
645
RE: [1.8-1.11.2] Создание своего мода.

Ну не так прямо... Хотя это было бы круто...
Я просто пока ещё в жидкостях не разбирался, может быть это уже и так реализовано...
Но хотел я, чтобы две жидкости столкнувшись друг с другом вели себя так, как будто бы столкнулись два блока одинаковой жидкости...
А именно, во-первых: посередине образовывался бы блок случайно выбранный из этих двух жидкостей (это, как я понимаю, уже реализовано... Просто вместо камня прописывать нужную жидкость)...
А во-вторых: самое главное, чтобы аналогичным образом вело себя и течение... Принимало форму так, если бы соседние блоки течения были той же жидкостью...
Ну и, естественно, чтобы соседние рёбра блоков таких жидкостей не рендерились...

Получится такое псевдосмешивание без смешивания реального )))
Ну а на такой базе можно отдельно создавать и смеси ))) Это уже будет проще.
 
2,505
81
397
RE: [1.8-1.11.2] Создание своего мода.

Liahim написал(а):
Но хотел я, чтобы две жидкости столкнувшись друг с другом вели себя так, как будто бы столкнулись два блока одинаковой жидкости...
Чую рекурсию
 

Icosider

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

Liahim написал(а):
Ну не так прямо... Хотя это было бы круто...
Я просто пока ещё в жидкостях не разбирался, может быть это уже и так реализовано...
Но хотел я, чтобы две жидкости столкнувшись друг с другом вели себя так, как будто бы столкнулись два блока одинаковой жидкости...
А именно, во-первых: посередине образовывался бы блок случайно выбранный из этих двух жидкостей (это, как я понимаю, уже реализовано... Просто вместо камня прописывать нужную жидкость)...
А во-вторых: самое главное, чтобы аналогичным образом вело себя и течение... Принимало форму так, если бы соседние блоки течения были той же жидкостью...
Ну и, естественно, чтобы соседние рёбра блоков таких жидкостей не рендерились...

Получится такое псевдосмешивание без смешивания реального )))
Ну а на такой базе можно отдельно создавать и смеси ))) Это уже будет проще.
Ну надо получить состояние блока жидкости которое соприкосается с другой и ставить блок в зависимости от состояния ближайших блоков жидкости. Возможно говорю бред:)
 

Icosider

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

Статья Жидкость: решение проблемы с цветом найдено! Используем свои текстуры вместо воды. Так надо делать лишь из-за одной причины, getColor ещё сырой метод, и работает через раз. Большинство людей, которые делают моды, не использую getColor! Завтра статья будет обновлена, так же добавлю статью газ, возможно объединю со статьей Жидкость.
 
5,018
47
783
RE: [1.8-1.11.2] Создание своего мода.

Насчет звуков. Это в 1.7.10 работать будет? С виду ничего не изменилось(судя по туторам)
 
667
7
2
RE: [1.8-1.11.2] Создание своего мода.

А почему урок разделился на два сообщения? Как я понимаю это лимит?
 
Сверху