refactor(events): Small event manager refactoring
This commit is contained in:
@@ -1,9 +0,0 @@
|
|||||||
package cz.jzitnik.events;
|
|
||||||
|
|
||||||
import cz.jzitnik.utils.events.Event;
|
|
||||||
import lombok.Getter;
|
|
||||||
|
|
||||||
@Getter
|
|
||||||
public class QuestionAnswerEvent implements Event {
|
|
||||||
private int questionIndex;
|
|
||||||
}
|
|
||||||
@@ -13,7 +13,6 @@ import cz.jzitnik.ui.pixels.AlphaPixel;
|
|||||||
import cz.jzitnik.ui.pixels.ColoredPixel;
|
import cz.jzitnik.ui.pixels.ColoredPixel;
|
||||||
import cz.jzitnik.ui.pixels.Empty;
|
import cz.jzitnik.ui.pixels.Empty;
|
||||||
import cz.jzitnik.ui.pixels.Pixel;
|
import cz.jzitnik.ui.pixels.Pixel;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
@@ -31,10 +30,6 @@ public class CliHandler extends AbstractEventHandler<RerenderScreen> {
|
|||||||
@InjectState
|
@InjectState
|
||||||
private RenderState renderState;
|
private RenderState renderState;
|
||||||
|
|
||||||
public CliHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(RerenderScreen event) {
|
public void handle(RerenderScreen event) {
|
||||||
if (renderState.isTerminalTooSmall()) {
|
if (renderState.isTerminalTooSmall()) {
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import cz.jzitnik.states.TerminalState;
|
|||||||
import cz.jzitnik.ui.pixels.AlphaPixel;
|
import cz.jzitnik.ui.pixels.AlphaPixel;
|
||||||
import cz.jzitnik.ui.pixels.ColoredPixel;
|
import cz.jzitnik.ui.pixels.ColoredPixel;
|
||||||
import cz.jzitnik.ui.pixels.Empty;
|
import cz.jzitnik.ui.pixels.Empty;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.TextRenderer;
|
import cz.jzitnik.utils.TextRenderer;
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
import cz.jzitnik.utils.events.EventManager;
|
||||||
@@ -28,9 +27,6 @@ import java.util.ArrayList;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@EventHandler(Dialog.class)
|
@EventHandler(Dialog.class)
|
||||||
public class DialogEventHandler extends AbstractEventHandler<Dialog> {
|
public class DialogEventHandler extends AbstractEventHandler<Dialog> {
|
||||||
public DialogEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@InjectState
|
@InjectState
|
||||||
private DialogState dialogState;
|
private DialogState dialogState;
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import cz.jzitnik.annotations.injectors.InjectDependency;
|
|||||||
import cz.jzitnik.events.DroppedItemRerender;
|
import cz.jzitnik.events.DroppedItemRerender;
|
||||||
import cz.jzitnik.events.RerenderPart;
|
import cz.jzitnik.events.RerenderPart;
|
||||||
import cz.jzitnik.game.utils.RoomCords;
|
import cz.jzitnik.game.utils.RoomCords;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
import cz.jzitnik.utils.events.EventManager;
|
||||||
|
|
||||||
@@ -13,10 +12,6 @@ import java.awt.image.BufferedImage;
|
|||||||
|
|
||||||
@EventHandler(DroppedItemRerender.class)
|
@EventHandler(DroppedItemRerender.class)
|
||||||
public class DroppedItemRerenderHandler extends AbstractEventHandler<DroppedItemRerender> {
|
public class DroppedItemRerenderHandler extends AbstractEventHandler<DroppedItemRerender> {
|
||||||
public DroppedItemRerenderHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@InjectDependency
|
@InjectDependency
|
||||||
private EventManager eventManager;
|
private EventManager eventManager;
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,7 @@ import cz.jzitnik.annotations.injectors.InjectDependency;
|
|||||||
import cz.jzitnik.annotations.injectors.InjectState;
|
import cz.jzitnik.annotations.injectors.InjectState;
|
||||||
import cz.jzitnik.events.ExitEvent;
|
import cz.jzitnik.events.ExitEvent;
|
||||||
import cz.jzitnik.states.RunningState;
|
import cz.jzitnik.states.RunningState;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.ScheduledTaskManager;
|
import cz.jzitnik.utils.ScheduledTaskManager;
|
||||||
import cz.jzitnik.utils.StateManager;
|
|
||||||
import cz.jzitnik.utils.ThreadManager;
|
import cz.jzitnik.utils.ThreadManager;
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
|
import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
|
||||||
@@ -26,10 +24,6 @@ public class ExitEventHandler extends AbstractEventHandler<ExitEvent> {
|
|||||||
@InjectDependency
|
@InjectDependency
|
||||||
private ScheduledTaskManager scheduledTaskManager;
|
private ScheduledTaskManager scheduledTaskManager;
|
||||||
|
|
||||||
public ExitEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(ExitEvent event) {
|
public void handle(ExitEvent event) {
|
||||||
threadManager.shutdownAll();
|
threadManager.shutdownAll();
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ import cz.jzitnik.annotations.injectors.InjectState;
|
|||||||
import cz.jzitnik.events.FullRedrawEvent;
|
import cz.jzitnik.events.FullRedrawEvent;
|
||||||
import cz.jzitnik.events.FullRoomDraw;
|
import cz.jzitnik.events.FullRoomDraw;
|
||||||
import cz.jzitnik.states.TerminalState;
|
import cz.jzitnik.states.TerminalState;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
import cz.jzitnik.utils.events.EventManager;
|
||||||
|
|
||||||
@@ -21,10 +20,6 @@ public class FullRedrawEventHandler extends AbstractEventHandler<FullRedrawEvent
|
|||||||
@InjectState
|
@InjectState
|
||||||
private TerminalState terminalState;
|
private TerminalState terminalState;
|
||||||
|
|
||||||
public FullRedrawEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(FullRedrawEvent event) {
|
public void handle(FullRedrawEvent event) {
|
||||||
terminalState.getTerminalScreen().clear();
|
terminalState.getTerminalScreen().clear();
|
||||||
|
|||||||
@@ -18,12 +18,8 @@ import cz.jzitnik.game.ResourceManager;
|
|||||||
import cz.jzitnik.states.RenderState;
|
import cz.jzitnik.states.RenderState;
|
||||||
import cz.jzitnik.states.ScreenBuffer;
|
import cz.jzitnik.states.ScreenBuffer;
|
||||||
import cz.jzitnik.states.TerminalState;
|
import cz.jzitnik.states.TerminalState;
|
||||||
import cz.jzitnik.ui.Inventory;
|
|
||||||
import cz.jzitnik.ui.Stats;
|
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.GlobalIOHandlerRepository;
|
import cz.jzitnik.utils.GlobalIOHandlerRepository;
|
||||||
import cz.jzitnik.utils.RerenderUtils;
|
import cz.jzitnik.utils.RerenderUtils;
|
||||||
import cz.jzitnik.utils.UIRoomClickHandlerRepository;
|
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
import cz.jzitnik.utils.events.EventManager;
|
||||||
import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
|
import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
|
||||||
@@ -59,10 +55,6 @@ public class FullRoomDrawHandler extends AbstractEventHandler<FullRoomDraw> {
|
|||||||
@InjectDependency
|
@InjectDependency
|
||||||
private GlobalIOHandlerRepository globalIOHandlerRepository;
|
private GlobalIOHandlerRepository globalIOHandlerRepository;
|
||||||
|
|
||||||
public FullRoomDrawHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(FullRoomDraw event) {
|
public void handle(FullRoomDraw event) {
|
||||||
try {
|
try {
|
||||||
@@ -96,9 +88,7 @@ public class FullRoomDrawHandler extends AbstractEventHandler<FullRoomDraw> {
|
|||||||
if (renderState.isFirstRender() || event.isFullRerender()) {
|
if (renderState.isFirstRender() || event.isFullRerender()) {
|
||||||
eventManager.emitEvent(RerenderScreen.full(terminalSize));
|
eventManager.emitEvent(RerenderScreen.full(terminalSize));
|
||||||
renderState.setFirstRender(false);
|
renderState.setFirstRender(false);
|
||||||
scheduler.schedule(() -> {
|
scheduler.schedule(() -> roomTaskScheduler.setupNewSchedulers(currentRoom), 200, TimeUnit.MILLISECONDS);
|
||||||
roomTaskScheduler.setupNewSchedulers(currentRoom);
|
|
||||||
}, 200, TimeUnit.MILLISECONDS);
|
|
||||||
} else {
|
} else {
|
||||||
eventManager.emitEvent(new RerenderScreen(partsToRerender.toArray(RerenderScreen.ScreenPart[]::new)));
|
eventManager.emitEvent(new RerenderScreen(partsToRerender.toArray(RerenderScreen.ScreenPart[]::new)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import cz.jzitnik.annotations.injectors.InjectDependency;
|
|||||||
import cz.jzitnik.events.InventoryRerender;
|
import cz.jzitnik.events.InventoryRerender;
|
||||||
import cz.jzitnik.events.RerenderScreen;
|
import cz.jzitnik.events.RerenderScreen;
|
||||||
import cz.jzitnik.ui.Inventory;
|
import cz.jzitnik.ui.Inventory;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
import cz.jzitnik.utils.events.EventManager;
|
||||||
|
|
||||||
@@ -18,10 +17,6 @@ public class InventoryRerenderHandler extends AbstractEventHandler<InventoryRere
|
|||||||
@InjectDependency
|
@InjectDependency
|
||||||
private Inventory inventory;
|
private Inventory inventory;
|
||||||
|
|
||||||
public InventoryRerenderHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(InventoryRerender event) {
|
public void handle(InventoryRerender event) {
|
||||||
inventory.renderInventoryRerender();
|
inventory.renderInventoryRerender();
|
||||||
|
|||||||
@@ -5,16 +5,11 @@ import cz.jzitnik.annotations.injectors.InjectDependency;
|
|||||||
import cz.jzitnik.annotations.injectors.InjectState;
|
import cz.jzitnik.annotations.injectors.InjectState;
|
||||||
import cz.jzitnik.events.*;
|
import cz.jzitnik.events.*;
|
||||||
import cz.jzitnik.game.GameState;
|
import cz.jzitnik.game.GameState;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.GlobalIOHandlerRepository;
|
import cz.jzitnik.utils.GlobalIOHandlerRepository;
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
|
|
||||||
@EventHandler(KeyboardPressEvent.class)
|
@EventHandler(KeyboardPressEvent.class)
|
||||||
public class KeyboardPressEventHandler extends AbstractEventHandler<KeyboardPressEvent> {
|
public class KeyboardPressEventHandler extends AbstractEventHandler<KeyboardPressEvent> {
|
||||||
public KeyboardPressEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@InjectState
|
@InjectState
|
||||||
private GameState gameState;
|
private GameState gameState;
|
||||||
|
|
||||||
|
|||||||
@@ -20,10 +20,6 @@ import java.util.stream.Stream;
|
|||||||
|
|
||||||
@EventHandler(MouseAction.class)
|
@EventHandler(MouseAction.class)
|
||||||
public class MouseActionEventHandler extends AbstractEventHandler<MouseAction> {
|
public class MouseActionEventHandler extends AbstractEventHandler<MouseAction> {
|
||||||
public MouseActionEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@InjectDependency
|
@InjectDependency
|
||||||
private EventManager eventManager;
|
private EventManager eventManager;
|
||||||
|
|
||||||
@@ -39,6 +35,9 @@ public class MouseActionEventHandler extends AbstractEventHandler<MouseAction> {
|
|||||||
@InjectConfig
|
@InjectConfig
|
||||||
private PlayerConfig playerConfig;
|
private PlayerConfig playerConfig;
|
||||||
|
|
||||||
|
@InjectDependency
|
||||||
|
private DependencyManager dependencyManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(MouseAction event) {
|
public void handle(MouseAction event) {
|
||||||
if (gameState.getScreen() != null) {
|
if (gameState.getScreen() != null) {
|
||||||
@@ -77,7 +76,7 @@ public class MouseActionEventHandler extends AbstractEventHandler<MouseAction> {
|
|||||||
gameState.getPlayer().swing(playerConfig.getSwingTimeMs());
|
gameState.getPlayer().swing(playerConfig.getSwingTimeMs());
|
||||||
|
|
||||||
object.ifPresent(selectable -> {
|
object.ifPresent(selectable -> {
|
||||||
dm.inject(selectable);
|
dependencyManager.inject(selectable);
|
||||||
selectable.interact();
|
selectable.interact();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ import cz.jzitnik.game.utils.RoomCords;
|
|||||||
import cz.jzitnik.game.utils.Selectable;
|
import cz.jzitnik.game.utils.Selectable;
|
||||||
import cz.jzitnik.states.ScreenBuffer;
|
import cz.jzitnik.states.ScreenBuffer;
|
||||||
import cz.jzitnik.states.TerminalState;
|
import cz.jzitnik.states.TerminalState;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.RerenderUtils;
|
import cz.jzitnik.utils.RerenderUtils;
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
import cz.jzitnik.utils.events.EventManager;
|
||||||
@@ -36,10 +35,6 @@ import java.util.stream.Stream;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@EventHandler(MouseMoveEvent.class)
|
@EventHandler(MouseMoveEvent.class)
|
||||||
public class MouseMoveEventHandler extends AbstractEventHandler<MouseMoveEvent> {
|
public class MouseMoveEventHandler extends AbstractEventHandler<MouseMoveEvent> {
|
||||||
public MouseMoveEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
private MouseMoveEvent lastEvent = new MouseMoveEvent(new MouseAction(MouseActionType.MOVE, 1, new TerminalPosition(0, 0)));
|
private MouseMoveEvent lastEvent = new MouseMoveEvent(new MouseAction(MouseActionType.MOVE, 1, new TerminalPosition(0, 0)));
|
||||||
|
|
||||||
@InjectState
|
@InjectState
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import cz.jzitnik.states.ScreenBuffer;
|
|||||||
import cz.jzitnik.states.PlayerMovementState;
|
import cz.jzitnik.states.PlayerMovementState;
|
||||||
import cz.jzitnik.states.TerminalState;
|
import cz.jzitnik.states.TerminalState;
|
||||||
import cz.jzitnik.ui.Stats;
|
import cz.jzitnik.ui.Stats;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.RerenderUtils;
|
import cz.jzitnik.utils.RerenderUtils;
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.Event;
|
import cz.jzitnik.utils.events.Event;
|
||||||
@@ -58,10 +57,6 @@ public class PlayerMoveEventHandler extends AbstractEventHandler<PlayerMoveEvent
|
|||||||
@InjectDependency
|
@InjectDependency
|
||||||
private Stats stats;
|
private Stats stats;
|
||||||
|
|
||||||
public PlayerMoveEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(PlayerMoveEvent event) {
|
public void handle(PlayerMoveEvent event) {
|
||||||
if (renderState.isTerminalTooSmall()) {
|
if (renderState.isTerminalTooSmall()) {
|
||||||
|
|||||||
@@ -1,35 +0,0 @@
|
|||||||
package cz.jzitnik.events.handlers;
|
|
||||||
|
|
||||||
import cz.jzitnik.annotations.EventHandler;
|
|
||||||
import cz.jzitnik.annotations.injectors.InjectDependency;
|
|
||||||
import cz.jzitnik.annotations.injectors.InjectState;
|
|
||||||
import cz.jzitnik.events.QuestionAnswerEvent;
|
|
||||||
import cz.jzitnik.game.dialog.Dialog;
|
|
||||||
import cz.jzitnik.game.dialog.OnEnd;
|
|
||||||
import cz.jzitnik.states.DialogState;
|
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
|
||||||
|
|
||||||
@EventHandler(QuestionAnswerEvent.class)
|
|
||||||
public class QuestionAnswerEventHandler extends AbstractEventHandler<QuestionAnswerEvent> {
|
|
||||||
public QuestionAnswerEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@InjectState
|
|
||||||
private DialogState dialogState;
|
|
||||||
|
|
||||||
@InjectDependency
|
|
||||||
private EventManager eventManager;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void handle(QuestionAnswerEvent event) {
|
|
||||||
OnEnd dialogOnEnd = dialogState.getCurrentDialog().getOnEnd();
|
|
||||||
|
|
||||||
if (dialogOnEnd instanceof OnEnd.AskQuestion dialog) {
|
|
||||||
OnEnd.AskQuestion.Answer answer = dialog.answers()[event.getQuestionIndex()];
|
|
||||||
Dialog switchTo = answer.dialog();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -6,7 +6,6 @@ import cz.jzitnik.annotations.injectors.InjectDependency;
|
|||||||
import cz.jzitnik.events.RenderStats;
|
import cz.jzitnik.events.RenderStats;
|
||||||
import cz.jzitnik.events.RerenderScreen;
|
import cz.jzitnik.events.RerenderScreen;
|
||||||
import cz.jzitnik.ui.Stats;
|
import cz.jzitnik.ui.Stats;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
import cz.jzitnik.utils.events.EventManager;
|
||||||
|
|
||||||
@@ -18,10 +17,6 @@ public class RenderStatsHandler extends AbstractEventHandler<RenderStats> {
|
|||||||
@InjectDependency
|
@InjectDependency
|
||||||
private Stats stats;
|
private Stats stats;
|
||||||
|
|
||||||
public RenderStatsHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(RenderStats event) {
|
public void handle(RenderStats event) {
|
||||||
stats.rerender();
|
stats.rerender();
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import cz.jzitnik.game.ResourceManager;
|
|||||||
import cz.jzitnik.game.utils.RoomCords;
|
import cz.jzitnik.game.utils.RoomCords;
|
||||||
import cz.jzitnik.states.ScreenBuffer;
|
import cz.jzitnik.states.ScreenBuffer;
|
||||||
import cz.jzitnik.states.TerminalState;
|
import cz.jzitnik.states.TerminalState;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.RerenderUtils;
|
import cz.jzitnik.utils.RerenderUtils;
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
import cz.jzitnik.utils.events.EventManager;
|
||||||
@@ -23,10 +22,6 @@ import java.awt.image.BufferedImage;
|
|||||||
|
|
||||||
@EventHandler(RerenderPart.class)
|
@EventHandler(RerenderPart.class)
|
||||||
public class RerenderPartHandler extends AbstractEventHandler<RerenderPart> {
|
public class RerenderPartHandler extends AbstractEventHandler<RerenderPart> {
|
||||||
public RerenderPartHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@InjectState
|
@InjectState
|
||||||
private TerminalState terminalState;
|
private TerminalState terminalState;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import cz.jzitnik.events.RoomChangeEvent;
|
|||||||
import cz.jzitnik.game.GameRoom;
|
import cz.jzitnik.game.GameRoom;
|
||||||
import cz.jzitnik.game.GameState;
|
import cz.jzitnik.game.GameState;
|
||||||
import cz.jzitnik.game.utils.RoomCords;
|
import cz.jzitnik.game.utils.RoomCords;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
import cz.jzitnik.utils.events.EventManager;
|
||||||
import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
|
import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
|
||||||
@@ -29,10 +28,6 @@ public class RoomChangeEventHandler extends AbstractEventHandler<RoomChangeEvent
|
|||||||
@InjectDependency
|
@InjectDependency
|
||||||
private RoomTaskScheduler roomTaskScheduler;
|
private RoomTaskScheduler roomTaskScheduler;
|
||||||
|
|
||||||
public RoomChangeEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(RoomChangeEvent event) {
|
public void handle(RoomChangeEvent event) {
|
||||||
RoomCords playerCords = gameState.getPlayer().getPlayerCords();
|
RoomCords playerCords = gameState.getPlayer().getPlayerCords();
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import cz.jzitnik.states.ScreenBuffer;
|
|||||||
import cz.jzitnik.ui.pixels.AlphaPixel;
|
import cz.jzitnik.ui.pixels.AlphaPixel;
|
||||||
import cz.jzitnik.ui.pixels.Empty;
|
import cz.jzitnik.ui.pixels.Empty;
|
||||||
import cz.jzitnik.ui.pixels.Pixel;
|
import cz.jzitnik.ui.pixels.Pixel;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
import cz.jzitnik.utils.events.EventManager;
|
import cz.jzitnik.utils.events.EventManager;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -19,10 +18,6 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@EventHandler(TerminalResizeEvent.class)
|
@EventHandler(TerminalResizeEvent.class)
|
||||||
public class TerminalResizeEventHandler extends AbstractEventHandler<TerminalResizeEvent> {
|
public class TerminalResizeEventHandler extends AbstractEventHandler<TerminalResizeEvent> {
|
||||||
public TerminalResizeEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@InjectDependency
|
@InjectDependency
|
||||||
private EventManager eventManager;
|
private EventManager eventManager;
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package cz.jzitnik.events.handlers;
|
|||||||
|
|
||||||
import com.googlecode.lanterna.SGR;
|
import com.googlecode.lanterna.SGR;
|
||||||
import com.googlecode.lanterna.TerminalSize;
|
import com.googlecode.lanterna.TerminalSize;
|
||||||
import com.googlecode.lanterna.TextCharacter;
|
|
||||||
import com.googlecode.lanterna.TextColor;
|
import com.googlecode.lanterna.TextColor;
|
||||||
import com.googlecode.lanterna.screen.Screen;
|
import com.googlecode.lanterna.screen.Screen;
|
||||||
import com.googlecode.lanterna.screen.TerminalScreen;
|
import com.googlecode.lanterna.screen.TerminalScreen;
|
||||||
@@ -10,19 +9,13 @@ import cz.jzitnik.annotations.EventHandler;
|
|||||||
import cz.jzitnik.annotations.injectors.InjectState;
|
import cz.jzitnik.annotations.injectors.InjectState;
|
||||||
import cz.jzitnik.events.TerminalTooSmallEvent;
|
import cz.jzitnik.events.TerminalTooSmallEvent;
|
||||||
import cz.jzitnik.states.TerminalState;
|
import cz.jzitnik.states.TerminalState;
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
import cz.jzitnik.utils.events.AbstractEventHandler;
|
import cz.jzitnik.utils.events.AbstractEventHandler;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.EnumSet;
|
import java.util.EnumSet;
|
||||||
import java.util.HashSet;
|
|
||||||
|
|
||||||
@EventHandler(TerminalTooSmallEvent.class)
|
@EventHandler(TerminalTooSmallEvent.class)
|
||||||
public class TerminalTooSmallEventHandler extends AbstractEventHandler<TerminalTooSmallEvent> {
|
public class TerminalTooSmallEventHandler extends AbstractEventHandler<TerminalTooSmallEvent> {
|
||||||
public TerminalTooSmallEventHandler(DependencyManager dm) {
|
|
||||||
super(dm);
|
|
||||||
}
|
|
||||||
|
|
||||||
@InjectState
|
@InjectState
|
||||||
private TerminalState terminalState;
|
private TerminalState terminalState;
|
||||||
|
|
||||||
|
|||||||
@@ -39,11 +39,9 @@ public class BasicImageScene extends Screen {
|
|||||||
int imgWidth = image.getWidth();
|
int imgWidth = image.getWidth();
|
||||||
int imgHeight = image.getHeight();
|
int imgHeight = image.getHeight();
|
||||||
|
|
||||||
// Terminal pixel space (because 1 cell = 2 vertical pixels)
|
|
||||||
int termPixelWidth = termWidth;
|
int termPixelWidth = termWidth;
|
||||||
int termPixelHeight = termHeight * 2;
|
int termPixelHeight = termHeight * 2;
|
||||||
|
|
||||||
// Scale while preserving aspect ratio
|
|
||||||
double scale = Math.min(
|
double scale = Math.min(
|
||||||
(double) termPixelWidth / imgWidth,
|
(double) termPixelWidth / imgWidth,
|
||||||
(double) termPixelHeight / imgHeight
|
(double) termPixelHeight / imgHeight
|
||||||
@@ -52,7 +50,6 @@ public class BasicImageScene extends Screen {
|
|||||||
int scaledWidth = (int) (imgWidth * scale);
|
int scaledWidth = (int) (imgWidth * scale);
|
||||||
int scaledHeight = (int) (imgHeight * scale);
|
int scaledHeight = (int) (imgHeight * scale);
|
||||||
|
|
||||||
// Centering offsets (in pixel space)
|
|
||||||
int xOffset = (termPixelWidth - scaledWidth) / 2;
|
int xOffset = (termPixelWidth - scaledWidth) / 2;
|
||||||
int yOffset = (termPixelHeight - scaledHeight) / 2;
|
int yOffset = (termPixelHeight - scaledHeight) / 2;
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,5 @@
|
|||||||
package cz.jzitnik.utils.events;
|
package cz.jzitnik.utils.events;
|
||||||
|
|
||||||
import cz.jzitnik.utils.DependencyManager;
|
|
||||||
|
|
||||||
public abstract class AbstractEventHandler<T> {
|
public abstract class AbstractEventHandler<T> {
|
||||||
protected final DependencyManager dm;
|
|
||||||
|
|
||||||
public AbstractEventHandler(DependencyManager dm) {
|
|
||||||
this.dm = dm;
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract void handle(T event);
|
public abstract void handle(T event);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ public class EventManager extends Thread {
|
|||||||
for (var clazz : classes) {
|
for (var clazz : classes) {
|
||||||
EventHandler eventHandler = clazz.getAnnotation(EventHandler.class);
|
EventHandler eventHandler = clazz.getAnnotation(EventHandler.class);
|
||||||
try {
|
try {
|
||||||
var instance = (AbstractEventHandler<? extends Event>) clazz.getDeclaredConstructor(DependencyManager.class).newInstance(dependencyManager);
|
var instance = (AbstractEventHandler<? extends Event>) clazz.getDeclaredConstructor().newInstance();
|
||||||
handlers.put(eventHandler.value(), instance);
|
handlers.put(eventHandler.value(), instance);
|
||||||
} catch (InstantiationException | IllegalAccessException | InvocationTargetException |
|
} catch (InstantiationException | IllegalAccessException | InvocationTargetException |
|
||||||
NoSuchMethodException e) {
|
NoSuchMethodException e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user