Minecraft Wiki
Advertisement
Minecraft 위키 가이드
공지
지침
문서 작성
참고
유지보수

이 문서는 {{모듈:Autolink}}, {{모듈:BiomeSprite}}, {{모듈:BlockSprite}}, {{모듈:EffectSprite}}, {{모듈:EntitySprite}}, {{모듈:EnvSprite}}, {{모듈:ItemSprite}}, {{모듈:InvSprite}} 등의 업데이트 방법을 기술하는 문서입니다.

스프라이트 틀의 작동 방식

스프라이트란?

스프라이트(Sprite)란 문서 내의 와 같은 작은 그림들을 말합니다. {{EntitySprite|creeper}}를 사용하면 와 같이 작은 그림만 나타납니다. 그리고 {{EntityLink|creeper}}를 사용하면 크리퍼와 같이 옆에 이름과 링크가 붙는 형태로 나타납니다.

이런 스프라이트 종류는 아래와 같이 여러가지 종류가 있습니다. 새로 만들어 넣으려면, 표현하려는 것이 아이템인지 블록인지 개체인지 등을 구분해서 사용해야 합니다.

종류 관련 스프라이트 사용 예 결과
블록 {{BlockSprite}}
{{BlockLink}}
{{BlockSprite|Stone}}
{{BlockLink|diamond ore}}

다이아몬드 광석
아이템 {{ItemSprite}}
{{ItemLink}}
{{ItemSprite|steak}}
{{ItemLink|map}}

지도
개체 {{EntitySprite}}
{{EntityLink}}
{{EntitySprite|creeper}}
{{EntityLink|minecart}}

광산 수레
생물 군계 {{BiomeSprite}}
{{BiomeLink}}
{{BiomeSprite|Desert}}
{{BiomeLink|Mountains}}

기타 환경 {{EnvSprite}}
{{EnvLink}}
{{EnvSprite|mineshaft}}
{{EnvLink|stronghold}}

근거지

이 5가지가 그나마 많이 사용되는 것이고, 기타 {{CommentSprite}}, {{EffectSprite}}, {{SchematicSprite}}, {{FrontPageSprite}}, {{AchievementSprite}} 등도 동일한 방식으로 작동됩니다. 아래에서는 이중에서 크기가 별로 안크고 나름대로 널리 사용되는 EnvSprite, EnvLink를 사용하여 설명하겠습니다.

스프라이트 모듈의 호출 계층

Sprite module diagram 01

모듈은 HTML코드를 내뱉기만 할 뿐이니 누군가는 이 HTML과 위키의 CSS를 해석해서 알맞는 이미지를 브라우저에 띄어야 합니다. 이때 사용되는 것이 틀:FileUrlWidget:FileUrl입니다. url(부분 주소)로 된 부분을 해석해 실제 이미지를 가져오는 역할을 합니다. 이 틀과 위젯에 오류가 있을 경우 모듈은 정상인데 정작 이미지가 출력되지 않는 경우가 발생합니다. 이 때에는 해당 틀과 위젯을 업데이트해야 합니다.

이 문서에서는 간단한 FileUrl은 건너 뛰고 스프라이트 모듈에 대해서만 설명합니다.

스프라이트 작동 메카니즘

우선 EnvSprite 등의 ...Sprite는 작은 그림만 가져오는 것입니다. 모듈:EnvSprite 를 보면 아래와 같이 settings, sections, ids 등 세 부분으로 구성되어 있습니다.

return {
	settings = {
		image = 'EnvCSS.png',
		pos = 256,
		sheetsize = 256,
		url = require( Module:Sprite ).getUrl( 'EnvCSS.png', 'version=1b754d81c99384dd54028ff52d27e43b',  ),
	},
	sections = {
		{ name = 'Landscape', id = 3 },
...
		{ name = 'Miscellaneous', id = 1 },
	},
	ids = {
		['abandoned-mineshaft'] = { pos = 44, section = 4 },
...
		['world-boundary'] = { pos = 26, section = 1 },
	},
}

여기에서 맨위 settings 부분을 보시면 EnvSprite에서는 EnvCSS.png 를 사용하고 있음을 알 수 있습니다. EnvCSS.png는 아래처럼 생겼습니다. 이 그림에 들어 있는 네모난 작은 그림들이 EnvSprite를 입력할 때 불려오는 그림들입니다. 참고로, 그림 중간 부분이 비어 있는 것은 원래 그런 겁니다.

EnvCSS

