private static final ArrayMap<String, Block> blocks = new ArrayMap<>();
private static final ArrayMap<String, Item> items = new ArrayMap<>();
- static boolean isFluid(int id) {
+ public static boolean isFluid(int id) {
return getBlock(id).isFluid();
}
- static boolean isWater(int id) {
+ public static boolean isWater(int id) {
return getBlock(id).getMeta().equals("water");
}
- static boolean isLava(int id) {
+ public static boolean isLava(int id) {
return getBlock(id).getMeta().equals("lava");
}
- static boolean isSlab(int id) {
+ public static boolean isSlab(int id) {
return getBlock(id).getMeta().equals("slab");
}
- static boolean fluidCanFlowThere(int thisId, int thatId) {
+ public static boolean fluidCanFlowThere(int thisId, int thatId) {
return thatId == 0 || (!getBlock(thatId).hasCollision() && !isFluid(thatId)) ||
(isWater(thisId) && isWater(thatId) && thisId < thatId) ||
(isLava(thisId) && isLava(thatId) && thisId < thatId);
}
- static Block getBlock(int id) {
+ public static Block getBlock(int id) {
return blocks.getValueAt(id);
}
- static Item getItem(int id) {
+ public static Item getItem(int id) {
return items.getValueAt(id);
}
- static Block getBlock(String key) {
+ public static Block getBlock(String key) {
return blocks.getValueAt(blocksIds.get(key));
}
- static Item getItem(String key) {
+ public static Item getItem(String key) {
return items.getValueAt(itemsIds.get(key));
}
- static int getBlockId(String key) {
+ public static int getBlockId(String key) {
return blocksIds.get(key);
}
- static int getItemId(String key) {
+ public static int getItemId(String key) {
return itemsIds.get(key);
}
- static String getBlockKey(int id) {
+ public static String getBlockKey(int id) {
return blocks.getKeyAt(id);
}
- static String getItemKey(int id) {
+ public static String getItemKey(int id) {
return items.getKeyAt(id);
}
- static int getBlockIdByItemId(int id) {
+ public static int getBlockIdByItemId(int id) {
return getBlockId(items.getKeyAt(id));
}
- static int getBlocksSize() {
+ public static int getBlocksSize() {
return blocks.size;
}
- static int getItemsSize() {
+ public static int getItemsSize() {
return items.size;
}
- static Sprite getBlockTex(int id) {
+ public static Sprite getBlockTex(int id) {
return getBlock(id).getTex();
}
- static Sprite getItemTex(int id) {
+ public static Sprite getItemTex(int id) {
if (items.getValueAt(id).getType().equals("block")) {
return getBlockTex(id);
} else {
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector2;
-import ru.deadsoftware.cavedroid.misc.Assets;
+import ru.deadsoftware.cavedroid.game.GameItems;
import static ru.deadsoftware.cavedroid.GameScreen.GP;
@Override
public void draw(SpriteBatch spriteBatch, float x, float y) {
- spriteBatch.draw(Assets.gravelSprite, x, y);
+ spriteBatch.draw(GameItems.getBlockTex(11), x, y);
}
}
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.math.Vector2;
-import ru.deadsoftware.cavedroid.misc.Assets;
+import ru.deadsoftware.cavedroid.game.GameItems;
import static ru.deadsoftware.cavedroid.GameScreen.GP;
@Override
public void draw(SpriteBatch spriteBatch, float x, float y) {
- spriteBatch.draw(Assets.sandSprite, x, y);
+ spriteBatch.draw(GameItems.getBlockTex(10), x, y);
}
}
private Direction dir;
private boolean dead;
private boolean canJump, flyMode;
+
/**
* @param x in pixels
* @param y in pixels
pigSprite[0][1].setRotation(getAnim());
pigSprite[1][1].setRotation(-getAnim());
//back legs
- pigSprite[1][1].setPosition(x - 4 + (9 - dirMultiplier() * 9), y + 6);
+ pigSprite[1][1].setPosition(x + (9 - dirMultiplier() * 9), y + 12);
pigSprite[1][1].draw(spriteBatch);
- pigSprite[1][1].setPosition(x + 17 - (9 * dirMultiplier()), y + 6);
+ pigSprite[1][1].setPosition(x + 21 - (9 * dirMultiplier()), y + 12);
pigSprite[1][1].draw(spriteBatch);
+ //head & body
+ spriteBatch.draw(Assets.pigSprite[dirMultiplier()][0], x, y);
//front legs
- pigSprite[0][1].setPosition(x - 4 + (9 - dirMultiplier() * 9), y + 6);
+ pigSprite[0][1].setPosition(x + (9 - dirMultiplier() * 9), y + 12);
pigSprite[0][1].draw(spriteBatch);
- pigSprite[0][1].setPosition(x + 17 - (9 * dirMultiplier()), y + 6);
+ pigSprite[0][1].setPosition(x + 21 - (9 * dirMultiplier()), y + 12);
pigSprite[0][1].draw(spriteBatch);
- //head & body
- spriteBatch.draw(Assets.pigSprite[dirMultiplier()][0], x, y);
}
}
public class Player extends Mob {
public final int[] inventory;
- public final int gameMode;
public int slot;
+ public final int gameMode;
public boolean swim;
public Player(int gameMode) {
}
//back hand
- Assets.playerSprite[1][2].setPosition(x - 6, y);
+ Assets.playerSprite[1][2].setPosition(x + 2, y + 8);
Assets.playerSprite[1][2].draw(spriteBatch);
//back leg
- Assets.playerSprite[1][3].setPosition(x - 6, y + 10);
+ Assets.playerSprite[1][3].setPosition(x + 2, y + 20);
Assets.playerSprite[1][3].draw(spriteBatch);
//front leg
- Assets.playerSprite[0][3].setPosition(x - 6, y + 10);
+ Assets.playerSprite[0][3].setPosition(x + 2, y + 20);
Assets.playerSprite[0][3].draw(spriteBatch);
//head
- spriteBatch.draw(Assets.playerSprite[dirMultiplier()][0], x - 2, y - 2);
+ spriteBatch.draw(Assets.playerSprite[dirMultiplier()][0], x, y);
//body
- spriteBatch.draw(Assets.playerSprite[dirMultiplier()][1], x - 2, y + 8);
+ spriteBatch.draw(Assets.playerSprite[dirMultiplier()][1], x + 2, y + 8);
//front hand
- Assets.playerSprite[0][2].setPosition(x - 6, y);
+ Assets.playerSprite[0][2].setPosition(x + 2, y + 8);
Assets.playerSprite[0][2].draw(spriteBatch);
}
public static final HashMap<String, TextureRegion> textureRegions = new HashMap<>();
public static final ArrayMap<String, TouchButton> guiMap = new ArrayMap<>();
private static final GlyphLayout glyphLayout = new GlyphLayout();
- public static Sprite sandSprite;
- public static Sprite gravelSprite;
static BitmapFont minecraftFont;
private static TextureRegion flippedRegion(Texture texture, int x, int y, int width, int height) {
return sprite;
}
- private static void loadPlayer() {
- Texture plTex = new Texture(Gdx.files.internal("mobs/char.png"));
- //LOOK TO LEFT
- //head
- playerSprite[0][0] = flippedSprite(new TextureRegion(plTex, 0, 0, 12, 12));
- //body
- playerSprite[0][1] = flippedSprite(new TextureRegion(plTex, 0, 13, 12, 12));
- //hand
- playerSprite[0][2] = flippedSprite(new TextureRegion(plTex, 25, 5, 20, 20));
- //leg
- playerSprite[0][3] = flippedSprite(new TextureRegion(plTex, 25, 27, 20, 20));
- //LOOK TO RIGHT
- //head
- playerSprite[1][0] = flippedSprite(new TextureRegion(plTex, 13, 0, 12, 12));
- //body
- playerSprite[1][1] = flippedSprite(new TextureRegion(plTex, 13, 13, 12, 12));
- //hand
- playerSprite[1][2] = flippedSprite(new TextureRegion(plTex, 37, 5, 20, 20));
- //leg
- playerSprite[1][3] = flippedSprite(new TextureRegion(plTex, 37, 27, 20, 20));
- }
-
- private static void loadPig() {
- Texture pigTex = new Texture(Gdx.files.internal("mobs/pig.png"));
- pigSprite[0][0] = flippedSprite(new TextureRegion(pigTex, 0, 0, 25, 12));
- pigSprite[1][0] = flippedSprite(new TextureRegion(pigTex, 0, 12, 25, 12));
- pigSprite[0][1] = flippedSprite(new TextureRegion(pigTex, 4, 26, 12, 12));
- pigSprite[1][1] = flippedSprite(new TextureRegion(pigTex, 16, 26, 12, 12));
+ private static void loadMob(Sprite[][] sprite, String mob) {
+ for (int i = 0; i < sprite.length; i++) {
+ for (int j = 0; j < sprite[i].length; j++) {
+ sprite[i][j] = flippedSprite(new Texture(
+ Gdx.files.internal("mobs/" + mob + "/" + i + "_" + j + ".png")));
+ sprite[i][j].setOrigin(sprite[i][j].getWidth() / 2, 0);
+ }
+ }
}
/**
}
public static void load() {
- loadPlayer();
- loadPig();
+ loadMob(playerSprite, "char");
+ loadMob(pigSprite, "pig");
loadJSON();
minecraftFont = new BitmapFont(Gdx.files.internal("font.fnt"), true);
minecraftFont.getData().setScale(.375f);
- sandSprite = flippedSprite(new Texture((Gdx.files.internal("textures/blocks/sand.png"))));
- gravelSprite = flippedSprite(new Texture((Gdx.files.internal("textures/blocks/gravel.png"))));
}
/**