Merge pull request #1520 from PepperCode1/mc1.16/reload-listeners

Tweak Reload Listener Classes
This commit is contained in:
simibubi 2021-05-02 17:39:29 +02:00 committed by GitHub
commit b086fbd1f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 46 additions and 65 deletions

View file

@ -3,31 +3,19 @@ package com.simibubi.create.content.contraptions.fluids.recipe;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import net.minecraft.client.resources.ReloadListener; import com.simibubi.create.foundation.utility.ISimpleReloadListener;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.profiler.IProfiler;
import net.minecraft.resources.IResourceManager;
public class FluidTransferRecipes { public class FluidTransferRecipes {
public static List<ItemStack> POTION_ITEMS = new ArrayList<>(); public static List<ItemStack> POTION_ITEMS = new ArrayList<>();
public static List<Item> FILLED_BUCKETS = new ArrayList<>(); public static List<Item> FILLED_BUCKETS = new ArrayList<>();
public static final ISimpleReloadListener LISTENER = (resourceManager, profiler) -> {
public static final ReloadListener<Object> LISTENER = new ReloadListener<Object>() {
@Override
protected Object prepare(IResourceManager p_212854_1_, IProfiler p_212854_2_) {
return new Object();
}
@Override
protected void apply(Object p_212853_1_, IResourceManager p_212853_2_, IProfiler p_212853_3_) {
POTION_ITEMS.clear(); POTION_ITEMS.clear();
FILLED_BUCKETS.clear(); FILLED_BUCKETS.clear();
}
}; };
} }

View file

@ -15,8 +15,8 @@ import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler
import com.simibubi.create.content.contraptions.processing.HeatCondition; import com.simibubi.create.content.contraptions.processing.HeatCondition;
import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder; import com.simibubi.create.content.contraptions.processing.ProcessingRecipeBuilder;
import com.simibubi.create.foundation.fluid.FluidIngredient; import com.simibubi.create.foundation.fluid.FluidIngredient;
import com.simibubi.create.foundation.utility.ISimpleReloadListener;
import net.minecraft.client.resources.ReloadListener;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.Ingredient; import net.minecraft.item.crafting.Ingredient;
@ -24,8 +24,6 @@ import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionBrewing; import net.minecraft.potion.PotionBrewing;
import net.minecraft.potion.PotionUtils; import net.minecraft.potion.PotionUtils;
import net.minecraft.potion.Potions; import net.minecraft.potion.Potions;
import net.minecraft.profiler.IProfiler;
import net.minecraft.resources.IResourceManager;
import net.minecraftforge.common.brewing.BrewingRecipeRegistry; import net.minecraftforge.common.brewing.BrewingRecipeRegistry;
import net.minecraftforge.common.brewing.IBrewingRecipe; import net.minecraftforge.common.brewing.IBrewingRecipe;
import net.minecraftforge.common.brewing.VanillaBrewingRecipe; import net.minecraftforge.common.brewing.VanillaBrewingRecipe;
@ -133,15 +131,7 @@ public class PotionMixingRecipeManager {
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
public static final ReloadListener<Object> LISTENER = new ReloadListener<Object>() { public static final ISimpleReloadListener LISTENER = (resourceManager, profiler) -> {
@Override
protected Object prepare(IResourceManager p_212854_1_, IProfiler p_212854_2_) {
return new Object();
}
@Override
protected void apply(Object p_212853_1_, IResourceManager p_212853_2_, IProfiler p_212853_3_) {
ALL.clear(); ALL.clear();
getAllBrewingRecipes().forEach(recipe -> { getAllBrewingRecipes().forEach(recipe -> {
for (Ingredient ingredient : recipe.getIngredients()) { for (Ingredient ingredient : recipe.getIngredients()) {
@ -152,8 +142,6 @@ public class PotionMixingRecipeManager {
} }
} }
}); });
}
}; };
} }

View file

@ -3,20 +3,15 @@ package com.simibubi.create.foundation;
import com.simibubi.create.CreateClient; import com.simibubi.create.CreateClient;
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation; import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
import com.simibubi.create.foundation.block.render.SpriteShifter; import com.simibubi.create.foundation.block.render.SpriteShifter;
import com.simibubi.create.foundation.utility.ISimpleReloadListener;
import net.minecraft.client.resources.ReloadListener;
import net.minecraft.profiler.IProfiler; import net.minecraft.profiler.IProfiler;
import net.minecraft.resources.IResourceManager; import net.minecraft.resources.IResourceManager;
public class ResourceReloadHandler extends ReloadListener<Object> { public class ResourceReloadHandler implements ISimpleReloadListener {
@Override @Override
protected Object prepare(IResourceManager resourceManagerIn, IProfiler profilerIn) { public void onReload(IResourceManager resourceManagerIn, IProfiler profilerIn) {
return new Object();
}
@Override
protected void apply(Object $, IResourceManager resourceManagerIn, IProfiler profilerIn) {
SpriteShifter.reloadUVs(); SpriteShifter.reloadUVs();
CreateClient.invalidateRenderers(); CreateClient.invalidateRenderers();
IHaveGoggleInformation.numberFormat.update(); IHaveGoggleInformation.numberFormat.update();

View file

@ -0,0 +1,23 @@
package com.simibubi.create.foundation.utility;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import net.minecraft.profiler.IProfiler;
import net.minecraft.resources.IFutureReloadListener;
import net.minecraft.resources.IResourceManager;
import net.minecraft.util.Unit;
@FunctionalInterface
public interface ISimpleReloadListener extends IFutureReloadListener {
@Override
default CompletableFuture<Void> reload(IFutureReloadListener.IStage stage, IResourceManager resourceManager, IProfiler prepareProfiler, IProfiler applyProfiler, Executor prepareExecutor, Executor applyExecutor) {
return stage.markCompleteAwaitingOthers(Unit.INSTANCE).thenRunAsync(() -> {
onReload(resourceManager, applyProfiler);
}, applyExecutor);
}
void onReload(IResourceManager resourceManager, IProfiler profiler);
}

View file

@ -10,11 +10,9 @@ import javax.annotation.Nullable;
import com.google.common.cache.Cache; import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheBuilder;
import com.simibubi.create.foundation.utility.ISimpleReloadListener;
import net.minecraft.client.resources.ReloadListener;
import net.minecraft.item.crafting.IRecipe; import net.minecraft.item.crafting.IRecipe;
import net.minecraft.profiler.IProfiler;
import net.minecraft.resources.IResourceManager;
import net.minecraft.world.World; import net.minecraft.world.World;
/** /**
@ -58,19 +56,8 @@ public class RecipeFinder {
return list; return list;
} }
public static final ISimpleReloadListener LISTENER = (resourceManager, profiler) -> {
public static final ReloadListener<Object> LISTENER = new ReloadListener<Object>() {
@Override
protected Object prepare(IResourceManager p_212854_1_, IProfiler p_212854_2_) {
return new Object();
}
@Override
protected void apply(Object p_212853_1_, IResourceManager p_212853_2_, IProfiler p_212853_3_) {
cachedSearches.invalidateAll(); cachedSearches.invalidateAll();
}
}; };
} }