diff --git a/src/main/java/net/Chipperfluff/chipi/client/ModTooltips.java b/src/main/java/net/Chipperfluff/chipi/client/ModTooltips.java index b295339..bf5d0d3 100644 --- a/src/main/java/net/Chipperfluff/chipi/client/ModTooltips.java +++ b/src/main/java/net/Chipperfluff/chipi/client/ModTooltips.java @@ -50,6 +50,9 @@ public final class ModTooltips { if (stack.isOf(ModItems.MEP_MILK)) lines.add(Text.translatable("tooltip.chipi.mep_milk")); + if (stack.isOf(ModItems.PLAYER_MILK)) + lines.add(Text.translatable("tooltip.chipi.player_milk")); + // ===== ARMOR ===== if (stack.isOf(ModItems.CHIPPER_HELMET)) lines.add(Text.translatable("tooltip.chipi.chipper_helmet")); diff --git a/src/main/java/net/Chipperfluff/chipi/item/ModFoodComponents.java b/src/main/java/net/Chipperfluff/chipi/item/ModFoodComponents.java index 06ed085..634320b 100644 --- a/src/main/java/net/Chipperfluff/chipi/item/ModFoodComponents.java +++ b/src/main/java/net/Chipperfluff/chipi/item/ModFoodComponents.java @@ -15,4 +15,10 @@ public class ModFoodComponents { new FoodComponent.Builder() .alwaysEdible() .build(); + + public static final FoodComponent PLAYER_MILK = + new FoodComponent.Builder() + .alwaysEdible() + .build(); + } diff --git a/src/main/java/net/Chipperfluff/chipi/item/ModItemGroups.java b/src/main/java/net/Chipperfluff/chipi/item/ModItemGroups.java index cfd6aff..5e94c10 100644 --- a/src/main/java/net/Chipperfluff/chipi/item/ModItemGroups.java +++ b/src/main/java/net/Chipperfluff/chipi/item/ModItemGroups.java @@ -35,6 +35,7 @@ public class ModItemGroups { // Food entries.add(ModItems.MEP_MILK); entries.add(ModItems.NUT); + entries.add(ModItems.PLAYER_MILK); // Armor entries.add(ModItems.CHIPPER_HELMET); diff --git a/src/main/java/net/Chipperfluff/chipi/item/ModItems.java b/src/main/java/net/Chipperfluff/chipi/item/ModItems.java index a4e5ac3..a9001cf 100644 --- a/src/main/java/net/Chipperfluff/chipi/item/ModItems.java +++ b/src/main/java/net/Chipperfluff/chipi/item/ModItems.java @@ -89,6 +89,17 @@ public class ModItems { new MepMilkItem(new Item.Settings().maxCount(1).recipeRemainder(Items.BUCKET).food(ModFoodComponents.MEP_MILK)) ); + public static final Item PLAYER_MILK = Registry.register( + Registries.ITEM, + new Identifier(ChipiMod.MOD_ID, "player_milk"), + new PlayerMilkItem( + new Item.Settings() + .maxCount(1) + .recipeRemainder(Items.BUCKET) + .food(ModFoodComponents.PLAYER_MILK) + ) + ); + // ===== ARMOR ===== public static final Item CHIPPER_HELMET = Registry.register( diff --git a/src/main/java/net/Chipperfluff/chipi/item/PlayerMilkItem.java b/src/main/java/net/Chipperfluff/chipi/item/PlayerMilkItem.java new file mode 100644 index 0000000..27dd051 --- /dev/null +++ b/src/main/java/net/Chipperfluff/chipi/item/PlayerMilkItem.java @@ -0,0 +1,51 @@ +package net.Chipperfluff.chipi.item; + +import net.minecraft.entity.LivingEntity; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.util.UseAction; +import net.minecraft.world.World; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.Chipperfluff.chipi.effect.ModEffects; +import net.Chipperfluff.chipi.sound.ModSounds; +import net.minecraft.sound.SoundCategory; + +public class PlayerMilkItem extends Item { + + public PlayerMilkItem(Settings settings) { + super(settings); + } + + @Override + public UseAction getUseAction(ItemStack stack) { + return UseAction.DRINK; + } + + @Override + public int getMaxUseTime(ItemStack stack) { + return 32; + } + + @Override + public ItemStack finishUsing(ItemStack stack, World world, LivingEntity user) { + + if (!world.isClient && user instanceof PlayerEntity player) { + world.playSound( + null, + player.getBlockPos(), + ModSounds.PLAYER_MILK_SONG, + SoundCategory.PLAYERS, + 1.0f, + 1.0f + ); + } + + if (user instanceof PlayerEntity player && !player.getAbilities().creativeMode) { + return new ItemStack(Items.BUCKET); + } + + return stack; + } +} diff --git a/src/main/java/net/Chipperfluff/chipi/server/ChipiServerEvents.java b/src/main/java/net/Chipperfluff/chipi/server/ChipiServerEvents.java index ed463ce..aa07f67 100644 --- a/src/main/java/net/Chipperfluff/chipi/server/ChipiServerEvents.java +++ b/src/main/java/net/Chipperfluff/chipi/server/ChipiServerEvents.java @@ -19,6 +19,17 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.world.GameRules; import net.minecraft.world.World; +import net.fabricmc.fabric.api.biome.v1.BiomeModifications; +import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; +import net.minecraft.world.gen.GenerationStep; +import net.fabricmc.fabric.api.event.player.UseEntityCallback; +import net.minecraft.util.ActionResult; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.Chipperfluff.chipi.item.ModItems; + public final class ChipiServerEvents { @@ -33,7 +44,7 @@ public final class ChipiServerEvents { private ChipiServerEvents() {} public static void register() { -BiomeModifications.addFeature( + BiomeModifications.addFeature( BiomeSelectors.foundInOverworld(), GenerationStep.Feature.UNDERGROUND_ORES, RegistryKey.of( diff --git a/src/main/java/net/Chipperfluff/chipi/sound/ModSounds.java b/src/main/java/net/Chipperfluff/chipi/sound/ModSounds.java index 72f4a09..94150d8 100644 --- a/src/main/java/net/Chipperfluff/chipi/sound/ModSounds.java +++ b/src/main/java/net/Chipperfluff/chipi/sound/ModSounds.java @@ -9,6 +9,7 @@ import net.minecraft.util.Identifier; public class ModSounds { public static final SoundEvent MEP_MILK = register("entity.mep.milk"); + public static final SoundEvent PLAYER_MILK_SONG = register("player_milk_song"); private static SoundEvent register(String id) { Identifier identifier = new Identifier(ChipiMod.MOD_ID, id); diff --git a/src/main/resources/assets/chipi/lang/en_us.json b/src/main/resources/assets/chipi/lang/en_us.json index ece3679..7624236 100644 --- a/src/main/resources/assets/chipi/lang/en_us.json +++ b/src/main/resources/assets/chipi/lang/en_us.json @@ -2,18 +2,14 @@ "death.attack.void_block": "§8%1$s stepped beyond safety — the Outside answered.", "death.attack.chipi.void_block_fire": "§c%1$s tried to save themselves.§r §8It got worse.", - "itemGroup.chipi.chipi": "Chipi", - - "effect.chipi.chipi_blessing": "Chipi's Blessing", - - "entity.chipi.mep": "Merp :3", - "block.chipi.void_block": "Void Block", "block.chipi.chipper_frame": "Chipper Frame", "block.chipi.chipper_portal": "Chipper Portal", "block.chipi.chipper_ore": "Chipper Ore", "block.chipi.chipper_alloy_block": "Chipper Alloy Block", + "itemGroup.chipi.chipi": "Chipi", + "item.chipi.void_block": "Void Block", "item.chipi.chipper_frame": "Chipper Frame", "item.chipi.chipper_portal": "Chipper Portal", @@ -23,9 +19,6 @@ "item.chipi.chipper_ingot": "Chipper Ingot", "item.chipi.chipper_alloy": "Chipper Alloy", "item.chipi.mep_spawn_egg": "Mep Spawn Egg", - - "item.chipi.nut": "Nut", - "item.chipi.mep_milk": "Mep Milk", "item.chipi.chipper_helmet": "Chipper Helmet", "item.chipi.chipper_chestplate": "Chipper Chestplate", @@ -38,19 +31,20 @@ "item.chipi.chipper_shovel": "Chipper Shovel", "item.chipi.chipper_hoe": "Chipper Hoe", + "item.chipi.nut": "Nut", + "item.chipi.mep_milk": "Mep Milk", + "item.chipi.player_milk": "Player Milk", + "tooltip.chipi.void_block": "§8It hums quietly.§r §7You are not supposed to notice that.", "tooltip.chipi.chipper_frame": "§7Built to hold a mistake.§r §8It is doing its best.", "tooltip.chipi.chipper_portal": "§5Something on the other side noticed you.§r §8It did not look away.", "tooltip.chipi.chipper_ore": "§7Common.§r §8Suspiciously so.", "tooltip.chipi.chipper_alloy_block": "§7Pressed together until it stopped complaining.§r §8Mostly.", - "tooltip.chipi.nut": "§7Probably edible.§r §8Confidence not included.", "tooltip.chipi.raw_chipper_ore": "§7Still warm to the touch.§r §8That seems unnecessary.", "tooltip.chipi.chipper_ingot": "§7Dense and stubborn.§r §8Refuses to fail politely.", "tooltip.chipi.chipper_alloy": "§7Stronger than it looks.§r §8Judges you silently.", - "tooltip.chipi.mep_spawn_egg": "§8It already knows where you are.§r §7Spawning is a courtesy.", - "tooltip.chipi.mep_milk": "§7Temporary comfort in liquid form.§r §8The bucket survives.", "tooltip.chipi.chipper_helmet": "§7Heavy and awkward.§r §8Feels incomplete alone.", "tooltip.chipi.chipper_chestplate": "§7Looks like armor.§r §8Does nothing by itself.", @@ -61,5 +55,9 @@ "tooltip.chipi.chipper_pickaxe": "§7Fast bite on stone.§r §8Gives up immediately after.", "tooltip.chipi.chipper_axe": "§7Clean chop.§r §8Handle resents you.", "tooltip.chipi.chipper_shovel": "§7Quick dig.§r §8Gravel smells weakness.", - "tooltip.chipi.chipper_hoe": "§7Turns soil fast.§r §8Blunts before the sprouts." + "tooltip.chipi.chipper_hoe": "§7Turns soil fast.§r §8Blunts before the sprouts.", + + "tooltip.chipi.nut": "§7Probably edible.§r §8Confidence not included.", + "tooltip.chipi.mep_milk": "§7Temporary comfort in liquid form.§r §8The bucket survives.", + "tooltip.chipi.player_milk": "what the fuck did you just just put in me" } diff --git a/src/main/resources/assets/chipi/models/item/player_milk.json b/src/main/resources/assets/chipi/models/item/player_milk.json new file mode 100644 index 0000000..8c5e9e2 --- /dev/null +++ b/src/main/resources/assets/chipi/models/item/player_milk.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "chipi:item/player_milk" + } +} diff --git a/src/main/resources/assets/chipi/sounds.json b/src/main/resources/assets/chipi/sounds.json index 5c349f7..e53a013 100644 --- a/src/main/resources/assets/chipi/sounds.json +++ b/src/main/resources/assets/chipi/sounds.json @@ -3,5 +3,10 @@ "sounds": [ "chipi:mep_milk" ] + }, + "player_milk_song": { + "sounds": [ + "chipi:player_milk" + ] } } diff --git a/src/main/resources/assets/chipi/sounds/mep_milk.wav b/src/main/resources/assets/chipi/sounds/mep_milk.wav deleted file mode 100644 index 29ae4dc..0000000 Binary files a/src/main/resources/assets/chipi/sounds/mep_milk.wav and /dev/null differ diff --git a/src/main/resources/assets/chipi/sounds/player_milk.ogg b/src/main/resources/assets/chipi/sounds/player_milk.ogg new file mode 100644 index 0000000..93b8d96 Binary files /dev/null and b/src/main/resources/assets/chipi/sounds/player_milk.ogg differ diff --git a/src/main/resources/assets/chipi/textures/block/chipper_alloy_block.png b/src/main/resources/assets/chipi/textures/block/chipper_alloy_block.png index b92df13..401cdab 100644 Binary files a/src/main/resources/assets/chipi/textures/block/chipper_alloy_block.png and b/src/main/resources/assets/chipi/textures/block/chipper_alloy_block.png differ diff --git a/src/main/resources/assets/chipi/textures/block/chipper_ore.png b/src/main/resources/assets/chipi/textures/block/chipper_ore.png index ddf21e6..95c243a 100644 Binary files a/src/main/resources/assets/chipi/textures/block/chipper_ore.png and b/src/main/resources/assets/chipi/textures/block/chipper_ore.png differ diff --git a/src/main/resources/assets/chipi/textures/block/diamond_block.png b/src/main/resources/assets/chipi/textures/block/diamond_block.png new file mode 100644 index 0000000..710fef8 Binary files /dev/null and b/src/main/resources/assets/chipi/textures/block/diamond_block.png differ diff --git a/src/main/resources/assets/chipi/textures/item/player_milk.png b/src/main/resources/assets/chipi/textures/item/player_milk.png new file mode 100644 index 0000000..1d763d2 Binary files /dev/null and b/src/main/resources/assets/chipi/textures/item/player_milk.png differ