Krav och kvalitet
Kravmotorn mäter hela rätblocket i en enda genomgång och jämför resultatet mot typens kravlista. Kraven handlar om golvyta, innerhöjd, hur tätt väggar, tak och golv är byggda, hur mycket luft som finns innanför väggarna, hur många dörrar och ljuskällor du har, och vilka block som måste eller inte får finnas. Utöver godkänt eller underkänt får byggnaden en kvalitetspoäng mellan 0 och 100 som avgör hur stark bonusen blir. Huvudtråden tar bara chunk-ögonblicksbilderna, två per tick, och själva analysen körs asynkront med ett område i taget.
Kommandon
/byggnad krav [typ]Utan argument: alla byggnadstyper med kategori. Med en typ: typens fullständiga kravlista, omvärldskrav, kostnad, underhåll och nivåerna.
/byggnad kontrollera [namn]Mäter om en byggnad, eller alla stadens om du utelämnar namnet, och visar kravlistan, nivån och kvaliteten. Har en cooldown på 5 minuter som administratörer går förbi. Kräver rollen MANAGE_BUILDINGS.
/byggnadadmin validera <id>Kontrollerar byggnaden direkt, utan att vänta på bakgrundskontrollen och utan omvalideringsspärr. Id:t kan skrivas som de första tecknen i byggnadens id, så länge prefixet bara matchar en byggnad.
Listar alla registrerade kravtyper och namngivna regler som byggnader.yml kan använda.
Läser om byggnader.yml och svarar med hur många typer som lästes in. Du kan alltså ändra krav, kostnader och bonusar utan att starta om servern.
Vad mätningen räknar fram
| Mått | Så mäts det |
|---|---|
| Golvyta | Antal solida block på markeringens lägsta nivå, över hela fotavtrycket |
| Byggt golv | Hur många av golvblocken som är byggda material. Naturlig mark räknas inte |
| Innerhöjd | Längsta sammanhängande passerbara pelaren ovanför golvet, mätt innanför väggarna |
| Väggandel | Andelen byggda solida block på fotavtryckets ytterring i väggbandet. Dörrar räknas som vägg |
| Takandel | Andelen av rummets kolumner som har byggt tak ovanför väggbandet. Lutande tak duger lika bra som platt |
| Inre utrymme | Passerbara celler innanför väggarna, alltså rummets faktiska volym |
| Öppningar | Dörrar, portar och luckor i mantelytan. Staketgrindar räknas som dörrar |
| Ljus och dekor | Ljuskällor respektive dekorationsblock i hela markeringen |
| Materialvariation | Antal olika byggda material |
| Obligatoriska block | Antal förekomster inuti hela markeringen |
Kravtyper som byggnader.yml kan använda
| Kravtyp | Nycklar | Betyder |
|---|---|---|
| minst_block | block eller grupp, minst | Minst N av ett material eller en materialgrupp |
| hogst_block | block eller grupp, hogst | Högst N av ett material eller en materialgrupp |
| innehaller | block eller grupp, minst | Minst N av ett material eller en materialgrupp |
| forbjuder | block eller grupp | Materialet får inte finnas |
| min_golvyta / max_golvyta | minst / hogst | Golvyta i block |
| min_innerhojd / max_innerhojd | minst / hogst | Innerhöjd i block |
| kraver_vaggar | procent | Minst X procent av mantelytan är byggda solida block |
| kraver_tak | procent | Minst X procent av takplanet har tak |
| kraver_golv | procent | Minst X procent av fotavtrycket är byggt golv |
| kraver_inre | minst | Minst N luftceller innanför väggarna |
| kraver_oppning | minst | Minst N dörrar, portar eller luckor mot utsidan |
| kraver_ljus | minst | Minst N ljuskällor |
| kraver_vatten | minst | Minst N vattenblock i eller intill markeringen |
| intill | block, intill, minst | Block X måste ligga intill block Y, till exempel masugn intill städ |
| eget | regel | Namngiven regel i koden, se nästa tabell |
De fyra namngivna reglerna (eget)
| Regel | Betyder | Används av |
|---|---|---|
| oppet_vatten | Byggnaden ligger vid riktigt öppet vatten | Hamn |
| heltackande_golv | Golvet täcker hela fotavtrycket | – |
| luftigt | Dubbelt så mycket luft som golvyta innanför väggarna | Marknadshall, ridcenter, kyrka |
| egen_kropp | Minst 60 procent av blocken är byggda | Rådhus |
Kvalitetspoängens sju delmått
| Delmått | Vikt | Full poäng vid |
|---|---|---|
| Storlek över typens minimum | 20 | 2,5 gånger typens minsta golvyta |
| Materialvariation | 15 | 12 olika byggda material |
| Andel byggda block | 15 | Alla solida block är byggda, inte naturlig mark |
| Dekorationsblock | 15 | 5 dekorblock per 100 golvblock |
| Funktionella block enligt typen | 15 | Alla typens blockkrav uppfyllda |
| Ljussättning | 10 | 4 ljuskällor per 100 golvblock |
| Överuppfyllnad av kraven | 10 | Kraven uppfylls i snitt 2 gånger om |
Materialgrupper du kan kräva
| Grupp | Innehåller |
|---|---|
| Bokhyllor | Bokhylla och uthuggen bokhylla |
| Sängar | Alla sängar, oavsett färg |
| Fönster | Glasrutor, färgade glasrutor, glasblock, färgat glas och tonat glas |
| Behållare | Kista, fällkista och tunna |
| Ugnar | Ugn, masugn och rökugn |
| Blomkrukor | Alla planterade krukor, blomkruka och mönstrad kruka |
| Räls | Räls, drivräls, detektorräls och aktiveringsräls |
| Fanor | Alla banér och fanor |
| Staket | Alla staket (men inte grindar) |
| Grindar | Alla staketgrindar |
| Skyltar | Alla skyltar och hängande skyltar |
| Ljus | Ljus i alla färger |
Bra att veta
Kvaliteten avgör halva bonusen
Effektiv bonus = basbonus x (0,5 + 0,5 x kvalitet/100). Ett hus med kvalitet 0 ger halva bonusen, ett med kvalitet 100 ger hela. Det lönar sig alltså rejält att bygga större än minimum, blanda material, inreda och lysa upp. Poängen visas i boken, i /byggnad info och i /byggnadadmin debug.
Använd grupper i stället för enskilda material
RED_BED: 2 betyder två röda sängblock och underkänner en blå säng utan att någon förstår varför. Gruppen Sängar gör samma jobb utan att bestämma inredningen. Mönstret * matchar hela slutet av materialnamnet, så *_FENCE fångar inte *_FENCE_GATE - staket och grindar går att kräva var för sig.
Varning: Bara block räknas
Mätningen läser bara block ur världen, aldrig entiteter eller föremål. Ett rustningsställ, en godsvagn eller sakerna i en kista syns inte alls. Blocket måste dessutom gå att få tag på i överlevnadsläge - kreativläges-block som spawner, bedrock, barriär, kommandoblock och valv kan aldrig vara ett giltigt krav. Båda reglerna vaktas av ett test.
Varning: Dörrar och sängar är två block var
En dörr består av två block (över och under) och en säng av två (huvud och fot). Ett krav på 4 sängblock betyder alltså två sängar, och 2 järndörrsblock betyder en järndörr.
Nivåernas krav är kumulativa
En typ kan ha nivåerna I, II, III med egna krav, egna bonusar och eget underhåll. Nivå II:s krav är nivå I:s plus nivå II:s egna. Vid varje mätning avgörs den högsta uppfyllda nivån automatiskt, och boken visar också vad som fattas till nästa nivå.
Varning: Nivåns bonusblock ersätter nivån under
Bonusarna på en nivå adderas inte till nivån under, de ersätter den. Ett Stall II ger 25 procent avel i stället för nivå I:s 15 procent. En nivå utan eget bonusblock ärver nivån under oförändrat.
Omvalideringen är händelsestyrd
Bryts eller placeras ett block innanför en registrerad byggnads volym markeras byggnaden som smutsig och kontrolleras inom en minut. Det periodiska svepet ligger kvar som skyddsnät var 120:e minut och tar högst tre byggnader per körning. Ingen byggnad valideras oftare än var 30:e sekund; /byggnad kontrollera <namn> och /byggnadadmin validera går förbi den spärren och har i stället sin egen cooldown.
Oladdade chunkar sänker aldrig ett hus
Går området inte att läsa, till exempel för att världen inte är laddad, rörs statusen inte alls - kontrollen skjuts bara fram.
Gamla nycklar fungerar kvar
De äldre nycklarna min_golvyta, max_golvyta, min_innerhojd, min_vaggar_procent, min_tak_procent, min_golv_procent, krav_block och forbjudna_block finns kvar och blir samma kravtyper. En befintlig byggnader.yml fungerar alltså oförändrad.