mirror of
https://github.com/Jozufozu/Flywheel.git
synced 2025-01-13 07:46:07 +01:00
Pretty groovy man
- Upgrade platform script plugin to pre-compiled groovy plugin - It was getting really difficult to manage all the logic/plugins/types from the basic script, and implementing a real plugin gives us much better type safety and IDE access to upstream plugins - Separate api/lib/backend/impl in platform projects - Add platform module output to main runtime classpath so the fabric loader recognizes our additional modules
This commit is contained in:
parent
e1b0cebc2c
commit
9ae4065c1c
28 changed files with 281 additions and 126 deletions
|
@ -1,3 +1,31 @@
|
||||||
plugins {
|
plugins {
|
||||||
id 'groovy-gradle-plugin'
|
id 'groovy-gradle-plugin'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
repositories {
|
||||||
|
gradlePluginPortal()
|
||||||
|
mavenCentral()
|
||||||
|
maven {
|
||||||
|
name = 'MinecraftForge'
|
||||||
|
url = 'https://maven.minecraftforge.net/'
|
||||||
|
}
|
||||||
|
maven {
|
||||||
|
name = 'Architectury'
|
||||||
|
url = 'https://maven.architectury.dev/'
|
||||||
|
}
|
||||||
|
maven { url = 'https://repo.spongepowered.org/repository/maven-public' }
|
||||||
|
maven { url = 'https://maven.parchmentmc.org' }
|
||||||
|
}
|
||||||
|
|
||||||
|
gradlePlugin {
|
||||||
|
plugins {
|
||||||
|
simplePlugin {
|
||||||
|
id = 'flywheel.platform'
|
||||||
|
implementationClass = 'com.jozufozu.gradle.PlatformPlugin'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation 'dev.architectury.loom:dev.architectury.loom.gradle.plugin:1.6-SNAPSHOT'
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
|
|
||||||
|
|
||||||
import org.gradle.api.DefaultTask
|
import org.gradle.api.DefaultTask
|
||||||
import org.gradle.api.file.DirectoryProperty
|
import org.gradle.api.file.DirectoryProperty
|
||||||
import org.gradle.api.tasks.InputDirectory
|
import org.gradle.api.tasks.InputDirectory
|
||||||
|
|
|
@ -0,0 +1,173 @@
|
||||||
|
package com.jozufozu.gradle
|
||||||
|
|
||||||
|
import groovy.transform.CompileStatic
|
||||||
|
import net.fabricmc.loom.api.LoomGradleExtensionAPI
|
||||||
|
import net.fabricmc.loom.task.RemapJarTask
|
||||||
|
import org.gradle.api.Plugin
|
||||||
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.Task
|
||||||
|
import org.gradle.api.artifacts.Configuration
|
||||||
|
import org.gradle.api.file.DuplicatesStrategy
|
||||||
|
import org.gradle.api.file.FileCollection
|
||||||
|
import org.gradle.api.file.FileCopyDetails
|
||||||
|
import org.gradle.api.publish.PublishingExtension
|
||||||
|
import org.gradle.api.tasks.AbstractCopyTask
|
||||||
|
import org.gradle.api.tasks.SourceSet
|
||||||
|
import org.gradle.api.tasks.SourceSetContainer
|
||||||
|
import org.gradle.api.tasks.SourceTask
|
||||||
|
import org.gradle.api.tasks.bundling.Jar
|
||||||
|
import org.gradle.api.tasks.compile.JavaCompile
|
||||||
|
import org.gradle.api.tasks.javadoc.Javadoc
|
||||||
|
import org.gradle.language.jvm.tasks.ProcessResources
|
||||||
|
|
||||||
|
// Couldn't get imports for loom to work in the simple .gradle file, so upgraded this to a real plugin.
|
||||||
|
@CompileStatic
|
||||||
|
class PlatformPlugin implements Plugin<Project> {
|
||||||
|
@Override
|
||||||
|
void apply(Project project) {
|
||||||
|
def commonProject = project.project(':common')
|
||||||
|
def commonSourceSets = commonProject.getExtensions().getByType(SourceSetContainer)
|
||||||
|
|
||||||
|
def sourceSets = project.getExtensions().getByType(SourceSetContainer)
|
||||||
|
def loom = project.getExtensions().getByType(LoomGradleExtensionAPI)
|
||||||
|
def publishing = project.getExtensions().getByType(PublishingExtension)
|
||||||
|
|
||||||
|
// Loom only populates mc stuff to the main source set,
|
||||||
|
// so grab that here and use it for the others.
|
||||||
|
// Note that the `+` operator does NOT perform a deep copy
|
||||||
|
// of a FileCollection, so this object is shared between
|
||||||
|
// the source sets and we should avoid mutating it.
|
||||||
|
SourceSet platformImpl = sourceSets.named('main').get()
|
||||||
|
FileCollection mcCompileClassPath = platformImpl.compileClasspath
|
||||||
|
|
||||||
|
SourceSet platformApi = sourceSets.create('api')
|
||||||
|
platformApi.compileClasspath = mcCompileClassPath
|
||||||
|
|
||||||
|
SourceSet platformLib = sourceSets.create('lib')
|
||||||
|
platformLib.compileClasspath = mcCompileClassPath + platformApi.output
|
||||||
|
|
||||||
|
SourceSet platformBackend = sourceSets.create('backend')
|
||||||
|
platformBackend.compileClasspath = mcCompileClassPath + platformApi.output + platformLib.output
|
||||||
|
|
||||||
|
// Assign here rather than concatenate to avoid modifying the mcCompileClassPath FileCollection
|
||||||
|
platformImpl.compileClasspath = mcCompileClassPath + platformApi.output + platformLib.output + platformBackend.output
|
||||||
|
// This isn't necessary for forge but fabric needs to recognize each classpath entry from ModSettings.
|
||||||
|
platformImpl.runtimeClasspath += platformApi.output + platformLib.output + platformBackend.output
|
||||||
|
|
||||||
|
// This is needed for both platforms.
|
||||||
|
def mainMod = loom.mods.maybeCreate('main')
|
||||||
|
mainMod.sourceSet(platformApi)
|
||||||
|
mainMod.sourceSet(platformLib)
|
||||||
|
mainMod.sourceSet(platformBackend)
|
||||||
|
mainMod.sourceSet(platformImpl)
|
||||||
|
|
||||||
|
def forApi = newConfiguration(project, 'forApi')
|
||||||
|
def forLib = newConfiguration(project, 'forLib')
|
||||||
|
def forBackend = newConfiguration(project, 'forBackend')
|
||||||
|
def forImpl = newConfiguration(project, 'forImpl')
|
||||||
|
|
||||||
|
extendsFrom(project, platformApi.compileOnlyConfigurationName, forApi)
|
||||||
|
extendsFrom(project, platformLib.compileOnlyConfigurationName, forApi, forLib)
|
||||||
|
extendsFrom(project, platformBackend.compileOnlyConfigurationName, forApi, forLib, forBackend)
|
||||||
|
extendsFrom(project, platformImpl.compileOnlyConfigurationName, forApi, forLib, forBackend, forImpl)
|
||||||
|
|
||||||
|
SourceSet commonApi = commonSourceSets.named('api').get()
|
||||||
|
SourceSet commonLib = commonSourceSets.named('lib').get()
|
||||||
|
SourceSet commonBackend = commonSourceSets.named('backend').get()
|
||||||
|
SourceSet commonImpl = commonSourceSets.named('main').get()
|
||||||
|
|
||||||
|
def commonSources = [commonApi, commonLib, commonBackend, commonImpl]
|
||||||
|
|
||||||
|
// Directly compile the platform sources with the common sources
|
||||||
|
includeFromCommon(project, platformApi, commonApi)
|
||||||
|
includeFromCommon(project, platformLib, commonLib)
|
||||||
|
includeFromCommon(project, platformBackend, commonBackend)
|
||||||
|
includeFromCommon(project, platformImpl, commonImpl)
|
||||||
|
|
||||||
|
def tasks = project.tasks
|
||||||
|
|
||||||
|
tasks.withType(JavaCompile).configureEach { JavaCompile compileJava ->
|
||||||
|
excludeDuplicatePackageInfos(compileJava)
|
||||||
|
}
|
||||||
|
|
||||||
|
def apiJar = tasks.register('apiJar', Jar) { Jar jar ->
|
||||||
|
jar.archiveClassifier.set('api-dev')
|
||||||
|
jar.from platformApi.output, platformLib.output
|
||||||
|
|
||||||
|
jar.destinationDirectory.set(project.layout.buildDirectory.dir('devlibs'))
|
||||||
|
|
||||||
|
excludeDuplicatePackageInfos(jar)
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named('jar', Jar).configure { Jar jar ->
|
||||||
|
jar.archiveClassifier.set('dev')
|
||||||
|
jar.from platformApi.output, platformLib.output, platformBackend.output
|
||||||
|
|
||||||
|
excludeDuplicatePackageInfos(jar)
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named('javadoc', Javadoc).configure { Javadoc javadoc ->
|
||||||
|
commonSources.forEach { javadoc.source it.allJava }
|
||||||
|
|
||||||
|
javadoc.source platformApi.allJava, platformLib.allJava, platformBackend.allJava
|
||||||
|
|
||||||
|
excludeDuplicatePackageInfos(javadoc)
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.named('sourcesJar', Jar).configure { Jar jar ->
|
||||||
|
commonSources.forEach { jar.from it.allJava }
|
||||||
|
|
||||||
|
jar.from platformApi.allJava, platformLib.allJava, platformBackend.allJava
|
||||||
|
|
||||||
|
excludeDuplicatePackageInfos(jar)
|
||||||
|
}
|
||||||
|
|
||||||
|
def remapApiJar = tasks.register('remapApiJar', RemapJarTask) { RemapJarTask remapJar ->
|
||||||
|
remapJar.dependsOn(apiJar)
|
||||||
|
remapJar.inputFile.set(apiJar.flatMap { it.archiveFile })
|
||||||
|
remapJar.archiveClassifier.set('api')
|
||||||
|
}
|
||||||
|
|
||||||
|
def remapJar = tasks.named('remapJar', RemapJarTask)
|
||||||
|
|
||||||
|
tasks.named('build').configure { Task build ->
|
||||||
|
build.dependsOn(remapApiJar)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// We have duplicate packages between the common and platform dependent subprojects.
|
||||||
|
// In theory the package-info.java files should be identical, so just take the first one we find.
|
||||||
|
static void excludeDuplicatePackageInfos(AbstractCopyTask copyTask) {
|
||||||
|
copyTask.filesMatching('**/package-info.java') { FileCopyDetails details ->
|
||||||
|
details.duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// The compile/javadoc tasks have a different base type that isn't so smart about exclusion handling.
|
||||||
|
static void excludeDuplicatePackageInfos(SourceTask sourceTask) {
|
||||||
|
sourceTask.exclude('**/package-info.java')
|
||||||
|
}
|
||||||
|
|
||||||
|
static Configuration newConfiguration(Project project, String name) {
|
||||||
|
return project.configurations.create(name) { Configuration it ->
|
||||||
|
it.canBeConsumed = true
|
||||||
|
it.canBeResolved = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void extendsFrom(Project project, String name, Configuration... configurations) {
|
||||||
|
project.configurations.named(name).configure {
|
||||||
|
it.extendsFrom(configurations)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void includeFromCommon(Project project, SourceSet sourceSet, SourceSet commonSourceSet) {
|
||||||
|
project.tasks.named(sourceSet.compileJavaTaskName, JavaCompile).configure { JavaCompile compileJava ->
|
||||||
|
compileJava.source commonSourceSet.allJava
|
||||||
|
}
|
||||||
|
|
||||||
|
project.tasks.named(sourceSet.processResourcesTaskName, ProcessResources).configure { ProcessResources processResources ->
|
||||||
|
processResources.from commonSourceSet.resources
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,3 @@
|
||||||
plugins {
|
|
||||||
id 'java'
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean dev = System.getenv('RELEASE') == null || System.getenv('RELEASE').equalsIgnoreCase('false')
|
boolean dev = System.getenv('RELEASE') == null || System.getenv('RELEASE').equalsIgnoreCase('false')
|
||||||
String buildNumber = System.getenv('BUILD_NUMBER')
|
String buildNumber = System.getenv('BUILD_NUMBER')
|
||||||
|
|
||||||
|
@ -40,12 +36,7 @@ tasks.withType(JavaCompile).configureEach { JavaCompile javaCompile ->
|
||||||
javaCompile.options.compilerArgs = ['-Xdiags:verbose']
|
javaCompile.options.compilerArgs = ['-Xdiags:verbose']
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.named('jar', Jar).configure { Jar jar ->
|
tasks.withType(Jar).configureEach { Jar jar ->
|
||||||
archiveClassifier = ''
|
|
||||||
addLicense(jar)
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.named('sourcesJar', Jar).configure { Jar jar ->
|
|
||||||
addLicense(jar)
|
addLicense(jar)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,89 +0,0 @@
|
||||||
plugins {
|
|
||||||
id 'flywheel.subproject'
|
|
||||||
}
|
|
||||||
|
|
||||||
evaluationDependsOn(':common')
|
|
||||||
|
|
||||||
loom {
|
|
||||||
runs {
|
|
||||||
client {
|
|
||||||
ideConfigGenerated true
|
|
||||||
|
|
||||||
// Turn on our own debug flags
|
|
||||||
property 'flw.dumpShaderSource', 'true'
|
|
||||||
property 'flw.debugMemorySafety', 'true'
|
|
||||||
|
|
||||||
// Turn on mixin debug flags
|
|
||||||
property 'mixin.debug.export', 'true'
|
|
||||||
property 'mixin.debug.verbose', 'true'
|
|
||||||
|
|
||||||
// 720p baby!
|
|
||||||
programArgs '--width', '1280', '--height', '720'
|
|
||||||
}
|
|
||||||
|
|
||||||
// We're a client mod, but we need to make sure we correctly render when playing on a server.
|
|
||||||
server {
|
|
||||||
ideConfigGenerated true
|
|
||||||
programArgs '--nogui'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dependencies {
|
|
||||||
compileOnly project(path: ':common', configuration: 'commonApi')
|
|
||||||
compileOnly project(path: ':common', configuration: 'commonLib')
|
|
||||||
compileOnly project(path: ':common', configuration: 'commonBackend')
|
|
||||||
compileOnly project(path: ':common', configuration: 'commonImpl')
|
|
||||||
}
|
|
||||||
|
|
||||||
SourceSet commonApiSource = project(':common').sourceSets.api
|
|
||||||
SourceSet commonLibSource = project(':common').sourceSets.lib
|
|
||||||
SourceSet commonBackendSource = project(':common').sourceSets.backend
|
|
||||||
SourceSet commonMainSource = project(':common').sourceSets.main
|
|
||||||
|
|
||||||
def commonSources = [commonApiSource, commonLibSource, commonBackendSource, commonMainSource]
|
|
||||||
|
|
||||||
tasks.named('processResources', ProcessResources).configure { ProcessResources processResources ->
|
|
||||||
// No resources in API
|
|
||||||
processResources.from commonLibSource.resources
|
|
||||||
processResources.from commonBackendSource.resources
|
|
||||||
processResources.from commonMainSource.resources
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.named('compileJava', JavaCompile).configure { JavaCompile compileJava ->
|
|
||||||
// TODO: Can we avoid this duplication? Would be nice to repackage the 4 common jars without having to re compile
|
|
||||||
commonSources.forEach { compileJava.source it.allJava }
|
|
||||||
|
|
||||||
excludeDuplicatePackageInfos(compileJava)
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.named('javadoc', Javadoc).configure { Javadoc javadoc ->
|
|
||||||
commonSources.forEach { javadoc.source it.allJava }
|
|
||||||
|
|
||||||
excludeDuplicatePackageInfos(javadoc)
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.named('jar', Jar).configure { Jar jar ->
|
|
||||||
excludeDuplicatePackageInfos(jar)
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.named('sourcesJar', Jar).configure { Jar jar ->
|
|
||||||
commonSources.forEach { jar.from it.allJava }
|
|
||||||
|
|
||||||
excludeDuplicatePackageInfos(jar)
|
|
||||||
}
|
|
||||||
|
|
||||||
// We have duplicate packages between the common and platform dependent subprojects.
|
|
||||||
// In theory the package-info.java files should be identical, so just take the first one we find.
|
|
||||||
static void excludeDuplicatePackageInfos(AbstractCopyTask copyTask) {
|
|
||||||
copyTask.filesMatching('**/package-info.java') {
|
|
||||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// The compile/javadoc tasks have a different base type that isn't so smart about exclusion handling.
|
|
||||||
static void excludeDuplicatePackageInfos(SourceTask sourceTask) {
|
|
||||||
// FIXME: actually scan the files and exclude the duplicates
|
|
||||||
// may be tough because the files have absolute paths
|
|
||||||
sourceTask.exclude('**/package-info.java')
|
|
||||||
}
|
|
|
@ -1,11 +1,3 @@
|
||||||
plugins {
|
|
||||||
id 'idea'
|
|
||||||
id 'flywheel.java'
|
|
||||||
id 'maven-publish'
|
|
||||||
id 'dev.architectury.loom'
|
|
||||||
id 'flywheel.package-infos'
|
|
||||||
}
|
|
||||||
|
|
||||||
loom {
|
loom {
|
||||||
silentMojangMappingsLicense()
|
silentMojangMappingsLicense()
|
||||||
|
|
||||||
|
@ -49,7 +41,7 @@ dependencies {
|
||||||
api 'com.google.code.findbugs:jsr305:3.0.2'
|
api 'com.google.code.findbugs:jsr305:3.0.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
tasks.withType(ProcessResources).configureEach {
|
||||||
var replaceProperties = [
|
var replaceProperties = [
|
||||||
mod_id : mod_id,
|
mod_id : mod_id,
|
||||||
mod_name : mod_name,
|
mod_name : mod_name,
|
||||||
|
|
|
@ -1,4 +1,10 @@
|
||||||
plugins {
|
plugins {
|
||||||
|
id 'idea'
|
||||||
|
id 'java'
|
||||||
|
id 'maven-publish'
|
||||||
|
id 'dev.architectury.loom'
|
||||||
|
id 'flywheel.java'
|
||||||
|
id 'flywheel.package-infos'
|
||||||
id 'flywheel.subproject'
|
id 'flywheel.subproject'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,20 +1,50 @@
|
||||||
plugins {
|
plugins {
|
||||||
|
id 'idea'
|
||||||
|
id 'java'
|
||||||
|
id 'maven-publish'
|
||||||
|
id 'dev.architectury.loom'
|
||||||
|
id 'flywheel.java'
|
||||||
|
id 'flywheel.package-infos'
|
||||||
|
id 'flywheel.subproject'
|
||||||
id 'flywheel.platform'
|
id 'flywheel.platform'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
evaluationDependsOn(':common')
|
||||||
|
|
||||||
|
loom {
|
||||||
|
runs {
|
||||||
|
client {
|
||||||
|
ideConfigGenerated true
|
||||||
|
|
||||||
|
// Turn on our own debug flags
|
||||||
|
property 'flw.dumpShaderSource', 'true'
|
||||||
|
property 'flw.debugMemorySafety', 'true'
|
||||||
|
|
||||||
|
// Turn on mixin debug flags
|
||||||
|
property 'mixin.debug.export', 'true'
|
||||||
|
property 'mixin.debug.verbose', 'true'
|
||||||
|
|
||||||
|
// 720p baby!
|
||||||
|
programArgs '--width', '1280', '--height', '720'
|
||||||
|
}
|
||||||
|
|
||||||
|
// We're a client mod, but we need to make sure we correctly render when playing on a server.
|
||||||
|
server {
|
||||||
|
ideConfigGenerated true
|
||||||
|
programArgs '--nogui'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
|
modImplementation "net.fabricmc:fabric-loader:${fabric_loader_version}"
|
||||||
modApi "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}"
|
modApi "net.fabricmc.fabric-api:fabric-api:${fabric_api_version}"
|
||||||
|
|
||||||
modCompileOnly "maven.modrinth:sodium:${sodium_version}"
|
modCompileOnly "maven.modrinth:sodium:${sodium_version}"
|
||||||
modCompileOnly "maven.modrinth:iris:${iris_version}"
|
modCompileOnly "maven.modrinth:iris:${iris_version}"
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
forApi project(path: ':common', configuration: 'commonApi')
|
||||||
publications {
|
forLib project(path: ':common', configuration: 'commonLib')
|
||||||
register('mavenJava', MavenPublication) {
|
forBackend project(path: ':common', configuration: 'commonBackend')
|
||||||
from(components['java'])
|
forImpl project(path: ':common', configuration: 'commonImpl')
|
||||||
artifactId = "flywheel-${project.name}-${artifact_minecraft_version}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,16 @@
|
||||||
plugins {
|
plugins {
|
||||||
|
id 'idea'
|
||||||
|
id 'java'
|
||||||
|
id 'maven-publish'
|
||||||
|
id 'dev.architectury.loom'
|
||||||
|
id 'flywheel.java'
|
||||||
|
id 'flywheel.package-infos'
|
||||||
|
id 'flywheel.subproject'
|
||||||
id 'flywheel.platform'
|
id 'flywheel.platform'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
evaluationDependsOn(':common')
|
||||||
|
|
||||||
loom {
|
loom {
|
||||||
forge {
|
forge {
|
||||||
mixinConfig 'flywheel.backend.mixins.json'
|
mixinConfig 'flywheel.backend.mixins.json'
|
||||||
|
@ -14,6 +23,27 @@ loom {
|
||||||
property 'forge.logging.markers', ''
|
property 'forge.logging.markers', ''
|
||||||
property 'forge.logging.console.level', 'debug'
|
property 'forge.logging.console.level', 'debug'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
client {
|
||||||
|
ideConfigGenerated true
|
||||||
|
|
||||||
|
// Turn on our own debug flags
|
||||||
|
property 'flw.dumpShaderSource', 'true'
|
||||||
|
property 'flw.debugMemorySafety', 'true'
|
||||||
|
|
||||||
|
// Turn on mixin debug flags
|
||||||
|
property 'mixin.debug.export', 'true'
|
||||||
|
property 'mixin.debug.verbose', 'true'
|
||||||
|
|
||||||
|
// 720p baby!
|
||||||
|
programArgs '--width', '1280', '--height', '720'
|
||||||
|
}
|
||||||
|
|
||||||
|
// We're a client mod, but we need to make sure we correctly render when playing on a server.
|
||||||
|
server {
|
||||||
|
ideConfigGenerated true
|
||||||
|
programArgs '--nogui'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,13 +52,9 @@ dependencies {
|
||||||
|
|
||||||
modCompileOnly "maven.modrinth:embeddium:${embeddium_version}"
|
modCompileOnly "maven.modrinth:embeddium:${embeddium_version}"
|
||||||
modCompileOnly "maven.modrinth:oculus:${oculus_version}"
|
modCompileOnly "maven.modrinth:oculus:${oculus_version}"
|
||||||
}
|
|
||||||
|
|
||||||
publishing {
|
forApi project(path: ':common', configuration: 'commonApi')
|
||||||
publications {
|
forLib project(path: ':common', configuration: 'commonLib')
|
||||||
register('mavenJava', MavenPublication) {
|
forBackend project(path: ':common', configuration: 'commonBackend')
|
||||||
from(components['java'])
|
forImpl project(path: ':common', configuration: 'commonImpl')
|
||||||
artifactId = "flywheel-${project.name}-${artifact_minecraft_version}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue