From 17e3850e037698645c37ef9f0ca672622c7fe018 Mon Sep 17 00:00:00 2001
From: jull <sefljulie@gmail.com>
Date: Sun, 2 Mar 2025 18:02:56 +0100
Subject: [PATCH] chore: buckets

---
 .../java/cz/jzitnik/game/SpriteLoader.java    | 116 ++++++++++--------
 .../game/crafting/recipes/BucketRecipe.java   |  14 +++
 .../items/registry/items/BucketItem.java      |  13 ++
 .../items/registry/items/LavaBucketItem.java  |  13 ++
 .../items/registry/items/MilkBucketItem.java  |  13 ++
 .../items/registry/items/WaterBucketItem.java |  13 ++
 .../cz/jzitnik/game/smelting/Smelting.java    |   1 +
 src/main/resources/textures/items/bucket.ans  |  25 ++++
 .../resources/textures/items/lava_bucket.ans  |  25 ++++
 .../resources/textures/items/milk_bucket.ans  |  25 ++++
 .../resources/textures/items/water_bucket.ans |  25 ++++
 11 files changed, 229 insertions(+), 54 deletions(-)
 create mode 100644 src/main/java/cz/jzitnik/game/crafting/recipes/BucketRecipe.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/BucketItem.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/LavaBucketItem.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/MilkBucketItem.java
 create mode 100644 src/main/java/cz/jzitnik/game/entities/items/registry/items/WaterBucketItem.java
 create mode 100644 src/main/resources/textures/items/bucket.ans
 create mode 100644 src/main/resources/textures/items/lava_bucket.ans
 create mode 100644 src/main/resources/textures/items/milk_bucket.ans
 create mode 100644 src/main/resources/textures/items/water_bucket.ans

