diff --git a/assets/Audio/movement/surface/grass/Bare Step Grass Hard A.wav b/assets/Audio/movement/surface/grass/Bare Step Grass Hard A.wav new file mode 100644 index 00000000..310a0892 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Bare Step Grass Hard A.wav differ diff --git a/assets/Audio/movement/surface/grass/Bare Step Grass Hard B.wav b/assets/Audio/movement/surface/grass/Bare Step Grass Hard B.wav new file mode 100644 index 00000000..e8643e7d Binary files /dev/null and b/assets/Audio/movement/surface/grass/Bare Step Grass Hard B.wav differ diff --git a/assets/Audio/movement/surface/grass/Bare Step Grass Hard C.wav b/assets/Audio/movement/surface/grass/Bare Step Grass Hard C.wav new file mode 100644 index 00000000..807dd8db Binary files /dev/null and b/assets/Audio/movement/surface/grass/Bare Step Grass Hard C.wav differ diff --git a/assets/Audio/movement/surface/grass/Bare Step Grass Hard D.wav b/assets/Audio/movement/surface/grass/Bare Step Grass Hard D.wav new file mode 100644 index 00000000..8661e998 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Bare Step Grass Hard D.wav differ diff --git a/assets/Audio/movement/surface/grass/Bare Step Grass Hard E.wav b/assets/Audio/movement/surface/grass/Bare Step Grass Hard E.wav new file mode 100644 index 00000000..6521ab36 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Bare Step Grass Hard E.wav differ diff --git a/assets/Audio/movement/surface/grass/Bare Step Grass Medium A.wav b/assets/Audio/movement/surface/grass/Bare Step Grass Medium A.wav new file mode 100644 index 00000000..e1590a68 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Bare Step Grass Medium A.wav differ diff --git a/assets/Audio/movement/surface/grass/Bare Step Grass Medium B.wav b/assets/Audio/movement/surface/grass/Bare Step Grass Medium B.wav new file mode 100644 index 00000000..48f3bdb7 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Bare Step Grass Medium B.wav differ diff --git a/assets/Audio/movement/surface/grass/Bare Step Grass Medium C.wav b/assets/Audio/movement/surface/grass/Bare Step Grass Medium C.wav new file mode 100644 index 00000000..bf9858ca Binary files /dev/null and b/assets/Audio/movement/surface/grass/Bare Step Grass Medium C.wav differ diff --git a/assets/Audio/movement/surface/grass/Bare Step Grass Medium D.wav b/assets/Audio/movement/surface/grass/Bare Step Grass Medium D.wav new file mode 100644 index 00000000..172828eb Binary files /dev/null and b/assets/Audio/movement/surface/grass/Bare Step Grass Medium D.wav differ diff --git a/assets/Audio/movement/surface/grass/Bare Step Grass Medium E.wav b/assets/Audio/movement/surface/grass/Bare Step Grass Medium E.wav new file mode 100644 index 00000000..12cfa5d7 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Bare Step Grass Medium E.wav differ diff --git a/assets/Audio/movement/surface/grass/Jump Step Grass A.wav b/assets/Audio/movement/surface/grass/Jump Step Grass A.wav new file mode 100644 index 00000000..2cfbeb80 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Jump Step Grass A.wav differ diff --git a/assets/Audio/movement/surface/grass/Jump Step Grass B.wav b/assets/Audio/movement/surface/grass/Jump Step Grass B.wav new file mode 100644 index 00000000..be10f81e Binary files /dev/null and b/assets/Audio/movement/surface/grass/Jump Step Grass B.wav differ diff --git a/assets/Audio/movement/surface/grass/Land Step Grass A.wav b/assets/Audio/movement/surface/grass/Land Step Grass A.wav new file mode 100644 index 00000000..3361ec76 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Land Step Grass A.wav differ diff --git a/assets/Audio/movement/surface/grass/Land Step Grass B.wav b/assets/Audio/movement/surface/grass/Land Step Grass B.wav new file mode 100644 index 00000000..6e576bef Binary files /dev/null and b/assets/Audio/movement/surface/grass/Land Step Grass B.wav differ diff --git a/assets/Audio/movement/surface/grass/Shoe Step Grass Hard A.wav b/assets/Audio/movement/surface/grass/Shoe Step Grass Hard A.wav new file mode 100644 index 00000000..8f1fb639 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Shoe Step Grass Hard A.wav differ diff --git a/assets/Audio/movement/surface/grass/Shoe Step Grass Hard B.wav b/assets/Audio/movement/surface/grass/Shoe Step Grass Hard B.wav new file mode 100644 index 00000000..ffa18feb Binary files /dev/null and b/assets/Audio/movement/surface/grass/Shoe Step Grass Hard B.wav differ diff --git a/assets/Audio/movement/surface/grass/Shoe Step Grass Hard C.wav b/assets/Audio/movement/surface/grass/Shoe Step Grass Hard C.wav new file mode 100644 index 00000000..2f791b4f Binary files /dev/null and b/assets/Audio/movement/surface/grass/Shoe Step Grass Hard C.wav differ diff --git a/assets/Audio/movement/surface/grass/Shoe Step Grass Hard D.wav b/assets/Audio/movement/surface/grass/Shoe Step Grass Hard D.wav new file mode 100644 index 00000000..e43974cc Binary files /dev/null and b/assets/Audio/movement/surface/grass/Shoe Step Grass Hard D.wav differ diff --git a/assets/Audio/movement/surface/grass/Shoe Step Grass Hard E.wav b/assets/Audio/movement/surface/grass/Shoe Step Grass Hard E.wav new file mode 100644 index 00000000..0207397c Binary files /dev/null and b/assets/Audio/movement/surface/grass/Shoe Step Grass Hard E.wav differ diff --git a/assets/Audio/movement/surface/grass/Shoe Step Grass Medium A.wav b/assets/Audio/movement/surface/grass/Shoe Step Grass Medium A.wav new file mode 100644 index 00000000..29819bf1 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Shoe Step Grass Medium A.wav differ diff --git a/assets/Audio/movement/surface/grass/Shoe Step Grass Medium B.wav b/assets/Audio/movement/surface/grass/Shoe Step Grass Medium B.wav new file mode 100644 index 00000000..1918e15f Binary files /dev/null and b/assets/Audio/movement/surface/grass/Shoe Step Grass Medium B.wav differ diff --git a/assets/Audio/movement/surface/grass/Shoe Step Grass Medium C.wav b/assets/Audio/movement/surface/grass/Shoe Step Grass Medium C.wav new file mode 100644 index 00000000..76a51254 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Shoe Step Grass Medium C.wav differ diff --git a/assets/Audio/movement/surface/grass/Shoe Step Grass Medium D.wav b/assets/Audio/movement/surface/grass/Shoe Step Grass Medium D.wav new file mode 100644 index 00000000..8ce1cb06 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Shoe Step Grass Medium D.wav differ diff --git a/assets/Audio/movement/surface/grass/Shoe Step Grass Medium E.wav b/assets/Audio/movement/surface/grass/Shoe Step Grass Medium E.wav new file mode 100644 index 00000000..a0c4fa46 Binary files /dev/null and b/assets/Audio/movement/surface/grass/Shoe Step Grass Medium E.wav differ diff --git a/assets/Data/audio/surface.json b/assets/Data/audio/surface.json index 8996a41e..2fd575e6 100644 --- a/assets/Data/audio/surface.json +++ b/assets/Data/audio/surface.json @@ -82,6 +82,45 @@ "Audio/movement/surface/dirt/Land Step Gravel A.wav", "Audio/movement/surface/dirt/Land Step Gravel B.wav" ] + }, + { + "voxelTypeIds" : [2,3], + "footstepRegularBareAudioPaths" : [ + "Audio/movement/surface/grass/Bare Step Grass Medium A.wav", + "Audio/movement/surface/grass/Bare Step Grass Medium B.wav", + "Audio/movement/surface/grass/Bare Step Grass Medium C.wav", + "Audio/movement/surface/grass/Bare Step Grass Medium D.wav", + "Audio/movement/surface/grass/Bare Step Grass Medium E.wav" + ], + "footstepHeavyBareAudioPaths" : [ + "Audio/movement/surface/grass/Bare Step Grass Hard A.wav", + "Audio/movement/surface/grass/Bare Step Grass Hard B.wav", + "Audio/movement/surface/grass/Bare Step Grass Hard C.wav", + "Audio/movement/surface/grass/Bare Step Grass Hard D.wav", + "Audio/movement/surface/grass/Bare Step Grass Hard E.wav" + ], + "footstepRegularShoeAudioPaths" : [ + "Audio/movement/surface/grass/Shoe Step Grass Medium A.wav", + "Audio/movement/surface/grass/Shoe Step Grass Medium B.wav", + "Audio/movement/surface/grass/Shoe Step Grass Medium C.wav", + "Audio/movement/surface/grass/Shoe Step Grass Medium D.wav", + "Audio/movement/surface/grass/Shoe Step Grass Medium E.wav" + ], + "footstepHeavyShoeAudioPaths" : [ + "Audio/movement/surface/grass/Shoe Step Grass Hard A.wav", + "Audio/movement/surface/grass/Shoe Step Grass Hard B.wav", + "Audio/movement/surface/grass/Shoe Step Grass Hard C.wav", + "Audio/movement/surface/grass/Shoe Step Grass Hard D.wav", + "Audio/movement/surface/grass/Shoe Step Grass Hard E.wav" + ], + "jumpAudioPaths" : [ + "Audio/movement/surface/grass/Jump Step Grass A.wav", + "Audio/movement/surface/grass/Jump Step Grass B.wav" + ], + "landAudioPaths" : [ + "Audio/movement/surface/grass/Land Step Grass A.wav", + "Audio/movement/surface/grass/Land Step Grass B.wav" + ] } ] } \ No newline at end of file diff --git a/docs/src/progress/currenttarget.md b/docs/src/progress/currenttarget.md index a476154a..d1123df1 100644 --- a/docs/src/progress/currenttarget.md +++ b/docs/src/progress/currenttarget.md @@ -16,7 +16,6 @@ Ticketed randomizer node for BTs to more heavily weight attacking and waiting + bug fixes - Fix grass rendering distance Fix return to title menu synchronization bug + unreproducible bugs diff --git a/docs/src/progress/renderertodo.md b/docs/src/progress/renderertodo.md index 56ccec99..8f4ea0c8 100644 --- a/docs/src/progress/renderertodo.md +++ b/docs/src/progress/renderertodo.md @@ -720,9 +720,16 @@ Fix empty item slot not showing underneath dragged item Fix voxel selection popout rendering, nav logic (09/11/2024) -Voxel updates +Voxel updates (+new type!) Fix return-to-title button from ingame main menu Fix F2 controls bug with title menu +ChunkOctree implementation +Octree approach for rendering foliage on client +Foliage scaled cell generation +DBody key refactor +Audio for grass/leaves +Re-enable UI test +Fix foliage chunk-level radius being too low (causing grass cutoff) # TODO diff --git a/src/main/java/electrosphere/client/foliagemanager/ClientFoliageManager.java b/src/main/java/electrosphere/client/foliagemanager/ClientFoliageManager.java index b24a38fe..e1824ed7 100644 --- a/src/main/java/electrosphere/client/foliagemanager/ClientFoliageManager.java +++ b/src/main/java/electrosphere/client/foliagemanager/ClientFoliageManager.java @@ -24,7 +24,7 @@ public class ClientFoliageManager { /** * Number of chunks to check */ - int chunkRadius = 1; + int chunkRadius = 2; diff --git a/src/main/java/electrosphere/client/foliagemanager/FoliageChunk.java b/src/main/java/electrosphere/client/foliagemanager/FoliageChunk.java index 64ff4657..16c829b0 100644 --- a/src/main/java/electrosphere/client/foliagemanager/FoliageChunk.java +++ b/src/main/java/electrosphere/client/foliagemanager/FoliageChunk.java @@ -27,12 +27,12 @@ public class FoliageChunk { /** * The distance to draw at full resolution */ - static final double FULL_RES_DIST = 20; + static final double FULL_RES_DIST = 15; /** * The distance for half resolution */ - static final double HALF_RES_DIST = 40; + static final double HALF_RES_DIST = 30; /** * The octree holding all the chunks to evaluate diff --git a/src/main/java/electrosphere/renderer/framebuffer/Framebuffer.java b/src/main/java/electrosphere/renderer/framebuffer/Framebuffer.java index 22f1f560..499d5d68 100644 --- a/src/main/java/electrosphere/renderer/framebuffer/Framebuffer.java +++ b/src/main/java/electrosphere/renderer/framebuffer/Framebuffer.java @@ -285,8 +285,10 @@ public class Framebuffer { int offsetY = 0; int width = openGLState.getViewport().x; int height = openGLState.getViewport().y; + + //the formats we want opengl to return with int pixelFormat = GL40.GL_RGBA; - int type = GL40.GL_UNSIGNED_INT; + int type = GL40.GL_UNSIGNED_BYTE; bind(openGLState); @@ -296,8 +298,6 @@ public class Framebuffer { GL40.glReadBuffer(GL40.GL_BACK); } else if(attachTextureMap.containsKey(0)){ Texture texture = attachTextureMap.get(0); - pixelFormat = texture.getFormat(); - type = texture.getDataType(); width = texture.getWidth(); height = texture.getHeight(); } else { @@ -353,19 +353,7 @@ public class Framebuffer { LoggerInterface.loggerRenderer.WARNING("Trying to export framebuffer that has image of unsupported pixel format"); } break; } - int bytesPerComponent = 1; - switch(type){ - case GL40.GL_UNSIGNED_INT: { - bytesPerComponent = 4; - } break; - case GL40.GL_UNSIGNED_BYTE: { - bytesPerComponent = 1; - } break; - default: { - LoggerInterface.loggerRenderer.WARNING("Trying to export framebuffer that has image of unsupported datatype"); - } break; - } - return multiplier * bytesPerComponent; + return multiplier; } } diff --git a/src/main/java/electrosphere/renderer/framebuffer/FramebufferUtils.java b/src/main/java/electrosphere/renderer/framebuffer/FramebufferUtils.java index 5899a8ac..30ebc28f 100644 --- a/src/main/java/electrosphere/renderer/framebuffer/FramebufferUtils.java +++ b/src/main/java/electrosphere/renderer/framebuffer/FramebufferUtils.java @@ -48,7 +48,7 @@ public class FramebufferUtils { public static Texture generateScreenTextureColor(OpenGLState openGLState, int width, int height){ Texture texture = new Texture(); texture.bind(openGLState); - texture.glTexImage2D(openGLState, width, height, GL_RGB, GL_UNSIGNED_BYTE); + texture.glTexImage2D(openGLState, width, height, GL_RGB, GL45.GL_UNSIGNED_INT); texture.setMinFilter(openGLState, GL_LINEAR); texture.setMagFilter(openGLState, GL_LINEAR); //these make sure the texture actually clamps to the borders of the quad @@ -67,7 +67,7 @@ public class FramebufferUtils { public static Texture generateScreenTextureColorAlpha(OpenGLState openGLState, int width, int height){ Texture texture = new Texture(); texture.bind(openGLState); - texture.glTexImage2D(openGLState, width, height, GL_RGBA, GL45.GL_UNSIGNED_INT_8_8_8_8); + texture.glTexImage2D(openGLState, width, height, GL_RGBA, GL45.GL_UNSIGNED_INT); texture.setMinFilter(openGLState, GL_LINEAR); texture.setMagFilter(openGLState, GL_LINEAR); //these make sure the texture actually clamps to the borders of the quad diff --git a/src/test/java/electrosphere/renderer/ui/elements/WindowTest.java b/src/test/java/electrosphere/renderer/ui/elements/WindowTest.java index 9088573d..d4b83d77 100644 --- a/src/test/java/electrosphere/renderer/ui/elements/WindowTest.java +++ b/src/test/java/electrosphere/renderer/ui/elements/WindowTest.java @@ -1,7 +1,5 @@ package electrosphere.renderer.ui.elements; -import org.junit.jupiter.api.Disabled; - import electrosphere.test.annotations.IntegrationTest; import electrosphere.menu.WindowUtils; import electrosphere.menu.mainmenu.MenuGeneratorsUITesting; @@ -16,18 +14,19 @@ public class WindowTest extends RenderingTestTemplate { /** * Tests creating a window */ - @Disabled @IntegrationTest public void testCreateWindow(){ //create ui testing window TestEngineUtils.simulateFrames(1); WindowUtils.replaceMainMenuContents(MenuGeneratorsUITesting.createUITestMenu()); - //only simulating 1 frame after updating ui contents does not trigger re-render in local dev environment, but DOES in CI env - //2 frames seems to fix this + //wait for ui updates + TestEngineUtils.flush(); + TestEngineUtils.simulateFrames(60); + // TestRenderingUtils.saveTestRender("./test/java/electrosphere/renderer/ui/elements/window.png"); - this.checkRender("Basic", "./test/java/electrosphere/renderer/ui/elements/window.png"); + this.checkRender("Basic", "./test/java/electrosphere/renderer/ui/elements/ui-test.png"); } } diff --git a/test/java/electrosphere/renderer/ui/elements/ui-test.png b/test/java/electrosphere/renderer/ui/elements/ui-test.png new file mode 100644 index 00000000..b2b7d2c5 Binary files /dev/null and b/test/java/electrosphere/renderer/ui/elements/ui-test.png differ