From 81a315f025f361d1155305e55dfee29308a74ed3 Mon Sep 17 00:00:00 2001 From: syeyoung <42869671+cyoung06@users.noreply.github.com> Date: Wed, 25 Nov 2020 15:37:57 +0900 Subject: room processor stuff --- .../roomprocessor/DefaultRoomProcessor.java | 29 ++++++++++++++++++++++ .../roomprocessor/ProcessorFactory.java | 27 ++++++++++++++++++++ .../dungeonsguide/roomprocessor/RoomProcessor.java | 8 ++++++ .../roomprocessor/RoomProcessorGenerator.java | 7 ++++++ 4 files changed, 71 insertions(+) create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/DefaultRoomProcessor.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/ProcessorFactory.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessor.java create mode 100644 src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorGenerator.java (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomprocessor') diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/DefaultRoomProcessor.java b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/DefaultRoomProcessor.java new file mode 100644 index 00000000..9edbcae9 --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/DefaultRoomProcessor.java @@ -0,0 +1,29 @@ +package kr.syeyoung.dungeonsguide.roomprocessor; + +import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom; + +public class DefaultRoomProcessor implements RoomProcessor { + + public DefaultRoomProcessor(DungeonRoom dungeonRoom) { + + } + + @Override + public void tick() { + + } + + @Override + public void drawScreen() { + + } + + public static class Generator implements RoomProcessorGenerator { + @Override + public DefaultRoomProcessor createNew(DungeonRoom dungeonRoom) { + + DefaultRoomProcessor defaultRoomProcessor = new DefaultRoomProcessor(dungeonRoom); + return defaultRoomProcessor; + } + } +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/ProcessorFactory.java b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/ProcessorFactory.java new file mode 100644 index 00000000..d404a1e4 --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/ProcessorFactory.java @@ -0,0 +1,27 @@ +package kr.syeyoung.dungeonsguide.roomprocessor; + +import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom; + +import java.util.HashMap; +import java.util.Map; +import java.util.Set; + +public class ProcessorFactory { + private static Map map = new HashMap(); + + public static RoomProcessorGenerator getRoomProcessorGenerator(String processorId) { + return map.get(processorId); + } + + public static void registerRoomProcessor(String processorId, RoomProcessorGenerator generator) { + map.put(processorId, generator); + } + + public static Set getProcessors() { + return map.keySet(); + } + + static { + registerRoomProcessor("default", new DefaultRoomProcessor.Generator()); + } +} diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessor.java b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessor.java new file mode 100644 index 00000000..24e29332 --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessor.java @@ -0,0 +1,8 @@ +package kr.syeyoung.dungeonsguide.roomprocessor; + +import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom; + +public interface RoomProcessor { + void tick(); + void drawScreen(); +} \ No newline at end of file diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorGenerator.java b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorGenerator.java new file mode 100644 index 00000000..66e97051 --- /dev/null +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/RoomProcessorGenerator.java @@ -0,0 +1,7 @@ +package kr.syeyoung.dungeonsguide.roomprocessor; + +import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom; + +public interface RoomProcessorGenerator { + T createNew(DungeonRoom dungeonRoom); +} -- cgit