바탕화면 바닷속 방치형 위젯 첫 커밋
화면 아래 가장자리에 가로로 깔리는 Godot 4.7 위젯. 거품을 모아 바다를 꾸미고, 꾸밀수록 거품이 더 빨리 모인다. - 도킹 창: 투명·테두리 없음, 화면 폭 전체, 위/아래 가장자리 스냅, 높이 프리셋, 클릭 통과(모서리로 복귀), DPI 배율 보정 - 3/4 부감 격자: 구역당 9x6, 전체 45x6 = 270칸. 바닥은 위에서, 물체는 서 있는 모습으로 그리고 Y 정렬로 앞뒤를 가린다 - 구역 5개(얕은 바다 -> 열수구): 앞 구역을 꾸며야 다음이 열린다 - 칸이 곧 한계인 경제: 배치/이동/치우기(절반 환불), 여러 칸짜리 장식 - 저장: 30초 자동 저장, 백업 한 세대, 8시간 상한 오프라인 보상, 격자 이전 형식 저장본 자동 이전 - 스모크 테스트 60여 개 (test.ps1) Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
class_name Korean
|
||||
## 한글 조사 처리. 앞 글자의 받침 유무에 따라 을/를, 이/가, 은/는이 갈린다.
|
||||
## 구역 이름을 문장에 끼워 넣을 때 "켈프 숲를" 같은 어색한 말이 나오지 않게 한다.
|
||||
|
||||
const HANGUL_FIRST := 0xAC00
|
||||
const HANGUL_LAST := 0xD7A3
|
||||
|
||||
|
||||
## 마지막 글자에 받침이 있는지. 한글 음절이 아니면 없는 것으로 친다.
|
||||
static func has_final(word: String) -> bool:
|
||||
if word.is_empty():
|
||||
return false
|
||||
var c := word.unicode_at(word.length() - 1)
|
||||
if c < HANGUL_FIRST or c > HANGUL_LAST:
|
||||
return false
|
||||
return (c - HANGUL_FIRST) % 28 != 0
|
||||
|
||||
|
||||
static func josa(word: String, with_final: String, without_final: String) -> String:
|
||||
return word + (with_final if has_final(word) else without_final)
|
||||
|
||||
|
||||
static func eul(word: String) -> String:
|
||||
return josa(word, "을", "를")
|
||||
|
||||
|
||||
static func i(word: String) -> String:
|
||||
return josa(word, "이", "가")
|
||||
|
||||
|
||||
static func eun(word: String) -> String:
|
||||
return josa(word, "은", "는")
|
||||
Reference in New Issue
Block a user