diff --git a/core/src/ru/deadsoftware/cavedroid/game/GameItems.java b/core/src/ru/deadsoftware/cavedroid/game/GameItems.java
index 7a619b30748da834cdd003dcf4a7da2362b94979..56a2b5860eb6df91ef1691207e37e80d631491d7 100644 (file)
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
+import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.utils.ArrayMap;
import com.badlogic.gdx.utils.GdxRuntimeException;
import com.badlogic.gdx.utils.JsonValue;
import ru.deadsoftware.cavedroid.game.objects.Item;
import ru.deadsoftware.cavedroid.misc.Assets;
import ru.deadsoftware.cavedroid.misc.utils.AssetLoader;
+import ru.deadsoftware.cavedroid.misc.utils.SpriteOrigin;
import java.util.HashMap;
new Texture(assetLoader.getAssetHandle("textures/blocks/" + tex + ".png"));
boolean animated = Assets.getBooleanFromJson(block, "animated", false);
int frames = Assets.getIntFromJson(block, "frames", 0);
+ int id = blocks.size;
+ blocksIds.put(key, id);
Block newBlock = new Block(
+ id,
left,
top,
right,
clipWidth,
clipHeight
);
-
- blocksIds.put(key, blocks.size);
blocks.put(key, newBlock);
} catch (GdxRuntimeException e) {
Gdx.app.error(TAG, e.getMessage());
String texture = Assets.getStringFromJson(item, "texture", key);
Sprite sprite = type.equals("block") ? null :
new Sprite(new Texture(assetLoader.getAssetHandle("textures/items/" + texture + ".png")));
- itemsIds.put(key, items.size);
- items.put(key, new Item(name, type, sprite));
+
+ float originX = Assets.getFloatFromJson(item, "origin_x", 0f);
+ float originY = Assets.getFloatFromJson(item, "origin_y", 1f);
+ originX = MathUtils.clamp(originX, 0f, 1f);
+ originY = MathUtils.clamp(originY, 0f, 1f);
+ SpriteOrigin origin = new SpriteOrigin(originX, originY);
+
+ int id = items.size;
+ itemsIds.put(key, id);
+ items.put(key, new Item(id, name, type, sprite, origin));
} catch (GdxRuntimeException e) {
Gdx.app.error(TAG, e.getMessage());
}