Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.

bishop battle does not need rightclick. wiki start

Lera 733b7106 44b0c1b3

+94 -6
+8
docs/_meta.json
··· 1 + { 2 + "blocks-and-items.mdx": "Blocks and Items", 3 + "Configuring-the-mod.mdx": "Configuring the mod", 4 + "Updating-the-mod.mdx": "Updating the mod", 5 + "easter-eggs.mdx": "Easter egg dimensions", 6 + "Invocation.mdx": "Cosmic Invocation", 7 + "dimension-options.mdx": "Custom dimension options" 8 + }
+72
docs/blocks-and-items.mdx
··· 1 + --- 2 + title: Blocks and Items 3 + hide_meta: true 4 + --- 5 + 6 + ## Ant Block 7 + 8 + An implementation of the Langton's Ant algorithm, it is a block that moves when placed on white and black blocks and transmutes them to opposite color. 9 + 10 + ## Biome Bottle 11 + 12 + Biome Bottles allow for changing the surrounding biome to one obtained from a Chaos Creeper. 13 + - Empty ones are obtainable by throwing Glass Bottles into an Infinity Portal 14 + - Using a Biome Bottle on a Chaos Creeper will extract the biome from the Creeper into the bottle. 15 + - You can combine with other bottles of the same biome to increase stored charge in the crafting grid. 16 + - You can release the biome by placing the Biome Bottle on a Transfinite Altar, and then clicking the altar with an empty hand. 17 + 18 + ## Box of Infinite Books 19 + 20 + The Box of Infinite Books will give an infinite amount of the same book, determined by the block's position in the world. 21 + Move the Book Box, you'll get new books. 22 + 23 + - The Box of Infinite Books is craftable by throwing Bookshelf blocks into an Infinity Portal. 24 + 25 + ## A Very Fine Item 26 + 27 + When eaten, A Very Fine Item will send you back to your respawn point. 28 + 29 + ## Footprint 30 + 31 + Footprint items can be thrown to the portal to make it exit-only. Such portals serve as valid destinations for teleporting from any dimension in case a dedicated portal 32 + for that dimension can not be found. Useful in multiplayer to prevent generation of new exit portals around your base if someone else overwrites the original portal. 33 + 34 + ## Iridescence 35 + 36 + Iridescence is a colourful fluid that when touched gives the player colourful shaders and when drank from a bottle, sends you on a journey through dimensions. 37 + Iridescence will also can convert mobs to their chaos variety (skeletons, creepers and slimes). 38 + Chaos Creepers will inherit the biome in which they are in when converted, which can be quite useful when paired with Biome Bottles. 39 + 40 + ## Infinity Portal 41 + 42 + The Infinity Portal is the base of the mod. Throwing a Book and Quill, Written Book, or Transfinite Key into a Nether Portal 43 + will convert it into a colourful and random Infinity Portal. 44 + 45 + - Infinity Portals can also be used for Portal Crafting, tossing various items in will result in them changing form (TNT to Reset Charge, Lectern to Transfinite Altar, etc.) 46 + A full list of crafting recipes can be found in EMI. 47 + 48 + ## Reset Charge 49 + 50 + The Reset Charge is an anti-lag tool that can be used to erase dimension definition files - if you place and activate one, 51 + the dimension you're in becomes "timebombed" which means it will be deleted on the next server restart. 52 + It is immediately unusable and all existing players rapidly start taking damage to get them out. 53 + HOWEVER, the chunk data is not erased, so if the dimension is reopened, all the block changes in there will still be present. 54 + 55 + - Obtained by throwing TNT into an Infinity Portal. 56 + - Activated by Shift + Right Click with an empty hand. 57 + - Right click picks them up. 58 + 59 + They are not usable in non-infinite dimensions. 60 + 61 + ## Transfinite Key 62 + 63 + Transfinite Keys can be used to move and copy portals. 64 + - Throwing an Amethyst Shard into an Infinity Portal will give you a key linked to that dimension. 65 + - Throwing a Transfinite Key into a Nether or Infinity Portal will create a portal that links to the dimension stored inside the key. 66 + 67 + ## Transfinite Altar 68 + 69 + Transfinite Altars have multiple unique purposes. 70 + - As a decorative block, they can be dyed by right clicking with a dye (like signs), and given a pattern by right clicking with a sunflower. 71 + - When a Biome Bottle is placed on them, they can be right clicked to release the biome inside to the surrounding area. 72 + - Placing an Ant Block on one summons a miniboss, the Bishop of Lang.
+5
docs/sinytra-wiki.json
··· 1 + { 2 + "id": "infinite-dimensions", 3 + "platform": "modrinth", 4 + "slug": "infinite-dimensions" 5 + }
-5
src/main/java/net/lerariemann/infinity/block/custom/AltarBlock.java
··· 130 130 ModCriteria.BIOME_BOTTLE.get().trigger(player, bbbe); 131 131 bbbe.startTicking(); 132 132 } 133 - //bishop miniboss battle 134 - if (world.getBlockState(pos.above()).is(ModBlocks.ANT.get())) { 135 - world.removeBlock(pos.above(), false); 136 - (new BishopBattle(world)).start(pos.above()); 137 - } 138 133 } 139 134 140 135 @Override
+9 -1
src/main/java/net/lerariemann/infinity/block/custom/AntBlock.java
··· 1 1 package net.lerariemann.infinity.block.custom; 2 2 3 + import net.lerariemann.infinity.registry.core.ModBlocks; 3 4 import net.lerariemann.infinity.util.platform.InfinityPlatform; 4 5 import net.lerariemann.infinity.util.VersionMethods; 6 + import net.lerariemann.infinity.util.var.BishopBattle; 5 7 import net.minecraft.MethodsReturnNonnullByDefault; 6 8 import net.minecraft.core.BlockPos; 7 9 import net.minecraft.core.Direction; ··· 148 150 } 149 151 @Override 150 152 public void onPlace(BlockState state, Level world, BlockPos pos, BlockState oldState, boolean notify) { 151 - world.scheduleTick(pos, this, 1); 153 + //bishop miniboss battle 154 + if (world instanceof ServerLevel level && world.getBlockState(pos.below()).is(ModBlocks.ALTAR.get())) { 155 + world.removeBlock(pos, false); 156 + world.removeBlock(pos.below(), false); 157 + (new BishopBattle(level)).start(pos.below()); 158 + } 159 + else world.scheduleTick(pos, this, 1); 152 160 } 153 161 154 162 protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {