diff --git a/src/main/java/de/slpnetwork/brewcraft/item/ModCreativeModeTabs.java b/src/main/java/de/slpnetwork/brewcraft/item/ModCreativeModeTabs.java index 0dd75ca..c6e6490 100644 --- a/src/main/java/de/slpnetwork/brewcraft/item/ModCreativeModeTabs.java +++ b/src/main/java/de/slpnetwork/brewcraft/item/ModCreativeModeTabs.java @@ -6,6 +6,8 @@ import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.Component; import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.alchemy.PotionUtils; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.RegistryObject; @@ -40,12 +42,16 @@ public class ModCreativeModeTabs { pOutput.accept(ModItems.Pressed_Iron.get()); pOutput.accept(ModItems.Pressure_Body.get()); pOutput.accept(ModItems.Glass.get()); + pOutput.accept(ModBlocks.SAPPHIRE_BLOCK.get()); + pOutput.accept(ModItems.Glass_Of_Apple_Beer.get()); + pOutput.accept(ModItems.Bottle_Of_Apple_Beer.get()); + pOutput.accept(ModItems.Glass_Of_Apple_Juice.get()); + pOutput.accept(ModItems.Bottle_Of_Apple_Juice.get()); pOutput.accept(ModItems.Glass_Of_Whine.get()); pOutput.accept(ModItems.Glass_Of_Corn_Beer.get()); pOutput.accept(ModItems.Glass_Of_Hop_Beer.get()); pOutput.accept(ModItems.Glass_Of_Yeast_Beer.get()); pOutput.accept(ModItems.Glass_Of_Pils_Beer.get()); - pOutput.accept(ModItems.Glass_Of_Apple_Beer.get()); pOutput.accept(ModItems.Glass_Of_Apple_Juice.get()); pOutput.accept(ModItems.Glass_Of_Grape_Juice.get()); pOutput.accept(ModItems.Glass_Of_Water.get()); @@ -55,11 +61,9 @@ public class ModCreativeModeTabs { pOutput.accept(ModItems.Bottle_Of_Hop_Beer.get()); pOutput.accept(ModItems.Bottle_Of_Yeast_Beer.get()); pOutput.accept(ModItems.Bottle_Of_Pils_Beer.get()); - pOutput.accept(ModItems.Bottle_Of_Apple_Beer.get()); pOutput.accept(ModItems.Bottle_Of_Apple_Juice.get()); pOutput.accept(ModItems.Bottle_Of_Grape_Juice.get()); pOutput.accept(ModItems.Bottle_Of_Sake.get()); - pOutput.accept(ModBlocks.SAPPHIRE_BLOCK.get()); }) .build()); diff --git a/src/main/java/de/slpnetwork/brewcraft/item/ModItems.java b/src/main/java/de/slpnetwork/brewcraft/item/ModItems.java index bd652a7..de4210a 100644 --- a/src/main/java/de/slpnetwork/brewcraft/item/ModItems.java +++ b/src/main/java/de/slpnetwork/brewcraft/item/ModItems.java @@ -1,7 +1,14 @@ package de.slpnetwork.brewcraft.item; import de.slpnetwork.brewcraft.Brewcraft; +import de.slpnetwork.brewcraft.item.food.Grape; +import net.minecraft.world.effect.MobEffect; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.Item; +import net.minecraft.world.item.Rarity; +import net.minecraft.world.item.alchemy.Potion; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; @@ -13,41 +20,51 @@ import net.minecraftforge.registries.RegistryObject; public class ModItems { public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, Brewcraft.MODID); - public static final RegistryObject Saphire = ITEMS.register("sapphire", () -> new Item(new Item.Properties())); - public static final RegistryObject Yeast = ITEMS.register("yeast", () -> new Item(new Item.Properties())); - public static final RegistryObject Cider_Yeast = ITEMS.register("cider-yeast", () -> new Item(new Item.Properties())); - public static final RegistryObject Hop = ITEMS.register("hop", () -> new Item(new Item.Properties())); - public static final RegistryObject Rice = ITEMS.register("rice", () -> new Item(new Item.Properties())); - public static final RegistryObject Grape = ITEMS.register("grape", () -> new Item(new Item.Properties())); - public static final RegistryObject Barley = ITEMS.register("barley", () -> new Item(new Item.Properties())); - public static final RegistryObject Malt = ITEMS.register("malt", () -> new Item(new Item.Properties())); - public static final RegistryObject Barley_Malt = ITEMS.register("barley_malt", () -> new Item(new Item.Properties())); + // Items + public static final RegistryObject Glass = ITEMS.register("glass", () -> new Item(new Item.Properties())); public static final RegistryObject Heater_Body = ITEMS.register("heater_body", () -> new Item(new Item.Properties())); public static final RegistryObject Heater_Element = ITEMS.register("heater_element", () -> new Item(new Item.Properties())); public static final RegistryObject Mashine_Body = ITEMS.register("mashine_body", () -> new Item(new Item.Properties())); public static final RegistryObject Milling_Stone = ITEMS.register("milling_stone", () -> new Item(new Item.Properties())); public static final RegistryObject Pressed_Iron = ITEMS.register("pressed_iron", () -> new Item(new Item.Properties())); public static final RegistryObject Pressure_Body = ITEMS.register("pressure_body", () -> new Item(new Item.Properties())); - public static final RegistryObject Bottle_Of_Corn_Beer = ITEMS.register("bottle_of_corn_beer", () -> new Item(new Item.Properties())); - public static final RegistryObject Bottle_Of_Hop_Beer = ITEMS.register("bottle_of_hop_beer", () -> new Item(new Item.Properties())); - public static final RegistryObject Bottle_Of_Pils_Beer = ITEMS.register("bottle_of_pils_beer", () -> new Item(new Item.Properties())); - public static final RegistryObject Bottle_Of_Yeast_Beer = ITEMS.register("bottle_of_yeast_beer", () -> new Item(new Item.Properties())); - public static final RegistryObject Bottle_Of_Apple_Beer = ITEMS.register("bottle_of_apple_beer", () -> new Item(new Item.Properties())); - public static final RegistryObject Bottle_Of_Whine = ITEMS.register("bottle_of_whine", () -> new Item(new Item.Properties())); - public static final RegistryObject Bottle_Of_Grape_Juice = ITEMS.register("bottle_of_grape_juice", () -> new Item(new Item.Properties())); - public static final RegistryObject Bottle_Of_Apple_Juice = ITEMS.register("bottle_of_apple_juice", () -> new Item(new Item.Properties())); - public static final RegistryObject Bottle_Of_Sake = ITEMS.register("bottle_of_sake", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass = ITEMS.register("glass", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass_Of_Corn_Beer = ITEMS.register("glass_of_corn_beer", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass_Of_Hop_Beer = ITEMS.register("glass_of_hop_beer", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass_Of_Yeast_Beer = ITEMS.register("glass_of_yeast_beer", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass_Of_Apple_Beer = ITEMS.register("glass_of_apple_beer", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass_Of_Pils_Beer = ITEMS.register("glass_of_pils_beer", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass_Of_Whine = ITEMS.register("glass_of_whine", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass_Of_Grape_Juice = ITEMS.register("glass_of_grape_juice", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass_Of_Apple_Juice = ITEMS.register("glass_of_apple_juice", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass_Of_Water = ITEMS.register("glass_of_water", () -> new Item(new Item.Properties())); - public static final RegistryObject Glass_Of_Sake = ITEMS.register("glass_of_sake", () -> new Item(new Item.Properties())); + + // blocks + public static final RegistryObject Saphire = ITEMS.register("sapphire", () -> new Item(new Item.Properties())); + + // ingredients + public static final RegistryObject Cider_Yeast = ITEMS.register("cider-yeast", () -> new Item(new Item.Properties())); + public static final RegistryObject Hop = ITEMS.register("hop", () -> new Item(new Item.Properties())); + public static final RegistryObject Barley = ITEMS.register("barley", () -> new Item(new Item.Properties())); + public static final RegistryObject Malt = ITEMS.register("malt", () -> new Item(new Item.Properties())); + public static final RegistryObject Barley_Malt = ITEMS.register("barley_malt", () -> new Item(new Item.Properties())); + + // edible ingredients + public static final RegistryObject Yeast = ITEMS.register("yeast",de.slpnetwork.brewcraft.item.food.Yeast::GetItem); + public static final RegistryObject Rice = ITEMS.register("rice", de.slpnetwork.brewcraft.item.food.Rice::GetItem); + public static final RegistryObject Grape = ITEMS.register("grape", de.slpnetwork.brewcraft.item.food.Grape::GetItem); + + // drinks + public static final RegistryObject Bottle_Of_Apple_Beer = ITEMS.register("bottle_of_apple_beer",() -> new de.slpnetwork.brewcraft.item.drinks.AppleBeer(new Item.Properties().stacksTo(1))); + public static final RegistryObject Glass_Of_Apple_Beer = ITEMS.register("glass_of_apple_beer",() -> new de.slpnetwork.brewcraft.item.drinks.AppleBeer(new Item.Properties().stacksTo(1))); + public static final RegistryObject Bottle_Of_Apple_Juice = ITEMS.register("bottle_of_apple_juice",() -> new de.slpnetwork.brewcraft.item.drinks.AppleJuice(new Item.Properties().stacksTo(1))); + public static final RegistryObject Glass_Of_Apple_Juice = ITEMS.register("glass_of_apple_juice",() -> new de.slpnetwork.brewcraft.item.drinks.AppleJuice(new Item.Properties().stacksTo(1))); + public static final RegistryObject Bottle_Of_Grape_Juice = ITEMS.register("bottle_of_grape_juice",() -> new de.slpnetwork.brewcraft.item.drinks.GrapeJuice(new Item.Properties().stacksTo(1))); + public static final RegistryObject Glass_Of_Grape_Juice = ITEMS.register("glass_of_grape_juice",() -> new de.slpnetwork.brewcraft.item.drinks.GrapeJuice(new Item.Properties().stacksTo(1))); + public static final RegistryObject Bottle_Of_Corn_Beer = ITEMS.register("bottle_of_corn_beer",() -> new de.slpnetwork.brewcraft.item.drinks.CornBeer(new Item.Properties().stacksTo(1))); + public static final RegistryObject Glass_Of_Corn_Beer = ITEMS.register("glass_of_corn_beer",() -> new de.slpnetwork.brewcraft.item.drinks.CornBeer(new Item.Properties().stacksTo(1))); + public static final RegistryObject Bottle_Of_Yeast_Beer = ITEMS.register("bottle_of_yeast_beer",() -> new de.slpnetwork.brewcraft.item.drinks.YeastBeer(new Item.Properties().stacksTo(1))); + public static final RegistryObject Glass_Of_Yeast_Beer = ITEMS.register("glass_of_yeast_beer",() -> new de.slpnetwork.brewcraft.item.drinks.YeastBeer(new Item.Properties().stacksTo(1))); + public static final RegistryObject Bottle_Of_Hop_Beer = ITEMS.register("bottle_of_hop_beer",() -> new de.slpnetwork.brewcraft.item.drinks.HopBeer(new Item.Properties().stacksTo(1))); + public static final RegistryObject Glass_Of_Hop_Beer = ITEMS.register("glass_of_hop_beer",() -> new de.slpnetwork.brewcraft.item.drinks.HopBeer(new Item.Properties().stacksTo(1))); + public static final RegistryObject Bottle_Of_Pils_Beer = ITEMS.register("bottle_of_pils_beer",() -> new de.slpnetwork.brewcraft.item.drinks.PilsBeer(new Item.Properties().stacksTo(1))); + public static final RegistryObject Glass_Of_Pils_Beer = ITEMS.register("glass_of_pils_beer",() -> new de.slpnetwork.brewcraft.item.drinks.PilsBeer(new Item.Properties().stacksTo(1))); + public static final RegistryObject Bottle_Of_Sake = ITEMS.register("bottle_of_sake",() -> new de.slpnetwork.brewcraft.item.drinks.Sake(new Item.Properties().stacksTo(1))); + public static final RegistryObject Glass_Of_Sake = ITEMS.register("glass_of_sake",() -> new de.slpnetwork.brewcraft.item.drinks.Sake(new Item.Properties().stacksTo(1))); + public static final RegistryObject Bottle_Of_Whine = ITEMS.register("bottle_of_whine",() -> new de.slpnetwork.brewcraft.item.drinks.Whine(new Item.Properties().stacksTo(1))); + public static final RegistryObject Glass_Of_Whine = ITEMS.register("glass_of_whine",() -> new de.slpnetwork.brewcraft.item.drinks.Whine(new Item.Properties().stacksTo(1))); + public static final RegistryObject Glass_Of_Water = ITEMS.register("glass_of_water",() -> new de.slpnetwork.brewcraft.item.drinks.Water(new Item.Properties().stacksTo(1))); + /*** * registers the deferredregister * @param eventBus the mods eventbus diff --git a/src/main/java/de/slpnetwork/brewcraft/item/drinks/AppleBeer.java b/src/main/java/de/slpnetwork/brewcraft/item/drinks/AppleBeer.java new file mode 100644 index 0000000..00ed4a7 --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/drinks/AppleBeer.java @@ -0,0 +1,55 @@ +package de.slpnetwork.brewcraft.item.drinks; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + + +public class AppleBeer extends Item { + int secondInTicks = 20; + + public AppleBeer(Item.Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + if (!world.isClientSide()) { + if (entity instanceof Player player) { + player.addEffect(new MobEffectInstance(MobEffects.CONFUSION, secondInTicks * 10, 3)); + player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, secondInTicks * 25, 2)); + player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, secondInTicks * 10, 3)); + } + } + + if (entity instanceof Player player && !player.getAbilities().instabuild) { + stack.shrink(1); // Verringert den Item-Stack nach dem Trinken, außer im Kreativmodus + } + + return stack; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.DRINK; // Zeigt das Trinken-Animation + } + + @Override + public int getUseDuration(ItemStack stack) { + return 32; // Die Zeit, die zum Trinken benötigt wird (in Ticks) + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + player.startUsingItem(hand); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/drinks/AppleJuice.java b/src/main/java/de/slpnetwork/brewcraft/item/drinks/AppleJuice.java new file mode 100644 index 0000000..cfb7963 --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/drinks/AppleJuice.java @@ -0,0 +1,53 @@ +package de.slpnetwork.brewcraft.item.drinks; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + + +public class AppleJuice extends Item { + int secondInTicks = 20; + + public AppleJuice(Item.Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + if (!world.isClientSide()) { + if (entity instanceof Player player) { + player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, secondInTicks * 2, 2)); + } + } + + if (entity instanceof Player player && !player.getAbilities().instabuild) { + stack.shrink(1); // Verringert den Item-Stack nach dem Trinken, außer im Kreativmodus + } + + return stack; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.DRINK; // Zeigt das Trinken-Animation + } + + @Override + public int getUseDuration(ItemStack stack) { + return 32; // Die Zeit, die zum Trinken benötigt wird (in Ticks) + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + player.startUsingItem(hand); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/drinks/CornBeer.java b/src/main/java/de/slpnetwork/brewcraft/item/drinks/CornBeer.java new file mode 100644 index 0000000..3265b76 --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/drinks/CornBeer.java @@ -0,0 +1,54 @@ +package de.slpnetwork.brewcraft.item.drinks; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + + +public class CornBeer extends Item { + int secondInTicks = 20; + + public CornBeer(Item.Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + if (!world.isClientSide()) { + if (entity instanceof Player player) { + player.addEffect(new MobEffectInstance(MobEffects.CONFUSION, secondInTicks * 10, 3)); + player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, secondInTicks * 25, 2)); + player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, secondInTicks * 10, 3)); } + } + + if (entity instanceof Player player && !player.getAbilities().instabuild) { + stack.shrink(1); // Verringert den Item-Stack nach dem Trinken, außer im Kreativmodus + } + + return stack; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.DRINK; // Zeigt das Trinken-Animation + } + + @Override + public int getUseDuration(ItemStack stack) { + return 32; // Die Zeit, die zum Trinken benötigt wird (in Ticks) + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + player.startUsingItem(hand); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/drinks/GrapeJuice.java b/src/main/java/de/slpnetwork/brewcraft/item/drinks/GrapeJuice.java new file mode 100644 index 0000000..ac4fcbe --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/drinks/GrapeJuice.java @@ -0,0 +1,53 @@ +package de.slpnetwork.brewcraft.item.drinks; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + + +public class GrapeJuice extends Item { + int secondInTicks = 20; + + public GrapeJuice(Item.Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + if (!world.isClientSide()) { + if (entity instanceof Player player) { + player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, secondInTicks * 2, 2)); + } + } + + if (entity instanceof Player player && !player.getAbilities().instabuild) { + stack.shrink(1); // Verringert den Item-Stack nach dem Trinken, außer im Kreativmodus + } + + return stack; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.DRINK; // Zeigt das Trinken-Animation + } + + @Override + public int getUseDuration(ItemStack stack) { + return 32; // Die Zeit, die zum Trinken benötigt wird (in Ticks) + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + player.startUsingItem(hand); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/drinks/HopBeer.java b/src/main/java/de/slpnetwork/brewcraft/item/drinks/HopBeer.java new file mode 100644 index 0000000..c064a1b --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/drinks/HopBeer.java @@ -0,0 +1,55 @@ +package de.slpnetwork.brewcraft.item.drinks; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + + +public class HopBeer extends Item { + int secondInTicks = 20; + + public HopBeer(Item.Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + if (!world.isClientSide()) { + if (entity instanceof Player player) { + player.addEffect(new MobEffectInstance(MobEffects.CONFUSION, secondInTicks * 10, 3)); + player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, secondInTicks * 25, 2)); + player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, secondInTicks * 10, 3)); + } + } + + if (entity instanceof Player player && !player.getAbilities().instabuild) { + stack.shrink(1); // Verringert den Item-Stack nach dem Trinken, außer im Kreativmodus + } + + return stack; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.DRINK; // Zeigt das Trinken-Animation + } + + @Override + public int getUseDuration(ItemStack stack) { + return 32; // Die Zeit, die zum Trinken benötigt wird (in Ticks) + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + player.startUsingItem(hand); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/drinks/PilsBeer.java b/src/main/java/de/slpnetwork/brewcraft/item/drinks/PilsBeer.java new file mode 100644 index 0000000..4836807 --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/drinks/PilsBeer.java @@ -0,0 +1,55 @@ +package de.slpnetwork.brewcraft.item.drinks; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + + +public class PilsBeer extends Item { + int secondInTicks = 20; + + public PilsBeer(Item.Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + if (!world.isClientSide()) { + if (entity instanceof Player player) { + player.addEffect(new MobEffectInstance(MobEffects.CONFUSION, secondInTicks * 10, 3)); + player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, secondInTicks * 25, 2)); + player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, secondInTicks * 10, 3)); + } + } + + if (entity instanceof Player player && !player.getAbilities().instabuild) { + stack.shrink(1); // Verringert den Item-Stack nach dem Trinken, außer im Kreativmodus + } + + return stack; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.DRINK; // Zeigt das Trinken-Animation + } + + @Override + public int getUseDuration(ItemStack stack) { + return 32; // Die Zeit, die zum Trinken benötigt wird (in Ticks) + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + player.startUsingItem(hand); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/drinks/Sake.java b/src/main/java/de/slpnetwork/brewcraft/item/drinks/Sake.java new file mode 100644 index 0000000..bdcad4e --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/drinks/Sake.java @@ -0,0 +1,55 @@ +package de.slpnetwork.brewcraft.item.drinks; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + + +public class Sake extends Item { + int secondInTicks = 20; + + public Sake(Item.Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + if (!world.isClientSide()) { + if (entity instanceof Player player) { + player.addEffect(new MobEffectInstance(MobEffects.CONFUSION, secondInTicks * 10, 3)); + player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, secondInTicks * 25, 2)); + player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, secondInTicks * 10, 3)); + } + } + + if (entity instanceof Player player && !player.getAbilities().instabuild) { + stack.shrink(1); // Verringert den Item-Stack nach dem Trinken, außer im Kreativmodus + } + + return stack; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.DRINK; // Zeigt das Trinken-Animation + } + + @Override + public int getUseDuration(ItemStack stack) { + return 32; // Die Zeit, die zum Trinken benötigt wird (in Ticks) + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + player.startUsingItem(hand); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/drinks/Water.java b/src/main/java/de/slpnetwork/brewcraft/item/drinks/Water.java new file mode 100644 index 0000000..f8983c9 --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/drinks/Water.java @@ -0,0 +1,47 @@ +package de.slpnetwork.brewcraft.item.drinks; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + + +public class Water extends Item { + int secondInTicks = 20; + + public Water(Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + if (entity instanceof Player player && !player.getAbilities().instabuild) { + stack.shrink(1); // Verringert den Item-Stack nach dem Trinken, außer im Kreativmodus + } + + return stack; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.DRINK; // Zeigt das Trinken-Animation + } + + @Override + public int getUseDuration(ItemStack stack) { + return 32; // Die Zeit, die zum Trinken benötigt wird (in Ticks) + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + player.startUsingItem(hand); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/drinks/Whine.java b/src/main/java/de/slpnetwork/brewcraft/item/drinks/Whine.java new file mode 100644 index 0000000..1773e5e --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/drinks/Whine.java @@ -0,0 +1,55 @@ +package de.slpnetwork.brewcraft.item.drinks; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + + +public class Whine extends Item { + int secondInTicks = 20; + + public Whine(Item.Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + if (!world.isClientSide()) { + if (entity instanceof Player player) { + player.addEffect(new MobEffectInstance(MobEffects.CONFUSION, secondInTicks * 10, 3)); + player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, secondInTicks * 25, 2)); + player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, secondInTicks * 10, 3)); + } + } + + if (entity instanceof Player player && !player.getAbilities().instabuild) { + stack.shrink(1); // Verringert den Item-Stack nach dem Trinken, außer im Kreativmodus + } + + return stack; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.DRINK; // Zeigt das Trinken-Animation + } + + @Override + public int getUseDuration(ItemStack stack) { + return 32; // Die Zeit, die zum Trinken benötigt wird (in Ticks) + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + player.startUsingItem(hand); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/drinks/YeastBeer.java b/src/main/java/de/slpnetwork/brewcraft/item/drinks/YeastBeer.java new file mode 100644 index 0000000..60dabf7 --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/drinks/YeastBeer.java @@ -0,0 +1,55 @@ +package de.slpnetwork.brewcraft.item.drinks; + +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.UseAnim; +import net.minecraft.world.level.Level; + + +public class YeastBeer extends Item { + int secondInTicks = 20; + + public YeastBeer(Item.Properties properties) { + super(properties); + } + + @Override + public ItemStack finishUsingItem(ItemStack stack, Level world, LivingEntity entity) { + if (!world.isClientSide()) { + if (entity instanceof Player player) { + player.addEffect(new MobEffectInstance(MobEffects.CONFUSION, secondInTicks * 10, 3)); + player.addEffect(new MobEffectInstance(MobEffects.REGENERATION, secondInTicks * 25, 2)); + player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, secondInTicks * 10, 3)); + } + } + + if (entity instanceof Player player && !player.getAbilities().instabuild) { + stack.shrink(1); // Verringert den Item-Stack nach dem Trinken, außer im Kreativmodus + } + + return stack; + } + + @Override + public UseAnim getUseAnimation(ItemStack stack) { + return UseAnim.DRINK; // Zeigt das Trinken-Animation + } + + @Override + public int getUseDuration(ItemStack stack) { + return 32; // Die Zeit, die zum Trinken benötigt wird (in Ticks) + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + player.startUsingItem(hand); + return new InteractionResultHolder<>(InteractionResult.SUCCESS, player.getItemInHand(hand)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/food/Grape.java b/src/main/java/de/slpnetwork/brewcraft/item/food/Grape.java new file mode 100644 index 0000000..346503c --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/food/Grape.java @@ -0,0 +1,20 @@ +package de.slpnetwork.brewcraft.item.food; + +import net.minecraft.world.food.FoodProperties; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Rarity; + +public class Grape { + public static Item GetItem() { + return new Item( + new Item.Properties(). + stacksTo(64). + food( + new FoodProperties.Builder(). + nutrition(2). + saturationMod(0.5f). + build() + ). + rarity(Rarity.COMMON)); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/food/Rice.java b/src/main/java/de/slpnetwork/brewcraft/item/food/Rice.java new file mode 100644 index 0000000..8ad7a0d --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/food/Rice.java @@ -0,0 +1,21 @@ +package de.slpnetwork.brewcraft.item.food; + +import net.minecraft.world.food.FoodProperties; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Rarity; + +public class Rice { + public static Item GetItem() { + return new Item( + new Item.Properties(). + stacksTo(64). + food( + new FoodProperties.Builder(). + nutrition(1). + saturationMod(0.5f). + build() + ). + rarity(Rarity.COMMON) + ); + } +} diff --git a/src/main/java/de/slpnetwork/brewcraft/item/food/Yeast.java b/src/main/java/de/slpnetwork/brewcraft/item/food/Yeast.java new file mode 100644 index 0000000..a465a8b --- /dev/null +++ b/src/main/java/de/slpnetwork/brewcraft/item/food/Yeast.java @@ -0,0 +1,24 @@ +package de.slpnetwork.brewcraft.item.food; + +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.effect.MobEffects; +import net.minecraft.world.food.FoodProperties; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Rarity; + +public class Yeast { + public static Item GetItem() { + return new Item( + new Item.Properties(). + stacksTo(64). + food( + new FoodProperties.Builder(). + nutrition(1). + saturationMod(0.5f). + effect(() -> new MobEffectInstance(MobEffects.POISON, 600, 3, false, true), 0.8f). + build() + ). + rarity(Rarity.COMMON) + ); + } +} diff --git a/src/main/resources/assets/brewcraft/lang/en_us.json b/src/main/resources/assets/brewcraft/lang/en_us.json index 5fbfe88..f2416ff 100644 --- a/src/main/resources/assets/brewcraft/lang/en_us.json +++ b/src/main/resources/assets/brewcraft/lang/en_us.json @@ -15,21 +15,25 @@ "item.brewcraft.pressed_iron": "Pressed Iron", "item.brewcraft.pressure_body": "Pressure Body", "item.brewcraft.bottle_of_corn_beer": "Bottle of Corn Beer", + "item.brewcraft.bottle_of_hop_beer": "Bottle of Hop Beer", "item.brewcraft.bottle_of_whine": "Bottle of Whine", "item.brewcraft.bottle_of_apple_juice": "Bottle of Apple Juice", + "item.brewcraft.bottle_of_apple_beer": "Bottle of Apple Beer", "item.brewcraft.bottle_of_grape_juice": "Bottle of Grape Juice", "item.brewcraft.bottle_of_sake": "Bottle of Sake", "item.brewcraft.bottle_of_yeast_beer": "Bottle of Yeast Beer", "item.brewcraft.bottle_of_pils_beer": "Bottle of Pils Beer", "item.brewcraft.glass_of_corn_beer": "Glass of Corn Beer", + "item.brewcraft.glass_of_hop_beer": "Glass of Hop Beer", "item.brewcraft.glass_of_whine": "Glass of Whine", "item.brewcraft.glass_of_apple_juice": "Glass of Apple Juice", + "item.brewcraft.glass_of_apple_beer": "Glass of Apple Beer", "item.brewcraft.glass_of_grape_juice": "Glass of Grape Juice", "item.brewcraft.glass_of_water": "Glass of Water", "item.brewcraft.glass_of_sake": "Glass of Sake", "item.brewcraft.glass_of_yeast_beer": "Glass of Yeast Beer", "item.brewcraft.glass_of_pils_beer": "Glass of Pils Beer", - "item.brewcraft.glass": "Glass", + "items.brewcraft.glass": "Glass", "block.brewcraft.sapphire_block": "Block of Sapphire", diff --git a/src/main/resources/assets/brewcraft/textures/item/bottle_of_apple_beer.png b/src/main/resources/assets/brewcraft/textures/item/bottle_of_apple_beer.png new file mode 100644 index 0000000..0ba1208 Binary files /dev/null and b/src/main/resources/assets/brewcraft/textures/item/bottle_of_apple_beer.png differ diff --git a/src/main/resources/assets/brewcraft/textures/item/bottle_of_yeast_beer.png b/src/main/resources/assets/brewcraft/textures/item/bottle_of_yeast_beer.png new file mode 100644 index 0000000..f164f90 Binary files /dev/null and b/src/main/resources/assets/brewcraft/textures/item/bottle_of_yeast_beer.png differ diff --git a/src/main/resources/assets/brewcraft/textures/item/glass_of_apple_beer.png b/src/main/resources/assets/brewcraft/textures/item/glass_of_apple_beer.png new file mode 100644 index 0000000..8057a09 Binary files /dev/null and b/src/main/resources/assets/brewcraft/textures/item/glass_of_apple_beer.png differ diff --git a/src/main/resources/assets/brewcraft/textures/item/glass_of_yeast_beer.png b/src/main/resources/assets/brewcraft/textures/item/glass_of_yeast_beer.png new file mode 100644 index 0000000..402842b Binary files /dev/null and b/src/main/resources/assets/brewcraft/textures/item/glass_of_yeast_beer.png differ diff --git a/tex/bottle_of_apple_beer.psd b/tex/bottle_of_apple_beer.psd new file mode 100644 index 0000000..ca5fa91 Binary files /dev/null and b/tex/bottle_of_apple_beer.psd differ diff --git a/tex/apple_juice.psd b/tex/bottle_of_apple_juice.psd similarity index 100% rename from tex/apple_juice.psd rename to tex/bottle_of_apple_juice.psd diff --git a/tex/bottle_of_yeast_beer.psd b/tex/bottle_of_yeast_beer.psd new file mode 100644 index 0000000..4d3e0ad Binary files /dev/null and b/tex/bottle_of_yeast_beer.psd differ diff --git a/tex/glass_of_apple_beer.psd b/tex/glass_of_apple_beer.psd new file mode 100644 index 0000000..797bc78 Binary files /dev/null and b/tex/glass_of_apple_beer.psd differ diff --git a/tex/glass_of_yeast_beer.psd b/tex/glass_of_yeast_beer.psd new file mode 100644 index 0000000..0916cc9 Binary files /dev/null and b/tex/glass_of_yeast_beer.psd differ