diff --git a/README.md b/README.md index 5f407c882..e5b64e880 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
-Logo +Logo by @voxel_dani on Twitter

Flywheel

A modern engine for modded Minecraft.
Discord @@ -7,14 +7,21 @@
-### About +## About The goal of this project is to provide tools for mod developers so they no longer have to worry about performance, or limitations of Minecraft's archaic rendering engine. That said, this is primarily an outlet for me to have fun with graphics programming. ### Instancing +Flywheel provides an alternate, unified path for entity and tile entity rendering that takes advantage of GPU instancing. In doing so, Flywheel gives the developer the flexibility to define their own vertex and instance formats, and write custom shaders to ingest that data. -So far, Flywheel provides an alternate, unified path for entity and tile entity rendering that takes advantage of GPU instancing. In doing so, Flywheel gives the developer the flexibility to define their own vertex and instance formats, and write custom shaders to ingest that data. ### Shaders To accomodate the developer and leave more in the hands of the engine, Flywheel provides a custom shader loading and templating system to hide the details of the CPU/GPU interface. This system is a work in progress. There will be breaking changes, and I make no guarantees of backwards compatibility. + + +### Plans + - Vanilla performance improvements + - Compute shader particles + - Deferred rendering + - Different renderers for differently aged hardware diff --git a/build.gradle b/build.gradle index 13f38357a..7298901b2 100644 --- a/build.gradle +++ b/build.gradle @@ -32,8 +32,6 @@ minecraft { accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') - // Default run configurations. - // These can be tweaked, removed, or duplicated as needed. runs { client { workingDirectory project.file('run') @@ -53,16 +51,7 @@ minecraft { server { workingDirectory project.file('run') - // Recommended logging data for a userdev environment - // The markers can be changed as needed. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. property 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' arg "-mixin.config=flywheel.mixins.json" @@ -77,16 +66,7 @@ minecraft { data { workingDirectory project.file('run') - // Recommended logging data for a userdev environment - // The markers can be changed as needed. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. property 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. @@ -111,15 +91,15 @@ sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { maven { //location of the maven for mixed mappings and registrate - name = "tterrag maven" - url = "https://maven.tterrag.com/" + name "tterrag maven" + url "https://maven.tterrag.com/" } } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - annotationProcessor 'org.spongepowered:mixin:0.8:processor' + annotationProcessor 'org.spongepowered:mixin:0.8.2:processor' } // Example for how to get properties into the manifest for reading by the runtime.. @@ -140,6 +120,13 @@ jar { jar.finalizedBy('reobfJar') +task sourcesJar(type: Jar) { + from sourceSets.main.allSource + archiveBaseName.set(project.archivesBaseName) + archiveVersion.set("${project.version}") + archiveClassifier.set('sources') +} + tasks.curseforge.enabled = !dev && project.hasProperty('jozu_curseforge_key') curseforge { @@ -151,8 +138,7 @@ curseforge { id = project.projectId changelog = file('changelog.txt') releaseType = project.curse_type - mainArtifact(jar) { - displayName = "${archivesBaseName}-${version}" - } + mainArtifact jar + addArtifact sourcesJar } } diff --git a/src/main/java/com/jozufozu/flywheel/util/WeakHashSet.java b/src/main/java/com/jozufozu/flywheel/util/WeakHashSet.java index d0fdd7207..2407b544a 100644 --- a/src/main/java/com/jozufozu/flywheel/util/WeakHashSet.java +++ b/src/main/java/com/jozufozu/flywheel/util/WeakHashSet.java @@ -72,7 +72,7 @@ public class WeakHashSet extends AbstractSet { @Override public boolean remove(Object o) { - return map.remove((T) o) != null; + return map.remove(o) != null; } @Override @@ -82,7 +82,7 @@ public class WeakHashSet extends AbstractSet { @Override public boolean contains(Object o) { - return map.containsKey((T) o); + return map.containsKey(o); } @Override @@ -93,7 +93,7 @@ public class WeakHashSet extends AbstractSet { @Override public boolean containsAll(Collection c) { - return c.stream() + return stream() .allMatch(map::containsKey); } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index a7fea766b..5be2bde90 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -7,6 +7,7 @@ license = "LGPLv3" modId = "flywheel" version = "${file.jarVersion}" displayName = "Flywheel" +logoFile="logo.png" displayURL = "https://www.curseforge.com/minecraft/mc-mods/flywheel" authors="Jozufozu" description = ''' @@ -23,6 +24,6 @@ side = "BOTH" [[dependencies.flywheel]] modId = "minecraft" mandatory = true -versionRange = "[1.16.5,1.17)" +versionRange = "[1.16.3,1.17)" ordering = "NONE" side = "BOTH" diff --git a/src/main/resources/logo.png b/src/main/resources/logo.png new file mode 100644 index 000000000..e660fbc83 Binary files /dev/null and b/src/main/resources/logo.png differ