Cloth Config

Tdb (토론 | 기여)님의 2025년 7월 23일 (수) 01:57 판 (새 문서: '''Cloth Config'''는 마인크래프트 모드 개발자들이 설정 화면을 쉽게 만들 수 있도록 도와주는 라이브러리 모드이다. FabricForge 모두를 지원하며, 많은 인기 모드들이 설정 인터페이스를 구현하는 데 사용한다. Cloth Config는 shedaniel이 개발한 오픈소스 프로젝트로, 복잡한 GUI 코드 없이도 세련된 설정 화면을 만들 수 있게 해준다. 개발자는 간단한 API 호출만...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

Cloth Config마인크래프트 모드 개발자들이 설정 화면을 쉽게 만들 수 있도록 도와주는 라이브러리 모드이다. FabricForge 모두를 지원하며, 많은 인기 모드들이 설정 인터페이스를 구현하는 데 사용한다.

Cloth Config는 shedaniel이 개발한 오픈소스 프로젝트로, 복잡한 GUI 코드 없이도 세련된 설정 화면을 만들 수 있게 해준다. 개발자는 간단한 API 호출만으로 다양한 설정 옵션을 구현할 수 있으며, 사용자는 일관된 인터페이스를 통해 모드를 설정할 수 있다.

특징

다양한 설정 타입 지원

  • 불리언 (체크박스, 토글)
  • 정수/실수 슬라이더
  • 텍스트 입력 필드
  • 열거형 선택
  • 색상 선택기
  • 키 바인딩 설정
  • 리스트 편집기

사용자 친화적 기능

  • 실시간 검색
  • 카테고리 분류
  • 툴팁 지원
  • 설정 초기화
  • 변경사항 미리보기
  • 다국어 지원

개발자 친화적 API

  • 직관적인 빌더 패턴
  • 자동 설정 저장/로드
  • 유효성 검사
  • 동적 설정 생성
  • 커스텀 위젯 지원

설치 방법

일반 사용자는 Cloth Config를 직접 설치할 필요가 없다. 이를 필요로 하는 모드를 설치하면 자동으로 의존성으로 다운로드된다. 수동 설치가 필요한 경우:

1. 사용 중인 모드 로더 확인 (Fabric/Forge)
2. 해당 버전의 Cloth Config 다운로드:
   - Modrinth: modrinth.com/mod/cloth-config
   - CurseForge: curseforge.com/minecraft/mc-mods/cloth-config
3. .minecraft/mods 폴더에 복사

사용하는 주요 모드

많은 인기 모드들이 Cloth Config를 사용한다:

  • REI (Roughly Enough Items)
  • Light Overlay
  • MiniHUD
  • Litematica
  • Not Enough Animations
  • Dynamic FPS

개발자 가이드

기본 사용법

// 의존성 추가 (build.gradle)
dependencies {
    modApi "me.shedaniel.cloth:cloth-config-fabric:11.0.99"
}

// 설정 화면 생성
ConfigBuilder builder = ConfigBuilder.create()
    .setParentScreen(parent)
    .setTitle(Text.translatable("config.examplemod.title"));

ConfigCategory general = builder.getOrCreateCategory(Text.translatable("config.examplemod.general"));

general.addEntry(entryBuilder.startBooleanToggle(Text.translatable("config.examplemod.toggle"), currentValue)
    .setDefaultValue(true)
    .setTooltip(Text.translatable("config.examplemod.toggle.tooltip"))
    .setSaveConsumer(newValue -> this.toggleOption = newValue)
    .build());

general.addEntry(entryBuilder.startIntSlider(Text.translatable("config.examplemod.slider"), currentValue, 0, 100)
    .setDefaultValue(50)
    .setSaveConsumer(newValue -> this.sliderValue = newValue)
    .build());

return builder.build();

고급 기능

// 커스텀 리스트 설정
general.addEntry(entryBuilder.startStrList(Text.translatable("config.examplemod.list"), currentList)
    .setDefaultValue(Arrays.asList("item1", "item2"))
    .setTooltip(Text.translatable("config.examplemod.list.tooltip"))
    .setSaveConsumer(newValue -> this.listOption = newValue)
    .build());

// 하위 카테고리
SubCategoryBuilder subCategory = entryBuilder.startSubCategory(Text.literal("Advanced"));
subCategory.add(/* entries */);
general.addEntry(subCategory.build());

설정 타입

기본 타입

타입 설명 사용 예
Boolean Toggle 켜기/끄기 설정 기능 활성화
Int/Long Field 정수 입력 수량 설정
Float/Double Field 실수 입력 배율 설정
String Field 텍스트 입력 이름 설정
Enum Selector 선택 목록 모드 선택

특수 타입

타입 설명 사용 예
Color Field 색상 선택기 UI 색상
Key Binding 키 설정 단축키
Slider 슬라이더 볼륨 조절
List 리스트 편집 아이템 목록

테마와 스타일

Cloth Config는 마인크래프트의 UI 스타일을 따르면서도 현대적인 느낌을 제공한다:

  • 다크 모드 지원
  • 부드러운 애니메이션
  • 일관된 색상 스키마
  • 반응형 레이아웃

버전 호환성

Cloth Config는 다양한 버전을 지원한다:

  • Minecraft 1.14+: 모든 버전 지원
  • Fabric: 네이티브 지원
  • Forge: Architectury API를 통한 지원
  • Quilt: Fabric 버전 사용 가능

대안 라이브러리

다른 설정 라이브러리들:

  • YACL (Yet Another Config Lib): 더 현대적인 API
  • AutoConfig: 어노테이션 기반
  • CompleteConfig: 자동 GUI 생성
  • MidnightLib: 경량 대안

문제 해결

일반적인 문제

  • 설정이 저장되지 않음: setSaveConsumer 콜백 확인
  • GUI가 깨짐: 텍스트 키 확인, 번역 파일 점검
  • 크래시: Cloth Config 버전과 모드 버전 호환성 확인

성능 고려사항

  • 많은 설정 항목은 로딩 시간 증가
  • 동적 설정은 신중히 사용
  • 큰 리스트는 페이지네이션 고려