-
Notifications
You must be signed in to change notification settings - Fork 88
Outline Pane (Dutch)
Talen: Engels (English)
Het outline paneel is verreweg het meest geavanceerde paneel in dit framework. Het outline paneel neemt items, maar in tegenstelling tot Static Pane, specificeer je niet in welke positie deze items komen. Het outline paneel begint door de items in de linkerboven hoek te plaatsen. Dan, afhankelijk van de oriëntatie, plaatst deze de items op een andere manier. Als de oriëntatie HORIZONTAL
is, zullen de items naar rechts worden geplaatst en wanneer het einde van het paneel is bereikt, worden ze toegevoegd aan de volgende rij aan de linkerkant (hetzelfde als wanneer je addItem
aanroept op een inventaris in Bukkit). Je kan ook de oriëntatie naar VERTICAL
zetten. De items beginnen nog steeds in de linkerboven hoek, maar in plaats van naar rechts te gaan, gan de items nu eerst naar beneden en zodra het einde van het paneel is bereikt, worden ze toegevoegd aan de volgende kolom aan de bovenkant. Er zijn verschillende parameters die dit basisprincipe veranderen, maar deze worden hier beneden uitgelegd.
Om een Outline Pane te creëren roep je simpelweg de constructor aan.
OutlinePane paneel = enw OutlinePane(0, 0, 9, 6);
Om een item toe te voegen kan je addItem
aanroepen met het gewenste item.
paneel.addItem(new GuiItem(new ItemStack(Material.STONE)));
Dit voegt het item als laatste in de lijst toe. Je kan echter ook items toe te voegen op een specifieke index.
paneel.isnertItem(new GuiItem(new ItemStack(Material.STONE)), 1);
Dit voegt het item in de eerste index van de lijst toe (tweede element). Nu zal dit item als de tweede worden laten zien.
Wanneer een item onzichtbaar wordt gemaakt, wordt het paneel getoond alsof dit item nooit aan het paneel was toegevoegd. Dit betekent dat er geen lege plek ontstaat, maar dat alle items na het verborgen item terugschuiven om het gat op te vullen. Dit is anders dan een leeg item (lucht) aan het paneel toevoegen, waarbij wel een gat ontstaat.
Als je de oriëntatie van het paneel wilt veranderen zoals beschreven in de eerste paragraaf, kan je setOrientation
aanroepen met de gewenste oriëntatie.
paneel.setOrientation(Orientable.Orientation.VERTICAL);
Dit verandert de oriëntatie naar VERTICAL
.
Je kan ook de item in het paneel horizontaal of verticaal draaien. Wanneer je de items horizontaal draait worden alle items over de x-as gedraaid en wanneer je de items verticaal draait worden alle items over de y-as gedraaid. Je kan het paneel horizontaal en verticaal draaien als volgt.
paneel.flipHorizontally(true);
paneel.flipVertically(true);
Net zoals het Static Pane kan de Outline Pane ook een rotatie hebben, die precies hetzelfde werkt. Er zijn vier verschillende rotaties: 0, 90, 180 en 270. Deze rotaties zijn in graden. Elke rotatie die groter is of gelijk aan 360 wordt ingekort zodat deze binnen het bereik van [0,360) valt (540 wordt bijvoorbeeld 180). Alleen panelen die de zelfde lengte en hoogte hebben kunnen deze rotatie gebruiken. Elke rotatie is met de klok mee, als je een rotatie wil die tegen de klok in is, moet je berekenen hoeveel graden het paneel gedraaid is als je tegen de klok in zou gaan. Je kan de rotatie als volgt specificeren.
paneel.setRotation(90);
Dit maakt de rotatie van het paneel negentig graden.
Je kan ook een gat specificeren voor het paneel. Een gat is de hoeveelheid lege plekken tussen elk item. Als je het gat naar één zet zal er een lege plek tussen elk item zitten. Met een gat van twee, twee lege plekken, etc. Houd er rekening mee dat de lege plekken ook om het paneel heen draaien. Als je bijvoorbeeld een lege plek hebt aan de rechterkant van een rij, zal er een lege plek komen aan de linkerkant van de volgende rij. Een te groot gat, of te veel items kan er voor zorgendat de items buiten het paneel gaan. Items die buiten het paneel zijn, worden genegeerd. Om dit gat te specificeren, kan je setGap
aanroepen.
paneel.setGap(1);
Nu zal er één lege plek tussen elk item zitten.
Je kan ook de items laten herhalen totdat het paneel vol is. Als je, bijvoorbeeld, drie items hebt, worden alleen deze drie items getoond. Echter, als je het paneel zich laat herhalen, wordt zodra het laatste item is geplaatst het eerste item weer opnieuw geplaatst, totdat het hele paneel vol is. Om herhalen aan of uit te zetten, kan je setRepeat
aanroepen.
paneel.setRepeat(true);
Nu zullen de items in het paneel herhaald worden voor het volledige paneel.
Je kan ook een masker specificeren voor het paneel. Een masker is een manier om aan te geven welke plekken wel een item mogen hebben en welke plekken moeten worden overgeslagen en daarom geen item moeten krijgen. In tegenstelling tot het gat-eigenschap die hierboven is uitgelegd, kan je hiermee elke hoeveelheid plekken in elke positie plaatsen die je wilt, terwijl het gat alleen maar aangeeft dat elke zoveel plekken overgeslagen moeten worden. Om een masker te maken, moet je eerst de Mask
constructor aanroepen met de plekken die je graag wilt gebruiken.
new Mask(
"01",
"10"
);
Dit maakt een masker, waar alleen deplek in de rechterboven hoek en de plek in de linkeronder hoek items krijgen: de andere posities - de plek in de linkerboven hoek en de recheronder hoek - krijgen geen items. Om dit masker toe te voegen aan het OutlinePane
, kan je applyMask
aanroepen.
paneel.applyMask(masker);
Wanneer een masker is gespecificeerd op het paneel, zal de gat-eigenschap niet elke zoveel plekken overslaan zoals normaal, maar alleen de plekken overslaan die in het masker gespecificeerd zijn. Bijvoorbeeld, als een maskeer is gespecificeerd met maar vier 'geactiveerde' plekken en een gat van één is gespcificeerd, zulleen alleen de eerste en derde plek dit gespecificeerd zijn in het masker een item krijgen: de tweede en vierde plek krijgen niets, onafhankelijk hoe deze plekken gepositioneerd zijn in relatie tot andere plekken.
Als laatste kan je een uitlijning specificeren. Standaard staat deze ingesteld op begin
waar de items links/bovenaan worden uitgelijnd (afhankelijk van de oriëntatie). Je kan ook de uitlijning naar midden aanpassen, om de items in het paneel te centreren. Centreren hangt af van de oriëntatie: voor een horizontale oriëntatie worden de items horizontaal gecentreerd en voor een verticale oriëntatie worden de items verticaal gecentreerd. Houd er rekening mee dat het midden afhankelijk is van het masker, waardoor items visueel niet gecentreerd kunnen lijken als een masker bepaalde slots uitgeschakeld heeft. Als er twee slots het midden zijn, worden de items geplaatst in het slot naar links/boven.
paneel.align(OutlinePane.Alignment.CENTER);
Alles dat is laten zien in Panes kan ook in het Outline Pane gebruikt worden.
De elementnaam voor een Outline Pane is outlinepane
dus gebruik dat wanneer je een Outline Pane in je XML-bestand wilt.
<outlinepane x="0" y="0" length="9" height="6"/>
Als je een plek wilt overslaan als je items aan het toevoegen bent, kan je het volgende element toevoegen om die plek leeg te houden.
<empty/>
Ten eerste kan je de oriëntatie van het paneel aanpassen door het orientation
-attribuut naar of HORIZONTAL
of VERTICAL
te zetten (hoofdletters maken niet uit). Standaard is de oriëntatie HORIZONTAL
.
<outlinepane x="0" y="0" length="9" height="6" orientation="vertical"/>
Je kan het paneel horizontaal of verticaal draaien door de volgende attributen toe te voegen aan je paneel.
<outlinepane x="0" y="0" length="9" height="6" flipHorizontally="true"/>
<outlinepane x="0" y="0" length="9" height="6" flipVertically="true"/>
Je kan ook de rotatie op dezelfde manier specificeren zoals bij het Static Pane door het rotation
-attribuut aan het paneel toe te voegen met het aantal graden als waarde. Standaard heeft het paneel geen rotatie (nul graden).
<outlinepane x="0" y="0" length="9" height="6" rotation="90"/>
Je kan ook het gat specificeren met het gap
-attribuut met de hoevelheeid lege plekken die je tussen elk item wilt.
<outlinepane x="0" y="0" length="9" height="6" gap="1"/>
Je kan herhalen aan of uit zetten door het repeat
-attribuut te specificeren en of true
of false
als waarde te specificeren.
<outlinepane x="0" y="0" length="9" height="6" repeat="true"/>
Als laatste kan je een uitlijning opgeven door het alignment
-attribuut te specificeren en begin
of center
als waarde te geven.
<outlinepane x="0" y="0" length="9" height="6" alignment="center"/>