import dagger.Component;
import ru.deadsoftware.cavedroid.MainComponent;
-import ru.deadsoftware.cavedroid.game.actions.PlaceBlockActionsModule;
-import ru.deadsoftware.cavedroid.game.actions.UpdateBlockActionsModule;
-import ru.deadsoftware.cavedroid.game.actions.UseBlockActionsModule;
-import ru.deadsoftware.cavedroid.game.actions.UseItemActionsModule;
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandlersModule;
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandlersModule;
-import ru.deadsoftware.cavedroid.game.render.RenderModule;
+import ru.deadsoftware.cavedroid.generated.module.*;
@GameScope
@Component(dependencies = MainComponent.class,
--- /dev/null
+package ru.deadsoftware.cavedroid.game.actions.placeblock
+
+import ru.deadsoftware.cavedroid.game.model.item.Item
+
+interface IPlaceBlockAction {
+
+ fun place(placeable: Item.Placeable, x: Int, y: Int)
+
+}
+++ /dev/null
-package ru.deadsoftware.cavedroid.game.actions.placeblock
-
-import ru.deadsoftware.cavedroid.game.model.item.Item
-import ru.fredboy.cavedroid.ksp.annotations.GenerateMapMultibindingsModule
-
-@GenerateMapMultibindingsModule(
- interfaceClass = IPlaceBlockAction::class,
- modulePackage = "ru.deadsoftware.cavedroid.game.actions",
- moduleName = "PlaceBlockActionsModule"
-)
-annotation class PlaceBlockAction(val stringKey: String)
-
-interface IPlaceBlockAction {
-
- fun place(placeable: Item.Placeable, x: Int, y: Int)
-
-}
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindPlaceBlockAction
import javax.inject.Inject
@GameScope
-@PlaceBlockAction(stringKey = PlaceBlockItemToBackgroundAction.ACTION_KEY)
+@BindPlaceBlockAction(stringKey = PlaceBlockItemToBackgroundAction.ACTION_KEY)
class PlaceBlockItemToBackgroundAction @Inject constructor(
private val gameWorld: GameWorld,
private val gameItemsHolder: GameItemsHolder,
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindPlaceBlockAction
import javax.inject.Inject
@GameScope
-@PlaceBlockAction(stringKey = PlaceBlockItemToForegroundAction.ACTION_KEY)
+@BindPlaceBlockAction(stringKey = PlaceBlockItemToForegroundAction.ACTION_KEY)
class PlaceBlockItemToForegroundAction @Inject constructor(
private val gameWorld: GameWorld,
private val placeSlabAction: PlaceSlabAction,
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindPlaceBlockAction
import javax.inject.Inject
@GameScope
-@PlaceBlockAction(stringKey = PlaceSlabAction.ACTION_KEY)
+@BindPlaceBlockAction(stringKey = PlaceSlabAction.ACTION_KEY)
class PlaceSlabAction @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
package ru.deadsoftware.cavedroid.game.actions.updateblock
-import ru.fredboy.cavedroid.ksp.annotations.GenerateMapMultibindingsModule
-
-@GenerateMapMultibindingsModule(
- interfaceClass = IUpdateBlockAction::class,
- modulePackage = "ru.deadsoftware.cavedroid.game.actions",
- moduleName = "UpdateBlockActionsModule"
-)
-annotation class UpdateBlockAction(val stringKey: String)
-
interface IUpdateBlockAction {
fun update(x: Int, y: Int)
import ru.deadsoftware.cavedroid.game.mobs.FallingGravel
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUpdateBlockAction
import javax.inject.Inject
@GameScope
-@UpdateBlockAction(stringKey = UpdateBedLeftAction.BLOCK_KEY)
+@BindUpdateBlockAction(stringKey = UpdateBedLeftAction.BLOCK_KEY)
class UpdateBedLeftAction @Inject constructor(
private val gameWorld: GameWorld,
private val gameItemsHolder: GameItemsHolder,
import ru.deadsoftware.cavedroid.game.mobs.FallingGravel
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUpdateBlockAction
import javax.inject.Inject
@GameScope
-@UpdateBlockAction(stringKey = UpdateBedRightAction.BLOCK_KEY)
+@BindUpdateBlockAction(stringKey = UpdateBedRightAction.BLOCK_KEY)
class UpdateBedRightAction @Inject constructor(
private val gameWorld: GameWorld,
private val gameItemsHolder: GameItemsHolder,
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUpdateBlockAction
import javax.inject.Inject
@GameScope
-@UpdateBlockAction(stringKey = UpdateGrassAction.BLOCK_KEY)
+@BindUpdateBlockAction(stringKey = UpdateGrassAction.BLOCK_KEY)
class UpdateGrassAction @Inject constructor(
private val gameWorld: GameWorld,
private val mGameItemsHolder: GameItemsHolder,
import ru.deadsoftware.cavedroid.game.mobs.FallingGravel
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUpdateBlockAction
import javax.inject.Inject
@GameScope
-@UpdateBlockAction(stringKey = UpdateGravelAction.BLOCK_KEY)
+@BindUpdateBlockAction(stringKey = UpdateGravelAction.BLOCK_KEY)
class UpdateGravelAction @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUpdateBlockAction
import javax.inject.Inject
@GameScope
-@UpdateBlockAction(stringKey = UpdateRequiresBlockAction.ACTION_KEY)
+@BindUpdateBlockAction(stringKey = UpdateRequiresBlockAction.ACTION_KEY)
class UpdateRequiresBlockAction @Inject constructor(
private val gameWorld: GameWorld,
) : IUpdateBlockAction {
import ru.deadsoftware.cavedroid.game.mobs.FallingSand
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUpdateBlockAction
import javax.inject.Inject
@GameScope
-@UpdateBlockAction(stringKey = UpdateSandAction.BLOCK_KEY)
+@BindUpdateBlockAction(stringKey = UpdateSandAction.BLOCK_KEY)
class UpdateSandAction @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUpdateBlockAction
import javax.inject.Inject
@GameScope
-@UpdateBlockAction(stringKey = UpdateSnowedGrassAction.BLOCK_KEY)
+@BindUpdateBlockAction(stringKey = UpdateSnowedGrassAction.BLOCK_KEY)
class UpdateSnowedGrassAction @Inject constructor(
private val gameWorld: GameWorld,
private val mGameItemsHolder: GameItemsHolder,
--- /dev/null
+package ru.deadsoftware.cavedroid.game.actions.useblock
+
+import ru.deadsoftware.cavedroid.game.model.block.Block
+
+interface IUseBlockAction {
+
+ fun perform(block: Block, x: Int, y: Int)
+
+}
\ No newline at end of file
+++ /dev/null
-package ru.deadsoftware.cavedroid.game.actions.useblock
-
-import ru.deadsoftware.cavedroid.game.model.block.Block
-import ru.fredboy.cavedroid.ksp.annotations.GenerateMapMultibindingsModule
-
-@GenerateMapMultibindingsModule(
- interfaceClass = IUseBlockAction::class,
- modulePackage = "ru.deadsoftware.cavedroid.game.actions",
- moduleName = "UseBlockActionsModule"
-)
-annotation class UseBlockAction(val stringKey: String)
-
-interface IUseBlockAction {
-
- fun perform(block: Block, x: Int, y: Int)
-
-}
\ No newline at end of file
import ru.deadsoftware.cavedroid.game.objects.container.Chest
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUseBlockAction
import javax.inject.Inject
@GameScope
-@UseBlockAction(stringKey = UseChestAction.KEY)
+@BindUseBlockAction(stringKey = UseChestAction.KEY)
class UseChestAction @Inject constructor(
private val gameWorld: GameWorld,
private val gameWindowsManager: GameWindowsManager,
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.model.block.Block
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUseBlockAction
import javax.inject.Inject
@GameScope
-@UseBlockAction(stringKey = UseCraftingTableAction.KEY)
+@BindUseBlockAction(stringKey = UseCraftingTableAction.KEY)
class UseCraftingTableAction @Inject constructor(
private val gameWindowsManager: GameWindowsManager
) : IUseBlockAction {
import ru.deadsoftware.cavedroid.game.model.block.Block
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUseBlockAction
import javax.inject.Inject
@GameScope
-@UseBlockAction(stringKey = UseFurnaceAction.KEY)
+@BindUseBlockAction(stringKey = UseFurnaceAction.KEY)
class UseFurnaceAction @Inject constructor(
private val gameWorld: GameWorld,
private val gameWindowsManager: GameWindowsManager,
--- /dev/null
+package ru.deadsoftware.cavedroid.game.actions.useitem
+
+import ru.deadsoftware.cavedroid.game.model.item.Item
+
+interface IUseItemAction {
+
+ fun perform(item: Item.Usable, x: Int, y: Int)
+
+}
\ No newline at end of file
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUseItemAction
import javax.inject.Inject
@GameScope
-@UseItemAction(UseBedAction.ACTION_KEY)
+@BindUseItemAction(UseBedAction.ACTION_KEY)
class UseBedAction @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.game.model.block.Block
import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUseItemAction
import javax.inject.Inject
@GameScope
-@UseItemAction(UseEmptyBucketAction.ACTION_KEY)
+@BindUseItemAction(UseEmptyBucketAction.ACTION_KEY)
class UseEmptyBucketAction @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
+++ /dev/null
-package ru.deadsoftware.cavedroid.game.actions.useitem
-
-import ru.deadsoftware.cavedroid.game.model.item.Item
-import ru.fredboy.cavedroid.ksp.annotations.GenerateMapMultibindingsModule
-
-@GenerateMapMultibindingsModule(
- interfaceClass = IUseItemAction::class,
- modulePackage = "ru.deadsoftware.cavedroid.game.actions",
- moduleName = "UseItemActionsModule"
-)
-annotation class UseItemAction(val stringKey: String)
-
-interface IUseItemAction {
-
- fun perform(item: Item.Usable, x: Int, y: Int)
-
-}
\ No newline at end of file
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUseItemAction
import javax.inject.Inject
@GameScope
-@UseItemAction(UseLavaBucketAction.ACTION_KEY)
+@BindUseItemAction(UseLavaBucketAction.ACTION_KEY)
class UseLavaBucketAction @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.Pig
import ru.deadsoftware.cavedroid.game.model.item.Item
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUseItemAction
import ru.deadsoftware.cavedroid.misc.utils.px
import javax.inject.Inject
@GameScope
-@UseItemAction(UsePigSpawnEggAction.ACTION_KEY)
+@BindUseItemAction(UsePigSpawnEggAction.ACTION_KEY)
class UsePigSpawnEggAction @Inject constructor(
private val mobsController: MobsController,
private val gameItemsHolder: GameItemsHolder,
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.model.item.Item
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindUseItemAction
import javax.inject.Inject
@GameScope
-@UseItemAction(UseWaterBucketAction.ACTION_KEY)
+@BindUseItemAction(UseWaterBucketAction.ACTION_KEY)
class UseWaterBucketAction @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.game.input.action.IGameInputAction
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
-import ru.fredboy.cavedroid.ksp.annotations.GenerateSetMultibindingsModule
-
-@GenerateSetMultibindingsModule(
- interfaceClass = IKeyboardInputHandler::class,
- modulePackage = "ru.deadsoftware.cavedroid.game.input",
- moduleName = "KeyboardInputHandlersModule"
-)
-annotation class KeyboardInputHandler
-
-@GenerateSetMultibindingsModule(
- interfaceClass = IMouseInputHandler::class,
- modulePackage = "ru.deadsoftware.cavedroid.game.input",
- moduleName = "MouseInputHandlersModule"
-)
-annotation class MouseInputHandler
interface IKeyboardInputHandler : IGameInputHandler<KeyboardInputAction>
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.objects.drop.DropController
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class CloseGameWindowKeyboardInputHandler @Inject constructor(
private val gameWindowsManager: GameWindowsManager,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.objects.drop.Drop
import ru.deadsoftware.cavedroid.game.objects.drop.DropController
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class DropItemKeyboardInputHandler @Inject constructor(
private val gameWindowsManager: GameWindowsManager,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.player.Player
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class FlyDownKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.player.Player
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class FlyUpKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.Mob
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.player.Player
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class GoLeftKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.Mob
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.player.Player
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class GoRightKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.player.Player
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class JumpKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.player.Player
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class MoveCursorControlsModeKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class OpenInventoryKeyboardInputHandler @Inject constructor(
private val gameWindowsManager: GameWindowsManager,
) : IKeyboardInputHandler {
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.objects.container.ContainerController
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class PauseGameKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val dropController: DropController,
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class SelectHotbarSlotKeyboardInputHandler @Inject constructor(
private val mobsController: MobsController,
) : IKeyboardInputHandler {
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.player.Player
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class StopSwimKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.player.Player
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class SwimUpKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.player.Player
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class ToggleControlsModeKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class ToggleDebugInfoKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig
) : IKeyboardInputHandler {
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class ToggleGameModeKeyboardInputHandler @Inject constructor(
private val mobsController: MobsController
) : IKeyboardInputHandler {
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class ToggleMinimapKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
) : IKeyboardInputHandler {
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
-import ru.deadsoftware.cavedroid.game.input.KeyboardInputHandler
import ru.deadsoftware.cavedroid.game.input.action.KeyboardInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.KeyboardInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.mobs.player.Player
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindKeyboardInputHandler
import javax.inject.Inject
@GameScope
-@KeyboardInputHandler
+@BindKeyboardInputHandler
class TurnOnFlyModeKeyboardInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.MouseInputActionKey
import ru.deadsoftware.cavedroid.game.input.isInsideHotbar
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class AttackMouseInputHandler @Inject constructor(
private val mobsController: MobsController,
private val gameWorld: GameWorld,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import com.badlogic.gdx.graphics.g2d.TextureRegion
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.MouseInputActionKey
import ru.deadsoftware.cavedroid.game.input.isInsideWindow
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class CloseGameWindowMouseInputHandler @Inject constructor(
private val gameWindowsManager: GameWindowsManager,
private val mobsController: MobsController,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import com.badlogic.gdx.math.MathUtils
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.MouseInputActionKey
import ru.deadsoftware.cavedroid.game.input.isInsideWindow
import kotlin.math.abs
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class CreativeInventoryScrollMouseInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val gameWindowsManager: GameWindowsManager,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import com.badlogic.gdx.math.MathUtils
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.MouseInputActionKey
import ru.deadsoftware.cavedroid.game.mobs.Mob
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class CursorMouseInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import com.badlogic.gdx.utils.Timer
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.MouseInputActionKey
import ru.deadsoftware.cavedroid.game.input.handler.keyboard.DropItemKeyboardInputHandler.Companion.DROP_DISTANCE
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class HotbarMouseInputHandler @Inject constructor(
private val gameWindowsManager: GameWindowsManager,
private val mobsController: MobsController,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsConfigs
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class SelectChestInventoryItemMouseInputHandler @Inject constructor(
private val gameWindowsManager: GameWindowsManager,
private val mobsController: MobsController,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsConfigs
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class SelectCraftingInventoryItemMouseInputHandler @Inject constructor(
private val gameWindowsManager: GameWindowsManager,
private val mobsController: MobsController,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.MouseInputActionKey
import ru.deadsoftware.cavedroid.game.input.isInsideWindow
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class SelectCreativeInventoryItemMouseInputHandler @Inject constructor(
private val gameItemsHolder: GameItemsHolder,
private val gameWindowsManager: GameWindowsManager,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.model.item.InventoryItem.Companion.isNoneOrNull
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class SelectFurnaceInventoryItemMouseInputHandler @Inject constructor(
private val gameWindowsManager: GameWindowsManager,
private val mobsController: MobsController,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import ru.deadsoftware.cavedroid.game.GameItemsHolder
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.GameUiWindow
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsConfigs
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class SelectSurvivalInventoryItemMouseInputHandler @Inject constructor(
private val gameWindowsManager: GameWindowsManager,
private val mobsController: MobsController,
package ru.deadsoftware.cavedroid.game.input.handler.mouse
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import com.badlogic.gdx.Gdx
import com.badlogic.gdx.utils.Timer
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.actions.useblock.IUseBlockAction
import ru.deadsoftware.cavedroid.game.actions.useitem.IUseItemAction
import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler
-import ru.deadsoftware.cavedroid.game.input.MouseInputHandler
import ru.deadsoftware.cavedroid.game.input.action.MouseInputAction
import ru.deadsoftware.cavedroid.game.input.action.keys.MouseInputActionKey
import ru.deadsoftware.cavedroid.game.input.isInsideHotbar
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class UseItemMouseInputHandler @Inject constructor(
private val mobsController: MobsController,
private val useItemActionMap: Map<String, @JvmSuppressWildcards IUseItemAction>,
package ru.deadsoftware.cavedroid.game.input.handler.touch
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindMouseInputHandler
import com.badlogic.gdx.utils.TimeUtils
import ru.deadsoftware.cavedroid.MainConfig
import ru.deadsoftware.cavedroid.game.GameScope
import javax.inject.Inject
@GameScope
-@MouseInputHandler
+@BindMouseInputHandler
class JoystickInputHandler @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindRenderer
import ru.deadsoftware.cavedroid.misc.utils.forEachBlockInArea
import javax.inject.Inject
@GameScope
-@GameRenderer
+@BindRenderer
class BackgroundBlocksRenderer @Inject constructor(
gameWorld: GameWorld,
mobsController: MobsController
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.model.block.Block
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindRenderer
import ru.deadsoftware.cavedroid.misc.utils.bl
import ru.deadsoftware.cavedroid.misc.utils.drawString
import ru.deadsoftware.cavedroid.misc.utils.forEachBlockInArea
import ru.deadsoftware.cavedroid.misc.utils.px
import javax.inject.Inject
-@GameRenderer
@GameScope
+@BindRenderer
class DebugRenderer @Inject constructor(
private val mainConfig: MainConfig,
private val gameWorld: GameWorld,
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.objects.drop.DropController
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindRenderer
import ru.deadsoftware.cavedroid.misc.utils.cycledInsideWorld
import ru.deadsoftware.cavedroid.misc.utils.drawSprite
import ru.deadsoftware.cavedroid.misc.utils.px
import javax.inject.Inject
@GameScope
-@GameRenderer
+@BindRenderer
class DropsRenderer @Inject constructor(
private val dropController: DropController,
private val gameWorld: GameWorld,
import ru.deadsoftware.cavedroid.game.GameScope
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindRenderer
import ru.deadsoftware.cavedroid.misc.utils.forEachBlockInArea
import javax.inject.Inject
@GameScope
-@GameRenderer
+@BindRenderer
class ForegroundBlocksRenderer @Inject constructor(
gameWorld: GameWorld,
mobsController: MobsController
import ru.deadsoftware.cavedroid.game.ui.TooltipManager
import ru.deadsoftware.cavedroid.game.world.GameWorld
import ru.deadsoftware.cavedroid.misc.Assets
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindRenderer
import ru.deadsoftware.cavedroid.misc.utils.drawString
import ru.deadsoftware.cavedroid.misc.utils.px
import javax.inject.Inject
@GameScope
-@GameRenderer
+@BindRenderer
class HudRenderer @Inject constructor(
private val gameWorld: GameWorld,
private val mobsController: MobsController,
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.glutils.ShapeRenderer
import com.badlogic.gdx.math.Rectangle
-import ru.fredboy.cavedroid.ksp.annotations.GenerateSetMultibindingsModule
-
-@GenerateSetMultibindingsModule(
- interfaceClass = IGameRenderer::class,
- modulePackage = "ru.deadsoftware.cavedroid.game.render",
- moduleName = "RenderModule"
-)
-annotation class GameRenderer
interface IGameRenderer {
import ru.deadsoftware.cavedroid.game.mobs.Mob
import ru.deadsoftware.cavedroid.game.mobs.MobsController
import ru.deadsoftware.cavedroid.game.world.GameWorld
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindRenderer
import ru.deadsoftware.cavedroid.misc.utils.cycledInsideWorld
import ru.deadsoftware.cavedroid.misc.utils.px
import javax.inject.Inject
@GameScope
-@GameRenderer
+@BindRenderer
class MobsRenderer @Inject constructor(
private val mobsController: MobsController,
private val gameWorld: GameWorld,
import ru.deadsoftware.cavedroid.game.mobs.player.Player.ControlMode
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
import ru.deadsoftware.cavedroid.misc.Assets
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindRenderer
import ru.deadsoftware.cavedroid.misc.utils.ArrayMapExtensions.component1
import ru.deadsoftware.cavedroid.misc.utils.ArrayMapExtensions.component2
import ru.deadsoftware.cavedroid.misc.utils.drawSprite
import javax.inject.Inject
@GameScope
-@GameRenderer
+@BindRenderer
class TouchControlsRenderer @Inject constructor(
private val mainConfig: MainConfig,
private val mobsController: MobsController,
import ru.deadsoftware.cavedroid.game.GameUiWindow
import ru.deadsoftware.cavedroid.game.render.windows.*
import ru.deadsoftware.cavedroid.game.ui.windows.GameWindowsManager
+import ru.deadsoftware.cavedroid.misc.annotations.multibinding.BindRenderer
import javax.inject.Inject
@GameScope
-@GameRenderer
+@BindRenderer
class WindowsRenderer @Inject constructor(
private val creativeWindowRenderer: CreativeWindowRenderer,
private val survivalWindowRenderer: SurvivalWindowRenderer,
--- /dev/null
+package ru.deadsoftware.cavedroid.misc.annotations.multibinding
+
+import ru.deadsoftware.cavedroid.game.input.IKeyboardInputHandler
+import ru.fredboy.cavedroid.ksp.annotations.GenerateSetMultibindingsModule
+
+@GenerateSetMultibindingsModule(
+ interfaceClass = IKeyboardInputHandler::class,
+ modulePackage = MultibindingConfig.GENERATED_MODULES_PACKAGE,
+ moduleName = "KeyboardInputHandlersModule"
+)
+annotation class BindKeyboardInputHandler
\ No newline at end of file
--- /dev/null
+package ru.deadsoftware.cavedroid.misc.annotations.multibinding
+
+import ru.deadsoftware.cavedroid.game.input.IMouseInputHandler
+import ru.fredboy.cavedroid.ksp.annotations.GenerateSetMultibindingsModule
+
+@GenerateSetMultibindingsModule(
+ interfaceClass = IMouseInputHandler::class,
+ modulePackage = MultibindingConfig.GENERATED_MODULES_PACKAGE,
+ moduleName = "MouseInputHandlersModule"
+)
+annotation class BindMouseInputHandler
\ No newline at end of file
--- /dev/null
+package ru.deadsoftware.cavedroid.misc.annotations.multibinding
+
+import ru.deadsoftware.cavedroid.game.actions.placeblock.IPlaceBlockAction
+import ru.fredboy.cavedroid.ksp.annotations.GenerateMapMultibindingsModule
+
+@GenerateMapMultibindingsModule(
+ interfaceClass = IPlaceBlockAction::class,
+ modulePackage = MultibindingConfig.GENERATED_MODULES_PACKAGE,
+ moduleName = "PlaceBlockActionsModule"
+)
+annotation class BindPlaceBlockAction(val stringKey: String)
--- /dev/null
+package ru.deadsoftware.cavedroid.misc.annotations.multibinding
+
+import ru.deadsoftware.cavedroid.game.render.IGameRenderer
+import ru.fredboy.cavedroid.ksp.annotations.GenerateSetMultibindingsModule
+
+@GenerateSetMultibindingsModule(
+ interfaceClass = IGameRenderer::class,
+ modulePackage = MultibindingConfig.GENERATED_MODULES_PACKAGE,
+ moduleName = "RenderModule"
+)
+annotation class BindRenderer
--- /dev/null
+package ru.deadsoftware.cavedroid.misc.annotations.multibinding
+
+import ru.deadsoftware.cavedroid.game.actions.updateblock.IUpdateBlockAction
+import ru.fredboy.cavedroid.ksp.annotations.GenerateMapMultibindingsModule
+
+@GenerateMapMultibindingsModule(
+ interfaceClass = IUpdateBlockAction::class,
+ modulePackage = MultibindingConfig.GENERATED_MODULES_PACKAGE,
+ moduleName = "UpdateBlockActionsModule"
+)
+annotation class BindUpdateBlockAction(val stringKey: String)
\ No newline at end of file
--- /dev/null
+package ru.deadsoftware.cavedroid.misc.annotations.multibinding
+
+import ru.deadsoftware.cavedroid.game.actions.useblock.IUseBlockAction
+import ru.fredboy.cavedroid.ksp.annotations.GenerateMapMultibindingsModule
+
+@GenerateMapMultibindingsModule(
+ interfaceClass = IUseBlockAction::class,
+ modulePackage = MultibindingConfig.GENERATED_MODULES_PACKAGE,
+ moduleName = "UseBlockActionsModule"
+)
+annotation class BindUseBlockAction(val stringKey: String)
--- /dev/null
+package ru.deadsoftware.cavedroid.misc.annotations.multibinding
+
+import ru.deadsoftware.cavedroid.game.actions.useitem.IUseItemAction
+import ru.fredboy.cavedroid.ksp.annotations.GenerateMapMultibindingsModule
+
+@GenerateMapMultibindingsModule(
+ interfaceClass = IUseItemAction::class,
+ modulePackage = MultibindingConfig.GENERATED_MODULES_PACKAGE,
+ moduleName = "UseItemActionsModule"
+)
+annotation class BindUseItemAction(val stringKey: String)
--- /dev/null
+package ru.deadsoftware.cavedroid.misc.annotations.multibinding
+
+data object MultibindingConfig {
+ const val GENERATED_MODULES_PACKAGE = "ru.deadsoftware.cavedroid.generated.module"
+}
\ No newline at end of file