Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
at create-6.0 41 lines 1.7 kB view raw
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}