Add ISimpleReloadListener
ISimpleReloadListener is a reload listener functional interface meant to be used when preparation is not needed. All current reload listeners have been moved to this interface, which allows them to be lambdas and not have to create a new Object for every reload.
This commit is contained in:
parent
559146ef04
commit
61f2a35a61
5 changed files with 46 additions and 59 deletions
|
@ -3,7 +3,8 @@ 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;
|
||||
|
@ -14,20 +15,9 @@ 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_) {
|
||||
public static final ISimpleReloadListener LISTENER = (IResourceManager resourceManager, IProfiler profiler) -> {
|
||||
POTION_ITEMS.clear();
|
||||
FILLED_BUCKETS.clear();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
@ -133,15 +133,7 @@ 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_) {
|
||||
public static final ISimpleReloadListener LISTENER = (IResourceManager resourceManager, IProfiler profiler) -> {
|
||||
ALL.clear();
|
||||
getAllBrewingRecipes().forEach(recipe -> {
|
||||
for (Ingredient ingredient : recipe.getIngredients()) {
|
||||
|
@ -152,8 +144,6 @@ public class PotionMixingRecipeManager {
|
|||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
|
||||
}
|
|
@ -10,8 +10,8 @@ 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;
|
||||
|
@ -58,19 +58,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_) {
|
||||
public static final ISimpleReloadListener LISTENER = (IResourceManager resourceManager, IProfiler profiler) -> {
|
||||
cachedSearches.invalidateAll();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue