🇰🇷 한국어 (Korean - South Korea)
🇰🇷 한국어 (Korean - South Korea)
외관
🇰🇷 한국어 (Korean - South Korea)
🇰🇷 한국어 (Korean - South Korea)
외관
This page is written for:
1.21
This page is written for:
1.21
피해 유형은 엔티티가 입을 수 있는 피해(대미지)의 종류를 의미합니다. Minecraft 1.19.4 부터, 새로운 피해 유형의 추가는 데이터 기반이 되어, JSON 파일을 통해 생성됩니다.
Tater 라는 이름의 사용자 정의 피해 유형을 추가해 봅시다. 이는 피해 유형의 JSON 파일을 생성하며 시작됩니다. 이 파일은 모드 리소스의 data
디렉토리의 damage_type
폴더에 저장됩니다.
resources/data/fabric-docs-reference/damage_type/tater.json
파일은 다음과 같은 구조를 가집니다.
{
"exhaustion": 0.1,
"message_id": "tater",
"scaling": "when_caused_by_living_non_player"
}
이 사용자 정의 피해 유형을 플레이어가 살아있는 엔티티가 아닌 것에서 피해를 입었을 때 허기 피로를 0.1만큼 올리도록 만들어 봅시다. 참고로, 피해 크기는 세계의 난이도에 비례합니다.
INFO
JSON 파일 구조에 대한 자세한 내용은 Minecraft 위키 (영문) 를 참고하십시오.
코드를 통해 추가한 사용자 정의 피해 유형에 접근하고 싶다면, DamageSource
인스턴스를 생성하기 위해 RegistryKey
에 접근해야 합니다.
RegistryKey
는 다음 코드로 불러올 수 있습니다.
public static final RegistryKey<DamageType> TATER_DAMAGE = RegistryKey.of(RegistryKeys.DAMAGE_TYPE, Identifier.of("fabric-docs-reference", "tater"));
피해 유형 사용의 예시를 만들어 보기 위해, 먼저 사용자 정의 블록 _Tater Block_을 추가해보겠습니다. _Tater Block_은 살아있는 엔티티가 밟으면 Tater 피해를 입힙니다.
피해를 주기 위해 먼저 onSteppedOn
메서드를 덮어(Override) 쓰겠습니다.
사용자 정의 피해 유형의 DamageSource
를 생성하며 시작합니다.
DamageSource damageSource = new DamageSource(
world.getRegistryManager()
.get(RegistryKeys.DAMAGE_TYPE)
.entryOf(FabricDocsReferenceDamageTypes.TATER_DAMAGE));
그리고, entity.damage()
메서드에 DamageSource
와 피해 크기를 입력하여 호출합니다.
entity.damage(damageSource, 5.0f);
블록의 코드 전문은 다음과 같습니다.
public class TaterBlock extends Block {
public TaterBlock(Settings settings) {
super(settings);
}
@Override
public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity entity) {
if (entity instanceof LivingEntity) {
DamageSource damageSource = new DamageSource(
world.getRegistryManager()
.get(RegistryKeys.DAMAGE_TYPE)
.entryOf(FabricDocsReferenceDamageTypes.TATER_DAMAGE));
entity.damage(damageSource, 5.0f);
}
}
}
이제 살아있는 엔티티가 블록 위에 서면, 사용자 정의 피해 유형으로 크기 5 (2.5 하트) 의 피해를 입게 됩니다.
en_us.json
파일의 death.attack.<message_id>
키를 수정해 사용자 정의 피해 유형의 사망 메시지를 수정할 수 있습니다.
"item.minecraft.potion.effect.tater": "Tater Potion",
이제 사용자 정의 피해 유형으로 사망하면, 다음 사망 메시지를 보게 될 것입니다.
일부 피해 유형은 갑옷, 상태 효과 등을 무시할 수 있습니다. 태그는 이러한 피해 유형의 속성을 제어하는 데 사용됩니다.
피해 유형 태그는 data/minecraft/tags/damage_type
에 저장됩니다.
INFO
내장된 피해 유형 태그와 설명은 Minecraft 위키 (영문) 를 참고하세요.
Tater 피해 유형을 bypasses_armor
피해 유형 태그에 추가해 봅시다.
이러한 태그에 사용자 정의 피해 유형을 추가하려면, 먼저 minecraft
네임스페이스로 JSON 파일을 생성해야 합니다.
data/minecraft/tags/damage_type/bypasses_armor.json
파일은 다음과 같은 구조를 가집니다.
{
"replace": false,
"values": [
"fabric-docs-reference:tater"
]
}
replace
키를 false
로 설정하여 기존 태그의 값을 제거하지 않도록 주의하세요.