9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2026-01-04 15:41:40 +00:00
This commit is contained in:
Dreeam
2025-05-02 22:22:53 -04:00
parent f1df5351ca
commit 3f20ea5c71
27 changed files with 730 additions and 634 deletions

View File

@@ -23,7 +23,7 @@ and, in my opinion, worth the low risk of minor mob-spawning-related
inconsistencies.
diff --git a/src/main/java/ca/spottedleaf/moonrise/common/list/IteratorSafeOrderedReferenceSet.java b/src/main/java/ca/spottedleaf/moonrise/common/list/IteratorSafeOrderedReferenceSet.java
index c21e00812f1aaa1279834a0562d360d6b89e146c..19e0bf50cf8863f42ce19c3d0d8911c0c9b8ad4a 100644
index c21e00812f1aaa1279834a0562d360d6b89e146c..4a6bfc2a09401b4c96d6f368ead7b060dae2a08b 100644
--- a/src/main/java/ca/spottedleaf/moonrise/common/list/IteratorSafeOrderedReferenceSet.java
+++ b/src/main/java/ca/spottedleaf/moonrise/common/list/IteratorSafeOrderedReferenceSet.java
@@ -10,7 +10,7 @@ public final class IteratorSafeOrderedReferenceSet<E> {
@@ -44,22 +44,7 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..19e0bf50cf8863f42ce19c3d0d8911c0
public IteratorSafeOrderedReferenceSet() {
this(16, 0.75f, 16, 0.2);
@@ -74,16 +74,26 @@ public final class IteratorSafeOrderedReferenceSet<E> {
}
*/
+ // Pufferfish start - async mob spawning
+ // TODO: backup plan if the issue persists, don't run
+ // this.set.finishRawIterator() or defrag() off-main
+ /*
+ protected final boolean allowSafeIteration() {
+ return ca.spottedleaf.moonrise.common.util.TickThread.isTickThread();
+ }
+ */
+ // Pufferfish end - async mob spawning
+
private double getFragFactor() {
return 1.0 - ((double)this.indexMap.size() / (double)this.listSize);
@@ -79,11 +79,11 @@ public final class IteratorSafeOrderedReferenceSet<E> {
}
public int createRawIterator() {
@@ -73,7 +58,7 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..19e0bf50cf8863f42ce19c3d0d8911c0
}
}
@@ -100,7 +110,7 @@ public final class IteratorSafeOrderedReferenceSet<E> {
@@ -100,7 +100,7 @@ public final class IteratorSafeOrderedReferenceSet<E> {
}
public void finishRawIterator() {
@@ -82,7 +67,7 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..19e0bf50cf8863f42ce19c3d0d8911c0
if (this.getFragFactor() >= this.maxFragFactor) {
this.defrag();
}
@@ -110,14 +120,17 @@ public final class IteratorSafeOrderedReferenceSet<E> {
@@ -110,14 +110,17 @@ public final class IteratorSafeOrderedReferenceSet<E> {
public boolean remove(final E element) {
final int index = this.indexMap.removeInt(element);
if (index >= 0) {
@@ -103,7 +88,7 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..19e0bf50cf8863f42ce19c3d0d8911c0
this.defrag();
}
//this.check();
@@ -149,14 +162,17 @@ public final class IteratorSafeOrderedReferenceSet<E> {
@@ -149,14 +152,17 @@ public final class IteratorSafeOrderedReferenceSet<E> {
}
private void defrag() {
@@ -123,7 +108,7 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..19e0bf50cf8863f42ce19c3d0d8911c0
//this.check();
return;
}
@@ -166,11 +182,11 @@ public final class IteratorSafeOrderedReferenceSet<E> {
@@ -166,11 +172,11 @@ public final class IteratorSafeOrderedReferenceSet<E> {
int lastValidIndex;
java.util.Iterator<Reference2IntMap.Entry<E>> iterator;
@@ -137,7 +122,7 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..19e0bf50cf8863f42ce19c3d0d8911c0
final E key = backingArray[lastValidIndex - 1];
iterator = this.indexMap.reference2IntEntrySet().fastIterator(new Reference2IntMap.Entry<E>() {
@Override
@@ -201,7 +217,7 @@ public final class IteratorSafeOrderedReferenceSet<E> {
@@ -201,7 +207,7 @@ public final class IteratorSafeOrderedReferenceSet<E> {
// cleanup end
Arrays.fill(backingArray, lastValidIndex, this.listSize, null);
this.listSize = lastValidIndex;
@@ -146,7 +131,7 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..19e0bf50cf8863f42ce19c3d0d8911c0
//this.check();
}
@@ -219,7 +235,7 @@ public final class IteratorSafeOrderedReferenceSet<E> {
@@ -219,7 +225,7 @@ public final class IteratorSafeOrderedReferenceSet<E> {
}
public IteratorSafeOrderedReferenceSet.Iterator<E> iterator(final int flags) {
@@ -155,7 +140,7 @@ index c21e00812f1aaa1279834a0562d360d6b89e146c..19e0bf50cf8863f42ce19c3d0d8911c0
return new BaseIterator<>(this, true, (flags & ITERATOR_FLAG_SEE_ADDITIONS) != 0 ? Integer.MAX_VALUE : this.listSize);
}
@@ -306,7 +322,7 @@ public final class IteratorSafeOrderedReferenceSet<E> {
@@ -306,7 +312,7 @@ public final class IteratorSafeOrderedReferenceSet<E> {
}
this.lastReturned = null;
this.finished = true;