Skip to content

Commit

Permalink
#27 added basic snippet tray (no functionality) HAS ANIMATION!
Browse files Browse the repository at this point in the history
  • Loading branch information
jkbriant committed Nov 5, 2018
1 parent ab38257 commit ddeb27c
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 5 deletions.
5 changes: 4 additions & 1 deletion src/computerblocks/Game.java
Expand Up @@ -18,6 +18,7 @@ public class Game {
private Display display;
private UserInterface ui;
private MenuController menuController;
private SnippetTray snippetTray;

String demoText = "";

Expand Down Expand Up @@ -62,6 +63,7 @@ private void setup() {
grid = new Grid(300, 300, 3);
player = new Player(display);
ui = new UserInterface();
snippetTray = new SnippetTray();
menuController = new MenuController(display);
Fonts.addFont(new Fonts("Paloseco-Medium.ttf"));
Fonts.addFont(new Fonts("Roboto-Regular.ttf"));
Expand All @@ -70,7 +72,7 @@ private void setup() {
}

private void update() {
player.update(display, grid, menuController);
player.update(display, grid, menuController, snippetTray);
if (player.keyboard.down('Q')) {
grid = new Grid(new Snippet("../saves/", "save"));
}
Expand All @@ -91,6 +93,7 @@ private synchronized void render() {
player.draw(display, grid);
ui.draw(display, player, grid);
if (player.state == State.MENU) menuController.update(display, player, grid);
if (player.state == State.SNIPPET) snippetTray.update(display, player, grid);
display.draw();
}
}
50 changes: 50 additions & 0 deletions src/computerblocks/display/ui/menu/SnippetTray.java
@@ -0,0 +1,50 @@
package computerblocks.display.ui.menu;

import computerblocks.display.*;
import computerblocks.display.ui.menu.elements.*;
import computerblocks.player.*;
import computerblocks.player.io.*;
import computerblocks.Grid;

import java.util.ArrayList;
import javax.imageio.ImageIO;
import java.io.File;
import java.awt.image.*;
import java.awt.Image;
import java.io.IOException;

public class SnippetTray {
public int lifeTime = 0;
public int x, y, width, height;
private int border = 8;

private int animationTime = 10;

public SnippetTray() {
System.out.println("SnippetTrat Init");
}

public void update(Display display, Player player, Grid grid) {
lifeTime += 1;
System.out.println("lifeTime: " + lifeTime);

height = display.height * 8 / 10;
width = display.width / 6;

// darken game
display.color(new Color(0f, 0f, 0f, 0.4f));
display.rect(0, 0, display.width, display.height);

// draw background box
display.color(Color.UI_BORDER);
display.rect(display.width - (width+border)/2 - width/2 + animX(), display.height/2 - (height+border)/2, width+border, height+border);
display.color(Color.BACKGROUND);
display.rect(display.width - width + animX(), display.height/2 - height/2, width, height);
}

private int animX() {
if (lifeTime < animationTime) {
return width/animationTime*(animationTime - lifeTime);
} else return 0;
}
}
16 changes: 12 additions & 4 deletions src/computerblocks/player/Player.java
Expand Up @@ -39,18 +39,26 @@ public void draw(Display display, Grid grid) {
if (state == State.PASTE && snippet != null) snippet.ghost(display, this, grid.mouseOverBlock(this));
}

public void update(Display display, Grid grid, MenuController menuController) {
updateMenu(menuController);
public void update(Display display, Grid grid, MenuController menuController, SnippetTray snippetTray) {
if (state != State.SNIPPET) updateMenu(menuController, snippetTray);
updateSelection(grid);
updatePaste(grid, display);

if (state == State.SNIPPET) {
if (keyboard.down(Keyboard.ESC) || keyboard.down('P')) {
state = State.GAME;
}
}
if (state.doPlayerTranslate) updateTranslate(grid, display);
if (state.doPlayerInteraction) updateInteraction(grid, display);

mouse.update(display);
}

private void updateMenu(MenuController menuController) {
private void updateMenu(MenuController menuController, SnippetTray snippetTray) {
if (keyboard.down('P')) {
snippetTray.lifeTime = 0;
state = State.SNIPPET;
}
if (keyboard.down(Keyboard.ESC)) {
if (state == State.GAME) {
menuController.currentMenu = menuController.pauseMenu;
Expand Down
1 change: 1 addition & 0 deletions src/computerblocks/player/io/Keyboard.java
Expand Up @@ -8,6 +8,7 @@
public class Keyboard implements KeyListener {
public static final int SHIFT = 16;
public static final int ESC = 27;
public static final int TAB = 9;

public boolean[] keys;

Expand Down

0 comments on commit ddeb27c

Please sign in to comment.