Skip to content

Commit 8e33b05

Browse files
committed
minification thanks rdh!
1 parent 083e394 commit 8e33b05

File tree

9 files changed

+44
-146
lines changed

9 files changed

+44
-146
lines changed

build.gradle

+43-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
import dev.ithundxr.silk.ChangelogText
2+
import groovy.json.JsonOutput
3+
import groovy.json.JsonSlurper
4+
import java.util.zip.ZipEntry
5+
import java.util.zip.ZipOutputStream
26

37
plugins {
48
id "architectury-plugin" version "3.4-SNAPSHOT"
@@ -25,7 +29,11 @@ subprojects {
2529

2630
processResources {
2731
// dont add development or to-do files into built jar
28-
exclude("**/*.bbmodel", "**/*.lnk", "**/*.xcf", "**/*.md", "**/*.txt", "**/*.blend", "**/*.blend1", "**/PlatformMethods.class")
32+
exclude(".cache/", "**/*.bbmodel", "**/*.lnk", "**/*.xcf", "**/*.md", "**/*.txt", "**/*.blend", "**/*.blend1", "**/PlatformMethods.class")
33+
34+
doLast {
35+
minifyJson(it)
36+
}
2937
}
3038

3139
repositories {
@@ -116,4 +124,38 @@ allprojects {
116124

117125
String getChangelogText() {
118126
return ChangelogText.getChangelogText(project)
127+
}
128+
129+
def minifyJson(ProcessResources task) {
130+
def temporaryDir = new File(task.temporaryDir, 'minify')
131+
temporaryDir.mkdirs()
132+
def file = remapJar.archiveFile.get().asFile
133+
if(!file.exists()) return
134+
135+
copy {
136+
from zipTree(file)
137+
into temporaryDir
138+
exclude '.cache/**'
139+
}
140+
file.delete()
141+
142+
temporaryDir.eachFileRecurse {
143+
if (it.name.endsWith('.json') || it.name.endsWith('.mcmeta')) {
144+
it.text = JsonOutput.toJson(new JsonSlurper().parse(it))
145+
}
146+
}
147+
148+
new ZipOutputStream(file.newOutputStream()).withCloseable { out ->
149+
out.setLevel(Deflater.BEST_COMPRESSION)
150+
out.setMethod(ZipOutputStream.DEFLATED)
151+
temporaryDir.eachFileRecurse {
152+
if (!it.isFile()) return
153+
def entryName = temporaryDir.toPath().relativize(it.toPath()).toString()
154+
out.putNextEntry(new ZipEntry(entryName))
155+
out.write(it.bytes)
156+
out.closeEntry()
157+
}
158+
out.flush()
159+
out.finish()
160+
}
119161
}

common/build.gradle

-14
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
import groovy.json.JsonOutput
2-
import groovy.json.JsonSlurper
3-
4-
loom {
5-
accessWidenerPath = file("src/main/resources/railways.accesswidener")
6-
}
7-
81
repositories {
92
// mavens for Create Fabric and dependencies
103
maven { url = "https://api.modrinth.com/maven" } // LazyDFU, Journyemap
@@ -60,13 +53,6 @@ architectury {
6053
processResources {
6154
// must be part of primary mod to be findable
6255
exclude("resourcepacks/")
63-
64-
// Minify all .json files in built jars
65-
doLast {
66-
fileTree(dir: processResources.outputs.files.asPath, include: '**/*.json').each {
67-
it.text = JsonOutput.toJson(new JsonSlurper().parse(it))
68-
}
69-
}
7056
}
7157

7258
sourceSets.main {

common/src/main/java/com/railwayteam/railways/RailwaysClient.java

-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import com.mojang.brigadier.CommandDispatcher;
44
import com.railwayteam.railways.compat.Mods;
5-
import com.railwayteam.railways.compat.incompatible_mods.IncompatibleModsCheck;
65
import com.railwayteam.railways.compat.journeymap.RailwayMapPlugin;
76
import com.railwayteam.railways.content.buffer.BufferModelUtils;
87
import com.railwayteam.railways.content.conductor.ConductorCapModel;
@@ -20,8 +19,6 @@
2019

2120
public class RailwaysClient {
2221
public static void init() {
23-
IncompatibleModsCheck.run();
24-
2522
registerModelLayer(ConductorEntityModel.LAYER_LOCATION, ConductorEntityModel::createBodyLayer);
2623
registerModelLayer(ConductorCapModel.LAYER_LOCATION, ConductorCapModel::createBodyLayer);
2724

common/src/main/java/com/railwayteam/railways/compat/incompatible_mods/IncompatibleModsCheck.java

-30
This file was deleted.

common/src/main/java/com/railwayteam/railways/compat/incompatible_mods/optifine/OptifineWarningScreen.java

-74
This file was deleted.

common/src/main/java/com/railwayteam/railways/events/ClientEvents.java

-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.railwayteam.railways.events;
22

3-
import com.railwayteam.railways.compat.incompatible_mods.IncompatibleModsCheck;
43
import com.railwayteam.railways.compat.journeymap.DummyRailwayMarkerHandler;
54
import com.railwayteam.railways.config.CRConfigs;
65
import com.railwayteam.railways.content.conductor.ConductorPossessionController;
@@ -19,10 +18,6 @@ public class ClientEvents {
1918
@ApiStatus.Internal
2019
public static boolean previousDevCapeSetting = false;
2120

22-
public static void onClientStarted(Minecraft mc) {
23-
IncompatibleModsCheck.warnings(mc);
24-
}
25-
2621
public static void onClientTickStart(Minecraft mc) {
2722
PhantomSpriteManager.tick(mc);
2823

common/src/main/resources/assets/railways/lang/default/interface.json

+1-8
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,5 @@
141141
"railways.smokestack.goggle.tooltip": "Selected Style: %s",
142142
"railways.smokestack.goggle.tooltip.color": "Selected Dye Color: %s",
143143

144-
"railways.buffer.invalid_shape": "Buffers must be placed on a straight track",
145-
146-
"header.railways.optifine": "Warning: Optifine present on game client",
147-
"message.railways.optifine": "Warning: Steam 'n' Rails is incompatible with Optifine, ranging from minor visual artifacts to game crashes. It's recommended to remove the mod to avoid these issues and more. This warning can be disable by clicking proceed anyway however you accept responsibility for any bugs or issues you encounter. If you needed Optifine for one reason or another, check LambdAurora's Optifine Alternatives list:",
148-
149-
"label.railways.open_mods_folder": "Open Mods Folder",
150-
"label.railways.optifine_alternatives": "Optifine Alternatives",
151-
"label.railways.proceed_anyway": "Proceed Anyway"
144+
"railways.buffer.invalid_shape": "Buffers must be placed on a straight track"
152145
}

fabric/src/main/java/com/railwayteam/railways/fabric/events/ClientEventsFabric.java

-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import io.github.fabricators_of_create.porting_lib.event.client.ClientWorldEvents;
77
import io.github.fabricators_of_create.porting_lib.event.client.KeyInputCallback;
88
import io.github.fabricators_of_create.porting_lib.event.client.ParticleManagerRegistrationCallback;
9-
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
109
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
1110
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
1211
import net.fabricmc.fabric.api.resource.SimpleSynchronousResourceReloadListener;
@@ -17,7 +16,6 @@
1716

1817
public class ClientEventsFabric {
1918
public static void init() {
20-
ClientLifecycleEvents.CLIENT_STARTED.register(ClientEvents::onClientStarted);
2119
ClientTickEvents.START_CLIENT_TICK.register(ClientEvents::onClientTickStart);
2220
ClientTickEvents.END_CLIENT_TICK.register(ClientEvents::onClientTickEnd);
2321
KeyInputCallback.EVENT.register((key, scancode, action, mods) -> {

forge/src/main/java/com/railwayteam/railways/forge/events/ClientEventsForge.java

-9
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22

33
import com.railwayteam.railways.events.ClientEvents;
44
import net.minecraft.client.Minecraft;
5-
import net.minecraft.client.gui.screens.TitleScreen;
65
import net.minecraft.world.level.Level;
76
import net.minecraftforge.api.distmarker.Dist;
87
import net.minecraftforge.client.event.InputEvent;
9-
import net.minecraftforge.client.event.ScreenEvent;
108
import net.minecraftforge.event.TagsUpdatedEvent;
119
import net.minecraftforge.event.TickEvent;
1210
import net.minecraftforge.event.TickEvent.Phase;
@@ -16,13 +14,6 @@
1614

1715
@EventBusSubscriber(Dist.CLIENT)
1816
public class ClientEventsForge {
19-
@SubscribeEvent
20-
public static void onClientStart(ScreenEvent.Init.Post event) {
21-
if (event.getScreen() instanceof TitleScreen) {
22-
ClientEvents.onClientStarted(Minecraft.getInstance());
23-
}
24-
}
25-
2617
@SubscribeEvent
2718
public static void onClientTick(TickEvent.ClientTickEvent event) {
2819
if (event.phase == Phase.START)

0 commit comments

Comments
 (0)