From ec5a9b3a653df6c1c05cb04acf308f2297a36a5e Mon Sep 17 00:00:00 2001 From: austin Date: Thu, 19 Dec 2024 19:43:53 -0500 Subject: [PATCH] chunk level pressure/density transfer --- .../server/fluid/manager/ServerFluidManager.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/electrosphere/server/fluid/manager/ServerFluidManager.java b/src/main/java/electrosphere/server/fluid/manager/ServerFluidManager.java index 1473a5cf..2c130c96 100644 --- a/src/main/java/electrosphere/server/fluid/manager/ServerFluidManager.java +++ b/src/main/java/electrosphere/server/fluid/manager/ServerFluidManager.java @@ -290,6 +290,19 @@ public class ServerFluidManager { ServerFluidChunk fluidChunk = this.getChunk(worldX, worldY, worldZ); if(fluidChunk.isAllocated() && !fluidChunk.isAsleep()){ this.simulationQueue.add(fluidChunk); + for(int i = 0; i < 27; i++){ + if(fluidChunk.neighbors[i] != null){ + fluidChunk.pressureIncoming[i] = fluidChunk.neighbors[i].pressureOutgoing[ServerFluidChunk.CENTER_BUFF]; + fluidChunk.pressureOutgoing[i] = 0; + fluidChunk.densityIncoming[i] = fluidChunk.neighbors[i].densityOutgoing[ServerFluidChunk.CENTER_BUFF]; + fluidChunk.densityOutgoing[i] = 0; + } else { + fluidChunk.pressureIncoming[i] = 0; + fluidChunk.pressureOutgoing[i] = 0; + fluidChunk.densityIncoming[i] = 0; + fluidChunk.densityOutgoing[i] = 0; + } + } } } }