Skip to content

Commit e809470

Browse files
authored
Merge pull request #213 from ModificationStation/develop
2.0.0-alpha.5
2 parents 3833e64 + 42958d1 commit e809470

141 files changed

Lines changed: 2642 additions & 818 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ bin/
2727
# fabric
2828

2929
run/
30+
!/run

build.gradle.kts

Lines changed: 24 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// tl;dr, tells us off for using properties for versions. Too bad, we don't like trawling this file for version numbers.
22
@file:Suppress("GradlePackageVersionRange")
33

4-
import net.modificationstation.stationapi.gradle.SubprojectHelpers.addDependencyXML
4+
import babric.SubprojectHelpers.addDependencyXML
55

66
plugins {
77
id("maven-publish")
88
id("fabric-loom") version "1.9-SNAPSHOT"
9-
id("babric-loom-extension") version "1.9.2"
9+
id("babric-loom-extension") version "1.9.4"
1010
}
1111

1212
// https://stackoverflow.com/a/40101046 - Even with kotlin, gradle can't get it's shit together.
@@ -40,13 +40,8 @@ allprojects {
4040
}
4141

4242
configurations {
43-
val transitiveImplementation = create("transitiveImplementation")
44-
implementation.get().extendsFrom(transitiveImplementation)
45-
46-
// Required cause loom 0.14 for some reason doesn't remove asm-all 4.1. Ew.
4743
all {
48-
exclude(group = "org.ow2.asm", module = "asm-debug-all")
49-
exclude(group = "org.ow2.asm", module = "asm-all")
44+
exclude(group = "babric")
5045
}
5146
}
5247

