Skip to content

Commit bbd8cc1

Browse files
committed
- 尝试修复 #19
1 parent 8367380 commit bbd8cc1

File tree

5 files changed

+98
-1
lines changed

5 files changed

+98
-1
lines changed

build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ plugins {
1212

1313
// Project properties
1414
group = "github.kasuminova.stellarcore"
15-
version = "1.5.16"
15+
version = "1.5.17"
1616

1717
// Set the toolchain version to decouple the Java we run Gradle with from the Java used to compile and run the mod
1818
java {
@@ -293,6 +293,7 @@ dependencies {
293293
compileOnly(rfg.deobf("curse.maven:dme-737252:5043404"))
294294
compileOnly(rfg.deobf("curse.maven:bountifulbaubles-313536:3568240"))
295295
compileOnly(rfg.deobf("curse.maven:special-mobs-59968:3320102"))
296+
implementation(rfg.deobf("curse.maven:railcraft-51195:3853491"))
296297
}
297298

298299
// IDE Settings

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ 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);
6364
addModdedMixinCFG("mixins.stellar_core_rgb_chat.json", "jianghun");
6465
addModdedMixinCFG("mixins.stellar_core_scalingguis.json", "scalingguis");
6566
addModdedMixinCFG("mixins.stellar_core_specialmobs.json", "specialmobs");
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package github.kasuminova.stellarcore.mixin.railcraft;
2+
3+
import mods.railcraft.client.render.models.resource.ActuatorModel;
4+
import net.minecraft.block.state.IBlockState;
5+
import net.minecraft.client.renderer.block.model.IBakedModel;
6+
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
7+
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
8+
import net.minecraft.client.renderer.vertex.VertexFormat;
9+
import net.minecraft.util.ResourceLocation;
10+
import org.spongepowered.asm.mixin.Mixin;
11+
import org.spongepowered.asm.mixin.Shadow;
12+
import org.spongepowered.asm.mixin.injection.At;
13+
import org.spongepowered.asm.mixin.injection.Redirect;
14+
15+
import java.util.Map;
16+
import java.util.function.Function;
17+
18+
@SuppressWarnings("MethodMayBeStatic")
19+
@Mixin(value = ActuatorModel.class, remap = false)
20+
public abstract class MixinActuatorModel {
21+
22+
@Shadow
23+
private static void bakeModels(final Map<ModelResourceLocation, IBakedModel> models,
24+
final VertexFormat format,
25+
final Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter,
26+
final Map<IBlockState, ModelResourceLocation> modelLocations) {
27+
}
28+
29+
@Redirect(
30+
method = "bake",
31+
at = @At(
32+
value = "INVOKE",
33+
target = "Lmods/railcraft/client/render/models/resource/ActuatorModel;bakeModels(Ljava/util/Map;Lnet/minecraft/client/renderer/vertex/VertexFormat;Ljava/util/function/Function;Ljava/util/Map;)V"
34+
)
35+
)
36+
private void injectBakeModels(final Map<ModelResourceLocation, IBakedModel> model, final VertexFormat modelLocation, final Function<ResourceLocation, TextureAtlasSprite> models, final Map<IBlockState, ModelResourceLocation> format) {
37+
synchronized (ActuatorModel.class) {
38+
bakeModels(model, modelLocation, models, format);
39+
}
40+
}
41+
42+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package github.kasuminova.stellarcore.mixin.railcraft;
2+
3+
import mods.railcraft.client.render.models.resource.ActuatorModel;
4+
import mods.railcraft.client.render.models.resource.OutfittedTrackModel;
5+
import net.minecraft.client.renderer.block.model.IBakedModel;
6+
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
7+
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
8+
import net.minecraft.client.renderer.vertex.VertexFormat;
9+
import net.minecraft.util.ResourceLocation;
10+
import org.spongepowered.asm.mixin.Mixin;
11+
import org.spongepowered.asm.mixin.Shadow;
12+
import org.spongepowered.asm.mixin.injection.At;
13+
import org.spongepowered.asm.mixin.injection.Redirect;
14+
15+
import java.util.Map;
16+
import java.util.Set;
17+
import java.util.function.Function;
18+
19+
@Mixin(value = OutfittedTrackModel.class, remap = false)
20+
public abstract class MixinOutfittedTrackModel {
21+
22+
@Shadow
23+
protected abstract Map<ModelResourceLocation, IBakedModel> bakeModels(
24+
final VertexFormat format,
25+
final Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter,
26+
final Set<ModelResourceLocation> modelLocations
27+
);
28+
29+
@Redirect(
30+
method = "bake",
31+
at = @At(
32+
value = "INVOKE",
33+
target = "Lmods/railcraft/client/render/models/resource/OutfittedTrackModel;bakeModels(Lnet/minecraft/client/renderer/vertex/VertexFormat;Ljava/util/function/Function;Ljava/util/Set;)Ljava/util/Map;"
34+
)
35+
)
36+
private Map<ModelResourceLocation, IBakedModel> injectBakeModels(final OutfittedTrackModel instance, final VertexFormat format, final Function<ResourceLocation, TextureAtlasSprite> bakedTextureGetter, final Set<ModelResourceLocation> modelLocations) {
37+
synchronized (ActuatorModel.class) {
38+
return bakeModels(format, bakedTextureGetter, modelLocations);
39+
}
40+
}
41+
42+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"package": "github.kasuminova.stellarcore.mixin.railcraft",
3+
"refmap": "mixins.stellar_core.refmap.json",
4+
"target": "@env(DEFAULT)",
5+
"minVersion": "0.8",
6+
"compatibilityLevel": "JAVA_8",
7+
"client": [
8+
"MixinActuatorModel",
9+
"MixinOutfittedTrackModel"
10+
]
11+
}

0 commit comments

Comments
 (0)