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

Fix portal crafting

+8 -10
+4 -2
common/src/main/java/net/lerariemann/infinity/block/custom/InfinityPortalBlock.java
··· 7 7 import net.lerariemann.infinity.block.entity.InfinityPortalBlockEntity; 8 8 import net.lerariemann.infinity.dimensions.RandomDimension; 9 9 import net.lerariemann.infinity.item.PortalDataHolder; 10 + import net.lerariemann.infinity.registry.core.ModComponentTypes; 10 11 import net.lerariemann.infinity.registry.core.ModItemFunctions; 11 12 import net.lerariemann.infinity.registry.var.ModPoi; 13 + import net.lerariemann.infinity.util.BackportMethods; 12 14 import net.lerariemann.infinity.util.InfinityMethods; 13 15 import net.lerariemann.infinity.util.teleport.InfinityPortal; 14 16 import net.lerariemann.infinity.util.teleport.PortalCreator; ··· 172 174 NbtCompound nbtCompound = new NbtCompound(); 173 175 if (!item.equals(Items.AMETHYST_SHARD)) return nbtCompound; 174 176 int keycolor = WarpLogic.getKeyColorFromId(dim); 175 - nbtCompound.putInt("key_color", keycolor); 176 - nbtCompound.putString("key_destination", dim.toString()); 177 + nbtCompound.putInt(ModComponentTypes.KEY_COLOR, keycolor); 178 + nbtCompound.putString(ModComponentTypes.DESTINATION, dim.toString()); 177 179 return nbtCompound; 178 180 } 179 181
+2 -6
common/src/main/java/net/lerariemann/infinity/item/F4Item.java
··· 49 49 50 50 51 51 public static int getCharge(ItemStack f4) { 52 - if (f4.hasNbt()) { 53 - assert f4.getNbt() != null; 54 - return f4.getNbt().getInt("f4_charge"); 55 - } 56 - return 0; 52 + return BackportMethods.getOrDefaultInt(f4, ModComponentTypes.F4_CHARGE, 0); 57 53 } 58 54 59 55 @Override ··· 70 66 int size_x, int size_y) { 71 67 Direction.Axis dir2 = player.getHorizontalFacing().rotateClockwise(Direction.Axis.Y).getAxis(); 72 68 73 - int charges = getCharge(stack); 69 + int charges = BackportMethods.getOrDefaultInt(stack, ModComponentTypes.F4_CHARGE, 0); 74 70 int useCharges = player.isCreative() ? 0 : 2*(2 + size_x + size_y); 75 71 if (charges < useCharges) { 76 72 if (!world.isClient())
+1 -1
common/src/main/java/net/lerariemann/infinity/registry/core/ModItemFunctions.java
··· 124 124 if (match.isEmpty()) return; 125 125 126 126 ItemStack resStack = match.get().getOutput(w.getRegistryManager()); 127 - // componentFunction.apply(resStack.getItem()).ifPresent(resStack::applyChanges); 127 + resStack.setNbt(compound); 128 128 129 129 Vec3d v = itemEntity.getVelocity(); 130 130 ItemEntity result = new ItemEntity(w, itemEntity.getX(), itemEntity.getY(), itemEntity.getZ(),
+1 -1
common/src/main/java/net/lerariemann/infinity/util/InfinityMethods.java
··· 170 170 return stack.getNbt().getCompound("BlockEntityTag").getInt("Color"); 171 171 } 172 172 else if (stack.getItem().equals(ModItems.F4.get())) { 173 - return stack.getNbt().getInt(ModComponentTypes.KEY_COLOR); 173 + return BackportMethods.getOrDefaultInt(stack, ModComponentTypes.KEY_COLOR, 8388863); 174 174 } 175 175 } 176 176 return 0xFFFFFF;