Skip to content

Commit 58cd701

Browse files
authored
initial commit
1 parent d9b4b6a commit 58cd701

File tree

25 files changed

+1177
-2
lines changed

25 files changed

+1177
-2
lines changed

.gitattributes

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Disable autocrlf on generated files, they always generate with LF
2+
# Add any extra files or paths here to make git stop saying they
3+
# are changed when only line endings change.
4+
src/generated/**/.cache/cache text eol=lf
5+
src/generated/**/*.json text eol=lf

.github/workflows/build.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Build
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Checkout repository
10+
uses: actions/checkout@v4
11+
with:
12+
fetch-depth: 0
13+
fetch-tags: true
14+
15+
- name: Setup JDK 21
16+
uses: actions/setup-java@v4
17+
with:
18+
java-version: '21'
19+
distribution: 'temurin'
20+
21+
- name: Setup Gradle
22+
uses: gradle/actions/setup-gradle@v4
23+
24+
# This is needed to be able to run ./gradlew below
25+
# You can run `git update-index --chmod +x gradlew` then remove this step.
26+
- name: Make Gradle wrapper executable
27+
run: chmod +x ./gradlew
28+
29+
- name: Build with Gradle
30+
run: ./gradlew build

.gitignore

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# eclipse
2+
bin
3+
*.launch
4+
.settings
5+
.metadata
6+
.classpath
7+
.project
8+
9+
# idea
10+
out
11+
*.ipr
12+
*.iws
13+
*.iml
14+
.idea
15+
16+
# gradle
17+
build
18+
.gradle
19+
20+
# other
21+
eclipse
22+
run
23+
runs
24+
run-data
25+
26+
repo

LICENSE

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
You may:
2+
3+
* Use this mod in any Minecraft modpack, then redistribute that modpack however you see fit.
4+
* Fork and redistribute this mod if and only if it is to a modloader other than Neoforge.
5+
* Contribute to the mod on the github page. This does not entitle you to any ownership over the mod.
6+
7+
You may not:
8+
9+
* Claim ownership to this mod
10+
* Redistribute this mod's source
11+
* Redistribute the compiled mod on its own (i.e. not in a Minecraft modpack)
12+
13+
All Rights Reserved
14+
15+
Copyright (c) 2025 Mogwump
16+
17+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23+
THE SOFTWARE.
24+
25+
=== CLARIFICATIONS ===
26+
27+
This section is intended to give clarifications for situations where the terms above are ambiguous. The terms above should be followed primarily.
28+
29+
Since this project is almost entirely recipes in data format, if you were to want to add any of these recipes, it would be essentially the exact same. Thus, I do not own the rights to each individual file, but to the project as a whole. Thus, you may use the recipes that I have made in your own mod, but you may not copy and redistribute the entire project, including any modified versions. If you are a developer of one of the mods that I support, you have my explicit permission to add any and all recipes relating to said mod.

README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,11 @@
1-
# Mogwump-s-Alternate-Recipes
2-
Changes recipes of mods to require items from other mods that have similar themes or items.
1+
# Mogwump's Alternate Recipes
2+
3+
If you an avid tech mod enthusiast, you have probably come across the terms "vertical scalability" and "horizontal scalability". Put simply, vertical scaling is making your one process go faster, whereas horizontal scaling is just building more.
4+
5+
If you have multiple large tech mods, they sort of act like different towers standing next to each other with a few bridges between them. You can get materials from one process to completely skip another process from a different mod, but you mostly progress in each mod individually.
6+
7+
This mod aims to tweak a few recipes to force you to delve deeper into certain mods, and make you automate things you wouldn't normally automate.
8+
9+
This will make progression more difficult and force you to utilise multiple mods' progression.
10+
11+
The intent is to make progression feel a bit more coherent in smaller, private packs where you don''t want to put in the effort of going through every single item and adding custom recipes. This will also provide a few more automation/logistical challenges for a lot of mods due to increased complexity and resource demand.

