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

107
0
В общем нашел мод который добавляет верстак, только он не обычный - у него есть функционал верстака из Тинкера, тобишь он сохраняет предметы при выходе из него. Есть исходники этого мода.
Я задумал перенести вот этот функционал того верстака на сохранение вещей при выходе в ванильный верстак. Только вот как это сделать я просто не знаю так как в джаве ноль. Я открыл исходники форджа 1.7.10 но так и не понял куда и что.
Вот исходники мода. Фордж 1492 для 1.7.10. Кто может реализовать?Нашел файл BlockWorkbench.java по пути: net.minecraft.block. Но делать там дальше не в силах понять..
 
Ванильный верстак не сохраняет в себе предметы, так как нету места сохранения вещей. По этому есть в методе "onContainerClosed" в классе "net.minecraft.inventory.ContainerWorkbench" на выброс вещей из слотов.
Чтобы он сохранял, ему нужно место где хранить вещи. Скорее всего использовать TileEntity и сделать контейнер как надо. Тогда и в инвентаре нашего верстака, будет оставаться вещи.
 
timaxa007 написал(а):
Ванильный верстак не сохраняет в себе предметы, так как нету места сохранения вещей. По этому есть в методе "onContainerClosed" в классе "net.minecraft.inventory.ContainerWorkbench" на выброс вещей из слотов.
Чтобы он сохранял, ему нужно место где хранить вещи. Скорее всего использовать TileEntity и сделать контейнер как надо. Тогда и в инвентаре нашего верстака, будет оставаться вещи.
Я конечно извиняюсь. Но внимательно прочитали мой пост?

Как бы я и так знаю что он не сохраняет...В этом моде, на который я скинул исходники, есть готовое но проблема в том что я не знаю как это туда приделать..

Даже как вы сказали я не знаю как сделать ибо я не знаю Java....
 
Tsyklop написал(а):
Но внимательно прочитали мой пост?
Да.

Tsyklop написал(а):
Кто может реализовать?
Ну, я думаю, что смогу сделать.

Tsyklop написал(а):
я скинул исходники
Видел, я без них могу сделать, то что тебе надо. Но не гарантирую сто процентного работоспособности на сервере.
[merge_posts_bbcode]Добавлено: 12.09.2015 15:03:04[/merge_posts_bbcode]

Tsyklop написал(а):
я не знаю как сделать ибо я не знаю Java....
Это плохо, как-же ты поймёшь чей-либо код (включая, то что ты скинул)? В случаи не стыковки в коде, я вряд-ли буду исправлять.
 
timaxa007 написал(а):
Ну, я думаю, что смогу сделать.

Видел, я без них могу сделать, то что тебе надо. Но не гарантирую сто процентного работоспособности на сервере.

Это плохо, как-же ты поймёшь чей-либо код (включая, то что ты скинул)? В случаи не стыковки в коде, я вряд-ли буду исправлять.

Буду очень благодарен...

Разве это не ClientSide функция?

На данный момент я знаю С, С++, С#. Java буду знать к лету.. Читать то вообще могу но не всё...
 
Tsyklop написал(а):
Разве это не ClientSide функция?
Если я правельно понял, то... Нет, класс который нам нужно использовать и заменить не работает только на клиентской стороной.
 
timaxa007 написал(а):
Если я правельно понял, то... Нет, класс который нам нужно использовать и заменить не работает только на клиентской стороной.
Хм. ну давай те попробуем тогда.. На данный момент мне это нужно ток на клиент... Но протестим и на сервере..

Добавлю. На сервере может мешать разве что ModFixNG(Плагин)...
 
Я так был уверен, что это можно сделать легко, что в итоге я застрял на:
Код:
world.setTileEntity(x, y, z, new TileEntityWorkbench());
Код:
@SubscribeEvent
public void createContainer(BlockEvent.PlaceEvent e) {
    World world = e.world;
    if (world != null) {
        Block block = world.getBlock(e.x, e.y, e.z);
        if (block == Blocks.crafting_table) {
            world.setTileEntity(e.x, e.y, e.z, new TileEntityWorkbench());
            System.out.println("createContainer " + (world.getTileEntity(e.x, e.y, e.z) != null));
        }
    }

}
Проверяю на "world.getTileEntity(x, y, z) != null", но оно является ложным (т.е. "false").
И пока-что на этом остановился. Завтра постараюсь продолжить.
 
Tsyklop, не знаю как он прочитал у тебя пост, но это код для того чтобы дропался при разбивании блока с нашим TileEntity. Но это не то.
 
timaxa007, фигеть....Ладно...Буду ждать новостей от тебя...Если в чём-то нужна будет помощь то пиши..
 
Agravaine я знаю.. но это не очень удобно... Чаще всего игроки не знают что есть такой верстак в сборке и получается что этот мод становиться бесполезным... ПрожектБенч не то что нужно мне.. Мне нужна именно функция сохранения предметов в сетке крафта и всё а у этого верстака не работает Шифт...
Вот мод JAСB(ссылка на его исходник) то что нужно но опять же это другой блок...
 
Интересно, как можно знать С++ (и впридачу С/С#) и не понимать простейшего кода на Java?
Я вот до сих боюсь C++ и бегаю в панике по комнате от мысли, что мне предстоит на нём писать.
Ах да, всё очень просто. Очередные туторы за неделю и быстрые прочтения умных книжек, а потом можно говорить, что ты знаешь язык -_\\
ЗЫ. Во флудилке-то можно не давать ответы на вопросы? :D
 
kiss_1kb.1442081610.png
 
Tsyklop, пока что нет. По лёгкому не получается сделать. Думаю что это за не достающего "TileEntityProvider" в блоке. Как будет время, посмотрю можно-ли избегать этого или нет.
 
Назад
Сверху