Skip to content

Commit

Permalink
hatdcoded thread safe isbrhs
Browse files Browse the repository at this point in the history
  • Loading branch information
FalsePattern committed Oct 4, 2024
1 parent 8e533ad commit b30da89
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,8 @@ private static List<TurboClassTransformer> transformers() {
transformers.add(new RenderGlobalDeOptimizer());
if (ModuleConfig.THREADED_CHUNK_UPDATES()) {
transformers.add(new Threading_RenderBlocksASM());
if (ThreadingConfig.THREAD_SAFE_ISBRHS.length > 0) {
transformers.add(new Threading_ThreadSafeBlockRendererInjector());
}
transformers.add(new Threading_TessellatorUseReplacement());
transformers.add(new Threading_ThreadSafeBlockRendererInjector());
transformers.add(new Threading_BlockMinMax());
transformers.add(new Threading_BlockMinMaxRedirector());
transformers.add(new Threading_GameSettings());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,36 @@ public class Threading_ThreadSafeBlockRendererInjector implements TurboClassTran
private static final Handle LAMBDA_META_FACTORY = new Handle(Opcodes.H_INVOKESTATIC, "java/lang/invoke/LambdaMetafactory", "metafactory",
"(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;");

static {
for (val entry: ThreadingConfig.THREAD_SAFE_ISBRHS) {
private static final String[] HARDCODED = new String[] {
"com.carpentersblocks.renderer.BlockHandlerCarpentersBarrier:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersBed:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersBlock:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersButton:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersCollapsibleBlock:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersDaylightSensor:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersDoor:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersFlowerPot:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersGarageDoor:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersGate:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersHatch:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersLadder:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersLever:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersPressurePlate:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersSafe:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersSlope:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersStairs:default!",
"com.carpentersblocks.renderer.BlockHandlerCarpentersTorch:default!",
"com.falsepattern.rple.api.client.render.LampRenderer:safe",
"com.jaquadro.minecraft.storagedrawers.client.renderer.ControllerRenderer:default!",
"com.jaquadro.minecraft.storagedrawers.client.renderer.DrawersCustomRenderer:default!",
"com.jaquadro.minecraft.storagedrawers.client.renderer.DrawersRenderer:default!",
"com.jaquadro.minecraft.storagedrawers.client.renderer.FramingTableRenderer:default!",
"com.jaquadro.minecraft.storagedrawers.client.renderer.TrimCustomRenderer:default!",
"net.minecraftforge.fluids.RenderBlockFluid:safe",
};

public static void addAll(String... entries) {
for (val entry : entries) {
val parts = entry.split(":");
val className = parts[0];
val internalName = className.replace('.', '/');
Expand All @@ -83,6 +111,10 @@ public class Threading_ThreadSafeBlockRendererInjector implements TurboClassTran
}
}
}
static {
addAll(HARDCODED);
addAll(ThreadingConfig.THREAD_SAFE_ISBRHS);
}

@Override
public String owner() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,7 @@ public class ThreadingConfig {
"Custom threadlocal managed by a utility mod (returns the same instance per thread): com.example.ExampleRenderer:com.mymod.ThreadTools?threadExampleRenderer\n" +
"All of these MUST be zero argument methods!")
@Config.LangKey("config.falsetweaks.threading.threadSafeISBRH")
@Config.DefaultStringList({
"net.minecraftforge.fluids.RenderBlockFluid:safe",
"com.falsepattern.rple.api.client.render.LampRenderer:safe"
})
@Config.DefaultStringList({})
@Config.ListMaxLength(Integer.MAX_VALUE)
@Config.StringMaxLength(65535)
@Config.RequiresMcRestart
Expand Down

0 comments on commit b30da89

Please sign in to comment.