diff --git a/buildNumber.properties b/buildNumber.properties index 0802f1b2..b2d17e48 100644 --- a/buildNumber.properties +++ b/buildNumber.properties @@ -1,3 +1,3 @@ #maven.buildNumber.plugin properties file -#Sun Dec 01 17:42:04 EST 2024 -buildNumber=481 +#Sun Dec 01 17:46:45 EST 2024 +buildNumber=482 diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 2c069d43..2ccc6126 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -1212,6 +1212,7 @@ Fix fluid sim NP bug with skipped chunks Fix fluid chunk indexing from java side Memory pooling for chunk buffer allocations Server homogenous fluid chunk declarations +Unsleeping fluid chunks on edit diff --git a/src/fluid/includes/environment.h b/src/fluid/includes/environment.h index 9b7b8e1f..be08a17d 100644 --- a/src/fluid/includes/environment.h +++ b/src/fluid/includes/environment.h @@ -26,6 +26,7 @@ typedef struct { jfieldID updatedId; jfieldID totalDensityId; jfieldID asleepId; + jfieldID homogenousId; } ServerFluidChunkLookupTable; /** diff --git a/src/fluid/src/javainterface.c b/src/fluid/src/javainterface.c index 88584b3a..4d3f1b92 100644 --- a/src/fluid/src/javainterface.c +++ b/src/fluid/src/javainterface.c @@ -114,6 +114,7 @@ JNIEXPORT void JNICALL Java_electrosphere_server_fluid_simulator_FluidAccelerate environment->lookupTable.serverFluidChunkTable.totalDensityId = (*env)->GetFieldID(env,fluidSimStorageClass,"totalDensity","F"); environment->lookupTable.serverFluidChunkTable.updatedId = (*env)->GetFieldID(env,fluidSimStorageClass,"updated","Z"); environment->lookupTable.serverFluidChunkTable.asleepId = (*env)->GetFieldID(env,fluidSimStorageClass,"asleep","Z"); + environment->lookupTable.serverFluidChunkTable.homogenousId = (*env)->GetFieldID(env,fluidSimStorageClass,"isHomogenous","Z"); } /** diff --git a/src/fluid/src/metadata/metadatacalc.c b/src/fluid/src/metadata/metadatacalc.c index 70f3d308..df899d7a 100644 --- a/src/fluid/src/metadata/metadatacalc.c +++ b/src/fluid/src/metadata/metadatacalc.c @@ -49,6 +49,9 @@ void updateMetadata(JNIEnv * env, int numChunks, Chunk ** passedInChunks, Enviro if(sum <= 0){ //sleep the chunk if it has no density (*env)->SetBooleanField(env,jObj,environment->lookupTable.serverFluidChunkTable.asleepId,JNI_TRUE); + (*env)->SetBooleanField(env,jObj,environment->lookupTable.serverFluidChunkTable.homogenousId,JNI_TRUE); + } else { + (*env)->SetBooleanField(env,jObj,environment->lookupTable.serverFluidChunkTable.homogenousId,JNI_FALSE); } } } diff --git a/src/main/java/electrosphere/client/fluid/cells/FluidCell.java b/src/main/java/electrosphere/client/fluid/cells/FluidCell.java index dd1d74d9..4abe6f89 100644 --- a/src/main/java/electrosphere/client/fluid/cells/FluidCell.java +++ b/src/main/java/electrosphere/client/fluid/cells/FluidCell.java @@ -114,7 +114,7 @@ public class FluidCell { for(int x = ServerFluidChunk.TRUE_DATA_OFFSET; x < ServerFluidChunk.TRUE_DATA_GENERATOR_SIZE + ServerFluidChunk.TRUE_DATA_OFFSET; x++){ for(int y = ServerFluidChunk.TRUE_DATA_OFFSET; y < ServerFluidChunk.TRUE_DATA_GENERATOR_SIZE + ServerFluidChunk.TRUE_DATA_OFFSET; y++){ for(int z = ServerFluidChunk.TRUE_DATA_OFFSET; z < ServerFluidChunk.TRUE_DATA_GENERATOR_SIZE + ServerFluidChunk.TRUE_DATA_OFFSET; z++){ - weights[x][y][z] = currentChunk.getWeight(x,y,z); + weights[x-ServerFluidChunk.TRUE_DATA_OFFSET][y-ServerFluidChunk.TRUE_DATA_OFFSET][z-ServerFluidChunk.TRUE_DATA_OFFSET] = currentChunk.getWeight(x,y,z); } } }