Comment, add interfaces to chunk classes
This commit is contained in:
parent
a8941c5de7
commit
c69caeeab9
@ -1,5 +1,7 @@
|
|||||||
package electrosphere.client.terrain.cache;
|
package electrosphere.client.terrain.cache;
|
||||||
|
|
||||||
|
import org.joml.Vector3i;
|
||||||
|
|
||||||
import electrosphere.server.terrain.manager.ServerTerrainChunk;
|
import electrosphere.server.terrain.manager.ServerTerrainChunk;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -50,10 +52,36 @@ public class ChunkData {
|
|||||||
this.voxelWeight = voxelWeight;
|
this.voxelWeight = voxelWeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Updates the value of a single voxel in the chunk
|
||||||
|
* @param localX The local position X
|
||||||
|
* @param localY The local position Y
|
||||||
|
* @param localZ The local position Z
|
||||||
|
* @param weight The weight to set it to
|
||||||
|
* @param type The type to set the voxel to
|
||||||
|
*/
|
||||||
public void updatePosition(int localX, int localY, int localZ, float weight, int type){
|
public void updatePosition(int localX, int localY, int localZ, float weight, int type){
|
||||||
voxelWeight[localX][localY][localZ] = weight;
|
voxelWeight[localX][localY][localZ] = weight;
|
||||||
voxelType[localX][localY][localZ] = type;
|
voxelType[localX][localY][localZ] = type;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the weight of a voxel at a poisiton
|
||||||
|
* @param localPosition The local position
|
||||||
|
* @return The weight of the specified voxel
|
||||||
|
*/
|
||||||
|
public float getWeight(Vector3i localPosition){
|
||||||
|
return voxelWeight[localPosition.x][localPosition.y][localPosition.z];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the type of a voxel at a position
|
||||||
|
* @param localPosition The local position
|
||||||
|
* @return The type of the specified voxel
|
||||||
|
*/
|
||||||
|
public int getType(Vector3i localPosition){
|
||||||
|
return voxelType[localPosition.x][localPosition.y][localPosition.z];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3,10 +3,12 @@ package electrosphere.server.terrain.manager;
|
|||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.joml.Vector3i;
|
||||||
|
|
||||||
import electrosphere.server.terrain.models.TerrainModification;
|
import electrosphere.server.terrain.models.TerrainModification;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is a single subchunk of terrain on the server
|
* Is a single chunk of terrain on the server
|
||||||
*/
|
*/
|
||||||
public class ServerTerrainChunk {
|
public class ServerTerrainChunk {
|
||||||
|
|
||||||
@ -56,20 +58,7 @@ public class ServerTerrainChunk {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// for(int weightX = 0; weightX < SUB_CHUNK_DIMENSION; weightX++){
|
|
||||||
// for(int weightZ = 0; weightZ < SUB_CHUNK_DIMENSION; weightZ++){
|
|
||||||
// weights[weightX][SUB_CHUNK_DIMENSION-1][weightZ] = 1;
|
|
||||||
// values[weightX][SUB_CHUNK_DIMENSION-1][weightZ] = 1;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// for(int weightX = 0; weightX < SUB_CHUNK_DIMENSION; weightX++){
|
|
||||||
// for(int weightZ = 0; weightZ < SUB_CHUNK_DIMENSION; weightZ++){
|
|
||||||
// weights[SUB_CHUNK_DIMENSION-1][weightX][weightZ] = 1;
|
|
||||||
// values[SUB_CHUNK_DIMENSION-1][weightX][weightZ] = 1;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
ServerTerrainChunk rVal = new ServerTerrainChunk(worldX, worldY, worldZ, weights, values);
|
ServerTerrainChunk rVal = new ServerTerrainChunk(worldX, worldY, worldZ, weights, values);
|
||||||
// rVal.addModification(new TerrainModification(x, y, 3, 3, 5));
|
|
||||||
return rVal;
|
return rVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,6 +74,14 @@ public class ServerTerrainChunk {
|
|||||||
return worldZ;
|
return worldZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the world position of this terrain chunk as a joml Vector
|
||||||
|
* @return The vector
|
||||||
|
*/
|
||||||
|
public Vector3i getWorldPosition(){
|
||||||
|
return new Vector3i(worldX,worldY,worldZ);
|
||||||
|
}
|
||||||
|
|
||||||
public List<TerrainModification> getModifications() {
|
public List<TerrainModification> getModifications() {
|
||||||
return modifications;
|
return modifications;
|
||||||
}
|
}
|
||||||
@ -102,6 +99,24 @@ public class ServerTerrainChunk {
|
|||||||
values[modification.getVoxelPos().x][modification.getVoxelPos().y][modification.getVoxelPos().z] = modification.getValue();
|
values[modification.getVoxelPos().x][modification.getVoxelPos().y][modification.getVoxelPos().z] = modification.getValue();
|
||||||
weights[modification.getVoxelPos().x][modification.getVoxelPos().y][modification.getVoxelPos().z] = modification.getWeight();
|
weights[modification.getVoxelPos().x][modification.getVoxelPos().y][modification.getVoxelPos().z] = modification.getWeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the weight of a voxel at a poisiton
|
||||||
|
* @param localPosition The local position
|
||||||
|
* @return The weight of the specified voxel
|
||||||
|
*/
|
||||||
|
public float getWeight(Vector3i localPosition){
|
||||||
|
return weights[localPosition.x][localPosition.y][localPosition.z];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the type of a voxel at a position
|
||||||
|
* @param localPosition The local position
|
||||||
|
* @return The type of the specified voxel
|
||||||
|
*/
|
||||||
|
public int getType(Vector3i localPosition){
|
||||||
|
return values[localPosition.x][localPosition.y][localPosition.z];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user