Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
1package net.lerariemann.infinity.item;
2
3import net.lerariemann.infinity.block.entity.ChromaticBlockEntity;
4import net.lerariemann.infinity.registry.core.ModComponentTypes;
5import net.lerariemann.infinity.registry.core.ModItems;
6import net.lerariemann.infinity.util.BackportMethods;
7import net.lerariemann.infinity.util.var.ColorLogic;
8import net.minecraft.block.Block;
9import net.minecraft.block.BlockState;
10import net.minecraft.entity.player.PlayerEntity;
11import net.minecraft.item.BlockItem;
12import net.minecraft.item.ItemStack;
13import net.minecraft.text.Style;
14import net.minecraft.text.Text;
15import net.minecraft.util.Hand;
16import net.minecraft.util.math.BlockPos;
17import net.minecraft.world.World;
18import org.jetbrains.annotations.Nullable;
19
20public class ChromaticBlockItem extends BlockItem implements PortalDataHolder {
21 public ChromaticBlockItem(Block block, Settings settings) {
22 super(block, settings);
23 }
24
25 //todo: implement this properly
26 @Override
27 protected boolean postPlacement(BlockPos pos, World world, @Nullable PlayerEntity player, ItemStack stack, BlockState state) {
28 boolean bl = writeNbtToBlockEntity(world, player, pos, stack);
29 if (player != null && player.getStackInHand(Hand.OFF_HAND)
30 .isOf(ModItems.CHROMATIC_MATTER.get())
31 && world.getBlockEntity(pos) instanceof ChromaticBlockEntity cbe) {
32 cbe.setColor(BackportMethods.getOrDefaultInt(stack, ModComponentTypes.COLOR, 0xFFFFFF));
33 }
34 return bl;
35 }
36
37 @Override
38 public Text getName() {
39 return Text.translatable(this.getTranslationKey()).setStyle(Style.EMPTY.withColor(ColorLogic.defaultChromatic));
40 }
41}