Skip to content

Commit 167f5c4

Browse files
committed
Separated client/server code for icons
1 parent daedfd2 commit 167f5c4

5 files changed

Lines changed: 50 additions & 39 deletions

File tree

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,5 @@
11
package com.faboslav.structurify.common.platform;
22

3-
import com.faboslav.structurify.common.Structurify;
4-
import com.mojang.blaze3d.platform.NativeImage;
5-
import net.minecraft.client.Minecraft;
6-
import net.minecraft.client.renderer.texture.DynamicTexture;
7-
8-
import java.io.InputStream;
9-
import java.nio.file.Files;
103
import java.nio.file.Path;
114
import java.util.HashMap;
125
import java.util.Map;
@@ -23,33 +16,5 @@ public interface PlatformHelper
2316
String getModVersion();
2417

2518
Path getConfigDirectory();
26-
27-
default Optional<ModIconInfo> getModIconInfo(String id, Optional<String> iconPath, Optional<Path> path) {
28-
try(var stream = Files.newInputStream(path.orElseThrow())) {
29-
return getModIconInfo(id, iconPath, stream);
30-
} catch(Exception exception) {
31-
return Optional.empty();
32-
}
33-
}
34-
35-
default Optional<ModIconInfo> getModIconInfo(String id, Optional<String> iconPath, InputStream stream) {
36-
try {
37-
var image = NativeImage.read(stream);
38-
var width = image.getWidth();
39-
var height = image.getHeight();
40-
//? if >= 1.21.5 {
41-
var texture = new DynamicTexture(() -> "mod_icon/" + id, image);
42-
//?} else {
43-
/*var texture = new DynamicTexture(image);
44-
*///?}
45-
var textureId = Structurify.makeId(id, iconPath.get());
46-
Minecraft.getInstance()
47-
.getTextureManager()
48-
.register(textureId, texture);
49-
return Optional.of(new ModIconInfo(textureId, width, height));
50-
} catch(Exception exception) {
51-
return Optional.empty();
52-
}
53-
}
5419
}
5520

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.faboslav.structurify.common.util;
2+
3+
import com.faboslav.structurify.common.Structurify;
4+
import com.faboslav.structurify.common.platform.ModIconInfo;
5+
import com.mojang.blaze3d.platform.NativeImage;
6+
import net.minecraft.client.Minecraft;
7+
import net.minecraft.client.renderer.texture.DynamicTexture;
8+
9+
import java.io.InputStream;
10+
import java.nio.file.Files;
11+
import java.nio.file.Path;
12+
import java.util.Optional;
13+
14+
public class FileUtil
15+
{
16+
public static Optional<ModIconInfo> getModIconInfo(String id, Optional<String> iconPath, Optional<Path> path) {
17+
try(var stream = Files.newInputStream(path.orElseThrow())) {
18+
return getModIconInfo(id, iconPath, stream);
19+
} catch(Exception exception) {
20+
return Optional.empty();
21+
}
22+
}
23+
24+
public static Optional<ModIconInfo> getModIconInfo(String id, Optional<String> iconPath, InputStream stream) {
25+
try {
26+
var image = NativeImage.read(stream);
27+
var width = image.getWidth();
28+
var height = image.getHeight();
29+
//? if >= 1.21.5 {
30+
var texture = new DynamicTexture(() -> "mod_icon/" + id, image);
31+
//?} else {
32+
/*var texture = new DynamicTexture(image);
33+
*///?}
34+
var textureId = Structurify.makeId(id, iconPath.get());
35+
Minecraft.getInstance()
36+
.getTextureManager()
37+
.register(textureId, texture);
38+
return Optional.of(new ModIconInfo(textureId, width, height));
39+
} catch(Exception exception) {
40+
return Optional.empty();
41+
}
42+
}
43+
}

fabric/src/main/java/com/faboslav/structurify/fabric/platform/FabricPlatformHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.faboslav.structurify.common.Structurify;
44
import com.faboslav.structurify.common.platform.ModIconInfo;
55
import com.faboslav.structurify.common.platform.PlatformHelper;
6+
import com.faboslav.structurify.common.util.FileUtil;
67
import net.fabricmc.loader.api.FabricLoader;
78

89
import java.nio.file.Path;
@@ -30,7 +31,7 @@ public Optional<ModIconInfo> getModIconInfo(String modId) {
3031
return Optional.empty();
3132
}
3233

33-
return getModIconInfo(id, iconPath, modContainer.get().findPath(iconPath.get()));
34+
return FileUtil.getModIconInfo(id, iconPath, modContainer.get().findPath(iconPath.get()));
3435
});
3536
}
3637

forge/src/main/java/com/faboslav/structurify/forge/platform/ForgePlatformHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import net.minecraft.client.renderer.texture.DynamicTexture;
99
import net.minecraftforge.fml.ModList;
1010
import net.minecraftforge.fml.loading.FMLPaths;
11+
import com.faboslav.structurify.common.util.FileUtil;
1112

1213
import javax.annotation.Nullable;
1314
import java.nio.file.Files;
@@ -35,7 +36,7 @@ public Optional<ModIconInfo> getModIconInfo(String modId) {
3536
return Optional.empty();
3637
}
3738

38-
return getModIconInfo(id, iconPath, Optional.of(modContainer.get().getModInfo().getOwningFile().getFile().findResource(iconPath.get())));
39+
return FileUtil.getModIconInfo(id, iconPath, Optional.of(modContainer.get().getModInfo().getOwningFile().getFile().findResource(iconPath.get())));
3940
});
4041
}
4142

neoforge/src/main/java/com/faboslav/structurify/neoforge/platform/NeoForgePlatformHelper.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.faboslav.structurify.common.Structurify;
44
import com.faboslav.structurify.common.platform.ModIconInfo;
55
import com.faboslav.structurify.common.platform.PlatformHelper;
6+
import com.faboslav.structurify.common.util.FileUtil;
67
import net.neoforged.fml.ModList;
78
import net.neoforged.fml.loading.FMLPaths;
89
import org.jetbrains.annotations.Nullable;
@@ -36,12 +37,12 @@ public Optional<ModIconInfo> getModIconInfo(String modId) {
3637

3738
//? if >= 1.21.10 {
3839
try {
39-
return getModIconInfo(id, iconPath, modContainer.get().getModInfo().getOwningFile().getFile().getContents().openFile(iconPath.get()));
40+
return FileUtil.getModIconInfo(id, iconPath, modContainer.get().getModInfo().getOwningFile().getFile().getContents().openFile(iconPath.get()));
4041
} catch (IOException e) {
4142
return Optional.empty();
4243
}
4344
//?} else {
44-
/*return getModIconInfo(id, iconPath, Optional.of(modContainer.get().getModInfo().getOwningFile().getFile().findResource(iconPath.get())));
45+
/*return FileUtil.getModIconInfo(id, iconPath, Optional.of(modContainer.get().getModInfo().getOwningFile().getFile().findResource(iconPath.get())));
4546
*///?}
4647
});
4748
}

0 commit comments

Comments
 (0)