2D Sprite Renderer and sprite framework, Began additional OpenGL Renderer, started transitioning multiplayer networking to use Java NIO

This commit is contained in:
Halbear 2026-08-20 03:03:03 +01:00
parent 5a05b9d65e
commit 3e886e5ba8
165 changed files with 4460 additions and 5485 deletions

View file

@ -5,14 +5,10 @@ buildscript {
mavenCentral()
gradlePluginPortal()
}
dependencies {
classpath 'com.gradleup.shadow:shadow-gradle-plugin:8.3.5'
}
}
plugins {
id 'application'
id 'java'
id 'com.gradleup.shadow' version '8.3.5'
id 'application'
id 'java'
}
project.ext.lwjglVersion = "3.4.1"
project.ext.jomlVersion = "1.10.8"
@ -22,43 +18,20 @@ project.ext.steamworks4jVersion = "1.9.0"
project.ext.steamworks4jserverVersion = "1.9.0"
project.ext.imguiVersion = "1.92.0"
switch (OperatingSystem.current()) {
case OperatingSystem.LINUX:
project.ext.lwjglNatives = "natives-linux"
def osArch = System.getProperty("os.arch")
if (osArch.startsWith("arm") || osArch.startsWith("aarch64")) {
project.ext.lwjglNatives += osArch.contains("64") || osArch.startsWith("armv8") ? "-arm64" : "-arm32"
} else if (osArch.startsWith("ppc")) {
project.ext.lwjglNatives += "-ppc64le"
} else if (osArch.startsWith("riscv")) {
project.ext.lwjglNatives += "-riscv64"
}
break
case OperatingSystem.MAC_OS:
project.ext.lwjglNatives = System.getProperty("os.arch").startsWith("aarch64") ? "natives-macos-arm64" : "natives-macos"
break
case OperatingSystem.WINDOWS:
def osArch = System.getProperty("os.arch")
project.ext.lwjglNatives = osArch.contains("64")
? "natives-windows${osArch.startsWith("aarch64") ? "-arm64" : ""}"
: "natives-windows-x86"
break
}
repositories {
mavenCentral()
}
application {
mainClass.set('net.halbear.Executable.Init')
mainClass.set('net.halbear.Executable.Launcher')
}
dependencies {
implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
implementation 'org.tinylog:tinylog-api:2.7.0'
implementation 'org.tinylog:tinylog-impl:2.7.0'
// Core LWJGL modules
implementation "org.lwjgl:lwjgl"
implementation "org.lwjgl:lwjgl-assimp"
implementation "org.lwjgl:lwjgl-fmod"
@ -76,22 +49,29 @@ dependencies {
implementation "org.lwjgl:lwjgl-stb"
implementation "org.lwjgl:lwjgl-vma"
implementation "org.lwjgl:lwjgl-vulkan"
implementation "org.lwjgl:lwjgl::$lwjglNatives"
implementation "org.lwjgl:lwjgl-assimp::$lwjglNatives"
implementation "org.lwjgl:lwjgl-freetype::$lwjglNatives"
implementation "org.lwjgl:lwjgl-glfw::$lwjglNatives"
implementation "org.lwjgl:lwjgl-jemalloc::$lwjglNatives"
implementation "org.lwjgl:lwjgl-llvm::$lwjglNatives"
implementation "org.lwjgl:lwjgl-lmdb::$lwjglNatives"
implementation "org.lwjgl:lwjgl-meshoptimizer::$lwjglNatives"
implementation "org.lwjgl:lwjgl-openal::$lwjglNatives"
implementation "org.lwjgl:lwjgl-rpmalloc::$lwjglNatives"
implementation "org.lwjgl:lwjgl-remotery:${lwjglVersion}"
runtimeOnly "org.lwjgl:lwjgl-remotery:${lwjglVersion}:${lwjglNatives}"
implementation "org.lwjgl:lwjgl-shaderc::$lwjglNatives"
implementation "org.lwjgl:lwjgl-stb::$lwjglNatives"
implementation "org.lwjgl:lwjgl-vma::$lwjglNatives"
if (lwjglNatives == "natives-macos" || lwjglNatives == "natives-macos-arm64") implementation "org.lwjgl:lwjgl-vulkan::$lwjglNatives"
// Define targeted native platforms explicitly
def targetNatives = ["natives-windows", "natives-linux"]
// Loop through and bundle natives for both Windows and Linux
targetNatives.each { target ->
runtimeOnly "org.lwjgl:lwjgl::$target"
runtimeOnly "org.lwjgl:lwjgl-assimp::$target"
runtimeOnly "org.lwjgl:lwjgl-freetype::$target"
runtimeOnly "org.lwjgl:lwjgl-glfw::$target"
runtimeOnly "org.lwjgl:lwjgl-jemalloc::$target"
runtimeOnly "org.lwjgl:lwjgl-llvm::$target"
runtimeOnly "org.lwjgl:lwjgl-lmdb::$target"
runtimeOnly "org.lwjgl:lwjgl-meshoptimizer::$target"
runtimeOnly "org.lwjgl:lwjgl-openal::$target"
runtimeOnly "org.lwjgl:lwjgl-rpmalloc::$target"
runtimeOnly "org.lwjgl:lwjgl-remotery:${lwjglVersion}:$target"
runtimeOnly "org.lwjgl:lwjgl-shaderc::$target"
runtimeOnly "org.lwjgl:lwjgl-stb::$target"
runtimeOnly "org.lwjgl:lwjgl-vma::$target"
}
implementation "org.joml:joml:${jomlVersion}"
implementation "org.joml:joml-primitives:${jomlprimitivesVersion}"
implementation "org.lwjglx:lwjgl3-awt:${lwjgl3awtVersion}"
@ -99,20 +79,18 @@ dependencies {
implementation "com.code-disaster.steamworks4j:steamworks4j-server:${steamworks4jserverVersion}"
implementation 'com.google.code.gson:gson:2.14.0'
implementation "org.jcommander:jcommander:3.0"
['', '-opengl', '-glfw'].each {
implementation "org.lwjgl:lwjgl$it:$lwjglVersion"
implementation "org.lwjgl:lwjgl$it::natives-windows"
runtimeOnly "org.lwjgl:lwjgl$it::natives-windows"
runtimeOnly "org.lwjgl:lwjgl$it::natives-linux"
}
// ImGui Setup
implementation "io.github.spair:imgui-java-binding:$imguiVersion"
implementation "io.github.spair:imgui-java-lwjgl3:$imguiVersion"
implementation "io.github.spair:imgui-java-natives-windows:$imguiVersion"
// ImGui Natives for both OS environments
runtimeOnly "io.github.spair:imgui-java-natives-windows:$imguiVersion"
runtimeOnly "io.github.spair:imgui-java-natives-linux:$imguiVersion"
}
tasks.named('startShadowScripts') {
// Dynamically override the legacy property binding with the modern provider mapping
conventionMapping.map('mainClassName') {
application.mainClass.get()
}
}