Skip to content

Commit

Permalink
Merge pull request #64 from OrangeBetaStar/Simplification+Inheritance
Browse files Browse the repository at this point in the history
Simplification+inheritance
  • Loading branch information
OrangeBetaStar committed Oct 15, 2018
2 parents abfec72 + f3eb7dc commit 2618c28
Show file tree
Hide file tree
Showing 12 changed files with 142 additions and 173 deletions.
49 changes: 13 additions & 36 deletions WaifuBrew/src/main/java/start/AnimationPane.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;

public class AnimationPane extends JPanel {

Expand All @@ -20,13 +21,13 @@ public class AnimationPane extends JPanel {
private final String RESOURCE_PATH = WaifuBrew.getInstance().getResoucePath();
private javaxt.io.Image dialogueBox;
private DialogueParser dp;
private Point[] res;
private javaxt.io.Image characterImage[] = new javaxt.io.Image[10]; // Maximum 10 characters at once.
private double GUIScale = (double) WaifuBrew.getInstance().getSystemGUIScale();
private boolean clickActivate = true;

private boolean frameRateDisable = false;

private HashMap<String, CustomButton> aniPaneButton = new HashMap<>(4); // Save / Load / Config / Exit
private CustomButton saveButton;
private CustomButton loadButton;
private CustomButton configButton;
Expand All @@ -43,6 +44,9 @@ public class AnimationPane extends JPanel {
// Advancer keeps track of which line it reads
private int advancer = 0;

// [1] is resolution of program window
private Point windowSize = WaifuBrew.getInstance().getRes()[1];

// Retrieve String from JSON
private String a = "Click anywhere to initiate dialog...!";
private String tempString = "";
Expand All @@ -54,24 +58,25 @@ public AnimationPane() {
addMouseListener(handler);
addMouseMotionListener(handler);

this.res = WaifuBrew.getInstance().getRes();
// this.aniPaneButton.put("save", new CustomButton((windowSize.x / 8) * 7, (windowSize.y / 6) * 5, "save_button", Origin.MIDDLE_CENTRE, 0, true));

try {
dialogueBox = new javaxt.io.Image(WaifuBrew.getInstance().getImageByName(ImageSelector.VECTOR, "dialogbar"));

// GARBAGE IMPLEMENTATION
startButton = new CustomButton(640, WaifuBrew.getInstance().getRes()[1].y - (roughButtonSizeY / 2), "startscreen_start_button.png", Origin.LEFT_TOP, 60, true);
startButton = new CustomButton(640, WaifuBrew.getInstance().getRes()[1].y - (roughButtonSizeY / 2), "start_button", Origin.LEFT_TOP, 60, true);
addMouseListener(startButton.retrieveMouseHandler());
addMouseMotionListener(startButton.retrieveMouseHandler());

loadButton = new CustomButton(760, WaifuBrew.getInstance().getRes()[1].y - (roughButtonSizeY / 2), "startscreen_load_button.png", Origin.LEFT_TOP, 60, true);
loadButton = new CustomButton(760, WaifuBrew.getInstance().getRes()[1].y - (roughButtonSizeY / 2), "load_button", Origin.LEFT_TOP, 60, true);
addMouseListener(loadButton.retrieveMouseHandler());
addMouseMotionListener(loadButton.retrieveMouseHandler());

saveButton = new CustomButton(870, WaifuBrew.getInstance().getRes()[1].y - (roughButtonSizeY / 2), "startscreen_save_button.png", Origin.LEFT_TOP, 60, true);
saveButton = new CustomButton(870, WaifuBrew.getInstance().getRes()[1].y - (roughButtonSizeY / 2), "save_button", Origin.LEFT_TOP, 60, true);
addMouseListener(saveButton.retrieveMouseHandler());
addMouseMotionListener(saveButton.retrieveMouseHandler());

configButton = new CustomButton(1000, WaifuBrew.getInstance().getRes()[1].y - (roughButtonSizeY / 2), "startscreen_config_button.png", Origin.LEFT_TOP, 60, true);
configButton = new CustomButton(1000, WaifuBrew.getInstance().getRes()[1].y - (roughButtonSizeY / 2), "config_button", Origin.LEFT_TOP, 60, true);
addMouseListener(configButton.retrieveMouseHandler());
addMouseMotionListener(configButton.retrieveMouseHandler());

Expand Down Expand Up @@ -147,37 +152,13 @@ public void triggerNext() {

private class Handlerclass extends MasterHandlerClass {

public void mouseClicked(MouseEvent event) {

}

public void mousePressed(MouseEvent event) {

}

public void mouseReleased(MouseEvent event) {
// There may be a dialogue without dialogue and only character movement

// TODO: Have this inside if statement where it is not run on buttons.
clickActivate = true;
triggerNext();
}

public void mouseEntered(MouseEvent event) {

}

public void mouseExited(MouseEvent event) {

}

public void mouseMoved(MouseEvent event) {

}

public void mouseDragged(MouseEvent event) {

}
}


Expand All @@ -201,12 +182,11 @@ protected void paintComponent(Graphics g) {
clickActivate = false;
}
for (int b = 1; b <= e.get(advancer - 1).size(); b++) {
g.drawImage(characterImage[b - 1].getBufferedImage(), ((res[1].x / (e.get(advancer - 1).size() + 1)) * b) - (characterImage[b - 1].getWidth() / 2), (res[1].y / 4) + (characterImage[b - 1].getHeight() / 2), this);
g.drawImage(characterImage[b - 1].getBufferedImage(), ((windowSize.x / (e.get(advancer - 1).size() + 1)) * b) - (characterImage[b - 1].getWidth() / 2), (windowSize.y / 4) + (characterImage[b - 1].getHeight() / 2), this);
}

// DialogueBox

g.drawImage(dialogueBox.getBufferedImage(), res[1].x / 2 - dialogueBox.getWidth() / 2, res[1].y - dialogueBox.getHeight() - (res[1].x / 2 - dialogueBox.getWidth() / 2), this);
g.drawImage(dialogueBox.getBufferedImage(), windowSize.x / 2 - dialogueBox.getWidth() / 2, windowSize.y - dialogueBox.getHeight() - (windowSize.x / 2 - dialogueBox.getWidth() / 2), this);
g.drawString(e.get(advancer - 1).get(0).getName().toString(), 100, 430);

// Run once. Different from initStage. initStory runs after very first dialogue while initStage runs right after stage has been entered.
Expand All @@ -232,9 +212,6 @@ protected void paintComponent(Graphics g) {
saveButton.paintComponent(g);
configButton.paintComponent(g);

// Use the bottom link for implementing string wrap around by distance used by font.
// https://docs.oracle.com/javase/tutorial/2d/text/measuringtext.html

initStage = false;
}

Expand Down
10 changes: 5 additions & 5 deletions WaifuBrew/src/main/java/start/ConfigPane.java
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ public void mouseClicked(MouseEvent event) {

public void init() {
// TODO: I wonder if I use this lambda
Timer t = new Timer((int) (1000 / WaifuBrew.getInstance().getFrameRate()), new ActionListener() {
Timer t = new Timer((int) (1000.0 / WaifuBrew.getInstance().getFrameRate()), new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (!stop) {
repaint();
Expand Down Expand Up @@ -272,11 +272,11 @@ public void actionPerformed(ActionEvent e) {

backgroundPicture = new javaxt.io.Image(WaifuBrew.getInstance().getImageByName(ImageSelector.BACKGROUND, "config"));
dialogueBox = new javaxt.io.Image(WaifuBrew.getInstance().getImageByName(ImageSelector.VECTOR, "dialogbar"));
this.settingButtonsMap.put("back", new CustomButton((windowSize.x / 8) * 7, (windowSize.y / 6) * 5, "config_back_button", Origin.MIDDLE_CENTRE, 0, true));
this.settingButtonsMap.put("save", new CustomButton((windowSize.x / 8) * 7, (windowSize.y / 6) * 4, "config_save_button", Origin.MIDDLE_CENTRE, 0, false));
this.settingButtonsMap.put("reset", new CustomButton((windowSize.x / 8) * 7, (windowSize.y / 6) * 3, "config_reset_button", Origin.MIDDLE_CENTRE, 0, true));
this.settingButtonsMap.put("back", new CustomButton((windowSize.x / 8) * 7, (windowSize.y / 6) * 5, "back_button", Origin.MIDDLE_CENTRE, 0, true));
this.settingButtonsMap.put("save", new CustomButton((windowSize.x / 8) * 7, (windowSize.y / 6) * 4, "save_button", Origin.MIDDLE_CENTRE, 0, false));
this.settingButtonsMap.put("reset", new CustomButton((windowSize.x / 8) * 7, (windowSize.y / 6) * 3, "reset_button", Origin.MIDDLE_CENTRE, 0, true));

saveDialogue = new NoticeBox("Would you like to save the current settings?", "config_save_button", "config_savenot_button", false, true);
saveDialogue = new NoticeBox("Would you like to save the current settings?", "save_button", "don't_save_button", false, true);

// Pre-scale
if (backgroundPicture.getWidth() < windowSize.x || backgroundPicture.getHeight() < windowSize.y) {
Expand Down
71 changes: 21 additions & 50 deletions WaifuBrew/src/main/java/start/CustomButton.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package start;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;

// This class will handle the buttons that require transparency changes and launch actions
public class CustomButton extends JPanel implements ActionListener {
public class CustomButton extends InteractiveObjects implements ActionListener {

private javaxt.io.Image originalButton;
private javaxt.io.Image mouseoverButton;
Expand All @@ -28,27 +29,12 @@ public CustomButton(int x, int y, String fileName, Origin origin) {
this.x = x;
this.y = y;
// originalButton will be shown when mouse isn't above the button.
if (fileName.contains("start_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[0]);
} else if (fileName.contains("save_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[1]);
} else if (fileName.contains("load_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[2]);
} else if (fileName.contains("back_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[3]);
} else if (fileName.contains("config_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[4]);
} else if (fileName.contains("exit_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[5]);
} else if (fileName.contains("reset_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[6]);
} else if (fileName.contains("savennot_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[7]);
if (fileName.contains("_")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getImageByName(ImageSelector.BUTTONS, fileName.toLowerCase().substring(0, fileName.indexOf("_"))));
} else {
// originalButton = new javaxt.io.Image(RESOURCE_PATH + fileName);
// System.out.println("Please fix code: I/O access detected.");
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getImageByName(ImageSelector.VECTOR, fileName));
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getImageByName(ImageSelector.BUTTONS, fileName.toLowerCase()));
}

originalButton.resize((int) (originalButton.getWidth() * (GUIScale / originalButton.getHeight())), defaultButtonHeight, true);
mouseoverButton = originalButton.copy();
originalButton.setOpacity(20);
Expand All @@ -59,31 +45,19 @@ public CustomButton(int x, int y, String fileName, Origin origin, double sizeY,
this.x = x;
this.y = y;
// originalButton will be shown when mouse isn't above the button.
if (fileName.contains("start_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[0]);
} else if (fileName.contains("save_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[1]);
} else if (fileName.contains("load_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[2]);
} else if (fileName.contains("back_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[3]);
} else if (fileName.contains("config_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[4]);
} else if (fileName.contains("exit_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[5]);
} else if (fileName.contains("reset_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[6]);
} else if (fileName.contains("savenot_button")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getSystemImage()[7]);

// TODO: This has to be fixed in order to load the required images.
if (fileName.contains("_")) {
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getImageByName(ImageSelector.BUTTONS, fileName.toLowerCase().substring(0, fileName.indexOf("_"))));
} else {
// originalButton = new javaxt.io.Image(RESOURCE_PATH + fileName);
// System.out.println("Please fix code: I/O access detected.");
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getImageByName(ImageSelector.VECTOR, fileName));
originalButton = new javaxt.io.Image(WaifuBrew.getInstance().getImageByName(ImageSelector.BUTTONS, fileName.toLowerCase()));
}

// Black to white, white to black for better viewing
if (invert) {
System.out.println("inverted. " + fileName);
originalButton = new javaxt.io.Image(imageInverter(originalButton.getBufferedImage()));
}

if (sizeY == 0) {
originalButton.resize((int) (originalButton.getWidth() * (GUIScale / originalButton.getHeight())), defaultButtonHeight, true);
} else {
Expand All @@ -106,10 +80,6 @@ public void actionPerformed(ActionEvent e) {
repaint();
}

public Handlerclass retrieveMouseHandler() {
return miniHandler;
}

@Override
public int getWidth() {
return originalButton.getWidth();
Expand Down Expand Up @@ -286,11 +256,12 @@ private BufferedImage imageInverter(BufferedImage inputFile) {
return inputFile;
}

private class Handlerclass extends MasterHandlerClass {

public void mousePressed(MouseEvent event) {
@Override
public Handlerclass retrieveMouseHandler() {
return miniHandler;
}

}
private class Handlerclass extends MasterHandlerClass {

public void mouseMoved(MouseEvent event) {
if (origin.getValue() == 0) {
Expand Down
28 changes: 21 additions & 7 deletions WaifuBrew/src/main/java/start/CustomSlider.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package start;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;

public class CustomSlider extends JPanel implements ActionListener {
public class CustomSlider extends InteractiveObjects implements ActionListener {
private javaxt.io.Image sliderBackground; // sliderTrack
private javaxt.io.Image sliderLeveler; // dialogueTransparencySlider
private javaxt.io.Image sliderKnob; // dialogueTransparencyKnob
Expand Down Expand Up @@ -52,10 +53,6 @@ public void actionPerformed(ActionEvent e) {
repaint();
}

public Handlerclass retrieveMouseHandler() {
return miniHandler;
}

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Expand Down Expand Up @@ -95,14 +92,31 @@ public void setLevel(int level) {
this.level = level;
}

@Override
public int getX() {
return this.x;
}

@Override
public int getY() {
return this.y;
}

@Override
public int getWidth() {
return length;
}

@Override
public int getHeight() {
return height;
}

@Override
public Handlerclass retrieveMouseHandler() {
return miniHandler;
}

private class Handlerclass extends MasterHandlerClass {
// TODO: FINE TUNE THE KNOBS SO THAT IT KEEPS THE ORIGINAL POSITION OF CLICK POINT OF SQUARE (CURRENT IS MIDDLE)
public void mousePressed(MouseEvent event) {
Expand Down
Loading

0 comments on commit 2618c28

Please sign in to comment.