1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[Изменение]Изменение Vanilla верстака.

Тема в разделе "Модификации клиента", создана пользователем dirt34, 12 сен 2015.

  1. Автор темы
    dirt34

    dirt34 Старожил Пользователь

    Баллы:
    143
    Skype:
    alucid2
    Имя в Minecraft:
    dirt34
    В общем нашел мод который добавляет верстак, только он не обычный - у него есть функционал верстака из Тинкера, тобишь он сохраняет предметы при выходе из него. Есть исходники этого мода.
    Я задумал перенести вот этот функционал того верстака на сохранение вещей при выходе в ванильный верстак. Только вот как это сделать я просто не знаю так как в джаве ноль. Я открыл исходники форджа 1.7.10 но так и не понял куда и что.
    Вот исходники мода. Фордж 1492 для 1.7.10. Кто может реализовать?
    Нашел файл BlockWorkbench.java по пути: net.minecraft.block. Но делать там дальше не в силах понять..
     
  2. oleg57zls

    oleg57zls Старожил Пользователь

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    @Override
    public void breakBlock(World world, int x, int y, int z, Block block, int p_149749_6_) {
    TileBench tileEntity = (TileBench)world.getTileEntity(x, y, z);
    if (tileEntity != null) {
    ArrayList<ItemStack> items = getInsides(world, x, y, z);
    for (ItemStack item: items) {
    dumpItems(world, x, y, z, item);
    }
    world.func_147453_f(x, y, z, block);
    }
    super.breakBlock(world, x, y, z, block, p_149749_6_);
    }
    public void dumpItems(World world, int x, int y, int z, ItemStack items) {
    EntityItem entItem = new EntityItem(world, (float)x + 0.5f, (float)y + 0.5f, (float)z + 0.5f, items);
    float f3 = 0.05F;
    entItem.motionX = (double)((float)world.rand.nextGaussian() * f3);
    entItem.motionY = (double)((float)world.rand.nextGaussian() * f3 + 0.2F);
    entItem.motionZ = (double)((float)world.rand.nextGaussian() * f3);
    if (items.hasTagCompound()) {
    entItem.getEntityItem().setTagCompound((NBTTagCompound)items.getTagCompound().copy());
    }
    world.spawnEntityInWorld(entItem);
    }
    protected ArrayList<ItemStack> getInsides(World world, int x, int y, int z) {
    ArrayList<ItemStack> items = new ArrayList<ItemStack>();
    TileBench tileEntity = (TileBench)world.getTileEntity(x, y, z);
    if (tileEntity != null) {
    //get the inventory
    for (int i = 0; i < tileEntity.getSizeInventory() - 1; ++i) {
    ItemStack itemstack = tileEntity.getStackInSlot(i);
    if (itemstack != null) {
    items.add(itemstack);
    }
    }
    }
    return items;
    }
     
  3. Автор темы
    dirt34

    dirt34 Старожил Пользователь

    Баллы:
    143
    Skype:
    alucid2
    Имя в Minecraft:
    dirt34

    Эм.. а куда это нужно вписать? в какой файл?
     
  4. oleg57zls

    oleg57zls Старожил Пользователь

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    А какой файл ты менять то собрался? Эндер сундук что-ли? Верстак конечно -_-
     
  5. Автор темы
    dirt34

    dirt34 Старожил Пользователь

    Баллы:
    143
    Skype:
    alucid2
    Имя в Minecraft:
    dirt34
    В какой файл этот код вставлять? название файла какое?
     
  6. oleg57zls

    oleg57zls Старожил Пользователь

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Не умеешь, не знаешь - не лезь
     
  7. Автор темы
    dirt34

    dirt34 Старожил Пользователь

    Баллы:
    143
    Skype:
    alucid2
    Имя в Minecraft:
    dirt34
    я как бы писал что я ноль в джаве...так трудно пояснить?
    Скажи что делать с этим кодом пожалуйста..
     
  8. Yuri1.6

    Yuri1.6 Старожил Пользователь

    Баллы:
    123
    Skype:
    Yuri1.6
    Имя в Minecraft:
    YouTy6bl4
    В чём подвох? Вроде при портировании нужно переписывать сам код под более новую версию mc+forge, а не добавлять.
     
  9. MrDeadPool

    MrDeadPool Активный участник Пользователь

    Баллы:
    78
    "вызывайте экзорциста"
     
  10. Автор темы
    dirt34

    dirt34 Старожил Пользователь

    Баллы:
    143
    Skype:
    alucid2
    Имя в Minecraft:
    dirt34
    и? не надо флудить...
     
  11. oleg57zls

    oleg57zls Старожил Пользователь

    Баллы:
    173
    Skype:
    BlayzerQ
    Имя в Minecraft:
    Blayzer
    Я взял пример кода из того мода что он предложил, само собой что нужно исправлять ошибки.
    Если повезет, то их будет не много. Ну или на том уровне, что IDE сам предложит варианты исправления, а вообще можно и просто смотреть код другого мода, аналог кода на нужной версии.
     
  12. Radviger

    Radviger Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Radviger
    Ваще изи. Ток я делаю это тут.
     
  13. Автор темы
    dirt34

    dirt34 Старожил Пользователь

    Баллы:
    143
    Skype:
    alucid2
    Имя в Minecraft:
    dirt34
    Всё бы хорошо но нужно на 1.7.10...
     
  14. Radviger

    Radviger Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    Radviger
    Уже реализовал кстати.
     
  15. Автор темы
    dirt34

    dirt34 Старожил Пользователь

    Баллы:
    143
    Skype:
    alucid2
    Имя в Minecraft:
    dirt34
    Можете такое сделать на 1.7.10? очень нужно, пожалуйста...
     

Поделиться этой страницей