Minejango2 (토론 | 기여) 잔글 (Autolink 모듈 호환성 수정/정보 업데이트) |
Minejango2 (토론 | 기여) 잔글편집 요약 없음 |
||
(사용자 2명의 중간 판 8개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
local p = { |
local p = { |
||
− | + | calc_average_amount_this_item_per_pool = function( |
|
− | + | min_stacksize, max_stacksize, |
|
− | + | min_pool_rolls, max_pool_rolls, |
|
− | + | item_weight, pool_total_item_weight ) |
|
− | + | local avg_stacksize = ( min_stacksize + max_stacksize ) / 2 |
|
− | + | local avg_rolls = ( min_pool_rolls + max_pool_rolls ) / 2 |
|
+ | |||
− | |||
− | + | return avg_stacksize * avg_rolls * item_weight / pool_total_item_weight |
|
+ | |||
− | |||
− | + | end, |
|
+ | |||
− | |||
− | + | calc_chance_any_of_this_item_per_pool = function( |
|
− | + | min_pool_rolls, max_pool_rolls, |
|
− | + | item_weight, pool_total_item_weight ) |
|
− | + | local inverse_result = 0 -- 1 - inverse_result = return value |
|
− | + | local inverse_item_weight = pool_total_item_weight - item_weight |
|
+ | |||
− | |||
− | + | -- will be used for the division in the for loop to avoid the slightly |
|
− | + | -- less performant math.pow(). The divisor already includes the probability |
|
− | + | -- of picking any specific number of rolls. |
|
− | + | local cur_dividend = inverse_item_weight |
|
− | + | local cur_divisor = pool_total_item_weight * (max_pool_rolls - min_pool_rolls + 1) |
|
+ | |||
− | |||
− | + | for i = 1, max_pool_rolls do |
|
− | + | if i >= min_pool_rolls then |
|
− | + | inverse_result = inverse_result + cur_dividend / cur_divisor |
|
+ | end |
||
− | end |
||
− | + | cur_dividend = cur_dividend * inverse_item_weight -- simulate pow |
|
− | + | cur_divisor = cur_divisor * pool_total_item_weight -- simulate pow |
|
− | + | end |
|
+ | |||
− | |||
− | + | return 1 - inverse_result |
|
+ | |||
− | |||
− | + | end, |
|
+ | |||
− | |||
− | + | java = '[[자바 에디션]], [[분류:Java Edition 관련 정보]]', |
|
− | + | ['java-upcoming'] = '[[Java Edition 1.18]]{{upcoming}}, [[분류:Java Edition 관련 정보]]', |
|
− | + | bedrock = '[[베드락 에디션]][[분류:Bedrock Edition 관련 정보]]', |
|
− | + | ['bedrock-upcoming'] = '[[Bedrock Edition 1.17]]{{upcoming}}[[분류:Bedrock Edition 관련 정보]] ', |
|
+ | |||
− | |||
− | + | -- These 'items' define which sprite, label and link to use in the table. |
|
− | + | -- Properties 'cannot_stack', 'preserve_case', and 'plural' describe how to display the single-item summary in p.base2. |
|
− | + | -- Order within this 'items' list doesn't matter. |
|
− | + | items = { |
|
− | + | ["acacia-log"] = { "block", link="원목" }, |
|
− | + | ["acacia-sapling"] = { "block", link="묘목" }, |
|
− | + | ["activator-rail"] = { "block" }, |
|
− | + | ["ancient-debris"] = { "block", plural=false }, |
|
− | + | ["apple"] = { "item" }, |
|
− | + | ["arrow"] = { "item" }, |
|
− | + | ["bamboo"] = { "item", plural=false }, |
|
− | + | ["barrel"] = { "block" }, |
|
− | + | ["basalt"] = { "block", plural=false }, |
|
− | + | ["beetroot"] = { "item" }, |
|
− | + | ["beetroot-seeds"] = { "item", plural=false }, |
|
− | + | ["beetroot-soup"] = { "item", plural=false, cannot_stack=true }, |
|
− | + | ["bell"] = { "block" }, |
|
− | + | ["birch-log"] = { "block", link="원목" }, |
|
− | + | ["birch-sapling"] = { "block", link="묘목" }, |
|
− | + | ["black-wool"] = { "block", link="양털", plural=false }, |
|
− | + | ["block-of-gold"] = { "block", plural="금 블록" }, |
|
− | + | ["blue-ice"] = { "block", plural=false }, |
|
− | + | ["bone"] = { "item" }, |
|
− | + | ["bone-block"] = { "block" }, |
|
− | + | ["book"] = { "item" }, |
|
− | + | ["book-and-quill"] = { "item", plural=false, title="Book and Quill" }, |
|
− | + | ["bottle-o'-enchanting"] = { "item", title="경험치 병", plural="경험치 병" }, |
|
− | + | ["bread"] = { "item", plural=false }, |
|
− | + | ["brown-mushroom"] = { "block", link="버섯" }, |
|
− | + | ["brown-wool"] = { "block", link="양털", plural=false }, |
|
− | + | ["bucket"] = { "item" }, |
|
["buried-treasure-map"] = { "item", link="탐험 지도" }, |
["buried-treasure-map"] = { "item", link="탐험 지도" }, |
||
− | + | ["cactus"] = { "block", plural=false }, |
|
− | + | ["cake"] = { "block", plural=false }, |
|
− | + | ["carrot"] = { "item" }, |
|
− | + | ["chain"] = { "block" }, |
|
− | + | ["chainmail-boots"] = { "item", link="갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["chainmail-chestplate"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["chainmail-helmet"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["chainmail-leggings"] = { "item", link="갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["clay-ball"] = { "item", link="점토 덩이", plural=false }, |
|
− | + | ["clock"] = { "item" }, |
|
− | + | ["coal"] = { "item", plural=false }, |
|
− | + | ["cocoa-beans"] = { "item", plural=false }, |
|
− | + | ["cooked-cod"] = { "item", plural=false }, |
|
− | + | ["cooked-porkchop"] = { "item" }, |
|
− | + | ["cooked-salmon"] = { "item", plural=false }, |
|
− | + | ["compass"] = { "item" }, |
|
− | + | ["crimson-fungus"] = { "block", link="균", plural= "crimson fungi" }, |
|
− | + | ["crimson-nylium"] = { "block", link="네사체", plural=false}, |
|
− | + | ["crimson-roots"] = { "block", link="뿌리", plural=false}, |
|
− | + | ["crossbow"] = { "item", cannot_stack=true }, |
|
− | + | ["crying-obsidian"] = { "block" }, |
|
− | + | ["dandelion"] = { "block", link="꽃" }, |
|
− | + | ["dark-oak-log"] = { "block", link="원목" }, |
|
− | + | ["dark-oak-sapling"] = { "block", link="묘목" }, |
|
− | + | ["dead-bush"] = { "block", link="마른 덤불" }, |
|
− | + | ["detector-rail"] = { "block" }, |
|
− | + | ["diamond"] = { "item" }, |
|
− | + | ["diamond-chestplate"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["diamond-hoe"] = { "item", link="괭이", cannot_stack=true }, |
|
− | + | ["diamond-horse-armor"] = { "item", link="말 갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["disc-13"] = { "item", id='music-disc-13', title="음반 (13)", link="음반", cannot_stack=true, plural=false }, |
|
− | + | ["disc-cat"] = { "item", id='music-disc-cat',title="음반 (Cat)", link="음반", cannot_stack=true, plural=false }, |
|
− | + | ["disc-mellohi"] = { "item", id='music-disc-mellohi',title="음반 (Mellohi)", link="음반", cannot_stack=true, plural=false }, |
|
− | + | ["disc-pigstep"] = { "item", id='music-disc-pigstep', title = "음반 (Pigstep)", link="음반", cannot_stack=true, plural=false }, |
|
− | + | ["disc-wait"] = { "item", id='music-disc-wait',title="음반 (Wait)", link="음반", cannot_stack=true, plural=false }, |
|
− | + | ["egg"] = { "item" }, |
|
− | + | ["emerald"] = { "item" }, |
|
− | + | ["empty-map"] = { "item", link="지도", title="빈 지도" }, |
|
− | + | ["enchanted-book"] = { "item", id='enchanted-book', title="마법이 부여된 책", link="마법이 부여된 책", cannot_stack=true, note="enchant-with-levels-30" }, |
|
− | + | ["enchanted-book-rnd"] = { "item", id='enchanted-book', title="마법이 부여된 책", link="마법이 부여된 책", cannot_stack=true, note="enchant-randomly" }, |
|
− | + | ["enchanted-book-rnd-soul-speed"] = { "item", id='enchanted-book', title="마법이 부여된 책", link="마법이 부여된 책", cannot_stack=true, note="enchant-randomly-soul-speed" }, |
|
− | + | ["enchanted-fishing-rod"] = { "item", id="fishing-rod", link="낚싯대", cannot_stack=true, note="enchant-randomly" }, |
|
− | + | ["enchanted-golden-apple"] = { "item" }, |
|
− | + | ["ender-pearl"] = { "item" }, |
|
− | + | ["feather"] = { "item" }, |
|
− | + | ["fern"] = { "block", link="잔디" }, |
|
− | + | ["fire-charge"] = { "item" }, |
|
− | + | ["flint"] = { "item", plural=false }, |
|
− | + | ["flint-and-steel"] = { "item", cannot_stack=true, plural=false }, |
|
− | + | ["flower-pot"] = { "item" }, |
|
− | + | ["furnace"] = { "block" }, |
|
− | + | ["gilded-blackstone"] = { "block", plural=false }, |
|
− | + | ["glistering-melon-slice"] = { "item" }, |
|
− | + | ["glowstone"] = { "block" }, |
|
− | + | ["golden-apple"] = { "item" }, |
|
− | + | ["golden-boots"] = { "item", link="갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["golden-carrot"] = { "item" }, |
|
− | + | ["golden-chestplate"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["golden-helmet"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["golden-hoe"] = { "item", link="괭이", cannot_stack=true }, |
|
− | + | ["golden-horse-armor"] = { "item", link="말 갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["golden-leggings"] = { "item", link="갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["golden-sword"] = { "item", link="검", cannot_stack=true }, |
|
− | + | ["gold-ingot"] = { "item" }, |
|
− | + | ["gold-nugget"] = { "item" }, |
|
− | + | ["grass"] = { "block", link="잔디", plural=false }, |
|
− | + | ["gray-wool"] = { "block", link="양털", plural=false }, |
|
− | + | ["green-dye"] = { "item", link="염료", plural=false }, |
|
− | + | ["gunpowder"] = { "item", plural=false }, |
|
− | + | ["heart-of-the-sea"] = { "item", plural=false, link="Heart of the Sea" }, |
|
− | + | ["ink-sac"] = { "item" }, |
|
− | + | ["iron-boots"] = { "item", link="갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["iron-chestplate"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["iron-helmet"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["iron-horse-armor"] = { "item", link="말 갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["iron-ingot"] = { "item" }, |
|
− | + | ["iron-leggings"] = { "item", link="갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["iron-nugget"] = { "item" }, |
|
− | + | ["iron-pickaxe"] = { "item", link="곡괭이", cannot_stack=true }, |
|
− | + | ["iron-shovel"] = { "item", link="삽", cannot_stack=true }, |
|
− | + | ["iron-sword"] = { "item", link="검", cannot_stack=true }, |
|
− | + | ["jungle-log"] = { "block", link="원목" }, |
|
− | + | ["jungle-sapling"] = { "block", link="묘목" }, |
|
− | + | ["lapis-lazuli"] = { "item", plural=false }, |
|
− | + | ["large-fern"] = { "block", link="잔디" }, |
|
− | + | ["lead"] = { "item" }, |
|
− | + | ["leather"] = { "item", plural=false }, |
|
− | + | ["leather-boots"] = { "item", link="갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["leather-cap"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["leather-pants"] = { "item", link="갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["leather-tunic"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["light-gray-wool"] = { "block", link="양털", plural=false }, |
|
− | + | ["light-weighted-pressure-plate"] = { "block", link="압력판" }, |
|
− | + | ["lodestone"] = { "block" }, |
|
− | + | ["melon-seeds"] = { "item", plural=false }, |
|
− | + | ["magma-cream"] = { "item", plural=false }, |
|
− | + | ["magma-block"] = { "block" }, |
|
− | + | ["name-tag"] = { "item" }, |
|
− | + | ["netherite-boots"] = { "item", link="갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["netherite-chestplate"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["netherite-helmet"] = { "item", link="갑옷", cannot_stack=true }, |
|
− | + | ["netherite-ingot"] = { "item" }, |
|
− | + | ["netherite-leggings"] = { "item", link="갑옷", cannot_stack=true, plural=false }, |
|
− | + | ["netherite-scrap"] = { "item" }, |
|
− | + | ["nether-wart"] = { "item", plural=false }, |
|
− | + | ["nether-quartz"] = { "item", plural=false }, |
|
− | + | ["oak-log"] = { "block", link="원목" }, |
|
− | + | ["oak-planks"] = { "block", link="판자", id="oak-wood-planks", plural=false }, |
|
− | + | ["oak-sapling"] = { "block", link="묘목" }, |
|
− | + | ["oak-sign"] = { "item", link="표지판" }, |
|
− | + | ["obsidian"] = { "block", plural=false }, |
|
− | + | ["paper"] = { "item", plural=false }, |
|
− | + | ["piglin-banner-pattern"] = { "item", id="banner-pattern", link="Banner Pattern", cannot_stack=true }, |
|
− | + | ["poisonous-potato"] = { "item", plural="poisonous potatoes" }, |
|
− | + | ["polished-basalt"] = { "block", plural=false}, |
|
− | + | ["poppy"] = { "block", link="꽃", plural="poppies" }, |
|
− | + | ["potato"] = { "item", plural="potatoes" }, |
|
− | + | ["potion-of-regeneration"] = { "item", link="물약", title="재생의 물약", plural=false, preserve_case=true }, |
|
− | + | ["potion-of-water-breathing"] = { "item", link="물약", title="수중 호흡 물약", plural=false, preserve_case=true }, |
|
− | + | ["powered-rail"] = { "block", title="Powered 레일", plural=false }, |
|
− | + | ["prismarine-crystals"] = { "item", plural=false }, |
|
− | + | ["pumpkin"] = { "block" }, |
|
− | + | ["pumpkin-pie"] = { "item", plural=false }, |
|
− | + | ["pumpkin-seeds"] = { "item", plural=false }, |
|
− | + | ["rail"] = { "block", title="레일", plural=false }, |
|
− | + | ["raw-beef"] = { "item", link="익히지 않은 소고기", plural=false }, |
|
− | + | ["raw-cod"] = { "item", link="생대구", plural=false }, |
|
− | + | ["raw-mutton"] = { "item", link="익히지 않은 양고기", plural=false }, |
|
− | + | ["raw-porkchop"] = { "item", link="익히지 않은 돼지고기" }, |
|
− | + | ["raw-salmon"] = { "item", link="생대구", plural=false }, |
|
− | + | ["redstone"] = { "item", id="redstone-dust", title="레드스톤 가루", plural=false }, |
|
− | + | ["rotten-flesh"] = { "item", plural=false }, |
|
− | + | ["saddle"] = { "item", cannot_stack=true }, |
|
− | + | ["sand"] = { "block", plural=false }, |
|
− | + | ["shears"] = { "item", plural=false, cannot_stack=true }, |
|
− | + | ["smooth-stone"] = { "block", plural=false }, |
|
− | + | ["snowball"] = { "item", link="눈덩이" }, |
|
− | + | ["snow-block"] = { "block", link="눈 블록" }, |
|
− | + | ["soul-sand"] = { "block" }, |
|
− | + | ["spectral-arrow"] = { "item" }, |
|
− | + | ["spider-eye"] = { "item" }, |
|
− | + | ["spruce-log"] = { "block", link="원목" }, |
|
− | + | ["spruce-sapling"] = { "block", link="묘목" }, |
|
− | + | ["spruce-sign"] = { "item", link="표지판" }, |
|
− | + | ["stick"] = { "item" }, |
|
− | + | ["stone"] = { "block", plural=false }, |
|
− | + | ["stone-axe"] = { "item", link="도끼", cannot_stack=true }, |
|
− | + | ["stone-bricks"] = { "block", plural=false }, |
|
− | + | ["stone-pickaxe"] = { "item", link="곡괭이", cannot_stack=true }, |
|
− | + | ["string"] = { "item", plural=false }, |
|
− | + | ["suspicious-stew"] = { "item", plural=false, note="suspicious-stew" }, |
|
− | + | ["sweet-berries"] = { "item", plural=false }, |
|
− | + | ["tall-grass"] = { "block", plural=false, link="잔디" }, |
|
− | + | ["tnt"] = { "block", title="TNT", plural=false, preserve_case=true }, |
|
− | + | ["torch"] = { "block" }, |
|
− | + | ["tripwire-hook"] = { "block" }, |
|
− | + | ["water-bucket"] = { "item", cannot_stack=true }, |
|
− | + | ["wheat"] = { "item", plural=false }, |
|
− | + | ["wheat-seeds"] = { "item", plural=false }, |
|
− | + | ["white-wool"] = { "block", link="양털", plural=false }, |
|
− | + | ["wooden-axe"] = { "item", link="도끼", cannot_stack=true }, |
|
− | + | ["wooden-hoe"] = { "item", link="괭이", cannot_stack=true }, |
|
− | + | ["wooden-pickaxe"] = { "item", link="곡괭이", cannot_stack=true }, |
|
− | + | ["yellow-dye"] = { "item", link="염료", plural=false }, |
|
− | + | ["map"] = { "item", link="지도", note="map" }, |
|
− | + | ["damaged-random-enchanted-netherite-axe"] = { "item", id="netherite-axe", title="손상된 마법이 부여된 네더라이트 도끼", link="도끼", note="enchant-randomly", note1="damaged-0.15-0.85", cannot_stack=true }, |
|
− | + | ["damaged-netherite-boots"] = { "item", id="netherite-boots", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true, plural=false}, |
|
− | + | ["damaged-level-enchanted-netherite-boots"] = { "item", id="netherite-boots", title="손상된 마법이 부여된 네더라이트 부츠", link="갑옷", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, |
|
− | + | ["damaged-random-enchanted-netherite-boots"] = { "item", id="netherite-boots", title="손상된 마법이 부여된 네더라이트 부츠", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, |
|
− | + | ["damaged-netherite-chestplate"] = { "item", id="netherite-chestplate", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true}, |
|
− | + | ["damaged-level-enchanted-netherite-chestplate"] = { "item", id="netherite-chestplate", title="손상된 마법이 부여된 네더라이트 흉갑", link="갑옷", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true }, |
|
− | + | ["damaged-random-enchanted-netherite-chestplate"] = { "item", id="netherite-chestplate", title="손상된 마법이 부여된 네더라이트 흉갑", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, |
|
− | + | ["damaged-netherite-helmet"] = { "item", id="netherite-helmet", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true}, |
|
− | + | ["damaged-random-enchanted-netherite-hoe"] = { "item", id="netherite-hoe", title="손상된 마법이 부여된 네더라이트 괭이", link="괭이", note="enchant-randomly", note1="damaged-0.1-0.95", cannot_stack=true }, |
|
− | + | ["damaged-level-enchanted-netherite-helmet"] = { "item", id="netherite-helmet", title="손상된 마법이 부여된 네더라이트 투구", link="갑옷", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true }, |
|
− | + | ["damaged-random-enchanted-netherite-helmet"] = { "item", id="netherite-helmet", title="손상된 마법이 부여된 네더라이트 투구", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, |
|
− | + | ["damaged-netherite-leggings"] = { "item", id="netherite-leggings", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true, plural=false}, |
|
− | + | ["damaged-level-enchanted-netherite-leggings"] = { "item", id="netherite-leggings", title="손상된 마법이 부여된 네더라이트 각반", link="갑옷", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, |
|
− | + | ["damaged-random-enchanted-netherite-leggings"] = { "item", id="netherite-leggings", title="손상된 마법이 부여된 네더라이트 각반", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, |
|
− | + | ["damaged-random-enchanted-netherite-pickaxe"] = { "item", id="netherite-pickaxe", title="손상된 마법이 부여된 네더라이트 곡괭이", link="곡괭이", note="enchant-randomly", note1="damaged-0.1-0.95", cannot_stack=true }, |
|
− | + | ["damaged-random-enchanted-netherite-shovel"] = { "item", id="netherite-shovel", title="손상된 마법이 부여된 네더라이트 삽", link="삽", note="enchant-randomly", note1="damaged-0.15-0.45", cannot_stack=true}, |
|
− | + | ["damaged-netherite-sword"] = { "item", id="netherite-sword", link="검", note="damaged-0.2-0.65", cannot_stack=true}, |
|
− | + | ["damaged-level-enchanted-netherite-sword"] = { "item", id="netherite-sword", title="손상된 마법이 부여된 네더라이트 검", link="검", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true }, |
|
− | + | ["damaged-random-enchanted-netherite-sword"] = { "item", id="netherite-sword", title="손상된 마법이 부여된 네더라이트 검", link="검", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, |
|
− | + | ["damaged-diamond-boots"] = { "item", id="diamond-boots", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true, plural=false}, |
|
− | + | ["level-enchanted-diamond-boots"] = { "item", id="diamond-boots", title="마법이 부여된 다이아몬드 부츠", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true, plural=false }, |
|
− | + | ["damaged-random-enchanted-diamond-boots"] = { "item", id="diamond-boots", title="손상된 마법이 부여된 다이아몬드 부츠", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, |
|
− | + | ["damaged-diamond-chestplate"] = { "item", id="diamond-chestplate", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true}, |
|
− | + | ["level-enchanted-diamond-chestplate"] = { "item", id="diamond-chestplate", title="마법이 부여된 다이아몬드 흉갑", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["damaged-random-enchanted-diamond-chestplate"] = { "item", id="diamond-chestplate", title="손상된 마법이 부여된 다이아몬드 흉갑", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, |
|
− | + | ["damaged-diamond-helmet"] = { "item", id="diamond-helmet", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true}, |
|
− | + | ["level-enchanted-diamond-helmet"] = { "item", id="diamond-helmet", title="마법이 부여된 다이아몬드 투구", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["damaged-random-enchanted-diamond-helmet"] = { "item", id="diamond-helmet", title="손상된 마법이 부여된 다이아몬드 투구", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, |
|
− | + | ["damaged-diamond-leggings"] = { "item", id="diamond-leggings", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true, plural=false}, |
|
− | + | ["level-enchanted-diamond-leggings"] = { "item", id="diamond-leggings", title="마법이 부여된 다이아몬드 각반", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true, plural=false }, |
|
− | + | ["damaged-random-enchanted-diamond-leggings"] = { "item", id="diamond-leggings", title="손상된 마법이 부여된 다이아몬드 각반", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, |
|
− | + | ["level-enchanted-diamond-pickaxe"] = { "item", id="diamond-pickaxe", title="마법이 부여된 다이아몬드 곡괭이", link="곡괭이", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["level-enchanted-diamond-shovel"] = { "item", id="diamond-shovel", title="마법이 부여된 다이아몬드 삽", link="삽", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["damaged-random-enchanted-diamond-shovel"] = { "item", id="diamond-shovel", title="손상된 마법이 부여된 다이아몬드 삽", link="삽", note="enchant-randomly", note1="damaged-0.15-0.45", cannot_stack=true}, |
|
− | + | ["damaged-diamond-sword"] = { "item", id="diamond-sword", link="검", note="damaged-0.2-0.65", cannot_stack=true}, |
|
− | + | ["level-enchanted-diamond-sword"] = { "item", id="diamond-sword", title="마법이 부여된 다이아몬드 검", link="검", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["damaged-random-enchanted-diamond-sword"] = { "item", id="diamond-sword", title="손상된 마법이 부여된 다이아몬드 검", link="검", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, |
|
− | + | ["level-enchanted-iron-boots"] = { "item", id="iron-boots", title="마법이 부여된 철 부츠", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true, plural=false }, |
|
− | + | ["level-enchanted-iron-chestplate"] = { "item", id="iron-chestplate", title="마법이 부여된 철 흉갑", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["level-enchanted-iron-helmet"] = { "item", id="iron-helmet", title="마법이 부여된 철 투구", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["level-enchanted-iron-leggings"] = { "item", id="iron-leggings", title="마법이 부여된 철 각반", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true, plural=false }, |
|
− | + | ["level-enchanted-iron-pickaxe"] = { "item", id="iron-pickaxe", title="마법이 부여된 철 곡괭이", link="곡괭이", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["level-enchanted-iron-shovel"] = { "item", id="iron-shovel", title="마법이 부여된 철 삽", link="삽", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["level-enchanted-iron-sword"] = { "item", id="iron-sword", title="마법이 부여된 철 검", link="검", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["random-enchanted-golden-axe"] = { "item", id="golden-axe", title="마법이 부여된 황금 도끼", link="도끼", note="enchant-randomly", cannot_stack=true }, |
|
− | + | ["level-enchanted-golden-boots"] = { "item", id="golden-boots", title="마법이 부여된 황금 부츠", link="갑옷", note="enchant-with-levels-5-15", cannot_stack=true, plural=false }, |
|
− | + | ["random-enchanted-golden-boots"] = { "item", id="golden-boots", title="마법이 부여된 황금 부츠", link="갑옷", note="enchant-randomly", cannot_stack=true, plural=false }, |
|
− | + | ["soul-speed-enchanted-golden-boots"] = { "item", id="golden-boots", title="영혼 신속 마법이 부여된 황금 부츠", link="갑옷", note="enchant-randomly-soul-speed", cannot_stack=true, plural=false }, |
|
− | + | ["level-enchanted-golden-chestplate"] = { "item", id="golden-chestplate", title="마법이 부여된 황금 흉갑", link="갑옷", note="enchant-with-levels-5-15", cannot_stack=true }, |
|
− | + | ["random-enchanted-golden-chestplate"] = { "item", id="golden-chestplate", title="마법이 부여된 황금 흉갑", link="갑옷", note="enchant-randomly", cannot_stack=true }, |
|
− | + | ["level-enchanted-golden-helmet"] = { "item", id="golden-helmet", title="마법이 부여된 황금 투구", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["random-enchanted-golden-helmet"] = { "item", id="golden-helmet", title="마법이 부여된 황금 투구", link="갑옷", note="enchant-randomly", cannot_stack=true }, |
|
− | + | ["level-enchanted-golden-hoe"] = { "item", id="golden-hoe", title="마법이 부여된 황금 괭이", link="괭이", note="enchant-with-levels-20-39", cannot_stack=true }, |
|
− | + | ["random-enchanted-golden-hoe"] = { "item", id="golden-hoe", title="마법이 부여된 황금 괭이", link="괭이", note="enchant-randomly", cannot_stack=true }, |
|
− | + | ["level-enchanted-golden-leggings"] = { "item", id="golden-leggings", title="마법이 부여된 황금 각반", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true, plural=false }, |
|
− | + | ["random-enchanted-golden-leggings"] = { "item", id="golden-leggings", title="마법이 부여된 황금 각반", link="갑옷", note="enchant-randomly", cannot_stack=true, plural=false }, |
|
− | + | ["random-enchanted-golden-pickaxe"] = { "item", id="golden-pickaxe", title="마법이 부여된 황금 곡괭이", link="곡괭이", note="enchant-randomly", cannot_stack=true }, |
|
− | + | ["random-enchanted-golden-shovel"] = { "item", id="golden-shovel", title="마법이 부여된 황금 삽", link="삽", note="enchant-randomly", cannot_stack=true }, |
|
− | + | ["random-enchanted-golden-sword"] = { "item", id="golden-sword", title="마법이 부여된 황금 검", link="검", note="enchant-randomly", cannot_stack=true }, |
|
− | + | ["random-enchanted-leather-boots"] = { "item", id="leather-boots", title="마법이 부여된 가죽 부츠", link="갑옷", note="enchant-randomly", cannot_stack=true, plural=false }, |
|
− | + | ["random-enchanted-leather-cap"] = { "item", id="leather-cap", title="마법이 부여된 가죽 모자", link="갑옷", note="enchant-randomly", cannot_stack=true }, |
|
− | + | ["random-enchanted-leather-pants"] = { "item", id="leather-pants", title="마법이 부여된 가죽 바지", link="갑옷", note="enchant-randomly", cannot_stack=true, plural=false }, |
|
− | + | ["random-enchanted-leather-tunic"] = { "item", id="leather-tunic", title="마법이 부여된 가죽 조끼", link="갑옷", note="enchant-randomly", cannot_stack=true }, |
|
− | + | ["damaged-level-enchanted-crossbow"] = { "item", id="crossbow", title="손상된 마법이 부여된 석궁", link="석궁", note="enchant-with-levels-20-25", note1="damaged-0.05-0.15", cannot_stack=true }, |
|
− | + | ["damaged-random-enchanted-crossbow"] = { "item", id="crossbow", title="손상된 마법이 부여된 석궁", link="석궁", note="enchant-randomly", note1="damaged-0.1-0.5", cannot_stack=true }, |
|
− | + | ["empty"] = { "block", id="air", link='', title='빈 상자', plural=false, note="nothing" }, |
|
− | + | }, |
|
− | + | notes = { |
|
− | + | ["enchant-randomly"] = "[[보물 마법]]을 '''포함한''' 모든 마법의 확률은 동일하며([[영혼 신속]] 제외), 마법 레벨도 확률이 동일하다.", |
|
− | + | ["enchant-randomly-soul-speed"] = "임의의 레벨로 [[영혼 신속]] 마법이 부여된다.", |
|
− | + | ["enchant-with-levels-5-15"] = "마법의 확률은 [[마법 부여대]]에서 레벨 5에서 레벨 15까지의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", |
|
− | + | ["enchant-with-levels-5-20"] = "마법의 확률은 [[마법 부여대]]에서 레벨 5에서 레벨 20까지의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", |
|
− | + | ["enchant-with-levels-20-25"] = "마법의 확률은 [[마법 부여대]]에서 레벨 20에서 레벨 25까지의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", |
|
− | + | ["enchant-with-levels-20-25"] = "마법의 확률은 [[마법 부여대]]에서 레벨 20에서 레벨 25까지의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", |
|
− | + | ["enchant-with-levels-20-39"] = "마법의 확률은 [[마법 부여대]]에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", |
|
− | + | ["enchant-with-levels-30"] = "마법의 확률은 [[마법 부여대]]에서 레벨 30의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", |
|
− | + | ["damaged-0.05-0.15"] = "이 아이템의 내구성은 5%와 15% 사이에 있다.", |
|
− | + | ["damaged-0.1-0.95"] = "이 아이템의 내구성은 10%와 95% 사이에 있다.", |
|
− | + | ["damaged-0.15-0.45"] = "이 아이템의 내구성은 15%와 45% 사이에 있다.", |
|
− | + | ["damaged-0.15-0.85"] = "이 아이템의 내구성은 15%와 85% 사이에 있다.", |
|
− | + | ["damaged-0.1-0.5"] = "이 아이템의 내구성은 10%와 50% 사이에 있다.", |
|
− | + | ["damaged-0.2-0.65"] = "이 아이템의 내구성은 20%와 65% 사이에 있다.", |
|
− | + | ["nothing"] = "'Nothing' does not refer to the chance of an empty chest. Instead, it refers to the chance that the random loot generator does not add any loot ''on a single roll''.", |
|
− | + | ["suspicious-stew"] = "The stew grants one of the following effects: 5–7 seconds of [[Blindness]], 7–10 seconds of [[Jump Boost]], 7-10 seconds of [[Night Vision]], 10–20 seconds of [[Poison]], 7–10 seconds of [[Saturation]], or 6–8 seconds of [[Weakness]].", |
|
− | + | ["map"] = "Named unknown map, but changed to map 0, the scale level is 1:4, Maps from the same stack are stackable, but maps that are not stacked are unstackable despite looking identical." |
|
− | + | }, |
|
− | + | -- <ref group='note' name='enchant-randomly'> |
|
+ | |||
− | |||
− | + | -- NOTE: order here doesn't matter. |
|
− | + | -- * in the table, chests will sort in alphabetical order |
|
− | + | -- * in the table, items will sort by chance, then by avg#, then alphabetically. |
|
− | + | -- * If poolsJavaUpcoming is omitted, poolsJava will be used. To omit a pool entirely, set it to {}. |
|
− | + | -- * If poolsBedrock is omitted, it implies that Bedrock has the same pools as Java. This is a shortcoming; it ought to be made explicit somehow. |
|
+ | |||
− | |||
− | + | chests = { |
|
− | + | ["shipwreck-map"] = { -- shipwreck_map.json |
|
− | + | header = "지도", |
|
− | + | superheader = "[[난파선]]", |
|
− | + | link = "[[난파선#지도 상자|난파선 지도]]", |
|
− | + | structure = "난파선", |
|
− | + | container = "지도 상자", |
|
− | + | structID = "shipwreck", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
["buried-treasure-map"] = {1,1,1}, |
["buried-treasure-map"] = {1,1,1}, |
||
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {3,3}, |
|
− | + | items = { |
|
− | + | ["compass"] = {1,1,1}, |
|
− | + | ["empty-map"] = {1,1,1}, |
|
− | + | ["clock"] = {1,1,1}, |
|
− | + | ["paper"] = {1,10,20}, |
|
− | + | ["feather"] = {1,5,10}, |
|
− | + | ["book"] = {1,5,5}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["buried-treasure-map"] = {1,1,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {3,3}, |
|
− | + | items = { |
|
− | + | ["compass"] = {1,1,1}, |
|
− | + | ["map"] = {1,1,1}, |
|
− | + | ["clock"] = {1,1,1}, |
|
− | + | ["paper"] = {1,10,20}, |
|
− | + | ["feather"] = {1,5,10}, |
|
− | + | ["book"] = {1,5,5}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["shipwreck-supply"] = { -- shipwreck_supply.json |
|
− | + | header = "보급품", |
|
− | + | superheader = "[[난파선]]", |
|
− | + | link = "[[난파선#보급품 상자|난파선 보급품]]", |
|
− | + | structure = "난파선", |
|
− | + | container = "보급품 상자", |
|
− | + | structID = "shipwreck", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,10}, |
|
− | + | items = { |
|
− | + | ["paper"] = {1,12,8}, |
|
− | + | ["potato"] = {2,6,7}, |
|
− | + | ["poisonous-potato"] = {2,6,7}, |
|
− | + | ["carrot"] = {4,8,7}, |
|
− | + | ["wheat"] = {8,21,7}, |
|
− | + | ["coal"] = {2,8,6}, |
|
− | + | ["rotten-flesh"] = {5,24,5}, |
|
− | + | ["bamboo"] = {1,3,2}, |
|
− | + | ["suspicious-stew"] = {1,1,10}, |
|
− | + | ["pumpkin"] = {1,3,2}, |
|
− | + | ["gunpowder"] = {1,5,3}, |
|
− | + | ["tnt"] = {1,2,1}, |
|
− | + | ["random-enchanted-leather-cap"] = {1,1,3}, |
|
− | + | ["random-enchanted-leather-tunic"] = {1,1,3}, |
|
− | + | ["random-enchanted-leather-pants"] = {1,1,3}, |
|
− | + | ["random-enchanted-leather-boots"] = {1,1,3}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["shipwreck-treasure"] = { -- shipwreck_treasure.json |
|
− | + | header = "보물", |
|
− | + | superheader = "[[난파선]]", |
|
− | + | link = "[[난파선]] 보물", |
|
− | + | structure = "난파선", |
|
− | + | container = "보물 상자", |
|
− | + | structID = "shipwreck", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,6}, |
|
− | + | items = { |
|
− | + | ["iron-ingot"] = {1,5,90}, |
|
− | + | ["gold-ingot"] = {1,5,10}, |
|
− | + | ["emerald"] = {1,5,40}, |
|
− | + | ["diamond"] = {1,1,5}, |
|
− | + | ["bottle-o'-enchanting"] = {1,1,5}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {2,5}, |
|
− | + | items = { |
|
− | + | ["iron-nugget"] = {1,10,50}, |
|
− | + | ["gold-nugget"] = {1,10,10}, |
|
− | + | ["lapis-lazuli"] = {1,10,20}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["buried-treasure"] = { -- buried_treasure.json |
|
− | + | header = "[[땅에 묻힌 보물]]", |
|
− | + | link = "[[땅에 묻힌 보물]]", |
|
− | + | structure = "땅에 묻힌 보물", |
|
− | + | container = "", |
|
− | + | structID = "buried-treasure", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["heart-of-the-sea"] = {1,1,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {5,8}, |
|
− | + | items = { |
|
− | + | ["iron-ingot"] = {1,4,20}, |
|
− | + | ["gold-ingot"] = {1,4,10}, |
|
− | + | ["tnt"] = {1,2,5}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,3}, |
|
− | + | items = { |
|
− | + | ["emerald"] = {4,8,5}, |
|
− | + | ["diamond"] = {1,2,5}, |
|
− | + | ["prismarine-crystals"] = {1,5,5}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {0,1}, |
|
− | + | items = { |
|
− | + | ["leather-tunic"] = {1,1,1}, |
|
− | + | ["iron-sword"] = {1,1,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {2,2}, |
|
− | + | items = { |
|
− | + | ["cooked-cod"] = {2,4,1}, |
|
− | + | ["cooked-salmon"] = {2,4,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["heart-of-the-sea"] = {1,1,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {5,12}, |
|
− | + | items = { |
|
− | + | ["prismarine-crystals"] = {1,5,5}, |
|
− | + | ["iron-ingot"] = {3,5,20}, |
|
− | + | ["gold-ingot"] = {1,5,10}, |
|
− | + | ["tnt"] = {1,2,10}, |
|
− | + | ["diamond"] = {1,1,15}, |
|
− | + | ["disc-wait"] = {1,1,5}, |
|
− | + | ["disc-mellohi"] = {1,1,5}, |
|
− | + | ["name-tag"] = {1,1,10}, |
|
− | + | ["chainmail-chestplate"] = {1,1,20}, |
|
− | + | ["chainmail-helmet"] = {1,1,20}, |
|
− | + | ["chainmail-leggings"] = {1,1,20}, |
|
− | + | ["chainmail-boots"] = {1,1,20}, |
|
− | + | ["book-and-quill"] = {1,2,5}, |
|
− | + | ["lead"] = {1,3,10}, |
|
− | + | ["bottle-o'-enchanting"] = {1,1,3}, |
|
− | + | ["potion-of-water-breathing"] = {1,1,15}, |
|
− | + | ["potion-of-regeneration"] = {1,1,10}, |
|
− | + | ["cake"] = {1,1,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["underwater-ruin-big"] = { -- underwater_ruin_big.json |
|
− | + | header = "큰 상자", |
|
− | + | superheader = "[[해저 폐허]]", |
|
− | + | link = "[[해저 폐허]]", |
|
− | + | structure = "해저 폐허", |
|
− | + | container = "해저 폐허의 큰 상자", |
|
− | + | structID = "underwater-ruins", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,8}, |
|
− | + | items = { |
|
− | + | ["coal"] = {1,4,10}, |
|
− | + | ["gold-nugget"] = {1,3,10}, |
|
− | + | ["emerald"] = {1,1,1}, |
|
− | + | ["wheat"] = {2,3,10}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["golden-apple"] = {1,1,1}, |
|
− | + | ["enchanted-book-rnd"] = {1,1,5}, |
|
− | + | ["leather-tunic"] = {1,1,1}, |
|
− | + | ["golden-helmet"] = {1,1,1}, |
|
− | + | ["enchanted-fishing-rod"] = {1,1,5}, |
|
["buried-treasure-map"] = {1,1,10}, |
["buried-treasure-map"] = {1,1,10}, |
||
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["underwater-ruin-small"] = { -- underwater_ruin_small.json |
|
− | + | header = "작은 상자", |
|
− | + | superheader = "[[해저 폐허]]", |
|
− | + | link = "[[해저 폐허]]", |
|
− | + | structure = "해저 폐허", |
|
− | + | container = "해저 폐허의 작은 상자", |
|
− | + | structID = "underwater-ruins", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,8}, |
|
− | + | items = { |
|
− | + | ["coal"] = {1,4,10}, |
|
− | + | ["stone-axe"] = {1,1,2}, |
|
− | + | ["rotten-flesh"] = {1,1,5}, |
|
− | + | ["emerald"] = {1,1,1}, |
|
− | + | ["wheat"] = {2,3,10}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["leather-tunic"] = {1,1,1}, |
|
− | + | ["golden-helmet"] = {1,1,1}, |
|
− | + | ["enchanted-fishing-rod"] = {1,1,5}, |
|
["buried-treasure-map"] = {1,1,5}, |
["buried-treasure-map"] = {1,1,5}, |
||
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
+ | |||
− | |||
− | + | ["village-armorer"] = { -- village\village_armorer.json |
|
− | + | header = "갑옷 제조인", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 갑옷 제조인", |
|
− | + | structure = "마을", |
|
− | + | container = "갑옷 제조인 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,5}, |
|
− | + | items = { |
|
− | + | ["iron-ingot"] = {1,3,2}, |
|
− | + | ["bread"] = {1,4,4}, |
|
− | + | ["iron-helmet"] = {1,1,1}, |
|
− | + | ["emerald"] = {1,1,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-butcher"] = { -- village\village_butcher.json |
|
− | + | header = "도살업자", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 도살업자", |
|
− | + | structure = "마을", |
|
− | + | container = "도살업자 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,5}, |
|
− | + | items = { |
|
− | + | ["emerald"] = {1,1,1}, |
|
− | + | ["raw-porkchop"] = {1,3,6}, |
|
− | + | ["wheat"] = {1,3,6}, |
|
− | + | ["raw-beef"] = {1,3,6}, |
|
− | + | ["raw-mutton"] = {1,3,6}, |
|
− | + | ["coal"] = {1,3,3} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-cartographer"] = { -- village\village_cartographer.json |
|
− | + | header = "지도 제작자", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 지도 제작자", |
|
− | + | structure = "마을", |
|
− | + | container = "지도 제작자 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,5}, |
|
− | + | items = { |
|
− | + | ["empty-map"] = {1,3,10}, |
|
− | + | ["paper"] = {1,5,15}, |
|
− | + | ["compass"] = {1,1,5}, |
|
− | + | ["bread"] = {1,4,15}, |
|
− | + | ["stick"] = {1,2,5} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,5}, |
|
− | + | items = { |
|
− | + | ["map"] = {1,3,10}, |
|
− | + | ["paper"] = {1,5,15}, |
|
− | + | ["compass"] = {1,1,5}, |
|
− | + | ["bread"] = {1,4,15}, |
|
− | + | ["oak-sapling"] = {1,2,5} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-fisherman"] = { -- village\village_fisher.json, Java-exclusive as of Java 1.14 / Bedrock 1.12 |
|
− | + | header = "어부", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 어부", |
|
− | + | structure = "마을", |
|
− | + | container = "어부 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,5}, |
|
− | + | items = { |
|
− | + | ["emerald"] = {1,1,1}, |
|
− | + | ["raw-cod"] = {1,3,2}, |
|
− | + | ["raw-salmon"] = {1,3,1}, |
|
− | + | ["water-bucket"] = {1,3,1}, |
|
− | + | ["barrel"] = {1,3,1}, |
|
− | + | ["wheat-seeds"] = {1,3,3}, |
|
− | + | ["coal"] = {1,3,2} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-fletcher"] = { -- village\village_fletcher.json |
|
− | + | header = "화살 제조인", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 화살 제조인", |
|
− | + | structure = "마을", |
|
− | + | container = "화살 제조인 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,5}, |
|
− | + | items = { |
|
− | + | ["emerald"] = {1,1,1}, |
|
− | + | ["arrow"] = {1,3,2}, |
|
− | + | ["feather"] = {1,3,6}, |
|
− | + | ["egg"] = {1,3,2}, |
|
− | + | ["flint"] = {1,3,6}, |
|
− | + | ["stick"] = {1,3,6} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-mason"] = { -- village\village_mason.json |
|
− | + | header = "석공", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 석공", |
|
− | + | structure = "마을", |
|
− | + | container = "석공 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,5}, |
|
− | + | items = { |
|
− | + | ["clay"] = {1,3,1}, |
|
− | + | ["flower-pot"] = {1,1,1}, |
|
− | + | ["stone"] = {1,1,2}, |
|
− | + | ["stone-bricks"] = {1,1,2}, |
|
− | + | ["bread"] = {1,4,4}, |
|
− | + | ["yellow-dye"] = {1,1,1}, |
|
− | + | ["smooth-stone"] = {1,1,1}, |
|
− | + | ["emerald"] = {1,1,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-shepherd"] = { -- village\village_shepherd.json |
|
− | + | header = "양치기", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 양치기", |
|
− | + | structure = "마을", |
|
− | + | container = "양치기 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,5}, |
|
− | + | items = { |
|
− | + | ["white-wool"] = {1,8,6}, |
|
− | + | ["black-wool"] = {1,3,3}, |
|
− | + | ["gray-wool"] = {1,3,2}, |
|
− | + | ["brown-wool"] = {1,3,2}, |
|
− | + | ["light-gray-wool"] = {1,3,2}, |
|
− | + | ["emerald"] = {1,1,1}, |
|
− | + | ["shears"] = {1,1,1}, |
|
− | + | ["wheat"] = {1,6,6} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-tannery"] = { -- village\village_tannery.json |
|
− | + | header = "가죽 세공인", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 가죽 세공인", |
|
− | + | structure = "마을", |
|
− | + | container = "가죽 세공인 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,5}, |
|
− | + | items = { |
|
− | + | ["leather"] = {1,3,1}, |
|
− | + | ["leather-tunic"] = {1,1,2}, |
|
− | + | ["leather-boots"] = {1,1,2}, |
|
− | + | ["leather-cap"] = {1,1,2}, |
|
− | + | ["bread"] = {1,4,5}, |
|
− | + | ["leather-pants"] = {1,1,2}, |
|
− | + | ["saddle"] = {1,1,1}, |
|
− | + | ["emerald"] = {1,4,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-temple"] = { -- village\village_temple.json |
|
− | + | header = "사원", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 사원", |
|
− | + | structure = "마을", |
|
− | + | container = "사원 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,8}, |
|
− | + | items = { |
|
− | + | ["redstone"] = {1,4,2}, |
|
− | + | ["bread"] = {1,4,7}, |
|
− | + | ["rotten-flesh"] = {1,4,7}, |
|
− | + | ["lapis-lazuli"] = {1,4,1}, |
|
− | + | ["gold-ingot"] = {1,4,1}, |
|
− | + | ["emerald"] = {1,4,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-toolsmith"] = { -- village\village_toolsmith.json |
|
− | + | header = "도구 대장장이", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 도구 대장장이", |
|
− | + | structure = "마을", |
|
− | + | container = "도구 대장장이 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,8}, |
|
− | + | items = { |
|
− | + | ["diamond"] = {1,3,1}, |
|
− | + | ["iron-ingot"] = {1,5,5}, |
|
− | + | ["gold-ingot"] = {1,3,1}, |
|
− | + | ["bread"] = {1,3,15}, |
|
− | + | ["iron-pickaxe"] = {1,1,5}, |
|
− | + | ["coal"] = {1,3,1}, |
|
− | + | ["stick"] = {1,3,20}, |
|
− | + | ["iron-shovel"] = {1,1,5} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-weaponsmith"] = { -- village\village_weaponsmith.json |
|
− | + | header = "무기 대장장이", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "[[마을]] 무기 대장장이", |
|
− | + | structure = "마을", |
|
− | + | container = "무기 대장장이 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,8}, |
|
− | + | items = { |
|
− | + | ["diamond"] = {1,3,3}, |
|
− | + | ["iron-ingot"] = {1,5,10}, |
|
− | + | ["gold-ingot"] = {1,3,5}, |
|
− | + | ["bread"] = {1,3,15}, |
|
− | + | ["apple"] = {1,3,15}, |
|
− | + | ["iron-pickaxe"] = {1,1,5}, |
|
− | + | ["iron-sword"] = {1,1,5}, |
|
− | + | ["iron-chestplate"] = {1,1,5}, |
|
− | + | ["iron-helmet"] = {1,1,5}, |
|
− | + | ["iron-leggings"] = {1,1,5}, |
|
− | + | ["iron-boots"] = {1,1,5}, |
|
− | + | ["obsidian"] = {3,7,5}, |
|
− | + | ["oak-sapling"] = {3,7,5}, |
|
− | + | ["saddle"] = {1,1,3}, |
|
− | + | ["iron-horse-armor"] = {1,1,1}, |
|
− | + | ["golden-horse-armor"] = {1,1,1}, |
|
− | + | ["diamond-horse-armor"] = {1,1,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
+ | |||
− | |||
− | + | ["village-desert-house"] = { -- village\village_desert_house.json |
|
− | + | header = "사막 집", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "사막 [[마을]] 집", |
|
− | + | structure = "마을", |
|
− | + | container = "사막 마을 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,8}, |
|
− | + | items = { |
|
− | + | ["clay"] = {1,1,1}, |
|
− | + | ["green-dye"] = {1,1,1}, |
|
− | + | ["cactus"] = {1,4,10}, |
|
− | + | ["wheat"] = {1,7,10}, |
|
− | + | ["bread"] = {1,4,10}, |
|
− | + | ["book"] = {1,1,1}, |
|
− | + | ["dead-bush"] = {1,3,2}, |
|
− | + | ["emerald"] = {1,3,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-plains-house"] = { -- village\village_plains_house.json |
|
− | + | header = "평원 집", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "평원 [[마을]] 집", |
|
− | + | structure = "마을", |
|
− | + | container = "평원 집 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,8}, |
|
− | + | items = { |
|
− | + | ["gold-nugget"] = {1,3,1}, |
|
− | + | ["dandelion"] = {1,1,2}, |
|
− | + | ["poppy"] = {1,1,1}, |
|
− | + | ["potato"] = {1,7,10}, |
|
− | + | ["bread"] = {1,4,10}, |
|
− | + | ["apple"] = {1,5,10}, |
|
− | + | ["book"] = {1,1,1}, |
|
− | + | ["feather"] = {1,1,1}, |
|
− | + | ["emerald"] = {1,4,2}, |
|
− | + | ["oak-sapling"] = {1,2,5} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-savanna-house"] = { -- village\village_savanna_house.json |
|
− | + | header = "사바나 집", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "사바나 [[마을]] 집", |
|
− | + | structure = "마을", |
|
− | + | container = "사바나 집 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,8}, |
|
− | + | items = { |
|
− | + | ["gold-nugget"] = {1,3,1}, |
|
− | + | ["grass"] = {1,1,5}, |
|
− | + | ["tall-grass"] = {1,1,5}, |
|
− | + | ["bread"] = {1,4,10}, |
|
− | + | ["wheat-seeds"] = {1,5,10}, |
|
− | + | ["emerald"] = {1,4,2}, |
|
− | + | ["acacia-sapling"] = {1,2,10}, |
|
− | + | ["saddle"] = {1,1,1}, |
|
− | + | ["torch"] = {1,2,1}, |
|
− | + | ["bucket"] = {1,1,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-snowy-house"] = { -- village\village_snowy_house.json |
|
− | + | header = "눈 덮인 집", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "눈 덮인 [[마을]] 집", |
|
− | + | structure = "마을", |
|
− | + | container = "눈 덮인 집 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,8}, |
|
− | + | items = { |
|
− | + | ["blue-ice"] = {1,1,1}, |
|
− | + | ["snow-block"] = {1,1,4}, |
|
− | + | ["potato"] = {1,7,10}, |
|
− | + | ["bread"] = {1,4,10}, |
|
− | + | ["beetroot-seeds"] = {1,5,10}, |
|
− | + | ["beetroot-soup"] = {1,1,1}, |
|
− | + | ["furnace"] = {1,1,1}, |
|
− | + | ["emerald"] = {1,4,1}, |
|
− | + | ["snowball"] = {1,7,10}, |
|
− | + | ["coal"] = {1,4,5} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["village-taiga-house"] = { -- village\village_taiga_house.json |
|
− | + | header = "타이가 집", |
|
− | + | superheader = "[[마을]]", |
|
− | + | link = "타이가 [[마을]] 집", |
|
− | + | structure = "마을", |
|
− | + | container = "타이가 집 상자", |
|
− | + | structID = "village", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,8}, |
|
− | + | items = { |
|
− | + | ["iron-nugget"] = {1,5,1}, |
|
− | + | ["fern"] = {1,1,2}, |
|
− | + | ["large-fern"] = {1,1,2}, |
|
− | + | ["potato"] = {1,7,10}, |
|
− | + | ["sweet-berries"] = {1,7,5}, |
|
− | + | ["bread"] = {1,4,10}, |
|
− | + | ["pumpkin-seeds"] = {1,5,5}, |
|
− | + | ["pumpkin-pie"] = {1,1,1}, |
|
− | + | ["emerald"] = {1,4,2}, |
|
− | + | ["spruce-sapling"] = {1,5,5}, |
|
− | + | ["spruce-sign"] = {1,1,1}, |
|
− | + | ["spruce-log"] = {1,5,10} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {3,8}, |
|
− | + | items = { |
|
− | + | ["iron-nugget"] = {1,5,1}, |
|
− | + | ["fern"] = {1,1,2}, |
|
− | + | ["large-fern"] = {1,1,2}, |
|
− | + | ["potato"] = {1,7,10}, |
|
− | + | ["bread"] = {1,4,10}, |
|
− | + | ["pumpkin-seeds"] = {1,5,5}, |
|
− | + | ["pumpkin-pie"] = {1,1,1}, |
|
− | + | ["emerald"] = {1,4,2}, |
|
− | + | ["spruce-sapling"] = {1,5,5}, |
|
− | + | ["oak-sign"] = {1,1,1}, |
|
− | + | ["spruce-log"] = {1,5,10} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
+ | |||
− | |||
− | + | ["stronghold-altar"] = { -- stronghold_corridor.json |
|
− | + | header = "제단", |
|
− | + | superheader = "[[요새]]", |
|
− | + | link = "[[요새]] 제단", |
|
− | + | structure = "요새", |
|
− | + | container = "제단 상자", |
|
− | + | structID = "stronghold", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,3}, |
|
− | + | items = { |
|
− | + | ["ender-pearl"] = {1,1,10}, |
|
− | + | ["diamond"] = {1,3,3}, |
|
− | + | ["iron-ingot"] = {1,5,10}, |
|
− | + | ["gold-ingot"] = {1,3,5}, |
|
− | + | ["redstone"] = {4,9,5}, |
|
− | + | ["bread"] = {1,3,15}, |
|
− | + | ["apple"] = {1,3,15}, |
|
− | + | ["iron-pickaxe"] = {1,1,5}, |
|
− | + | ["iron-sword"] = {1,1,5}, |
|
− | + | ["iron-chestplate"] = {1,1,5}, |
|
− | + | ["iron-helmet"] = {1,1,5}, |
|
− | + | ["iron-leggings"] = {1,1,5}, |
|
− | + | ["iron-boots"] = {1,1,5}, |
|
− | + | ["golden-apple"] = {1,1,1}, |
|
− | + | ["saddle"] = {1,1,1}, |
|
− | + | ["iron-horse-armor"] = {1,1,1}, |
|
− | + | ["golden-horse-armor"] = {1,1,1}, |
|
− | + | ["diamond-horse-armor"] = {1,1,1}, |
|
− | + | ["enchanted-book"] = {1,1,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,3}, |
|
− | + | items = { |
|
− | + | ["ender-pearl"] = {1,1,50}, |
|
− | + | ["emerald"] = {1,3,15}, |
|
− | + | ["diamond"] = {1,3,15}, |
|
− | + | ["iron-ingot"] = {1,5,50}, |
|
− | + | ["gold-ingot"] = {1,3,25}, |
|
− | + | ["redstone"] = {4,9,25}, |
|
− | + | ["bread"] = {1,3,75}, |
|
− | + | ["apple"] = {1,3,75}, |
|
− | + | ["iron-pickaxe"] = {1,1,25}, |
|
− | + | ["iron-sword"] = {1,1,25}, |
|
− | + | ["iron-chestplate"] = {1,1,25}, |
|
− | + | ["iron-helmet"] = {1,1,25}, |
|
− | + | ["iron-leggings"] = {1,1,25}, |
|
− | + | ["iron-boots"] = {1,1,25}, |
|
− | + | ["golden-apple"] = {1,1,5}, |
|
− | + | ["saddle"] = {1,1,5}, |
|
− | + | ["iron-horse-armor"] = {1,1,5}, |
|
− | + | ["golden-horse-armor"] = {1,1,5}, |
|
− | + | ["diamond-horse-armor"] = {1,1,5}, |
|
− | + | ["enchanted-book"] = {1,1,6}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["stronghold-library"] = { -- stronghold_library.json |
|
− | + | header = "도서관", |
|
− | + | superheader = "[[요새]]", |
|
− | + | link = "[[요새]] 도서관", |
|
− | + | structure = "요새", |
|
− | + | container = "도서관 상자", |
|
− | + | structID = "stronghold", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,10}, |
|
− | + | items = { |
|
− | + | ["book"] = {1,3,20}, |
|
− | + | ["paper"] = {2,7,20}, |
|
− | + | ["empty-map"] = {1,1,1}, |
|
− | + | ["compass"] = {1,1,1}, |
|
− | + | ["enchanted-book"] = {1,1,10}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,10}, |
|
− | + | items = { |
|
− | + | ["book"] = {1,3,100}, |
|
− | + | ["paper"] = {2,7,100}, |
|
− | + | ["map"] = {1,1,5}, |
|
− | + | ["compass"] = {1,1,5}, |
|
− | + | ["enchanted-book"] = {1,1,60}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["stronghold-storeroom"] = { -- stronghold_crossing.json |
|
− | + | header = "저장실", |
|
− | + | superheader = "[[요새]]", |
|
− | + | link = "[[요새]] 저장실", |
|
− | + | structure = "요새", |
|
− | + | container = "저장실 상자", |
|
− | + | structID = "stronghold", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,4}, |
|
− | + | items = { |
|
− | + | ["iron-ingot"] = {1,5,10}, |
|
− | + | ["gold-ingot"] = {1,3,5}, |
|
− | + | ["redstone"] = {4,9,5}, |
|
− | + | ["coal"] = {3,8,10}, |
|
− | + | ["bread"] = {1,3,15}, |
|
− | + | ["apple"] = {1,3,15}, |
|
− | + | ["iron-pickaxe"] = {1,1,1}, |
|
− | + | ["enchanted-book"] = {1,1,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,4}, |
|
− | + | items = { |
|
− | + | ["iron-ingot"] = {1,5,50}, |
|
− | + | ["gold-ingot"] = {1,3,25}, |
|
− | + | ["redstone"] = {4,9,25}, |
|
− | + | ["coal"] = {3,8,50}, |
|
− | + | ["bread"] = {1,3,75}, |
|
− | + | ["apple"] = {1,3,75}, |
|
− | + | ["iron-pickaxe"] = {1,1,5}, |
|
− | + | ["enchanted-book"] = {1,1,6}, |
|
− | + | ["ink-sac"] = {1,3,75}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["bonus"] = { -- spawn_bonus_chest.json |
|
− | + | header = "[[상자#보너스 상자|보너스]]", |
|
− | + | link = "[[상자#보너스 상자|보너스]]", |
|
− | + | structure = "보너스 상자", |
|
− | + | container = "", |
|
− | + | structID = "day", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["stone-axe"] = {1,1,1}, |
|
− | + | ["wooden-axe"] = {1,1,3}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["stone-pickaxe"] = {1,1,1}, |
|
− | + | ["wooden-pickaxe"] = {1,1,3} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {3,3}, |
|
− | + | items = { |
|
− | + | ["apple"] = {1,2,5}, |
|
− | + | ["bread"] = {1,2,3}, |
|
− | + | ["raw-salmon"] = {1,2,3}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {4,4}, |
|
− | + | items = { |
|
− | + | ["stick"] = {1,12,10}, |
|
− | + | ["oak-planks"] = {1,12,10}, |
|
− | + | ["oak-log"] = {1,3,3}, |
|
− | + | ["spruce-log"] = {1,3,3}, |
|
− | + | ["birch-log"] = {1,3,3}, |
|
− | + | ["jungle-log"] = {1,3,3}, |
|
− | + | ["acacia-log"] = {1,3,3}, |
|
− | + | ["dark-oak-log"] = {1,3,3}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["stone-axe"] = {1,1,1}, |
|
− | + | ["wooden-axe"] = {1,1,3}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["stone-pickaxe"] = {1,1,1}, |
|
− | + | ["wooden-pickaxe"] = {1,1,3} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["apple"] = {1,2,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["bread"] = {1,2,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["raw-salmon"] = {1,2,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["stick"] = {1,12,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["oak-planks"] = {1,12,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["dark-oak-log"] = {1,3,1}, |
|
− | + | ["acacia-log"] = {1,3,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["oak-log"] = {1,3,1}, |
|
− | + | ["spruce-log"] = {1,3,1}, |
|
− | + | ["birch-log"] = {1,3,1}, |
|
− | + | ["jungle-log"] = {1,3,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["potato"] = {1,2,3}, |
|
− | + | ["carrot"] = {1,2,3}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["oak-sapling"] = {4,4,2}, |
|
− | + | ["spruce-sapling"] = {4,4,2}, |
|
− | + | ["birch-sapling"] = {4,4,2}, |
|
− | + | ["jungle-sapling"] = {4,4,2}, |
|
− | + | ["dark-oak-sapling"] = {4,4,2}, |
|
− | + | ["acacia-sapling"] = {4,4,2}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["melon-seeds"] = {1,2,3}, |
|
− | + | ["pumpkin-seeds"] = {1,2,3}, |
|
− | + | ["beetroot-seeds"] = {1,2,3}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["cactus"] = {1,2,3}, |
|
− | + | ["cocoa-beans"] = {1,2,3}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["brown-mushroom"] = {1,2,2}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["dungeon"] = { -- simple_dungeon.json |
|
− | + | header = "[[던전]]", |
|
− | + | link = "[[던전]]", |
|
− | + | structure = "던전", |
|
− | + | container = "", |
|
− | + | structID = "Dungeon", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,3}, |
|
− | + | items = { |
|
− | + | ["saddle"] = {1,1,20}, |
|
− | + | ["golden-apple"] = {1,1,15}, |
|
− | + | ["enchanted-golden-apple"] = {1,1,2}, |
|
− | + | ["disc-13"] = {1,1,15}, |
|
− | + | ["disc-cat"] = {1,1,15}, |
|
− | + | ["name-tag"] = {1,1,20}, |
|
− | + | ["golden-horse-armor"] = {1,1,10}, |
|
− | + | ["iron-horse-armor"] = {1,1,15}, |
|
− | + | ["diamond-horse-armor"] = {1,1,5}, |
|
− | + | ["enchanted-book-rnd"] = {1,1,10}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,4}, |
|
− | + | items = { |
|
− | + | ["iron-ingot"] = {1,4,10}, |
|
− | + | ["gold-ingot"] = {1,4,5}, |
|
− | + | ["bread"] = {1,1,20}, |
|
− | + | ["wheat"] = {1,4,20}, |
|
− | + | ["bucket"] = {1,1,10}, |
|
− | + | ["redstone"] = {1,4,15}, |
|
− | + | ["coal"] = {1,4,15}, |
|
− | + | ["melon-seeds"] = {2,4,10}, |
|
− | + | ["pumpkin-seeds"] = {2,4,10}, |
|
− | + | ["beetroot-seeds"] = {2,4,10}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {3,3}, |
|
− | + | items = { |
|
− | + | ["bone"] = {1,8,10}, |
|
− | + | ["gunpowder"] = {1,8,10}, |
|
− | + | ["rotten-flesh"] = {1,8,10}, |
|
− | + | ["string"] = {1,8,10}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["mineshaft"] = { -- abandoned_mineshaft.json |
|
− | + | chest_type = "minecart with chest", |
|
− | + | header = "[[폐광]]", |
|
− | + | link = "[[폐광]]", |
|
− | + | structure = "폐광", |
|
− | + | container = "", |
|
− | + | structID = "abandoned-mineshaft", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["golden-apple"] = {1,1,20}, |
|
− | + | ["enchanted-golden-apple"] = {1,1,1}, |
|
− | + | ["name-tag"] = {1,1,30}, |
|
− | + | ["enchanted-book-rnd"] = {1,1,10}, |
|
− | + | ["iron-pickaxe"] = {1,1,5}, |
|
− | + | ["empty"] = {1,1,5}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {2,4}, |
|
− | + | items = { |
|
− | + | ["iron-ingot"] = {1,5,10}, |
|
− | + | ["gold-ingot"] = {1,3,5}, |
|
− | + | ["redstone"] = {4,9,5}, |
|
− | + | ["lapis-lazuli"] = {4,9,5}, |
|
− | + | ["diamond"] = {1,2,3}, |
|
− | + | ["coal"] = {3,8,10}, |
|
− | + | ["bread"] = {1,3,15}, |
|
− | + | ["melon-seeds"] = {2,4,10}, |
|
− | + | ["pumpkin-seeds"] = {2,4,10}, |
|
− | + | ["beetroot-seeds"] = {2,4,10}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {3,3}, |
|
− | + | items = { |
|
− | + | ["rail"] = {4,8,20}, |
|
− | + | ["powered-rail"] = {1,4,5}, |
|
− | + | ["detector-rail"] = {1,4,5}, |
|
− | + | ["activator-rail"] = {1,4,5}, |
|
− | + | ["torch"] = {1,16,15}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["nether-fortress"] = { -- nether_bridge.json |
|
− | + | header = "[[네더 요새|요새]]", |
|
− | + | link = "[[네더 요새|요새]]", |
|
− | + | structure = "네더 요새", |
|
− | + | container = "", |
|
− | + | structID = "nether-fortress", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,4}, |
|
− | + | items = { |
|
− | + | ["diamond"] = {1,3,5}, |
|
− | + | ["iron-ingot"] = {1,5,5}, |
|
− | + | ["gold-ingot"] = {1,3,15}, |
|
− | + | ["golden-sword"] = {1,1,5}, |
|
− | + | ["golden-chestplate"] = {1,1,5}, |
|
− | + | ["flint-and-steel"] = {1,1,5}, |
|
− | + | ["nether-wart"] = {3,7,5}, |
|
− | + | ["saddle"] = {1,1,10}, |
|
− | + | ["golden-horse-armor"] = {1,1,8}, |
|
− | + | ["iron-horse-armor"] = {1,1,5}, |
|
− | + | ["diamond-horse-armor"] = {1,1,3}, |
|
− | + | ["obsidian"] = {2,4,2}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["desert-temple"] = { -- desert_pyramid.json |
|
− | + | header = "[[사막 사원]]", |
|
− | + | link = "[[사막 사원]]", |
|
− | + | structure = "사막 사원", |
|
− | + | container = "", |
|
− | + | structID = "desert-temple", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,4}, |
|
− | + | items = { |
|
− | + | ["diamond"] = {1,3,5}, |
|
− | + | ["iron-ingot"] = {1,5,15}, |
|
− | + | ["gold-ingot"] = {2,7,15}, |
|
− | + | ["emerald"] = {1,3,15}, |
|
− | + | ["bone"] = {4,6,25}, |
|
− | + | ["spider-eye"] = {1,3,25}, |
|
− | + | ["rotten-flesh"] = {3,7,25}, |
|
− | + | ["saddle"] = {1,1,20}, |
|
− | + | ["iron-horse-armor"] = {1,1,15}, |
|
− | + | ["golden-horse-armor"] = {1,1,10}, |
|
− | + | ["diamond-horse-armor"] = {1,1,5}, |
|
− | + | ["enchanted-book-rnd"] = {1,1,20}, |
|
− | + | ["golden-apple"] = {1,1,20}, |
|
− | + | ["enchanted-golden-apple"] = {1,1,2}, |
|
− | + | ["empty"] = {1,1,15}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {4,4}, |
|
− | + | items = { |
|
− | + | ["bone"] = {1,8,10}, |
|
− | + | ["gunpowder"] = {1,8,10}, |
|
− | + | ["rotten-flesh"] = {1,8,10}, |
|
− | + | ["string"] = {1,8,10}, |
|
− | + | ["sand"] = {1,8,10}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["jungle-temple"] = { -- jungle_temple.json |
|
− | + | header = "[[정글 사원]]", |
|
− | + | link = "[[정글 사원]]", |
|
− | + | structure = "정글 사원", |
|
− | + | container = "상자", |
|
− | + | structID = "jungle-temple", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,6}, |
|
− | + | items = { |
|
− | + | ["diamond"] = {1,3,3}, |
|
− | + | ["iron-ingot"] = {1,5,10}, |
|
− | + | ["gold-ingot"] = {2,7,15}, |
|
− | + | ["emerald"] = {1,3,2}, |
|
− | + | ["bone"] = {4,6,20}, |
|
− | + | ["bamboo"] = {1,3,15}, |
|
− | + | ["rotten-flesh"] = {3,7,16}, |
|
− | + | ["saddle"] = {1,1,3}, |
|
− | + | ["iron-horse-armor"] = {1,1,1}, |
|
− | + | ["golden-horse-armor"] = {1,1,1}, |
|
− | + | ["diamond-horse-armor"] = {1,1,1}, |
|
− | + | ["enchanted-book"] = {1,1,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,6}, |
|
− | + | items = { |
|
− | + | ["diamond"] = {1,3,15}, |
|
− | + | ["iron-ingot"] = {1,5,50}, |
|
− | + | ["gold-ingot"] = {2,7,75}, |
|
− | + | ["emerald"] = {1,3,10}, |
|
− | + | ["bone"] = {4,6,100}, |
|
− | + | ["rotten-flesh"] = {3,7,80}, |
|
− | + | ["bamboo"] = {1,3,75}, |
|
− | + | ["saddle"] = {1,1,15}, |
|
− | + | ["iron-horse-armor"] = {1,1,5}, |
|
− | + | ["golden-horse-armor"] = {1,1,5}, |
|
− | + | ["diamond-horse-armor"] = {1,1,5}, |
|
− | + | ["enchanted-book"] = {1,1,6} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsBedrockUpcoming = {}, |
|
+ | }, |
||
− | }, |
||
− | + | ["jungle-temple-dispenser"] = { -- jungle_temple_dispenser.json |
|
− | + | chest_type = "dispenser", |
|
− | + | link = "[[정글 사원]]", |
|
− | + | structure = "정글 사원", |
|
− | + | container = "발사기", |
|
− | + | structID = "jungle-temple", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {1,2}, |
|
− | + | items = { |
|
− | + | ["arrow"] = {2,7,30} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,2}, |
|
− | + | items = { |
|
− | + | ["arrow"] = {2,7,30} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["end-city"] = { -- end_city_treasure.json |
|
− | + | header = "[[엔드 시티]]", |
|
− | + | link = "[[엔드 시티]]", |
|
− | + | structure = "엔드 시티", |
|
− | + | container = "", |
|
− | + | structID = "end-city", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,6}, |
|
− | + | items = { |
|
− | + | ["diamond"] = {2,7,5}, |
|
− | + | ["iron-ingot"] = {4,8,10}, |
|
− | + | ["gold-ingot"] = {2,7,15}, |
|
− | + | ["emerald"] = {2,6,2}, |
|
− | + | ["beetroot-seeds"] = {1,10,5}, |
|
− | + | ["saddle"] = {1,1,3}, |
|
− | + | ["iron-horse-armor"] = {1,1,1}, |
|
− | + | ["golden-horse-armor"] = {1,1,1}, |
|
− | + | ["diamond-horse-armor"] = {1,1,1}, |
|
− | + | ["level-enchanted-diamond-sword"] = {1,1,3}, |
|
− | + | ["level-enchanted-diamond-boots"] = {1,1,3}, |
|
− | + | ["level-enchanted-diamond-chestplate"] = {1,1,3}, |
|
− | + | ["level-enchanted-diamond-leggings"] = {1,1,3}, |
|
− | + | ["level-enchanted-diamond-helmet"] = {1,1,3}, |
|
− | + | ["level-enchanted-diamond-pickaxe"] = {1,1,3}, |
|
− | + | ["level-enchanted-diamond-shovel"] = {1,1,3}, |
|
− | + | ["level-enchanted-iron-sword"] = {1,1,3}, |
|
− | + | ["level-enchanted-iron-boots"] = {1,1,3}, |
|
− | + | ["level-enchanted-iron-chestplate"] = {1,1,3}, |
|
− | + | ["level-enchanted-iron-leggings"] = {1,1,3}, |
|
− | + | ["level-enchanted-iron-helmet"] = {1,1,3}, |
|
− | + | ["level-enchanted-iron-pickaxe"] = {1,1,3}, |
|
− | + | ["level-enchanted-iron-shovel"] = {1,1,3}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["igloo"] = { |
|
− | + | header = "[[이글루]]", |
|
− | + | link = "[[이글루]]", |
|
− | + | structure = "이글루", |
|
− | + | container = "", |
|
− | + | structID = "igloo", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {2,8}, |
|
− | + | items = { |
|
− | + | ["apple"] = {1,3,15}, |
|
− | + | ["coal"] = {1,4,15}, |
|
− | + | ["gold-nugget"] = {1,3,10}, |
|
− | + | ["stone-axe"] = {1,1,2}, |
|
− | + | ["rotten-flesh"] = {1,1,10}, |
|
− | + | ["emerald"] = {1,1,1}, |
|
− | + | ["wheat"] = {2,3,10} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,1}, |
|
− | + | items = { |
|
− | + | ["golden-apple"] = {1,1,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
− | + | ["pillager-outpost"] = { |
|
− | + | header = "[[약탈자 전초기지]]", |
|
− | + | link = "[[약탈자 전초기지]]", |
|
− | + | structure = "약탈자 전초기지", |
|
− | + | container = "", |
|
− | + | structID = "pillager-outpost", |
|
− | + | poolsJava = { |
|
+ | { |
||
− | { |
||
− | + | rolls = {0,1}, |
|
− | + | items = { |
|
− | + | ["crossbow"] = {1,1,1}, |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {2,3}, |
|
− | + | items = { |
|
− | + | ["wheat"] = {3,5,7}, |
|
− | + | ["potato"] = {2,5,5}, |
|
− | + | ["carrot"] = {3,5,5} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {1,3}, |
|
− | + | items = { |
|
− | + | ["dark-oak-log"] = {2,3,1} |
|
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
+ | { |
||
− | { |
||
− | + | rolls = {2,3}, |
|
− | + | items = { |
|
− | + | ["bottle-o'-enchanting"] = {1,1,7}, |
|
− | + | ["string"] = {1,6,4}, |
|
− | + | ["arrow"] = {2,7,4}, |
|
− | + | ["tripwire-hook"] = {1,3,3}, |
|
− | + | ["iron-ingot"] = {1,3,3}, |
|
− | + | ["enchanted-book-rnd"] = {1,1,1} |
|
+ | } |
||
− | } |
||
+ | } |
||
− | } |
||
+ | }, |
||
− | }, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = {}, |
|
− | + | poolsBedrockUpcoming = {} |
|
+ | }, |
||
− | }, |
||
["bastion-bridge"] = { -- bastion_bridge.json |
["bastion-bridge"] = { -- bastion_bridge.json |
||
− | header = "[[ |
+ | header = "[[보루]] 다리", |
− | link = "[[ |
+ | link = "[[보루 잔해|보루 잔해 다리]]", |
− | structure = " |
+ | structure = "보루 잔해", |
− | container = " |
+ | container = "다리 상자", |
structID = "bastion-remnant", |
structID = "bastion-remnant", |
||
− | poolsJava = { |
+ | poolsJava = { |
− | poolsJavaUpcoming = { |
||
{ |
{ |
||
rolls = {1,1}, |
rolls = {1,1}, |
||
1,731번째 줄: | 1,730번째 줄: | ||
} |
} |
||
}, |
}, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
{ |
{ |
||
− | rolls = { |
+ | rolls = {1,1}, |
items = { |
items = { |
||
− | [" |
+ | ["lodestone"] = {1,1,1}, |
− | ["damaged-random-enchanted-netherite-axe"] = {1,1,45}, |
||
− | ["ancient-debris"] = {1,1,10}, |
||
} |
} |
||
}, |
}, |
||
1,744번째 줄: | 1,741번째 줄: | ||
rolls = {1,2}, |
rolls = {1,2}, |
||
items = { |
items = { |
||
− | ["damaged- |
+ | ["damaged-random-enchanted-crossbow"] = {1,1,1}, |
− | [" |
+ | ["arrow"] = {2,12,1}, |
− | [" |
+ | ["gilded-blackstone"] = {5,8,1}, |
− | [" |
+ | ["crying-obsidian"] = {3,8,1}, |
+ | ["block-of-gold"] = {1,1,1}, |
||
− | } |
||
+ | ["gold-ingot"] = {2,8,1}, |
||
− | }, |
||
+ | ["iron-ingot"] = {2,8,1}, |
||
− | { |
||
− | rolls = {2,3}, |
||
− | items = { |
||
− | ["crying-obsidian"] = {1,5,1}, |
||
− | ["spectral-arrow"] = {3,20,1}, |
||
["golden-sword"] = {1,1,1}, |
["golden-sword"] = {1,1,1}, |
||
− | ["golden-chestplate"] = {1,1,1}, |
+ | ["random-enchanted-golden-chestplate"] = {1,1,1}, |
− | ["golden-helmet"] = {1,1,1}, |
+ | ["random-enchanted-golden-helmet"] = {1,1,1}, |
− | ["golden-leggings"] = {1,1,1}, |
+ | ["random-enchanted-golden-leggings"] = {1,1,1}, |
["random-enchanted-golden-boots"] = {1,1,1}, |
["random-enchanted-golden-boots"] = {1,1,1}, |
||
− | ["iron-nugget"] = {2,6,1}, |
||
− | ["gold-nugget"] = {2,6,1}, |
||
} |
} |
||
}, |
}, |
||
{ |
{ |
||
− | rolls = { |
+ | rolls = {2,4}, |
items = { |
items = { |
||
− | [" |
+ | ["string"] = {1,6,1}, |
− | [" |
+ | ["leather"] = {1,3,1}, |
+ | ["arrow"] = {5,17,1}, |
||
− | ["string"] = {1,6,25}, --String is here twice with different chances, table won't show this. |
||
− | [" |
+ | ["iron-nugget"] = {2,6,1}, |
− | [" |
+ | ["gold-nugget"] = {2,6,1} |
− | ["string"] = {3,8,20}, --String is here twice with different chances, table won't show this. |
||
} |
} |
||
} |
} |
||
− | } |
+ | }, |
+ | poolsBedrockUpcoming = {} |
||
}, |
}, |
||
["bastion-hoglin-stable"] = { -- bastion_hoglin_stable.json |
["bastion-hoglin-stable"] = { -- bastion_hoglin_stable.json |
||
− | header = "[[ |
+ | header = "[[보루]] 호글린 마구간", |
− | link = "[[ |
+ | link = "[[보루 잔해|보루 잔해 호글린 마구간]]", |
− | structure = " |
+ | structure = "보루 잔해", |
− | container = " |
+ | container = "호글린 마구간 상자", |
structID = "bastion-remnant", |
structID = "bastion-remnant", |
||
− | poolsJava = { |
+ | poolsJava = { |
− | poolsJavaUpcoming = { |
||
{ |
{ |
||
rolls = {1,1}, |
rolls = {1,1}, |
||
1,815번째 줄: | 1,805번째 줄: | ||
} |
} |
||
}, |
}, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
{ |
{ |
||
− | rolls = { |
+ | rolls = {1,1}, |
items = { |
items = { |
||
− | ["damaged-random-enchanted- |
+ | ["damaged-random-enchanted-diamond-shovel"] = {1,1,5}, |
− | [" |
+ | ["netherite-scrap"] = {1,1,2}, |
+ | ["ancient-debris"] = {1,1,3}, |
||
− | } |
||
− | }, |
+ | ["saddle"] = {1,1,10}, |
+ | ["block-of-gold"] = {2,4,25}, |
||
− | { |
||
− | + | ["random-enchanted-golden-hoe"] = {1,1,15}, |
|
− | + | ["empty"] = {1,1,45} |
|
− | ["block-of-gold"] = {2,4,15}, |
||
− | ["golden-hoe"] = {1,1,15}, |
||
− | ["saddle"] = {1,1,35}, |
||
− | ["soul-sand"] = {2,7,35}, |
||
− | ["crimson-nylium"] = {2,7,20}, |
||
} |
} |
||
}, |
}, |
||
1,837번째 줄: | 1,822번째 줄: | ||
rolls = {3,4}, |
rolls = {3,4}, |
||
items = { |
items = { |
||
− | [" |
+ | ["glowstone"] = {1,5,1}, |
− | [" |
+ | ["gilded-blackstone"] = {1,5,1}, |
+ | ["soul-sand"] = {2,7,1}, |
||
+ | ["crimson-nylium"] = {2,7,1}, |
||
["gold-nugget"] = {2,8,1}, |
["gold-nugget"] = {2,8,1}, |
||
− | ["string"] = {1,6,1}, --String is here twice with different chances, table won't show this. |
||
["leather"] = {1,3,1}, |
["leather"] = {1,3,1}, |
||
− | ["arrow"] = { |
+ | ["arrow"] = {5,17,1}, |
− | ["string"] = {3,8,1}, |
+ | ["string"] = {3,8,1}, |
["raw-porkchop"] = {2,5,1}, |
["raw-porkchop"] = {2,5,1}, |
||
["cooked-porkchop"] = {2,5,1}, |
["cooked-porkchop"] = {2,5,1}, |
||
− | ["crimson-fungus"] = {2,7, |
+ | ["crimson-fungus"] = {2,7,1}, |
− | ["crimson-roots"] = {2,7, |
+ | ["crimson-roots"] = {2,7,1} |
} |
} |
||
} |
} |
||
− | } |
+ | }, |
+ | poolsBedrockUpcoming = {} |
||
}, |
}, |
||
− | ["bastion- |
+ | ["bastion-generic"] = { -- bastion_other.json |
− | header = "[[ |
+ | header = "[[보루]]", |
− | link = "[[ |
+ | link = "[[보루 잔해|보루 잔해]]", |
− | structure = " |
+ | structure = "보루 잔해", |
− | container = " |
+ | container = "일반 상자", |
structID = "bastion-remnant", |
structID = "bastion-remnant", |
||
− | poolsJava = { |
+ | poolsJava = { |
− | poolsJavaUpcoming = { |
||
{ |
{ |
||
rolls = {1,1}, |
rolls = {1,1}, |
||
1,867번째 줄: | 1,853번째 줄: | ||
["netherite-scrap"] = {1,1,2}, |
["netherite-scrap"] = {1,1,2}, |
||
["spectral-arrow"] = {2,15,6}, |
["spectral-arrow"] = {2,15,6}, |
||
− | [" |
+ | ["snout-banner-pattern"] = {1,1,5}, |
["disc-pigstep"] = {1,1,3}, |
["disc-pigstep"] = {1,1,3}, |
||
["enchanted-book-rnd-soul-speed"] = {1,1,10}, |
["enchanted-book-rnd-soul-speed"] = {1,1,10}, |
||
1,905번째 줄: | 1,891번째 줄: | ||
} |
} |
||
}, |
}, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
{ |
{ |
||
− | rolls = { |
+ | rolls = {1,1}, |
items = { |
items = { |
||
− | ["damaged- |
+ | ["damaged-random-enchanted-crossbow"] = {1,1,12}, |
− | ["ancient-debris"] = {1,1, |
+ | ["ancient-debris"] = {1,1,2}, |
− | ["netherite-scrap"] = {1,1, |
+ | ["netherite-scrap"] = {1,1,2}, |
− | [" |
+ | ["arrow"] = {2,15,16}, |
− | [" |
+ | ["snout-banner-pattern"] = {1,1,5}, |
+ | ["disc-pigstep"] = {1,1,3}, |
||
+ | ["enchanted-book-rnd-soul-speed"] = {1,1,10}, |
||
+ | ["empty"] = {1,1,50}, |
||
} |
} |
||
}, |
}, |
||
{ |
{ |
||
− | rolls = { |
+ | rolls = {2,2}, |
items = { |
items = { |
||
− | [" |
+ | ["soul-speed-enchanted-golden-boots"] = {1,1,1}, |
− | ["spectral-arrow"] = {3,10,1}, |
||
− | ["golden-boots"] = {1,1,1}, |
||
− | ["magma-cream"] = {1,2,1}, |
||
− | ["bone-block"] = {1,3,1}, |
||
["block-of-gold"] = {1,1,1}, |
["block-of-gold"] = {1,1,1}, |
||
− | ["saddle"] = {1,1,1}, |
||
− | ["crossbow"] = {1,1,1}, |
||
− | ["crying-obsidian"] = {1,5,1}, |
||
− | ["gilded-blackstone"] = {1,5,1}, --- |
||
− | ["enchanted-book-rnd-soul-speed"] = {1,1,1}, |
||
− | ["soul-speed-enchanted-golden-boots"] = {1,1,1}, |
||
["crossbow"] = {1,1,1}, |
["crossbow"] = {1,1,1}, |
||
+ | ["gold-ingot"] = {1,6,1}, |
||
["iron-ingot"] = {1,6,1}, |
["iron-ingot"] = {1,6,1}, |
||
+ | ["golden-sword"] = {1,1,1}, |
||
+ | ["golden-chestplate"] = {1,1,1}, |
||
+ | ["golden-helmet"] = {1,1,1}, |
||
+ | ["golden-leggings"] = {1,1,1}, |
||
+ | ["golden-boots"] = {1,1,1}, |
||
["empty"] = {1,1,2}, |
["empty"] = {1,1,2}, |
||
} |
} |
||
}, |
}, |
||
{ |
{ |
||
− | rolls = { |
+ | rolls = {3,5}, |
items = { |
items = { |
||
− | [" |
+ | ["crying-obsidian"] = {1,5,1}, |
− | [" |
+ | ["gilded-blackstone"] = {1,5,1}, |
− | [" |
+ | ["chain"] = {2,10,1}, |
− | [" |
+ | ["magma-cream"] = {2,6,1}, |
− | [" |
+ | ["bone-block"] = {3,6,1}, |
− | [" |
+ | ["iron-nugget"] = {2,8,1}, |
− | [" |
+ | ["obsidian"] = {4,6,1}, |
+ | ["gold-nugget"] = {2,8,1}, |
||
− | } |
||
− | }, |
+ | ["string"] = {4,6,1}, |
+ | ["arrow"] = {5,17,2}, |
||
− | { |
||
− | rolls = {3,4}, |
||
− | items = { |
||
− | ["basalt"] = {1,6,3}, |
||
− | ["polished-basalt"] = {1,6,3}, |
||
− | ["obsidian"] = {2,6,3}, |
||
− | ["gold-nugget"] = {2,8,3}, |
||
− | ["string"] = {1,6,4}, |
||
− | ["leather"] = {1,3,1}, |
||
− | ["arrow"] = {2,7,4}, |
||
− | ["string"] = {3,8,2} |
||
} |
} |
||
} |
} |
||
− | } |
+ | }, |
+ | poolsBedrockUpcoming = {} |
||
}, |
}, |
||
["bastion-treasure"] = { -- bastion_treasure.json |
["bastion-treasure"] = { -- bastion_treasure.json |
||
− | header = "[[ |
+ | header = "[[보루]] 보물", |
− | link = "[[ |
+ | link = "[[보루 잔해|보루 잔해 보물]]", |
− | structure = " |
+ | structure = "보루 잔해", |
− | container = " |
+ | container = "보물 상자", |
structID = "bastion-remnant", |
structID = "bastion-remnant", |
||
− | poolsJava = { |
+ | poolsJava = { |
− | poolsJavaUpcoming = { |
||
{ |
{ |
||
rolls = {1,2}, |
rolls = {1,2}, |
||
2,007번째 줄: | 1,982번째 줄: | ||
} |
} |
||
}, |
}, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
{ |
{ |
||
− | rolls = {1, |
+ | rolls = {1,2}, |
items = { |
items = { |
||
["netherite-ingot"] = {1,1,10}, |
["netherite-ingot"] = {1,1,10}, |
||
− | ["ancient-debris"] = {1,1, |
+ | ["ancient-debris"] = {1,1,14}, |
− | [" |
+ | ["netherite-scrap"] = {1,1,10}, |
+ | ["ancient-debris"] = {2,2,1}, |
||
+ | ["damaged-random-enchanted-diamond-sword"] = {1,1,10}, |
||
+ | ["damaged-random-enchanted-diamond-chestplate"] = {1,1,6}, |
||
+ | ["damaged-random-enchanted-diamond-helmet"] = {1,1,6}, |
||
+ | ["damaged-random-enchanted-diamond-leggings"] = {1,1,6}, |
||
+ | ["damaged-random-enchanted-diamond-boots"] = {1,1,6}, |
||
+ | ["damaged-diamond-sword"] = {1,1,6}, |
||
+ | ["damaged-diamond-chestplate"] = {1,1,5}, |
||
+ | ["damaged-diamond-helmet"] = {1,1,5}, |
||
+ | ["damaged-diamond-boots"] = {1,1,5}, |
||
+ | ["damaged-diamond-leggings"] = {1,1,5}, |
||
+ | ["diamond"] = {1,3,5}, |
||
} |
} |
||
}, |
}, |
||
{ |
{ |
||
− | rolls = {2, |
+ | rolls = {2,4}, |
− | items = { |
||
− | ["damaged-level-enchanted-netherite-sword"] = {1,1,5}, |
||
− | ["damaged-level-enchanted-netherite-chestplate"] = {1,1,3}, |
||
− | ["damaged-level-enchanted-netherite-helmet"] = {1,1,5}, |
||
− | ["damaged-level-enchanted-netherite-leggings"] = {1,1,5}, |
||
− | ["damaged-level-enchanted-netherite-boots"] = {1,1,5}, |
||
− | ["damaged-netherite-sword"] = {1,1,5}, |
||
− | ["damaged-netherite-chestplate"] = {1,1,2}, |
||
− | ["damaged-netherite-helmet"] = {1,1,2}, |
||
− | ["damaged-netherite-boots"] = {1,1,2}, |
||
− | ["damaged-netherite-leggings"] = {1,1,2}, |
||
− | ["diamond"] = {1,3,2}, |
||
− | } |
||
− | }, |
||
− | { |
||
− | rolls = {2,3}, |
||
− | items = { |
||
− | ["block-of-gold"] = {2,5,10}, |
||
− | ["spectral-arrow"] = {5,21,25}, |
||
− | ["gold-ingot"] = {3,9,15}, |
||
− | ["level-enchanted-golden-boots"] = {1,1,10}, |
||
− | ["level-enchanted-golden-chestplate"] = {1,1,10}, |
||
− | ["crying-obsidian"] = {1,5,10}, |
||
− | ["nether-quartz"] = {8,23,10}, |
||
− | ["gilded-blackstone"] = {1,5,10}, |
||
− | } |
||
− | }, |
||
− | { |
||
− | rolls = {2,2}, |
||
items = { |
items = { |
||
+ | ["arrow"] = {5,21,1}, |
||
+ | ["block-of-gold"] = {2,5,1}, |
||
+ | ["gold-ingot"] = {3,9,1}, |
||
+ | ["iron-ingot"] = {3,9,1}, |
||
+ | ["crying-obsidian"] = {1,5,1}, |
||
+ | ["nether-quartz"] = {8,23,1}, |
||
+ | ["gilded-blackstone"] = {1,5,1}, |
||
["magma-cream"] = {2,8,1}, |
["magma-cream"] = {2,8,1}, |
||
− | ["golden-sword"] = {1,1,1}, |
||
− | ["golden-helmet"] = {1,1,1}, |
||
− | ["golden-leggings"] = {1,1,1}, |
||
["iron-nugget"] = {8,16,1}, |
["iron-nugget"] = {8,16,1}, |
||
− | ["magma-block"] = {2,6,1}, |
||
− | ["saddle"] = {1,1,1}, |
||
} |
} |
||
} |
} |
||
− | } |
+ | }, |
+ | poolsBedrockUpcoming = {} |
||
}, |
}, |
||
["ruined-portal"] = { --ruined_portal.json |
["ruined-portal"] = { --ruined_portal.json |
||
− | header = "[[무너진 |
+ | header = "[[무너진 차원문]]", |
− | link = "[[무너진 |
+ | link = "[[무너진 차원문]]", |
− | structure = "무너진 |
+ | structure = "무너진 차원문", |
container = "", |
container = "", |
||
structID = "ruined-portal", |
structID = "ruined-portal", |
||
− | poolsJava = { |
+ | poolsJava = { |
− | poolsJavaUpcoming = { |
||
{ |
{ |
||
rolls = {4,8}, |
rolls = {4,8}, |
||
2,076번째 줄: | 2,036번째 줄: | ||
["flint-and-steel"] = {1,1,40}, |
["flint-and-steel"] = {1,1,40}, |
||
["fire-charge"] = {1,1,40}, |
["fire-charge"] = {1,1,40}, |
||
− | ["golden-apple"] = {1,1, |
+ | ["golden-apple"] = {1,1,15}, |
["gold-nugget"] = {4,24,15}, |
["gold-nugget"] = {4,24,15}, |
||
["random-enchanted-golden-sword"] = {1,1,15}, |
["random-enchanted-golden-sword"] = {1,1,15}, |
||
2,099번째 줄: | 2,059번째 줄: | ||
} |
} |
||
}, |
}, |
||
− | + | poolsJavaUpcoming = {}, |
|
− | + | poolsBedrock = { |
|
{ |
{ |
||
− | rolls = {4, |
+ | rolls = {4,8}, |
items = { |
items = { |
||
["obsidian"] = {1,2,40}, |
["obsidian"] = {1,2,40}, |
||
2,131번째 줄: | 2,091번째 줄: | ||
} |
} |
||
} |
} |
||
− | } |
||
− | }, |
||
− | ["woodland-mansion"] = { -- woodland_mansion.json |
||
− | header = "[[삼림 대저택]]", |
||
− | link = "[[삼림 대저택]]", |
||
− | structure = "삼림 대저택", |
||
− | container = "", |
||
− | structID = "woodland-mansion", |
||
− | poolsJava = { |
||
− | { |
||
− | rolls = {1,3}, |
||
− | items = { |
||
− | ["lead"] = {1,1,20}, |
||
− | ["golden-apple"] = {1,1,15}, |
||
− | ["enchanted-golden-apple"] = {1,1,2}, |
||
− | ["disc-13"] = {1,1,15}, |
||
− | ["disc-cat"] = {1,1,15}, |
||
− | ["name-tag"] = {1,1,20}, |
||
− | ["chainmail-chestplate"] = {1,1,10}, |
||
− | ["diamond-hoe"] = {1,1,15}, |
||
− | ["diamond-chestplate"] = {1,1,5}, |
||
− | ["enchanted-book-rnd"] = {1,1,10}, |
||
− | } |
||
− | }, |
||
− | { |
||
− | rolls = {1,4}, |
||
− | items = { |
||
− | ["iron-ingot"] = {1,4,10}, |
||
− | ["gold-ingot"] = {1,4,5}, |
||
− | ["bread"] = {1,1,20}, |
||
− | ["wheat"] = {1,4,20}, |
||
− | ["bucket"] = {1,1,10}, |
||
− | ["redstone"] = {1,4,15}, |
||
− | ["coal"] = {1,4,15}, |
||
− | ["melon-seeds"] = {2,4,10}, |
||
− | ["pumpkin-seeds"] = {2,4,10}, |
||
− | ["beetroot-seeds"] = {2,4,10}, |
||
− | } |
||
− | }, |
||
− | { |
||
− | rolls = {3,3}, |
||
− | items = { |
||
− | ["bone"] = {1,8,10}, |
||
− | ["gunpowder"] = {1,8,10}, |
||
− | ["rotten-flesh"] = {1,8,10}, |
||
− | ["string"] = {1,8,10}, |
||
− | } |
||
− | }, |
||
− | }, |
||
− | poolsJavaUpcoming = {}, |
||
− | poolsBedrock = { |
||
− | { |
||
− | rolls = {1,3}, |
||
− | items = { |
||
− | ["lead"] = {1,1,100}, |
||
− | ["golden-apple"] = {1,1,75}, |
||
− | ["enchanted-golden-apple"] = {1,1,10}, |
||
− | ["disc-13"] = {1,1,75}, |
||
− | ["disc-cat"] = {1,1,75}, |
||
− | ["name-tag"] = {1,1,100}, |
||
− | ["chainmail-chestplate"] = {1,1,50}, |
||
− | ["diamond-hoe"] = {1,1,75}, |
||
− | ["diamond-chestplate"] = {1,1,25}, |
||
− | ["enchanted-book-rnd-treasure"] = {1,1,60}, |
||
− | } |
||
− | }, |
||
− | { |
||
− | rolls = {1,4}, |
||
− | items = { |
||
− | ["iron-ingot"] = {1,4,50}, |
||
− | ["gold-ingot"] = {1,4,25}, |
||
− | ["bread"] = {1,1,100}, |
||
− | ["wheat"] = {1,4,100}, |
||
− | ["bucket"] = {1,1,50}, |
||
− | ["redstone"] = {1,4,75}, |
||
− | ["coal"] = {1,4,75}, |
||
− | ["melon-seeds"] = {2,4,50}, |
||
− | ["pumpkin-seeds"] = {2,4,50}, |
||
− | ["beetroot-seeds"] = {2,4,50}, |
||
− | } |
||
− | }, |
||
− | { |
||
− | rolls = {3,3}, |
||
− | items = { |
||
− | ["bone"] = {1,8,50}, |
||
− | ["gunpowder"] = {1,8,50}, |
||
− | ["rotten-flesh"] = {1,8,50}, |
||
− | ["string"] = {1,8,50}, |
||
− | } |
||
− | }, |
||
}, |
}, |
||
poolsBedrockUpcoming = {} |
poolsBedrockUpcoming = {} |
||
}, |
}, |
||
+ | ["woodland-mansion"] = { -- woodland_mansion.json |
||
− | }, |
||
+ | header = "[[삼림 대저택]]", |
||
+ | link = "[[삼림 대저택]]", |
||
+ | structure = "삼림 대저택", |
||
+ | container = "", |
||
+ | structID = "woodland-mansion", |
||
+ | poolsJava = { |
||
+ | { |
||
+ | rolls = {1,3}, |
||
+ | items = { |
||
+ | ["lead"] = {1,1,20}, |
||
+ | ["golden-apple"] = {1,1,15}, |
||
+ | ["enchanted-golden-apple"] = {1,1,2}, |
||
+ | ["disc-13"] = {1,1,15}, |
||
+ | ["disc-cat"] = {1,1,15}, |
||
+ | ["name-tag"] = {1,1,20}, |
||
+ | ["chainmail-chestplate"] = {1,1,10}, |
||
+ | ["diamond-hoe"] = {1,1,15}, |
||
+ | ["diamond-chestplate"] = {1,1,5}, |
||
+ | ["enchanted-book-rnd"] = {1,1,10}, |
||
+ | } |
||
+ | }, |
||
+ | { |
||
+ | rolls = {1,4}, |
||
+ | items = { |
||
+ | ["iron-ingot"] = {1,4,10}, |
||
+ | ["gold-ingot"] = {1,4,5}, |
||
+ | ["bread"] = {1,1,20}, |
||
+ | ["wheat"] = {1,4,20}, |
||
+ | ["bucket"] = {1,1,10}, |
||
+ | ["redstone"] = {1,4,15}, |
||
+ | ["coal"] = {1,4,15}, |
||
+ | ["melon-seeds"] = {2,4,10}, |
||
+ | ["pumpkin-seeds"] = {2,4,10}, |
||
+ | ["beetroot-seeds"] = {2,4,10}, |
||
+ | } |
||
+ | }, |
||
+ | { |
||
+ | rolls = {3,3}, |
||
+ | items = { |
||
+ | ["bone"] = {1,8,10}, |
||
+ | ["gunpowder"] = {1,8,10}, |
||
+ | ["rotten-flesh"] = {1,8,10}, |
||
+ | ["string"] = {1,8,10}, |
||
+ | } |
||
+ | }, |
||
+ | }, |
||
+ | poolsJavaUpcoming = {}, |
||
+ | poolsBedrock = { |
||
+ | { |
||
+ | rolls = {1,3}, |
||
+ | items = { |
||
+ | ["lead"] = {1,1,100}, |
||
+ | ["golden-apple"] = {1,1,75}, |
||
+ | ["enchanted-golden-apple"] = {1,1,10}, |
||
+ | ["disc-13"] = {1,1,75}, |
||
+ | ["disc-cat"] = {1,1,75}, |
||
+ | ["name-tag"] = {1,1,100}, |
||
+ | ["chainmail-chestplate"] = {1,1,50}, |
||
+ | ["diamond-hoe"] = {1,1,75}, |
||
+ | ["diamond-chestplate"] = {1,1,25}, |
||
+ | ["enchanted-book-rnd-treasure"] = {1,1,60}, |
||
+ | } |
||
+ | }, |
||
+ | { |
||
+ | rolls = {1,4}, |
||
+ | items = { |
||
+ | ["iron-ingot"] = {1,4,50}, |
||
+ | ["gold-ingot"] = {1,4,25}, |
||
+ | ["bread"] = {1,1,100}, |
||
+ | ["wheat"] = {1,4,100}, |
||
+ | ["bucket"] = {1,1,50}, |
||
+ | ["redstone"] = {1,4,75}, |
||
+ | ["coal"] = {1,4,75}, |
||
+ | ["melon-seeds"] = {2,4,50}, |
||
+ | ["pumpkin-seeds"] = {2,4,50}, |
||
+ | ["beetroot-seeds"] = {2,4,50}, |
||
+ | } |
||
+ | }, |
||
+ | { |
||
+ | rolls = {3,3}, |
||
+ | items = { |
||
+ | ["bone"] = {1,8,50}, |
||
+ | ["gunpowder"] = {1,8,50}, |
||
+ | ["rotten-flesh"] = {1,8,50}, |
||
+ | ["string"] = {1,8,50}, |
||
+ | } |
||
+ | }, |
||
+ | }, |
||
+ | poolsBedrockUpcoming = {} |
||
+ | }, |
||
+ | }, |
||
− | + | -- these values are used: |
|
− | + | -- * in place of the keys, when the key is used as a parameter |
|
+ | |||
− | |||
− | + | -- chest-param -> internally-valid-chest-param |
|
+ | |||
− | |||
− | + | synonyms = { |
|
− | + | ["desert"] = "desert-temple", |
|
− | + | ["jungle"] = "jungle-temple", |
|
− | + | ["nether"] = "nether-fortress", |
|
− | + | ["fortress"] = "nether-fortress", |
|
+ | |||
− | |||
− | + | ["armorer"] = "village-armorer", |
|
− | + | ["butcher"] = "village-butcher", |
|
− | + | ["cartographer"] = "village-cartographer", |
|
− | + | ["fisherman"] = "village-fisherman", |
|
− | + | ["fletcher"] = "village-fletcher", |
|
− | + | ["mason"] = "village-mason", |
|
− | + | ["shepherd"] = "village-shepherd", |
|
− | + | ["tannery"] = "village-tannery", |
|
− | + | ["temple"] = "village-temple", |
|
− | + | ["toolsmith"] = "village-toolsmith", |
|
− | + | ["weaponsmith"] = "village-weaponsmith", |
|
− | + | ["desert-house"] = "village-desert-house", |
|
− | + | ["plains-house"] = "village-plains-house", |
|
− | + | ["savanna-house"] = "village-savanna-house", |
|
− | + | ["snowy-house"] = "village-snowy-house", |
|
− | + | ["taiga-house"] = "village-taiga-house", |
|
+ | |||
− | |||
− | + | ["altar"] = "stronghold-altar", |
|
− | + | ["storeroom"] = "stronghold-storeroom", |
|
− | + | ["library"] = "stronghold-library", |
|
− | + | ["outpost"] = "pillager-outpost", |
|
− | + | ["mansion"] = "woodland-mansion" |
|
− | + | }, |
|
− | + | -- these values are used: |
|
− | + | -- * in the header-description of a table showing only a single chest |
|
− | + | -- * if the key is not here, but it is a valid chest parameter, |
|
− | + | -- that header-description will default to use the key string from p.chests, |
|
− | + | -- e.g. "nether-fortress" |
|
+ | |||
− | |||
− | + | -- chest-param -> description-string |
|
+ | |||
− | |||
− | + | display_names = { |
|
− | + | ["nether-fortress"] = "네더 요새", |
|
− | + | ["nether"] = "네더 요새", |
|
− | + | ["fortress"] = "네더 요새", |
|
− | + | ["desert"] = "사막 사원", |
|
− | + | ["jungle"] = "정글 사원", |
|
− | + | ["desert-temple"] = "사막 사원", |
|
− | + | ["jungle-temple"] = "정글 사원", |
|
− | + | }, |
|
+ | |||
− | |||
− | + | -- these descriptions are used: |
|
− | + | -- * in column <abbr> titles, |
|
− | + | -- * and above the table when only a single column-type is chosen |
|
+ | |||
− | |||
− | + | columns = { |
|
− | + | ["stacksize"] = '이 아이템의 묶음의 수 (쌓기가 안되는 경우, 그냥 갯수).', |
|
− | + | ["weight"] = '이 종류에서 다른 아이템에 비한 이 아이템의 가중치.', |
|
− | + | ["chance"] = '하나의 상자에서 이 아이템이 존재할 확률.', |
|
− | + | ["items"] = '상자당 기대되는 아이템의 수. 많은 상자를 평균한 값임.', |
|
− | + | ["chests"] = '이 아이템을 찾으려면 평균 몇개의 상자를 찾아야 할까?' |
|
− | + | }, |
|
+ | |||
− | |||
− | + | current_frame = nil |
|
} |
} |
||
p.base = function( ... ) |
p.base = function( ... ) |
||
− | + | p.current_frame = mw.getCurrentFrame() |
|
− | + | local args = { ... } |
|
− | + | if args[1] == p.current_frame then |
|
− | + | args = require( '모듈:ProcessArgs' ).merge( true ) |
|
− | + | else |
|
− | + | args = args[1] |
|
− | + | end |
|
+ | |||
− | |||
− | + | -- transform args into usable list |
|
+ | |||
− | |||
− | + | local chests, columns = q.massage_args( args ) |
|
+ | |||
− | |||
− | + | if #chests == 0 then |
|
− | + | return "<span style='font-style:italic; color:red;'>모듈:LootChest: no valid arguments</span>" |
|
− | + | end |
|
− | + | q.fill_in_chest_derivative_data( chests ) |
|
+ | |||
− | |||
− | + | -- construct an ordered list dictating the order of the rows |
|
+ | |||
− | |||
− | + | local ordered_item_rows_java = {} |
|
− | + | local ordered_item_rows_java_upcoming = {} |
|
− | + | local ordered_item_rows_bedrock = {} |
|
− | + | local ordered_item_rows_bedrock_upcoming = {} |
|
− | + | local ret = {} |
|
+ | |||
− | |||
− | + | local java_specified = args.java and args.java ~= '0'; |
|
− | + | local java_upcoming_specified = args['java-upcoming'] and args['java-upcoming'] ~= '0'; |
|
− | + | local bedrock_specified = args.bedrock and args.bedrock ~= '0'; |
|
− | + | local bedrock_upcoming_specified = args['bedrock-upcoming'] and args['bedrock-upcoming'] ~= '0'; |
|
+ | |||
− | |||
− | + | local any_specified = java_specified or java_upcoming_specified or bedrock_specified or bedrock_upcoming_specified |
|
+ | |||
− | |||
− | + | if any_specified then |
|
+ | |||
− | |||
− | + | if java_specified then |
|
− | + | ordered_item_rows_java = q.construct_ordered_item_rows( chests, 'Java' ) |
|
− | + | end |
|
− | + | if java_upcoming_specified then |
|
− | + | ordered_item_rows_java_upcoming = q.construct_ordered_item_rows( chests, 'JavaUpcoming' ) |
|
− | + | end |
|
− | + | if bedrock_specified then |
|
− | + | ordered_item_rows_bedrock = q.construct_ordered_item_rows( chests, 'Bedrock' ) |
|
− | + | end |
|
− | + | if bedrock_upcoming_specified then |
|
− | + | ordered_item_rows_bedrock_upcoming = q.construct_ordered_item_rows( chests, 'BedrockUpcoming' ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | else |
|
+ | |||
− | |||
− | + | local java_excluded = args.java and args.java == '0'; |
|
− | + | local java_upcoming_excluded = args['java-upcoming'] and args['java-upcoming'] == '0'; |
|
− | + | local bedrock_excluded = args.bedrock and args.bedrock == '0'; |
|
− | + | local bedrock_upcoming_excluded = args['bedrock-upcoming'] and args['bedrock-upcoming'] == '0'; |
|
+ | |||
− | |||
− | + | if not java_excluded then |
|
− | + | ordered_item_rows_java = q.construct_ordered_item_rows( chests, 'Java' ) |
|
− | + | end |
|
− | + | if not java_upcoming_excluded then |
|
− | + | ordered_item_rows_java_upcoming = q.construct_ordered_item_rows( chests, 'JavaUpcoming' ) |
|
− | + | end |
|
− | + | if not bedrock_excluded then |
|
− | + | ordered_item_rows_bedrock = q.construct_ordered_item_rows( chests, 'Bedrock' ) |
|
− | + | end |
|
− | + | if not bedrock_upcoming_excluded then |
|
− | + | ordered_item_rows_bedrock_upcoming = q.construct_ordered_item_rows( chests, 'BedrockUpcoming' ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | end |
|
+ | |||
− | |||
− | + | if q.tablelength( ordered_item_rows_java ) > 0 then |
|
− | + | table.insert( ret, q.print_table( chests, columns, ordered_item_rows_java, 'Java' ) ) |
|
− | + | end |
|
− | + | if q.tablelength( ordered_item_rows_java_upcoming ) > 0 and q.compare_tables( ordered_item_rows_java, ordered_item_rows_java_upcoming ) then |
|
− | + | table.insert( ret, p.current_frame:preprocess( p['java-upcoming'] ) .. '에서는 ' .. q.lcfirst( q.print_table( chests, columns, ordered_item_rows_java_upcoming, 'JavaUpcoming' ) ) ) |
|
− | + | end |
|
− | + | if q.tablelength( ordered_item_rows_bedrock ) > 0 and q.compare_tables( ordered_item_rows_java, ordered_item_rows_bedrock ) then |
|
− | + | table.insert( ret, p.current_frame:preprocess( p.bedrock ) .. '에서는 ' .. q.lcfirst( q.print_table( chests, columns, ordered_item_rows_bedrock, 'Bedrock' ) ) .. '[[분류:베드락 에디션 관련 정보]]' ) |
|
− | + | end |
|
− | + | if q.tablelength( ordered_item_rows_bedrock_upcoming ) > 0 and q.compare_tables( ordered_item_rows, ordered_item_rows_bedrock_upcoming ) then |
|
− | + | table.insert( ret, p.current_frame:preprocess( p['bedrock-upcoming'] ) .. '에서는 ' .. q.lcfirst( q.print_table( chests, columns, ordered_item_rows_bedrock_upcoming, 'BedrockUpcoming' ) ) .. '[[분류:베드락 에디션 관련 정보]]' ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | return table.concat( ret, '\n\n' ) |
|
end |
end |
||
p.doc = function() |
p.doc = function() |
||
− | + | local valid_args = {} |
|
− | + | for chest_name, val in pairs(p.chests) do |
|
− | + | local synonyms = {} |
|
− | + | for syn, orig in pairs(p.synonyms) do |
|
− | + | if orig == chest_name then |
|
− | + | table.insert( synonyms, syn ) |
|
+ | end |
||
− | end |
||
− | + | end |
|
− | + | if #synonyms > 0 then |
|
− | + | chest_name = chest_name .. " ( " .. table.concat( synonyms, ", " ) .. " )" |
|
− | + | end |
|
− | + | table.insert( valid_args, chest_name ) |
|
− | + | end |
|
− | + | table.sort( valid_args ) |
|
− | + | return table.concat( valid_args, ",\n<br>" ) |
|
end |
end |
||
2,407번째 줄: | 2,368번째 줄: | ||
p.doc2 = function() |
p.doc2 = function() |
||
− | + | local valid_args = {} |
|
− | + | for column_name, val in pairs(p.columns) do |
|
− | + | table.insert( valid_args, column_name .. ": " .. val ) |
|
− | + | end |
|
− | + | table.sort( valid_args ) |
|
− | + | return table.concat( valid_args, ",\n<br>" ) |
|
end |
end |
||
2,418번째 줄: | 2,379번째 줄: | ||
p.doc3 = function() |
p.doc3 = function() |
||
− | + | local valid_args = {} |
|
− | + | for item_name, val in pairs(p.items) do |
|
− | + | table.insert( valid_args, item_name ) |
|
− | + | end |
|
− | + | table.sort( valid_args ) |
|
− | + | return table.concat( valid_args, ", " ) |
|
end |
end |
||
2,429번째 줄: | 2,390번째 줄: | ||
p.base2 = function( ... ) |
p.base2 = function( ... ) |
||
− | + | p.current_frame = mw.getCurrentFrame() |
|
− | + | local args = { ... } |
|
− | + | if args[1] == p.current_frame then |
|
− | + | args = require( '모듈:ProcessArgs' ).merge( true ) |
|
− | + | else |
|
− | + | args = args[1] |
|
− | + | end |
|
+ | |||
− | |||
− | + | local itemname = args[1] |
|
+ | |||
− | |||
− | + | if p.items[itemname] == nil then |
|
− | + | return '<span style="color:red;">"' .. itemname .. '"은 알 수 없는 아이템입니다</span>' |
|
− | + | end |
|
+ | |||
− | |||
− | + | if args.java and args.java ~= '0' then |
|
− | + | javaChances = q.single_item_find_values( itemname, 'poolsJava' ) |
|
− | + | javaUpcomingChances = {} |
|
− | + | bedrockChances = {} |
|
− | + | bedrockUpcomingChances = {} |
|
− | + | else |
|
− | + | if args['java-upcoming'] and args['java-upcoming'] ~= '0' then |
|
− | + | javaChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming' ) |
|
− | + | javaUpcomingChances = {} |
|
− | + | bedrockChances = {} |
|
− | + | bedrockUpcomingChances = {} |
|
− | + | else |
|
− | + | if args.bedrock and args.bedrock ~= '0' then |
|
− | + | javaChances = q.single_item_find_values( itemname, 'poolsBedrock' ) |
|
− | + | javaUpcomingChances = {} |
|
− | + | bedrockChances = {} |
|
− | + | bedrockUpcomingChances = {} |
|
− | + | else |
|
− | + | if args['bedrock-upcoming'] and args['bedrock-upcoming'] ~= '0' then |
|
− | + | javaChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming' ) |
|
− | + | javaUpcomingChances = {} |
|
− | + | bedrockChances = {} |
|
− | + | bedrockUpcomingChances = {} |
|
+ | else |
||
− | else |
||
− | + | javaChances = q.single_item_find_values( itemname, 'poolsJava' ) |
|
− | + | javaUpcomingChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming', javaChances ) |
|
− | + | bedrockChances = q.single_item_find_values( itemname, 'poolsBedrock', javaChances ) |
|
− | + | bedrockUpcomingChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming', javaChances, bedrockChances ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | end |
|
− | + | end |
|
+ | |||
− | |||
− | + | local html = {} |
|
+ | |||
− | |||
− | + | local any_current = q.tablelength( javaChances ) > 0 |
|
− | + | local any_changes_upcoming = q.tablelength( javaUpcomingChances ) > 0 and q.compare_tables( javaChances, javaUpcomingChances ) |
|
− | + | local any_standard = any_current or any_changes_upcoming |
|
+ | |||
− | |||
− | + | local any_bedrock_current = q.tablelength( bedrockChances ) > 0 |
|
− | + | local any_bedrock_upcoming = q.tablelength( bedrockUpcomingChances ) > 0 and q.compare_tables( bedrockChances, bedrockUpcomingChances ) |
|
− | + | local any_bedrock = any_bedrock_current or any_bedrock_upcoming |
|
+ | |||
− | |||
− | + | local change_case = p.items[itemname].preserve_case == nil or p.items[itemname].preserve_case ~= true |
|
− | + | if any_current then |
|
− | + | table.insert( html, p.base2_sub( itemname, javaChances ) ) |
|
− | + | end |
|
− | + | if any_changes_upcoming then |
|
− | + | table.insert( html, p.current_frame:preprocess( p['java-upcoming'] ) .. '에서는 ' .. ( change_case and q.lcfirst( p.base2_sub( itemname, javaUpcomingChances, any_current ) ) or p.base2_sub( itemname, javaUpcomingChances, any_current ) ) ) |
|
− | + | end |
|
− | + | if any_bedrock_current then |
|
− | + | table.insert( html, ( any_standard and '\n\n' or '' ) .. p.current_frame:preprocess( p.bedrock ) .. '에서는 ' .. ( change_case and q.lcfirst( p.base2_sub( itemname, bedrockChances, any_standard ) ) or p.base2_sub( itemname, bedrockChances, any_standard ) ) ) |
|
− | + | end |
|
− | + | if any_bedrock_upcoming then |
|
− | + | table.insert( html, ( any_standard and not any_bedrock_current and '\n\n' or '' ) .. p.current_frame:preprocess( p['bedrock-upcoming'] ) .. '에서는 ' .. ( change_case and q.lcfirst( p.base2_sub( itemname, bedrockUpcomingChances, any_bedrock_current or any_standard ) ) or p.base2_sub( itemname, bedrockUpcomingChances, any_bedrock_current or any_standard ) ) ) |
|
− | + | end |
|
− | + | if args.nocat then |
|
− | + | else |
|
− | + | table.insert( html, '[[분류:전리품 상자 항목 틀이 있는 페이지]]' ) |
|
− | + | if p.items[itemname].category ~= nil and p.items[itemname].category ~= false then |
|
− | + | table.insert( html, '[[분류:특정 전리품 상자 항목이 있는 페이지]]' ) |
|
− | + | end |
|
− | + | if any_bedrock then |
|
− | + | table.insert( html, '[[분류:베드락 에디션 관련 정보]]' ) |
|
− | + | end |
|
− | + | end |
|
+ | |||
− | |||
− | + | return table.concat( html, ' ' ) |
|
end |
end |
||
p.base2_sub = function( itemname, chances, use_they ) |
p.base2_sub = function( itemname, chances, use_they ) |
||
− | + | -- 복붙 시작! |
|
− | + | local html = {} |
|
− | + | local item_display_name = '' |
|
− | + | local name_without_ref = nil -- if TRUE, ref tag is being used. |
|
+ | |||
− | |||
− | + | -- use_they가 참일 경우는 "베드락 에디션에서는 이들은 ~~의 확률로"를 출력할 때 뿐인데, |
|
− | + | -- 한국어판에서는 "베드락 에디션에서는 ~~의 확률로"로 출력하도록 텍스트를 간소화한다. |
|
− | + | if not use_they then |
|
− | + | if p.items[itemname].plural ~= nil and p.items[itemname].plural ~= false then |
|
− | + | item_display_name = p.items[itemname].plural |
|
− | + | else |
|
− | + | if p.items[itemname].title ~= nil then |
|
− | + | item_display_name = p.items[itemname].title |
|
− | + | else |
|
− | + | item_display_name = string.gsub( itemname, '-', ' ' ) |
|
+ | end |
||
− | end |
||
− | + | -- if p.items[itemname].plural == nil or p.items[itemname].plural ~= false then |
|
− | + | -- item_display_name = q.single_item_plural( item_display_name ) |
|
− | + | -- end |
|
− | + | end |
|
− | + | local Autolink = require( '모듈:Autolink' ) |
|
− | + | item_display_name = Autolink.invlink(item_display_name, 'nolink') |
|
+ | |||
− | |||
− | + | if p.items[itemname].preserve_case == nil or p.items[itemname].preserve_case ~= true then |
|
− | + | item_display_name = q.capitalize( item_display_name ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | if p.items[itemname].note and p.notes[p.items[itemname].note] then |
|
− | + | name_without_ref = item_display_name |
|
− | + | item_display_name = item_display_name .. p.current_frame:preprocess( p.notes[p.items[itemname].note] ) |
|
− | + | end |
|
− | + | end |
|
+ | |||
− | |||
− | + | table.insert( html, item_display_name ) |
|
− | + | -- josa insertion |
|
− | + | if not use_they then -- use_they에 관한 주석은 위를 볼 것 |
|
− | + | local josa = require('모듈:Josa').josa |
|
− | + | if (name_without_ref) then |
|
− | + | table.insert( html, josa(name_without_ref, '은/는')..' ' ) |
|
− | + | else |
|
− | + | table.insert( html, josa(item_display_name, '은/는')..' ' ) |
|
− | + | end |
|
− | + | end |
|
− | + | local html_stacks = {} |
|
− | + | local stack_sep = '. ' |
|
− | + | local ns = q.tablelength( chances ) |
|
− | + | local s = 0 |
|
− | + | -- 주의: 미래에 전리품을 획득할 수 있는 장소가 추가되면 이 부분이 수정되어야 한다. |
|
− | + | for stacksize, chest_details in pairs( chances ) do |
|
− | + | s = s + 1 |
|
+ | |||
− | |||
− | + | local html_per_stack = { '' } |
|
− | + | local c = 0 |
|
− | + | local nc = q.tablelength( chest_details ) |
|
− | + | local sep = ( nc > 1 and ', ' or ' ' ) -- 영어에서는 항목 열거 시 마지막 항목 앞에 반점을 없애고 'and'를 쓰기 때문에 조건 값이 2지만, 한국어는 그렇지 않기 때문에 조건 값이 1이다 |
|
− | + | if nc > 2 and s ~= ns then |
|
− | + | stack_sep = '. ' |
|
− | + | end |
|
− | + | for k, chest in pairs( chest_details ) do |
|
− | + | c = c + 1 |
|
− | + | if c == nc and nc > 1 then |
|
− | + | table.insert( html_per_stack, '' ) |
|
+ | end |
||
− | end |
||
− | + | if chest.chance == 1 then -- 확률 100% |
|
− | + | table.insert( html_per_stack, " 모든 " ) -- 예: 모든 보너스 상자에서 |
|
− | + | else |
|
− | + | table.insert( html_per_stack, string.format("%.1f", chest.chance*100) ) |
|
− | + | table.insert( html_per_stack, "% 확률로 " ) |
|
+ | end |
||
− | end |
||
− | + | if chest.chest_type == 'minecart with chest' then |
|
− | + | table.insert( html_per_stack, p.chests[chest.chest_name].link ) |
|
− | + | table.insert( html_per_stack, ' [[상자가 실린 광산 수레]]에서' ) |
|
− | + | elseif chest.chest_type == 'dispenser' then |
|
− | + | table.insert( html_per_stack, p.chests[chest.chest_name].link ) |
|
− | + | table.insert( html_per_stack, '의 [[발사기]]에서' ) |
|
− | + | elseif chest.chest_type == 'bonus' then |
|
− | + | table.insert( html_per_stack, p.chests[chest.chest_name].link ) |
|
− | + | table.insert( html_per_stack, '에서' ) |
|
− | + | elseif chest.chest_type == 'shipwreck' then |
|
− | + | table.insert( html_per_stack, p.chests[chest.chest_name].link ) |
|
− | + | table.insert( html_per_stack, '에서' ) |
|
− | + | else |
|
− | + | table.insert( html_per_stack, p.chests[chest.chest_name].link ) |
|
− | + | table.insert( html_per_stack, ' 상자에서' ) |
|
+ | end |
||
− | end |
||
− | + | table.insert( html_per_stack, sep ) |
|
− | + | end |
|
− | + | if nc > 2 then |
|
− | + | -- "모두" 앞에 반점이 붙는 것을 없애기 위해 출력 스택을 직접 건드린다. |
|
− | + | -- 미친 짓이니 다음에는 이러지 마라 |
|
− | + | table.remove( html_per_stack ) |
|
− | + | table.insert( html_per_stack, ' 모두 ' ) -- 예: 모두 nn%의 확률로 |
|
− | + | end |
|
− | + | table.insert( html_per_stack, stacksize) |
|
− | + | -- ~개 묶음으로 앞에 오는 반점 제거. 또 스택을 직접 건드린다. |
|
− | + | if html_per_stack[#html_per_stack - 1] == ', ' then |
|
− | + | html_per_stack[#html_per_stack - 1] = ' ' -- 공백은 필요하다 |
|
− | + | end |
|
− | + | if p.items[itemname].cannot_stack ~= nil then |
|
− | + | table.insert( html_per_stack, '개 묶음으로 ' ) |
|
− | + | else |
|
− | + | table.insert( html_per_stack, '개 묶음으로 ' ) |
|
− | + | end |
|
− | + | table.insert( html_per_stack, '생성된다' ) |
|
− | + | table.insert( html_stacks, table.concat( html_per_stack ) ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | local stackwise_summaries = '' |
|
− | + | if #html_stacks == 1 then |
|
− | + | table.insert( html, html_stacks[1] ) |
|
− | + | else |
|
− | + | for i = 1, #html_stacks - 1 do |
|
− | + | table.insert( html, html_stacks[ i ] ) |
|
− | + | table.insert( html, stack_sep ) |
|
− | + | end |
|
− | + | --table.insert( html, '그리고 ' ) |
|
− | + | table.insert( html, html_stacks[#html_stacks] ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | -- 복붙 끝! |
|
− | + | table.insert( html, '.' ) |
|
+ | |||
− | |||
− | + | return table.concat( html ) |
|
+ | |||
− | |||
end |
end |
||
p.base2_test = function() |
p.base2_test = function() |
||
− | + | items = {} |
|
− | + | for item_name, v in pairs( p.items ) do |
|
− | + | table.insert( items, p.base2{ item_name, ["nocat"]=true } .. '\n\n' ) |
|
− | + | end |
|
− | + | table.sort( items ) |
|
+ | |||
− | |||
− | + | return table.concat(items) |
|
end |
end |
||
2,674번째 줄: | 2,635번째 줄: | ||
p.base3 = function( ... ) |
p.base3 = function( ... ) |
||
− | + | p.current_frame = mw.getCurrentFrame() |
|
− | + | local args = { ... } |
|
− | + | if args[1] == p.current_frame then |
|
− | + | args = require( '모듈:ProcessArgs' ).merge( true ) |
|
− | + | else |
|
− | + | args = args[1] |
|
− | + | end |
|
+ | |||
− | |||
− | + | local z = args[1] |
|
+ | |||
− | |||
− | + | local html_java = {} |
|
− | + | local html_java_u = {} |
|
− | + | local html_bedrock = {} |
|
− | + | local html_bedrock_u = {} |
|
+ | |||
− | |||
− | + | local rErr = "" |
|
+ | |||
− | |||
− | + | local zT = {} |
|
− | + | if args[1] == "!!!ALL!!!" then |
|
− | + | for item_name, v in pairs( p.items ) do |
|
− | + | table.insert( zT, item_name ) |
|
− | + | table.sort( zT ) |
|
− | + | end |
|
− | + | else |
|
− | + | zT = mw.text.split( args[1], ',' ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | for x, itemname in pairs( zT ) do |
|
+ | |||
− | |||
− | + | if p.items[itemname] == nil then |
|
− | + | rErr = rErr .. "<span class='error'>Unknown item " .. itemname .. ".</span>\n" |
|
− | + | else |
|
+ | |||
− | |||
− | + | local javaChances, javaUpcomingChances, bedrockChances, bedrockUpcomingChances |
|
+ | |||
− | |||
− | + | if args.java and args.java ~= '0' then |
|
− | + | javaChances = q.single_item_find_values( itemname, 'poolsJava' ) |
|
− | + | javaUpcomingChances = {} |
|
− | + | bedrockChances = {} |
|
− | + | bedrockUpcomingChances = {} |
|
− | + | else |
|
− | + | if args['java-upcoming'] and args['java-upcoming'] ~= '0' then |
|
− | + | javaChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming' ) |
|
− | + | javaUpcomingChances = {} |
|
− | + | bedrockChances = {} |
|
− | + | bedrockUpcomingChances = {} |
|
+ | else |
||
− | else |
||
− | + | if args.bedrock and args.bedrock ~= '0' then |
|
− | + | javaChances = q.single_item_find_values( itemname, 'poolsBedrock' ) |
|
− | + | javaUpcomingChances = {} |
|
− | + | bedrockChances = {} |
|
− | + | bedrockUpcomingChances = {} |
|
+ | else |
||
− | else |
||
− | + | if args['bedrock-upcoming'] and args['bedrock-upcoming'] ~= '0' then |
|
− | + | javaChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming' ) |
|
− | + | javaUpcomingChances = {} |
|
− | + | bedrockChances = {} |
|
− | + | bedrockUpcomingChances = {} |
|
+ | else |
||
− | else |
||
− | + | javaChances = q.single_item_find_values( itemname, 'poolsJava' ) |
|
− | + | javaUpcomingChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming', javaChances ) |
|
− | + | bedrockChances = q.single_item_find_values( itemname, 'poolsBedrock', javaChances ) |
|
− | + | bedrockUpcomingChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming', javaChances, bedrockChances ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
+ | |||
− | |||
− | + | local any_current = q.tablelength( javaChances ) > 0 |
|
− | + | local any_changes_upcoming = q.tablelength( javaUpcomingChances ) > 0 and q.compare_tables( javaChances, javaUpcomingChances ) |
|
− | + | local any_standard = any_current or any_changes_upcoming |
|
+ | |||
− | |||
− | + | local any_bedrock_current = q.tablelength( bedrockChances ) > 0 |
|
− | + | local any_bedrock_upcoming = q.tablelength( bedrockUpcomingChances ) > 0 and q.compare_tables( bedrockChances, bedrockUpcomingChances ) |
|
− | + | local any_bedrock = any_bedrock_current or any_bedrock_upcoming |
|
+ | |||
− | |||
− | + | if any_current then |
|
− | + | table.insert( html_java, p.base3_sub( itemname, javaChances ) ) |
|
+ | end |
||
− | end |
||
− | + | if any_changes_upcoming then |
|
− | + | table.insert( html_java_u, p.base3_sub( itemname, javaUpcomingChances ) ) |
|
+ | end |
||
− | end |
||
− | + | if any_bedrock_current then |
|
− | + | table.insert( html_bedrock, p.base3_sub( itemname, bedrockChances ) ) |
|
+ | end |
||
− | end |
||
− | + | if any_bedrock_upcoming then |
|
− | + | table.insert( html_bedrock_u, p.base3_sub( itemname, bedrockUpcomingChances ) ) |
|
+ | end |
||
− | end |
||
+ | |||
− | |||
− | + | end |
|
− | + | end |
|
+ | |||
− | |||
− | + | local output = rErr .. '{| class="wikitable sortable" \n! 아이템 \n! 구조물 \n! 상자 \n! 수량 \n! 확률 \n' .. table.concat( html_java ) |
|
− | + | if q.tablelength( html_java_u ) > 0 then |
|
− | + | output = output .. '|-\n!colspan=5|' .. p['java-upcoming'] .. ' \n' .. table.concat( html_java_u ) |
|
− | + | end |
|
− | + | if q.tablelength( html_bedrock ) > 0 then |
|
− | + | output = output .. '|-\n!colspan=5|' .. p.bedrock .. ' \n' .. table.concat( html_bedrock ) |
|
− | + | end |
|
− | + | if q.tablelength( html_bedrock_u ) > 0 then |
|
− | + | output = output .. '|-\n!colspan=5|' .. p['bedrock-upcoming'] .. ' \n' .. table.concat( html_bedrock_u ) |
|
− | + | end |
|
− | + | output = output .. '|}' .. p.current_frame:extensionTag( 'references', "", { group="note" } ) |
|
+ | |||
− | |||
− | + | return output |
|
end |
end |
||
p.base3_sub = function( itemname, chances ) |
p.base3_sub = function( itemname, chances ) |
||
− | + | local html = {} |
|
− | + | local item_display_name = '' |
|
− | + | local output = "" |
|
− | + | lang = mw.getContentLanguage() |
|
+ | |||
− | |||
− | + | if p.items[itemname].title ~= nil then |
|
− | + | item_display_name = p.items[itemname].title |
|
− | + | else |
|
− | + | item_display_name = q.titlecase( string.gsub( itemname, '-', ' ' ) ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | local objectList = {} |
|
− | + | local ns = q.tablelength( chances ) |
|
− | + | local s = 0 |
|
− | + | local m = 0 |
|
+ | |||
− | |||
− | + | local rn = 0 |
|
− | + | for stacksize, chest_details in pairs( chances ) do |
|
− | + | s = s + 1 |
|
+ | |||
− | |||
− | + | local nc = q.tablelength( chest_details ) |
|
− | + | local c = 0 |
|
− | + | for k, chest in pairs( chest_details ) do |
|
− | + | c = c + 1 |
|
− | + | rn = rn + 1 |
|
− | + | local r = "" |
|
+ | |||
− | |||
− | + | r = r .. '|' .. p.chests[chest.chest_name].container .. '\n|' .. stacksize .. '\n|' .. lang:formatNum( math.floor( chest.chance*1000 + 0.5 ) /10 ) .. ' %' .. '\n' |
|
− | + | if ns ~= s or nc ~= c then |
|
− | + | r = r |
|
+ | end |
||
− | end |
||
+ | |||
− | |||
− | + | table.insert( objectList , { p.chests[chest.chest_name].structID , p.chests[chest.chest_name].structure, r } ) |
|
+ | |||
− | |||
− | + | end |
|
− | + | m = m + nc |
|
− | + | end |
|
− | + | table.sort( objectList, function(a,b) return a[1] < b[1] end ) |
|
− | + | local struct = "" |
|
− | + | local t = "" |
|
− | + | local nt = 1 |
|
− | + | local ntt = 0 |
|
− | + | for v, w in pairs( objectList ) do |
|
− | + | ntt = ntt + 1 |
|
− | + | if w[1] ~= struct then |
|
− | + | if t ~= "" then |
|
− | + | output = output .. "|rowspan=" .. nt .. t |
|
+ | end |
||
− | end |
||
− | + | t = "|'''" .. p.current_frame:expandTemplate{ title = 'EnvLink', args = { w[2], id = w[1] } } .. "'''\n" .. w[3] |
|
− | + | struct = w[1] |
|
− | + | nt = 1 |
|
− | + | else |
|
− | + | t = t .. w[3] |
|
− | + | nt = nt + 1 |
|
− | + | end |
|
− | + | if ntt == m then |
|
− | + | output = output .. "|rowspan=" .. nt .. t |
|
− | + | else |
|
− | + | t = t .. '|-' .. '\n' |
|
− | + | end |
|
− | + | end |
|
− | + | return "|-\n| rowspan=" .. m .. "|'''" .. p.getItem(itemname, item_display_name) .. "'''\n" .. output |
|
+ | |||
− | |||
end |
end |
||
p.getItem = function( itemname, item_display_name ) |
p.getItem = function( itemname, item_display_name ) |
||
− | + | local s = "" |
|
− | + | local k = item_display_name |
|
− | + | local link = item_display_name |
|
− | + | local m = itemname |
|
+ | |||
− | |||
− | + | if p.items[itemname].title ~= nil then |
|
− | + | k = p.items[itemname].title |
|
− | + | end |
|
− | + | if p.items[itemname].link ~= nil then |
|
− | + | link = p.items[itemname].link |
|
− | + | end |
|
− | + | if p.items[itemname].id ~= nil then |
|
− | + | m = p.items[itemname].id |
|
− | + | end |
|
+ | |||
− | |||
− | + | if p.items[itemname][1] == "item" then |
|
− | + | s = p.current_frame:expandTemplate{ title = 'ItemLink', args = { link , k , id = m } } |
|
− | + | elseif p.items[itemname][1] == "block" then |
|
− | + | s = p.current_frame:expandTemplate{ title = 'BlockLink', args = { link , k , id = m } } |
|
− | + | end |
|
− | + | if p.items[itemname].note ~= nil and p.items[itemname].note ~= "" then |
|
− | + | s = s .. p.current_frame:extensionTag( 'ref', p.notes[p.items[itemname].note], { group='note', name=p.items[itemname].note } ) |
|
− | + | end |
|
− | + | return s |
|
+ | |||
− | |||
end |
end |
||
2,887번째 줄: | 2,848번째 줄: | ||
q = { |
q = { |
||
− | + | tablelength = function(T) |
|
− | + | local count = 0 |
|
− | + | for _ in pairs(T) do count = count + 1 end |
|
− | + | return count |
|
− | + | end, |
|
+ | |||
− | |||
− | + | deepcopy = function(orig) |
|
− | + | local orig_type = type(orig) |
|
− | + | local copy |
|
− | + | if orig_type == 'table' then |
|
− | + | copy = {} |
|
− | + | for orig_key, orig_value in next, orig, nil do |
|
− | + | copy[q.deepcopy(orig_key)] = q.deepcopy(orig_value) |
|
− | + | end |
|
− | + | setmetatable(copy, q.deepcopy(getmetatable(orig))) |
|
− | + | else -- number, string, boolean, etc |
|
− | + | copy = orig |
|
− | + | end |
|
− | + | return copy |
|
− | + | end, |
|
+ | |||
− | |||
− | + | single_item_find_values = function( itemname, poolsKey, exclusions_param, other_exclusions_param ) |
|
+ | |||
− | |||
− | + | local chances = {} |
|
+ | |||
− | |||
− | + | local exclusions = q.deepcopy(exclusions_param or {}) |
|
− | + | local other_exclusions = q.deepcopy(other_exclusions_param or {}) |
|
+ | |||
− | |||
− | + | for stacksize, other_exclusion_list in pairs(other_exclusions) do |
|
− | + | if exclusions[stacksize] == nil then |
|
− | + | exclusions[stacksize] = {} |
|
− | + | end |
|
− | + | for _, other_exclusion in pairs(other_exclusion_list) do |
|
− | + | local already_in_here = false |
|
− | + | for _, exclusion in pairs(exclusions[stacksize]) do |
|
− | + | if exclusion["chest_name"] == other_exclusion["chest_name"] and exclusion["chance"] == other_exclusion["chance"] then |
|
− | + | already_in_here = true |
|
+ | break |
||
− | break |
||
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | if not already_in_here then |
|
− | + | table.insert( exclusions[stacksize], other_exclusion ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | end |
|
− | + | for chest_name, chest in pairs( p.chests ) do |
|
− | + | local poolchances = {} |
|
− | + | for k, pool in pairs( chest[poolsKey] or chest.poolsJava or {} ) do |
|
− | + | local poolitem = pool.items[itemname] |
|
− | + | if poolitem ~= nil then |
|
+ | |||
− | |||
− | + | local stacksize = poolitem[1] |
|
− | + | if poolitem[1] ~= poolitem[2] then |
|
− | + | stacksize = stacksize .. "–" .. poolitem[2] |
|
+ | end |
||
− | end |
||
+ | |||
− | |||
− | + | local itemweight = poolitem[3] |
|
+ | |||
− | |||
− | + | local pool_total_item_weight = 0 |
|
− | + | for itemname, item in pairs(pool.items) do |
|
− | + | pool_total_item_weight = pool_total_item_weight + item[3] |
|
+ | end |
||
− | end |
||
+ | |||
− | |||
− | + | local chance = p.calc_chance_any_of_this_item_per_pool( |
|
− | + | pool.rolls[1], pool.rolls[2], |
|
− | + | itemweight, pool_total_item_weight ) |
|
− | + | if poolchances[stacksize] == nil then |
|
− | + | poolchances[stacksize] = chance |
|
+ | else |
||
− | else |
||
− | + | poolchances[stacksize] = poolchances[stacksize] + (1 - poolchances[stacksize]) * chance |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | for stacksize, chance in pairs( poolchances ) do |
|
− | + | local excluded = false |
|
− | + | for _, exclusion in pairs( exclusions[stacksize] or {} ) do |
|
− | + | if exclusion["chest_name"] == chest_name and exclusion["chance"] == chance then |
|
− | + | excluded = true |
|
+ | break |
||
− | break |
||
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | if not excluded then |
|
− | + | if chances[stacksize] == nil then |
|
− | + | chances[stacksize] = {} |
|
+ | end |
||
− | end |
||
− | + | table.insert( chances[stacksize], { ["chance"]=chance, ["chest_name"]=chest_name, ["chest_type"]=( chest.chest_type or "chest" ) } ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | end |
|
− | + | return chances |
|
+ | |||
− | |||
− | + | end, |
|
+ | |||
− | |||
− | + | single_item_plural = function( itemname ) |
|
+ | |||
− | |||
− | + | if string.sub( itemname, -2 ) == 'ss' |
|
− | + | or string.sub( itemname, -2 ) == 'ch' |
|
− | + | or string.sub( itemname, -2 ) == 'sh' |
|
− | + | or string.sub( itemname, -1 ) == 's' then |
|
− | + | return itemname .. 'es' |
|
− | + | end |
|
+ | |||
− | |||
− | + | return itemname .. 's' |
|
+ | |||
− | |||
− | + | end, |
|
+ | |||
− | |||
− | + | massage_args = function( args ) |
|
− | + | -- find what columns to put |
|
+ | |||
− | |||
− | + | local columns = {} |
|
+ | |||
− | |||
− | + | for k, _arg in pairs(args) do |
|
− | + | if p.columns[_arg] ~= nil then |
|
− | + | columns[_arg] = true |
|
+ | end |
||
− | end |
||
− | + | end |
|
+ | |||
− | |||
− | + | if q.tablelength(columns) == 0 then |
|
− | + | for column_name, v in pairs(p.columns) do |
|
− | + | columns[column_name] = true |
|
+ | end |
||
− | end |
||
− | + | end |
|
+ | |||
− | |||
− | + | -- find what chests to show |
|
− | + | local chests = {} |
|
+ | |||
− | |||
− | + | for k, _arg in pairs(args) do |
|
− | + | if p.chests[_arg] ~= nil then |
|
− | + | table.insert( chests, _arg ) |
|
− | + | elseif p.synonyms[_arg] ~= nil then |
|
− | + | table.insert( chests, p.synonyms[_arg] ) |
|
+ | end |
||
− | end |
||
− | + | if p.display_names[_arg] ~= nil then |
|
− | + | local chestname = _arg |
|
− | + | if p.chests[chestname] == nil then |
|
− | + | chestname = p.synonyms[_arg] |
|
+ | end |
||
− | end |
||
− | + | p.chests[chestname].display_name = p.display_names[_arg] |
|
+ | end |
||
− | end |
||
− | + | end |
|
+ | |||
− | |||
− | + | if #chests == 0 then |
|
− | + | for chest_name, chest in pairs(p.chests) do |
|
− | + | local chest_type = ( chest.chest_type or "chest" ) |
|
− | + | if chest_type == "chest" or chest_type == "minecart with chest" then |
|
− | + | table.insert( chests, chest_name ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | end |
|
+ | |||
− | |||
− | + | table.sort( chests ) |
|
+ | |||
− | |||
− | + | return chests, columns |
|
+ | |||
− | |||
− | + | end, |
|
− | + | sort_items = function( e1, e2 ) |
|
+ | |||
− | |||
− | + | if e1.chanceany ~= e2.chanceany then return ( e1.chanceany > e2.chanceany ) end |
|
− | + | if e1.avgamount ~= e2.avgamount then return ( e1.avgamount > e2.avgamount ) end |
|
+ | |||
− | |||
− | + | if e1.material == nil then |
|
+ | |||
− | |||
− | + | e1.material = 0 |
|
− | + | if string.find( e1.itemname, "leather" ) ~= nil then e1.material = 1 end |
|
− | + | if string.find( e1.itemname, "iron" ) ~= nil then e1.material = 2 end |
|
− | + | if string.find( e1.itemname, "gold" ) ~= nil then e1.material = 3 end |
|
− | + | if string.find( e1.itemname, "diamond" ) ~= nil then e1.material = 4 end |
|
− | + | e1.armor = 0 |
|
− | + | if string.find( e1.itemname, "helmet" ) ~= nil or string.find( e1.itemname, "cap" ) ~= nil then e1.armor = 1 end |
|
− | + | if string.find( e1.itemname, "chestplate" ) ~= nil or string.find( e1.itemname, "tunic" ) ~= nil then e1.armor = 2 end |
|
− | + | if string.find( e1.itemname, "leggings" ) ~= nil or string.find( e1.itemname, "pants" ) ~= nil then e1.armor = 3 end |
|
− | + | if string.find( e1.itemname, "boots" ) ~= nil then e1.armor = 4 end |
|
+ | |||
− | |||
− | + | end |
|
+ | |||
− | |||
− | + | if e2.material == nil then |
|
+ | |||
− | |||
− | + | e2.material = 0 |
|
− | + | if string.find( e2.itemname, "leather" ) ~= nil then e2.material = 1 end |
|
− | + | if string.find( e2.itemname, "iron" ) ~= nil then e2.material = 2 end |
|
− | + | if string.find( e2.itemname, "gold" ) ~= nil then e2.material = 3 end |
|
− | + | if string.find( e2.itemname, "diamond" ) ~= nil then e2.material = 4 end |
|
− | + | e2.armor = 0 |
|
− | + | if string.find( e2.itemname, "helmet" ) ~= nil or string.find( e2.itemname, "cap" ) ~= nil then e2.armor = 1 end |
|
− | + | if string.find( e2.itemname, "chestplate" ) ~= nil or string.find( e2.itemname, "tunic" ) ~= nil then e2.armor = 2 end |
|
− | + | if string.find( e2.itemname, "leggings" ) ~= nil or string.find( e2.itemname, "pants" ) ~= nil then e2.armor = 3 end |
|
− | + | if string.find( e2.itemname, "boots" ) ~= nil then e2.armor = 4 end |
|
+ | |||
− | |||
− | + | end |
|
+ | |||
− | |||
− | + | if e1.material ~= e2.material then return ( e1.material < e2.material ) end |
|
− | + | if e1.armor ~= e2.armor then return ( e1.armor < e2.armor ) end |
|
+ | |||
− | |||
− | + | return ( e1.itemname < e2.itemname ) |
|
+ | |||
− | |||
− | + | end, |
|
+ | |||
− | |||
− | + | fill_in_chest_derivative_data = function( chest_names ) |
|
− | + | for k, chest_name in pairs(chest_names) do |
|
− | + | local chest = p.chests[chest_name] |
|
− | + | if chest == nil then break end |
|
− | + | chest.allRollsJava = {} |
|
− | + | chest.itemDataJava = {} |
|
− | + | for k, pool in pairs( chest.poolsJava or {} ) do |
|
− | + | table.insert( chest.allRollsJava, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) ) |
|
− | + | local total_weight = 0 |
|
− | + | for itemname, item in pairs(pool.items) do |
|
− | + | total_weight = total_weight + item[3] |
|
+ | end |
||
− | end |
||
− | + | pool.totalweight = total_weight |
|
− | + | q.fill_in_chest_item_details( chest.itemDataJava, pool, #chest.allRollsJava ) |
|
+ | end |
||
− | end |
||
− | + | chest.allRollsJavaUpcoming = {} |
|
− | + | chest.itemDataJavaUpcoming = {} |
|
− | + | for k, pool in pairs( chest.poolsJavaUpcoming or chest.poolsJava or {} ) do |
|
− | + | table.insert( chest.allRollsJavaUpcoming, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) ) |
|
− | + | local total_weight = 0 |
|
− | + | for itemname, item in pairs(pool.items) do |
|
− | + | total_weight = total_weight + item[3] |
|
+ | end |
||
− | end |
||
− | + | pool.totalweight = total_weight |
|
− | + | q.fill_in_chest_item_details( chest.itemDataJavaUpcoming, pool, #chest.allRollsJavaUpcoming ) |
|
+ | end |
||
− | end |
||
− | + | chest.allRollsBedrock = {} |
|
− | + | chest.itemDataBedrock = {} |
|
− | + | for k, pool in pairs( chest.poolsBedrock or chest.poolsJava or {} ) do |
|
− | + | table.insert( chest.allRollsBedrock, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) ) |
|
− | + | local total_weight = 0 |
|
− | + | for itemname, item in pairs(pool.items) do |
|
− | + | total_weight = total_weight + item[3] |
|
+ | end |
||
− | end |
||
− | + | pool.totalweight = total_weight |
|
− | + | q.fill_in_chest_item_details( chest.itemDataBedrock, pool, #chest.allRollsBedrock ) |
|
+ | end |
||
− | end |
||
− | + | chest.allRollsBedrockUpcoming = {} |
|
− | + | chest.itemDataBedrockUpcoming = {} |
|
− | + | for k, pool in pairs( chest.poolsBedrockUpcoming or chest.poolsJava or {} ) do |
|
− | + | table.insert( chest.allRollsBedrockUpcoming, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) ) |
|
− | + | local total_weight = 0 |
|
− | + | for itemname, item in pairs(pool.items) do |
|
− | + | total_weight = total_weight + item[3] |
|
+ | end |
||
− | end |
||
− | + | pool.totalweight = total_weight |
|
− | + | q.fill_in_chest_item_details( chest.itemDataBedrockUpcoming, pool, #chest.allRollsBedrockUpcoming ) |
|
+ | end |
||
− | end |
||
− | + | end |
|
− | + | end, |
|
− | + | fill_in_chest_item_details = function( data, pool, ct ) |
|
− | + | for item_name, item in pairs(pool.items) do |
|
− | + | if p.items[item_name] then |
|
− | + | local min_stacksize = item[1] |
|
− | + | local max_stacksize = item[2] |
|
− | + | local min_pool_rolls = pool.rolls[1] |
|
− | + | local max_pool_rolls = pool.rolls[2] |
|
− | + | local item_weight = item[3] |
|
+ | |||
− | |||
− | + | if data[item_name] == nil then |
|
− | + | data[item_name] = { |
|
− | + | avgamount = 0, |
|
− | + | chanceany = 0, |
|
− | + | itemname = item_name, |
|
− | + | sortsize = {}, |
|
− | + | sortweight = {}, |
|
− | + | sizes = {}, |
|
− | + | weights = {}, |
|
+ | } |
||
− | } |
||
− | + | for i = 1, ct-1 do |
|
− | + | data[item_name].sortsize[i] = 0 |
|
− | + | data[item_name].sortweight[i] = 0 |
|
− | + | data[item_name].sizes[i] = '—' |
|
− | + | data[item_name].weights[i] = '—' |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | data[item_name].avgamount = data[item_name].avgamount + p.calc_average_amount_this_item_per_pool( |
|
− | + | min_stacksize, max_stacksize, |
|
− | + | min_pool_rolls, max_pool_rolls, |
|
− | + | item_weight, pool.totalweight ) |
|
+ | |||
− | |||
− | + | data[item_name].chanceany = data[item_name].chanceany + (1 - data[item_name].chanceany) * p.calc_chance_any_of_this_item_per_pool( |
|
− | + | min_pool_rolls, max_pool_rolls, |
|
− | + | item_weight, pool.totalweight ) |
|
− | + | data[item_name].sortsize[ct] = ( min_stacksize + max_stacksize ) / 2 |
|
− | + | data[item_name].sortweight[ct] = item_weight; |
|
− | + | data[item_name].sizes[ct] = ( min_stacksize == max_stacksize and min_stacksize or min_stacksize .. '–' .. max_stacksize ) |
|
− | + | data[item_name].weights[ct] = p.current_frame:expandTemplate{ title = 'frac', args = { item_weight, pool.totalweight } } |
|
+ | end |
||
− | end |
||
− | + | end |
|
− | + | for item_name, d in pairs(data) do |
|
− | + | if not d.sizes[ct] then |
|
− | + | d.sortsize[ct] = 0 |
|
− | + | d.sortweight[ct] = 0 |
|
− | + | d.sizes[ct] = '—' |
|
− | + | d.weights[ct] = '—' |
|
+ | end |
||
− | end |
||
− | + | end |
|
− | + | end, |
|
− | + | construct_ordered_items_from_first_chest = function( chest_names, suffix ) |
|
− | + | local items_from_first_table = {} |
|
− | + | local item_chests = {} |
|
− | + | local item_names_ordered = {} |
|
− | + | for item_name, item in pairs( p.chests[chest_names[1]]['itemData'..suffix] ) do |
|
− | + | table.insert( items_from_first_table, item ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | table.sort( items_from_first_table, q.sort_items ) |
|
+ | |||
− | |||
− | + | for k, item in pairs( items_from_first_table ) do |
|
− | + | table.insert( item_names_ordered, item.itemname ) |
|
− | + | item_chests[item.itemname] = true |
|
− | + | end |
|
+ | |||
− | |||
− | + | return item_names_ordered, item_chests |
|
− | + | end, |
|
− | + | get_ordered_items_from_other_chests = function( chest_names, item_chests, suffix ) |
|
− | + | local items_not_from_first_table = {} |
|
+ | |||
− | |||
− | + | for chest_idx = 2, #chest_names do |
|
− | + | for item_name, item in pairs( p.chests[chest_names[chest_idx]]['itemData'..suffix] ) do |
|
− | + | if item_chests[item_name] == nil then |
|
− | + | p.items[item_name].itemname = item_name |
|
− | + | table.insert( items_not_from_first_table, p.chests[chest_names[chest_idx]]['itemData'..suffix][item_name] ) |
|
− | + | item_chests[item_name] = true |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | end |
|
− | + | table.sort( items_not_from_first_table, q.sort_items ) |
|
+ | |||
− | |||
− | + | return items_not_from_first_table |
|
− | + | end, |
|
− | + | add_other_items_to_first_list = function( chest_names, item_names_ordered, item_chests, items_not_from_first_table ) |
|
− | + | for k, item in pairs( items_not_from_first_table ) do |
|
− | + | table.insert( item_names_ordered, item.itemname ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | return item_names_ordered |
|
− | + | end, |
|
− | + | set_up_ordered_item_rows = function( chest_names, item_names_ordered, suffix ) |
|
− | + | for k, itemname in pairs(item_names_ordered) do |
|
− | + | item_names_ordered[k] = {itemname} |
|
− | + | for chest_idx = 1, #chest_names do |
|
− | + | if suffix == 'JavaUpcoming' or p.chests[chest_names[chest_idx]]['pools'..suffix] ~= nil then |
|
− | + | local item_data = p.chests[chest_names[chest_idx]]['itemData'..suffix][itemname] |
|
− | + | if item_data == nil then |
|
− | + | table.insert( item_names_ordered[k], false ) |
|
+ | else |
||
− | else |
||
− | + | table.insert( item_names_ordered[k], item_data ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | end |
|
− | + | return item_names_ordered |
|
− | + | end, |
|
− | + | construct_ordered_item_rows = function( chest_names, suffix ) |
|
− | + | -- for the first chest, sort its by chance desc, then by avg amount desc, then alphabetically asc |
|
− | + | local item_names_ordered, item_chests = q.construct_ordered_items_from_first_chest( chest_names, suffix ) |
|
+ | |||
− | |||
− | + | if #chest_names > 1 then |
|
− | + | -- after that, sort all the remaining items in list order |
|
− | + | local items_not_from_first_table = q.get_ordered_items_from_other_chests( chest_names, item_chests, suffix ) |
|
− | + | item_names_ordered = q.add_other_items_to_first_list( chest_names, item_names_ordered, item_chests, items_not_from_first_table ) |
|
− | + | end |
|
− | + | -- set up item_names_ordered so that each is a row, representing chest values |
|
− | + | item_names_ordered = q.set_up_ordered_item_rows( chest_names, item_names_ordered, suffix ) |
|
+ | |||
− | |||
− | + | return item_names_ordered |
|
− | + | end, |
|
− | + | print_table = function( chest_names, columns, ordered_item_rows, suffix ) |
|
− | + | local html = {} |
|
+ | |||
− | |||
− | + | local use_roll_row = false |
|
− | + | local use_superheader = false |
|
− | + | local superheader_sizes = {} |
|
− | + | for i = 1, #chest_names do |
|
− | + | sh = p.chests[chest_names[i]].superheader |
|
− | + | if sh ~= nil then |
|
− | + | if superheader_sizes[sh] == nil then |
|
− | + | superheader_sizes[sh] = 0 |
|
+ | end |
||
− | end |
||
− | + | superheader_sizes[sh] = superheader_sizes[sh] + 1 |
|
− | + | use_superheader = true |
|
+ | end |
||
− | end |
||
− | + | local allRolls = p.chests[chest_names[i]]['allRolls'..suffix] |
|
− | + | if #allRolls > 1 then |
|
− | + | use_roll_row = true |
|
+ | end |
||
− | end |
||
− | + | end |
|
− | + | if columns['stacksize'] == nil and columns['weight'] == nil then |
|
− | + | use_roll_row = false |
|
− | + | end |
|
+ | |||
− | |||
− | + | local rowspan = ( #chest_names > 1 and 1 or 0 ) + ( use_superheader and 1 or 0 ) + 1 |
|
− | + | local hide_col_description = rowspan > 1 and q.tablelength(columns) == 1 |
|
− | + | if use_roll_row then |
|
− | + | rowspan = rowspan + 1 |
|
− | + | end |
|
+ | |||
− | |||
− | + | if q.tablelength(columns) == 1 then |
|
− | + | for column_name, v in pairs(columns) do |
|
− | + | table.insert( html, "Values represent " ) |
|
− | + | table.insert( html, p.columns[column_name] ) |
|
− | + | table.insert( html, "\n" ) |
|
+ | end |
||
− | end |
||
− | + | end |
|
− | + | if #chest_names == 1 then |
|
+ | |||
− | |||
− | + | if q.tablelength(columns) == 1 then |
|
− | + | table.insert( html, "<br>" ) |
|
+ | end |
||
− | end |
||
+ | |||
− | |||
− | + | local chest_name = chest_names[1] |
|
− | + | local allRolls = p.chests[chest_name]['allRolls'..suffix] |
|
− | + | local chest_type = p.chests[chest_name].chest_type or "chest" |
|
− | + | local display_name = p.chests[chest_name].display_name |
|
− | + | chest_name = chest_name:gsub( "-", " " ) |
|
+ | |||
− | |||
− | + | table.insert( html, "Each " ) |
|
− | + | table.insert( html, display_name or chest_name ) |
|
− | + | if chest_type ~= 'chest' and chest_type ~= 'minecart with chest' then |
|
− | + | table.insert( html, " contains " ) |
|
− | + | else |
|
− | + | table.insert( html, " chest contains " ) |
|
+ | end |
||
− | end |
||
− | + | if #allRolls == 1 then |
|
− | + | table.insert( html, allRolls[1] ) |
|
− | + | table.insert( html, " item stacks, " ) |
|
− | + | else |
|
− | + | table.insert( html, ' items drawn from ' ) |
|
− | + | table.insert( html, #allRolls ) |
|
− | + | table.insert( html, ' pools, ' ) |
|
+ | end |
||
− | end |
||
− | + | table.insert( html, " with the following distribution: \n" ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | table.insert( html, '<div style="overflow:auto">\n' ) |
|
− | + | table.insert( html, "<table class='wikitable sortable jquery-tablesorter'>\n" ) |
|
− | + | table.insert( html, "<tr>\n" ) |
|
− | + | table.insert( html, "<th rowspan=" ) |
|
− | + | table.insert( html, ( rowspan - ( hide_col_description and 1 or 0 ) ) ) |
|
− | + | table.insert( html, "></th>\n" ) |
|
+ | |||
− | |||
− | + | local superheader_cols_used = {} |
|
+ | |||
− | |||
− | + | if #chest_names > 1 then |
|
− | + | local row1, row2 = {}, {} |
|
− | + | for i = 1, #chest_names do |
|
+ | |||
− | |||
− | + | if suffix == 'JavaUpcoming' or p.chests[chest_names[i]]['pools'..suffix] ~= nil then |
|
− | + | local allRolls = p.chests[chest_names[i]]['allRolls'..suffix] |
|
− | + | local colspan = q.tablelength(columns) |
|
− | + | local allRollsSpan = #allRolls == 0 and 1 or #allRolls |
|
− | + | if columns['stacksize'] ~= nil then |
|
− | + | colspan = colspan - 1 + allRollsSpan |
|
+ | end |
||
− | end |
||
− | + | if columns['weight'] ~= nil then |
|
− | + | colspan = colspan - 1 + allRollsSpan |
|
+ | end |
||
− | end |
||
− | + | local row = row1 |
|
+ | |||
− | |||
− | + | rowspan = 1 |
|
− | + | if use_superheader then |
|
− | + | sh = p.chests[chest_names[i]].superheader |
|
− | + | if sh ~= nil then |
|
− | + | if superheader_cols_used[sh] == nil then |
|
− | + | table.insert( row, "<th colspan=" ) |
|
− | + | table.insert( row, ( colspan * superheader_sizes[sh] ) ) |
|
− | + | table.insert( row, ">" ) |
|
− | + | table.insert( row, sh ) |
|
− | + | table.insert( row, "</th>\n" ) |
|
− | + | superheader_cols_used[sh] = 0 |
|
+ | end |
||
− | end |
||
− | + | row = row2 |
|
+ | else |
||
− | else |
||
− | + | rowspan = rowspan + 1 |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | if use_roll_row and hide_col_description and #allRolls < 2 then |
|
− | + | rowspan = rowspan + 1 |
|
+ | end |
||
− | end |
||
− | + | table.insert( row, "<th colspan=" ) |
|
− | + | table.insert( row, colspan ) |
|
− | + | if rowspan > 1 then |
|
− | + | table.insert( row, " rowspan=" ) |
|
− | + | table.insert( row, rowspan ) |
|
+ | end |
||
− | end |
||
− | + | table.insert( row, ">" ) |
|
− | + | table.insert( row, p.chests[ chest_names[i] ].header ) |
|
− | + | if #allRolls > 0 then |
|
− | + | table.insert( row, ' <br><span style="font-weight:normal; font-style:italic; font-size:11px;">(' ) |
|
− | + | if #allRolls == 1 then |
|
− | + | table.insert( row, allRolls[1] ) |
|
+ | else |
||
− | else |
||
− | + | local s = ( #allRolls > 2 and ', ' or ' ' ) |
|
− | + | for i = 1, #allRolls-1 do |
|
− | + | table.insert( row, allRolls[i] ) |
|
− | + | table.insert( row, s ) |
|
+ | end |
||
− | end |
||
− | + | table.insert( row, 'and ' ) |
|
− | + | table.insert( row, allRolls[#allRolls] ) |
|
+ | end |
||
− | end |
||
− | + | table.insert( row, ' stacks)</span>' ) |
|
+ | end |
||
− | end |
||
− | + | table.insert( row, "</th>\n" ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
+ | |||
− | |||
− | + | table.insert( html, table.concat( row1 ) ) |
|
− | + | table.insert( html, "</tr><tr>\n" ) |
|
− | + | if #row2 then |
|
− | + | table.insert( html, table.concat( row2 ) ) |
|
− | + | table.insert( html, "</tr><tr>\n" ) |
|
+ | end |
||
− | end |
||
− | + | end |
|
− | + | if not hide_col_description then |
|
− | + | local headersort_th_open |
|
− | + | if use_roll_row then |
|
− | + | headersort_th_open = "<th rowspan='2' class='headersort' role='columnheader button' data-sort-type='number'> <abbr title='" |
|
− | + | else |
|
− | + | headersort_th_open = "<th class='headersort' role='columnheader button' data-sort-type='number'> <abbr title='" |
|
+ | end |
||
− | end |
||
− | + | for i = 1, #chest_names do |
|
− | + | if suffix == 'JavaUpcoming' or p.chests[chest_names[i]]['pools'..suffix] ~= nil then |
|
− | + | local allRolls = p.chests[chest_names[i]]['allRolls'..suffix] |
|
− | + | local allRollsSpan = #allRolls == 0 and 1 or #allRolls |
|
− | + | local headersort_th_colspan_open |
|
− | + | if #allRolls > 1 then |
|
− | + | headersort_th_colspan_open = "<th colspan='" .. allRollsSpan .. "' role='columnheader'> <abbr title='" |
|
+ | else |
||
− | else |
||
− | + | headersort_th_colspan_open = headersort_th_open |
|
+ | end |
||
− | end |
||
− | + | if columns['stacksize'] ~= nil then |
|
− | + | table.insert( html, headersort_th_colspan_open ) |
|
− | + | table.insert( html, p.columns['stacksize'] ) |
|
− | + | table.insert( html, "'> Stack Size </abbr></th>\n" ) |
|
+ | end |
||
− | end |
||
− | + | if columns['weight'] ~= nil then |
|
− | + | table.insert( html, headersort_th_colspan_open ) |
|
− | + | table.insert( html, p.columns['weight'] ) |
|
− | + | table.insert( html, "'> Weight" ) |
|
− | + | table.insert( html, "</abbr></th>\n" ) |
|
+ | end |
||
− | end |
||
− | + | if columns['items'] ~= nil then |
|
− | + | table.insert( html, headersort_th_open ) |
|
− | + | table.insert( html, p.columns['items'] ) |
|
− | + | table.insert( html, "'> # Items </abbr></th>\n" ) |
|
+ | end |
||
− | end |
||
− | + | if columns['chance'] ~= nil then |
|
− | + | table.insert( html, headersort_th_open ) |
|
− | + | table.insert( html, p.columns['chance'] ) |
|
− | + | table.insert( html, "'> Chance </abbr></th>\n" ) |
|
+ | end |
||
− | end |
||
− | + | if columns['chests'] ~= nil then |
|
− | + | table.insert( html, headersort_th_open ) |
|
− | + | table.insert( html, p.columns['chests'] ) |
|
− | + | table.insert( html, "'> # Chests </abbr></th>\n" ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | table.insert( html, "</tr><tr>\n" ) |
|
− | + | end |
|
+ | |||
− | |||
− | + | if use_roll_row then |
|
− | + | local rowcols = ( columns['stacksize'] ~= nil and 1 or 0 ) + ( columns['weight'] ~= nil and 1 or 0 ) |
|
− | + | for i = 1, #chest_names do |
|
− | + | local allRolls = p.chests[chest_names[i]]['allRolls'..suffix] |
|
− | + | if #allRolls > 1 then |
|
− | + | for j = 1, rowcols do |
|
− | + | for k = 1, #allRolls do |
|
− | + | table.insert( html, "<th class='headersort' role='columnheader button' data-sort-type='number' style='font-weight:normal'><abbr title='The chest will draw " ) |
|
− | + | table.insert( html, allRolls[k] ) |
|
− | + | table.insert( html, " stack(s) randomly from this pool.'>" ) |
|
− | + | table.insert( html, allRolls[k] ) |
|
− | + | table.insert( html, "×</abbr></th>\n" ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | table.insert( html, "</tr><tr>\n" ) |
|
− | + | end |
|
− | + | for i = 1, #ordered_item_rows do |
|
− | + | if type( ordered_item_rows[i] ) == "table" then |
|
− | + | for j = 1, #ordered_item_rows[i] do |
|
− | + | local chest_item = ordered_item_rows[i][j] |
|
+ | |||
− | |||
− | + | if type( chest_item ) == "table" then |
|
+ | |||
− | |||
− | + | local avg_amount = string.format("%.3f", chest_item.avgamount) |
|
− | + | local chance_any = string.format("%.1f", chest_item.chanceany*100) .. "%" |
|
− | + | local num_chests = string.format("%.1f", 1/chest_item.chanceany) |
|
+ | |||
− | |||
− | + | table.insert( html, "\n" ) |
|
− | + | if columns['stacksize'] ~= nil then |
|
− | + | for k = 1, #chest_item.sizes do |
|
− | + | table.insert( html, "<td style='text-align:center;' data-sort-value='" ) |
|
− | + | table.insert( html, ( chest_item.sortsize[k] == 0 and "9e99" or chest_item.sortsize[k] ) ) |
|
− | + | table.insert( html, "'>" ) |
|
− | + | table.insert( html, chest_item.sizes[k] ) |
|
− | + | table.insert( html, "</td>" ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | if columns['weight'] ~= nil then |
|
− | + | for k = 1, #chest_item.sizes do |
|
− | + | table.insert( html, "<td style='text-align:center;' data-sort-value='" ) |
|
− | + | table.insert( html, ( chest_item.sortweight[k] == 0 and "9e99" or chest_item.sortweight[k] ) ) |
|
− | + | table.insert( html, "'>" ) |
|
− | + | table.insert( html, chest_item.weights[k] ) |
|
− | + | table.insert( html, "</td>" ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | if columns['items'] ~= nil then |
|
− | + | table.insert( html, "<td style='text-align:center;'>" ) |
|
− | + | table.insert( html, avg_amount ) |
|
− | + | table.insert( html, "</td>" ) |
|
+ | end |
||
− | end |
||
− | + | if columns['chance'] ~= nil then |
|
− | + | table.insert( html, "<td style='text-align:center;'>" ) |
|
− | + | table.insert( html, chance_any ) |
|
− | + | table.insert( html, "</td>" ) |
|
+ | end |
||
− | end |
||
− | + | if columns['chests'] ~= nil then |
|
− | + | table.insert( html, "<td style='text-align:center;'>" ) |
|
− | + | table.insert( html, num_chests ) |
|
− | + | table.insert( html, "</td>" ) |
|
+ | end |
||
− | end |
||
+ | |||
− | |||
− | + | elseif type( chest_item ) == "boolean" then |
|
− | + | local allRolls = p.chests[chest_names[j-1]]['allRolls'..suffix] |
|
− | + | local allRollsSpan = #allRolls == 0 and 1 or #allRolls |
|
− | + | table.insert( html, "\n" ) |
|
− | + | if columns['stacksize'] ~= nil then |
|
− | + | for k = 1, allRollsSpan do |
|
− | + | table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | if columns['weight'] ~= nil then |
|
− | + | for k = 1, allRollsSpan do |
|
− | + | table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" ) |
|
+ | end |
||
− | end |
||
+ | end |
||
− | end |
||
− | + | if columns['items'] ~= nil then |
|
− | + | table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" ) |
|
+ | end |
||
− | end |
||
− | + | if columns['chance'] ~= nil then |
|
− | + | table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" ) |
|
+ | end |
||
− | end |
||
− | + | if columns['chests'] ~= nil then |
|
− | + | table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" ) |
|
+ | end |
||
− | end |
||
+ | else |
||
− | else |
||
− | + | if i > 1 then |
|
− | + | table.insert( html, "</tr><tr>" ) |
|
+ | end |
||
− | end |
||
+ | |||
− | |||
− | + | local item = p.items[chest_item] |
|
+ | |||
− | |||
− | + | local s = require( '모듈:Sprite' ) |
|
− | + | table.insert( html, "\n<td>" ) |
|
− | + | local image, spriteCat = s.link{ |
|
− | + | id=item.id or chest_item, |
|
− | + | link=item.link or string.gsub(chest_item,'-',' '), |
|
− | + | text=item.title or q.titlecase(string.gsub(chest_item,'-',' ')), |
|
− | + | data= ( item[1] == 'item' and 'ItemSprite' or 'BlockSprite' ) |
|
+ | } |
||
− | } |
||
− | + | table.insert( html, image ) |
|
− | + | table.insert( html, spriteCat ) |
|
− | + | if item.note and p.notes[item.note] then |
|
− | + | table.insert( html, p.current_frame:extensionTag( 'ref', p.notes[item.note], { group='note', name=item.note } ) ) |
|
+ | end |
||
− | end |
||
− | + | table.insert( html, "</td>" ) |
|
+ | end |
||
− | end |
||
+ | |||
− | |||
− | + | if j == #ordered_item_rows[i] then |
|
− | + | table.insert( html, "</tr>" ) |
|
+ | end |
||
− | end |
||
+ | |||
− | |||
+ | end |
||
− | end |
||
− | + | table.insert( html, "\n" ) |
|
+ | end |
||
− | end |
||
− | + | end |
|
+ | |||
− | |||
− | + | table.insert( html, "</table></div>" ) |
|
+ | |||
− | |||
− | + | return table.concat( html ) |
|
+ | |||
− | |||
− | + | end, |
|
+ | |||
− | |||
− | + | titlecase = function( str ) |
|
− | + | local buf = {} |
|
− | + | for word in string.gfind(str, "%S+") do |
|
− | + | if word == "and" then |
|
− | + | table.insert( buf, word ) |
|
− | + | else |
|
− | + | local first, rest = string.sub( word, 1, 1 ), string.sub( word, 2 ) |
|
− | + | table.insert( buf, string.upper(first) .. string.lower(rest) ) |
|
+ | end |
||
− | end |
||
− | + | end |
|
− | + | return table.concat( buf, " " ) |
|
− | + | end, |
|
+ | |||
− | |||
− | + | capitalize = function( str ) |
|
− | + | return ( string.lower(str):gsub( "^%l", string.upper ) ) |
|
− | + | end, |
|
− | + | lcfirst = function( str ) |
|
− | + | return ( string.gsub( str, "^%u", string.lower ) ) |
|
− | + | end, |
|
+ | |||
− | |||
− | + | compare_tables = function( a, b ) |
|
− | + | local seen = {} |
|
− | + | for k, v in pairs( a ) do |
|
− | + | if type( v ) ~= type( b[k] ) then |
|
− | + | return true |
|
+ | end |
||
− | end |
||
− | + | if v ~= b[k] then |
|
− | + | return true |
|
+ | end |
||
− | end |
||
− | + | if type( v ) == 'table' and q.compare_tables( v, b[k] ) then |
|
− | + | return true |
|
+ | end |
||
− | end |
||
− | + | seen[k] = true |
|
− | + | end |
|
− | + | for k, v in pairs( b ) do |
|
− | + | if not seen[k] then |
|
− | + | return true |
|
+ | end |
||
− | end |
||
− | + | end |
|
− | + | return false |
|
− | + | end, |
|
} |
} |
||
string.lpad = function(str, len, char) |
string.lpad = function(str, len, char) |
||
− | + | if char == nil then char = ' ' end |
|
− | + | return string.rep(char, len - #(''..str)) .. str |
|
end |
end |
||
2021년 9월 11일 (토) 00:59 판
Maintenance
이 문서는 Java Edition 1.15.2의 데이터를 가지고 있습니다. (1.20.1 데이터로 업데이트 필요). | 23:21, 15 April 2020 (UTC) |
이 문서는 Java Edition 스냅숏 20w17a의 데이터를 가지고 있습니다. | 15:38, 22 April 2020 (UTC) |
이 문서는 Bedrock Edition 1.14.60의 데이터를 가지고 있습니다. (1.20.0 데이터로 업데이트 필요). | 04:02, 19 April 2020 (UTC) |
이 문서는 Bedrock Edition 베타 beta 1.16.0.57의 데이터를 가지고 있습니다. (베타 1.20.10.21 데이터로 업데이트 필요). | 04:02, 19 April 2020 (UTC) |
.base usage (Template:LootChest)
Generates a table of the contents of the designated chests, with columns corresponding to various statistics about the availability of those items.
Invoking
It takes any number of chest parameters, and any number of column parameters, in no particular order.
If no chest parameters are listed, it displays them all; likewise for column parameters.
{{#invoke:LootChest|base [ |<chestParam1> ... |<chestParamN> ] [ |<columnHideParam1> ... |<columnHideParamN> ] }}
Chest parameters
bastion-bridge,
bastion-generic,
bastion-hoglin-stable,
bastion-treasure,
bonus,
buried-treasure,
desert-temple ( desert ),
dungeon,
end-city,
igloo,
jungle-temple ( jungle ),
jungle-temple-dispenser,
mineshaft,
nether-fortress ( nether, fortress ),
pillager-outpost ( outpost ),
ruined-portal,
shipwreck-map,
shipwreck-supply,
shipwreck-treasure,
stronghold-altar ( altar ),
stronghold-library ( library ),
stronghold-storeroom ( storeroom ),
underwater-ruin-big,
underwater-ruin-small,
village-armorer ( armorer ),
village-butcher ( butcher ),
village-cartographer ( cartographer ),
village-desert-house ( desert-house ),
village-fisherman ( fisherman ),
village-fletcher ( fletcher ),
village-mason ( mason ),
village-plains-house ( plains-house ),
village-savanna-house ( savanna-house ),
village-shepherd ( shepherd ),
village-snowy-house ( snowy-house ),
village-taiga-house ( taiga-house ),
village-tannery ( tannery ),
village-temple ( temple ),
village-toolsmith ( toolsmith ),
village-weaponsmith ( weaponsmith ),
woodland-mansion ( mansion )
Column parameters
chance: 하나의 상자에서 이 아이템이 존재할 확률.,
chests: 이 아이템을 찾으려면 평균 몇개의 상자를 찾아야 할까?,
items: 상자당 기대되는 아이템의 수. 많은 상자를 평균한 값임.,
stacksize: 이 아이템의 묶음의 수 (쌓기가 안되는 경우, 그냥 갯수).,
weight: 이 종류에서 다른 아이템에 비한 이 아이템의 가중치.
Example
{{#invoke:LootChest|base}}
→ all chests and all columns
{{#invoke:LootChest|base|blacksmith|jungle|bonus|chance|stacksize}}
→ only blacksmith and jungle chests, and only 'stacksize' and 'chance' columns
.base2 usage (Template:LootChestItem)
Prints a summary of this item's availability in the various worldgen chests.
Invoking
It takes exactly one item name as a parameter.
{{#invoke:LootChest|base2|<itemParam>}}
Item parameters
acacia-log, acacia-sapling, activator-rail, ancient-debris, apple, arrow, bamboo, barrel, basalt, beetroot, beetroot-seeds, beetroot-soup, bell, birch-log, birch-sapling, black-wool, block-of-gold, blue-ice, bone, bone-block, book, book-and-quill, bottle-o'-enchanting, bread, brown-mushroom, brown-wool, bucket, buried-treasure-map, cactus, cake, carrot, chain, chainmail-boots, chainmail-chestplate, chainmail-helmet, chainmail-leggings, clay-ball, clock, coal, cocoa-beans, compass, cooked-cod, cooked-porkchop, cooked-salmon, crimson-fungus, crimson-nylium, crimson-roots, crossbow, crying-obsidian, damaged-diamond-boots, damaged-diamond-chestplate, damaged-diamond-helmet, damaged-diamond-leggings, damaged-diamond-sword, damaged-level-enchanted-crossbow, damaged-level-enchanted-netherite-boots, damaged-level-enchanted-netherite-chestplate, damaged-level-enchanted-netherite-helmet, damaged-level-enchanted-netherite-leggings, damaged-level-enchanted-netherite-sword, damaged-netherite-boots, damaged-netherite-chestplate, damaged-netherite-helmet, damaged-netherite-leggings, damaged-netherite-sword, damaged-random-enchanted-crossbow, damaged-random-enchanted-diamond-boots, damaged-random-enchanted-diamond-chestplate, damaged-random-enchanted-diamond-helmet, damaged-random-enchanted-diamond-leggings, damaged-random-enchanted-diamond-shovel, damaged-random-enchanted-diamond-sword, damaged-random-enchanted-netherite-axe, damaged-random-enchanted-netherite-boots, damaged-random-enchanted-netherite-chestplate, damaged-random-enchanted-netherite-helmet, damaged-random-enchanted-netherite-hoe, damaged-random-enchanted-netherite-leggings, damaged-random-enchanted-netherite-pickaxe, damaged-random-enchanted-netherite-shovel, damaged-random-enchanted-netherite-sword, dandelion, dark-oak-log, dark-oak-sapling, dead-bush, detector-rail, diamond, diamond-chestplate, diamond-hoe, diamond-horse-armor, disc-13, disc-cat, disc-mellohi, disc-pigstep, disc-wait, egg, emerald, empty, empty-map, enchanted-book, enchanted-book-rnd, enchanted-book-rnd-soul-speed, enchanted-fishing-rod, enchanted-golden-apple, ender-pearl, feather, fern, fire-charge, flint, flint-and-steel, flower-pot, furnace, gilded-blackstone, glistering-melon-slice, glowstone, gold-ingot, gold-nugget, golden-apple, golden-boots, golden-carrot, golden-chestplate, golden-helmet, golden-hoe, golden-horse-armor, golden-leggings, golden-sword, grass, gray-wool, green-dye, gunpowder, heart-of-the-sea, ink-sac, iron-boots, iron-chestplate, iron-helmet, iron-horse-armor, iron-ingot, iron-leggings, iron-nugget, iron-pickaxe, iron-shovel, iron-sword, jungle-log, jungle-sapling, lapis-lazuli, large-fern, lead, leather, leather-boots, leather-cap, leather-pants, leather-tunic, level-enchanted-diamond-boots, level-enchanted-diamond-chestplate, level-enchanted-diamond-helmet, level-enchanted-diamond-leggings, level-enchanted-diamond-pickaxe, level-enchanted-diamond-shovel, level-enchanted-diamond-sword, level-enchanted-golden-boots, level-enchanted-golden-chestplate, level-enchanted-golden-helmet, level-enchanted-golden-hoe, level-enchanted-golden-leggings, level-enchanted-iron-boots, level-enchanted-iron-chestplate, level-enchanted-iron-helmet, level-enchanted-iron-leggings, level-enchanted-iron-pickaxe, level-enchanted-iron-shovel, level-enchanted-iron-sword, light-gray-wool, light-weighted-pressure-plate, lodestone, magma-block, magma-cream, map, melon-seeds, name-tag, nether-quartz, nether-wart, netherite-boots, netherite-chestplate, netherite-helmet, netherite-ingot, netherite-leggings, netherite-scrap, oak-log, oak-planks, oak-sapling, oak-sign, obsidian, paper, piglin-banner-pattern, poisonous-potato, polished-basalt, poppy, potato, potion-of-regeneration, potion-of-water-breathing, powered-rail, prismarine-crystals, pumpkin, pumpkin-pie, pumpkin-seeds, rail, random-enchanted-golden-axe, random-enchanted-golden-boots, random-enchanted-golden-chestplate, random-enchanted-golden-helmet, random-enchanted-golden-hoe, random-enchanted-golden-leggings, random-enchanted-golden-pickaxe, random-enchanted-golden-shovel, random-enchanted-golden-sword, random-enchanted-leather-boots, random-enchanted-leather-cap, random-enchanted-leather-pants, random-enchanted-leather-tunic, raw-beef, raw-cod, raw-mutton, raw-porkchop, raw-salmon, redstone, rotten-flesh, saddle, sand, shears, smooth-stone, snow-block, snowball, soul-sand, soul-speed-enchanted-golden-boots, spectral-arrow, spider-eye, spruce-log, spruce-sapling, spruce-sign, stick, stone, stone-axe, stone-bricks, stone-pickaxe, string, suspicious-stew, sweet-berries, tall-grass, tnt, torch, tripwire-hook, water-bucket, wheat, wheat-seeds, white-wool, wooden-axe, wooden-hoe, wooden-pickaxe, yellow-dye
Example
{{#invoke:LootChest|base2|iron-ingot}}
→
아이템 | 구조물 | 상자 | 수량 | 확률 |
---|---|---|---|---|
철 주괴 | 던전 | 1–4 | 18.5 % | |
폐광 | 1–5 | 31.6 % | ||
보루 잔해 | 다리 상자 | 2–8 | 12.2 % | |
보물 상자 | 3–9 | 29.4 % | ||
일반 상자 | 1–6 | 16 % | ||
땅에 묻힌 보물 | 1–4 | 99.4 % | ||
사막 사원 | 1–5 | 18 % | ||
엔드 시티 | 4–8 | 38.4 % | ||
정글 사원 | 상자 | 1–5 | 37.4 % | |
네더 요새 | 1–5 | 19 % | ||
약탈자 전초기지 | 1–3 | 30.5 % | ||
난파선 | 보물 상자 | 1–5 | 97.4 % | |
요새 | 저장실 상자 | 1–5 | 34.3 % | |
제단 상자 | 1–5 | 23.3 % | ||
마을 | 갑옷 제조인 상자 | 1–3 | 54.2 % | |
무기 대장장이 상자 | 1–5 | 45.1 % | ||
도구 대장장이 상자 | 1–5 | 41.2 % | ||
삼림 대저택 | 1–4 | 18.5 % | ||
베드락 에디션 | ||||
철 주괴 | 땅에 묻힌 보물 | 3–5 | 57.2 % | |
정글 사원 | 상자 | 1–5 | 37.3 % | |
요새 | 저장실 상자 | 1–5 | 28.5 % | |
제단 상자 | 1–5 | 22.6 % |
{{#invoke:LootChest|base2|emerald}}
→
아이템 | 구조물 | 상자 | 수량 | 확률 |
---|---|---|---|---|
에메랄드 | 땅에 묻힌 보물 | 4–8 | 53.1 % | |
사막 사원 | 1–3 | 18 % | ||
엔드 시티 | 2–6 | 9 % | ||
이글루 | 1 | 7.6 % | ||
정글 사원 | 상자 | 1–3 | 8.7 % | |
난파선 | 보물 상자 | 1–5 | 73.7 % | |
해저 폐허 | 해저 폐허의 큰 상자 | 1 | 14.9 % | |
해저 폐허의 작은 상자 | 1 | 16.4 % | ||
마을 | 양치기 상자 | 1 | 12.3 % | |
가죽 세공인 상자 | 1–4 | 17.3 % | ||
갑옷 제조인 상자 | 1 | 31.8 % | ||
어부 상자 | 1 | 24.2 % | ||
사막 마을 상자 | 1–3 | 14.3 % | ||
화살 제조인 상자 | 1 | 12.3 % | ||
타이가 집 상자 | 1–4 | 18.6 % | ||
사바나 집 상자 | 1–4 | 21.5 % | ||
석공 상자 | 1 | 20.8 % | ||
평원 집 상자 | 1–4 | 22.8 % | ||
사원 상자 | 1–4 | 25.4 % | ||
도살업자 상자 | 1 | 10.2 % | ||
눈 덮인 집 상자 | 1–4 | 9.9 % | ||
베드락 에디션 | ||||
에메랄드 | 정글 사원 | 상자 | 1–3 | 8.7 % |
요새 | 제단 상자 | 1–3 | 7.2 % | |
마을 | 타이가 집 상자 | 1–4 | 20.3 % |
Source
- The data is set up within
p
so that it can be pulled directly from (or compared directly to) the minecraft loot table files. - stack size given here (and given in code) can be larger than the stackable size of the item, prominently in the case of enchanted books. However this fact does not affect the calculated values. This is because the game puts the right number of items, but unstacked rather than stacked.
Data structure
p.items
'<item-id>' = {
- This key must match a sprite name for the items/blocks defined in Module:BlockSprite or Module:ItemSprite, unless
id
is included in the item definition.
- This key must match a sprite name for the items/blocks defined in Module:BlockSprite or Module:ItemSprite, unless
'<sprite-type>'
- Either
item
orblock
.
- Either
[, id='<sprite-id>']
- Use this to specify a sprite defined in Module:BlockSprite or Module:ItemSprite. Otherwise it will use the sprite with the name given by
item-id
.
- Use this to specify a sprite defined in Module:BlockSprite or Module:ItemSprite. Otherwise it will use the sprite with the name given by
[, link='<item-link>']
- A link to a page that is different from the sprite-id name. Used in Template:LootChest.
[, title='<item-text>']
- A name for an item that is different from the sprite-id name.
[, cannot_stack=false]
- Use this to indicate that the item comes in groups rather than in stacks. Used in Template:LootChestItem.
[, plural=(false|'<custom-plural-word>')]
- Use
false
when a word has no plural, like 'Nether Wart'. Use a custom plural word when you cannot simply append an 's' to the base word to make it plural, like 'Bottles o' Enchanting'. Used in Template:LootChestItem.
- Use
[, preserve_case=false]
- Use
false
when an item name should follow the capitalization exactly specified intitle
, and not follow sentence case, like 'TNT'.
- Use
[, note='<note-name>']
- Indicates that a note will appear next to this item in the table. (notes are defined directly below the item list)
}
p.notes
'<note-name>' = '<note-full-text>'
p.chests[n].pools[n]
p.chests[n].poolsDev[n]
- rolls
{ <min-number-of-stacks>, <max-number-of-stacks> }
p.chests[n].pools[n].items
p.chests[n].poolsDev[n].items
'<item-id>' = { <min-stack-size>, <max-stack-size>, <item-weight> }
p.synonyms
'<chest-name-synonym>' = '<original-interally-valid-chest-name>'
- Allows additional chest names to be used as parameters, in addition to the ones defined in p.chests.
p.display_names
'<chest-name-given-via-parameter>' = '<name-displayed-in-single-chest-table>'
- If a single chest parameter is used, this defines the name it is called in the summary text above the table.
p.columns
'<column-name>' = '<column-full-description>'
- The column descriptions, found either in the tooltip on the column header, or in the summary text above the table.
Functions
The following functions are made available at the top of the file, for ease of inspection.
calc_average_amount_this_item_per_chest
- average number of a certain item (not number of stacks), per-chest (not per-structure).
calc_chance_any_of_this_item_per_chest
- chance that at least one of a certain item will be found, per-chest (not per-structure).
Item tests
{{#invoke:LootChest|base2_test}}
Crimson fungi는 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 2–7개 묶음으로 생성된다.
Damaged diamond boots이 아이템의 내구성은 20%와 65% 사이에 있다.는 8.6% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
Damaged diamond chestplate이 아이템의 내구성은 20%와 65% 사이에 있다.는 8.6% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
Damaged diamond helmet이 아이템의 내구성은 20%와 65% 사이에 있다.는 8.6% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
Damaged diamond leggings이 아이템의 내구성은 20%와 65% 사이에 있다.는 8.6% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
Enchanted fishing rod보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 21.7% 확률로 해저 폐허 상자에서, 41.7% 확률로 해저 폐허 상자에서 1개 묶음으로 생성된다.
Poisonous potatoes는 44.9% 확률로 난파선 보급품 상자에서 2–6개 묶음으로 생성된다.
Poppies는 12.1% 확률로 평원 마을 집 상자에서 1개 묶음으로 생성된다.
Powered 레일은 27.1% 확률로 폐광 상자가 실린 광산 수레에서 1–4개 묶음으로 생성된다.
TNT는 8.1% 확률로 난파선 보급품 상자에서, 62.7% 확률로 땅에 묻힌 보물 상자에서 1–2개 묶음으로 생성된다.
베드락 에디션에서는 34.3% 확률로 땅에 묻힌 보물 상자에서 1–2개 묶음으로 생성된다.
베드락 에디션에서는 갈색 버섯은 모든 보너스 상자에서 1–2개 묶음으로 생성된다.
베드락 에디션에서는 먹물 주머니는 40.0% 확률로 요새 저장실 상자에서 1–3개 묶음으로 생성된다.
베드락 에디션에서는 사슬 레깅스는 57.2% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 사슬 부츠는 57.2% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 사슬 투구는 57.2% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 수중 호흡 물약은 46.9% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 음반 (mellohi)은 18.9% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 음반 (wait)은 18.9% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 자작나무 묘목은 16.7% 확률로 보너스 상자에서 4개 묶음으로 생성된다.
베드락 에디션에서는 재생의 물약은 34.3% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 정글나무 묘목은 16.7% 확률로 보너스 상자에서 4개 묶음으로 생성된다.
베드락 에디션에서는 지도Named unknown map, but changed to map 0, the scale level is 1:4, Maps from the same stack are stackable, but maps that are not stacked are unstackable despite looking identical.는 7.7% 확률로 난파선 지도 상자에서, 10.5% 확률로 요새 도서관 상자에서 1개 묶음으로 생성된다. 46.2% 확률로 마을 지도 제작자 상자에서 1–3개 묶음으로 생성된다.
베드락 에디션에서는 짙은 참나무 묘목은 16.7% 확률로 보너스 상자에서 4개 묶음으로 생성된다.
베드락 에디션에서는 참나무 표지판은 10.7% 확률로 타이가 마을 집 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 책과 깃펜은 18.9% 확률로 땅에 묻힌 보물 상자에서 1–2개 묶음으로 생성된다.
베드락 에디션에서는 케이크는 4.1% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 코코아 콩은 50.0% 확률로 보너스 상자에서 1–2개 묶음으로 생성된다.
가문비나무 묘목은 40.6% 확률로 타이가 마을 집 상자에서 1–5개 묶음으로 생성된다.
베드락 에디션에서는 16.7% 확률로 보너스 상자에서 4개 묶음으로 생성된다. 43.7% 확률로 타이가 마을 집 상자에서 1–5개 묶음으로 생성된다.
가문비나무 원목은 28.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다. 65.6% 확률로 타이가 마을 집 상자에서 1–5개 묶음으로 생성된다.
베드락 에디션에서는 25.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다. 69.3% 확률로 타이가 마을 집 상자에서 1–5개 묶음으로 생성된다.
가문비나무 표지판은 9.7% 확률로 타이가 마을 집 상자에서 1개 묶음으로 생성된다.
가위는 12.3% 확률로 마을 양치기 상자에서 1개 묶음으로 생성된다.
가죽 모자는 31.8% 확률로 마을 가죽 세공인 상자에서 1개 묶음으로 생성된다.
가죽 바지는 31.8% 확률로 마을 가죽 세공인 상자에서 1개 묶음으로 생성된다.
가죽 부츠는 31.8% 확률로 마을 가죽 세공인 상자에서 1개 묶음으로 생성된다.
가죽 조끼는 4.3% 확률로 해저 폐허 상자에서, 8.3% 확률로 해저 폐허 상자에서, 75.0% 확률로 땅에 묻힌 보물 상자에서, 31.8% 확률로 마을 가죽 세공인 상자에서 모두 1개 묶음으로 생성된다.
가죽은 47.9% 확률로 보루 잔해 다리 상자에서, 26.2% 확률로 보루 잔해 호글린 마구간 상자에서, 17.3% 확률로 마을 가죽 세공인 상자에서 모두 1–3개 묶음으로 생성된다.
갈색 양털은 23.3% 확률로 마을 양치기 상자에서 1–3개 묶음으로 생성된다.
감자는 44.9% 확률로 난파선 보급품 상자에서 2–6개 묶음으로 생성된다. 66.3% 확률로 눈 덮인 마을 집 상자에서, 74.2% 확률로 평원 마을 집 상자에서, 65.6% 확률로 타이가 마을 집 상자에서 모두 1–7개 묶음으로 생성된다. 57.5% 확률로 약탈자 전초기지 상자에서 2–5개 묶음으로 생성된다.
베드락 에디션에서는 50.0% 확률로 보너스 상자에서 1–2개 묶음으로 생성된다. 69.3% 확률로 타이가 마을 집 상자에서 1–7개 묶음으로 생성된다.
감지 레일은 27.1% 확률로 폐광 상자가 실린 광산 수레에서 1–4개 묶음으로 생성된다.
거미 눈은 28.7% 확률로 사막 사원 상자에서 1–3개 묶음으로 생성된다.
검은색 양털은 33.0% 확률로 마을 양치기 상자에서 1–3개 묶음으로 생성된다.
경험치 병은 14.1% 확률로 난파선 보물 상자에서, 60.9% 확률로 약탈자 전초기지 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 11.8% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
경형 무게 압력판은 7.3% 확률로 무너진 차원문 상자에서 1개 묶음으로 생성된다.
고대 잔해는 2.2% 확률로 보루 잔해 상자에서, 2.9% 확률로 보루 잔해 호글린 마구간 상자에서 1개 묶음으로 생성된다. 1.7% 확률로 보루 잔해 보물 상자에서 2개 묶음으로 생성된다.
베드락 에디션에서는 2.0% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
고사리는 18.6% 확률로 타이가 마을 집 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 20.3% 확률로 타이가 마을 집 상자에서 1개 묶음으로 생성된다.
금 검은 12.2% 확률로 보루 잔해 다리 상자에서, 16.0% 확률로 보루 잔해 상자에서, 19.0% 확률로 요새 상자에서 모두 1개 묶음으로 생성된다.
금 레깅스는 16.0% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
금 말 갑옷은 2.5% 확률로 요새 제단 상자에서, 5.7% 확률로 마을 무기 대장장이 상자에서, 14.9% 확률로 던전 상자에서, 7.3% 확률로 무너진 차원문 상자에서, 29.1% 확률로 요새 상자에서, 4.5% 확률로 정글 사원 상자에서, 12.3% 확률로 사막 사원 상자에서, 4.6% 확률로 엔드 시티 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 2.4% 확률로 요새 제단 상자에서, 4.4% 확률로 정글 사원 상자에서 1개 묶음으로 생성된다.
금 부츠는 16.0% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
금 블록은 12.2% 확률로 보루 잔해 다리 상자에서, 16.0% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다. 29.4% 확률로 보루 잔해 보물 상자에서 2–5개 묶음으로 생성된다. 1.5% 확률로 무너진 차원문 상자에서 1–2개 묶음으로 생성된다. 23.8% 확률로 보루 잔해 호글린 마구간 상자에서 2–4개 묶음으로 생성된다.
금 조각은 31.5% 확률로 보루 잔해 상자에서, 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 2–8개 묶음으로 생성된다. 36.6% 확률로 난파선 보물 상자에서 1–10개 묶음으로 생성된다. 20.5% 확률로 무너진 차원문 상자에서 4–24개 묶음으로 생성된다. 81.0% 확률로 해저 폐허 상자에서, 55.3% 확률로 이글루 상자에서, 11.3% 확률로 사바나 마을 집 상자에서, 12.1% 확률로 평원 마을 집 상자에서 모두 1–3개 묶음으로 생성된다. 47.9% 확률로 보루 잔해 다리 상자에서 2–6개 묶음으로 생성된다.
금 주괴는 7.3% 확률로 무너진 차원문 상자에서, 12.2% 확률로 보루 잔해 다리 상자에서 2–8개 묶음으로 생성된다. 26.5% 확률로 난파선 보물 상자에서 1–5개 묶음으로 생성된다. 51.0% 확률로 정글 사원 상자에서, 18.0% 확률로 사막 사원 상자에서, 52.3% 확률로 엔드 시티 상자에서 모두 2–7개 묶음으로 생성된다. 12.1% 확률로 요새 제단 상자에서, 9.9% 확률로 마을 도구 대장장이 상자에서, 18.6% 확률로 요새 저장실 상자에서, 25.6% 확률로 마을 무기 대장장이 상자에서, 49.0% 확률로 요새 상자에서, 16.9% 확률로 폐광 상자가 실린 광산 수레에서 모두 1–3개 묶음으로 생성된다. 25.4% 확률로 마을 사원 상자에서, 9.6% 확률로 던전 상자에서, 9.6% 확률로 삼림 대저택 상자에서, 88.0% 확률로 땅에 묻힌 보물 상자에서 모두 1–4개 묶음으로 생성된다. 29.4% 확률로 보루 잔해 보물 상자에서 3–9개 묶음으로 생성된다. 16.0% 확률로 보루 잔해 상자에서 1–6개 묶음으로 생성된다.
베드락 에디션에서는 11.8% 확률로 요새 제단 상자에서, 15.2% 확률로 요새 저장실 상자에서 1–3개 묶음으로 생성된다. 34.3% 확률로 땅에 묻힌 보물 상자에서 1–5개 묶음으로 생성된다. 50.9% 확률로 정글 사원 상자에서 2–7개 묶음으로 생성된다.
금 투구는 4.3% 확률로 해저 폐허 상자에서, 8.3% 확률로 해저 폐허 상자에서, 16.0% 확률로 보루 잔해 상자에서 모두 1개 묶음으로 생성된다.
금 흉갑은 16.0% 확률로 보루 잔해 상자에서, 19.0% 확률로 요새 상자에서 1개 묶음으로 생성된다.
깃털은 12.1% 확률로 평원 마을 집 상자에서 1개 묶음으로 생성된다. 55.8% 확률로 마을 화살 제조인 상자에서 1–3개 묶음으로 생성된다. 60.0% 확률로 난파선 지도 상자에서 1–5개 묶음으로 생성된다.
끈은 28.3% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 27.9% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다. 34.3% 확률로 땅에 묻힌 보물 상자에서 1–3개 묶음으로 생성된다.
나무 곡괭이는 75.0% 확률로 보너스 상자에서 1개 묶음으로 생성된다.
나무 도끼는 75.0% 확률로 보너스 상자에서 1개 묶음으로 생성된다.
나침반은 7.7% 확률로 난파선 지도 상자에서, 26.3% 확률로 마을 지도 제작자 상자에서, 10.9% 확률로 요새 도서관 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 10.5% 확률로 요새 도서관 상자에서 1개 묶음으로 생성된다.
네더 사마귀는 19.0% 확률로 요새 상자에서 3–7개 묶음으로 생성된다.
네더 석영은 29.4% 확률로 보루 잔해 보물 상자에서 8–23개 묶음으로 생성된다.
네더라이트 주괴는 16.8% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
네더라이트 파편은 16.8% 확률로 보루 잔해 보물 상자에서, 2.2% 확률로 보루 잔해 상자에서, 1.9% 확률로 보루 잔해 호글린 마구간 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 2.0% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
노란색 염료는 20.8% 확률로 마을 석공 상자에서 1개 묶음으로 생성된다.
눈 블록은 34.5% 확률로 눈 덮인 마을 집 상자에서 1개 묶음으로 생성된다.
눈덩이는 66.3% 확률로 눈 덮인 마을 집 상자에서 1–7개 묶음으로 생성된다.
다이아몬드 괭이는 21.8% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 21.5% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
다이아몬드 말 갑옷은 2.5% 확률로 요새 제단 상자에서, 5.7% 확률로 마을 무기 대장장이 상자에서, 7.7% 확률로 던전 상자에서, 11.8% 확률로 요새 상자에서, 4.5% 확률로 정글 사원 상자에서, 6.3% 확률로 사막 사원 상자에서, 4.6% 확률로 엔드 시티 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 2.4% 확률로 요새 제단 상자에서, 4.4% 확률로 정글 사원 상자에서 1개 묶음으로 생성된다.
다이아몬드 흉갑은 7.7% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 7.6% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
다이아몬드는 14.1% 확률로 난파선 보물 상자에서 1개 묶음으로 생성된다. 7.4% 확률로 요새 제단 상자에서, 9.9% 확률로 마을 도구 대장장이 상자에서, 16.2% 확률로 마을 무기 대장장이 상자에서, 8.6% 확률로 보루 잔해 보물 상자에서, 19.0% 확률로 요새 상자에서, 12.9% 확률로 정글 사원 상자에서, 6.3% 확률로 사막 사원 상자에서 모두 1–3개 묶음으로 생성된다. 10.4% 확률로 폐광 상자가 실린 광산 수레에서, 53.1% 확률로 땅에 묻힌 보물 상자에서 1–2개 묶음으로 생성된다. 21.2% 확률로 엔드 시티 상자에서 2–7개 묶음으로 생성된다.
베드락 에디션에서는 46.9% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다. 7.2% 확률로 요새 제단 상자에서, 12.8% 확률로 정글 사원 상자에서 1–3개 묶음으로 생성된다.
달걀은 23.3% 확률로 마을 화살 제조인 상자에서 1–3개 묶음으로 생성된다.
달콤한 열매는 40.6% 확률로 타이가 마을 집 상자에서 1–7개 묶음으로 생성된다.
당근은 44.9% 확률로 난파선 보급품 상자에서 4–8개 묶음으로 생성된다. 57.5% 확률로 약탈자 전초기지 상자에서 3–5개 묶음으로 생성된다.
베드락 에디션에서는 50.0% 확률로 보너스 상자에서 1–2개 묶음으로 생성된다.
대나무는 15.6% 확률로 난파선 보급품 상자에서, 51.0% 확률로 정글 사원 상자에서 1–3개 묶음으로 생성된다.
베드락 에디션에서는 50.9% 확률로 정글 사원 상자에서 1–3개 묶음으로 생성된다.
돌 곡괭이는 25.0% 확률로 보너스 상자에서 1개 묶음으로 생성된다.
돌 도끼는 30.2% 확률로 해저 폐허 상자에서, 14.7% 확률로 이글루 상자에서, 25.0% 확률로 보너스 상자에서 모두 1개 묶음으로 생성된다.
돌은 37.7% 확률로 마을 석공 상자에서 1개 묶음으로 생성된다.
땅에 묻힌 보물 지도는 43.5% 확률로 해저 폐허 상자에서, 41.7% 확률로 해저 폐허 상자에서, 모든 난파선 지도 상자에서 모두 1개 묶음으로 생성된다.
레드스톤 가루는 44.8% 확률로 마을 사원 상자에서, 26.6% 확률로 던전 상자에서, 26.6% 확률로 삼림 대저택 상자에서 모두 1–4개 묶음으로 생성된다. 12.1% 확률로 요새 제단 상자에서, 18.6% 확률로 요새 저장실 상자에서, 16.9% 확률로 폐광 상자가 실린 광산 수레에서 모두 4–9개 묶음으로 생성된다.
베드락 에디션에서는 11.8% 확률로 요새 제단 상자에서, 15.2% 확률로 요새 저장실 상자에서 4–9개 묶음으로 생성된다.
레일은 78.4% 확률로 폐광 상자가 실린 광산 수레에서 4–8개 묶음으로 생성된다.
마그마 크림은 29.4% 확률로 보루 잔해 보물 상자에서 2–8개 묶음으로 생성된다. 31.5% 확률로 보루 잔해 상자에서 2–6개 묶음으로 생성된다.
마른 덤불은 26.6% 확률로 사막 마을 집 상자에서 1–3개 묶음으로 생성된다.
마법이 부여된 가죽 모자보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 22.4% 확률로 난파선 보급품 상자에서 1개 묶음으로 생성된다.
마법이 부여된 가죽 바지보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 22.4% 확률로 난파선 보급품 상자에서 1개 묶음으로 생성된다.
마법이 부여된 가죽 부츠보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 22.4% 확률로 난파선 보급품 상자에서 1개 묶음으로 생성된다.
마법이 부여된 가죽 조끼보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 22.4% 확률로 난파선 보급품 상자에서 1개 묶음으로 생성된다.
마법이 부여된 다이아몬드 각반마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).은 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 다이아몬드 검마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).은 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 다이아몬드 곡괭이마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).는 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 다이아몬드 부츠마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).는 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 다이아몬드 삽마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).은 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 다이아몬드 투구마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).는 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 다이아몬드 흉갑마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).은 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 책보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.은 21.7% 확률로 해저 폐허 상자에서, 14.9% 확률로 던전 상자에서, 23.5% 확률로 사막 사원 상자에서, 11.0% 확률로 약탈자 전초기지 상자에서, 14.1% 확률로 폐광 상자가 실린 광산 수레에서, 14.9% 확률로 삼림 대저택 상자에서 모두 1개 묶음으로 생성된다.
마법이 부여된 책마법의 확률은 마법 부여대에서 레벨 30의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).은 2.5% 확률로 요새 제단 상자에서, 4.0% 확률로 요새 저장실 상자에서, 4.5% 확률로 정글 사원 상자에서, 67.8% 확률로 요새 도서관 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 2.9% 확률로 요새 제단 상자에서, 3.8% 확률로 요새 저장실 상자에서, 5.3% 확률로 정글 사원 상자에서, 72.9% 확률로 요새 도서관 상자에서 모두 1개 묶음으로 생성된다.
마법이 부여된 책임의의 레벨로 영혼 신속 마법이 부여된다.은 11.1% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 10.0% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
마법이 부여된 철 각반마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).은 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 철 검마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).은 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 철 곡괭이마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).는 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 철 부츠마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).는 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 철 삽마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).은 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 철 투구마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).는 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 철 흉갑마법의 확률은 마법 부여대에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. 보물 마법에도 여러 마법이 중복될 확률은 줄어들지 않는다(영혼 신속 제외).은 13.3% 확률로 엔드 시티 상자에서 1개 묶음으로 생성된다.
마법이 부여된 황금 각반보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.은 20.5% 확률로 무너진 차원문 상자에서, 12.2% 확률로 보루 잔해 다리 상자에서 1개 묶음으로 생성된다.
마법이 부여된 황금 검보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.은 20.5% 확률로 무너진 차원문 상자에서 1개 묶음으로 생성된다.
마법이 부여된 황금 곡괭이보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 20.5% 확률로 무너진 차원문 상자에서 1개 묶음으로 생성된다.
마법이 부여된 황금 괭이보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 20.5% 확률로 무너진 차원문 상자에서, 14.3% 확률로 보루 잔해 호글린 마구간 상자에서 1개 묶음으로 생성된다.
마법이 부여된 황금 도끼보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 20.5% 확률로 무너진 차원문 상자에서 1개 묶음으로 생성된다.
마법이 부여된 황금 부츠보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 20.5% 확률로 무너진 차원문 상자에서, 12.2% 확률로 보루 잔해 다리 상자에서 1개 묶음으로 생성된다.
마법이 부여된 황금 사과는 3.1% 확률로 던전 상자에서, 1.5% 확률로 무너진 차원문 상자에서, 2.6% 확률로 사막 사원 상자에서, 1.4% 확률로 폐광 상자가 실린 광산 수레에서, 3.1% 확률로 삼림 대저택 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 3.1% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
마법이 부여된 황금 삽보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.은 20.5% 확률로 무너진 차원문 상자에서 1개 묶음으로 생성된다.
마법이 부여된 황금 투구보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 20.5% 확률로 무너진 차원문 상자에서, 12.2% 확률로 보루 잔해 다리 상자에서 1개 묶음으로 생성된다.
마법이 부여된 황금 흉갑보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.은 20.5% 확률로 무너진 차원문 상자에서, 12.2% 확률로 보루 잔해 다리 상자에서 1개 묶음으로 생성된다.
막대기는 90.0% 확률로 마을 도구 대장장이 상자에서, 55.8% 확률로 마을 화살 제조인 상자에서 1–3개 묶음으로 생성된다. 26.3% 확률로 마을 지도 제작자 상자에서 1–2개 묶음으로 생성된다. 70.5% 확률로 보너스 상자에서 1–12개 묶음으로 생성된다.
베드락 에디션에서는 모든 보너스 상자에서 1–12개 묶음으로 생성된다.
매끄러운 돌은 20.8% 확률로 마을 석공 상자에서 1개 묶음으로 생성된다.
모래는 59.0% 확률로 사막 사원 상자에서 1–8개 묶음으로 생성된다.
물 양동이는 24.2% 확률로 마을 어부 상자에서 1–3개 묶음으로 생성된다.
민들레는 22.8% 확률로 평원 마을 집 상자에서 1개 묶음으로 생성된다.
밀 씨앗은 57.5% 확률로 마을 어부 상자에서 1–3개 묶음으로 생성된다. 71.7% 확률로 사바나 마을 집 상자에서 1–5개 묶음으로 생성된다.
밀은 34.1% 확률로 던전 상자에서, 34.1% 확률로 삼림 대저택 상자에서 1–4개 묶음으로 생성된다. 80.6% 확률로 사막 마을 집 상자에서 1–7개 묶음으로 생성된다. 81.0% 확률로 해저 폐허 상자에서, 84.2% 확률로 해저 폐허 상자에서, 55.3% 확률로 이글루 상자에서 모두 2–3개 묶음으로 생성된다. 48.6% 확률로 마을 도살업자 상자에서 1–3개 묶음으로 생성된다. 72.5% 확률로 약탈자 전초기지 상자에서 3–5개 묶음으로 생성된다. 44.9% 확률로 난파선 보급품 상자에서 8–21개 묶음으로 생성된다. 55.8% 확률로 마을 양치기 상자에서 1–6개 묶음으로 생성된다.
바다의 심장은 모든 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
반짝이는 수박 조각은 7.3% 확률로 무너진 차원문 상자에서 4–12개 묶음으로 생성된다.
베드락 에디션에서는 7.3% 확률로 무너진 차원문 상자에서 1개 묶음으로 생성된다.
발광석은 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 1–5개 묶음으로 생성된다.
부싯돌과 부시는 46.4% 확률로 무너진 차원문 상자에서, 19.0% 확률로 요새 상자에서 1개 묶음으로 생성된다.
부싯돌은 55.8% 확률로 마을 화살 제조인 상자에서 1–3개 묶음으로 생성된다. 46.4% 확률로 무너진 차원문 상자에서 1–4개 묶음으로 생성된다.
분광 화살은 29.4% 확률로 보루 잔해 보물 상자에서 5–21개 묶음으로 생성된다. 6.7% 확률로 보루 잔해 상자에서 2–15개 묶음으로 생성된다. 12.2% 확률로 보루 잔해 다리 상자에서 2–12개 묶음으로 생성된다.
빈 상자'Nothing' does not refer to the chance of an empty chest. Instead, it refers to the chance that the random loot generator does not add any loot on a single roll.는 69.1% 확률로 보루 잔해 상자에서, 42.9% 확률로 보루 잔해 호글린 마구간 상자에서, 18.0% 확률로 사막 사원 상자에서, 7.0% 확률로 폐광 상자가 실린 광산 수레에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 65.3% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
빈 지도는 7.7% 확률로 난파선 지도 상자에서, 10.9% 확률로 요새 도서관 상자에서 1개 묶음으로 생성된다. 46.2% 확률로 마을 지도 제작자 상자에서 1–3개 묶음으로 생성된다.
빵은 34.1% 확률로 던전 상자에서, 34.1% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다. 33.5% 확률로 요새 제단 상자에서, 81.2% 확률로 마을 도구 대장장이 상자에서, 47.5% 확률로 요새 저장실 상자에서, 59.8% 확률로 마을 무기 대장장이 상자에서, 44.3% 확률로 폐광 상자가 실린 광산 수레에서 모두 1–3개 묶음으로 생성된다. 61.5% 확률로 보너스 상자에서 1–2개 묶음으로 생성된다. 89.3% 확률로 마을 사원 상자에서, 80.6% 확률로 마을 갑옷 제조인 상자에서, 80.6% 확률로 사막 마을 집 상자에서, 61.2% 확률로 마을 지도 제작자 상자에서, 66.3% 확률로 눈 덮인 마을 집 상자에서, 71.7% 확률로 사바나 마을 집 상자에서, 74.2% 확률로 평원 마을 집 상자에서, 62.2% 확률로 마을 석공 상자에서, 65.6% 확률로 타이가 마을 집 상자에서, 62.8% 확률로 마을 가죽 세공인 상자에서 모두 1–4개 묶음으로 생성된다.
베드락 에디션에서는 69.3% 확률로 타이가 마을 집 상자에서 1–4개 묶음으로 생성된다. 모든 보너스 상자에서 1–2개 묶음으로 생성된다. 32.5% 확률로 요새 제단 상자에서, 40.0% 확률로 요새 저장실 상자에서 1–3개 묶음으로 생성된다.
뼈 블록은 31.5% 확률로 보루 잔해 상자에서 3–6개 묶음으로 생성된다.
뼈는 61.9% 확률로 정글 사원 상자에서, 28.7% 확률로 사막 사원 상자에서 4–6개 묶음으로 생성된다. 57.8% 확률로 던전 상자에서, 59.0% 확률로 사막 사원 상자에서, 57.8% 확률로 삼림 대저택 상자에서 모두 1–8개 묶음으로 생성된다.
베드락 에디션에서는 61.8% 확률로 정글 사원 상자에서 4–6개 묶음으로 생성된다.
사과는 33.5% 확률로 요새 제단 상자에서, 47.5% 확률로 요새 저장실 상자에서, 59.8% 확률로 마을 무기 대장장이 상자에서, 70.4% 확률로 이글루 상자에서 모두 1–3개 묶음으로 생성된다. 74.2% 확률로 평원 마을 집 상자에서 1–5개 묶음으로 생성된다. 83.8% 확률로 보너스 상자에서 1–2개 묶음으로 생성된다.
베드락 에디션에서는 32.5% 확률로 요새 제단 상자에서, 40.0% 확률로 요새 저장실 상자에서 1–3개 묶음으로 생성된다. 모든 보너스 상자에서 1–2개 묶음으로 생성된다.
사슬 흉갑은 14.9% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 14.7% 확률로 삼림 대저택 상자에서, 57.2% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
사슬은 31.5% 확률로 보루 잔해 상자에서 2–10개 묶음으로 생성된다.
사탕무 수프는 9.9% 확률로 눈 덮인 마을 집 상자에서 1개 묶음으로 생성된다.
사탕무 씨앗은 18.5% 확률로 던전 상자에서, 31.6% 확률로 폐광 상자가 실린 광산 수레에서, 18.5% 확률로 삼림 대저택 상자에서 모두 2–4개 묶음으로 생성된다. 21.2% 확률로 엔드 시티 상자에서 1–10개 묶음으로 생성된다. 66.3% 확률로 눈 덮인 마을 집 상자에서 1–5개 묶음으로 생성된다.
베드락 에디션에서는 33.3% 확률로 보너스 상자에서 1–2개 묶음으로 생성된다.
생대구는 43.0% 확률로 마을 어부 상자에서 1–3개 묶음으로 생성된다.
생연어는 24.2% 확률로 마을 어부 상자에서 1–3개 묶음으로 생성된다. 61.5% 확률로 보너스 상자에서 1–2개 묶음으로 생성된다.
베드락 에디션에서는 모든 보너스 상자에서 1–2개 묶음으로 생성된다.
석재 벽돌은 37.7% 확률로 마을 석공 상자에서 1개 묶음으로 생성된다.
석탄은 43.0% 확률로 마을 어부 상자에서, 9.9% 확률로 마을 도구 대장장이 상자에서, 27.9% 확률로 마을 도살업자 상자에서 모두 1–3개 묶음으로 생성된다. 40.0% 확률로 난파선 보급품 상자에서 2–8개 묶음으로 생성된다. 81.0% 확률로 해저 폐허 상자에서, 84.2% 확률로 해저 폐허 상자에서, 26.6% 확률로 던전 상자에서, 41.2% 확률로 눈 덮인 마을 집 상자에서, 70.4% 확률로 이글루 상자에서, 26.6% 확률로 삼림 대저택 상자에서 모두 1–4개 묶음으로 생성된다. 34.3% 확률로 요새 저장실 상자에서, 31.6% 확률로 폐광 상자가 실린 광산 수레에서 3–8개 묶음으로 생성된다.
베드락 에디션에서는 28.5% 확률로 요새 저장실 상자에서 3–8개 묶음으로 생성된다.
선인장은 80.6% 확률로 사막 마을 집 상자에서 1–4개 묶음으로 생성된다.
베드락 에디션에서는 50.0% 확률로 보너스 상자에서 1–2개 묶음으로 생성된다.
손상된 다이아몬드 검이 아이템의 내구성은 20%와 65% 사이에 있다.은 10.2% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
손상된 마법이 부여된 다이아몬드 각반보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.은 10.2% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
손상된 마법이 부여된 다이아몬드 검보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.은 16.8% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
손상된 마법이 부여된 다이아몬드 부츠보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 10.2% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
손상된 마법이 부여된 다이아몬드 삽보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.은 4.8% 확률로 보루 잔해 호글린 마구간 상자에서 1개 묶음으로 생성된다.
손상된 마법이 부여된 다이아몬드 투구보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.는 10.2% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
손상된 마법이 부여된 다이아몬드 흉갑보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.은 10.2% 확률로 보루 잔해 보물 상자에서 1개 묶음으로 생성된다.
손상된 마법이 부여된 석궁보물 마법을 포함한 모든 마법의 확률은 동일하며(영혼 신속 제외), 마법 레벨도 확률이 동일하다.은 12.2% 확률로 보루 잔해 다리 상자에서, 13.3% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 12.0% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
쇠뇌는 16.0% 확률로 보루 잔해 상자에서, 모든 약탈자 전초기지 상자에서 1개 묶음으로 생성된다.
수박씨는 18.5% 확률로 던전 상자에서, 31.6% 확률로 폐광 상자가 실린 광산 수레에서, 18.5% 확률로 삼림 대저택 상자에서 모두 2–4개 묶음으로 생성된다.
베드락 에디션에서는 33.3% 확률로 보너스 상자에서 1–2개 묶음으로 생성된다.
수상한 스튜The stew grants one of the following effects: 5–7 seconds of Blindness, 7–10 seconds of Jump Boost, 7-10 seconds of Night Vision, 10–20 seconds of Poison, 7–10 seconds of Saturation, or 6–8 seconds of Weakness.는 57.4% 확률로 난파선 보급품 상자에서 1개 묶음으로 생성된다.
시계는 7.7% 확률로 난파선 지도 상자에서, 7.3% 확률로 무너진 차원문 상자에서 1개 묶음으로 생성된다.
실은 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 3–8개 묶음으로 생성된다. 57.8% 확률로 던전 상자에서, 59.0% 확률로 사막 사원 상자에서, 57.8% 확률로 삼림 대저택 상자에서 모두 1–8개 묶음으로 생성된다. 31.5% 확률로 보루 잔해 상자에서 4–6개 묶음으로 생성된다. 47.9% 확률로 보루 잔해 다리 상자에서, 39.1% 확률로 약탈자 전초기지 상자에서 1–6개 묶음으로 생성된다.
썩은 살점은 59.6% 확률로 해저 폐허 상자에서, 55.3% 확률로 이글루 상자에서 1개 묶음으로 생성된다. 89.3% 확률로 마을 사원 상자에서 1–4개 묶음으로 생성된다. 57.8% 확률로 던전 상자에서, 59.0% 확률로 사막 사원 상자에서, 57.8% 확률로 삼림 대저택 상자에서 모두 1–8개 묶음으로 생성된다. 34.6% 확률로 난파선 보급품 상자에서 5–24개 묶음으로 생성된다. 53.4% 확률로 정글 사원 상자에서, 28.7% 확률로 사막 사원 상자에서 3–7개 묶음으로 생성된다.
베드락 에디션에서는 53.3% 확률로 정글 사원 상자에서 3–7개 묶음으로 생성된다.
아카시아나무 묘목은 71.7% 확률로 사바나 마을 집 상자에서 1–2개 묶음으로 생성된다.
베드락 에디션에서는 16.7% 확률로 보너스 상자에서 4개 묶음으로 생성된다.
아카시아나무 원목은 28.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다.
베드락 에디션에서는 50.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다.
안장은 2.5% 확률로 요새 제단 상자에서, 16.2% 확률로 마을 무기 대장장이 상자에서, 28.3% 확률로 던전 상자에서, 11.3% 확률로 사바나 마을 집 상자에서, 9.5% 확률로 보루 잔해 호글린 마구간 상자에서, 35.3% 확률로 요새 상자에서, 12.9% 확률로 정글 사원 상자에서, 23.5% 확률로 사막 사원 상자에서, 13.3% 확률로 엔드 시티 상자에서, 17.3% 확률로 마을 가죽 세공인 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 2.4% 확률로 요새 제단 상자에서, 12.8% 확률로 정글 사원 상자에서 1개 묶음으로 생성된다.
양동이는 18.5% 확률로 던전 상자에서, 11.3% 확률로 사바나 마을 집 상자에서, 18.5% 확률로 삼림 대저택 상자에서 모두 1개 묶음으로 생성된다.
에메랄드는 14.9% 확률로 해저 폐허 상자에서, 24.2% 확률로 마을 어부 상자에서, 31.8% 확률로 마을 갑옷 제조인 상자에서, 12.3% 확률로 마을 양치기 상자에서, 10.2% 확률로 마을 도살업자 상자에서, 16.4% 확률로 해저 폐허 상자에서, 12.3% 확률로 마을 화살 제조인 상자에서, 7.6% 확률로 이글루 상자에서, 20.8% 확률로 마을 석공 상자에서 모두 1개 묶음으로 생성된다. 25.4% 확률로 마을 사원 상자에서, 9.9% 확률로 눈 덮인 마을 집 상자에서, 21.5% 확률로 사바나 마을 집 상자에서, 22.8% 확률로 평원 마을 집 상자에서, 18.6% 확률로 타이가 마을 집 상자에서, 17.3% 확률로 마을 가죽 세공인 상자에서 모두 1–4개 묶음으로 생성된다. 73.7% 확률로 난파선 보물 상자에서 1–5개 묶음으로 생성된다. 53.1% 확률로 땅에 묻힌 보물 상자에서 4–8개 묶음으로 생성된다. 14.3% 확률로 사막 마을 집 상자에서, 8.7% 확률로 정글 사원 상자에서, 18.0% 확률로 사막 사원 상자에서 모두 1–3개 묶음으로 생성된다. 9.0% 확률로 엔드 시티 상자에서 2–6개 묶음으로 생성된다.
베드락 에디션에서는 7.2% 확률로 요새 제단 상자에서, 8.7% 확률로 정글 사원 상자에서 1–3개 묶음으로 생성된다. 20.3% 확률로 타이가 마을 집 상자에서 1–4개 묶음으로 생성된다.
엔더 진주는 23.3% 확률로 요새 제단 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 22.6% 확률로 요새 제단 상자에서 1개 묶음으로 생성된다.
영혼 모래는 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 2–7개 묶음으로 생성된다.
영혼 신속 마법이 부여된 황금 부츠임의의 레벨로 영혼 신속 마법이 부여된다.는 16.0% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
우는 흑요석은 12.2% 확률로 보루 잔해 다리 상자에서 3–8개 묶음으로 생성된다. 29.4% 확률로 보루 잔해 보물 상자에서, 31.5% 확률로 보루 잔해 상자에서 1–5개 묶음으로 생성된다.
음반 (13)은 21.8% 확률로 던전 상자에서, 21.8% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 21.5% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
음반 (cat)은 21.8% 확률로 던전 상자에서, 21.8% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 21.5% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
음반 (pigstep)은 3.3% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 3.0% 확률로 보루 잔해 상자에서 1개 묶음으로 생성된다.
이름표는 28.3% 확률로 던전 상자에서, 42.3% 확률로 폐광 상자가 실린 광산 수레에서, 28.3% 확률로 삼림 대저택 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 27.9% 확률로 삼림 대저택 상자에서, 34.3% 확률로 땅에 묻힌 보물 상자에서 1개 묶음으로 생성된다.
익히지 않은 돼지고기는 48.6% 확률로 마을 도살업자 상자에서 1–3개 묶음으로 생성된다. 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 2–5개 묶음으로 생성된다.
익히지 않은 소고기는 48.6% 확률로 마을 도살업자 상자에서 1–3개 묶음으로 생성된다.
익히지 않은 양고기는 48.6% 확률로 마을 도살업자 상자에서 1–3개 묶음으로 생성된다.
익힌 대구는 75.0% 확률로 땅에 묻힌 보물 상자에서 2–4개 묶음으로 생성된다.
익힌 돼지고기는 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 2–5개 묶음으로 생성된다.
익힌 연어는 75.0% 확률로 땅에 묻힌 보물 상자에서 2–4개 묶음으로 생성된다.
자석석은 모든 보루 잔해 다리 상자에서 1개 묶음으로 생성된다.
자작나무 원목은 28.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다.
베드락 에디션에서는 25.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다.
잔디는 45.9% 확률로 사바나 마을 집 상자에서 1개 묶음으로 생성된다.
정글나무 원목은 28.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다.
베드락 에디션에서는 25.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다.
종은 1.5% 확률로 무너진 차원문 상자에서 1개 묶음으로 생성된다.
종이는 49.4% 확률로 난파선 보급품 상자에서 1–12개 묶음으로 생성된다. 89.4% 확률로 난파선 지도 상자에서 1–10개 묶음으로 생성된다. 89.2% 확률로 요새 도서관 상자에서 2–7개 묶음으로 생성된다. 61.2% 확률로 마을 지도 제작자 상자에서 1–5개 묶음으로 생성된다.
베드락 에디션에서는 88.3% 확률로 요새 도서관 상자에서 2–7개 묶음으로 생성된다.
진홍빛 네사체는 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 2–7개 묶음으로 생성된다.
진홍빛 뿌리는 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 2–7개 묶음으로 생성된다.
짙은 참나무 원목은 28.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다. 모든 약탈자 전초기지 상자에서 2–3개 묶음으로 생성된다.
베드락 에디션에서는 50.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다.
참나무 묘목은 48.2% 확률로 평원 마을 집 상자에서 1–2개 묶음으로 생성된다. 25.6% 확률로 마을 무기 대장장이 상자에서 3–7개 묶음으로 생성된다.
베드락 에디션에서는 16.7% 확률로 보너스 상자에서 4개 묶음으로 생성된다. 26.3% 확률로 마을 지도 제작자 상자에서 1–2개 묶음으로 생성된다.
참나무 원목은 28.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다.
베드락 에디션에서는 25.0% 확률로 보너스 상자에서 1–3개 묶음으로 생성된다.
참나무 판자는 70.5% 확률로 보너스 상자에서 1–12개 묶음으로 생성된다.
베드락 에디션에서는 모든 보너스 상자에서 1–12개 묶음으로 생성된다.
책은 14.3% 확률로 사막 마을 집 상자에서, 12.1% 확률로 평원 마을 집 상자에서 1개 묶음으로 생성된다. 89.2% 확률로 요새 도서관 상자에서 1–3개 묶음으로 생성된다. 34.5% 확률로 난파선 지도 상자에서 1–5개 묶음으로 생성된다.
베드락 에디션에서는 88.3% 확률로 요새 도서관 상자에서 1–3개 묶음으로 생성된다.
철 검은 12.1% 확률로 요새 제단 상자에서, 25.6% 확률로 마을 무기 대장장이 상자에서, 75.0% 확률로 땅에 묻힌 보물 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 11.8% 확률로 요새 제단 상자에서 1개 묶음으로 생성된다.
철 곡괭이는 12.1% 확률로 요새 제단 상자에서, 41.2% 확률로 마을 도구 대장장이 상자에서, 4.0% 확률로 요새 저장실 상자에서, 25.6% 확률로 마을 무기 대장장이 상자에서, 7.0% 확률로 폐광 상자가 실린 광산 수레에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 11.8% 확률로 요새 제단 상자에서, 3.2% 확률로 요새 저장실 상자에서 1개 묶음으로 생성된다.
철 레깅스는 12.1% 확률로 요새 제단 상자에서, 25.6% 확률로 마을 무기 대장장이 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 11.8% 확률로 요새 제단 상자에서 1개 묶음으로 생성된다.
철 말 갑옷은 2.5% 확률로 요새 제단 상자에서, 5.7% 확률로 마을 무기 대장장이 상자에서, 21.8% 확률로 던전 상자에서, 19.0% 확률로 요새 상자에서, 4.5% 확률로 정글 사원 상자에서, 18.0% 확률로 사막 사원 상자에서, 4.6% 확률로 엔드 시티 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 2.4% 확률로 요새 제단 상자에서, 4.4% 확률로 정글 사원 상자에서 1개 묶음으로 생성된다.
철 부츠는 12.1% 확률로 요새 제단 상자에서, 25.6% 확률로 마을 무기 대장장이 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 11.8% 확률로 요새 제단 상자에서 1개 묶음으로 생성된다.
철 삽은 41.2% 확률로 마을 도구 대장장이 상자에서 1개 묶음으로 생성된다.
철 조각은 31.5% 확률로 보루 잔해 상자에서 2–8개 묶음으로 생성된다. 94.5% 확률로 난파선 보물 상자에서 1–10개 묶음으로 생성된다. 46.4% 확률로 무너진 차원문 상자에서 9–18개 묶음으로 생성된다. 29.4% 확률로 보루 잔해 보물 상자에서 8–16개 묶음으로 생성된다. 47.9% 확률로 보루 잔해 다리 상자에서 2–6개 묶음으로 생성된다. 9.7% 확률로 타이가 마을 집 상자에서 1–5개 묶음으로 생성된다.
베드락 에디션에서는 10.7% 확률로 타이가 마을 집 상자에서 1–5개 묶음으로 생성된다.
철 주괴는 18.5% 확률로 던전 상자에서, 18.5% 확률로 삼림 대저택 상자에서, 99.4% 확률로 땅에 묻힌 보물 상자에서 모두 1–4개 묶음으로 생성된다. 23.3% 확률로 요새 제단 상자에서, 41.2% 확률로 마을 도구 대장장이 상자에서, 97.4% 확률로 난파선 보물 상자에서, 34.3% 확률로 요새 저장실 상자에서, 45.1% 확률로 마을 무기 대장장이 상자에서, 19.0% 확률로 요새 상자에서, 37.4% 확률로 정글 사원 상자에서, 18.0% 확률로 사막 사원 상자에서, 31.6% 확률로 폐광 상자가 실린 광산 수레에서 모두 1–5개 묶음으로 생성된다. 38.4% 확률로 엔드 시티 상자에서 4–8개 묶음으로 생성된다. 54.2% 확률로 마을 갑옷 제조인 상자에서, 30.5% 확률로 약탈자 전초기지 상자에서 1–3개 묶음으로 생성된다. 12.2% 확률로 보루 잔해 다리 상자에서 2–8개 묶음으로 생성된다. 29.4% 확률로 보루 잔해 보물 상자에서 3–9개 묶음으로 생성된다. 16.0% 확률로 보루 잔해 상자에서 1–6개 묶음으로 생성된다.
베드락 에디션에서는 57.2% 확률로 땅에 묻힌 보물 상자에서 3–5개 묶음으로 생성된다. 22.6% 확률로 요새 제단 상자에서, 28.5% 확률로 요새 저장실 상자에서, 37.3% 확률로 정글 사원 상자에서 모두 1–5개 묶음으로 생성된다.
철 투구는 12.1% 확률로 요새 제단 상자에서, 31.8% 확률로 마을 갑옷 제조인 상자에서, 25.6% 확률로 마을 무기 대장장이 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 11.8% 확률로 요새 제단 상자에서 1개 묶음으로 생성된다.
철 흉갑은 12.1% 확률로 요새 제단 상자에서, 25.6% 확률로 마을 무기 대장장이 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 11.8% 확률로 요새 제단 상자에서 1개 묶음으로 생성된다.
철사 덫 갈고리는 30.5% 확률로 약탈자 전초기지 상자에서 1–3개 묶음으로 생성된다.
청금석은 25.4% 확률로 마을 사원 상자에서 1–4개 묶음으로 생성된다. 61.5% 확률로 난파선 보물 상자에서 1–10개 묶음으로 생성된다. 16.9% 확률로 폐광 상자가 실린 광산 수레에서 4–9개 묶음으로 생성된다.
초록색 염료는 14.3% 확률로 사막 마을 집 상자에서 1개 묶음으로 생성된다.
큰 고사리는 18.6% 확률로 타이가 마을 집 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 20.3% 확률로 타이가 마을 집 상자에서 1개 묶음으로 생성된다.
키 큰 잔디는 45.9% 확률로 사바나 마을 집 상자에서 1개 묶음으로 생성된다.
통은 24.2% 확률로 마을 어부 상자에서 1–3개 묶음으로 생성된다.
푸른얼음은 9.9% 확률로 눈 덮인 마을 집 상자에서 1개 묶음으로 생성된다.
프리즈머린 수정은 53.1% 확률로 땅에 묻힌 보물 상자에서 1–5개 묶음으로 생성된다.
베드락 에디션에서는 18.9% 확률로 땅에 묻힌 보물 상자에서 1–5개 묶음으로 생성된다.
하얀색 양털은 55.8% 확률로 마을 양치기 상자에서 1–8개 묶음으로 생성된다.
호박 파이는 9.7% 확률로 타이가 마을 집 상자에서 1개 묶음으로 생성된다.
베드락 에디션에서는 10.7% 확률로 타이가 마을 집 상자에서 1개 묶음으로 생성된다.
호박씨는 40.6% 확률로 타이가 마을 집 상자에서 1–5개 묶음으로 생성된다. 18.5% 확률로 던전 상자에서, 31.6% 확률로 폐광 상자가 실린 광산 수레에서, 18.5% 확률로 삼림 대저택 상자에서 모두 2–4개 묶음으로 생성된다.
베드락 에디션에서는 33.3% 확률로 보너스 상자에서 1–2개 묶음으로 생성된다. 43.7% 확률로 타이가 마을 집 상자에서 1–5개 묶음으로 생성된다.
호박은 15.6% 확률로 난파선 보급품 상자에서 1–3개 묶음으로 생성된다.
화로는 9.9% 확률로 눈 덮인 마을 집 상자에서 1개 묶음으로 생성된다.
화분은 20.8% 확률로 마을 석공 상자에서 1개 묶음으로 생성된다.
화살은 23.3% 확률로 마을 화살 제조인 상자에서 1–3개 묶음으로 생성된다. 모든 정글 사원의 발사기에서, 39.1% 확률로 약탈자 전초기지 상자에서 2–7개 묶음으로 생성된다. 47.9% 확률로 보루 잔해 다리 상자에서, 54.6% 확률로 보루 잔해 상자에서, 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 모두 5–17개 묶음으로 생성된다.
베드락 에디션에서는 29.4% 확률로 보루 잔해 보물 상자에서 5–21개 묶음으로 생성된다. 16.0% 확률로 보루 잔해 상자에서 2–15개 묶음으로 생성된다. 12.2% 확률로 보루 잔해 다리 상자에서 2–12개 묶음으로 생성된다.
화약은 22.4% 확률로 난파선 보급품 상자에서 1–5개 묶음으로 생성된다. 57.8% 확률로 던전 상자에서, 59.0% 확률로 사막 사원 상자에서, 57.8% 확률로 삼림 대저택 상자에서 모두 1–8개 묶음으로 생성된다.
화염구는 46.4% 확률로 무너진 차원문 상자에서 1개 묶음으로 생성된다.
활성화 레일은 27.1% 확률로 폐광 상자가 실린 광산 수레에서 1–4개 묶음으로 생성된다.
황금 당근은 7.3% 확률로 무너진 차원문 상자에서 4–12개 묶음으로 생성된다.
황금 사과는 2.5% 확률로 요새 제단 상자에서, 4.3% 확률로 해저 폐허 상자에서, 21.8% 확률로 던전 상자에서, 모든 이글루 상자에서, 20.5% 확률로 무너진 차원문 상자에서, 23.5% 확률로 사막 사원 상자에서, 28.2% 확률로 폐광 상자가 실린 광산 수레에서, 21.8% 확률로 삼림 대저택 상자에서 모두 1개 묶음으로 생성된다.
베드락 에디션에서는 2.4% 확률로 요새 제단 상자에서, 21.5% 확률로 삼림 대저택 상자에서 1개 묶음으로 생성된다.
황금이 박힌 흑암은 12.2% 확률로 보루 잔해 다리 상자에서 5–8개 묶음으로 생성된다. 29.4% 확률로 보루 잔해 보물 상자에서, 31.5% 확률로 보루 잔해 상자에서, 26.2% 확률로 보루 잔해 호글린 마구간 상자에서 모두 1–5개 묶음으로 생성된다.
횃불은 65.7% 확률로 폐광 상자가 실린 광산 수레에서 1–16개 묶음으로 생성된다. 11.3% 확률로 사바나 마을 집 상자에서 1–2개 묶음으로 생성된다.
회백색 양털은 23.3% 확률로 마을 양치기 상자에서 1–3개 묶음으로 생성된다.
회색 양털은 23.3% 확률로 마을 양치기 상자에서 1–3개 묶음으로 생성된다.
흑요석은 8.0% 확률로 요새 상자에서 2–4개 묶음으로 생성된다. 46.4% 확률로 무너진 차원문 상자에서 1–2개 묶음으로 생성된다. 31.5% 확률로 보루 잔해 상자에서 4–6개 묶음으로 생성된다. 25.6% 확률로 마을 무기 대장장이 상자에서 3–7개 묶음으로 생성된다.
Notes
local p = { calc_average_amount_this_item_per_pool = function( min_stacksize, max_stacksize, min_pool_rolls, max_pool_rolls, item_weight, pool_total_item_weight ) local avg_stacksize = ( min_stacksize + max_stacksize ) / 2 local avg_rolls = ( min_pool_rolls + max_pool_rolls ) / 2 return avg_stacksize * avg_rolls * item_weight / pool_total_item_weight end, calc_chance_any_of_this_item_per_pool = function( min_pool_rolls, max_pool_rolls, item_weight, pool_total_item_weight ) local inverse_result = 0 -- 1 - inverse_result = return value local inverse_item_weight = pool_total_item_weight - item_weight -- will be used for the division in the for loop to avoid the slightly -- less performant math.pow(). The divisor already includes the probability -- of picking any specific number of rolls. local cur_dividend = inverse_item_weight local cur_divisor = pool_total_item_weight * (max_pool_rolls - min_pool_rolls + 1) for i = 1, max_pool_rolls do if i >= min_pool_rolls then inverse_result = inverse_result + cur_dividend / cur_divisor end cur_dividend = cur_dividend * inverse_item_weight -- simulate pow cur_divisor = cur_divisor * pool_total_item_weight -- simulate pow end return 1 - inverse_result end, java = '[[자바 에디션]], [[분류:Java Edition 관련 정보]]', ['java-upcoming'] = '[[Java Edition 1.18]]{{upcoming}}, [[분류:Java Edition 관련 정보]]', bedrock = '[[베드락 에디션]][[분류:Bedrock Edition 관련 정보]]', ['bedrock-upcoming'] = '[[Bedrock Edition 1.17]]{{upcoming}}[[분류:Bedrock Edition 관련 정보]] ', -- These 'items' define which sprite, label and link to use in the table. -- Properties 'cannot_stack', 'preserve_case', and 'plural' describe how to display the single-item summary in p.base2. -- Order within this 'items' list doesn't matter. items = { ["acacia-log"] = { "block", link="원목" }, ["acacia-sapling"] = { "block", link="묘목" }, ["activator-rail"] = { "block" }, ["ancient-debris"] = { "block", plural=false }, ["apple"] = { "item" }, ["arrow"] = { "item" }, ["bamboo"] = { "item", plural=false }, ["barrel"] = { "block" }, ["basalt"] = { "block", plural=false }, ["beetroot"] = { "item" }, ["beetroot-seeds"] = { "item", plural=false }, ["beetroot-soup"] = { "item", plural=false, cannot_stack=true }, ["bell"] = { "block" }, ["birch-log"] = { "block", link="원목" }, ["birch-sapling"] = { "block", link="묘목" }, ["black-wool"] = { "block", link="양털", plural=false }, ["block-of-gold"] = { "block", plural="금 블록" }, ["blue-ice"] = { "block", plural=false }, ["bone"] = { "item" }, ["bone-block"] = { "block" }, ["book"] = { "item" }, ["book-and-quill"] = { "item", plural=false, title="Book and Quill" }, ["bottle-o'-enchanting"] = { "item", title="경험치 병", plural="경험치 병" }, ["bread"] = { "item", plural=false }, ["brown-mushroom"] = { "block", link="버섯" }, ["brown-wool"] = { "block", link="양털", plural=false }, ["bucket"] = { "item" }, ["buried-treasure-map"] = { "item", link="탐험 지도" }, ["cactus"] = { "block", plural=false }, ["cake"] = { "block", plural=false }, ["carrot"] = { "item" }, ["chain"] = { "block" }, ["chainmail-boots"] = { "item", link="갑옷", cannot_stack=true, plural=false }, ["chainmail-chestplate"] = { "item", link="갑옷", cannot_stack=true }, ["chainmail-helmet"] = { "item", link="갑옷", cannot_stack=true }, ["chainmail-leggings"] = { "item", link="갑옷", cannot_stack=true, plural=false }, ["clay-ball"] = { "item", link="점토 덩이", plural=false }, ["clock"] = { "item" }, ["coal"] = { "item", plural=false }, ["cocoa-beans"] = { "item", plural=false }, ["cooked-cod"] = { "item", plural=false }, ["cooked-porkchop"] = { "item" }, ["cooked-salmon"] = { "item", plural=false }, ["compass"] = { "item" }, ["crimson-fungus"] = { "block", link="균", plural= "crimson fungi" }, ["crimson-nylium"] = { "block", link="네사체", plural=false}, ["crimson-roots"] = { "block", link="뿌리", plural=false}, ["crossbow"] = { "item", cannot_stack=true }, ["crying-obsidian"] = { "block" }, ["dandelion"] = { "block", link="꽃" }, ["dark-oak-log"] = { "block", link="원목" }, ["dark-oak-sapling"] = { "block", link="묘목" }, ["dead-bush"] = { "block", link="마른 덤불" }, ["detector-rail"] = { "block" }, ["diamond"] = { "item" }, ["diamond-chestplate"] = { "item", link="갑옷", cannot_stack=true }, ["diamond-hoe"] = { "item", link="괭이", cannot_stack=true }, ["diamond-horse-armor"] = { "item", link="말 갑옷", cannot_stack=true, plural=false }, ["disc-13"] = { "item", id='music-disc-13', title="음반 (13)", link="음반", cannot_stack=true, plural=false }, ["disc-cat"] = { "item", id='music-disc-cat',title="음반 (Cat)", link="음반", cannot_stack=true, plural=false }, ["disc-mellohi"] = { "item", id='music-disc-mellohi',title="음반 (Mellohi)", link="음반", cannot_stack=true, plural=false }, ["disc-pigstep"] = { "item", id='music-disc-pigstep', title = "음반 (Pigstep)", link="음반", cannot_stack=true, plural=false }, ["disc-wait"] = { "item", id='music-disc-wait',title="음반 (Wait)", link="음반", cannot_stack=true, plural=false }, ["egg"] = { "item" }, ["emerald"] = { "item" }, ["empty-map"] = { "item", link="지도", title="빈 지도" }, ["enchanted-book"] = { "item", id='enchanted-book', title="마법이 부여된 책", link="마법이 부여된 책", cannot_stack=true, note="enchant-with-levels-30" }, ["enchanted-book-rnd"] = { "item", id='enchanted-book', title="마법이 부여된 책", link="마법이 부여된 책", cannot_stack=true, note="enchant-randomly" }, ["enchanted-book-rnd-soul-speed"] = { "item", id='enchanted-book', title="마법이 부여된 책", link="마법이 부여된 책", cannot_stack=true, note="enchant-randomly-soul-speed" }, ["enchanted-fishing-rod"] = { "item", id="fishing-rod", link="낚싯대", cannot_stack=true, note="enchant-randomly" }, ["enchanted-golden-apple"] = { "item" }, ["ender-pearl"] = { "item" }, ["feather"] = { "item" }, ["fern"] = { "block", link="잔디" }, ["fire-charge"] = { "item" }, ["flint"] = { "item", plural=false }, ["flint-and-steel"] = { "item", cannot_stack=true, plural=false }, ["flower-pot"] = { "item" }, ["furnace"] = { "block" }, ["gilded-blackstone"] = { "block", plural=false }, ["glistering-melon-slice"] = { "item" }, ["glowstone"] = { "block" }, ["golden-apple"] = { "item" }, ["golden-boots"] = { "item", link="갑옷", cannot_stack=true, plural=false }, ["golden-carrot"] = { "item" }, ["golden-chestplate"] = { "item", link="갑옷", cannot_stack=true }, ["golden-helmet"] = { "item", link="갑옷", cannot_stack=true }, ["golden-hoe"] = { "item", link="괭이", cannot_stack=true }, ["golden-horse-armor"] = { "item", link="말 갑옷", cannot_stack=true, plural=false }, ["golden-leggings"] = { "item", link="갑옷", cannot_stack=true, plural=false }, ["golden-sword"] = { "item", link="검", cannot_stack=true }, ["gold-ingot"] = { "item" }, ["gold-nugget"] = { "item" }, ["grass"] = { "block", link="잔디", plural=false }, ["gray-wool"] = { "block", link="양털", plural=false }, ["green-dye"] = { "item", link="염료", plural=false }, ["gunpowder"] = { "item", plural=false }, ["heart-of-the-sea"] = { "item", plural=false, link="Heart of the Sea" }, ["ink-sac"] = { "item" }, ["iron-boots"] = { "item", link="갑옷", cannot_stack=true, plural=false }, ["iron-chestplate"] = { "item", link="갑옷", cannot_stack=true }, ["iron-helmet"] = { "item", link="갑옷", cannot_stack=true }, ["iron-horse-armor"] = { "item", link="말 갑옷", cannot_stack=true, plural=false }, ["iron-ingot"] = { "item" }, ["iron-leggings"] = { "item", link="갑옷", cannot_stack=true, plural=false }, ["iron-nugget"] = { "item" }, ["iron-pickaxe"] = { "item", link="곡괭이", cannot_stack=true }, ["iron-shovel"] = { "item", link="삽", cannot_stack=true }, ["iron-sword"] = { "item", link="검", cannot_stack=true }, ["jungle-log"] = { "block", link="원목" }, ["jungle-sapling"] = { "block", link="묘목" }, ["lapis-lazuli"] = { "item", plural=false }, ["large-fern"] = { "block", link="잔디" }, ["lead"] = { "item" }, ["leather"] = { "item", plural=false }, ["leather-boots"] = { "item", link="갑옷", cannot_stack=true, plural=false }, ["leather-cap"] = { "item", link="갑옷", cannot_stack=true }, ["leather-pants"] = { "item", link="갑옷", cannot_stack=true, plural=false }, ["leather-tunic"] = { "item", link="갑옷", cannot_stack=true }, ["light-gray-wool"] = { "block", link="양털", plural=false }, ["light-weighted-pressure-plate"] = { "block", link="압력판" }, ["lodestone"] = { "block" }, ["melon-seeds"] = { "item", plural=false }, ["magma-cream"] = { "item", plural=false }, ["magma-block"] = { "block" }, ["name-tag"] = { "item" }, ["netherite-boots"] = { "item", link="갑옷", cannot_stack=true, plural=false }, ["netherite-chestplate"] = { "item", link="갑옷", cannot_stack=true }, ["netherite-helmet"] = { "item", link="갑옷", cannot_stack=true }, ["netherite-ingot"] = { "item" }, ["netherite-leggings"] = { "item", link="갑옷", cannot_stack=true, plural=false }, ["netherite-scrap"] = { "item" }, ["nether-wart"] = { "item", plural=false }, ["nether-quartz"] = { "item", plural=false }, ["oak-log"] = { "block", link="원목" }, ["oak-planks"] = { "block", link="판자", id="oak-wood-planks", plural=false }, ["oak-sapling"] = { "block", link="묘목" }, ["oak-sign"] = { "item", link="표지판" }, ["obsidian"] = { "block", plural=false }, ["paper"] = { "item", plural=false }, ["piglin-banner-pattern"] = { "item", id="banner-pattern", link="Banner Pattern", cannot_stack=true }, ["poisonous-potato"] = { "item", plural="poisonous potatoes" }, ["polished-basalt"] = { "block", plural=false}, ["poppy"] = { "block", link="꽃", plural="poppies" }, ["potato"] = { "item", plural="potatoes" }, ["potion-of-regeneration"] = { "item", link="물약", title="재생의 물약", plural=false, preserve_case=true }, ["potion-of-water-breathing"] = { "item", link="물약", title="수중 호흡 물약", plural=false, preserve_case=true }, ["powered-rail"] = { "block", title="Powered 레일", plural=false }, ["prismarine-crystals"] = { "item", plural=false }, ["pumpkin"] = { "block" }, ["pumpkin-pie"] = { "item", plural=false }, ["pumpkin-seeds"] = { "item", plural=false }, ["rail"] = { "block", title="레일", plural=false }, ["raw-beef"] = { "item", link="익히지 않은 소고기", plural=false }, ["raw-cod"] = { "item", link="생대구", plural=false }, ["raw-mutton"] = { "item", link="익히지 않은 양고기", plural=false }, ["raw-porkchop"] = { "item", link="익히지 않은 돼지고기" }, ["raw-salmon"] = { "item", link="생대구", plural=false }, ["redstone"] = { "item", id="redstone-dust", title="레드스톤 가루", plural=false }, ["rotten-flesh"] = { "item", plural=false }, ["saddle"] = { "item", cannot_stack=true }, ["sand"] = { "block", plural=false }, ["shears"] = { "item", plural=false, cannot_stack=true }, ["smooth-stone"] = { "block", plural=false }, ["snowball"] = { "item", link="눈덩이" }, ["snow-block"] = { "block", link="눈 블록" }, ["soul-sand"] = { "block" }, ["spectral-arrow"] = { "item" }, ["spider-eye"] = { "item" }, ["spruce-log"] = { "block", link="원목" }, ["spruce-sapling"] = { "block", link="묘목" }, ["spruce-sign"] = { "item", link="표지판" }, ["stick"] = { "item" }, ["stone"] = { "block", plural=false }, ["stone-axe"] = { "item", link="도끼", cannot_stack=true }, ["stone-bricks"] = { "block", plural=false }, ["stone-pickaxe"] = { "item", link="곡괭이", cannot_stack=true }, ["string"] = { "item", plural=false }, ["suspicious-stew"] = { "item", plural=false, note="suspicious-stew" }, ["sweet-berries"] = { "item", plural=false }, ["tall-grass"] = { "block", plural=false, link="잔디" }, ["tnt"] = { "block", title="TNT", plural=false, preserve_case=true }, ["torch"] = { "block" }, ["tripwire-hook"] = { "block" }, ["water-bucket"] = { "item", cannot_stack=true }, ["wheat"] = { "item", plural=false }, ["wheat-seeds"] = { "item", plural=false }, ["white-wool"] = { "block", link="양털", plural=false }, ["wooden-axe"] = { "item", link="도끼", cannot_stack=true }, ["wooden-hoe"] = { "item", link="괭이", cannot_stack=true }, ["wooden-pickaxe"] = { "item", link="곡괭이", cannot_stack=true }, ["yellow-dye"] = { "item", link="염료", plural=false }, ["map"] = { "item", link="지도", note="map" }, ["damaged-random-enchanted-netherite-axe"] = { "item", id="netherite-axe", title="손상된 마법이 부여된 네더라이트 도끼", link="도끼", note="enchant-randomly", note1="damaged-0.15-0.85", cannot_stack=true }, ["damaged-netherite-boots"] = { "item", id="netherite-boots", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true, plural=false}, ["damaged-level-enchanted-netherite-boots"] = { "item", id="netherite-boots", title="손상된 마법이 부여된 네더라이트 부츠", link="갑옷", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, ["damaged-random-enchanted-netherite-boots"] = { "item", id="netherite-boots", title="손상된 마법이 부여된 네더라이트 부츠", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, ["damaged-netherite-chestplate"] = { "item", id="netherite-chestplate", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true}, ["damaged-level-enchanted-netherite-chestplate"] = { "item", id="netherite-chestplate", title="손상된 마법이 부여된 네더라이트 흉갑", link="갑옷", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true }, ["damaged-random-enchanted-netherite-chestplate"] = { "item", id="netherite-chestplate", title="손상된 마법이 부여된 네더라이트 흉갑", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, ["damaged-netherite-helmet"] = { "item", id="netherite-helmet", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true}, ["damaged-random-enchanted-netherite-hoe"] = { "item", id="netherite-hoe", title="손상된 마법이 부여된 네더라이트 괭이", link="괭이", note="enchant-randomly", note1="damaged-0.1-0.95", cannot_stack=true }, ["damaged-level-enchanted-netherite-helmet"] = { "item", id="netherite-helmet", title="손상된 마법이 부여된 네더라이트 투구", link="갑옷", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true }, ["damaged-random-enchanted-netherite-helmet"] = { "item", id="netherite-helmet", title="손상된 마법이 부여된 네더라이트 투구", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, ["damaged-netherite-leggings"] = { "item", id="netherite-leggings", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true, plural=false}, ["damaged-level-enchanted-netherite-leggings"] = { "item", id="netherite-leggings", title="손상된 마법이 부여된 네더라이트 각반", link="갑옷", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, ["damaged-random-enchanted-netherite-leggings"] = { "item", id="netherite-leggings", title="손상된 마법이 부여된 네더라이트 각반", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, ["damaged-random-enchanted-netherite-pickaxe"] = { "item", id="netherite-pickaxe", title="손상된 마법이 부여된 네더라이트 곡괭이", link="곡괭이", note="enchant-randomly", note1="damaged-0.1-0.95", cannot_stack=true }, ["damaged-random-enchanted-netherite-shovel"] = { "item", id="netherite-shovel", title="손상된 마법이 부여된 네더라이트 삽", link="삽", note="enchant-randomly", note1="damaged-0.15-0.45", cannot_stack=true}, ["damaged-netherite-sword"] = { "item", id="netherite-sword", link="검", note="damaged-0.2-0.65", cannot_stack=true}, ["damaged-level-enchanted-netherite-sword"] = { "item", id="netherite-sword", title="손상된 마법이 부여된 네더라이트 검", link="검", note="enchant-with-levels-5-20", note1="damaged-0.2-0.65", cannot_stack=true }, ["damaged-random-enchanted-netherite-sword"] = { "item", id="netherite-sword", title="손상된 마법이 부여된 네더라이트 검", link="검", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, ["damaged-diamond-boots"] = { "item", id="diamond-boots", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true, plural=false}, ["level-enchanted-diamond-boots"] = { "item", id="diamond-boots", title="마법이 부여된 다이아몬드 부츠", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true, plural=false }, ["damaged-random-enchanted-diamond-boots"] = { "item", id="diamond-boots", title="손상된 마법이 부여된 다이아몬드 부츠", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, ["damaged-diamond-chestplate"] = { "item", id="diamond-chestplate", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true}, ["level-enchanted-diamond-chestplate"] = { "item", id="diamond-chestplate", title="마법이 부여된 다이아몬드 흉갑", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true }, ["damaged-random-enchanted-diamond-chestplate"] = { "item", id="diamond-chestplate", title="손상된 마법이 부여된 다이아몬드 흉갑", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, ["damaged-diamond-helmet"] = { "item", id="diamond-helmet", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true}, ["level-enchanted-diamond-helmet"] = { "item", id="diamond-helmet", title="마법이 부여된 다이아몬드 투구", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true }, ["damaged-random-enchanted-diamond-helmet"] = { "item", id="diamond-helmet", title="손상된 마법이 부여된 다이아몬드 투구", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, ["damaged-diamond-leggings"] = { "item", id="diamond-leggings", link="갑옷", note="damaged-0.2-0.65", cannot_stack=true, plural=false}, ["level-enchanted-diamond-leggings"] = { "item", id="diamond-leggings", title="마법이 부여된 다이아몬드 각반", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true, plural=false }, ["damaged-random-enchanted-diamond-leggings"] = { "item", id="diamond-leggings", title="손상된 마법이 부여된 다이아몬드 각반", link="갑옷", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true, plural=false }, ["level-enchanted-diamond-pickaxe"] = { "item", id="diamond-pickaxe", title="마법이 부여된 다이아몬드 곡괭이", link="곡괭이", note="enchant-with-levels-20-39", cannot_stack=true }, ["level-enchanted-diamond-shovel"] = { "item", id="diamond-shovel", title="마법이 부여된 다이아몬드 삽", link="삽", note="enchant-with-levels-20-39", cannot_stack=true }, ["damaged-random-enchanted-diamond-shovel"] = { "item", id="diamond-shovel", title="손상된 마법이 부여된 다이아몬드 삽", link="삽", note="enchant-randomly", note1="damaged-0.15-0.45", cannot_stack=true}, ["damaged-diamond-sword"] = { "item", id="diamond-sword", link="검", note="damaged-0.2-0.65", cannot_stack=true}, ["level-enchanted-diamond-sword"] = { "item", id="diamond-sword", title="마법이 부여된 다이아몬드 검", link="검", note="enchant-with-levels-20-39", cannot_stack=true }, ["damaged-random-enchanted-diamond-sword"] = { "item", id="diamond-sword", title="손상된 마법이 부여된 다이아몬드 검", link="검", note="enchant-randomly", note1="damaged-0.2-0.65", cannot_stack=true }, ["level-enchanted-iron-boots"] = { "item", id="iron-boots", title="마법이 부여된 철 부츠", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true, plural=false }, ["level-enchanted-iron-chestplate"] = { "item", id="iron-chestplate", title="마법이 부여된 철 흉갑", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true }, ["level-enchanted-iron-helmet"] = { "item", id="iron-helmet", title="마법이 부여된 철 투구", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true }, ["level-enchanted-iron-leggings"] = { "item", id="iron-leggings", title="마법이 부여된 철 각반", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true, plural=false }, ["level-enchanted-iron-pickaxe"] = { "item", id="iron-pickaxe", title="마법이 부여된 철 곡괭이", link="곡괭이", note="enchant-with-levels-20-39", cannot_stack=true }, ["level-enchanted-iron-shovel"] = { "item", id="iron-shovel", title="마법이 부여된 철 삽", link="삽", note="enchant-with-levels-20-39", cannot_stack=true }, ["level-enchanted-iron-sword"] = { "item", id="iron-sword", title="마법이 부여된 철 검", link="검", note="enchant-with-levels-20-39", cannot_stack=true }, ["random-enchanted-golden-axe"] = { "item", id="golden-axe", title="마법이 부여된 황금 도끼", link="도끼", note="enchant-randomly", cannot_stack=true }, ["level-enchanted-golden-boots"] = { "item", id="golden-boots", title="마법이 부여된 황금 부츠", link="갑옷", note="enchant-with-levels-5-15", cannot_stack=true, plural=false }, ["random-enchanted-golden-boots"] = { "item", id="golden-boots", title="마법이 부여된 황금 부츠", link="갑옷", note="enchant-randomly", cannot_stack=true, plural=false }, ["soul-speed-enchanted-golden-boots"] = { "item", id="golden-boots", title="영혼 신속 마법이 부여된 황금 부츠", link="갑옷", note="enchant-randomly-soul-speed", cannot_stack=true, plural=false }, ["level-enchanted-golden-chestplate"] = { "item", id="golden-chestplate", title="마법이 부여된 황금 흉갑", link="갑옷", note="enchant-with-levels-5-15", cannot_stack=true }, ["random-enchanted-golden-chestplate"] = { "item", id="golden-chestplate", title="마법이 부여된 황금 흉갑", link="갑옷", note="enchant-randomly", cannot_stack=true }, ["level-enchanted-golden-helmet"] = { "item", id="golden-helmet", title="마법이 부여된 황금 투구", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true }, ["random-enchanted-golden-helmet"] = { "item", id="golden-helmet", title="마법이 부여된 황금 투구", link="갑옷", note="enchant-randomly", cannot_stack=true }, ["level-enchanted-golden-hoe"] = { "item", id="golden-hoe", title="마법이 부여된 황금 괭이", link="괭이", note="enchant-with-levels-20-39", cannot_stack=true }, ["random-enchanted-golden-hoe"] = { "item", id="golden-hoe", title="마법이 부여된 황금 괭이", link="괭이", note="enchant-randomly", cannot_stack=true }, ["level-enchanted-golden-leggings"] = { "item", id="golden-leggings", title="마법이 부여된 황금 각반", link="갑옷", note="enchant-with-levels-20-39", cannot_stack=true, plural=false }, ["random-enchanted-golden-leggings"] = { "item", id="golden-leggings", title="마법이 부여된 황금 각반", link="갑옷", note="enchant-randomly", cannot_stack=true, plural=false }, ["random-enchanted-golden-pickaxe"] = { "item", id="golden-pickaxe", title="마법이 부여된 황금 곡괭이", link="곡괭이", note="enchant-randomly", cannot_stack=true }, ["random-enchanted-golden-shovel"] = { "item", id="golden-shovel", title="마법이 부여된 황금 삽", link="삽", note="enchant-randomly", cannot_stack=true }, ["random-enchanted-golden-sword"] = { "item", id="golden-sword", title="마법이 부여된 황금 검", link="검", note="enchant-randomly", cannot_stack=true }, ["random-enchanted-leather-boots"] = { "item", id="leather-boots", title="마법이 부여된 가죽 부츠", link="갑옷", note="enchant-randomly", cannot_stack=true, plural=false }, ["random-enchanted-leather-cap"] = { "item", id="leather-cap", title="마법이 부여된 가죽 모자", link="갑옷", note="enchant-randomly", cannot_stack=true }, ["random-enchanted-leather-pants"] = { "item", id="leather-pants", title="마법이 부여된 가죽 바지", link="갑옷", note="enchant-randomly", cannot_stack=true, plural=false }, ["random-enchanted-leather-tunic"] = { "item", id="leather-tunic", title="마법이 부여된 가죽 조끼", link="갑옷", note="enchant-randomly", cannot_stack=true }, ["damaged-level-enchanted-crossbow"] = { "item", id="crossbow", title="손상된 마법이 부여된 석궁", link="석궁", note="enchant-with-levels-20-25", note1="damaged-0.05-0.15", cannot_stack=true }, ["damaged-random-enchanted-crossbow"] = { "item", id="crossbow", title="손상된 마법이 부여된 석궁", link="석궁", note="enchant-randomly", note1="damaged-0.1-0.5", cannot_stack=true }, ["empty"] = { "block", id="air", link='', title='빈 상자', plural=false, note="nothing" }, }, notes = { ["enchant-randomly"] = "[[보물 마법]]을 '''포함한''' 모든 마법의 확률은 동일하며([[영혼 신속]] 제외), 마법 레벨도 확률이 동일하다.", ["enchant-randomly-soul-speed"] = "임의의 레벨로 [[영혼 신속]] 마법이 부여된다.", ["enchant-with-levels-5-15"] = "마법의 확률은 [[마법 부여대]]에서 레벨 5에서 레벨 15까지의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", ["enchant-with-levels-5-20"] = "마법의 확률은 [[마법 부여대]]에서 레벨 5에서 레벨 20까지의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", ["enchant-with-levels-20-25"] = "마법의 확률은 [[마법 부여대]]에서 레벨 20에서 레벨 25까지의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", ["enchant-with-levels-20-25"] = "마법의 확률은 [[마법 부여대]]에서 레벨 20에서 레벨 25까지의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", ["enchant-with-levels-20-39"] = "마법의 확률은 [[마법 부여대]]에서 레벨 20에서 레벨 39까지의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", ["enchant-with-levels-30"] = "마법의 확률은 [[마법 부여대]]에서 레벨 30의 마법을 부여할 때와 동일하다. [[보물 마법]]에도 여러 마법이 중복될 확률은 줄어들지 않는다([[영혼 신속]] 제외).", ["damaged-0.05-0.15"] = "이 아이템의 내구성은 5%와 15% 사이에 있다.", ["damaged-0.1-0.95"] = "이 아이템의 내구성은 10%와 95% 사이에 있다.", ["damaged-0.15-0.45"] = "이 아이템의 내구성은 15%와 45% 사이에 있다.", ["damaged-0.15-0.85"] = "이 아이템의 내구성은 15%와 85% 사이에 있다.", ["damaged-0.1-0.5"] = "이 아이템의 내구성은 10%와 50% 사이에 있다.", ["damaged-0.2-0.65"] = "이 아이템의 내구성은 20%와 65% 사이에 있다.", ["nothing"] = "'Nothing' does not refer to the chance of an empty chest. Instead, it refers to the chance that the random loot generator does not add any loot ''on a single roll''.", ["suspicious-stew"] = "The stew grants one of the following effects: 5–7 seconds of [[Blindness]], 7–10 seconds of [[Jump Boost]], 7-10 seconds of [[Night Vision]], 10–20 seconds of [[Poison]], 7–10 seconds of [[Saturation]], or 6–8 seconds of [[Weakness]].", ["map"] = "Named unknown map, but changed to map 0, the scale level is 1:4, Maps from the same stack are stackable, but maps that are not stacked are unstackable despite looking identical." }, -- <ref group='note' name='enchant-randomly'> -- NOTE: order here doesn't matter. -- * in the table, chests will sort in alphabetical order -- * in the table, items will sort by chance, then by avg#, then alphabetically. -- * If poolsJavaUpcoming is omitted, poolsJava will be used. To omit a pool entirely, set it to {}. -- * If poolsBedrock is omitted, it implies that Bedrock has the same pools as Java. This is a shortcoming; it ought to be made explicit somehow. chests = { ["shipwreck-map"] = { -- shipwreck_map.json header = "지도", superheader = "[[난파선]]", link = "[[난파선#지도 상자|난파선 지도]]", structure = "난파선", container = "지도 상자", structID = "shipwreck", poolsJava = { { rolls = {1,1}, items = { ["buried-treasure-map"] = {1,1,1}, } }, { rolls = {3,3}, items = { ["compass"] = {1,1,1}, ["empty-map"] = {1,1,1}, ["clock"] = {1,1,1}, ["paper"] = {1,10,20}, ["feather"] = {1,5,10}, ["book"] = {1,5,5}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,1}, items = { ["buried-treasure-map"] = {1,1,1}, } }, { rolls = {3,3}, items = { ["compass"] = {1,1,1}, ["map"] = {1,1,1}, ["clock"] = {1,1,1}, ["paper"] = {1,10,20}, ["feather"] = {1,5,10}, ["book"] = {1,5,5}, } }, }, poolsBedrockUpcoming = {} }, ["shipwreck-supply"] = { -- shipwreck_supply.json header = "보급품", superheader = "[[난파선]]", link = "[[난파선#보급품 상자|난파선 보급품]]", structure = "난파선", container = "보급품 상자", structID = "shipwreck", poolsJava = { { rolls = {3,10}, items = { ["paper"] = {1,12,8}, ["potato"] = {2,6,7}, ["poisonous-potato"] = {2,6,7}, ["carrot"] = {4,8,7}, ["wheat"] = {8,21,7}, ["coal"] = {2,8,6}, ["rotten-flesh"] = {5,24,5}, ["bamboo"] = {1,3,2}, ["suspicious-stew"] = {1,1,10}, ["pumpkin"] = {1,3,2}, ["gunpowder"] = {1,5,3}, ["tnt"] = {1,2,1}, ["random-enchanted-leather-cap"] = {1,1,3}, ["random-enchanted-leather-tunic"] = {1,1,3}, ["random-enchanted-leather-pants"] = {1,1,3}, ["random-enchanted-leather-boots"] = {1,1,3}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["shipwreck-treasure"] = { -- shipwreck_treasure.json header = "보물", superheader = "[[난파선]]", link = "[[난파선]] 보물", structure = "난파선", container = "보물 상자", structID = "shipwreck", poolsJava = { { rolls = {3,6}, items = { ["iron-ingot"] = {1,5,90}, ["gold-ingot"] = {1,5,10}, ["emerald"] = {1,5,40}, ["diamond"] = {1,1,5}, ["bottle-o'-enchanting"] = {1,1,5}, } }, { rolls = {2,5}, items = { ["iron-nugget"] = {1,10,50}, ["gold-nugget"] = {1,10,10}, ["lapis-lazuli"] = {1,10,20}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["buried-treasure"] = { -- buried_treasure.json header = "[[땅에 묻힌 보물]]", link = "[[땅에 묻힌 보물]]", structure = "땅에 묻힌 보물", container = "", structID = "buried-treasure", poolsJava = { { rolls = {1,1}, items = { ["heart-of-the-sea"] = {1,1,1}, } }, { rolls = {5,8}, items = { ["iron-ingot"] = {1,4,20}, ["gold-ingot"] = {1,4,10}, ["tnt"] = {1,2,5}, } }, { rolls = {1,3}, items = { ["emerald"] = {4,8,5}, ["diamond"] = {1,2,5}, ["prismarine-crystals"] = {1,5,5}, } }, { rolls = {0,1}, items = { ["leather-tunic"] = {1,1,1}, ["iron-sword"] = {1,1,1}, } }, { rolls = {2,2}, items = { ["cooked-cod"] = {2,4,1}, ["cooked-salmon"] = {2,4,1}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,1}, items = { ["heart-of-the-sea"] = {1,1,1}, } }, { rolls = {5,12}, items = { ["prismarine-crystals"] = {1,5,5}, ["iron-ingot"] = {3,5,20}, ["gold-ingot"] = {1,5,10}, ["tnt"] = {1,2,10}, ["diamond"] = {1,1,15}, ["disc-wait"] = {1,1,5}, ["disc-mellohi"] = {1,1,5}, ["name-tag"] = {1,1,10}, ["chainmail-chestplate"] = {1,1,20}, ["chainmail-helmet"] = {1,1,20}, ["chainmail-leggings"] = {1,1,20}, ["chainmail-boots"] = {1,1,20}, ["book-and-quill"] = {1,2,5}, ["lead"] = {1,3,10}, ["bottle-o'-enchanting"] = {1,1,3}, ["potion-of-water-breathing"] = {1,1,15}, ["potion-of-regeneration"] = {1,1,10}, ["cake"] = {1,1,1}, } }, }, poolsBedrockUpcoming = {} }, ["underwater-ruin-big"] = { -- underwater_ruin_big.json header = "큰 상자", superheader = "[[해저 폐허]]", link = "[[해저 폐허]]", structure = "해저 폐허", container = "해저 폐허의 큰 상자", structID = "underwater-ruins", poolsJava = { { rolls = {2,8}, items = { ["coal"] = {1,4,10}, ["gold-nugget"] = {1,3,10}, ["emerald"] = {1,1,1}, ["wheat"] = {2,3,10}, } }, { rolls = {1,1}, items = { ["golden-apple"] = {1,1,1}, ["enchanted-book-rnd"] = {1,1,5}, ["leather-tunic"] = {1,1,1}, ["golden-helmet"] = {1,1,1}, ["enchanted-fishing-rod"] = {1,1,5}, ["buried-treasure-map"] = {1,1,10}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["underwater-ruin-small"] = { -- underwater_ruin_small.json header = "작은 상자", superheader = "[[해저 폐허]]", link = "[[해저 폐허]]", structure = "해저 폐허", container = "해저 폐허의 작은 상자", structID = "underwater-ruins", poolsJava = { { rolls = {2,8}, items = { ["coal"] = {1,4,10}, ["stone-axe"] = {1,1,2}, ["rotten-flesh"] = {1,1,5}, ["emerald"] = {1,1,1}, ["wheat"] = {2,3,10}, } }, { rolls = {1,1}, items = { ["leather-tunic"] = {1,1,1}, ["golden-helmet"] = {1,1,1}, ["enchanted-fishing-rod"] = {1,1,5}, ["buried-treasure-map"] = {1,1,5}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-armorer"] = { -- village\village_armorer.json header = "갑옷 제조인", superheader = "[[마을]]", link = "[[마을]] 갑옷 제조인", structure = "마을", container = "갑옷 제조인 상자", structID = "village", poolsJava = { { rolls = {1,5}, items = { ["iron-ingot"] = {1,3,2}, ["bread"] = {1,4,4}, ["iron-helmet"] = {1,1,1}, ["emerald"] = {1,1,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-butcher"] = { -- village\village_butcher.json header = "도살업자", superheader = "[[마을]]", link = "[[마을]] 도살업자", structure = "마을", container = "도살업자 상자", structID = "village", poolsJava = { { rolls = {1,5}, items = { ["emerald"] = {1,1,1}, ["raw-porkchop"] = {1,3,6}, ["wheat"] = {1,3,6}, ["raw-beef"] = {1,3,6}, ["raw-mutton"] = {1,3,6}, ["coal"] = {1,3,3} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-cartographer"] = { -- village\village_cartographer.json header = "지도 제작자", superheader = "[[마을]]", link = "[[마을]] 지도 제작자", structure = "마을", container = "지도 제작자 상자", structID = "village", poolsJava = { { rolls = {1,5}, items = { ["empty-map"] = {1,3,10}, ["paper"] = {1,5,15}, ["compass"] = {1,1,5}, ["bread"] = {1,4,15}, ["stick"] = {1,2,5} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,5}, items = { ["map"] = {1,3,10}, ["paper"] = {1,5,15}, ["compass"] = {1,1,5}, ["bread"] = {1,4,15}, ["oak-sapling"] = {1,2,5} } }, }, poolsBedrockUpcoming = {} }, ["village-fisherman"] = { -- village\village_fisher.json, Java-exclusive as of Java 1.14 / Bedrock 1.12 header = "어부", superheader = "[[마을]]", link = "[[마을]] 어부", structure = "마을", container = "어부 상자", structID = "village", poolsJava = { { rolls = {1,5}, items = { ["emerald"] = {1,1,1}, ["raw-cod"] = {1,3,2}, ["raw-salmon"] = {1,3,1}, ["water-bucket"] = {1,3,1}, ["barrel"] = {1,3,1}, ["wheat-seeds"] = {1,3,3}, ["coal"] = {1,3,2} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-fletcher"] = { -- village\village_fletcher.json header = "화살 제조인", superheader = "[[마을]]", link = "[[마을]] 화살 제조인", structure = "마을", container = "화살 제조인 상자", structID = "village", poolsJava = { { rolls = {1,5}, items = { ["emerald"] = {1,1,1}, ["arrow"] = {1,3,2}, ["feather"] = {1,3,6}, ["egg"] = {1,3,2}, ["flint"] = {1,3,6}, ["stick"] = {1,3,6} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-mason"] = { -- village\village_mason.json header = "석공", superheader = "[[마을]]", link = "[[마을]] 석공", structure = "마을", container = "석공 상자", structID = "village", poolsJava = { { rolls = {1,5}, items = { ["clay"] = {1,3,1}, ["flower-pot"] = {1,1,1}, ["stone"] = {1,1,2}, ["stone-bricks"] = {1,1,2}, ["bread"] = {1,4,4}, ["yellow-dye"] = {1,1,1}, ["smooth-stone"] = {1,1,1}, ["emerald"] = {1,1,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-shepherd"] = { -- village\village_shepherd.json header = "양치기", superheader = "[[마을]]", link = "[[마을]] 양치기", structure = "마을", container = "양치기 상자", structID = "village", poolsJava = { { rolls = {1,5}, items = { ["white-wool"] = {1,8,6}, ["black-wool"] = {1,3,3}, ["gray-wool"] = {1,3,2}, ["brown-wool"] = {1,3,2}, ["light-gray-wool"] = {1,3,2}, ["emerald"] = {1,1,1}, ["shears"] = {1,1,1}, ["wheat"] = {1,6,6} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-tannery"] = { -- village\village_tannery.json header = "가죽 세공인", superheader = "[[마을]]", link = "[[마을]] 가죽 세공인", structure = "마을", container = "가죽 세공인 상자", structID = "village", poolsJava = { { rolls = {1,5}, items = { ["leather"] = {1,3,1}, ["leather-tunic"] = {1,1,2}, ["leather-boots"] = {1,1,2}, ["leather-cap"] = {1,1,2}, ["bread"] = {1,4,5}, ["leather-pants"] = {1,1,2}, ["saddle"] = {1,1,1}, ["emerald"] = {1,4,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-temple"] = { -- village\village_temple.json header = "사원", superheader = "[[마을]]", link = "[[마을]] 사원", structure = "마을", container = "사원 상자", structID = "village", poolsJava = { { rolls = {3,8}, items = { ["redstone"] = {1,4,2}, ["bread"] = {1,4,7}, ["rotten-flesh"] = {1,4,7}, ["lapis-lazuli"] = {1,4,1}, ["gold-ingot"] = {1,4,1}, ["emerald"] = {1,4,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-toolsmith"] = { -- village\village_toolsmith.json header = "도구 대장장이", superheader = "[[마을]]", link = "[[마을]] 도구 대장장이", structure = "마을", container = "도구 대장장이 상자", structID = "village", poolsJava = { { rolls = {3,8}, items = { ["diamond"] = {1,3,1}, ["iron-ingot"] = {1,5,5}, ["gold-ingot"] = {1,3,1}, ["bread"] = {1,3,15}, ["iron-pickaxe"] = {1,1,5}, ["coal"] = {1,3,1}, ["stick"] = {1,3,20}, ["iron-shovel"] = {1,1,5} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-weaponsmith"] = { -- village\village_weaponsmith.json header = "무기 대장장이", superheader = "[[마을]]", link = "[[마을]] 무기 대장장이", structure = "마을", container = "무기 대장장이 상자", structID = "village", poolsJava = { { rolls = {3,8}, items = { ["diamond"] = {1,3,3}, ["iron-ingot"] = {1,5,10}, ["gold-ingot"] = {1,3,5}, ["bread"] = {1,3,15}, ["apple"] = {1,3,15}, ["iron-pickaxe"] = {1,1,5}, ["iron-sword"] = {1,1,5}, ["iron-chestplate"] = {1,1,5}, ["iron-helmet"] = {1,1,5}, ["iron-leggings"] = {1,1,5}, ["iron-boots"] = {1,1,5}, ["obsidian"] = {3,7,5}, ["oak-sapling"] = {3,7,5}, ["saddle"] = {1,1,3}, ["iron-horse-armor"] = {1,1,1}, ["golden-horse-armor"] = {1,1,1}, ["diamond-horse-armor"] = {1,1,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-desert-house"] = { -- village\village_desert_house.json header = "사막 집", superheader = "[[마을]]", link = "사막 [[마을]] 집", structure = "마을", container = "사막 마을 상자", structID = "village", poolsJava = { { rolls = {3,8}, items = { ["clay"] = {1,1,1}, ["green-dye"] = {1,1,1}, ["cactus"] = {1,4,10}, ["wheat"] = {1,7,10}, ["bread"] = {1,4,10}, ["book"] = {1,1,1}, ["dead-bush"] = {1,3,2}, ["emerald"] = {1,3,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-plains-house"] = { -- village\village_plains_house.json header = "평원 집", superheader = "[[마을]]", link = "평원 [[마을]] 집", structure = "마을", container = "평원 집 상자", structID = "village", poolsJava = { { rolls = {3,8}, items = { ["gold-nugget"] = {1,3,1}, ["dandelion"] = {1,1,2}, ["poppy"] = {1,1,1}, ["potato"] = {1,7,10}, ["bread"] = {1,4,10}, ["apple"] = {1,5,10}, ["book"] = {1,1,1}, ["feather"] = {1,1,1}, ["emerald"] = {1,4,2}, ["oak-sapling"] = {1,2,5} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-savanna-house"] = { -- village\village_savanna_house.json header = "사바나 집", superheader = "[[마을]]", link = "사바나 [[마을]] 집", structure = "마을", container = "사바나 집 상자", structID = "village", poolsJava = { { rolls = {3,8}, items = { ["gold-nugget"] = {1,3,1}, ["grass"] = {1,1,5}, ["tall-grass"] = {1,1,5}, ["bread"] = {1,4,10}, ["wheat-seeds"] = {1,5,10}, ["emerald"] = {1,4,2}, ["acacia-sapling"] = {1,2,10}, ["saddle"] = {1,1,1}, ["torch"] = {1,2,1}, ["bucket"] = {1,1,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-snowy-house"] = { -- village\village_snowy_house.json header = "눈 덮인 집", superheader = "[[마을]]", link = "눈 덮인 [[마을]] 집", structure = "마을", container = "눈 덮인 집 상자", structID = "village", poolsJava = { { rolls = {3,8}, items = { ["blue-ice"] = {1,1,1}, ["snow-block"] = {1,1,4}, ["potato"] = {1,7,10}, ["bread"] = {1,4,10}, ["beetroot-seeds"] = {1,5,10}, ["beetroot-soup"] = {1,1,1}, ["furnace"] = {1,1,1}, ["emerald"] = {1,4,1}, ["snowball"] = {1,7,10}, ["coal"] = {1,4,5} } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["village-taiga-house"] = { -- village\village_taiga_house.json header = "타이가 집", superheader = "[[마을]]", link = "타이가 [[마을]] 집", structure = "마을", container = "타이가 집 상자", structID = "village", poolsJava = { { rolls = {3,8}, items = { ["iron-nugget"] = {1,5,1}, ["fern"] = {1,1,2}, ["large-fern"] = {1,1,2}, ["potato"] = {1,7,10}, ["sweet-berries"] = {1,7,5}, ["bread"] = {1,4,10}, ["pumpkin-seeds"] = {1,5,5}, ["pumpkin-pie"] = {1,1,1}, ["emerald"] = {1,4,2}, ["spruce-sapling"] = {1,5,5}, ["spruce-sign"] = {1,1,1}, ["spruce-log"] = {1,5,10} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {3,8}, items = { ["iron-nugget"] = {1,5,1}, ["fern"] = {1,1,2}, ["large-fern"] = {1,1,2}, ["potato"] = {1,7,10}, ["bread"] = {1,4,10}, ["pumpkin-seeds"] = {1,5,5}, ["pumpkin-pie"] = {1,1,1}, ["emerald"] = {1,4,2}, ["spruce-sapling"] = {1,5,5}, ["oak-sign"] = {1,1,1}, ["spruce-log"] = {1,5,10} } }, }, poolsBedrockUpcoming = {} }, ["stronghold-altar"] = { -- stronghold_corridor.json header = "제단", superheader = "[[요새]]", link = "[[요새]] 제단", structure = "요새", container = "제단 상자", structID = "stronghold", poolsJava = { { rolls = {2,3}, items = { ["ender-pearl"] = {1,1,10}, ["diamond"] = {1,3,3}, ["iron-ingot"] = {1,5,10}, ["gold-ingot"] = {1,3,5}, ["redstone"] = {4,9,5}, ["bread"] = {1,3,15}, ["apple"] = {1,3,15}, ["iron-pickaxe"] = {1,1,5}, ["iron-sword"] = {1,1,5}, ["iron-chestplate"] = {1,1,5}, ["iron-helmet"] = {1,1,5}, ["iron-leggings"] = {1,1,5}, ["iron-boots"] = {1,1,5}, ["golden-apple"] = {1,1,1}, ["saddle"] = {1,1,1}, ["iron-horse-armor"] = {1,1,1}, ["golden-horse-armor"] = {1,1,1}, ["diamond-horse-armor"] = {1,1,1}, ["enchanted-book"] = {1,1,1}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {2,3}, items = { ["ender-pearl"] = {1,1,50}, ["emerald"] = {1,3,15}, ["diamond"] = {1,3,15}, ["iron-ingot"] = {1,5,50}, ["gold-ingot"] = {1,3,25}, ["redstone"] = {4,9,25}, ["bread"] = {1,3,75}, ["apple"] = {1,3,75}, ["iron-pickaxe"] = {1,1,25}, ["iron-sword"] = {1,1,25}, ["iron-chestplate"] = {1,1,25}, ["iron-helmet"] = {1,1,25}, ["iron-leggings"] = {1,1,25}, ["iron-boots"] = {1,1,25}, ["golden-apple"] = {1,1,5}, ["saddle"] = {1,1,5}, ["iron-horse-armor"] = {1,1,5}, ["golden-horse-armor"] = {1,1,5}, ["diamond-horse-armor"] = {1,1,5}, ["enchanted-book"] = {1,1,6}, } }, }, poolsBedrockUpcoming = {} }, ["stronghold-library"] = { -- stronghold_library.json header = "도서관", superheader = "[[요새]]", link = "[[요새]] 도서관", structure = "요새", container = "도서관 상자", structID = "stronghold", poolsJava = { { rolls = {2,10}, items = { ["book"] = {1,3,20}, ["paper"] = {2,7,20}, ["empty-map"] = {1,1,1}, ["compass"] = {1,1,1}, ["enchanted-book"] = {1,1,10}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {2,10}, items = { ["book"] = {1,3,100}, ["paper"] = {2,7,100}, ["map"] = {1,1,5}, ["compass"] = {1,1,5}, ["enchanted-book"] = {1,1,60}, } }, }, poolsBedrockUpcoming = {} }, ["stronghold-storeroom"] = { -- stronghold_crossing.json header = "저장실", superheader = "[[요새]]", link = "[[요새]] 저장실", structure = "요새", container = "저장실 상자", structID = "stronghold", poolsJava = { { rolls = {1,4}, items = { ["iron-ingot"] = {1,5,10}, ["gold-ingot"] = {1,3,5}, ["redstone"] = {4,9,5}, ["coal"] = {3,8,10}, ["bread"] = {1,3,15}, ["apple"] = {1,3,15}, ["iron-pickaxe"] = {1,1,1}, ["enchanted-book"] = {1,1,1}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,4}, items = { ["iron-ingot"] = {1,5,50}, ["gold-ingot"] = {1,3,25}, ["redstone"] = {4,9,25}, ["coal"] = {3,8,50}, ["bread"] = {1,3,75}, ["apple"] = {1,3,75}, ["iron-pickaxe"] = {1,1,5}, ["enchanted-book"] = {1,1,6}, ["ink-sac"] = {1,3,75}, } }, }, poolsBedrockUpcoming = {} }, ["bonus"] = { -- spawn_bonus_chest.json header = "[[상자#보너스 상자|보너스]]", link = "[[상자#보너스 상자|보너스]]", structure = "보너스 상자", container = "", structID = "day", poolsJava = { { rolls = {1,1}, items = { ["stone-axe"] = {1,1,1}, ["wooden-axe"] = {1,1,3}, } }, { rolls = {1,1}, items = { ["stone-pickaxe"] = {1,1,1}, ["wooden-pickaxe"] = {1,1,3} } }, { rolls = {3,3}, items = { ["apple"] = {1,2,5}, ["bread"] = {1,2,3}, ["raw-salmon"] = {1,2,3}, } }, { rolls = {4,4}, items = { ["stick"] = {1,12,10}, ["oak-planks"] = {1,12,10}, ["oak-log"] = {1,3,3}, ["spruce-log"] = {1,3,3}, ["birch-log"] = {1,3,3}, ["jungle-log"] = {1,3,3}, ["acacia-log"] = {1,3,3}, ["dark-oak-log"] = {1,3,3}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,1}, items = { ["stone-axe"] = {1,1,1}, ["wooden-axe"] = {1,1,3}, } }, { rolls = {1,1}, items = { ["stone-pickaxe"] = {1,1,1}, ["wooden-pickaxe"] = {1,1,3} } }, { rolls = {1,1}, items = { ["apple"] = {1,2,1} } }, { rolls = {1,1}, items = { ["bread"] = {1,2,1} } }, { rolls = {1,1}, items = { ["raw-salmon"] = {1,2,1} } }, { rolls = {1,1}, items = { ["stick"] = {1,12,1} } }, { rolls = {1,1}, items = { ["oak-planks"] = {1,12,1} } }, { rolls = {1,1}, items = { ["dark-oak-log"] = {1,3,1}, ["acacia-log"] = {1,3,1}, } }, { rolls = {1,1}, items = { ["oak-log"] = {1,3,1}, ["spruce-log"] = {1,3,1}, ["birch-log"] = {1,3,1}, ["jungle-log"] = {1,3,1}, } }, { rolls = {1,1}, items = { ["potato"] = {1,2,3}, ["carrot"] = {1,2,3}, } }, { rolls = {1,1}, items = { ["oak-sapling"] = {4,4,2}, ["spruce-sapling"] = {4,4,2}, ["birch-sapling"] = {4,4,2}, ["jungle-sapling"] = {4,4,2}, ["dark-oak-sapling"] = {4,4,2}, ["acacia-sapling"] = {4,4,2}, } }, { rolls = {1,1}, items = { ["melon-seeds"] = {1,2,3}, ["pumpkin-seeds"] = {1,2,3}, ["beetroot-seeds"] = {1,2,3}, } }, { rolls = {1,1}, items = { ["cactus"] = {1,2,3}, ["cocoa-beans"] = {1,2,3}, } }, { rolls = {1,1}, items = { ["brown-mushroom"] = {1,2,2}, } }, }, poolsBedrockUpcoming = {} }, ["dungeon"] = { -- simple_dungeon.json header = "[[던전]]", link = "[[던전]]", structure = "던전", container = "", structID = "Dungeon", poolsJava = { { rolls = {1,3}, items = { ["saddle"] = {1,1,20}, ["golden-apple"] = {1,1,15}, ["enchanted-golden-apple"] = {1,1,2}, ["disc-13"] = {1,1,15}, ["disc-cat"] = {1,1,15}, ["name-tag"] = {1,1,20}, ["golden-horse-armor"] = {1,1,10}, ["iron-horse-armor"] = {1,1,15}, ["diamond-horse-armor"] = {1,1,5}, ["enchanted-book-rnd"] = {1,1,10}, } }, { rolls = {1,4}, items = { ["iron-ingot"] = {1,4,10}, ["gold-ingot"] = {1,4,5}, ["bread"] = {1,1,20}, ["wheat"] = {1,4,20}, ["bucket"] = {1,1,10}, ["redstone"] = {1,4,15}, ["coal"] = {1,4,15}, ["melon-seeds"] = {2,4,10}, ["pumpkin-seeds"] = {2,4,10}, ["beetroot-seeds"] = {2,4,10}, } }, { rolls = {3,3}, items = { ["bone"] = {1,8,10}, ["gunpowder"] = {1,8,10}, ["rotten-flesh"] = {1,8,10}, ["string"] = {1,8,10}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["mineshaft"] = { -- abandoned_mineshaft.json chest_type = "minecart with chest", header = "[[폐광]]", link = "[[폐광]]", structure = "폐광", container = "", structID = "abandoned-mineshaft", poolsJava = { { rolls = {1,1}, items = { ["golden-apple"] = {1,1,20}, ["enchanted-golden-apple"] = {1,1,1}, ["name-tag"] = {1,1,30}, ["enchanted-book-rnd"] = {1,1,10}, ["iron-pickaxe"] = {1,1,5}, ["empty"] = {1,1,5}, } }, { rolls = {2,4}, items = { ["iron-ingot"] = {1,5,10}, ["gold-ingot"] = {1,3,5}, ["redstone"] = {4,9,5}, ["lapis-lazuli"] = {4,9,5}, ["diamond"] = {1,2,3}, ["coal"] = {3,8,10}, ["bread"] = {1,3,15}, ["melon-seeds"] = {2,4,10}, ["pumpkin-seeds"] = {2,4,10}, ["beetroot-seeds"] = {2,4,10}, } }, { rolls = {3,3}, items = { ["rail"] = {4,8,20}, ["powered-rail"] = {1,4,5}, ["detector-rail"] = {1,4,5}, ["activator-rail"] = {1,4,5}, ["torch"] = {1,16,15}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["nether-fortress"] = { -- nether_bridge.json header = "[[네더 요새|요새]]", link = "[[네더 요새|요새]]", structure = "네더 요새", container = "", structID = "nether-fortress", poolsJava = { { rolls = {2,4}, items = { ["diamond"] = {1,3,5}, ["iron-ingot"] = {1,5,5}, ["gold-ingot"] = {1,3,15}, ["golden-sword"] = {1,1,5}, ["golden-chestplate"] = {1,1,5}, ["flint-and-steel"] = {1,1,5}, ["nether-wart"] = {3,7,5}, ["saddle"] = {1,1,10}, ["golden-horse-armor"] = {1,1,8}, ["iron-horse-armor"] = {1,1,5}, ["diamond-horse-armor"] = {1,1,3}, ["obsidian"] = {2,4,2}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["desert-temple"] = { -- desert_pyramid.json header = "[[사막 사원]]", link = "[[사막 사원]]", structure = "사막 사원", container = "", structID = "desert-temple", poolsJava = { { rolls = {2,4}, items = { ["diamond"] = {1,3,5}, ["iron-ingot"] = {1,5,15}, ["gold-ingot"] = {2,7,15}, ["emerald"] = {1,3,15}, ["bone"] = {4,6,25}, ["spider-eye"] = {1,3,25}, ["rotten-flesh"] = {3,7,25}, ["saddle"] = {1,1,20}, ["iron-horse-armor"] = {1,1,15}, ["golden-horse-armor"] = {1,1,10}, ["diamond-horse-armor"] = {1,1,5}, ["enchanted-book-rnd"] = {1,1,20}, ["golden-apple"] = {1,1,20}, ["enchanted-golden-apple"] = {1,1,2}, ["empty"] = {1,1,15}, } }, { rolls = {4,4}, items = { ["bone"] = {1,8,10}, ["gunpowder"] = {1,8,10}, ["rotten-flesh"] = {1,8,10}, ["string"] = {1,8,10}, ["sand"] = {1,8,10}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["jungle-temple"] = { -- jungle_temple.json header = "[[정글 사원]]", link = "[[정글 사원]]", structure = "정글 사원", container = "상자", structID = "jungle-temple", poolsJava = { { rolls = {2,6}, items = { ["diamond"] = {1,3,3}, ["iron-ingot"] = {1,5,10}, ["gold-ingot"] = {2,7,15}, ["emerald"] = {1,3,2}, ["bone"] = {4,6,20}, ["bamboo"] = {1,3,15}, ["rotten-flesh"] = {3,7,16}, ["saddle"] = {1,1,3}, ["iron-horse-armor"] = {1,1,1}, ["golden-horse-armor"] = {1,1,1}, ["diamond-horse-armor"] = {1,1,1}, ["enchanted-book"] = {1,1,1} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {2,6}, items = { ["diamond"] = {1,3,15}, ["iron-ingot"] = {1,5,50}, ["gold-ingot"] = {2,7,75}, ["emerald"] = {1,3,10}, ["bone"] = {4,6,100}, ["rotten-flesh"] = {3,7,80}, ["bamboo"] = {1,3,75}, ["saddle"] = {1,1,15}, ["iron-horse-armor"] = {1,1,5}, ["golden-horse-armor"] = {1,1,5}, ["diamond-horse-armor"] = {1,1,5}, ["enchanted-book"] = {1,1,6} } }, }, poolsBedrockUpcoming = {}, }, ["jungle-temple-dispenser"] = { -- jungle_temple_dispenser.json chest_type = "dispenser", link = "[[정글 사원]]", structure = "정글 사원", container = "발사기", structID = "jungle-temple", poolsJava = { { rolls = {1,2}, items = { ["arrow"] = {2,7,30} } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {2,2}, items = { ["arrow"] = {2,7,30} } }, }, poolsBedrockUpcoming = {} }, ["end-city"] = { -- end_city_treasure.json header = "[[엔드 시티]]", link = "[[엔드 시티]]", structure = "엔드 시티", container = "", structID = "end-city", poolsJava = { { rolls = {2,6}, items = { ["diamond"] = {2,7,5}, ["iron-ingot"] = {4,8,10}, ["gold-ingot"] = {2,7,15}, ["emerald"] = {2,6,2}, ["beetroot-seeds"] = {1,10,5}, ["saddle"] = {1,1,3}, ["iron-horse-armor"] = {1,1,1}, ["golden-horse-armor"] = {1,1,1}, ["diamond-horse-armor"] = {1,1,1}, ["level-enchanted-diamond-sword"] = {1,1,3}, ["level-enchanted-diamond-boots"] = {1,1,3}, ["level-enchanted-diamond-chestplate"] = {1,1,3}, ["level-enchanted-diamond-leggings"] = {1,1,3}, ["level-enchanted-diamond-helmet"] = {1,1,3}, ["level-enchanted-diamond-pickaxe"] = {1,1,3}, ["level-enchanted-diamond-shovel"] = {1,1,3}, ["level-enchanted-iron-sword"] = {1,1,3}, ["level-enchanted-iron-boots"] = {1,1,3}, ["level-enchanted-iron-chestplate"] = {1,1,3}, ["level-enchanted-iron-leggings"] = {1,1,3}, ["level-enchanted-iron-helmet"] = {1,1,3}, ["level-enchanted-iron-pickaxe"] = {1,1,3}, ["level-enchanted-iron-shovel"] = {1,1,3}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["igloo"] = { header = "[[이글루]]", link = "[[이글루]]", structure = "이글루", container = "", structID = "igloo", poolsJava = { { rolls = {2,8}, items = { ["apple"] = {1,3,15}, ["coal"] = {1,4,15}, ["gold-nugget"] = {1,3,10}, ["stone-axe"] = {1,1,2}, ["rotten-flesh"] = {1,1,10}, ["emerald"] = {1,1,1}, ["wheat"] = {2,3,10} } }, { rolls = {1,1}, items = { ["golden-apple"] = {1,1,1}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["pillager-outpost"] = { header = "[[약탈자 전초기지]]", link = "[[약탈자 전초기지]]", structure = "약탈자 전초기지", container = "", structID = "pillager-outpost", poolsJava = { { rolls = {0,1}, items = { ["crossbow"] = {1,1,1}, } }, { rolls = {2,3}, items = { ["wheat"] = {3,5,7}, ["potato"] = {2,5,5}, ["carrot"] = {3,5,5} } }, { rolls = {1,3}, items = { ["dark-oak-log"] = {2,3,1} } }, { rolls = {2,3}, items = { ["bottle-o'-enchanting"] = {1,1,7}, ["string"] = {1,6,4}, ["arrow"] = {2,7,4}, ["tripwire-hook"] = {1,3,3}, ["iron-ingot"] = {1,3,3}, ["enchanted-book-rnd"] = {1,1,1} } } }, poolsJavaUpcoming = {}, poolsBedrock = {}, poolsBedrockUpcoming = {} }, ["bastion-bridge"] = { -- bastion_bridge.json header = "[[보루]] 다리", link = "[[보루 잔해|보루 잔해 다리]]", structure = "보루 잔해", container = "다리 상자", structID = "bastion-remnant", poolsJava = { { rolls = {1,1}, items = { ["lodestone"] = {1,1,1}, } }, { rolls = {1,2}, items = { ["damaged-random-enchanted-crossbow"] = {1,1,1}, ["spectral-arrow"] = {2,12,1}, ["gilded-blackstone"] = {5,8,1}, ["crying-obsidian"] = {3,8,1}, ["block-of-gold"] = {1,1,1}, ["gold-ingot"] = {2,8,1}, ["iron-ingot"] = {2,8,1}, ["golden-sword"] = {1,1,1}, ["random-enchanted-golden-chestplate"] = {1,1,1}, ["random-enchanted-golden-helmet"] = {1,1,1}, ["random-enchanted-golden-leggings"] = {1,1,1}, ["random-enchanted-golden-boots"] = {1,1,1}, } }, { rolls = {2,4}, items = { ["string"] = {1,6,1}, ["leather"] = {1,3,1}, ["arrow"] = {5,17,1}, ["iron-nugget"] = {2,6,1}, ["gold-nugget"] = {2,6,1}, } } }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,1}, items = { ["lodestone"] = {1,1,1}, } }, { rolls = {1,2}, items = { ["damaged-random-enchanted-crossbow"] = {1,1,1}, ["arrow"] = {2,12,1}, ["gilded-blackstone"] = {5,8,1}, ["crying-obsidian"] = {3,8,1}, ["block-of-gold"] = {1,1,1}, ["gold-ingot"] = {2,8,1}, ["iron-ingot"] = {2,8,1}, ["golden-sword"] = {1,1,1}, ["random-enchanted-golden-chestplate"] = {1,1,1}, ["random-enchanted-golden-helmet"] = {1,1,1}, ["random-enchanted-golden-leggings"] = {1,1,1}, ["random-enchanted-golden-boots"] = {1,1,1}, } }, { rolls = {2,4}, items = { ["string"] = {1,6,1}, ["leather"] = {1,3,1}, ["arrow"] = {5,17,1}, ["iron-nugget"] = {2,6,1}, ["gold-nugget"] = {2,6,1} } } }, poolsBedrockUpcoming = {} }, ["bastion-hoglin-stable"] = { -- bastion_hoglin_stable.json header = "[[보루]] 호글린 마구간", link = "[[보루 잔해|보루 잔해 호글린 마구간]]", structure = "보루 잔해", container = "호글린 마구간 상자", structID = "bastion-remnant", poolsJava = { { rolls = {1,1}, items = { ["damaged-random-enchanted-diamond-shovel"] = {1,1,5}, ["netherite-scrap"] = {1,1,2}, ["ancient-debris"] = {1,1,3}, ["saddle"] = {1,1,10}, ["block-of-gold"] = {2,4,25}, ["random-enchanted-golden-hoe"] = {1,1,15}, ["empty"] = {1,1,45}, } }, { rolls = {3,4}, items = { ["glowstone"] = {1,5,1}, ["gilded-blackstone"] = {1,5,1}, ["soul-sand"] = {2,7,1}, ["crimson-nylium"] = {2,7,1}, ["gold-nugget"] = {2,8,1}, ["leather"] = {1,3,1}, ["arrow"] = {5,17,1}, ["string"] = {3,8,1}, ["raw-porkchop"] = {2,5,1}, ["cooked-porkchop"] = {2,5,1}, ["crimson-fungus"] = {2,7,1}, ["crimson-roots"] = {2,7,1}, } } }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,1}, items = { ["damaged-random-enchanted-diamond-shovel"] = {1,1,5}, ["netherite-scrap"] = {1,1,2}, ["ancient-debris"] = {1,1,3}, ["saddle"] = {1,1,10}, ["block-of-gold"] = {2,4,25}, ["random-enchanted-golden-hoe"] = {1,1,15}, ["empty"] = {1,1,45} } }, { rolls = {3,4}, items = { ["glowstone"] = {1,5,1}, ["gilded-blackstone"] = {1,5,1}, ["soul-sand"] = {2,7,1}, ["crimson-nylium"] = {2,7,1}, ["gold-nugget"] = {2,8,1}, ["leather"] = {1,3,1}, ["arrow"] = {5,17,1}, ["string"] = {3,8,1}, ["raw-porkchop"] = {2,5,1}, ["cooked-porkchop"] = {2,5,1}, ["crimson-fungus"] = {2,7,1}, ["crimson-roots"] = {2,7,1} } } }, poolsBedrockUpcoming = {} }, ["bastion-generic"] = { -- bastion_other.json header = "[[보루]]", link = "[[보루 잔해|보루 잔해]]", structure = "보루 잔해", container = "일반 상자", structID = "bastion-remnant", poolsJava = { { rolls = {1,1}, items = { ["damaged-random-enchanted-crossbow"] = {1,1,12}, ["ancient-debris"] = {1,1,2}, ["netherite-scrap"] = {1,1,2}, ["spectral-arrow"] = {2,15,6}, ["snout-banner-pattern"] = {1,1,5}, ["disc-pigstep"] = {1,1,3}, ["enchanted-book-rnd-soul-speed"] = {1,1,10}, ["empty"] = {1,1,50}, } }, { rolls = {2,2}, items = { ["soul-speed-enchanted-golden-boots"] = {1,1,1}, ["block-of-gold"] = {1,1,1}, ["crossbow"] = {1,1,1}, ["gold-ingot"] = {1,6,1}, ["iron-ingot"] = {1,6,1}, ["golden-sword"] = {1,1,1}, ["golden-chestplate"] = {1,1,1}, ["golden-helmet"] = {1,1,1}, ["golden-leggings"] = {1,1,1}, ["golden-boots"] = {1,1,1}, ["empty"] = {1,1,2}, } }, { rolls = {3,5}, items = { ["crying-obsidian"] = {1,5,1}, ["gilded-blackstone"] = {1,5,1}, ["chain"] = {2,10,1}, ["magma-cream"] = {2,6,1}, ["bone-block"] = {3,6,1}, ["iron-nugget"] = {2,8,1}, ["obsidian"] = {4,6,1}, ["gold-nugget"] = {2,8,1}, ["string"] = {4,6,1}, ["arrow"] = {5,17,2}, } } }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,1}, items = { ["damaged-random-enchanted-crossbow"] = {1,1,12}, ["ancient-debris"] = {1,1,2}, ["netherite-scrap"] = {1,1,2}, ["arrow"] = {2,15,16}, ["snout-banner-pattern"] = {1,1,5}, ["disc-pigstep"] = {1,1,3}, ["enchanted-book-rnd-soul-speed"] = {1,1,10}, ["empty"] = {1,1,50}, } }, { rolls = {2,2}, items = { ["soul-speed-enchanted-golden-boots"] = {1,1,1}, ["block-of-gold"] = {1,1,1}, ["crossbow"] = {1,1,1}, ["gold-ingot"] = {1,6,1}, ["iron-ingot"] = {1,6,1}, ["golden-sword"] = {1,1,1}, ["golden-chestplate"] = {1,1,1}, ["golden-helmet"] = {1,1,1}, ["golden-leggings"] = {1,1,1}, ["golden-boots"] = {1,1,1}, ["empty"] = {1,1,2}, } }, { rolls = {3,5}, items = { ["crying-obsidian"] = {1,5,1}, ["gilded-blackstone"] = {1,5,1}, ["chain"] = {2,10,1}, ["magma-cream"] = {2,6,1}, ["bone-block"] = {3,6,1}, ["iron-nugget"] = {2,8,1}, ["obsidian"] = {4,6,1}, ["gold-nugget"] = {2,8,1}, ["string"] = {4,6,1}, ["arrow"] = {5,17,2}, } } }, poolsBedrockUpcoming = {} }, ["bastion-treasure"] = { -- bastion_treasure.json header = "[[보루]] 보물", link = "[[보루 잔해|보루 잔해 보물]]", structure = "보루 잔해", container = "보물 상자", structID = "bastion-remnant", poolsJava = { { rolls = {1,2}, items = { ["netherite-ingot"] = {1,1,10}, ["ancient-debris"] = {1,1,14}, ["netherite-scrap"] = {1,1,10}, ["ancient-debris"] = {2,2,1}, ["damaged-random-enchanted-diamond-sword"] = {1,1,10}, ["damaged-random-enchanted-diamond-chestplate"] = {1,1,6}, ["damaged-random-enchanted-diamond-helmet"] = {1,1,6}, ["damaged-random-enchanted-diamond-leggings"] = {1,1,6}, ["damaged-random-enchanted-diamond-boots"] = {1,1,6}, ["damaged-diamond-sword"] = {1,1,6}, ["damaged-diamond-chestplate"] = {1,1,5}, ["damaged-diamond-helmet"] = {1,1,5}, ["damaged-diamond-leggings"] = {1,1,5}, ["damaged-diamond-boots"] = {1,1,5}, ["diamond"] = {1,3,5}, } }, { rolls = {2,4}, items = { ["spectral-arrow"] = {5,21,1}, ["block-of-gold"] = {2,5,1}, ["gold-ingot"] = {3,9,1}, ["iron-ingot"] = {3,9,1}, ["crying-obsidian"] = {1,5,1}, ["nether-quartz"] = {8,23,1}, ["gilded-blackstone"] = {1,5,1}, ["magma-cream"] = {2,8,1}, ["iron-nugget"] = {8,16,1}, } } }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,2}, items = { ["netherite-ingot"] = {1,1,10}, ["ancient-debris"] = {1,1,14}, ["netherite-scrap"] = {1,1,10}, ["ancient-debris"] = {2,2,1}, ["damaged-random-enchanted-diamond-sword"] = {1,1,10}, ["damaged-random-enchanted-diamond-chestplate"] = {1,1,6}, ["damaged-random-enchanted-diamond-helmet"] = {1,1,6}, ["damaged-random-enchanted-diamond-leggings"] = {1,1,6}, ["damaged-random-enchanted-diamond-boots"] = {1,1,6}, ["damaged-diamond-sword"] = {1,1,6}, ["damaged-diamond-chestplate"] = {1,1,5}, ["damaged-diamond-helmet"] = {1,1,5}, ["damaged-diamond-boots"] = {1,1,5}, ["damaged-diamond-leggings"] = {1,1,5}, ["diamond"] = {1,3,5}, } }, { rolls = {2,4}, items = { ["arrow"] = {5,21,1}, ["block-of-gold"] = {2,5,1}, ["gold-ingot"] = {3,9,1}, ["iron-ingot"] = {3,9,1}, ["crying-obsidian"] = {1,5,1}, ["nether-quartz"] = {8,23,1}, ["gilded-blackstone"] = {1,5,1}, ["magma-cream"] = {2,8,1}, ["iron-nugget"] = {8,16,1}, } } }, poolsBedrockUpcoming = {} }, ["ruined-portal"] = { --ruined_portal.json header = "[[무너진 차원문]]", link = "[[무너진 차원문]]", structure = "무너진 차원문", container = "", structID = "ruined-portal", poolsJava = { { rolls = {4,8}, items = { ["obsidian"] = {1,2,40}, ["flint"] = {1,4,40}, ["iron-nugget"] = {9,18,40}, ["flint-and-steel"] = {1,1,40}, ["fire-charge"] = {1,1,40}, ["golden-apple"] = {1,1,15}, ["gold-nugget"] = {4,24,15}, ["random-enchanted-golden-sword"] = {1,1,15}, ["random-enchanted-golden-axe"] = {1,1,15}, ["random-enchanted-golden-hoe"] = {1,1,15}, ["random-enchanted-golden-pickaxe"] = {1,1,15}, ["random-enchanted-golden-shovel"] = {1,1,15}, ["random-enchanted-golden-helmet"] = {1,1,15}, ["random-enchanted-golden-chestplate"] = {1,1,15}, ["random-enchanted-golden-leggings"] = {1,1,15}, ["random-enchanted-golden-boots"] = {1,1,15}, ["glistering-melon-slice"] = {4,12,5}, ["golden-horse-armor"] = {1,1,5}, ["light-weighted-pressure-plate"] = {1,1,5}, ["golden-carrot"] = {4,12,5}, ["clock"] = {1,1,5}, ["gold-ingot"] = {2,8,5}, ["bell"] = {1,1,1}, ["enchanted-golden-apple"] = {1,1,1}, ["block-of-gold"] = {1,2,1}, } } }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {4,8}, items = { ["obsidian"] = {1,2,40}, ["flint"] = {1,4,40}, ["iron-nugget"] = {9,18,40}, ["flint-and-steel"] = {1,1,40}, ["fire-charge"] = {1,1,40}, ["golden-apple"] = {1,1,15}, ["gold-nugget"] = {4,24,15}, ["random-enchanted-golden-sword"] = {1,1,15}, ["random-enchanted-golden-axe"] = {1,1,15}, ["random-enchanted-golden-hoe"] = {1,1,15}, ["random-enchanted-golden-shovel"] = {1,1,15}, ["random-enchanted-golden-pickaxe"] = {1,1,15}, ["random-enchanted-golden-boots"] = {1,1,15}, ["random-enchanted-golden-chestplate"] = {1,1,15}, ["random-enchanted-golden-helmet"] = {1,1,15}, ["random-enchanted-golden-leggings"] = {1,1,15}, ["glistering-melon-slice"] = {1,1,5}, ["golden-horse-armor"] = {1,1,5}, ["light-weighted-pressure-plate"] = {1,1,5}, ["golden-carrot"] = {4,12,5}, ["clock"] = {1,1,5}, ["gold-ingot"] = {2,8,5}, ["bell"] = {1,1,1}, ["enchanted-golden-apple"] = {1,1,1}, ["block-of-gold"] = {1,2,1}, } } }, poolsBedrockUpcoming = {} }, ["woodland-mansion"] = { -- woodland_mansion.json header = "[[삼림 대저택]]", link = "[[삼림 대저택]]", structure = "삼림 대저택", container = "", structID = "woodland-mansion", poolsJava = { { rolls = {1,3}, items = { ["lead"] = {1,1,20}, ["golden-apple"] = {1,1,15}, ["enchanted-golden-apple"] = {1,1,2}, ["disc-13"] = {1,1,15}, ["disc-cat"] = {1,1,15}, ["name-tag"] = {1,1,20}, ["chainmail-chestplate"] = {1,1,10}, ["diamond-hoe"] = {1,1,15}, ["diamond-chestplate"] = {1,1,5}, ["enchanted-book-rnd"] = {1,1,10}, } }, { rolls = {1,4}, items = { ["iron-ingot"] = {1,4,10}, ["gold-ingot"] = {1,4,5}, ["bread"] = {1,1,20}, ["wheat"] = {1,4,20}, ["bucket"] = {1,1,10}, ["redstone"] = {1,4,15}, ["coal"] = {1,4,15}, ["melon-seeds"] = {2,4,10}, ["pumpkin-seeds"] = {2,4,10}, ["beetroot-seeds"] = {2,4,10}, } }, { rolls = {3,3}, items = { ["bone"] = {1,8,10}, ["gunpowder"] = {1,8,10}, ["rotten-flesh"] = {1,8,10}, ["string"] = {1,8,10}, } }, }, poolsJavaUpcoming = {}, poolsBedrock = { { rolls = {1,3}, items = { ["lead"] = {1,1,100}, ["golden-apple"] = {1,1,75}, ["enchanted-golden-apple"] = {1,1,10}, ["disc-13"] = {1,1,75}, ["disc-cat"] = {1,1,75}, ["name-tag"] = {1,1,100}, ["chainmail-chestplate"] = {1,1,50}, ["diamond-hoe"] = {1,1,75}, ["diamond-chestplate"] = {1,1,25}, ["enchanted-book-rnd-treasure"] = {1,1,60}, } }, { rolls = {1,4}, items = { ["iron-ingot"] = {1,4,50}, ["gold-ingot"] = {1,4,25}, ["bread"] = {1,1,100}, ["wheat"] = {1,4,100}, ["bucket"] = {1,1,50}, ["redstone"] = {1,4,75}, ["coal"] = {1,4,75}, ["melon-seeds"] = {2,4,50}, ["pumpkin-seeds"] = {2,4,50}, ["beetroot-seeds"] = {2,4,50}, } }, { rolls = {3,3}, items = { ["bone"] = {1,8,50}, ["gunpowder"] = {1,8,50}, ["rotten-flesh"] = {1,8,50}, ["string"] = {1,8,50}, } }, }, poolsBedrockUpcoming = {} }, }, -- these values are used: -- * in place of the keys, when the key is used as a parameter -- chest-param -> internally-valid-chest-param synonyms = { ["desert"] = "desert-temple", ["jungle"] = "jungle-temple", ["nether"] = "nether-fortress", ["fortress"] = "nether-fortress", ["armorer"] = "village-armorer", ["butcher"] = "village-butcher", ["cartographer"] = "village-cartographer", ["fisherman"] = "village-fisherman", ["fletcher"] = "village-fletcher", ["mason"] = "village-mason", ["shepherd"] = "village-shepherd", ["tannery"] = "village-tannery", ["temple"] = "village-temple", ["toolsmith"] = "village-toolsmith", ["weaponsmith"] = "village-weaponsmith", ["desert-house"] = "village-desert-house", ["plains-house"] = "village-plains-house", ["savanna-house"] = "village-savanna-house", ["snowy-house"] = "village-snowy-house", ["taiga-house"] = "village-taiga-house", ["altar"] = "stronghold-altar", ["storeroom"] = "stronghold-storeroom", ["library"] = "stronghold-library", ["outpost"] = "pillager-outpost", ["mansion"] = "woodland-mansion" }, -- these values are used: -- * in the header-description of a table showing only a single chest -- * if the key is not here, but it is a valid chest parameter, -- that header-description will default to use the key string from p.chests, -- e.g. "nether-fortress" -- chest-param -> description-string display_names = { ["nether-fortress"] = "네더 요새", ["nether"] = "네더 요새", ["fortress"] = "네더 요새", ["desert"] = "사막 사원", ["jungle"] = "정글 사원", ["desert-temple"] = "사막 사원", ["jungle-temple"] = "정글 사원", }, -- these descriptions are used: -- * in column <abbr> titles, -- * and above the table when only a single column-type is chosen columns = { ["stacksize"] = '이 아이템의 묶음의 수 (쌓기가 안되는 경우, 그냥 갯수).', ["weight"] = '이 종류에서 다른 아이템에 비한 이 아이템의 가중치.', ["chance"] = '하나의 상자에서 이 아이템이 존재할 확률.', ["items"] = '상자당 기대되는 아이템의 수. 많은 상자를 평균한 값임.', ["chests"] = '이 아이템을 찾으려면 평균 몇개의 상자를 찾아야 할까?' }, current_frame = nil } p.base = function( ... ) p.current_frame = mw.getCurrentFrame() local args = { ... } if args[1] == p.current_frame then args = require( '모듈:ProcessArgs' ).merge( true ) else args = args[1] end -- transform args into usable list local chests, columns = q.massage_args( args ) if #chests == 0 then return "<span style='font-style:italic; color:red;'>모듈:LootChest: no valid arguments</span>" end q.fill_in_chest_derivative_data( chests ) -- construct an ordered list dictating the order of the rows local ordered_item_rows_java = {} local ordered_item_rows_java_upcoming = {} local ordered_item_rows_bedrock = {} local ordered_item_rows_bedrock_upcoming = {} local ret = {} local java_specified = args.java and args.java ~= '0'; local java_upcoming_specified = args['java-upcoming'] and args['java-upcoming'] ~= '0'; local bedrock_specified = args.bedrock and args.bedrock ~= '0'; local bedrock_upcoming_specified = args['bedrock-upcoming'] and args['bedrock-upcoming'] ~= '0'; local any_specified = java_specified or java_upcoming_specified or bedrock_specified or bedrock_upcoming_specified if any_specified then if java_specified then ordered_item_rows_java = q.construct_ordered_item_rows( chests, 'Java' ) end if java_upcoming_specified then ordered_item_rows_java_upcoming = q.construct_ordered_item_rows( chests, 'JavaUpcoming' ) end if bedrock_specified then ordered_item_rows_bedrock = q.construct_ordered_item_rows( chests, 'Bedrock' ) end if bedrock_upcoming_specified then ordered_item_rows_bedrock_upcoming = q.construct_ordered_item_rows( chests, 'BedrockUpcoming' ) end else local java_excluded = args.java and args.java == '0'; local java_upcoming_excluded = args['java-upcoming'] and args['java-upcoming'] == '0'; local bedrock_excluded = args.bedrock and args.bedrock == '0'; local bedrock_upcoming_excluded = args['bedrock-upcoming'] and args['bedrock-upcoming'] == '0'; if not java_excluded then ordered_item_rows_java = q.construct_ordered_item_rows( chests, 'Java' ) end if not java_upcoming_excluded then ordered_item_rows_java_upcoming = q.construct_ordered_item_rows( chests, 'JavaUpcoming' ) end if not bedrock_excluded then ordered_item_rows_bedrock = q.construct_ordered_item_rows( chests, 'Bedrock' ) end if not bedrock_upcoming_excluded then ordered_item_rows_bedrock_upcoming = q.construct_ordered_item_rows( chests, 'BedrockUpcoming' ) end end if q.tablelength( ordered_item_rows_java ) > 0 then table.insert( ret, q.print_table( chests, columns, ordered_item_rows_java, 'Java' ) ) end if q.tablelength( ordered_item_rows_java_upcoming ) > 0 and q.compare_tables( ordered_item_rows_java, ordered_item_rows_java_upcoming ) then table.insert( ret, p.current_frame:preprocess( p['java-upcoming'] ) .. '에서는 ' .. q.lcfirst( q.print_table( chests, columns, ordered_item_rows_java_upcoming, 'JavaUpcoming' ) ) ) end if q.tablelength( ordered_item_rows_bedrock ) > 0 and q.compare_tables( ordered_item_rows_java, ordered_item_rows_bedrock ) then table.insert( ret, p.current_frame:preprocess( p.bedrock ) .. '에서는 ' .. q.lcfirst( q.print_table( chests, columns, ordered_item_rows_bedrock, 'Bedrock' ) ) .. '[[분류:베드락 에디션 관련 정보]]' ) end if q.tablelength( ordered_item_rows_bedrock_upcoming ) > 0 and q.compare_tables( ordered_item_rows, ordered_item_rows_bedrock_upcoming ) then table.insert( ret, p.current_frame:preprocess( p['bedrock-upcoming'] ) .. '에서는 ' .. q.lcfirst( q.print_table( chests, columns, ordered_item_rows_bedrock_upcoming, 'BedrockUpcoming' ) ) .. '[[분류:베드락 에디션 관련 정보]]' ) end return table.concat( ret, '\n\n' ) end p.doc = function() local valid_args = {} for chest_name, val in pairs(p.chests) do local synonyms = {} for syn, orig in pairs(p.synonyms) do if orig == chest_name then table.insert( synonyms, syn ) end end if #synonyms > 0 then chest_name = chest_name .. " ( " .. table.concat( synonyms, ", " ) .. " )" end table.insert( valid_args, chest_name ) end table.sort( valid_args ) return table.concat( valid_args, ",\n<br>" ) end p.doc2 = function() local valid_args = {} for column_name, val in pairs(p.columns) do table.insert( valid_args, column_name .. ": " .. val ) end table.sort( valid_args ) return table.concat( valid_args, ",\n<br>" ) end p.doc3 = function() local valid_args = {} for item_name, val in pairs(p.items) do table.insert( valid_args, item_name ) end table.sort( valid_args ) return table.concat( valid_args, ", " ) end p.base2 = function( ... ) p.current_frame = mw.getCurrentFrame() local args = { ... } if args[1] == p.current_frame then args = require( '모듈:ProcessArgs' ).merge( true ) else args = args[1] end local itemname = args[1] if p.items[itemname] == nil then return '<span style="color:red;">"' .. itemname .. '"은 알 수 없는 아이템입니다</span>' end if args.java and args.java ~= '0' then javaChances = q.single_item_find_values( itemname, 'poolsJava' ) javaUpcomingChances = {} bedrockChances = {} bedrockUpcomingChances = {} else if args['java-upcoming'] and args['java-upcoming'] ~= '0' then javaChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming' ) javaUpcomingChances = {} bedrockChances = {} bedrockUpcomingChances = {} else if args.bedrock and args.bedrock ~= '0' then javaChances = q.single_item_find_values( itemname, 'poolsBedrock' ) javaUpcomingChances = {} bedrockChances = {} bedrockUpcomingChances = {} else if args['bedrock-upcoming'] and args['bedrock-upcoming'] ~= '0' then javaChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming' ) javaUpcomingChances = {} bedrockChances = {} bedrockUpcomingChances = {} else javaChances = q.single_item_find_values( itemname, 'poolsJava' ) javaUpcomingChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming', javaChances ) bedrockChances = q.single_item_find_values( itemname, 'poolsBedrock', javaChances ) bedrockUpcomingChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming', javaChances, bedrockChances ) end end end end local html = {} local any_current = q.tablelength( javaChances ) > 0 local any_changes_upcoming = q.tablelength( javaUpcomingChances ) > 0 and q.compare_tables( javaChances, javaUpcomingChances ) local any_standard = any_current or any_changes_upcoming local any_bedrock_current = q.tablelength( bedrockChances ) > 0 local any_bedrock_upcoming = q.tablelength( bedrockUpcomingChances ) > 0 and q.compare_tables( bedrockChances, bedrockUpcomingChances ) local any_bedrock = any_bedrock_current or any_bedrock_upcoming local change_case = p.items[itemname].preserve_case == nil or p.items[itemname].preserve_case ~= true if any_current then table.insert( html, p.base2_sub( itemname, javaChances ) ) end if any_changes_upcoming then table.insert( html, p.current_frame:preprocess( p['java-upcoming'] ) .. '에서는 ' .. ( change_case and q.lcfirst( p.base2_sub( itemname, javaUpcomingChances, any_current ) ) or p.base2_sub( itemname, javaUpcomingChances, any_current ) ) ) end if any_bedrock_current then table.insert( html, ( any_standard and '\n\n' or '' ) .. p.current_frame:preprocess( p.bedrock ) .. '에서는 ' .. ( change_case and q.lcfirst( p.base2_sub( itemname, bedrockChances, any_standard ) ) or p.base2_sub( itemname, bedrockChances, any_standard ) ) ) end if any_bedrock_upcoming then table.insert( html, ( any_standard and not any_bedrock_current and '\n\n' or '' ) .. p.current_frame:preprocess( p['bedrock-upcoming'] ) .. '에서는 ' .. ( change_case and q.lcfirst( p.base2_sub( itemname, bedrockUpcomingChances, any_bedrock_current or any_standard ) ) or p.base2_sub( itemname, bedrockUpcomingChances, any_bedrock_current or any_standard ) ) ) end if args.nocat then else table.insert( html, '[[분류:전리품 상자 항목 틀이 있는 페이지]]' ) if p.items[itemname].category ~= nil and p.items[itemname].category ~= false then table.insert( html, '[[분류:특정 전리품 상자 항목이 있는 페이지]]' ) end if any_bedrock then table.insert( html, '[[분류:베드락 에디션 관련 정보]]' ) end end return table.concat( html, ' ' ) end p.base2_sub = function( itemname, chances, use_they ) -- 복붙 시작! local html = {} local item_display_name = '' local name_without_ref = nil -- if TRUE, ref tag is being used. -- use_they가 참일 경우는 "베드락 에디션에서는 이들은 ~~의 확률로"를 출력할 때 뿐인데, -- 한국어판에서는 "베드락 에디션에서는 ~~의 확률로"로 출력하도록 텍스트를 간소화한다. if not use_they then if p.items[itemname].plural ~= nil and p.items[itemname].plural ~= false then item_display_name = p.items[itemname].plural else if p.items[itemname].title ~= nil then item_display_name = p.items[itemname].title else item_display_name = string.gsub( itemname, '-', ' ' ) end -- if p.items[itemname].plural == nil or p.items[itemname].plural ~= false then -- item_display_name = q.single_item_plural( item_display_name ) -- end end local Autolink = require( '모듈:Autolink' ) item_display_name = Autolink.invlink(item_display_name, 'nolink') if p.items[itemname].preserve_case == nil or p.items[itemname].preserve_case ~= true then item_display_name = q.capitalize( item_display_name ) end if p.items[itemname].note and p.notes[p.items[itemname].note] then name_without_ref = item_display_name item_display_name = item_display_name .. p.current_frame:preprocess( p.notes[p.items[itemname].note] ) end end table.insert( html, item_display_name ) -- josa insertion if not use_they then -- use_they에 관한 주석은 위를 볼 것 local josa = require('모듈:Josa').josa if (name_without_ref) then table.insert( html, josa(name_without_ref, '은/는')..' ' ) else table.insert( html, josa(item_display_name, '은/는')..' ' ) end end local html_stacks = {} local stack_sep = '. ' local ns = q.tablelength( chances ) local s = 0 -- 주의: 미래에 전리품을 획득할 수 있는 장소가 추가되면 이 부분이 수정되어야 한다. for stacksize, chest_details in pairs( chances ) do s = s + 1 local html_per_stack = { '' } local c = 0 local nc = q.tablelength( chest_details ) local sep = ( nc > 1 and ', ' or ' ' ) -- 영어에서는 항목 열거 시 마지막 항목 앞에 반점을 없애고 'and'를 쓰기 때문에 조건 값이 2지만, 한국어는 그렇지 않기 때문에 조건 값이 1이다 if nc > 2 and s ~= ns then stack_sep = '. ' end for k, chest in pairs( chest_details ) do c = c + 1 if c == nc and nc > 1 then table.insert( html_per_stack, '' ) end if chest.chance == 1 then -- 확률 100% table.insert( html_per_stack, " 모든 " ) -- 예: 모든 보너스 상자에서 else table.insert( html_per_stack, string.format("%.1f", chest.chance*100) ) table.insert( html_per_stack, "% 확률로 " ) end if chest.chest_type == 'minecart with chest' then table.insert( html_per_stack, p.chests[chest.chest_name].link ) table.insert( html_per_stack, ' [[상자가 실린 광산 수레]]에서' ) elseif chest.chest_type == 'dispenser' then table.insert( html_per_stack, p.chests[chest.chest_name].link ) table.insert( html_per_stack, '의 [[발사기]]에서' ) elseif chest.chest_type == 'bonus' then table.insert( html_per_stack, p.chests[chest.chest_name].link ) table.insert( html_per_stack, '에서' ) elseif chest.chest_type == 'shipwreck' then table.insert( html_per_stack, p.chests[chest.chest_name].link ) table.insert( html_per_stack, '에서' ) else table.insert( html_per_stack, p.chests[chest.chest_name].link ) table.insert( html_per_stack, ' 상자에서' ) end table.insert( html_per_stack, sep ) end if nc > 2 then -- "모두" 앞에 반점이 붙는 것을 없애기 위해 출력 스택을 직접 건드린다. -- 미친 짓이니 다음에는 이러지 마라 table.remove( html_per_stack ) table.insert( html_per_stack, ' 모두 ' ) -- 예: 모두 nn%의 확률로 end table.insert( html_per_stack, stacksize) -- ~개 묶음으로 앞에 오는 반점 제거. 또 스택을 직접 건드린다. if html_per_stack[#html_per_stack - 1] == ', ' then html_per_stack[#html_per_stack - 1] = ' ' -- 공백은 필요하다 end if p.items[itemname].cannot_stack ~= nil then table.insert( html_per_stack, '개 묶음으로 ' ) else table.insert( html_per_stack, '개 묶음으로 ' ) end table.insert( html_per_stack, '생성된다' ) table.insert( html_stacks, table.concat( html_per_stack ) ) end local stackwise_summaries = '' if #html_stacks == 1 then table.insert( html, html_stacks[1] ) else for i = 1, #html_stacks - 1 do table.insert( html, html_stacks[ i ] ) table.insert( html, stack_sep ) end --table.insert( html, '그리고 ' ) table.insert( html, html_stacks[#html_stacks] ) end -- 복붙 끝! table.insert( html, '.' ) return table.concat( html ) end p.base2_test = function() items = {} for item_name, v in pairs( p.items ) do table.insert( items, p.base2{ item_name, ["nocat"]=true } .. '\n\n' ) end table.sort( items ) return table.concat(items) end p.base3 = function( ... ) p.current_frame = mw.getCurrentFrame() local args = { ... } if args[1] == p.current_frame then args = require( '모듈:ProcessArgs' ).merge( true ) else args = args[1] end local z = args[1] local html_java = {} local html_java_u = {} local html_bedrock = {} local html_bedrock_u = {} local rErr = "" local zT = {} if args[1] == "!!!ALL!!!" then for item_name, v in pairs( p.items ) do table.insert( zT, item_name ) table.sort( zT ) end else zT = mw.text.split( args[1], ',' ) end for x, itemname in pairs( zT ) do if p.items[itemname] == nil then rErr = rErr .. "<span class='error'>Unknown item " .. itemname .. ".</span>\n" else local javaChances, javaUpcomingChances, bedrockChances, bedrockUpcomingChances if args.java and args.java ~= '0' then javaChances = q.single_item_find_values( itemname, 'poolsJava' ) javaUpcomingChances = {} bedrockChances = {} bedrockUpcomingChances = {} else if args['java-upcoming'] and args['java-upcoming'] ~= '0' then javaChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming' ) javaUpcomingChances = {} bedrockChances = {} bedrockUpcomingChances = {} else if args.bedrock and args.bedrock ~= '0' then javaChances = q.single_item_find_values( itemname, 'poolsBedrock' ) javaUpcomingChances = {} bedrockChances = {} bedrockUpcomingChances = {} else if args['bedrock-upcoming'] and args['bedrock-upcoming'] ~= '0' then javaChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming' ) javaUpcomingChances = {} bedrockChances = {} bedrockUpcomingChances = {} else javaChances = q.single_item_find_values( itemname, 'poolsJava' ) javaUpcomingChances = q.single_item_find_values( itemname, 'poolsJavaUpcoming', javaChances ) bedrockChances = q.single_item_find_values( itemname, 'poolsBedrock', javaChances ) bedrockUpcomingChances = q.single_item_find_values( itemname, 'poolsBedrockUpcoming', javaChances, bedrockChances ) end end end end local any_current = q.tablelength( javaChances ) > 0 local any_changes_upcoming = q.tablelength( javaUpcomingChances ) > 0 and q.compare_tables( javaChances, javaUpcomingChances ) local any_standard = any_current or any_changes_upcoming local any_bedrock_current = q.tablelength( bedrockChances ) > 0 local any_bedrock_upcoming = q.tablelength( bedrockUpcomingChances ) > 0 and q.compare_tables( bedrockChances, bedrockUpcomingChances ) local any_bedrock = any_bedrock_current or any_bedrock_upcoming if any_current then table.insert( html_java, p.base3_sub( itemname, javaChances ) ) end if any_changes_upcoming then table.insert( html_java_u, p.base3_sub( itemname, javaUpcomingChances ) ) end if any_bedrock_current then table.insert( html_bedrock, p.base3_sub( itemname, bedrockChances ) ) end if any_bedrock_upcoming then table.insert( html_bedrock_u, p.base3_sub( itemname, bedrockUpcomingChances ) ) end end end local output = rErr .. '{| class="wikitable sortable" \n! 아이템 \n! 구조물 \n! 상자 \n! 수량 \n! 확률 \n' .. table.concat( html_java ) if q.tablelength( html_java_u ) > 0 then output = output .. '|-\n!colspan=5|' .. p['java-upcoming'] .. ' \n' .. table.concat( html_java_u ) end if q.tablelength( html_bedrock ) > 0 then output = output .. '|-\n!colspan=5|' .. p.bedrock .. ' \n' .. table.concat( html_bedrock ) end if q.tablelength( html_bedrock_u ) > 0 then output = output .. '|-\n!colspan=5|' .. p['bedrock-upcoming'] .. ' \n' .. table.concat( html_bedrock_u ) end output = output .. '|}' .. p.current_frame:extensionTag( 'references', "", { group="note" } ) return output end p.base3_sub = function( itemname, chances ) local html = {} local item_display_name = '' local output = "" lang = mw.getContentLanguage() if p.items[itemname].title ~= nil then item_display_name = p.items[itemname].title else item_display_name = q.titlecase( string.gsub( itemname, '-', ' ' ) ) end local objectList = {} local ns = q.tablelength( chances ) local s = 0 local m = 0 local rn = 0 for stacksize, chest_details in pairs( chances ) do s = s + 1 local nc = q.tablelength( chest_details ) local c = 0 for k, chest in pairs( chest_details ) do c = c + 1 rn = rn + 1 local r = "" r = r .. '|' .. p.chests[chest.chest_name].container .. '\n|' .. stacksize .. '\n|' .. lang:formatNum( math.floor( chest.chance*1000 + 0.5 ) /10 ) .. ' %' .. '\n' if ns ~= s or nc ~= c then r = r end table.insert( objectList , { p.chests[chest.chest_name].structID , p.chests[chest.chest_name].structure, r } ) end m = m + nc end table.sort( objectList, function(a,b) return a[1] < b[1] end ) local struct = "" local t = "" local nt = 1 local ntt = 0 for v, w in pairs( objectList ) do ntt = ntt + 1 if w[1] ~= struct then if t ~= "" then output = output .. "|rowspan=" .. nt .. t end t = "|'''" .. p.current_frame:expandTemplate{ title = 'EnvLink', args = { w[2], id = w[1] } } .. "'''\n" .. w[3] struct = w[1] nt = 1 else t = t .. w[3] nt = nt + 1 end if ntt == m then output = output .. "|rowspan=" .. nt .. t else t = t .. '|-' .. '\n' end end return "|-\n| rowspan=" .. m .. "|'''" .. p.getItem(itemname, item_display_name) .. "'''\n" .. output end p.getItem = function( itemname, item_display_name ) local s = "" local k = item_display_name local link = item_display_name local m = itemname if p.items[itemname].title ~= nil then k = p.items[itemname].title end if p.items[itemname].link ~= nil then link = p.items[itemname].link end if p.items[itemname].id ~= nil then m = p.items[itemname].id end if p.items[itemname][1] == "item" then s = p.current_frame:expandTemplate{ title = 'ItemLink', args = { link , k , id = m } } elseif p.items[itemname][1] == "block" then s = p.current_frame:expandTemplate{ title = 'BlockLink', args = { link , k , id = m } } end if p.items[itemname].note ~= nil and p.items[itemname].note ~= "" then s = s .. p.current_frame:extensionTag( 'ref', p.notes[p.items[itemname].note], { group='note', name=p.items[itemname].note } ) end return s end q = { tablelength = function(T) local count = 0 for _ in pairs(T) do count = count + 1 end return count end, deepcopy = function(orig) local orig_type = type(orig) local copy if orig_type == 'table' then copy = {} for orig_key, orig_value in next, orig, nil do copy[q.deepcopy(orig_key)] = q.deepcopy(orig_value) end setmetatable(copy, q.deepcopy(getmetatable(orig))) else -- number, string, boolean, etc copy = orig end return copy end, single_item_find_values = function( itemname, poolsKey, exclusions_param, other_exclusions_param ) local chances = {} local exclusions = q.deepcopy(exclusions_param or {}) local other_exclusions = q.deepcopy(other_exclusions_param or {}) for stacksize, other_exclusion_list in pairs(other_exclusions) do if exclusions[stacksize] == nil then exclusions[stacksize] = {} end for _, other_exclusion in pairs(other_exclusion_list) do local already_in_here = false for _, exclusion in pairs(exclusions[stacksize]) do if exclusion["chest_name"] == other_exclusion["chest_name"] and exclusion["chance"] == other_exclusion["chance"] then already_in_here = true break end end if not already_in_here then table.insert( exclusions[stacksize], other_exclusion ) end end end for chest_name, chest in pairs( p.chests ) do local poolchances = {} for k, pool in pairs( chest[poolsKey] or chest.poolsJava or {} ) do local poolitem = pool.items[itemname] if poolitem ~= nil then local stacksize = poolitem[1] if poolitem[1] ~= poolitem[2] then stacksize = stacksize .. "–" .. poolitem[2] end local itemweight = poolitem[3] local pool_total_item_weight = 0 for itemname, item in pairs(pool.items) do pool_total_item_weight = pool_total_item_weight + item[3] end local chance = p.calc_chance_any_of_this_item_per_pool( pool.rolls[1], pool.rolls[2], itemweight, pool_total_item_weight ) if poolchances[stacksize] == nil then poolchances[stacksize] = chance else poolchances[stacksize] = poolchances[stacksize] + (1 - poolchances[stacksize]) * chance end end end for stacksize, chance in pairs( poolchances ) do local excluded = false for _, exclusion in pairs( exclusions[stacksize] or {} ) do if exclusion["chest_name"] == chest_name and exclusion["chance"] == chance then excluded = true break end end if not excluded then if chances[stacksize] == nil then chances[stacksize] = {} end table.insert( chances[stacksize], { ["chance"]=chance, ["chest_name"]=chest_name, ["chest_type"]=( chest.chest_type or "chest" ) } ) end end end return chances end, single_item_plural = function( itemname ) if string.sub( itemname, -2 ) == 'ss' or string.sub( itemname, -2 ) == 'ch' or string.sub( itemname, -2 ) == 'sh' or string.sub( itemname, -1 ) == 's' then return itemname .. 'es' end return itemname .. 's' end, massage_args = function( args ) -- find what columns to put local columns = {} for k, _arg in pairs(args) do if p.columns[_arg] ~= nil then columns[_arg] = true end end if q.tablelength(columns) == 0 then for column_name, v in pairs(p.columns) do columns[column_name] = true end end -- find what chests to show local chests = {} for k, _arg in pairs(args) do if p.chests[_arg] ~= nil then table.insert( chests, _arg ) elseif p.synonyms[_arg] ~= nil then table.insert( chests, p.synonyms[_arg] ) end if p.display_names[_arg] ~= nil then local chestname = _arg if p.chests[chestname] == nil then chestname = p.synonyms[_arg] end p.chests[chestname].display_name = p.display_names[_arg] end end if #chests == 0 then for chest_name, chest in pairs(p.chests) do local chest_type = ( chest.chest_type or "chest" ) if chest_type == "chest" or chest_type == "minecart with chest" then table.insert( chests, chest_name ) end end end table.sort( chests ) return chests, columns end, sort_items = function( e1, e2 ) if e1.chanceany ~= e2.chanceany then return ( e1.chanceany > e2.chanceany ) end if e1.avgamount ~= e2.avgamount then return ( e1.avgamount > e2.avgamount ) end if e1.material == nil then e1.material = 0 if string.find( e1.itemname, "leather" ) ~= nil then e1.material = 1 end if string.find( e1.itemname, "iron" ) ~= nil then e1.material = 2 end if string.find( e1.itemname, "gold" ) ~= nil then e1.material = 3 end if string.find( e1.itemname, "diamond" ) ~= nil then e1.material = 4 end e1.armor = 0 if string.find( e1.itemname, "helmet" ) ~= nil or string.find( e1.itemname, "cap" ) ~= nil then e1.armor = 1 end if string.find( e1.itemname, "chestplate" ) ~= nil or string.find( e1.itemname, "tunic" ) ~= nil then e1.armor = 2 end if string.find( e1.itemname, "leggings" ) ~= nil or string.find( e1.itemname, "pants" ) ~= nil then e1.armor = 3 end if string.find( e1.itemname, "boots" ) ~= nil then e1.armor = 4 end end if e2.material == nil then e2.material = 0 if string.find( e2.itemname, "leather" ) ~= nil then e2.material = 1 end if string.find( e2.itemname, "iron" ) ~= nil then e2.material = 2 end if string.find( e2.itemname, "gold" ) ~= nil then e2.material = 3 end if string.find( e2.itemname, "diamond" ) ~= nil then e2.material = 4 end e2.armor = 0 if string.find( e2.itemname, "helmet" ) ~= nil or string.find( e2.itemname, "cap" ) ~= nil then e2.armor = 1 end if string.find( e2.itemname, "chestplate" ) ~= nil or string.find( e2.itemname, "tunic" ) ~= nil then e2.armor = 2 end if string.find( e2.itemname, "leggings" ) ~= nil or string.find( e2.itemname, "pants" ) ~= nil then e2.armor = 3 end if string.find( e2.itemname, "boots" ) ~= nil then e2.armor = 4 end end if e1.material ~= e2.material then return ( e1.material < e2.material ) end if e1.armor ~= e2.armor then return ( e1.armor < e2.armor ) end return ( e1.itemname < e2.itemname ) end, fill_in_chest_derivative_data = function( chest_names ) for k, chest_name in pairs(chest_names) do local chest = p.chests[chest_name] if chest == nil then break end chest.allRollsJava = {} chest.itemDataJava = {} for k, pool in pairs( chest.poolsJava or {} ) do table.insert( chest.allRollsJava, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) ) local total_weight = 0 for itemname, item in pairs(pool.items) do total_weight = total_weight + item[3] end pool.totalweight = total_weight q.fill_in_chest_item_details( chest.itemDataJava, pool, #chest.allRollsJava ) end chest.allRollsJavaUpcoming = {} chest.itemDataJavaUpcoming = {} for k, pool in pairs( chest.poolsJavaUpcoming or chest.poolsJava or {} ) do table.insert( chest.allRollsJavaUpcoming, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) ) local total_weight = 0 for itemname, item in pairs(pool.items) do total_weight = total_weight + item[3] end pool.totalweight = total_weight q.fill_in_chest_item_details( chest.itemDataJavaUpcoming, pool, #chest.allRollsJavaUpcoming ) end chest.allRollsBedrock = {} chest.itemDataBedrock = {} for k, pool in pairs( chest.poolsBedrock or chest.poolsJava or {} ) do table.insert( chest.allRollsBedrock, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) ) local total_weight = 0 for itemname, item in pairs(pool.items) do total_weight = total_weight + item[3] end pool.totalweight = total_weight q.fill_in_chest_item_details( chest.itemDataBedrock, pool, #chest.allRollsBedrock ) end chest.allRollsBedrockUpcoming = {} chest.itemDataBedrockUpcoming = {} for k, pool in pairs( chest.poolsBedrockUpcoming or chest.poolsJava or {} ) do table.insert( chest.allRollsBedrockUpcoming, ( pool.rolls[1] == pool.rolls[2] and pool.rolls[1] or pool.rolls[1]..'–'..pool.rolls[2] ) ) local total_weight = 0 for itemname, item in pairs(pool.items) do total_weight = total_weight + item[3] end pool.totalweight = total_weight q.fill_in_chest_item_details( chest.itemDataBedrockUpcoming, pool, #chest.allRollsBedrockUpcoming ) end end end, fill_in_chest_item_details = function( data, pool, ct ) for item_name, item in pairs(pool.items) do if p.items[item_name] then local min_stacksize = item[1] local max_stacksize = item[2] local min_pool_rolls = pool.rolls[1] local max_pool_rolls = pool.rolls[2] local item_weight = item[3] if data[item_name] == nil then data[item_name] = { avgamount = 0, chanceany = 0, itemname = item_name, sortsize = {}, sortweight = {}, sizes = {}, weights = {}, } for i = 1, ct-1 do data[item_name].sortsize[i] = 0 data[item_name].sortweight[i] = 0 data[item_name].sizes[i] = '—' data[item_name].weights[i] = '—' end end data[item_name].avgamount = data[item_name].avgamount + p.calc_average_amount_this_item_per_pool( min_stacksize, max_stacksize, min_pool_rolls, max_pool_rolls, item_weight, pool.totalweight ) data[item_name].chanceany = data[item_name].chanceany + (1 - data[item_name].chanceany) * p.calc_chance_any_of_this_item_per_pool( min_pool_rolls, max_pool_rolls, item_weight, pool.totalweight ) data[item_name].sortsize[ct] = ( min_stacksize + max_stacksize ) / 2 data[item_name].sortweight[ct] = item_weight; data[item_name].sizes[ct] = ( min_stacksize == max_stacksize and min_stacksize or min_stacksize .. '–' .. max_stacksize ) data[item_name].weights[ct] = p.current_frame:expandTemplate{ title = 'frac', args = { item_weight, pool.totalweight } } end end for item_name, d in pairs(data) do if not d.sizes[ct] then d.sortsize[ct] = 0 d.sortweight[ct] = 0 d.sizes[ct] = '—' d.weights[ct] = '—' end end end, construct_ordered_items_from_first_chest = function( chest_names, suffix ) local items_from_first_table = {} local item_chests = {} local item_names_ordered = {} for item_name, item in pairs( p.chests[chest_names[1]]['itemData'..suffix] ) do table.insert( items_from_first_table, item ) end table.sort( items_from_first_table, q.sort_items ) for k, item in pairs( items_from_first_table ) do table.insert( item_names_ordered, item.itemname ) item_chests[item.itemname] = true end return item_names_ordered, item_chests end, get_ordered_items_from_other_chests = function( chest_names, item_chests, suffix ) local items_not_from_first_table = {} for chest_idx = 2, #chest_names do for item_name, item in pairs( p.chests[chest_names[chest_idx]]['itemData'..suffix] ) do if item_chests[item_name] == nil then p.items[item_name].itemname = item_name table.insert( items_not_from_first_table, p.chests[chest_names[chest_idx]]['itemData'..suffix][item_name] ) item_chests[item_name] = true end end end table.sort( items_not_from_first_table, q.sort_items ) return items_not_from_first_table end, add_other_items_to_first_list = function( chest_names, item_names_ordered, item_chests, items_not_from_first_table ) for k, item in pairs( items_not_from_first_table ) do table.insert( item_names_ordered, item.itemname ) end return item_names_ordered end, set_up_ordered_item_rows = function( chest_names, item_names_ordered, suffix ) for k, itemname in pairs(item_names_ordered) do item_names_ordered[k] = {itemname} for chest_idx = 1, #chest_names do if suffix == 'JavaUpcoming' or p.chests[chest_names[chest_idx]]['pools'..suffix] ~= nil then local item_data = p.chests[chest_names[chest_idx]]['itemData'..suffix][itemname] if item_data == nil then table.insert( item_names_ordered[k], false ) else table.insert( item_names_ordered[k], item_data ) end end end end return item_names_ordered end, construct_ordered_item_rows = function( chest_names, suffix ) -- for the first chest, sort its by chance desc, then by avg amount desc, then alphabetically asc local item_names_ordered, item_chests = q.construct_ordered_items_from_first_chest( chest_names, suffix ) if #chest_names > 1 then -- after that, sort all the remaining items in list order local items_not_from_first_table = q.get_ordered_items_from_other_chests( chest_names, item_chests, suffix ) item_names_ordered = q.add_other_items_to_first_list( chest_names, item_names_ordered, item_chests, items_not_from_first_table ) end -- set up item_names_ordered so that each is a row, representing chest values item_names_ordered = q.set_up_ordered_item_rows( chest_names, item_names_ordered, suffix ) return item_names_ordered end, print_table = function( chest_names, columns, ordered_item_rows, suffix ) local html = {} local use_roll_row = false local use_superheader = false local superheader_sizes = {} for i = 1, #chest_names do sh = p.chests[chest_names[i]].superheader if sh ~= nil then if superheader_sizes[sh] == nil then superheader_sizes[sh] = 0 end superheader_sizes[sh] = superheader_sizes[sh] + 1 use_superheader = true end local allRolls = p.chests[chest_names[i]]['allRolls'..suffix] if #allRolls > 1 then use_roll_row = true end end if columns['stacksize'] == nil and columns['weight'] == nil then use_roll_row = false end local rowspan = ( #chest_names > 1 and 1 or 0 ) + ( use_superheader and 1 or 0 ) + 1 local hide_col_description = rowspan > 1 and q.tablelength(columns) == 1 if use_roll_row then rowspan = rowspan + 1 end if q.tablelength(columns) == 1 then for column_name, v in pairs(columns) do table.insert( html, "Values represent " ) table.insert( html, p.columns[column_name] ) table.insert( html, "\n" ) end end if #chest_names == 1 then if q.tablelength(columns) == 1 then table.insert( html, "<br>" ) end local chest_name = chest_names[1] local allRolls = p.chests[chest_name]['allRolls'..suffix] local chest_type = p.chests[chest_name].chest_type or "chest" local display_name = p.chests[chest_name].display_name chest_name = chest_name:gsub( "-", " " ) table.insert( html, "Each " ) table.insert( html, display_name or chest_name ) if chest_type ~= 'chest' and chest_type ~= 'minecart with chest' then table.insert( html, " contains " ) else table.insert( html, " chest contains " ) end if #allRolls == 1 then table.insert( html, allRolls[1] ) table.insert( html, " item stacks, " ) else table.insert( html, ' items drawn from ' ) table.insert( html, #allRolls ) table.insert( html, ' pools, ' ) end table.insert( html, " with the following distribution: \n" ) end table.insert( html, '<div style="overflow:auto">\n' ) table.insert( html, "<table class='wikitable sortable jquery-tablesorter'>\n" ) table.insert( html, "<tr>\n" ) table.insert( html, "<th rowspan=" ) table.insert( html, ( rowspan - ( hide_col_description and 1 or 0 ) ) ) table.insert( html, "></th>\n" ) local superheader_cols_used = {} if #chest_names > 1 then local row1, row2 = {}, {} for i = 1, #chest_names do if suffix == 'JavaUpcoming' or p.chests[chest_names[i]]['pools'..suffix] ~= nil then local allRolls = p.chests[chest_names[i]]['allRolls'..suffix] local colspan = q.tablelength(columns) local allRollsSpan = #allRolls == 0 and 1 or #allRolls if columns['stacksize'] ~= nil then colspan = colspan - 1 + allRollsSpan end if columns['weight'] ~= nil then colspan = colspan - 1 + allRollsSpan end local row = row1 rowspan = 1 if use_superheader then sh = p.chests[chest_names[i]].superheader if sh ~= nil then if superheader_cols_used[sh] == nil then table.insert( row, "<th colspan=" ) table.insert( row, ( colspan * superheader_sizes[sh] ) ) table.insert( row, ">" ) table.insert( row, sh ) table.insert( row, "</th>\n" ) superheader_cols_used[sh] = 0 end row = row2 else rowspan = rowspan + 1 end end if use_roll_row and hide_col_description and #allRolls < 2 then rowspan = rowspan + 1 end table.insert( row, "<th colspan=" ) table.insert( row, colspan ) if rowspan > 1 then table.insert( row, " rowspan=" ) table.insert( row, rowspan ) end table.insert( row, ">" ) table.insert( row, p.chests[ chest_names[i] ].header ) if #allRolls > 0 then table.insert( row, ' <br><span style="font-weight:normal; font-style:italic; font-size:11px;">(' ) if #allRolls == 1 then table.insert( row, allRolls[1] ) else local s = ( #allRolls > 2 and ', ' or ' ' ) for i = 1, #allRolls-1 do table.insert( row, allRolls[i] ) table.insert( row, s ) end table.insert( row, 'and ' ) table.insert( row, allRolls[#allRolls] ) end table.insert( row, ' stacks)</span>' ) end table.insert( row, "</th>\n" ) end end table.insert( html, table.concat( row1 ) ) table.insert( html, "</tr><tr>\n" ) if #row2 then table.insert( html, table.concat( row2 ) ) table.insert( html, "</tr><tr>\n" ) end end if not hide_col_description then local headersort_th_open if use_roll_row then headersort_th_open = "<th rowspan='2' class='headersort' role='columnheader button' data-sort-type='number'> <abbr title='" else headersort_th_open = "<th class='headersort' role='columnheader button' data-sort-type='number'> <abbr title='" end for i = 1, #chest_names do if suffix == 'JavaUpcoming' or p.chests[chest_names[i]]['pools'..suffix] ~= nil then local allRolls = p.chests[chest_names[i]]['allRolls'..suffix] local allRollsSpan = #allRolls == 0 and 1 or #allRolls local headersort_th_colspan_open if #allRolls > 1 then headersort_th_colspan_open = "<th colspan='" .. allRollsSpan .. "' role='columnheader'> <abbr title='" else headersort_th_colspan_open = headersort_th_open end if columns['stacksize'] ~= nil then table.insert( html, headersort_th_colspan_open ) table.insert( html, p.columns['stacksize'] ) table.insert( html, "'> Stack Size </abbr></th>\n" ) end if columns['weight'] ~= nil then table.insert( html, headersort_th_colspan_open ) table.insert( html, p.columns['weight'] ) table.insert( html, "'> Weight" ) table.insert( html, "</abbr></th>\n" ) end if columns['items'] ~= nil then table.insert( html, headersort_th_open ) table.insert( html, p.columns['items'] ) table.insert( html, "'> # Items </abbr></th>\n" ) end if columns['chance'] ~= nil then table.insert( html, headersort_th_open ) table.insert( html, p.columns['chance'] ) table.insert( html, "'> Chance </abbr></th>\n" ) end if columns['chests'] ~= nil then table.insert( html, headersort_th_open ) table.insert( html, p.columns['chests'] ) table.insert( html, "'> # Chests </abbr></th>\n" ) end end end table.insert( html, "</tr><tr>\n" ) end if use_roll_row then local rowcols = ( columns['stacksize'] ~= nil and 1 or 0 ) + ( columns['weight'] ~= nil and 1 or 0 ) for i = 1, #chest_names do local allRolls = p.chests[chest_names[i]]['allRolls'..suffix] if #allRolls > 1 then for j = 1, rowcols do for k = 1, #allRolls do table.insert( html, "<th class='headersort' role='columnheader button' data-sort-type='number' style='font-weight:normal'><abbr title='The chest will draw " ) table.insert( html, allRolls[k] ) table.insert( html, " stack(s) randomly from this pool.'>" ) table.insert( html, allRolls[k] ) table.insert( html, "×</abbr></th>\n" ) end end end end table.insert( html, "</tr><tr>\n" ) end for i = 1, #ordered_item_rows do if type( ordered_item_rows[i] ) == "table" then for j = 1, #ordered_item_rows[i] do local chest_item = ordered_item_rows[i][j] if type( chest_item ) == "table" then local avg_amount = string.format("%.3f", chest_item.avgamount) local chance_any = string.format("%.1f", chest_item.chanceany*100) .. "%" local num_chests = string.format("%.1f", 1/chest_item.chanceany) table.insert( html, "\n" ) if columns['stacksize'] ~= nil then for k = 1, #chest_item.sizes do table.insert( html, "<td style='text-align:center;' data-sort-value='" ) table.insert( html, ( chest_item.sortsize[k] == 0 and "9e99" or chest_item.sortsize[k] ) ) table.insert( html, "'>" ) table.insert( html, chest_item.sizes[k] ) table.insert( html, "</td>" ) end end if columns['weight'] ~= nil then for k = 1, #chest_item.sizes do table.insert( html, "<td style='text-align:center;' data-sort-value='" ) table.insert( html, ( chest_item.sortweight[k] == 0 and "9e99" or chest_item.sortweight[k] ) ) table.insert( html, "'>" ) table.insert( html, chest_item.weights[k] ) table.insert( html, "</td>" ) end end if columns['items'] ~= nil then table.insert( html, "<td style='text-align:center;'>" ) table.insert( html, avg_amount ) table.insert( html, "</td>" ) end if columns['chance'] ~= nil then table.insert( html, "<td style='text-align:center;'>" ) table.insert( html, chance_any ) table.insert( html, "</td>" ) end if columns['chests'] ~= nil then table.insert( html, "<td style='text-align:center;'>" ) table.insert( html, num_chests ) table.insert( html, "</td>" ) end elseif type( chest_item ) == "boolean" then local allRolls = p.chests[chest_names[j-1]]['allRolls'..suffix] local allRollsSpan = #allRolls == 0 and 1 or #allRolls table.insert( html, "\n" ) if columns['stacksize'] ~= nil then for k = 1, allRollsSpan do table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" ) end end if columns['weight'] ~= nil then for k = 1, allRollsSpan do table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" ) end end if columns['items'] ~= nil then table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" ) end if columns['chance'] ~= nil then table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" ) end if columns['chests'] ~= nil then table.insert( html, "<td data-sort-value='9e99' style='text-align:center;'>—</td>" ) end else if i > 1 then table.insert( html, "</tr><tr>" ) end local item = p.items[chest_item] local s = require( '모듈:Sprite' ) table.insert( html, "\n<td>" ) local image, spriteCat = s.link{ id=item.id or chest_item, link=item.link or string.gsub(chest_item,'-',' '), text=item.title or q.titlecase(string.gsub(chest_item,'-',' ')), data= ( item[1] == 'item' and 'ItemSprite' or 'BlockSprite' ) } table.insert( html, image ) table.insert( html, spriteCat ) if item.note and p.notes[item.note] then table.insert( html, p.current_frame:extensionTag( 'ref', p.notes[item.note], { group='note', name=item.note } ) ) end table.insert( html, "</td>" ) end if j == #ordered_item_rows[i] then table.insert( html, "</tr>" ) end end table.insert( html, "\n" ) end end table.insert( html, "</table></div>" ) return table.concat( html ) end, titlecase = function( str ) local buf = {} for word in string.gfind(str, "%S+") do if word == "and" then table.insert( buf, word ) else local first, rest = string.sub( word, 1, 1 ), string.sub( word, 2 ) table.insert( buf, string.upper(first) .. string.lower(rest) ) end end return table.concat( buf, " " ) end, capitalize = function( str ) return ( string.lower(str):gsub( "^%l", string.upper ) ) end, lcfirst = function( str ) return ( string.gsub( str, "^%u", string.lower ) ) end, compare_tables = function( a, b ) local seen = {} for k, v in pairs( a ) do if type( v ) ~= type( b[k] ) then return true end if v ~= b[k] then return true end if type( v ) == 'table' and q.compare_tables( v, b[k] ) then return true end seen[k] = true end for k, v in pairs( b ) do if not seen[k] then return true end end return false end, } string.lpad = function(str, len, char) if char == nil then char = ' ' end return string.rep(char, len - #(''..str)) .. str end return p