Как добавить модели фантом блоки и сделать эвент по ПКМ

13
0
Есть модель. но она 1.5 на 1.5 блока, то есть, есть зоны где можно проскочить через текстуру.

  • Как добавить фантом блоки к модели?
  • И надо добавить евент этим блокам, чтобы при ПКМ по блоку колодца, набиралась вода.
    Есть добрые люди которые доступно объяснят новичку?[/*]
DK4HPH22ysc.jpg
 
Правила
2.3. Не стоит просить или предлагать выслать ответ в Skype, e-mail и другие средства общения. Эта просьба все равно не будет выполнена, а сообщение будет отредактировано модератором.
 
Develance написал(а):
Ну там.. setBlockBounds?
больше 1 в ширину не получится, пробовал.
[merge_posts_bbcode]Добавлено: 26.08.2015 11:57:13[/merge_posts_bbcode]

Можно сделать прозрачный блок с метадатой, и менять BlockBounds в зависимости от меты (смотри лестницу). При спавне колодца спавнить твои блоки рядом с нужной метой. Ну а эвент можешь при жмяке по фантомам можешь.
 
Можно сделать, как сказать по моему методу, он настолько тупой, шо вы меня забьете.
Короче, сделать блоков маленьких таких xDи один этот и типа наставить их вот так же.
 
Да ладн, я просто шутканул.

Суть в чём: есть главный блок и фантомный. В данном случае у нас получается структура вида 3х3, где по центру главный блок, а по контуру фантомные. Это единственное положение для твоей мультиблочной структуры.
Наша цель в том, чтобы связать блоки, сделать так, чтобы они знали, что каждый из блоков является частью какой-то структуры. В качестве определителя берём положение главного блока.
Так как вариант расположения всех блоков всего один, то нам хватит 4 бита (метадата блока) для однозначной идентификации положения каждого фантомного блока (их всего 8) относительно главного.

Связка идёт при установке главного блока:
Код:
public int onBlockPlaced(World par1World, int par2, int par3, int par4, int par5, float par6, float par7, float par8, int par9
(лучше поставь аннотацию @Override, чтобы не напутать параметры метода, я вырезал его из каких-то старых сообщений)
Здесь мы ставим вокруг нашего блока фантомные блоки и тут же даём им метадату, в зависимости от положения фантомного блока, что ставится, чтобы они в будущем могли "найти" главный блок.
Нам хватит 8 чисел для идентификации положения, пусть будет так:
0 - N, 1 - E, 2 - S, 3 - W, 4 - NE, 5 - SE, 6 - SW, 7 - NW
Здесь (вроде очевидно) указывается сторона света, в направлении которой находится главный блок. Расстояние всегда в 1 блок.

Остаётся подправить методы onBlockActivated и onBlockDestroyed. В них мы просто-напросто вызываем тот же метод из главного блока (второй метод в главном блоке удаляет себя и все свои фантомные блоки).
 
Назад
Сверху