DEADSOFTWARE

Update version script master
authorfredboy <fredboy@protonmail.com>
Sat, 25 May 2024 09:31:39 +0000 (16:31 +0700)
committerfredboy <fredboy@protonmail.com>
Sat, 25 May 2024 09:41:54 +0000 (16:41 +0700)
381 files changed:
android/build.gradle [deleted file]
android/build.gradle.kts [new file with mode: 0644]
android/project.properties [deleted file]
android/src/debug/res/drawable-hdpi/ic_launcher.png [moved from android/debug/res/drawable-hdpi/ic_launcher.png with 100% similarity]
android/src/debug/res/drawable-mdpi/ic_launcher.png [moved from android/debug/res/drawable-mdpi/ic_launcher.png with 100% similarity]
android/src/debug/res/drawable-xhdpi/ic_launcher.png [moved from android/debug/res/drawable-xhdpi/ic_launcher.png with 100% similarity]
android/src/debug/res/drawable-xxhdpi/ic_launcher.png [moved from android/debug/res/drawable-xxhdpi/ic_launcher.png with 100% similarity]
android/src/debug/res/drawable-xxxhdpi/ic_launcher.png [moved from android/debug/res/drawable-xxxhdpi/ic_launcher.png with 100% similarity]
android/src/debug/res/drawable/ic_launcher_foreground.xml [moved from android/debug/res/drawable/ic_launcher_foreground.xml with 100% similarity]
android/src/debug/res/values/strings.xml [moved from android/debug/res/values/strings.xml with 100% similarity]
android/src/main/AndroidManifest.xml [moved from android/AndroidManifest.xml with 100% similarity]
android/src/main/assets [new symlink]
android/src/main/kotlin/ru/deadsoftware/cavedroid/AndroidLauncher.kt [new file with mode: 0644]
android/src/main/kotlin/ru/deadsoftware/cavedroid/AndroidPreferencesStore.kt [moved from android/src/ru/deadsoftware/cavedroid/AndroidPreferencesStore.kt with 100% similarity]
android/src/main/res/drawable-anydpi-v26/ic_launcher.xml [moved from android/res/drawable-anydpi-v26/ic_launcher.xml with 100% similarity]
android/src/main/res/drawable-hdpi/ic_launcher.png [moved from android/res/drawable-hdpi/ic_launcher.png with 100% similarity]
android/src/main/res/drawable-mdpi/ic_launcher.png [moved from android/res/drawable-mdpi/ic_launcher.png with 100% similarity]
android/src/main/res/drawable-xhdpi/ic_launcher.png [moved from android/res/drawable-xhdpi/ic_launcher.png with 100% similarity]
android/src/main/res/drawable-xxhdpi/ic_launcher.png [moved from android/res/drawable-xxhdpi/ic_launcher.png with 100% similarity]
android/src/main/res/drawable-xxxhdpi/ic_launcher.png [moved from android/res/drawable-xxxhdpi/ic_launcher.png with 100% similarity]
android/src/main/res/drawable/ic_launcher_background.xml [moved from android/res/drawable/ic_launcher_background.xml with 100% similarity]
android/src/main/res/drawable/ic_launcher_foreground.xml [moved from android/res/drawable/ic_launcher_foreground.xml with 100% similarity]
android/src/main/res/values/strings.xml [moved from android/res/values/strings.xml with 100% similarity]
android/src/main/res/values/styles.xml [moved from android/res/values/styles.xml with 100% similarity]
android/src/main/res/xml/backup_descriptor.xml [moved from android/res/xml/backup_descriptor.xml with 100% similarity]
android/src/ru/deadsoftware/cavedroid/AndroidLauncher.java [deleted file]
assets/font.fnt [moved from android/assets/font.fnt with 100% similarity]
assets/font.png [moved from android/assets/font.png with 100% similarity]
assets/gamelogo.png [moved from android/assets/gamelogo.png with 100% similarity]
assets/icons/icon128.png [moved from android/assets/icons/icon128.png with 100% similarity]
assets/icons/icon256.png [moved from android/assets/icons/icon256.png with 100% similarity]
assets/icons/icon512.png [moved from android/assets/icons/icon512.png with 100% similarity]
assets/joy_background.png [moved from android/assets/joy_background.png with 100% similarity]
assets/joy_stick.png [moved from android/assets/joy_stick.png with 100% similarity]
assets/json/crafting.json [moved from android/assets/json/crafting.json with 100% similarity]
assets/json/game_items.json [moved from android/assets/json/game_items.json with 100% similarity]
assets/json/menu_main_buttons.json [moved from android/assets/json/menu_main_buttons.json with 100% similarity]
assets/json/menu_new_game_buttons.json [moved from android/assets/json/menu_new_game_buttons.json with 100% similarity]
assets/json/menu_options_buttons.json [moved from android/assets/json/menu_options_buttons.json with 100% similarity]
assets/json/texture_regions.json [moved from android/assets/json/texture_regions.json with 100% similarity]
assets/json/touch_buttons.json [moved from android/assets/json/touch_buttons.json with 100% similarity]
assets/pp/allitems.png [moved from android/assets/pp/allitems.png with 100% similarity]
assets/pp/background.png [moved from android/assets/pp/background.png with 100% similarity]
assets/pp/background_top.png [moved from android/assets/pp/background_top.png with 100% similarity]
assets/pp/break.png [moved from android/assets/pp/break.png with 100% similarity]
assets/pp/buttons.png [moved from android/assets/pp/buttons.png with 100% similarity]
assets/pp/chest.png [moved from android/assets/pp/chest.png with 100% similarity]
assets/pp/chest_large.png [moved from android/assets/pp/chest_large.png with 100% similarity]
assets/pp/crafting_table.png [moved from android/assets/pp/crafting_table.png with 100% similarity]
assets/pp/furnace.png [moved from android/assets/pp/furnace.png with 100% similarity]
assets/pp/gui.png [moved from android/assets/pp/gui.png with 100% similarity]
assets/pp/health.png [moved from android/assets/pp/health.png with 100% similarity]
assets/pp/inventory.png [moved from android/assets/pp/inventory.png with 100% similarity]
assets/pp/mobs/char/0_0.png [moved from android/assets/pp/mobs/char/0_0.png with 100% similarity]
assets/pp/mobs/char/0_1.png [moved from android/assets/pp/mobs/char/0_1.png with 100% similarity]
assets/pp/mobs/char/0_2.png [moved from android/assets/pp/mobs/char/0_2.png with 100% similarity]
assets/pp/mobs/char/0_3.png [moved from android/assets/pp/mobs/char/0_3.png with 100% similarity]
assets/pp/mobs/char/1_0.png [moved from android/assets/pp/mobs/char/1_0.png with 100% similarity]
assets/pp/mobs/char/1_1.png [moved from android/assets/pp/mobs/char/1_1.png with 100% similarity]
assets/pp/mobs/char/1_2.png [moved from android/assets/pp/mobs/char/1_2.png with 100% similarity]
assets/pp/mobs/char/1_3.png [moved from android/assets/pp/mobs/char/1_3.png with 100% similarity]
assets/pp/mobs/pig/0_0.png [moved from android/assets/pp/mobs/pig/0_0.png with 100% similarity]
assets/pp/mobs/pig/0_1.png [moved from android/assets/pp/mobs/pig/0_1.png with 100% similarity]
assets/pp/mobs/pig/1_0.png [moved from android/assets/pp/mobs/pig/1_0.png with 100% similarity]
assets/pp/mobs/pig/1_1.png [moved from android/assets/pp/mobs/pig/1_1.png with 100% similarity]
assets/pp/shade.png [moved from android/assets/pp/shade.png with 100% similarity]
assets/pp/textures/blocks/bed_l.png [moved from android/assets/pp/textures/blocks/bed_l.png with 100% similarity]
assets/pp/textures/blocks/bed_r.png [moved from android/assets/pp/textures/blocks/bed_r.png with 100% similarity]
assets/pp/textures/blocks/bedrock.png [moved from android/assets/pp/textures/blocks/bedrock.png with 100% similarity]
assets/pp/textures/blocks/bookshelf.png [moved from android/assets/pp/textures/blocks/bookshelf.png with 100% similarity]
assets/pp/textures/blocks/bricks.png [moved from android/assets/pp/textures/blocks/bricks.png with 100% similarity]
assets/pp/textures/blocks/cactus.png [moved from android/assets/pp/textures/blocks/cactus.png with 100% similarity]
assets/pp/textures/blocks/cake.png [moved from android/assets/pp/textures/blocks/cake.png with 100% similarity]
assets/pp/textures/blocks/chest.png [moved from android/assets/pp/textures/blocks/chest.png with 100% similarity]
assets/pp/textures/blocks/clay.png [moved from android/assets/pp/textures/blocks/clay.png with 100% similarity]
assets/pp/textures/blocks/coal_block.png [moved from android/assets/pp/textures/blocks/coal_block.png with 100% similarity]
assets/pp/textures/blocks/coal_ore.png [moved from android/assets/pp/textures/blocks/coal_ore.png with 100% similarity]
assets/pp/textures/blocks/cobblestone.png [moved from android/assets/pp/textures/blocks/cobblestone.png with 100% similarity]
assets/pp/textures/blocks/cobblestone_mossy.png [moved from android/assets/pp/textures/blocks/cobblestone_mossy.png with 100% similarity]
assets/pp/textures/blocks/crafting_table.png [moved from android/assets/pp/textures/blocks/crafting_table.png with 100% similarity]
assets/pp/textures/blocks/dandelion.png [moved from android/assets/pp/textures/blocks/dandelion.png with 100% similarity]
assets/pp/textures/blocks/deadbush.png [moved from android/assets/pp/textures/blocks/deadbush.png with 100% similarity]
assets/pp/textures/blocks/diamond_block.png [moved from android/assets/pp/textures/blocks/diamond_block.png with 100% similarity]
assets/pp/textures/blocks/diamond_ore.png [moved from android/assets/pp/textures/blocks/diamond_ore.png with 100% similarity]
assets/pp/textures/blocks/dirt.png [moved from android/assets/pp/textures/blocks/dirt.png with 100% similarity]
assets/pp/textures/blocks/furnace.png [moved from android/assets/pp/textures/blocks/furnace.png with 100% similarity]
assets/pp/textures/blocks/glass.png [moved from android/assets/pp/textures/blocks/glass.png with 100% similarity]
assets/pp/textures/blocks/gold_block.png [moved from android/assets/pp/textures/blocks/gold_block.png with 100% similarity]
assets/pp/textures/blocks/gold_ore.png [moved from android/assets/pp/textures/blocks/gold_ore.png with 100% similarity]
assets/pp/textures/blocks/grass.png [moved from android/assets/pp/textures/blocks/grass.png with 100% similarity]
assets/pp/textures/blocks/grass_snowed.png [moved from android/assets/pp/textures/blocks/grass_snowed.png with 100% similarity]
assets/pp/textures/blocks/gravel.png [moved from android/assets/pp/textures/blocks/gravel.png with 100% similarity]
assets/pp/textures/blocks/iron_bars.png [moved from android/assets/pp/textures/blocks/iron_bars.png with 100% similarity]
assets/pp/textures/blocks/iron_block.png [moved from android/assets/pp/textures/blocks/iron_block.png with 100% similarity]
assets/pp/textures/blocks/iron_ore.png [moved from android/assets/pp/textures/blocks/iron_ore.png with 100% similarity]
assets/pp/textures/blocks/ladder.png [moved from android/assets/pp/textures/blocks/ladder.png with 100% similarity]
assets/pp/textures/blocks/lapis_block.png [moved from android/assets/pp/textures/blocks/lapis_block.png with 100% similarity]
assets/pp/textures/blocks/lapis_ore.png [moved from android/assets/pp/textures/blocks/lapis_ore.png with 100% similarity]
assets/pp/textures/blocks/lava_flow.png [moved from android/assets/pp/textures/blocks/lava_flow.png with 100% similarity]
assets/pp/textures/blocks/lava_still.png [moved from android/assets/pp/textures/blocks/lava_still.png with 100% similarity]
assets/pp/textures/blocks/leaves_oak.png [moved from android/assets/pp/textures/blocks/leaves_oak.png with 100% similarity]
assets/pp/textures/blocks/leaves_spruce.png [moved from android/assets/pp/textures/blocks/leaves_spruce.png with 100% similarity]
assets/pp/textures/blocks/log_birch.png [moved from android/assets/pp/textures/blocks/log_birch.png with 100% similarity]
assets/pp/textures/blocks/log_oak.png [moved from android/assets/pp/textures/blocks/log_oak.png with 100% similarity]
assets/pp/textures/blocks/log_spruce.png [moved from android/assets/pp/textures/blocks/log_spruce.png with 100% similarity]
assets/pp/textures/blocks/mushroom_brown.png [moved from android/assets/pp/textures/blocks/mushroom_brown.png with 100% similarity]
assets/pp/textures/blocks/mushroom_red.png [moved from android/assets/pp/textures/blocks/mushroom_red.png with 100% similarity]
assets/pp/textures/blocks/noteblock.png [moved from android/assets/pp/textures/blocks/noteblock.png with 100% similarity]
assets/pp/textures/blocks/obsidian.png [moved from android/assets/pp/textures/blocks/obsidian.png with 100% similarity]
assets/pp/textures/blocks/planks_birch.png [moved from android/assets/pp/textures/blocks/planks_birch.png with 100% similarity]
assets/pp/textures/blocks/planks_oak.png [moved from android/assets/pp/textures/blocks/planks_oak.png with 100% similarity]
assets/pp/textures/blocks/planks_spruce.png [moved from android/assets/pp/textures/blocks/planks_spruce.png with 100% similarity]
assets/pp/textures/blocks/rose.png [moved from android/assets/pp/textures/blocks/rose.png with 100% similarity]
assets/pp/textures/blocks/sand.png [moved from android/assets/pp/textures/blocks/sand.png with 100% similarity]
assets/pp/textures/blocks/sandstone.png [moved from android/assets/pp/textures/blocks/sandstone.png with 100% similarity]
assets/pp/textures/blocks/sapling_birch.png [moved from android/assets/pp/textures/blocks/sapling_birch.png with 100% similarity]
assets/pp/textures/blocks/sapling_oak.png [moved from android/assets/pp/textures/blocks/sapling_oak.png with 100% similarity]
assets/pp/textures/blocks/sapling_spruce.png [moved from android/assets/pp/textures/blocks/sapling_spruce.png with 100% similarity]
assets/pp/textures/blocks/snow.png [moved from android/assets/pp/textures/blocks/snow.png with 100% similarity]
assets/pp/textures/blocks/sponge.png [moved from android/assets/pp/textures/blocks/sponge.png with 100% similarity]
assets/pp/textures/blocks/sponge_wet.png [moved from android/assets/pp/textures/blocks/sponge_wet.png with 100% similarity]
assets/pp/textures/blocks/stone.png [moved from android/assets/pp/textures/blocks/stone.png with 100% similarity]
assets/pp/textures/blocks/stone_slab.png [moved from android/assets/pp/textures/blocks/stone_slab.png with 100% similarity]
assets/pp/textures/blocks/stonebrick.png [moved from android/assets/pp/textures/blocks/stonebrick.png with 100% similarity]
assets/pp/textures/blocks/tallgrass.png [moved from android/assets/pp/textures/blocks/tallgrass.png with 100% similarity]
assets/pp/textures/blocks/water_flow.png [moved from android/assets/pp/textures/blocks/water_flow.png with 100% similarity]
assets/pp/textures/blocks/water_still.png [moved from android/assets/pp/textures/blocks/water_still.png with 100% similarity]
assets/pp/textures/blocks/web.png [moved from android/assets/pp/textures/blocks/web.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_black.png [moved from android/assets/pp/textures/blocks/wool_colored_black.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_blue.png [moved from android/assets/pp/textures/blocks/wool_colored_blue.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_brown.png [moved from android/assets/pp/textures/blocks/wool_colored_brown.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_cyan.png [moved from android/assets/pp/textures/blocks/wool_colored_cyan.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_gray.png [moved from android/assets/pp/textures/blocks/wool_colored_gray.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_green.png [moved from android/assets/pp/textures/blocks/wool_colored_green.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_light_blue.png [moved from android/assets/pp/textures/blocks/wool_colored_light_blue.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_lime.png [moved from android/assets/pp/textures/blocks/wool_colored_lime.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_magenta.png [moved from android/assets/pp/textures/blocks/wool_colored_magenta.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_orange.png [moved from android/assets/pp/textures/blocks/wool_colored_orange.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_pink.png [moved from android/assets/pp/textures/blocks/wool_colored_pink.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_purple.png [moved from android/assets/pp/textures/blocks/wool_colored_purple.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_red.png [moved from android/assets/pp/textures/blocks/wool_colored_red.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_silver.png [moved from android/assets/pp/textures/blocks/wool_colored_silver.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_white.png [moved from android/assets/pp/textures/blocks/wool_colored_white.png with 100% similarity]
assets/pp/textures/blocks/wool_colored_yellow.png [moved from android/assets/pp/textures/blocks/wool_colored_yellow.png with 100% similarity]
assets/pp/textures/items/bed.png [moved from android/assets/pp/textures/items/bed.png with 100% similarity]
assets/pp/textures/items/bucket_empty.png [moved from android/assets/pp/textures/items/bucket_empty.png with 100% similarity]
assets/pp/textures/items/bucket_lava.png [moved from android/assets/pp/textures/items/bucket_lava.png with 100% similarity]
assets/pp/textures/items/bucket_milk.png [moved from android/assets/pp/textures/items/bucket_milk.png with 100% similarity]
assets/pp/textures/items/bucket_water.png [moved from android/assets/pp/textures/items/bucket_water.png with 100% similarity]
assets/pp/textures/items/charcoal.png [moved from android/assets/pp/textures/items/charcoal.png with 100% similarity]
assets/pp/textures/items/coal.png [moved from android/assets/pp/textures/items/coal.png with 100% similarity]
assets/pp/textures/items/diamond.png [moved from android/assets/pp/textures/items/diamond.png with 100% similarity]
assets/pp/textures/items/diamond_axe.png [moved from android/assets/pp/textures/items/diamond_axe.png with 100% similarity]
assets/pp/textures/items/diamond_hoe.png [moved from android/assets/pp/textures/items/diamond_hoe.png with 100% similarity]
assets/pp/textures/items/diamond_pickaxe.png [moved from android/assets/pp/textures/items/diamond_pickaxe.png with 100% similarity]
assets/pp/textures/items/diamond_shovel.png [moved from android/assets/pp/textures/items/diamond_shovel.png with 100% similarity]
assets/pp/textures/items/diamond_sword.png [moved from android/assets/pp/textures/items/diamond_sword.png with 100% similarity]
assets/pp/textures/items/gold_axe.png [moved from android/assets/pp/textures/items/gold_axe.png with 100% similarity]
assets/pp/textures/items/gold_hoe.png [moved from android/assets/pp/textures/items/gold_hoe.png with 100% similarity]
assets/pp/textures/items/gold_ingot.png [moved from android/assets/pp/textures/items/gold_ingot.png with 100% similarity]
assets/pp/textures/items/gold_pickaxe.png [moved from android/assets/pp/textures/items/gold_pickaxe.png with 100% similarity]
assets/pp/textures/items/gold_shovel.png [moved from android/assets/pp/textures/items/gold_shovel.png with 100% similarity]
assets/pp/textures/items/gold_sword.png [moved from android/assets/pp/textures/items/gold_sword.png with 100% similarity]
assets/pp/textures/items/iron_axe.png [moved from android/assets/pp/textures/items/iron_axe.png with 100% similarity]
assets/pp/textures/items/iron_hoe.png [moved from android/assets/pp/textures/items/iron_hoe.png with 100% similarity]
assets/pp/textures/items/iron_ingot.png [moved from android/assets/pp/textures/items/iron_ingot.png with 100% similarity]
assets/pp/textures/items/iron_pickaxe.png [moved from android/assets/pp/textures/items/iron_pickaxe.png with 100% similarity]
assets/pp/textures/items/iron_shovel.png [moved from android/assets/pp/textures/items/iron_shovel.png with 100% similarity]
assets/pp/textures/items/iron_sword.png [moved from android/assets/pp/textures/items/iron_sword.png with 100% similarity]
assets/pp/textures/items/lapis_lazuli.png [moved from android/assets/pp/textures/items/lapis_lazuli.png with 100% similarity]
assets/pp/textures/items/porkchop_cooked.png [moved from android/assets/pp/textures/items/porkchop_cooked.png with 100% similarity]
assets/pp/textures/items/porkchop_raw.png [moved from android/assets/pp/textures/items/porkchop_raw.png with 100% similarity]
assets/pp/textures/items/shears.png [moved from android/assets/pp/textures/items/shears.png with 100% similarity]
assets/pp/textures/items/snowball.png [moved from android/assets/pp/textures/items/snowball.png with 100% similarity]
assets/pp/textures/items/spawn_egg.png [moved from android/assets/pp/textures/items/spawn_egg.png with 100% similarity]
assets/pp/textures/items/stick.png [moved from android/assets/pp/textures/items/stick.png with 100% similarity]
assets/pp/textures/items/stone_axe.png [moved from android/assets/pp/textures/items/stone_axe.png with 100% similarity]
assets/pp/textures/items/stone_hoe.png [moved from android/assets/pp/textures/items/stone_hoe.png with 100% similarity]
assets/pp/textures/items/stone_pickaxe.png [moved from android/assets/pp/textures/items/stone_pickaxe.png with 100% similarity]
assets/pp/textures/items/stone_shovel.png [moved from android/assets/pp/textures/items/stone_shovel.png with 100% similarity]
assets/pp/textures/items/stone_sword.png [moved from android/assets/pp/textures/items/stone_sword.png with 100% similarity]
assets/pp/textures/items/wood_axe.png [moved from android/assets/pp/textures/items/wood_axe.png with 100% similarity]
assets/pp/textures/items/wood_hoe.png [moved from android/assets/pp/textures/items/wood_hoe.png with 100% similarity]
assets/pp/textures/items/wood_pickaxe.png [moved from android/assets/pp/textures/items/wood_pickaxe.png with 100% similarity]
assets/pp/textures/items/wood_shovel.png [moved from android/assets/pp/textures/items/wood_shovel.png with 100% similarity]
assets/pp/textures/items/wood_sword.png [moved from android/assets/pp/textures/items/wood_sword.png with 100% similarity]
assets/touch_gui.png [moved from android/assets/touch_gui.png with 100% similarity]
build.gradle [deleted file]
build.gradle.kts [new file with mode: 0644]
buildSrc/build.gradle.kts [new file with mode: 0644]
buildSrc/src/main/kotlin/ApplicationInfo.kt [new file with mode: 0644]
buildSrc/src/main/kotlin/Dependencies.kt [new file with mode: 0644]
buildSrc/src/main/kotlin/Versions.kt [new file with mode: 0644]
core/build.gradle [deleted file]
core/build.gradle.kts [new file with mode: 0644]
core/src/main/java/ru/deadsoftware/cavedroid/MainConfig.java [moved from core/src/ru/deadsoftware/cavedroid/MainConfig.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/GameComponent.java [moved from core/src/ru/deadsoftware/cavedroid/game/GameComponent.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/GameModule.java [moved from core/src/ru/deadsoftware/cavedroid/game/GameModule.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/GamePhysics.java [moved from core/src/ru/deadsoftware/cavedroid/game/GamePhysics.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/GameProc.java [moved from core/src/ru/deadsoftware/cavedroid/game/GameProc.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/GameRenderer.java [moved from core/src/ru/deadsoftware/cavedroid/game/GameRenderer.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/GameScope.java [moved from core/src/ru/deadsoftware/cavedroid/game/GameScope.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/GameScreen.java [moved from core/src/ru/deadsoftware/cavedroid/game/GameScreen.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/GameUiWindow.java [moved from core/src/ru/deadsoftware/cavedroid/game/GameUiWindow.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/mobs/Mob.java [moved from core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/mobs/player/Player.java [moved from core/src/ru/deadsoftware/cavedroid/game/mobs/player/Player.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/objects/TouchButton.java [moved from core/src/ru/deadsoftware/cavedroid/game/objects/TouchButton.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/objects/drop/DropController.java [moved from core/src/ru/deadsoftware/cavedroid/game/objects/drop/DropController.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/game/world/GameWorld.java [moved from core/src/ru/deadsoftware/cavedroid/game/world/GameWorld.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/menu/MenuComponent.java [moved from core/src/ru/deadsoftware/cavedroid/menu/MenuComponent.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/menu/MenuProc.java [moved from core/src/ru/deadsoftware/cavedroid/menu/MenuProc.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/menu/MenuScope.java [moved from core/src/ru/deadsoftware/cavedroid/menu/MenuScope.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/menu/MenuScreen.java [moved from core/src/ru/deadsoftware/cavedroid/menu/MenuScreen.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/menu/objects/Button.java [moved from core/src/ru/deadsoftware/cavedroid/menu/objects/Button.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/menu/objects/ButtonEventListener.java [moved from core/src/ru/deadsoftware/cavedroid/menu/objects/ButtonEventListener.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/menu/objects/ButtonRenderer.java [moved from core/src/ru/deadsoftware/cavedroid/menu/objects/ButtonRenderer.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/menu/submenus/Menu.java [moved from core/src/ru/deadsoftware/cavedroid/menu/submenus/Menu.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/menu/submenus/MenuMain.java [moved from core/src/ru/deadsoftware/cavedroid/menu/submenus/MenuMain.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/menu/submenus/MenuNewGame.java [moved from core/src/ru/deadsoftware/cavedroid/menu/submenus/MenuNewGame.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/misc/Assets.java [moved from core/src/ru/deadsoftware/cavedroid/misc/Assets.java with 100% similarity]
core/src/main/java/ru/deadsoftware/cavedroid/misc/Renderer.java [moved from core/src/ru/deadsoftware/cavedroid/misc/Renderer.java with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/CaveGame.kt [new file with mode: 0644]
core/src/main/kotlin/ru/deadsoftware/cavedroid/MainComponent.kt [new file with mode: 0644]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/GameItemsHolder.kt [moved from core/src/ru/deadsoftware/cavedroid/game/GameItemsHolder.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/CommonBlockActionUtils.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/CommonBlockActionUtils.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/placeblock/IPlaceBlockAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/IPlaceBlockAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceBlockItemToBackgroundAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceBlockItemToBackgroundAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceBlockItemToForegroundAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceBlockItemToForegroundAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceSlabAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/placeblock/PlaceSlabAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/updateblock/IUpdateBlockAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/updateblock/IUpdateBlockAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateBedLeftAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateBedLeftAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateBedRightAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateBedRightAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateGrassAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateGrassAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateRequiresBlockAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateRequiresBlockAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateSnowedGrassAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/updateblock/UpdateSnowedGrassAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/useblock/IUseBlockAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/useblock/IUseBlockAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/useblock/UseChestAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/useblock/UseChestAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/useblock/UseCraftingTableAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/useblock/UseCraftingTableAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/useblock/UseFurnaceAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/useblock/UseFurnaceAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/useitem/IUseItemAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/useitem/IUseItemAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/useitem/UseBedAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/useitem/UseBedAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/useitem/UseEmptyBucketAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/useitem/UseEmptyBucketAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/useitem/UseLavaBucketAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/useitem/UseLavaBucketAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/useitem/UsePigSpawnEggAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/useitem/UsePigSpawnEggAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/actions/useitem/UseWaterBucketAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/actions/useitem/UseWaterBucketAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/debug/DebugInfoStringsProvider.kt [moved from core/src/ru/deadsoftware/cavedroid/game/debug/DebugInfoStringsProvider.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/IGameInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/IGameInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/InputUtils.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/InputUtils.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/Joystick.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/Joystick.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/action/IGameInputAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/action/IGameInputAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/action/KeyboardInputAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/action/KeyboardInputAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/action/MouseInputAction.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/action/MouseInputAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/action/keys/KeyboardInputActionKey.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/action/keys/KeyboardInputActionKey.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/action/keys/MouseInputActionKey.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/action/keys/MouseInputActionKey.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/CloseGameWindowKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/CloseGameWindowKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/DropItemKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/DropItemKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/FlyDownKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/FlyDownKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/FlyUpKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/FlyUpKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/GoLeftKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/GoLeftKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/GoRightKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/GoRightKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/JumpKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/JumpKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/MoveCursorControlsModeKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/MoveCursorControlsModeKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/OpenInventoryKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/OpenInventoryKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/PauseGameKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/PauseGameKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/SelectHotbarSlotKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/SelectHotbarSlotKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/StopSwimKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/StopSwimKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/SwimUpKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/SwimUpKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/ToggleControlsModeKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/ToggleControlsModeKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/ToggleDebugInfoKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/ToggleDebugInfoKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/ToggleGameModeKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/ToggleGameModeKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/ToggleMinimapKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/ToggleMinimapKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/keyboard/TurnOnFlyModeKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/keyboard/TurnOnFlyModeKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/AbstractInventoryItemsMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/AbstractInventoryItemsMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/AttackMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/AttackMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/CloseGameWindowMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/CloseGameWindowMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/CreativeInventoryScrollMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/CreativeInventoryScrollMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/CursorMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/CursorMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/HotbarMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/HotbarMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectChestInventoryItemMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectChestInventoryItemMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectCraftingInventoryItemMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectCraftingInventoryItemMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectCreativeInventoryItemMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectCreativeInventoryItemMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectFurnaceInventoryItemMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectFurnaceInventoryItemMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectSurvivalInventoryItemMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/SelectSurvivalInventoryItemMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/mouse/UseItemMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/mouse/UseItemMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/handler/touch/JoystickInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/handler/touch/JoystickInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/mapper/KeyboardInputActionMapper.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/mapper/KeyboardInputActionMapper.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/input/mapper/MouseInputActionMapper.kt [moved from core/src/ru/deadsoftware/cavedroid/game/input/mapper/MouseInputActionMapper.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/mobs/FallingBlock.kt [moved from core/src/ru/deadsoftware/cavedroid/game/mobs/FallingBlock.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/mobs/MobSaveDataMapper.kt [moved from core/src/ru/deadsoftware/cavedroid/game/mobs/MobSaveDataMapper.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/mobs/MobsController.kt [moved from core/src/ru/deadsoftware/cavedroid/game/mobs/MobsController.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/mobs/PeacefulMob.kt [moved from core/src/ru/deadsoftware/cavedroid/game/mobs/PeacefulMob.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/mobs/Pig.kt [moved from core/src/ru/deadsoftware/cavedroid/game/mobs/Pig.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/mobs/player/Inventory.kt [moved from core/src/ru/deadsoftware/cavedroid/game/mobs/player/Inventory.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/block/Block.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/block/Block.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/block/BlockAnimationInfo.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/block/BlockAnimationInfo.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/block/BlockDropInfo.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/block/BlockDropInfo.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/block/BlockMargins.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/block/BlockMargins.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/block/CommonBlockParams.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/block/CommonBlockParams.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/craft/CraftingRecipe.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/craft/CraftingRecipe.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/dto/BlockDto.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/dto/BlockDto.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/dto/CraftingDto.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/dto/CraftingDto.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/dto/GameItemsDto.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/dto/GameItemsDto.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/dto/ItemDto.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/dto/ItemDto.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/dto/SaveDataDto.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/dto/SaveDataDto.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/item/CommonItemParams.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/item/CommonItemParams.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/item/InventoryItem.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/item/InventoryItem.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/item/Item.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/item/Item.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/mapper/BlockMapper.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/mapper/BlockMapper.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/mapper/ItemMapper.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/mapper/ItemMapper.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/world/Biome.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/world/Biome.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/model/world/generator/WorldGeneratorConfig.kt [moved from core/src/ru/deadsoftware/cavedroid/game/model/world/generator/WorldGeneratorConfig.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/objects/container/Chest.kt [moved from core/src/ru/deadsoftware/cavedroid/game/objects/container/Chest.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/objects/container/Container.kt [moved from core/src/ru/deadsoftware/cavedroid/game/objects/container/Container.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/objects/container/ContainerController.kt [moved from core/src/ru/deadsoftware/cavedroid/game/objects/container/ContainerController.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/objects/container/Furnace.kt [moved from core/src/ru/deadsoftware/cavedroid/game/objects/container/Furnace.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/objects/drop/Drop.kt [moved from core/src/ru/deadsoftware/cavedroid/game/objects/drop/Drop.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/BackgroundBlocksRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/BackgroundBlocksRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/BlocksRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/BlocksRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/DebugRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/DebugRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/DropsRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/DropsRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/ForegroundBlocksRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/ForegroundBlocksRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/HudRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/HudRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/IGameRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/IGameRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/MobsRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/MobsRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/TouchControlsRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/TouchControlsRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/WindowsRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/WindowsRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/windows/AbstractWindowRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/windows/AbstractWindowRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/windows/ChestWindowRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/windows/ChestWindowRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/windows/CraftingWindowRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/windows/CraftingWindowRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/windows/CreativeWindowRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/windows/CreativeWindowRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/windows/FurnaceWindowRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/windows/FurnaceWindowRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/render/windows/SurvivalWindowRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/game/render/windows/SurvivalWindowRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/save/GameSaveData.kt [moved from core/src/ru/deadsoftware/cavedroid/game/save/GameSaveData.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/save/GameSaveLoader.kt [moved from core/src/ru/deadsoftware/cavedroid/game/save/GameSaveLoader.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/ui/TooltipManager.kt [moved from core/src/ru/deadsoftware/cavedroid/game/ui/TooltipManager.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/ui/windows/GameWindowsConfigs.kt [moved from core/src/ru/deadsoftware/cavedroid/game/ui/windows/GameWindowsConfigs.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/ui/windows/GameWindowsManager.kt [moved from core/src/ru/deadsoftware/cavedroid/game/ui/windows/GameWindowsManager.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/ui/windows/inventory/AbstractInventoryWindow.kt [moved from core/src/ru/deadsoftware/cavedroid/game/ui/windows/inventory/AbstractInventoryWindow.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/ui/windows/inventory/AbstractInventoryWindowWithCraftGrid.kt [moved from core/src/ru/deadsoftware/cavedroid/game/ui/windows/inventory/AbstractInventoryWindowWithCraftGrid.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/ui/windows/inventory/ChestInventoryWindow.kt [moved from core/src/ru/deadsoftware/cavedroid/game/ui/windows/inventory/ChestInventoryWindow.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/ui/windows/inventory/CraftingInventoryWindow.kt [moved from core/src/ru/deadsoftware/cavedroid/game/ui/windows/inventory/CraftingInventoryWindow.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/ui/windows/inventory/CreativeInventoryWindow.kt [moved from core/src/ru/deadsoftware/cavedroid/game/ui/windows/inventory/CreativeInventoryWindow.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/ui/windows/inventory/FurnaceInventoryWindow.kt [moved from core/src/ru/deadsoftware/cavedroid/game/ui/windows/inventory/FurnaceInventoryWindow.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/ui/windows/inventory/SurvivalInventoryWindow.kt [moved from core/src/ru/deadsoftware/cavedroid/game/ui/windows/inventory/SurvivalInventoryWindow.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/world/GameWorldBlocksLogicControllerTask.kt [moved from core/src/ru/deadsoftware/cavedroid/game/world/GameWorldBlocksLogicControllerTask.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/world/GameWorldFluidsLogicControllerTask.kt [moved from core/src/ru/deadsoftware/cavedroid/game/world/GameWorldFluidsLogicControllerTask.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/world/GameWorldGenerator.kt [moved from core/src/ru/deadsoftware/cavedroid/game/world/GameWorldGenerator.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/game/world/GameWorldMobDamageControllerTask.kt [moved from core/src/ru/deadsoftware/cavedroid/game/world/GameWorldMobDamageControllerTask.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/menu/objects/BooleanOptionButton.kt [moved from core/src/ru/deadsoftware/cavedroid/menu/objects/BooleanOptionButton.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/menu/submenus/MenuOptions.kt [moved from core/src/ru/deadsoftware/cavedroid/menu/submenus/MenuOptions.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/menu/submenus/MenusFactory.kt [moved from core/src/ru/deadsoftware/cavedroid/menu/submenus/MenusFactory.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/Saveable.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/Saveable.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/annotations/multibind/BindKeyboardInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/annotations/multibinding/BindKeyboardInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/annotations/multibind/BindMouseInputHandler.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/annotations/multibinding/BindMouseInputHandler.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/annotations/multibind/BindPlaceBlockAction.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/annotations/multibinding/BindPlaceBlockAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/annotations/multibind/BindRenderer.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/annotations/multibinding/BindRenderer.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/annotations/multibind/BindUpdateBlockAction.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/annotations/multibinding/BindUpdateBlockAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/annotations/multibind/BindUseBlockAction.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/annotations/multibinding/BindUseBlockAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/annotations/multibind/BindUseItemAction.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/annotations/multibinding/BindUseItemAction.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/annotations/multibind/MultibindingConfig.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/annotations/multibinding/MultibindingConfig.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/ArrayMapExtensions.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/utils/ArrayMapExtensions.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/AssetLoader.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/utils/AssetLoader.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/GdxExtensions.kt [new file with mode: 0644]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/ItemUtils.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/utils/ItemUtils.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/MeasureUnitsUtils.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/utils/MeasureUnitsUtils.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/RenderingUtils.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/utils/RenderingUtils.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/SpriteOrigin.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteOrigin.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/utils/SpriteUtils.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/mobs/MobSprites.kt [moved from core/src/ru/deadsoftware/cavedroid/misc/utils/mobs/MobSprites.kt with 100% similarity]
core/src/main/kotlin/ru/deadsoftware/cavedroid/prefs/PreferencesStore.kt [moved from core/src/ru/deadsoftware/cavedroid/prefs/PreferencesStore.kt with 100% similarity]
core/src/ru/deadsoftware/cavedroid/CaveGame.java [deleted file]
core/src/ru/deadsoftware/cavedroid/MainComponent.java [deleted file]
desktop/build.gradle [deleted file]
desktop/build.gradle.kts [new file with mode: 0644]
desktop/src/main/kotlin/ru/deadsoftware/cavedroid/desktop/DesktopLauncher.kt [new file with mode: 0644]
desktop/src/main/kotlin/ru/deadsoftware/cavedroid/desktop/DesktopPreferencesStore.kt [moved from desktop/src/ru/deadsoftware/cavedroid/desktop/DesktopPreferencesStore.kt with 100% similarity]
desktop/src/main/resources [new symlink]
desktop/src/ru/deadsoftware/cavedroid/desktop/DesktopLauncher.java [deleted file]
settings.gradle [deleted file]
settings.gradle.kts [new file with mode: 0644]
up-version.sh

diff --git a/android/build.gradle b/android/build.gradle
deleted file mode 100644 (file)
index d52b9e9..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-buildscript {
-    configurations { natives }
-}
-
-plugins {
-    id "com.android.application"
-    id "kotlin-android"
-}
-
-def keystorePropertiesFile = rootProject.file("keystore.properties")
-def keystoreProperties = new Properties()
-keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
-
-android {
-    namespace "ru.deadsoftware.cavedroid"
-    compileSdkVersion 34
-    sourceSets {
-        main {
-            manifest.srcFile 'AndroidManifest.xml'
-            java.srcDirs = ['src']
-            aidl.srcDirs = ['src']
-            renderscript.srcDirs = ['src']
-            res.srcDirs = ['res']
-            assets.srcDirs = ['assets']
-            jniLibs.srcDirs = ['libs']
-        }
-        debug {
-            res.srcDirs = ['debug/res']
-        }
-    }
-    compileOptions {
-        sourceCompatibility 17
-        targetCompatibility 17
-    }
-    packagingOptions {
-        exclude 'META-INF/robovm/ios/robovm.xml'
-    }
-    defaultConfig {
-        applicationId "ru.deadsoftware.cavedroid"
-        minSdkVersion 19
-        targetSdkVersion 34
-        versionCode 25
-        versionName "alpha0.9.2"
-
-        multiDexEnabled true
-    }
-    applicationVariants.all { variant ->
-        variant.outputs.all {
-            outputFileName = "android-${versionName}.apk"
-        }
-    }
-
-    signingConfigs {
-        release_config {
-            storeFile file(keystoreProperties['releaseKeystorePath'])
-            storePassword keystoreProperties['releaseKeystorePassword']
-            keyAlias keystoreProperties['releaseKeyAlias']
-            keyPassword keystoreProperties['releaseKeyPassword']
-        }
-    }
-
-    buildTypes {
-        release {
-            minifyEnabled false
-            signingConfig signingConfigs.release_config
-        }
-        debug {
-            applicationIdSuffix ".debug"
-        }
-    }
-    buildFeatures {
-        buildConfig true
-    }
-
-}
-
-
-// called every time gradle gets executed, takes the native dependencies of
-// the natives configuration, and extracts them to the proper libs/ folders
-// so they get packed with the APK.
-task copyAndroidNatives {
-    doFirst {
-        file("libs/armeabi/").mkdirs()
-        file("libs/armeabi-v7a/").mkdirs()
-        file("libs/arm64-v8a/").mkdirs()
-        file("libs/x86_64/").mkdirs()
-        file("libs/x86/").mkdirs()
-
-        configurations.natives.files.each { jar ->
-            def outputDir = null
-            if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
-            if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
-            if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
-            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.whenTaskAdded { packageTask ->
-    if (packageTask.name.contains("package")) {
-        packageTask.dependsOn 'copyAndroidNatives'
-    }
-}
-
-task run(type: Exec) {
-    def path
-    def localProperties = project.file("../local.properties")
-    if (localProperties.exists()) {
-        Properties properties = new Properties()
-        localProperties.withInputStream { instr ->
-            properties.load(instr)
-        }
-        def sdkDir = properties.getProperty('sdk.dir')
-        if (sdkDir) {
-            path = sdkDir
-        } else {
-            path = "$System.env.ANDROID_HOME"
-        }
-    } else {
-        path = "$System.env.ANDROID_HOME"
-    }
-
-    def adb = path + "/platform-tools/adb"
-    commandLine "$adb", 'shell', 'am', 'start', '-n', 'ru.deadsoftware.cavedroid/ru.deadsoftware.cavedroid.AndroidLauncher'
-}
-
-dependencies {
-    implementation project(":core")
-    implementation platform("org.jetbrains.kotlin:kotlin-bom:$kotlinVersion")
-    api "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
-    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
-    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a"
-    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
-    natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64"
-
-    configurations.implementation {
-        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib-jdk8'
-    }
-}
\ No newline at end of file
diff --git a/android/build.gradle.kts b/android/build.gradle.kts
new file mode 100644 (file)
index 0000000..40e158e
--- /dev/null
@@ -0,0 +1,131 @@
+import java.io.FileInputStream
+import java.util.Properties
+
+private val natives by configurations.creating
+
+plugins {
+    id("com.android.application")
+    id("kotlin-android")
+}
+
+private val keystorePropertiesFile = rootProject.file("keystore.properties")
+private val keystoreProperties = if (keystorePropertiesFile.exists()) {
+    Properties().apply {
+        load(FileInputStream(keystorePropertiesFile))
+    }
+} else {
+    null
+}
+
+
+android {
+    namespace = ApplicationInfo.packageName
+    compileSdk = 34
+
+    sourceSets {
+
+        named("main") {
+            jniLibs.srcDir("libs")
+        }
+
+        named("debug") {
+            res.srcDir("src/debug/res")
+        }
+
+    }
+
+    compileOptions {
+        sourceCompatibility = ApplicationInfo.sourceCompatibility
+        targetCompatibility = ApplicationInfo.sourceCompatibility
+    }
+
+    defaultConfig {
+        applicationId = ApplicationInfo.packageName
+        minSdk = 19
+        targetSdk = 34
+
+        versionCode = ApplicationInfo.versionCode
+        versionName = ApplicationInfo.versionName
+
+        multiDexEnabled = true
+    }
+
+    applicationVariants.asSequence()
+        .flatMap { variant -> variant.outputs.asSequence() }
+        .mapNotNull { output -> output as? com.android.build.gradle.internal.api.BaseVariantOutputImpl }
+        .forEach { output -> output.outputFileName = "android-${ApplicationInfo.versionName}.apk" }
+
+    val releaseConfig = signingConfigs.create("release_config")
+    with(releaseConfig) {
+        storeFile = keystoreProperties?.get("releaseKeystorePath")?.let(::file)
+        storePassword = keystoreProperties?.get("releaseKeystorePassword")?.toString()
+        keyAlias = keystoreProperties?.get("releaseKeyAlias")?.toString()
+        keyPassword = keystoreProperties?.get("releaseKeyPassword")?.toString()
+    }
+
+    buildTypes {
+        release {
+            isMinifyEnabled = false
+            signingConfig = releaseConfig
+        }
+
+        debug {
+            applicationIdSuffix = ".debug"
+        }
+    }
+
+    buildFeatures {
+        buildConfig = true
+    }
+}
+
+// called every time gradle gets executed, takes the native dependencies of
+// the natives configuration, and extracts them to the proper libs/ folders
+// so they get packed with the APK.
+task("copyAndroidNatives") {
+    doFirst {
+        val armeabiV7Dir = file("libs/armeabi-v7a/").apply { mkdirs() }
+        val arm64Dir = file("libs/arm64-v8a/").apply { mkdirs() }
+        val x86Dir = file("libs/x86/").apply { mkdirs() }
+        val amd64Dir = file("libs/x86_64/").apply { mkdirs() }
+
+        natives.files.forEach { jar ->
+            val outputDir = when {
+                jar.name.endsWith("natives-armeabi-v7a.jar") -> armeabiV7Dir
+                jar.name.endsWith("natives-arm64-v8a.jar") -> arm64Dir
+                jar.name.endsWith("natives-x86.jar") -> x86Dir
+                jar.name.endsWith("natives-x86_64.jar") -> amd64Dir
+                else -> null
+            }
+
+            if (outputDir != null) {
+                copy {
+                    from(zipTree(jar))
+                    into(outputDir)
+                    include("*.so")
+                }
+            }
+        }
+    }
+}
+
+tasks.whenTaskAdded {
+    if (name.contains("package")) {
+        dependsOn("copyAndroidNatives")
+    }
+}
+
+dependencies {
+    implementation((project(":core")))
+    implementation(platform(Dependencies.Kotlin.bom))
+
+    implementation(Dependencies.LibGDX.gdx)
+    implementation(Dependencies.LibGDX.Android.backend)
+
+    natives(Dependencies.LibGDX.Android.Natives.armeabi)
+    natives(Dependencies.LibGDX.Android.Natives.arm64)
+    natives(Dependencies.LibGDX.Android.Natives.x86)
+    natives(Dependencies.LibGDX.Android.Natives.x86_64)
+
+    configurations["implementation"].exclude(group = "org.jetbrains.kotlin", module = "kotlin-stdlib-jdk8")
+}
\ No newline at end of file
diff --git a/android/project.properties b/android/project.properties
deleted file mode 100644 (file)
index 3fefa92..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# This file is used by the Eclipse ADT plugin. It is unnecessary for IDEA and Android Studio projects, which
-# configure Proguard and the Android target via the build.gradle file.
-
-# To enable ProGuard to work with Eclipse ADT, uncomment this (available properties: sdk.dir, user.home)
-# and ensure proguard.jar in the Android SDK is up to date (or alternately reduce the android target to 23 or lower):
-# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-rules.pro
-
-# Project target.
-target=android-19
diff --git a/android/src/main/assets b/android/src/main/assets
new file mode 120000 (symlink)
index 0000000..2978ef3
--- /dev/null
@@ -0,0 +1 @@
+../../../assets
\ No newline at end of file
diff --git a/android/src/main/kotlin/ru/deadsoftware/cavedroid/AndroidLauncher.kt b/android/src/main/kotlin/ru/deadsoftware/cavedroid/AndroidLauncher.kt
new file mode 100644 (file)
index 0000000..b6fff78
--- /dev/null
@@ -0,0 +1,34 @@
+package ru.deadsoftware.cavedroid
+
+import android.os.Bundle
+import com.badlogic.gdx.backends.android.AndroidApplication
+import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration
+
+class AndroidLauncher : AndroidApplication() {
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        super.onCreate(savedInstanceState)
+
+        val gameDataDirectoryPath = packageManager.getPackageInfo(packageName, 0)
+            .applicationInfo.dataDir;
+
+        val config = AndroidApplicationConfiguration()
+        config.useImmersiveMode = true
+
+        initialize(
+            /* listener = */ CaveGame(
+                gameDataDirectoryPath = gameDataDirectoryPath,
+                isTouchScreen = true,
+                isDebug = BuildConfig.DEBUG,
+                preferencesStore = AndroidPreferencesStore(applicationContext)
+            ),
+            /* config = */ config
+        )
+    }
+
+    @Suppress("OVERRIDE_DEPRECATION")
+    override fun onBackPressed() {
+        // ignore
+    }
+
+}
\ No newline at end of file
diff --git a/android/src/ru/deadsoftware/cavedroid/AndroidLauncher.java b/android/src/ru/deadsoftware/cavedroid/AndroidLauncher.java
deleted file mode 100644 (file)
index 3f38ad4..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-package ru.deadsoftware.cavedroid;
-
-import android.content.pm.PackageManager;
-import android.os.Bundle;
-import com.badlogic.gdx.backends.android.AndroidApplication;
-import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
-
-public class AndroidLauncher extends AndroidApplication {
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
-        config.useImmersiveMode = true;
-        String gameFolder = "";
-        try {
-            gameFolder = getPackageManager().getPackageInfo(getPackageName(), 0).applicationInfo.dataDir;
-        } catch (PackageManager.NameNotFoundException e) {
-            e.printStackTrace();
-            exit();
-        }
-        CaveGame caveGame = new CaveGame(gameFolder, true,
-                new AndroidPreferencesStore(getApplicationContext()), null);
-        caveGame.setDebug(BuildConfig.DEBUG);
-        initialize(caveGame, config);
-    }
-
-    @Override
-    public void onBackPressed() {
-    }
-}
similarity index 100%
rename from android/assets/font.fnt
rename to assets/font.fnt
similarity index 100%
rename from android/assets/font.png
rename to assets/font.png
similarity index 100%
rename from android/assets/pp/gui.png
rename to assets/pp/gui.png
diff --git a/build.gradle b/build.gradle
deleted file mode 100644 (file)
index 60a1bb3..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-buildscript {
-    ext {
-        appName = "CaveDroid"
-
-        gdxVersion = '1.12.0'
-
-        guavaVersion = '28.1'
-
-        daggerVersion = '2.51.1'
-
-        kotlinVersion = '1.9.24'
-        kspVersion = '1.9.24-1.0.20'
-        kotlinSerializationVersion = '1.6.3'
-
-        kotlinpoetKspVersion = '1.16.0'
-    }
-
-    repositories {
-        mavenLocal()
-        mavenCentral()
-        maven { url "https://plugins.gradle.org/m2/" }
-        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
-        google()
-    }
-
-    dependencies {
-        classpath 'com.android.tools.build:gradle:8.2.2'
-        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
-    }
-}
-
-allprojects {
-    version = 'alpha0.9.2'
-
-    repositories {
-        mavenLocal()
-        mavenCentral()
-        google()
-        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
-        maven { url "https://oss.sonatype.org/content/repositories/releases/" }
-        maven { url "https://jitpack.io" }
-        maven { url "https://mvn.fredboy.ru/releases/" }
-    }
-}
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644 (file)
index 0000000..203acec
--- /dev/null
@@ -0,0 +1,30 @@
+buildscript {
+    repositories {
+        mavenLocal()
+        mavenCentral()
+        google()
+        maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots/") }
+        maven { url = uri("https://oss.sonatype.org/content/repositories/releases/") }
+        maven { url = uri("https://jitpack.io") }
+        maven { url = uri("https://mvn.fredboy.ru/releases/") }
+    }
+
+    dependencies {
+        classpath(Dependencies.androidGradlePlugin)
+        classpath(Dependencies.Kotlin.gradlePlugin)
+    }
+}
+
+allprojects {
+    version = ApplicationInfo.versionName
+
+    repositories {
+        mavenLocal()
+        mavenCentral()
+        google()
+        maven { url = uri("https://oss.sonatype.org/content/repositories/snapshots/") }
+        maven { url = uri("https://oss.sonatype.org/content/repositories/releases/") }
+        maven { url = uri("https://jitpack.io") }
+        maven { url = uri("https://mvn.fredboy.ru/releases/") }
+    }
+}
\ No newline at end of file
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
new file mode 100644 (file)
index 0000000..876c922
--- /dev/null
@@ -0,0 +1,7 @@
+plugins {
+    `kotlin-dsl`
+}
+
+repositories {
+    mavenCentral()
+}
diff --git a/buildSrc/src/main/kotlin/ApplicationInfo.kt b/buildSrc/src/main/kotlin/ApplicationInfo.kt
new file mode 100644 (file)
index 0000000..05676c4
--- /dev/null
@@ -0,0 +1,11 @@
+import org.gradle.api.JavaVersion
+
+object ApplicationInfo {
+    const val name = "CaveDroid"
+    const val versionName = "alpha0.9.2"
+    const val versionCode = 25
+
+    const val packageName = "ru.deadsoftware.cavedroid"
+
+    val sourceCompatibility = JavaVersion.VERSION_17
+}
\ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt
new file mode 100644 (file)
index 0000000..bfe2c54
--- /dev/null
@@ -0,0 +1,49 @@
+object Dependencies {
+
+    object LibGDX {
+        const val gdx = "com.badlogicgames.gdx:gdx:${Versions.gdx}"
+
+        object Android {
+            const val backend = "com.badlogicgames.gdx:gdx-backend-android:${Versions.gdx}"
+
+            object Natives {
+                const val armeabi = "com.badlogicgames.gdx:gdx-platform:${Versions.gdx}:natives-armeabi-v7a"
+                const val arm64 = "com.badlogicgames.gdx:gdx-platform:${Versions.gdx}:natives-arm64-v8a"
+                const val x86 = "com.badlogicgames.gdx:gdx-platform:${Versions.gdx}:natives-x86"
+                const val x86_64 = "com.badlogicgames.gdx:gdx-platform:${Versions.gdx}:natives-x86_64"
+            }
+        }
+
+        object Desktop {
+            const val backend = "com.badlogicgames.gdx:gdx-backend-lwjgl3:${Versions.gdx}"
+            const val natives = "com.badlogicgames.gdx:gdx-platform:${Versions.gdx}:natives-desktop"
+        }
+    }
+
+    object Dagger {
+        const val dagger = "com.google.dagger:dagger:${Versions.dagger}"
+        const val compiler = "com.google.dagger:dagger-compiler:${Versions.dagger}"
+    }
+
+    object Kotlin {
+        const val gradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
+        const val bom = "org.jetbrains.kotlin:kotlin-bom:${Versions.kotlin}"
+        const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib:${Versions.kotlin}"
+
+        object Serialization {
+            const val json = "org.jetbrains.kotlinx:kotlinx-serialization-json:${Versions.kotlinxSerialization}"
+            const val protobuf = "org.jetbrains.kotlinx:kotlinx-serialization-protobuf:${Versions.kotlinxSerialization}"
+        }
+    }
+
+    object Automultibind {
+        const val annotations = "ru.fredboy:automultibind-annotations:${Versions.automultibind}"
+        const val ksp = "ru.fredboy:automultibind-ksp:${Versions.automultibind}"
+    }
+
+    const val androidGradlePlugin = "com.android.tools.build:gradle:${Versions.agp}"
+
+    // TODO: Remove after complete kotlin migration
+    const val jetbrainsAnnotations = "org.jetbrains:annotations:${Versions.jetbrainsAnnotations}"
+
+}
\ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt
new file mode 100644 (file)
index 0000000..69bfd29
--- /dev/null
@@ -0,0 +1,63 @@
+object Versions {
+
+    /**
+     * Android gradle plugin version
+     */
+    const val agp = "8.2.2"
+
+    /**
+     * LibGDX version
+     *
+     * [Source](https://github.com/libgdx/libgdx)
+     */
+    const val gdx = "1.12.0"
+
+    /**
+     * Dagger version
+     *
+     * [Source](https://github.com/google/dagger)
+     */
+    const val dagger = "2.51.1"
+
+    /**
+     * Kotlin version
+     *
+     * [Source](https://github.com/JetBrains/kotlin)
+     */
+    const val kotlin = "1.9.24"
+
+    /**
+     * Kotlinx serialization version
+     *
+     * [Source](https://github.com/Kotlin/kotlinx.serialization/)
+     */
+    const val kotlinxSerialization = "1.6.3"
+
+    /**
+     * Kotlin Symbol Processing version
+     *
+     * [Source](https://github.com/google/ksp)
+     */
+    const val ksp = "1.9.24-1.0.20"
+
+    /**
+     * Kotlin poet version
+     *
+     * [Source](https://github.com/square/kotlinpoet)
+     */
+    const val kotlinPoetKsp = "1.16.0"
+
+    /**
+     * JetBrains annotations version
+     *
+     * [Source](https://github.com/JetBrains/java-annotations)
+     */
+    const val jetbrainsAnnotations = "23.1.0"
+
+    /**
+     * Automultibind version
+     *
+     * [Source](https://github.com/fredboy/automultibind)
+     */
+    const val automultibind = "1.0.0"
+}
\ No newline at end of file
diff --git a/core/build.gradle b/core/build.gradle
deleted file mode 100644 (file)
index bd932c3..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-plugins {
-    id "java-library"
-    id "org.jetbrains.kotlin.jvm"
-    id "kotlin"
-    id "idea"
-    id 'org.jetbrains.kotlin.plugin.serialization' version "$kotlinVersion"
-    id 'com.google.devtools.ksp' version "$kspVersion"
-}
-
-java.targetCompatibility = JavaVersion.VERSION_17
-java.sourceCompatibility = JavaVersion.VERSION_17
-
-sourceSets.main.java.srcDirs = ["src/"]
-
-dependencies {
-    implementation "ru.fredboy:automultibind-annotations:1.0.0"
-    ksp "ru.fredboy:automultibind-ksp:1.0.0"
-
-    api "com.badlogicgames.gdx:gdx:$gdxVersion"
-    api "com.google.dagger:dagger:$daggerVersion"
-    implementation 'org.jetbrains:annotations:23.1.0'
-    implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
-    implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinSerializationVersion"
-    implementation "org.jetbrains.kotlinx:kotlinx-serialization-protobuf:$kotlinSerializationVersion"
-    ksp "com.google.dagger:dagger-compiler:$daggerVersion"
-}
diff --git a/core/build.gradle.kts b/core/build.gradle.kts
new file mode 100644 (file)
index 0000000..276f49d
--- /dev/null
@@ -0,0 +1,26 @@
+plugins {
+    id("java-library")
+    id("org.jetbrains.kotlin.jvm")
+    id("kotlin")
+    id("idea")
+    id("org.jetbrains.kotlin.plugin.serialization") version Versions.kotlin
+    id ("com.google.devtools.ksp") version Versions.ksp
+}
+
+java.sourceCompatibility = ApplicationInfo.sourceCompatibility
+java.targetCompatibility = ApplicationInfo.sourceCompatibility
+
+dependencies {
+    implementation(Dependencies.Automultibind.annotations)
+    ksp(Dependencies.Automultibind.ksp)
+
+    implementation(Dependencies.LibGDX.gdx)
+    implementation(Dependencies.Dagger.dagger)
+
+    implementation(Dependencies.jetbrainsAnnotations)
+    implementation(Dependencies.Kotlin.stdlib)
+    implementation(Dependencies.Kotlin.Serialization.json)
+    implementation(Dependencies.Kotlin.Serialization.protobuf)
+
+    ksp(Dependencies.Dagger.compiler)
+}
\ No newline at end of file
diff --git a/core/src/main/kotlin/ru/deadsoftware/cavedroid/CaveGame.kt b/core/src/main/kotlin/ru/deadsoftware/cavedroid/CaveGame.kt
new file mode 100644 (file)
index 0000000..225dd3a
--- /dev/null
@@ -0,0 +1,89 @@
+package ru.deadsoftware.cavedroid
+
+import com.badlogic.gdx.Application
+import com.badlogic.gdx.Game
+import com.badlogic.gdx.Gdx
+import ru.deadsoftware.cavedroid.misc.Assets
+import ru.deadsoftware.cavedroid.misc.utils.AssetLoader
+import ru.deadsoftware.cavedroid.misc.utils.ratio
+import ru.deadsoftware.cavedroid.prefs.PreferencesStore
+
+class CaveGame(
+    private val gameDataDirectoryPath: String,
+    private val isTouchScreen: Boolean,
+    private val isDebug: Boolean,
+    private val preferencesStore: PreferencesStore,
+) : Game() {
+
+    private val mainComponent: MainComponent
+    private val mainConfig: MainConfig
+
+    private val assetLoader: AssetLoader
+
+    init {
+        mainComponent = DaggerMainComponent.builder()
+            .caveGame(this)
+            .preferencesStore(preferencesStore)
+            .build()
+
+        mainConfig = mainComponent.mainConfig
+        assetLoader = mainComponent.assetLoader
+    }
+
+    private fun initMainConfig() {
+        val width = DEFAULT_VIEWPORT_WIDTH
+        val height = width / Gdx.graphics.ratio
+
+        mainConfig.mainComponent = mainComponent
+        mainConfig.gameFolder = gameDataDirectoryPath
+        mainConfig.isTouch = isTouchScreen
+        mainConfig.width = width
+        mainConfig.height = height
+        mainConfig.isShowInfo = isDebug
+
+        Gdx.app.logLevel = if (isDebug) Application.LOG_DEBUG else Application.LOG_ERROR
+
+        mainConfig.setFullscreenToggleListener { isFullscreen ->
+            if (isFullscreen) {
+                Gdx.graphics.setFullscreenMode(Gdx.graphics.displayMode);
+            } else {
+                Gdx.graphics.setWindowedMode(width.toInt(), height.toInt());
+            }
+        }
+    }
+
+    fun newGame(gameMode: Int) {
+        setScreen(mainComponent.gameScreen.apply { newGame(gameMode) })
+    }
+
+    fun loadGame() {
+        setScreen(mainComponent.gameScreen.apply { loadGame() })
+    }
+
+    fun quitGame() {
+        screen?.dispose()
+        setScreen(mainComponent.menuScreen)
+    }
+
+    override fun create() {
+        Gdx.files.absolute(gameDataDirectoryPath).mkdirs()
+        initMainConfig()
+
+        Assets.load(assetLoader)
+        setScreen(mainComponent.menuScreen)
+    }
+
+    override fun dispose() {
+        screen?.dispose()
+        Assets.dispose()
+    }
+
+
+    companion object {
+        private const val TAG = "CaveGame"
+        private const val DEFAULT_VIEWPORT_WIDTH = 480f
+
+        const val VERSION = "alpha 0.9.2"
+    }
+
+}
\ No newline at end of file
diff --git a/core/src/main/kotlin/ru/deadsoftware/cavedroid/MainComponent.kt b/core/src/main/kotlin/ru/deadsoftware/cavedroid/MainComponent.kt
new file mode 100644 (file)
index 0000000..b2a77ee
--- /dev/null
@@ -0,0 +1,22 @@
+package ru.deadsoftware.cavedroid
+
+import dagger.Component
+import ru.deadsoftware.cavedroid.game.GameScreen
+import ru.deadsoftware.cavedroid.menu.MenuScreen
+import ru.deadsoftware.cavedroid.misc.utils.AssetLoader
+import ru.deadsoftware.cavedroid.prefs.PreferencesStore
+import javax.inject.Singleton
+
+@Singleton
+@Component(dependencies = [CaveGame::class, PreferencesStore::class])
+interface MainComponent {
+
+    val gameScreen: GameScreen
+
+    val menuScreen: MenuScreen
+
+    val mainConfig: MainConfig
+
+    val assetLoader: AssetLoader
+
+}
\ No newline at end of file
diff --git a/core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/GdxExtensions.kt b/core/src/main/kotlin/ru/deadsoftware/cavedroid/misc/utils/GdxExtensions.kt
new file mode 100644 (file)
index 0000000..1c80048
--- /dev/null
@@ -0,0 +1,5 @@
+package ru.deadsoftware.cavedroid.misc.utils
+
+import com.badlogic.gdx.Graphics
+
+val Graphics.ratio get() = width.toFloat() / height.toFloat()
\ No newline at end of file
diff --git a/core/src/ru/deadsoftware/cavedroid/CaveGame.java b/core/src/ru/deadsoftware/cavedroid/CaveGame.java
deleted file mode 100644 (file)
index 219f5b4..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-package ru.deadsoftware.cavedroid;
-
-import com.badlogic.gdx.Application;
-import com.badlogic.gdx.Game;
-import com.badlogic.gdx.Gdx;
-import org.jetbrains.annotations.Nullable;
-import ru.deadsoftware.cavedroid.game.GameScreen;
-import ru.deadsoftware.cavedroid.misc.Assets;
-import ru.deadsoftware.cavedroid.misc.utils.AssetLoader;
-import ru.deadsoftware.cavedroid.prefs.PreferencesStore;
-
-public class CaveGame extends Game {
-
-    private static final String TAG = "CaveGame";
-
-    public static final String VERSION = "alpha 0.9.2";
-
-    private final MainConfig mMainConfig;
-    private final MainComponent mMainComponent;
-    private final AssetLoader mAssetLoader;
-
-    private final String mGameFolder;
-    private final boolean mTouch;
-    private boolean mDebug;
-
-    @Nullable
-    private final String mAssetsPackPath;
-
-    public CaveGame(String gameFolder,
-                    boolean touch,
-                    PreferencesStore preferencesStore,
-                    @Nullable String assetsPackPath) {
-        mGameFolder = gameFolder;
-        mTouch = touch;
-        mAssetsPackPath = assetsPackPath;
-
-        mMainComponent = DaggerMainComponent
-                .builder()
-                .caveGame(this)
-                .preferencesStore(preferencesStore)
-                .build();
-
-        mMainConfig = mMainComponent.getMainConfig();
-        mAssetLoader = mMainComponent.getAssetLoader();
-    }
-
-    public void setDebug(boolean debug) {
-        mDebug = debug;
-    }
-
-    private void initConfig() {
-        int width = 480;
-        int height = (int) (width * ((float) Gdx.graphics.getHeight() / Gdx.graphics.getWidth()));
-
-        mMainConfig.setMainComponent(mMainComponent);
-        mMainConfig.setGameFolder(mGameFolder);
-        mMainConfig.setTouch(mTouch);
-        mMainConfig.setWidth(width);
-        mMainConfig.setHeight(height);
-        mMainConfig.setShowInfo(mDebug);
-        mMainConfig.setAssetsPackPath(mAssetsPackPath);
-
-        if (mDebug) {
-            Gdx.app.setLogLevel(Application.LOG_DEBUG);
-        } else {
-            Gdx.app.setLogLevel(Application.LOG_ERROR);
-        }
-
-        mMainConfig.setFullscreenToggleListener((value) -> {
-            if (value) {
-                Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode());
-            } else {
-                Gdx.graphics.setWindowedMode(width, height);
-            }
-        });
-    }
-
-    public void newGame(int gameMode) {
-        GameScreen gameScreen = mMainComponent.getGameScreen();
-        gameScreen.newGame(gameMode);
-        setScreen(gameScreen);
-    }
-
-    public void loadGame() {
-        GameScreen gameScreen = mMainComponent.getGameScreen();
-        gameScreen.loadGame();
-        setScreen(gameScreen);
-    }
-
-    public void quitGame() {
-        if (screen != null) {
-            screen.dispose();
-        }
-        setScreen(mMainComponent.getMenuScreen());
-    }
-
-    @Override
-    public void create() {
-        Gdx.files.absolute(mGameFolder).mkdirs();
-        initConfig();
-
-        Gdx.app.debug(TAG, mGameFolder);
-        Assets.load(mAssetLoader);
-        setScreen(mMainComponent.getMenuScreen());
-    }
-
-    @Override
-    public void dispose() {
-        if (screen != null) {
-            screen.dispose();
-        }
-        Assets.dispose();
-    }
-}
diff --git a/core/src/ru/deadsoftware/cavedroid/MainComponent.java b/core/src/ru/deadsoftware/cavedroid/MainComponent.java
deleted file mode 100644 (file)
index b487c6d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-package ru.deadsoftware.cavedroid;
-
-import dagger.Component;
-import ru.deadsoftware.cavedroid.game.GameScreen;
-import ru.deadsoftware.cavedroid.menu.MenuScreen;
-import ru.deadsoftware.cavedroid.misc.utils.AssetLoader;
-import ru.deadsoftware.cavedroid.prefs.PreferencesStore;
-
-import javax.inject.Singleton;
-
-@Singleton
-@Component(dependencies = {CaveGame.class, PreferencesStore.class})
-public interface MainComponent {
-    GameScreen getGameScreen();
-
-    MenuScreen getMenuScreen();
-
-    MainConfig getMainConfig();
-
-    AssetLoader getAssetLoader();
-}
diff --git a/desktop/build.gradle b/desktop/build.gradle
deleted file mode 100644 (file)
index 9127345..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-plugins {
-    id 'java-library'
-    id 'kotlin'
-    id 'org.jetbrains.kotlin.plugin.serialization' version "$kotlinVersion"
-}
-
-java.targetCompatibility = JavaVersion.VERSION_17
-java.sourceCompatibility = JavaVersion.VERSION_1_8
-
-sourceSets.main.java.srcDirs = ["src/"]
-sourceSets.main.resources.srcDirs = ["../android/assets"]
-
-project.ext.mainClassName = "ru.deadsoftware.cavedroid.desktop.DesktopLauncher"
-project.ext.assetsDir = new File("../android/assets")
-
-task run(dependsOn: build, type: JavaExec) {
-    main = project.mainClassName
-    classpath = sourceSets.main.runtimeClasspath
-    standardInput = System.in
-    workingDir = project.assetsDir
-    ignoreExitValue = true as JavaExecSpec
-    args "--debug"
-}
-
-task runTouch(dependsOn: build, type: JavaExec) {
-    main = project.mainClassName
-    classpath = sourceSets.main.runtimeClasspath
-    standardInput = System.in
-    workingDir = project.assetsDir
-    ignoreExitValue = true as JavaExecSpec
-    args "--touch", "--debug"
-}
-
-task dist(dependsOn: build, type: Jar) {
-    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
-    manifest {
-        attributes 'Main-Class': project.mainClassName
-    }
-    from {
-        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
-    }
-    with jar
-}
-
-dependencies {
-    implementation project(":core")
-    implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinSerializationVersion"
-    api "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion"
-    api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
-}
diff --git a/desktop/build.gradle.kts b/desktop/build.gradle.kts
new file mode 100644 (file)
index 0000000..5e2203e
--- /dev/null
@@ -0,0 +1,41 @@
+plugins {
+    id("kotlin")
+}
+
+java.sourceCompatibility = ApplicationInfo.sourceCompatibility
+java.targetCompatibility = ApplicationInfo.sourceCompatibility
+
+private val desktopLauncherClassName = "ru.deadsoftware.cavedroid.desktop.DesktopLauncher"
+
+tasks.register<JavaExec>("run") {
+    dependsOn("build")
+    mainClass = desktopLauncherClassName
+    classpath = sourceSets["main"].runtimeClasspath
+    workingDir = sourceSets["main"].resources.sourceDirectories.first()
+    args("--debug")
+}
+
+tasks.register<JavaExec>("runTouch") {
+    dependsOn("build")
+    mainClass = desktopLauncherClassName
+    classpath = sourceSets["main"].runtimeClasspath
+    workingDir = sourceSets["main"].resources.sourceDirectories.first()
+    args("--touch", "--debug")
+}
+
+tasks.register<Jar>("dist") {
+    dependsOn("build")
+    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
+    manifest {
+        attributes["Main-Class"] = desktopLauncherClassName
+    }
+    from(configurations.runtimeClasspath.get().resolve().map { it.takeIf(File::isDirectory) ?: zipTree(it) })
+}
+
+dependencies {
+    implementation(project(":core"))
+
+    implementation(Dependencies.LibGDX.gdx)
+    implementation(Dependencies.LibGDX.Desktop.backend)
+    implementation(Dependencies.LibGDX.Desktop.natives)
+}
diff --git a/desktop/src/main/kotlin/ru/deadsoftware/cavedroid/desktop/DesktopLauncher.kt b/desktop/src/main/kotlin/ru/deadsoftware/cavedroid/desktop/DesktopLauncher.kt
new file mode 100644 (file)
index 0000000..b4b3db4
--- /dev/null
@@ -0,0 +1,54 @@
+package ru.deadsoftware.cavedroid.desktop
+
+import com.badlogic.gdx.Files
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application
+import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration
+import ru.deadsoftware.cavedroid.CaveGame
+
+internal object DesktopLauncher {
+
+    @JvmStatic
+    fun main(arg: Array<String>) {
+        val config = Lwjgl3ApplicationConfiguration()
+
+        with(config) {
+            setWindowIcon(
+                /* fileType = */ Files.FileType.Internal,
+                /* ...filePaths = */ "icons/icon512.png", "icons/icon256.png", "icons/icon128.png"
+            )
+            setTitle("CaveDroid")
+            setWindowedMode(960, 540)
+            useVsync(true)
+        }
+
+        var touch = false
+        var debug = false
+        var assetsPath: String? = null
+
+        for (anArg in arg) {
+            if (anArg == "--touch") {
+                touch = true
+            }
+
+            if (anArg == "--debug") {
+                debug = true
+            }
+
+            if (anArg.startsWith("--assets")) {
+                val splitArg: Array<String> = anArg.split("=".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray()
+                if (splitArg.size >= 2) {
+                    assetsPath = splitArg[1]
+                }
+            }
+        }
+
+        val caveGame = CaveGame(
+            gameDataDirectoryPath = System.getProperty("user.home") + "/.cavedroid",
+            isTouchScreen = touch,
+            isDebug = debug,
+            preferencesStore = DesktopPreferencesStore(),
+        )
+
+        Lwjgl3Application(caveGame, config)
+    }
+}
\ No newline at end of file
diff --git a/desktop/src/main/resources b/desktop/src/main/resources
new file mode 120000 (symlink)
index 0000000..2978ef3
--- /dev/null
@@ -0,0 +1 @@
+../../../assets
\ No newline at end of file
diff --git a/desktop/src/ru/deadsoftware/cavedroid/desktop/DesktopLauncher.java b/desktop/src/ru/deadsoftware/cavedroid/desktop/DesktopLauncher.java
deleted file mode 100644 (file)
index 5903920..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-package ru.deadsoftware.cavedroid.desktop;
-
-import com.badlogic.gdx.Files;
-import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
-import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
-import ru.deadsoftware.cavedroid.CaveGame;
-
-class DesktopLauncher {
-    public static void main(String[] arg) {
-        Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
-        config.setWindowIcon(Files.FileType.Internal,
-                "icons/icon512.png", "icons/icon256.png", "icons/icon128.png");
-        config.setTitle("CaveDroid");
-        config.setWindowedMode(960, 540);
-        config.useVsync(true);
-
-        boolean touch = false;
-        boolean debug = false;
-        String assetsPath = null;
-
-        for (String anArg : arg) {
-            if (anArg.equals("--touch")) {
-                touch = true;
-            }
-
-            if (anArg.equals("--debug")) {
-                debug = true;
-            }
-
-            if (anArg.startsWith("--assets")) {
-                String[] splitArg = anArg.split("=");
-                if (splitArg.length >= 2) {
-                    assetsPath = splitArg[1];
-                }
-            }
-        }
-
-        CaveGame caveGame = new CaveGame(System.getProperty("user.home") + "/.cavedroid", touch,
-                new DesktopPreferencesStore(), assetsPath);
-        caveGame.setDebug(debug);
-
-        new Lwjgl3Application(caveGame, config);
-    }
-}
diff --git a/settings.gradle b/settings.gradle
deleted file mode 100644 (file)
index 99367df..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-include 'desktop', 'android', 'core'
-
diff --git a/settings.gradle.kts b/settings.gradle.kts
new file mode 100644 (file)
index 0000000..8b9f274
--- /dev/null
@@ -0,0 +1,3 @@
+include("android")
+include("desktop")
+include("core")
index 7637355e9d8a675c279272f2618a07d7514d8640..80fa78ebee352b6bae09cc1a4904dac8133c5379 100755 (executable)
@@ -4,12 +4,12 @@ new_version=$1
 
 new_version_string=$(echo $new_version | sed 's/\(alpha\|beta\)\(.*\)/\1 \2/')
 
-sed -i 's/\(version\s=\s\)'"'"'.*'"'"'/\1'"'"''"$new_version"''"'"'/g' build.gradle
-sed -i 's/\(versionName\s\)\".*\"/\1\"'"$new_version"'\"/g' android/build.gradle
-sed -i 's/\(^\s*versionCode\s\)\([0-9]*\)/echo "\1$((\2+1))"/ge' android/build.gradle
-sed -i 's/\(public static final String VERSION = \)\".*\"/\1\"'"$new_version_string"'\"/' core/src/ru/deadsoftware/cavedroid/CaveGame.java
+sed -i 's/\(const val versionName = \)\".*\"/\1\"'"$new_version"'\"/g' buildSrc/src/main/kotlin/ApplicationInfo.kt
+sed -i 's/\(\s*const val versionCode = \)\([0-9]*\)/echo "\1$((\2+1))"/ge' buildSrc/src/main/kotlin/ApplicationInfo.kt
+sed -i 's/\(const val VERSION = \)\".*\"/\1\"'"$new_version_string"'\"/' core/src/main/kotlin/ru/deadsoftware/cavedroid/CaveGame.kt
 
-git add build.gradle android/build.gradle core/src/ru/deadsoftware/cavedroid/CaveGame.java
+git add buildSrc/src/main/kotlin/ApplicationInfo.kt core/src/main/kotlin/ru/deadsoftware/cavedroid/CaveGame.kt
 
 git commit -m "Update version"
 git tag "$new_version"
+q
\ No newline at end of file