Skip to content

Commit b6df448

Browse files
committed
- 尝试修复 #19 x2。
1 parent bbd8cc1 commit b6df448

File tree

6 files changed

+43
-98
lines changed

6 files changed

+43
-98
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package github.kasuminova.stellarcore.client.integration.railcraft;
2+
3+
import net.minecraft.client.renderer.block.model.IBakedModel;
4+
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
5+
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
6+
import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
7+
import net.minecraft.util.ResourceLocation;
8+
import net.minecraftforge.client.model.IModel;
9+
10+
import javax.annotation.Nullable;
11+
import java.util.Set;
12+
import java.util.function.Function;
13+
14+
public class RCModelBaker {
15+
16+
@Nullable
17+
public static IBakedModel load(final Set<ModelResourceLocation> modelRL, final IModel model, Function<ResourceLocation, TextureAtlasSprite> textureGetter) {
18+
boolean detected = false;
19+
for (final ModelResourceLocation rl : modelRL) {
20+
if (rl.getNamespace().startsWith("railcraft")) {
21+
detected = true;
22+
break;
23+
}
24+
}
25+
if (detected) {
26+
synchronized (RCModelBaker.class) {
27+
return model.bake(model.getDefaultState(), DefaultVertexFormats.ITEM, textureGetter);
28+
}
29+
}
30+
return null;
31+
}
32+
33+
}

src/main/java/github/kasuminova/stellarcore/mixin/StellarCoreLateMixinLoader.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ public class StellarCoreLateMixinLoader implements ILateMixinLoader {
6060
addModdedMixinCFG("mixins.stellar_core_modularrouters.json", "modularrouters");
6161
addMixinCFG( "mixins.stellar_core_nco.json", Mods.NCO::loaded);
6262
addModdedMixinCFG("mixins.stellar_core_psi.json", "psi");
63-
addModdedMixinCFG("mixins.stellar_core_railcraft.json", "railcraft", () -> StellarCoreConfig.PERFORMANCE.vanilla.parallelModelLoader);
6463
addModdedMixinCFG("mixins.stellar_core_rgb_chat.json", "jianghun");
6564
addModdedMixinCFG("mixins.stellar_core_scalingguis.json", "scalingguis");
6665
addModdedMixinCFG("mixins.stellar_core_specialmobs.json", "specialmobs");

src/main/java/github/kasuminova/stellarcore/mixin/minecraft/forge/parallelmodelloader/MixinModelLoader.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.google.common.base.Joiner;
44
import com.google.common.collect.HashMultimap;
55
import com.llamalad7.mixinextras.sugar.Local;
6+
import github.kasuminova.stellarcore.client.integration.railcraft.RCModelBaker;
67
import github.kasuminova.stellarcore.common.config.StellarCoreConfig;
78
import github.kasuminova.stellarcore.common.util.ClassUtils;
89
import github.kasuminova.stellarcore.common.util.StellarLog;
@@ -95,8 +96,10 @@ private void injectInit(final IResourceManager resourceManagerIn, final TextureM
9596
long startTime = System.currentTimeMillis();
9697

9798
Map<IModel, IBakedModel> bakedModelsConcurrent = new NonBlockingHashMap<>();
99+
DefaultTextureGetter textureGetter = new DefaultTextureGetter();
98100
models.keySet().stream().parallel().forEach((model) -> {
99-
String modelLocations = "[" + Joiner.on(", ").join(models.get(model)) + "]";
101+
Set<ModelResourceLocation> locations = models.get(model);
102+
String modelLocations = "[" + Joiner.on(", ").join(locations) + "]";
100103
synchronized (bakeBar) {
101104
bakeBar.step(modelLocations);
102105
}
@@ -107,7 +110,12 @@ private void injectInit(final IResourceManager resourceManagerIn, final TextureM
107110
}
108111

109112
try {
110-
bakedModelsConcurrent.put(model, model.bake(model.getDefaultState(), DefaultVertexFormats.ITEM, new DefaultTextureGetter()));
113+
IBakedModel loaded = RCModelBaker.load(locations, model, textureGetter);
114+
if (loaded != null) {
115+
bakedModelsConcurrent.put(model, loaded);
116+
return;
117+
}
118+
bakedModelsConcurrent.put(model, model.bake(model.getDefaultState(), DefaultVertexFormats.ITEM, textureGetter));
111119
} catch (Exception e) {
112120
if (!StellarCoreConfig.FEATURES.vanilla.shutUpModelLoader) {
113121
FMLLog.log.error("Exception baking model for location(s) {}:", modelLocations, e);

src/main/java/github/kasuminova/stellarcore/mixin/railcraft/MixinActuatorModel.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

src/main/java/github/kasuminova/stellarcore/mixin/railcraft/MixinOutfittedTrackModel.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

src/main/resources/mixins.stellar_core_railcraft.json

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)