Skip to main content

πŸ“Ί ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹ΠΉ интСрфСйс

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ интСрфСйсы, Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ интСрфСйс состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², Π° сами Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов Π²Ρ€ΠΎΠ΄Π΅ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΎΠΊ ΠΈ тСкста, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ свой Π½Π°Π±ΠΎΡ€ настроСк, Π½ΠΎ Π΅ΡΡ‚ΡŒ нСсколько ΠΎΠ±Ρ‰ΠΈΡ…: ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ смСщСниС Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΡ€Π°Ρ‘Π².

ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹Π΅ интСрфСйсы

Для Π½Π°Ρ‡Π°Π»Π°, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² пространство создания интСрфСйсов, дСлаСтся это ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Ρ‡Ρ‚ΠΎΠ±Ρ‹ скрипт продолТился послС открытия gui Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π³ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ.

gui {
// Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ свои Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹
}

Π’ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹

ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ°

    //ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ указываСтся Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ResourceLocation.
image("modid:path/to/texture.png>") {
// Настройки Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°
}

Кнопка

    // ВСкстура ΠΊΠ½ΠΎΠΏΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ части, Π³Π΄Π΅ вСрхняя - обычная ΠΊΠ½ΠΎΠΏΠΊΠ°, ниТняя - наТатая ΠΊΠ½ΠΎΠΏΠΊΠ°.
button("ВСкст ΠΊΠ½ΠΎΠΏΠΊΠΈ", "modid:path/to/texture.png>") {

// Настройки Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° - Кнопка
anchor = Anchor.END //Π¦Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста Π² ΠΊΠ½ΠΎΠΏΠΊΠ΅, Π΅ΡΡ‚ΡŒ: START, CENTER, END
textOffsetX = <num) // Int | Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ тСкста Π² ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π½Π° оси X
textOffsetY = <num> // Int | Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ тСкста Π² ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΏΠΎ оси Y
hoverText = "<text>" // String | ИзмСнСниС тСкста ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсором
color = 0x<HEX> // #HEX_CODE | Основнйо Ρ†Π²Π΅Ρ‚
hoverColor = 0x<HEX> // #HEX_CODE | ИзмСнСниС Ρ†Π²Π΅Ρ‚Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсором
scale = <float> // Float | Π Π°Π·ΠΌΠ΅Ρ€ элСмСнта

// ДСйствиС ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ
onClick = {
// Π—Π΄Π΅ΡΡŒ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ.
// Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, здСсь ΠΏΠΈΡˆΡƒΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Π΅ дСйствия (Ρ‚.Π΅. запускаСмыС Π½Π° этапС выполнСния скрипта, ΠΊΠ°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ next { ... })
// Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΄Π°Ρ‚ΡŒ нпс Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈΠ΄Ρ‚ΠΈ ΠΊ Π±Π»ΠΎΠΊΡƒ Π’Ρ‹ Ρ‚ΡƒΡ‚ Π½Π΅ смоТСтС, Π½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ - Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ

close() // Команда для закрытия этого GUI
}
}

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ / ВСкст

    label("ВСкст Π½Π° экранС") {

// Настройки Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° - ВСкст
anchor = Anchor.END //Π¦Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ тСкста, Π΅ΡΡ‚ΡŒ: START, CENTER, END
color = 0x<HEX> // #HEX_CODE | Основной Ρ†Π²Π΅Ρ‚
scale = <float> // Float | Π Π°Π·ΠΌΠ΅Ρ€ элСмСнта
}

Моб / Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ / НИП

    // МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ НИПа, Ρ‚Π°ΠΊ ΠΈ любого ΠΌΠΎΠ±Π° (ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ - строка "minecraft:zombie", это Π½Π΅ ΠΌΠΎΠ±, это строка!)
// Моба ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ Π²Π·ΡΡ‚ΡŒ ΠΈΠ· ΠΌΠΈΡ€Π° ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ самому
entity(<mob>) {

// Настройки Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° - Π‘ΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ
scale = <float> // Float | Π Π°Π·ΠΌΠ΅Ρ€ элСмСнта
entityX = <screenPos> // px/pw/ps/mouse | ПолоТСниС сущности ΠΏΠΎ оси X
entityY = <screenPos> // px/pw/ps/mouse | ПолоТСниС сущности ΠΏΠΎ оси Y
}

Настройки видТСта​

