Skip to content
stefvanschie edited this page Feb 27, 2022 · 1 revision

Talen: Engels (English)

Tekening

Voorbeeldcode voor een tekening-gui. Spelers kunnen een kleur selecteren van het palet beneden en op hett canvas tekenen door met de geselecteerde kleur op elke slot te klikken.

Code

List<Material> palet = new ArrayList<>();

palet.add(Material.WHITE_STAINED_GLASS_PANE);
palet.add(Material.RED_STAINED_GLASS_PANE);
palet.add(Material.LIGHT_BLUE_STAINED_GLASS_PANE);
palet.add(Material.LIME_STAINED_GLASS_PANE);
palet.add(Material.YELLOW_STAINED_GLASS_PANE);
palet.add(Material.MAGENTA_STAINED_GLASS_PANE);
palet.add(Material.ORANGE_STAINED_GLASS_PANE);
palet.add(Material.PINK_STAINED_GLASS_PANE);
palet.add(Material.BLACK_STAINED_GLASS_PANE);

ChestGui gui = new ChestGui(6, "Tekening");

gui.setOnGlobalClick(event -> event.setCancelled(true));

OutlinePane achtergrond = new OutlinePane(0, 0, 9, 6, Pane.Priority.LOWEST);
achtergrond.addItem(new GuiItem(new ItemStack(Material.WHITE_STAINED_GLASS_PANE)));
achtergrond.setRepeat(true);

StaticPane canvas = new StaticPane(0, 0, 9, 6);

canvas.setOnClick(event -> {
    ItemStack cursor = event.getCursor();

    if (cursor == null || cursor.getType() == Material.AIR) {
        return;
    }

    int slot = event.getSlot();
    int lengte = canvas.getLength();

    canvas.addItem(new GuiItem(cursor), slot % lengte, slot / lengte);

    gui.update();
});

OutlinePane selectie = new OutlinePane(0, 6, 9, 1);

for (Material kleur : palet) {
    selectie.addItem(new GuiItem(new ItemStack(kleur), event -> event.getWhoClicked().setItemOnCursor(new ItemStack(kleur))));
}

gui.addPane(achtergrond);
gui.addPane(canvas);
gui.addPane(selectie);

XML

<chestgui title="Tekening" rows="6">
  <outlinepane x="0" y="0" length ="9" height="6" repeat="true" priority="lowest">
    <item id="white_stained_glass_pane" />
  </outlinepane>
  <staticpane x="0" y="0" length ="9" height="6" onClick="canvasKlik" />
  <outlinepane x="0" y="6" length="9" height="1">
    <item id="white_stained_glass_pane" onClick="paletKlik" />
    <item id="red_stained_glass_pane" onClick="paletKlik" />
    <item id="light_blue_stained_glass_pane" onClick="paletKlik" />
    <item id="lime_stained_glass_pane" onClick="paletKlik" />
    <item id="yellow_stained_glass_pane" onClick="paletKlik" />
    <item id="magenta_stained_glass_pane" onClick="paletKlik" />
    <item id="orange_stained_glass_pane" onClick="paletKlik" />
    <item id="pink_stained_glass_pane" onClick="paletKlik" />
    <item id="black_stained_glass_pane" onClick="paletKlik" />
  </outlinepane>
</chestgui>
Clone this wiki locally