diff --git a/src/main/java/cz/jzitnik/game/SpriteLoader.java b/src/main/java/cz/jzitnik/game/SpriteLoader.java
index d3013e2..eb5fa67 100644
--- a/src/main/java/cz/jzitnik/game/SpriteLoader.java
+++ b/src/main/java/cz/jzitnik/game/SpriteLoader.java
@@ -26,12 +26,11 @@ public class SpriteLoader {
 
         // Ores
         COAL_ORE,
-        IRON_ORE, // NEWW
-        GOLD_ORE, //NEWW
-        COAL_BLOCK, // NEWW
-        IRON_BLOCK, // NEWW
-        GOLD_BLOCK, // NEWW
-
+        IRON_ORE,
+        GOLD_ORE,
+        COAL_BLOCK,
+        IRON_BLOCK,
+        GOLD_BLOCK,
         // Work
         FURNACE,
         CHEST,
@@ -65,17 +64,17 @@ public class SpriteLoader {
         ITEM_WOOL,
 
         // Ore Items
-        ITEM_COAL_ORE,//NEWWW
-        ITEM_IRON_ORE, //NEWWW
-        ITEM_GOLD_ORE, // NEWW
+        ITEM_COAL_ORE,
+        ITEM_IRON_ORE,
+        ITEM_GOLD_ORE,
 
-        ITEM_COAL_BLOCK, // NEWW
-        ITEM_IRON_BLOCK, //NEWWW
-        ITEM_GOLD_BLOCK, // NEWW
+        ITEM_COAL_BLOCK,
+        ITEM_IRON_BLOCK,
+        ITEM_GOLD_BLOCK,
 
-        COAL, // NEWW
-        ITEM_IRON_INGOT, //NEWW
-        ITEM_GOLD_INGOT, // NEWW
+        COAL,
+        ITEM_IRON_INGOT,
+        ITEM_GOLD_INGOT,
 
         // Work Items
         ITEM_CRAFTING_TABLE,
@@ -83,30 +82,35 @@ public class SpriteLoader {
         ITEM_FURNACE,
         ITEM_BED,
 
-        // Weapons
-        WOODEN_SWORD, //NEWWW
+        // Tools
+        WOODEN_SWORD,
         WOODEN_PICKAXE,
         WOODEN_AXE,
         WOODEN_SHOVEL,
-        WOODEN_HOE, //NEWW
+        WOODEN_HOE,
 
-        STONE_SWORD,//NEWWW
+        STONE_SWORD,
         STONE_PICKAXE,
         STONE_AXE,
         STONE_SHOVEL,
-        STONE_HOE, //NEWW
+        STONE_HOE,
 
-        IRON_SWORD, //NEWWW
-        IRON_PICKAXE, //NEWWW
-        IRON_AXE, // NEWW
-        IRON_SHOVEL, //NEWWW
-        IRON_HOE, // NEWWW
+        IRON_SWORD,
+        IRON_PICKAXE,
+        IRON_AXE,
+        IRON_SHOVEL,
+        IRON_HOE,
 
-        GOLDEN_SWORD, // NEWW
-        GOLDEN_PICKAXE, // NEWWW
-        GOLDEN_AXE, //NEWWW
-        GOLDEN_SHOVEL, //NEWWW
-        GOLDEN_HOE, // NEWW
+        BUCKET,
+        WATER_BUCKET,
+        LAVA_BUCKET,
+        MILK_BUCKET,
+
+        GOLDEN_SWORD,
+        GOLDEN_PICKAXE,
+        GOLDEN_AXE,
+        GOLDEN_SHOVEL,
+        GOLDEN_HOE,
 
         // Food
         ITEM_PORKCHOP,
@@ -177,17 +181,17 @@ public class SpriteLoader {
         SPRITES_MAP.put(SPRITES.ITEM_WOOL, new WoolItem());
 
         // Ore Items
-        SPRITES_MAP.put(SPRITES.ITEM_COAL_ORE, new SimpleSprite("items/coal_ore.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.ITEM_IRON_ORE, new SimpleSprite("items/iron_ore.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.ITEM_GOLD_ORE, new SimpleSprite("items/gold_ore.ans")); //NEWWW
+        SPRITES_MAP.put(SPRITES.ITEM_COAL_ORE, new SimpleSprite("items/coal_ore.ans"));
+        SPRITES_MAP.put(SPRITES.ITEM_IRON_ORE, new SimpleSprite("items/iron_ore.ans"));
+        SPRITES_MAP.put(SPRITES.ITEM_GOLD_ORE, new SimpleSprite("items/gold_ore.ans"));
 
-        SPRITES_MAP.put(SPRITES.ITEM_COAL_BLOCK, new SimpleSprite("items/coal_block.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.ITEM_IRON_BLOCK, new SimpleSprite("items/iron_block.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.ITEM_GOLD_BLOCK, new SimpleSprite("items/gold_block.ans")); //NEWWW
+        SPRITES_MAP.put(SPRITES.ITEM_COAL_BLOCK, new SimpleSprite("items/coal_block.ans"));
+        SPRITES_MAP.put(SPRITES.ITEM_IRON_BLOCK, new SimpleSprite("items/iron_block.ans"));
+        SPRITES_MAP.put(SPRITES.ITEM_GOLD_BLOCK, new SimpleSprite("items/gold_block.ans"));
 
-        SPRITES_MAP.put(SPRITES.COAL, new SimpleSprite("items/coal.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.ITEM_IRON_INGOT, new SimpleSprite("items/iron_ingot.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.ITEM_GOLD_INGOT, new SimpleSprite("items/gold_ingot.ans")); //NEWWW
+        SPRITES_MAP.put(SPRITES.COAL, new SimpleSprite("items/coal.ans"));
+        SPRITES_MAP.put(SPRITES.ITEM_IRON_INGOT, new SimpleSprite("items/iron_ingot.ans"));
+        SPRITES_MAP.put(SPRITES.ITEM_GOLD_INGOT, new SimpleSprite("items/gold_ingot.ans"));
 
         // Work Items
         SPRITES_MAP.put(SPRITES.ITEM_CRAFTING_TABLE, new SimpleSprite("items/crafting_table.ans"));
@@ -195,30 +199,34 @@ public class SpriteLoader {
         SPRITES_MAP.put(SPRITES.ITEM_FURNACE, new SimpleSprite("items/furnace.ans"));
         SPRITES_MAP.put(SPRITES.ITEM_BED, new SimpleSprite("items/bed.ans"));
 
-        // Weapons
-        SPRITES_MAP.put(SPRITES.WOODEN_SWORD, new SimpleSprite("items/wooden_sword.ans")); //NEWWW
+        // Tools
+        SPRITES_MAP.put(SPRITES.WOODEN_SWORD, new SimpleSprite("items/wooden_sword.ans"));
         SPRITES_MAP.put(SPRITES.WOODEN_PICKAXE, new SimpleSprite("items/wooden_pickaxe.ans"));
         SPRITES_MAP.put(SPRITES.WOODEN_AXE, new SimpleSprite("items/wooden_axe.ans"));
         SPRITES_MAP.put(SPRITES.WOODEN_SHOVEL, new SimpleSprite("items/wooden_shovel.ans"));
-        SPRITES_MAP.put(SPRITES.WOODEN_HOE, new SimpleSprite("items/wooden_hoe.ans")); //NEWWW
+        SPRITES_MAP.put(SPRITES.WOODEN_HOE, new SimpleSprite("items/wooden_hoe.ans"));
 
-        SPRITES_MAP.put(SPRITES.STONE_SWORD, new SimpleSprite("items/wooden_sword.ans")); //NEWWW
+        SPRITES_MAP.put(SPRITES.STONE_SWORD, new SimpleSprite("items/wooden_sword.ans"));
         SPRITES_MAP.put(SPRITES.STONE_PICKAXE, new SimpleSprite("items/stone_pickaxe.ans"));
         SPRITES_MAP.put(SPRITES.STONE_AXE, new SimpleSprite("items/stone_axe.ans"));
         SPRITES_MAP.put(SPRITES.STONE_SHOVEL, new SimpleSprite("items/stone_shovel.ans"));
-        SPRITES_MAP.put(SPRITES.STONE_HOE, new SimpleSprite("items/stone_hoe.ans")); //NEWWW
+        SPRITES_MAP.put(SPRITES.STONE_HOE, new SimpleSprite("items/stone_hoe.ans"));
 
-        SPRITES_MAP.put(SPRITES.IRON_SWORD, new SimpleSprite("items/iron_sword.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.IRON_PICKAXE, new SimpleSprite("items/iron_pickaxe.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.IRON_AXE, new SimpleSprite("items/iron_axe.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.IRON_SHOVEL, new SimpleSprite("items/iron_shovel.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.IRON_HOE, new SimpleSprite("items/iron_hoe.ans")); //NEWWW
+        SPRITES_MAP.put(SPRITES.IRON_SWORD, new SimpleSprite("items/iron_sword.ans"));
+        SPRITES_MAP.put(SPRITES.IRON_PICKAXE, new SimpleSprite("items/iron_pickaxe.ans"));
+        SPRITES_MAP.put(SPRITES.IRON_AXE, new SimpleSprite("items/iron_axe.ans"));
+        SPRITES_MAP.put(SPRITES.IRON_SHOVEL, new SimpleSprite("items/iron_shovel.ans"));
+        SPRITES_MAP.put(SPRITES.IRON_HOE, new SimpleSprite("items/iron_hoe.ans"));
+        SPRITES_MAP.put(SPRITES.GOLDEN_SWORD, new SimpleSprite("items/golden_sword.ans"));
+        SPRITES_MAP.put(SPRITES.GOLDEN_PICKAXE, new SimpleSprite("items/golden_pickaxe.ans"));
+        SPRITES_MAP.put(SPRITES.GOLDEN_AXE, new SimpleSprite("items/golden_axe.ans"));
+        SPRITES_MAP.put(SPRITES.GOLDEN_SHOVEL, new SimpleSprite("items/golden_shovel.ans"));
+        SPRITES_MAP.put(SPRITES.GOLDEN_HOE, new SimpleSprite("items/golden_hoe.ans"));
 
-        SPRITES_MAP.put(SPRITES.GOLDEN_SWORD, new SimpleSprite("items/golden_sword.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.GOLDEN_PICKAXE, new SimpleSprite("items/golden_pickaxe.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.GOLDEN_AXE, new SimpleSprite("items/golden_axe.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.GOLDEN_SHOVEL, new SimpleSprite("items/golden_shovel.ans")); //NEWWW
-        SPRITES_MAP.put(SPRITES.GOLDEN_HOE, new SimpleSprite("items/golden_hoe.ans")); //NEWWW
+        SPRITES_MAP.put(SPRITES.BUCKET, new SimpleSprite("items/bucket.ans"));
+        SPRITES_MAP.put(SPRITES.WATER_BUCKET, new SimpleSprite("items/water_bucket.ans"));
+        SPRITES_MAP.put(SPRITES.LAVA_BUCKET, new SimpleSprite("items/lava_bucket.ans"));
+        SPRITES_MAP.put(SPRITES.MILK_BUCKET, new SimpleSprite("items/milk_bucket.ans"));
 
         // Food
         SPRITES_MAP.put(SPRITES.ITEM_PORKCHOP, new SimpleSprite("items/porkchop.ans"));
diff --git a/src/main/java/cz/jzitnik/game/crafting/recipes/BucketRecipe.java b/src/main/java/cz/jzitnik/game/crafting/recipes/BucketRecipe.java
new file mode 100644
index 0000000..637cea3
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/crafting/recipes/BucketRecipe.java
@@ -0,0 +1,14 @@
+package cz.jzitnik.game.crafting.recipes;
+
+import cz.jzitnik.game.annotations.CraftingRecipeRegistry;
+
+@CraftingRecipeRegistry(
+        recipe = {
+                "iron_ingot", "_", "iron_ingot",
+                "_", "iron_ingot", "_",
+                "_", "_", "_"
+        },
+        result = "bucket",
+        amount = 1
+)
+public class BucketRecipe {}
\ No newline at end of file
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/BucketItem.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/BucketItem.java
new file mode 100644
index 0000000..3efd230
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/BucketItem.java
@@ -0,0 +1,13 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+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("bucket")
+public class BucketItem extends Item {
+    public BucketItem() {
+        super("bucket", "Bucket", ItemType.USELESS_ITEM, SpriteLoader.SPRITES.BUCKET);
+    }
+}
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/LavaBucketItem.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/LavaBucketItem.java
new file mode 100644
index 0000000..7442442
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/LavaBucketItem.java
@@ -0,0 +1,13 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+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("lava_bucket")
+public class LavaBucketItem extends Item {
+    public LavaBucketItem() {
+        super("lava_bucket", "Lava bucket", ItemType.USELESS_ITEM, SpriteLoader.SPRITES.LAVA_BUCKET);
+    }
+}
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/MilkBucketItem.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/MilkBucketItem.java
new file mode 100644
index 0000000..82aef38
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/MilkBucketItem.java
@@ -0,0 +1,13 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+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("milk_bucket")
+public class MilkBucketItem extends Item {
+    public MilkBucketItem() {
+        super("milk_bucket", "Milk bucket", ItemType.USELESS_ITEM, SpriteLoader.SPRITES.MILK_BUCKET);
+    }
+}
diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/WaterBucketItem.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/WaterBucketItem.java
new file mode 100644
index 0000000..6e3c909
--- /dev/null
+++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/WaterBucketItem.java
@@ -0,0 +1,13 @@
+package cz.jzitnik.game.entities.items.registry.items;
+
+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("water_bucket")
+public class WaterBucketItem extends Item {
+    public WaterBucketItem() {
+        super("water_bucket", "Water bucket", ItemType.USELESS_ITEM, SpriteLoader.SPRITES.WATER_BUCKET);
+    }
+}
diff --git a/src/main/java/cz/jzitnik/game/smelting/Smelting.java b/src/main/java/cz/jzitnik/game/smelting/Smelting.java
index c064dcb..e7af149 100644
--- a/src/main/java/cz/jzitnik/game/smelting/Smelting.java
+++ b/src/main/java/cz/jzitnik/game/smelting/Smelting.java
@@ -31,5 +31,6 @@ public class Smelting {
         fuelList.put("wooden_shovel", 1.0);
         fuelList.put("wooden_hoe", 1.0);
         fuelList.put("stick", 0.5);
+        fuelList.put("lava_bucket", 100.0);
     }
 }
diff --git a/src/main/resources/textures/items/bucket.ans b/src/main/resources/textures/items/bucket.ans
new file mode 100644
index 0000000..654a0b2
--- /dev/null
+++ b/src/main/resources/textures/items/bucket.ans
@@ -0,0 +1,25 @@
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
diff --git a/src/main/resources/textures/items/lava_bucket.ans b/src/main/resources/textures/items/lava_bucket.ans
new file mode 100644
index 0000000..9ce0869
--- /dev/null
+++ b/src/main/resources/textures/items/lava_bucket.ans
@@ -0,0 +1,25 @@
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
diff --git a/src/main/resources/textures/items/milk_bucket.ans b/src/main/resources/textures/items/milk_bucket.ans
new file mode 100644
index 0000000..80d7494
--- /dev/null
+++ b/src/main/resources/textures/items/milk_bucket.ans
@@ -0,0 +1,25 @@
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
diff --git a/src/main/resources/textures/items/water_bucket.ans b/src/main/resources/textures/items/water_bucket.ans
new file mode 100644
index 0000000..bd2f762
--- /dev/null
+++ b/src/main/resources/textures/items/water_bucket.ans
@@ -0,0 +1,25 @@
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+                                                  
+