package soundfriend; import java.awt.BorderLayout; import java.awt.Graphics2D; import java.awt.event.KeyEvent; import java.io.File; import java.util.List; import javax.swing.BorderFactory; import javax.swing.JLabel; import soundfriend.types.Creature; import soundfriend.types.GUIController; import toritools.debug.Debug; import toritools.entity.Entity; import toritools.entity.Level; import toritools.entrypoint.Binary; import toritools.math.Vector2; import toritools.scripting.ScriptUtils; public class SoundFriend extends Binary { private Creature creature; private static JLabel messageLabel = new JLabel("Pet Message!"); private static GUIController gui; private int timer = 0; private final File backgroundImage = new File("tamodatchi/grass.png"); public SoundFriend() { super(new Vector2(800, 600), 60, "Kawaii Sound Friend Yes!"); } @Override protected void initialize() { Debug.showDebugPrintouts = false; gui = new GUIController(messageLabel, super.getApplicationPanel()); messageLabel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4)); super.getApplicationPanel().setFocusable(true); super.getApplicationFrame().add(messageLabel, BorderLayout.SOUTH); super.getApplicationFrame().setResizable(false); super.getApplicationFrame().pack(); super.getApplicationFrame().setIconImage(ScriptUtils.fetchImage(new File("tamodatchi/kitten_icon.png"))); } @Override protected void globalLogic(Level level) { if (ScriptUtils.getKeyHolder().isPressed(KeyEvent.VK_ESCAPE)) { System.exit(0); } if (ScriptUtils.getKeyHolder().isPressedThenRelease(KeyEvent.VK_P)) { Debug.showDebugPrintouts = !Debug.showDebugPrintouts; } if (--timer < 0) { timer = 30; gui.updateInfo(creature); } } @Override protected void setupCurrentLevel(Level levelBeingLoaded) { creature = new Creature(); levelBeingLoaded.spawnEntity(creature); } @Override protected Level getStartingLevel() { Level level = new Level(); level.setDim(VIEWPORT); return level; } @Override protected boolean render(Graphics2D rootCanvas, Level level) { try { rootCanvas.drawImage(ScriptUtils.fetchImage(backgroundImage), 0, 0, VIEWPORT.getWidth(), VIEWPORT.getHeight(), null); for (List<Entity> layer : level.getLayers()) { for (Entity entity : layer) { entity.draw(rootCanvas); } } } catch (final Exception exception) { return false; } return true; } public static void main(String[] args) { new SoundFriend(); } }