build.gradle

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
plugins {
2+
id 'java-library'
3+
id 'maven-publish'
4+
id 'net.neoforged.gradle.userdev' version '7.1.4'
5+
}
6+
7+
tasks.named('wrapper', Wrapper).configure {
8+
// Define wrapper values here so as to not have to always do so when updating gradlew.properties.
9+
// Switching this to Wrapper.DistributionType.ALL will download the full gradle sources that comes with
10+
// documentation attached on cursor hover of gradle classes and methods. However, this comes with increased
11+
// file size for Gradle. If you do switch this to ALL, run the Gradle wrapper task twice afterwards.
12+
// (Verify by checking gradle/wrapper/gradle-wrapper.properties to see if distributionUrl now points to `-all`)
13+
distributionType = Wrapper.DistributionType.BIN
14+
}
15+
16+
version = mod_version
17+
group = mod_group_id
18+
19+
repositories {
20+
// Add here additional repositories if required by some of the dependencies below.
21+
}
22+
23+
base {
24+
archivesName = mod_id
25+
}
26+
27+
// Mojang ships Java 21 to end users in 1.21, so mods should target Java 21.
28+
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
29+
30+
//minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg')
31+
//minecraft.accessTransformers.entry public net.minecraft.client.Minecraft textureManager # textureManager
32+
33+
// Default run configurations.
34+
// These can be tweaked, removed, or duplicated as needed.
35+
runs {
36+
// applies to all the run configs below
37+
configureEach {
38+
// Recommended logging data for a userdev environment
39+
// The markers can be added/remove as needed separated by commas.
40+
// "SCAN": For mods scan.
41+
// "REGISTRIES": For firing of registry events.
42+
// "REGISTRYDUMP": For getting the contents of all registries.
43+
systemProperty 'forge.logging.markers', 'REGISTRIES'
44+
45+
// Recommended logging level for the console
46+
// You can set various levels here.
47+
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
48+
systemProperty 'forge.logging.console.level', 'debug'
49+
50+
modSource project.sourceSets.main
51+
}
52+
53+
client {
54+
// Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
55+
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
56+
}
57+
58+
server {
59+
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
60+
argument '--nogui'
61+
}
62+
63+
// This run config launches GameTestServer and runs all registered gametests, then exits.
64+
// By default, the server will crash when no gametests are provided.
65+
// The gametest system is also enabled by default for other run configs under the /test command.
66+
gameTestServer {
67+
systemProperty 'neoforge.enabledGameTestNamespaces', project.mod_id
68+
}
69+
70+
data {
71+
// example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it
72+
// workingDirectory project.file('run-data')
73+
74+
// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
75+
arguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath()
76+
}
77+
}
78+
79+
// Include resources generated by data generators.
80+
sourceSets.main.resources { srcDir 'src/generated/resources' }
81+
82+
// Sets up a dependency configuration called 'localRuntime'.
83+
// This configuration should be used instead of 'runtimeOnly' to declare
84+
// a dependency that will be present for runtime testing but that is
85+
// "optional", meaning it will not be pulled by dependents of this mod.
86+
configurations {
87+
runtimeClasspath.extendsFrom localRuntime
88+
}
89+
90+
dependencies {
91+
// Specify the version of Minecraft to use.
92+
// Depending on the plugin applied there are several options. We will assume you applied the userdev plugin as shown above.
93+
// The group for userdev is net.neoforged, the module name is neoforge, and the version is the same as the neoforge version.
94+
// You can however also use the vanilla plugin (net.neoforged.gradle.vanilla) to use a version of Minecraft without the neoforge loader.
95+
// And its provides the option to then use net.minecraft as the group, and one of; client, server or joined as the module name, plus the game version as version.
96+
// For all intends and purposes: You can treat this dependency as if it is a normal library you would use.
97+
implementation "net.neoforged:neoforge:${neo_version}"
98+
99+
// Example optional mod dependency with JEI
100+
// The JEI API is declared for compile time use, while the full JEI artifact is used at runtime
101+
// compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}"
102+
// compileOnly "mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}"
103+
// We add the full version to localRuntime, not runtimeOnly, so that we do not publish a dependency on it
104+
// localRuntime "mezz.jei:jei-${mc_version}-neoforge:${jei_version}"
105+
106+
// Example mod dependency using a mod jar from ./libs with a flat dir repository
107+
// This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar
108+
// The group id is ignored when searching -- in this case, it is "blank"
109+
// implementation "blank:coolmod-${mc_version}:${coolmod_version}"
110+
111+
// Example mod dependency using a file as dependency
112+
// implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar")
113+
114+
// Example project dependency using a sister or child project:
115+
// implementation project(":myproject")
116+
117+
// For more info:
118+
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
119+
// http://www.gradle.org/docs/current/userguide/dependency_management.html
120+
}
121+
122+
// This block of code expands all declared replace properties in the specified resource targets.
123+
// A missing property will result in an error. Properties are expanded using ${} Groovy notation.
124+
// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments.
125+
// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html
126+
tasks.withType(ProcessResources).configureEach {
127+
var replaceProperties = [
128+
minecraft_version : minecraft_version,
129+
minecraft_version_range: minecraft_version_range,
130+
neo_version : neo_version,
131+
loader_version_range : loader_version_range,
132+
mod_id : mod_id,
133+
mod_name : mod_name,
134+
mod_license : mod_license,
135+
mod_version : mod_version,
136+
mod_authors : mod_authors,
137+
mod_description : mod_description
138+
]
139+
inputs.properties replaceProperties
140+
141+
filesMatching(['META-INF/neoforge.mods.toml']) {
142+
expand replaceProperties
143+
}
144+
}
145+
146+
// Example configuration to allow publishing using the maven-publish plugin
147+
publishing {
148+
publications {
149+
register('mavenJava', MavenPublication) {
150+
from components.java
151+
}
152+
}
153+
repositories {
154+
maven {
155+
url "file://${project.projectDir}/repo"
156+
}
157+
}
158+
}
159+
160+
tasks.withType(JavaCompile).configureEach {
161+
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
162+
}
163+
164+
// IDEA no longer automatically downloads sources/javadoc jars for dependencies, so we need to explicitly enable the behavior.
165+
idea {
166+
module {
167+
downloadSources = true
168+
downloadJavadoc = true
169+
}
170+
}

