mirror of
https://github.com/KAMKEEL/CustomNPC-Plus.git
synced 2026-11-14 04:59:57 +00:00
126 lines
3.9 KiB
Java
126 lines
3.9 KiB
Java
package noppes.npcs.client.gui;
|
|
|
|
import kamkeel.npcs.network.PacketClient;
|
|
import kamkeel.npcs.network.packets.request.pather.MovingPathGetPacket;
|
|
import kamkeel.npcs.network.packets.request.pather.MovingPathSavePacket;
|
|
import net.minecraft.client.gui.GuiButton;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import noppes.npcs.DataAI;
|
|
import noppes.npcs.NBTTags;
|
|
import noppes.npcs.client.gui.util.GuiCustomScroll;
|
|
import noppes.npcs.client.gui.util.GuiNPCInterface;
|
|
import noppes.npcs.client.gui.util.GuiNpcButton;
|
|
import noppes.npcs.client.gui.util.IGuiData;
|
|
import noppes.npcs.entity.EntityNPCInterface;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
|
|
public class GuiNpcPather extends GuiNPCInterface implements IGuiData {
|
|
|
|
private GuiCustomScroll scroll;
|
|
private final HashMap<String, Integer> data = new HashMap<String, Integer>();
|
|
private final DataAI ai;
|
|
|
|
public GuiNpcPather(EntityNPCInterface npc) {
|
|
super();
|
|
drawDefaultBackground = false;
|
|
xSize = 176;
|
|
title = "Npc Pather";
|
|
setBackground("menubg.png");
|
|
ai = npc.ais;
|
|
PacketClient.sendClient(new MovingPathGetPacket());
|
|
}
|
|
|
|
@Override
|
|
public void initGui() {
|
|
super.initGui();
|
|
scroll = new GuiCustomScroll(this, 0);
|
|
scroll.setSize(160, 164);
|
|
List<String> list = new ArrayList<String>();
|
|
for (int[] arr : ai.getMovingPath()) {
|
|
list.add("x:" + arr[0] + " y:" + arr[1] + " z:" + arr[2]);
|
|
}
|
|
scroll.setUnsortedList(list);
|
|
scroll.guiLeft = guiLeft + 7;
|
|
scroll.guiTop = guiTop + 12;
|
|
|
|
addScroll(scroll);
|
|
this.addButton(new GuiNpcButton(0, guiLeft + 6, guiTop + 178, 52, 20, "gui.down"));
|
|
this.addButton(new GuiNpcButton(1, guiLeft + 62, guiTop + 178, 52, 20, "gui.up"));
|
|
this.addButton(new GuiNpcButton(2, guiLeft + 118, guiTop + 178, 52, 20, "selectWorld.deleteButton"));
|
|
}
|
|
|
|
protected void actionPerformed(GuiButton guibutton) {
|
|
if (scroll.selected < 0)
|
|
return;
|
|
|
|
int id = guibutton.id;
|
|
if (id == 0) {
|
|
List<int[]> list = ai.getMovingPath();
|
|
int selected = scroll.selected;
|
|
if (list.size() <= selected + 1)
|
|
return;
|
|
int[] a = list.get(selected);
|
|
int[] b = list.get(selected + 1);
|
|
list.set(selected, b);
|
|
list.set(selected + 1, a);
|
|
ai.setMovingPath(list);
|
|
initGui();
|
|
scroll.selected = selected + 1;
|
|
}
|
|
if (id == 1) {
|
|
if (scroll.selected - 1 < 0)
|
|
return;
|
|
List<int[]> list = ai.getMovingPath();
|
|
int selected = scroll.selected;
|
|
int[] a = list.get(selected);
|
|
int[] b = list.get(selected - 1);
|
|
list.set(selected, b);
|
|
list.set(selected - 1, a);
|
|
ai.setMovingPath(list);
|
|
initGui();
|
|
scroll.selected = selected - 1;
|
|
}
|
|
if (id == 2) {
|
|
List<int[]> list = ai.getMovingPath();
|
|
if (list.size() <= 1)
|
|
return;
|
|
list.remove(scroll.selected);
|
|
ai.setMovingPath(list);
|
|
initGui();
|
|
}
|
|
}
|
|
|
|
protected void drawGuiContainerBackgroundLayer(float f, int i, int j) {
|
|
}
|
|
|
|
@Override
|
|
public void mouseClicked(int i, int j, int k) {
|
|
super.mouseClicked(i, j, k);
|
|
scroll.mouseClicked(i, j, k);
|
|
}
|
|
|
|
@Override
|
|
public void keyTyped(char c, int i) {
|
|
if (i == 1 || isInventoryKey(i)) {
|
|
close();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void save() {
|
|
NBTTagCompound compound = new NBTTagCompound();
|
|
compound.setTag("MovingPathNew", NBTTags.nbtIntegerArraySet(ai.getMovingPath()));
|
|
PacketClient.sendClient(new MovingPathSavePacket(compound));
|
|
}
|
|
|
|
@Override
|
|
public void setGuiData(NBTTagCompound compound) {
|
|
ai.readToNBT(compound);
|
|
initGui();
|
|
}
|
|
|
|
}
|