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

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

ReyMagos

Тег-бомбастер
413
7
131
Взялся за мод, который делал когда-то давно (про еду) и решил его проапгрейдить.
Есть у меня палки, которые втыкаются в землю для выращивания овощей. Они естественно должны смываться водой. Но на форуме я нашёл одну единственную тему про это, где говорилось, что надо установить 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;
        }
};
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;
        }
};
 
Последнее редактирование:
методы в материале
Посмотрел код и нашёл как-раз метод setReplaceable(). Сделал код, такой же, как и у hohserg, но что-то не идёт. И не горит, и водой не смывается. Точнее получается очень интересная вещь, так как блок смывается, только если воду поставить прямо сверху него.
 
посмотри тайл факела, может там доплнительная проверка на его дроп
 
В общем проблема решена. Я заменил 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;
        }
    };
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху