Skip to content

Commit 101ec46

Browse files
committed
Better default run config working directory
1 parent 01f42a3 commit 101ec46

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/main/groovy/net/minecraftforge/forgedev/tasks/launcher/SlimeLauncherOptions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ default void with(SourceSet sourceSet, Action<? super SlimeLauncherOptionsNested
4747

4848
/// The working directory to use.
4949
///
50-
/// By default, this will be `run/`{@link #getName() name}.
50+
/// By default, this will be `run/`{@link SourceSet#getName() sourceSet}`/`{@link #getName() name}.
5151
///
5252
/// To clarify: this is the working directory of the Java process. Slime Launcher uses absolute file locations to
5353
/// place its caches and metadata, which do not interfere with the working directory.

src/main/groovy/net/minecraftforge/forgedev/tasks/launcher/SlimeLauncherOptionsImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.gradle.api.Action;
1010
import org.gradle.api.file.ConfigurableFileCollection;
1111
import org.gradle.api.file.DirectoryProperty;
12+
import org.gradle.api.file.ProjectLayout;
1213
import org.gradle.api.model.ObjectFactory;
1314
import org.gradle.api.provider.ListProperty;
1415
import org.gradle.api.provider.MapProperty;
@@ -39,6 +40,8 @@ public abstract class SlimeLauncherOptionsImpl implements SlimeLauncherOptionsIn
3940

4041
private final MapProperty<String, SlimeLauncherOptionsNested> nested = this.getObjects().mapProperty(String.class, SlimeLauncherOptionsNested.class);
4142

43+
protected abstract @Inject ProjectLayout getProjectLayout();
44+
4245
protected abstract @Inject ObjectFactory getObjects();
4346

4447
protected abstract @Inject ProviderFactory getProviders();
@@ -267,7 +270,7 @@ public SlimeLauncherOptionsInternal inherit(Map<String, RunConfig> configs, Stri
267270
target.getMaxHeapSize().convention(this.getMaxHeapSize());
268271
target.getSystemProperties().convention(this.getSystemProperties());
269272
target.getEnvironment().convention(this.getEnvironment());
270-
target.getWorkingDir().convention(this.getWorkingDir());
273+
target.getWorkingDir().convention(this.getWorkingDir().orElse(getProjectLayout().getProjectDirectory().dir("runs/" + sourceSetName + '/' + this.name)));
271274
target.getClient().convention(this.getClient());
272275
return this.inherit(target, sourceSetName, configs, name);
273276
}
@@ -317,6 +320,8 @@ private SlimeLauncherOptionsInternal inherit(SlimeLauncherOptionsInternal target
317320
target.environment(child.getEnvironment().getOrElse(Map.of()));
318321

319322
target.systemProperties(child.getSystemProperties().getOrElse(Map.of()));
323+
324+
target.getWorkingDir().set(child.getWorkingDir());
320325
}
321326

322327
return target;

0 commit comments

Comments
 (0)