fix block meshgen with multiple types in data set
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
All checks were successful
studiorailgun/Renderer/pipeline/head This commit looks good
This commit is contained in:
parent
bd9f57fe3d
commit
0e50845ec6
BIN
assets/Data/fab/fant_wall_section_1.block
Normal file
BIN
assets/Data/fab/fant_wall_section_1.block
Normal file
Binary file not shown.
BIN
assets/Data/fab/wood_refined_floor.block
Normal file
BIN
assets/Data/fab/wood_refined_floor.block
Normal file
Binary file not shown.
@ -18,5 +18,6 @@
|
|||||||
+ bug fixes
|
+ bug fixes
|
||||||
- Terrain edits do not save
|
- Terrain edits do not save
|
||||||
- Window does not play nice with its minWidth/minHeight being set differently
|
- Window does not play nice with its minWidth/minHeight being set differently
|
||||||
|
- Interaction block cursor is overwriting fab cursor
|
||||||
|
|
||||||
+ unreproducible bugs
|
+ unreproducible bugs
|
||||||
|
|||||||
@ -1564,6 +1564,7 @@ Disable failing ui tests
|
|||||||
Pine trees drop wood blocks
|
Pine trees drop wood blocks
|
||||||
More block types
|
More block types
|
||||||
Transparent blocks
|
Transparent blocks
|
||||||
|
Fix block meshgen
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -18,9 +18,7 @@ import electrosphere.collision.CollisionBodyCreation;
|
|||||||
import electrosphere.collision.CollisionEngine;
|
import electrosphere.collision.CollisionEngine;
|
||||||
import electrosphere.collision.PhysicsUtils;
|
import electrosphere.collision.PhysicsUtils;
|
||||||
import electrosphere.collision.collidable.Collidable;
|
import electrosphere.collision.collidable.Collidable;
|
||||||
import electrosphere.controls.cursor.CursorState;
|
|
||||||
import electrosphere.engine.Globals;
|
import electrosphere.engine.Globals;
|
||||||
import electrosphere.engine.assetmanager.AssetDataStrings;
|
|
||||||
import electrosphere.entity.Entity;
|
import electrosphere.entity.Entity;
|
||||||
import electrosphere.entity.EntityDataStrings;
|
import electrosphere.entity.EntityDataStrings;
|
||||||
import electrosphere.entity.EntityUtils;
|
import electrosphere.entity.EntityUtils;
|
||||||
@ -279,7 +277,7 @@ public class ClientInteractionEngine {
|
|||||||
short type = blockChunkData.getType(blockPos.x, blockPos.y, blockPos.z);
|
short type = blockChunkData.getType(blockPos.x, blockPos.y, blockPos.z);
|
||||||
String text = Globals.gameConfigCurrent.getBlockData().getTypeFromId(type).getName();
|
String text = Globals.gameConfigCurrent.getBlockData().getTypeFromId(type).getName();
|
||||||
InteractionTargetMenu.setInteractionTargetString(text);
|
InteractionTargetMenu.setInteractionTargetString(text);
|
||||||
CursorState.makeBlockVisible(AssetDataStrings.TEXTURE_RED_TRANSPARENT);
|
Globals.cursorState.hintShowBlockCursor();
|
||||||
Globals.cursorState.hintClampToExistingBlock();
|
Globals.cursorState.hintClampToExistingBlock();
|
||||||
set = true;
|
set = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -416,6 +416,15 @@ public class CursorState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hints to show the block cursor
|
||||||
|
*/
|
||||||
|
public void hintShowBlockCursor(){
|
||||||
|
if(!Globals.clientSceneWrapper.getScene().getEntitiesWithTag(EntityTags.DRAWABLE).contains(CursorState.playerFabCursor)){
|
||||||
|
CursorState.makeBlockVisible(AssetDataStrings.TEXTURE_RED_TRANSPARENT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the fab cursor
|
* Gets the fab cursor
|
||||||
* @return The fab cursor
|
* @return The fab cursor
|
||||||
|
|||||||
@ -43,10 +43,12 @@ public class LightManager {
|
|||||||
* The width of the light cluster grid's x dimension
|
* The width of the light cluster grid's x dimension
|
||||||
*/
|
*/
|
||||||
public static final int LIGHT_CLUSTER_WIDTH_X = 12;
|
public static final int LIGHT_CLUSTER_WIDTH_X = 12;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The width of the light cluster grid's y dimension
|
* The width of the light cluster grid's y dimension
|
||||||
*/
|
*/
|
||||||
public static final int LIGHT_CLUSTER_WIDTH_Y = 12;
|
public static final int LIGHT_CLUSTER_WIDTH_Y = 12;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The width of the light cluster grid's z dimension
|
* The width of the light cluster grid's z dimension
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -104,14 +104,45 @@ public class BlockMeshgen {
|
|||||||
currentQuad.w = 1;
|
currentQuad.w = 1;
|
||||||
currentQuad.h = 1;
|
currentQuad.h = 1;
|
||||||
currentQuad.type = data.getType(x, y, z);
|
currentQuad.type = data.getType(x, y, z);
|
||||||
} else {
|
} else if(currentQuad.type == data.getType(x, y, z)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
} else {
|
||||||
|
currentQuad.h = y - currentQuad.y;
|
||||||
|
//check if should merge with previous quad
|
||||||
|
for(QuadMesh prevMesh : quadMeshes){
|
||||||
|
if(prevMesh.x + prevMesh.w == currentQuad.x && prevMesh.y == currentQuad.y && prevMesh.h == currentQuad.h && prevMesh.z == currentQuad.z){
|
||||||
|
prevMesh.w = prevMesh.w + 1;
|
||||||
|
currentQuad = null;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(currentQuad != null){
|
if(currentQuad != null){
|
||||||
quadMeshes.add(currentQuad);
|
quadMeshes.add(currentQuad);
|
||||||
}
|
}
|
||||||
|
currentQuad = new QuadMesh();
|
||||||
|
currentQuad.x = x;
|
||||||
|
currentQuad.y = y;
|
||||||
|
currentQuad.z = z;
|
||||||
|
currentQuad.w = 1;
|
||||||
|
currentQuad.h = 1;
|
||||||
|
currentQuad.type = data.getType(x, y, z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(currentQuad != null){
|
||||||
|
currentQuad.h = dimensions.y - currentQuad.y;
|
||||||
|
//check if should merge with previous quad
|
||||||
|
for(QuadMesh prevMesh : quadMeshes){
|
||||||
|
if(prevMesh.x + prevMesh.w == currentQuad.x && prevMesh.y == currentQuad.y && prevMesh.h == currentQuad.h && prevMesh.z == currentQuad.z){
|
||||||
|
prevMesh.w = prevMesh.w + 1;
|
||||||
|
currentQuad = null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(currentQuad != null){
|
||||||
|
quadMeshes.add(currentQuad);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user