Материал смывающийся водой

Статус
В этой теме нельзя размещать новые ответы.
Версия Minecraft
1.12.2

ReyMagos

Тег-бомбастер
412
7
121
Взялся за мод, который делал когда-то давно (про еду) и решил его проапгрейдить.
Есть у меня палки, которые втыкаются в землю для выращивания овощей. Они естественно должны смываться водой. Но на форуме я нашёл одну единственную тему про это, где говорилось, что надо установить Material.CIRCUITS, как у разных схем, факелов и т. д. После этого появилась проблема - теперь палки не горят при поджигании. Решил сделать свой кастомный материал, но нигде не нашёл логики смывания. В самом факеле есть 1001 метод с похожими названиями (canBlockPlaceAt, canPlaceAt, canPlaceOn, canPlace, mayBePlace, howToPlace, DaVayUsePlace), но протрейсив все, я ничего не нашёл. Знает ли кто-то где лежит эта логика?
 
Решение
Scala:
val material = new Material(MapColor.ADOBE) {
    setBurning()
    setNoPushMobility()
}
Java:
public static Material material = new Material(MapColor.ADOBE) {
        @Override
        public boolean getCanBurn() {
            return true;
        }

        @Override
        public EnumPushReaction getMobilityFlag() {
            return EnumPushReaction.DESTROY;
        }
};
7,099
324
1,510
Scala:
val material = new Material(MapColor.ADOBE) {
    setBurning()
    setNoPushMobility()
}
Java:
public static Material material = new Material(MapColor.ADOBE) {
        @Override
        public boolean getCanBurn() {
            return true;
        }

        @Override
        public EnumPushReaction getMobilityFlag() {
            return EnumPushReaction.DESTROY;
        }
};
 
Последнее редактирование:

ReyMagos

Тег-бомбастер
412
7
121
методы в материале
Посмотрел код и нашёл как-раз метод setReplaceable(). Сделал код, такой же, как и у hohserg, но что-то не идёт. И не горит, и водой не смывается. Точнее получается очень интересная вещь, так как блок смывается, только если воду поставить прямо сверху него.
 
1,038
57
229
посмотри тайл факела, может там доплнительная проверка на его дроп
 
7,099
324
1,510

ReyMagos

Тег-бомбастер
412
7
121
В общем проблема решена. Я заменил Material на MaterialLogic, как в факеле и блок начал смываться водой. Правда он до сих пор не горит, но это скорее всего из-за того что он метод isFullCube() возвращает false. Метод setReplaceable() делает блок, как блок огня и его можно заменять другими блоками, поэтому его я убрал. Собственно EnumPushReaction.DESTROY - это то что нужно.
Спасибо всем!
Вот код, вдруг кому-то зачем-то.
Java:
public static final MaterialLogic WOOD_ITEMS = new MaterialLogic(MapColor.WOOD) {
        @Override
        public boolean getCanBurn() {
            return true;
        }

        @Override
        public EnumPushReaction getMobilityFlag() {
            return EnumPushReaction.DESTROY;
        }
    };
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху