File tree Expand file tree Collapse file tree
java/cn/coostack/cooparticlesapi/mixin
kotlin/cn/coostack/cooparticlesapi/config Expand file tree Collapse file tree Original file line number Diff line number Diff line change 33
44import cn .coostack .cooparticlesapi .config .APIConfigManager ;
55import com .google .common .collect .EvictingQueue ;
6- import net .minecraft .client .particle .EmitterParticle ;
76import net .minecraft .client .particle .Particle ;
87import net .minecraft .client .particle .ParticleManager ;
98import net .minecraft .client .particle .ParticleTextureSheet ;
@@ -42,12 +41,12 @@ public Object changeMaxParticles(Queue<Object> queue) {
4241 Queue <Particle > queue1 = particles .computeIfAbsent (particle .getType (),
4342 sheet -> EvictingQueue .create (limit ));
4443 // limit 在程序生命周期内不会改变,这里可以直接判断
45- if (queue1 .size () < limit ) {
46- queue1 .add (particle );
47- } else {
44+ if (queue1 .size () == limit ) {
4845 // 这样驱逐队列就没用了但是可以避免内存泄漏
49- onEvict (particle );
46+ Particle poll = queue1 .poll ();
47+ if (poll != null ) onEvict (poll );
5048 }
49+ queue1 .add (particle );
5150 }
5251 return null ;
5352 }
Original file line number Diff line number Diff line change 11package cn.coostack.cooparticlesapi.config
22
3+ import kotlin.math.max
4+
35class APIConfig {
46 /* *
57 * 是否启用ParticleManagerMixin 对粒子数量上限进行修改
@@ -12,4 +14,5 @@ class APIConfig {
1214 * 原版上限为65536
1315 */
1416 var particleCountLimit = 65536
17+ get() = max(field, 1 )
1518}
You can’t perform that action at this time.
0 commit comments