@@ -65,15 +60,16 @@ allprojects {
6560

6661
modImplementation("net.fabricmc:fabric-loader:${project.properties["loader_version"]}")
6762

68-
"transitiveImplementation"("org.apache.commons:commons-lang3:3.12.0")
69-
"transitiveImplementation"("commons-io:commons-io:2.11.0")
70-
"transitiveImplementation"("net.jodah:typetools:${project.properties["typetools_version"]}")
71-
"transitiveImplementation"("com.github.mineLdiver:UnsafeEvents:${project.properties["unsafeevents_version"]}")
72-
"transitiveImplementation"("it.unimi.dsi:fastutil:${project.properties["fastutil_version"]}")
73-
//noinspection GradlePackageUpdate
74-
"transitiveImplementation"("com.github.ben-manes.caffeine:caffeine:${project.properties["caffeine_version"]}")
75-
"transitiveImplementation"("com.mojang:datafixerupper:${project.properties["dfu_version"]}")
76-
"transitiveImplementation"("maven.modrinth:spasm:${project.properties["spasm_version"]}")
63+
transitiveImplementation(modImplementation("org.apache.commons:commons-lang3:3.12.0") as Dependency)
64+
transitiveImplementation(modImplementation("commons-io:commons-io:2.11.0") as Dependency)
65+
transitiveImplementation(modImplementation("net.jodah:typetools:${project.properties["typetools_version"]}") as Dependency)
66+
transitiveImplementation(modImplementation("com.github.mineLdiver:UnsafeEvents:${project.properties["unsafeevents_version"]}") as Dependency)
67+
transitiveImplementation(modImplementation("it.unimi.dsi:fastutil:${project.properties["fastutil_version"]}") as Dependency)
68+
transitiveImplementation(modImplementation("com.github.ben-manes.caffeine:caffeine:${project.properties["caffeine_version"]}") as Dependency)
69+
transitiveImplementation(modImplementation("com.mojang:datafixerupper:${project.properties["dfu_version"]}") as Dependency)
70+
transitiveImplementation(modImplementation("maven.modrinth:spasm:${project.properties["spasm_version"]}") as Dependency)
71+
transitiveImplementation(modImplementation("me.carleslc:Simple-Yaml:1.8.4") as Dependency)
72+
transitiveImplementation(modImplementation("net.glasslauncher.mods:GlassConfigAPI:${project.properties["gcapi_version"]}") as Dependency)
7773

7874
// convenience stuff
7975
// adds some useful annotations for data classes. does not add any dependencies
@@ -85,21 +81,15 @@ allprojects {
8581
// adds some useful annotations for miscellaneous uses. does not add any dependencies, though people without the lib will be missing some useful context hints.
8682
implementation("org.jetbrains:annotations:23.0.0")
8783

88-
modLocalRuntime("net.glasslauncher.mods:ModMenu:${project.properties["modmenu_version"]}") {
89-
isTransitive = false
90-
}
84+
modLocalRuntime("net.glasslauncher.mods:ModMenu:${project.properties["modmenu_version"]}")
9185
modLocalRuntime("maven.modrinth:retrocommands:${project.properties["rc_version"]}") {
9286
isTransitive = false
9387
}
9488

9589
annotationProcessor("io.github.llamalad7:mixinextras-fabric:0.4.1")
96-
}
9790

98-
loom {
99-
@Suppress("UnstableApiUsage") // Too bad, this is needed.
100-
mixin {
101-
useLegacyMixinAp.set(true)
102-
}
91+
// Optional bugfix mod for testing qol. Remove the // to enable.
92+
//modLocalRuntime "maven.modrinth:mojangfix:${project.properties["mojangfix_version"]}"
10393
}
10494

10595
sourceSets {
@@ -169,20 +159,9 @@ allprojects {
169159
artifact(tasks.getByName("remapJar")).builtBy(tasks.getByName("remapJar"))
170160
artifact(tasks.getByName("remapSourcesJar")).builtBy(tasks.getByName("remapJar"))
171161
}
172-
173-
pom {
174-
withXml {
175-
// Wipes dependency block, cause it's just hopelessly wrong, and also includes floader for some reason
176-
val depsNode = asNode().appendNode("dependencies")
177-
// Jank solution to an annoying issue
178-
configurations.getByName("transitiveImplementation").dependencies.forEach {
179-
val depNode = depsNode.appendNode("dependency")
180-
depNode.appendNode("groupId", it.group)
181-
depNode.appendNode("artifactId", it.name)
182-
depNode.appendNode("version", it.version)
183-
depNode.appendNode("scope", "compile")
184-
}
185-
}
162+
// Remove this once I fix a **weird** edge case bug in babric.
163+
pom.withXml {
164+
this.asNode().appendNode("dependencies")
186165
}
187166
}
188167
}
@@ -291,4 +270,9 @@ tasks.register<Jar>("testJar") {
291270
from(sourceSets["test"].output)
292271
archiveClassifier.convention("test")
293272
archiveClassifier.set("test")
273+
}
274+
275+
// Gradle I swear to fuck stop trying to do bullshit to the maven - calm
276+
tasks.withType<GenerateModuleMetadata> {
277+
enabled = false
294278
}

buildSrc/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java

Lines changed: 0 additions & 59 deletions
This file was deleted.
Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,10 @@
11
package net.modificationstation.stationapi.gradle;
22

3-
import groovy.util.Node;
4-
import groovy.util.NodeList;
5-
import groovy.xml.XmlUtil;
6-
import net.fabricmc.loom.util.GroovyXmlUtil;
73
import org.gradle.api.Project;
8-
import org.gradle.api.XmlProvider;
9-
import org.gradle.api.artifacts.Dependency;
10-
import org.gradle.api.publish.PublishingExtension;
11-
import org.gradle.api.publish.maven.MavenPublication;
12-
import org.gradle.internal.impldep.org.codehaus.plexus.util.xml.XmlReader;
13-
14-
import java.util.*;
15-
import java.util.stream.*;
164

175
public class SubprojectHelpers {
186

19-
20-
public static void addModuleDependencies(Project project, String... projectNames) {
21-
List<Dependency> modules = Arrays.stream(projectNames).map((it) -> project.getDependencies().project(Map.of("path", ":" + it, "configuration", "dev"))).collect(Collectors.toList());
22-
// Arrays.stream(projectNames).forEach((it) -> project.getDependencies().project(Map.of("path", ":" + it, "configuration", "dev")));
23-
24-
modules.forEach(dependency -> project.getDependencies().add("implementation", dependency));
25-
26-
MavenPublication publishing = (MavenPublication) project.getExtensions().getByType(PublishingExtension.class).getPublications().getByName("mavenJava");
27-
publishing.pom((e) -> e.withXml((f) -> {
28-
addDependencies(f.asNode(), "implementation", modules);
29-
}));
30-
}
31-
32-
public static void addDependencyXML(Node xml, String scope, Project dependency) {
33-
Node depsNode = GroovyXmlUtil.getOrCreateNode(xml, "dependencies");
34-
35-
Node appNode = depsNode.appendNode("dependency");
36-
appNode.appendNode("groupId", dependency.getGroup());
37-
appNode.appendNode("artifactId", dependency.getName());
38-
appNode.appendNode("version", dependency.getVersion());
39-
appNode.appendNode("scope", scope);
40-
}
41-
42-
public static void addDependencies(Node xml, String scope, List<Dependency> dependencies) {
43-
Node depsNode = GroovyXmlUtil.getOrCreateNode(xml, "dependencies");
44-
45-
for (Dependency dep : dependencies) {
46-
Node appNode = depsNode.appendNode("dependency");
47-
appNode.appendNode("groupId", dep.getGroup());
48-
appNode.appendNode("artifactId", dep.getName());
49-
appNode.appendNode("version", dep.getVersion());
50-
appNode.appendNode("scope", scope);
51-
}
52-
}
53-
547
public static String getSubprojectVersion(Project project, String ver) {
558
return project.getProperties().get("mod_version") + "-" + ver;
569
}
57-
5810
}

gradle.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@ fabric.loom.multiProjectOptimisation=true
2222
spasm_version = 0.2.2
2323

2424
# Mod Properties
25-
mod_version = 2.0.0-alpha.4.1
25+
mod_version = 2.0.0-alpha.5
2626
maven_group = net.modificationstation
2727
archives_base_name = StationAPI
2828

2929
# Test properties
30+
gcapi_version = 3.1.0
3031
modmenu_version = 1.8.5-beta.11
3132
rc_version = 0.5.4

run/.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# This json is important cause some mods require a specific version of stapi, but during dev runs, stapi has no version.
2+
/**
3+
!config
4+
!config/fabric_loader_dependencies.json
5+
!.gitignore
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"version": 1,
3+
"overrides": {
4+
"alwaysmoreitems": {
5+
"-depends": {
6+
"stationapi": "IGNORED"
7+
}
8+
}
9+
}
10+
}

settings.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,5 @@ include(":station-gui-api-v0")
4646
include(":station-transitive-access-wideners-v0")
4747
include(":station-maths-v0")
4848
include(":station-worldgen-api-v0")
49+
include(":station-api-configuration")
50+
include(":station-effects-api-v0")

src/main/resources/fabric.mod.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"java": ">=17",
2424
"fabricloader": "*",
2525
"minecraft": "1.0.0-beta.7.3",
26+
"station-api-configuration": "*",
2627
"station-registry-api-v0": "*",
2728
"station-world-events-v0": "*",
2829
"station-biome-events-v0": "*",
@@ -48,6 +49,7 @@
4849
"station-dimensions-v0": "*",
4950
"station-tools-api-v1": "*",
5051
"station-flattening-v0": "*",
51-
"station-renderer-arsenic": "*"
52+
"station-renderer-arsenic": "*",
53+
"station-effects-api-v0": "*"
5254
}
5355
}

src/test/java/net/modificationstation/sltest/block/Blocks.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import net.modificationstation.stationapi.api.event.registry.BlockRegistryEvent;
88
import net.modificationstation.stationapi.api.mod.entrypoint.EntrypointManager;
99
import net.modificationstation.stationapi.api.template.block.TemplateBlock;
10+
import net.modificationstation.stationapi.api.template.block.TemplateDoorBlock;
1011
import net.modificationstation.stationapi.api.template.block.TemplateLeavesBlock;
1112
import net.modificationstation.stationapi.api.template.block.TemplateLogBlock;
1213
import net.modificationstation.stationapi.api.util.Identifier;
@@ -29,7 +30,11 @@ public enum Blocks {
2930
EMISSION_CHECKER("emission_checker", "emissionChecker", LampBlock::new),
3031
INDISPENSABLE_BLOCK("indispensable_block", "indispensableBlock", IndispensableBlock::new),
3132
MODDED_LEAVES("modded_leaves", "moddedLeaves", id -> new TemplateLeavesBlock(id, 52)),
32-
MODDED_LOG("modded_log", "moddedLog", TemplateLogBlock::new);
33+
MODDED_LOG("modded_log", "moddedLog", TemplateLogBlock::new),
34+
EFFECT_BLOCK("effect_block", "effectBlock", EffectBlock::new),
35+
EFFECT_BLOCK_INF("effect_block_inf", "effectBlockInf", EffectBlockInf::new),
36+
EFFECT_BLOCK_CLEAR("effect_block_clear", "effectBlockClear", EffectBlockClear::new),
37+
FANCY_WOOD_DOOR("fancy_wood_door_block", "fancyWoodDoor", id -> new TemplateDoorBlock(id, Material.WOOD));
3338

3439
private final Runnable register;
3540
private Block block;

0 commit comments

Comments
 (0)