diff --git a/src/main/java/com/acethewildfire/acesbs/block/custom/EntropyBlock.java b/src/main/java/com/acethewildfire/acesbs/block/custom/EntropyBlock.java index 48c82e9..c15fa1b 100644 --- a/src/main/java/com/acethewildfire/acesbs/block/custom/EntropyBlock.java +++ b/src/main/java/com/acethewildfire/acesbs/block/custom/EntropyBlock.java @@ -1,22 +1,28 @@ package com.acethewildfire.acesbs.block.custom; import com.acethewildfire.acesbs.AcesBS; +import com.acethewildfire.acesbs.item.ModItems; +import com.acethewildfire.acesbs.util.ModTags; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.ItemEntity; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.item.tooltip.TooltipType; import net.minecraft.registry.Registries; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; +import net.minecraft.text.Text; import net.minecraft.util.ActionResult; import net.minecraft.util.Identifier; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; +import java.util.List; import java.util.Random; public class EntropyBlock extends Block { @@ -35,14 +41,18 @@ public class EntropyBlock extends Block { @Override public void onSteppedOn(World world, BlockPos pos, BlockState state, Entity entity) { if (entity instanceof ItemEntity itemEntity){ - int chance = r.nextInt(1,21); // 1-20 - int itemIndex = r.nextInt(1, Registries.ITEM.size()+1); + if(isValidItem(itemEntity.getStack())){ + int chance = r.nextInt(1,21); // 1-20 + int itemIndex = r.nextInt(1, Registries.ITEM.size()+1); - if (chance == 20) { itemEntity.setStack(new ItemStack(itemEntity.getStack().getItem(), itemEntity.getStack().getCount() - 1)); - world.playSound(itemEntity, pos, SoundEvents.BLOCK_AMETHYST_BLOCK_CHIME, SoundCategory.BLOCKS, 10f, 1f); - ItemEntity convItem = new ItemEntity(world, itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), new ItemStack(Registries.ITEM.get(Identifier.of(AcesBS.MOD_ID, "lemon")), 1)); - world.spawnEntity(convItem); + if (chance == 20) { + world.playSound(itemEntity, pos, SoundEvents.BLOCK_AMETHYST_BLOCK_CHIME, SoundCategory.BLOCKS, 10f, 1f); + ItemEntity convItem = new ItemEntity(world, itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(), new ItemStack(Registries.ITEM.get(Identifier.of(AcesBS.MOD_ID, "lemon")), 1)); + world.spawnEntity(convItem); + } else { + world.playSound(itemEntity, pos, SoundEvents.ITEM_FIRECHARGE_USE, SoundCategory.BLOCKS, 10f, 1f); + } } } @@ -54,4 +64,15 @@ public class EntropyBlock extends Block { super.onSteppedOn(world, pos, state, entity); } + + private boolean isValidItem(ItemStack stack) { + return stack.isIn(ModTags.Items.ENTROPY_CONVERTABLE); + } + + @Override + public void appendTooltip(ItemStack stack, Item.TooltipContext context, List tooltip, TooltipType options) { + tooltip.add(Text.translatable("tooltip.acesbs.entropy_block.tooltip")); + tooltip.add(Text.translatable("tooltip.acesbs.entropy_block.tooltip2")); + super.appendTooltip(stack, context, tooltip, options); + } } diff --git a/src/main/java/com/acethewildfire/acesbs/block/custom/StableEntropyBlock.java b/src/main/java/com/acethewildfire/acesbs/block/custom/StableEntropyBlock.java index 2b97eae..157f66b 100644 --- a/src/main/java/com/acethewildfire/acesbs/block/custom/StableEntropyBlock.java +++ b/src/main/java/com/acethewildfire/acesbs/block/custom/StableEntropyBlock.java @@ -4,12 +4,17 @@ import com.acethewildfire.acesbs.AcesBS; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.Entity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.tooltip.TooltipType; +import net.minecraft.text.Text; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; import net.minecraft.util.math.Direction.AxisDirection; import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; +import java.util.List; import java.util.Random; public class StableEntropyBlock extends Block { @@ -30,4 +35,10 @@ public class StableEntropyBlock extends Block { super.onSteppedOn(world, pos, state, entity); } + + @Override + public void appendTooltip(ItemStack stack, Item.TooltipContext context, List tooltip, TooltipType options) { + tooltip.add(Text.translatable("tooltip.acesbs.stable_entropy_block.tooltip")); + super.appendTooltip(stack, context, tooltip, options); + } } diff --git a/src/main/java/com/acethewildfire/acesbs/item/ModItems.java b/src/main/java/com/acethewildfire/acesbs/item/ModItems.java index a9210d3..740a82b 100644 --- a/src/main/java/com/acethewildfire/acesbs/item/ModItems.java +++ b/src/main/java/com/acethewildfire/acesbs/item/ModItems.java @@ -2,17 +2,23 @@ package com.acethewildfire.acesbs.item; import com.acethewildfire.acesbs.AcesBS; import com.acethewildfire.acesbs.item.custom.OracleLemon; +import net.minecraft.client.gui.screen.Screen; import net.minecraft.component.DataComponentTypes; import net.minecraft.component.type.PotionContentsComponent; import net.minecraft.entity.effect.StatusEffectInstance; import net.minecraft.entity.effect.StatusEffects; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.tooltip.TooltipType; import net.minecraft.potion.Potion; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; +import java.util.List; + public class ModItems { private static final RegistryEntry BLINDNESS = registerPotion("blindness", new Potion(new StatusEffectInstance(StatusEffects.BLINDNESS, 200))); @@ -21,7 +27,18 @@ public class ModItems { public static final Item STABLE_ENTROPY = registerItem("stable_entropy", new Item(new Item.Settings())); public static final Item LEMON = registerItem("lemon", new Item(new Item.Settings().food(ModFoodComponent.LEMON))); public static final Item COOKED_LEMON = registerItem("cooked_lemon", new Item(new Item.Settings().food(ModFoodComponent.COOKED_LEMON))); - public static final Item GREEN_BRICKS = registerItem("green_bricks", new Item(new Item.Settings())); + public static final Item GREEN_BRICKS = registerItem("green_bricks", new Item(new Item.Settings()) { + @Override + public void appendTooltip(ItemStack stack, TooltipContext context, List tooltip, TooltipType type) { + if(Screen.hasShiftDown()){ + tooltip.add(Text.translatable("tooltip.acesbs.green_bricks.shift_down")); + } + else { + tooltip.add(Text.translatable("tooltip.acesbs.green_bricks")); + } + super.appendTooltip(stack, context, tooltip, type); + } + }); private static Item registerItem(String name, Item item){ return Registry.register(Registries.ITEM, Identifier.of(AcesBS.MOD_ID, name), item); diff --git a/src/main/java/com/acethewildfire/acesbs/util/ModTags.java b/src/main/java/com/acethewildfire/acesbs/util/ModTags.java new file mode 100644 index 0000000..0fe5007 --- /dev/null +++ b/src/main/java/com/acethewildfire/acesbs/util/ModTags.java @@ -0,0 +1,24 @@ +package com.acethewildfire.acesbs.util; + +import com.acethewildfire.acesbs.AcesBS; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.tag.TagKey; +import net.minecraft.util.Identifier; + +public class ModTags { + public static class Blocks { + private static TagKey createTag(String name){ + return TagKey.of(RegistryKeys.BLOCK, Identifier.of(AcesBS.MOD_ID, name)); + } + } + + public static class Items { + public static final TagKey ENTROPY_CONVERTABLE = createTag("entropy_convertable"); + + private static TagKey createTag(String name){ + return TagKey.of(RegistryKeys.ITEM, Identifier.of(AcesBS.MOD_ID, name)); + } + } +} diff --git a/src/main/resources/assets/acesbs/lang/en_us.json b/src/main/resources/assets/acesbs/lang/en_us.json index e1925ca..861930d 100644 --- a/src/main/resources/assets/acesbs/lang/en_us.json +++ b/src/main/resources/assets/acesbs/lang/en_us.json @@ -5,13 +5,22 @@ "item.acesbs.lemon": "Odd Lemon", "item.acesbs.cooked_lemon": "Cooked Odd Lemon", "item.acesbs.green_bricks": "Green Bricks", + "item.minecraft.potion.effect.blindness": "Potion of Blindness", "item.minecraft.splash_potion.effect.blindness": "Splash Potion of Blindness", "item.minecraft.lingering_potion.effect.blindness": "Lingering Potion of Blindness", "item.minecraft.tipped_arrow.effect.blindness": "Arrow of Blindness", + "block.acesbs.entropy_block": "Block of Entropy", "block.acesbs.entropy_ore": "Entropic Ore", "block.acesbs.stable_entropy_block": "Block of Stabilized Entropy", + "itemgroup.acesbs.items": "Ace's BS Items", - "itemgroup.acesbs.blocks": "Ace's BS Blocks" + "itemgroup.acesbs.blocks": "Ace's BS Blocks", + + "tooltip.acesbs.entropy_block.tooltip": "Exerts an §o§4uncertain force§r when stepped on.", + "tooltip.acesbs.stable_entropy_block.tooltip": "Exerts an §o§2upward force§r when stepped on.", + "tooltip.acesbs.green_bricks.shift_down": "§o§7Useless Item§r", + "tooltip.acesbs.green_bricks": "Hold §eShift§r for item description.", + "tooltip.acesbs.entropy_block.tooltip2": "Has a 1/20 chance of turning an apple into a lemon." } \ No newline at end of file diff --git a/src/main/resources/data/acesbs/tags/item/entropy_convertable.json b/src/main/resources/data/acesbs/tags/item/entropy_convertable.json new file mode 100644 index 0000000..8f7c958 --- /dev/null +++ b/src/main/resources/data/acesbs/tags/item/entropy_convertable.json @@ -0,0 +1,5 @@ +{ + "values": [ + "minecraft:apple" + ] +} \ No newline at end of file