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

Switch EIV for updated fork

+133 -112
-9
CHANGELOG-LATEST.md
··· 1 - ### Fixed 2 - - Star and sky rendering on 1.21.8. (Lera) 3 - - World shaders now work on 1.21.8 (Lera) 4 - - Loading root chances, which caused too many vanilla biomes in infinite dimensions. (Lera) 5 - - Sunset shading was misaligned on custom skies. (Lera) 6 - - Crash from `alphatree` on NeoForge. (Lera) 7 - - Iridesence tinting in EIV. (Cassian) 8 - - Crash rendering Chaos Pawns. (Cassian) 9 - - Crash on dedicated NeoForge servers. (Cassian)
+15
CHANGELOG.md
··· 1 + ## [6.0.1] 2 + 3 + ### Fixed 4 + - Star and sky rendering on 1.21.8. (Lera) 5 + - World shaders now work on 1.21.8 (Lera) 6 + - Loading root chances, which caused too many vanilla biomes in infinite dimensions. (Lera) 7 + - Sunset shading was misaligned on custom skies. (Lera) 8 + - Crash from `alphatree` on NeoForge. (Lera) 9 + - Iridesence tinting in EIV. (Cassian) 10 + - Crash rendering Chaos Pawns. (Cassian) 11 + - Crash on dedicated NeoForge servers. (Cassian) 12 + 13 + 14 + ## [6.0.0] 15 + 1 16 ### Added 2 17 - Backported all content from Infinite Dimensions v2.5 to 1.20.1. Primarily, this includes: 3 18 - A new amendments system, which allows for easy handling of modular config files - changing weights of any entries in any randomization pools or eliminating them altogether, based on a robust system of selectors. Default amendments bundled with the mod resolve some major earlier incompatibilities (aether, alex's caves, oritech) and it is recommended to have [Mod Menu](https://modrinth.com/mod/modmenu) and [Cloth Config](https://modrinth.com/mod/cloth-config) installed if you want to add more of them.
+20 -8
build.fabric.gradle.kts
··· 121 121 includeGroupAndSubgroups("com.jamieswhiteshirt") 122 122 } 123 123 } 124 + exclusiveContent { 125 + forRepository { 126 + maven { 127 + name = "Cassian's Maven" 128 + url = uri("https://maven.cassian.cc") 129 + } 130 + } 131 + filter { 132 + includeGroupAndSubgroups("cc.cassian") 133 + } 134 + } 135 + 124 136 } 125 137 126 138 dependencies { ··· 159 171 modLocalRuntime("dev.emi:emi-fabric:${property("deps.emi")}+${property("deps.minecraft")}") 160 172 } 161 173 162 - //EIV 163 - if (hasProperty("deps.eiv")) { 164 - modCompileOnly("maven.modrinth:eiv:${property("deps.eiv")}-fabric") 165 - modLocalRuntime("maven.modrinth:eiv:${property("deps.eiv")}-fabric") 174 + //RRV 175 + if (hasProperty("deps.rrv")) { 176 + modCompileOnly("cc.cassian.rrv:reliable-recipe-viewer-fabric:${property("deps.rrv")}") 177 + modLocalRuntime("cc.cassian.rrv:reliable-recipe-viewer-fabric:${property("deps.rrv")}") 166 178 } 167 179 168 180 // CC Tweaked ··· 284 296 if (hasProperty("deps.emi")) { 285 297 optional("emi") 286 298 } 287 - if (hasProperty("deps.eiv")) { 288 - optional("eiv") 299 + if (hasProperty("deps.rrv")) { 300 + optional("rrv") 289 301 } 290 302 } 291 303 ··· 300 312 if (hasProperty("deps.emi")) { 301 313 optional("emi") 302 314 } 303 - if (hasProperty("deps.eiv")) { 304 - optional("extended-itemview-eiv") 315 + if (hasProperty("deps.rrv")) { 316 + optional("extended-itemview-rrv") 305 317 } 306 318 } 307 319 }
+4 -4
build.forge.gradle.kts
··· 274 274 if (hasProperty("deps.emi")) { 275 275 optional("emi") 276 276 } 277 - if (hasProperty("deps.eiv")) { 278 - optional("eiv") 277 + if (hasProperty("deps.rrv")) { 278 + optional("rrv") 279 279 } 280 280 281 281 } ··· 290 290 if (hasProperty("deps.emi")) { 291 291 optional("emi") 292 292 } 293 - if (hasProperty("deps.eiv")) { 294 - optional("extended-itemview-eiv") 293 + if (hasProperty("deps.rrv")) { 294 + optional("extended-itemview-rrv") 295 295 } 296 296 } 297 297 }
+18 -6
build.neoforge.gradle.kts
··· 84 84 includeGroupAndSubgroups("com.tterrag") 85 85 } 86 86 } 87 + exclusiveContent { 88 + forRepository { 89 + maven { 90 + name = "Cassian's Maven" 91 + url = uri("https://maven.cassian.cc") 92 + } 93 + } 94 + filter { 95 + includeGroupAndSubgroups("cc.cassian") 96 + } 97 + } 98 + 87 99 } 88 100 89 101 neoForge { ··· 130 142 compileOnly("dev.emi:emi-neoforge:${property("deps.emi")}+${property("deps.minecraft")}:api") 131 143 implementation("dev.emi:emi-neoforge:${property("deps.emi")}+${property("deps.minecraft")}") 132 144 } 133 - if (hasProperty("deps.eiv")) { 134 - implementation("maven.modrinth:eiv:${property("deps.eiv")}-neoforge") 145 + if (hasProperty("deps.rrv")) { 146 + implementation("cc.cassian.rrv:reliable-recipe-viewer-neoforge:${property("deps.rrv")}") 135 147 } 136 148 137 149 ··· 225 237 if (hasProperty("deps.emi")) { 226 238 optional("emi") 227 239 } 228 - if (hasProperty("deps.eiv")) { 229 - optional("eiv") 240 + if (hasProperty("deps.rrv")) { 241 + optional("rrv") 230 242 } 231 243 } 232 244 ··· 240 252 if (hasProperty("deps.emi")) { 241 253 optional("emi") 242 254 } 243 - if (hasProperty("deps.eiv")) { 244 - optional("extended-itemview-eiv") 255 + if (hasProperty("deps.rrv")) { 256 + optional("extended-itemview-rrv") 245 257 } 246 258 } 247 259 }
+1 -1
gradle/wrapper/gradle-wrapper.properties
··· 1 1 distributionBase=GRADLE_USER_HOME 2 2 distributionPath=wrapper/dists 3 - distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip 3 + distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip 4 4 networkTimeout=10000 5 5 validateDistributionUrl=true 6 6 zipStoreBase=GRADLE_USER_HOME
+2 -2
src/main/java/net/lerariemann/infinity/compat/ModCompat.java
··· 29 29 public static final boolean DIMLIB = InfinityPlatform.INSTANCE.isModLoaded("dimlib"); 30 30 31 31 /** 32 - * Extended Item View (EIV) 32 + * Extended Item View (RRV) 33 33 * 1.21.4 focused recipe viewer 34 34 */ 35 - public static final boolean EIV = InfinityPlatform.INSTANCE.isModLoaded("eiv"); 35 + public static final boolean RRV = InfinityPlatform.INSTANCE.isModLoaded("rrv"); 36 36 37 37 /** 38 38 * FTB Essentials/Fabric Essentials
+11 -12
src/main/java/net/lerariemann/infinity/compat/eiv/EivIntegration.java src/main/java/net/lerariemann/infinity/compat/rrv/RrvIntegration.java
··· 1 - package net.lerariemann.infinity.compat.eiv; 1 + package net.lerariemann.infinity.compat.rrv; 2 2 3 - //? if >1.21.4 { 3 + //? if >1.21.7 { 4 4 5 - import de.crafty.eiv.common.api.IExtendedItemViewIntegration; 6 - import de.crafty.eiv.common.api.recipe.ItemView; 7 - import de.crafty.eiv.common.recipe.ServerRecipeManager; 5 + import cc.cassian.rrv.api.ReliableRecipeViewerPlugin; 6 + import cc.cassian.rrv.api.recipe.ItemView; 7 + import cc.cassian.rrv.common.recipe.ServerRecipeManager; 8 8 import net.lerariemann.infinity.InfinityMod; 9 - import net.lerariemann.infinity.compat.eiv.iridescence_crafting.IridescenceCraftingServerRecipe; 10 - import net.lerariemann.infinity.compat.eiv.iridescence_crafting.IridescenceCraftingViewRecipe; 11 - import net.lerariemann.infinity.compat.eiv.portal_crafting.PortalCraftingServerRecipe; 12 - import net.lerariemann.infinity.compat.eiv.portal_crafting.PortalCraftingViewRecipe; 9 + import net.lerariemann.infinity.compat.rrv.iridescence_crafting.IridescenceCraftingServerRecipe; 10 + import net.lerariemann.infinity.compat.rrv.iridescence_crafting.IridescenceCraftingViewRecipe; 11 + import net.lerariemann.infinity.compat.rrv.portal_crafting.PortalCraftingServerRecipe; 12 + import net.lerariemann.infinity.compat.rrv.portal_crafting.PortalCraftingViewRecipe; 13 13 import net.lerariemann.infinity.item.function.CollisionCraftingRecipe; 14 14 15 15 import java.util.Collections; 16 - import java.util.List; 17 16 18 - public class EivIntegration implements IExtendedItemViewIntegration { 17 + public class RrvIntegration implements ReliableRecipeViewerPlugin { 19 18 boolean initialized = false; 20 19 @Override 21 20 public void onIntegrationInitialize() { ··· 25 24 } 26 25 27 26 public static void initialize() { 28 - InfinityMod.LOGGER.info("Initializing Infinite Dimensions - EIV integration"); 27 + InfinityMod.LOGGER.info("Initializing Infinite Dimensions - RRV integration"); 29 28 // Serverside recipes 30 29 ItemView.addRecipeProvider(recipeList -> { 31 30 // Portal Crafting - serverside
+11 -11
src/main/java/net/lerariemann/infinity/compat/eiv/iridescence_crafting/IridescenceCraftingServerRecipe.java src/main/java/net/lerariemann/infinity/compat/rrv/iridescence_crafting/IridescenceCraftingServerRecipe.java
··· 1 - package net.lerariemann.infinity.compat.eiv.iridescence_crafting; 1 + package net.lerariemann.infinity.compat.rrv.iridescence_crafting; 2 2 3 3 //? if >1.21.4 { 4 4 5 - import de.crafty.eiv.common.api.recipe.EivRecipeType; 6 - import de.crafty.eiv.common.api.recipe.IEivServerRecipe; 7 - import de.crafty.eiv.common.recipe.util.EivTagUtil; 5 + import cc.cassian.rrv.api.TagUtil; 6 + import cc.cassian.rrv.api.recipe.ReliableServerRecipe; 7 + import cc.cassian.rrv.api.recipe.ReliableServerRecipeType; 8 8 import net.lerariemann.infinity.util.InfinityMethods; 9 9 import net.lerariemann.infinity.util.core.NbtUtils; 10 10 import net.minecraft.nbt.CompoundTag; ··· 12 12 import net.minecraft.world.item.ItemStack; 13 13 import net.minecraft.world.item.crafting.Ingredient; 14 14 15 - public class IridescenceCraftingServerRecipe implements IEivServerRecipe { 15 + public class IridescenceCraftingServerRecipe implements ReliableServerRecipe { 16 16 17 17 //Create a server recipe type (the id does not have to match your client side viewtype id) 18 - public static final EivRecipeType<IridescenceCraftingServerRecipe> TYPE = EivRecipeType.register( 18 + public static final ReliableServerRecipeType<IridescenceCraftingServerRecipe> TYPE = ReliableServerRecipeType.register( 19 19 InfinityMethods.getId("iridescence_crafting"), 20 20 () -> new IridescenceCraftingServerRecipe(null, null, null) 21 21 ); ··· 43 43 44 44 @Override 45 45 public void writeToTag(CompoundTag tag) { 46 - tag.put("ingredient", EivTagUtil.writeIngredient(this.input)); 47 - tag.put("result", EivTagUtil.encodeItemStackOnServer(this.output)); 46 + tag.put("ingredient", TagUtil.writeIngredient(this.input)); 47 + tag.put("result", TagUtil.encodeItemStackOnServer(this.output)); 48 48 tag.put("lore", StringTag.valueOf(this.lore)); 49 49 } 50 50 51 51 @Override 52 52 public void loadFromTag(CompoundTag tag) { 53 - this.input = EivTagUtil.readIngredient(NbtUtils.getCompound(tag, "ingredient")); 54 - this.output = EivTagUtil.decodeItemStackOnClient(NbtUtils.getCompound(tag, "result")); 53 + this.input = TagUtil.readIngredient(NbtUtils.getCompound(tag, "ingredient")); 54 + this.output = TagUtil.decodeItemStackOnClient(NbtUtils.getCompound(tag, "result")); 55 55 this.lore = NbtUtils.getString(tag,"lore"); 56 56 } 57 57 58 58 @Override 59 - public EivRecipeType<? extends IEivServerRecipe> getRecipeType() { 59 + public ReliableServerRecipeType<? extends ReliableServerRecipe> getRecipeType() { 60 60 return TYPE; 61 61 } 62 62 }
+7 -10
src/main/java/net/lerariemann/infinity/compat/eiv/iridescence_crafting/IridescenceCraftingViewRecipe.java src/main/java/net/lerariemann/infinity/compat/rrv/iridescence_crafting/IridescenceCraftingViewRecipe.java
··· 1 - package net.lerariemann.infinity.compat.eiv.iridescence_crafting; 1 + package net.lerariemann.infinity.compat.rrv.iridescence_crafting; 2 2 3 3 //? if >1.21.4 { 4 4 5 - import de.crafty.eiv.common.api.recipe.IEivRecipeViewType; 6 - import de.crafty.eiv.common.api.recipe.IEivViewRecipe; 7 - import de.crafty.eiv.common.recipe.inventory.RecipeViewMenu; 8 - import de.crafty.eiv.common.recipe.inventory.SlotContent; 5 + import cc.cassian.rrv.api.recipe.ReliableClientRecipeType; 6 + import cc.cassian.rrv.api.recipe.ReliableClientRecipe; 7 + import cc.cassian.rrv.common.recipe.inventory.RecipeViewMenu; 8 + import cc.cassian.rrv.common.recipe.inventory.SlotContent; 9 9 import net.lerariemann.infinity.item.PortalDataHolder; 10 10 import net.lerariemann.infinity.registry.core.ModBlocks; 11 11 import net.lerariemann.infinity.registry.core.ModComponentTypes; 12 - import net.lerariemann.infinity.registry.core.ModItems; 13 - import net.lerariemann.infinity.util.InfinityMethods; 14 12 import net.lerariemann.infinity.util.VersionMethods; 15 13 import net.lerariemann.infinity.util.var.ColorLogic; 16 14 import net.minecraft.client.resources.language.I18n; ··· 18 16 import net.minecraft.core.component.DataComponents; 19 17 import net.minecraft.network.chat.Component; 20 18 import net.minecraft.resources.ResourceLocation; 21 - import net.minecraft.world.item.ItemStack; 22 19 import net.minecraft.world.item.crafting.Ingredient; 23 20 import java.util.List; 24 21 25 - public class IridescenceCraftingViewRecipe implements IEivViewRecipe { 22 + public class IridescenceCraftingViewRecipe implements ReliableClientRecipe { 26 23 27 24 private final SlotContent input, output; 28 25 private String lore; ··· 44 41 } 45 42 46 43 @Override 47 - public IEivRecipeViewType getViewType() { 44 + public ReliableClientRecipeType getViewType() { 48 45 return IridescenceCraftingViewType.INSTANCE; 49 46 } 50 47
+4 -4
src/main/java/net/lerariemann/infinity/compat/eiv/iridescence_crafting/IridescenceCraftingViewType.java src/main/java/net/lerariemann/infinity/compat/rrv/iridescence_crafting/IridescenceCraftingViewType.java
··· 1 - package net.lerariemann.infinity.compat.eiv.iridescence_crafting; 1 + package net.lerariemann.infinity.compat.rrv.iridescence_crafting; 2 2 3 3 //? if >1.21.4 { 4 4 5 - import de.crafty.eiv.common.api.recipe.IEivRecipeViewType; 6 - import de.crafty.eiv.common.recipe.inventory.RecipeViewMenu; 5 + import cc.cassian.rrv.api.recipe.ReliableClientRecipeType; 6 + import cc.cassian.rrv.common.recipe.inventory.RecipeViewMenu; 7 7 import net.lerariemann.infinity.registry.core.ModBlocks; 8 8 import net.lerariemann.infinity.registry.core.ModItems; 9 9 import net.lerariemann.infinity.util.InfinityMethods; ··· 12 12 import net.minecraft.world.item.ItemStack; 13 13 import java.util.List; 14 14 15 - public class IridescenceCraftingViewType implements IEivRecipeViewType { 15 + public class IridescenceCraftingViewType implements ReliableClientRecipeType { 16 16 17 17 protected static final IridescenceCraftingViewType INSTANCE = new IridescenceCraftingViewType(); 18 18
+11 -12
src/main/java/net/lerariemann/infinity/compat/eiv/portal_crafting/PortalCraftingServerRecipe.java src/main/java/net/lerariemann/infinity/compat/rrv/portal_crafting/PortalCraftingServerRecipe.java
··· 1 - package net.lerariemann.infinity.compat.eiv.portal_crafting; 1 + package net.lerariemann.infinity.compat.rrv.portal_crafting; 2 2 3 3 //? if >1.21.4 { 4 4 5 - import de.crafty.eiv.common.api.recipe.EivRecipeType; 6 - import de.crafty.eiv.common.api.recipe.IEivServerRecipe; 7 - import de.crafty.eiv.common.recipe.util.EivTagUtil; 5 + import cc.cassian.rrv.api.TagUtil; 6 + import cc.cassian.rrv.api.recipe.ReliableServerRecipeType; 7 + import cc.cassian.rrv.api.recipe.ReliableServerRecipe; 8 8 import net.lerariemann.infinity.util.InfinityMethods; 9 9 import net.lerariemann.infinity.util.core.NbtUtils; 10 10 import net.minecraft.nbt.CompoundTag; 11 11 import net.minecraft.nbt.StringTag; 12 12 import net.minecraft.world.item.ItemStack; 13 13 import net.minecraft.world.item.crafting.Ingredient; 14 - import java.util.List; 15 14 16 - public class PortalCraftingServerRecipe implements IEivServerRecipe { 15 + public class PortalCraftingServerRecipe implements ReliableServerRecipe { 17 16 18 17 //Create a server recipe type (the id does not have to match your client side viewtype id) 19 - public static final EivRecipeType<PortalCraftingServerRecipe> TYPE = EivRecipeType.register( 18 + public static final ReliableServerRecipeType<PortalCraftingServerRecipe> TYPE = ReliableServerRecipeType.register( 20 19 InfinityMethods.getId("portal_crafting"), 21 20 () -> new PortalCraftingServerRecipe(null, null, null) 22 21 ); ··· 44 43 45 44 @Override 46 45 public void writeToTag(CompoundTag tag) { 47 - tag.put("ingredient", EivTagUtil.writeIngredient(this.input)); 48 - tag.put("result", EivTagUtil.encodeItemStackOnServer(this.output)); 46 + tag.put("ingredient", TagUtil.writeIngredient(this.input)); 47 + tag.put("result", TagUtil.encodeItemStackOnServer(this.output)); 49 48 tag.put("lore", StringTag.valueOf(this.lore)); 50 49 } 51 50 52 51 @Override 53 52 public void loadFromTag(CompoundTag tag) { 54 - this.input = EivTagUtil.readIngredient(NbtUtils.getCompound(tag, "ingredient")); 55 - this.output = EivTagUtil.decodeItemStackOnClient(NbtUtils.getCompound(tag, "result")); 53 + this.input = TagUtil.readIngredient(NbtUtils.getCompound(tag, "ingredient")); 54 + this.output = TagUtil.decodeItemStackOnClient(NbtUtils.getCompound(tag, "result")); 56 55 this.lore = NbtUtils.getString(tag, "lore"); 57 56 } 58 57 59 58 @Override 60 - public EivRecipeType<? extends IEivServerRecipe> getRecipeType() { 59 + public ReliableServerRecipeType<? extends ReliableServerRecipe> getRecipeType() { 61 60 return TYPE; 62 61 } 63 62 }
+8 -11
src/main/java/net/lerariemann/infinity/compat/eiv/portal_crafting/PortalCraftingViewRecipe.java src/main/java/net/lerariemann/infinity/compat/rrv/portal_crafting/PortalCraftingViewRecipe.java
··· 1 - package net.lerariemann.infinity.compat.eiv.portal_crafting; 1 + package net.lerariemann.infinity.compat.rrv.portal_crafting; 2 2 3 3 //? if >1.21.4 { 4 4 5 - import de.crafty.eiv.common.api.recipe.IEivRecipeViewType; 6 - import de.crafty.eiv.common.api.recipe.IEivViewRecipe; 7 - import de.crafty.eiv.common.recipe.inventory.RecipeViewMenu; 8 - import de.crafty.eiv.common.recipe.inventory.SlotContent; 5 + import cc.cassian.rrv.api.recipe.ReliableClientRecipe; 6 + import cc.cassian.rrv.api.recipe.ReliableClientRecipeType; 7 + import cc.cassian.rrv.common.recipe.inventory.RecipeViewMenu; 8 + import cc.cassian.rrv.common.recipe.inventory.SlotContent; 9 9 import net.lerariemann.infinity.item.PortalDataHolder; 10 - import net.lerariemann.infinity.item.function.CollisionCraftingRecipe; 11 10 import net.lerariemann.infinity.registry.core.ModComponentTypes; 12 11 import net.lerariemann.infinity.registry.core.ModItems; 13 - import net.lerariemann.infinity.util.InfinityMethods; 14 12 import net.lerariemann.infinity.util.VersionMethods; 15 13 import net.lerariemann.infinity.util.var.ColorLogic; 16 14 import net.minecraft.client.resources.language.I18n; ··· 18 16 import net.minecraft.core.component.DataComponents; 19 17 import net.minecraft.network.chat.Component; 20 18 import net.minecraft.resources.ResourceLocation; 21 - import net.minecraft.world.item.ItemStack; 19 + 22 20 import java.util.List; 23 - import java.util.Objects; 24 21 25 - public class PortalCraftingViewRecipe implements IEivViewRecipe { 22 + public class PortalCraftingViewRecipe implements ReliableClientRecipe { 26 23 27 24 private final SlotContent input, output; 28 25 private String lore; ··· 44 41 } 45 42 46 43 @Override 47 - public IEivRecipeViewType getViewType() { 44 + public ReliableClientRecipeType getViewType() { 48 45 return PortalCraftingViewType.INSTANCE; 49 46 } 50 47
+4 -4
src/main/java/net/lerariemann/infinity/compat/eiv/portal_crafting/PortalCraftingViewType.java src/main/java/net/lerariemann/infinity/compat/rrv/portal_crafting/PortalCraftingViewType.java
··· 1 - package net.lerariemann.infinity.compat.eiv.portal_crafting; 1 + package net.lerariemann.infinity.compat.rrv.portal_crafting; 2 2 3 3 //? if >1.21.4 { 4 4 5 - import de.crafty.eiv.common.api.recipe.IEivRecipeViewType; 6 - import de.crafty.eiv.common.recipe.inventory.RecipeViewMenu; 5 + import cc.cassian.rrv.api.recipe.ReliableClientRecipeType; 6 + import cc.cassian.rrv.common.recipe.inventory.RecipeViewMenu; 7 7 import net.lerariemann.infinity.registry.core.ModItems; 8 8 import net.lerariemann.infinity.util.InfinityMethods; 9 9 import net.minecraft.network.chat.Component; ··· 11 11 import net.minecraft.world.item.ItemStack; 12 12 import java.util.List; 13 13 14 - public class PortalCraftingViewType implements IEivRecipeViewType { 14 + public class PortalCraftingViewType implements ReliableClientRecipeType { 15 15 16 16 protected static final PortalCraftingViewType INSTANCE = new PortalCraftingViewType(); 17 17
+4 -5
src/main/java/net/lerariemann/infinity/mixin/eiv/FluidItemRendererMixin.java src/main/java/net/lerariemann/infinity/mixin/rrv/FluidItemRendererMixin.java
··· 1 - package net.lerariemann.infinity.mixin.eiv; 2 - 1 + package net.lerariemann.infinity.mixin.rrv; 2 + //? >1.21.4 3 + import cc.cassian.rrv.client.extra.FluidItemSpecialRenderer; 3 4 import com.llamalad7.mixinextras.injector.wrapoperation.Operation; 4 5 import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; 5 6 import com.llamalad7.mixinextras.sugar.Local; 6 - //? >1.21.4 7 - import de.crafty.eiv.common.extra.FluidItemSpecialRenderer; 8 7 import net.lerariemann.infinity.iridescence.*; 9 8 import net.lerariemann.infinity.registry.core.ModBlocks; 10 9 import net.minecraft.world.item.ItemStack; ··· 17 16 //? if >1.21.4 { 18 17 @Pseudo 19 18 @Mixin(FluidItemSpecialRenderer.class) 20 - // EIV only tints fluids if they are water. This provides the appropriate tinting to Iridescence. 19 + // RRV only tints fluids if they are water. This provides the appropriate tinting to Iridescence. 21 20 public class FluidItemRendererMixin { 22 21 23 22 @WrapOperation(method = "render(Lnet/minecraft/world/item/ItemStack;Lnet/minecraft/world/item/ItemDisplayContext;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;IIZ)V", at = @At(value = "INVOKE", target = "Ljava/awt/Color;getRed()I"))
+4 -4
src/main/java/net/lerariemann/infinity/util/platform/neoforge/InfinityModNeoforge.java
··· 2 2 3 3 //? neoforge { 4 4 import net.lerariemann.infinity.InfinityMod; 5 - import net.lerariemann.infinity.compat.CreateCompat; 6 5 //? if >1.21.4 { 7 6 import net.lerariemann.infinity.compat.ModCompat; 8 - import net.lerariemann.infinity.compat.eiv.EivIntegration; 7 + import net.lerariemann.infinity.compat.rrv.RrvIntegration; 9 8 //?} 9 + import net.lerariemann.infinity.compat.CreateCompat; 10 10 import net.lerariemann.infinity.registry.core.ModBlocks; 11 11 import net.lerariemann.infinity.registry.core.ModEntities; 12 12 import net.lerariemann.infinity.registry.core.ModItemFunctions; ··· 83 83 ModItemFunctions.registerDispenserBehaviour(); 84 84 // this is less than ideal but i cannot figure out why the proper solution isn't working 85 85 //? if >1.21.4 { 86 - if (ModCompat.EIV) 87 - EivIntegration.initialize(); 86 + if (ModCompat.RRV) 87 + RrvIntegration.initialize(); 88 88 //?} 89 89 } 90 90
+1 -1
src/main/resources/META-INF/neoforge.mods.toml
··· 36 36 ["lithium:options"] 37 37 "mixin.ai.poi.fast_portals" = false 38 38 39 - eiv = "net.lerariemann.infinity.compat.eiv.EivIntegration" 39 + rrv = "net.lerariemann.infinity.compat.rrv.RrvIntegration"
+2 -2
src/main/resources/fabric.mod.json
··· 27 27 "emi": [ 28 28 "net.lerariemann.infinity.compat.emi.EmiCompat" 29 29 ], 30 - "eiv": [ 31 - "net.lerariemann.infinity.compat.eiv.EivIntegration" 30 + "rrv": [ 31 + "net.lerariemann.infinity.compat.rrv.RrvIntegration" 32 32 ] 33 33 }, 34 34 "mixins": [
+1 -1
src/main/resources/infinity.mixins.json
··· 19 19 "core.ServerPlayerEntityMixin", 20 20 "core.SimpleRegistryMixin", 21 21 "core.StructureMixin", 22 - "eiv.FluidItemRendererMixin", 22 + "rrv.FluidItemRendererMixin", 23 23 "fixes.AquifierSamplerImplMixin", 24 24 "fixes.BeeGoalMixin", 25 25 "fixes.BeeGoalMixin$BeeGoalMixin2",
+1 -1
stonecutter.gradle.kts
··· 1 1 plugins { 2 2 id("dev.kikugie.stonecutter") 3 3 id("co.uzzu.dotenv.gradle") version "4.0.0" 4 - id("fabric-loom") version "1.12-SNAPSHOT" apply false 4 + id("fabric-loom") version "1.14-SNAPSHOT" apply false 5 5 id("net.neoforged.moddev") version "2.0.134" apply false 6 6 id("dev.kikugie.postprocess.jsonlang") version "2.1-beta.4" apply false 7 7 id("me.modmuss50.mod-publish-plugin") version "0.8.+" apply false
+1 -1
versions/1.21.10-fabric/gradle.properties
··· 5 5 publish.additionalVersions=1.21.9 6 6 mod.mc_dep_fabric=~1.21.9 <1.21.11 7 7 8 - deps.eiv=5.2.0+1.21.10 8 + deps.rrv=5.2.0+1.21.10 9 9 deps.cloth = 20.0.149 10 10 deps.modmenu=16.0.0-rc.1 11 11 deps.architectury = 18.0.6
+1 -1
versions/1.21.10-neoforge/gradle.properties
··· 5 5 publish.additionalVersions=1.21.9 6 6 mod.mc_dep_forgelike=[1.21.9, 1.21.10] 7 7 8 - deps.eiv=5.2.0+1.21.10 8 + deps.rrv=5.2.0+1.21.10 9 9 deps.cloth = 20.0.149 10 10 deps.architectury = 18.0.6
+1 -1
versions/1.21.8-fabric/gradle.properties
··· 4 4 5 5 mod.mc_dep_fabric=~1.21.6 <1.21.9 6 6 7 - deps.eiv=4.1.0+1.21.8 7 + deps.rrv=6.2.1+1.21.8 8 8 deps.cloth = 19.0.147 9 9 deps.modmenu=15.0.0-beta.3 10 10 deps.architectury = 17.0.8
+1 -1
versions/1.21.8-neoforge/gradle.properties
··· 4 4 5 5 mod.mc_dep_forgelike=[1.21.6, 1.21.8] 6 6 7 - deps.eiv=4.1.0+1.21.8 7 + deps.rrv=6.2.1+1.21.8 8 8 deps.cloth = 19.0.147 9 9 deps.architectury = 17.0.8 10 10 deps.cct = 1.116.1