User Tools

Site Tools


ru:tutorial:events

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
ru:tutorial:events [2022/03/12 16:45] – до переведу потом furnygoru:tutorial:events [2022/03/13 14:09] (current) – external edit 127.0.0.1
Line 67: Line 67:
  
 ==== Запуск события из миксина ==== ==== Запуск события из миксина ====
-Теперь у нас есть базовый скелет события, но нам нужно его запустить. Поскольку мы хотим, чтобы событие вызывалось, когда игрок пытается подстричь овцу, мы вызываем средство вызова события в  ''SheepEntity#interactMob'' when ''dropItems()'' is called (iesheep can be sheared and player is holding shears):+Теперь у нас есть базовый скелет события, но нам нужно его запустить. Поскольку мы хотим, чтобы событие вызывалось, когда игрок пытается подстричь овцу, мы вызываем средство вызова события в  ''SheepEntity#interactMob'' при вызове ''dropItems()'' (т.е. овец можно стричь, и игрок держит ножницы):
 <code java [enable_line_numbers="false"]> <code java [enable_line_numbers="false"]>
 @Mixin(SheepEntity.class) @Mixin(SheepEntity.class)
Line 82: Line 82:
 } }
 </code> </code>
-In this simple mixin, we call the event invoker (''SheepShearCallback.EVENT.invoker().[...]''), which then calls all active listeners to see what it should doIt returns an ActionResult based on thisand if the result is FAIL, we don't shear the sheepdrop itemsor damage the player's item (''info.cancel();''). **Make sure to register your mixin in your mixins.json file!**+В этом простом миксине мы вызываем средство вызова события (''SheepShearCallback.EVENT.invoker().[...]''), оторый затем вызывает всех активных слушателей, чтобы посмотреть, что он должен делатьНа основе этого он возвращает ActionResult, и если результат - FAIL(Неудача)мы не стригем овецне роняем предметыне повреждаем предметы игрока (''info.cancel();''). **Обязательно зарегистрируйте свой миксин в вашем файле mixins.json!**
  
-==== Testing Event with a Listener ==== +==== Тестовое событие со слушателем ==== 
-Now we need to test our eventYou can register a listener in your initialization method (or other areas if you preferand add custom logic thereHere's an example that drops a diamond instead of wool at the sheep's feet:+Теперь нам нужно протестировать наше событиеВы можете зарегистрировать прослушиватель в своем методе инициализации (или в других областях, если предпочитаетеи добавить туда пользовательскую логикуВот пример, который бросает алмаз вместо шерсти к ногам овцы:
 <code java [enable_line_numbers="false"]> <code java [enable_line_numbers="false"]>
 SheepShearCallback.EVENT.register((player, sheep) -> { SheepShearCallback.EVENT.register((player, sheep) -> {
     sheep.setSheared(true);     sheep.setSheared(true);
  
-    // create diamond item entity at sheep position+    // создание алмаза в виде дропа в позиции овцы
     ItemStack stack = new ItemStack(Items.DIAMOND);     ItemStack stack = new ItemStack(Items.DIAMOND);
     ItemEntity itemEntity = new ItemEntity(player.world, sheep.x, sheep.y, sheep.z, stack);     ItemEntity itemEntity = new ItemEntity(player.world, sheep.x, sheep.y, sheep.z, stack);
Line 98: Line 98:
 }); });
 </code> </code>
-Note that this event also sets the sheep to be sheared manuallyas it is normally canceled if we return FAIL. If you don'//need// to cancel the eventmake sure you return ''PASS'' so other listeners are allowed to operate as wellFailing to follow these "not spoken rulesmay result in angry modders on your doorstep.+Обратите вниманиечто это событие также настраивает стрижку овец вручную, так как обычно оно отменяется, если мы возвращаем FAIL. Если вам //не нужно// отменять событиеубедитесь, что вы вернули ''PASS'' , чтобы другие слушатели также могли работатьНесоблюдение этих "невысказанных правилможет привести к появлению разгневанных моддеров на вашем пороге.
  
-If you enter into your game and shear a sheepa diamond should drop instead of wool.+Если вы зайдёте в игру и подстрижёте овцувместо шерсти должен упасть алмаз.
  
 {{https://i.imgur.com/dG73Z6G.mp4?400|}} {{https://i.imgur.com/dG73Z6G.mp4?400|}}
ru/tutorial/events.1647103532.txt.gz · Last modified: 2022/03/12 16:45 by furnygo