├── app ├── .gitignore ├── src │ └── main │ │ ├── res │ │ ├── values │ │ │ ├── strings.xml │ │ │ ├── attrs.xml │ │ │ └── themes.xml │ │ ├── mipmap-hdpi │ │ │ └── ic_launcher_adaptive_fore.png │ │ ├── mipmap-mdpi │ │ │ └── ic_launcher_adaptive_fore.png │ │ ├── mipmap-xhdpi │ │ │ └── ic_launcher_adaptive_fore.png │ │ ├── mipmap-xxhdpi │ │ │ └── ic_launcher_adaptive_fore.png │ │ ├── mipmap-xxxhdpi │ │ │ └── ic_launcher_adaptive_fore.png │ │ ├── xml │ │ │ ├── backup_rules.xml │ │ │ └── data_extraction_rules.xml │ │ ├── mipmap-anydpi-v26 │ │ │ └── ic_launcher.xml │ │ ├── values-v31 │ │ │ └── themes.xml │ │ └── values-v27 │ │ │ └── themes.xml │ │ └── AndroidManifest.xml ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── core ├── src │ ├── main │ │ ├── resources │ │ │ ├── Textures │ │ │ │ ├── gear.png │ │ │ │ ├── moon.png │ │ │ │ ├── moon.xcf │ │ │ │ ├── plus.png │ │ │ │ ├── sun.png │ │ │ │ ├── sun.xcf │ │ │ │ ├── cursor.png │ │ │ │ ├── flight.png │ │ │ │ ├── ground.png │ │ │ │ ├── minus.png │ │ │ │ ├── range.png │ │ │ │ ├── trash.png │ │ │ │ ├── airplane.png │ │ │ │ ├── arrowdown.png │ │ │ │ ├── arrowjump.png │ │ │ │ ├── arrowleft.png │ │ │ │ ├── arrowup.png │ │ │ │ ├── font-apex.png │ │ │ │ ├── settings.png │ │ │ │ ├── arrowright.png │ │ │ │ ├── arrowdown-full.png │ │ │ │ ├── arrowjump-full.png │ │ │ │ ├── arrowleft-full.png │ │ │ │ ├── arrowup-full.png │ │ │ │ ├── font-default.png │ │ │ │ ├── range-filled.png │ │ │ │ ├── arrowright-full.png │ │ │ │ ├── arrowdown.svg │ │ │ │ ├── arrowleft.svg │ │ │ │ ├── arrowright.svg │ │ │ │ ├── arrowdown-full.svg │ │ │ │ ├── arrowup.svg │ │ │ │ ├── arrowleft-full.svg │ │ │ │ ├── arrowright-full.svg │ │ │ │ ├── arrowup-full.svg │ │ │ │ ├── flight.svg │ │ │ │ ├── arrowjump.svg │ │ │ │ ├── arrowjump-full.svg │ │ │ │ ├── minus.svg │ │ │ │ ├── range.svg │ │ │ │ └── plus.svg │ │ │ ├── ialonsplash.png │ │ │ ├── ialon-theme │ │ │ │ ├── bed.png │ │ │ │ ├── books.png │ │ │ │ ├── bricks.png │ │ │ │ ├── dirt.png │ │ │ │ ├── dummy.png │ │ │ │ ├── grass.png │ │ │ │ ├── grass.xcf │ │ │ │ ├── gravel.png │ │ │ │ ├── lava.png │ │ │ │ ├── metal1.png │ │ │ │ ├── metal2.png │ │ │ │ ├── metal3.png │ │ │ │ ├── metal4.png │ │ │ │ ├── metal5.png │ │ │ │ ├── oven.png │ │ │ │ ├── paving.png │ │ │ │ ├── rail.png │ │ │ │ ├── rock.png │ │ │ │ ├── sand.png │ │ │ │ ├── sand3.png │ │ │ │ ├── scale.png │ │ │ │ ├── slate.png │ │ │ │ ├── snow.png │ │ │ │ ├── water.png │ │ │ │ ├── water2.png │ │ │ │ ├── water3.png │ │ │ │ ├── water3.xcf │ │ │ │ ├── water4.png │ │ │ │ ├── water4.xcf │ │ │ │ ├── water5.png │ │ │ │ ├── water5.xcf │ │ │ │ ├── water6.png │ │ │ │ ├── window.png │ │ │ │ ├── drawers.png │ │ │ │ ├── oak_log.png │ │ │ │ ├── tile_red.png │ │ │ │ ├── bedpillow.png │ │ │ │ ├── birch_log.png │ │ │ │ ├── cobblestone.png │ │ │ │ ├── color_black.png │ │ │ │ ├── color_blue.png │ │ │ │ ├── color_cyan.png │ │ │ │ ├── color_green.png │ │ │ │ ├── color_red.png │ │ │ │ ├── color_red2.png │ │ │ │ ├── color_rose.png │ │ │ │ ├── grass_snow.png │ │ │ │ ├── item_grass.png │ │ │ │ ├── oak_leaves.png │ │ │ │ ├── oak_planks.png │ │ │ │ ├── rail_curved.png │ │ │ │ ├── rail_curved.xcf │ │ │ │ ├── rail_slope.png │ │ │ │ ├── spruce_log.png │ │ │ │ ├── test_multi.png │ │ │ │ ├── water-debug.png │ │ │ │ ├── white_light.png │ │ │ │ ├── birch_leaves.png │ │ │ │ ├── birch_planks.png │ │ │ │ ├── color_magenta.png │ │ │ │ ├── color_orange.png │ │ │ │ ├── color_yellow.png │ │ │ │ ├── item_seaweed.png │ │ │ │ ├── palm_tree_log.png │ │ │ │ ├── spruce_leaves.png │ │ │ │ ├── spruce_planks.png │ │ │ │ ├── stone_bricks.png │ │ │ │ ├── stone_bricks2.png │ │ │ │ ├── stone_bricks3.png │ │ │ │ ├── water-normal.png │ │ │ │ ├── palm_tree_leaves.png │ │ │ │ ├── palm_tree_planks.png │ │ │ │ ├── mossy_cobblestone.png │ │ │ │ ├── mossy_stone_bricks.png │ │ │ │ ├── water_still.j3m │ │ │ │ ├── water.j3m │ │ │ │ └── water_still.bak │ │ │ ├── Models │ │ │ │ └── Wagon │ │ │ │ │ ├── wagon.j3o │ │ │ │ │ ├── wagon.png │ │ │ │ │ ├── wagon.blend │ │ │ │ │ ├── wagon.uv.png │ │ │ │ │ ├── wagon.texture.xcf │ │ │ │ │ └── wagon.mtl │ │ │ ├── Blocks │ │ │ │ ├── Themes │ │ │ │ │ ├── faithful │ │ │ │ │ │ ├── dirt.png │ │ │ │ │ │ ├── grass.png │ │ │ │ │ │ ├── rock.png │ │ │ │ │ │ ├── sand.png │ │ │ │ │ │ ├── snow.png │ │ │ │ │ │ ├── bricks.png │ │ │ │ │ │ ├── gravel.png │ │ │ │ │ │ ├── oak_log.png │ │ │ │ │ │ ├── birch_log.png │ │ │ │ │ │ ├── grass_snow.png │ │ │ │ │ │ ├── oak_planks.png │ │ │ │ │ │ ├── spruce_log.png │ │ │ │ │ │ ├── birch_planks.png │ │ │ │ │ │ ├── cobblestone.png │ │ │ │ │ │ ├── stone_bricks.png │ │ │ │ │ │ ├── palm_tree_log.png │ │ │ │ │ │ ├── spruce_planks.png │ │ │ │ │ │ ├── mossy_cobblestone.png │ │ │ │ │ │ ├── palm_tree_planks.png │ │ │ │ │ │ ├── mossy_stone_bricks.png │ │ │ │ │ │ ├── water.j3m │ │ │ │ │ │ └── water_still.j3m │ │ │ │ │ └── default-bak │ │ │ │ │ │ ├── dirt.png │ │ │ │ │ │ ├── rock.png │ │ │ │ │ │ ├── sand.png │ │ │ │ │ │ ├── snow.png │ │ │ │ │ │ ├── bricks.png │ │ │ │ │ │ ├── grass.png │ │ │ │ │ │ ├── gravel.png │ │ │ │ │ │ ├── oak_log.png │ │ │ │ │ │ ├── water.png │ │ │ │ │ │ ├── window.png │ │ │ │ │ │ ├── birch_log.png │ │ │ │ │ │ ├── birch_leaves.png │ │ │ │ │ │ ├── birch_planks.png │ │ │ │ │ │ ├── cobblestone.png │ │ │ │ │ │ ├── dirt-normal.png │ │ │ │ │ │ ├── grass-normal.png │ │ │ │ │ │ ├── grass_snow.png │ │ │ │ │ │ ├── oak_leaves.png │ │ │ │ │ │ ├── oak_planks.png │ │ │ │ │ │ ├── rock-normal.png │ │ │ │ │ │ ├── sand-normal.png │ │ │ │ │ │ ├── snow-normal.png │ │ │ │ │ │ ├── spruce_log.png │ │ │ │ │ │ ├── stone_bricks.png │ │ │ │ │ │ ├── water-normal.png │ │ │ │ │ │ ├── bricks-normal.png │ │ │ │ │ │ ├── dirt-parallax.png │ │ │ │ │ │ ├── grass-overlay.png │ │ │ │ │ │ ├── grass-parallax.png │ │ │ │ │ │ ├── gravel-normal.png │ │ │ │ │ │ ├── oak_log-normal.png │ │ │ │ │ │ ├── palm_tree_log.png │ │ │ │ │ │ ├── rock-parallax.png │ │ │ │ │ │ ├── sand-parallax.png │ │ │ │ │ │ ├── snow-parallax.png │ │ │ │ │ │ ├── spruce_leaves.png │ │ │ │ │ │ ├── spruce_planks.png │ │ │ │ │ │ ├── birch_log-normal.png │ │ │ │ │ │ ├── bricks-parallax.png │ │ │ │ │ │ ├── grass_snow-normal.png │ │ │ │ │ │ ├── gravel-parallax.png │ │ │ │ │ │ ├── mossy_cobblestone.png │ │ │ │ │ │ ├── oak_log-parallax.png │ │ │ │ │ │ ├── oak_planks-normal.png │ │ │ │ │ │ ├── palm_tree_leaves.png │ │ │ │ │ │ ├── palm_tree_planks.png │ │ │ │ │ │ ├── spruce_log-normal.png │ │ │ │ │ │ ├── white_cube_light.png │ │ │ │ │ │ ├── birch_log-parallax.png │ │ │ │ │ │ ├── birch_planks-normal.png │ │ │ │ │ │ ├── cobblestone-normal.png │ │ │ │ │ │ ├── grass_snow-parallax.png │ │ │ │ │ │ ├── mossy_stone_bricks.png │ │ │ │ │ │ ├── oak_planks-parallax.png │ │ │ │ │ │ ├── spruce_log-parallax.png │ │ │ │ │ │ ├── stone_bricks-normal.png │ │ │ │ │ │ ├── birch_planks-parallax.png │ │ │ │ │ │ ├── cobblestone-parallax.png │ │ │ │ │ │ ├── palm_tree_log-normal.png │ │ │ │ │ │ ├── palm_tree_log-parallax.png │ │ │ │ │ │ ├── spruce_planks-normal.png │ │ │ │ │ │ ├── spruce_planks-parallax.png │ │ │ │ │ │ ├── stone_bricks-parallax.png │ │ │ │ │ │ ├── mossy_cobblestone-normal.png │ │ │ │ │ │ ├── palm_tree_planks-normal.png │ │ │ │ │ │ ├── mossy_cobblestone-parallax.png │ │ │ │ │ │ ├── mossy_stone_bricks-normal.png │ │ │ │ │ │ ├── mossy_stone_bricks-parallax.png │ │ │ │ │ │ ├── palm_tree_planks-parallax.png │ │ │ │ │ │ ├── window.j3m │ │ │ │ │ │ ├── birch_leaves.j3m │ │ │ │ │ │ ├── oak_leaves-bak.j3m │ │ │ │ │ │ ├── spruce_leaves.j3m │ │ │ │ │ │ ├── palm_tree_leaves.j3m │ │ │ │ │ │ ├── grass.j3m │ │ │ │ │ │ ├── water.j3m │ │ │ │ │ │ └── water_still.j3m │ │ │ │ ├── Materials │ │ │ │ │ └── default-block.j3m │ │ │ │ ├── Shaders │ │ │ │ │ ├── BlendFunctions.glsllib │ │ │ │ │ ├── Unshaded.vert │ │ │ │ │ ├── Unshaded.frag │ │ │ │ │ └── Ialon.frag │ │ │ │ └── MatDefs │ │ │ │ │ └── FluidDepth.j3md │ │ │ ├── blocks.proto │ │ │ └── logback.xml │ │ └── java │ │ │ ├── org │ │ │ └── delaunois │ │ │ │ └── ialon │ │ │ │ ├── EmptyNode.java │ │ │ │ ├── fastnoise │ │ │ │ ├── GradientPerturb.java │ │ │ │ ├── LayerMask.java │ │ │ │ └── Main.java │ │ │ │ ├── PlayerListener.java │ │ │ │ ├── TerrainGenerator.java │ │ │ │ ├── EmptyGenerator.java │ │ │ │ ├── WaterLevel.java │ │ │ │ ├── state │ │ │ │ ├── ChunkManagerState.java │ │ │ │ ├── ChunkPagerState.java │ │ │ │ ├── PhysicsChunkPagerState.java │ │ │ │ ├── WireframeState.java │ │ │ │ ├── ChunkSaverState.java │ │ │ │ ├── ChunkLiquidManagerState.java │ │ │ │ ├── SettingsValue.java │ │ │ │ ├── AxesDebugState.java │ │ │ │ ├── MoonState.java │ │ │ │ └── WagonState.java │ │ │ │ ├── control │ │ │ │ ├── CamFollowSpatialControl.java │ │ │ │ ├── SpatialFollowCamControl.java │ │ │ │ └── MoonControl.java │ │ │ │ ├── InputActionManager.java │ │ │ │ ├── RotationHelper.java │ │ │ │ ├── FlatTerrainGenerator.java │ │ │ │ ├── ui │ │ │ │ └── UiHelper.java │ │ │ │ └── IalonShapeSet.java │ │ │ └── com │ │ │ └── rvandoosselaer │ │ │ └── blocks │ │ │ ├── ChunkGenerator.java │ │ │ ├── ChunkManagerListener.java │ │ │ ├── ChunkRepository.java │ │ │ ├── ChunkResolver.java │ │ │ ├── BlocksTheme.java │ │ │ ├── serialize │ │ │ ├── BlockDTO.java │ │ │ └── BlockDefinition.java │ │ │ ├── ChunkManagerState.java │ │ │ ├── ChunkMeshGenerator.java │ │ │ ├── FlatTerrainGenerator.java │ │ │ ├── DirectIntBuffer.java │ │ │ ├── TypeIds.java │ │ │ ├── ChunkCache.java │ │ │ ├── DirectVector2fBuffer.java │ │ │ ├── DirectVector4fBuffer.java │ │ │ ├── DirectVector3fBuffer.java │ │ │ ├── Direction.java │ │ │ └── ChunkMesh.java │ └── test │ │ ├── resources │ │ ├── scenery │ │ │ ├── water-ut1 │ │ │ │ ├── expected.zblock │ │ │ │ └── chunk_0_0_0.zblock │ │ │ ├── water-ut2 │ │ │ │ ├── expected.zblock │ │ │ │ └── chunk_0_0_0.zblock │ │ │ ├── water-ut3 │ │ │ │ ├── expected.zblock │ │ │ │ └── chunk_0_0_0.zblock │ │ │ ├── water-ut4 │ │ │ │ ├── expected.zblock │ │ │ │ └── chunk_0_0_0.zblock │ │ │ ├── chunkpager │ │ │ │ └── chunk_0_0_0.zblock │ │ │ ├── wedge-all │ │ │ │ └── chunk_0_0_0.zblock │ │ │ ├── wedge-all2 │ │ │ │ ├── chunk_0_0_0.zblock │ │ │ │ └── chunk_0_1_0.zblock │ │ │ ├── modelviewer │ │ │ │ └── chunk_0_0_0.zblock │ │ │ └── wedge-single │ │ │ │ └── chunk_0_0_0.zblock │ │ └── logback-test.xml │ │ └── java │ │ └── org │ │ └── delaunois │ │ └── ialon │ │ ├── WaterTest.java │ │ ├── BlockSelectionStateTest.java │ │ └── ChunkManagerTest.java └── build.gradle ├── .gitignore ├── desktop ├── build.gradle └── src │ └── main │ └── java │ └── org │ └── delaunois │ └── ialon │ └── DesktopLauncher.java ├── .github └── workflows │ ├── gradle.yml │ └── sonar.yml ├── gradle.properties └── gradlew.bat /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app', ':core', ':desktop' 2 | rootProject.name = "Ialon" -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Ialon 3 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /core/src/main/resources/Textures/gear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/gear.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/moon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/moon.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/moon.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/moon.xcf -------------------------------------------------------------------------------- /core/src/main/resources/Textures/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/plus.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/sun.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/sun.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/sun.xcf -------------------------------------------------------------------------------- /core/src/main/resources/ialonsplash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialonsplash.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/cursor.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/flight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/flight.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/ground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/ground.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/minus.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/range.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/trash.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/bed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/bed.png -------------------------------------------------------------------------------- /core/src/main/resources/Models/Wagon/wagon.j3o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Models/Wagon/wagon.j3o -------------------------------------------------------------------------------- /core/src/main/resources/Models/Wagon/wagon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Models/Wagon/wagon.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/airplane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/airplane.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/arrowdown.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowjump.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/arrowjump.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/arrowleft.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/arrowup.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/font-apex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/font-apex.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/settings.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/books.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/books.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/bricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/bricks.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/dirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/dirt.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/dummy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/dummy.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/grass.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/grass.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/grass.xcf -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/gravel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/gravel.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/lava.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/lava.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/metal1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/metal1.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/metal2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/metal2.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/metal3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/metal3.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/metal4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/metal4.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/metal5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/metal5.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/oven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/oven.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/paving.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/paving.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/rail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/rail.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/rock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/rock.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/sand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/sand.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/sand3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/sand3.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/scale.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/scale.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/slate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/slate.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/snow.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water2.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water3.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water3.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water3.xcf -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water4.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water4.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water4.xcf -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water5.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water5.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water5.xcf -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water6.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/window.png -------------------------------------------------------------------------------- /core/src/main/resources/Models/Wagon/wagon.blend: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Models/Wagon/wagon.blend -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/arrowright.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/drawers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/drawers.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/oak_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/oak_log.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/tile_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/tile_red.png -------------------------------------------------------------------------------- /core/src/main/resources/Models/Wagon/wagon.uv.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Models/Wagon/wagon.uv.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowdown-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/arrowdown-full.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowjump-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/arrowjump-full.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowleft-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/arrowleft-full.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowup-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/arrowup-full.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/font-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/font-default.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/range-filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/range-filled.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/bedpillow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/bedpillow.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/birch_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/birch_log.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/cobblestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/cobblestone.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/color_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/color_black.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/color_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/color_blue.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/color_cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/color_cyan.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/color_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/color_green.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/color_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/color_red.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/color_red2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/color_red2.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/color_rose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/color_rose.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/grass_snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/grass_snow.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/item_grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/item_grass.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/oak_leaves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/oak_leaves.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/oak_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/oak_planks.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/rail_curved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/rail_curved.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/rail_curved.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/rail_curved.xcf -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/rail_slope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/rail_slope.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/spruce_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/spruce_log.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/test_multi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/test_multi.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water-debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water-debug.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/white_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/white_light.png -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowright-full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Textures/arrowright-full.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/birch_leaves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/birch_leaves.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/birch_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/birch_planks.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/color_magenta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/color_magenta.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/color_orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/color_orange.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/color_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/color_yellow.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/item_seaweed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/item_seaweed.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/palm_tree_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/palm_tree_log.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/spruce_leaves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/spruce_leaves.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/spruce_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/spruce_planks.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/stone_bricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/stone_bricks.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/stone_bricks2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/stone_bricks2.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/stone_bricks3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/stone_bricks3.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/water-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/dirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/dirt.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/grass.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/rock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/rock.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/sand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/sand.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/snow.png -------------------------------------------------------------------------------- /core/src/main/resources/Models/Wagon/wagon.texture.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Models/Wagon/wagon.texture.xcf -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/palm_tree_leaves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/palm_tree_leaves.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/palm_tree_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/palm_tree_planks.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_adaptive_fore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_adaptive_fore.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_adaptive_fore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_adaptive_fore.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/dirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/dirt.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/rock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/rock.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/sand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/sand.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/snow.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/bricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/bricks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/gravel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/gravel.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/oak_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/oak_log.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/mossy_cobblestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/mossy_cobblestone.png -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/mossy_stone_bricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/ialon-theme/mossy_stone_bricks.png -------------------------------------------------------------------------------- /core/src/test/resources/scenery/water-ut1/expected.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/water-ut1/expected.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/water-ut2/expected.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/water-ut2/expected.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/water-ut3/expected.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/water-ut3/expected.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/water-ut4/expected.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/water-ut4/expected.zblock -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_fore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_fore.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_adaptive_fore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_adaptive_fore.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_adaptive_fore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_adaptive_fore.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/bricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/bricks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/grass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/grass.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/gravel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/gravel.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/oak_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/oak_log.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/water.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/window.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/window.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/birch_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/birch_log.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/grass_snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/grass_snow.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/oak_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/oak_planks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/spruce_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/spruce_log.png -------------------------------------------------------------------------------- /core/src/test/resources/scenery/chunkpager/chunk_0_0_0.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/chunkpager/chunk_0_0_0.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/water-ut1/chunk_0_0_0.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/water-ut1/chunk_0_0_0.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/water-ut2/chunk_0_0_0.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/water-ut2/chunk_0_0_0.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/water-ut3/chunk_0_0_0.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/water-ut3/chunk_0_0_0.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/water-ut4/chunk_0_0_0.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/water-ut4/chunk_0_0_0.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/wedge-all/chunk_0_0_0.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/wedge-all/chunk_0_0_0.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/wedge-all2/chunk_0_0_0.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/wedge-all2/chunk_0_0_0.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/wedge-all2/chunk_0_1_0.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/wedge-all2/chunk_0_1_0.zblock -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/EmptyNode.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon; 2 | 3 | import com.jme3.scene.Node; 4 | 5 | public class EmptyNode extends Node {} 6 | -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/birch_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/birch_log.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/birch_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/birch_planks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/cobblestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/cobblestone.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/stone_bricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/stone_bricks.png -------------------------------------------------------------------------------- /core/src/test/resources/scenery/modelviewer/chunk_0_0_0.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/modelviewer/chunk_0_0_0.zblock -------------------------------------------------------------------------------- /core/src/test/resources/scenery/wedge-single/chunk_0_0_0.zblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/test/resources/scenery/wedge-single/chunk_0_0_0.zblock -------------------------------------------------------------------------------- /app/src/main/res/xml/backup_rules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/birch_leaves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/birch_leaves.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/birch_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/birch_planks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/cobblestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/cobblestone.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/dirt-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/dirt-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/grass-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/grass-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/grass_snow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/grass_snow.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/oak_leaves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/oak_leaves.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/oak_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/oak_planks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/rock-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/rock-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/sand-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/sand-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/snow-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/snow-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/spruce_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/spruce_log.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/stone_bricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/stone_bricks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/water-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/water-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/palm_tree_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/palm_tree_log.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/spruce_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/spruce_planks.png -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/fastnoise/GradientPerturb.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon.fastnoise; 2 | 3 | public enum GradientPerturb { 4 | Off, On, Fractal 5 | } 6 | -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/bricks-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/bricks-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/dirt-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/dirt-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/grass-overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/grass-overlay.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/grass-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/grass-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/gravel-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/gravel-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/oak_log-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/oak_log-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/palm_tree_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/palm_tree_log.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/rock-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/rock-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/sand-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/sand-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/snow-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/snow-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/spruce_leaves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/spruce_leaves.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/spruce_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/spruce_planks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/mossy_cobblestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/mossy_cobblestone.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/palm_tree_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/palm_tree_planks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/birch_log-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/birch_log-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/bricks-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/bricks-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/grass_snow-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/grass_snow-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/gravel-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/gravel-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/mossy_cobblestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/mossy_cobblestone.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/oak_log-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/oak_log-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/oak_planks-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/oak_planks-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/palm_tree_leaves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/palm_tree_leaves.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/palm_tree_planks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/palm_tree_planks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/spruce_log-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/spruce_log-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/white_cube_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/white_cube_light.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/mossy_stone_bricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/faithful/mossy_stone_bricks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/birch_log-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/birch_log-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/birch_planks-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/birch_planks-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/cobblestone-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/cobblestone-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/grass_snow-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/grass_snow-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/mossy_stone_bricks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/mossy_stone_bricks.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/oak_planks-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/oak_planks-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/spruce_log-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/spruce_log-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/stone_bricks-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/stone_bricks-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/birch_planks-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/birch_planks-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/cobblestone-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/cobblestone-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/palm_tree_log-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/palm_tree_log-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/palm_tree_log-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/palm_tree_log-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/spruce_planks-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/spruce_planks-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/spruce_planks-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/spruce_planks-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/stone_bricks-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/stone_bricks-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/mossy_cobblestone-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/mossy_cobblestone-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/palm_tree_planks-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/palm_tree_planks-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/mossy_cobblestone-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/mossy_cobblestone-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/mossy_stone_bricks-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/mossy_stone_bricks-normal.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/mossy_stone_bricks-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/mossy_stone_bricks-parallax.png -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/palm_tree_planks-parallax.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vxel/ialon/HEAD/core/src/main/resources/Blocks/Themes/default-bak/palm_tree_planks-parallax.png -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/PlayerListener.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon; 2 | 3 | import com.jme3.math.Vector3f; 4 | 5 | public interface PlayerListener { 6 | 7 | void onMove(Vector3f location); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/xml/data_extraction_rules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /core/src/main/resources/Models/Wagon/wagon.mtl: -------------------------------------------------------------------------------- 1 | # Blender 3.4.1 MTL File: 'wagon.blend' 2 | # www.blender.org 3 | 4 | newmtl wagon 5 | Ns 360.000000 6 | Ka 0.800000 0.800000 0.800000 7 | Ks 0.000000 0.000000 0.000000 8 | Ke 0.000000 0.000000 0.000000 9 | Ni 1.450000 10 | d 1.000000 11 | illum 1 12 | map_Kd wagon.png 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /core/build 3 | /core/src/test/resources/scenery/saved/ 4 | /app/debug 5 | /app/release 6 | /app/build 7 | /desktop/build 8 | /save 9 | /local 10 | /export 11 | 12 | /*.so 13 | /core/*.so 14 | /*.jpg 15 | /*.png 16 | /*.iml 17 | 18 | /.idea 19 | /.gradle 20 | local.properties 21 | /core/src/main/resources/Models/Wagon/wagon.blend1 22 | -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/TerrainGenerator.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon; 2 | 3 | import com.jme3.math.Vector3f; 4 | import com.rvandoosselaer.blocks.ChunkGenerator; 5 | 6 | public interface TerrainGenerator extends ChunkGenerator { 7 | 8 | float getWaterHeight(); 9 | 10 | void setWaterHeight(float waterHeight); 11 | 12 | float getHeight(Vector3f blockLocation); 13 | } 14 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/ChunkGenerator.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.simsilica.mathd.Vec3i; 4 | 5 | /** 6 | * The contract of a ChunkGenerator implementation. 7 | * 8 | * @author rvandoosselaer 9 | */ 10 | public interface ChunkGenerator { 11 | 12 | /** 13 | * Generates the chunk for the given chunk location. 14 | * 15 | * @param location of the chunk 16 | * @return chunk 17 | */ 18 | Chunk generate(Vec3i location); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/ChunkManagerListener.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | /** 4 | * A listener that can be registered to the {@link ChunkManager}. Use this to get notified when the mesh of a chunk is 5 | * updated or when a new chunk is available for retrieval. 6 | * 7 | * @author: rvandoosselaer 8 | */ 9 | public interface ChunkManagerListener { 10 | 11 | void onChunkUpdated(Chunk chunk); 12 | 13 | void onChunkAvailable(Chunk chunk); 14 | 15 | default void onChunkFetched(Chunk chunk) {}; 16 | } 17 | -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Materials/default-block.j3m: -------------------------------------------------------------------------------- 1 | Material normal-block : Blocks/MatDefs/Ialon.j3md { 2 | 3 | MaterialParameters { 4 | Shininess: 0 5 | UseMaterialColors: true 6 | Ambient: 1.0 1.0 1.0 1.0 7 | Diffuse: 1.0 1.0 1.0 1.0 8 | VertexLighting: true 9 | DiffuseMap: Flip MagBilinear BilinearNearestMipMap ialon-theme/dummy.png 10 | UseVertexColor: true 11 | AlphaDiscardThreshold : 0 12 | } 13 | 14 | AdditionalRenderState { 15 | PolyOffset -0.2 -0.2 16 | } 17 | 18 | } -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/window.j3m: -------------------------------------------------------------------------------- 1 | Material window : Blocks/MatDefs/Lighting.j3md { 2 | 3 | MaterialParameters { 4 | Shininess: 0 5 | UseMaterialColors: true 6 | Ambient: 1.0 1.0 1.0 1.0 7 | Diffuse: 1.0 1.0 1.0 1.0 8 | Specular: 0 0 0 1.0 9 | VertexLighting: true 10 | DiffuseMap: MagNearest MinNearestNoMipMaps Blocks/Themes/default/window.png 11 | AlphaDiscardThreshold : 0.1 12 | } 13 | 14 | AdditionalRenderState { 15 | Blend Alpha 16 | FaceCull Off 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/water.j3m: -------------------------------------------------------------------------------- 1 | Material water : Blocks/MatDefs/Fluid.j3md { 2 | 3 | MaterialParameters { 4 | VertexLighting: false 5 | UseMaterialColors: true 6 | Ambient: 0.223 0.536 0.653 0.75 7 | Diffuse: 0.223 0.536 0.653 0.75 8 | Specular: 0.3 0.3 0.3 1.0 9 | Shininess: 96 10 | 11 | // custom 12 | WaveSpeed : 1.5 13 | WaveHeight : 0.03 14 | WaveSize : 10 15 | TextureScrollSpeedX : 0 16 | TextureScrollSpeedY : 0 17 | } 18 | 19 | AdditionalRenderState { 20 | Blend Alpha 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/faithful/water_still.j3m: -------------------------------------------------------------------------------- 1 | Material water-still : Blocks/MatDefs/Fluid.j3md { 2 | 3 | MaterialParameters { 4 | VertexLighting: false 5 | UseMaterialColors: true 6 | Ambient: 0.223 0.536 0.653 0.75 7 | Diffuse: 0.223 0.536 0.653 0.75 8 | Specular: 0.3 0.3 0.3 1.0 9 | Shininess: 96 10 | 11 | // custom 12 | WaveSpeed : 0 13 | WaveHeight : 0 14 | WaveSize : 0 15 | TextureScrollSpeedX : 0 16 | TextureScrollSpeedY : 0 17 | } 18 | 19 | AdditionalRenderState { 20 | Blend Alpha 21 | } 22 | 23 | } -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/birch_leaves.j3m: -------------------------------------------------------------------------------- 1 | Material birch_leaves : Blocks/MatDefs/Lighting.j3md { 2 | 3 | MaterialParameters { 4 | Shininess: 0 5 | UseMaterialColors: true 6 | SteepParallax: true 7 | ParallaxHeight: 0.05 8 | Ambient: 1.0 1.0 1.0 1.0 9 | Diffuse: 1.0 1.0 1.0 1.0 10 | Specular: 0 0 0 1.0 11 | VertexLighting: true 12 | DiffuseMap: MagNearest MinNearestNoMipMaps Blocks/Themes/default/birch_leaves.png 13 | AlphaDiscardThreshold : 0.1 14 | } 15 | 16 | AdditionalRenderState { 17 | Blend Alpha 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/oak_leaves-bak.j3m: -------------------------------------------------------------------------------- 1 | Material oak_leaves : Blocks/MatDefs/Lighting.j3md { 2 | 3 | MaterialParameters { 4 | Shininess: 0 5 | UseMaterialColors: true 6 | SteepParallax: true 7 | ParallaxHeight: 0.05 8 | Ambient: 1.0 1.0 1.0 1.0 9 | Diffuse: 1.0 1.0 1.0 1.0 10 | Specular: 0 0 0 1.0 11 | VertexLighting: true 12 | DiffuseMap: MagNearest MinNearestNoMipMaps Blocks/Themes/default/oak_leaves.png 13 | AlphaDiscardThreshold : 0.05 14 | } 15 | 16 | AdditionalRenderState { 17 | Blend Alpha 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/spruce_leaves.j3m: -------------------------------------------------------------------------------- 1 | Material spruce_leaves : Blocks/MatDefs/Lighting.j3md { 2 | 3 | MaterialParameters { 4 | Shininess: 0 5 | UseMaterialColors: true 6 | SteepParallax: true 7 | ParallaxHeight: 0.05 8 | Ambient: 1.0 1.0 1.0 1.0 9 | Diffuse: 1.0 1.0 1.0 1.0 10 | Specular: 0 0 0 1.0 11 | VertexLighting: true 12 | DiffuseMap: MagNearest MinNearestNoMipMaps Blocks/Themes/default/spruce_leaves.png 13 | AlphaDiscardThreshold : 0.1 14 | } 15 | 16 | AdditionalRenderState { 17 | Blend Alpha 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water_still.j3m: -------------------------------------------------------------------------------- 1 | Material water-still : Blocks/MatDefs/Ialon.j3md { 2 | 3 | MaterialParameters { 4 | VertexLighting: true 5 | UseVertexColor: true 6 | UseMaterialColors: true 7 | Ambient: 1.0 1.0 1.0 1.0 8 | Diffuse: 1.0 1.0 1.0 1.0 9 | Specular: 0.3 0.3 0.3 1.0 10 | Shininess: 96 11 | DiffuseMap: Flip WrapRepeat_S WrapRepeat_T ialon-theme/water2.png 12 | 13 | // custom 14 | TextureScrollSpeedX : 0.0 15 | TextureScrollSpeedY : 0.0 16 | } 17 | 18 | AdditionalRenderState { 19 | Blend Alpha 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/palm_tree_leaves.j3m: -------------------------------------------------------------------------------- 1 | Material palm_tree_leaves : Blocks/MatDefs/Lighting.j3md { 2 | 3 | MaterialParameters { 4 | Shininess: 0 5 | UseMaterialColors: true 6 | SteepParallax: true 7 | ParallaxHeight: 0.05 8 | Ambient: 1.0 1.0 1.0 1.0 9 | Diffuse: 1.0 1.0 1.0 1.0 10 | Specular: 0 0 0 1.0 11 | VertexLighting: true 12 | DiffuseMap: MagNearest MinNearestNoMipMaps Blocks/Themes/default/palm_tree_leaves.png 13 | AlphaDiscardThreshold : 0.05 14 | } 15 | 16 | AdditionalRenderState { 17 | Blend Alpha 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /core/src/main/resources/blocks.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | option java_package = "org.delaunois.explorer.protobuf"; 4 | option java_outer_classname = "BlocksProtos"; 5 | 6 | message ChunkProto { 7 | // the location of the chunk, represented as an array of 3 integers. Where location[0] = x, location[1] = y, location[2] = z 8 | repeated sint32 location = 1 [packed=true]; 9 | // the size of the chunk, represented as an array of 3 integers. where size[0] = x, size[1] = y, size[2] = z 10 | repeated sint32 size = 2 [packed=true]; 11 | // the block array 12 | repeated string blocks = 3; 13 | // the lightmap array 14 | bytes lightmap = 4; 15 | 16 | } -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water.j3m: -------------------------------------------------------------------------------- 1 | Material water-still : Blocks/MatDefs/Ialon.j3md { 2 | 3 | MaterialParameters { 4 | VertexLighting: true 5 | UseVertexColor: true 6 | UseMaterialColors: true 7 | Ambient: 1.0 1.0 1.0 1.0 8 | Diffuse: 1.0 1.0 1.0 1.0 9 | Specular: 0.3 0.3 0.3 1.0 10 | Shininess: 96 11 | DiffuseMap: Flip WrapRepeat_S WrapRepeat_T ialon-theme/water3.png 12 | 13 | // custom 14 | TextureScrollSpeedX : 0.0 15 | TextureScrollSpeedY : -0.01 16 | } 17 | 18 | AdditionalRenderState { 19 | Blend Alpha 20 | PolyOffset -0.1 -0.1 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/fastnoise/LayerMask.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon.fastnoise; 2 | 3 | public class LayerMask { 4 | 5 | private NoiseLayer noiseLayer; 6 | private NoiseLayer withLayer; 7 | 8 | public LayerMask(NoiseLayer noiseLayer, NoiseLayer withLayer) { 9 | this.noiseLayer = noiseLayer; 10 | this.withLayer = withLayer; 11 | } 12 | 13 | public NoiseLayer getNoiseLayer() { 14 | return noiseLayer; 15 | } 16 | 17 | public NoiseLayer getWithLayer() { 18 | return withLayer; 19 | } 20 | 21 | @Override 22 | public String toString() { 23 | return noiseLayer.getName() + " -> " + withLayer.getName(); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/ChunkRepository.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.simsilica.mathd.Vec3i; 4 | 5 | /** 6 | * The contract of a ChunkRepository implementation. 7 | * 8 | * @author rvandoosselaer 9 | */ 10 | public interface ChunkRepository { 11 | 12 | /** 13 | * Loads the chunk for the given chunk location. 14 | * 15 | * @param location of the chunk 16 | * @return chunk or null if the chunk could not be loaded 17 | */ 18 | Chunk load(Vec3i location); 19 | 20 | /** 21 | * Saves the chunk 22 | * 23 | * @param chunk to save 24 | * @return true when successfully saved, false otherwise 25 | */ 26 | boolean save(Chunk chunk); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/ChunkResolver.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.simsilica.mathd.Vec3i; 4 | 5 | import java.util.Optional; 6 | 7 | import lombok.NonNull; 8 | 9 | /** 10 | * A service to retrieve chunks. 11 | * 12 | * @author: rvandoosselaer 13 | */ 14 | public interface ChunkResolver { 15 | 16 | /** 17 | * Return a Chunk optional. 18 | * 19 | * @param location of the chunk 20 | * @return chunk 21 | */ 22 | Optional get(@NonNull Vec3i location); 23 | 24 | /** 25 | * Return the chunk, if present in cache. 26 | * @param location of the chunk 27 | * @return chunk or null 28 | */ 29 | Chunk unsafeFastGet(@NonNull Vec3i location); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/grass.j3m: -------------------------------------------------------------------------------- 1 | Material grass-block : Blocks/MatDefs/LightingOverlayColor.j3md { 2 | 3 | MaterialParameters { 4 | Shininess: 0 5 | UseMaterialColors: true 6 | SteepParallax: true 7 | ParallaxHeight: 0.05 8 | Ambient: 1.0 1.0 1.0 1.0 9 | Diffuse: 1.0 1.0 1.0 1.0 10 | Specular: 0 0 0 1.0 11 | VertexLighting: true 12 | DiffuseMap: Flip Blocks/Themes/default/grass.png 13 | //NormalMap: Flip Blocks/Themes/default/grass-normal.png 14 | //ParallaxMap: Flip Blocks/Themes/default/grass-parallax.png 15 | OverlayColor: 0.07603188 0.1837715 0.084361315 1.0 16 | OverlayMap: Flip Blocks/Themes/default/grass-overlay.png 17 | } 18 | 19 | } -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/BlocksTheme.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Getter; 7 | import lombok.NoArgsConstructor; 8 | import lombok.Setter; 9 | import lombok.ToString; 10 | 11 | /** 12 | * A Blocks theme. 13 | * 14 | * @author rvandoosselaer 15 | */ 16 | @Getter 17 | @Setter 18 | @Builder 19 | @ToString 20 | @NoArgsConstructor 21 | @AllArgsConstructor 22 | public class BlocksTheme { 23 | 24 | /** 25 | * The name of the theme 26 | */ 27 | private String name; 28 | 29 | /** 30 | * The path to the texture folder of the theme, starting from an AssetManager accessible folder. 31 | */ 32 | private String path; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /core/src/main/resources/ialon-theme/water_still.bak: -------------------------------------------------------------------------------- 1 | Material water-still : Blocks/MatDefs/Fluid.j3md { 2 | 3 | MaterialParameters { 4 | VertexLighting: false 5 | UseMaterialColors: true 6 | Ambient: 0.145 0.421 0.548 1.0 7 | Diffuse: 0.145 0.421 0.548 1.0 8 | Specular: 0.3 0.3 0.3 1.0 9 | Shininess: 96 10 | DiffuseMap: Flip WrapRepeat_S WrapRepeat_T ialon-theme/water.png 11 | NormalMap: Flip WrapRepeat_S WrapRepeat_T ialon-theme/water-normal.png 12 | 13 | // custom 14 | WaveSpeed : 0 15 | WaveHeight : 0 16 | WaveSize : 0 17 | TextureScrollSpeedX : 0.05 18 | TextureScrollSpeedY : 0.01 19 | } 20 | 21 | AdditionalRenderState { 22 | Blend Alpha 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/water.j3m: -------------------------------------------------------------------------------- 1 | Material water : Blocks/MatDefs/Fluid.j3md { 2 | 3 | MaterialParameters { 4 | VertexLighting: false 5 | UseMaterialColors: true 6 | Ambient: 0.145 0.421 0.548 1.0 7 | Diffuse: 0.145 0.421 0.548 1.0 8 | Specular: 0.3 0.3 0.3 1.0 9 | Shininess: 96 10 | DiffuseMap: Flip WrapRepeat_S WrapRepeat_T Blocks/Themes/default/water.png 11 | NormalMap: Flip WrapRepeat_S WrapRepeat_T Blocks/Themes/default/water-normal.png 12 | 13 | // custom 14 | WaveSpeed : 1.5 15 | WaveHeight : 0.03 16 | WaveSize : 10 17 | TextureScrollSpeedX : 0.05 18 | TextureScrollSpeedY : 0.01 19 | } 20 | 21 | AdditionalRenderState { 22 | Blend Alpha 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/EmptyGenerator.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon; 2 | 3 | import com.jme3.math.Vector3f; 4 | import com.rvandoosselaer.blocks.Chunk; 5 | import com.simsilica.mathd.Vec3i; 6 | 7 | public class EmptyGenerator implements TerrainGenerator { 8 | 9 | @Override 10 | public Chunk generate(Vec3i location) { 11 | return Chunk.createAt(location); 12 | } 13 | 14 | public float getWaterHeight() { 15 | throw new UnsupportedOperationException("Water is not supported by " + this.getClass().getSimpleName()); 16 | } 17 | 18 | public void setWaterHeight(float waterHeight) { 19 | throw new UnsupportedOperationException("Water is not supported by " + this.getClass().getSimpleName()); 20 | } 21 | 22 | public float getHeight(Vector3f blockLocation) { 23 | return 0; 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Themes/default-bak/water_still.j3m: -------------------------------------------------------------------------------- 1 | Material water-still : Blocks/MatDefs/Fluid.j3md { 2 | 3 | MaterialParameters { 4 | VertexLighting: false 5 | UseMaterialColors: true 6 | Ambient: 0.145 0.421 0.548 1.0 7 | Diffuse: 0.145 0.421 0.548 1.0 8 | Specular: 0.3 0.3 0.3 1.0 9 | Shininess: 96 10 | DiffuseMap: Flip WrapRepeat_S WrapRepeat_T MagNearest MinNearestNoMipMaps Blocks/Themes/default/water.png 11 | NormalMap: Flip WrapRepeat_S WrapRepeat_T MagNearest MinNearestNoMipMaps Blocks/Themes/default/water-normal.png 12 | 13 | // custom 14 | WaveSpeed : 0 15 | WaveHeight : 0 16 | WaveSize : 0 17 | TextureScrollSpeedX : 0.05 18 | TextureScrollSpeedY : 0.01 19 | } 20 | 21 | AdditionalRenderState { 22 | Blend Alpha 23 | } 24 | 25 | } -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/WaterLevel.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon; 2 | 3 | public enum WaterLevel { 4 | 5 | NONE((byte)0), 6 | LEVEL1((byte)1), 7 | LEVEL2((byte)2), 8 | LEVEL3((byte)3), 9 | LEVEL4((byte)4), 10 | LEVEL5((byte)5), 11 | LEVEL6((byte)6), 12 | LEVEL7((byte)7); 13 | 14 | private final byte level; 15 | 16 | WaterLevel(byte level) { 17 | this.level = level; 18 | } 19 | 20 | public byte getLevel() { 21 | return level; 22 | } 23 | 24 | public static byte[] getAllLevels() { 25 | return new byte[] { 26 | NONE.level, 27 | LEVEL1.level, 28 | LEVEL2.level, 29 | LEVEL3.level, 30 | LEVEL4.level, 31 | LEVEL5.level, 32 | LEVEL6.level, 33 | LEVEL7.level 34 | }; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /desktop/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: "java" 2 | sourceSets.main.java.srcDirs = ["src/main/java"] 3 | 4 | ext { 5 | lombokVersion = "1.18.20" 6 | mockitoVersion = "5.11.0" 7 | junitVersion = "5.10.2" 8 | logbackVersion = "1.2.3" 9 | } 10 | 11 | dependencies { 12 | testImplementation "org.mockito:mockito-core:${mockitoVersion}" 13 | testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}" 14 | testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junitVersion}" 15 | 16 | // logging 17 | testImplementation "ch.qos.logback:logback-core:${logbackVersion}" 18 | testImplementation "ch.qos.logback:logback-classic:${logbackVersion}" 19 | testImplementation "org.slf4j:jul-to-slf4j:1.7.36" 20 | } 21 | 22 | test { 23 | useJUnitPlatform() 24 | } 25 | 26 | java { 27 | sourceCompatibility = JavaVersion.VERSION_1_8 28 | targetCompatibility = JavaVersion.VERSION_1_8 29 | } -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/serialize/BlockDTO.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks.serialize; 2 | 3 | import com.rvandoosselaer.blocks.BlockIds; 4 | import com.rvandoosselaer.blocks.ShapeIds; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Getter; 7 | import lombok.NoArgsConstructor; 8 | import lombok.Setter; 9 | 10 | /** 11 | * A POJO for deserializing a block from file. 12 | * 13 | * @author: rvandoosselaer 14 | */ 15 | @Getter 16 | @Setter 17 | @NoArgsConstructor 18 | @AllArgsConstructor 19 | public class BlockDTO { 20 | 21 | private String name; 22 | private String type; 23 | private String shape = ShapeIds.CUBE; 24 | private boolean solid = true; 25 | private boolean transparent = false; 26 | private boolean multiTexture = false; 27 | 28 | public String getName() { 29 | if (name == null) { 30 | return BlockIds.getName(type, shape); 31 | } 32 | return name; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /app/src/main/res/values/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/values-v31/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 18 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/ChunkManagerState.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.jme3.app.Application; 4 | import com.jme3.app.state.BaseAppState; 5 | import lombok.Getter; 6 | import lombok.RequiredArgsConstructor; 7 | 8 | /** 9 | * An application state to handle the lifecycle of a ChunkManager. 10 | * 11 | * @author: rvandoosselaer 12 | */ 13 | @Getter 14 | @RequiredArgsConstructor 15 | public class ChunkManagerState extends BaseAppState { 16 | 17 | private final ChunkManager chunkManager; 18 | 19 | @Override 20 | protected void initialize(Application app) { 21 | chunkManager.initialize(); 22 | } 23 | 24 | @Override 25 | protected void cleanup(Application app) { 26 | chunkManager.cleanup(); 27 | } 28 | 29 | @Override 30 | public void update(float tpf) { 31 | chunkManager.update(); 32 | } 33 | 34 | @Override 35 | protected void onEnable() { 36 | } 37 | 38 | @Override 39 | protected void onDisable() { 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/state/ChunkManagerState.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon.state; 2 | 3 | import com.jme3.app.Application; 4 | import com.jme3.app.state.BaseAppState; 5 | 6 | import org.delaunois.ialon.ChunkManager; 7 | 8 | import lombok.Getter; 9 | import lombok.RequiredArgsConstructor; 10 | 11 | /** 12 | * An application state to handle the lifecycle of a ChunkManager. 13 | * 14 | * @author rvandoosselaer 15 | */ 16 | @Getter 17 | @RequiredArgsConstructor 18 | public class ChunkManagerState extends BaseAppState { 19 | 20 | private final ChunkManager chunkManager; 21 | 22 | @Override 23 | protected void initialize(Application app) { 24 | chunkManager.initialize(); 25 | } 26 | 27 | @Override 28 | protected void cleanup(Application app) { 29 | chunkManager.cleanup(); 30 | } 31 | 32 | @Override 33 | protected void onEnable() { 34 | // Nothing to do 35 | } 36 | 37 | @Override 38 | protected void onDisable() { 39 | // Nothing to do 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /.github/workflows/gradle.yml: -------------------------------------------------------------------------------- 1 | # This workflow uses actions that are not certified by GitHub. 2 | # They are provided by a third-party and are governed by 3 | # separate terms of service, privacy policy, and support 4 | # documentation. 5 | # This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time 6 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle 7 | 8 | name: Build Ialon 9 | 10 | on: 11 | push: 12 | branches: [ "main" ] 13 | pull_request: 14 | branches: [ "main" ] 15 | 16 | permissions: 17 | contents: read 18 | 19 | jobs: 20 | build: 21 | 22 | runs-on: ubuntu-latest 23 | 24 | steps: 25 | - uses: actions/checkout@v3 26 | - name: Set up JDK 27 | uses: actions/setup-java@v3 28 | with: 29 | java-version: '17' 30 | distribution: 'temurin' 31 | - name: Build with Gradle 32 | uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1 33 | with: 34 | arguments: build 35 | -------------------------------------------------------------------------------- /app/src/main/res/values-v27/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 20 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/ChunkMeshGenerator.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.jme3.scene.Mesh; 4 | import com.jme3.scene.Node; 5 | 6 | /** 7 | * The contract for a chunk mesh implementation. 8 | * 9 | * @author rvandoosselaer 10 | */ 11 | public interface ChunkMeshGenerator { 12 | 13 | /** 14 | * Create the node for the chunk. 15 | * 16 | * @param chunk to create the node for 17 | * @return the node holding all chunk geometries 18 | */ 19 | Node createNode(Chunk chunk); 20 | 21 | /** 22 | * Create the collision mesh for the chunk. 23 | * 24 | * @param chunk to create the collision mesh for 25 | * @return the collision mesh of the chunk 26 | */ 27 | Mesh createCollisionMesh(Chunk chunk); 28 | 29 | /** 30 | * Create the node and the collision mesh for the chunk. The node and collision mesh should be set on the chunk. 31 | * This is a combination of the {@link #createNode(Chunk)} and {@link #createCollisionMesh(Chunk)} 32 | * methods. 33 | * 34 | * @param chunk 35 | */ 36 | void createAndSetNodeAndCollisionMesh(Chunk chunk); 37 | 38 | } 39 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 10 | org.gradle.warning.mode=summary 11 | # When configured, Gradle will run in incubating parallel mode. 12 | # This option should only be used with decoupled projects. More details, visit 13 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 14 | # org.gradle.parallel=true 15 | # AndroidX package structure to make it clearer which packages are bundled with the 16 | # Android operating system, and which are packaged with your app"s APK 17 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 18 | android.useAndroidX=true 19 | # Automatically convert third-party libraries to use AndroidX 20 | android.enableJetifier=true 21 | -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Shaders/BlendFunctions.glsllib: -------------------------------------------------------------------------------- 1 | vec4 blend_overlay(in vec4 firstColor, in vec4 secondColor) { 2 | return vec4( 3 | firstColor.r < 0.5 ? (2.0 * firstColor.r * secondColor.r) : (1.0 - 2.0 * (1.0 - firstColor.r) * (1.0 - secondColor.r)), 4 | firstColor.g < 0.5 ? (2.0 * firstColor.g * secondColor.g) : (1.0 - 2.0 * (1.0 - firstColor.g) * (1.0 - secondColor.g)), 5 | firstColor.b < 0.5 ? (2.0 * firstColor.b * secondColor.b) : (1.0 - 2.0 * (1.0 - firstColor.b) * (1.0 - secondColor.b)), 6 | firstColor.a < 0.5 ? (2.0 * firstColor.a * secondColor.a) : (1.0 - 2.0 * (1.0 - firstColor.a) * (1.0 - secondColor.a)) 7 | ); 8 | } 9 | 10 | vec4 blend_multiply(in vec4 firstColor, in vec4 secondColor) { 11 | return firstColor * secondColor; 12 | } 13 | 14 | vec4 blend_screen(in vec4 firstColor, in vec4 secondColor) { 15 | return vec4( 16 | 1.0 - (1.0 - firstColor.r) * (1.0 - secondColor.r), 17 | 1.0 - (1.0 - firstColor.g) * (1.0 - secondColor.g), 18 | 1.0 - (1.0 - firstColor.b) * (1.0 - secondColor.b), 19 | 1.0 - (1.0 - firstColor.a) * (1.0 - secondColor.a) 20 | ); 21 | } 22 | 23 | vec4 blend_layer(in vec4 firstColor, in vec4 secondColor) { 24 | return firstColor * firstColor.a + secondColor * (1.0 - firstColor.a); 25 | } -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 17 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/control/CamFollowSpatialControl.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon.control; 2 | 3 | import com.jme3.math.Vector3f; 4 | import com.jme3.renderer.Camera; 5 | import com.jme3.renderer.RenderManager; 6 | import com.jme3.renderer.ViewPort; 7 | import com.jme3.scene.control.AbstractControl; 8 | 9 | import lombok.Setter; 10 | import lombok.extern.slf4j.Slf4j; 11 | 12 | /** 13 | * Makes the camera follow the translation of a spatial, with an optional local translation. 14 | */ 15 | @Slf4j 16 | public class CamFollowSpatialControl extends AbstractControl { 17 | 18 | private final Camera camera; 19 | private final Vector3f tmp = new Vector3f(); 20 | 21 | @Setter 22 | private Vector3f localTranslation; 23 | 24 | public CamFollowSpatialControl(Camera camera) { 25 | this.camera = camera; 26 | } 27 | 28 | @Override 29 | protected void controlUpdate(float tpf) { 30 | if (localTranslation != null) { 31 | tmp.set(spatial.getWorldTranslation()).addLocal(localTranslation); 32 | camera.setLocation(tmp); 33 | } else { 34 | camera.setLocation(spatial.getWorldTranslation()); 35 | } 36 | } 37 | 38 | @Override 39 | protected void controlRender(RenderManager rm, ViewPort vp) { 40 | // Nothing to do 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/state/ChunkPagerState.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon.state; 2 | 3 | import com.jme3.app.Application; 4 | import com.jme3.app.state.BaseAppState; 5 | import com.jme3.math.Vector3f; 6 | 7 | import org.delaunois.ialon.ChunkPager; 8 | 9 | 10 | public class ChunkPagerState extends BaseAppState { 11 | 12 | private final ChunkPager chunkPager; 13 | 14 | public ChunkPagerState(ChunkPager chunkPager) { 15 | this.chunkPager = chunkPager; 16 | } 17 | 18 | public ChunkPager getChunkPager() { 19 | return chunkPager; 20 | } 21 | 22 | @Override 23 | protected void initialize(Application app) { 24 | chunkPager.initialize(); 25 | } 26 | 27 | @Override 28 | protected void cleanup(Application app) { 29 | chunkPager.cleanup(); 30 | } 31 | 32 | @Override 33 | protected void onEnable() { 34 | // Nothing to do 35 | } 36 | 37 | @Override 38 | protected void onDisable() { 39 | // Nothing to do 40 | } 41 | 42 | @Override 43 | public void update(float tpf) { 44 | chunkPager.update(); 45 | } 46 | 47 | public void setLocation(Vector3f location) { 48 | chunkPager.setLocation(location); 49 | } 50 | 51 | public Vector3f getLocation() { 52 | return chunkPager.getLocation(); 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Shaders/Unshaded.vert: -------------------------------------------------------------------------------- 1 | #import "Common/ShaderLib/GLSLCompat.glsllib" 2 | #import "Common/ShaderLib/Skinning.glsllib" 3 | #import "Common/ShaderLib/Instancing.glsllib" 4 | #import "Common/ShaderLib/MorphAnim.glsllib" 5 | 6 | attribute vec3 inPosition; 7 | 8 | #if defined(HAS_COLORMAP) || (defined(HAS_LIGHTMAP) && !defined(SEPARATE_TEXCOORD)) 9 | #define NEED_TEXCOORD1 10 | #endif 11 | 12 | attribute vec2 inTexCoord; 13 | attribute vec2 inTexCoord2; 14 | attribute vec4 inColor; 15 | 16 | varying vec2 texCoord1; 17 | varying vec2 texCoord2; 18 | 19 | varying vec4 vertColor; 20 | #ifdef HAS_POINTSIZE 21 | uniform float m_PointSize; 22 | #endif 23 | 24 | void main(){ 25 | #ifdef NEED_TEXCOORD1 26 | texCoord1 = inTexCoord; 27 | #endif 28 | 29 | #ifdef SEPARATE_TEXCOORD 30 | texCoord2 = inTexCoord2; 31 | #endif 32 | 33 | #ifdef HAS_VERTEXCOLOR 34 | vertColor = inColor; 35 | #endif 36 | 37 | #ifdef HAS_POINTSIZE 38 | gl_PointSize = m_PointSize; 39 | #endif 40 | 41 | vec4 modelSpacePos = vec4(inPosition, 1.0); 42 | 43 | #ifdef NUM_MORPH_TARGETS 44 | Morph_Compute(modelSpacePos); 45 | #endif 46 | 47 | #ifdef NUM_BONES 48 | Skinning_Compute(modelSpacePos); 49 | #endif 50 | 51 | gl_Position = TransformWorldViewProjection(modelSpacePos); 52 | } -------------------------------------------------------------------------------- /.github/workflows/sonar.yml: -------------------------------------------------------------------------------- 1 | name: SonarCloud Analysis Ialon 2 | 3 | on: 4 | push: 5 | branches: [ "main" ] 6 | pull_request: 7 | branches: [ "main" ] 8 | 9 | permissions: 10 | contents: read 11 | 12 | jobs: 13 | build: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - uses: actions/checkout@v3 17 | with: 18 | fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis 19 | 20 | - name: Set up JDK 21 | uses: actions/setup-java@v3 22 | with: 23 | java-version: '17' 24 | distribution: 'temurin' 25 | 26 | - name: Cache SonarCloud packages 27 | uses: actions/cache@v3 28 | with: 29 | path: ~/.sonar/cache 30 | key: ${{ runner.os }}-sonar 31 | restore-keys: ${{ runner.os }}-sonar 32 | 33 | - name: Cache Gradle packages 34 | uses: actions/cache@v3 35 | with: 36 | path: ~/.gradle/caches 37 | key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} 38 | restore-keys: ${{ runner.os }}-gradle 39 | 40 | - name: Build and analyze 41 | env: 42 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any 43 | SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} 44 | run: ./gradlew build jacocoTestReport sonarqube --info 45 | 46 | -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/fastnoise/Main.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon.fastnoise; 2 | 3 | import com.jme3.app.SimpleApplication; 4 | import com.jme3.material.Material; 5 | import com.jme3.scene.Geometry; 6 | import com.jme3.scene.shape.Quad; 7 | import com.jme3.system.AppSettings; 8 | import com.jme3.texture.Texture2D; 9 | 10 | public class Main extends SimpleApplication { 11 | 12 | public static void main(String... args) { 13 | 14 | Main main = new Main(); 15 | 16 | AppSettings appSettings = new AppSettings(true); 17 | appSettings.setResolution(1280, 720); 18 | 19 | main.setSettings(appSettings); 20 | main.start(); 21 | 22 | 23 | } 24 | 25 | @Override 26 | public void simpleInitApp() { 27 | 28 | NoiseLayer noiseLayer = new NoiseLayer(); 29 | noiseLayer.setSeed(213); 30 | noiseLayer.setNoiseType(FastNoise.NoiseType.PerlinFractal); 31 | 32 | Texture2D texture2D = noiseLayer.generateTexture(720); 33 | 34 | Material unshaded = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); 35 | unshaded.setTexture("ColorMap", texture2D); 36 | 37 | Geometry geometry = new Geometry("Noise Geometry", new Quad(cam.getHeight(), cam.getHeight())); 38 | geometry.setMaterial(unshaded); 39 | 40 | guiNode.attachChild(geometry); 41 | 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/FlatTerrainGenerator.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.simsilica.mathd.Vec3i; 4 | import lombok.RequiredArgsConstructor; 5 | 6 | /** 7 | * A {@link ChunkGenerator} implementation that creates a flat looking terrain at a given y value. 8 | * 9 | * @author rvandoosselaer 10 | */ 11 | @RequiredArgsConstructor 12 | public class FlatTerrainGenerator implements ChunkGenerator { 13 | 14 | /** 15 | * the y value (inclusive) of the highest blocks 16 | */ 17 | private int y = 0; 18 | private final Block block; 19 | 20 | public FlatTerrainGenerator(int y, Block block) { 21 | if (y < 0 || y >= BlocksConfig.getInstance().getChunkSize().y) { 22 | throw new IllegalArgumentException("Invalid parameters specified! [y=" + y + "]"); 23 | } 24 | this.y = y; 25 | this.block = block; 26 | } 27 | 28 | @Override 29 | public Chunk generate(Vec3i location) { 30 | Chunk chunk = Chunk.createAt(location); 31 | 32 | Vec3i chunkSize = BlocksConfig.getInstance().getChunkSize(); 33 | for (int x = 0; x < chunkSize.x; x++) { 34 | for (int i = 0; i <= y; i++) { 35 | for (int z = 0; z < chunkSize.z; z++) { 36 | chunk.addBlock(x, i, z, block); 37 | } 38 | } 39 | } 40 | 41 | return chunk; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/DirectIntBuffer.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.jme3.util.BufferUtils; 4 | 5 | import java.nio.IntBuffer; 6 | 7 | public class DirectIntBuffer { 8 | 9 | private static final int INITIAL_CAPACITY = 1000; 10 | private IntBuffer buff; 11 | private int size = 0; 12 | 13 | public DirectIntBuffer() { 14 | buff = BufferUtils.createIntBuffer(INITIAL_CAPACITY); 15 | } 16 | 17 | public DirectIntBuffer(int capacity) { 18 | buff = BufferUtils.createIntBuffer(capacity); 19 | } 20 | 21 | public void add(int i) { 22 | if (buff.position() + 1 > buff.capacity()) { 23 | increaseCapacity(); 24 | } 25 | buff.put(i); 26 | size++; 27 | } 28 | 29 | public IntBuffer getBuffer() { 30 | IntBuffer newbuffer = BufferUtils.createIntBuffer(buff.position()); 31 | buff.flip(); 32 | newbuffer.put(buff); 33 | newbuffer.flip(); 34 | return newbuffer; 35 | } 36 | 37 | public IntBuffer getInternalBuffer() { 38 | return buff; 39 | } 40 | 41 | public int size() { 42 | return size; 43 | } 44 | 45 | public boolean isEmpty() { 46 | return size == 0; 47 | } 48 | 49 | public void clear() { 50 | buff.clear(); 51 | } 52 | 53 | private void increaseCapacity() { 54 | IntBuffer newbuffer = BufferUtils.createIntBuffer(buff.capacity() * 2); 55 | buff.clear(); 56 | newbuffer.put(buff); 57 | buff = newbuffer; 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /core/src/main/resources/Blocks/Shaders/Unshaded.frag: -------------------------------------------------------------------------------- 1 | #import "Common/ShaderLib/GLSLCompat.glsllib" 2 | 3 | #if defined(HAS_GLOWMAP) || defined(HAS_COLORMAP) || (defined(HAS_LIGHTMAP) && !defined(SEPARATE_TEXCOORD)) 4 | #define NEED_TEXCOORD1 5 | #endif 6 | 7 | #if defined(DISCARD_ALPHA) 8 | uniform float m_AlphaDiscardThreshold; 9 | #endif 10 | 11 | uniform vec4 m_Color; 12 | uniform sampler2D m_ColorMap; 13 | uniform sampler2D m_LightMap; 14 | 15 | #ifdef DESATURATION 16 | uniform float m_DesaturationValue; 17 | #endif 18 | 19 | varying vec2 texCoord1; 20 | varying vec2 texCoord2; 21 | 22 | varying vec4 vertColor; 23 | 24 | void main(){ 25 | vec4 color = vec4(1.0); 26 | 27 | #ifdef HAS_COLORMAP 28 | color *= texture2D(m_ColorMap, texCoord1); 29 | #endif 30 | 31 | #ifdef HAS_VERTEXCOLOR 32 | color *= vertColor; 33 | #endif 34 | 35 | #ifdef HAS_COLOR 36 | color *= m_Color; 37 | #endif 38 | 39 | #ifdef HAS_LIGHTMAP 40 | #ifdef SEPARATE_TEXCOORD 41 | color.rgb *= texture2D(m_LightMap, texCoord2).rgb; 42 | #else 43 | color.rgb *= texture2D(m_LightMap, texCoord1).rgb; 44 | #endif 45 | #endif 46 | 47 | #if defined(DISCARD_ALPHA) 48 | if(color.a < m_AlphaDiscardThreshold){ 49 | discard; 50 | } 51 | #endif 52 | 53 | #ifdef DESATURATION 54 | vec3 gray = vec3(dot(vec3(0.2126,0.7152,0.0722), color.rgb)); 55 | color.rgb = vec3(mix(color.rgb, gray, m_DesaturationValue)); 56 | #endif 57 | 58 | gl_FragColor = color; 59 | } 60 | -------------------------------------------------------------------------------- /app/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.application' 3 | } 4 | 5 | android { 6 | namespace "org.delaunois.ialon" 7 | compileSdkVersion 32 8 | buildToolsVersion "33.0.0" 9 | 10 | defaultConfig { 11 | applicationId "org.delaunois.ialon" 12 | minSdkVersion 26 13 | targetSdkVersion 32 14 | versionCode 1 15 | versionName "1.0" 16 | multiDexEnabled true 17 | 18 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 19 | } 20 | 21 | buildTypes { 22 | debug { 23 | minifyEnabled false 24 | } 25 | release { 26 | minifyEnabled false 27 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 28 | } 29 | } 30 | 31 | compileOptions { 32 | sourceCompatibility JavaVersion.VERSION_1_8 33 | targetCompatibility JavaVersion.VERSION_1_8 34 | } 35 | 36 | packagingOptions { 37 | jniLibs { 38 | useLegacyPackaging true 39 | } 40 | merge "com/simsilica/lemur/style/base/glass-styles.groovy" 41 | exclude 'META-INF/DEPENDENCIES' 42 | exclude 'META-INF/INDEX.LIST' 43 | } 44 | } 45 | 46 | dependencies { 47 | implementation 'androidx.core:core-splashscreen:1.0.0' 48 | implementation('androidx.appcompat:appcompat:1.5.1') { 49 | exclude group: 'com.google.guava', module: 'listenablefuture' 50 | } 51 | implementation('com.google.android.material:material:1.7.0') { 52 | exclude group: 'com.google.guava', module: 'listenablefuture' 53 | } 54 | } -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/TypeIds.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | /** 4 | * Contains all the keys of the types that are registered in the {@link TypeRegistry}. Use these keys to retrieve the 5 | * types from the {@link TypeRegistry#get(String)}. 6 | * 7 | * @author: rvandoosselaer 8 | */ 9 | public interface TypeIds { 10 | 11 | String BIRCH_LOG = "birch_log"; 12 | String BIRCH_PLANKS = "birch_planks"; 13 | String BRICKS = "bricks"; 14 | String COBBLESTONE = "cobblestone"; 15 | String MOSSY_COBBLESTONE = "mossy_cobblestone"; 16 | String DIRT = "dirt"; 17 | String GRAVEL = "gravel"; 18 | String GRASS = "grass"; 19 | String GRASS_SNOW = "grass_snow"; 20 | String PALM_TREE_LOG = "palm_tree_log"; 21 | String PALM_TREE_PLANKS = "palm_tree_planks"; 22 | String ROCK = "rock"; 23 | String OAK_LOG = "oak_log"; 24 | String OAK_PLANKS = "oak_planks"; 25 | String SAND = "sand"; 26 | String SNOW = "snow"; 27 | String SPRUCE_LOG = "spruce_log"; 28 | String SPRUCE_PLANKS = "spruce_planks"; 29 | String STONE_BRICKS = "stone_bricks"; 30 | String MOSSY_STONE_BRICKS = "mossy_stone_bricks"; 31 | String WATER = "water"; 32 | String BIRCH_LEAVES = "birch_leaves"; 33 | String PALM_TREE_LEAVES = "palm_tree_leaves"; 34 | String OAK_LEAVES = "oak_leaves"; 35 | String SPRUCE_LEAVES = "spruce_leaves"; 36 | String ITEM_GRASS = "item_grass"; 37 | String WHITE_LIGHT = "white_light"; 38 | String WINDOW = "window"; 39 | String SCALE = "scale"; 40 | String RAIL = "rail"; 41 | String RAIL_CURVED = "rail_curved"; 42 | String RAIL_SLOPE = "rail_slope"; 43 | } 44 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/ChunkCache.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.simsilica.mathd.Vec3i; 4 | 5 | import java.util.Map; 6 | import java.util.Optional; 7 | import java.util.concurrent.ConcurrentHashMap; 8 | 9 | import lombok.NonNull; 10 | import lombok.extern.slf4j.Slf4j; 11 | 12 | /** 13 | * An in memory threadsafe chunk cache implementation. 14 | * 15 | * @author: rvandoosselaer 16 | */ 17 | @Slf4j 18 | public class ChunkCache implements ChunkResolver { 19 | 20 | private final Map cache = new ConcurrentHashMap<>(); 21 | 22 | public ChunkCache() { 23 | this(0); 24 | } 25 | 26 | public ChunkCache(int cacheSize) { 27 | } 28 | 29 | @Override 30 | public Optional get(@NonNull Vec3i location) { 31 | return Optional.ofNullable(cache.get(location)); 32 | } 33 | 34 | @Override 35 | public Chunk unsafeFastGet(@NonNull Vec3i location) { 36 | return cache.get(location); 37 | } 38 | 39 | public void evict(@NonNull Vec3i location) { 40 | if (log.isDebugEnabled()) { 41 | log.debug("Cache evicted {}", location); 42 | } 43 | cache.remove(location); 44 | } 45 | 46 | public void evictAll() { 47 | cache.clear(); 48 | } 49 | 50 | public void put(@NonNull Chunk chunk) { 51 | if (log.isDebugEnabled()) { 52 | log.debug("Cache added {}", chunk.getLocation()); 53 | } 54 | cache.put(chunk.getLocation(), chunk); 55 | } 56 | 57 | public long getSize() { 58 | return cache.size(); 59 | } 60 | 61 | public void maintain() { 62 | 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/DirectVector2fBuffer.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.jme3.math.Vector2f; 4 | import com.jme3.util.BufferUtils; 5 | 6 | import java.nio.FloatBuffer; 7 | 8 | public class DirectVector2fBuffer { 9 | 10 | private static final int INITIAL_CAPACITY = 1000; 11 | private FloatBuffer buff; 12 | private int size = 0; 13 | 14 | public DirectVector2fBuffer() { 15 | buff = BufferUtils.createFloatBuffer(INITIAL_CAPACITY * 2); 16 | } 17 | 18 | public DirectVector2fBuffer(int capacity) { 19 | buff = BufferUtils.createFloatBuffer(capacity * 2); 20 | } 21 | 22 | public void add(Vector2f v) { 23 | if (buff.position() + 2 > buff.capacity()) { 24 | increaseCapacity(); 25 | } 26 | buff.put(v.x).put(v.y); 27 | size++; 28 | } 29 | 30 | public FloatBuffer getBuffer() { 31 | FloatBuffer newbuffer = BufferUtils.createFloatBuffer(buff.position()); 32 | buff.flip(); 33 | newbuffer.put(buff); 34 | newbuffer.flip(); 35 | return newbuffer; 36 | } 37 | 38 | public FloatBuffer getInternalBuffer() { 39 | return buff; 40 | } 41 | 42 | public int size() { 43 | return size; 44 | } 45 | 46 | public boolean isEmpty() { 47 | return size == 0; 48 | } 49 | 50 | public void clear() { 51 | buff.clear(); 52 | } 53 | 54 | private void increaseCapacity() { 55 | FloatBuffer newbuffer = BufferUtils.createFloatBuffer(buff.capacity() * 2); 56 | buff.clear(); 57 | newbuffer.put(buff); 58 | buff = newbuffer; 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/DirectVector4fBuffer.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.jme3.math.Vector4f; 4 | import com.jme3.util.BufferUtils; 5 | 6 | import java.nio.FloatBuffer; 7 | 8 | public class DirectVector4fBuffer { 9 | 10 | private static final int INITIAL_CAPACITY = 1000; 11 | private FloatBuffer buff; 12 | private int size = 0; 13 | 14 | public DirectVector4fBuffer() { 15 | buff = BufferUtils.createFloatBuffer(INITIAL_CAPACITY * 4); 16 | } 17 | 18 | public DirectVector4fBuffer(int capacity) { 19 | buff = BufferUtils.createFloatBuffer(capacity * 4); 20 | } 21 | 22 | public void add(Vector4f v) { 23 | if (buff.position() + 4 > buff.capacity()) { 24 | increaseCapacity(); 25 | } 26 | buff.put(v.x).put(v.y).put(v.z).put(v.w); 27 | size++; 28 | } 29 | 30 | public FloatBuffer getBuffer() { 31 | FloatBuffer newbuffer = BufferUtils.createFloatBuffer(buff.position()); 32 | buff.flip(); 33 | newbuffer.put(buff); 34 | newbuffer.flip(); 35 | return newbuffer; 36 | } 37 | 38 | public FloatBuffer getInternalBuffer() { 39 | return buff; 40 | } 41 | 42 | public int size() { 43 | return size; 44 | } 45 | 46 | public boolean isEmpty() { 47 | return size == 0; 48 | } 49 | 50 | public void clear() { 51 | buff.clear(); 52 | } 53 | 54 | private void increaseCapacity() { 55 | FloatBuffer newbuffer = BufferUtils.createFloatBuffer(buff.capacity() * 2); 56 | buff.clear(); 57 | newbuffer.put(buff); 58 | buff = newbuffer; 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/serialize/BlockDefinition.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks.serialize; 2 | 3 | import java.util.Arrays; 4 | import java.util.HashSet; 5 | import java.util.Set; 6 | 7 | import lombok.AllArgsConstructor; 8 | import lombok.Getter; 9 | import lombok.NoArgsConstructor; 10 | import lombok.Setter; 11 | 12 | /** 13 | * A POJO describing the parameters for creating a collection of blocks. 14 | * 15 | * @author: rvandoosselaer 16 | */ 17 | @Getter 18 | @Setter 19 | @NoArgsConstructor 20 | @AllArgsConstructor 21 | public class BlockDefinition { 22 | 23 | private String type; 24 | private final Set shapes = new HashSet<>(); 25 | private final Set waterLevels = new HashSet<>(); 26 | private boolean solid = true; 27 | private boolean transparent = false; 28 | private boolean multiTexture = false; 29 | 30 | public BlockDefinition addShape(String shape) { 31 | if (shape != null) { 32 | shapes.add(shape); 33 | } 34 | return this; 35 | } 36 | 37 | public BlockDefinition addShapes(String... shapes) { 38 | if (shapes != null) { 39 | Arrays.stream(shapes).forEach(this::addShape); 40 | } 41 | return this; 42 | } 43 | 44 | public BlockDefinition addWaterLevel(Byte waterLevel) { 45 | if (waterLevel != 0) { 46 | waterLevels.add(waterLevel); 47 | } 48 | return this; 49 | } 50 | 51 | public BlockDefinition addWaterLevels(Byte... waterLevels) { 52 | if (waterLevels != null) { 53 | Arrays.stream(waterLevels).forEach(this::addWaterLevel); 54 | } 55 | return this; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /core/src/main/java/com/rvandoosselaer/blocks/DirectVector3fBuffer.java: -------------------------------------------------------------------------------- 1 | package com.rvandoosselaer.blocks; 2 | 3 | import com.jme3.math.Vector3f; 4 | import com.jme3.util.BufferUtils; 5 | 6 | import java.nio.FloatBuffer; 7 | 8 | import lombok.extern.slf4j.Slf4j; 9 | 10 | @Slf4j 11 | public class DirectVector3fBuffer { 12 | 13 | private static final int INITIAL_CAPACITY = 1000; 14 | private int size = 0; 15 | private FloatBuffer buff; 16 | 17 | public DirectVector3fBuffer() { 18 | buff = BufferUtils.createFloatBuffer(INITIAL_CAPACITY * 3); 19 | } 20 | 21 | public DirectVector3fBuffer(int capacity) { 22 | buff = BufferUtils.createFloatBuffer(capacity * 3); 23 | } 24 | 25 | public void add(Vector3f v) { 26 | if (buff.position() + 3 > buff.capacity()) { 27 | increaseCapacity(); 28 | } 29 | buff.put(v.x).put(v.y).put(v.z); 30 | size++; 31 | } 32 | 33 | public FloatBuffer getBuffer() { 34 | FloatBuffer newbuffer = BufferUtils.createFloatBuffer(buff.position()); 35 | buff.flip(); 36 | newbuffer.put(buff); 37 | newbuffer.flip(); 38 | return newbuffer; 39 | } 40 | 41 | public FloatBuffer getInternalBuffer() { 42 | return buff; 43 | } 44 | 45 | public int size() { 46 | return size; 47 | } 48 | 49 | public boolean isEmpty() { 50 | return size == 0; 51 | } 52 | 53 | public void clear() { 54 | buff.clear(); 55 | } 56 | 57 | private void increaseCapacity() { 58 | FloatBuffer newbuffer = BufferUtils.createFloatBuffer(buff.capacity() * 2); 59 | buff.clear(); 60 | newbuffer.put(buff); 61 | buff = newbuffer; 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowdown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 39 | 41 | 45 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowleft.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 39 | 41 | 45 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /core/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: "java" 2 | apply plugin: "jacoco" 3 | sourceSets.main.java.srcDirs = ["src/main/java"] 4 | 5 | ext { 6 | minieVersion = "7.4.0" 7 | lombokVersion = "1.18.20" 8 | simMathVersion = '1.5.0' 9 | sio2Version = '1.7.0' 10 | blocksVersion = "1.6.4" 11 | protobufVersion = "3.11.4" 12 | jacksonVersion = "2.12.3" 13 | lemurprotoVersion = "1.13.0" 14 | logbackVersion = "1.2.3" 15 | mockitoVersion = "5.11.0" 16 | junitVersion = "5.10.2" 17 | } 18 | 19 | dependencies { 20 | 21 | // physics 22 | implementation "com.github.stephengold:Minie:${minieVersion}" 23 | 24 | // utilities 25 | //noinspection AnnotationProcessorOnCompilePath 26 | compileOnly "org.projectlombok:lombok:${lombokVersion}" 27 | annotationProcessor "org.projectlombok:lombok:${lombokVersion}" 28 | implementation "com.google.protobuf:protobuf-java:${protobufVersion}" 29 | implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:${jacksonVersion}" 30 | implementation "com.simsilica:sim-math:${simMathVersion}" 31 | implementation "com.simsilica:lemur-proto:${lemurprotoVersion}" 32 | 33 | // logging 34 | implementation "ch.qos.logback:logback-core:${logbackVersion}" 35 | implementation "ch.qos.logback:logback-classic:${logbackVersion}" 36 | implementation "org.slf4j:jul-to-slf4j:1.7.36" 37 | 38 | testImplementation "org.mockito:mockito-core:${mockitoVersion}" 39 | testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}" 40 | testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:${junitVersion}" 41 | } 42 | 43 | test { 44 | useJUnitPlatform() 45 | } 46 | 47 | jacocoTestReport { 48 | reports { 49 | xml.enabled true 50 | } 51 | } 52 | 53 | java { 54 | sourceCompatibility = JavaVersion.VERSION_1_8 55 | targetCompatibility = JavaVersion.VERSION_1_8 56 | } -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowright.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 39 | 41 | 45 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowdown-full.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 39 | 41 | 45 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowup.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 40 | 42 | 46 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /core/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | true 6 | 7 | 8 | 9 | 10 | %d{HH:mm:ss.SSS} [%-20thread] %-5level %logger{36} - %msg%n 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowleft-full.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 39 | 41 | 45 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowright-full.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 39 | 41 | 45 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /core/src/main/java/org/delaunois/ialon/InputActionManager.java: -------------------------------------------------------------------------------- 1 | package org.delaunois.ialon; 2 | 3 | import com.jme3.input.InputManager; 4 | import com.jme3.input.controls.ActionListener; 5 | 6 | import java.util.ArrayList; 7 | import java.util.HashMap; 8 | 9 | import lombok.Getter; 10 | import lombok.Setter; 11 | 12 | public class InputActionManager { 13 | 14 | private final HashMap mappings = new HashMap<>(); 15 | 16 | @Getter 17 | @Setter 18 | private InputManager inputManager; 19 | 20 | private static class Mapping { 21 | private final String name; 22 | private final ArrayList listeners = new ArrayList<>(); 23 | 24 | public Mapping(String name) { 25 | this.name = name; 26 | } 27 | } 28 | 29 | public void triggerAction(String actionName, boolean isPressed) { 30 | Mapping mapping = mappings.get(actionName); 31 | for (ActionListener listener : mapping.listeners) { 32 | listener.onAction(mapping.name, isPressed, 0); 33 | } 34 | } 35 | 36 | public void addListener(ActionListener listener, String... mappingNames) { 37 | if (inputManager != null) { 38 | inputManager.addListener(listener, mappingNames); 39 | } 40 | 41 | for (String mappingName : mappingNames) { 42 | Mapping mapping = mappings.computeIfAbsent(mappingName, k -> new Mapping(mappingName)); 43 | if (!mapping.listeners.contains(listener)) { 44 | mapping.listeners.add(listener); 45 | } 46 | } 47 | } 48 | 49 | public void removeListener(ActionListener listener) { 50 | if (inputManager != null) { 51 | inputManager.removeListener(listener); 52 | } 53 | 54 | for (Mapping mapping : mappings.values()) { 55 | mapping.listeners.remove(listener); 56 | } 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /core/src/main/resources/Textures/arrowup-full.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 19 | 40 | 42 | 46 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /core/src/main/resources/Textures/flight.svg: -------------------------------------------------------------------------------- 1 | 2 | 17 | 19 |