From b1442f04bfa5b3bac31e8b35f5feeb8091463909 Mon Sep 17 00:00:00 2001 From: Samiker <168203446+Samiker69@users.noreply.github.com> Date: Sun, 1 Feb 2026 22:34:49 +0300 Subject: [PATCH] =?UTF-8?q?Refactor=20(project):=20=D0=94=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D1=81=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B0=D0=BD=D0=B4=D1=80=D0=BE=D0=B8=D0=B4=D0=B0?= =?UTF-8?q?=20-=20src/main=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BD=D0=B0=205=20=D1=87=D0=B0=D1=81=D1=82?= =?UTF-8?q?=D0=B5=D0=B9:=20=20=20-=20`src/main/.../client`=20->=20core=20?= =?UTF-8?q?=20=20-=20`src/main/.../core`=20->=20shared=20=20=20-=20`src/ma?= =?UTF-8?q?in/.../server`=20->=20server=20=20=20-=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D1=8B=D0=B5:=20=20=20=20=20-=20android=20-=20=D1=81=D0=BF?= =?UTF-8?q?=D0=B5=D1=86=D0=B8=D1=84=D0=B8=D1=87=D0=BD=D0=BE=D0=B5=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=B4=D1=80=D0=BE=D0=B8=D0=B4=D0=B0=20=20=20=20?= =?UTF-8?q?=20-=20lwjgl3=20-=20=D1=81=D0=BF=D0=B5=D1=86=D0=B8=D1=84=D0=B8?= =?UTF-8?q?=D1=87=D0=BD=D0=BE=D0=B5=20=D0=B4=D0=BB=D1=8F=20=D0=B4=D0=B5?= =?UTF-8?q?=D1=81=D0=BA=D1=82=D0=BE=D0=BF=D0=B0=20-=20=D0=94=D0=BE=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=D0=BD=20=D0=B4=D0=B5=D1=82=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=20=D0=BC=D0=BE=D0=B1=D0=B8=D0=BB=D1=8C=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D1=81=D1=80=D0=B5=D0=B4=D1=8B=20`Main.isMobile`=20-?= =?UTF-8?q?=20=D1=8D=D1=82=D0=BE=20=D0=BF=D0=B8=D0=B7=D0=B4=D0=B5=D1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/gradle.yml | 37 ++--- .idea/gradle.xml | 5 + .idea/misc.xml | 2 +- README.md | 7 + android/build.gradle.kts | 105 +++++++++++++ android/src/main/AndroidManifest.xml | 21 +++ .../theendlessweave/AndroidLauncher.java | 44 ++++++ .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 6938 bytes android/src/main/res/values/strings.xml | 4 + android/src/main/res/values/styles.xml | 8 + .../assets => assets}/textures/tiles/door.png | Bin .../textures/tiles/floor_1.png | Bin .../assets => assets}/textures/tiles/wall.png | Bin .../assets => assets}/ui/default.fnt | 0 .../assets => assets}/ui/default.png | Bin .../assets => assets}/ui/uiskin.atlas | 0 .../assets => assets}/ui/uiskin.json | 0 .../assets => assets}/ui/uiskin.png | Bin build.gradle.kts | 142 +++--------------- core/build.gradle.kts | 62 ++++++++ .../xyz/samiker/theendlessweave/Main.java | 14 +- .../assetsManager}/AssetLoadCallback.java | 2 +- .../assetsManager}/ManifestAssetManager.java | 2 +- .../assetsManager}/ResourceManifest.java | 2 +- .../assetsManager}/SoundManager.java | 2 +- .../assetsManager}/TextureManager.java | 2 +- .../theendlessweave}/custom/InputManager.java | 6 +- .../theendlessweave}/network/GameClient.java | 14 +- .../theendlessweave}/screens/AssetAware.java | 4 +- .../screens/GameDataAware.java | 7 + .../theendlessweave}/screens/GameScreen.java | 47 +++--- .../screens/GenerationScreen.java | 8 +- .../screens/LoadingScreen.java | 4 +- .../screens/MainMenuScreen.java | 4 +- .../screens/SettingsScreen.java | 8 +- .../systems/CameraSystem.java | 18 +-- .../systems/ClientNetworkEventSystem.java | 22 +-- .../systems/ClientNetworkReceiverSystem.java | 32 ++-- .../systems/ClientProjectileSystem.java | 18 +-- .../systems/DebugRenderSystem.java | 10 +- .../systems/HudRenderSystem.java | 16 +- .../theendlessweave}/systems/InputSystem.java | 19 ++- .../systems/RenderSystem.java | 22 +-- .../systems/TileRenderSystem.java | 17 +-- .../systems/WorldUIRenderer.java | 12 +- gradle.properties | 5 + local.properties | 1 + lwjgl3/build.gradle.kts | 36 +++++ .../theendlessweave}/ClientLauncher.java | 12 +- .../xyz/samiker/theendlessweave/Launcher.java | 3 - server/build.gradle.kts | 21 +++ .../theendlessweave}/ServerLauncher.java | 4 +- .../samiker/theendlessweave}/ServerLoop.java | 10 +- .../theendlessweave}/network/GameServer.java | 29 ++-- .../theendlessweave}/systems/AISystem.java | 30 ++-- .../systems/AttackSystem.java | 18 +-- .../systems/DamageSystem.java | 14 +- .../systems/MovementSystem.java | 24 +-- .../systems/ProjectileSystem.java | 18 +-- .../systems/ServerDebugSystem.java | 10 +- .../systems/ServerEntityEventSystem.java | 22 +-- .../systems/ServerInputSystem.java | 22 +-- .../systems/ServerSnapshotSenderSystem.java | 22 +-- .../systems/WeaponSystem.java | 10 +- settings.gradle.kts | 1 + shared/build.gradle.kts | 13 ++ .../samiker/theendlessweave}/GameData.java | 4 +- .../entities/EntitiesFabric.java | 4 +- .../theendlessweave}/entities/Entity.java | 4 +- .../entities/ProjectilePool.java | 10 +- .../entities/components/AIComponent.java | 4 +- .../entities/components/AttackComponent.java | 2 +- .../components/CameraTargetComponent.java | 2 +- .../entities/components/Component.java | 4 + .../entities/components/ComponentType.java | 2 +- .../entities/components/HealthComponent.java | 2 +- .../entities/components/LevelComponent.java | 2 +- .../entities/components/NameComponent.java | 2 +- .../components/PathfindingComponent.java | 6 +- .../entities/components/PatternConfig.java | 2 +- .../components/PlayerTagComponent.java | 4 + .../components/PositionComponent.java | 2 +- .../components/ProjectileComponent.java | 4 +- .../entities/components/RenderComponent.java | 2 +- .../components/RotationComponent.java | 2 +- .../entities/components/ScaleComponent.java | 2 +- .../entities/components/ScoreComponent.java | 2 +- .../components/ShowNameTagComponent.java | 2 +- .../components/VelocityComponent.java | 2 +- .../entities/components/WeaponComponent.java | 2 +- .../gamemap/EnemyFactory.java | 16 +- .../gamemap/EnemySpawnData.java | 2 +- .../theendlessweave}/gamemap/GameMap.java | 10 +- .../gamemap/MapGenerator.java | 12 +- .../gamemap/MapGeneratorSettings.java | 2 +- .../theendlessweave}/gamemap/Room.java | 4 +- .../gamemap/RoomObjectPlacer.java | 8 +- .../gamemap/RoomShapeGenerator.java | 8 +- .../theendlessweave}/gamemap/RoomType.java | 2 +- .../samiker/theendlessweave}/logic/Game.java | 32 ++-- .../theendlessweave}/logic/GameState.java | 2 +- .../samiker/theendlessweave}/logic/Loop.java | 6 +- .../logic/PerformanceMonitor.java | 6 +- .../logic/ai/EntityAIState.java | 2 +- .../logic/ai/LineOfSightUtil.java | 10 +- .../logic/ai/astar/AStarPathfinder.java | 8 +- .../logic/ai/astar/PathNode.java | 6 +- .../logic/utils/SpatialGrid.java | 10 +- .../network/NetworkRegister.java | 16 +- .../network/packets/Packet.java | 4 + .../network/packets/PacketDestroyEntity.java | 2 +- .../network/packets/PacketEntityUpdate.java | 2 +- .../network/packets/PacketInput.java | 2 +- .../network/packets/PacketLoginRequest.java | 4 +- .../network/packets/PacketLoginResponse.java | 4 +- .../network/packets/PacketSnapshot.java | 2 +- .../network/packets/PacketSpawnEntity.java | 6 +- .../network/utils/BitFlags.java | 2 +- .../network/utils/PacketPool.java | 6 +- .../settings/ClientSettings.java | 2 +- .../settings/ServerSettings.java | 2 +- .../settings/SettingsManager.java | 4 +- .../theendlessweave/systems/ISystem.java | 8 + .../samiker/theendlessweave}/tile/Tile.java | 2 +- .../theendlessweave}/tile/TileObject.java | 2 +- .../theendlessweave}/tile/TileType.java | 2 +- .../theendlessweave}/tile/TileUtils.java | 4 +- .../samiker/theendlessweave}/utils/Array.java | 2 +- .../theendlessweave}/utils/Constants.java | 2 +- .../theendlessweave}/utils/IntObjectMap.java | 2 +- .../client/screens/GameDataAware.java | 7 - .../core/entities/components/Component.java | 4 - .../components/PlayerTagComponent.java | 4 - .../core/network/packets/Packet.java | 4 - .../theendlessweave/core/systems/ISystem.java | 8 - 135 files changed, 809 insertions(+), 594 deletions(-) create mode 100644 android/build.gradle.kts create mode 100644 android/src/main/AndroidManifest.xml create mode 100644 android/src/main/java/xyz/samiker/theendlessweave/AndroidLauncher.java create mode 100644 android/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/src/main/res/values/strings.xml create mode 100644 android/src/main/res/values/styles.xml rename {src/main/resources/xyz/samiker/theendlessweave/assets => assets}/textures/tiles/door.png (100%) rename {src/main/resources/xyz/samiker/theendlessweave/assets => assets}/textures/tiles/floor_1.png (100%) rename {src/main/resources/xyz/samiker/theendlessweave/assets => assets}/textures/tiles/wall.png (100%) rename {src/main/resources/xyz/samiker/theendlessweave/assets => assets}/ui/default.fnt (100%) rename {src/main/resources/xyz/samiker/theendlessweave/assets => assets}/ui/default.png (100%) rename {src/main/resources/xyz/samiker/theendlessweave/assets => assets}/ui/uiskin.atlas (100%) rename {src/main/resources/xyz/samiker/theendlessweave/assets => assets}/ui/uiskin.json (100%) rename {src/main/resources/xyz/samiker/theendlessweave/assets => assets}/ui/uiskin.png (100%) create mode 100644 core/build.gradle.kts rename {src => core/src}/main/java/xyz/samiker/theendlessweave/Main.java (74%) rename {src/main/java/xyz/samiker/theendlessweave/client/assets => core/src/main/java/xyz/samiker/theendlessweave/assetsManager}/AssetLoadCallback.java (88%) rename {src/main/java/xyz/samiker/theendlessweave/client/assets => core/src/main/java/xyz/samiker/theendlessweave/assetsManager}/ManifestAssetManager.java (98%) rename {src/main/java/xyz/samiker/theendlessweave/client/assets => core/src/main/java/xyz/samiker/theendlessweave/assetsManager}/ResourceManifest.java (98%) rename {src/main/java/xyz/samiker/theendlessweave/client/assets => core/src/main/java/xyz/samiker/theendlessweave/assetsManager}/SoundManager.java (96%) rename {src/main/java/xyz/samiker/theendlessweave/client/assets => core/src/main/java/xyz/samiker/theendlessweave/assetsManager}/TextureManager.java (90%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/custom/InputManager.java (98%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/network/GameClient.java (83%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/screens/AssetAware.java (64%) create mode 100644 core/src/main/java/xyz/samiker/theendlessweave/screens/GameDataAware.java rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/screens/GameScreen.java (89%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/screens/GenerationScreen.java (98%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/screens/LoadingScreen.java (93%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/screens/MainMenuScreen.java (94%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/screens/SettingsScreen.java (97%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/systems/CameraSystem.java (85%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/systems/ClientNetworkEventSystem.java (82%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/systems/ClientNetworkReceiverSystem.java (75%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/systems/ClientProjectileSystem.java (90%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/systems/DebugRenderSystem.java (71%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/systems/HudRenderSystem.java (82%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/systems/InputSystem.java (81%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/systems/RenderSystem.java (79%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/systems/TileRenderSystem.java (84%) rename {src/main/java/xyz/samiker/theendlessweave/client => core/src/main/java/xyz/samiker/theendlessweave}/systems/WorldUIRenderer.java (90%) create mode 100644 gradle.properties create mode 100644 local.properties create mode 100644 lwjgl3/build.gradle.kts rename {src/main/java/xyz/samiker/theendlessweave/client => lwjgl3/src/main/java/xyz/samiker/theendlessweave}/ClientLauncher.java (85%) rename {src => lwjgl3/src}/main/java/xyz/samiker/theendlessweave/Launcher.java (71%) create mode 100644 server/build.gradle.kts rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/ServerLauncher.java (89%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/ServerLoop.java (88%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/network/GameServer.java (83%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/systems/AISystem.java (88%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/systems/AttackSystem.java (94%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/systems/DamageSystem.java (90%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/systems/MovementSystem.java (90%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/systems/ProjectileSystem.java (90%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/systems/ServerDebugSystem.java (66%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/systems/ServerEntityEventSystem.java (75%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/systems/ServerInputSystem.java (78%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/systems/ServerSnapshotSenderSystem.java (77%) rename {src/main/java/xyz/samiker/theendlessweave/server => server/src/main/java/xyz/samiker/theendlessweave}/systems/WeaponSystem.java (58%) create mode 100644 shared/build.gradle.kts rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/GameData.java (93%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/EntitiesFabric.java (95%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/Entity.java (93%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/ProjectilePool.java (68%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/AIComponent.java (94%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/AttackComponent.java (96%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/CameraTargetComponent.java (50%) create mode 100644 shared/src/main/java/xyz/samiker/theendlessweave/entities/components/Component.java rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/ComponentType.java (84%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/HealthComponent.java (90%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/LevelComponent.java (95%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/NameComponent.java (71%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/PathfindingComponent.java (90%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/PatternConfig.java (98%) create mode 100644 shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PlayerTagComponent.java rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/PositionComponent.java (81%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/ProjectileComponent.java (95%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/RenderComponent.java (86%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/RotationComponent.java (72%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/ScaleComponent.java (79%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/ScoreComponent.java (81%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/ShowNameTagComponent.java (72%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/VelocityComponent.java (88%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/entities/components/WeaponComponent.java (85%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/gamemap/EnemyFactory.java (83%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/gamemap/EnemySpawnData.java (97%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/gamemap/GameMap.java (90%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/gamemap/MapGenerator.java (98%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/gamemap/MapGeneratorSettings.java (99%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/gamemap/Room.java (97%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/gamemap/RoomObjectPlacer.java (95%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/gamemap/RoomShapeGenerator.java (97%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/gamemap/RoomType.java (97%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/logic/Game.java (87%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/logic/GameState.java (57%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/logic/Loop.java (91%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/logic/PerformanceMonitor.java (97%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/logic/ai/EntityAIState.java (62%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/logic/ai/LineOfSightUtil.java (91%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/logic/ai/astar/AStarPathfinder.java (97%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/logic/ai/astar/PathNode.java (88%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/logic/utils/SpatialGrid.java (88%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/network/NetworkRegister.java (67%) create mode 100644 shared/src/main/java/xyz/samiker/theendlessweave/network/packets/Packet.java rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/network/packets/PacketDestroyEntity.java (55%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/network/packets/PacketEntityUpdate.java (96%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/network/packets/PacketInput.java (71%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/network/packets/PacketLoginRequest.java (89%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/network/packets/PacketLoginResponse.java (62%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/network/packets/PacketSnapshot.java (57%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/network/packets/PacketSpawnEntity.java (92%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/network/utils/BitFlags.java (81%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/network/utils/PacketPool.java (84%) rename {src/main/java/xyz/samiker/theendlessweave/client => shared/src/main/java/xyz/samiker/theendlessweave}/settings/ClientSettings.java (94%) rename {src/main/java/xyz/samiker/theendlessweave/server => shared/src/main/java/xyz/samiker/theendlessweave}/settings/ServerSettings.java (87%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/settings/SettingsManager.java (97%) create mode 100644 shared/src/main/java/xyz/samiker/theendlessweave/systems/ISystem.java rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/tile/Tile.java (96%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/tile/TileObject.java (97%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/tile/TileType.java (58%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/tile/TileUtils.java (70%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/utils/Array.java (98%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/utils/Constants.java (92%) rename {src/main/java/xyz/samiker/theendlessweave/core => shared/src/main/java/xyz/samiker/theendlessweave}/utils/IntObjectMap.java (97%) delete mode 100644 src/main/java/xyz/samiker/theendlessweave/client/screens/GameDataAware.java delete mode 100644 src/main/java/xyz/samiker/theendlessweave/core/entities/components/Component.java delete mode 100644 src/main/java/xyz/samiker/theendlessweave/core/entities/components/PlayerTagComponent.java delete mode 100644 src/main/java/xyz/samiker/theendlessweave/core/network/packets/Packet.java delete mode 100644 src/main/java/xyz/samiker/theendlessweave/core/systems/ISystem.java diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml index cd7f874..8ac1d14 100644 --- a/.github/workflows/gradle.yml +++ b/.github/workflows/gradle.yml @@ -1,4 +1,4 @@ -name: Build Multi-Platform +name: Build and upload project on: push: @@ -9,35 +9,30 @@ on: jobs: build: runs-on: ubuntu-latest - name: Build Universal Jar - + name: Build All steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up JDK 21 - uses: actions/setup-java@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 with: java-version: '21' distribution: 'temurin' + - uses: gradle/actions/setup-gradle@v4 - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - - name: Build Client (ShadowJar) & Server - run: ./gradlew shadowJar buildServer + - name: Build Desktop & Server + run: ./gradlew :lwjgl3:shadowJar :server:buildServer - name: Upload Client Shadow Jar uses: actions/upload-artifact@v4 with: - name: TheEndlessWeave-Client-Universal - path: build/libs/*-client.jar - + name: TheEndlessWeave-Desktop + path: lwjgl3/build/libs/*-client.jar - name: Upload Server Jar uses: actions/upload-artifact@v4 with: - name: TheEndlessWeave-Server-x64 - path: build/libs/*-server.jar \ No newline at end of file + name: TheEndlessWeave-Server + path: lwjgl3/build/libs/*-server.jar + - name: Upload Android APK + uses: actions/upload-artifact@v4 + with: + name: TheEndlessWeave-Android + path: android/build/outputs/apk/debug/*.apk \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index ce1c62c..df4118f 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -8,6 +8,11 @@ diff --git a/.idea/misc.xml b/.idea/misc.xml index f0c744c..43b1638 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/README.md b/README.md index fac1f6f..3e6bf5d 100644 --- a/README.md +++ b/README.md @@ -50,10 +50,17 @@ java -jar filename-client.jar --server - [X] создать ветку и настроить `build.gradle.kts`. - Баги/проблемы (исправить) - ? Из-за написанного кода под javafx, на клиенте могут возникать проблемы с логикой из-за другой системы координат в libgdx, например, при просчёте логики полёта пуль, необходимо домножать скорость на размер тайлов. + - [ ] коллизия/рендер пулек поломались и они могут заходить сквозь стены. + - ? вероятно при нестандарных размерах экрана рендер ломается. - [X] сервер не удаляет игрока, если он отключился. - [ ] клиент рендерит других игроков как врагов. - [X] ui не масштабируется как надо при изменении размера окна. - [ ] при очень высоких значениях fps плавное движение камеры менее заметно. + - [ ] при fullscreen размер окна равен разрешению в настройках + - [ ] если на мобильном устройстве поменять разрешение в настройках то игра крашнет + - solution: скрыть для мобильных устройств настройки разрешения. + - сделать в Main метод isMobile для проверки среды без и с учётом выбранного управления + - [ ] Сделать возможность подключения к внешним серверам. Обезопасить интегрированный сервер от не локальных подключений. - ! Вернуться к фазовым планам. --- diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..03d11f0 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,105 @@ +plugins { + id("com.android.application") + kotlin("android") +} +evaluationDependsOn(":core") + +val gdxVersion: String by project + +val natives = configurations.create("natives") + +android { + namespace = "xyz.samiker.theendlessweave" + compileSdk = 35 + + defaultConfig { + applicationId = "xyz.samiker.theendlessweave" + minSdk = 28 + targetSdk = 35 + versionCode = 1 + versionName = "0.4.0" + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + isCoreLibraryDesugaringEnabled = true + } + + kotlinOptions { + jvmTarget = "1.8" + } + + sourceSets { + getByName("main") { + assets.srcDirs("../assets") + jniLibs.srcDirs("libs") + + val coreProjectDir = project(":core").projectDir + assets.srcDir("$coreProjectDir/build/generated/resources") + } + } + + applicationVariants.all { + val variant = this + variant.outputs.all { + val output = this as com.android.build.gradle.internal.api.ApkVariantOutputImpl + val name = "TheEndlessWeave.apk" + output.outputFileName = name + } + } +} + +dependencies { + implementation(project(":core")) + implementation("com.badlogicgames.gdx:gdx-backend-android:$gdxVersion") + + add("natives", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a") + add("natives", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a") + add("natives", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86") + add("natives", "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64") + + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") +} + +tasks.register("copyAndroidNatives") { + doFirst { + file("libs/armeabi-v7a/").mkdirs() + file("libs/arm64-v8a/").mkdirs() + file("libs/x86_64/").mkdirs() + file("libs/x86/").mkdirs() + + natives.files.forEach { jar -> + var outputDir: File? = null + if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a/") + if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a/") + if (jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64/") + if (jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86/") + + if (outputDir != null) { + copy { + from(zipTree(jar)) + into(outputDir) + include("*.so") + } + } + } + } +} + +tasks.matching { it.name.contains("merge") && it.name.contains("JniLibFolders") }.configureEach { + dependsOn("copyAndroidNatives") +} + +val generateManifestTask = project(":core").tasks.named("generateResourceManifest") + +tasks.withType().configureEach { + dependsOn(generateManifestTask) +} + +afterEvaluate { + val genTask = project(":core").tasks.named("generateResourceManifest") + tasks.withType().configureEach { + dependsOn(genTask) + } +} \ No newline at end of file diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000..9d21d1e --- /dev/null +++ b/android/src/main/AndroidManifest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/android/src/main/java/xyz/samiker/theendlessweave/AndroidLauncher.java b/android/src/main/java/xyz/samiker/theendlessweave/AndroidLauncher.java new file mode 100644 index 0000000..4cec128 --- /dev/null +++ b/android/src/main/java/xyz/samiker/theendlessweave/AndroidLauncher.java @@ -0,0 +1,44 @@ +package xyz.samiker.theendlessweave; + +import android.os.Bundle; +import com.badlogic.gdx.backends.android.AndroidApplication; +import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; +import xyz.samiker.theendlessweave.Main; + +import java.io.File; +import java.io.PrintWriter; +import java.io.FileOutputStream; +import java.util.Date; + +public class AndroidLauncher extends AndroidApplication { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); + + config.useAccelerometer = false; + config.useCompass = false; + config.useImmersiveMode = true; + + initialize(new Main(), config); + + Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { + @Override + public void uncaughtException(Thread thread, Throwable throwable) { + logError(throwable); + System.exit(1); + } + }); + } + private void logError(Throwable t) { + File logFile = new File(getExternalFilesDir(null), "crash_log.txt"); + try (PrintWriter pw = new PrintWriter(new FileOutputStream(logFile, true))) { + pw.println("\n--- CRASH ---"); + pw.println("Date: " + new Date()); + t.printStackTrace(pw); + pw.flush(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/android/src/main/res/mipmap-mdpi/ic_launcher.png b/android/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..3c75ef0fdf8f80adf44d64a9a19dc8758835c53b GIT binary patch literal 6938 zcmV+#8|CDQP)004&$004{-009bl004Z&003_)009S%002Da000@!k>5z(000b3 zX+uL$Nkc;*P;zf(X>4Tx09eDVS7%sL$r_$hQXvEgL_kXDO%Rb1KuQQLfb=4WN=O2P z5@SM8v7?I$u3bd1qN^Z^9T2f$R~E(I7Yi!Nx~Pj?xf23dcJGh-Ja?XF&b;THZ{GR7 z@60)K1^{|HUnd~%*tiC03bBZCe?T&2Vr zD%_;RX)1iF&n7O03-MzB$m)E)ECT?IZpgFp1sPC>4x+?aW z|5cG4&r#`P+Lg4Z;Bz1OOILz?udof-E3z?W*sBcdDKszy~sr0Yt!|pBWgD z*w-V0*H};h{)9*bb>x&Nv(Q7>MJWJ>dzVjqs3gjnGcGH9=e``^n4EpdIQ5_2(z;`~2WmP}3Fn$GxFC zRK}UO0dT-w;5;1M7tZVoS#H1I%B-+{(*7ZW@19V<9mR=)Qif3cC^kQj)UeZV9aK@~ z`uqH-d`%n7H+Qh-=lQwcWnT!}u%9il1=v3940aqlhc#jKfQ22!8n71Zuo4fhxW|1f zZeX^UK7X>Ij`$z*4Ln(8Cgn~wPMuDlRegD)DS675kvma3RVL2J%wuujjv-?4Bm&1_ zEN3TYR{)gzkLvUGCc1B5L6|MyxVe7-;C-~WxA)LDF7zk>d)(nC;ovvUh7GqCH2}^Y z6ewi*Dh^j(2=L26hi{)g+~3TB4UESbxB)NV2LeGThy-yU35*bJ(`POul$gC=ksoCX)bC2$Sgfvcwjya3(cE%<~W2nnGf3`8F>K`aq_ z#2H~DK1d)Ej>I5INGg(nNDu`w9hr-iAj^?*WD`=2>_HA9$B}bL8*&SIfOI0Sk&h^b zs-rrn5o(1FN7*O`4MXG5acBlQ2`xb9p^MQnv=ZHc)}hDI3+Oep9esiJU;tCYn3yT% zfUz+y7KtTe>6i?gi4|j|SS41AHNxk71#8E;un#y9XW%T{0j}T>JRTR|lkl1NBD@^0 z!t3yp_!ayC-i?1H&L|Q}IK{`shOzI%LC##W7$j;;- zaxz&$E+m(dx08>MFO#2=KT$L(mK0A)Bt=M>N?AhLLTRL2q;ya|QMIVnRBvh=HH$ij zT1Ks%~mT@+pTt1?Sa|{b!~M!b*_4fxbKP2 z&}cL(njbBhmPcDmtEQcx-KV|RU}!jM@HB)PvotC+>NGBEyrfg;mUIq%JiUNkO5aDn zNbl05Xj*APKnM=omQQ0U2R<#-2~k!x)r*Ib=#R3(~8Ms z<}jBq_cE_DKMpY(!WkkOvT#W4kjq2f=?&HM(-Y|x>+RCJruR{wr5~uDt-nmaUjLo} zZeV8+Z7|tjy}>DiuAw?Zy@m>g77yJ!^tK^tXlEE>IL&agVT)mpk+D&*k<@67(Fvn2 zW2Uj6ahCB)<0HnMCJYlF6S2uklcOfjS-LC^D~DCaI?3ubH8c$|RhVuvZ8iO5W^ER4 zR%o`%?4CK*oNb#{WQW?h+GW~R*j=(<~?pWwp@Az`K#qi|e%Z8sB{?*CVDaUDx)1498BSJ?M zj%Xb5+S$%o;9TK+btG+M(8yUM8%Dlzv3C)!?XlhoXtmQPCCAPhv*I zOpiGe%ZQy2yFK=8oPXSsxI6JS@rwB71bRYBLUqEs#DK)*iS1*CkC`#%LXts}IH@6- zl$?;fHMwVO;Mi4TJ5pRzic+qRvmQ5P+_~`v<8#Izo0+RHBUF4K4=v278@b9^aa~tOw&6_>%(J#Tj)D&qH z$%<~w_nN<90lq-IpmpKMg=-dmEfyA^FL5duyC2M8z%D-1lSaq({rF6q;>T1R6_OkG@hBX#zmah3+ zo>_ja!oOnITEn#q*S=dPTz7fB-}>4OMjJ{teB3DBcym+mrn*Y2%F@lm&H0<3Y)RO1 z<~R0l)msg=mTdj9O|q@MDyHgWwR?5-cEjyUYS0=*P3Ml39hY_n>};rYsNJ-SxvOM1 z*sa+8d{640>wClYHt%EatKDz8f9(Orf#N!(Zfae3eP(@oLsCQA!O(-vjb4oh4mlp$ z)@0gLaai~8k|We3^N#c$EjZe9OnR*Ac*gNZ%@dmMoEUTB>dEMnt*63Hojo0N`otN| znWJaD&o-U&Ja_Os`+WTcw+nSGt}O?Ccm4f9t6OW`MfZyhmpm>twvB2#a@qIt@hbsW zPG99+y>Kn!THE#b>o;$t+-Scky!q@_&aGFs^KXB;Gy5*#Zt*?Md!_dc?^pg|`^TJsb$MVOYJLWy1Jt=)^^0fMy^RuSTpw3Ir$3E|PA${?wtLRUy zKi9srdAa{DzrR|#$8>kRlD+DEz37epn{9u){N3CW)pP%C?%PlAir?$Mulm6LaOPv; z$ETkreR8qJu&*Gh zGi@IN{|&3okbT7sfLi!ZAKeB2Zf*dudkX+oP@kRxKokvtI1hl1964AA&T@U{PGup& zv%yB*m$clpe>?N3&ZOV@{c{VHsxIKi)&=|rxMPDb!Wuu)00009a7bBm000ic000ic z0Tn1pfB*mvI7vi7RA@u(nQ3s7XO@MhYW{Y0^~`ils-`>BS%8KRFkv&cA;ty*fey{E zCP18qge@!yX2%Ba`zqU#CE1c?SzaVtvgLil3kE~L7zkT{5D38`VKM0t2&$&-^&<%k}5Gce&YrlbbjD`R2jn?_T&D!YcxgA3w&FlZ`1mi!b{A zI*Hr&?s1{JgVW|L&SZpfA#nqrWvr)98_LI~U7TsLasAd;?sxxucwGZ_b0PZFRLmMR zSHG8uM{*rDS#ZvrORet&8Yc(hobwuWf1FL{wCVJ`_9~a(nnT}~g`7xU%ee#1-+l0B z!fOIuEzM-d#!_BjBrh$M%a<;~093Erh|bralF)S&r^jMeCu1$rP*#|YIU|mOxZN0+ zhR`%BkmJFx(DBM-I@D@~_|JjY1kRs6P14St*o+1$Oayc>nNbM zOpnu|p+u8}Eiav#5-oM*1{`(+#;{E|{HD+`I+*goqu7(Jc7OAe!D|9{Zr?@~6C=f( zNS&<=huKX0)~#ej@5GoEMe2@Fxi%6nnFwFInw_gx5V3XzDcj%2QIJKA5HzJmVGo!} z$JiiB#!ljk%a`5X?mfIF;6hQZhMjBHC>^P#s!E91$c~F8{M|K@oiJjzY$YXp7g=#} zLM)p2?K_AH-9*Z^_o)_H)!2;`#O$PU++=EhKbEf4O!qf?k0&C~R#(TCx8G*%>#r+P z>TIYdU+O`Vn1nhZL5e(u61|Q>=~&w2WF=!c@d=WtEhKJUPlX{9r;spic@O7Ee;m{2 zaOch)_qTh8Cn9j>!{bDUhO%bSBIU8Xz<@3#nW~~9Dy2(x*4J^MwMnjKx*8j(7pdiE zWGESl-?p91-CLZ4LXH8fkG<(B0C+!96VsiOlF2;x@fUxfHj(OowUid@7$GMSE1d z``f+46A?Ii_z+29F0F52^}2BjdgOg*Otz16-0r#$a#MM(he0<~}wWTHOYpCT& zSBGTBBxI9`+q?x`;%+HukZvWUD6+YD>>%fR_H(kklVe?NBBxpoij-U#XsfQG!DdC5nnsp%t@_FW3ZxDyeF7*R zGl{;lXWbDzht~w|-@i}kt8++wD}=Pz7+I8)>f&M=D{Qnnt7xfo&>@TNkV01^RB5NZ zrrKQ(^|Z_T+iGe^3*Uy*s#gd&Mh0LRI+hd8T6YxB;WdHFM~|Zq2tpORgIsB&2lwou zuB?>34RuNZyCl=y+{8X9-UBkVn<~m_t*TTAxN4z63c9yzFU7fPjH+0QRq+)11!EmD zhW5B5cNEXzHGvZ?ZJ5`uL!S{XUB|5Ka=o>b{j%7Kyj&Vxf4c}M1#A~W#nN#~_@Hf% zLZZecHF@t|X}zk5?NnEaC6PL?4IYDI>2kdFt6mX!C~mYeBAViy1j-FLvdfK%glbBP zm057Ov69YOC;R1jR~Bk4Mbs8su<5l@Cyhd^Q6c1#k}C_^gjh=R(*h^&G|%7_fxgopp;@qylDsr(iitw^X`cK?Dn%yy?kA=WLsY&Yc5BDGOd zXjF=~O=_gE+^Wd!$lgwj>8V)6FO})jF!={lFx;05y+_^AJcCyRj!2OeN%3XLj@4VO zqW@N!?B&$S->17WQa91u(#TQDI<+mn;E-NM?qGW6t6~+&|x7^ZqSmkdoxy37W!#3DR^ci9~2b1 zBYFmp30ypUgtS2;F(vJ$s@TY(j&?;B);v8M7tUq&3xkMXwuBE`YuMv-(p6v2vG!)F zWZ|a7SSr#JNEB1&vK;$d1myFzrDhDNkrW#<$$MuxhTjgSEh*g{(KC2VpfgoPrtd^b zO)ByDxgvp1=|Y9XZ`w$USwrFG5F+PIp)pS-^`H}p+30O=VZWn@S;Gdg)Ype4eq)JR z`!3zmjlLsLBpZ-MVQw<|t?#4%-3XkUceo>Z29F3l8W_O3;7xL;&Y(ngD?c?!(Qvsj zA6;}fdyCYxWp1N2eG4Cm->)mk72lIdgXq2QXctA>-=QIH9r+tWuxc`uHhZYOP1X&d#w{s>0EsPU_$(uWmB58ZB_IE_uphE^%m)*iwy{+`s zYq-%_$i)r^k8gcSMZQ+C3>P}8_^d(4_5EcylQvUtDPXVE&%w4S5 z{)MsF7KQLoHq29aM4-RFpRF%VByPq`ag$ro#6@v*Ul$G15{pIK53ii&oIRK0rZ^s6 zI?lkYOPrUY-nnKqJ+(Hj?J@CLT^1MX4YWI~%FJ*LHP>t~q{=kbrecl>LpOXp@qshA zedil@lC)5C4@x}AF`ySQ9az`b*a=#w789v5-Ss`bqM_vg??ZIiQa0*7S~Ig3nubM7!)JI}x;y$oFXkbx^gtw zQ`huk;OrqWQ78EP&>s1WS=?!hQbT1rEul*mke?hu?3xuU{OvH7zv#=&YuDUSe;OVW zIMs8A<)g=wyK4(skzq<7Z?ad=Sg7Uk)iZGYV+KBx3|u?My^oJ_t+k4~AIZW$KO^L1 zx=LocZ3S|i%u@znk8FS`GmWqnA>>4FN3}hadB1*^O|Q)6;iHG{s6P#l34D9^HYU+& z#@lbAjg`(Lmig%ZE^_3Un7w;DpP$?>TKfXNzQWfZv~uTQ6JONZc;H%m-x(fDX3n%% z(^lnBe3EMevZHp9x^)A3Iou?!UB#?l{)YVxjqZq^!Lu5;e^2~<4Q*M;e3+j_g^d4p zXN44EE2ScXh)tVVI?j)>q*$(BkOkkmC>c2iU&;aH_7!;WB@Eo;(qYM3dAZ_~_KUSn zlHQ*au@y^pBI~D5r&wlsCbZEqnd8EUS-Tw7 zj-Bpk-oYaR---{isZuy!q~oI^J-ylt(pRmbP%pm01ku3lH7+(9&=b7^K zGrasS|Hg!0{VQ{R`D=oI@hklQ`4>bkUPiCTuCA<1&d^m@C6iI>-l0^h=I-6Q?r7e@ zLkZo-p-SewMbC}8a%$st5&8UZ(%x9ghPRjT2Y-K-4)P&n$Y|d9-5}hCp8=1HxVNQ|a~3TpO7k$iyAu6K ze+ozV5fT*4j44xCJaiPxBm)bdAHuxfJWb%Jmk1d40yBL^uw>{;L*H3#D|2Ds=(uOQ2|&dOi}JKt45Azh0KT8F#%XcPb6vW2GlX}#I4)F#{Zg2 z$lwvoe|9)?pBXCsK8D=1G%6x?aI@A*k6wi~Y!hGI>UT%^OB@ovl^GeqiJl(!GyfAF z6Zlr_gyj$ODH<7oO^luEvinWNH11^_4GwJQ=$toZ-8R}m%zmOnRw z6@I~}Qj!Q4N2^^hpJQe%R~=?rOH4eHv-bD#NOpXmOl#LKLAgnZ^!>=)YmW)sA9##q z?qW)Pz9UefWMC?#zCo0Z4aPWm0vQwi$PSA@9T`J|cKwXiTvdr)4n7XC9d!zQ1!BWb6{FTMq z<*F0{)qc~c7$1yto*(%$r(?*FV`H`&ZE^<2g|j%aDu{C5VASIR$r<6RNKY-K)V_g) zKl=h2k)`W52iL+~3vH@&V9U>=R*YV$Ua$Nj^keXtfGf#{c}pmf?o%ZTcgn)6<+09x z8pg2`shcF%@aFr8XHKdkTnXKjFG;mUmQ=-tOXnt zU(_kqdQY_zr^P~Jg|up!6$PqHK0b5$y9N9JJSN~m(W(t(Kj(v4cC<)z?;>IyKbbPQ z>P82WyCIYktsaXIFy*K*&YDZ5EY_7VovX;@GsWYAlt;6C#xnY4a>f6dS4)osRtUH2SY!cSry0@QT2VFTX_n+I(_foFKaxgnG;*qDG9TBVan^6Q_}v zkVHw228${ilUhT;>;+N-0YWyAyfG6gk=_43fkNqK+E?e$Ddw)bxmmfJ;Udvwx65(W g!0|)kW`7j$-zXsfGDlA|-v9sr07*qoM6N<$f=&Bz5C8xG literal 0 HcmV?d00001 diff --git a/android/src/main/res/values/strings.xml b/android/src/main/res/values/strings.xml new file mode 100644 index 0000000..39aeb38 --- /dev/null +++ b/android/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + + The Endless Weave + \ No newline at end of file diff --git a/android/src/main/res/values/styles.xml b/android/src/main/res/values/styles.xml new file mode 100644 index 0000000..43ddf59 --- /dev/null +++ b/android/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/src/main/resources/xyz/samiker/theendlessweave/assets/textures/tiles/door.png b/assets/textures/tiles/door.png similarity index 100% rename from src/main/resources/xyz/samiker/theendlessweave/assets/textures/tiles/door.png rename to assets/textures/tiles/door.png diff --git a/src/main/resources/xyz/samiker/theendlessweave/assets/textures/tiles/floor_1.png b/assets/textures/tiles/floor_1.png similarity index 100% rename from src/main/resources/xyz/samiker/theendlessweave/assets/textures/tiles/floor_1.png rename to assets/textures/tiles/floor_1.png diff --git a/src/main/resources/xyz/samiker/theendlessweave/assets/textures/tiles/wall.png b/assets/textures/tiles/wall.png similarity index 100% rename from src/main/resources/xyz/samiker/theendlessweave/assets/textures/tiles/wall.png rename to assets/textures/tiles/wall.png diff --git a/src/main/resources/xyz/samiker/theendlessweave/assets/ui/default.fnt b/assets/ui/default.fnt similarity index 100% rename from src/main/resources/xyz/samiker/theendlessweave/assets/ui/default.fnt rename to assets/ui/default.fnt diff --git a/src/main/resources/xyz/samiker/theendlessweave/assets/ui/default.png b/assets/ui/default.png similarity index 100% rename from src/main/resources/xyz/samiker/theendlessweave/assets/ui/default.png rename to assets/ui/default.png diff --git a/src/main/resources/xyz/samiker/theendlessweave/assets/ui/uiskin.atlas b/assets/ui/uiskin.atlas similarity index 100% rename from src/main/resources/xyz/samiker/theendlessweave/assets/ui/uiskin.atlas rename to assets/ui/uiskin.atlas diff --git a/src/main/resources/xyz/samiker/theendlessweave/assets/ui/uiskin.json b/assets/ui/uiskin.json similarity index 100% rename from src/main/resources/xyz/samiker/theendlessweave/assets/ui/uiskin.json rename to assets/ui/uiskin.json diff --git a/src/main/resources/xyz/samiker/theendlessweave/assets/ui/uiskin.png b/assets/ui/uiskin.png similarity index 100% rename from src/main/resources/xyz/samiker/theendlessweave/assets/ui/uiskin.png rename to assets/ui/uiskin.png diff --git a/build.gradle.kts b/build.gradle.kts index 369598d..f570c95 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,133 +1,25 @@ -import java.util.Date - -plugins { - java - application - id("com.github.johnrengelman.shadow") version "8.1.1" -} - -group = "xyz.samiker" -version = "0.4.0" - -val gdxVersion = "1.14.0" - -repositories { - mavenCentral() - maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots/") } - maven { url = uri("https://oss.sonatype.org/content/repositories/releases/") } -} - -java { - toolchain { - languageVersion = JavaLanguageVersion.of(21) - vendor.set(JvmVendorSpec.ADOPTIUM) - } -} - -application { - mainClass.set("xyz.samiker.theendlessweave.Launcher") -} - -dependencies { - implementation("com.badlogicgames.gdx:gdx:$gdxVersion") - implementation("com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion") - implementation("com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop") - implementation("com.esotericsoftware:kryonet:2.22.0-RC1") -} - -tasks.withType { - options.encoding = "UTF-8" -} - -tasks.named("run") { - if (org.gradle.internal.os.OperatingSystem.current().isMacOsX) { - jvmArgs("-XstartOnFirstThread") - } -} - -tasks.register("buildServer") { - group = "build" - description = "Билдит сервер без графического бэкенда и нативов" - - archiveClassifier.set("server") - - manifest { - attributes["Main-Class"] = "xyz.samiker.theendlessweave.server.ServerLauncher" +buildscript { + repositories { + google() + mavenCentral() } - - from(sourceSets.main.get().output) { - exclude("xyz/samiker/theendlessweave/client/**") - - exclude("assets/**") - } - - val serverClasspath = configurations.runtimeClasspath.get().filter { file -> - val name = file.name.lowercase() - !name.contains("gdx-backend-lwjgl3") && - !name.contains("natives") - } - - from(serverClasspath.map { if (it.isDirectory) it else zipTree(it) }) { - exclude("META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA") - exclude("META-INF/MANIFEST.MF") - exclude("module-info.class") + dependencies { + classpath("com.android.tools.build:gradle:8.2.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22") } - - duplicatesStrategy = DuplicatesStrategy.EXCLUDE } -tasks.named("shadowJar") { - archiveClassifier.set("client") - configurations = listOf(project.configurations.runtimeClasspath.get()) +allprojects { + apply(plugin = "eclipse") - mergeServiceFiles() + version = "0.4.0" + group = "xyz.samiker" - manifest { - attributes["Main-Class"] = "xyz.samiker.theendlessweave.Launcher" + repositories { + google() + mavenCentral() + maven("https://oss.sonatype.org/content/repositories/snapshots/") + maven("https://oss.sonatype.org/content/repositories/releases/") + maven("https://jitpack.io") } -} - -tasks.register("generateResourceManifest") { - description = "Generates a manifest of all resource files." - group = "build" - - val resourceDir = project.layout.projectDirectory.dir("src/main/resources") - inputs.dir(resourceDir) - - val outputDir = layout.buildDirectory.dir("resources/generateResourceManifest") - val manifestFile = outputDir.get().file("resources-manifest.txt") - outputs.file(manifestFile) - - doLast { - println("Generating resource manifest to: ${manifestFile.asFile.path}") - val manifestContent = StringBuilder() - manifestContent.append("# Resource Manifest\n") - manifestContent.append("# Generated on: ${Date()}\n\n") - - resourceDir.asFile.walk().forEach { file -> - if (file.isFile) { - val relativePath = file.relativeTo(resourceDir.asFile).path - manifestContent.append("resource.name=${file.name}\n") - manifestContent.append("resource.path=${relativePath.replace(File.separatorChar, '/')}\n\n") - } - } - outputDir.get().asFile.mkdirs() - manifestFile.asFile.writeText(manifestContent.toString()) - } -} - -sourceSets { - main { - resources { - srcDir(layout.buildDirectory.dir("resources/generateResourceManifest")) - } - } -} - -tasks.named("processResources") { - dependsOn(tasks.named("generateResourceManifest")) -} - -tasks.withType { - useJUnitPlatform() } \ No newline at end of file diff --git a/core/build.gradle.kts b/core/build.gradle.kts new file mode 100644 index 0000000..b96542e --- /dev/null +++ b/core/build.gradle.kts @@ -0,0 +1,62 @@ +import java.util.Date + +plugins { + java + id("java-library") +} + +val gdxVersion: String by project + +dependencies { + api(project(":shared")) + api(project(":server")) + api("com.badlogicgames.gdx:gdx:$gdxVersion") +} + +tasks.register("generateResourceManifest") { + description = "Generates a manifest of all resource files." + group = "build" + + val resourceDir = project.layout.projectDirectory.dir("../assets") + inputs.dir(resourceDir) + + val outputDir = layout.buildDirectory.dir("generated/resources") + val manifestFile = outputDir.get().file("resources-manifest.txt") + outputs.file(manifestFile) + + doLast { + if (!resourceDir.asFile.exists()) { + println("Warning: assets directory not found at ${resourceDir.asFile.path}") + return@doLast + } + + val manifestContent = StringBuilder() + manifestContent.append("# Resource Manifest\n") + manifestContent.append("# Generated on: ${Date()}\n\n") + + resourceDir.asFile.walk().forEach { file -> + if (file.isFile) { + val relativePath = file.relativeTo(resourceDir.asFile).path + manifestContent.append("resource.name=${file.name}\n") + manifestContent.append("resource.path=${relativePath.replace(File.separatorChar, '/')}\n\n") + } + } + outputDir.get().asFile.mkdirs() + manifestFile.asFile.writeText(manifestContent.toString()) + println("Manifest generated: ${manifestFile.asFile.path}") + } +} + +sourceSets { + main { + resources { + srcDir(layout.buildDirectory.dir("generated/resources")) + } + } +} + +tasks.named("processResources") { + dependsOn("generateResourceManifest") +} + +java { toolchain { languageVersion.set(JavaLanguageVersion.of(17)) } } \ No newline at end of file diff --git a/src/main/java/xyz/samiker/theendlessweave/Main.java b/core/src/main/java/xyz/samiker/theendlessweave/Main.java similarity index 74% rename from src/main/java/xyz/samiker/theendlessweave/Main.java rename to core/src/main/java/xyz/samiker/theendlessweave/Main.java index ef1f9e0..675f69b 100644 --- a/src/main/java/xyz/samiker/theendlessweave/Main.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/Main.java @@ -1,25 +1,29 @@ package xyz.samiker.theendlessweave; +import com.badlogic.gdx.Application; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import xyz.samiker.theendlessweave.client.assets.ManifestAssetManager; -import xyz.samiker.theendlessweave.client.assets.ResourceManifest; -import xyz.samiker.theendlessweave.client.screens.LoadingScreen; -import xyz.samiker.theendlessweave.client.settings.ClientSettings; -import xyz.samiker.theendlessweave.core.settings.SettingsManager; +import xyz.samiker.theendlessweave.assetsManager.ManifestAssetManager; +import xyz.samiker.theendlessweave.assetsManager.ResourceManifest; +import xyz.samiker.theendlessweave.screens.LoadingScreen; +import xyz.samiker.theendlessweave.settings.ClientSettings; +import xyz.samiker.theendlessweave.settings.SettingsManager; import java.io.IOException; public class Main extends Game { public SpriteBatch batch; private ManifestAssetManager assetManager; + public static boolean isMobile; + @Override public void create() { batch = new SpriteBatch(); try { assetManager = new ManifestAssetManager(ResourceManifest.load()); + isMobile = (Gdx.app.getType() == Application.ApplicationType.Android || Gdx.app.getType() == Application.ApplicationType.iOS) || SettingsManager.getString(ClientSettings.CONTROL).contains("mobile"); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/src/main/java/xyz/samiker/theendlessweave/client/assets/AssetLoadCallback.java b/core/src/main/java/xyz/samiker/theendlessweave/assetsManager/AssetLoadCallback.java similarity index 88% rename from src/main/java/xyz/samiker/theendlessweave/client/assets/AssetLoadCallback.java rename to core/src/main/java/xyz/samiker/theendlessweave/assetsManager/AssetLoadCallback.java index 3388a22..5c0a465 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/assets/AssetLoadCallback.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/assetsManager/AssetLoadCallback.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.assets; +package xyz.samiker.theendlessweave.assetsManager; public interface AssetLoadCallback { void onCategoryStart(String category); diff --git a/src/main/java/xyz/samiker/theendlessweave/client/assets/ManifestAssetManager.java b/core/src/main/java/xyz/samiker/theendlessweave/assetsManager/ManifestAssetManager.java similarity index 98% rename from src/main/java/xyz/samiker/theendlessweave/client/assets/ManifestAssetManager.java rename to core/src/main/java/xyz/samiker/theendlessweave/assetsManager/ManifestAssetManager.java index 20cf2cc..a60654e 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/assets/ManifestAssetManager.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/assetsManager/ManifestAssetManager.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.assets; +package xyz.samiker.theendlessweave.assetsManager; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.assets.loaders.TextureLoader; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/assets/ResourceManifest.java b/core/src/main/java/xyz/samiker/theendlessweave/assetsManager/ResourceManifest.java similarity index 98% rename from src/main/java/xyz/samiker/theendlessweave/client/assets/ResourceManifest.java rename to core/src/main/java/xyz/samiker/theendlessweave/assetsManager/ResourceManifest.java index 622a88d..05691f9 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/assets/ResourceManifest.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/assetsManager/ResourceManifest.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.assets; +package xyz.samiker.theendlessweave.assetsManager; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/assets/SoundManager.java b/core/src/main/java/xyz/samiker/theendlessweave/assetsManager/SoundManager.java similarity index 96% rename from src/main/java/xyz/samiker/theendlessweave/client/assets/SoundManager.java rename to core/src/main/java/xyz/samiker/theendlessweave/assetsManager/SoundManager.java index 8adab91..f2dd94e 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/assets/SoundManager.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/assetsManager/SoundManager.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.assets; +package xyz.samiker.theendlessweave.assetsManager; import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.audio.Sound; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/assets/TextureManager.java b/core/src/main/java/xyz/samiker/theendlessweave/assetsManager/TextureManager.java similarity index 90% rename from src/main/java/xyz/samiker/theendlessweave/client/assets/TextureManager.java rename to core/src/main/java/xyz/samiker/theendlessweave/assetsManager/TextureManager.java index 067cff7..89fe010 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/assets/TextureManager.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/assetsManager/TextureManager.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.assets; +package xyz.samiker.theendlessweave.assetsManager; import com.badlogic.gdx.graphics.Texture; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/custom/InputManager.java b/core/src/main/java/xyz/samiker/theendlessweave/custom/InputManager.java similarity index 98% rename from src/main/java/xyz/samiker/theendlessweave/client/custom/InputManager.java rename to core/src/main/java/xyz/samiker/theendlessweave/custom/InputManager.java index c04389c..75c8ea8 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/custom/InputManager.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/custom/InputManager.java @@ -1,11 +1,11 @@ -package xyz.samiker.theendlessweave.client.custom; +package xyz.samiker.theendlessweave.custom; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.InputAdapter; import com.badlogic.gdx.InputProcessor; -import xyz.samiker.theendlessweave.core.utils.Array; -import xyz.samiker.theendlessweave.core.utils.IntObjectMap; +import xyz.samiker.theendlessweave.utils.Array; +import xyz.samiker.theendlessweave.utils.IntObjectMap; import java.util.Arrays; import java.util.function.Consumer; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/network/GameClient.java b/core/src/main/java/xyz/samiker/theendlessweave/network/GameClient.java similarity index 83% rename from src/main/java/xyz/samiker/theendlessweave/client/network/GameClient.java rename to core/src/main/java/xyz/samiker/theendlessweave/network/GameClient.java index bb3e9a9..1d18034 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/network/GameClient.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/network/GameClient.java @@ -1,15 +1,15 @@ -package xyz.samiker.theendlessweave.client.network; +package xyz.samiker.theendlessweave.network; import com.badlogic.gdx.Gdx; import com.esotericsoftware.kryonet.Client; import com.esotericsoftware.kryonet.Connection; import com.esotericsoftware.kryonet.Listener; -import xyz.samiker.theendlessweave.core.GameData; -import xyz.samiker.theendlessweave.core.network.NetworkRegister; -import xyz.samiker.theendlessweave.core.network.packets.PacketLoginRequest; -import xyz.samiker.theendlessweave.core.network.packets.PacketLoginResponse; -import xyz.samiker.theendlessweave.core.network.packets.PacketSnapshot; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.GameData; +import xyz.samiker.theendlessweave.network.NetworkRegister; +import xyz.samiker.theendlessweave.network.packets.PacketLoginRequest; +import xyz.samiker.theendlessweave.network.packets.PacketLoginResponse; +import xyz.samiker.theendlessweave.network.packets.PacketSnapshot; +import xyz.samiker.theendlessweave.utils.Array; import java.io.IOException; import java.util.function.Consumer; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/screens/AssetAware.java b/core/src/main/java/xyz/samiker/theendlessweave/screens/AssetAware.java similarity index 64% rename from src/main/java/xyz/samiker/theendlessweave/client/screens/AssetAware.java rename to core/src/main/java/xyz/samiker/theendlessweave/screens/AssetAware.java index 7870e30..b410104 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/screens/AssetAware.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/screens/AssetAware.java @@ -1,6 +1,6 @@ -package xyz.samiker.theendlessweave.client.screens; +package xyz.samiker.theendlessweave.screens; -import xyz.samiker.theendlessweave.client.assets.ManifestAssetManager; +import xyz.samiker.theendlessweave.assetsManager.ManifestAssetManager; import java.net.URL; import java.util.ResourceBundle; diff --git a/core/src/main/java/xyz/samiker/theendlessweave/screens/GameDataAware.java b/core/src/main/java/xyz/samiker/theendlessweave/screens/GameDataAware.java new file mode 100644 index 0000000..09ac50f --- /dev/null +++ b/core/src/main/java/xyz/samiker/theendlessweave/screens/GameDataAware.java @@ -0,0 +1,7 @@ +package xyz.samiker.theendlessweave.screens; + +import xyz.samiker.theendlessweave.GameData; + +public interface GameDataAware { + void setData(GameData data); +} diff --git a/src/main/java/xyz/samiker/theendlessweave/client/screens/GameScreen.java b/core/src/main/java/xyz/samiker/theendlessweave/screens/GameScreen.java similarity index 89% rename from src/main/java/xyz/samiker/theendlessweave/client/screens/GameScreen.java rename to core/src/main/java/xyz/samiker/theendlessweave/screens/GameScreen.java index caf18d2..d77d487 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/screens/GameScreen.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/screens/GameScreen.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.screens; +package xyz.samiker.theendlessweave.screens; import com.badlogic.gdx.*; import com.badlogic.gdx.graphics.OrthographicCamera; @@ -15,20 +15,20 @@ import com.badlogic.gdx.utils.viewport.ScreenViewport; import com.badlogic.gdx.utils.viewport.Viewport; import xyz.samiker.theendlessweave.Main; -import xyz.samiker.theendlessweave.client.assets.ManifestAssetManager; -import xyz.samiker.theendlessweave.client.custom.InputManager; -import xyz.samiker.theendlessweave.client.network.GameClient; -import xyz.samiker.theendlessweave.client.settings.ClientSettings; -import xyz.samiker.theendlessweave.client.systems.*; -import xyz.samiker.theendlessweave.core.GameData; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.logic.Game; -import xyz.samiker.theendlessweave.core.logic.GameState; -import xyz.samiker.theendlessweave.core.logic.Loop; -import xyz.samiker.theendlessweave.core.network.packets.PacketLoginResponse; -import xyz.samiker.theendlessweave.core.settings.SettingsManager; -import xyz.samiker.theendlessweave.server.ServerLauncher; +import xyz.samiker.theendlessweave.assetsManager.ManifestAssetManager; +import xyz.samiker.theendlessweave.custom.InputManager; +import xyz.samiker.theendlessweave.network.GameClient; +import xyz.samiker.theendlessweave.settings.ClientSettings; +import xyz.samiker.theendlessweave.systems.*; +import xyz.samiker.theendlessweave.GameData; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.logic.Game; +import xyz.samiker.theendlessweave.logic.GameState; +import xyz.samiker.theendlessweave.logic.Loop; +import xyz.samiker.theendlessweave.network.packets.PacketLoginResponse; +import xyz.samiker.theendlessweave.settings.SettingsManager; +import xyz.samiker.theendlessweave.ServerLauncher; import java.io.IOException; @@ -54,7 +54,6 @@ public class GameScreen implements Screen { private Touchpad moveStick; private Touchpad aimStick; private TextButton attackBtn; - private boolean isMobile; private Game gameLogic; private Loop gameLoop; @@ -86,7 +85,7 @@ public void show() { uiStage = new Stage(new ScreenViewport()); - skin = new Skin(Gdx.files.internal("xyz/samiker/theendlessweave/assets/ui/uiskin.json")); + skin = new Skin(Gdx.files.internal("ui/uiskin.json")); setupUI(); @@ -132,9 +131,7 @@ private void setupUI() { private void setupMobileControls() { String controlMode = SettingsManager.getString(ClientSettings.CONTROL); if ("auto".equals(controlMode)) { - controlMode = (Gdx.app.getType() == Application.ApplicationType.Android || - Gdx.app.getType() == Application.ApplicationType.iOS) - ? "mobile_aim_joystick" : "pc"; + controlMode = Main.isMobile ? "mobile_aim_joystick" : "pc"; } if ("pc".equals(controlMode)) return; @@ -172,9 +169,9 @@ public void touchUp(InputEvent event, float x, float y, int pointer, int button) private void updateUI() { debugLabel.setPosition(10, Gdx.graphics.getHeight() / 2f); - if (isMobile) { - aimStick.setBounds(Gdx.graphics.getWidth() - 250, 50, 200, 200); - attackBtn.setPosition(Gdx.graphics.getWidth() - 150, Gdx.graphics.getHeight() - 300); + if (Main.isMobile) { + if (aimStick != null) aimStick.setBounds(Gdx.graphics.getWidth() - 250, 50, 200, 200); + if (attackBtn != null) attackBtn.setPosition(Gdx.graphics.getWidth() - 150, Gdx.graphics.getHeight() - 300); } } @@ -260,7 +257,7 @@ private void initializeGameSession(PacketLoginResponse serverData) { var map = gameLogic.getGameMap(); var profiler = gameLogic.getProfiler(); InputSystem inputSystem = new InputSystem(client, gameLogic, gameCamera); - inputSystem.setInputMode(isMobile); + inputSystem.setInputMode(Main.isMobile); gameLogic.addLogicSystem(new ClientNetworkEventSystem(client, gameLogic)); gameLogic.addLogicSystem(inputSystem); @@ -300,7 +297,7 @@ public void render(float delta) { gameCamera.update(); batch.setProjectionMatrix(gameCamera.combined); - if (isMobile) { + if (Main.isMobile) { double deadzone = 0.3; if (moveStick != null) { InputManager.handleAxis(moveStick.getKnobPercentX(), deadzone, Input.Keys.D, Input.Keys.A); diff --git a/src/main/java/xyz/samiker/theendlessweave/client/screens/GenerationScreen.java b/core/src/main/java/xyz/samiker/theendlessweave/screens/GenerationScreen.java similarity index 98% rename from src/main/java/xyz/samiker/theendlessweave/client/screens/GenerationScreen.java rename to core/src/main/java/xyz/samiker/theendlessweave/screens/GenerationScreen.java index 6e9e2c1..9299bdb 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/screens/GenerationScreen.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/screens/GenerationScreen.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.screens; +package xyz.samiker.theendlessweave.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Screen; @@ -12,8 +12,8 @@ import com.badlogic.gdx.utils.ScreenUtils; import com.badlogic.gdx.utils.viewport.ScreenViewport; import xyz.samiker.theendlessweave.Main; -import xyz.samiker.theendlessweave.core.GameData; -import xyz.samiker.theendlessweave.core.gamemap.MapGeneratorSettings; +import xyz.samiker.theendlessweave.GameData; +import xyz.samiker.theendlessweave.gamemap.MapGeneratorSettings; import java.util.Random; @@ -68,7 +68,7 @@ public void show() { stage = new Stage(new ScreenViewport()); Gdx.input.setInputProcessor(stage); - skin = new Skin(Gdx.files.internal("xyz/samiker/theendlessweave/assets/ui/uiskin.json")); + skin = new Skin(Gdx.files.internal("ui/uiskin.json")); buildUI(); loadDefaultSettings(); diff --git a/src/main/java/xyz/samiker/theendlessweave/client/screens/LoadingScreen.java b/core/src/main/java/xyz/samiker/theendlessweave/screens/LoadingScreen.java similarity index 93% rename from src/main/java/xyz/samiker/theendlessweave/client/screens/LoadingScreen.java rename to core/src/main/java/xyz/samiker/theendlessweave/screens/LoadingScreen.java index f93ef5d..57841bd 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/screens/LoadingScreen.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/screens/LoadingScreen.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.screens; +package xyz.samiker.theendlessweave.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.ScreenAdapter; @@ -27,7 +27,7 @@ public LoadingScreen(Main game) { @Override public void show() { stage = new Stage(new ScreenViewport()); - Skin skin = new Skin(Gdx.files.internal("xyz/samiker/theendlessweave/assets/ui/uiskin.json")); + Skin skin = new Skin(Gdx.files.internal("ui/uiskin.json")); Table table = new Table(); table.setFillParent(true); diff --git a/src/main/java/xyz/samiker/theendlessweave/client/screens/MainMenuScreen.java b/core/src/main/java/xyz/samiker/theendlessweave/screens/MainMenuScreen.java similarity index 94% rename from src/main/java/xyz/samiker/theendlessweave/client/screens/MainMenuScreen.java rename to core/src/main/java/xyz/samiker/theendlessweave/screens/MainMenuScreen.java index 557f4b8..8a5124b 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/screens/MainMenuScreen.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/screens/MainMenuScreen.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.screens; +package xyz.samiker.theendlessweave.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Screen; @@ -25,7 +25,7 @@ public MainMenuScreen(Main game) { public void show() { stage = new Stage(new ScreenViewport()); Gdx.input.setInputProcessor(stage); - skin = new Skin(Gdx.files.internal("xyz/samiker/theendlessweave/assets/ui/uiskin.json")); + skin = new Skin(Gdx.files.internal("ui/uiskin.json")); Table table = new Table(); table.setFillParent(true); diff --git a/src/main/java/xyz/samiker/theendlessweave/client/screens/SettingsScreen.java b/core/src/main/java/xyz/samiker/theendlessweave/screens/SettingsScreen.java similarity index 97% rename from src/main/java/xyz/samiker/theendlessweave/client/screens/SettingsScreen.java rename to core/src/main/java/xyz/samiker/theendlessweave/screens/SettingsScreen.java index dc46ed7..dc4fcfa 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/screens/SettingsScreen.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/screens/SettingsScreen.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.screens; +package xyz.samiker.theendlessweave.screens; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Graphics; @@ -12,8 +12,8 @@ import com.badlogic.gdx.utils.ScreenUtils; import com.badlogic.gdx.utils.viewport.ScreenViewport; import xyz.samiker.theendlessweave.Main; -import xyz.samiker.theendlessweave.client.settings.ClientSettings; -import xyz.samiker.theendlessweave.core.settings.SettingsManager; +import xyz.samiker.theendlessweave.settings.ClientSettings; +import xyz.samiker.theendlessweave.settings.SettingsManager; public class SettingsScreen implements Screen { @@ -35,7 +35,7 @@ public void show() { stage = new Stage(new ScreenViewport()); Gdx.input.setInputProcessor(stage); - skin = new Skin(Gdx.files.internal("xyz/samiker/theendlessweave/assets/ui/uiskin.json")); + skin = new Skin(Gdx.files.internal("ui/uiskin.json")); buildLayout(); showGeneralSettings(); diff --git a/src/main/java/xyz/samiker/theendlessweave/client/systems/CameraSystem.java b/core/src/main/java/xyz/samiker/theendlessweave/systems/CameraSystem.java similarity index 85% rename from src/main/java/xyz/samiker/theendlessweave/client/systems/CameraSystem.java rename to core/src/main/java/xyz/samiker/theendlessweave/systems/CameraSystem.java index b25aadf..11d0586 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/systems/CameraSystem.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/systems/CameraSystem.java @@ -1,16 +1,16 @@ -package xyz.samiker.theendlessweave.client.systems; +package xyz.samiker.theendlessweave.systems; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.Vector2; -import xyz.samiker.theendlessweave.client.custom.InputManager; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.CameraTargetComponent; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; - -import static xyz.samiker.theendlessweave.core.utils.Constants.ENTITY_SIZE; +import xyz.samiker.theendlessweave.custom.InputManager; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.CameraTargetComponent; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; + +import static xyz.samiker.theendlessweave.utils.Constants.ENTITY_SIZE; public class CameraSystem implements ISystem { private final OrthographicCamera camera; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/systems/ClientNetworkEventSystem.java b/core/src/main/java/xyz/samiker/theendlessweave/systems/ClientNetworkEventSystem.java similarity index 82% rename from src/main/java/xyz/samiker/theendlessweave/client/systems/ClientNetworkEventSystem.java rename to core/src/main/java/xyz/samiker/theendlessweave/systems/ClientNetworkEventSystem.java index cf52afa..af5783d 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/systems/ClientNetworkEventSystem.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/systems/ClientNetworkEventSystem.java @@ -1,16 +1,16 @@ -package xyz.samiker.theendlessweave.client.systems; +package xyz.samiker.theendlessweave.systems; -import xyz.samiker.theendlessweave.client.network.GameClient; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.ProjectileComponent; -import xyz.samiker.theendlessweave.core.entities.components.VelocityComponent; -import xyz.samiker.theendlessweave.core.logic.Game; -import xyz.samiker.theendlessweave.core.network.packets.PacketDestroyEntity; -import xyz.samiker.theendlessweave.core.network.packets.PacketSpawnEntity; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.network.GameClient; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.ProjectileComponent; +import xyz.samiker.theendlessweave.entities.components.VelocityComponent; +import xyz.samiker.theendlessweave.logic.Game; +import xyz.samiker.theendlessweave.network.packets.PacketDestroyEntity; +import xyz.samiker.theendlessweave.network.packets.PacketSpawnEntity; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; -import static xyz.samiker.theendlessweave.core.utils.Constants.TILE_SIZE; +import static xyz.samiker.theendlessweave.utils.Constants.TILE_SIZE; public class ClientNetworkEventSystem implements ISystem { private final GameClient client; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/systems/ClientNetworkReceiverSystem.java b/core/src/main/java/xyz/samiker/theendlessweave/systems/ClientNetworkReceiverSystem.java similarity index 75% rename from src/main/java/xyz/samiker/theendlessweave/client/systems/ClientNetworkReceiverSystem.java rename to core/src/main/java/xyz/samiker/theendlessweave/systems/ClientNetworkReceiverSystem.java index 9a8bc89..d5e0275 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/systems/ClientNetworkReceiverSystem.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/systems/ClientNetworkReceiverSystem.java @@ -1,20 +1,20 @@ -package xyz.samiker.theendlessweave.client.systems; +package xyz.samiker.theendlessweave.systems; -import xyz.samiker.theendlessweave.client.network.GameClient; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.HealthComponent; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.entities.components.RotationComponent; -import xyz.samiker.theendlessweave.core.entities.components.VelocityComponent; -import xyz.samiker.theendlessweave.core.logic.Game; -import xyz.samiker.theendlessweave.core.network.packets.Packet; -import xyz.samiker.theendlessweave.core.network.packets.PacketDestroyEntity; -import xyz.samiker.theendlessweave.core.network.packets.PacketEntityUpdate; -import xyz.samiker.theendlessweave.core.network.packets.PacketSnapshot; -import xyz.samiker.theendlessweave.core.network.utils.PacketPool; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; -import xyz.samiker.theendlessweave.core.utils.IntObjectMap; +import xyz.samiker.theendlessweave.network.GameClient; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.HealthComponent; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.entities.components.RotationComponent; +import xyz.samiker.theendlessweave.entities.components.VelocityComponent; +import xyz.samiker.theendlessweave.logic.Game; +import xyz.samiker.theendlessweave.network.packets.Packet; +import xyz.samiker.theendlessweave.network.packets.PacketDestroyEntity; +import xyz.samiker.theendlessweave.network.packets.PacketEntityUpdate; +import xyz.samiker.theendlessweave.network.packets.PacketSnapshot; +import xyz.samiker.theendlessweave.network.utils.PacketPool; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; +import xyz.samiker.theendlessweave.utils.IntObjectMap; public class ClientNetworkReceiverSystem implements ISystem { private final GameClient client; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/systems/ClientProjectileSystem.java b/core/src/main/java/xyz/samiker/theendlessweave/systems/ClientProjectileSystem.java similarity index 90% rename from src/main/java/xyz/samiker/theendlessweave/client/systems/ClientProjectileSystem.java rename to core/src/main/java/xyz/samiker/theendlessweave/systems/ClientProjectileSystem.java index 73fcb0b..706b96c 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/systems/ClientProjectileSystem.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/systems/ClientProjectileSystem.java @@ -1,12 +1,12 @@ -package xyz.samiker.theendlessweave.client.systems; - -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.PlayerTagComponent; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.entities.components.ProjectileComponent; -import xyz.samiker.theendlessweave.core.entities.components.VelocityComponent; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +package xyz.samiker.theendlessweave.systems; + +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.PlayerTagComponent; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.entities.components.ProjectileComponent; +import xyz.samiker.theendlessweave.entities.components.VelocityComponent; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; public class ClientProjectileSystem implements ISystem { private Entity cachedPlayer; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/systems/DebugRenderSystem.java b/core/src/main/java/xyz/samiker/theendlessweave/systems/DebugRenderSystem.java similarity index 71% rename from src/main/java/xyz/samiker/theendlessweave/client/systems/DebugRenderSystem.java rename to core/src/main/java/xyz/samiker/theendlessweave/systems/DebugRenderSystem.java index 913125e..8191def 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/systems/DebugRenderSystem.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/systems/DebugRenderSystem.java @@ -1,10 +1,10 @@ -package xyz.samiker.theendlessweave.client.systems; +package xyz.samiker.theendlessweave.systems; import com.badlogic.gdx.scenes.scene2d.ui.Label; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.logic.PerformanceMonitor; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.logic.PerformanceMonitor; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; public class DebugRenderSystem implements ISystem { private final PerformanceMonitor profiler; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/systems/HudRenderSystem.java b/core/src/main/java/xyz/samiker/theendlessweave/systems/HudRenderSystem.java similarity index 82% rename from src/main/java/xyz/samiker/theendlessweave/client/systems/HudRenderSystem.java rename to core/src/main/java/xyz/samiker/theendlessweave/systems/HudRenderSystem.java index 76272af..199e188 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/systems/HudRenderSystem.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/systems/HudRenderSystem.java @@ -1,14 +1,14 @@ -package xyz.samiker.theendlessweave.client.systems; +package xyz.samiker.theendlessweave.systems; import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.ProgressBar; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.HealthComponent; -import xyz.samiker.theendlessweave.core.entities.components.LevelComponent; -import xyz.samiker.theendlessweave.core.entities.components.PlayerTagComponent; -import xyz.samiker.theendlessweave.core.entities.components.ScoreComponent; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.HealthComponent; +import xyz.samiker.theendlessweave.entities.components.LevelComponent; +import xyz.samiker.theendlessweave.entities.components.PlayerTagComponent; +import xyz.samiker.theendlessweave.entities.components.ScoreComponent; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; public class HudRenderSystem implements ISystem { private final ProgressBar healthBar; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/systems/InputSystem.java b/core/src/main/java/xyz/samiker/theendlessweave/systems/InputSystem.java similarity index 81% rename from src/main/java/xyz/samiker/theendlessweave/client/systems/InputSystem.java rename to core/src/main/java/xyz/samiker/theendlessweave/systems/InputSystem.java index b0e3122..f6aa0f9 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/systems/InputSystem.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/systems/InputSystem.java @@ -1,19 +1,18 @@ -package xyz.samiker.theendlessweave.client.systems; +package xyz.samiker.theendlessweave.systems; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Input; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.Vector3; -import xyz.samiker.theendlessweave.client.custom.InputManager; -import xyz.samiker.theendlessweave.client.network.GameClient; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.PlayerTagComponent; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.logic.Game; -import xyz.samiker.theendlessweave.core.network.packets.PacketInput; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.custom.InputManager; +import xyz.samiker.theendlessweave.network.GameClient; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.PlayerTagComponent; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.logic.Game; +import xyz.samiker.theendlessweave.network.packets.PacketInput; +import xyz.samiker.theendlessweave.utils.Array; public class InputSystem implements ISystem { private final GameClient client; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/systems/RenderSystem.java b/core/src/main/java/xyz/samiker/theendlessweave/systems/RenderSystem.java similarity index 79% rename from src/main/java/xyz/samiker/theendlessweave/client/systems/RenderSystem.java rename to core/src/main/java/xyz/samiker/theendlessweave/systems/RenderSystem.java index 1e18bfa..f2cbddf 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/systems/RenderSystem.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/systems/RenderSystem.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.systems; +package xyz.samiker.theendlessweave.systems; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.OrthographicCamera; @@ -6,16 +6,16 @@ import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.entities.components.ProjectileComponent; -import xyz.samiker.theendlessweave.core.entities.components.RenderComponent; -import xyz.samiker.theendlessweave.core.entities.components.RotationComponent; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; - -import static xyz.samiker.theendlessweave.core.utils.Constants.ENTITY_SIZE; -import static xyz.samiker.theendlessweave.core.utils.Constants.PROJECTILE_SIZE; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.entities.components.ProjectileComponent; +import xyz.samiker.theendlessweave.entities.components.RenderComponent; +import xyz.samiker.theendlessweave.entities.components.RotationComponent; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; + +import static xyz.samiker.theendlessweave.utils.Constants.ENTITY_SIZE; +import static xyz.samiker.theendlessweave.utils.Constants.PROJECTILE_SIZE; public class RenderSystem implements ISystem { private final SpriteBatch batch; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/systems/TileRenderSystem.java b/core/src/main/java/xyz/samiker/theendlessweave/systems/TileRenderSystem.java similarity index 84% rename from src/main/java/xyz/samiker/theendlessweave/client/systems/TileRenderSystem.java rename to core/src/main/java/xyz/samiker/theendlessweave/systems/TileRenderSystem.java index 86cc7cf..78d897f 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/systems/TileRenderSystem.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/systems/TileRenderSystem.java @@ -1,19 +1,18 @@ -package xyz.samiker.theendlessweave.client.systems; +package xyz.samiker.theendlessweave.systems; import com.badlogic.gdx.graphics.OrthographicCamera; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import xyz.samiker.theendlessweave.client.assets.ManifestAssetManager; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.gamemap.GameMap; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.tile.TileType; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.assetsManager.ManifestAssetManager; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.gamemap.GameMap; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.tile.TileType; +import xyz.samiker.theendlessweave.utils.Array; import java.util.EnumMap; -import static xyz.samiker.theendlessweave.core.utils.Constants.TILE_SIZE; +import static xyz.samiker.theendlessweave.utils.Constants.TILE_SIZE; public class TileRenderSystem implements ISystem { private final SpriteBatch batch; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/systems/WorldUIRenderer.java b/core/src/main/java/xyz/samiker/theendlessweave/systems/WorldUIRenderer.java similarity index 90% rename from src/main/java/xyz/samiker/theendlessweave/client/systems/WorldUIRenderer.java rename to core/src/main/java/xyz/samiker/theendlessweave/systems/WorldUIRenderer.java index cc68046..2fb4ef8 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/systems/WorldUIRenderer.java +++ b/core/src/main/java/xyz/samiker/theendlessweave/systems/WorldUIRenderer.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.systems; +package xyz.samiker.theendlessweave.systems; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.OrthographicCamera; @@ -8,12 +8,12 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.utils.Align; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.*; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.*; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; -import static xyz.samiker.theendlessweave.core.utils.Constants.ENTITY_SIZE; +import static xyz.samiker.theendlessweave.utils.Constants.ENTITY_SIZE; public class WorldUIRenderer implements ISystem { diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..49a0849 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,5 @@ +gdxVersion=1.14.0 +kryoVersion=2.22.0-RC1 +appName=The Endless Weave +android.useAndroidX=true +android.enableJetifier=true \ No newline at end of file diff --git a/local.properties b/local.properties new file mode 100644 index 0000000..7038e58 --- /dev/null +++ b/local.properties @@ -0,0 +1 @@ +sdk.dir=C:/droid-sdk \ No newline at end of file diff --git a/lwjgl3/build.gradle.kts b/lwjgl3/build.gradle.kts new file mode 100644 index 0000000..3347c80 --- /dev/null +++ b/lwjgl3/build.gradle.kts @@ -0,0 +1,36 @@ +plugins { + id("application") + id("com.github.johnrengelman.shadow") version "8.1.1" +} + +val gdxVersion: String by project + +dependencies { + implementation(project(":core")) + implementation(project(":server")) + implementation("com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion") + implementation("com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop") +} + +application { + mainClass.set("xyz.samiker.theendlessweave.Launcher") +} + +sourceSets { + main { + resources { + srcDir("../assets") + } + } +} + +tasks.named("run") { + workingDir = file("../assets") +} + +tasks.named("shadowJar") { + archiveFileName.set("TheEndlessWeave-Client.jar") + configurations = listOf(project.configurations.runtimeClasspath.get()) + mergeServiceFiles() + manifest { attributes["Main-Class"] = "xyz.samiker.theendlessweave.Launcher" } +} \ No newline at end of file diff --git a/src/main/java/xyz/samiker/theendlessweave/client/ClientLauncher.java b/lwjgl3/src/main/java/xyz/samiker/theendlessweave/ClientLauncher.java similarity index 85% rename from src/main/java/xyz/samiker/theendlessweave/client/ClientLauncher.java rename to lwjgl3/src/main/java/xyz/samiker/theendlessweave/ClientLauncher.java index f242532..f2e69a8 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/ClientLauncher.java +++ b/lwjgl3/src/main/java/xyz/samiker/theendlessweave/ClientLauncher.java @@ -1,10 +1,9 @@ -package xyz.samiker.theendlessweave.client; +package xyz.samiker.theendlessweave; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application; import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration; -import xyz.samiker.theendlessweave.Main; -import xyz.samiker.theendlessweave.client.settings.ClientSettings; -import xyz.samiker.theendlessweave.core.settings.SettingsManager; +import xyz.samiker.theendlessweave.settings.ClientSettings; +import xyz.samiker.theendlessweave.settings.SettingsManager; import java.io.FileWriter; import java.io.IOException; @@ -12,6 +11,7 @@ import java.io.StringWriter; import java.time.LocalDateTime; + public class ClientLauncher { public static void main(String[] args) { Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration(); @@ -21,6 +21,7 @@ public static void main(String[] args) { if (SettingsManager.getBoolean(ClientSettings.VSYNC)) { config.useVsync(SettingsManager.getBoolean(ClientSettings.VSYNC)); } + if (SettingsManager.getBoolean(ClientSettings.FPS_LIMIT_ENABLED)) { config.setForegroundFPS(SettingsManager.getInt(ClientSettings.FPS_LIMIT)); } @@ -28,9 +29,10 @@ public static void main(String[] args) { config.setResizable(false); config.setTitle("TheEndlessWeave"); - new Lwjgl3Application(new Main(), config); + new Lwjgl3Application(new xyz.samiker.theendlessweave.Main(), config); } catch (Throwable t) { logError(t); + System.exit(1); } } private static void logError(Throwable t) { diff --git a/src/main/java/xyz/samiker/theendlessweave/Launcher.java b/lwjgl3/src/main/java/xyz/samiker/theendlessweave/Launcher.java similarity index 71% rename from src/main/java/xyz/samiker/theendlessweave/Launcher.java rename to lwjgl3/src/main/java/xyz/samiker/theendlessweave/Launcher.java index 351b63e..7f92c3e 100644 --- a/src/main/java/xyz/samiker/theendlessweave/Launcher.java +++ b/lwjgl3/src/main/java/xyz/samiker/theendlessweave/Launcher.java @@ -1,8 +1,5 @@ package xyz.samiker.theendlessweave; -import xyz.samiker.theendlessweave.client.ClientLauncher; -import xyz.samiker.theendlessweave.server.ServerLauncher; - public class Launcher { public static void main(String[] args) { if (args.length > 0 && args[0].equalsIgnoreCase("--server")) { diff --git a/server/build.gradle.kts b/server/build.gradle.kts new file mode 100644 index 0000000..c2d7c7d --- /dev/null +++ b/server/build.gradle.kts @@ -0,0 +1,21 @@ +plugins { + java + id("java-library") +} + +dependencies { + api(project(":shared")) +} + +tasks.register("buildServer") { + group = "build" + archiveBaseName.set("TheEndlessWeave") + archiveClassifier.set("server") + archiveVersion.set(project.version.toString()) + manifest { attributes["Main-Class"] = "xyz.samiker.theendlessweave.ServerLauncher" } + + from(project(":server").sourceSets.main.get().output) + from(project(":shared").sourceSets.main.get().output) +} + +java { toolchain { languageVersion.set(JavaLanguageVersion.of(17)) } } \ No newline at end of file diff --git a/src/main/java/xyz/samiker/theendlessweave/server/ServerLauncher.java b/server/src/main/java/xyz/samiker/theendlessweave/ServerLauncher.java similarity index 89% rename from src/main/java/xyz/samiker/theendlessweave/server/ServerLauncher.java rename to server/src/main/java/xyz/samiker/theendlessweave/ServerLauncher.java index 1d5c55d..db92de3 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/ServerLauncher.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/ServerLauncher.java @@ -1,6 +1,6 @@ -package xyz.samiker.theendlessweave.server; +package xyz.samiker.theendlessweave; -import xyz.samiker.theendlessweave.server.network.GameServer; +import xyz.samiker.theendlessweave.network.GameServer; import java.io.IOException; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/ServerLoop.java b/server/src/main/java/xyz/samiker/theendlessweave/ServerLoop.java similarity index 88% rename from src/main/java/xyz/samiker/theendlessweave/server/ServerLoop.java rename to server/src/main/java/xyz/samiker/theendlessweave/ServerLoop.java index 6ad0ba4..c27b153 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/ServerLoop.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/ServerLoop.java @@ -1,9 +1,9 @@ -package xyz.samiker.theendlessweave.server; -import xyz.samiker.theendlessweave.core.logic.Game; -import xyz.samiker.theendlessweave.core.logic.GameState; +package xyz.samiker.theendlessweave; +import xyz.samiker.theendlessweave.logic.Game; +import xyz.samiker.theendlessweave.logic.GameState; -import static xyz.samiker.theendlessweave.core.utils.Constants.TARGET_TPS; -import static xyz.samiker.theendlessweave.core.utils.Constants.TIME_PER_TICK; +import static xyz.samiker.theendlessweave.utils.Constants.TARGET_TPS; +import static xyz.samiker.theendlessweave.utils.Constants.TIME_PER_TICK; public class ServerLoop { private Game game; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/network/GameServer.java b/server/src/main/java/xyz/samiker/theendlessweave/network/GameServer.java similarity index 83% rename from src/main/java/xyz/samiker/theendlessweave/server/network/GameServer.java rename to server/src/main/java/xyz/samiker/theendlessweave/network/GameServer.java index 61df6d2..eb1beec 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/network/GameServer.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/network/GameServer.java @@ -1,21 +1,20 @@ -package xyz.samiker.theendlessweave.server.network; +package xyz.samiker.theendlessweave.network; import com.esotericsoftware.kryonet.Connection; import com.esotericsoftware.kryonet.Listener; import com.esotericsoftware.kryonet.Server; -import xyz.samiker.theendlessweave.core.GameData; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.gamemap.MapGeneratorSettings; -import xyz.samiker.theendlessweave.core.logic.Game; -import xyz.samiker.theendlessweave.core.network.NetworkRegister; -import xyz.samiker.theendlessweave.core.network.packets.PacketInput; -import xyz.samiker.theendlessweave.core.network.packets.PacketLoginRequest; -import xyz.samiker.theendlessweave.core.network.packets.PacketLoginResponse; -import xyz.samiker.theendlessweave.core.network.packets.PacketSnapshot; -import xyz.samiker.theendlessweave.server.ServerLauncher; -import xyz.samiker.theendlessweave.server.ServerLoop; -import xyz.samiker.theendlessweave.server.systems.*; +import xyz.samiker.theendlessweave.GameData; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.gamemap.MapGeneratorSettings; +import xyz.samiker.theendlessweave.logic.Game; +import xyz.samiker.theendlessweave.network.packets.PacketInput; +import xyz.samiker.theendlessweave.network.packets.PacketLoginRequest; +import xyz.samiker.theendlessweave.network.packets.PacketLoginResponse; +import xyz.samiker.theendlessweave.network.packets.PacketSnapshot; +import xyz.samiker.theendlessweave.ServerLauncher; +import xyz.samiker.theendlessweave.ServerLoop; +import xyz.samiker.theendlessweave.systems.*; import java.io.IOException; import java.util.Map; @@ -76,7 +75,7 @@ public void dispose() { loop.dispose(); server.stop(); if (aiExecutor != null) { - aiExecutor.close(); + aiExecutor.shutdown(); } } diff --git a/src/main/java/xyz/samiker/theendlessweave/server/systems/AISystem.java b/server/src/main/java/xyz/samiker/theendlessweave/systems/AISystem.java similarity index 88% rename from src/main/java/xyz/samiker/theendlessweave/server/systems/AISystem.java rename to server/src/main/java/xyz/samiker/theendlessweave/systems/AISystem.java index ff694f6..33b9a74 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/systems/AISystem.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/systems/AISystem.java @@ -1,23 +1,23 @@ -package xyz.samiker.theendlessweave.server.systems; - -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.AIComponent; -import xyz.samiker.theendlessweave.core.entities.components.PathfindingComponent; -import xyz.samiker.theendlessweave.core.entities.components.PlayerTagComponent; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.gamemap.GameMap; -import xyz.samiker.theendlessweave.core.logic.ai.EntityAIState; -import xyz.samiker.theendlessweave.core.logic.ai.LineOfSightUtil; -import xyz.samiker.theendlessweave.core.logic.ai.astar.AStarPathfinder; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.utils.Array; +package xyz.samiker.theendlessweave.systems; + +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.AIComponent; +import xyz.samiker.theendlessweave.entities.components.PathfindingComponent; +import xyz.samiker.theendlessweave.entities.components.PlayerTagComponent; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.gamemap.GameMap; +import xyz.samiker.theendlessweave.logic.ai.EntityAIState; +import xyz.samiker.theendlessweave.logic.ai.LineOfSightUtil; +import xyz.samiker.theendlessweave.logic.ai.astar.AStarPathfinder; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.utils.Array; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.concurrent.ExecutorService; -import static xyz.samiker.theendlessweave.core.utils.Constants.TILE_SIZE; +import static xyz.samiker.theendlessweave.utils.Constants.TILE_SIZE; public class AISystem implements ISystem { private final GameMap gameMap; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/systems/AttackSystem.java b/server/src/main/java/xyz/samiker/theendlessweave/systems/AttackSystem.java similarity index 94% rename from src/main/java/xyz/samiker/theendlessweave/server/systems/AttackSystem.java rename to server/src/main/java/xyz/samiker/theendlessweave/systems/AttackSystem.java index 88fd4b7..855a15a 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/systems/AttackSystem.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/systems/AttackSystem.java @@ -1,14 +1,14 @@ -package xyz.samiker.theendlessweave.server.systems; +package xyz.samiker.theendlessweave.systems; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.*; -import xyz.samiker.theendlessweave.core.logic.Game; -import xyz.samiker.theendlessweave.core.logic.ai.EntityAIState; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.*; +import xyz.samiker.theendlessweave.logic.Game; +import xyz.samiker.theendlessweave.logic.ai.EntityAIState; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; -import static xyz.samiker.theendlessweave.core.utils.Constants.SECONDS_PER_TICK; -import static xyz.samiker.theendlessweave.core.utils.Constants.TILE_SIZE; +import static xyz.samiker.theendlessweave.utils.Constants.SECONDS_PER_TICK; +import static xyz.samiker.theendlessweave.utils.Constants.TILE_SIZE; public class AttackSystem implements ISystem { private final Game game; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/systems/DamageSystem.java b/server/src/main/java/xyz/samiker/theendlessweave/systems/DamageSystem.java similarity index 90% rename from src/main/java/xyz/samiker/theendlessweave/server/systems/DamageSystem.java rename to server/src/main/java/xyz/samiker/theendlessweave/systems/DamageSystem.java index e8521dc..a5b9cdf 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/systems/DamageSystem.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/systems/DamageSystem.java @@ -1,12 +1,12 @@ -package xyz.samiker.theendlessweave.server.systems; +package xyz.samiker.theendlessweave.systems; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.*; -import xyz.samiker.theendlessweave.core.logic.utils.SpatialGrid; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.*; +import xyz.samiker.theendlessweave.logic.utils.SpatialGrid; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; -import static xyz.samiker.theendlessweave.core.utils.Constants.COLLISION_RADIUS; +import static xyz.samiker.theendlessweave.utils.Constants.COLLISION_RADIUS; public class DamageSystem implements ISystem { private final SpatialGrid spatialGrid; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/systems/MovementSystem.java b/server/src/main/java/xyz/samiker/theendlessweave/systems/MovementSystem.java similarity index 90% rename from src/main/java/xyz/samiker/theendlessweave/server/systems/MovementSystem.java rename to server/src/main/java/xyz/samiker/theendlessweave/systems/MovementSystem.java index 302dbfe..6e511b0 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/systems/MovementSystem.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/systems/MovementSystem.java @@ -1,15 +1,15 @@ -package xyz.samiker.theendlessweave.server.systems; - -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.*; -import xyz.samiker.theendlessweave.core.gamemap.GameMap; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.tile.TileType; -import xyz.samiker.theendlessweave.core.utils.Array; - -import static xyz.samiker.theendlessweave.core.utils.Constants.COLLISION_RADIUS; -import static xyz.samiker.theendlessweave.core.utils.Constants.TILE_SIZE; +package xyz.samiker.theendlessweave.systems; + +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.*; +import xyz.samiker.theendlessweave.gamemap.GameMap; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.tile.TileType; +import xyz.samiker.theendlessweave.utils.Array; + +import static xyz.samiker.theendlessweave.utils.Constants.COLLISION_RADIUS; +import static xyz.samiker.theendlessweave.utils.Constants.TILE_SIZE; public class MovementSystem implements ISystem { private final GameMap gameMap; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/systems/ProjectileSystem.java b/server/src/main/java/xyz/samiker/theendlessweave/systems/ProjectileSystem.java similarity index 90% rename from src/main/java/xyz/samiker/theendlessweave/server/systems/ProjectileSystem.java rename to server/src/main/java/xyz/samiker/theendlessweave/systems/ProjectileSystem.java index f5bd622..89a706f 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/systems/ProjectileSystem.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/systems/ProjectileSystem.java @@ -1,12 +1,12 @@ -package xyz.samiker.theendlessweave.server.systems; - -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.PlayerTagComponent; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.entities.components.ProjectileComponent; -import xyz.samiker.theendlessweave.core.entities.components.VelocityComponent; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +package xyz.samiker.theendlessweave.systems; + +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.PlayerTagComponent; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.entities.components.ProjectileComponent; +import xyz.samiker.theendlessweave.entities.components.VelocityComponent; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; public class ProjectileSystem implements ISystem { private Entity cachedPlayer; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/systems/ServerDebugSystem.java b/server/src/main/java/xyz/samiker/theendlessweave/systems/ServerDebugSystem.java similarity index 66% rename from src/main/java/xyz/samiker/theendlessweave/server/systems/ServerDebugSystem.java rename to server/src/main/java/xyz/samiker/theendlessweave/systems/ServerDebugSystem.java index f6ee0f2..dd9ad56 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/systems/ServerDebugSystem.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/systems/ServerDebugSystem.java @@ -1,9 +1,9 @@ -package xyz.samiker.theendlessweave.server.systems; +package xyz.samiker.theendlessweave.systems; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.logic.PerformanceMonitor; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.logic.PerformanceMonitor; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; public class ServerDebugSystem implements ISystem { private final PerformanceMonitor profiler; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/systems/ServerEntityEventSystem.java b/server/src/main/java/xyz/samiker/theendlessweave/systems/ServerEntityEventSystem.java similarity index 75% rename from src/main/java/xyz/samiker/theendlessweave/server/systems/ServerEntityEventSystem.java rename to server/src/main/java/xyz/samiker/theendlessweave/systems/ServerEntityEventSystem.java index ab20b59..d6c1b97 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/systems/ServerEntityEventSystem.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/systems/ServerEntityEventSystem.java @@ -1,15 +1,15 @@ -package xyz.samiker.theendlessweave.server.systems; +package xyz.samiker.theendlessweave.systems; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.entities.components.ProjectileComponent; -import xyz.samiker.theendlessweave.core.entities.components.RenderComponent; -import xyz.samiker.theendlessweave.core.entities.components.VelocityComponent; -import xyz.samiker.theendlessweave.core.logic.Game; -import xyz.samiker.theendlessweave.core.network.packets.PacketSpawnEntity; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; -import xyz.samiker.theendlessweave.server.network.GameServer; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.entities.components.ProjectileComponent; +import xyz.samiker.theendlessweave.entities.components.RenderComponent; +import xyz.samiker.theendlessweave.entities.components.VelocityComponent; +import xyz.samiker.theendlessweave.logic.Game; +import xyz.samiker.theendlessweave.network.packets.PacketSpawnEntity; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; +import xyz.samiker.theendlessweave.network.GameServer; public class ServerEntityEventSystem implements ISystem { private final GameServer server; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/systems/ServerInputSystem.java b/server/src/main/java/xyz/samiker/theendlessweave/systems/ServerInputSystem.java similarity index 78% rename from src/main/java/xyz/samiker/theendlessweave/server/systems/ServerInputSystem.java rename to server/src/main/java/xyz/samiker/theendlessweave/systems/ServerInputSystem.java index 2001464..2e923b2 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/systems/ServerInputSystem.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/systems/ServerInputSystem.java @@ -1,15 +1,15 @@ -package xyz.samiker.theendlessweave.server.systems; +package xyz.samiker.theendlessweave.systems; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.entities.components.ProjectileComponent; -import xyz.samiker.theendlessweave.core.entities.components.VelocityComponent; -import xyz.samiker.theendlessweave.core.entities.components.WeaponComponent; -import xyz.samiker.theendlessweave.core.logic.Game; -import xyz.samiker.theendlessweave.core.network.packets.PacketInput; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; -import xyz.samiker.theendlessweave.server.network.GameServer; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.entities.components.ProjectileComponent; +import xyz.samiker.theendlessweave.entities.components.VelocityComponent; +import xyz.samiker.theendlessweave.entities.components.WeaponComponent; +import xyz.samiker.theendlessweave.logic.Game; +import xyz.samiker.theendlessweave.network.packets.PacketInput; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; +import xyz.samiker.theendlessweave.network.GameServer; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/systems/ServerSnapshotSenderSystem.java b/server/src/main/java/xyz/samiker/theendlessweave/systems/ServerSnapshotSenderSystem.java similarity index 77% rename from src/main/java/xyz/samiker/theendlessweave/server/systems/ServerSnapshotSenderSystem.java rename to server/src/main/java/xyz/samiker/theendlessweave/systems/ServerSnapshotSenderSystem.java index 34b9137..a6d3684 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/systems/ServerSnapshotSenderSystem.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/systems/ServerSnapshotSenderSystem.java @@ -1,15 +1,15 @@ -package xyz.samiker.theendlessweave.server.systems; +package xyz.samiker.theendlessweave.systems; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.*; -import xyz.samiker.theendlessweave.core.network.packets.Packet; -import xyz.samiker.theendlessweave.core.network.packets.PacketDestroyEntity; -import xyz.samiker.theendlessweave.core.network.packets.PacketEntityUpdate; -import xyz.samiker.theendlessweave.core.network.packets.PacketSnapshot; -import xyz.samiker.theendlessweave.core.network.utils.PacketPool; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; -import xyz.samiker.theendlessweave.server.network.GameServer; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.*; +import xyz.samiker.theendlessweave.network.packets.Packet; +import xyz.samiker.theendlessweave.network.packets.PacketDestroyEntity; +import xyz.samiker.theendlessweave.network.packets.PacketEntityUpdate; +import xyz.samiker.theendlessweave.network.packets.PacketSnapshot; +import xyz.samiker.theendlessweave.network.utils.PacketPool; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; +import xyz.samiker.theendlessweave.network.GameServer; import java.util.Arrays; diff --git a/src/main/java/xyz/samiker/theendlessweave/server/systems/WeaponSystem.java b/server/src/main/java/xyz/samiker/theendlessweave/systems/WeaponSystem.java similarity index 58% rename from src/main/java/xyz/samiker/theendlessweave/server/systems/WeaponSystem.java rename to server/src/main/java/xyz/samiker/theendlessweave/systems/WeaponSystem.java index 089616f..4f7f701 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/systems/WeaponSystem.java +++ b/server/src/main/java/xyz/samiker/theendlessweave/systems/WeaponSystem.java @@ -1,9 +1,9 @@ -package xyz.samiker.theendlessweave.server.systems; +package xyz.samiker.theendlessweave.systems; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.WeaponComponent; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.WeaponComponent; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; public class WeaponSystem implements ISystem { @Override diff --git a/settings.gradle.kts b/settings.gradle.kts index df13ec7..ded765a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1 +1,2 @@ rootProject.name = "TheEndlessWeave" +include("shared", "core", "lwjgl3", "server", "android") \ No newline at end of file diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts new file mode 100644 index 0000000..10a1890 --- /dev/null +++ b/shared/build.gradle.kts @@ -0,0 +1,13 @@ +plugins { + java + id("java-library") +} + +val gdxVersion: String by project + +dependencies { + //api("com.badlogicgames.gdx:gdx:$gdxVersion") + api("com.esotericsoftware:kryonet:${project.extra["kryoVersion"]}") +} + +java { toolchain { languageVersion.set(JavaLanguageVersion.of(17)) } } \ No newline at end of file diff --git a/src/main/java/xyz/samiker/theendlessweave/core/GameData.java b/shared/src/main/java/xyz/samiker/theendlessweave/GameData.java similarity index 93% rename from src/main/java/xyz/samiker/theendlessweave/core/GameData.java rename to shared/src/main/java/xyz/samiker/theendlessweave/GameData.java index b2af1cf..dbb3cff 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/GameData.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/GameData.java @@ -1,6 +1,6 @@ -package xyz.samiker.theendlessweave.core; +package xyz.samiker.theendlessweave; -import xyz.samiker.theendlessweave.core.gamemap.MapGeneratorSettings; +import xyz.samiker.theendlessweave.gamemap.MapGeneratorSettings; /** * Данные для запуска игры. diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/EntitiesFabric.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/EntitiesFabric.java similarity index 95% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/EntitiesFabric.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/EntitiesFabric.java index 0b585e8..8e9bb15 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/EntitiesFabric.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/EntitiesFabric.java @@ -1,6 +1,6 @@ -package xyz.samiker.theendlessweave.core.entities; +package xyz.samiker.theendlessweave.entities; -import xyz.samiker.theendlessweave.core.entities.components.*; +import xyz.samiker.theendlessweave.entities.components.*; public class EntitiesFabric { public static Entity createPlayer(int entityId, double x, double y, double speed) { diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/Entity.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/Entity.java similarity index 93% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/Entity.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/Entity.java index 91f6339..d573c42 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/Entity.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/Entity.java @@ -1,6 +1,6 @@ -package xyz.samiker.theendlessweave.core.entities; +package xyz.samiker.theendlessweave.entities; -import xyz.samiker.theendlessweave.core.entities.components.ComponentType; +import xyz.samiker.theendlessweave.entities.components.ComponentType; import java.util.Arrays; import java.util.BitSet; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/ProjectilePool.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/ProjectilePool.java similarity index 68% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/ProjectilePool.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/ProjectilePool.java index abaa7bf..0c6850c 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/ProjectilePool.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/ProjectilePool.java @@ -1,9 +1,9 @@ -package xyz.samiker.theendlessweave.core.entities; +package xyz.samiker.theendlessweave.entities; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.entities.components.ProjectileComponent; -import xyz.samiker.theendlessweave.core.entities.components.RenderComponent; -import xyz.samiker.theendlessweave.core.entities.components.VelocityComponent; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.entities.components.ProjectileComponent; +import xyz.samiker.theendlessweave.entities.components.RenderComponent; +import xyz.samiker.theendlessweave.entities.components.VelocityComponent; import java.util.ArrayDeque; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/AIComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/AIComponent.java similarity index 94% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/AIComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/AIComponent.java index b7639be..d0849f1 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/AIComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/AIComponent.java @@ -1,6 +1,6 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; -import xyz.samiker.theendlessweave.core.logic.ai.EntityAIState; +import xyz.samiker.theendlessweave.logic.ai.EntityAIState; public class AIComponent implements Component { private EntityAIState state; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/AttackComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/AttackComponent.java similarity index 96% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/AttackComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/AttackComponent.java index 364d9f5..6d76454 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/AttackComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/AttackComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; /** * Компонент атаки с поддержкой паттернов. diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/CameraTargetComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/CameraTargetComponent.java similarity index 50% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/CameraTargetComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/CameraTargetComponent.java index 94d79af..f84bd72 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/CameraTargetComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/CameraTargetComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class CameraTargetComponent implements Component { } diff --git a/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/Component.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/Component.java new file mode 100644 index 0000000..78ba520 --- /dev/null +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/Component.java @@ -0,0 +1,4 @@ +package xyz.samiker.theendlessweave.entities.components; + +public interface Component { +} diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/ComponentType.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ComponentType.java similarity index 84% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/ComponentType.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ComponentType.java index 5bdd3eb..fccc95a 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/ComponentType.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ComponentType.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/HealthComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/HealthComponent.java similarity index 90% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/HealthComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/HealthComponent.java index 43bbebf..49a19f1 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/HealthComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/HealthComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class HealthComponent implements Component { public volatile double health; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/LevelComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/LevelComponent.java similarity index 95% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/LevelComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/LevelComponent.java index 940e5a9..7b671c1 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/LevelComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/LevelComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; /** * Компонент уровня игрока. diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/NameComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/NameComponent.java similarity index 71% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/NameComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/NameComponent.java index 813a93d..ead7b00 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/NameComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/NameComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class NameComponent implements Component { public String name = ""; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/PathfindingComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PathfindingComponent.java similarity index 90% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/PathfindingComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PathfindingComponent.java index 97dabf1..8a3e219 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/PathfindingComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PathfindingComponent.java @@ -1,7 +1,7 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.utils.Array; public class PathfindingComponent implements Component { private Array path; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/PatternConfig.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PatternConfig.java similarity index 98% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/PatternConfig.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PatternConfig.java index 13f25f4..f339edb 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/PatternConfig.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PatternConfig.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class PatternConfig { private final PatternType patternType; diff --git a/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PlayerTagComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PlayerTagComponent.java new file mode 100644 index 0000000..779d553 --- /dev/null +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PlayerTagComponent.java @@ -0,0 +1,4 @@ +package xyz.samiker.theendlessweave.entities.components; + +public class PlayerTagComponent implements Component { +} \ No newline at end of file diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/PositionComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PositionComponent.java similarity index 81% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/PositionComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PositionComponent.java index a273f94..48fdeb3 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/PositionComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/PositionComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class PositionComponent implements Component { public double x, y; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/ProjectileComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ProjectileComponent.java similarity index 95% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/ProjectileComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ProjectileComponent.java index 7f25d37..c782566 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/ProjectileComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ProjectileComponent.java @@ -1,6 +1,6 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; -import xyz.samiker.theendlessweave.core.entities.Entity; +import xyz.samiker.theendlessweave.entities.Entity; public class ProjectileComponent implements Component { public double angle; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/RenderComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/RenderComponent.java similarity index 86% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/RenderComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/RenderComponent.java index 8852749..b59ffbf 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/RenderComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/RenderComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class RenderComponent implements Component { public final RenderType type; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/RotationComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/RotationComponent.java similarity index 72% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/RotationComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/RotationComponent.java index 4fb8c13..00d5f48 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/RotationComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/RotationComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class RotationComponent implements Component { public double angle; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/ScaleComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ScaleComponent.java similarity index 79% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/ScaleComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ScaleComponent.java index 9345b70..82f643e 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/ScaleComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ScaleComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class ScaleComponent implements Component { public double scaleX = 1; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/ScoreComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ScoreComponent.java similarity index 81% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/ScoreComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ScoreComponent.java index dbfb165..d769e7b 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/ScoreComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ScoreComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class ScoreComponent implements Component { private int score = 0; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/ShowNameTagComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ShowNameTagComponent.java similarity index 72% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/ShowNameTagComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ShowNameTagComponent.java index cbe9f4a..cc52526 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/ShowNameTagComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/ShowNameTagComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; /** * Маркер для отображения метки имени над сущностью. diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/VelocityComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/VelocityComponent.java similarity index 88% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/VelocityComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/VelocityComponent.java index 32dd47c..237623a 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/VelocityComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/VelocityComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class VelocityComponent implements Component { public double speed; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/WeaponComponent.java b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/WeaponComponent.java similarity index 85% rename from src/main/java/xyz/samiker/theendlessweave/core/entities/components/WeaponComponent.java rename to shared/src/main/java/xyz/samiker/theendlessweave/entities/components/WeaponComponent.java index f86a160..675be68 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/WeaponComponent.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/entities/components/WeaponComponent.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.entities.components; +package xyz.samiker.theendlessweave.entities.components; public class WeaponComponent implements Component { public final double cooldownTime; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/EnemyFactory.java b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/EnemyFactory.java similarity index 83% rename from src/main/java/xyz/samiker/theendlessweave/core/gamemap/EnemyFactory.java rename to shared/src/main/java/xyz/samiker/theendlessweave/gamemap/EnemyFactory.java index 0f5abb6..e58071b 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/EnemyFactory.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/EnemyFactory.java @@ -1,13 +1,13 @@ -package xyz.samiker.theendlessweave.core.gamemap; +package xyz.samiker.theendlessweave.gamemap; -import xyz.samiker.theendlessweave.core.entities.EntitiesFabric; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.AIComponent; -import xyz.samiker.theendlessweave.core.entities.components.AttackComponent; -import xyz.samiker.theendlessweave.core.entities.components.PatternConfig; -import xyz.samiker.theendlessweave.core.logic.ai.EntityAIState; +import xyz.samiker.theendlessweave.entities.EntitiesFabric; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.AIComponent; +import xyz.samiker.theendlessweave.entities.components.AttackComponent; +import xyz.samiker.theendlessweave.entities.components.PatternConfig; +import xyz.samiker.theendlessweave.logic.ai.EntityAIState; -import static xyz.samiker.theendlessweave.core.utils.Constants.TILE_SIZE; +import static xyz.samiker.theendlessweave.utils.Constants.TILE_SIZE; public class EnemyFactory { public static Entity createEnemy(int entityId, EnemySpawnData spawnData) { diff --git a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/EnemySpawnData.java b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/EnemySpawnData.java similarity index 97% rename from src/main/java/xyz/samiker/theendlessweave/core/gamemap/EnemySpawnData.java rename to shared/src/main/java/xyz/samiker/theendlessweave/gamemap/EnemySpawnData.java index b012aa6..3a70357 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/EnemySpawnData.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/EnemySpawnData.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.gamemap; +package xyz.samiker.theendlessweave.gamemap; public class EnemySpawnData { private final int gridX; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/GameMap.java b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/GameMap.java similarity index 90% rename from src/main/java/xyz/samiker/theendlessweave/core/gamemap/GameMap.java rename to shared/src/main/java/xyz/samiker/theendlessweave/gamemap/GameMap.java index 5ffa4bb..8854693 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/GameMap.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/GameMap.java @@ -1,9 +1,9 @@ -package xyz.samiker.theendlessweave.core.gamemap; +package xyz.samiker.theendlessweave.gamemap; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.tile.TileType; -import xyz.samiker.theendlessweave.core.tile.TileUtils; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.tile.TileType; +import xyz.samiker.theendlessweave.tile.TileUtils; +import xyz.samiker.theendlessweave.utils.Array; public class GameMap { private final int WIDTH; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/MapGenerator.java b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/MapGenerator.java similarity index 98% rename from src/main/java/xyz/samiker/theendlessweave/core/gamemap/MapGenerator.java rename to shared/src/main/java/xyz/samiker/theendlessweave/gamemap/MapGenerator.java index 12a639b..732ce64 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/MapGenerator.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/MapGenerator.java @@ -1,10 +1,10 @@ -package xyz.samiker.theendlessweave.core.gamemap; +package xyz.samiker.theendlessweave.gamemap; -import xyz.samiker.theendlessweave.core.gamemap.EnemySpawnData.EnemyType; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.tile.TileType; -import xyz.samiker.theendlessweave.core.tile.TileUtils; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.gamemap.EnemySpawnData.EnemyType; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.tile.TileType; +import xyz.samiker.theendlessweave.tile.TileUtils; +import xyz.samiker.theendlessweave.utils.Array; import java.util.*; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/MapGeneratorSettings.java b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/MapGeneratorSettings.java similarity index 99% rename from src/main/java/xyz/samiker/theendlessweave/core/gamemap/MapGeneratorSettings.java rename to shared/src/main/java/xyz/samiker/theendlessweave/gamemap/MapGeneratorSettings.java index 82670f3..e8a2d5c 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/MapGeneratorSettings.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/MapGeneratorSettings.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.gamemap; +package xyz.samiker.theendlessweave.gamemap; public class MapGeneratorSettings { private boolean inverseGeneration; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/Room.java b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/Room.java similarity index 97% rename from src/main/java/xyz/samiker/theendlessweave/core/gamemap/Room.java rename to shared/src/main/java/xyz/samiker/theendlessweave/gamemap/Room.java index bf9be02..f55f877 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/Room.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/Room.java @@ -1,6 +1,6 @@ -package xyz.samiker.theendlessweave.core.gamemap; +package xyz.samiker.theendlessweave.gamemap; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.utils.Array; import java.util.Random; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/RoomObjectPlacer.java b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/RoomObjectPlacer.java similarity index 95% rename from src/main/java/xyz/samiker/theendlessweave/core/gamemap/RoomObjectPlacer.java rename to shared/src/main/java/xyz/samiker/theendlessweave/gamemap/RoomObjectPlacer.java index cefce3d..854d857 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/RoomObjectPlacer.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/RoomObjectPlacer.java @@ -1,8 +1,8 @@ -package xyz.samiker.theendlessweave.core.gamemap; +package xyz.samiker.theendlessweave.gamemap; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.tile.TileObject; -import xyz.samiker.theendlessweave.core.tile.TileObject.TileObjectType; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.tile.TileObject; +import xyz.samiker.theendlessweave.tile.TileObject.TileObjectType; import java.util.Random; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/RoomShapeGenerator.java b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/RoomShapeGenerator.java similarity index 97% rename from src/main/java/xyz/samiker/theendlessweave/core/gamemap/RoomShapeGenerator.java rename to shared/src/main/java/xyz/samiker/theendlessweave/gamemap/RoomShapeGenerator.java index 2835c14..d97e937 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/RoomShapeGenerator.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/RoomShapeGenerator.java @@ -1,8 +1,8 @@ -package xyz.samiker.theendlessweave.core.gamemap; +package xyz.samiker.theendlessweave.gamemap; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.tile.TileType; -import xyz.samiker.theendlessweave.core.tile.TileUtils; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.tile.TileType; +import xyz.samiker.theendlessweave.tile.TileUtils; import java.util.Random; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/RoomType.java b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/RoomType.java similarity index 97% rename from src/main/java/xyz/samiker/theendlessweave/core/gamemap/RoomType.java rename to shared/src/main/java/xyz/samiker/theendlessweave/gamemap/RoomType.java index 4d8c57c..b8f8d20 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/gamemap/RoomType.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/gamemap/RoomType.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.gamemap; +package xyz.samiker.theendlessweave.gamemap; /** * Типы комнат на карте. diff --git a/src/main/java/xyz/samiker/theendlessweave/core/logic/Game.java b/shared/src/main/java/xyz/samiker/theendlessweave/logic/Game.java similarity index 87% rename from src/main/java/xyz/samiker/theendlessweave/core/logic/Game.java rename to shared/src/main/java/xyz/samiker/theendlessweave/logic/Game.java index 3d29f9c..a64afee 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/logic/Game.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/logic/Game.java @@ -1,19 +1,19 @@ -package xyz.samiker.theendlessweave.core.logic; - -import xyz.samiker.theendlessweave.core.GameData; -import xyz.samiker.theendlessweave.core.entities.EntitiesFabric; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.ProjectilePool; -import xyz.samiker.theendlessweave.core.entities.components.AIComponent; -import xyz.samiker.theendlessweave.core.entities.components.AttackComponent; -import xyz.samiker.theendlessweave.core.entities.components.PatternConfig; -import xyz.samiker.theendlessweave.core.entities.components.ProjectileComponent; -import xyz.samiker.theendlessweave.core.gamemap.*; -import xyz.samiker.theendlessweave.core.logic.ai.EntityAIState; -import xyz.samiker.theendlessweave.core.systems.ISystem; -import xyz.samiker.theendlessweave.core.utils.Array; - -import static xyz.samiker.theendlessweave.core.utils.Constants.TILE_SIZE; +package xyz.samiker.theendlessweave.logic; + +import xyz.samiker.theendlessweave.GameData; +import xyz.samiker.theendlessweave.entities.EntitiesFabric; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.ProjectilePool; +import xyz.samiker.theendlessweave.entities.components.AIComponent; +import xyz.samiker.theendlessweave.entities.components.AttackComponent; +import xyz.samiker.theendlessweave.entities.components.PatternConfig; +import xyz.samiker.theendlessweave.entities.components.ProjectileComponent; +import xyz.samiker.theendlessweave.gamemap.*; +import xyz.samiker.theendlessweave.logic.ai.EntityAIState; +import xyz.samiker.theendlessweave.systems.ISystem; +import xyz.samiker.theendlessweave.utils.Array; + +import static xyz.samiker.theendlessweave.utils.Constants.TILE_SIZE; public class Game { private final GameMap gameMap; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/logic/GameState.java b/shared/src/main/java/xyz/samiker/theendlessweave/logic/GameState.java similarity index 57% rename from src/main/java/xyz/samiker/theendlessweave/core/logic/GameState.java rename to shared/src/main/java/xyz/samiker/theendlessweave/logic/GameState.java index 4b0096d..6228409 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/logic/GameState.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/logic/GameState.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.logic; +package xyz.samiker.theendlessweave.logic; public enum GameState { PLAYING, diff --git a/src/main/java/xyz/samiker/theendlessweave/core/logic/Loop.java b/shared/src/main/java/xyz/samiker/theendlessweave/logic/Loop.java similarity index 91% rename from src/main/java/xyz/samiker/theendlessweave/core/logic/Loop.java rename to shared/src/main/java/xyz/samiker/theendlessweave/logic/Loop.java index 382fe7f..8507a0d 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/logic/Loop.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/logic/Loop.java @@ -1,7 +1,7 @@ -package xyz.samiker.theendlessweave.core.logic; +package xyz.samiker.theendlessweave.logic; -import static xyz.samiker.theendlessweave.core.utils.Constants.TARGET_TPS; -import static xyz.samiker.theendlessweave.core.utils.Constants.TIME_PER_TICK; +import static xyz.samiker.theendlessweave.utils.Constants.TARGET_TPS; +import static xyz.samiker.theendlessweave.utils.Constants.TIME_PER_TICK; public class Loop { private final Game game; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/logic/PerformanceMonitor.java b/shared/src/main/java/xyz/samiker/theendlessweave/logic/PerformanceMonitor.java similarity index 97% rename from src/main/java/xyz/samiker/theendlessweave/core/logic/PerformanceMonitor.java rename to shared/src/main/java/xyz/samiker/theendlessweave/logic/PerformanceMonitor.java index b717057..77314d2 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/logic/PerformanceMonitor.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/logic/PerformanceMonitor.java @@ -1,7 +1,7 @@ -package xyz.samiker.theendlessweave.core.logic; +package xyz.samiker.theendlessweave.logic; -import xyz.samiker.theendlessweave.core.utils.Array; -import xyz.samiker.theendlessweave.core.utils.Constants; +import xyz.samiker.theendlessweave.utils.Array; +import xyz.samiker.theendlessweave.utils.Constants; import java.util.Arrays; import java.util.Comparator; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/logic/ai/EntityAIState.java b/shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/EntityAIState.java similarity index 62% rename from src/main/java/xyz/samiker/theendlessweave/core/logic/ai/EntityAIState.java rename to shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/EntityAIState.java index ebaccf9..24170e7 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/logic/ai/EntityAIState.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/EntityAIState.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.logic.ai; +package xyz.samiker.theendlessweave.logic.ai; public enum EntityAIState { IDLE, diff --git a/src/main/java/xyz/samiker/theendlessweave/core/logic/ai/LineOfSightUtil.java b/shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/LineOfSightUtil.java similarity index 91% rename from src/main/java/xyz/samiker/theendlessweave/core/logic/ai/LineOfSightUtil.java rename to shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/LineOfSightUtil.java index cd4e6f3..a56a9c6 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/logic/ai/LineOfSightUtil.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/LineOfSightUtil.java @@ -1,10 +1,10 @@ -package xyz.samiker.theendlessweave.core.logic.ai; +package xyz.samiker.theendlessweave.logic.ai; -import xyz.samiker.theendlessweave.core.gamemap.GameMap; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.tile.TileType; +import xyz.samiker.theendlessweave.gamemap.GameMap; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.tile.TileType; -import static xyz.samiker.theendlessweave.core.utils.Constants.TILE_SIZE; +import static xyz.samiker.theendlessweave.utils.Constants.TILE_SIZE; /** * Утилита для проверки прямой видимости между двумя точками. diff --git a/src/main/java/xyz/samiker/theendlessweave/core/logic/ai/astar/AStarPathfinder.java b/shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/astar/AStarPathfinder.java similarity index 97% rename from src/main/java/xyz/samiker/theendlessweave/core/logic/ai/astar/AStarPathfinder.java rename to shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/astar/AStarPathfinder.java index 0ccc996..0332643 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/logic/ai/astar/AStarPathfinder.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/astar/AStarPathfinder.java @@ -1,8 +1,8 @@ -package xyz.samiker.theendlessweave.core.logic.ai.astar; +package xyz.samiker.theendlessweave.logic.ai.astar; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.tile.TileType; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.tile.TileType; +import xyz.samiker.theendlessweave.utils.Array; public class AStarPathfinder { private static class GraphNode { diff --git a/src/main/java/xyz/samiker/theendlessweave/core/logic/ai/astar/PathNode.java b/shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/astar/PathNode.java similarity index 88% rename from src/main/java/xyz/samiker/theendlessweave/core/logic/ai/astar/PathNode.java rename to shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/astar/PathNode.java index 5f5ff1a..044e890 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/logic/ai/astar/PathNode.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/logic/ai/astar/PathNode.java @@ -1,7 +1,7 @@ -package xyz.samiker.theendlessweave.core.logic.ai.astar; +package xyz.samiker.theendlessweave.logic.ai.astar; -import xyz.samiker.theendlessweave.core.tile.Tile; -import xyz.samiker.theendlessweave.core.tile.TileType; +import xyz.samiker.theendlessweave.tile.Tile; +import xyz.samiker.theendlessweave.tile.TileType; import java.util.Objects; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/logic/utils/SpatialGrid.java b/shared/src/main/java/xyz/samiker/theendlessweave/logic/utils/SpatialGrid.java similarity index 88% rename from src/main/java/xyz/samiker/theendlessweave/core/logic/utils/SpatialGrid.java rename to shared/src/main/java/xyz/samiker/theendlessweave/logic/utils/SpatialGrid.java index d0bba2e..e800578 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/logic/utils/SpatialGrid.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/logic/utils/SpatialGrid.java @@ -1,10 +1,10 @@ -package xyz.samiker.theendlessweave.core.logic.utils; +package xyz.samiker.theendlessweave.logic.utils; -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.utils.Array; +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.utils.Array; -import static xyz.samiker.theendlessweave.core.utils.Constants.TILE_SIZE; +import static xyz.samiker.theendlessweave.utils.Constants.TILE_SIZE; public class SpatialGrid { private final int cellSize; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/NetworkRegister.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/NetworkRegister.java similarity index 67% rename from src/main/java/xyz/samiker/theendlessweave/core/network/NetworkRegister.java rename to shared/src/main/java/xyz/samiker/theendlessweave/network/NetworkRegister.java index f72abb4..339859d 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/NetworkRegister.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/NetworkRegister.java @@ -1,14 +1,14 @@ -package xyz.samiker.theendlessweave.core.network; +package xyz.samiker.theendlessweave.network; import com.esotericsoftware.kryo.Kryo; import com.esotericsoftware.kryonet.EndPoint; -import xyz.samiker.theendlessweave.core.GameData; -import xyz.samiker.theendlessweave.core.entities.components.PositionComponent; -import xyz.samiker.theendlessweave.core.entities.components.ProjectileComponent; -import xyz.samiker.theendlessweave.core.entities.components.RenderComponent; -import xyz.samiker.theendlessweave.core.entities.components.VelocityComponent; -import xyz.samiker.theendlessweave.core.gamemap.MapGeneratorSettings; -import xyz.samiker.theendlessweave.core.network.packets.*; +import xyz.samiker.theendlessweave.GameData; +import xyz.samiker.theendlessweave.entities.components.PositionComponent; +import xyz.samiker.theendlessweave.entities.components.ProjectileComponent; +import xyz.samiker.theendlessweave.entities.components.RenderComponent; +import xyz.samiker.theendlessweave.entities.components.VelocityComponent; +import xyz.samiker.theendlessweave.gamemap.MapGeneratorSettings; +import xyz.samiker.theendlessweave.network.packets.*; public class NetworkRegister { public static void register(EndPoint endPoint) { diff --git a/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/Packet.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/Packet.java new file mode 100644 index 0000000..ab100f3 --- /dev/null +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/Packet.java @@ -0,0 +1,4 @@ +package xyz.samiker.theendlessweave.network.packets; + +public abstract class Packet { +} diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketDestroyEntity.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketDestroyEntity.java similarity index 55% rename from src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketDestroyEntity.java rename to shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketDestroyEntity.java index b69b5c4..e0fdb59 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketDestroyEntity.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketDestroyEntity.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.network.packets; +package xyz.samiker.theendlessweave.network.packets; public class PacketDestroyEntity extends Packet { public int id; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketEntityUpdate.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketEntityUpdate.java similarity index 96% rename from src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketEntityUpdate.java rename to shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketEntityUpdate.java index 9796ed1..b277cd4 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketEntityUpdate.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketEntityUpdate.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.network.packets; +package xyz.samiker.theendlessweave.network.packets; import com.esotericsoftware.kryo.Kryo; import com.esotericsoftware.kryo.KryoSerializable; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketInput.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketInput.java similarity index 71% rename from src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketInput.java rename to shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketInput.java index 022c609..370cca1 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketInput.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketInput.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.network.packets; +package xyz.samiker.theendlessweave.network.packets; public class PacketInput extends Packet { public boolean up, down, left, right; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketLoginRequest.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketLoginRequest.java similarity index 89% rename from src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketLoginRequest.java rename to shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketLoginRequest.java index b3cf5c3..20292a6 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketLoginRequest.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketLoginRequest.java @@ -1,10 +1,10 @@ -package xyz.samiker.theendlessweave.core.network.packets; +package xyz.samiker.theendlessweave.network.packets; import com.esotericsoftware.kryo.Kryo; import com.esotericsoftware.kryo.KryoSerializable; import com.esotericsoftware.kryo.io.Input; import com.esotericsoftware.kryo.io.Output; -import xyz.samiker.theendlessweave.core.GameData; +import xyz.samiker.theendlessweave.GameData; public class PacketLoginRequest extends Packet implements KryoSerializable { public String username; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketLoginResponse.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketLoginResponse.java similarity index 62% rename from src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketLoginResponse.java rename to shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketLoginResponse.java index c4e231a..3ca97f1 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketLoginResponse.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketLoginResponse.java @@ -1,6 +1,6 @@ -package xyz.samiker.theendlessweave.core.network.packets; +package xyz.samiker.theendlessweave.network.packets; -import xyz.samiker.theendlessweave.core.GameData; +import xyz.samiker.theendlessweave.GameData; public class PacketLoginResponse extends Packet { public boolean accepted; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketSnapshot.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketSnapshot.java similarity index 57% rename from src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketSnapshot.java rename to shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketSnapshot.java index 978032c..0d95f64 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketSnapshot.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketSnapshot.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.network.packets; +package xyz.samiker.theendlessweave.network.packets; public class PacketSnapshot extends Packet { public Packet[] entities; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketSpawnEntity.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketSpawnEntity.java similarity index 92% rename from src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketSpawnEntity.java rename to shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketSpawnEntity.java index 35e827e..e7805ef 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/PacketSpawnEntity.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/packets/PacketSpawnEntity.java @@ -1,11 +1,11 @@ -package xyz.samiker.theendlessweave.core.network.packets; +package xyz.samiker.theendlessweave.network.packets; import com.esotericsoftware.kryo.Kryo; import com.esotericsoftware.kryo.KryoSerializable; import com.esotericsoftware.kryo.io.Input; import com.esotericsoftware.kryo.io.Output; -import xyz.samiker.theendlessweave.core.entities.components.ProjectileComponent; -import xyz.samiker.theendlessweave.core.entities.components.RenderComponent; +import xyz.samiker.theendlessweave.entities.components.ProjectileComponent; +import xyz.samiker.theendlessweave.entities.components.RenderComponent; public class PacketSpawnEntity extends Packet implements KryoSerializable { public int id; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/utils/BitFlags.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/utils/BitFlags.java similarity index 81% rename from src/main/java/xyz/samiker/theendlessweave/core/network/utils/BitFlags.java rename to shared/src/main/java/xyz/samiker/theendlessweave/network/utils/BitFlags.java index 2605d41..66afe60 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/utils/BitFlags.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/utils/BitFlags.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.network.utils; +package xyz.samiker.theendlessweave.network.utils; public class BitFlags { public static final int HAS_POSITION = 1; // 1 diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/utils/PacketPool.java b/shared/src/main/java/xyz/samiker/theendlessweave/network/utils/PacketPool.java similarity index 84% rename from src/main/java/xyz/samiker/theendlessweave/core/network/utils/PacketPool.java rename to shared/src/main/java/xyz/samiker/theendlessweave/network/utils/PacketPool.java index 0eb9bb1..cfeaaea 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/utils/PacketPool.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/network/utils/PacketPool.java @@ -1,7 +1,7 @@ -package xyz.samiker.theendlessweave.core.network.utils; +package xyz.samiker.theendlessweave.network.utils; -import xyz.samiker.theendlessweave.core.network.packets.Packet; -import xyz.samiker.theendlessweave.core.network.packets.PacketEntityUpdate; +import xyz.samiker.theendlessweave.network.packets.Packet; +import xyz.samiker.theendlessweave.network.packets.PacketEntityUpdate; import java.util.ArrayDeque; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/settings/ClientSettings.java b/shared/src/main/java/xyz/samiker/theendlessweave/settings/ClientSettings.java similarity index 94% rename from src/main/java/xyz/samiker/theendlessweave/client/settings/ClientSettings.java rename to shared/src/main/java/xyz/samiker/theendlessweave/settings/ClientSettings.java index d07f77d..14002f7 100644 --- a/src/main/java/xyz/samiker/theendlessweave/client/settings/ClientSettings.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/settings/ClientSettings.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.client.settings; +package xyz.samiker.theendlessweave.settings; public enum ClientSettings { RESOLUTION("video.resolution", "1280x720"), diff --git a/src/main/java/xyz/samiker/theendlessweave/server/settings/ServerSettings.java b/shared/src/main/java/xyz/samiker/theendlessweave/settings/ServerSettings.java similarity index 87% rename from src/main/java/xyz/samiker/theendlessweave/server/settings/ServerSettings.java rename to shared/src/main/java/xyz/samiker/theendlessweave/settings/ServerSettings.java index 7caa44c..8e71d3d 100644 --- a/src/main/java/xyz/samiker/theendlessweave/server/settings/ServerSettings.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/settings/ServerSettings.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.server.settings; +package xyz.samiker.theendlessweave.settings; public enum ServerSettings { MODS_DIR("general.mods_dir", ""); diff --git a/src/main/java/xyz/samiker/theendlessweave/core/settings/SettingsManager.java b/shared/src/main/java/xyz/samiker/theendlessweave/settings/SettingsManager.java similarity index 97% rename from src/main/java/xyz/samiker/theendlessweave/core/settings/SettingsManager.java rename to shared/src/main/java/xyz/samiker/theendlessweave/settings/SettingsManager.java index 9df19ff..5f69176 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/settings/SettingsManager.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/settings/SettingsManager.java @@ -1,6 +1,4 @@ -package xyz.samiker.theendlessweave.core.settings; - -import xyz.samiker.theendlessweave.client.settings.ClientSettings; +package xyz.samiker.theendlessweave.settings; import java.io.File; import java.io.FileInputStream; diff --git a/shared/src/main/java/xyz/samiker/theendlessweave/systems/ISystem.java b/shared/src/main/java/xyz/samiker/theendlessweave/systems/ISystem.java new file mode 100644 index 0000000..ddb8b25 --- /dev/null +++ b/shared/src/main/java/xyz/samiker/theendlessweave/systems/ISystem.java @@ -0,0 +1,8 @@ +package xyz.samiker.theendlessweave.systems; + +import xyz.samiker.theendlessweave.entities.Entity; +import xyz.samiker.theendlessweave.utils.Array; + +public interface ISystem { + void update(Array entities, double deltaTime); +} \ No newline at end of file diff --git a/src/main/java/xyz/samiker/theendlessweave/core/tile/Tile.java b/shared/src/main/java/xyz/samiker/theendlessweave/tile/Tile.java similarity index 96% rename from src/main/java/xyz/samiker/theendlessweave/core/tile/Tile.java rename to shared/src/main/java/xyz/samiker/theendlessweave/tile/Tile.java index 98e06d8..dae6cd4 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/tile/Tile.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/tile/Tile.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.tile; +package xyz.samiker.theendlessweave.tile; /** * Тайл карты с поддержкой объектов. diff --git a/src/main/java/xyz/samiker/theendlessweave/core/tile/TileObject.java b/shared/src/main/java/xyz/samiker/theendlessweave/tile/TileObject.java similarity index 97% rename from src/main/java/xyz/samiker/theendlessweave/core/tile/TileObject.java rename to shared/src/main/java/xyz/samiker/theendlessweave/tile/TileObject.java index 0d46d4c..233669f 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/tile/TileObject.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/tile/TileObject.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.tile; +package xyz.samiker.theendlessweave.tile; /** * Объект на тайле (сундук, ловушка, декорация и т.д.). diff --git a/src/main/java/xyz/samiker/theendlessweave/core/tile/TileType.java b/shared/src/main/java/xyz/samiker/theendlessweave/tile/TileType.java similarity index 58% rename from src/main/java/xyz/samiker/theendlessweave/core/tile/TileType.java rename to shared/src/main/java/xyz/samiker/theendlessweave/tile/TileType.java index 7a28d45..474b2e8 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/tile/TileType.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/tile/TileType.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.tile; +package xyz.samiker.theendlessweave.tile; public enum TileType { WALL, diff --git a/src/main/java/xyz/samiker/theendlessweave/core/tile/TileUtils.java b/shared/src/main/java/xyz/samiker/theendlessweave/tile/TileUtils.java similarity index 70% rename from src/main/java/xyz/samiker/theendlessweave/core/tile/TileUtils.java rename to shared/src/main/java/xyz/samiker/theendlessweave/tile/TileUtils.java index 108ac13..4ff63ac 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/tile/TileUtils.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/tile/TileUtils.java @@ -1,6 +1,6 @@ -package xyz.samiker.theendlessweave.core.tile; +package xyz.samiker.theendlessweave.tile; -import static xyz.samiker.theendlessweave.core.utils.Constants.TILE_SIZE; +import static xyz.samiker.theendlessweave.utils.Constants.TILE_SIZE; public class TileUtils { public static Tile createTile(TileType type, int x, int y) { diff --git a/src/main/java/xyz/samiker/theendlessweave/core/utils/Array.java b/shared/src/main/java/xyz/samiker/theendlessweave/utils/Array.java similarity index 98% rename from src/main/java/xyz/samiker/theendlessweave/core/utils/Array.java rename to shared/src/main/java/xyz/samiker/theendlessweave/utils/Array.java index 1f4db64..5e23185 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/utils/Array.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/utils/Array.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.utils; +package xyz.samiker.theendlessweave.utils; import java.util.Arrays; import java.util.function.Predicate; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/utils/Constants.java b/shared/src/main/java/xyz/samiker/theendlessweave/utils/Constants.java similarity index 92% rename from src/main/java/xyz/samiker/theendlessweave/core/utils/Constants.java rename to shared/src/main/java/xyz/samiker/theendlessweave/utils/Constants.java index 40794ac..68ea203 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/utils/Constants.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/utils/Constants.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.utils; +package xyz.samiker.theendlessweave.utils; public class Constants { public static final int TILE_SIZE = 60; diff --git a/src/main/java/xyz/samiker/theendlessweave/core/utils/IntObjectMap.java b/shared/src/main/java/xyz/samiker/theendlessweave/utils/IntObjectMap.java similarity index 97% rename from src/main/java/xyz/samiker/theendlessweave/core/utils/IntObjectMap.java rename to shared/src/main/java/xyz/samiker/theendlessweave/utils/IntObjectMap.java index 253ed52..87909b4 100644 --- a/src/main/java/xyz/samiker/theendlessweave/core/utils/IntObjectMap.java +++ b/shared/src/main/java/xyz/samiker/theendlessweave/utils/IntObjectMap.java @@ -1,4 +1,4 @@ -package xyz.samiker.theendlessweave.core.utils; +package xyz.samiker.theendlessweave.utils; import java.util.Arrays; diff --git a/src/main/java/xyz/samiker/theendlessweave/client/screens/GameDataAware.java b/src/main/java/xyz/samiker/theendlessweave/client/screens/GameDataAware.java deleted file mode 100644 index ff51991..0000000 --- a/src/main/java/xyz/samiker/theendlessweave/client/screens/GameDataAware.java +++ /dev/null @@ -1,7 +0,0 @@ -package xyz.samiker.theendlessweave.client.screens; - -import xyz.samiker.theendlessweave.core.GameData; - -public interface GameDataAware { - void setData(GameData data); -} diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/Component.java b/src/main/java/xyz/samiker/theendlessweave/core/entities/components/Component.java deleted file mode 100644 index 7ccdd7e..0000000 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/Component.java +++ /dev/null @@ -1,4 +0,0 @@ -package xyz.samiker.theendlessweave.core.entities.components; - -public interface Component { -} diff --git a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/PlayerTagComponent.java b/src/main/java/xyz/samiker/theendlessweave/core/entities/components/PlayerTagComponent.java deleted file mode 100644 index 41f0318..0000000 --- a/src/main/java/xyz/samiker/theendlessweave/core/entities/components/PlayerTagComponent.java +++ /dev/null @@ -1,4 +0,0 @@ -package xyz.samiker.theendlessweave.core.entities.components; - -public class PlayerTagComponent implements Component { -} \ No newline at end of file diff --git a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/Packet.java b/src/main/java/xyz/samiker/theendlessweave/core/network/packets/Packet.java deleted file mode 100644 index 7c912c8..0000000 --- a/src/main/java/xyz/samiker/theendlessweave/core/network/packets/Packet.java +++ /dev/null @@ -1,4 +0,0 @@ -package xyz.samiker.theendlessweave.core.network.packets; - -public abstract class Packet { -} diff --git a/src/main/java/xyz/samiker/theendlessweave/core/systems/ISystem.java b/src/main/java/xyz/samiker/theendlessweave/core/systems/ISystem.java deleted file mode 100644 index 8f791e9..0000000 --- a/src/main/java/xyz/samiker/theendlessweave/core/systems/ISystem.java +++ /dev/null @@ -1,8 +0,0 @@ -package xyz.samiker.theendlessweave.core.systems; - -import xyz.samiker.theendlessweave.core.entities.Entity; -import xyz.samiker.theendlessweave.core.utils.Array; - -public interface ISystem { - void update(Array entities, double deltaTime); -} \ No newline at end of file