From 2f166d06902a3e6d5b9d712bf3a3f7fdb87a25e2 Mon Sep 17 00:00:00 2001 From: CursedFlames <18627001+CursedFlames@users.noreply.github.com> Date: Tue, 12 Mar 2024 21:27:38 +1300 Subject: [PATCH] cleanup and comments/javadocs --- .../cubicchunks/mixin/GlobalSet.java | 10 +++++++++- .../cubicchunks/mixin/SectionPosToChunkSet.java | 3 +++ .../cubicchunks/mixin/SectionPosToCubeSet.java | 3 +++ .../mixin/core/common/core/MixinSectionPos.java | 8 ++++++++ .../server/level/MixinChunkHolder_Forge.java | 6 ++++++ .../core/common/server/level/MixinChunkMap.java | 4 +++- .../MixinLoggerChunkProgressListener.java | 4 ++-- .../MixinProcessorChunkProgressListener.java | 8 ++++---- .../MixinStoringChunkProgressListener.java | 8 ++++---- .../EventConstructorDelegates.java | 1 + .../cubicchunks/server/level/CubicTicketType.java | 2 -- .../progress/CubicChunkProgressListener.java | 4 ++-- .../server/level/TestCubicDistanceManager.java | 15 +++++++-------- 13 files changed, 52 insertions(+), 24 deletions(-) diff --git a/src/main/java/io/github/opencubicchunks/cubicchunks/mixin/GlobalSet.java b/src/main/java/io/github/opencubicchunks/cubicchunks/mixin/GlobalSet.java index 600581a1..367995eb 100644 --- a/src/main/java/io/github/opencubicchunks/cubicchunks/mixin/GlobalSet.java +++ b/src/main/java/io/github/opencubicchunks/cubicchunks/mixin/GlobalSet.java @@ -5,6 +5,8 @@ import java.util.concurrent.Executor; import java.util.function.Function; +import javax.annotation.Nullable; + import com.mojang.datafixers.util.Either; import io.github.notstirred.dasm.api.annotations.redirect.redirects.ConstructorToFactoryRedirect; import io.github.notstirred.dasm.api.annotations.redirect.redirects.FieldRedirect; @@ -91,7 +93,13 @@ public abstract CompletableFuture ((CubicChunkProgressListener) this.delegate).updateSpawnPos(pCenter)); + public void cc_updateSpawnPos(CloPos pCenter) { + this.mailbox.tell(() -> ((CubicChunkProgressListener) this.delegate).cc_updateSpawnPos(pCenter)); } @AddMethodToSets(owner = @Ref(ProcessorChunkProgressListener.class), method = @MethodSig("onStatusChange(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/world/level/chunk/ChunkStatus;)V"), sets = GeneralSet.class) @Override - public void onStatusChange(CloPos pChunkPosition, @Nullable ChunkStatus pNewStatus) { - this.mailbox.tell(() -> ((CubicChunkProgressListener) this.delegate).onStatusChange(pChunkPosition, pNewStatus)); + public void cc_onStatusChange(CloPos pChunkPosition, @Nullable ChunkStatus pNewStatus) { + this.mailbox.tell(() -> ((CubicChunkProgressListener) this.delegate).cc_onStatusChange(pChunkPosition, pNewStatus)); } @Override @Shadow public abstract void start(); diff --git a/src/main/java/io/github/opencubicchunks/cubicchunks/mixin/core/common/server/level/progress/MixinStoringChunkProgressListener.java b/src/main/java/io/github/opencubicchunks/cubicchunks/mixin/core/common/server/level/progress/MixinStoringChunkProgressListener.java index bfc8ab98..eddb47e4 100644 --- a/src/main/java/io/github/opencubicchunks/cubicchunks/mixin/core/common/server/level/progress/MixinStoringChunkProgressListener.java +++ b/src/main/java/io/github/opencubicchunks/cubicchunks/mixin/core/common/server/level/progress/MixinStoringChunkProgressListener.java @@ -29,9 +29,9 @@ public abstract class MixinStoringChunkProgressListener implements CubicChunkPro // TODO these two could be dasm? @AddMethodToSets(owner = @Ref(StoringChunkProgressListener.class), method = @MethodSig("updateSpawnPos(Lnet/minecraft/world/level/ChunkPos;)V"), sets = GeneralSet.class) @Override - public void updateSpawnPos(CloPos pCenter) { + public void cc_updateSpawnPos(CloPos pCenter) { if (this.started) { - ((CubicChunkProgressListener) this.delegate).updateSpawnPos(pCenter); + ((CubicChunkProgressListener) this.delegate).cc_updateSpawnPos(pCenter); // FIXME we should have a CloPos spawnPos this.spawnPos = pCenter.correspondingChunkPos(); } @@ -39,9 +39,9 @@ public void updateSpawnPos(CloPos pCenter) { @AddMethodToSets(owner = @Ref(StoringChunkProgressListener.class), method = @MethodSig("onStatusChange(Lnet/minecraft/world/level/ChunkPos;Lnet/minecraft/world/level/chunk/ChunkStatus;)V"), sets = GeneralSet.class) @Override - public void onStatusChange(CloPos pChunkPosition, @Nullable ChunkStatus pNewStatus) { + public void cc_onStatusChange(CloPos pChunkPosition, @Nullable ChunkStatus pNewStatus) { if (this.started) { - ((CubicChunkProgressListener) this.delegate).onStatusChange(pChunkPosition, pNewStatus); + ((CubicChunkProgressListener) this.delegate).cc_onStatusChange(pChunkPosition, pNewStatus); if (pNewStatus == null) { this.statuses.remove(pChunkPosition.toLong()); } else { diff --git a/src/main/java/io/github/opencubicchunks/cubicchunks/movetoforgesourcesetlater/EventConstructorDelegates.java b/src/main/java/io/github/opencubicchunks/cubicchunks/movetoforgesourcesetlater/EventConstructorDelegates.java index a67c4311..4e2040b2 100644 --- a/src/main/java/io/github/opencubicchunks/cubicchunks/movetoforgesourcesetlater/EventConstructorDelegates.java +++ b/src/main/java/io/github/opencubicchunks/cubicchunks/movetoforgesourcesetlater/EventConstructorDelegates.java @@ -4,6 +4,7 @@ import net.minecraft.world.level.chunk.ChunkAccess; import net.neoforged.neoforge.event.level.ChunkEvent; +// In DASM-copied code we redirect forge event construction to factory methods on this class, allowing for easier control (e.g. not firing events for cubic equivalents of vanilla things) public class EventConstructorDelegates { public static ChunkEvent.Load create_ChunkEvent$Load(CloAccess cloAccess, boolean newChunk) { if (cloAccess instanceof ChunkAccess chunk) { diff --git a/src/main/java/io/github/opencubicchunks/cubicchunks/server/level/CubicTicketType.java b/src/main/java/io/github/opencubicchunks/cubicchunks/server/level/CubicTicketType.java index 73a96e6f..985fd331 100644 --- a/src/main/java/io/github/opencubicchunks/cubicchunks/server/level/CubicTicketType.java +++ b/src/main/java/io/github/opencubicchunks/cubicchunks/server/level/CubicTicketType.java @@ -11,8 +11,6 @@ public class CubicTicketType { public static final TicketType FORCED = create("forced", Comparator.comparingLong(CloPos::asLong)); public static final TicketType LIGHT = create("light", Comparator.comparingLong(CloPos::asLong)); public static final TicketType UNKNOWN = create("unknown", Comparator.comparingLong(CloPos::asLong), 1); - // TODO we don't actually need this; remove it and use TicketType.START - public static final TicketType START = create("start", (a, b) -> 0); public static TicketType create(String nameIn, Comparator comparator) { return TicketTypeAccess.createNew(nameIn, comparator, 0L); diff --git a/src/main/java/io/github/opencubicchunks/cubicchunks/server/level/progress/CubicChunkProgressListener.java b/src/main/java/io/github/opencubicchunks/cubicchunks/server/level/progress/CubicChunkProgressListener.java index 7c89e2a5..ec298f0a 100644 --- a/src/main/java/io/github/opencubicchunks/cubicchunks/server/level/progress/CubicChunkProgressListener.java +++ b/src/main/java/io/github/opencubicchunks/cubicchunks/server/level/progress/CubicChunkProgressListener.java @@ -6,9 +6,9 @@ import net.minecraft.world.level.chunk.ChunkStatus; public interface CubicChunkProgressListener { - void updateSpawnPos(CloPos pCenter); + void cc_updateSpawnPos(CloPos pCenter); - void onStatusChange(CloPos pChunkPosition, @Nullable ChunkStatus pNewStatus); + void cc_onStatusChange(CloPos pChunkPosition, @Nullable ChunkStatus pNewStatus); void start(); diff --git a/src/test/java/io/github/opencubicchunks/cubicchunks/test/server/level/TestCubicDistanceManager.java b/src/test/java/io/github/opencubicchunks/cubicchunks/test/server/level/TestCubicDistanceManager.java index fc56ee21..acfba767 100644 --- a/src/test/java/io/github/opencubicchunks/cubicchunks/test/server/level/TestCubicDistanceManager.java +++ b/src/test/java/io/github/opencubicchunks/cubicchunks/test/server/level/TestCubicDistanceManager.java @@ -14,7 +14,6 @@ import io.github.opencubicchunks.cubicchunks.MarkableAsCubic; import io.github.opencubicchunks.cubicchunks.mixin.test.common.server.level.CubicDistanceManagerTestAccess; import io.github.opencubicchunks.cubicchunks.server.level.CubicDistanceManager; -import io.github.opencubicchunks.cubicchunks.server.level.CubicTicketType; import io.github.opencubicchunks.cubicchunks.testutils.BaseTest; import io.github.opencubicchunks.cubicchunks.world.level.chunklike.CloPos; import net.minecraft.Util; @@ -230,7 +229,7 @@ private void testAddAndRemove(DistanceManager distanceManager, int iterations, i @Test public void testRemoveTicketsOnClosing() { var distanceManager = setupDistanceManager(); ((MarkableAsCubic) distanceManager).cc_setCubic(); - ((CubicDistanceManager)distanceManager).addTicket(CubicTicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE); + ((CubicDistanceManager)distanceManager).addTicket(TicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE); assertTrue(distanceManager.hasTickets()); distanceManager.removeTicketsOnClosing(); assertFalse(distanceManager.hasTickets()); @@ -251,13 +250,13 @@ private void testAddAndRemove(DistanceManager distanceManager, int iterations, i @Test public void testAddRemoveTickets() { var distanceManager = setupDistanceManager(); ((MarkableAsCubic) distanceManager).cc_setCubic(); - ((CubicDistanceManager)distanceManager).addTicket(CubicTicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE); + ((CubicDistanceManager)distanceManager).addTicket(TicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE); assertTrue(distanceManager.hasTickets()); - ((CubicDistanceManager)distanceManager).removeTicket(CubicTicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE); + ((CubicDistanceManager)distanceManager).removeTicket(TicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE); assertFalse(distanceManager.hasTickets()); - ((CubicDistanceManager)distanceManager).addRegionTicket(CubicTicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE); + ((CubicDistanceManager)distanceManager).addRegionTicket(TicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE); assertTrue(distanceManager.hasTickets()); - ((CubicDistanceManager)distanceManager).removeRegionTicket(CubicTicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE); + ((CubicDistanceManager)distanceManager).removeRegionTicket(TicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE); assertFalse(distanceManager.hasTickets()); } @@ -272,9 +271,9 @@ private void testAddAndRemove(DistanceManager distanceManager, int iterations, i @Test public void testShouldForceTicks() { var distanceManager = setupDistanceManager(); ((MarkableAsCubic) distanceManager).cc_setCubic(); - ((CubicDistanceManager)distanceManager).addRegionTicket(CubicTicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE, true); + ((CubicDistanceManager)distanceManager).addRegionTicket(TicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE, true); assertTrue(distanceManager.shouldForceTicks(CloPos.asLong(0, 0, 0))); - ((CubicDistanceManager)distanceManager).removeRegionTicket(CubicTicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE, true); + ((CubicDistanceManager)distanceManager).removeRegionTicket(TicketType.START, CloPos.cube(0, 0, 0), 0, Unit.INSTANCE, true); assertFalse(distanceManager.shouldForceTicks(CloPos.asLong(0, 0, 0))); }