feat: Better full redraw
This commit is contained in:
6
src/main/java/cz/jzitnik/events/FullRedrawEvent.java
Normal file
6
src/main/java/cz/jzitnik/events/FullRedrawEvent.java
Normal file
@@ -0,0 +1,6 @@
|
||||
package cz.jzitnik.events;
|
||||
|
||||
import cz.jzitnik.utils.events.Event;
|
||||
|
||||
public class FullRedrawEvent implements Event {
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package cz.jzitnik.events.handlers;
|
||||
|
||||
import com.googlecode.lanterna.screen.Screen;
|
||||
import cz.jzitnik.annotations.EventHandler;
|
||||
import cz.jzitnik.annotations.injectors.InjectDependency;
|
||||
import cz.jzitnik.annotations.injectors.InjectState;
|
||||
import cz.jzitnik.events.FullRedrawEvent;
|
||||
import cz.jzitnik.events.FullRoomDraw;
|
||||
import cz.jzitnik.states.TerminalState;
|
||||
import cz.jzitnik.utils.DependencyManager;
|
||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||
import cz.jzitnik.utils.events.EventManager;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@EventHandler(FullRedrawEvent.class)
|
||||
public class FullRedrawEventHandler extends AbstractEventHandler<FullRedrawEvent> {
|
||||
@InjectDependency
|
||||
private EventManager eventManager;
|
||||
|
||||
@InjectState
|
||||
private TerminalState terminalState;
|
||||
|
||||
public FullRedrawEventHandler(DependencyManager dm) {
|
||||
super(dm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(FullRedrawEvent event) {
|
||||
terminalState.getTerminalScreen().clear();
|
||||
try {
|
||||
terminalState.getTerminalScreen().refresh(Screen.RefreshType.COMPLETE);
|
||||
} catch (IOException _) {
|
||||
}
|
||||
eventManager.emitEvent(new FullRoomDraw(true));
|
||||
}
|
||||
}
|
||||
@@ -4,17 +4,12 @@ import com.googlecode.lanterna.input.KeyStroke;
|
||||
import cz.jzitnik.annotations.EventHandler;
|
||||
import cz.jzitnik.annotations.injectors.InjectDependency;
|
||||
import cz.jzitnik.annotations.injectors.InjectState;
|
||||
import cz.jzitnik.events.ExitEvent;
|
||||
import cz.jzitnik.events.FullRoomDraw;
|
||||
import cz.jzitnik.events.KeyboardPressEvent;
|
||||
import cz.jzitnik.events.PlayerMoveEvent;
|
||||
import cz.jzitnik.events.*;
|
||||
import cz.jzitnik.game.GameState;
|
||||
import cz.jzitnik.utils.DependencyManager;
|
||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||
import cz.jzitnik.utils.events.EventManager;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@EventHandler(KeyboardPressEvent.class)
|
||||
public class KeyboardPressEventHandler extends AbstractEventHandler<KeyboardPressEvent> {
|
||||
public KeyboardPressEventHandler(DependencyManager dm) {
|
||||
@@ -41,8 +36,7 @@ public class KeyboardPressEventHandler extends AbstractEventHandler<KeyboardPres
|
||||
eventManager.emitEvent(new ExitEvent());
|
||||
break;
|
||||
case F5:
|
||||
log.debug("Fully rerendering screen");
|
||||
eventManager.emitEvent(new FullRoomDraw(true));
|
||||
eventManager.emitEvent(new FullRedrawEvent());
|
||||
break;
|
||||
case Character:
|
||||
switch (keyStroke.getCharacter()) {
|
||||
|
||||
Reference in New Issue
Block a user