diff --git a/src/main/java/com/starfish_studios/seasons_greetings/SGConfig.java b/src/main/java/com/starfish_studios/seasons_greetings/SGConfig.java index cf617bb..7d92c96 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/SGConfig.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/SGConfig.java @@ -8,6 +8,9 @@ public class SGConfig extends MidnightConfig { @Comment(category = MAIN, centered = true) public static Comment itemsMisc; + @Entry(category = MAIN) public static boolean warningPings = true; + @Entry(category = MAIN) public static boolean calmerWarnings = false; + @Entry(category = MAIN) public static boolean eggnogEffects = true; @Entry(category = MAIN) public static boolean negativeEggnogEffects = true; @Entry(category = MAIN) public static boolean crazyGingerbreadMen = true; diff --git a/src/main/java/com/starfish_studios/seasons_greetings/SeasonsGreetings.java b/src/main/java/com/starfish_studios/seasons_greetings/SeasonsGreetings.java index 57921b0..5b39d8a 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/SeasonsGreetings.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/SeasonsGreetings.java @@ -1,19 +1,13 @@ package com.starfish_studios.seasons_greetings; -import com.starfish_studios.seasons_greetings.client.SeasonsGreetingsClient; -import com.starfish_studios.seasons_greetings.event.SnowCauldronUseEvent; +import com.starfish_studios.seasons_greetings.event.CauldronUseEvent; import com.starfish_studios.seasons_greetings.event.WreathInteractions; import com.starfish_studios.seasons_greetings.registry.SGRegistry; import eu.midnightdust.lib.config.MidnightConfig; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.event.player.UseBlockCallback; -import net.fabricmc.fabric.api.resource.conditions.v1.ResourceCondition; -import net.fabricmc.fabric.api.resource.conditions.v1.ResourceConditionType; -import net.fabricmc.fabric.api.resource.conditions.v1.ResourceConditions; import net.minecraft.resources.ResourceLocation; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; public class SeasonsGreetings implements ModInitializer { public static final String MOD_ID = "seasonsgreetings"; @@ -33,7 +27,7 @@ public void onInitialize() { SGRegistry.registerAll(); - UseBlockCallback.EVENT.register(new SnowCauldronUseEvent()); + UseBlockCallback.EVENT.register(new CauldronUseEvent()); UseBlockCallback.EVENT.register(new WreathInteractions()); } } \ No newline at end of file diff --git a/src/main/java/com/starfish_studios/seasons_greetings/client/SeasonsGreetingsClient.java b/src/main/java/com/starfish_studios/seasons_greetings/client/SeasonsGreetingsClient.java index 49f8854..90f3612 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/client/SeasonsGreetingsClient.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/client/SeasonsGreetingsClient.java @@ -98,6 +98,7 @@ public static void registerScreens() { private static void registerParticles() { ParticleFactoryRegistry.getInstance().register(SGParticles.COCOA_BUBBLE, PoppingBubbleParticle.Provider::new); ParticleFactoryRegistry.getInstance().register(SGParticles.MILK_BUBBLE, PoppingBubbleParticle.Provider::new); + ParticleFactoryRegistry.getInstance().register(SGParticles.EGGNOG_BUBBLE, PoppingBubbleParticle.Provider::new); } @SuppressWarnings("all") diff --git a/src/main/java/com/starfish_studios/seasons_greetings/common/block/EggnogCauldronBlock.java b/src/main/java/com/starfish_studios/seasons_greetings/common/block/EggnogCauldronBlock.java index d3baf50..1708bad 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/common/block/EggnogCauldronBlock.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/common/block/EggnogCauldronBlock.java @@ -55,15 +55,14 @@ protected void createBlockStateDefinition(StateDefinition.Builder 1) { level.setBlockAndUpdate(blockPos, blockState.setValue(LayeredCauldronBlock.LEVEL, blockState.getValue(LayeredCauldronBlock.LEVEL) - 1)); - if (!player.getInventory().add(new ItemStack(SGItems.HOT_COCOA))) { - player.drop(new ItemStack(SGItems.HOT_COCOA), false); + if (!player.isCreative()) { + itemStack.shrink(1); + if (!player.getInventory().add(new ItemStack(SGItems.EGGNOG))) { + player.drop(new ItemStack(SGItems.EGGNOG), false); + } } player.playSound(SoundEvents.BOTTLE_FILL, 1.0F, 1.0F); return ItemInteractionResult.SUCCESS; } } + else if (itemStack.is(SGItems.EGGNOG)) { + if (blockState.getValue(LayeredCauldronBlock.LEVEL) < 3) { + level.setBlockAndUpdate(blockPos, blockState.setValue(LayeredCauldronBlock.LEVEL, blockState.getValue(LayeredCauldronBlock.LEVEL) + 1)); + if (!player.isCreative()) { + itemStack.shrink(1); + if (!player.getInventory().add(new ItemStack(Items.GLASS_BOTTLE))) { + player.drop(new ItemStack(Items.GLASS_BOTTLE), false); + } + } + player.playSound(SoundEvents.BOTTLE_EMPTY, 1.0F, 1.0F); + return ItemInteractionResult.SUCCESS; + } + } + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } diff --git a/src/main/java/com/starfish_studios/seasons_greetings/common/block/HotCocoaCauldronBlock.java b/src/main/java/com/starfish_studios/seasons_greetings/common/block/HotCocoaCauldronBlock.java index c9c2099..8eb965d 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/common/block/HotCocoaCauldronBlock.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/common/block/HotCocoaCauldronBlock.java @@ -1,6 +1,7 @@ package com.starfish_studios.seasons_greetings.common.block; import com.mojang.serialization.MapCodec; +import com.starfish_studios.seasons_greetings.SGConfig; import com.starfish_studios.seasons_greetings.registry.*; import net.fabricmc.fabric.api.block.BlockPickInteractionAware; import net.minecraft.ChatFormatting; @@ -56,7 +57,6 @@ protected void createBlockStateDefinition(StateDefinition.Builder 1) { level.setBlockAndUpdate(blockPos, blockState.setValue(LayeredCauldronBlock.LEVEL, blockState.getValue(LayeredCauldronBlock.LEVEL) - 1)); - if (!player.getInventory().add(new ItemStack(SGItems.HOT_COCOA))) { - player.drop(new ItemStack(SGItems.HOT_COCOA), false); - } + giveItem(player, itemStack, new ItemStack(SGItems.HOT_COCOA)); player.playSound(SoundEvents.BOTTLE_FILL, 1.0F, 1.0F); return ItemInteractionResult.SUCCESS; } } + if (itemStack.is(SGItems.HOT_COCOA)) { + if (blockState.getValue(LayeredCauldronBlock.LEVEL) < 3) { + level.setBlockAndUpdate(blockPos, blockState.setValue(LayeredCauldronBlock.LEVEL, blockState.getValue(LayeredCauldronBlock.LEVEL) + 1)); + giveItem(player, itemStack, new ItemStack(Items.GLASS_BOTTLE)); + player.playSound(SoundEvents.BOTTLE_EMPTY, 1.0F, 1.0F); + return ItemInteractionResult.SUCCESS; + } + } + + + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; } diff --git a/src/main/java/com/starfish_studios/seasons_greetings/common/block/MilkCauldronBlock.java b/src/main/java/com/starfish_studios/seasons_greetings/common/block/MilkCauldronBlock.java index 1be16c5..4ab6dc5 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/common/block/MilkCauldronBlock.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/common/block/MilkCauldronBlock.java @@ -1,10 +1,13 @@ package com.starfish_studios.seasons_greetings.common.block; import com.mojang.serialization.MapCodec; +import com.starfish_studios.seasons_greetings.SGConfig; import com.starfish_studios.seasons_greetings.registry.*; import net.fabricmc.fabric.api.block.BlockPickInteractionAware; +import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.cauldron.CauldronInteraction; +import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.util.RandomSource; @@ -93,6 +96,41 @@ public void animateTick(BlockState blockState, Level level, BlockPos blockPos, R @Override protected @NotNull ItemInteractionResult useItemOn(ItemStack itemStack, BlockState blockState, Level level, BlockPos blockPos, Player player, InteractionHand interactionHand, BlockHitResult blockHitResult) { + + if (itemStack.is(Items.BUCKET) && blockState.getValue(LayeredCauldronBlock.LEVEL) == 3 && level.getBlockState(blockPos.below()).is(SGTags.SGBlockTags.HEAT_SOURCES)) { + if (SGConfig.warningPings && !SGConfig.calmerWarnings) { + player.playSound(SoundEvents.ARROW_HIT_PLAYER, 0.5F, level.random.nextFloat() * 0.1F + 0.9F); + + player.displayClientMessage(Component.literal("[!] ") + .append(Component.translatable("block.seasons_greetings.warm_milk_cauldron.bucket")) + .withStyle(ChatFormatting.RED).withStyle(ChatFormatting.ITALIC), true); + player.swing(interactionHand); + } else if (SGConfig.calmerWarnings) { + player.displayClientMessage(Component.translatable("block.seasons_greetings.warm_milk_cauldron.bucket"), true); + } else { + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + } + player.swing(interactionHand); + } + + else if (itemStack.is(Items.BUCKET) && blockState.getValue(LayeredCauldronBlock.LEVEL) == 3 && !level.getBlockState(blockPos.below()).is(SGTags.SGBlockTags.HEAT_SOURCES)) { + level.setBlockAndUpdate(blockPos, Blocks.CAULDRON.defaultBlockState()); + if (!player.isCreative()) { + itemStack.shrink(1); + if (!player.getInventory().add(new ItemStack(Items.MILK_BUCKET))) { + player.drop(new ItemStack(Items.MILK_BUCKET), false); + } + } else + if (player.isCreative() && !player.getInventory().contains(new ItemStack(Items.MILK_BUCKET))) { + if (!player.getInventory().add(new ItemStack(Items.MILK_BUCKET))) { + player.drop(new ItemStack(Items.MILK_BUCKET), false); + } + } + + player.playSound(SoundEvents.BUCKET_FILL, 1.0F, 1.0F); + return ItemInteractionResult.SUCCESS; + } + if (itemStack.is(Items.MILK_BUCKET) && blockState.getValue(LayeredCauldronBlock.LEVEL) < 3) { level.setBlockAndUpdate(blockPos, blockState.setValue(LayeredCauldronBlock.LEVEL, 3)); if (!player.isCreative()) { @@ -105,21 +143,29 @@ public void animateTick(BlockState blockState, Level level, BlockPos blockPos, R return ItemInteractionResult.SUCCESS; } - else if (itemStack.is(Items.BUCKET)) { - level.setBlockAndUpdate(blockPos, Blocks.CAULDRON.defaultBlockState()); - if (!player.isCreative()) { - itemStack.shrink(1); - if (!player.getInventory().add(new ItemStack(Items.MILK_BUCKET))) { - player.drop(new ItemStack(Items.MILK_BUCKET), false); - } + else if (itemStack.is(Items.GLASS_BOTTLE) && !level.getBlockState(blockPos.below()).is(SGTags.SGBlockTags.HEAT_SOURCES)) { + if (SGConfig.warningPings && !SGConfig.calmerWarnings) { + player.playSound(SoundEvents.ARROW_HIT_PLAYER, 0.5F, level.random.nextFloat() * 0.1F + 0.9F); + + player.displayClientMessage(Component.literal("[!] ") + .append(Component.translatable("block.seasons_greetings.warm_milk_cauldron.bottle")) + .withStyle(ChatFormatting.RED).withStyle(ChatFormatting.ITALIC), true); + player.swing(interactionHand); } - player.playSound(SoundEvents.BUCKET_FILL, 1.0F, 1.0F); - return ItemInteractionResult.SUCCESS; + else if (SGConfig.calmerWarnings) { + player.displayClientMessage(Component.translatable("block.seasons_greetings.warm_milk_cauldron.bottle"), true); + } else { + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + } + player.swing(interactionHand); } else if (itemStack.is(Items.GLASS_BOTTLE) && level.getBlockState(blockPos.below()).is(SGTags.SGBlockTags.HEAT_SOURCES)) { if (blockState.getValue(LayeredCauldronBlock.LEVEL) == 1) { level.setBlockAndUpdate(blockPos, Blocks.CAULDRON.defaultBlockState()); + if (!player.isCreative()) { + itemStack.shrink(1); + } if (!player.getInventory().add(new ItemStack(SGItems.WARM_MILK))) { player.drop(new ItemStack(SGItems.WARM_MILK), false); } @@ -127,12 +173,43 @@ else if (itemStack.is(Items.GLASS_BOTTLE) && level.getBlockState(blockPos.below( return ItemInteractionResult.SUCCESS; } else if (blockState.getValue(LayeredCauldronBlock.LEVEL) > 1) { level.setBlockAndUpdate(blockPos, blockState.setValue(LayeredCauldronBlock.LEVEL, blockState.getValue(LayeredCauldronBlock.LEVEL) - 1)); - if (!player.getInventory().add(new ItemStack(SGItems.WARM_MILK))) { - player.drop(new ItemStack(SGItems.WARM_MILK), false); + if (!player.isCreative()) { + itemStack.shrink(1); + if (!player.getInventory().add(new ItemStack(SGItems.WARM_MILK))) { + player.drop(new ItemStack(SGItems.WARM_MILK), false); + } } player.playSound(SoundEvents.BOTTLE_FILL, 1.0F, 1.0F); return ItemInteractionResult.SUCCESS; } + + else if (itemStack.is(SGItems.WARM_MILK)) { + if (blockState.getValue(LayeredCauldronBlock.LEVEL) < 3) { + level.setBlockAndUpdate(blockPos, blockState.setValue(LayeredCauldronBlock.LEVEL, blockState.getValue(LayeredCauldronBlock.LEVEL) + 1)); + if (!player.isCreative()) { + itemStack.shrink(1); + if (!player.getInventory().add(new ItemStack(Items.GLASS_BOTTLE))) { + player.drop(new ItemStack(Items.GLASS_BOTTLE), false); + } + } + player.playSound(SoundEvents.BOTTLE_EMPTY, 1.0F, 1.0F); + return ItemInteractionResult.SUCCESS; + } + } + +// else if (itemStack.is(SGItems.WARM_MILK_BUCKET)) { +// if (blockState.getValue(LayeredCauldronBlock.LEVEL) < 3) { +// level.setBlockAndUpdate(blockPos, blockState.setValue(LayeredCauldronBlock.LEVEL, 3)); +// if (!player.isCreative()) { +// itemStack.shrink(1); +// if (!player.getInventory().add(new ItemStack(Items.BUCKET))) { +// player.drop(new ItemStack(Items.BUCKET), false); +// } +// } +// player.playSound(SoundEvents.BUCKET_EMPTY, 1.0F, 1.0F); +// return ItemInteractionResult.SUCCESS; +// } +// } } return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; diff --git a/src/main/java/com/starfish_studios/seasons_greetings/common/block/WreathBlock.java b/src/main/java/com/starfish_studios/seasons_greetings/common/block/WreathBlock.java index 138afe8..d89a60d 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/common/block/WreathBlock.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/common/block/WreathBlock.java @@ -73,6 +73,13 @@ public static double dyeHeight() { public enum WreathGarland implements StringRepresentable { EMPTY("empty"), + RED_LIGHTS("red_lights"), + ORANGE_LIGHTS("orange_lights"), + YELLOW_LIGHTS("yellow_lights"), + GREEN_LIGHTS("green_lights"), + BLUE_LIGHTS("blue_lights"), + PURPLE_LIGHTS("purple_lights"), + WHITE_LIGHTS("white_lights"), MULTICOLOR_LIGHTS("multicolor_lights"), GLOW_BERRIES("glow_berries"), SWEET_BERRIES("sweet_berries"); diff --git a/src/main/java/com/starfish_studios/seasons_greetings/common/entity/CopyOwnerBreakGoal.java b/src/main/java/com/starfish_studios/seasons_greetings/common/entity/CopyOwnerBreakGoal.java index 35f46dd..bc2e3ef 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/common/entity/CopyOwnerBreakGoal.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/common/entity/CopyOwnerBreakGoal.java @@ -1,6 +1,7 @@ package com.starfish_studios.seasons_greetings.common.entity; import com.starfish_studios.seasons_greetings.SGConfig; +import com.starfish_studios.seasons_greetings.registry.SGTags; import net.minecraft.core.BlockPos; import net.minecraft.core.component.DataComponents; import net.minecraft.core.particles.ParticleTypes; @@ -63,6 +64,8 @@ public boolean canUse() { Level level = owner.level(); BlockState state = level.getBlockState(minedBlockPos); + if (state.is(SGTags.SGBlockTags.GINGERBREAD_MAN_BLACKLIST)) return false; + if (gingerbreadMan.getItemBySlot(EquipmentSlot.MAINHAND).isDamageableItem() && gingerbreadMan.getItemBySlot(EquipmentSlot.MAINHAND).getDamageValue() == gingerbreadMan.getItemBySlot(EquipmentSlot.MAINHAND).getMaxDamage()) { return false; } diff --git a/src/main/java/com/starfish_studios/seasons_greetings/common/entity/GingerbreadMan.java b/src/main/java/com/starfish_studios/seasons_greetings/common/entity/GingerbreadMan.java index ff86a4d..d995fbf 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/common/entity/GingerbreadMan.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/common/entity/GingerbreadMan.java @@ -121,6 +121,7 @@ private void removeInteractionItem(Player player, ItemStack itemStack) { public void aiStep() { if (!this.level().isClientSide) { if (this.isSitting()) { + this.setJumping(false); this.navigation.stop(); this.setTarget(null); } diff --git a/src/main/java/com/starfish_studios/seasons_greetings/common/item/EggnogBucketItem.java b/src/main/java/com/starfish_studios/seasons_greetings/common/item/EggnogBucketItem.java new file mode 100644 index 0000000..f30636c --- /dev/null +++ b/src/main/java/com/starfish_studios/seasons_greetings/common/item/EggnogBucketItem.java @@ -0,0 +1,93 @@ +package com.starfish_studios.seasons_greetings.common.item; + +import com.starfish_studios.seasons_greetings.SGConfig; +import com.starfish_studios.seasons_greetings.registry.SGSoundEvents; +import net.minecraft.ChatFormatting; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionHand; +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.*; +import net.minecraft.world.level.Level; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class EggnogBucketItem extends Item { + public EggnogBucketItem(Properties properties) { + super(properties); + } + + private static final int DRINK_DURATION = 40; + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag flag) { + if (SGConfig.eggnogEffects) { + if (SGConfig.negativeEggnogEffects) { + tooltip.add(Component.translatable("effect.minecraft.nausea") + .append(" (00:30)") + .withStyle(ChatFormatting.RED)); + } + tooltip.add(Component.translatable("effect.minecraft.strength") + .append(" (01:30)") + .withStyle(ChatFormatting.BLUE)); + + } + } + + public @NotNull ItemStack finishUsingItem(ItemStack itemStack, Level level, LivingEntity livingEntity) { + super.finishUsingItem(itemStack, level, livingEntity); + if (livingEntity instanceof ServerPlayer serverPlayer) { + CriteriaTriggers.CONSUME_ITEM.trigger(serverPlayer, itemStack); + serverPlayer.awardStat(Stats.ITEM_USED.get(this)); + if (SGConfig.eggnogEffects) { + serverPlayer.addEffect(new MobEffectInstance(MobEffects.DAMAGE_BOOST, 1800, 0)); + if (SGConfig.negativeEggnogEffects) { + serverPlayer.addEffect(new MobEffectInstance(MobEffects.CONFUSION, 600, 0)); + } + } + } + + if (itemStack.isEmpty()) { + return new ItemStack(Items.GLASS_BOTTLE); + } else { + if (livingEntity instanceof Player player) { + if (!player.hasInfiniteMaterials()) { + ItemStack itemStack2 = new ItemStack(Items.GLASS_BOTTLE); + if (!player.getInventory().add(itemStack2)) { + player.drop(itemStack2, false); + } + } + } + + return itemStack; + } + } + + public int getUseDuration(ItemStack itemStack, LivingEntity livingEntity) { + return DRINK_DURATION; + } + + public @NotNull UseAnim getUseAnimation(ItemStack itemStack) { + return UseAnim.DRINK; + } + + public @NotNull SoundEvent getDrinkingSound() { + return SGSoundEvents.DRINK; + } + + public @NotNull SoundEvent getEatingSound() { + return SGSoundEvents.DRINK; + } + + public @NotNull InteractionResultHolder use(Level level, Player player, InteractionHand interactionHand) { + return ItemUtils.startUsingInstantly(level, player, interactionHand); + } +} diff --git a/src/main/java/com/starfish_studios/seasons_greetings/common/item/EggnogItem.java b/src/main/java/com/starfish_studios/seasons_greetings/common/item/EggnogItem.java index 35590f1..6178738 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/common/item/EggnogItem.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/common/item/EggnogItem.java @@ -30,20 +30,15 @@ public EggnogItem(Properties properties) { @Override public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag flag) { if (SGConfig.eggnogEffects) { - tooltip.add(Component.translatable("effect.minecraft.strength") - .append(" (00:30)") - .withStyle(ChatFormatting.BLUE)); if (SGConfig.negativeEggnogEffects) { tooltip.add(Component.translatable("effect.minecraft.nausea") .append(" (00:10)") .withStyle(ChatFormatting.RED)); - tooltip.add(Component.literal(" ")); - tooltip.add(Component.translatable("potion.whenDrank") - .withStyle(ChatFormatting.DARK_PURPLE)); - tooltip.add(Component.literal("-4 ") - .append(Component.translatable("attribute.name.generic.attack_damage")) - .withStyle(ChatFormatting.RED)); } + tooltip.add(Component.translatable("effect.minecraft.strength") + .append(" (00:30)") + .withStyle(ChatFormatting.BLUE)); + } } diff --git a/src/main/java/com/starfish_studios/seasons_greetings/common/item/HotCocoaBucketItem.java b/src/main/java/com/starfish_studios/seasons_greetings/common/item/HotCocoaBucketItem.java new file mode 100644 index 0000000..4c24464 --- /dev/null +++ b/src/main/java/com/starfish_studios/seasons_greetings/common/item/HotCocoaBucketItem.java @@ -0,0 +1,109 @@ +package com.starfish_studios.seasons_greetings.common.item; + +import com.starfish_studios.seasons_greetings.registry.SGEffects; +import com.starfish_studios.seasons_greetings.registry.SGSoundEvents; +import net.minecraft.ChatFormatting; +import net.minecraft.advancements.CriteriaTriggers; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.effect.MobEffect; +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.*; +import net.minecraft.world.level.Level; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public class HotCocoaBucketItem extends Item { + + public HotCocoaBucketItem(Properties properties) { + super(properties); + } + + private static final int DRINK_DURATION = 40; + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, List tooltip, TooltipFlag flag) { + tooltip.add(Component.translatable("effect.seasonsgreetings.cozy") + .append(" (08:00)") + .withStyle(ChatFormatting.BLUE)); + } + + public void removeAllNegativeEffects(LivingEntity livingEntity) { + List> negativeEffects = new ArrayList<>(); + + for (MobEffectInstance effectInstance : livingEntity.getActiveEffects()) { + Holder effectHolder = effectInstance.getEffect(); + + if (isNegativeEffect(effectHolder)) { + negativeEffects.add(effectHolder); + } + } + + for (Holder effectHolder : negativeEffects) { + livingEntity.removeEffect(effectHolder); + } + } + + private boolean isNegativeEffect(Holder effectHolder) { + return !effectHolder.value().isBeneficial(); + } + + + + + + public @NotNull ItemStack finishUsingItem(ItemStack itemStack, Level level, LivingEntity livingEntity) { + super.finishUsingItem(itemStack, level, livingEntity); + if (livingEntity instanceof ServerPlayer serverPlayer) { + CriteriaTriggers.CONSUME_ITEM.trigger(serverPlayer, itemStack); + removeAllNegativeEffects(serverPlayer); + serverPlayer.awardStat(Stats.ITEM_USED.get(this)); + serverPlayer.addEffect(new MobEffectInstance(SGEffects.COZY, 600, 0)); + } + + if (itemStack.isEmpty()) { + return new ItemStack(Items.GLASS_BOTTLE); + } else { + if (livingEntity instanceof Player player) { + if (!player.hasInfiniteMaterials()) { + ItemStack itemStack2 = new ItemStack(Items.GLASS_BOTTLE); + if (!player.getInventory().add(itemStack2)) { + player.drop(itemStack2, false); + } + } + } + + return itemStack; + } + } + + public int getUseDuration(ItemStack itemStack, LivingEntity livingEntity) { + return DRINK_DURATION; + } + + public @NotNull UseAnim getUseAnimation(ItemStack itemStack) { + return UseAnim.DRINK; + } + + public @NotNull SoundEvent getDrinkingSound() { + return SGSoundEvents.DRINK; + } + + public @NotNull SoundEvent getEatingSound() { + return this.getDrinkingSound(); + } + + public @NotNull InteractionResultHolder use(Level level, Player player, InteractionHand interactionHand) { + return ItemUtils.startUsingInstantly(level, player, interactionHand); + } +} \ No newline at end of file diff --git a/src/main/java/com/starfish_studios/seasons_greetings/common/item/HotCocoaItem.java b/src/main/java/com/starfish_studios/seasons_greetings/common/item/HotCocoaItem.java index 227f655..2883f35 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/common/item/HotCocoaItem.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/common/item/HotCocoaItem.java @@ -37,7 +37,7 @@ public void appendHoverText(ItemStack stack, TooltipContext context, List 0) { + if (level.getBlockState(blockHitResult.getBlockPos()).getValue(LayeredCauldronBlock.LEVEL) == 1) { + level.setBlockAndUpdate(blockHitResult.getBlockPos(), Blocks.CAULDRON.defaultBlockState()); + } else { + level.setBlockAndUpdate(blockHitResult.getBlockPos(), Blocks.POWDER_SNOW_CAULDRON.defaultBlockState().setValue(LayeredCauldronBlock.LEVEL, + level.getBlockState(blockHitResult.getBlockPos()).getValue(LayeredCauldronBlock.LEVEL) - 1)); + } + if (!player.getInventory().add(new ItemStack(Items.SNOWBALL))) { + level.addFreshEntity(new ItemEntity(level, blockHitResult.getLocation().x, blockHitResult.getLocation().y, blockHitResult.getLocation().z, new ItemStack(Items.SNOWBALL))); + } + level.playSound(null, blockHitResult.getBlockPos(), Blocks.POWDER_SNOW.defaultBlockState().getSoundType().getBreakSound(), player.getSoundSource(), 1.0F, 1.0F); + return InteractionResult.SUCCESS; + } + } + return InteractionResult.PASS; + } +} diff --git a/src/main/java/com/starfish_studios/seasons_greetings/event/SnowCauldronUseEvent.java b/src/main/java/com/starfish_studios/seasons_greetings/event/SnowCauldronUseEvent.java deleted file mode 100644 index e8f7128..0000000 --- a/src/main/java/com/starfish_studios/seasons_greetings/event/SnowCauldronUseEvent.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.starfish_studios.seasons_greetings.event; - -import net.fabricmc.fabric.api.event.player.UseBlockCallback; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResult; -import net.minecraft.world.entity.item.ItemEntity; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.LayeredCauldronBlock; -import net.minecraft.world.phys.BlockHitResult; - -public class SnowCauldronUseEvent implements UseBlockCallback { - @Override - public InteractionResult interact(Player player, Level level, InteractionHand interactionHand, BlockHitResult blockHitResult) { - if (!player.getMainHandItem().getItem().equals(Items.BUCKET)) { - if (level.getBlockState(blockHitResult.getBlockPos()).getBlock() == Blocks.POWDER_SNOW_CAULDRON && level.getBlockState(blockHitResult.getBlockPos()).getValue(LayeredCauldronBlock.LEVEL) > 0) { - if (level.getBlockState(blockHitResult.getBlockPos()).getValue(LayeredCauldronBlock.LEVEL) == 1) { - level.setBlockAndUpdate(blockHitResult.getBlockPos(), Blocks.CAULDRON.defaultBlockState()); - } else { - level.setBlockAndUpdate(blockHitResult.getBlockPos(), Blocks.POWDER_SNOW_CAULDRON.defaultBlockState().setValue(LayeredCauldronBlock.LEVEL, - level.getBlockState(blockHitResult.getBlockPos()).getValue(LayeredCauldronBlock.LEVEL) - 1)); - } - if (!player.getInventory().add(new ItemStack(Items.SNOWBALL))) { - level.addFreshEntity(new ItemEntity(level, blockHitResult.getLocation().x, blockHitResult.getLocation().y, blockHitResult.getLocation().z, new ItemStack(Items.SNOWBALL))); - } - level.playSound(null, blockHitResult.getBlockPos(), Blocks.POWDER_SNOW.defaultBlockState().getSoundType().getBreakSound(), player.getSoundSource(), 1.0F, 1.0F); - return InteractionResult.SUCCESS; - } - } - return InteractionResult.PASS; - } -} diff --git a/src/main/java/com/starfish_studios/seasons_greetings/event/WreathInteractions.java b/src/main/java/com/starfish_studios/seasons_greetings/event/WreathInteractions.java index 8718d0c..36e09ec 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/event/WreathInteractions.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/event/WreathInteractions.java @@ -66,7 +66,7 @@ public InteractionResult interact(Player player, Level level, InteractionHand ha if (GARLAND_MAP.containsKey(item) && blockState.getValue(WreathBlock.GARLAND) == WreathBlock.WreathGarland.EMPTY) { BlockState newState = getBlockstateForGarland(item, blockState); level.setBlockAndUpdate(pos, newState); - playSound(level, pos, SoundEvents.WOOL_PLACE, player); + playSound(level, pos, SoundEvents.AZALEA_PLACE, player); consumeItemIfNotCreative(player, itemStack); return InteractionResult.SUCCESS; } @@ -74,7 +74,7 @@ public InteractionResult interact(Player player, Level level, InteractionHand ha // Bell Interaction if (item == Items.BELL && !blockState.getValue(WreathBlock.BELL)) { level.setBlockAndUpdate(pos, blockState.setValue(WreathBlock.BELL, true)); - playSound(level, pos, SoundEvents.WOOL_PLACE, player); + playSound(level, pos, SoundEvents.AZALEA_PLACE, player); consumeItemIfNotCreative(player, itemStack); return InteractionResult.SUCCESS; } @@ -100,7 +100,7 @@ public InteractionResult interact(Player player, Level level, InteractionHand ha BlockState newState = getBlockstateForCarpet(item, blockState) .setValue(BlockStateProperties.HORIZONTAL_FACING, blockState.getValue(BlockStateProperties.HORIZONTAL_FACING)); level.setBlockAndUpdate(pos, newState); - playSound(level, pos, SoundEvents.WOOL_PLACE, player); + playSound(level, pos, SoundEvents.AZALEA_PLACE, player); consumeItemIfNotCreative(player, itemStack); return InteractionResult.SUCCESS; } @@ -186,13 +186,28 @@ private void spawnDyeParticles(Level level, BlockPos pos, DyeColor color) { private static final Map GARLAND_SHEAR_MAP = Util.make(new HashMap<>(), (map) -> { map.put(WreathBlock.WreathGarland.EMPTY, Items.AIR); + map.put(WreathBlock.WreathGarland.WHITE_LIGHTS, SGItems.WHITE_LIGHTS); + map.put(WreathBlock.WreathGarland.RED_LIGHTS, SGItems.RED_LIGHTS); + map.put(WreathBlock.WreathGarland.ORANGE_LIGHTS, SGItems.ORANGE_LIGHTS); + map.put(WreathBlock.WreathGarland.YELLOW_LIGHTS, SGItems.YELLOW_LIGHTS); + map.put(WreathBlock.WreathGarland.GREEN_LIGHTS, SGItems.GREEN_LIGHTS); + map.put(WreathBlock.WreathGarland.BLUE_LIGHTS, SGItems.BLUE_LIGHTS); + map.put(WreathBlock.WreathGarland.PURPLE_LIGHTS, SGItems.PURPLE_LIGHTS); map.put(WreathBlock.WreathGarland.MULTICOLOR_LIGHTS, SGItems.MULTICOLOR_LIGHTS); map.put(WreathBlock.WreathGarland.GLOW_BERRIES, Items.GLOW_BERRIES); map.put(WreathBlock.WreathGarland.SWEET_BERRIES, Items.SWEET_BERRIES); }); private static final Map GARLAND_MAP = Util.make(new HashMap<>(), (map) -> { map.put(Items.AIR, WreathBlock.WreathGarland.EMPTY); + map.put(SGItems.WHITE_LIGHTS, WreathBlock.WreathGarland.WHITE_LIGHTS); + map.put(SGItems.RED_LIGHTS, WreathBlock.WreathGarland.RED_LIGHTS); + map.put(SGItems.ORANGE_LIGHTS, WreathBlock.WreathGarland.ORANGE_LIGHTS); + map.put(SGItems.YELLOW_LIGHTS, WreathBlock.WreathGarland.YELLOW_LIGHTS); + map.put(SGItems.GREEN_LIGHTS, WreathBlock.WreathGarland.GREEN_LIGHTS); + map.put(SGItems.BLUE_LIGHTS, WreathBlock.WreathGarland.BLUE_LIGHTS); + map.put(SGItems.PURPLE_LIGHTS, WreathBlock.WreathGarland.PURPLE_LIGHTS); map.put(SGItems.MULTICOLOR_LIGHTS, WreathBlock.WreathGarland.MULTICOLOR_LIGHTS); + map.put(Items.GLOW_BERRIES, WreathBlock.WreathGarland.GLOW_BERRIES); map.put(Items.SWEET_BERRIES, WreathBlock.WreathGarland.SWEET_BERRIES); }); diff --git a/src/main/java/com/starfish_studios/seasons_greetings/registry/SGCreativeTabs.java b/src/main/java/com/starfish_studios/seasons_greetings/registry/SGCreativeTabs.java index dce4016..f4ef7d2 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/registry/SGCreativeTabs.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/registry/SGCreativeTabs.java @@ -20,6 +20,9 @@ public class SGCreativeTabs { output.accept(stack); +// output.accept(WARM_MILK_BUCKET); + output.accept(HOT_COCOA_BUCKET); + output.accept(EGGNOG_BUCKET); output.accept(WARM_MILK); output.accept(HOT_COCOA); output.accept(EGGNOG); diff --git a/src/main/java/com/starfish_studios/seasons_greetings/registry/SGItems.java b/src/main/java/com/starfish_studios/seasons_greetings/registry/SGItems.java index 636ee63..081e71a 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/registry/SGItems.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/registry/SGItems.java @@ -5,6 +5,9 @@ import net.minecraft.core.Registry; import net.minecraft.core.component.DataComponents; import net.minecraft.core.registries.BuiltInRegistries; +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.*; import net.minecraft.world.item.component.ItemContainerContents; @@ -47,18 +50,22 @@ public class SGItems { .saturationModifier(0.1f) .build()))); +// public static final Item WARM_MILK_BUCKET = registerItem("warm_milk_bucket", new WarmMilkBucketItem(new Item.Properties())); public static final Item WARM_MILK = registerItem("warm_milk", new WarmMilkItem(new Item.Properties() .food(new FoodProperties.Builder() .nutrition(4) .saturationModifier(0.3f) .build()))); + public static final Item HOT_COCOA_BUCKET = registerItem("hot_cocoa_bucket", new HotCocoaBucketItem(new Item.Properties())); public static final Item HOT_COCOA = registerItem("hot_cocoa", new HotCocoaItem(new Item.Properties() .food(new FoodProperties.Builder() .nutrition(4) .saturationModifier(0.3f) .build()))); + + public static final Item EGGNOG_BUCKET = registerItem("eggnog_bucket", new EggnogBucketItem(new Item.Properties())); public static final Item EGGNOG = registerItem("eggnog", new EggnogItem(new Item.Properties() .food(new FoodProperties.Builder() .nutrition(4) diff --git a/src/main/java/com/starfish_studios/seasons_greetings/registry/SGParticles.java b/src/main/java/com/starfish_studios/seasons_greetings/registry/SGParticles.java index c7bd7e8..c592ad7 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/registry/SGParticles.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/registry/SGParticles.java @@ -9,6 +9,7 @@ public class SGParticles { public static SimpleParticleType COCOA_BUBBLE = register("cocoa_bubble", FabricParticleTypes.simple()); public static SimpleParticleType MILK_BUBBLE = register("milk_bubble", FabricParticleTypes.simple()); + public static SimpleParticleType EGGNOG_BUBBLE = register("eggnog_bubble", FabricParticleTypes.simple()); public static SimpleParticleType register(String id, SimpleParticleType type) { return Registry.register(BuiltInRegistries.PARTICLE_TYPE, SeasonsGreetings.id(id), type); diff --git a/src/main/java/com/starfish_studios/seasons_greetings/registry/SGSoundEvents.java b/src/main/java/com/starfish_studios/seasons_greetings/registry/SGSoundEvents.java index 41f6ca5..db27843 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/registry/SGSoundEvents.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/registry/SGSoundEvents.java @@ -15,6 +15,7 @@ public class SGSoundEvents { public static final SoundEvent MILK_CAULDRON_BUBBLE = registerSoundEvent("block.milk_cauldron.bubble"); public static final SoundEvent COCOA_CAULDRON_BUBBLE = registerSoundEvent("block.cocoa_cauldron.bubble"); + public static final SoundEvent EGGNOG_CAULDRON_BUBBLE = registerSoundEvent("block.eggnog_cauldron.bubble"); public static final SoundEvent PACKED_SNOW_BREAK = registerSoundEvent("block.packed_snow.break"); public static final SoundEvent PACKED_SNOW_STEP = registerSoundEvent("block.packed_snow.step"); diff --git a/src/main/java/com/starfish_studios/seasons_greetings/registry/SGTags.java b/src/main/java/com/starfish_studios/seasons_greetings/registry/SGTags.java index a36e543..d393b37 100644 --- a/src/main/java/com/starfish_studios/seasons_greetings/registry/SGTags.java +++ b/src/main/java/com/starfish_studios/seasons_greetings/registry/SGTags.java @@ -20,6 +20,7 @@ private static TagKey> of(String id) { public static class SGBlockTags { public static final TagKey HEAT_SOURCES = of("heat_sources"); + public static final TagKey GINGERBREAD_MAN_BLACKLIST = of("gingerbread_man_blacklist"); private static TagKey of(String id) { return TagKey.create(Registries.BLOCK, SeasonsGreetings.id(id)); diff --git a/src/main/resources/assets/seasonsgreetings/blockstates/eggnog_cauldron.json b/src/main/resources/assets/seasonsgreetings/blockstates/eggnog_cauldron.json new file mode 100644 index 0000000..5ac9c19 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/blockstates/eggnog_cauldron.json @@ -0,0 +1,13 @@ +{ + "variants": { + "level=1": { + "model": "seasonsgreetings:block/eggnog_cauldron_level1" + }, + "level=2": { + "model": "seasonsgreetings:block/eggnog_cauldron_level2" + }, + "level=3": { + "model": "seasonsgreetings:block/eggnog_cauldron_full" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/seasonsgreetings/blockstates/wreath.json b/src/main/resources/assets/seasonsgreetings/blockstates/wreath.json index 8fa67ab..fcf6a41 100644 --- a/src/main/resources/assets/seasonsgreetings/blockstates/wreath.json +++ b/src/main/resources/assets/seasonsgreetings/blockstates/wreath.json @@ -154,43 +154,320 @@ }, { "apply": { - "model": "seasonsgreetings:block/wreath/multicolor_lights" + "model": "seasonsgreetings:block/wreath/lights/white_lights" }, "when": { "facing": "north", - "garland": "multicolor_lights" + "garland": "white_lights" } }, { "apply": { - "model": "seasonsgreetings:block/wreath/multicolor_lights", + "model": "seasonsgreetings:block/wreath/lights/white_lights", "y": 90 }, "when": { "facing": "east", - "garland": "multicolor_lights" + "garland": "white_lights" } }, { "apply": { - "model": "seasonsgreetings:block/wreath/multicolor_lights", + "model": "seasonsgreetings:block/wreath/lights/white_lights", "y": 180 }, "when": { "facing": "south", - "garland": "multicolor_lights" + "garland": "white_lights" } }, { "apply": { - "model": "seasonsgreetings:block/wreath/multicolor_lights", + "model": "seasonsgreetings:block/wreath/lights/white_lights", "y": 270 }, "when": { "facing": "west", - "garland": "multicolor_lights" - } - }, + "garland": "white_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/red_lights" + }, + "when": { + "facing": "north", + "garland": "red_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/red_lights", + "y": 90 + }, + "when": { + "facing": "east", + "garland": "red_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/red_lights", + "y": 180 + }, + "when": { + "facing": "south", + "garland": "red_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/red_lights", + "y": 270 + }, + "when": { + "facing": "west", + "garland": "red_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/orange_lights" + }, + "when": { + "facing": "north", + "garland": "orange_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/orange_lights", + "y": 90 + }, + "when": { + "facing": "east", + "garland": "orange_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/orange_lights", + "y": 180 + }, + "when": { + "facing": "south", + "garland": "orange_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/orange_lights", + "y": 270 + }, + "when": { + "facing": "west", + "garland": "orange_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/yellow_lights" + }, + "when": { + "facing": "north", + "garland": "yellow_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/yellow_lights", + "y": 90 + }, + "when": { + "facing": "east", + "garland": "yellow_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/yellow_lights", + "y": 180 + }, + "when": { + "facing": "south", + "garland": "yellow_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/yellow_lights", + "y": 270 + }, + "when": { + "facing": "west", + "garland": "yellow_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/green_lights" + }, + "when": { + "facing": "north", + "garland": "green_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/green_lights", + "y": 90 + }, + "when": { + "facing": "east", + "garland": "green_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/green_lights", + "y": 180 + }, + "when": { + "facing": "south", + "garland": "green_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/green_lights", + "y": 270 + }, + "when": { + "facing": "west", + "garland": "green_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/blue_lights" + }, + "when": { + "facing": "north", + "garland": "blue_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/blue_lights", + "y": 90 + }, + "when": { + "facing": "east", + "garland": "blue_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/blue_lights", + "y": 180 + }, + "when": { + "facing": "south", + "garland": "blue_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/blue_lights", + "y": 270 + }, + "when": { + "facing": "west", + "garland": "blue_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/purple_lights" + }, + "when": { + "facing": "north", + "garland": "purple_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/purple_lights", + "y": 90 + }, + "when": { + "facing": "east", + "garland": "purple_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/purple_lights", + "y": 180 + }, + "when": { + "facing": "south", + "garland": "purple_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/purple_lights", + "y": 270 + }, + "when": { + "facing": "west", + "garland": "purple_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/multicolor_lights" + }, + "when": { + "facing": "north", + "garland": "multicolor_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/multicolor_lights", + "y": 90 + }, + "when": { + "facing": "east", + "garland": "multicolor_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/multicolor_lights", + "y": 180 + }, + "when": { + "facing": "south", + "garland": "multicolor_lights" + } + }, + { + "apply": { + "model": "seasonsgreetings:block/wreath/lights/multicolor_lights", + "y": 270 + }, + "when": { + "facing": "west", + "garland": "multicolor_lights" + } + }, + + + + { "apply": { "model": "seasonsgreetings:block/wreath/bow/white_bow" diff --git a/src/main/resources/assets/seasonsgreetings/lang/en_us.json b/src/main/resources/assets/seasonsgreetings/lang/en_us.json index 2165bc7..65547ce 100644 --- a/src/main/resources/assets/seasonsgreetings/lang/en_us.json +++ b/src/main/resources/assets/seasonsgreetings/lang/en_us.json @@ -83,8 +83,10 @@ "entity.seasonsgreetings.gingerbread_man": "Gingerbread Man", "block.seasonsgreetings.hot_cocoa_cauldron": "Hot Cocoa Cauldron", - "block.seasons_greetings.hot_cocoa_cauldron.bucket": "[!] You can't fill Buckets with Hot Cocoa, only Bottles!", - "block.seasons_greetings.hot_cocoa_cauldron.bucket2": "Sneak + Right Click if you'd like to clear the Cauldron's contents.", + "block.seasons_greetings.warm_milk_cauldron.bucket": "You cannot get Warm Milk with a Bucket. Try cooling it down first", + "block.seasons_greetings.warm_milk_cauldron.bottle": "You cannot get Milk with a Bottle. Try heating it up first", + + "block.seasons_greetings.hot_cocoa_cauldron.too_cold": "The Cocoa is not hot enough. Try heating it up first", "item.dyeable": "Dyeable", "item.seasonsgreetings.chocolate": "Chocolate", @@ -96,8 +98,10 @@ "item.seasonsgreetings.gingerbread_crumbs": "Gingerbread Crumbs", "item.seasonsgreetings.gingerbread_man_spawn_egg": "Gingerbread Man Spawn Egg", "item.seasonsgreetings.hot_cocoa": "Hot Cocoa", + "item.seasonsgreetings.hot_cocoa_bucket": "Hot Cocoa Bucket", "item.seasonsgreetings.warm_milk": "Warm Milk", "item.seasonsgreetings.eggnog": "Eggnog", + "item.seasonsgreetings.eggnog_bucket": "Eggnog Bucket", "painting.seasonsgreetings.revontulet.title": "Revontulet", "painting.seasonsgreetings.revontulet.author": "crispytwig", @@ -124,6 +128,11 @@ "seasonsgreetings.midnightconfig.itemsMisc": "§9Items & Misc.", "seasonsgreetings.midnightconfig.snowGolems": "§9Snow Golems", + "seasonsgreetings.midnightconfig.warningPings": "§c§l§o[!] §7Warning Pings", + "seasonsgreetings.midnightconfig.warningPings.tooltip": "§8§o[?]§7§o If blocks like Cauldrons play warning pings for incorrect usage.", + + "seasonsgreetings.midnightconfig.calmerWarnings": "§7Calmer Warnings", + "seasonsgreetings.midnightconfig.calmerWarnings.tooltip": "§8§o[?]§7§o Removes sounds, formatting, and symbols from Cauldron warning messages.", "seasonsgreetings.midnightconfig.eggnogEffects": "§7Eggnog Effects", "seasonsgreetings.midnightconfig.eggnogEffects.tooltip": "§8§o[?]§7§o If Eggnog should give any effects.", @@ -135,10 +144,10 @@ "seasonsgreetings.midnightconfig.gingerbreadManCopyBreak": "§7Gingerbread Men target block their owner is breaking", "seasonsgreetings.midnightconfig.gingerbreadManCopyBreak.tooltip": "§8§o[?]§7§o If Gingerbread Men should copy their owner's block break target if they have a valid tool.", - "seasonsgreetings.midnightconfig.snowGolemsEquippable": "§7Snow Golems can be equipped with items", - "seasonsgreetings.midnightconfig.snowGolemsEquippable.tooltip": "§8§o[?]§7§o If Snow Golems should be able to be equipped with items.", + "seasonsgreetings.midnightconfig.snowGolemsEquippable": "§7Snow Golems can be equipped with accessories", + "seasonsgreetings.midnightconfig.snowGolemsEquippable.tooltip": "§8§o[?]§7§o If Snow Golems should be able to be equipped with hats, scarves, noses, etc..", "seasonsgreetings.midnightconfig.snowGolemItemHats": "§7Snow Golems can have items placed on their heads", - "seasonsgreetings.midnightconfig.snowGolemItemHats.tooltip": "§8§o[?]§7§o If Snow Golems should be able to have items placed on their heads - not only blocks.", + "seasonsgreetings.midnightconfig.snowGolemItemHats.tooltip": "§8§o[?]§7§o If Snow Golems should be able to have items placed on their head slot - not only blocks.", "seasonsgreetings.midnightconfig.stationarySnowGolems": "§7Snow Golem right-click stationary interaction", "seasonsgreetings.midnightconfig.stationarySnowGolems.tooltip": "§8§o[?]§7§o If Snow Golems can be 'sat' by right-clicking them.", "seasonsgreetings.midnightconfig.meltedSnowGolems": "§7Snow Golems can be 'melted' with Flint & Steel", diff --git a/src/main/resources/assets/seasonsgreetings/models/block/eggnog_cauldron_full.json b/src/main/resources/assets/seasonsgreetings/models/block/eggnog_cauldron_full.json new file mode 100644 index 0000000..14aa927 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/eggnog_cauldron_full.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/template_cauldron_full", + "textures": { + "bottom": "block/cauldron_bottom", + "content": "seasonsgreetings:block/eggnog", + "inside": "block/cauldron_inner", + "particle": "block/cauldron_side", + "side": "block/cauldron_side", + "top": "block/cauldron_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/seasonsgreetings/models/block/eggnog_cauldron_level1.json b/src/main/resources/assets/seasonsgreetings/models/block/eggnog_cauldron_level1.json new file mode 100644 index 0000000..c214187 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/eggnog_cauldron_level1.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/template_cauldron_level1", + "textures": { + "bottom": "block/cauldron_bottom", + "content": "seasonsgreetings:block/eggnog", + "inside": "block/cauldron_inner", + "particle": "block/cauldron_side", + "side": "block/cauldron_side", + "top": "block/cauldron_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/seasonsgreetings/models/block/eggnog_cauldron_level2.json b/src/main/resources/assets/seasonsgreetings/models/block/eggnog_cauldron_level2.json new file mode 100644 index 0000000..1e397c5 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/eggnog_cauldron_level2.json @@ -0,0 +1,11 @@ +{ + "parent": "minecraft:block/template_cauldron_level2", + "textures": { + "bottom": "block/cauldron_bottom", + "content": "seasonsgreetings:block/eggnog", + "inside": "block/cauldron_inner", + "particle": "block/cauldron_side", + "side": "block/cauldron_side", + "top": "block/cauldron_top" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/seasonsgreetings/models/block/wreath/multicolor_lights.json b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights.json similarity index 80% rename from src/main/resources/assets/seasonsgreetings/models/block/wreath/multicolor_lights.json rename to src/main/resources/assets/seasonsgreetings/models/block/wreath/lights.json index a28bd05..ac38092 100644 --- a/src/main/resources/assets/seasonsgreetings/models/block/wreath/multicolor_lights.json +++ b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights.json @@ -2,15 +2,16 @@ "credit": "Made with Blockbench", "texture_size": [32, 32], "textures": { - "decor": "seasonsgreetings:block/wreath/wreath_decor" + "lights": "seasonsgreetings:block/wreath/lights/white_lights" }, "elements": [ { "from": [0, 0, 11.75], "to": [16, 16, 11.75], - "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 10.75]}, + "rotation": {"angle": 0, "axis": "y", "origin": [0, 0, 9.75]}, "faces": { - "north": {"uv": [2, 8, 10, 16], "texture": "#decor"} + "north": {"uv": [0, 0, 16, 16], "texture": "#lights"}, + "south": {"uv": [16, 0, 0, 16], "texture": "#lights"} } } ], diff --git a/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/blue_lights.json b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/blue_lights.json new file mode 100644 index 0000000..cfc9c67 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/blue_lights.json @@ -0,0 +1,7 @@ +{ + "parent": "seasonsgreetings:block/wreath/lights", + "textures": { + "particle": "seasonsgreetings:block/wreath/lights/blue_lights", + "lights": "seasonsgreetings:block/wreath/lights/blue_lights" + } +} diff --git a/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/green_lights.json b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/green_lights.json new file mode 100644 index 0000000..3c680e9 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/green_lights.json @@ -0,0 +1,7 @@ +{ + "parent": "seasonsgreetings:block/wreath/lights", + "textures": { + "particle": "seasonsgreetings:block/wreath/lights/green_lights", + "lights": "seasonsgreetings:block/wreath/lights/green_lights" + } +} diff --git a/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/multicolor_lights.json b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/multicolor_lights.json new file mode 100644 index 0000000..4ab7254 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/multicolor_lights.json @@ -0,0 +1,7 @@ +{ + "parent": "seasonsgreetings:block/wreath/lights", + "textures": { + "particle": "seasonsgreetings:block/wreath/lights/multicolor_lights", + "lights": "seasonsgreetings:block/wreath/lights/multicolor_lights" + } +} diff --git a/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/orange_lights.json b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/orange_lights.json new file mode 100644 index 0000000..bcbe5f4 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/orange_lights.json @@ -0,0 +1,7 @@ +{ + "parent": "seasonsgreetings:block/wreath/lights", + "textures": { + "particle": "seasonsgreetings:block/wreath/lights/orange_lights", + "lights": "seasonsgreetings:block/wreath/lights/orange_lights" + } +} diff --git a/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/purple_lights.json b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/purple_lights.json new file mode 100644 index 0000000..173b88a --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/purple_lights.json @@ -0,0 +1,7 @@ +{ + "parent": "seasonsgreetings:block/wreath/lights", + "textures": { + "particle": "seasonsgreetings:block/wreath/lights/purple_lights", + "lights": "seasonsgreetings:block/wreath/lights/purple_lights" + } +} diff --git a/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/red_lights.json b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/red_lights.json new file mode 100644 index 0000000..d367f1e --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/red_lights.json @@ -0,0 +1,7 @@ +{ + "parent": "seasonsgreetings:block/wreath/lights", + "textures": { + "particle": "seasonsgreetings:block/wreath/lights/red_lights", + "lights": "seasonsgreetings:block/wreath/lights/red_lights" + } +} diff --git a/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/white_lights.json b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/white_lights.json new file mode 100644 index 0000000..53266a2 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/white_lights.json @@ -0,0 +1,7 @@ +{ + "parent": "seasonsgreetings:block/wreath/lights", + "textures": { + "particle": "seasonsgreetings:block/wreath/lights/white_lights", + "lights": "seasonsgreetings:block/wreath/lights/white_lights" + } +} diff --git a/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/yellow_lights.json b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/yellow_lights.json new file mode 100644 index 0000000..a20c98c --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/block/wreath/lights/yellow_lights.json @@ -0,0 +1,7 @@ +{ + "parent": "seasonsgreetings:block/wreath/lights", + "textures": { + "particle": "seasonsgreetings:block/wreath/lights/yellow_lights", + "lights": "seasonsgreetings:block/wreath/lights/yellow_lights" + } +} diff --git a/src/main/resources/assets/seasonsgreetings/models/item/eggnog_bucket.json b/src/main/resources/assets/seasonsgreetings/models/item/eggnog_bucket.json new file mode 100644 index 0000000..6bb4868 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/item/eggnog_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "seasonsgreetings:item/eggnog_bucket" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/seasonsgreetings/models/item/hot_cocoa_bucket.json b/src/main/resources/assets/seasonsgreetings/models/item/hot_cocoa_bucket.json new file mode 100644 index 0000000..b05a3e9 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/models/item/hot_cocoa_bucket.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "seasonsgreetings:item/hot_cocoa_bucket" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/seasonsgreetings/particles/eggnog_bubble.json b/src/main/resources/assets/seasonsgreetings/particles/eggnog_bubble.json new file mode 100644 index 0000000..1f51e68 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/particles/eggnog_bubble.json @@ -0,0 +1,8 @@ +{ + "textures": [ + "seasonsgreetings:eggnog_bubble1", + "seasonsgreetings:eggnog_bubble2", + "seasonsgreetings:eggnog_bubble3", + "seasonsgreetings:eggnog_bubble4" + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/seasonsgreetings/textures/block/eggnog.png.mcmeta b/src/main/resources/assets/seasonsgreetings/textures/block/eggnog.png.mcmeta new file mode 100644 index 0000000..0645f48 --- /dev/null +++ b/src/main/resources/assets/seasonsgreetings/textures/block/eggnog.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 2 + } +} diff --git a/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/blue_lights.png b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/blue_lights.png new file mode 100644 index 0000000..bd805e3 Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/blue_lights.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/green_lights.png b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/green_lights.png new file mode 100644 index 0000000..9691054 Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/green_lights.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/multicolor_lights.png b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/multicolor_lights.png new file mode 100644 index 0000000..066f370 Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/multicolor_lights.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/orange_lights.png b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/orange_lights.png new file mode 100644 index 0000000..7f940ee Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/orange_lights.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/purple_lights.png b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/purple_lights.png new file mode 100644 index 0000000..bd7705a Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/purple_lights.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/red_lights.png b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/red_lights.png new file mode 100644 index 0000000..9efface Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/red_lights.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/white_lights.png b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/white_lights.png new file mode 100644 index 0000000..4f98da8 Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/white_lights.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/yellow_lights.png b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/yellow_lights.png new file mode 100644 index 0000000..f2de0d8 Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/block/wreath/lights/yellow_lights.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/item/eggnog_bucket.png b/src/main/resources/assets/seasonsgreetings/textures/item/eggnog_bucket.png new file mode 100644 index 0000000..fe402ad Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/item/eggnog_bucket.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/item/hot_cocoa_bucket.png b/src/main/resources/assets/seasonsgreetings/textures/item/hot_cocoa_bucket.png new file mode 100644 index 0000000..d30a388 Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/item/hot_cocoa_bucket.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble1.png b/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble1.png new file mode 100644 index 0000000..26cda11 Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble1.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble2.png b/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble2.png new file mode 100644 index 0000000..4635d78 Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble2.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble3.png b/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble3.png new file mode 100644 index 0000000..4010ec1 Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble3.png differ diff --git a/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble4.png b/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble4.png new file mode 100644 index 0000000..3470766 Binary files /dev/null and b/src/main/resources/assets/seasonsgreetings/textures/particle/eggnog_bubble4.png differ diff --git a/src/main/resources/data/alexcaves/tags/entity_types/candy_mobs.json b/src/main/resources/data/alexcaves/tags/entity_types/candy_mobs.json new file mode 100644 index 0000000..c5b63db --- /dev/null +++ b/src/main/resources/data/alexcaves/tags/entity_types/candy_mobs.json @@ -0,0 +1,5 @@ +{ + "values": [ + "seasonsgreetings:gingerbread_man" + ] +} diff --git a/src/main/resources/data/alexcaves/tags/items/gingerbread_man_steals.json b/src/main/resources/data/alexcaves/tags/items/gingerbread_man_steals.json new file mode 100644 index 0000000..820f898 --- /dev/null +++ b/src/main/resources/data/alexcaves/tags/items/gingerbread_man_steals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "seasonsgreetings:gingerbread_cookie", + "seasonsgreetings:hot_cocoa" + ] +} diff --git a/src/main/resources/data/alexcaves/tags/items/gummy_items.json b/src/main/resources/data/alexcaves/tags/items/gummy_items.json new file mode 100644 index 0000000..5066846 --- /dev/null +++ b/src/main/resources/data/alexcaves/tags/items/gummy_items.json @@ -0,0 +1,9 @@ +{ + "values": [ + "seasonsgreetings:red_gumdrop", + "seasonsgreetings:orange_gumdrop", + "seasonsgreetings:yellow_gumdrop", + "seasonsgreetings:green_gumdrop", + "seasonsgreetings:purple_gumdrop" + ] +} diff --git a/src/main/resources/data/minecraft/tags/block/doors.json b/src/main/resources/data/minecraft/tags/block/doors.json new file mode 100644 index 0000000..366e9ac --- /dev/null +++ b/src/main/resources/data/minecraft/tags/block/doors.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:gingerbread_door" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/block/slabs.json b/src/main/resources/data/minecraft/tags/block/slabs.json new file mode 100644 index 0000000..407b951 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/block/slabs.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:snow_brick_slab", + "seasonsgreetings:gingerbread_slab", + "seasonsgreetings:gingerbread_brick_slab", + "seasonsgreetings:gingerbread_shingle_slab", + "seasonsgreetings:peppermint_slab", + "seasonsgreetings:chocolate_slab", + "seasonsgreetings:icing_slab" + ] +} diff --git a/src/main/resources/data/minecraft/tags/block/stairs.json b/src/main/resources/data/minecraft/tags/block/stairs.json new file mode 100644 index 0000000..8889166 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/block/stairs.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:snow_brick_stairs", + "seasonsgreetings:gingerbread_stairs", + "seasonsgreetings:gingerbread_brick_stairs", + "seasonsgreetings:gingerbread_shingle_stairs", + "seasonsgreetings:peppermint_stairs", + "seasonsgreetings:chocolate_stairs", + "seasonsgreetings:icing_stairs" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/item/doors.json b/src/main/resources/data/minecraft/tags/item/doors.json new file mode 100644 index 0000000..366e9ac --- /dev/null +++ b/src/main/resources/data/minecraft/tags/item/doors.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:gingerbread_door" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/item/slabs.json b/src/main/resources/data/minecraft/tags/item/slabs.json new file mode 100644 index 0000000..407b951 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/item/slabs.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:snow_brick_slab", + "seasonsgreetings:gingerbread_slab", + "seasonsgreetings:gingerbread_brick_slab", + "seasonsgreetings:gingerbread_shingle_slab", + "seasonsgreetings:peppermint_slab", + "seasonsgreetings:chocolate_slab", + "seasonsgreetings:icing_slab" + ] +} diff --git a/src/main/resources/data/minecraft/tags/item/stairs.json b/src/main/resources/data/minecraft/tags/item/stairs.json new file mode 100644 index 0000000..8889166 --- /dev/null +++ b/src/main/resources/data/minecraft/tags/item/stairs.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:snow_brick_stairs", + "seasonsgreetings:gingerbread_stairs", + "seasonsgreetings:gingerbread_brick_stairs", + "seasonsgreetings:gingerbread_shingle_stairs", + "seasonsgreetings:peppermint_stairs", + "seasonsgreetings:chocolate_stairs", + "seasonsgreetings:icing_stairs" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/seasonsgreetings/loot_table/blocks/wreath.json b/src/main/resources/data/seasonsgreetings/loot_table/blocks/wreath.json index f529209..336ec31 100644 --- a/src/main/resources/data/seasonsgreetings/loot_table/blocks/wreath.json +++ b/src/main/resources/data/seasonsgreetings/loot_table/blocks/wreath.json @@ -46,6 +46,150 @@ } ] }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "seasonsgreetings:wreath", + "properties": { + "garland": "white_lights" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "seasonsgreetings:white_lights" + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "seasonsgreetings:wreath", + "properties": { + "garland": "red_lights" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "seasonsgreetings:red_lights" + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "seasonsgreetings:wreath", + "properties": { + "garland": "orange_lights" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "seasonsgreetings:orange_lights" + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "seasonsgreetings:wreath", + "properties": { + "garland": "yellow_lights" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "seasonsgreetings:yellow_lights" + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "seasonsgreetings:wreath", + "properties": { + "garland": "green_lights" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "seasonsgreetings:green_lights" + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "seasonsgreetings:wreath", + "properties": { + "garland": "blue_lights" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "seasonsgreetings:blue_lights" + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "seasonsgreetings:wreath", + "properties": { + "garland": "purple_lights" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "seasonsgreetings:purple_lights" + } + ] + }, + { + "rolls": 1, + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "seasonsgreetings:wreath", + "properties": { + "garland": "multicolor_lights" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "seasonsgreetings:multicolor_lights" + } + ] + }, { "rolls": 1, "conditions": [ diff --git a/src/main/resources/data/seasonsgreetings/tags/block/gingerbread_man_blacklist.json b/src/main/resources/data/seasonsgreetings/tags/block/gingerbread_man_blacklist.json new file mode 100644 index 0000000..ba3531c --- /dev/null +++ b/src/main/resources/data/seasonsgreetings/tags/block/gingerbread_man_blacklist.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:beds" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/seasonsgreetings/tags/item/buckets/milk.json b/src/main/resources/data/seasonsgreetings/tags/item/buckets/milk.json index fd9617e..89bfb61 100644 --- a/src/main/resources/data/seasonsgreetings/tags/item/buckets/milk.json +++ b/src/main/resources/data/seasonsgreetings/tags/item/buckets/milk.json @@ -1,4 +1,5 @@ { + "replace": false, "values": [ "minecraft:milk_bucket", { diff --git a/src/main/resources/data/seasonsgreetings/tags/item/fruitcake_fruits.json b/src/main/resources/data/seasonsgreetings/tags/item/fruitcake_fruits.json index d845e01..8943096 100644 --- a/src/main/resources/data/seasonsgreetings/tags/item/fruitcake_fruits.json +++ b/src/main/resources/data/seasonsgreetings/tags/item/fruitcake_fruits.json @@ -1,4 +1,5 @@ { + "replace": false, "values": [ "minecraft:sweet_berries", "minecraft:glow_berries", diff --git a/src/main/resources/data/seasonsgreetings/tags/item/gift_boxes.json b/src/main/resources/data/seasonsgreetings/tags/item/gift_boxes.json index c21d166..f42611a 100644 --- a/src/main/resources/data/seasonsgreetings/tags/item/gift_boxes.json +++ b/src/main/resources/data/seasonsgreetings/tags/item/gift_boxes.json @@ -1,4 +1,5 @@ { + "replace": false, "values": [ "seasonsgreetings:white_gift_box", "seasonsgreetings:light_gray_gift_box", diff --git a/src/main/resources/data/seasonsgreetings/tags/item/ice.json b/src/main/resources/data/seasonsgreetings/tags/item/ice.json index cb6b22a..8ae0b14 100644 --- a/src/main/resources/data/seasonsgreetings/tags/item/ice.json +++ b/src/main/resources/data/seasonsgreetings/tags/item/ice.json @@ -1,4 +1,5 @@ { + "replace": false, "values": [ "minecraft:ice", "minecraft:packed_ice", diff --git a/src/main/resources/data/seasonsgreetings/tags/item/snow_golem_noses.json b/src/main/resources/data/seasonsgreetings/tags/item/snow_golem_noses.json index f69c4a6..35e62c3 100644 --- a/src/main/resources/data/seasonsgreetings/tags/item/snow_golem_noses.json +++ b/src/main/resources/data/seasonsgreetings/tags/item/snow_golem_noses.json @@ -1,4 +1,5 @@ { + "replace": false, "values": [ "minecraft:carrot", "minecraft:potato", diff --git a/src/main/resources/data/seasonsgreetings/tags/item/string_lights.json b/src/main/resources/data/seasonsgreetings/tags/item/string_lights.json index 2b03447..f0d7229 100644 --- a/src/main/resources/data/seasonsgreetings/tags/item/string_lights.json +++ b/src/main/resources/data/seasonsgreetings/tags/item/string_lights.json @@ -1,4 +1,5 @@ { + "replace": false, "values": [ "seasonsgreetings:white_lights", "seasonsgreetings:red_lights", diff --git a/src/main/resources/data/seasonsgreetings/tags/worldgen/biome/has_witch_house.json b/src/main/resources/data/seasonsgreetings/tags/worldgen/biome/has_witch_house.json index d400eab..a9276b8 100644 --- a/src/main/resources/data/seasonsgreetings/tags/worldgen/biome/has_witch_house.json +++ b/src/main/resources/data/seasonsgreetings/tags/worldgen/biome/has_witch_house.json @@ -1,4 +1,5 @@ { + "replace": false, "values": [ { "id": "minecraft:dark_forest", diff --git a/src/main/resources/data/snowyspirit/tags/blocks/gingerbreads.json b/src/main/resources/data/snowyspirit/tags/blocks/gingerbreads.json new file mode 100644 index 0000000..5b12318 --- /dev/null +++ b/src/main/resources/data/snowyspirit/tags/blocks/gingerbreads.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:gingerbread_block", + "seasonsgreetings:gingerbread_bricks", + "seasonsgreetings:gingerbread_shingles" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/snowyspirit/tags/blocks/glow_lights.json b/src/main/resources/data/snowyspirit/tags/blocks/glow_lights.json new file mode 100644 index 0000000..f0d7229 --- /dev/null +++ b/src/main/resources/data/snowyspirit/tags/blocks/glow_lights.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:white_lights", + "seasonsgreetings:red_lights", + "seasonsgreetings:orange_lights", + "seasonsgreetings:yellow_lights", + "seasonsgreetings:green_lights", + "seasonsgreetings:blue_lights", + "seasonsgreetings:purple_lights" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/snowyspirit/tags/blocks/gumdrops.json b/src/main/resources/data/snowyspirit/tags/blocks/gumdrops.json new file mode 100644 index 0000000..2672057 --- /dev/null +++ b/src/main/resources/data/snowyspirit/tags/blocks/gumdrops.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:red_gumdrop", + "seasonsgreetings:orange_gumdrop", + "seasonsgreetings:yellow_gumdrop", + "seasonsgreetings:green_gumdrop", + "seasonsgreetings:purple_gumdrop" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/snowyspirit/tags/blocks/sled_snow.json b/src/main/resources/data/snowyspirit/tags/blocks/sled_snow.json new file mode 100644 index 0000000..f58dc5d --- /dev/null +++ b/src/main/resources/data/snowyspirit/tags/blocks/sled_snow.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:packed_snow", + "seasonsgreetings:snow_bricks", + "seasonsgreetings:snow_brick_stairs", + "seasonsgreetings:snow_brick_slab", + "seasonsgreetings:chiseled_snow" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/snowyspirit/tags/entity_types/gingy_targets.json b/src/main/resources/data/snowyspirit/tags/entity_types/gingy_targets.json new file mode 100644 index 0000000..feda4f3 --- /dev/null +++ b/src/main/resources/data/snowyspirit/tags/entity_types/gingy_targets.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:gingerbread_man" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/snowyspirit/tags/items/gingerbreads.json b/src/main/resources/data/snowyspirit/tags/items/gingerbreads.json new file mode 100644 index 0000000..5b12318 --- /dev/null +++ b/src/main/resources/data/snowyspirit/tags/items/gingerbreads.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:gingerbread_block", + "seasonsgreetings:gingerbread_bricks", + "seasonsgreetings:gingerbread_shingles" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/snowyspirit/tags/items/glow_lights.json b/src/main/resources/data/snowyspirit/tags/items/glow_lights.json new file mode 100644 index 0000000..f0d7229 --- /dev/null +++ b/src/main/resources/data/snowyspirit/tags/items/glow_lights.json @@ -0,0 +1,12 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:white_lights", + "seasonsgreetings:red_lights", + "seasonsgreetings:orange_lights", + "seasonsgreetings:yellow_lights", + "seasonsgreetings:green_lights", + "seasonsgreetings:blue_lights", + "seasonsgreetings:purple_lights" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/snowyspirit/tags/items/gumdrops.json b/src/main/resources/data/snowyspirit/tags/items/gumdrops.json new file mode 100644 index 0000000..2672057 --- /dev/null +++ b/src/main/resources/data/snowyspirit/tags/items/gumdrops.json @@ -0,0 +1,10 @@ +{ + "replace": false, + "values": [ + "seasonsgreetings:red_gumdrop", + "seasonsgreetings:orange_gumdrop", + "seasonsgreetings:yellow_gumdrop", + "seasonsgreetings:green_gumdrop", + "seasonsgreetings:purple_gumdrop" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/snowyspirit/tags/items/sled_container.json b/src/main/resources/data/snowyspirit/tags/items/sled_container.json new file mode 100644 index 0000000..f7c9715 --- /dev/null +++ b/src/main/resources/data/snowyspirit/tags/items/sled_container.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "#seasonsgreetings:gift_boxes" + ] +} \ No newline at end of file