fixed bug in console

v5stable
Ondřej Hruška 11 years ago
parent 2525eda1bf
commit 8509794eeb
  1. 2
      src/mightypork/gamecore/app/MainLoop.java
  2. 4
      src/mightypork/rogue/Const.java
  3. 3
      src/mightypork/rogue/screens/game/ScreenGame.java
  4. 28
      src/mightypork/rogue/screens/game/WorldConsoleRenderer.java
  5. 15
      src/mightypork/rogue/world/World.java
  6. 9
      src/mightypork/rogue/world/WorldConsole.java
  7. 2
      src/mightypork/rogue/world/gui/MapView.java

@ -55,7 +55,7 @@ public abstract class MainLoop extends AppModule implements MainLoopRequestListe
while (running) { while (running) {
getDisplay().beginFrame(); getDisplay().beginFrame();
getEventBus().send(new UpdateEvent(timer.getDelta())); getEventBus().sendDirect(new UpdateEvent(timer.getDelta()));
Runnable r; Runnable r;
while ((r = taskQueue.poll()) != null) { while ((r = taskQueue.poll()) != null) {

@ -18,6 +18,6 @@ public final class Const {
public static final int FPS_RENDER = 120; // max public static final int FPS_RENDER = 120; // max
// INITIAL WINDOW SIZE // INITIAL WINDOW SIZE
public static final int WINDOW_W = 800; public static final int WINDOW_W = 1024;
public static final int WINDOW_H = 600; public static final int WINDOW_H = 768;
} }

@ -92,9 +92,6 @@ public class ScreenGame extends LayeredScreen {
{ {
if (this.state == nstate) return; if (this.state == nstate) return;
System.out.println("Goto: "+nstate);
if (nstate != GScrState.WORLD) { // leaving world. if (nstate != GScrState.WORLD) { // leaving world.
getEventBus().send(new WorldPauseRequest(PauseAction.PAUSE)); getEventBus().send(new WorldPauseRequest(PauseAction.PAUSE));

@ -2,9 +2,13 @@ package mightypork.rogue.screens.game;
import java.util.Collection; import java.util.Collection;
import java.util.ConcurrentModificationException;
import java.util.LinkedList;
import java.util.List;
import mightypork.gamecore.gui.AlignX; import mightypork.gamecore.gui.AlignX;
import mightypork.gamecore.gui.components.BaseComponent; import mightypork.gamecore.gui.components.BaseComponent;
import mightypork.gamecore.logging.Log;
import mightypork.gamecore.resources.fonts.FontRenderer; import mightypork.gamecore.resources.fonts.FontRenderer;
import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.Color;
import mightypork.gamecore.util.math.color.pal.RGB; import mightypork.gamecore.util.math.color.pal.RGB;
@ -23,7 +27,8 @@ public class WorldConsoleRenderer extends BaseComponent {
private final FontRenderer fr; private final FontRenderer fr;
public WorldConsoleRenderer(Num rowHeight) { public WorldConsoleRenderer(Num rowHeight)
{
this.rowHeight = rowHeight; this.rowHeight = rowHeight;
this.fr = new FontRenderer(Res.getFont("tiny")); this.fr = new FontRenderer(Res.getFont("tiny"));
} }
@ -36,23 +41,30 @@ public class WorldConsoleRenderer extends BaseComponent {
Rect lowRow = bottomEdge().growUp(rowHeight); Rect lowRow = bottomEdge().growUp(rowHeight);
Collection<Entry> entries = WorldProvider.get().getWorld().getConsole().getEntries(); Collection<WorldConsole.Entry> entries = WorldProvider.get().getWorld().getConsole().getEntries();
int cnt = 0; int cnt = 0;
NumVar alph = Num.makeVar(); NumVar alph = Num.makeVar();
Color.pushAlpha(alph); Color.pushAlpha(alph);
for (WorldConsole.Entry entry : entries) { try {
for (WorldConsole.Entry entry : entries) {
alph.setTo(entry.getAlpha());
alph.setTo(entry.getAlpha()); Rect rrr = lowRow.moveY(-rh * cnt);
Rect rrr = lowRow.moveY(-rh * cnt); fr.draw(entry.getMessage(), rrr.move(rh / 12, rh / 12), AlignX.LEFT, RGB.BLACK_60);
fr.draw(entry.getMessage(), rrr, AlignX.LEFT, RGB.WHITE);
fr.draw(entry.getMessage(), rrr.move(rh / 12, rh / 12), AlignX.LEFT, RGB.BLACK_60); cnt++;
fr.draw(entry.getMessage(), rrr, AlignX.LEFT, RGB.WHITE); }
cnt++; } catch (ConcurrentModificationException e) {
Log.e(e); // this should not happen anymore
} }
Color.popAlpha(); Color.popAlpha();

@ -254,7 +254,11 @@ public class World implements DelegatingClient, BusAccess, IonObjBundled, Pausea
} }
} }
msgNoMoreFood(); if(getHealth()<getHealthMax()) {
msgNoMoreFood();
} else {
msgNotHungry();
}
} }
@ -577,13 +581,18 @@ public class World implements DelegatingClient, BusAccess, IonObjBundled, Pausea
public void msgNoMoreFood() public void msgNoMoreFood()
{ {
console.addMessage("You have no more food!"); console.addMessage("You don't have any food!");
}
public void msgNotHungry()
{
console.addMessage("You are not hungry.");
} }
public void msgCannotPick() public void msgCannotPick()
{ {
console.addMessage("Inventory is full."); console.addMessage("Can't pick items, inventory is full.");
} }

@ -1,10 +1,9 @@
package mightypork.rogue.world; package mightypork.rogue.world;
import java.util.Collection; import java.util.*;
import java.util.Deque; import java.util.concurrent.LinkedBlockingDeque;
import java.util.Iterator; import java.util.concurrent.LinkedBlockingQueue;
import java.util.LinkedList;
import mightypork.gamecore.eventbus.events.Updateable; import mightypork.gamecore.eventbus.events.Updateable;
import mightypork.gamecore.util.math.Easing; import mightypork.gamecore.util.math.Easing;
@ -71,7 +70,7 @@ public class WorldConsole implements Updateable {
} }
} }
private final Deque<Entry> entries = new LinkedList<>(); private final Deque<Entry> entries = new LinkedBlockingDeque<>();
@Override @Override

@ -94,7 +94,7 @@ public class MapView extends InputComponent implements DelegatingClient, MouseBu
public MapView() public MapView()
{ {
this.tileSize = height().min(width()).div(10).max(32).mul(Num.make(1).sub(zoom.mul(0.5))); this.tileSize = height().min(width()).div(9).max(32).mul(Num.make(1).sub(zoom.mul(0.5)));
this.worldRenderer = new WorldRenderer(this, tileSize); this.worldRenderer = new WorldRenderer(this, tileSize);
plc = WorldProvider.get().getPlayerControl(); plc = WorldProvider.get().getPlayerControl();

Loading…
Cancel
Save