diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..5c84731
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index aa00ffa..fd66ed6 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -1,6 +1,12 @@
+
+
+
+
+
+
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000..09fe16c
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 3202223..86993b2 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,17 +1,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/common/.gitignore b/common/.gitignore
new file mode 100644
index 0000000..480bdf5
--- /dev/null
+++ b/common/.gitignore
@@ -0,0 +1,39 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+.kotlin
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/common/.idea/.gitignore b/common/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/common/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/common/.idea/encodings.xml b/common/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/common/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common/.idea/misc.xml b/common/.idea/misc.xml
new file mode 100644
index 0000000..4878ef2
--- /dev/null
+++ b/common/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common/.idea/vcs.xml b/common/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/common/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common/pom.xml b/common/pom.xml
new file mode 100644
index 0000000..7303d3b
--- /dev/null
+++ b/common/pom.xml
@@ -0,0 +1,28 @@
+
+
+ 4.0.0
+
+
+ cz.jzitnik
+ game-parent
+ 1.0-SNAPSHOT
+
+
+ common
+
+
+
+ tools.jackson.core
+ jackson-databind
+ 3.0.4
+
+
+
+ tools.jackson.dataformat
+ jackson-dataformat-yaml
+ 3.0.4
+
+
+
diff --git a/.gitignore b/game/.gitignore
similarity index 100%
rename from .gitignore
rename to game/.gitignore
diff --git a/game/.idea/.gitignore b/game/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/game/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/game/.idea/encodings.xml b/game/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/game/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game/.idea/misc.xml b/game/.idea/misc.xml
new file mode 100644
index 0000000..3202223
--- /dev/null
+++ b/game/.idea/misc.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game/.idea/vcs.xml b/game/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/game/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game/pom.xml b/game/pom.xml
new file mode 100644
index 0000000..759b5da
--- /dev/null
+++ b/game/pom.xml
@@ -0,0 +1,183 @@
+
+
+ 4.0.0
+
+
+ cz.jzitnik
+ game-parent
+ 1.0-SNAPSHOT
+
+
+ game
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.11.0
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.38
+
+
+ 25
+ 25
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.2.1
+
+
+ package
+
+ shade
+
+
+
+
+
+
+ cz.jzitnik.client.Main
+
+
+ false
+ false
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.1.0
+
+
+
+ java
+
+
+
+
+ cz.jzitnik.client.Main
+ compile
+
+
+
+
+
+
+
+
+ be.0110.repo-releases
+ 0110.be repository
+ https://mvn.0110.be/releases
+
+
+
+
+
+ cz.jzitnik
+ common
+ 1.0-SNAPSHOT
+
+
+ org.projectlombok
+ lombok
+ 1.18.42
+ provided
+
+
+
+ org.reflections
+ reflections
+ 0.10.2
+
+
+
+ com.google.guava
+ guava
+ 33.5.0-jre
+
+
+
+ tools.jackson.core
+ jackson-databind
+ 3.0.4
+
+
+
+ tools.jackson.dataformat
+ jackson-dataformat-yaml
+ 3.0.4
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 6.0.2
+
+
+
+ org.junit.jupiter
+ junit-jupiter-api
+ 6.0.2
+ test
+
+
+
+ org.slf4j
+ slf4j-api
+ 2.0.17
+
+
+
+ ch.qos.logback
+ logback-classic
+ 1.5.25
+
+
+
+ com.github.trilarion
+ java-vorbis-support
+ 1.2.1
+
+
+
+ com.googlecode.lanterna
+ lanterna
+ 3.1.3
+
+
+
+ org.bytedeco
+ javacv-platform
+ 1.5.12
+
+
+
+ org.bytedeco
+ ffmpeg-platform
+ 7.1.1-1.5.12
+
+
+
+ be.tarsos.dsp
+ core
+ 2.5
+
+
+
+ be.tarsos.dsp
+ jvm
+ 2.5
+
+
+
diff --git a/src/main/java/cz/jzitnik/Cli.java b/game/src/main/java/cz/jzitnik/client/Cli.java
similarity index 80%
rename from src/main/java/cz/jzitnik/Cli.java
rename to game/src/main/java/cz/jzitnik/client/Cli.java
index 8b4aa52..897412f 100644
--- a/src/main/java/cz/jzitnik/Cli.java
+++ b/game/src/main/java/cz/jzitnik/client/Cli.java
@@ -1,18 +1,18 @@
-package cz.jzitnik;
+package cz.jzitnik.client;
import com.googlecode.lanterna.input.KeyStroke;
import com.googlecode.lanterna.screen.TerminalScreen;
import com.googlecode.lanterna.terminal.DefaultTerminalFactory;
import com.googlecode.lanterna.terminal.MouseCaptureMode;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.KeyboardPressEvent;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.events.TerminalResizeEvent;
-import cz.jzitnik.states.RunningState;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.events.TerminalResizeEvent;
+import cz.jzitnik.client.states.RunningState;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
diff --git a/src/main/java/cz/jzitnik/Game.java b/game/src/main/java/cz/jzitnik/client/Game.java
similarity index 69%
rename from src/main/java/cz/jzitnik/Game.java
rename to game/src/main/java/cz/jzitnik/client/Game.java
index 1e26c6d..d6601e5 100644
--- a/src/main/java/cz/jzitnik/Game.java
+++ b/game/src/main/java/cz/jzitnik/client/Game.java
@@ -1,11 +1,11 @@
-package cz.jzitnik;
+package cz.jzitnik.client;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.game.setup.GameSetup;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.GlobalIOHandlerRepository;
-import cz.jzitnik.utils.ScheduledTaskManager;
-import cz.jzitnik.utils.ThreadManager;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.game.setup.GameSetup;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.GlobalIOHandlerRepository;
+import cz.jzitnik.client.utils.ScheduledTaskManager;
+import cz.jzitnik.client.utils.ThreadManager;
import org.reflections.Reflections;
import java.io.IOException;
diff --git a/src/main/java/cz/jzitnik/Main.java b/game/src/main/java/cz/jzitnik/client/Main.java
similarity index 87%
rename from src/main/java/cz/jzitnik/Main.java
rename to game/src/main/java/cz/jzitnik/client/Main.java
index a649b6d..41515de 100644
--- a/src/main/java/cz/jzitnik/Main.java
+++ b/game/src/main/java/cz/jzitnik/client/Main.java
@@ -1,4 +1,4 @@
-package cz.jzitnik;
+package cz.jzitnik.client;
// events/handlers/MouseMoveEventHandler.java
diff --git a/src/main/java/cz/jzitnik/annotations/Config.java b/game/src/main/java/cz/jzitnik/client/annotations/Config.java
similarity index 87%
rename from src/main/java/cz/jzitnik/annotations/Config.java
rename to game/src/main/java/cz/jzitnik/client/annotations/Config.java
index 163c563..882f382 100644
--- a/src/main/java/cz/jzitnik/annotations/Config.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/Config.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations;
+package cz.jzitnik.client.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/cz/jzitnik/annotations/Dependency.java b/game/src/main/java/cz/jzitnik/client/annotations/Dependency.java
similarity index 89%
rename from src/main/java/cz/jzitnik/annotations/Dependency.java
rename to game/src/main/java/cz/jzitnik/client/annotations/Dependency.java
index 87ed5a5..288c601 100644
--- a/src/main/java/cz/jzitnik/annotations/Dependency.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/Dependency.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations;
+package cz.jzitnik.client.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/cz/jzitnik/annotations/EventHandler.java b/game/src/main/java/cz/jzitnik/client/annotations/EventHandler.java
similarity index 77%
rename from src/main/java/cz/jzitnik/annotations/EventHandler.java
rename to game/src/main/java/cz/jzitnik/client/annotations/EventHandler.java
index e9c7d2c..79bdc30 100644
--- a/src/main/java/cz/jzitnik/annotations/EventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/EventHandler.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.annotations;
+package cz.jzitnik.client.annotations;
-import cz.jzitnik.utils.events.Event;
+import cz.jzitnik.client.utils.events.Event;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/cz/jzitnik/annotations/PostInit.java b/game/src/main/java/cz/jzitnik/client/annotations/PostInit.java
similarity index 86%
rename from src/main/java/cz/jzitnik/annotations/PostInit.java
rename to game/src/main/java/cz/jzitnik/client/annotations/PostInit.java
index 7861229..2998554 100644
--- a/src/main/java/cz/jzitnik/annotations/PostInit.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/PostInit.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations;
+package cz.jzitnik.client.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/cz/jzitnik/annotations/ScheduledTask.java b/game/src/main/java/cz/jzitnik/client/annotations/ScheduledTask.java
similarity index 89%
rename from src/main/java/cz/jzitnik/annotations/ScheduledTask.java
rename to game/src/main/java/cz/jzitnik/client/annotations/ScheduledTask.java
index f60c113..9856180 100644
--- a/src/main/java/cz/jzitnik/annotations/ScheduledTask.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/ScheduledTask.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations;
+package cz.jzitnik.client.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/cz/jzitnik/annotations/State.java b/game/src/main/java/cz/jzitnik/client/annotations/State.java
similarity index 86%
rename from src/main/java/cz/jzitnik/annotations/State.java
rename to game/src/main/java/cz/jzitnik/client/annotations/State.java
index bf23ec3..0d9646b 100644
--- a/src/main/java/cz/jzitnik/annotations/State.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/State.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations;
+package cz.jzitnik.client.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/cz/jzitnik/annotations/ThreadRegistry.java b/game/src/main/java/cz/jzitnik/client/annotations/ThreadRegistry.java
similarity index 87%
rename from src/main/java/cz/jzitnik/annotations/ThreadRegistry.java
rename to game/src/main/java/cz/jzitnik/client/annotations/ThreadRegistry.java
index ea4dfdd..ff3ec98 100644
--- a/src/main/java/cz/jzitnik/annotations/ThreadRegistry.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/ThreadRegistry.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations;
+package cz.jzitnik.client.annotations;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/cz/jzitnik/annotations/injectors/InjectConfig.java b/game/src/main/java/cz/jzitnik/client/annotations/injectors/InjectConfig.java
similarity index 84%
rename from src/main/java/cz/jzitnik/annotations/injectors/InjectConfig.java
rename to game/src/main/java/cz/jzitnik/client/annotations/injectors/InjectConfig.java
index b95916e..3371552 100644
--- a/src/main/java/cz/jzitnik/annotations/injectors/InjectConfig.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/injectors/InjectConfig.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations.injectors;
+package cz.jzitnik.client.annotations.injectors;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/cz/jzitnik/annotations/injectors/InjectDependency.java b/game/src/main/java/cz/jzitnik/client/annotations/injectors/InjectDependency.java
similarity index 84%
rename from src/main/java/cz/jzitnik/annotations/injectors/InjectDependency.java
rename to game/src/main/java/cz/jzitnik/client/annotations/injectors/InjectDependency.java
index 5c6fd13..2b8d0d6 100644
--- a/src/main/java/cz/jzitnik/annotations/injectors/InjectDependency.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/injectors/InjectDependency.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations.injectors;
+package cz.jzitnik.client.annotations.injectors;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/cz/jzitnik/annotations/injectors/InjectState.java b/game/src/main/java/cz/jzitnik/client/annotations/injectors/InjectState.java
similarity index 84%
rename from src/main/java/cz/jzitnik/annotations/injectors/InjectState.java
rename to game/src/main/java/cz/jzitnik/client/annotations/injectors/InjectState.java
index d01eaa7..0c6ae48 100644
--- a/src/main/java/cz/jzitnik/annotations/injectors/InjectState.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/injectors/InjectState.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations.injectors;
+package cz.jzitnik.client.annotations.injectors;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/cz/jzitnik/annotations/ui/KeyboardPressHandler.java b/game/src/main/java/cz/jzitnik/client/annotations/ui/KeyboardPressHandler.java
similarity index 88%
rename from src/main/java/cz/jzitnik/annotations/ui/KeyboardPressHandler.java
rename to game/src/main/java/cz/jzitnik/client/annotations/ui/KeyboardPressHandler.java
index d5e6eaa..b8c172a 100644
--- a/src/main/java/cz/jzitnik/annotations/ui/KeyboardPressHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/ui/KeyboardPressHandler.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations.ui;
+package cz.jzitnik.client.annotations.ui;
import com.googlecode.lanterna.input.KeyType;
diff --git a/src/main/java/cz/jzitnik/annotations/ui/KeyboardPressHandlers.java b/game/src/main/java/cz/jzitnik/client/annotations/ui/KeyboardPressHandlers.java
similarity index 87%
rename from src/main/java/cz/jzitnik/annotations/ui/KeyboardPressHandlers.java
rename to game/src/main/java/cz/jzitnik/client/annotations/ui/KeyboardPressHandlers.java
index b8892ae..32d1abf 100644
--- a/src/main/java/cz/jzitnik/annotations/ui/KeyboardPressHandlers.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/ui/KeyboardPressHandlers.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations.ui;
+package cz.jzitnik.client.annotations.ui;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/cz/jzitnik/annotations/ui/MouseHandler.java b/game/src/main/java/cz/jzitnik/client/annotations/ui/MouseHandler.java
similarity index 87%
rename from src/main/java/cz/jzitnik/annotations/ui/MouseHandler.java
rename to game/src/main/java/cz/jzitnik/client/annotations/ui/MouseHandler.java
index e18ed7c..5ea0f70 100644
--- a/src/main/java/cz/jzitnik/annotations/ui/MouseHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/ui/MouseHandler.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations.ui;
+package cz.jzitnik.client.annotations.ui;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/cz/jzitnik/annotations/ui/MouseHandlerType.java b/game/src/main/java/cz/jzitnik/client/annotations/ui/MouseHandlerType.java
similarity index 60%
rename from src/main/java/cz/jzitnik/annotations/ui/MouseHandlerType.java
rename to game/src/main/java/cz/jzitnik/client/annotations/ui/MouseHandlerType.java
index 26e46d7..158904b 100644
--- a/src/main/java/cz/jzitnik/annotations/ui/MouseHandlerType.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/ui/MouseHandlerType.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations.ui;
+package cz.jzitnik.client.annotations.ui;
public enum MouseHandlerType {
CLICK,
diff --git a/src/main/java/cz/jzitnik/annotations/ui/Render.java b/game/src/main/java/cz/jzitnik/client/annotations/ui/Render.java
similarity index 85%
rename from src/main/java/cz/jzitnik/annotations/ui/Render.java
rename to game/src/main/java/cz/jzitnik/client/annotations/ui/Render.java
index 6a2a79c..0f60582 100644
--- a/src/main/java/cz/jzitnik/annotations/ui/Render.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/ui/Render.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations.ui;
+package cz.jzitnik.client.annotations.ui;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/cz/jzitnik/annotations/ui/UI.java b/game/src/main/java/cz/jzitnik/client/annotations/ui/UI.java
similarity index 85%
rename from src/main/java/cz/jzitnik/annotations/ui/UI.java
rename to game/src/main/java/cz/jzitnik/client/annotations/ui/UI.java
index 9980fcf..c74f7e2 100644
--- a/src/main/java/cz/jzitnik/annotations/ui/UI.java
+++ b/game/src/main/java/cz/jzitnik/client/annotations/ui/UI.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.annotations.ui;
+package cz.jzitnik.client.annotations.ui;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/main/java/cz/jzitnik/config/CoreLogic.java b/game/src/main/java/cz/jzitnik/client/config/CoreLogic.java
similarity index 81%
rename from src/main/java/cz/jzitnik/config/CoreLogic.java
rename to game/src/main/java/cz/jzitnik/client/config/CoreLogic.java
index 31a1484..545b613 100644
--- a/src/main/java/cz/jzitnik/config/CoreLogic.java
+++ b/game/src/main/java/cz/jzitnik/client/config/CoreLogic.java
@@ -1,9 +1,8 @@
-package cz.jzitnik.config;
+package cz.jzitnik.client.config;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.annotations.Config;
-import lombok.Getter;
+import cz.jzitnik.client.annotations.Config;
@Config("core_logic.yaml")
public record CoreLogic(int itemDropDisappearMinutes) {
diff --git a/src/main/java/cz/jzitnik/config/Debugging.java b/game/src/main/java/cz/jzitnik/client/config/Debugging.java
similarity index 89%
rename from src/main/java/cz/jzitnik/config/Debugging.java
rename to game/src/main/java/cz/jzitnik/client/config/Debugging.java
index b5ac702..287cdff 100644
--- a/src/main/java/cz/jzitnik/config/Debugging.java
+++ b/game/src/main/java/cz/jzitnik/client/config/Debugging.java
@@ -1,8 +1,8 @@
-package cz.jzitnik.config;
+package cz.jzitnik.client.config;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.annotations.Config;
+import cz.jzitnik.client.annotations.Config;
@Config("debugging.yaml")
public record Debugging(boolean renderColliders, boolean renderPlayerCollider, boolean showPlayerCordsLogs) {
diff --git a/src/main/java/cz/jzitnik/config/MicrophoneConfig.java b/game/src/main/java/cz/jzitnik/client/config/MicrophoneConfig.java
similarity index 82%
rename from src/main/java/cz/jzitnik/config/MicrophoneConfig.java
rename to game/src/main/java/cz/jzitnik/client/config/MicrophoneConfig.java
index a55bda2..b07ba83 100644
--- a/src/main/java/cz/jzitnik/config/MicrophoneConfig.java
+++ b/game/src/main/java/cz/jzitnik/client/config/MicrophoneConfig.java
@@ -1,8 +1,8 @@
-package cz.jzitnik.config;
+package cz.jzitnik.client.config;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.annotations.Config;
+import cz.jzitnik.client.annotations.Config;
@Config("microphone.yaml")
public record MicrophoneConfig(float volumeThreshold) {
diff --git a/src/main/java/cz/jzitnik/config/PlayerConfig.java b/game/src/main/java/cz/jzitnik/client/config/PlayerConfig.java
similarity index 90%
rename from src/main/java/cz/jzitnik/config/PlayerConfig.java
rename to game/src/main/java/cz/jzitnik/client/config/PlayerConfig.java
index 1e355a6..78079ce 100644
--- a/src/main/java/cz/jzitnik/config/PlayerConfig.java
+++ b/game/src/main/java/cz/jzitnik/client/config/PlayerConfig.java
@@ -1,9 +1,9 @@
-package cz.jzitnik.config;
+package cz.jzitnik.client.config;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.annotations.Config;
-import cz.jzitnik.events.handlers.PlayerMoveEventHandler;
+import cz.jzitnik.client.annotations.Config;
+import cz.jzitnik.client.events.handlers.PlayerMoveEventHandler;
@Config("player.yaml")
public record PlayerConfig(
diff --git a/src/main/java/cz/jzitnik/config/ThreadPoolConfig.java b/game/src/main/java/cz/jzitnik/client/config/ThreadPoolConfig.java
similarity index 85%
rename from src/main/java/cz/jzitnik/config/ThreadPoolConfig.java
rename to game/src/main/java/cz/jzitnik/client/config/ThreadPoolConfig.java
index 2dc4110..b1c2dfc 100644
--- a/src/main/java/cz/jzitnik/config/ThreadPoolConfig.java
+++ b/game/src/main/java/cz/jzitnik/client/config/ThreadPoolConfig.java
@@ -1,9 +1,8 @@
-package cz.jzitnik.config;
+package cz.jzitnik.client.config;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.annotations.Config;
-import lombok.Getter;
+import cz.jzitnik.client.annotations.Config;
@Config("threads.yaml")
public record ThreadPoolConfig(int eventThreadCount, int taskThreadCount) {
diff --git a/game/src/main/java/cz/jzitnik/client/events/DroppedItemRerender.java b/game/src/main/java/cz/jzitnik/client/events/DroppedItemRerender.java
new file mode 100644
index 0000000..1f421de
--- /dev/null
+++ b/game/src/main/java/cz/jzitnik/client/events/DroppedItemRerender.java
@@ -0,0 +1,7 @@
+package cz.jzitnik.client.events;
+
+import cz.jzitnik.client.game.objects.DroppedItem;
+import cz.jzitnik.client.utils.events.Event;
+
+public record DroppedItemRerender(DroppedItem droppedItem) implements Event {
+}
diff --git a/src/main/java/cz/jzitnik/events/ExitEvent.java b/game/src/main/java/cz/jzitnik/client/events/ExitEvent.java
similarity index 52%
rename from src/main/java/cz/jzitnik/events/ExitEvent.java
rename to game/src/main/java/cz/jzitnik/client/events/ExitEvent.java
index 1649807..0a5761d 100644
--- a/src/main/java/cz/jzitnik/events/ExitEvent.java
+++ b/game/src/main/java/cz/jzitnik/client/events/ExitEvent.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.events;
+package cz.jzitnik.client.events;
-import cz.jzitnik.utils.events.Event;
+import cz.jzitnik.client.utils.events.Event;
/** Custom event without any handler **/
public class ExitEvent implements Event {
diff --git a/game/src/main/java/cz/jzitnik/client/events/FullRedrawEvent.java b/game/src/main/java/cz/jzitnik/client/events/FullRedrawEvent.java
new file mode 100644
index 0000000..cc88a6e
--- /dev/null
+++ b/game/src/main/java/cz/jzitnik/client/events/FullRedrawEvent.java
@@ -0,0 +1,6 @@
+package cz.jzitnik.client.events;
+
+import cz.jzitnik.client.utils.events.Event;
+
+public class FullRedrawEvent implements Event {
+}
diff --git a/src/main/java/cz/jzitnik/events/FullRoomDraw.java b/game/src/main/java/cz/jzitnik/client/events/FullRoomDraw.java
similarity index 73%
rename from src/main/java/cz/jzitnik/events/FullRoomDraw.java
rename to game/src/main/java/cz/jzitnik/client/events/FullRoomDraw.java
index 1268625..7097833 100644
--- a/src/main/java/cz/jzitnik/events/FullRoomDraw.java
+++ b/game/src/main/java/cz/jzitnik/client/events/FullRoomDraw.java
@@ -1,7 +1,6 @@
-package cz.jzitnik.events;
+package cz.jzitnik.client.events;
-import cz.jzitnik.utils.events.Event;
-import lombok.AllArgsConstructor;
+import cz.jzitnik.client.utils.events.Event;
import lombok.Getter;
import lombok.NoArgsConstructor;
diff --git a/game/src/main/java/cz/jzitnik/client/events/InventoryRerender.java b/game/src/main/java/cz/jzitnik/client/events/InventoryRerender.java
new file mode 100644
index 0000000..998db13
--- /dev/null
+++ b/game/src/main/java/cz/jzitnik/client/events/InventoryRerender.java
@@ -0,0 +1,6 @@
+package cz.jzitnik.client.events;
+
+import cz.jzitnik.client.utils.events.Event;
+
+public class InventoryRerender implements Event {
+}
diff --git a/src/main/java/cz/jzitnik/events/KeyboardPressEvent.java b/game/src/main/java/cz/jzitnik/client/events/KeyboardPressEvent.java
similarity index 73%
rename from src/main/java/cz/jzitnik/events/KeyboardPressEvent.java
rename to game/src/main/java/cz/jzitnik/client/events/KeyboardPressEvent.java
index 52ec8ae..19b2e2b 100644
--- a/src/main/java/cz/jzitnik/events/KeyboardPressEvent.java
+++ b/game/src/main/java/cz/jzitnik/client/events/KeyboardPressEvent.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.events;
+package cz.jzitnik.client.events;
import com.googlecode.lanterna.input.KeyStroke;
-import cz.jzitnik.utils.events.Event;
+import cz.jzitnik.client.utils.events.Event;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/src/main/java/cz/jzitnik/events/MouseAction.java b/game/src/main/java/cz/jzitnik/client/events/MouseAction.java
similarity index 86%
rename from src/main/java/cz/jzitnik/events/MouseAction.java
rename to game/src/main/java/cz/jzitnik/client/events/MouseAction.java
index 6959efc..605e5db 100644
--- a/src/main/java/cz/jzitnik/events/MouseAction.java
+++ b/game/src/main/java/cz/jzitnik/client/events/MouseAction.java
@@ -1,8 +1,8 @@
-package cz.jzitnik.events;
+package cz.jzitnik.client.events;
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.input.MouseActionType;
-import cz.jzitnik.utils.events.Event;
+import cz.jzitnik.client.utils.events.Event;
public class MouseAction extends com.googlecode.lanterna.input.MouseAction implements Event {
public MouseAction(MouseActionType actionType, int button, TerminalPosition position) {
diff --git a/src/main/java/cz/jzitnik/events/MouseMoveEvent.java b/game/src/main/java/cz/jzitnik/client/events/MouseMoveEvent.java
similarity index 68%
rename from src/main/java/cz/jzitnik/events/MouseMoveEvent.java
rename to game/src/main/java/cz/jzitnik/client/events/MouseMoveEvent.java
index 9bb769b..e4c4e82 100644
--- a/src/main/java/cz/jzitnik/events/MouseMoveEvent.java
+++ b/game/src/main/java/cz/jzitnik/client/events/MouseMoveEvent.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.events;
+package cz.jzitnik.client.events;
-import cz.jzitnik.utils.events.Event;
+import cz.jzitnik.client.utils.events.Event;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/src/main/java/cz/jzitnik/events/PlayerMoveEvent.java b/game/src/main/java/cz/jzitnik/client/events/PlayerMoveEvent.java
similarity index 73%
rename from src/main/java/cz/jzitnik/events/PlayerMoveEvent.java
rename to game/src/main/java/cz/jzitnik/client/events/PlayerMoveEvent.java
index 41169ce..34ed568 100644
--- a/src/main/java/cz/jzitnik/events/PlayerMoveEvent.java
+++ b/game/src/main/java/cz/jzitnik/client/events/PlayerMoveEvent.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.events;
+package cz.jzitnik.client.events;
import com.googlecode.lanterna.input.KeyStroke;
-import cz.jzitnik.utils.events.Event;
+import cz.jzitnik.client.utils.events.Event;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/game/src/main/java/cz/jzitnik/client/events/RenderStats.java b/game/src/main/java/cz/jzitnik/client/events/RenderStats.java
new file mode 100644
index 0000000..2df5177
--- /dev/null
+++ b/game/src/main/java/cz/jzitnik/client/events/RenderStats.java
@@ -0,0 +1,6 @@
+package cz.jzitnik.client.events;
+
+import cz.jzitnik.client.utils.events.Event;
+
+public class RenderStats implements Event {
+}
diff --git a/src/main/java/cz/jzitnik/events/RerenderPart.java b/game/src/main/java/cz/jzitnik/client/events/RerenderPart.java
similarity index 75%
rename from src/main/java/cz/jzitnik/events/RerenderPart.java
rename to game/src/main/java/cz/jzitnik/client/events/RerenderPart.java
index 77de5b9..bd79e2d 100644
--- a/src/main/java/cz/jzitnik/events/RerenderPart.java
+++ b/game/src/main/java/cz/jzitnik/client/events/RerenderPart.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.events;
+package cz.jzitnik.client.events;
-import cz.jzitnik.utils.events.Event;
+import cz.jzitnik.client.utils.events.Event;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/src/main/java/cz/jzitnik/events/RerenderScreen.java b/game/src/main/java/cz/jzitnik/client/events/RerenderScreen.java
similarity index 93%
rename from src/main/java/cz/jzitnik/events/RerenderScreen.java
rename to game/src/main/java/cz/jzitnik/client/events/RerenderScreen.java
index 5ef8e58..404d48c 100644
--- a/src/main/java/cz/jzitnik/events/RerenderScreen.java
+++ b/game/src/main/java/cz/jzitnik/client/events/RerenderScreen.java
@@ -1,13 +1,11 @@
-package cz.jzitnik.events;
+package cz.jzitnik.client.events;
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.TerminalSize;
-import cz.jzitnik.utils.events.Event;
+import cz.jzitnik.client.utils.events.Event;
import lombok.AllArgsConstructor;
import lombok.Data;
-import java.awt.*;
-
public record RerenderScreen(ScreenPart[] parts) implements Event {
public RerenderScreen(ScreenPart part) {
this(new ScreenPart[]{part});
diff --git a/game/src/main/java/cz/jzitnik/client/events/RoomChangeEvent.java b/game/src/main/java/cz/jzitnik/client/events/RoomChangeEvent.java
new file mode 100644
index 0000000..7573d09
--- /dev/null
+++ b/game/src/main/java/cz/jzitnik/client/events/RoomChangeEvent.java
@@ -0,0 +1,7 @@
+package cz.jzitnik.client.events;
+
+import cz.jzitnik.client.events.handlers.FullRoomDrawHandler;
+import cz.jzitnik.client.utils.events.Event;
+
+public record RoomChangeEvent(FullRoomDrawHandler.DoorPosition door) implements Event {
+}
diff --git a/src/main/java/cz/jzitnik/events/TerminalResizeEvent.java b/game/src/main/java/cz/jzitnik/client/events/TerminalResizeEvent.java
similarity index 73%
rename from src/main/java/cz/jzitnik/events/TerminalResizeEvent.java
rename to game/src/main/java/cz/jzitnik/client/events/TerminalResizeEvent.java
index f5749d1..7f3af38 100644
--- a/src/main/java/cz/jzitnik/events/TerminalResizeEvent.java
+++ b/game/src/main/java/cz/jzitnik/client/events/TerminalResizeEvent.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.events;
+package cz.jzitnik.client.events;
import com.googlecode.lanterna.TerminalSize;
-import cz.jzitnik.utils.events.Event;
+import cz.jzitnik.client.utils.events.Event;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/game/src/main/java/cz/jzitnik/client/events/TerminalTooSmallEvent.java b/game/src/main/java/cz/jzitnik/client/events/TerminalTooSmallEvent.java
new file mode 100644
index 0000000..a2795b5
--- /dev/null
+++ b/game/src/main/java/cz/jzitnik/client/events/TerminalTooSmallEvent.java
@@ -0,0 +1,6 @@
+package cz.jzitnik.client.events;
+
+import cz.jzitnik.client.utils.events.Event;
+
+public class TerminalTooSmallEvent implements Event {
+}
diff --git a/src/main/java/cz/jzitnik/events/handlers/CliHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/CliHandler.java
similarity index 85%
rename from src/main/java/cz/jzitnik/events/handlers/CliHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/CliHandler.java
index 3385631..989838a 100644
--- a/src/main/java/cz/jzitnik/events/handlers/CliHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/CliHandler.java
@@ -1,19 +1,19 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
import com.googlecode.lanterna.TextColor;
import com.googlecode.lanterna.graphics.TextGraphics;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.game.Constants;
-import cz.jzitnik.states.RenderState;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.ui.pixels.AlphaPixel;
-import cz.jzitnik.ui.pixels.ColoredPixel;
-import cz.jzitnik.ui.pixels.Empty;
-import cz.jzitnik.ui.pixels.Pixel;
-import cz.jzitnik.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.game.Constants;
+import cz.jzitnik.client.states.RenderState;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.ui.pixels.AlphaPixel;
+import cz.jzitnik.client.ui.pixels.ColoredPixel;
+import cz.jzitnik.client.ui.pixels.Empty;
+import cz.jzitnik.client.ui.pixels.Pixel;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
diff --git a/src/main/java/cz/jzitnik/events/handlers/DialogEventHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/DialogEventHandler.java
similarity index 90%
rename from src/main/java/cz/jzitnik/events/handlers/DialogEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/DialogEventHandler.java
index 6d30233..acd5bfe 100644
--- a/src/main/java/cz/jzitnik/events/handlers/DialogEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/DialogEventHandler.java
@@ -1,24 +1,24 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.TerminalSize;
import com.googlecode.lanterna.TextColor;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.game.dialog.Dialog;
-import cz.jzitnik.game.dialog.OnEnd;
-import cz.jzitnik.states.DialogState;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.ui.pixels.AlphaPixel;
-import cz.jzitnik.ui.pixels.ColoredPixel;
-import cz.jzitnik.ui.pixels.Empty;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.TextRenderer;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.game.dialog.Dialog;
+import cz.jzitnik.client.game.dialog.OnEnd;
+import cz.jzitnik.client.states.DialogState;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.ui.pixels.AlphaPixel;
+import cz.jzitnik.client.ui.pixels.ColoredPixel;
+import cz.jzitnik.client.ui.pixels.Empty;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.TextRenderer;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.extern.slf4j.Slf4j;
import java.awt.*;
diff --git a/src/main/java/cz/jzitnik/events/handlers/DroppedItemRerenderHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/DroppedItemRerenderHandler.java
similarity index 64%
rename from src/main/java/cz/jzitnik/events/handlers/DroppedItemRerenderHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/DroppedItemRerenderHandler.java
index ebd8bcd..63613d4 100644
--- a/src/main/java/cz/jzitnik/events/handlers/DroppedItemRerenderHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/DroppedItemRerenderHandler.java
@@ -1,12 +1,12 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.events.DroppedItemRerender;
-import cz.jzitnik.events.RerenderPart;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.events.DroppedItemRerender;
+import cz.jzitnik.client.events.RerenderPart;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/events/handlers/ExitEventHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/ExitEventHandler.java
similarity index 55%
rename from src/main/java/cz/jzitnik/events/handlers/ExitEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/ExitEventHandler.java
index 3759879..1c9cec5 100644
--- a/src/main/java/cz/jzitnik/events/handlers/ExitEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/ExitEventHandler.java
@@ -1,14 +1,14 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
-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.states.RunningState;
-import cz.jzitnik.utils.ScheduledTaskManager;
-import cz.jzitnik.utils.ThreadManager;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.ExitEvent;
+import cz.jzitnik.client.states.RunningState;
+import cz.jzitnik.client.utils.ScheduledTaskManager;
+import cz.jzitnik.client.utils.ThreadManager;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.roomtasks.RoomTaskScheduler;
@EventHandler(ExitEvent.class)
public class ExitEventHandler extends AbstractEventHandler {
diff --git a/src/main/java/cz/jzitnik/events/handlers/FullRedrawEventHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/FullRedrawEventHandler.java
similarity index 57%
rename from src/main/java/cz/jzitnik/events/handlers/FullRedrawEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/FullRedrawEventHandler.java
index f27fe7f..dfa6e95 100644
--- a/src/main/java/cz/jzitnik/events/handlers/FullRedrawEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/FullRedrawEventHandler.java
@@ -1,14 +1,14 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.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.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.FullRedrawEvent;
+import cz.jzitnik.client.events.FullRoomDraw;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
import java.io.IOException;
diff --git a/src/main/java/cz/jzitnik/events/handlers/FullRoomDrawHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/FullRoomDrawHandler.java
similarity index 76%
rename from src/main/java/cz/jzitnik/events/handlers/FullRoomDrawHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/FullRoomDrawHandler.java
index d766cf0..e4c22cc 100644
--- a/src/main/java/cz/jzitnik/events/handlers/FullRoomDrawHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/FullRoomDrawHandler.java
@@ -1,28 +1,28 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.TerminalSize;
import com.googlecode.lanterna.screen.TerminalScreen;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.config.Debugging;
-import cz.jzitnik.events.FullRoomDraw;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.events.TerminalTooSmallEvent;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.Player;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.states.RenderState;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.utils.GlobalIOHandlerRepository;
-import cz.jzitnik.utils.RerenderUtils;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
-import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.config.Debugging;
+import cz.jzitnik.client.events.FullRoomDraw;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.events.TerminalTooSmallEvent;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.Player;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.states.RenderState;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.utils.GlobalIOHandlerRepository;
+import cz.jzitnik.client.utils.RerenderUtils;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
+import cz.jzitnik.client.utils.roomtasks.RoomTaskScheduler;
import lombok.extern.slf4j.Slf4j;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/events/handlers/InventoryRerenderHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/InventoryRerenderHandler.java
similarity index 64%
rename from src/main/java/cz/jzitnik/events/handlers/InventoryRerenderHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/InventoryRerenderHandler.java
index 57efc34..2511276 100644
--- a/src/main/java/cz/jzitnik/events/handlers/InventoryRerenderHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/InventoryRerenderHandler.java
@@ -1,13 +1,13 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
import com.googlecode.lanterna.TerminalPosition;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.events.InventoryRerender;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.ui.Inventory;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.events.InventoryRerender;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.ui.Inventory;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
@EventHandler(InventoryRerender.class)
public class InventoryRerenderHandler extends AbstractEventHandler {
diff --git a/src/main/java/cz/jzitnik/events/handlers/KeyboardPressEventHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/KeyboardPressEventHandler.java
similarity index 55%
rename from src/main/java/cz/jzitnik/events/handlers/KeyboardPressEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/KeyboardPressEventHandler.java
index 0b4379d..980f0f3 100644
--- a/src/main/java/cz/jzitnik/events/handlers/KeyboardPressEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/KeyboardPressEventHandler.java
@@ -1,12 +1,12 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.*;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.utils.GlobalIOHandlerRepository;
-import cz.jzitnik.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.utils.GlobalIOHandlerRepository;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
@EventHandler(KeyboardPressEvent.class)
public class KeyboardPressEventHandler extends AbstractEventHandler {
diff --git a/src/main/java/cz/jzitnik/events/handlers/MouseActionEventHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/MouseActionEventHandler.java
similarity index 73%
rename from src/main/java/cz/jzitnik/events/handlers/MouseActionEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/MouseActionEventHandler.java
index 1a5fd2c..1ee0b41 100644
--- a/src/main/java/cz/jzitnik/events/handlers/MouseActionEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/MouseActionEventHandler.java
@@ -1,19 +1,19 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.config.PlayerConfig;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.events.MouseMoveEvent;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.utils.Selectable;
-import cz.jzitnik.states.RenderState;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.UIRoomClickHandlerRepository;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.config.PlayerConfig;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.events.MouseMoveEvent;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.utils.Selectable;
+import cz.jzitnik.client.states.RenderState;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.UIRoomClickHandlerRepository;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
import java.util.Optional;
import java.util.stream.Stream;
diff --git a/src/main/java/cz/jzitnik/events/handlers/MouseMoveEventHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/MouseMoveEventHandler.java
similarity index 86%
rename from src/main/java/cz/jzitnik/events/handlers/MouseMoveEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/MouseMoveEventHandler.java
index f0b8976..91cb494 100644
--- a/src/main/java/cz/jzitnik/events/handlers/MouseMoveEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/MouseMoveEventHandler.java
@@ -1,27 +1,27 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.input.MouseActionType;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.config.Debugging;
-import cz.jzitnik.config.PlayerConfig;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.events.MouseMoveEvent;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.Player;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.game.utils.Selectable;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.utils.RerenderUtils;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.config.Debugging;
+import cz.jzitnik.client.config.PlayerConfig;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.events.MouseMoveEvent;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.Player;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.game.utils.Selectable;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.utils.RerenderUtils;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.extern.slf4j.Slf4j;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/events/handlers/PlayerMoveEventHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/PlayerMoveEventHandler.java
similarity index 84%
rename from src/main/java/cz/jzitnik/events/handlers/PlayerMoveEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/PlayerMoveEventHandler.java
index bba05f7..924bff6 100644
--- a/src/main/java/cz/jzitnik/events/handlers/PlayerMoveEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/PlayerMoveEventHandler.java
@@ -1,31 +1,31 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.input.KeyStroke;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.config.Debugging;
-import cz.jzitnik.config.PlayerConfig;
-import cz.jzitnik.events.MouseMoveEvent;
-import cz.jzitnik.events.PlayerMoveEvent;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.events.RoomChangeEvent;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.Player;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.states.RenderState;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.PlayerMovementState;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.ui.Stats;
-import cz.jzitnik.utils.RerenderUtils;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.Event;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.config.Debugging;
+import cz.jzitnik.client.config.PlayerConfig;
+import cz.jzitnik.client.events.MouseMoveEvent;
+import cz.jzitnik.client.events.PlayerMoveEvent;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.events.RoomChangeEvent;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.Player;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.states.RenderState;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.PlayerMovementState;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.ui.Stats;
+import cz.jzitnik.client.utils.RerenderUtils;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.Event;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.extern.slf4j.Slf4j;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/events/handlers/RenderStatsHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/RenderStatsHandler.java
similarity index 60%
rename from src/main/java/cz/jzitnik/events/handlers/RenderStatsHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/RenderStatsHandler.java
index b13e95f..be3de1f 100644
--- a/src/main/java/cz/jzitnik/events/handlers/RenderStatsHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/RenderStatsHandler.java
@@ -1,13 +1,13 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
import com.googlecode.lanterna.TerminalPosition;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.events.RenderStats;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.ui.Stats;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.events.RenderStats;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.ui.Stats;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
@EventHandler(RenderStats.class)
public class RenderStatsHandler extends AbstractEventHandler {
diff --git a/src/main/java/cz/jzitnik/events/handlers/RerenderPartHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/RerenderPartHandler.java
similarity index 68%
rename from src/main/java/cz/jzitnik/events/handlers/RerenderPartHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/RerenderPartHandler.java
index b2bc6ee..891a3de 100644
--- a/src/main/java/cz/jzitnik/events/handlers/RerenderPartHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/RerenderPartHandler.java
@@ -1,22 +1,22 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
import com.googlecode.lanterna.TerminalPosition;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.config.Debugging;
-import cz.jzitnik.events.RerenderPart;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.utils.RerenderUtils;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.config.Debugging;
+import cz.jzitnik.client.events.RerenderPart;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.utils.RerenderUtils;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/events/handlers/RoomChangeEventHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/RoomChangeEventHandler.java
similarity index 73%
rename from src/main/java/cz/jzitnik/events/handlers/RoomChangeEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/RoomChangeEventHandler.java
index dfdd339..59c5a1b 100644
--- a/src/main/java/cz/jzitnik/events/handlers/RoomChangeEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/RoomChangeEventHandler.java
@@ -1,16 +1,16 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.FullRoomDraw;
-import cz.jzitnik.events.RoomChangeEvent;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
-import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.FullRoomDraw;
+import cz.jzitnik.client.events.RoomChangeEvent;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
+import cz.jzitnik.client.utils.roomtasks.RoomTaskScheduler;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.Executors;
diff --git a/src/main/java/cz/jzitnik/events/handlers/TerminalResizeEventHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/TerminalResizeEventHandler.java
similarity index 69%
rename from src/main/java/cz/jzitnik/events/handlers/TerminalResizeEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/TerminalResizeEventHandler.java
index 208e4c9..c9ca2e2 100644
--- a/src/main/java/cz/jzitnik/events/handlers/TerminalResizeEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/TerminalResizeEventHandler.java
@@ -1,18 +1,18 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
import com.googlecode.lanterna.TerminalSize;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.FullRoomDraw;
-import cz.jzitnik.events.TerminalResizeEvent;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.ui.pixels.AlphaPixel;
-import cz.jzitnik.ui.pixels.Empty;
-import cz.jzitnik.ui.pixels.Pixel;
-import cz.jzitnik.utils.events.AbstractEventHandler;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.FullRoomDraw;
+import cz.jzitnik.client.events.TerminalResizeEvent;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.ui.pixels.AlphaPixel;
+import cz.jzitnik.client.ui.pixels.Empty;
+import cz.jzitnik.client.ui.pixels.Pixel;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.extern.slf4j.Slf4j;
@Slf4j
diff --git a/src/main/java/cz/jzitnik/events/handlers/TerminalTooSmallEventHandler.java b/game/src/main/java/cz/jzitnik/client/events/handlers/TerminalTooSmallEventHandler.java
similarity index 85%
rename from src/main/java/cz/jzitnik/events/handlers/TerminalTooSmallEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/events/handlers/TerminalTooSmallEventHandler.java
index a4b4f6b..2a2ac6a 100644
--- a/src/main/java/cz/jzitnik/events/handlers/TerminalTooSmallEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/events/handlers/TerminalTooSmallEventHandler.java
@@ -1,15 +1,15 @@
-package cz.jzitnik.events.handlers;
+package cz.jzitnik.client.events.handlers;
import com.googlecode.lanterna.SGR;
import com.googlecode.lanterna.TerminalSize;
import com.googlecode.lanterna.TextColor;
import com.googlecode.lanterna.screen.Screen;
import com.googlecode.lanterna.screen.TerminalScreen;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.TerminalTooSmallEvent;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.utils.events.AbstractEventHandler;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.TerminalTooSmallEvent;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.utils.events.AbstractEventHandler;
import java.io.IOException;
import java.util.EnumSet;
diff --git a/src/main/java/cz/jzitnik/game/Constants.java b/game/src/main/java/cz/jzitnik/client/game/Constants.java
similarity index 82%
rename from src/main/java/cz/jzitnik/game/Constants.java
rename to game/src/main/java/cz/jzitnik/client/game/Constants.java
index 55e0f8c..607479c 100644
--- a/src/main/java/cz/jzitnik/game/Constants.java
+++ b/game/src/main/java/cz/jzitnik/client/game/Constants.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.game;
+package cz.jzitnik.client.game;
import com.googlecode.lanterna.TextColor;
diff --git a/src/main/java/cz/jzitnik/game/GameRoom.java b/game/src/main/java/cz/jzitnik/client/game/GameRoom.java
similarity index 89%
rename from src/main/java/cz/jzitnik/game/GameRoom.java
rename to game/src/main/java/cz/jzitnik/client/game/GameRoom.java
index 40642b8..fb4e068 100644
--- a/src/main/java/cz/jzitnik/game/GameRoom.java
+++ b/game/src/main/java/cz/jzitnik/client/game/GameRoom.java
@@ -1,11 +1,11 @@
-package cz.jzitnik.game;
+package cz.jzitnik.client.game;
import com.fasterxml.jackson.annotation.*;
-import cz.jzitnik.game.mobs.Mob;
-import cz.jzitnik.game.objects.DroppedItem;
-import cz.jzitnik.game.objects.GameObject;
-import cz.jzitnik.ui.pixels.Empty;
-import cz.jzitnik.ui.pixels.Pixel;
+import cz.jzitnik.client.game.mobs.Mob;
+import cz.jzitnik.client.game.objects.DroppedItem;
+import cz.jzitnik.client.game.objects.GameObject;
+import cz.jzitnik.client.ui.pixels.Empty;
+import cz.jzitnik.client.ui.pixels.Pixel;
import lombok.Getter;
import java.util.ArrayList;
diff --git a/src/main/java/cz/jzitnik/game/GameRoomPart.java b/game/src/main/java/cz/jzitnik/client/game/GameRoomPart.java
similarity index 91%
rename from src/main/java/cz/jzitnik/game/GameRoomPart.java
rename to game/src/main/java/cz/jzitnik/client/game/GameRoomPart.java
index aba0ac8..dcfaa09 100644
--- a/src/main/java/cz/jzitnik/game/GameRoomPart.java
+++ b/game/src/main/java/cz/jzitnik/client/game/GameRoomPart.java
@@ -1,9 +1,8 @@
-package cz.jzitnik.game;
+package cz.jzitnik.client.game;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.game.utils.RoomCords;
-import lombok.AllArgsConstructor;
+import cz.jzitnik.client.game.utils.RoomCords;
import lombok.Data;
import lombok.ToString;
diff --git a/src/main/java/cz/jzitnik/game/GameState.java b/game/src/main/java/cz/jzitnik/client/game/GameState.java
similarity index 73%
rename from src/main/java/cz/jzitnik/game/GameState.java
rename to game/src/main/java/cz/jzitnik/client/game/GameState.java
index efe580e..7914c24 100644
--- a/src/main/java/cz/jzitnik/game/GameState.java
+++ b/game/src/main/java/cz/jzitnik/client/game/GameState.java
@@ -1,9 +1,9 @@
-package cz.jzitnik.game;
+package cz.jzitnik.client.game;
-import cz.jzitnik.annotations.State;
-import cz.jzitnik.game.objects.Interactable;
-import cz.jzitnik.screens.Screen;
-import cz.jzitnik.utils.DependencyManager;
+import cz.jzitnik.client.annotations.State;
+import cz.jzitnik.client.game.objects.Interactable;
+import cz.jzitnik.client.screens.Screen;
+import cz.jzitnik.client.utils.DependencyManager;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
diff --git a/src/main/java/cz/jzitnik/game/Player.java b/game/src/main/java/cz/jzitnik/client/game/Player.java
similarity index 90%
rename from src/main/java/cz/jzitnik/game/Player.java
rename to game/src/main/java/cz/jzitnik/client/game/Player.java
index 5ae9172..22af029 100644
--- a/src/main/java/cz/jzitnik/game/Player.java
+++ b/game/src/main/java/cz/jzitnik/client/game/Player.java
@@ -1,16 +1,16 @@
-package cz.jzitnik.game;
+package cz.jzitnik.client.game;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.events.RerenderPart;
-import cz.jzitnik.game.items.GameItem;
-import cz.jzitnik.game.items.types.interfaces.WeaponInterface;
-import cz.jzitnik.game.mobs.HittableMob;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.ui.Inventory;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.events.Event;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.events.RerenderPart;
+import cz.jzitnik.client.game.items.GameItem;
+import cz.jzitnik.client.game.items.types.interfaces.WeaponInterface;
+import cz.jzitnik.client.game.mobs.HittableMob;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.ui.Inventory;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.events.Event;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/cz/jzitnik/game/ResourceManager.java b/game/src/main/java/cz/jzitnik/client/game/ResourceManager.java
similarity index 93%
rename from src/main/java/cz/jzitnik/game/ResourceManager.java
rename to game/src/main/java/cz/jzitnik/client/game/ResourceManager.java
index 25e2b87..abf3a37 100644
--- a/src/main/java/cz/jzitnik/game/ResourceManager.java
+++ b/game/src/main/java/cz/jzitnik/client/game/ResourceManager.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.game;
+package cz.jzitnik.client.game;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/src/main/java/cz/jzitnik/game/dialog/Dialog.java b/game/src/main/java/cz/jzitnik/client/game/dialog/Dialog.java
similarity index 79%
rename from src/main/java/cz/jzitnik/game/dialog/Dialog.java
rename to game/src/main/java/cz/jzitnik/client/game/dialog/Dialog.java
index 8956269..b2da3b0 100644
--- a/src/main/java/cz/jzitnik/game/dialog/Dialog.java
+++ b/game/src/main/java/cz/jzitnik/client/game/dialog/Dialog.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.game.dialog;
+package cz.jzitnik.client.game.dialog;
-import cz.jzitnik.utils.events.Event;
+import cz.jzitnik.client.utils.events.Event;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
diff --git a/src/main/java/cz/jzitnik/game/dialog/OnEnd.java b/game/src/main/java/cz/jzitnik/client/game/dialog/OnEnd.java
similarity index 88%
rename from src/main/java/cz/jzitnik/game/dialog/OnEnd.java
rename to game/src/main/java/cz/jzitnik/client/game/dialog/OnEnd.java
index 0bfd4e6..efa2a77 100644
--- a/src/main/java/cz/jzitnik/game/dialog/OnEnd.java
+++ b/game/src/main/java/cz/jzitnik/client/game/dialog/OnEnd.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.game.dialog;
+package cz.jzitnik.client.game.dialog;
public interface OnEnd {
record RunCode(Runnable runnable, OnEnd onEnd) implements OnEnd {}
diff --git a/src/main/java/cz/jzitnik/game/exceptions/InvalidCoordinatesException.java b/game/src/main/java/cz/jzitnik/client/game/exceptions/InvalidCoordinatesException.java
similarity index 83%
rename from src/main/java/cz/jzitnik/game/exceptions/InvalidCoordinatesException.java
rename to game/src/main/java/cz/jzitnik/client/game/exceptions/InvalidCoordinatesException.java
index 3383b2f..5b53a54 100644
--- a/src/main/java/cz/jzitnik/game/exceptions/InvalidCoordinatesException.java
+++ b/game/src/main/java/cz/jzitnik/client/game/exceptions/InvalidCoordinatesException.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.game.exceptions;
+package cz.jzitnik.client.game.exceptions;
public class InvalidCoordinatesException extends RuntimeException {
public InvalidCoordinatesException(String message) {
diff --git a/src/main/java/cz/jzitnik/game/items/GameItem.java b/game/src/main/java/cz/jzitnik/client/game/items/GameItem.java
similarity index 78%
rename from src/main/java/cz/jzitnik/game/items/GameItem.java
rename to game/src/main/java/cz/jzitnik/client/game/items/GameItem.java
index 1730d05..38f748f 100644
--- a/src/main/java/cz/jzitnik/game/items/GameItem.java
+++ b/game/src/main/java/cz/jzitnik/client/game/items/GameItem.java
@@ -1,9 +1,9 @@
-package cz.jzitnik.game.items;
+package cz.jzitnik.client.game.items;
import com.fasterxml.jackson.annotation.*;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.game.items.types.ItemType;
-import cz.jzitnik.game.utils.Renderable;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.game.items.types.ItemType;
+import cz.jzitnik.client.game.utils.Renderable;
import lombok.Getter;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/game/items/types/InteractableItem.java b/game/src/main/java/cz/jzitnik/client/game/items/types/InteractableItem.java
similarity index 59%
rename from src/main/java/cz/jzitnik/game/items/types/InteractableItem.java
rename to game/src/main/java/cz/jzitnik/client/game/items/types/InteractableItem.java
index a7e4402..f3c28cd 100644
--- a/src/main/java/cz/jzitnik/game/items/types/InteractableItem.java
+++ b/game/src/main/java/cz/jzitnik/client/game/items/types/InteractableItem.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.game.items.types;
+package cz.jzitnik.client.game.items.types;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.StateManager;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.StateManager;
public interface InteractableItem {
InteractableItemResponse interact(DependencyManager dependencyManager, StateManager stateManager);
diff --git a/src/main/java/cz/jzitnik/game/items/types/ItemType.java b/game/src/main/java/cz/jzitnik/client/game/items/types/ItemType.java
similarity index 72%
rename from src/main/java/cz/jzitnik/game/items/types/ItemType.java
rename to game/src/main/java/cz/jzitnik/client/game/items/types/ItemType.java
index d84751d..0a5610e 100644
--- a/src/main/java/cz/jzitnik/game/items/types/ItemType.java
+++ b/game/src/main/java/cz/jzitnik/client/game/items/types/ItemType.java
@@ -1,9 +1,9 @@
-package cz.jzitnik.game.items.types;
+package cz.jzitnik.client.game.items.types;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
-import cz.jzitnik.game.items.types.food.Food;
-import cz.jzitnik.game.items.types.weapons.Sword;
+import cz.jzitnik.client.game.items.types.food.Food;
+import cz.jzitnik.client.game.items.types.weapons.Sword;
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
diff --git a/src/main/java/cz/jzitnik/game/items/types/food/Food.java b/game/src/main/java/cz/jzitnik/client/game/items/types/food/Food.java
similarity index 69%
rename from src/main/java/cz/jzitnik/game/items/types/food/Food.java
rename to game/src/main/java/cz/jzitnik/client/game/items/types/food/Food.java
index 18a1e95..45902d2 100644
--- a/src/main/java/cz/jzitnik/game/items/types/food/Food.java
+++ b/game/src/main/java/cz/jzitnik/client/game/items/types/food/Food.java
@@ -1,14 +1,14 @@
-package cz.jzitnik.game.items.types.food;
+package cz.jzitnik.client.game.items.types.food;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.events.RenderStats;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.items.types.InteractableItem;
-import cz.jzitnik.game.items.types.ItemType;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.StateManager;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.events.RenderStats;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.items.types.InteractableItem;
+import cz.jzitnik.client.game.items.types.ItemType;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.StateManager;
+import cz.jzitnik.client.utils.events.EventManager;
public class Food implements InteractableItem, ItemType {
private final int addHealth;
diff --git a/src/main/java/cz/jzitnik/game/items/types/interfaces/WeaponInterface.java b/game/src/main/java/cz/jzitnik/client/game/items/types/interfaces/WeaponInterface.java
similarity index 53%
rename from src/main/java/cz/jzitnik/game/items/types/interfaces/WeaponInterface.java
rename to game/src/main/java/cz/jzitnik/client/game/items/types/interfaces/WeaponInterface.java
index 3e7d70c..e55352b 100644
--- a/src/main/java/cz/jzitnik/game/items/types/interfaces/WeaponInterface.java
+++ b/game/src/main/java/cz/jzitnik/client/game/items/types/interfaces/WeaponInterface.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.game.items.types.interfaces;
+package cz.jzitnik.client.game.items.types.interfaces;
public interface WeaponInterface {
int getDamageDeal();
diff --git a/src/main/java/cz/jzitnik/game/items/types/weapons/Sword.java b/game/src/main/java/cz/jzitnik/client/game/items/types/weapons/Sword.java
similarity index 84%
rename from src/main/java/cz/jzitnik/game/items/types/weapons/Sword.java
rename to game/src/main/java/cz/jzitnik/client/game/items/types/weapons/Sword.java
index bf7026a..0b66d23 100644
--- a/src/main/java/cz/jzitnik/game/items/types/weapons/Sword.java
+++ b/game/src/main/java/cz/jzitnik/client/game/items/types/weapons/Sword.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.game.items.types.weapons;
+package cz.jzitnik.client.game.items.types.weapons;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
diff --git a/src/main/java/cz/jzitnik/game/items/types/weapons/Weapon.java b/game/src/main/java/cz/jzitnik/client/game/items/types/weapons/Weapon.java
similarity index 66%
rename from src/main/java/cz/jzitnik/game/items/types/weapons/Weapon.java
rename to game/src/main/java/cz/jzitnik/client/game/items/types/weapons/Weapon.java
index 594e163..9ff2e59 100644
--- a/src/main/java/cz/jzitnik/game/items/types/weapons/Weapon.java
+++ b/game/src/main/java/cz/jzitnik/client/game/items/types/weapons/Weapon.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.game.items.types.weapons;
+package cz.jzitnik.client.game.items.types.weapons;
-import cz.jzitnik.game.items.types.ItemType;
-import cz.jzitnik.game.items.types.interfaces.WeaponInterface;
+import cz.jzitnik.client.game.items.types.ItemType;
+import cz.jzitnik.client.game.items.types.interfaces.WeaponInterface;
import lombok.AllArgsConstructor;
@AllArgsConstructor
diff --git a/src/main/java/cz/jzitnik/game/mobs/DialogMob.java b/game/src/main/java/cz/jzitnik/client/game/mobs/DialogMob.java
similarity index 60%
rename from src/main/java/cz/jzitnik/game/mobs/DialogMob.java
rename to game/src/main/java/cz/jzitnik/client/game/mobs/DialogMob.java
index 63c03ff..d10ae74 100644
--- a/src/main/java/cz/jzitnik/game/mobs/DialogMob.java
+++ b/game/src/main/java/cz/jzitnik/client/game/mobs/DialogMob.java
@@ -1,13 +1,13 @@
-package cz.jzitnik.game.mobs;
+package cz.jzitnik.client.game.mobs;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.game.GameRoomPart;
-import cz.jzitnik.game.dialog.Dialog;
-import cz.jzitnik.game.mobs.tasks.MobRoomTask;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.states.DialogState;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.game.GameRoomPart;
+import cz.jzitnik.client.game.dialog.Dialog;
+import cz.jzitnik.client.game.mobs.tasks.MobRoomTask;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.states.DialogState;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.extern.slf4j.Slf4j;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/game/mobs/HittableMob.java b/game/src/main/java/cz/jzitnik/client/game/mobs/HittableMob.java
similarity index 85%
rename from src/main/java/cz/jzitnik/game/mobs/HittableMob.java
rename to game/src/main/java/cz/jzitnik/client/game/mobs/HittableMob.java
index 85b2799..0ede243 100644
--- a/src/main/java/cz/jzitnik/game/mobs/HittableMob.java
+++ b/game/src/main/java/cz/jzitnik/client/game/mobs/HittableMob.java
@@ -1,15 +1,15 @@
-package cz.jzitnik.game.mobs;
+package cz.jzitnik.client.game.mobs;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.RerenderPart;
-import cz.jzitnik.game.GameRoomPart;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.mobs.tasks.MobRoomTask;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.utils.events.EventManager;
-import cz.jzitnik.utils.roomtasks.RoomTask;
-import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.RerenderPart;
+import cz.jzitnik.client.game.GameRoomPart;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.mobs.tasks.MobRoomTask;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.utils.events.EventManager;
+import cz.jzitnik.client.utils.roomtasks.RoomTask;
+import cz.jzitnik.client.utils.roomtasks.RoomTaskScheduler;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/cz/jzitnik/game/mobs/HittableMobDrops.java b/game/src/main/java/cz/jzitnik/client/game/mobs/HittableMobDrops.java
similarity index 82%
rename from src/main/java/cz/jzitnik/game/mobs/HittableMobDrops.java
rename to game/src/main/java/cz/jzitnik/client/game/mobs/HittableMobDrops.java
index 48679dd..2c9a355 100644
--- a/src/main/java/cz/jzitnik/game/mobs/HittableMobDrops.java
+++ b/game/src/main/java/cz/jzitnik/client/game/mobs/HittableMobDrops.java
@@ -1,19 +1,19 @@
-package cz.jzitnik.game.mobs;
+package cz.jzitnik.client.game.mobs;
import com.fasterxml.jackson.annotation.JacksonInject;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.DroppedItemRerender;
-import cz.jzitnik.events.InventoryRerender;
-import cz.jzitnik.game.*;
-import cz.jzitnik.game.items.GameItem;
-import cz.jzitnik.game.mobs.tasks.MobRoomTask;
-import cz.jzitnik.game.objects.DroppedItem;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.utils.events.Event;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.DroppedItemRerender;
+import cz.jzitnik.client.events.InventoryRerender;
+import cz.jzitnik.client.game.*;
+import cz.jzitnik.client.game.items.GameItem;
+import cz.jzitnik.client.game.mobs.tasks.MobRoomTask;
+import cz.jzitnik.client.game.objects.DroppedItem;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.utils.events.Event;
+import cz.jzitnik.client.utils.events.EventManager;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
diff --git a/src/main/java/cz/jzitnik/game/mobs/HittableMobNoDrops.java b/game/src/main/java/cz/jzitnik/client/game/mobs/HittableMobNoDrops.java
similarity index 76%
rename from src/main/java/cz/jzitnik/game/mobs/HittableMobNoDrops.java
rename to game/src/main/java/cz/jzitnik/client/game/mobs/HittableMobNoDrops.java
index b944bce..834f736 100644
--- a/src/main/java/cz/jzitnik/game/mobs/HittableMobNoDrops.java
+++ b/game/src/main/java/cz/jzitnik/client/game/mobs/HittableMobNoDrops.java
@@ -1,12 +1,12 @@
-package cz.jzitnik.game.mobs;
+package cz.jzitnik.client.game.mobs;
import com.fasterxml.jackson.annotation.JacksonInject;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.game.GameRoomPart;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.game.mobs.tasks.MobRoomTask;
-import cz.jzitnik.game.utils.RoomCords;
+import cz.jzitnik.client.game.GameRoomPart;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.game.mobs.tasks.MobRoomTask;
+import cz.jzitnik.client.game.utils.RoomCords;
public class HittableMobNoDrops extends HittableMob {
@JsonCreator
diff --git a/src/main/java/cz/jzitnik/game/mobs/Mob.java b/game/src/main/java/cz/jzitnik/client/game/mobs/Mob.java
similarity index 79%
rename from src/main/java/cz/jzitnik/game/mobs/Mob.java
rename to game/src/main/java/cz/jzitnik/client/game/mobs/Mob.java
index 2751838..bcf7dc4 100644
--- a/src/main/java/cz/jzitnik/game/mobs/Mob.java
+++ b/game/src/main/java/cz/jzitnik/client/game/mobs/Mob.java
@@ -1,15 +1,15 @@
-package cz.jzitnik.game.mobs;
+package cz.jzitnik.client.game.mobs;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.game.GameRoomPart;
-import cz.jzitnik.game.mobs.tasks.MobRoomTask;
-import cz.jzitnik.game.utils.Renderable;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.game.utils.Selectable;
-import cz.jzitnik.utils.roomtasks.RoomTaskScheduler;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.game.GameRoomPart;
+import cz.jzitnik.client.game.mobs.tasks.MobRoomTask;
+import cz.jzitnik.client.game.utils.Renderable;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.game.utils.Selectable;
+import cz.jzitnik.client.utils.roomtasks.RoomTaskScheduler;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/cz/jzitnik/game/mobs/tasks/BlindMobFollowingPlayerTask.java b/game/src/main/java/cz/jzitnik/client/game/mobs/tasks/BlindMobFollowingPlayerTask.java
similarity index 73%
rename from src/main/java/cz/jzitnik/game/mobs/tasks/BlindMobFollowingPlayerTask.java
rename to game/src/main/java/cz/jzitnik/client/game/mobs/tasks/BlindMobFollowingPlayerTask.java
index d1649c9..30b3bf6 100644
--- a/src/main/java/cz/jzitnik/game/mobs/tasks/BlindMobFollowingPlayerTask.java
+++ b/game/src/main/java/cz/jzitnik/client/game/mobs/tasks/BlindMobFollowingPlayerTask.java
@@ -1,20 +1,20 @@
-package cz.jzitnik.game.mobs.tasks;
+package cz.jzitnik.client.game.mobs.tasks;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.config.Debugging;
-import cz.jzitnik.config.MicrophoneConfig;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.game.mobs.Mob;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.states.MicrophoneState;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.config.Debugging;
+import cz.jzitnik.client.config.MicrophoneConfig;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.game.mobs.Mob;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.states.MicrophoneState;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
diff --git a/src/main/java/cz/jzitnik/game/mobs/tasks/EnemyPlayerAttackingTask.java b/game/src/main/java/cz/jzitnik/client/game/mobs/tasks/EnemyPlayerAttackingTask.java
similarity index 79%
rename from src/main/java/cz/jzitnik/game/mobs/tasks/EnemyPlayerAttackingTask.java
rename to game/src/main/java/cz/jzitnik/client/game/mobs/tasks/EnemyPlayerAttackingTask.java
index 7ad2ee0..ec5807e 100644
--- a/src/main/java/cz/jzitnik/game/mobs/tasks/EnemyPlayerAttackingTask.java
+++ b/game/src/main/java/cz/jzitnik/client/game/mobs/tasks/EnemyPlayerAttackingTask.java
@@ -1,15 +1,15 @@
-package cz.jzitnik.game.mobs.tasks;
+package cz.jzitnik.client.game.mobs.tasks;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.RenderStats;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.mobs.Mob;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.RenderStats;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.mobs.Mob;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/cz/jzitnik/game/mobs/tasks/MobFollowingPlayerTask.java b/game/src/main/java/cz/jzitnik/client/game/mobs/tasks/MobFollowingPlayerTask.java
similarity index 81%
rename from src/main/java/cz/jzitnik/game/mobs/tasks/MobFollowingPlayerTask.java
rename to game/src/main/java/cz/jzitnik/client/game/mobs/tasks/MobFollowingPlayerTask.java
index 3263213..4485853 100644
--- a/src/main/java/cz/jzitnik/game/mobs/tasks/MobFollowingPlayerTask.java
+++ b/game/src/main/java/cz/jzitnik/client/game/mobs/tasks/MobFollowingPlayerTask.java
@@ -1,26 +1,26 @@
-package cz.jzitnik.game.mobs.tasks;
+package cz.jzitnik.client.game.mobs.tasks;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.googlecode.lanterna.TerminalPosition;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.config.Debugging;
-import cz.jzitnik.events.MouseMoveEvent;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.game.GameRoomPart;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.Player;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.game.mobs.Mob;
-import cz.jzitnik.game.mobs.tasks.utils.AStarAlg;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.utils.RerenderUtils;
-import cz.jzitnik.utils.events.Event;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.config.Debugging;
+import cz.jzitnik.client.events.MouseMoveEvent;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.game.GameRoomPart;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.Player;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.game.mobs.Mob;
+import cz.jzitnik.client.game.mobs.tasks.utils.AStarAlg;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.utils.RerenderUtils;
+import cz.jzitnik.client.utils.events.Event;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/cz/jzitnik/game/mobs/tasks/MobRoomTask.java b/game/src/main/java/cz/jzitnik/client/game/mobs/tasks/MobRoomTask.java
similarity index 84%
rename from src/main/java/cz/jzitnik/game/mobs/tasks/MobRoomTask.java
rename to game/src/main/java/cz/jzitnik/client/game/mobs/tasks/MobRoomTask.java
index 5305133..99373ab 100644
--- a/src/main/java/cz/jzitnik/game/mobs/tasks/MobRoomTask.java
+++ b/game/src/main/java/cz/jzitnik/client/game/mobs/tasks/MobRoomTask.java
@@ -1,9 +1,9 @@
-package cz.jzitnik.game.mobs.tasks;
+package cz.jzitnik.client.game.mobs.tasks;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
-import cz.jzitnik.game.mobs.Mob;
-import cz.jzitnik.utils.roomtasks.RoomTask;
+import cz.jzitnik.client.game.mobs.Mob;
+import cz.jzitnik.client.utils.roomtasks.RoomTask;
import java.util.concurrent.TimeUnit;
diff --git a/src/main/java/cz/jzitnik/game/mobs/tasks/utils/AStarAlg.java b/game/src/main/java/cz/jzitnik/client/game/mobs/tasks/utils/AStarAlg.java
similarity index 96%
rename from src/main/java/cz/jzitnik/game/mobs/tasks/utils/AStarAlg.java
rename to game/src/main/java/cz/jzitnik/client/game/mobs/tasks/utils/AStarAlg.java
index d1181e4..81862c2 100644
--- a/src/main/java/cz/jzitnik/game/mobs/tasks/utils/AStarAlg.java
+++ b/game/src/main/java/cz/jzitnik/client/game/mobs/tasks/utils/AStarAlg.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.game.mobs.tasks.utils;
+package cz.jzitnik.client.game.mobs.tasks.utils;
-import cz.jzitnik.game.GameRoomPart;
-import cz.jzitnik.game.utils.RoomCords;
+import cz.jzitnik.client.game.GameRoomPart;
+import cz.jzitnik.client.game.utils.RoomCords;
import java.util.*;
diff --git a/src/main/java/cz/jzitnik/game/objects/Chest.java b/game/src/main/java/cz/jzitnik/client/game/objects/Chest.java
similarity index 87%
rename from src/main/java/cz/jzitnik/game/objects/Chest.java
rename to game/src/main/java/cz/jzitnik/client/game/objects/Chest.java
index 5110e09..45fd5e7 100644
--- a/src/main/java/cz/jzitnik/game/objects/Chest.java
+++ b/game/src/main/java/cz/jzitnik/client/game/objects/Chest.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.game.objects;
+package cz.jzitnik.client.game.objects;
import com.fasterxml.jackson.annotation.JacksonInject;
import com.fasterxml.jackson.annotation.JsonCreator;
@@ -6,32 +6,30 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.Lists;
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.TextColor;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.config.Debugging;
-import cz.jzitnik.events.InventoryRerender;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.events.RerenderPart;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.Player;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.game.items.GameItem;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.ui.Inventory;
-import cz.jzitnik.ui.utils.Grid;
-import cz.jzitnik.ui.pixels.ColoredPixel;
-import cz.jzitnik.ui.pixels.Empty;
-import cz.jzitnik.ui.pixels.Pixel;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.RerenderUtils;
-import cz.jzitnik.utils.StateManager;
-import cz.jzitnik.utils.UIRoomClickHandlerRepository;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.config.Debugging;
+import cz.jzitnik.client.events.InventoryRerender;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.events.RerenderPart;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.Player;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.game.items.GameItem;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.ui.Inventory;
+import cz.jzitnik.client.ui.utils.Grid;
+import cz.jzitnik.client.ui.pixels.ColoredPixel;
+import cz.jzitnik.client.ui.pixels.Empty;
+import cz.jzitnik.client.ui.pixels.Pixel;
+import cz.jzitnik.client.utils.RerenderUtils;
+import cz.jzitnik.client.utils.UIRoomClickHandlerRepository;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.extern.slf4j.Slf4j;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/game/objects/DroppedItem.java b/game/src/main/java/cz/jzitnik/client/game/objects/DroppedItem.java
similarity index 63%
rename from src/main/java/cz/jzitnik/game/objects/DroppedItem.java
rename to game/src/main/java/cz/jzitnik/client/game/objects/DroppedItem.java
index ad74bb9..adab9d7 100644
--- a/src/main/java/cz/jzitnik/game/objects/DroppedItem.java
+++ b/game/src/main/java/cz/jzitnik/client/game/objects/DroppedItem.java
@@ -1,17 +1,15 @@
-package cz.jzitnik.game.objects;
+package cz.jzitnik.client.game.objects;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.DroppedItemRerender;
-import cz.jzitnik.events.InventoryRerender;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.items.GameItem;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.game.utils.Selectable;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.StateManager;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.DroppedItemRerender;
+import cz.jzitnik.client.events.InventoryRerender;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.items.GameItem;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.game.utils.Selectable;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
diff --git a/src/main/java/cz/jzitnik/game/objects/GameObject.java b/game/src/main/java/cz/jzitnik/client/game/objects/GameObject.java
similarity index 81%
rename from src/main/java/cz/jzitnik/game/objects/GameObject.java
rename to game/src/main/java/cz/jzitnik/client/game/objects/GameObject.java
index b4bda1a..df90901 100644
--- a/src/main/java/cz/jzitnik/game/objects/GameObject.java
+++ b/game/src/main/java/cz/jzitnik/client/game/objects/GameObject.java
@@ -1,11 +1,11 @@
-package cz.jzitnik.game.objects;
+package cz.jzitnik.client.game.objects;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
-import cz.jzitnik.game.utils.Renderable;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.game.utils.Selectable;
+import cz.jzitnik.client.game.utils.Renderable;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.game.utils.Selectable;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
diff --git a/src/main/java/cz/jzitnik/game/objects/Interactable.java b/game/src/main/java/cz/jzitnik/client/game/objects/Interactable.java
similarity index 58%
rename from src/main/java/cz/jzitnik/game/objects/Interactable.java
rename to game/src/main/java/cz/jzitnik/client/game/objects/Interactable.java
index 1f4f09a..c050911 100644
--- a/src/main/java/cz/jzitnik/game/objects/Interactable.java
+++ b/game/src/main/java/cz/jzitnik/client/game/objects/Interactable.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.game.objects;
+package cz.jzitnik.client.game.objects;
public interface Interactable {
void interact();
diff --git a/src/main/java/cz/jzitnik/game/objects/UIClickHandler.java b/game/src/main/java/cz/jzitnik/client/game/objects/UIClickHandler.java
similarity index 76%
rename from src/main/java/cz/jzitnik/game/objects/UIClickHandler.java
rename to game/src/main/java/cz/jzitnik/client/game/objects/UIClickHandler.java
index f3775af..ecc365e 100644
--- a/src/main/java/cz/jzitnik/game/objects/UIClickHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/game/objects/UIClickHandler.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.game.objects;
+package cz.jzitnik.client.game.objects;
-import cz.jzitnik.events.MouseAction;
+import cz.jzitnik.client.events.MouseAction;
public interface UIClickHandler {
boolean handleClick(MouseAction mouseAction);
diff --git a/src/main/java/cz/jzitnik/game/setup/GameSetup.java b/game/src/main/java/cz/jzitnik/client/game/setup/GameSetup.java
similarity index 74%
rename from src/main/java/cz/jzitnik/game/setup/GameSetup.java
rename to game/src/main/java/cz/jzitnik/client/game/setup/GameSetup.java
index b6cff1a..78b5c12 100644
--- a/src/main/java/cz/jzitnik/game/setup/GameSetup.java
+++ b/game/src/main/java/cz/jzitnik/client/game/setup/GameSetup.java
@@ -1,13 +1,13 @@
-package cz.jzitnik.game.setup;
+package cz.jzitnik.client.game.setup;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.Player;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.utils.DependencyManager;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.Player;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.utils.DependencyManager;
import lombok.extern.slf4j.Slf4j;
import tools.jackson.core.type.TypeReference;
import tools.jackson.databind.ObjectMapper;
diff --git a/src/main/java/cz/jzitnik/game/setup/scenes/GameMenuScene.java b/game/src/main/java/cz/jzitnik/client/game/setup/scenes/GameMenuScene.java
similarity index 75%
rename from src/main/java/cz/jzitnik/game/setup/scenes/GameMenuScene.java
rename to game/src/main/java/cz/jzitnik/client/game/setup/scenes/GameMenuScene.java
index 89c5c26..990472b 100644
--- a/src/main/java/cz/jzitnik/game/setup/scenes/GameMenuScene.java
+++ b/game/src/main/java/cz/jzitnik/client/game/setup/scenes/GameMenuScene.java
@@ -1,18 +1,18 @@
-package cz.jzitnik.game.setup.scenes;
+package cz.jzitnik.client.game.setup.scenes;
import com.googlecode.lanterna.input.KeyType;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.FullRoomDraw;
-import cz.jzitnik.events.KeyboardPressEvent;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.screens.Screen;
-import cz.jzitnik.screens.scenes.BasicImageScene;
-import cz.jzitnik.screens.scenes.Scene;
-import cz.jzitnik.sound.SoundPlayer;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.FullRoomDraw;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.screens.Screen;
+import cz.jzitnik.client.screens.scenes.BasicImageScene;
+import cz.jzitnik.client.screens.scenes.Scene;
+import cz.jzitnik.client.sound.SoundPlayer;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.events.EventManager;
public class GameMenuScene extends Scene {
private static class GameMenuAudioScreen extends Screen {
diff --git a/src/main/java/cz/jzitnik/game/setup/scenes/IntroScene.java b/game/src/main/java/cz/jzitnik/client/game/setup/scenes/IntroScene.java
similarity index 61%
rename from src/main/java/cz/jzitnik/game/setup/scenes/IntroScene.java
rename to game/src/main/java/cz/jzitnik/client/game/setup/scenes/IntroScene.java
index f499105..2c26a85 100644
--- a/src/main/java/cz/jzitnik/game/setup/scenes/IntroScene.java
+++ b/game/src/main/java/cz/jzitnik/client/game/setup/scenes/IntroScene.java
@@ -1,9 +1,9 @@
-package cz.jzitnik.game.setup.scenes;
+package cz.jzitnik.client.game.setup.scenes;
-import cz.jzitnik.screens.Screen;
-import cz.jzitnik.screens.scenes.Scene;
-import cz.jzitnik.screens.scenes.VideoSceneWithAudio;
-import cz.jzitnik.utils.DependencyManager;
+import cz.jzitnik.client.screens.Screen;
+import cz.jzitnik.client.screens.scenes.Scene;
+import cz.jzitnik.client.screens.scenes.VideoSceneWithAudio;
+import cz.jzitnik.client.utils.DependencyManager;
public class IntroScene extends Scene {
public IntroScene(DependencyManager dependencyManager) {
diff --git a/src/main/java/cz/jzitnik/game/utils/Renderable.java b/game/src/main/java/cz/jzitnik/client/game/utils/Renderable.java
similarity index 73%
rename from src/main/java/cz/jzitnik/game/utils/Renderable.java
rename to game/src/main/java/cz/jzitnik/client/game/utils/Renderable.java
index c39e169..b1f4d87 100644
--- a/src/main/java/cz/jzitnik/game/utils/Renderable.java
+++ b/game/src/main/java/cz/jzitnik/client/game/utils/Renderable.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.game.utils;
+package cz.jzitnik.client.game.utils;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/game/utils/RoomCords.java b/game/src/main/java/cz/jzitnik/client/game/utils/RoomCords.java
similarity index 95%
rename from src/main/java/cz/jzitnik/game/utils/RoomCords.java
rename to game/src/main/java/cz/jzitnik/client/game/utils/RoomCords.java
index 4d42f2a..a40bbd2 100644
--- a/src/main/java/cz/jzitnik/game/utils/RoomCords.java
+++ b/game/src/main/java/cz/jzitnik/client/game/utils/RoomCords.java
@@ -1,8 +1,8 @@
-package cz.jzitnik.game.utils;
+package cz.jzitnik.client.game.utils;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
-import cz.jzitnik.game.GameRoomPart;
+import cz.jzitnik.client.game.GameRoomPart;
import lombok.Getter;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/cz/jzitnik/game/utils/Selectable.java b/game/src/main/java/cz/jzitnik/client/game/utils/Selectable.java
similarity index 75%
rename from src/main/java/cz/jzitnik/game/utils/Selectable.java
rename to game/src/main/java/cz/jzitnik/client/game/utils/Selectable.java
index 1052413..32a6326 100644
--- a/src/main/java/cz/jzitnik/game/utils/Selectable.java
+++ b/game/src/main/java/cz/jzitnik/client/game/utils/Selectable.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.game.utils;
+package cz.jzitnik.client.game.utils;
-import cz.jzitnik.game.objects.Interactable;
+import cz.jzitnik.client.game.objects.Interactable;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/screens/Screen.java b/game/src/main/java/cz/jzitnik/client/screens/Screen.java
similarity index 61%
rename from src/main/java/cz/jzitnik/screens/Screen.java
rename to game/src/main/java/cz/jzitnik/client/screens/Screen.java
index c821afe..68eae0e 100644
--- a/src/main/java/cz/jzitnik/screens/Screen.java
+++ b/game/src/main/java/cz/jzitnik/client/screens/Screen.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.screens;
+package cz.jzitnik.client.screens;
-import cz.jzitnik.events.KeyboardPressEvent;
-import cz.jzitnik.events.MouseAction;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.events.MouseAction;
public abstract class Screen {
public abstract void fullRender();
diff --git a/src/main/java/cz/jzitnik/screens/VideoPlayScreen.java b/game/src/main/java/cz/jzitnik/client/screens/VideoPlayScreen.java
similarity index 95%
rename from src/main/java/cz/jzitnik/screens/VideoPlayScreen.java
rename to game/src/main/java/cz/jzitnik/client/screens/VideoPlayScreen.java
index 9532bc3..b330ad1 100644
--- a/src/main/java/cz/jzitnik/screens/VideoPlayScreen.java
+++ b/game/src/main/java/cz/jzitnik/client/screens/VideoPlayScreen.java
@@ -1,11 +1,11 @@
-package cz.jzitnik.screens;
+package cz.jzitnik.client.screens;
import com.googlecode.lanterna.TextColor;
import com.googlecode.lanterna.screen.TerminalScreen;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.states.TerminalState;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.states.TerminalState;
import lombok.extern.slf4j.Slf4j;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
diff --git a/src/main/java/cz/jzitnik/screens/scenes/BasicImageScene.java b/game/src/main/java/cz/jzitnik/client/screens/scenes/BasicImageScene.java
similarity index 87%
rename from src/main/java/cz/jzitnik/screens/scenes/BasicImageScene.java
rename to game/src/main/java/cz/jzitnik/client/screens/scenes/BasicImageScene.java
index dda30e9..386c876 100644
--- a/src/main/java/cz/jzitnik/screens/scenes/BasicImageScene.java
+++ b/game/src/main/java/cz/jzitnik/client/screens/scenes/BasicImageScene.java
@@ -1,14 +1,14 @@
-package cz.jzitnik.screens.scenes;
+package cz.jzitnik.client.screens.scenes;
import com.googlecode.lanterna.TextColor;
import com.googlecode.lanterna.screen.TerminalScreen;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.KeyboardPressEvent;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.screens.Screen;
-import cz.jzitnik.states.TerminalState;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.screens.Screen;
+import cz.jzitnik.client.states.TerminalState;
import java.awt.image.BufferedImage;
import java.io.IOException;
diff --git a/src/main/java/cz/jzitnik/screens/scenes/BasicVideoScene.java b/game/src/main/java/cz/jzitnik/client/screens/scenes/BasicVideoScene.java
similarity index 61%
rename from src/main/java/cz/jzitnik/screens/scenes/BasicVideoScene.java
rename to game/src/main/java/cz/jzitnik/client/screens/scenes/BasicVideoScene.java
index 2895646..3f6c68c 100644
--- a/src/main/java/cz/jzitnik/screens/scenes/BasicVideoScene.java
+++ b/game/src/main/java/cz/jzitnik/client/screens/scenes/BasicVideoScene.java
@@ -1,8 +1,8 @@
-package cz.jzitnik.screens.scenes;
+package cz.jzitnik.client.screens.scenes;
-import cz.jzitnik.events.KeyboardPressEvent;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.screens.VideoPlayScreen;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.screens.VideoPlayScreen;
public final class BasicVideoScene extends VideoPlayScreen {
public BasicVideoScene(String videoPath) {
diff --git a/src/main/java/cz/jzitnik/screens/scenes/Scene.java b/game/src/main/java/cz/jzitnik/client/screens/scenes/Scene.java
similarity index 84%
rename from src/main/java/cz/jzitnik/screens/scenes/Scene.java
rename to game/src/main/java/cz/jzitnik/client/screens/scenes/Scene.java
index 6c390a0..24affa0 100644
--- a/src/main/java/cz/jzitnik/screens/scenes/Scene.java
+++ b/game/src/main/java/cz/jzitnik/client/screens/scenes/Scene.java
@@ -1,14 +1,14 @@
-package cz.jzitnik.screens.scenes;
+package cz.jzitnik.client.screens.scenes;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.FullRoomDraw;
-import cz.jzitnik.events.KeyboardPressEvent;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.screens.Screen;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.FullRoomDraw;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.screens.Screen;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.AllArgsConstructor;
import lombok.Getter;
diff --git a/src/main/java/cz/jzitnik/screens/scenes/VideoSceneWithAudio.java b/game/src/main/java/cz/jzitnik/client/screens/scenes/VideoSceneWithAudio.java
similarity index 78%
rename from src/main/java/cz/jzitnik/screens/scenes/VideoSceneWithAudio.java
rename to game/src/main/java/cz/jzitnik/client/screens/scenes/VideoSceneWithAudio.java
index 5aa73fd..94b1996 100644
--- a/src/main/java/cz/jzitnik/screens/scenes/VideoSceneWithAudio.java
+++ b/game/src/main/java/cz/jzitnik/client/screens/scenes/VideoSceneWithAudio.java
@@ -1,9 +1,9 @@
-package cz.jzitnik.screens.scenes;
+package cz.jzitnik.client.screens.scenes;
-import cz.jzitnik.events.KeyboardPressEvent;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.screens.VideoPlayScreen;
-import cz.jzitnik.sound.SoundPlayer;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.screens.VideoPlayScreen;
+import cz.jzitnik.client.sound.SoundPlayer;
import lombok.extern.slf4j.Slf4j;
@Slf4j
diff --git a/src/main/java/cz/jzitnik/sound/SoundPlayer.java b/game/src/main/java/cz/jzitnik/client/sound/SoundPlayer.java
similarity index 99%
rename from src/main/java/cz/jzitnik/sound/SoundPlayer.java
rename to game/src/main/java/cz/jzitnik/client/sound/SoundPlayer.java
index ea18f7a..293a38f 100644
--- a/src/main/java/cz/jzitnik/sound/SoundPlayer.java
+++ b/game/src/main/java/cz/jzitnik/client/sound/SoundPlayer.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.sound;
+package cz.jzitnik.client.sound;
import javax.sound.sampled.*;
diff --git a/src/main/java/cz/jzitnik/states/DialogState.java b/game/src/main/java/cz/jzitnik/client/states/DialogState.java
similarity index 60%
rename from src/main/java/cz/jzitnik/states/DialogState.java
rename to game/src/main/java/cz/jzitnik/client/states/DialogState.java
index 60f15e0..4e36f41 100644
--- a/src/main/java/cz/jzitnik/states/DialogState.java
+++ b/game/src/main/java/cz/jzitnik/client/states/DialogState.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.states;
+package cz.jzitnik.client.states;
-import cz.jzitnik.annotations.State;
-import cz.jzitnik.game.dialog.Dialog;
+import cz.jzitnik.client.annotations.State;
+import cz.jzitnik.client.game.dialog.Dialog;
import lombok.Data;
@State
diff --git a/src/main/java/cz/jzitnik/states/MicrophoneState.java b/game/src/main/java/cz/jzitnik/client/states/MicrophoneState.java
similarity index 65%
rename from src/main/java/cz/jzitnik/states/MicrophoneState.java
rename to game/src/main/java/cz/jzitnik/client/states/MicrophoneState.java
index 1095ddd..1c540e0 100644
--- a/src/main/java/cz/jzitnik/states/MicrophoneState.java
+++ b/game/src/main/java/cz/jzitnik/client/states/MicrophoneState.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.states;
+package cz.jzitnik.client.states;
-import cz.jzitnik.annotations.State;
+import cz.jzitnik.client.annotations.State;
import lombok.Data;
@Data
diff --git a/game/src/main/java/cz/jzitnik/client/states/PlayerConfig.java b/game/src/main/java/cz/jzitnik/client/states/PlayerConfig.java
new file mode 100644
index 0000000..38d1595
--- /dev/null
+++ b/game/src/main/java/cz/jzitnik/client/states/PlayerConfig.java
@@ -0,0 +1,8 @@
+package cz.jzitnik.client.states;
+
+import cz.jzitnik.client.annotations.State;
+
+@State
+public class PlayerConfig {
+ private int masterVolume = 100;
+}
diff --git a/src/main/java/cz/jzitnik/states/PlayerMovementState.java b/game/src/main/java/cz/jzitnik/client/states/PlayerMovementState.java
similarity index 70%
rename from src/main/java/cz/jzitnik/states/PlayerMovementState.java
rename to game/src/main/java/cz/jzitnik/client/states/PlayerMovementState.java
index eaa4e1d..6f5b966 100644
--- a/src/main/java/cz/jzitnik/states/PlayerMovementState.java
+++ b/game/src/main/java/cz/jzitnik/client/states/PlayerMovementState.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.states;
+package cz.jzitnik.client.states;
-import cz.jzitnik.annotations.State;
+import cz.jzitnik.client.annotations.State;
import lombok.Data;
import java.util.concurrent.ScheduledFuture;
diff --git a/src/main/java/cz/jzitnik/states/RenderState.java b/game/src/main/java/cz/jzitnik/client/states/RenderState.java
similarity index 70%
rename from src/main/java/cz/jzitnik/states/RenderState.java
rename to game/src/main/java/cz/jzitnik/client/states/RenderState.java
index faf2ea5..85e5a12 100644
--- a/src/main/java/cz/jzitnik/states/RenderState.java
+++ b/game/src/main/java/cz/jzitnik/client/states/RenderState.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.states;
+package cz.jzitnik.client.states;
-import cz.jzitnik.annotations.State;
+import cz.jzitnik.client.annotations.State;
import lombok.Getter;
import lombok.Setter;
diff --git a/src/main/java/cz/jzitnik/states/RunningState.java b/game/src/main/java/cz/jzitnik/client/states/RunningState.java
similarity index 56%
rename from src/main/java/cz/jzitnik/states/RunningState.java
rename to game/src/main/java/cz/jzitnik/client/states/RunningState.java
index 0333c74..f52a53f 100644
--- a/src/main/java/cz/jzitnik/states/RunningState.java
+++ b/game/src/main/java/cz/jzitnik/client/states/RunningState.java
@@ -1,6 +1,6 @@
-package cz.jzitnik.states;
+package cz.jzitnik.client.states;
-import cz.jzitnik.annotations.State;
+import cz.jzitnik.client.annotations.State;
import lombok.Data;
@Data
diff --git a/src/main/java/cz/jzitnik/states/ScreenBuffer.java b/game/src/main/java/cz/jzitnik/client/states/ScreenBuffer.java
similarity index 53%
rename from src/main/java/cz/jzitnik/states/ScreenBuffer.java
rename to game/src/main/java/cz/jzitnik/client/states/ScreenBuffer.java
index 2465b17..17de964 100644
--- a/src/main/java/cz/jzitnik/states/ScreenBuffer.java
+++ b/game/src/main/java/cz/jzitnik/client/states/ScreenBuffer.java
@@ -1,8 +1,8 @@
-package cz.jzitnik.states;
+package cz.jzitnik.client.states;
-import cz.jzitnik.annotations.State;
-import cz.jzitnik.ui.pixels.AlphaPixel;
-import cz.jzitnik.ui.pixels.Pixel;
+import cz.jzitnik.client.annotations.State;
+import cz.jzitnik.client.ui.pixels.AlphaPixel;
+import cz.jzitnik.client.ui.pixels.Pixel;
import lombok.Data;
@Data
diff --git a/src/main/java/cz/jzitnik/states/TerminalState.java b/game/src/main/java/cz/jzitnik/client/states/TerminalState.java
similarity index 76%
rename from src/main/java/cz/jzitnik/states/TerminalState.java
rename to game/src/main/java/cz/jzitnik/client/states/TerminalState.java
index c21f555..4cfdc41 100644
--- a/src/main/java/cz/jzitnik/states/TerminalState.java
+++ b/game/src/main/java/cz/jzitnik/client/states/TerminalState.java
@@ -1,8 +1,8 @@
-package cz.jzitnik.states;
+package cz.jzitnik.client.states;
import com.googlecode.lanterna.graphics.TextGraphics;
import com.googlecode.lanterna.screen.TerminalScreen;
-import cz.jzitnik.annotations.State;
+import cz.jzitnik.client.annotations.State;
import lombok.Data;
@State
diff --git a/src/main/java/cz/jzitnik/tasks/StaminaIncreaseTask.java b/game/src/main/java/cz/jzitnik/client/tasks/StaminaIncreaseTask.java
similarity index 76%
rename from src/main/java/cz/jzitnik/tasks/StaminaIncreaseTask.java
rename to game/src/main/java/cz/jzitnik/client/tasks/StaminaIncreaseTask.java
index 3866b02..f1b49fb 100644
--- a/src/main/java/cz/jzitnik/tasks/StaminaIncreaseTask.java
+++ b/game/src/main/java/cz/jzitnik/client/tasks/StaminaIncreaseTask.java
@@ -1,17 +1,17 @@
-package cz.jzitnik.tasks;
+package cz.jzitnik.client.tasks;
-import cz.jzitnik.annotations.ScheduledTask;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.config.PlayerConfig;
-import cz.jzitnik.events.RenderStats;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.Player;
-import cz.jzitnik.states.PlayerMovementState;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.ScheduledTaskManager;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.ScheduledTask;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.config.PlayerConfig;
+import cz.jzitnik.client.events.RenderStats;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.Player;
+import cz.jzitnik.client.states.PlayerMovementState;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.ScheduledTaskManager;
+import cz.jzitnik.client.utils.events.EventManager;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
diff --git a/src/main/java/cz/jzitnik/threads/MicrophoneThread.java b/game/src/main/java/cz/jzitnik/client/threads/MicrophoneThread.java
similarity index 88%
rename from src/main/java/cz/jzitnik/threads/MicrophoneThread.java
rename to game/src/main/java/cz/jzitnik/client/threads/MicrophoneThread.java
index 16f5041..54b8393 100644
--- a/src/main/java/cz/jzitnik/threads/MicrophoneThread.java
+++ b/game/src/main/java/cz/jzitnik/client/threads/MicrophoneThread.java
@@ -1,14 +1,14 @@
-package cz.jzitnik.threads;
+package cz.jzitnik.client.threads;
import be.tarsos.dsp.AudioDispatcher;
import be.tarsos.dsp.AudioEvent;
import be.tarsos.dsp.AudioProcessor;
import be.tarsos.dsp.filters.HighPass;
import be.tarsos.dsp.io.jvm.AudioDispatcherFactory;
-import cz.jzitnik.annotations.ThreadRegistry;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.states.MicrophoneState;
-import cz.jzitnik.utils.ShutdownableThread;
+import cz.jzitnik.client.annotations.ThreadRegistry;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.states.MicrophoneState;
+import cz.jzitnik.client.utils.ShutdownableThread;
import lombok.extern.slf4j.Slf4j;
import javax.sound.sampled.LineUnavailableException;
diff --git a/src/main/java/cz/jzitnik/ui/DialogUI.java b/game/src/main/java/cz/jzitnik/client/ui/DialogUI.java
similarity index 86%
rename from src/main/java/cz/jzitnik/ui/DialogUI.java
rename to game/src/main/java/cz/jzitnik/client/ui/DialogUI.java
index af1ea7f..6de27b5 100644
--- a/src/main/java/cz/jzitnik/ui/DialogUI.java
+++ b/game/src/main/java/cz/jzitnik/client/ui/DialogUI.java
@@ -1,27 +1,27 @@
-package cz.jzitnik.ui;
+package cz.jzitnik.client.ui;
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.TerminalSize;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.annotations.ui.MouseHandler;
-import cz.jzitnik.annotations.ui.MouseHandlerType;
-import cz.jzitnik.annotations.ui.UI;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.events.handlers.DialogEventHandler;
-import cz.jzitnik.game.dialog.OnEnd;
-import cz.jzitnik.states.DialogState;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.ui.pixels.Empty;
-import cz.jzitnik.utils.TextRenderer;
-import cz.jzitnik.utils.events.Event;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.annotations.ui.MouseHandler;
+import cz.jzitnik.client.annotations.ui.MouseHandlerType;
+import cz.jzitnik.client.annotations.ui.UI;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.events.handlers.DialogEventHandler;
+import cz.jzitnik.client.game.dialog.OnEnd;
+import cz.jzitnik.client.states.DialogState;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.ui.pixels.Empty;
+import cz.jzitnik.client.utils.TextRenderer;
+import cz.jzitnik.client.utils.events.Event;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.extern.slf4j.Slf4j;
-import static cz.jzitnik.events.handlers.DialogEventHandler.*;
+import static cz.jzitnik.client.events.handlers.DialogEventHandler.*;
@Slf4j
@UI
diff --git a/src/main/java/cz/jzitnik/ui/GlobalShortcuts.java b/game/src/main/java/cz/jzitnik/client/ui/GlobalShortcuts.java
similarity index 63%
rename from src/main/java/cz/jzitnik/ui/GlobalShortcuts.java
rename to game/src/main/java/cz/jzitnik/client/ui/GlobalShortcuts.java
index 4434020..9ff3cb3 100644
--- a/src/main/java/cz/jzitnik/ui/GlobalShortcuts.java
+++ b/game/src/main/java/cz/jzitnik/client/ui/GlobalShortcuts.java
@@ -1,15 +1,15 @@
-package cz.jzitnik.ui;
+package cz.jzitnik.client.ui;
import com.googlecode.lanterna.input.KeyType;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.ui.KeyboardPressHandler;
-import cz.jzitnik.annotations.ui.UI;
-import cz.jzitnik.events.ExitEvent;
-import cz.jzitnik.events.FullRedrawEvent;
-import cz.jzitnik.events.KeyboardPressEvent;
-import cz.jzitnik.events.PlayerMoveEvent;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.ui.KeyboardPressHandler;
+import cz.jzitnik.client.annotations.ui.UI;
+import cz.jzitnik.client.events.ExitEvent;
+import cz.jzitnik.client.events.FullRedrawEvent;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.events.PlayerMoveEvent;
+import cz.jzitnik.client.utils.events.EventManager;
@UI
@Dependency
diff --git a/src/main/java/cz/jzitnik/ui/Inventory.java b/game/src/main/java/cz/jzitnik/client/ui/Inventory.java
similarity index 92%
rename from src/main/java/cz/jzitnik/ui/Inventory.java
rename to game/src/main/java/cz/jzitnik/client/ui/Inventory.java
index 794a74b..daeaba1 100644
--- a/src/main/java/cz/jzitnik/ui/Inventory.java
+++ b/game/src/main/java/cz/jzitnik/client/ui/Inventory.java
@@ -1,34 +1,34 @@
-package cz.jzitnik.ui;
+package cz.jzitnik.client.ui;
import com.googlecode.lanterna.TerminalPosition;
import com.googlecode.lanterna.TerminalSize;
import com.googlecode.lanterna.TextColor;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.annotations.ui.*;
-import cz.jzitnik.config.CoreLogic;
-import cz.jzitnik.events.DroppedItemRerender;
-import cz.jzitnik.events.InventoryRerender;
-import cz.jzitnik.events.KeyboardPressEvent;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.game.items.GameItem;
-import cz.jzitnik.game.items.types.InteractableItem;
-import cz.jzitnik.game.objects.DroppedItem;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.states.TerminalState;
-import cz.jzitnik.ui.pixels.ColoredPixel;
-import cz.jzitnik.ui.pixels.Pixel;
-import cz.jzitnik.ui.utils.Grid;
-import cz.jzitnik.utils.DependencyManager;
-import cz.jzitnik.utils.RerenderUtils;
-import cz.jzitnik.utils.ScheduledSerializedTaskManager;
-import cz.jzitnik.utils.StateManager;
-import cz.jzitnik.utils.events.EventManager;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.annotations.ui.*;
+import cz.jzitnik.client.config.CoreLogic;
+import cz.jzitnik.client.events.DroppedItemRerender;
+import cz.jzitnik.client.events.InventoryRerender;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.game.items.GameItem;
+import cz.jzitnik.client.game.items.types.InteractableItem;
+import cz.jzitnik.client.game.objects.DroppedItem;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.states.TerminalState;
+import cz.jzitnik.client.ui.pixels.ColoredPixel;
+import cz.jzitnik.client.ui.pixels.Pixel;
+import cz.jzitnik.client.ui.utils.Grid;
+import cz.jzitnik.client.utils.DependencyManager;
+import cz.jzitnik.client.utils.RerenderUtils;
+import cz.jzitnik.client.utils.ScheduledSerializedTaskManager;
+import cz.jzitnik.client.utils.StateManager;
+import cz.jzitnik.client.utils.events.EventManager;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/cz/jzitnik/ui/Stats.java b/game/src/main/java/cz/jzitnik/client/ui/Stats.java
similarity index 84%
rename from src/main/java/cz/jzitnik/ui/Stats.java
rename to game/src/main/java/cz/jzitnik/client/ui/Stats.java
index 74a7ddd..f729ed1 100644
--- a/src/main/java/cz/jzitnik/ui/Stats.java
+++ b/game/src/main/java/cz/jzitnik/client/ui/Stats.java
@@ -1,19 +1,19 @@
-package cz.jzitnik.ui;
+package cz.jzitnik.client.ui;
import com.googlecode.lanterna.TextColor;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.annotations.ui.Render;
-import cz.jzitnik.annotations.ui.UI;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.Player;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.ui.pixels.ColoredPixel;
-import cz.jzitnik.ui.pixels.Empty;
-import cz.jzitnik.ui.pixels.Pixel;
-import cz.jzitnik.utils.RerenderUtils;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.annotations.ui.Render;
+import cz.jzitnik.client.annotations.ui.UI;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.Player;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.ui.pixels.ColoredPixel;
+import cz.jzitnik.client.ui.pixels.Empty;
+import cz.jzitnik.client.ui.pixels.Pixel;
+import cz.jzitnik.client.utils.RerenderUtils;
import lombok.Getter;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/ui/pixels/AlphaPixel.java b/game/src/main/java/cz/jzitnik/client/ui/pixels/AlphaPixel.java
similarity index 89%
rename from src/main/java/cz/jzitnik/ui/pixels/AlphaPixel.java
rename to game/src/main/java/cz/jzitnik/client/ui/pixels/AlphaPixel.java
index fdc1ff9..b6819fb 100644
--- a/src/main/java/cz/jzitnik/ui/pixels/AlphaPixel.java
+++ b/game/src/main/java/cz/jzitnik/client/ui/pixels/AlphaPixel.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.ui.pixels;
+package cz.jzitnik.client.ui.pixels;
import com.googlecode.lanterna.TextColor;
import lombok.Getter;
diff --git a/src/main/java/cz/jzitnik/ui/pixels/ColoredPixel.java b/game/src/main/java/cz/jzitnik/client/ui/pixels/ColoredPixel.java
similarity index 87%
rename from src/main/java/cz/jzitnik/ui/pixels/ColoredPixel.java
rename to game/src/main/java/cz/jzitnik/client/ui/pixels/ColoredPixel.java
index 0c844ab..767da0a 100644
--- a/src/main/java/cz/jzitnik/ui/pixels/ColoredPixel.java
+++ b/game/src/main/java/cz/jzitnik/client/ui/pixels/ColoredPixel.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.ui.pixels;
+package cz.jzitnik.client.ui.pixels;
import com.googlecode.lanterna.TextColor;
diff --git a/src/main/java/cz/jzitnik/ui/pixels/Empty.java b/game/src/main/java/cz/jzitnik/client/ui/pixels/Empty.java
similarity index 73%
rename from src/main/java/cz/jzitnik/ui/pixels/Empty.java
rename to game/src/main/java/cz/jzitnik/client/ui/pixels/Empty.java
index 761bc06..219cc2d 100644
--- a/src/main/java/cz/jzitnik/ui/pixels/Empty.java
+++ b/game/src/main/java/cz/jzitnik/client/ui/pixels/Empty.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.ui.pixels;
+package cz.jzitnik.client.ui.pixels;
public final class Empty extends AlphaPixel {
public Empty() {
diff --git a/src/main/java/cz/jzitnik/ui/pixels/Pixel.java b/game/src/main/java/cz/jzitnik/client/ui/pixels/Pixel.java
similarity index 85%
rename from src/main/java/cz/jzitnik/ui/pixels/Pixel.java
rename to game/src/main/java/cz/jzitnik/client/ui/pixels/Pixel.java
index 462f242..1d7a1b9 100644
--- a/src/main/java/cz/jzitnik/ui/pixels/Pixel.java
+++ b/game/src/main/java/cz/jzitnik/client/ui/pixels/Pixel.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.ui.pixels;
+package cz.jzitnik.client.ui.pixels;
import com.googlecode.lanterna.TextColor;
import lombok.AllArgsConstructor;
diff --git a/src/main/java/cz/jzitnik/ui/utils/Grid.java b/game/src/main/java/cz/jzitnik/client/ui/utils/Grid.java
similarity index 98%
rename from src/main/java/cz/jzitnik/ui/utils/Grid.java
rename to game/src/main/java/cz/jzitnik/client/ui/utils/Grid.java
index 5d5c3ae..d97ba3a 100644
--- a/src/main/java/cz/jzitnik/ui/utils/Grid.java
+++ b/game/src/main/java/cz/jzitnik/client/ui/utils/Grid.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.ui.utils;
+package cz.jzitnik.client.ui.utils;
-import cz.jzitnik.ui.pixels.ColoredPixel;
-import cz.jzitnik.ui.pixels.Pixel;
+import cz.jzitnik.client.ui.pixels.ColoredPixel;
+import cz.jzitnik.client.ui.pixels.Pixel;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/utils/DependencyManager.java b/game/src/main/java/cz/jzitnik/client/utils/DependencyManager.java
similarity index 95%
rename from src/main/java/cz/jzitnik/utils/DependencyManager.java
rename to game/src/main/java/cz/jzitnik/client/utils/DependencyManager.java
index df403be..3e67869 100644
--- a/src/main/java/cz/jzitnik/utils/DependencyManager.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/DependencyManager.java
@@ -1,16 +1,16 @@
-package cz.jzitnik.utils;
+package cz.jzitnik.client.utils;
// Don't blame me that I'm using field injection instead of construction injection. I just like it more, leave me alone.
// Yes, I know I'll suffer in the unit tests. (who said there will be any? hmmm)
import com.google.common.collect.ClassToInstanceMap;
import com.google.common.collect.MutableClassToInstanceMap;
-import cz.jzitnik.annotations.Config;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.PostInit;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
+import cz.jzitnik.client.annotations.Config;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.PostInit;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
import lombok.extern.slf4j.Slf4j;
import org.reflections.Reflections;
import tools.jackson.core.JacksonException;
diff --git a/src/main/java/cz/jzitnik/utils/GlobalIOHandlerRepository.java b/game/src/main/java/cz/jzitnik/client/utils/GlobalIOHandlerRepository.java
similarity index 92%
rename from src/main/java/cz/jzitnik/utils/GlobalIOHandlerRepository.java
rename to game/src/main/java/cz/jzitnik/client/utils/GlobalIOHandlerRepository.java
index 062283b..61aa022 100644
--- a/src/main/java/cz/jzitnik/utils/GlobalIOHandlerRepository.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/GlobalIOHandlerRepository.java
@@ -1,14 +1,14 @@
-package cz.jzitnik.utils;
+package cz.jzitnik.client.utils;
import com.googlecode.lanterna.input.KeyType;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.ui.KeyboardPressHandler;
-import cz.jzitnik.annotations.ui.MouseHandler;
-import cz.jzitnik.annotations.ui.Render;
-import cz.jzitnik.annotations.ui.UI;
-import cz.jzitnik.events.KeyboardPressEvent;
-import cz.jzitnik.events.MouseAction;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.ui.KeyboardPressHandler;
+import cz.jzitnik.client.annotations.ui.MouseHandler;
+import cz.jzitnik.client.annotations.ui.Render;
+import cz.jzitnik.client.annotations.ui.UI;
+import cz.jzitnik.client.events.KeyboardPressEvent;
+import cz.jzitnik.client.events.MouseAction;
import lombok.extern.slf4j.Slf4j;
import org.reflections.Reflections;
diff --git a/src/main/java/cz/jzitnik/utils/RerenderUtils.java b/game/src/main/java/cz/jzitnik/client/utils/RerenderUtils.java
similarity index 93%
rename from src/main/java/cz/jzitnik/utils/RerenderUtils.java
rename to game/src/main/java/cz/jzitnik/client/utils/RerenderUtils.java
index 1f691c5..3a00124 100644
--- a/src/main/java/cz/jzitnik/utils/RerenderUtils.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/RerenderUtils.java
@@ -1,20 +1,20 @@
-package cz.jzitnik.utils;
+package cz.jzitnik.client.utils;
import com.googlecode.lanterna.TerminalSize;
import com.googlecode.lanterna.TextColor;
-import cz.jzitnik.config.Debugging;
-import cz.jzitnik.events.handlers.FullRoomDrawHandler;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.Player;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.game.mobs.Mob;
-import cz.jzitnik.game.objects.DroppedItem;
-import cz.jzitnik.game.objects.GameObject;
-import cz.jzitnik.game.utils.RoomCords;
-import cz.jzitnik.states.ScreenBuffer;
-import cz.jzitnik.ui.pixels.ColoredPixel;
-import cz.jzitnik.ui.pixels.Empty;
-import cz.jzitnik.ui.pixels.Pixel;
+import cz.jzitnik.client.config.Debugging;
+import cz.jzitnik.client.events.handlers.FullRoomDrawHandler;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.Player;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.game.mobs.Mob;
+import cz.jzitnik.client.game.objects.DroppedItem;
+import cz.jzitnik.client.game.objects.GameObject;
+import cz.jzitnik.client.game.utils.RoomCords;
+import cz.jzitnik.client.states.ScreenBuffer;
+import cz.jzitnik.client.ui.pixels.ColoredPixel;
+import cz.jzitnik.client.ui.pixels.Empty;
+import cz.jzitnik.client.ui.pixels.Pixel;
import lombok.extern.slf4j.Slf4j;
import java.awt.image.BufferedImage;
diff --git a/src/main/java/cz/jzitnik/utils/ScheduledSerializedTaskManager.java b/game/src/main/java/cz/jzitnik/client/utils/ScheduledSerializedTaskManager.java
similarity index 96%
rename from src/main/java/cz/jzitnik/utils/ScheduledSerializedTaskManager.java
rename to game/src/main/java/cz/jzitnik/client/utils/ScheduledSerializedTaskManager.java
index 600e3df..1a51b5f 100644
--- a/src/main/java/cz/jzitnik/utils/ScheduledSerializedTaskManager.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/ScheduledSerializedTaskManager.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.utils;
+package cz.jzitnik.client.utils;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
diff --git a/src/main/java/cz/jzitnik/utils/ScheduledTaskManager.java b/game/src/main/java/cz/jzitnik/client/utils/ScheduledTaskManager.java
similarity index 91%
rename from src/main/java/cz/jzitnik/utils/ScheduledTaskManager.java
rename to game/src/main/java/cz/jzitnik/client/utils/ScheduledTaskManager.java
index 18f6649..e7782f8 100644
--- a/src/main/java/cz/jzitnik/utils/ScheduledTaskManager.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/ScheduledTaskManager.java
@@ -1,9 +1,9 @@
-package cz.jzitnik.utils;
+package cz.jzitnik.client.utils;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.ScheduledTask;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.config.ThreadPoolConfig;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.ScheduledTask;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.config.ThreadPoolConfig;
import lombok.extern.slf4j.Slf4j;
import org.reflections.Reflections;
diff --git a/src/main/java/cz/jzitnik/utils/ShutdownableThread.java b/game/src/main/java/cz/jzitnik/client/utils/ShutdownableThread.java
similarity index 79%
rename from src/main/java/cz/jzitnik/utils/ShutdownableThread.java
rename to game/src/main/java/cz/jzitnik/client/utils/ShutdownableThread.java
index 20d7c13..8400862 100644
--- a/src/main/java/cz/jzitnik/utils/ShutdownableThread.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/ShutdownableThread.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.utils;
+package cz.jzitnik.client.utils;
public abstract class ShutdownableThread extends Thread {
public abstract void run();
diff --git a/src/main/java/cz/jzitnik/utils/StateManager.java b/game/src/main/java/cz/jzitnik/client/utils/StateManager.java
similarity index 93%
rename from src/main/java/cz/jzitnik/utils/StateManager.java
rename to game/src/main/java/cz/jzitnik/client/utils/StateManager.java
index 51837a9..d57298b 100644
--- a/src/main/java/cz/jzitnik/utils/StateManager.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/StateManager.java
@@ -1,8 +1,8 @@
// NOTE: [StateManager] cannot use injectors like @InjectDependency or @InjectState
-package cz.jzitnik.utils;
+package cz.jzitnik.client.utils;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.State;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.State;
import lombok.extern.slf4j.Slf4j;
import org.reflections.Reflections;
diff --git a/src/main/java/cz/jzitnik/utils/TextRenderer.java b/game/src/main/java/cz/jzitnik/client/utils/TextRenderer.java
similarity index 95%
rename from src/main/java/cz/jzitnik/utils/TextRenderer.java
rename to game/src/main/java/cz/jzitnik/client/utils/TextRenderer.java
index 1431115..abf0df2 100644
--- a/src/main/java/cz/jzitnik/utils/TextRenderer.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/TextRenderer.java
@@ -1,12 +1,12 @@
-package cz.jzitnik.utils;
+package cz.jzitnik.client.utils;
import com.googlecode.lanterna.TextColor;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.game.ResourceManager;
-import cz.jzitnik.ui.pixels.AlphaPixel;
-import cz.jzitnik.ui.pixels.ColoredPixel;
-import cz.jzitnik.ui.pixels.Empty;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.game.ResourceManager;
+import cz.jzitnik.client.ui.pixels.AlphaPixel;
+import cz.jzitnik.client.ui.pixels.ColoredPixel;
+import cz.jzitnik.client.ui.pixels.Empty;
import java.awt.*;
import java.awt.font.FontRenderContext;
diff --git a/src/main/java/cz/jzitnik/utils/ThreadManager.java b/game/src/main/java/cz/jzitnik/client/utils/ThreadManager.java
similarity index 90%
rename from src/main/java/cz/jzitnik/utils/ThreadManager.java
rename to game/src/main/java/cz/jzitnik/client/utils/ThreadManager.java
index 789e881..63569fa 100644
--- a/src/main/java/cz/jzitnik/utils/ThreadManager.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/ThreadManager.java
@@ -1,7 +1,7 @@
-package cz.jzitnik.utils;
+package cz.jzitnik.client.utils;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.ThreadRegistry;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.ThreadRegistry;
import org.reflections.Reflections;
import java.lang.reflect.InvocationTargetException;
diff --git a/src/main/java/cz/jzitnik/utils/UIRoomClickHandlerRepository.java b/game/src/main/java/cz/jzitnik/client/utils/UIRoomClickHandlerRepository.java
similarity index 90%
rename from src/main/java/cz/jzitnik/utils/UIRoomClickHandlerRepository.java
rename to game/src/main/java/cz/jzitnik/client/utils/UIRoomClickHandlerRepository.java
index 70d9e88..d1707a3 100644
--- a/src/main/java/cz/jzitnik/utils/UIRoomClickHandlerRepository.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/UIRoomClickHandlerRepository.java
@@ -1,14 +1,14 @@
-package cz.jzitnik.utils;
+package cz.jzitnik.client.utils;
import com.googlecode.lanterna.TerminalPosition;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.events.MouseAction;
-import cz.jzitnik.events.RerenderScreen;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.GameState;
-import cz.jzitnik.game.objects.UIClickHandler;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.events.MouseAction;
+import cz.jzitnik.client.events.RerenderScreen;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.GameState;
+import cz.jzitnik.client.game.objects.UIClickHandler;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
diff --git a/src/main/java/cz/jzitnik/utils/events/AbstractEventHandler.java b/game/src/main/java/cz/jzitnik/client/utils/events/AbstractEventHandler.java
similarity index 69%
rename from src/main/java/cz/jzitnik/utils/events/AbstractEventHandler.java
rename to game/src/main/java/cz/jzitnik/client/utils/events/AbstractEventHandler.java
index 229e13a..51dd639 100644
--- a/src/main/java/cz/jzitnik/utils/events/AbstractEventHandler.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/events/AbstractEventHandler.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.utils.events;
+package cz.jzitnik.client.utils.events;
public abstract class AbstractEventHandler {
public abstract void handle(T event);
diff --git a/game/src/main/java/cz/jzitnik/client/utils/events/Event.java b/game/src/main/java/cz/jzitnik/client/utils/events/Event.java
new file mode 100644
index 0000000..5e5fac4
--- /dev/null
+++ b/game/src/main/java/cz/jzitnik/client/utils/events/Event.java
@@ -0,0 +1,4 @@
+package cz.jzitnik.client.utils.events;
+
+public interface Event {
+}
diff --git a/src/main/java/cz/jzitnik/utils/events/EventManager.java b/game/src/main/java/cz/jzitnik/client/utils/events/EventManager.java
similarity index 90%
rename from src/main/java/cz/jzitnik/utils/events/EventManager.java
rename to game/src/main/java/cz/jzitnik/client/utils/events/EventManager.java
index 7437dfa..d1a7b03 100644
--- a/src/main/java/cz/jzitnik/utils/events/EventManager.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/events/EventManager.java
@@ -1,12 +1,12 @@
-package cz.jzitnik.utils.events;
+package cz.jzitnik.client.utils.events;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.EventHandler;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectState;
-import cz.jzitnik.config.ThreadPoolConfig;
-import cz.jzitnik.states.RunningState;
-import cz.jzitnik.utils.DependencyManager;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.EventHandler;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectState;
+import cz.jzitnik.client.config.ThreadPoolConfig;
+import cz.jzitnik.client.states.RunningState;
+import cz.jzitnik.client.utils.DependencyManager;
import lombok.extern.slf4j.Slf4j;
import org.reflections.Reflections;
diff --git a/src/main/java/cz/jzitnik/utils/roomtasks/RoomTask.java b/game/src/main/java/cz/jzitnik/client/utils/roomtasks/RoomTask.java
similarity index 89%
rename from src/main/java/cz/jzitnik/utils/roomtasks/RoomTask.java
rename to game/src/main/java/cz/jzitnik/client/utils/roomtasks/RoomTask.java
index 837c202..5d7b05e 100644
--- a/src/main/java/cz/jzitnik/utils/roomtasks/RoomTask.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/roomtasks/RoomTask.java
@@ -1,4 +1,4 @@
-package cz.jzitnik.utils.roomtasks;
+package cz.jzitnik.client.utils.roomtasks;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
diff --git a/src/main/java/cz/jzitnik/utils/roomtasks/RoomTaskScheduler.java b/game/src/main/java/cz/jzitnik/client/utils/roomtasks/RoomTaskScheduler.java
similarity index 84%
rename from src/main/java/cz/jzitnik/utils/roomtasks/RoomTaskScheduler.java
rename to game/src/main/java/cz/jzitnik/client/utils/roomtasks/RoomTaskScheduler.java
index 74ef556..9252634 100644
--- a/src/main/java/cz/jzitnik/utils/roomtasks/RoomTaskScheduler.java
+++ b/game/src/main/java/cz/jzitnik/client/utils/roomtasks/RoomTaskScheduler.java
@@ -1,13 +1,13 @@
-package cz.jzitnik.utils.roomtasks;
+package cz.jzitnik.client.utils.roomtasks;
-import cz.jzitnik.annotations.Dependency;
-import cz.jzitnik.annotations.PostInit;
-import cz.jzitnik.annotations.injectors.InjectConfig;
-import cz.jzitnik.annotations.injectors.InjectDependency;
-import cz.jzitnik.config.ThreadPoolConfig;
-import cz.jzitnik.game.GameRoom;
-import cz.jzitnik.game.mobs.Mob;
-import cz.jzitnik.utils.DependencyManager;
+import cz.jzitnik.client.annotations.Dependency;
+import cz.jzitnik.client.annotations.PostInit;
+import cz.jzitnik.client.annotations.injectors.InjectConfig;
+import cz.jzitnik.client.annotations.injectors.InjectDependency;
+import cz.jzitnik.client.config.ThreadPoolConfig;
+import cz.jzitnik.client.game.GameRoom;
+import cz.jzitnik.client.game.mobs.Mob;
+import cz.jzitnik.client.utils.DependencyManager;
import lombok.extern.slf4j.Slf4j;
import java.util.HashMap;
diff --git a/src/main/resources/audio.ogg b/game/src/main/resources/audio.ogg
similarity index 100%
rename from src/main/resources/audio.ogg
rename to game/src/main/resources/audio.ogg
diff --git a/src/main/resources/audio/menu.ogg b/game/src/main/resources/audio/menu.ogg
similarity index 100%
rename from src/main/resources/audio/menu.ogg
rename to game/src/main/resources/audio/menu.ogg
diff --git a/src/main/resources/config/core_logic.yaml b/game/src/main/resources/config/core_logic.yaml
similarity index 100%
rename from src/main/resources/config/core_logic.yaml
rename to game/src/main/resources/config/core_logic.yaml
diff --git a/src/main/resources/config/debugging.yaml b/game/src/main/resources/config/debugging.yaml
similarity index 100%
rename from src/main/resources/config/debugging.yaml
rename to game/src/main/resources/config/debugging.yaml
diff --git a/src/main/resources/config/microphone.yaml b/game/src/main/resources/config/microphone.yaml
similarity index 100%
rename from src/main/resources/config/microphone.yaml
rename to game/src/main/resources/config/microphone.yaml
diff --git a/src/main/resources/config/player.yaml b/game/src/main/resources/config/player.yaml
similarity index 100%
rename from src/main/resources/config/player.yaml
rename to game/src/main/resources/config/player.yaml
diff --git a/src/main/resources/config/threads.yaml b/game/src/main/resources/config/threads.yaml
similarity index 100%
rename from src/main/resources/config/threads.yaml
rename to game/src/main/resources/config/threads.yaml
diff --git a/src/main/resources/fonts/default.ttf b/game/src/main/resources/fonts/default.ttf
similarity index 100%
rename from src/main/resources/fonts/default.ttf
rename to game/src/main/resources/fonts/default.ttf
diff --git a/src/main/resources/logback.xml b/game/src/main/resources/logback.xml
similarity index 100%
rename from src/main/resources/logback.xml
rename to game/src/main/resources/logback.xml
diff --git a/src/main/resources/menu.png b/game/src/main/resources/menu.png
similarity index 100%
rename from src/main/resources/menu.png
rename to game/src/main/resources/menu.png
diff --git a/src/main/resources/setup/player.yaml b/game/src/main/resources/setup/player.yaml
similarity index 100%
rename from src/main/resources/setup/player.yaml
rename to game/src/main/resources/setup/player.yaml
diff --git a/src/main/resources/setup/rooms.yaml b/game/src/main/resources/setup/rooms.yaml
similarity index 99%
rename from src/main/resources/setup/rooms.yaml
rename to game/src/main/resources/setup/rooms.yaml
index af1a388..8f3e353 100644
--- a/src/main/resources/setup/rooms.yaml
+++ b/game/src/main/resources/setup/rooms.yaml
@@ -58,7 +58,7 @@
end:
x: 140
y: 67
- west: "mainroom"
+ west: "spawn"
east: null
north: "klicnik"
south: null
diff --git a/src/main/resources/textures/chest.png b/game/src/main/resources/textures/chest.png
similarity index 100%
rename from src/main/resources/textures/chest.png
rename to game/src/main/resources/textures/chest.png
diff --git a/src/main/resources/textures/food/apple.png b/game/src/main/resources/textures/food/apple.png
similarity index 100%
rename from src/main/resources/textures/food/apple.png
rename to game/src/main/resources/textures/food/apple.png
diff --git a/src/main/resources/textures/player/back.png b/game/src/main/resources/textures/player/back.png
similarity index 100%
rename from src/main/resources/textures/player/back.png
rename to game/src/main/resources/textures/player/back.png
diff --git a/src/main/resources/textures/player/front.png b/game/src/main/resources/textures/player/front.png
similarity index 100%
rename from src/main/resources/textures/player/front.png
rename to game/src/main/resources/textures/player/front.png
diff --git a/src/main/resources/textures/player/left.png b/game/src/main/resources/textures/player/left.png
similarity index 100%
rename from src/main/resources/textures/player/left.png
rename to game/src/main/resources/textures/player/left.png
diff --git a/src/main/resources/textures/player/right.png b/game/src/main/resources/textures/player/right.png
similarity index 100%
rename from src/main/resources/textures/player/right.png
rename to game/src/main/resources/textures/player/right.png
diff --git a/src/main/resources/textures/rooms/1.png b/game/src/main/resources/textures/rooms/1.png
similarity index 100%
rename from src/main/resources/textures/rooms/1.png
rename to game/src/main/resources/textures/rooms/1.png
diff --git a/src/main/resources/textures/rooms/2.png b/game/src/main/resources/textures/rooms/2.png
similarity index 100%
rename from src/main/resources/textures/rooms/2.png
rename to game/src/main/resources/textures/rooms/2.png
diff --git a/src/main/resources/textures/rooms/3.png b/game/src/main/resources/textures/rooms/3.png
similarity index 100%
rename from src/main/resources/textures/rooms/3.png
rename to game/src/main/resources/textures/rooms/3.png
diff --git a/src/main/resources/textures/rooms/4.png b/game/src/main/resources/textures/rooms/4.png
similarity index 100%
rename from src/main/resources/textures/rooms/4.png
rename to game/src/main/resources/textures/rooms/4.png
diff --git a/src/main/resources/textures/rooms/doors.png b/game/src/main/resources/textures/rooms/doors.png
similarity index 100%
rename from src/main/resources/textures/rooms/doors.png
rename to game/src/main/resources/textures/rooms/doors.png
diff --git a/src/main/resources/textures/rooms/frozen.png b/game/src/main/resources/textures/rooms/frozen.png
similarity index 100%
rename from src/main/resources/textures/rooms/frozen.png
rename to game/src/main/resources/textures/rooms/frozen.png
diff --git a/src/main/resources/textures/tools/wooden_sword.png b/game/src/main/resources/textures/tools/wooden_sword.png
similarity index 100%
rename from src/main/resources/textures/tools/wooden_sword.png
rename to game/src/main/resources/textures/tools/wooden_sword.png
diff --git a/src/main/resources/textures/ui/heart.png b/game/src/main/resources/textures/ui/heart.png
similarity index 100%
rename from src/main/resources/textures/ui/heart.png
rename to game/src/main/resources/textures/ui/heart.png
diff --git a/src/main/resources/textures/ui/stamina.png b/game/src/main/resources/textures/ui/stamina.png
similarity index 100%
rename from src/main/resources/textures/ui/stamina.png
rename to game/src/main/resources/textures/ui/stamina.png
diff --git a/src/main/resources/video.mp4 b/game/src/main/resources/video.mp4
similarity index 100%
rename from src/main/resources/video.mp4
rename to game/src/main/resources/video.mp4
diff --git a/pom.xml b/pom.xml
index cedfc49..3273b29 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,180 +1,24 @@
-
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+ http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
4.0.0
cz.jzitnik
- game
+ game-parent
1.0-SNAPSHOT
+ pom
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.11.0
-
-
-
- org.projectlombok
- lombok
- 1.18.38
-
-
- 25
- 25
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.2.1
-
-
- package
-
- shade
-
-
-
-
-
-
- cz.jzitnik.Main
-
-
- false
- false
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- 3.1.0
-
-
-
- java
-
-
-
-
- cz.jzitnik.Main
- compile
-
-
-
-
-
+
+ common
+ server
+ game
+
- 22
- 22
+ 25
+ 25
UTF-8
-
-
-
- be.0110.repo-releases
- 0110.be repository
- https://mvn.0110.be/releases
-
-
-
-
-
- org.projectlombok
- lombok
- 1.18.42
- provided
-
-
-
- org.reflections
- reflections
- 0.10.2
-
-
-
- com.google.guava
- guava
- 33.5.0-jre
-
-
-
- tools.jackson.core
- jackson-databind
- 3.0.4
-
-
-
- tools.jackson.dataformat
- jackson-dataformat-yaml
- 3.0.4
-
-
-
- org.junit.jupiter
- junit-jupiter
- 6.0.2
-
-
-
- org.junit.jupiter
- junit-jupiter-api
- 6.0.2
- test
-
-
-
- org.slf4j
- slf4j-api
- 2.0.17
-
-
-
- ch.qos.logback
- logback-classic
- 1.5.25
-
-
-
- com.github.trilarion
- java-vorbis-support
- 1.2.1
-
-
-
- com.googlecode.lanterna
- lanterna
- 3.1.3
-
-
-
- org.bytedeco
- javacv-platform
- 1.5.12
-
-
-
- org.bytedeco
- ffmpeg-platform
- 7.1.1-1.5.12
-
-
-
- be.tarsos.dsp
- core
- 2.5
-
-
-
- be.tarsos.dsp
- jvm
- 2.5
-
-
diff --git a/server/.gitignore b/server/.gitignore
new file mode 100644
index 0000000..480bdf5
--- /dev/null
+++ b/server/.gitignore
@@ -0,0 +1,39 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+.kotlin
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/server/.idea/.gitignore b/server/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/server/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/server/.idea/encodings.xml b/server/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/server/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/.idea/misc.xml b/server/.idea/misc.xml
new file mode 100644
index 0000000..4878ef2
--- /dev/null
+++ b/server/.idea/misc.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/.idea/vcs.xml b/server/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/server/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/server/pom.xml b/server/pom.xml
new file mode 100644
index 0000000..b335cca
--- /dev/null
+++ b/server/pom.xml
@@ -0,0 +1,22 @@
+
+
+ 4.0.0
+
+
+ cz.jzitnik
+ game-parent
+ 1.0-SNAPSHOT
+
+
+ server
+
+
+
+ cz.jzitnik
+ common
+ 1.0-SNAPSHOT
+
+
+
diff --git a/server/src/main/java/cz/jzitnik/server/Main.java b/server/src/main/java/cz/jzitnik/server/Main.java
new file mode 100644
index 0000000..64fd88d
--- /dev/null
+++ b/server/src/main/java/cz/jzitnik/server/Main.java
@@ -0,0 +1,7 @@
+package cz.jzitnik.server;
+
+public class Main {
+ static void main() {
+
+ }
+}
diff --git a/src/main/java/cz/jzitnik/events/DroppedItemRerender.java b/src/main/java/cz/jzitnik/events/DroppedItemRerender.java
deleted file mode 100644
index df80a81..0000000
--- a/src/main/java/cz/jzitnik/events/DroppedItemRerender.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package cz.jzitnik.events;
-
-import cz.jzitnik.game.objects.DroppedItem;
-import cz.jzitnik.utils.events.Event;
-
-public record DroppedItemRerender(DroppedItem droppedItem) implements Event {
-}
diff --git a/src/main/java/cz/jzitnik/events/FullRedrawEvent.java b/src/main/java/cz/jzitnik/events/FullRedrawEvent.java
deleted file mode 100644
index 745f928..0000000
--- a/src/main/java/cz/jzitnik/events/FullRedrawEvent.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package cz.jzitnik.events;
-
-import cz.jzitnik.utils.events.Event;
-
-public class FullRedrawEvent implements Event {
-}
diff --git a/src/main/java/cz/jzitnik/events/InventoryRerender.java b/src/main/java/cz/jzitnik/events/InventoryRerender.java
deleted file mode 100644
index f51cb6e..0000000
--- a/src/main/java/cz/jzitnik/events/InventoryRerender.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package cz.jzitnik.events;
-
-import cz.jzitnik.utils.events.Event;
-
-public class InventoryRerender implements Event {
-}
diff --git a/src/main/java/cz/jzitnik/events/RenderStats.java b/src/main/java/cz/jzitnik/events/RenderStats.java
deleted file mode 100644
index b44b62b..0000000
--- a/src/main/java/cz/jzitnik/events/RenderStats.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package cz.jzitnik.events;
-
-import cz.jzitnik.utils.events.Event;
-
-public class RenderStats implements Event {
-}
diff --git a/src/main/java/cz/jzitnik/events/RoomChangeEvent.java b/src/main/java/cz/jzitnik/events/RoomChangeEvent.java
deleted file mode 100644
index 4ca1766..0000000
--- a/src/main/java/cz/jzitnik/events/RoomChangeEvent.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package cz.jzitnik.events;
-
-import cz.jzitnik.events.handlers.FullRoomDrawHandler;
-import cz.jzitnik.utils.events.Event;
-
-public record RoomChangeEvent(FullRoomDrawHandler.DoorPosition door) implements Event {
-}
diff --git a/src/main/java/cz/jzitnik/events/TerminalTooSmallEvent.java b/src/main/java/cz/jzitnik/events/TerminalTooSmallEvent.java
deleted file mode 100644
index 79af32f..0000000
--- a/src/main/java/cz/jzitnik/events/TerminalTooSmallEvent.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package cz.jzitnik.events;
-
-import cz.jzitnik.utils.events.Event;
-
-public class TerminalTooSmallEvent implements Event {
-}
diff --git a/src/main/java/cz/jzitnik/states/PlayerConfig.java b/src/main/java/cz/jzitnik/states/PlayerConfig.java
deleted file mode 100644
index b44ceb1..0000000
--- a/src/main/java/cz/jzitnik/states/PlayerConfig.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package cz.jzitnik.states;
-
-import cz.jzitnik.annotations.State;
-
-@State
-public class PlayerConfig {
- private int masterVolume = 100;
-}
diff --git a/src/main/java/cz/jzitnik/utils/events/Event.java b/src/main/java/cz/jzitnik/utils/events/Event.java
deleted file mode 100644
index f184fa6..0000000
--- a/src/main/java/cz/jzitnik/utils/events/Event.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package cz.jzitnik.utils.events;
-
-public interface Event {
-}