forked from jzitnik/twodcraft
65 lines
2.5 KiB
Java
65 lines
2.5 KiB
Java
package cz.jzitnik.game.items;
|
|
|
|
import cz.jzitnik.game.SpriteLoader;
|
|
import cz.jzitnik.game.Block;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
|
|
public class ItemBlockSupplier {
|
|
// This is necessary to not get infinite recursion
|
|
private static class Helper {
|
|
public static Item dirt(Block ref) {
|
|
return new Item("dirt", "Dirt block", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_DIRT, ref);
|
|
}
|
|
public static Item stone(Block ref) {
|
|
return new Item("stone", "Stone block", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_DIRT, ref);
|
|
}
|
|
public static Item oakLog(Block ref) {
|
|
return new Item("oak_log", "Oak log", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_OAK_LOG, ref);
|
|
}
|
|
public static Item oakPlanks(Block ref) {
|
|
return new Item("oak_log", "Oak planks", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_OAK_PLANKS, ref);
|
|
}
|
|
}
|
|
|
|
public static class Blocks {
|
|
public static Block dirt() {
|
|
var block = new Block("dirt", SpriteLoader.SPRITES.DIRT, 1, ItemType.SHOVEL, new ArrayList<>());
|
|
block.setDrops(List.of(Helper.dirt(block)));
|
|
return block;
|
|
}
|
|
public static Block grass() {
|
|
var block = new Block("grass", SpriteLoader.SPRITES.GRASS, 1, ItemType.SHOVEL, new ArrayList<>());
|
|
block.setDrops(List.of(Items.dirt()));
|
|
return block;
|
|
}
|
|
public static Block stone() {
|
|
var block = new Block("stone", SpriteLoader.SPRITES.STONE, 15, ItemType.PICKAXE, Arrays.stream(ToolVariant.values()).toList());
|
|
block.setDrops(List.of(Helper.stone(block)));
|
|
return block;
|
|
}
|
|
public static Block oakLog() {
|
|
var block = new Block("oak_log", SpriteLoader.SPRITES.OAK_LOG, 3, ItemType.AXE, new ArrayList<>());
|
|
block.setDrops(List.of(Helper.oakLog(block)));
|
|
return block;
|
|
}
|
|
public static Block oakPlanks() {
|
|
var block = new Block("oak_planks", SpriteLoader.SPRITES.OAK_PLANKS, 3, ItemType.AXE, new ArrayList<>());
|
|
block.setDrops(List.of(Helper.oakPlanks(block)));
|
|
return block;
|
|
}
|
|
}
|
|
|
|
// I hate this but whatever
|
|
public static class Items {
|
|
public static Item dirt() {
|
|
return Helper.dirt(Blocks.dirt());
|
|
}
|
|
public static Item oakPlanks() {
|
|
return Helper.oakPlanks(Blocks.oakPlanks());
|
|
}
|
|
}
|
|
}
|