diff --git a/src/main/java/cz/jzitnik/game/SpriteLoader.java b/src/main/java/cz/jzitnik/game/SpriteLoader.java index fc86c2c..92cc201 100644 --- a/src/main/java/cz/jzitnik/game/SpriteLoader.java +++ b/src/main/java/cz/jzitnik/game/SpriteLoader.java @@ -27,6 +27,7 @@ public class SpriteLoader { OAK_DOOR, OBSIDIAN, SAND, + HAYBALE, // Flowers etc GRASS_BUSH, @@ -97,6 +98,7 @@ public class SpriteLoader { ITEM_WOOL, ITEM_OBSIDIAN, ITEM_SAND, + ITEM_HAYBALE, // Tall Flowers ITEM_LILAC, @@ -198,6 +200,7 @@ public class SpriteLoader { SPRITES_MAP.put(SPRITES.COBBLESTONE, new SimpleSprite("cobblestone.ans")); SPRITES_MAP.put(SPRITES.OBSIDIAN, new SimpleSprite("obsidian.ans")); SPRITES_MAP.put(SPRITES.SAND, new SimpleSprite("sand.ans")); + SPRITES_MAP.put(SPRITES.HAYBALE, new SimpleSprite("haybale.ans")); // Ores SPRITES_MAP.put(SPRITES.COAL_ORE, new SimpleSprite("coal_ore.ans")); @@ -276,6 +279,7 @@ public class SpriteLoader { SPRITES_MAP.put(SPRITES.ITEM_WOOL, new WoolItem()); SPRITES_MAP.put(SPRITES.ITEM_OBSIDIAN, new SimpleSprite("items/obsidian.ans")); SPRITES_MAP.put(SPRITES.ITEM_SAND, new SimpleSprite("items/sand.ans")); + SPRITES_MAP.put(SPRITES.ITEM_HAYBALE, new SimpleSprite("items/haybale.ans")); // Tall flowers SPRITES_MAP.put(SPRITES.ITEM_LILAC, new SimpleSprite("items/lilac.ans")); diff --git a/src/main/java/cz/jzitnik/game/crafting/recipes/blocks/HaybaleRecipe.java b/src/main/java/cz/jzitnik/game/crafting/recipes/blocks/HaybaleRecipe.java new file mode 100644 index 0000000..839c56f --- /dev/null +++ b/src/main/java/cz/jzitnik/game/crafting/recipes/blocks/HaybaleRecipe.java @@ -0,0 +1,14 @@ +package cz.jzitnik.game.crafting.recipes.blocks; + +import cz.jzitnik.game.annotations.CraftingRecipeRegistry; + +@CraftingRecipeRegistry( + recipe = { + "wheat", "wheat", "wheat", + "wheat", "wheat", "wheat", + "wheat", "wheat", "wheat" + }, + result = "haybale", + amount = 1 +) +public class HaybaleRecipe {} diff --git a/src/main/java/cz/jzitnik/game/crafting/recipes/blocks/WheatRecipe.java b/src/main/java/cz/jzitnik/game/crafting/recipes/blocks/WheatRecipe.java new file mode 100644 index 0000000..cfb75ab --- /dev/null +++ b/src/main/java/cz/jzitnik/game/crafting/recipes/blocks/WheatRecipe.java @@ -0,0 +1,14 @@ +package cz.jzitnik.game.crafting.recipes.blocks; + +import cz.jzitnik.game.annotations.CraftingRecipeRegistry; + +@CraftingRecipeRegistry( + recipe = { + "haybale", "_", "_", + "_", "_", "_", + "_", "_", "_" + }, + result = "wheat", + amount = 9 +) +public class WheatRecipe {} diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/HaybaleBlock.java b/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/HaybaleBlock.java new file mode 100644 index 0000000..4137dc6 --- /dev/null +++ b/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/HaybaleBlock.java @@ -0,0 +1,15 @@ +package cz.jzitnik.game.entities.items.registry.blocks.blocks; + +import cz.jzitnik.game.SpriteLoader; +import cz.jzitnik.game.annotations.BlockRegistry; +import cz.jzitnik.game.entities.Block; +import cz.jzitnik.game.entities.items.ItemType; + +import java.util.ArrayList; + +@BlockRegistry("haybale") +public class HaybaleBlock extends Block { + public HaybaleBlock() { + super("haybale", SpriteLoader.SPRITES.HAYBALE, 3, ItemType.HOE, new ArrayList<>()); + } +} diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/blocks/HaybaleItem.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/blocks/HaybaleItem.java new file mode 100644 index 0000000..4ef1eba --- /dev/null +++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/blocks/HaybaleItem.java @@ -0,0 +1,13 @@ +package cz.jzitnik.game.entities.items.registry.items.blocks; + +import cz.jzitnik.game.SpriteLoader; +import cz.jzitnik.game.annotations.ItemRegistry; +import cz.jzitnik.game.entities.items.Item; +import cz.jzitnik.game.entities.items.ItemType; + +@ItemRegistry("haybale") +public class HaybaleItem extends Item { + public HaybaleItem() { + super("haybale", "Haybale", ItemType.BLOCK, SpriteLoader.SPRITES.ITEM_HAYBALE); + } +} diff --git a/src/main/java/cz/jzitnik/game/generation/Generation.java b/src/main/java/cz/jzitnik/game/generation/Generation.java index f9f48d6..cb4408e 100644 --- a/src/main/java/cz/jzitnik/game/generation/Generation.java +++ b/src/main/java/cz/jzitnik/game/generation/Generation.java @@ -1,6 +1,8 @@ package cz.jzitnik.game.generation; import cz.jzitnik.game.entities.Block; +import cz.jzitnik.game.entities.items.InventoryItem; +import cz.jzitnik.game.entities.items.ItemBlockSupplier; import cz.jzitnik.game.Game; import cz.jzitnik.game.SpriteLoader; import cz.jzitnik.game.sprites.Steve; @@ -32,6 +34,10 @@ public class Generation { // Spawn player at a valid starting point world[terrainHeight[256] - 1][256].add(steveBlock2); world[terrainHeight[256] - 2][256].add(steveBlock); + + game.getInventory().addItem(new InventoryItem(9, ItemBlockSupplier.getItem("wheat"))); + game.getInventory().addItem(ItemBlockSupplier.getItem("crafting_table")); + game.getInventory().addItem(ItemBlockSupplier.getItem("haybale")); } private static void initializeWorld(List[][] world) { diff --git a/src/main/resources/textures/haybale.ans b/src/main/resources/textures/haybale.ans new file mode 100644 index 0000000..915eb9e --- /dev/null +++ b/src/main/resources/textures/haybale.ans @@ -0,0 +1,25 @@ +                       +                   +                     +              +               +      +    +               +                    +                  +                 +                   +                   +                     +                  +               +                   +     +     +             +              +                 +                       +                    +                    diff --git a/src/main/resources/textures/items/haybale.ans b/src/main/resources/textures/items/haybale.ans new file mode 100644 index 0000000..4dffc95 --- /dev/null +++ b/src/main/resources/textures/items/haybale.ans @@ -0,0 +1,25 @@ +                                                  +                                             +                                          +                                     +                                 +                             +                        +                           +                       +                           +                          +                         +                           +                          +                        +                           +                          +                      +                          +                              +                                  +                                   +                                          +                                              +