Π•Π΄ΠΈΠ½ΠΈΡ†Ρ‹ измСрСния

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго рассмотрим, ΠΊΠ°ΠΊ указываСтся Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π² GUI, ΠΎΠ½Π° Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΡƒΠΆΠ½Π° Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². Π•Ρ‘ Π΅ΡΡ‚ΡŒ 4 Π²ΠΈΠ΄Π°:

  1. px - Π’ пиксСлях
  2. pw - Π’ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ… ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°
  3. ps - Π’ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ… ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠΊΠ½Π° ΠΈΠ³Ρ€Ρ‹
  4. mouse - Π’Π΅ΠΊΡƒΡ‰Π΅Π΅ располоТСниС ΠΌΡ‹ΡˆΠΈ НапримСр Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Π² 2 Ρ€Π°Π·Π° мСньшС Ρ‡Π΅ΠΌ ΠΎΠΊΠ½ΠΎ ΠΈΠ³Ρ€Ρ‹, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅ΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°ΠΊ: size(50.ps, 50.ps)
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: для mouse Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ просто Ρ‚Π°ΠΊ ΠΈ ΠΏΠΈΡˆΠΈΡ‚Π΅ - mouse, Π° Π½Π΅ 50.mouse ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² этом Π΄ΡƒΡ…Π΅.
ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²
// Π Π°Π·ΠΌΠ΅Ρ€ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°
size(width, height) //Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° для Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΏΠΎ ΡˆΠΈΡ€ΠΈΠ½Π΅ ΠΈ высотС.

// Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°
offset(x, y) //Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° для смСщСния Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ полоТСния ΠΏΠΎ x ΠΈ y.

// Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΊΡ€Π°Ρ‘Π² (ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π΅ обязатСлСн)
// БмСстятся Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ располоТСнныС Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°
padding(
top = placement, //смСщСниС ΠΎΡ‚ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π°
left = placement, //смСщСниС ΠΎΡ‚ Π»Π΅Π²ΠΎΠΉ части ΠΎΠΊΠ½Π°
bottom = placement, //смСщСниС ΠΎΡ‚ Π½ΠΈΠΆΠ½Π΅ΠΉ части ΠΎΠΊΠ½Π°
left = placement, //смСщСниС ΠΎΡ‚ ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΎΠΊΠ½Π°
)

// Π’Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°
align(Alignment.TYPE)
/**
* TYPE:
* - TOP_LEFT | Π‘Π²Π΅Ρ€Ρ…Ρƒ слСва
* - TOP_CENTER | Π‘Π²Π΅Ρ€Ρ…Ρƒ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ
* - TOP_RIGHT | Π‘Π²Π΅Ρ€Ρ…Ρƒ справа
* - --- | ---
* - LEFT_CENTER | Π‘Π»Π΅Π²Π° ΠΏΠΎ сСрСдинС
* - CENTER | По Ρ†Π΅Π½Ρ‚Ρ€Ρƒ
* - RIGHT_CENTER | Π‘ΠΏΡ€Π°Π²Π° ΠΏΠΎ сСрСдинС
* - --- | ---
* - BOTTOM_LEFT | Π‘Π½ΠΈΠ·Ρƒ слСва
* - BOTTOM_CENTER | Π‘Π½ΠΈΠ·Ρƒ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ
* - BOTTOM_RIGHT | Π‘Π½ΠΈΠ·Ρƒ справа
*/

// Π‘Π»ΠΎΠΉ - для пСрСноса Π½Π° Π·Π°Π΄Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π½ΠΈΠΉ слой
zLayer = <int> //Ρ†Π΅Π»ΠΎΠ΅ число
enableDepth = true //НуТно для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π½Π΅ΠΌ ΠΏΠ»Π°Π½Π΅ рисуСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡŒ послСдним, Ссли Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ, Ρ‚ΠΎΠ³Π΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ zLayer.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

gui {
size(90.pw, 90.pw)

image("hc:textures/gui/background_ftbq.png") {
align(Alignment.LEFT_CENTER)
size(100.pw, 100.pw)
}

label("Как дСла?") {
align(Alignment.TOP_CENTER)
offset(0.px, 0.px)
size(35.ps, 8.ps)
}

button("ΠΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ", "hc:textures/gui/buttons/hollow_button.png") {
align(Alignment.TOP_LEFT)
size(70.pw, 30.pw)
}

button("Классно", "hc:textures/gui/buttons/hollow_button.png") {
align(Alignment.LEFT_CENTER)
size(70.pw, 30.pw)
offset(0.px, 30.pw + 10.px)

anchor = Anchor.END
}
}