Skip to content

Commit

Permalink
Working on ui. Not done.
Browse files Browse the repository at this point in the history
  • Loading branch information
Infer4Y committed Aug 9, 2019
1 parent fdf7cda commit ef23dd5
Show file tree
Hide file tree
Showing 6 changed files with 152 additions and 89 deletions.
11 changes: 6 additions & 5 deletions src/main/java/client/Game.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public class Game extends Canvas implements Runnable, KeyListener {
private Thread thread;

private static final long NANOSECOND = 1000000000;
private static final double OPTIMAL_TICKS = 50.0;
private static final double OPTIMAL_TICKS = 75.0;
private static final double OPTIMAL_TIME = NANOSECOND / OPTIMAL_TICKS;

private long lastLoopTime = System.nanoTime();
Expand All @@ -32,7 +32,7 @@ public class Game extends Canvas implements Runnable, KeyListener {

public static Game instance;

public static CurrentlySelected currentlySelected = new CurrentlySelected();
public static HeadsUpDisplay headsUpDisplay;

public static final List<Entity> entities = new ArrayList<>();
public static final List<Drawable> drawables = new ArrayList<>();
Expand All @@ -58,6 +58,7 @@ public static void main(String[] args) {

public Game () {
Blocks.init();
headsUpDisplay = new HeadsUpDisplay();

addKeyListener(this);

Expand All @@ -78,9 +79,9 @@ public Game () {
drawables.add(e);
}

entities.add(currentlySelected);
drawables.add(currentlySelected);
addKeyListener(currentlySelected);
entities.add(headsUpDisplay);
drawables.add(headsUpDisplay);
addKeyListener(headsUpDisplay);

entities.add(fpsViewer);
drawables.add(fpsViewer);
Expand Down
7 changes: 5 additions & 2 deletions src/main/java/client/renderables/BlockRender.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import client.Game;
import common.block.Block;
import common.block.BlockAir;
import common.item.ItemBlock;
import common.registries.Blocks;
import utils.FileUtils;

Expand Down Expand Up @@ -45,7 +46,7 @@ public BlockRender(Block block, int x, int y){

@Override
public void draw(Graphics g) {
g.drawImage(texture, x, y, Game.instance);
g.drawImage(texture, x, y, null);
}

@Override
Expand Down Expand Up @@ -75,7 +76,9 @@ public void mousePressed(MouseEvent e) {
e1.printStackTrace();
}
} else if (e.getButton() == MouseEvent.BUTTON3 && (x <= e.getX() && x+width>= e.getX()) && (y <= e.getY() && y+height>= e.getY())){
block = Game.currentlySelected.selected;
if (Game.headsUpDisplay.getSelected().getItemStack().getItem() instanceof ItemBlock) {
block = ((ItemBlock)Game.headsUpDisplay.getSelected().getItemStack().getItem()).getBlock();
}
try {
this.texture = FileUtils.scale1(ImageIO.read(this.getClass().getClassLoader().getResource("tex/blocks/"+block.getName()+".png")), 4.0);
} catch (IOException | NullPointerException e1) {
Expand Down
82 changes: 0 additions & 82 deletions src/main/java/client/renderables/CurrentlySelected.java

This file was deleted.

82 changes: 82 additions & 0 deletions src/main/java/client/renderables/HeadsUpDisplay.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
package client.renderables;

import common.block.Block;
import common.item.ItemBlock;
import common.item.ItemStack;
import common.registries.Blocks;

import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class HeadsUpDisplay implements Entity, Drawable, KeyListener {

private int selected = 0;
private Slot[] slots;
{
slots = new Slot[8];
for (int i = 0; i < 7; i++) {
slots[i] = new Slot();
}
slots[0].setItemStack(new ItemStack(new ItemBlock(Blocks.grass),1));
slots[1].setItemStack(new ItemStack(new ItemBlock(Blocks.dirt),1));
slots[2].setItemStack(new ItemStack(new ItemBlock(Blocks.stone), 1));
slots[3].setItemStack(new ItemStack(new ItemBlock(Blocks.launcher), 1));
}

public HeadsUpDisplay() {
}

@Override
public void draw(Graphics g) {
g.setColor(Color.LIGHT_GRAY);
g.fillRect(16, 16, 32*8 + 20, 32 + 4);
for (int i =0; i < slots.length; i++) {
slots[i].draw(g, 32*i + 17, 17, i == selected);
}
}

@Override
public void tick() {

}

@Override
public void second() {

}

@Override
public void keyTyped(KeyEvent e) {

}

@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()){
case KeyEvent.VK_1:
selected = 0;
break;
case KeyEvent.VK_2:
selected = 1;
break;
case KeyEvent.VK_3:
selected = 2;
break;
case KeyEvent.VK_4:
selected = 3;
break;
default:
break;
}
}

@Override
public void keyReleased(KeyEvent e) {

}

public Slot getSelected() {
return slots[0];
}
}
56 changes: 56 additions & 0 deletions src/main/java/client/renderables/Slot.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package client.renderables;

import client.Game;
import common.block.Block;
import common.containers.ISlot;
import common.item.Item;
import common.item.ItemBlock;
import common.item.ItemStack;
import common.registries.Blocks;
import org.w3c.dom.events.MouseEvent;
import utils.FileUtils;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class Slot implements ISlot {
private ItemStack stack = new ItemStack(new ItemBlock(Blocks.air),0);

public void draw(Graphics g, int x, int y, boolean selected) {
BufferedImage texture;
try {
if (stack.getItem() instanceof ItemBlock) {
texture = FileUtils.scale1(ImageIO.read(this.getClass().getClassLoader().getResource("tex/blocks/" + stack.getItem().getName() + ".png")), 2.0);
} else {
texture = FileUtils.scale1(ImageIO.read(this.getClass().getClassLoader().getResource("tex/items/" + stack.getItem().getName() + ".png")), 2.0);
}
} catch (IOException | NullPointerException e1) {
try {
texture = FileUtils.scale1(ImageIO.read(this.getClass().getClassLoader().getResource("tex/placeholder.png")), 2.0);
} catch (IOException ex) {
texture=new BufferedImage(64,64,BufferedImage.TYPE_INT_ARGB);
ex.printStackTrace();
}
e1.printStackTrace();
}
g.fillRect(x,y, 34,34);
g.drawImage(texture, x+1,y+1 , Game.instance);
}

@Override
public void setItemStack(ItemStack stack) {
this.stack = stack;
}

@Override
public ItemStack getItemStack() {
return stack;
}
}
3 changes: 3 additions & 0 deletions src/main/java/common/item/ItemBlock.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,7 @@ public void onItemUse(){
//TODO: On item use add block to world and decress item stack.
}

public Block getBlock() {
return block;
}
}

0 comments on commit ef23dd5

Please sign in to comment.