/*
 * Add your dependencies here. Supported configurations:
 *  - api("group:name:version:classifier"): if you use the types from this dependency in the public API of this mod
 *       Available at runtime and compiletime for mods depending on this mod
 *  - implementation("g:n:v:c"): if you need this for internal implementation details of the mod, but none of it is visible via the public API
 *       Available at runtime but not compiletime for mods depending on this mod
 *  - compileOnly("g:n:v:c"): if the mod you're building doesn't need this dependency during runtime at all, e.g. for optional mods
 *       Not available at all for mods depending on this mod, only visible at compiletime for this mod
 *  - compileOnlyApi("g:n:v:c"): like compileOnly, but also visible at compiletime for mods depending on this mod
 *       Available at compiletime but not runtime for mods depending on this mod
 *  - runtimeOnlyNonPublishable("g:n:v:c"): if you want to include a mod in this mod's runClient/runServer runs, but not publish it as a dependency
 *       Not available at all for mods depending on this mod, only visible at runtime for this mod
 *  - devOnlyNonPublishable("g:n:v:c"): a combination of runtimeOnlyNonPublishable and compileOnly for dependencies present at both compiletime and runtime,
 *       but not published as Maven dependencies - useful for RFG-deobfuscated dependencies or local testing
 *  - runtimeOnly("g:n:v:c"): if you don't need this at compile time, but want it to be present at runtime
 *       Available at runtime for mods depending on this mod
 *  - annotationProcessor("g:n:v:c"): mostly for java compiler plugins, if you know you need this, use it, otherwise don't worry
 *  - testCONFIG("g:n:v:c") - replace CONFIG by one of the above (except api), same as above but for the test sources instead of main
 *
 *  - shadowImplementation("g:n:v:c"): effectively the same as API, but the dependency is included in your jar under a renamed package name
 *       Requires you to enable usesShadowedDependencies in gradle.properties
 *
 *  - compile("g:n:v:c"): deprecated, replace with "api" (works like the old "compile") or "implementation" (can be more efficient)
 *
 * You can exclude transitive dependencies (dependencies of the chosen dependency) by appending { transitive = false } if needed,
 * but use this sparingly as it can break using your mod as another mod's dependency if you're not careful.
 *
 * To depend on obfuscated jars you can use `devOnlyNonPublishable(rfg.deobf("dep:spec:1.2.3"))` to fetch an obfuscated jar from maven,
 * or `devOnlyNonPublishable(rfg.deobf(project.files("libs/my-mod-jar.jar")))` to use a file.
 *
 * Gradle names for some of the configuration can be misleading, compileOnlyApi and runtimeOnly both get published as dependencies in Maven, but compileOnly does not.
 * The buildscript adds runtimeOnlyNonPublishable to also have a runtime dependency that's not published.
 *
 * For more details, see https://docs.gradle.org/8.0.1/userguide/java_library_plugin.html#sec:java_library_configurations_graph
 */
dependencies {
    runtimeOnly("com.github.GTNewHorizons:Forgelin:2.0.0-GTNH:dev")

    compileOnly("org.jetbrains.kotlin:kotlin-stdlib:2.1.10")
    compileOnly("org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.1.10")
    compileOnly("org.jetbrains.kotlin:kotlin-reflect:2.1.10")
    compileOnly("org.jetbrains:annotations:26.0.2")
    compileOnly("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1")
    compileOnly("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.10.1")

    implementation("com.github.GTNewHorizons:GTNHLib:0.5.23:dev")
    implementation("com.github.GTNewHorizons:CodeChickenCore:1.4.1:dev")

    devOnlyNonPublishable("com.github.GTNewHorizons:GT5-Unofficial:5.09.51.389:dev")

    runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.7.4-GTNH:dev")

    runtimeOnly fileTree("libs")
}
