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.List;
import net.minecraft.client.resources.ReloadListener;
import com.simibubi.create.foundation.utility.ISimpleReloadListener;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.profiler.IProfiler;
import net.minecraft.resources.IResourceManager;
public class FluidTransferRecipes {
public static List<ItemStack> POTION_ITEMS = new ArrayList<>();
public static List<Item> FILLED_BUCKETS = new ArrayList<>();
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();
FILLED_BUCKETS.clear();
}
public static final ISimpleReloadListener LISTENER = (resourceManager, profiler) -> {
POTION_ITEMS.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.ProcessingRecipeBuilder;
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.ItemStack;
import net.minecraft.item.crafting.Ingredient;
@ -24,8 +24,6 @@ import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionBrewing;
import net.minecraft.potion.PotionUtils;
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.IBrewingRecipe;
import net.minecraftforge.common.brewing.VanillaBrewingRecipe;
@ -133,27 +131,17 @@ public class PotionMixingRecipeManager {
.collect(Collectors.toList());
}
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_) {
ALL.clear();
getAllBrewingRecipes().forEach(recipe -> {
for (Ingredient ingredient : recipe.getIngredients()) {
for (ItemStack itemStack : ingredient.getMatchingStacks()) {
ALL.computeIfAbsent(itemStack.getItem(), t -> new ArrayList<>())
.add(recipe);
return;
}
public static final ISimpleReloadListener LISTENER = (resourceManager, profiler) -> {
ALL.clear();
getAllBrewingRecipes().forEach(recipe -> {
for (Ingredient ingredient : recipe.getIngredients()) {
for (ItemStack itemStack : ingredient.getMatchingStacks()) {
ALL.computeIfAbsent(itemStack.getItem(), t -> new ArrayList<>())
.add(recipe);
return;
}
});
}
}
});
};
}

View file

@ -3,20 +3,15 @@ package com.simibubi.create.foundation;
import com.simibubi.create.CreateClient;
import com.simibubi.create.content.contraptions.goggles.IHaveGoggleInformation;
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.resources.IResourceManager;
public class ResourceReloadHandler extends ReloadListener<Object> {
public class ResourceReloadHandler implements ISimpleReloadListener {
@Override
protected Object prepare(IResourceManager resourceManagerIn, IProfiler profilerIn) {
return new Object();
}
@Override
protected void apply(Object $, IResourceManager resourceManagerIn, IProfiler profilerIn) {
public void onReload(IResourceManager resourceManagerIn, IProfiler profilerIn) {
SpriteShifter.reloadUVs();
CreateClient.invalidateRenderers();
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.CacheBuilder;
import com.simibubi.create.foundation.utility.ISimpleReloadListener;
import net.minecraft.client.resources.ReloadListener;
import net.minecraft.item.crafting.IRecipe;
import net.minecraft.profiler.IProfiler;
import net.minecraft.resources.IResourceManager;
import net.minecraft.world.World;
/**
@ -58,19 +56,8 @@ public class RecipeFinder {
return list;
}
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();
}
public static final ISimpleReloadListener LISTENER = (resourceManager, profiler) -> {
cachedSearches.invalidateAll();
};
}