Better handling of out of sync
This commit is contained in:
parent
412dab0029
commit
01238b890a
@ -5,7 +5,7 @@
|
|||||||
public int hashCode()
|
public int hashCode()
|
||||||
{
|
{
|
||||||
- return (this.xCoord * 1024 * 1024 + this.zCoord * 1024 + this.yCoord) * 256;
|
- return (this.xCoord * 1024 * 1024 + this.zCoord * 1024 + this.yCoord) * 256;
|
||||||
+ return ((yCoord * 31 + xCoord) * 31 + zCoord) * 17 + yCoord;
|
+ return (((yCoord * 31 + xCoord) * 17 + zCoord) * 13 + yCoord) * 7 + Block.getIdFromBlock(field_151352_g);
|
||||||
}
|
}
|
||||||
|
|
||||||
public NextTickListEntry setScheduledTime(long p_77176_1_)
|
public NextTickListEntry setScheduledTime(long p_77176_1_)
|
||||||
|
@ -380,15 +380,34 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isBlockTickScheduledThisTick(int p_147477_1_, int p_147477_2_, int p_147477_3_, Block p_147477_4_)
|
public boolean isBlockTickScheduledThisTick(int p_147477_1_, int p_147477_2_, int p_147477_3_, Block p_147477_4_)
|
||||||
@@ -451,6 +631,7 @@
|
@@ -447,10 +627,11 @@
|
||||||
|
nextticklistentry.setPriority(p_147454_6_);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!this.pendingTickListEntriesHashSet.contains(nextticklistentry))
|
||||||
|
+ if (this.pendingTickListEntriesHashSet.add(nextticklistentry))
|
||||||
{
|
{
|
||||||
this.pendingTickListEntriesHashSet.add(nextticklistentry);
|
- this.pendingTickListEntriesHashSet.add(nextticklistentry);
|
||||||
this.pendingTickListEntriesTreeSet.add(nextticklistentry);
|
- this.pendingTickListEntriesTreeSet.add(nextticklistentry);
|
||||||
+ getChunkFromBlockCoords(p_147454_1_, p_147454_3_).blockUpdates.add(nextticklistentry); // KCauldron
|
+
|
||||||
|
+ if (!this.pendingTickListEntriesTreeSet.add(nextticklistentry)) pendingTickListEntriesHashSet.remove(nextticklistentry); else {
|
||||||
|
+ Chunk chunk = getChunkIfLoaded(p_147454_1_ >> 4, p_147454_3_ >> 4); if (chunk != null) chunk.blockUpdates.add(nextticklistentry); } // KCauldron
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -474,7 +655,7 @@
|
@@ -465,16 +646,16 @@
|
||||||
|
nextticklistentry.setScheduledTime((long)p_147446_5_ + this.worldInfo.getWorldTotalTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!this.pendingTickListEntriesHashSet.contains(nextticklistentry))
|
||||||
|
+ if (this.pendingTickListEntriesHashSet.add(nextticklistentry))
|
||||||
|
{
|
||||||
|
- this.pendingTickListEntriesHashSet.add(nextticklistentry);
|
||||||
|
- this.pendingTickListEntriesTreeSet.add(nextticklistentry);
|
||||||
|
+ if (!this.pendingTickListEntriesTreeSet.add(nextticklistentry)) pendingTickListEntriesHashSet.remove(nextticklistentry); else {
|
||||||
|
+ Chunk chunk = getChunkIfLoaded(p_147446_1_ >> 4, p_147446_3_ >> 4); if (chunk != null) chunk.blockUpdates.add(nextticklistentry); }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void updateEntities()
|
public void updateEntities()
|
||||||
{
|
{
|
||||||
@ -655,7 +674,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected int func_152379_p()
|
protected int func_152379_p()
|
||||||
@@ -1069,4 +1361,65 @@
|
@@ -1069,4 +1361,64 @@
|
||||||
this();
|
this();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -714,9 +733,8 @@
|
|||||||
+ nextticklistentry.setPriority(priority);
|
+ nextticklistentry.setPriority(priority);
|
||||||
+ if (block.getMaterial() != Material.air)
|
+ if (block.getMaterial() != Material.air)
|
||||||
+ nextticklistentry.setScheduledTime((long)time + this.worldInfo.getWorldTotalTime());
|
+ nextticklistentry.setScheduledTime((long)time + this.worldInfo.getWorldTotalTime());
|
||||||
+ if (!this.pendingTickListEntriesHashSet.contains(nextticklistentry)) {
|
+ if (this.pendingTickListEntriesHashSet.add(nextticklistentry)) {
|
||||||
+ this.pendingTickListEntriesHashSet.add(nextticklistentry);
|
+ if (!this.pendingTickListEntriesTreeSet.add(nextticklistentry)) pendingTickListEntriesHashSet.remove(nextticklistentry);
|
||||||
+ this.pendingTickListEntriesTreeSet.add(nextticklistentry);
|
|
||||||
+ }
|
+ }
|
||||||
+ return nextticklistentry;
|
+ return nextticklistentry;
|
||||||
+ }
|
+ }
|
||||||
|
Loading…
Reference in New Issue
Block a user