ความแรงสัญญาณคอมพาราเตอร์จากภาชนะ: สูตรและกับดักขนาดสแต็ก
หีบที่มีของ 1 ชิ้นจะส่งสัญญาณ 1 แต่หีบที่มีของ 63 ชิ้นก็ส่งสัญญาณ 1 เช่นกัน สูตรนี้จะอธิบายว่าทำไมถึงเป็นเช่นนั้น และทำไมกล่องชัลเกอร์กับถังถึงทำให้การคำนวณทั้งหมดของคุณผิดเพี้ยนไป
การอ่านค่าภาชนะด้วยคอมพาราเตอร์ (comparator) เป็นหัวใจสำคัญของระบบคัดแยกไอเทมและระบบคราฟต์อัตโนมัติที่ใช้เรดสโตนส่วนใหญ่ สูตรนี้สั้นและทุกความแปลกประหลาดก็มาจากมัน
สูตร
signal = floor(1 + (sum of fullness across slots ÷ number of slots) × 14)
โดยที่ความเต็มของแต่ละช่องคือ items in slot ÷ max stack size for that item
ส่วน 1 + เป็นส่วนสำคัญ: เนื้อหาที่ไม่ใช่ศูนย์ใดๆ จะสร้างสัญญาณอย่างน้อย 1 และภาชนะที่ว่างเปล่าคือ 0 นั่นคือเหตุผลที่การตรวจจับ "มีอะไรอยู่ในนี้บ้างไหม" เป็นเรื่องง่าย และการตรวจจับ "มีปริมาณเท่าไหร่กันแน่" ไม่ใช่เรื่องง่าย
ทำไมของ 1 ชิ้นและ 63 ชิ้นถึงให้ค่า 1 เท่ากัน
หีบคู่มี 54 ช่อง หินหยาบ (Cobblestone) หนึ่งสแต็ก 64 ชิ้นจะเติมเต็มหนึ่งช่องพอดี:
1 + (1 ÷ 54) × 14 = 1 + 0.259 = 1.259 → floor = 1
คุณต้องมี สี่สแต็กเต็ม ก่อนที่เอาต์พุตจะถึง 2 ตัวตรวจจับไอเทมเดี่ยวแบบคลาสสิกทำงานได้เพราะ 1 เป็นค่าต่ำสุดสำหรับเนื้อหาใดๆ ไม่ใช่เพราะมันวัดไอเทมหนึ่งชิ้น
ขนาดสแต็กเปลี่ยนทุกสิ่ง
max stack size เป็นต่อไอเทม และนี่คือจุดที่การคำนวณผิดพลาด:
| ไอเทม | สแต็ก | หนึ่งไอเทมให้ค่า |
|---|---|---|
| หินหยาบ (Cobblestone) | 64 | 1/64 ของช่อง |
| ไข่มุกเอนเดอร์ (Ender pearl) | 16 | 1/16 |
| ถัง (Bucket), รถราง (Minecart), เรือ | 1 | เต็มช่อง |
ท่อส่ง (Hopper) ช่องเดียวที่บรรจุ ถัง (Bucket) หนึ่งใบจะอ่านค่าเต็ม — สัญญาณ 15 นี่คือเคล็ดลับมาตรฐานสำหรับตัวนับที่แม่นยำ: เติม 4 ใน 5 ช่องของท่อส่งด้วยไอเทมที่ไม่สามารถสแต็กได้ และใช้ช่องที่ห้าเป็นสัญญาณ
กล่องชัลเกอร์ (Shulker Box) ไม่โปร่งใส
คอมพาราเตอร์ที่อ่านหีบที่มี กล่องชัลเกอร์ (Shulker Box) จะมองเห็นกล่องนั้นเป็นไอเทมหนึ่งชิ้นที่ครอบครองหนึ่งช่อง มันไม่สามารถมองเห็นข้างในได้ ระบบคัดแยกที่สันนิษฐานเป็นอย่างอื่นจะนับผิดพลาดโดยไม่รู้ตัว
การอ่านค่าคอมพาราเตอร์ที่ไม่ใช่ภาชนะ
คอมพาราเตอร์เดียวกันนี้ยังอ่านค่าได้จาก:
| บล็อก | สัญญาณ |
|---|---|
| หม้อปรุงยา (Cauldron) | 0–3 ตามระดับน้ำ |
| ถังหมักปุ๋ย (Composter) | 0–8 ตามระดับการเติม |
| เค้ก (Cake) | 14 ลงไปถึง 0 ต่อชิ้นที่ถูกกิน |
| กรอบไอเทม (Item Frame) | 1–8 ตามการหมุน |
| ตู้เพลง (Jukebox) | 1–15 ตามแผ่นดิสก์ |
| แท่นอ่านหนังสือ (Lectern) | หมายเลขหน้า |
| กล่องรังผึ้ง (Beehive) | 0–5 ระดับน้ำผึ้ง |
| กรอบประตูมิติเอนด์ (End Portal Frame) | 15 ถ้ามีตา, 0 ถ้าไม่มี |
กรอบไอเทม (Item Frame) และแท่นอ่านหนังสือ (Lectern) มีประโยชน์สำหรับสวิตช์ที่ซ่อนอยู่ เพราะสามารถอ่านค่าผ่านกำแพงได้
โหมดลบ
คบเพลิง (Torch) ด้านหน้าติดสว่างหมายถึงโหมด ลบ (subtract): เอาต์พุตคือค่าด้านข้างลบออกจากด้านหลัง โดยมีค่าต่ำสุดที่ 0 โหมดเปรียบเทียบ (compare) (คบเพลิงไม่ติดสว่าง) จะส่งผ่านสัญญาณด้านหลังก็ต่อเมื่อสัญญาณนั้นมีความแรงอย่างน้อยเท่ากับสัญญาณด้านข้างที่แรงที่สุด
ป้อนเนื้อหาของภาชนะและรับสัญญาณที่แน่นอน รวมถึงขนาดสแต็กที่ผสมกัน ใน Reference & Calculators — Set 2