Skip to content

Commit 3597a5d

Browse files
committed
修复搞坏了的饼图
修复使用部分光影时不透明粒子不可见 添加粒子光照缓存
1 parent 4070889 commit 3597a5d

File tree

4 files changed

+35
-2
lines changed

4 files changed

+35
-2
lines changed

common/src/main/java/fun/qu_an/minecraft/asyncparticles/client/AsyncRenderer.java

+1
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ public static void start(PoseStack poseStack, float f, Camera camera, LightTextu
149149
particleEngine.render(poseStack, bufferSource, lightTexture, camera, f);
150150
tryDebug();
151151
clearSync();
152+
profiler.push("schedule_tasks");
152153
var futures = new CompletableFuture[ASYNC_QUEUE.size()];
153154
for (int i = 0, asyncQueueSize = ASYNC_QUEUE.size(); i < asyncQueueSize; i++) {
154155
Runnable runnable = ASYNC_QUEUE.get(i);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package fun.qu_an.minecraft.asyncparticles.client.mixin.forge.flerovium;
2+
3+
import com.bawnorton.mixinsquared.TargetHandler;
4+
import fun.qu_an.minecraft.asyncparticles.client.SingleQuadParticleAddon;
5+
import fun.qu_an.minecraft.asyncparticles.client.config.SimplePropertiesConfig;
6+
import net.minecraft.client.Camera;
7+
import net.minecraft.client.particle.SingleQuadParticle;
8+
import org.spongepowered.asm.mixin.Dynamic;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.Shadow;
11+
import org.spongepowered.asm.mixin.injection.At;
12+
import org.spongepowered.asm.mixin.injection.Redirect;
13+
14+
@Mixin(value = SingleQuadParticle.class, priority = 1001)
15+
public abstract class MixinSingleQuadParticleMixin implements SingleQuadParticleAddon {
16+
@Dynamic
17+
@Shadow(remap = false)
18+
private int flerovium$getLightColorCached(float pt, Camera camera) {
19+
throw new AssertionError();
20+
}
21+
22+
@Dynamic
23+
@TargetHandler(
24+
mixin = "com.moepus.flerovium.mixins.Particle.SingleQuadParticleMixin",
25+
name = "renderFast"
26+
)
27+
@Redirect(method = "@MixinSquared:Handler",
28+
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/SingleQuadParticle;flerovium$getLightColorCached(FLnet/minecraft/client/Camera;)I"))
29+
private int redirectGetLightColor(SingleQuadParticle particle, float pt, Camera camera) {
30+
return SimplePropertiesConfig.particleLightCache() ? asyncParticles$getLight() : flerovium$getLightColorCached(pt, camera);
31+
}
32+
}

forge/src/main/resources/asyncparticles-forge.mixins.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"create.MixinEjectorBlockEntity",
1313
"effecticularity.MixinRippleParticle",
1414
"embeddium.MixinBillboardParticleMixin",
15-
"flerovium.MixinBillboardParticleMixin",
15+
"flerovium.MixinSingleQuadParticleMixin",
1616
"flerovium.MixinMixinParticleEngine",
1717
"particlerain.MixinGroundFogParticle",
1818
"particlerain.MixinModClientForgeEvents",

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
org.gradle.jvmargs=-Xmx3G
33
org.gradle.parallel=true
44
# Mod properties
5-
mod_version=1.8.0+1.20.1
5+
mod_version=1.8.0+1.20.1-beta.0
66
maven_group=fun.qu_an.minecraft
77
archives_name=AsyncParticles
88
enabled_platforms=fabric,forge

0 commit comments

Comments
 (0)