diff --git a/core/src/ru/deadsoftware/cavedroid/game/GamePhysics.java b/core/src/ru/deadsoftware/cavedroid/game/GamePhysics.java
index aebf8eb654eb03b7865162b6ec721557c1eddb5c..406ee346b461859f3d436d82ab8f155cf286c8ee 100644 (file)
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
+import org.jetbrains.annotations.Nullable;
import ru.deadsoftware.cavedroid.MainConfig;
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.game.model.block.Block;
import ru.deadsoftware.cavedroid.MainConfig;
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.game.model.block.Block;
+import ru.deadsoftware.cavedroid.game.model.item.InventoryItem;
import ru.deadsoftware.cavedroid.game.objects.drop.Drop;
import ru.deadsoftware.cavedroid.game.objects.drop.DropController;
import ru.deadsoftware.cavedroid.game.world.GameWorld;
import ru.deadsoftware.cavedroid.game.objects.drop.Drop;
import ru.deadsoftware.cavedroid.game.objects.drop.DropController;
import ru.deadsoftware.cavedroid.game.world.GameWorld;
-import javax.annotation.CheckForNull;
import javax.inject.Inject;
import java.util.Iterator;
import javax.inject.Inject;
import java.util.Iterator;
/**
* @return colliding rect or null if no collision
*/
/**
* @return colliding rect or null if no collision
*/
- @CheckForNull
+ @Nullable
private Rectangle checkColl(Rectangle rect) {
int minX = (int) ((rect.x + rect.width / 2) / 16) - 4;
int minY = (int) ((rect.y + rect.height / 2) / 16) - 4;
private Rectangle checkColl(Rectangle rect) {
int minX = (int) ((rect.x + rect.width / 2) / 16) - 4;
int minY = (int) ((rect.y + rect.height / 2) / 16) - 4;
/**
* @return Rectangle representing magneting target for this drop
*/
/**
* @return Rectangle representing magneting target for this drop
*/
- @CheckForNull
+ @Nullable
private Rectangle getShiftedMagnetingPlayerRect(Drop drop) {
final Player player = mMobsController.getPlayer();
private Rectangle getShiftedMagnetingPlayerRect(Drop drop) {
final Player player = mMobsController.getPlayer();
- if (!player.inventory.canPickItem(drop.getItem())) {
+ if (!player.inventory.canPickItem(drop)) {
return null;
}
return null;
}
return;
}
return;
}
- @CheckForNull Rectangle collidingRect = checkColl(mob);
+ @Nullable Rectangle collidingRect = checkColl(mob);
if (collidingRect != null) {
if (mob.canJump() && !mob.isFlyMode() && collidingRect.y >= mob.y + mob.height - 8) {
if (collidingRect != null) {
if (mob.canJump() && !mob.isFlyMode() && collidingRect.y >= mob.y + mob.height - 8) {
}
private void mobYColl(Mob mob) {
}
private void mobYColl(Mob mob) {
- @CheckForNull final Rectangle collidingRect = checkColl(mob);
+ @Nullable final Rectangle collidingRect = checkColl(mob);
if (collidingRect != null) {
int d = -1;
if (collidingRect != null) {
int d = -1;
for (Iterator<Mob> it = mMobsController.getMobs().iterator(); it.hasNext(); ) {
Mob mob = it.next();
for (Iterator<Mob> it = mMobsController.getMobs().iterator(); it.hasNext(); ) {
Mob mob = it.next();
- mob.ai(mGameWorld, mGameItemsHolder, delta);
+ mob.ai(mGameWorld, mGameItemsHolder, mMobsController, delta);
mobPhy(mob, delta);
if (mob.isDead()) {
mobPhy(mob, delta);
if (mob.isDead()) {
+ for (InventoryItem invItem : mob.getDrop(mGameItemsHolder)) {
+ mDropController.addDrop(mob.x, mob.y, invItem);
+ }
+
it.remove();
}
}
playerPhy(player, delta);
it.remove();
}
}
playerPhy(player, delta);
- player.ai(mGameWorld, mGameItemsHolder, delta);
+ player.ai(mGameWorld, mGameItemsHolder, mMobsController, delta);
if (player.isDead()) {
if (player.isDead()) {
+ for (InventoryItem invItem : player.inventory.getItems()) {
+ mDropController.addDrop(player.x, player.y, invItem);
+ }
+ player.inventory.clear();
player.respawn(mGameWorld, mGameItemsHolder);
}
}
player.respawn(mGameWorld, mGameItemsHolder);
}
}