Originally Posted by
GameMaster
hard to tell without any code examples. are we supposed to guess? lol
Item panel window (That's the right panel named "Tool" that takes the 2/3 right part of the screenshot):
Code:
private void createUIComponents() {
UIManager.put("TabbedPane.contentOpaque", false);
contentPane = new ContentPanel();
canvasPanel = new TransparentPanel();
modelOptionsPane = new TransparentPanel();
generalTab = new TransparentPanel();
modelTab = new TransparentPanel();
unknownsTab = new TransparentPanel();
clientscriptsTab = new TransparentPanel();
generalPanel = new TransparentPanel();
nameLbl = new DefaultLabel();
nameTField = new DefaultTextField(parent.getParent(), DefaultTextField.Validator.NOT_EMPTY);
valueLbl = new DefaultLabel();
valueTField = new DefaultTextField(parent.getParent(), DefaultTextField.Validator.SIGNED_INTEGER);
stackableCheckbox = new DefaultCheckbox(null);
equipPanel = new TransparentPanel();
equipslotLbl = new DefaultLabel();
equipSlotCombobox = new DefaultCombobox();
for (ItemDefinitions.EquipSlot es : ItemDefinitions.EquipSlot.values()) {
equipSlotCombobox.addItem(es);
}
equipTypeLbl = new DefaultLabel();
equipTypeCombobox = new DefaultCombobox();
for (ItemDefinitions.EquipType et : ItemDefinitions.EquipType.values()) {
equipTypeCombobox.addItem(et);
}
teamLbl = new DefaultLabel();
teamTField = new DefaultTextField(parent.getParent(), DefaultTextField.Validator.SIGNED_BYTE);
stackPanel = new TransparentPanel();
stacksLbl = new DefaultLabel();
notedPanel = new TransparentPanel();
notedCheckbox = new DefaultCheckbox(null);
notedLbl = new DefaultLabel();
notedTField = new DefaultTextField(parent.getParent(), getItemIdValidator());
lentCheckbox = new DefaultCheckbox(null);
lentLbl = new DefaultLabel();
lentTField = new DefaultTextField(parent.getParent(), getItemIdValidator());
boughtCheckbox = new DefaultCheckbox(null);
boughLbl = new DefaultLabel();
boughtTField = new DefaultTextField(parent.getParent(), getItemIdValidator());
invModelLbl = new DefaultLabel();
invModelTField = new DefaultTextField(parent.getParent(), DefaultTextField.Validator.SIGNED_BYTE);
zoomLbl = new DefaultLabel();
zoomTField = new DefaultTextField(parent.getParent(), DefaultTextField.Validator.SIGNED_BYTE);
rotationXLbl = new DefaultLabel();
rotationXTField = new DefaultTextField(parent.getParent(), DefaultTextField.Validator.SIGNED_BYTE);
rotationYLbl = new DefaultLabel();
rotationYTField = new DefaultTextField(parent.getParent(), DefaultTextField.Validator.SIGNED_BYTE);
offsetXLbl = new DefaultLabel();
offsetXTField = new DefaultTextField(parent.getParent(), DefaultTextField.Validator.SIGNED_BYTE);
offsetYLbl = new DefaultLabel();
offsetYTField = new DefaultTextField(parent.getParent(), DefaultTextField.Validator.SIGNED_BYTE);
canvas = new Canvas() {
private static final long serialVersionUID = -1069002023468669595L;
public void removeNotify() {
super.removeNotify();
modelViewer.stopOpenGL();
}
};
canvas.addComponentListener(new ComponentListener() {
public void componentShown(ComponentEvent e) {
setNeedValidation();
}
public void componentResized(ComponentEvent e) {
setNeedValidation();
}
public void componentMoved(ComponentEvent e) {
setNeedValidation();
}
public void componentHidden(ComponentEvent e) {
setNeedValidation();
}
});
//canvas.setFocusable(false);
//canvas.setIgnoreRepaint(true);
canvas.setPreferredSize(new Dimension(720, 720));
canvas.setMinimumSize(new Dimension(320, 240));
//canvas.setVisible(true);
canvasPanel.add(canvas);
characterModelCBox = new DefaultCheckbox(e -> switchModel());
maleCBox = new DefaultCheckbox(e -> switchMale());
addItemBtn = new DefaultButton(e -> addItem());
overwriteItemBtn = new DefaultButton(e -> overwriteItem());
deleteItemBtn = new DefaultButton(e -> deleteItem());
dumpItemBtn = new DefaultButton(e -> dumpItem());
dumpAllItemsBtn = new DefaultButton(e -> dumpAllItems());
modelViewer = new ModelViewer(parent.getStore(), canvas);
}
Lwjgl canvas init:
Code:
public void startOpenGL() {
Logger.log("StartOpenGL");
gameThread = new Thread() {
public void run() {
while (Display.isCreated());//this isn't the issue, I actually tested and the thread runs. Just a pretty freaking ugly fix instead of a singleton or something
while (!Display.isCreated()) {
try {
Display.setParent(canvas);
if (!Display.getParent().isDisplayable())
continue;
Display.create();
Rectangle rect = canvas.getBounds();
int w = (int) rect.getWidth();
int h = (int) rect.getHeight();
GL11.glMatrixMode(GL11.GL_PROJECTION);
GL11.glLoadIdentity();
GL11.glViewport(0, 0, w, h);
GL11.glMatrixMode(GL11.GL_MODELVIEW);
GL11.glLoadIdentity();
GL11.glEnable(GL11.GL_DEPTH_TEST);
camera = new Camera();
running = true;
} catch (LWJGLException e) {
e.printStackTrace();
}
}
while (running && !Display.isCloseRequested()) {
updateGL();
try {
if (currentDefs != null) {
Thread.sleep(currentDefs.getFrameDurations()[frameId] * 20);
} else
Thread.sleep(50);
} catch (InterruptedException e) {
Logger.error("huh thread interupted", true);
}
}
if (Display.isCreated()) {
Display.destroy();
}
}
};
gameThread.start();
}