X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2FGameInput.java;h=fd225742fadbe16affe54246965bb40c9cff9e0d;hb=476b65903ad1082a1847eb2a8076ab1039358790;hp=17d6ad1ac758820a32f02f1fdedbac58c612f39d;hpb=894d9f1babeff18c9cbb5f83206ff2c549de0bdb;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameInput.java b/core/src/ru/deadsoftware/cavedroid/game/GameInput.java index 17d6ad1..fd22574 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/GameInput.java +++ b/core/src/ru/deadsoftware/cavedroid/game/GameInput.java @@ -9,13 +9,14 @@ import com.badlogic.gdx.utils.TimeUtils; import com.google.common.collect.Range; import ru.deadsoftware.cavedroid.MainConfig; import ru.deadsoftware.cavedroid.game.actions.CommonBlockActionUtilsKt; +import ru.deadsoftware.cavedroid.game.actions.placeblock.IPlaceBlockAction; import ru.deadsoftware.cavedroid.game.actions.useitem.IUseItemAction; import ru.deadsoftware.cavedroid.game.mobs.Mob; import ru.deadsoftware.cavedroid.game.mobs.MobsController; import ru.deadsoftware.cavedroid.game.mobs.Pig; import ru.deadsoftware.cavedroid.game.mobs.Player; +import ru.deadsoftware.cavedroid.game.model.item.Item; import ru.deadsoftware.cavedroid.game.objects.DropController; -import ru.deadsoftware.cavedroid.game.objects.Item; import ru.deadsoftware.cavedroid.game.world.GameWorld; import ru.deadsoftware.cavedroid.misc.Assets; import ru.deadsoftware.cavedroid.misc.ControlMode; @@ -37,6 +38,7 @@ public class GameInput { private final DropController mDropController; private final MobsController mMobsController; private final Map mUseItemActionMap; + private final Map mPlaceBlockActionMap; private final Player mPlayer; @@ -62,12 +64,14 @@ public class GameInput { GameWorld gameWorld, DropController dropController, MobsController mobsController, - Map useItemActionMap) { + Map useItemActionMap, + Map placeBlockActionMap) { mMainConfig = mainConfig; mGameWorld = gameWorld; mDropController = dropController; mMobsController = mobsController; mUseItemActionMap = useItemActionMap; + mPlaceBlockActionMap = placeBlockActionMap; mPlayer = mMobsController.getPlayer(); @@ -209,20 +213,21 @@ public class GameInput { if (id > 0) { final Item item = getItem(id); - @CheckForNull final String actionKey = item.getActionKey(); - if (item.isBlock()) { + + if (item instanceof Item.Placeable) { if (!bg) { - CommonBlockActionUtilsKt.placeToForegroundAction(mUseItemActionMap, item, x, y); + CommonBlockActionUtilsKt.placeToForegroundAction(mPlaceBlockActionMap, (Item.Placeable) item, x, y); } else { - CommonBlockActionUtilsKt.placeToBackgroundAction(mUseItemActionMap, item, x, y); + CommonBlockActionUtilsKt.placeToBackgroundAction(mPlaceBlockActionMap, (Item.Placeable) item, x, y); } - } else if (actionKey != null) { + } else if (item instanceof Item.Usable) { + final String actionKey = ((Item.Usable)item).getUseActionKey(); final IUseItemAction useItemAction = mUseItemActionMap.get(actionKey); if (useItemAction != null) { - useItemAction.perform(item, x, y); + useItemAction.perform((Item.Usable) item, x, y); } else { - Gdx.app.error(TAG, "use item action " + actionKey + "not found"); + Gdx.app.error(TAG, "use item action " + actionKey + " not found"); } } }