mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-01 04:32:11 -07:00
For new registry values, allow copying from existing (#11796)
Co-authored-by: Bjarne Koll <git@lynxplay.dev>
This commit is contained in:
@@ -23508,10 +23508,10 @@ index 3d3eec1db91cb47395f40c4f47aa77164ad42175..216f97207dac88cc1dc3df59c6ee8a62
|
||||
+ // Paper end - optimise collisions
|
||||
}
|
||||
diff --git a/net/minecraft/core/MappedRegistry.java b/net/minecraft/core/MappedRegistry.java
|
||||
index 47b1fafd91b39e73c4e9134b0b8048000fba108a..76994c1491221c06cca5405ba239e6ff642b19ed 100644
|
||||
index 452c358c2cfa0c39e0b09853cd4a9a12c6ced65d..5f752603aa5611ce9d3dd44cc5b70c27ac46a86e 100644
|
||||
--- a/net/minecraft/core/MappedRegistry.java
|
||||
+++ b/net/minecraft/core/MappedRegistry.java
|
||||
@@ -50,6 +50,19 @@ public class MappedRegistry<T> implements WritableRegistry<T> {
|
||||
@@ -51,6 +51,19 @@ public class MappedRegistry<T> implements WritableRegistry<T> {
|
||||
return this.getTags();
|
||||
}
|
||||
|
||||
@@ -23531,10 +23531,10 @@ index 47b1fafd91b39e73c4e9134b0b8048000fba108a..76994c1491221c06cca5405ba239e6ff
|
||||
public MappedRegistry(ResourceKey<? extends Registry<T>> key, Lifecycle registryLifecycle) {
|
||||
this(key, registryLifecycle, false);
|
||||
}
|
||||
@@ -114,6 +127,7 @@ public class MappedRegistry<T> implements WritableRegistry<T> {
|
||||
this.toId.put(value, size);
|
||||
@@ -116,6 +129,7 @@ public class MappedRegistry<T> implements WritableRegistry<T> {
|
||||
this.registrationInfos.put(key, registrationInfo);
|
||||
this.registryLifecycle = this.registryLifecycle.add(registrationInfo.lifecycle());
|
||||
this.temporaryUnfrozenMap.put(key.location(), value); // Paper - support pre-filling in registry mod API
|
||||
+ this.injectFluidRegister(key, value); // Paper - fluid method optimisations
|
||||
return reference;
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
--- a/net/minecraft/core/MappedRegistry.java
|
||||
+++ b/net/minecraft/core/MappedRegistry.java
|
||||
@@ -33,11 +_,11 @@
|
||||
@@ -33,17 +_,18 @@
|
||||
public class MappedRegistry<T> implements WritableRegistry<T> {
|
||||
private final ResourceKey<? extends Registry<T>> key;
|
||||
private final ObjectList<Holder.Reference<T>> byId = new ObjectArrayList<>(256);
|
||||
@@ -17,6 +17,29 @@
|
||||
private Lifecycle registryLifecycle;
|
||||
private final Map<TagKey<T>, HolderSet.Named<T>> frozenTags = new IdentityHashMap<>();
|
||||
MappedRegistry.TagSet<T> allTags = MappedRegistry.TagSet.unbound();
|
||||
private boolean frozen;
|
||||
@Nullable
|
||||
private Map<T, Holder.Reference<T>> unregisteredIntrusiveHolders;
|
||||
+ public final Map<ResourceLocation, T> temporaryUnfrozenMap = new HashMap<>(); // Paper - support pre-filling in registry mod API
|
||||
|
||||
@Override
|
||||
public Stream<HolderSet.Named<T>> listTags() {
|
||||
@@ -114,6 +_,7 @@
|
||||
this.toId.put(value, size);
|
||||
this.registrationInfos.put(key, registrationInfo);
|
||||
this.registryLifecycle = this.registryLifecycle.add(registrationInfo.lifecycle());
|
||||
+ this.temporaryUnfrozenMap.put(key.location(), value); // Paper - support pre-filling in registry mod API
|
||||
return reference;
|
||||
}
|
||||
}
|
||||
@@ -275,6 +_,7 @@
|
||||
return this;
|
||||
} else {
|
||||
this.frozen = true;
|
||||
+ this.temporaryUnfrozenMap.clear(); // Paper - support pre-filling in registry mod API
|
||||
this.byValue.forEach((object, reference) -> reference.bindValue((T)object));
|
||||
List<ResourceLocation> list = this.byKey
|
||||
.entrySet()
|
||||
@@ -509,4 +_,13 @@
|
||||
|
||||
Stream<HolderSet.Named<T>> getTags();
|
||||
|
Reference in New Issue
Block a user