Fixed checkMouseHover reliability issues

This commit is contained in:
josua 2019-12-06 11:41:39 +11:00
parent b2f26fd838
commit 7ca1d80e6a
31 changed files with 299 additions and 148 deletions

BIN
settings.bdf Normal file

Binary file not shown.

View File

@ -5,7 +5,6 @@ import java.util.Random;
import mainloop.manager.MainloopManager;
import projectzombie.audio.AudioEngine;
import projectzombie.audio.AudioSources;
import projectzombie.cheats.Cheats;
import projectzombie.display.DisplayStatsEventHandler;
import projectzombie.display.DisplayWindow;
import projectzombie.display.bossbar.BossBars;
@ -20,6 +19,9 @@ import projectzombie.input.KeyCallback;
import projectzombie.mainloop.MainloopEventHandler;
import projectzombie.menu.Menu;
import projectzombie.menu.MenuMain;
import projectzombie.settings.Cheats;
import projectzombie.settings.Environment;
import projectzombie.settings.Settings;
import projectzombie.tiles.LightLevelNoise;
import projectzombie.time.GameTimer;
import projectzombie.time.NoSleep;
@ -49,8 +51,10 @@ public class Main
public static void main(String[] args)
{
// Initialize the cheats
// Initialize cheats, settings, and environment
Environment.init(args);
Cheats.init(args);
Settings.init();
// Load the resources
Resources.loadResources();

View File

@ -1,15 +1,6 @@
package projectzombie.display;
import static org.lwjgl.opengl.GL11.GL_COLOR_BUFFER_BIT;
import static org.lwjgl.opengl.GL11.GL_DEPTH_BUFFER_BIT;
import static org.lwjgl.opengl.GL11.GL_MODELVIEW;
import static org.lwjgl.opengl.GL11.GL_ONE_MINUS_SRC_ALPHA;
import static org.lwjgl.opengl.GL11.GL_SRC_ALPHA;
import static org.lwjgl.opengl.GL11.glBlendFunc;
import static org.lwjgl.opengl.GL11.glClear;
import static org.lwjgl.opengl.GL11.glLoadMatrixf;
import static org.lwjgl.opengl.GL11.glMatrixMode;
import static org.lwjgl.opengl.GL11.glViewport;
import static org.lwjgl.opengl.GL33.*;
import org.joml.Matrix4f;
import org.lwjgl.opengl.GL;
@ -23,6 +14,7 @@ import projectzombie.init.Textures;
import projectzombie.util.gl.GlHelpers;
import projectzombie.util.math.vec.Vec2d;
import projectzombie.util.math.vec.Vec3d;
import projectzombie.world.chunk.Chunk;
public class DisplayRender
{
@ -82,7 +74,10 @@ public class DisplayRender
0.0f, 1.0f, 0.0f);
EntityPlayer player = Main.player;
Camera camera = new Camera(new Vec3d(player.pos.x, player.pos.y, 0), new Vec2d(player.angle, 45), 10, 1);
Camera camera = new Camera(
new Vec3d(player.pos.x, player.pos.y, 0),
new Vec2d(player.angle, 45),
10, Chunk.RENDER_DISTANCE);
Camera.camera = camera;
//GlHelpers.translate(0, 0, -5);

View File

@ -13,6 +13,8 @@ import projectzombie.world.layer.Layer;
public class LightingManager
{
public static int lightingMode = 0;
public static void update()
{
if(!ChunkEventHandler.loaded) return;

View File

@ -2,7 +2,6 @@ package projectzombie.entity.player;
import mainloop.task.IMainloopTask;
import projectzombie.Main;
import projectzombie.cheats.Cheats;
import projectzombie.display.Camera;
import projectzombie.entity.Entity;
import projectzombie.entity.EntityAlive;
@ -14,6 +13,7 @@ import projectzombie.entity.EntityVertical;
import projectzombie.init.Textures;
import projectzombie.inventory.Inventory;
import projectzombie.menu.MenuDeath;
import projectzombie.settings.Cheats;
import projectzombie.util.gl.GlHelpers;
import projectzombie.util.gl.texture.TextureReference;
import projectzombie.util.math.ItemStack;

View File

@ -11,6 +11,7 @@ class GameInput
static boolean hotbar_r = false;
static boolean startButton_last = false;
static boolean backButton_last = false;
static boolean moveLeft = false;
static boolean moveRight = false;

View File

@ -1,15 +1,6 @@
package projectzombie.input;
import static projectzombie.input.GameInput.activateItem_last;
import static projectzombie.input.GameInput.activateTile_last;
import static projectzombie.input.GameInput.dropItem_last;
import static projectzombie.input.GameInput.fireGun;
import static projectzombie.input.GameInput.hotbar_l;
import static projectzombie.input.GameInput.hotbar_r;
import static projectzombie.input.GameInput.moveDown;
import static projectzombie.input.GameInput.moveUp;
import static projectzombie.input.GameInput.move_last;
import static projectzombie.input.GameInput.startButton_last;
import static projectzombie.input.GameInput.*;
import java.nio.ByteBuffer;
import java.nio.FloatBuffer;
@ -20,6 +11,7 @@ import org.lwjgl.glfw.GLFWJoystickCallbackI;
import mainloop.task.IMainloopTask;
import projectzombie.Main;
import projectzombie.display.DisplayWindow;
import projectzombie.input.types.Input;
public class JoystickCallback implements GLFWJoystickCallbackI, IMainloopTask
@ -158,6 +150,8 @@ public class JoystickCallback implements GLFWJoystickCallbackI, IMainloopTask
double angle = Math.toDegrees(Math.atan2(left_y, left_x)) + 90;
input.move(true, angle);
move_last = true;
Main.window.setMouseVisibility(false);
}
// Set the players moving to false
@ -169,15 +163,18 @@ public class JoystickCallback implements GLFWJoystickCallbackI, IMainloopTask
// Is the right x axis stick moved into a position (camera stick)
if(right_x > 0.3 || right_x < -0.3) {
input.camera(true, right_x);
Main.window.setMouseVisibility(false);
}
// Gun trigger
if(right_trigger > 0.3 && !fireGun) {
input.fire(true);
Main.window.setMouseVisibility(false);
}
// Item trigger
if(left_trigger > 0.3) {
Main.window.setMouseVisibility(false);
if(!activateItem_last)
{
activateItem_last = true;
@ -190,6 +187,7 @@ public class JoystickCallback implements GLFWJoystickCallbackI, IMainloopTask
}
if(shoulder_left) {
Main.window.setMouseVisibility(false);
if(!hotbar_l) {
hotbar_l = true;
input.hotbarShift(true, -1);
@ -201,6 +199,7 @@ public class JoystickCallback implements GLFWJoystickCallbackI, IMainloopTask
}
if(shoulder_right) {
Main.window.setMouseVisibility(false);
if(!hotbar_r) {
hotbar_r = true;
input.hotbarShift(true, 1);
@ -213,6 +212,7 @@ public class JoystickCallback implements GLFWJoystickCallbackI, IMainloopTask
// Activate tile
if(button_x) {
Main.window.setMouseVisibility(false);
if(!activateTile_last) {
input.activateTile(true);
activateTile_last = true;
@ -225,6 +225,7 @@ public class JoystickCallback implements GLFWJoystickCallbackI, IMainloopTask
// Drop item
if(button_b) {
Main.window.setMouseVisibility(false);
if(!dropItem_last) {
input.itemDrop(true);
dropItem_last = true;
@ -235,8 +236,21 @@ public class JoystickCallback implements GLFWJoystickCallbackI, IMainloopTask
dropItem_last = false;
}
// Pause and unpause the game
// Back button
if(button_b) {
if(!backButton_last) {
input.back(true);
backButton_last = true;
}
}
else if(backButton_last) {
backButton_last = false;
}
// Pause the game
if(button_start) {
Main.window.setMouseVisibility(false);
if(!startButton_last) {
startButton_last = true;
input.pause(true);

View File

@ -1,26 +1,7 @@
package projectzombie.input;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_1;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_2;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_3;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_4;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_5;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_6;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_A;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_D;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_E;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_ESCAPE;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_F11;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_Q;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_S;
import static org.lwjgl.glfw.GLFW.GLFW_KEY_W;
import static org.lwjgl.glfw.GLFW.GLFW_RELEASE;
import static projectzombie.input.GameInput.fireGun;
import static projectzombie.input.GameInput.moveDown;
import static projectzombie.input.GameInput.moveLeft;
import static projectzombie.input.GameInput.moveRight;
import static projectzombie.input.GameInput.moveUp;
import static projectzombie.input.GameInput.move_last;
import static org.lwjgl.glfw.GLFW.*;
import static projectzombie.input.GameInput.*;
import org.lwjgl.glfw.GLFWKeyCallbackI;
@ -112,6 +93,16 @@ public class KeyCallback implements GLFWKeyCallbackI, IMainloopTask
else if(esc_last) {
esc_last = false;
}
if(pressed) {
if(!backButton_last) {
backButton_last = true;
input.back(true);
}
}
else if(backButton_last) {
backButton_last = false;
}
}
if(key == GLFW_KEY_F11) {

View File

@ -14,4 +14,5 @@ public interface Input
public void hotbarGoto(boolean state, int pos);
public void hotbarShift(boolean state, int amount);
public void mousePos(Vec2d pos);
public void back(boolean state);
}

View File

@ -1,12 +0,0 @@
package projectzombie.input.types;
import projectzombie.menu.gui.GUI;
public class InputDeath extends InputGUI
{
public InputDeath(GUI gui) {
super(gui);
}
}

View File

@ -54,5 +54,10 @@ public class InputGUI implements Input
public void mousePos(Vec2d pos) {
this.gui.updateMousePos(pos);
}
@Override
public void back(boolean state) {
gui.onBack();
}
}

View File

@ -70,5 +70,9 @@ public class InputGame implements Input
@Override
public void mousePos(Vec2d pos) {
}
@Override
public void back(boolean state) {
}
}

View File

@ -1,21 +0,0 @@
package projectzombie.input.types;
import projectzombie.Main;
import projectzombie.menu.MenuGame;
import projectzombie.menu.gui.GUI;
public class InputGamePause extends InputGUI
{
public InputGamePause(GUI gui) {
super(gui);
}
@Override
public void pause(boolean state) {
super.pause(state);
Main.menu = new MenuGame();
Main.game_paused = false;
}
}

View File

@ -1,8 +1,9 @@
package projectzombie.menu;
import projectzombie.input.types.InputDeath;
import projectzombie.input.types.InputGUI;
import projectzombie.menu.gui.GUI;
import projectzombie.menu.gui.components.LabelRespawn;
import projectzombie.menu.gui.components.ButtonGroupPause;
import projectzombie.menu.gui.components.LabelPause;
import projectzombie.menu.gui.components.OverlayBackground;
public class MenuDeath extends Menu
@ -15,10 +16,11 @@ public class MenuDeath extends Menu
this.keepMouse = false;
this.gui = new GUI();
this.input = new InputDeath(this.gui);
this.input = new InputGUI(this.gui);
gui.add(new OverlayBackground());
gui.add(new LabelRespawn("You Died"));
gui.add(new LabelPause("You Died!"));
gui.add(new ButtonGroupPause());
}
@Override

View File

@ -1,11 +1,13 @@
package projectzombie.menu;
import projectzombie.Main;
import projectzombie.input.types.InputGamePause;
import projectzombie.input.types.InputGUI;
import projectzombie.menu.gui.ButtonGroup;
import projectzombie.menu.gui.GUI;
import projectzombie.menu.gui.components.ButtonBasic;
import projectzombie.menu.gui.components.LabelRespawn;
import projectzombie.menu.gui.components.ButtonGroupPause;
import projectzombie.menu.gui.components.GUIBackToMenu;
import projectzombie.menu.gui.components.LabelPause;
import projectzombie.menu.gui.components.OverlayBackground;
import projectzombie.util.math.vec.Vec2d;
@ -18,24 +20,12 @@ public class MenuGamePause extends Menu
this.doGameRender = true;
this.keepMouse = false;
this.gui = new GUI();
this.input = new InputGamePause(this.gui);
this.gui = new GUIBackToMenu(Main.menu);
this.input = new InputGUI(this.gui);
gui.add(new OverlayBackground());
gui.add(new LabelRespawn("Game Paused"));
ButtonGroup group = new ButtonGroup();
group.add(new ButtonBasic("Settings", button -> {
Main.menu = new MenuSettings(new MenuGamePause());
}));
group.add(new ButtonBasic("Quit", button -> {
Main.menu = new MenuMain();
}));
group.setPos(new Vec2d(0, -2));
gui.add(group);
gui.add(new LabelPause("Game Paused"));
gui.add(new ButtonGroupPause());
}
@Override

View File

@ -8,8 +8,10 @@ import projectzombie.menu.gui.GUI;
import projectzombie.menu.gui.Label;
import projectzombie.menu.gui.components.ButtonBasic;
import projectzombie.menu.gui.components.ButtonSetting;
import projectzombie.menu.gui.components.GUIBackToMenu;
import projectzombie.menu.gui.components.OverlayBackground;
import projectzombie.util.math.vec.Vec2d;
import projectzombie.world.chunk.Chunk;
public class MenuSettings extends Menu
{
@ -28,26 +30,40 @@ public class MenuSettings extends Menu
ButtonGroup group = new ButtonGroup();
group.setPos(new Vec2d(-1, 4));
group.add(new ButtonSetting(DisplayRenderUI.showFPS ? "FPS: On" : "FPS: Off", button -> {
if(DisplayRenderUI.showFPS) {
button.setText("FPS: Off");
} else {
button.setText("FPS: On");
}
group.add(new ButtonSetting("FPS: " + (DisplayRenderUI.showFPS ? "On" : "Off"), button -> {
DisplayRenderUI.showFPS = !DisplayRenderUI.showFPS;
button.setText("FPS: " + (DisplayRenderUI.showFPS ? "On" : "Off"));
}));
group.add(new ButtonSetting(DisplayRenderUI.showPos ? "Pos Indicator: On" : "Pos Indicator: Off",
button -> {
if(DisplayRenderUI.showPos) {
button.setText("Pos Indicator: Off");
} else {
button.setText("Pos Indicator: On");
}
group.add(new ButtonSetting("Pos Indicator: " + (DisplayRenderUI.showPos ? "On" : "Off"),
button ->
{
DisplayRenderUI.showPos = !DisplayRenderUI.showPos;
button.setText("Pos Indicator: " + (DisplayRenderUI.showPos ? "On" : "Off"));
}));
gui = new GUI();
group.add(new ButtonSetting("Render Distance: "+Chunk.RENDER_DISTANCE, button -> {
Chunk.RENDER_DISTANCE += 1;
if(Chunk.RENDER_DISTANCE > 5) {
Chunk.RENDER_DISTANCE = 1;
}
button.setText("Render Distance: "+Chunk.RENDER_DISTANCE);
}));
/*group.add(new ButtonSetting("Dynamic Lighting: " + (LightingManager.lightingMode == 0 ? "Fast" : "Fancy"),
button ->
{
if(LightingManager.lightingMode == 0) {
LightingManager.lightingMode = 1;
} else {
LightingManager.lightingMode = 0;
}
button.setText("Dynamic Lighting: " + (LightingManager.lightingMode == 0 ? "Fast" : "Fancy"));
}));*/
gui = new GUIBackToMenu(menuOld);
input = new InputGUI(gui);
if(doGameRender) {

View File

@ -32,7 +32,7 @@ public class Button implements GUIComponent
GlHelpers.pushMatrix();
GlHelpers.translate2(pos.x, pos.y);
double m = 2.5;
double m = 3;
double w = textSize.x * m * 8;
double h = textSize.x * m / 2;
@ -94,45 +94,43 @@ public class Button implements GUIComponent
@Override
public boolean checkMouseHover(Vec2d pos) {
double m = 2.5;
double w = textSize.x * m * 8 / GlHelpers.getAspectRatio();
double h = textSize.x * m / 2;
double mx = pos.x / Main.window.getWidth() * 20 - 10;
double my = pos.y / Main.window.getHeight() * 20 - 10;
double m = 3;
double w = textSize.x * m * 8 / GlHelpers.getAspectRatio();
double h = textSize.x * m / 2;
double w1 = 0;
double w2 = 0;
if(alignment == Alignment.LEFT) {
return (
mx > -this.pos.x &&
mx < w - this.pos.x &&
my > -h - this.pos.y &&
my < h - this.pos.y
);
w1 = 0;
w2 = w;
}
if(alignment == Alignment.CENTRE) {
return (
mx > -w/2 - this.pos.x &&
mx < w/2 - this.pos.x &&
my > -h - this.pos.y &&
my < h - this.pos.y
);
w1 = -w/2;
w2 = w/2;
}
if(alignment == Alignment.RIGHT) {
return (
mx > -w - this.pos.x &&
mx < -this.pos.x &&
my > -h - this.pos.y &&
my < h - this.pos.y
);
w1 = -w;
w2 = 0;
}
return false;
return (
mx > w1 + this.pos.x &&
mx < w2 + this.pos.x &&
my > -h - this.pos.y &&
my < h - this.pos.y);
}
@Override
public void onMouseClick(Vec2d pos) {
}
@Override
public void onBack() {
}
}

View File

@ -4,7 +4,7 @@ import java.util.ArrayList;
import projectzombie.util.math.vec.Vec2d;
public class ButtonGroup implements GUIComponent, GUIContainer
public class ButtonGroup implements GUIContainer
{
private ArrayList<Button> buttons = new ArrayList<Button>();
private Vec2d pos = new Vec2d(0, 0);
@ -14,7 +14,7 @@ public class ButtonGroup implements GUIComponent, GUIContainer
for(int i=0;i<buttons.size();i++) {
Button b = buttons.get(i);
b.setPos(new Vec2d(pos.x, pos.y + Button.textSize.y * -i * 3));
b.setPos(new Vec2d(pos.x, pos.y + Button.textSize.y * -i * 3.6));
}
}
@ -53,4 +53,11 @@ public class ButtonGroup implements GUIComponent, GUIContainer
}
}
@Override
public void onBack() {
for(Button b : buttons) {
b.onBack();
}
}
}

View File

@ -2,9 +2,10 @@ package projectzombie.menu.gui;
import java.util.ArrayList;
import projectzombie.menu.Menu;
import projectzombie.util.math.vec.Vec2d;
public class GUI implements GUIComponent, GUIContainer
public class GUI implements GUIContainer
{
private ArrayList<GUIComponent> components = new ArrayList<GUIComponent>();
private Vec2d mousePos = new Vec2d(0, 0);
@ -51,4 +52,11 @@ public class GUI implements GUIComponent, GUIContainer
this.onMouseClick(mousePos);
}
@Override
public void onBack() {
for(GUIComponent c : components) {
c.onBack();
}
}
}

View File

@ -7,5 +7,7 @@ public interface GUIComponent
public void render(Vec2d mousePos);
public boolean checkMouseHover(Vec2d pos);
public void onMouseClick(Vec2d pos);
public void onBack();
}

View File

@ -1,6 +1,6 @@
package projectzombie.menu.gui;
public interface GUIContainer
public interface GUIContainer extends GUIComponent
{
public void add(GUIComponent c);
}

View File

@ -57,5 +57,9 @@ public class Label implements GUIComponent
@Override
public void onMouseClick(Vec2d pos) {
}
@Override
public void onBack() {
}
}

View File

@ -39,5 +39,9 @@ public class Overlay implements GUIComponent
@Override
public void onMouseClick(Vec2d pos) {
}
@Override
public void onBack() {
}
}

View File

@ -0,0 +1,26 @@
package projectzombie.menu.gui.components;
import projectzombie.Main;
import projectzombie.menu.Menu;
import projectzombie.menu.MenuGamePause;
import projectzombie.menu.MenuMain;
import projectzombie.menu.MenuSettings;
import projectzombie.menu.gui.ButtonGroup;
import projectzombie.util.math.vec.Vec2d;
public class ButtonGroupPause extends ButtonGroup
{
public ButtonGroupPause()
{
add(new ButtonBasic("Settings", button -> {
Main.menu.input.mousePos(new Vec2d(0, 0));
Main.menu = new MenuSettings(Main.menu);
}));
add(new ButtonBasic("Quit", button -> {
Main.menu = new MenuMain();
}));
setPos(new Vec2d(0, -2));
}
}

View File

@ -1,6 +1,8 @@
package projectzombie.menu.gui.components;
import projectzombie.menu.gui.Alignment;
import projectzombie.settings.Settings;
import projectzombie.util.math.vec.Vec2d;
public class ButtonSetting extends ButtonBasic
{
@ -11,6 +13,11 @@ public class ButtonSetting extends ButtonBasic
this.setAlign(Alignment.RIGHT);
}
@Override
public void onMouseClick(Vec2d pos) {
super.onMouseClick(pos);
Settings.update();
}
}

View File

@ -0,0 +1,21 @@
package projectzombie.menu.gui.components;
import projectzombie.Main;
import projectzombie.menu.Menu;
import projectzombie.menu.gui.GUI;
public class GUIBackToMenu extends GUI
{
private Menu back;
public GUIBackToMenu(Menu back) {
this.back = back;
}
@Override
public void onBack() {
super.onBack();
Main.menu = back;
}
}

View File

@ -4,9 +4,9 @@ import projectzombie.menu.gui.Label;
import projectzombie.util.math.vec.Vec2d;
import projectzombie.util.math.vec.Vec3d;
public class LabelRespawn extends Label
public class LabelPause extends Label
{
public LabelRespawn(String text) {
public LabelPause(String text) {
setText(text);
setPos(new Vec2d(0, 2.4));
setSize(new Vec2d(1, 1));

View File

@ -1,4 +1,4 @@
package projectzombie.cheats;
package projectzombie.settings;
public class Cheats
{

View File

@ -0,0 +1,20 @@
package projectzombie.settings;
public class Environment
{
public static String gdir = ".";
public static void init(String args[])
{
for(String arg : args)
{
// --gdir=<game directory>
if(arg.startsWith("--gdir")) {
String[] split = arg.split("=");
if(split.length == 2) {
gdir = split[1];
}
}
}
}
}

View File

@ -0,0 +1,60 @@
package projectzombie.settings;
import java.io.File;
import bdf.classes.BdfClassManager;
import bdf.classes.IBdfClassManager;
import bdf.file.BdfFileManager;
import bdf.types.BdfNamedList;
import bdf.types.BdfObject;
import bdf.types.BdfTypes;
import projectzombie.display.DisplayRenderUI;
import projectzombie.world.chunk.Chunk;
public class Settings implements IBdfClassManager
{
public static final BdfClassManager SETTINGS = new BdfClassManager(new Settings());
private static BdfFileManager FILE_MANAGER;
@Override
public void BdfClassLoad(BdfObject bdf) {
BdfNamedList nl = bdf.getNamedList();
if(nl.get("render_distance").getType() == BdfTypes.INTEGER) {
Chunk.RENDER_DISTANCE = nl.get("render_distance").getInteger();
} else {
Chunk.RENDER_DISTANCE = 1;
}
if(nl.get("show_fps").getType() == BdfTypes.BOOLEAN) {
DisplayRenderUI.showFPS = nl.get("show_fps").getBoolean();
} else {
DisplayRenderUI.showFPS = false;
}
if(nl.get("show_pos").getType() == BdfTypes.BOOLEAN) {
DisplayRenderUI.showPos = nl.get("show_pos").getBoolean();
} else {
DisplayRenderUI.showPos = false;
}
}
@Override
public void BdfClassSave(BdfObject bdf) {
BdfNamedList nl = bdf.getNamedList();
nl.set("render_distance", BdfObject.withInteger(Chunk.RENDER_DISTANCE));
nl.set("show_fps", BdfObject.withBoolean(DisplayRenderUI.showFPS));
nl.set("show_pos", BdfObject.withBoolean(DisplayRenderUI.showPos));
}
public static void init() {
FILE_MANAGER = new BdfFileManager(Environment.gdir + "/settings.bdf");
SETTINGS.load(FILE_MANAGER);
}
public static void update() {
SETTINGS.save(FILE_MANAGER);
FILE_MANAGER.saveDatabase();
}
}

View File

@ -22,9 +22,11 @@ public class Chunk
public static final Range2i CHUNK_SIZE = new Range2i(16, 16);
public static final Chunk CHUNK_EMPTY = new ChunkEmpty();
public static final int CHUNK_INDEX = CHUNK_SIZE.mx * CHUNK_SIZE.my;
public static final int SIMULATION_DISTANCE = 5;
public static final Random rand = new Random();
public static int SIMULATION_DISTANCE = 5;
public static int RENDER_DISTANCE = 1;
private Tile tiles_back[] = new Tile[CHUNK_INDEX];
private Tile tiles_front[] = new Tile[CHUNK_INDEX];
private byte tiles_front_meta[] = new byte[CHUNK_INDEX];