예를 들어, {{EnvSprite|abandoned-mineshaft}} 혹은 {{EnvSprite|Abandoned Mineshaft}} 등으로 입력하면(대소문자/공백은 알아서 처리합니다.), EnvCSS.png에서 { pos = 44, section = 4 }를 참조하여 와 같이 작은 그림을 불러오는 것입니다. 여기에서 section의 역할은 잘 모릅니다. 이 그림에서 앞쪽부터 세어보면 44번째에 가 있으므로, 구지 section은 없어도 될 듯한데, 그냥 넘어가겠습니다.

스프라이트 업데이트 방법

스프라이트 들은 계속 업데이트 됩니다. 새로운 그림들이 추가되기도 하고, 새로운 아이디를 추가하기도 하기 때문입니다. 예를 들어, 1.13에서 1.14로 업그레이드되면서, 새로운 개체/블록/구조물들이 추가되었는데, 그러면 해당 파일들을 수정해서 올리게 됩니다.

업데이트 방법은 다음이, EnvCSS.png 와 모듈:EnvSprite 를 수정하면 됩니다. (한글로 번역할 사항은 전혀 없습니다.)

  • 한국 사이트에 등록된 EnvCSS.png 파일과, 영문 사이트에 올려진 EnvCSS.png 파일을 비교해서, 최신 버전이 있으면(추가된 것이 있으면) 그 파일을 받아서 새로 등록해주어야 합니다.
  • 영문 사이트에서 Module:EnvSprite를 복사해서 한글사이트 모듈:EnvSprite에 붙여 넣습니다. 이때 version 번호는 "File:EnvCSS.png"을 클릭해서 주소부분 끝에 있는 내용을 복사해서 넣어줍니다.
    • 영문판: url = require( Module:Sprite ).getUrl( 'EnvCSS.png', 'version=1549615360587', ),
    • 한글판: url = require( Module:Sprite ).getUrl( 'EnvCSS.png', 'version=1b754d81c99384dd54028ff52d27e43b', ),

물론 블록이라면 모듈:BlockSprite, BlockCSS.png, 아이템이라면 모듈:ItemSprite, ItemCSS.png 등등을 동일한 방법으로 수정하면 됩니다.

영어를 받아 한국어를 뱉는다

Autolink 동작 메카니즘

ItemLink,EnvLink 등을 사용하면 작은 그림과 함께 해당 영문 이름이 한글 이름으로 자동 번역됩니다. 또한 자동으로 링크까지 만들어줍니다. 예를 들어 {{EntityLink|zombie villager}} 라고 입력하면 좀비 주민와 같이 나옵니다.

ItemLink, EnvLink 등은 내부적으로 모듈:Sprite를 호출합니다. 아래는 이 모듈의 첫 부분인데, local Autolink = require( 'Module:Autolink' ) 부분이 영문을 한글로 바꾸는 모듈입니다. 참고로 'Module:Autolink' 로 쓰던, '모듈:Autolink'로 쓰던 관계가 없습니다. 위키에서 자동적으로 변환해주기 때문입니다.

local p = {}
function p.base( f )
	local args = f
	if f == mw.getCurrentFrame() then 
		args = require( 'Module:ProcessArgs' ).merge( true )
	else
		f = mw.getCurrentFrame()
	end
	
	local data = args.data and mw.loadData( 'Module:' .. args.data ) or {}
	local settings = data.settings
    local Autolink = require( 'Module:Autolink' )

모듈:Autolink의 첫부분은 다음과 같습니다. Module:Autolink/Block 에서 블록에 관한 명칭을, Module:Autolink/Item에서 아이템에 관한 명칭을, Module:Autolink/Other에서 개체/생물 군계/생성 구조물 등 기타 여러가지 이름을 매칭시킵니다.

local p = {}

local block = mw.loadData( 'Module:Autolink/Block' )
local item = mw.loadData( 'Module:Autolink/Item' )
local other = mw.loadData( 'Module:Autolink/Other' )
local colors = { 'white ', 'orange ', 'magenta ', 'light blue ', 'yellow ', 'lime ', 'pink ', 'gray ', 'light gray ', 'cyan ', 'purple ', 'blue ', 'brown ', 'green ', 'red ', 'black ' }
local colorc = { '하얀색 ', '주황색 ', '자홍색 ', '하늘색 ', '노란색 ', '연두색 ', '분홍색 ', '회색 ', '회백색 ', '청록색 ', '보라색 ', '파란색 ', '갈색 ', '초록색 ', '빨간색 ', '검은색 ' }

local function Set (list)
  local set = {}
  for _, l in ipairs(list) do set[l] = true end
  return set
end

