Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"permissions": {
"allow": [
"Bash(find:*)"
],
"deny": [],
"ask": []
}
}
7 changes: 5 additions & 2 deletions api/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
plugins {
id 'net.neoforged.gradle.userdev'
id 'net.neoforged.moddev'
}

neoForge {
version = forge_version
}

dependencies {
implementation "net.neoforged:neoforge:${forge_version}"
}
4 changes: 4 additions & 0 deletions api/src/main/resources/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
COMMENT: This file exists purely for dev time,
anything added here should be mirrored in the build.gradle.
FMLModType: GAMELIBRARY
Automatic-Module-Name: projectred_api
8 changes: 1 addition & 7 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import java.time.Instant
plugins {
id 'java'
id 'maven-publish'
id 'com.github.johnrengelman.shadow'
}

// Get mod version from CI, else suffix a timestamp (calculated here bc timestamp can change if done separately in each subproject)
Expand Down Expand Up @@ -65,11 +64,6 @@ subprojects { p ->
}
}

// Defined explicitly so publishing can access shadowJar property
project(':fabrication') {
apply plugin: 'com.github.johnrengelman.shadow'
}

publishing {
repositories {
maven {
Expand All @@ -86,7 +80,7 @@ publishing {
artifact project(':core').jar
artifact project(':expansion').jar
artifact project(':exploration').jar
artifact project(':fabrication').shadowJar
artifact project(':fabrication').jar
artifact project(':illumination').jar
artifact project(':integration').jar
artifact project(':transmission').jar
Expand Down
40 changes: 25 additions & 15 deletions core/build.gradle
Original file line number Diff line number Diff line change
@@ -1,33 +1,38 @@
plugins {
id 'net.neoforged.gradle.userdev'
id 'net.neoforged.moddev'
}

String mod_id = 'projectred_core'

// Include all sources from API project
sourceSets.main.java.srcDirs += ['../api/src/main/java']
neoForge {
version = forge_version

minecraft {
accessTransformers.file file("src/main/resources/META-INF/accesstransformer.cfg")
}
accessTransformers {
publish file("src/main/resources/META-INF/accesstransformer.cfg")
}

runs {
data {
systemProperty 'mixin.env.remapRefMap', 'true'
systemProperty 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
runs {
data {
data()
programArguments.addAll '--mod', mod_id, '--all', '--output', file("src/main/generated").absolutePath, '--existing', file("src/main/resources").absolutePath
}
}

workingDirectory file('run')
arguments.addAll '--mod', mod_id, '--all', '--output', file("src/main/generated").absolutePath, '--existing', file("src/main/resources").absolutePath
modSource sourceSets.main
unitTest {
enable()
}
}

dependencies {
implementation "net.neoforged:neoforge:${forge_version}"

implementation "io.codechicken:CodeChickenLib:${mc_version}-${ccl_version}"
implementation "io.codechicken:CBMultipart:${mc_version}-${cbm_version}"

accessTransformers "io.codechicken:CodeChickenLib:${mc_version}-${ccl_version}"
accessTransformers "io.codechicken:CBMultipart:${mc_version}-${cbm_version}"

// ProjectRed API
jarJar(implementation project(":api")) // Use JarJar to bake within Core jar

// JEI
compileOnly("mezz.jei:jei-${mc_version}-common-api:${jei_version}")
compileOnly("mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}")
Expand All @@ -42,3 +47,8 @@ dependencies {
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
}

test {
useJUnitPlatform()
jvmArgs('-Xmx3G', '-Xms1G')
}

Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
// 1.21.1 2025-08-10T20:36:21.936866 Languages: en_us for mod: projectred_core
789a8db6ffa570c8db0bb245338757a5c3790ae6 assets/projectred_core/lang/en_us.json
// 1.21.1 2025-11-28T16:02:07.120057 Languages: en_us for mod: projectred_core
f81ba1baf603907087ec3777768f84bba0911ba4 assets/projectred_core/lang/en_us.json
46 changes: 45 additions & 1 deletion core/src/main/generated/assets/projectred_core/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,49 @@
"item.projectred_core.wired_plate": "Wired Plate",
"item.projectred_core.woven_cloth": "Woven Cloth",
"item.projectred_core.yellow_illumar": "Yellow Illumar",
"itemGroup.projectred_core": "Project Red: Core"
"itemGroup.projectred_core": "Project Red: Core",
"projectred_core.configuration.auto_compile_tile_limit": "Auto-Compile Tile Limit",
"projectred_core.configuration.auto_compile_tile_limit.tooltip": "Max number of tiles allowed in IC Workbench before auto-compile becomes disallowed (-1 to always allow, 0 to never allow). Recommended to keep this very low on servers.",
"projectred_core.configuration.electrotine_ore": "Enable Electrotine Ores",
"projectred_core.configuration.fabulous_lights": "Fabulous Light Rendering",
"projectred_core.configuration.fabulous_lights.tooltip": "Use fabulous shader pipeline for lights when on Fabulous Graphics mode. This creates a screenspaceblooming effect when looking towards ProjectRed light sources.",
"projectred_core.configuration.frame_move_limit": "Frame Structure Move Limit",
"projectred_core.configuration.frame_move_limit.tooltip": "Max blocks in a moving frame structure. Limiting this can improve performance on servers where lots of structures are being moved.",
"projectred_core.configuration.gameplay": "Gameplay Settings",
"projectred_core.configuration.gameplay.tooltip": "Settings that effect gameplay, balance, progression, etc.",
"projectred_core.configuration.gate_3d_wires": "3D Logic Gate Wires",
"projectred_core.configuration.gate_3d_wires.tooltip": "If set to OFF, flat wire textures will be used for logic gates. Can improve performance significantly for large circuits",
"projectred_core.configuration.gate_lights": "Logic Gate Lights",
"projectred_core.configuration.gate_lights.tooltip": "If set to OFF, logic gates will not emit light. Can help reduce light updates on particularly large and fast-updating redstone circuits.",
"projectred_core.configuration.gate_min_timer_ticks": "Logic Gate Minimum Timer Ticks",
"projectred_core.configuration.gate_min_timer_ticks.tooltip": "Minimum amount of ticks the timer gates can be set to (min 4). Can be used to enforce lower update rates.",
"projectred_core.configuration.gate_sounds": "Logic Gate Sounds",
"projectred_core.configuration.gate_sounds.tooltip": "If set to OFF, logic gates will not make sounds",
"projectred_core.configuration.infinite_screwdriver": "Unbreakable Screwdriver",
"projectred_core.configuration.infinite_screwdriver.tooltip": "If set to ON, the basic screwdriver will not take damage",
"projectred_core.configuration.lighting": "Lighting Settings",
"projectred_core.configuration.lighting.tooltip": "Settings that effect ProjectRed light sources (lamps, etc)",
"projectred_core.configuration.marble_cave": "Enable Marble Caves",
"projectred_core.configuration.max_lights": "Light Render Limit",
"projectred_core.configuration.max_lights.tooltip": "Max lights on screen at a time, -1 for unlimited. This limits the number of light halos that can be rendered around ProjectRed light sources. Lower values improve performance.",
"projectred_core.configuration.performance": "Performance Settings",
"projectred_core.configuration.performance.tooltip": "Settings that effect performance",
"projectred_core.configuration.peridot_ore": "Enable Peridot Ores",
"projectred_core.configuration.rendering": "Rendering Settings",
"projectred_core.configuration.rendering.tooltip": "Settings that effect rendering and special effects",
"projectred_core.configuration.ruby_ore": "Enable Ruby Ores",
"projectred_core.configuration.sapphire_ore": "Enable Sapphire Ores",
"projectred_core.configuration.section.projectred.client.toml": "Client Settings",
"projectred_core.configuration.section.projectred.client.toml.title": "Project Red Client Settings",
"projectred_core.configuration.section.projectred.server.toml": "Server Settings",
"projectred_core.configuration.section.projectred.server.toml.title": "Project Red Server Settings",
"projectred_core.configuration.silver_ore": "Enable Silver Ores",
"projectred_core.configuration.static_gate_renderer": "Static Gate Rendering",
"projectred_core.configuration.static_gate_renderer.tooltip": "If set to OFF, gates will be rendered by a Block Entity renderer rather than the World Renderer",
"projectred_core.configuration.static_wire_renderer": "Static Wire Rendering",
"projectred_core.configuration.static_wire_renderer.tooltip": "If set to OFF, wires will be rendered by a Block Entity renderer rather than the World Renderer",
"projectred_core.configuration.tin_ore": "Enable Tin Ores",
"projectred_core.configuration.title": "Project Red Configuration",
"projectred_core.configuration.world_gen": "World Gen",
"projectred_core.configuration.world_gen.tooltip": "World generation settings for ores, structures, etc."
}
Loading