From 61eeac50a127b3e0da49006e100a7adc52e1d87e Mon Sep 17 00:00:00 2001 From: Siphalor Date: Mon, 20 Jul 2020 09:33:34 +0200 Subject: [PATCH] Remove canvas visual --- .../de/siphalor/was/visual/CanvasVisual.java | 191 ------------------ .../canvas/layout/FixedAspectLayout.java | 61 ------ .../canvas/layout/FulfillingLayout.java | 49 ----- .../canvas/render/AnimatedTextureObject.java | 31 --- .../was/visual/canvas/render/Renderable.java | 8 - .../visual/canvas/render/TextureObject.java | 41 ---- 6 files changed, 381 deletions(-) delete mode 100644 src/main/java/de/siphalor/was/visual/CanvasVisual.java delete mode 100644 src/main/java/de/siphalor/was/visual/canvas/layout/FixedAspectLayout.java delete mode 100644 src/main/java/de/siphalor/was/visual/canvas/layout/FulfillingLayout.java delete mode 100644 src/main/java/de/siphalor/was/visual/canvas/render/AnimatedTextureObject.java delete mode 100644 src/main/java/de/siphalor/was/visual/canvas/render/Renderable.java delete mode 100644 src/main/java/de/siphalor/was/visual/canvas/render/TextureObject.java diff --git a/src/main/java/de/siphalor/was/visual/CanvasVisual.java b/src/main/java/de/siphalor/was/visual/CanvasVisual.java deleted file mode 100644 index bc36092..0000000 --- a/src/main/java/de/siphalor/was/visual/CanvasVisual.java +++ /dev/null @@ -1,191 +0,0 @@ -package de.siphalor.was.visual; - -import de.siphalor.was.WhatAStorage; -import de.siphalor.was.assets.AssetsManager; -import de.siphalor.was.content.product.Product; -import de.siphalor.was.content.quest.Quest; -import de.siphalor.was.game.Transaction; -import de.siphalor.was.visual.canvas.layout.FixedAspectLayout; -import de.siphalor.was.visual.canvas.layout.FulfillingLayout; -import org.jetbrains.annotations.NotNull; - -import javax.imageio.ImageIO; -import java.awt.*; -import java.awt.event.*; -import java.awt.image.BufferStrategy; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -public class CanvasVisual implements Visual { - @NotNull - public static final Image MISSINGNO = getImage("textures/missingno.png"); - private static final double ASPECT_RATIO = 16.0 / 9.0; - private static final Map imageCache = new HashMap<>(); - private WhatAStorage main; - - private final Frame frame = new Frame(WhatAStorage.TITLE); - private final Canvas canvas = new Canvas(); - private BufferStrategy bufferStrategy; - private long minTickTime = 1000L / 60L; - - private boolean fullScreen = false; - - @NotNull - public static Image getImage(@NotNull String path) { - Image image = imageCache.get(path); - if (image == null) { - image = AssetsManager.getStream(path).map(inputStream -> { - try { - return (Image) ImageIO.read(inputStream); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - }).orElse(MISSINGNO); - imageCache.put(path, image); - } - return image; - } - - @Override - public void setup(WhatAStorage whatAStorage) { - main = whatAStorage; - frame.addWindowListener(new WindowAdapter() { - @Override - public void windowClosing(WindowEvent e) { - super.windowClosing(e); - main.scheduleStop(); - } - }); - frame.addComponentListener(new ComponentAdapter() { - @Override - public void componentResized(ComponentEvent e) { - super.componentResized(e); - } - }); - frame.addKeyListener(new KeyListener() { - @Override - public void keyTyped(KeyEvent e) { - - } - - @Override - public void keyPressed(KeyEvent e) { - if (e.getExtendedKeyCode() == KeyEvent.VK_F11) { - GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()[0]; - frame.dispose(); - if (fullScreen) { - System.out.println("End fullscreen"); - frame.setUndecorated(false); - frame.setVisible(true); - device.setFullScreenWindow(null); - fullScreen = false; - } else { - System.out.println("Start fullscreen"); - frame.setUndecorated(true); - frame.setVisible(true); - device.setFullScreenWindow(frame); - fullScreen = true; - } - } - } - - @Override - public void keyReleased(KeyEvent e) { - - } - }); - - Panel panel = new Panel(); - panel.setBackground(Color.BLACK); - frame.add(panel); - frame.setLayout(new FulfillingLayout(panel)); - - panel.add(canvas); - panel.setLayout(new FixedAspectLayout(ASPECT_RATIO, canvas)); - - frame.setVisible(true); - frame.pack(); - frame.setLocationRelativeTo(null); - - canvas.createBufferStrategy(2); - bufferStrategy = canvas.getBufferStrategy(); - } - - @Override - public void run() { - long time, timeDelta, tickBegin = System.nanoTime(); - - while (!main.isStopScheduled()) { - time = System.nanoTime(); - timeDelta = time - tickBegin; - tickBegin = System.nanoTime(); - - do { - do { - Graphics graphics = bufferStrategy.getDrawGraphics(); - - graphics.dispose(); - - } while(bufferStrategy.contentsRestored()); - - bufferStrategy.show(); - } while(bufferStrategy.contentsLost()); - - time = System.nanoTime(); - timeDelta = time - tickBegin; - - if (timeDelta < minTickTime) { - try { - Thread.sleep((minTickTime - timeDelta) / 1_000_000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - } - - frame.setVisible(false); - frame.dispose(); - } - - @Override - public void onGameStart() { - - } - - @Override - public void onScheduleStop() { - - } - - @Override - public void invalidateI18n() { - - } - - @Override - public void onBalanceChanged(int budget, Transaction transaction, int totalIncome, int totalLoss) { - - } - - @Override - public void onQuestAdded(Quest newQuest, boolean canCreateMore) { - - } - - @Override - public void onQuestRemoved(int index) { - - } - - @Override - public void onProductSet(int x, int y, int z, Product product) { - - } - - @Override - public void onProductCleared(int x, int y, int z, Product product) { - - } -} diff --git a/src/main/java/de/siphalor/was/visual/canvas/layout/FixedAspectLayout.java b/src/main/java/de/siphalor/was/visual/canvas/layout/FixedAspectLayout.java deleted file mode 100644 index 6dcf7fd..0000000 --- a/src/main/java/de/siphalor/was/visual/canvas/layout/FixedAspectLayout.java +++ /dev/null @@ -1,61 +0,0 @@ -package de.siphalor.was.visual.canvas.layout; - -import org.jetbrains.annotations.Nullable; - -import java.awt.*; - -public class FixedAspectLayout implements LayoutManager { - /** - * Width through height - */ - private final double aspectRatio; - @Nullable - private Component component; - - public FixedAspectLayout(double aspectRatio) { - this(aspectRatio, null); - } - - public FixedAspectLayout(double aspectRatio, @Nullable Component component) { - this.aspectRatio = aspectRatio; - this.component = component; - } - - @Override - public void addLayoutComponent(String name, Component comp) { - component = comp; - } - - @Override - public void removeLayoutComponent(Component comp) { - if (component == comp) - component = null; - } - - @Override - public Dimension preferredLayoutSize(Container parent) { - return parent.getSize(); - } - - @Override - public Dimension minimumLayoutSize(Container parent) { - return parent.getSize(); - } - - @Override - public void layoutContainer(Container parent) { - if (component != null) { - Insets insets = parent.getInsets(); - int width = parent.getWidth() - (insets.left + insets.right); - int height = parent.getHeight() - (insets.top + insets.bottom); - - int calc = (int) (height * aspectRatio); - if (calc <= width) { - component.setBounds(insets.left + (width - calc) / 2, insets.top, calc, height); - } else { - calc = (int) (width / aspectRatio); - component.setBounds(insets.left, insets.top + (height - calc) / 2, width, calc); - } - } - } -} diff --git a/src/main/java/de/siphalor/was/visual/canvas/layout/FulfillingLayout.java b/src/main/java/de/siphalor/was/visual/canvas/layout/FulfillingLayout.java deleted file mode 100644 index 8113159..0000000 --- a/src/main/java/de/siphalor/was/visual/canvas/layout/FulfillingLayout.java +++ /dev/null @@ -1,49 +0,0 @@ -package de.siphalor.was.visual.canvas.layout; - -import java.awt.*; - -public class FulfillingLayout implements LayoutManager { - private Component component; - - public FulfillingLayout() { - this(null); - } - - public FulfillingLayout(Component component) { - this.component = component; - } - - @Override - public void addLayoutComponent(String name, Component comp) { - component = comp; - } - - @Override - public void removeLayoutComponent(Component comp) { - component = null; - } - - @Override - public Dimension preferredLayoutSize(Container parent) { - Insets insets = parent.getInsets(); - return new Dimension(parent.getWidth() - (insets.left + insets.right), parent.getHeight() - (insets.top + insets.bottom)); - } - - @Override - public Dimension minimumLayoutSize(Container parent) { - Insets insets = parent.getInsets(); - return new Dimension(parent.getWidth() - (insets.left + insets.right), parent.getHeight() - (insets.top + insets.bottom)); - } - - @Override - public void layoutContainer(Container parent) { - if (component != null) { - Insets insets = parent.getInsets(); - - component.setBounds(insets.left, insets.top, - parent.getWidth() - (insets.left + insets.right), - parent.getHeight() - (insets.top + insets.bottom) - ); - } - } -} diff --git a/src/main/java/de/siphalor/was/visual/canvas/render/AnimatedTextureObject.java b/src/main/java/de/siphalor/was/visual/canvas/render/AnimatedTextureObject.java deleted file mode 100644 index 3e7ac5a..0000000 --- a/src/main/java/de/siphalor/was/visual/canvas/render/AnimatedTextureObject.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.siphalor.was.visual.canvas.render; - -import java.awt.*; - -public class AnimatedTextureObject extends TextureObject { - private final int frameTime; - private final Image[] frames; - - private int time = 0; - - public AnimatedTextureObject(int x, int y, int width, int height, int frameTime, Image... frames) { - super(x, y, width, height); - this.frameTime = frameTime; - this.frames = frames; - } - - @Override - public void tick(int delta) { - super.tick(delta); - - time += delta; - if (time >= frames.length * frameTime) { - time = 0; - } - } - - @Override - public Image getTexture() { - return frames[time / frameTime]; - } -} diff --git a/src/main/java/de/siphalor/was/visual/canvas/render/Renderable.java b/src/main/java/de/siphalor/was/visual/canvas/render/Renderable.java deleted file mode 100644 index 4b55752..0000000 --- a/src/main/java/de/siphalor/was/visual/canvas/render/Renderable.java +++ /dev/null @@ -1,8 +0,0 @@ -package de.siphalor.was.visual.canvas.render; - -import java.awt.*; - -public interface Renderable { - void tick(int delta); - void render(Graphics graphics, int width, int height); -} diff --git a/src/main/java/de/siphalor/was/visual/canvas/render/TextureObject.java b/src/main/java/de/siphalor/was/visual/canvas/render/TextureObject.java deleted file mode 100644 index 520c32c..0000000 --- a/src/main/java/de/siphalor/was/visual/canvas/render/TextureObject.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.siphalor.was.visual.canvas.render; - -import de.siphalor.was.util.Util; - -import java.awt.*; - -public abstract class TextureObject implements Renderable, Cloneable { - private int x; - private int y; - private int width; - private int height; - - protected TextureObject(int x, int y, int width, int height) { - this.x = x; - this.y = y; - this.width = width; - this.height = height; - } - - public void mirrorX() { - x += width; - width = -width; - } - - public void mirrorY() { - y += height; - height = -height; - } - - public abstract Image getTexture(); - - @Override - public void tick(int delta) { - - } - - @Override - public void render(Graphics graphics, int width, int height) { - graphics.drawImage(getTexture(), x * width / 1600, y * height / 900, this.width * width / 1600, this.height * height / 900, Util.dummyImageObserver()); - } -}