Module:Autolink/Block 아래와 같은 구조를 가졌습니다. {{BlockLink|jack o'lantern}}라고 넣으면 "jack o' lantern"에 대응되는 한글 "잭오랜턴"으로 되돌려 줍니다. 정확히는 잭오랜턴와 같이 링크로 만들어서 되돌려줍니다. 잭오랜턴 처럼요.

return {
["jack o'lantern"] = '잭오랜턴',
['acacia button'] = '버튼|아카시아나무 버튼',
...
['zombie head'] = '몹 머리|좀비 머리',
['last'] = '이 줄 아래에 추가 금지'
--[] = ,
}

그래서 "acacia button"의 경우, 아카시아나무 버튼과 같이, 아카시아나무 버튼 처럼 반환되므로, 표시는 "아카시아 버튼"이 되지만, 링크는 "버튼"으로 링크가 걸리게 됩니다.

Autolink 유지보수 방법

Autolink는 영문판이 없습니다. 영어판에서는 번역할 필요가 없으니 당연하겠죠. 따라서 일본판과 중국어판을 참고해서 업데이트했습니다. 그런데... 이 문서들을 찾아보시면 아시겠지만, 약간씩 구조가 다릅니다. 그리고, 현재는 일본판과 중국어판에서 가져올 수 있는 것은 거의 다 가져온 상태이기 때문에, 새로 가져와서 편집할 일은 거의 없을 것으로 생각됩니다.

새로운 것이 추가되거나... 해서 영문이 한글로 자동으로 바뀌지 않는다면, 종류에 따라 Module:Autolink/Block, Module:Autolink/Item, Module:Autolink/Other 에 동일한 형식에 맞춰 추가해주면 됩니다. 어디에 추가하느냐는 사실상 아무 관계가 없습니다. (동일한 영어 명칭을 여러가지 한글로 정의할 경우, 마지막 등록된 것만 사용됩니다.) 다만, 현재 Module:Autolink/Block와 Module:Autolink/Item는 종류에 관계없이 오름차순으로 정렬되어 있고, Module:Autolink/Other 는 생물 군계/상태 효과/색/생성 구조물 등으로 구분한 뒤, 각 항목 내에서는 오름차순으로 정렬된 상태이니, 이를 고려하여 적당한 위치에 넣어주면 혼선이 줄어들 것입니다.

한 가지... 영어에서는 복수형이 있어서, 단수형(예:door)과 복수형(예:doors)가 함께 등록된 경우가 제법 있습니다. 하지만, 단수형만 등록되어 있고, 복수형은 등록되어 있지 않는 경우도 꽤 많아서, 자주 영어->한글 변환이 안되는 경우가 자주 발생합니다. 이런 경우에도 주저없이 단수형을 복사해서 바로 아래에 수정해서 넣어주시면 됩니다.

InvSprite 수정

이상의 스프라이트와는 별도로 InvSprite라는 게 존재합니다. InvSprite란, Inventory용 Sprite, 즉, 보관함에 들어갔을 때의 모습을 표현해주는 것입니다. 예를 들면 아래는 레드스톤 블록의 맨위에 있는 정의 부분인데, 세번째 줄에 invimage=Block of Redstone 라는 부분이 커다란 그림 아래쪽에 있는 작은 그림으로 나타나도록 해주는 부분입니다.

유지보수/모듈
Block of Redstone
재생 가능한 자원

가능

쌓음

가능 (64)

도구

폭발 저항

?

경도

?

밝기

없음

투명도

부분적 (빛을 차단하며, 몹 스폰 가능)

가연성

?

용암 불 방지

?


{{Block
 |image=Block of Redstone.png<br>
 |invimage=Block of Redstone<br>
 |type=고체 블록<br>
 |gravity=없음<br>
 ...
 |nameid=redstone_block<br>
 }}

더 자세한 내용은 잘 모르겠지만, InvSprite의 수정도 스프라이트 업데이트 방법와 동일한 방법으로 업데이트 해주면 됩니다. 즉, 영문판 InvSprite.png 파일이 한글위티 보다 최신판이라는 것이 확인되면, 이 파일 가져다가 올리고, Module:InvSprite 를 수정해주시면 됩니다.

{{틀:Items}}, {{틀:Blocks}}, {{틀:Entities}}, {{틀:Biomes}}, {{틀:Environment}}

이 틀(Template)들은 문건 하단에 관련 항목을 더볼 수 있도록 추가하는 용도입니다. 예를 들어 다음은 {{Environment}}를 아래에 추가했을 때 보이는 것입니다. 이런 틀 속에는 위에서 설명한 스프라이트가 거의 모두 포함되어 있습니다. 아마도 스프라이트가 변경되었다면 관련 틀들도 같이 변경되었을 가능성이 높으니 영문판과 비교를 해서 적당히 수정을 해주면 좋습니다.

단 수정을 할 때는 틀:Environment 문서가 아닌, 틀:Environment/content문서를 수정합니다. 다른 것들도 마찬가지고요.

Advertisement