Skip to content

액션바

Daybreak edited this page Oct 16, 2020 · 2 revisions

액션바

게임 진행 중, 액션바에는 능력 쿨타임, 지속 시간, 효과 잔여 시간 등 다양한 정보가 표시됩니다.

actionbar

수많은 정보가 액션바에 표시되는데도, 서로 겹치지 않고 보기 좋게 보여질 수 있는 이유는 액션바 채널 기능 덕분입니다.
게임 진행 중, 참가자의 액션바는 아래와 같이 구성됩니다.
채널 1 메시지 | 채널 2 메시지 | 채널 3 메시지 | 채널 4 메시지...

channel

각각의 채널은 메시지를 가지고 있으며, (채널이 비어있는 메시지를 출력 중인 경우, 액션바에 표시되지 않습니다.) 각각의 메시지는
수직선 기호 |로 구분됩니다.

이제 액션바 채널을 이용하는 방법을 알아보겠습니다.

채널 만들기

ActionbarChannel을 만드는 방법은 두 가지가 있습니다.
가장 기본적인 생성 방법은 참가자 객체에서 직접 만드는 방법이며, 사용이 끝난 후에는 직접 등록 해제해야 합니다.

// participant는 Participant 타입의 참가자 객체
final ActionbarChannel channel = participant.actionbar().newChannel();

또 다른 방법은 능력 객체에서 채널을 만드는 방법인데, 이 경우에는 능력이 삭제될 때 채널이 함께 등록 해제됩니다.

// ability는 AbilityBase 타입의 능력 객체
final ActionbarChannel channel = ability.newActionbarChannel();
// 능력 내부에서 만드는 경우
final ActionbarChannel channel = this.newActionbarChannel();

채널 메시지 설정하기

이제 채널을 만들었으니, 메시지를 보여줍시다.

// channel은 ActionbarChannel 타입의 액션바 채널 객체
channel.update("Hello, World!");
// 일정 시간동안 보여주고 싶다면 (초 단위)
channel.update("안녕, 세상!", 5);

// 메시지를 없애고 싶다면
channel.update("");
// 또는
channel.update(null);

채널 등록 해제하기

채널을 더 이상 사용할 필요가 없어졌다면, 등록을 해제해 액션바 메시지 생성에 채널을 포함하지 않도록 해주세요.
등록을 해제한 후에는 update 메소드를 호출하더라도 메시지가 액션바에 나타나지 않습니다.

channel.unregister();

채널 등록 여부 확인하기

if (channel.isValid()) {
	// 등록 되어있음
}