gradle.properties

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
2+
org.gradle.jvmargs=-Xmx1G
3+
org.gradle.daemon=true
4+
org.gradle.parallel=true
5+
org.gradle.caching=true
6+
org.gradle.configuration-cache=true
7+
8+
#read more on this at https://github.com/neoforged/NeoGradle/blob/NG_7.0/README.md#apply-parchment-mappings
9+
# you can also find the latest versions at: https://parchmentmc.org/docs/getting-started
10+
neogradle.subsystems.parchment.minecraftVersion=1.21
11+
neogradle.subsystems.parchment.mappingsVersion=2024.11.10
12+
# Environment Properties
13+
# You can find the latest versions here: https://projects.neoforged.net/neoforged/neoforge
14+
# The Minecraft version must agree with the Neo version to get a valid artifact
15+
minecraft_version=1.21
16+
# The Minecraft version range can use any release version of Minecraft as bounds.
17+
# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly
18+
# as they do not follow standard versioning conventions.
19+
minecraft_version_range=[1.21)
20+
# The Neo version must agree with the Minecraft version to get a valid artifact
21+
neo_version=21.0.167
22+
# The loader version range can only use the major version of FML as bounds
23+
loader_version_range=[1,)
24+
25+
## Mod Properties
26+
27+
# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63}
28+
# Must match the String constant located in the main mod class annotated with @Mod.
29+
mod_id=mogs_alt_recipes
30+
# The human-readable display name for the mod.
31+
mod_name=Mogwumps Alternate Recipes
32+
# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default.
33+
mod_license=All Rights Reserved
34+
# The mod version. See https://semver.org/
35+
mod_version=0.1.0
36+
# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository.
37+
# This should match the base package used for the mod sources.
38+
# See https://maven.apache.org/guides/mini/guide-naming-conventions.html
39+
mod_group_id=mogwump.alt_recipes
40+
# The authors of the mod. This is a simple text string that is used for display purposes in the mod list.
41+
mod_authors=Mogwump
42+
# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list.
43+
mod_description=This mod changes the recipes of certain items to require items from other mods that have similar themes/items.

gradle/wrapper/gradle-wrapper.jar

42.7 KB
Binary file not shown.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
6+
zipStoreBase=GRADLE_USER_HOME
7+
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)