diff --git a/README.md b/README.md index f022edb..d1b5ddb 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,27 @@ -# BobaCraft +# [BobaCraft](https://www.curseforge.com/minecraft/mc-mods/bobacraft) > Satisfy your boba cravings in Minecraft! +View the Wiki for crafting recipes and information! + ### Setup 1. Requirements: `JDK 8` 2. Clone this repo: `git clone https://github.com/brandonlou/BobaCraft.git` 3. Open `IntelliJ`. Import the project by selecting `build.gradle`. -2. Gradle will automatically download dependencies. Once that is complete, run `./gradlew genIntellijRuns`. +2. Gradle will automatically download dependencies. Once that is complete, run `./gradlew genIntellijRuns`. Replce `./gradlew` with `gradlew` if on Windows. ### Testing -1. Run `./gradlew runClient` (Mac/Linux) or `gradlew runClient` (Windows). +1. Run `./gradlew runClient`. 2. All Minecraft game files will be stored in the `run` directory (useful if you want to look at crash reports, screenshots, etc). ### Building -1. Run `./gradlew build`. +1. Run `./gradlew build --warning-mode all`. 2. The mod jar file will be located in `build/libs`. 3. Rename the jar file appropriately. ## Possible Features * Better pixel art -* Boba ball crafting from scratch (growing tapioca, etc) +* ~~Boba ball crafting from scratch (growing tapioca, etc)~~ * Boba straw colors * Different toppings (grass jelly, etc.) diff --git a/src/main/java/com/blou/bobacraft/blockitems/BlackMilkTeaItem.java b/src/main/java/com/blou/bobacraft/blockitems/BlackMilkTeaItem.java index 41ee23c..c466e74 100644 --- a/src/main/java/com/blou/bobacraft/blockitems/BlackMilkTeaItem.java +++ b/src/main/java/com/blou/bobacraft/blockitems/BlackMilkTeaItem.java @@ -1,6 +1,5 @@ package com.blou.bobacraft.blockitems; -import com.blou.bobacraft.BobaCraft; import net.minecraft.block.Block; import net.minecraft.item.ItemGroup; import net.minecraft.potion.EffectInstance; diff --git a/src/main/java/com/blou/bobacraft/blockitems/JasmineMilkTeaItem.java b/src/main/java/com/blou/bobacraft/blockitems/JasmineMilkTeaItem.java index 99d8cdc..d61c206 100644 --- a/src/main/java/com/blou/bobacraft/blockitems/JasmineMilkTeaItem.java +++ b/src/main/java/com/blou/bobacraft/blockitems/JasmineMilkTeaItem.java @@ -1,6 +1,5 @@ package com.blou.bobacraft.blockitems; -import com.blou.bobacraft.BobaCraft; import net.minecraft.block.Block; import net.minecraft.item.ItemGroup; import net.minecraft.potion.EffectInstance; diff --git a/src/main/java/com/blou/bobacraft/blockitems/StrawberryMilkTeaItem.java b/src/main/java/com/blou/bobacraft/blockitems/StrawberryMilkTeaItem.java index e60c283..64f3cab 100644 --- a/src/main/java/com/blou/bobacraft/blockitems/StrawberryMilkTeaItem.java +++ b/src/main/java/com/blou/bobacraft/blockitems/StrawberryMilkTeaItem.java @@ -1,6 +1,5 @@ package com.blou.bobacraft.blockitems; -import com.blou.bobacraft.BobaCraft; import net.minecraft.block.Block; import net.minecraft.item.ItemGroup; import net.minecraft.potion.EffectInstance; diff --git a/src/main/java/com/blou/bobacraft/blockitems/TaroMilkTeaItem.java b/src/main/java/com/blou/bobacraft/blockitems/TaroMilkTeaItem.java index d051b07..2a0a3b2 100644 --- a/src/main/java/com/blou/bobacraft/blockitems/TaroMilkTeaItem.java +++ b/src/main/java/com/blou/bobacraft/blockitems/TaroMilkTeaItem.java @@ -1,6 +1,5 @@ package com.blou.bobacraft.blockitems; -import com.blou.bobacraft.BobaCraft; import net.minecraft.block.Block; import net.minecraft.item.ItemGroup; import net.minecraft.potion.EffectInstance; diff --git a/src/main/java/com/blou/bobacraft/blockitems/ThaiMilkTeaItem.java b/src/main/java/com/blou/bobacraft/blockitems/ThaiMilkTeaItem.java index 7d15c67..8b1879e 100644 --- a/src/main/java/com/blou/bobacraft/blockitems/ThaiMilkTeaItem.java +++ b/src/main/java/com/blou/bobacraft/blockitems/ThaiMilkTeaItem.java @@ -1,6 +1,5 @@ package com.blou.bobacraft.blockitems; -import com.blou.bobacraft.BobaCraft; import net.minecraft.block.Block; import net.minecraft.item.ItemGroup; import net.minecraft.potion.EffectInstance; diff --git a/src/main/java/com/blou/bobacraft/blocks/BobaBlockBase.java b/src/main/java/com/blou/bobacraft/blocks/BobaBlockBase.java index 925af00..81bc209 100644 --- a/src/main/java/com/blou/bobacraft/blocks/BobaBlockBase.java +++ b/src/main/java/com/blou/bobacraft/blocks/BobaBlockBase.java @@ -23,8 +23,8 @@ public abstract class BobaBlockBase extends DirectionalBlock { - private static final float HARDNESS_AND_RESISTANCE = 0.3f; - private static final float LIGHT_VALUE = 0.5f; + private static final float hardnessAndResistance = 0.3f; + private static final float lightValue = 0.5f; private static final VoxelShape NORTH = Stream.of( Block.makeCuboidShape(5.75, 6, 10.25, 10.25, 9, 10.5), @@ -93,7 +93,7 @@ public abstract class BobaBlockBase extends DirectionalBlock { public BobaBlockBase() { super(AbstractBlock.Properties .create(Material.ICE) - .hardnessAndResistance(HARDNESS_AND_RESISTANCE) + .hardnessAndResistance(hardnessAndResistance) .sound(SoundType.SNOW) .notSolid() .variableOpacity() @@ -144,6 +144,7 @@ public BlockState rotate(BlockState state, Rotation rot) { return state.with(FACING, rot.rotate(state.get(FACING))); } + @Deprecated @Override @Nonnull public BlockState mirror(BlockState state, Mirror mirrorIn) { return state.rotate(mirrorIn.toRotation(state.get(FACING))); @@ -157,7 +158,7 @@ protected void fillStateContainer(StateContainer.Builder buil @Override @ParametersAreNonnullByDefault public float getAmbientOcclusionLightValue(BlockState state, IBlockReader worldIn, BlockPos pos) { - return LIGHT_VALUE; + return lightValue; } @Override @Nonnull diff --git a/src/main/java/com/blou/bobacraft/blocks/CassavaCropBlock.java b/src/main/java/com/blou/bobacraft/blocks/CassavaCropBlock.java index b98ba23..2ff67e6 100644 --- a/src/main/java/com/blou/bobacraft/blocks/CassavaCropBlock.java +++ b/src/main/java/com/blou/bobacraft/blocks/CassavaCropBlock.java @@ -1,6 +1,5 @@ package com.blou.bobacraft.blocks; -import com.blou.bobacraft.BobaCraft; import com.blou.bobacraft.init.ModItems; import net.minecraft.block.*; import net.minecraft.block.material.Material; @@ -11,6 +10,8 @@ import net.minecraft.util.math.shapes.VoxelShape; import net.minecraft.world.IBlockReader; +import javax.annotation.ParametersAreNonnullByDefault; + public class CassavaCropBlock extends CropsBlock { private final ItemGroup itemGroup; @@ -48,7 +49,9 @@ protected IItemProvider getSeedsItem() { } @Override + @ParametersAreNonnullByDefault public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { return shapeByAge[state.get(this.getAgeProperty())]; } + } diff --git a/src/main/java/com/blou/bobacraft/blocks/GreenMilkTeaBlock.java b/src/main/java/com/blou/bobacraft/blocks/GreenMilkTeaBlock.java index 3b89b2d..846db2b 100644 --- a/src/main/java/com/blou/bobacraft/blocks/GreenMilkTeaBlock.java +++ b/src/main/java/com/blou/bobacraft/blocks/GreenMilkTeaBlock.java @@ -2,6 +2,6 @@ public class GreenMilkTeaBlock extends BobaBlockBase { - public GreenMilkTeaBlock() {}; + public GreenMilkTeaBlock() {} } diff --git a/src/main/java/com/blou/bobacraft/init/ModBlocks.java b/src/main/java/com/blou/bobacraft/init/ModBlocks.java index 1baa5fd..f019fcc 100644 --- a/src/main/java/com/blou/bobacraft/init/ModBlocks.java +++ b/src/main/java/com/blou/bobacraft/init/ModBlocks.java @@ -1,6 +1,5 @@ package com.blou.bobacraft.init; -import com.blou.bobacraft.BobaCraft; import com.blou.bobacraft.blocks.*; import net.minecraft.block.Block; import net.minecraft.item.ItemGroup; diff --git a/src/main/java/com/blou/bobacraft/init/ModItems.java b/src/main/java/com/blou/bobacraft/init/ModItems.java index 7729d65..7e3871a 100644 --- a/src/main/java/com/blou/bobacraft/init/ModItems.java +++ b/src/main/java/com/blou/bobacraft/init/ModItems.java @@ -1,8 +1,8 @@ package com.blou.bobacraft.init; -import com.blou.bobacraft.BobaCraft; import com.blou.bobacraft.blockitems.*; import com.blou.bobacraft.items.BobaBallItem; +import com.blou.bobacraft.items.BobaPopsicleItem; import com.blou.bobacraft.items.CassavaRootItem; import com.blou.bobacraft.items.TapiocaStarchItem; import net.minecraft.item.BlockItem; @@ -36,6 +36,7 @@ private ModItems(ItemGroup itemGroup, String modID) { items.register("cassava_root_item", () -> new CassavaRootItem(itemGroup)); items.register("tapioca_starch_item", () -> new TapiocaStarchItem(itemGroup)); items.register("boba_ball_item", () -> new BobaBallItem(itemGroup)); + items.register("boba_popsicle_item", () -> new BobaPopsicleItem(itemGroup)); // Block items diff --git a/src/main/java/com/blou/bobacraft/items/BobaBallItem.java b/src/main/java/com/blou/bobacraft/items/BobaBallItem.java index 69eac7c..934b838 100644 --- a/src/main/java/com/blou/bobacraft/items/BobaBallItem.java +++ b/src/main/java/com/blou/bobacraft/items/BobaBallItem.java @@ -1,6 +1,5 @@ package com.blou.bobacraft.items; -import com.blou.bobacraft.BobaCraft; import net.minecraft.item.Food; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; @@ -21,6 +20,7 @@ public BobaBallItem(ItemGroup itemGroup) { .food(new Food.Builder() .hunger(hunger) .saturation(saturation) + .fastToEat() .setAlwaysEdible() .build()) ); diff --git a/src/main/java/com/blou/bobacraft/items/BobaPopsicleItem.java b/src/main/java/com/blou/bobacraft/items/BobaPopsicleItem.java new file mode 100644 index 0000000..6a44a09 --- /dev/null +++ b/src/main/java/com/blou/bobacraft/items/BobaPopsicleItem.java @@ -0,0 +1,26 @@ +package com.blou.bobacraft.items; + +import net.minecraft.item.Food; +import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.Rarity; + +public class BobaPopsicleItem extends Item { + + private static final int maxStackSize = 16; + private static final int hunger = 16; // Restores 8 hearts. + private static final float saturation = 1.2f; + + public BobaPopsicleItem(ItemGroup itemGroup) { + super(new Item.Properties() + .group(itemGroup) + .maxStackSize(maxStackSize) + .rarity(Rarity.COMMON) + .food(new Food.Builder() + .hunger(hunger) + .saturation(saturation) + .setAlwaysEdible() + .build())); + } + +} diff --git a/src/main/java/com/blou/bobacraft/items/CassavaRootItem.java b/src/main/java/com/blou/bobacraft/items/CassavaRootItem.java index 0ab99f9..1486e8b 100644 --- a/src/main/java/com/blou/bobacraft/items/CassavaRootItem.java +++ b/src/main/java/com/blou/bobacraft/items/CassavaRootItem.java @@ -16,7 +16,7 @@ public CassavaRootItem(ItemGroup itemGroup) { super(new Item.Properties() .group(itemGroup) .maxStackSize(maxStackSize) - .rarity(Rarity.UNCOMMON) + .rarity(Rarity.COMMON) .food(new Food.Builder() .hunger(hunger) .saturation(saturation) diff --git a/src/main/java/com/blou/bobacraft/items/TapiocaStarchItem.java b/src/main/java/com/blou/bobacraft/items/TapiocaStarchItem.java index bc5fa62..18cac82 100644 --- a/src/main/java/com/blou/bobacraft/items/TapiocaStarchItem.java +++ b/src/main/java/com/blou/bobacraft/items/TapiocaStarchItem.java @@ -1,6 +1,5 @@ package com.blou.bobacraft.items; -import com.blou.bobacraft.BobaCraft; import net.minecraft.item.Item; import net.minecraft.item.ItemGroup; import net.minecraft.item.Rarity; @@ -12,7 +11,7 @@ public TapiocaStarchItem(ItemGroup itemGroup) { super(new Item.Properties() .group(itemGroup) .maxStackSize(64) - .rarity(Rarity.UNCOMMON) + .rarity(Rarity.COMMON) ); } diff --git a/src/main/resources/assets/bobacraft/lang/en_us.json b/src/main/resources/assets/bobacraft/lang/en_us.json index 0893216..e73cbc2 100644 --- a/src/main/resources/assets/bobacraft/lang/en_us.json +++ b/src/main/resources/assets/bobacraft/lang/en_us.json @@ -5,6 +5,7 @@ "item.bobacraft.boba_ball_item": "Boba Ball", "item.bobacraft.cassava_root_item": "Cassava Root", "item.bobacraft.tapioca_starch_item": "Tapioca Starch", + "item.bobacraft.boba_popsicle_item": "Boba Popsicle", "block.bobacraft.cassava_crop_block": "Cassava Seeds", "block.bobacraft.black_milk_tea_block": "Black Milk Tea", diff --git a/src/main/resources/assets/bobacraft/models/item/boba_popsicle_item.json b/src/main/resources/assets/bobacraft/models/item/boba_popsicle_item.json new file mode 100644 index 0000000..926a4db --- /dev/null +++ b/src/main/resources/assets/bobacraft/models/item/boba_popsicle_item.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "bobacraft:items/boba_popsicle_item" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/bobacraft/textures/items/boba_popsicle_item.png b/src/main/resources/assets/bobacraft/textures/items/boba_popsicle_item.png new file mode 100644 index 0000000..ec2ecf4 Binary files /dev/null and b/src/main/resources/assets/bobacraft/textures/items/boba_popsicle_item.png differ diff --git a/src/main/resources/data/bobacraft/recipes/boba_popsicle_item.json b/src/main/resources/data/bobacraft/recipes/boba_popsicle_item.json new file mode 100644 index 0000000..041239b --- /dev/null +++ b/src/main/resources/data/bobacraft/recipes/boba_popsicle_item.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": + [ + "i", + "b", + "s" + ], + "key": + { + "i": { "item": "minecraft:ice" }, + "b": { "tag": "bobacraft:bobadrinks" }, + "s": { "item": "minecraft:stick" } + }, + "result": + { + "item": "bobacraft:boba_popsicle_item", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/bobacraft/tags/items/bobadrinks.json b/src/main/resources/data/bobacraft/tags/items/bobadrinks.json new file mode 100644 index 0000000..91ad289 --- /dev/null +++ b/src/main/resources/data/bobacraft/tags/items/bobadrinks.json @@ -0,0 +1,11 @@ +{ + "replace": false, + "values": [ + "bobacraft:black_milk_tea_block", + "bobacraft:thai_milk_tea_block", + "bobacraft:green_milk_tea_block", + "bobacraft:jasmine_milk_tea_block", + "bobacraft:taro_milk_tea_block", + "bobacraft:strawberry_milk_tea_block" + ] +} \ No newline at end of file